diff --git a/asset-manifest.json b/asset-manifest.json index 6b5f10baf..f51d0e45d 100644 --- a/asset-manifest.json +++ b/asset-manifest.json @@ -76,7 +76,7 @@ "static/css/51.ae174fc2.chunk.css": "/react/build/static/css/51.ae174fc2.chunk.css", "./static/js/51.5dd9f4b7.chunk.js": "/react/build/./static/js/51.5dd9f4b7.chunk.js", "static/css/52.fa3fc947.chunk.css": "/react/build/static/css/52.fa3fc947.chunk.css", - "./static/js/52.d623e467.chunk.js": "/react/build/./static/js/52.d623e467.chunk.js", + "./static/js/52.0c0d191f.chunk.js": "/react/build/./static/js/52.0c0d191f.chunk.js", "static/css/53.77c696ba.chunk.css": "/react/build/static/css/53.77c696ba.chunk.css", "./static/js/53.77de9cd1.chunk.js": "/react/build/./static/js/53.77de9cd1.chunk.js", "static/css/54.cc854e25.chunk.css": "/react/build/static/css/54.cc854e25.chunk.css", @@ -126,7 +126,7 @@ "./static/js/79.9b4f7da2.chunk.js": "/react/build/./static/js/79.9b4f7da2.chunk.js", "./static/js/80.77821bb8.chunk.js": "/react/build/./static/js/80.77821bb8.chunk.js", "static/css/81.a57f1da2.chunk.css": "/react/build/static/css/81.a57f1da2.chunk.css", - "./static/js/81.c1f43dc1.chunk.js": "/react/build/./static/js/81.c1f43dc1.chunk.js", + "./static/js/81.33eab1ec.chunk.js": "/react/build/./static/js/81.33eab1ec.chunk.js", "./static/js/82.de7116c6.chunk.js": "/react/build/./static/js/82.de7116c6.chunk.js", "static/css/83.6c33255f.chunk.css": "/react/build/static/css/83.6c33255f.chunk.css", "./static/js/83.7f9ec67f.chunk.js": "/react/build/./static/js/83.7f9ec67f.chunk.js", @@ -137,7 +137,7 @@ "./static/js/86.7a61954d.chunk.js": "/react/build/./static/js/86.7a61954d.chunk.js", "static/css/87.baa184fc.chunk.css": "/react/build/static/css/87.baa184fc.chunk.css", "./static/js/87.db274cc2.chunk.js": "/react/build/./static/js/87.db274cc2.chunk.js", - "./static/js/88.5dc1883a.chunk.js": "/react/build/./static/js/88.5dc1883a.chunk.js", + "./static/js/88.9f37ef14.chunk.js": "/react/build/./static/js/88.9f37ef14.chunk.js", "static/css/89.45f2c69d.chunk.css": "/react/build/static/css/89.45f2c69d.chunk.css", "./static/js/89.bc58c018.chunk.js": "/react/build/./static/js/89.bc58c018.chunk.js", "static/css/90.632d7855.chunk.css": "/react/build/static/css/90.632d7855.chunk.css", @@ -264,7 +264,7 @@ "static/css/161.b76b27f8.chunk.css": "/react/build/static/css/161.b76b27f8.chunk.css", "./static/js/161.40d10427.chunk.js": "/react/build/./static/js/161.40d10427.chunk.js", "static/css/162.188a7db8.chunk.css": "/react/build/static/css/162.188a7db8.chunk.css", - "./static/js/162.52701007.chunk.js": "/react/build/./static/js/162.52701007.chunk.js", + "./static/js/162.35835116.chunk.js": "/react/build/./static/js/162.35835116.chunk.js", "static/css/163.9df86194.chunk.css": "/react/build/static/css/163.9df86194.chunk.css", "./static/js/163.381fc9f4.chunk.js": "/react/build/./static/js/163.381fc9f4.chunk.js", "static/css/164.6e251532.chunk.css": "/react/build/static/css/164.6e251532.chunk.css", @@ -347,7 +347,7 @@ "./static/js/236.5faea8f8.chunk.js": "/react/build/./static/js/236.5faea8f8.chunk.js", "main.css": "/react/build/static/css/main.1c22ad46.chunk.css", "main.js": "/react/build/./static/js/main.c9b29b15.chunk.js", - "runtime~main.js": "/react/build/./static/js/runtime~main.a014b0bc.js", + "runtime~main.js": "/react/build/./static/js/runtime~main.aa053193.js", "./static/js/14.16d9d702.chunk.js.LICENSE.txt": "/react/build/./static/js/14.16d9d702.chunk.js.LICENSE.txt", "./static/js/155.e3eba45c.chunk.js.LICENSE.txt": "/react/build/./static/js/155.e3eba45c.chunk.js.LICENSE.txt", "./static/js/18.4e644506.chunk.js.LICENSE.txt": "/react/build/./static/js/18.4e644506.chunk.js.LICENSE.txt", diff --git a/index.html b/index.html index fa59ca62a..8dd2a3b88 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 5e1ba8420..48d587b86 100644 --- a/service-worker.js +++ b/service-worker.js @@ -1 +1 @@ -"use strict";var precacheConfig=[["/react/build/css.worker.js","8a6b96bc806b0753dfb68cd49935b45b"],["/react/build/editor.worker.js","28d7a4ffd9e954cd878c277b96a4d36a"],["/react/build/html.worker.js","4864df51f2b1f38ab67906fff9c6b367"],["/react/build/index.html","5cbf8a1ba0f93cba0d0c7b57e16730b5"],["/react/build/json.worker.js","e193633b3f48dcd8cbb1a96b5b5b4719"],["/react/build/static/css/100.ce6407ca.chunk.css","b9919f86ce152b27a22e1a0e6a627b6e"],["/react/build/static/css/102.7aa996e6.chunk.css","95a8691b6fb80e3c0cba1da3107371f2"],["/react/build/static/css/103.ea97577b.chunk.css","1211ec54a5dbd129cf63cacdc130ca13"],["/react/build/static/css/105.b2109eb4.chunk.css","4215fbff912ba2ff16a8d0129bd4b326"],["/react/build/static/css/106.ddd123f8.chunk.css","9b429eb52fcf2a98b927e4a50ee5e302"],["/react/build/static/css/107.fa523fc1.chunk.css","66bd4cf32b0679a4ba125c04c85c279d"],["/react/build/static/css/108.6e251532.chunk.css","bc6778dbb4d665d97ede1225dce71681"],["/react/build/static/css/109.3edde0c7.chunk.css","fdec91b854d997a2d04e3cab3c33a778"],["/react/build/static/css/110.78d24cb4.chunk.css","73dc1567cf66ea89cfa27454bc5a1571"],["/react/build/static/css/112.4054f41b.chunk.css","df7b038f8f1a0e16793b24bc950b9b22"],["/react/build/static/css/114.06ee28b8.chunk.css","738dd16bc186439eabccab7ebe2d1cd0"],["/react/build/static/css/115.15253a67.chunk.css","cc03c8bd582e5fb3cf3cb57075905fe6"],["/react/build/static/css/116.25067aea.chunk.css","eee67c3a70bae328683974fddc54fca0"],["/react/build/static/css/117.7998362a.chunk.css","bca1d7d24c7d1f1d482fb4b385159f08"],["/react/build/static/css/118.6e251532.chunk.css","bc6778dbb4d665d97ede1225dce71681"],["/react/build/static/css/119.77c696ba.chunk.css","5314e7f6ff601345e2cc90fc691e3729"],["/react/build/static/css/12.3634cedd.chunk.css","5d39578b91b84e925bd702d0d56a0ea2"],["/react/build/static/css/120.77c696ba.chunk.css","5314e7f6ff601345e2cc90fc691e3729"],["/react/build/static/css/123.fd3fa2e9.chunk.css","97c0f9c3d8d16c05584bec1ce645cda0"],["/react/build/static/css/125.9d206204.chunk.css","e363ea281af9e616a0d144154b88c8f8"],["/react/build/static/css/126.29d035e4.chunk.css","8db2dbc3b0e28dfff360fd151c826908"],["/react/build/static/css/127.b0c02465.chunk.css","39804227bbb3e0dfddf4e74eb4929fd6"],["/react/build/static/css/128.f8c05310.chunk.css","f31eea02e4f9d8aac6e80e03768ff6fb"],["/react/build/static/css/129.2646da34.chunk.css","fd35f6d45b8f2b74b2b2fc747da42787"],["/react/build/static/css/130.71fa167b.chunk.css","e0ae2d8af498e04d4b844ed54a567632"],["/react/build/static/css/134.7f8e6148.chunk.css","b1414b4d54a0da2e8f095370e9717138"],["/react/build/static/css/135.e2a8a600.chunk.css","a3e000826e9e975f288a5067c577c213"],["/react/build/static/css/137.9d206204.chunk.css","e363ea281af9e616a0d144154b88c8f8"],["/react/build/static/css/138.9d206204.chunk.css","e363ea281af9e616a0d144154b88c8f8"],["/react/build/static/css/139.35b1feac.chunk.css","0b43c1534cd52029318ecc64bc16cd82"],["/react/build/static/css/140.cdd78914.chunk.css","c8fa03c8951406a0c6dedbc44275a66c"],["/react/build/static/css/141.142cff28.chunk.css","e2d1282e7d68f47cc9a754940877e251"],["/react/build/static/css/142.11a04942.chunk.css","1373d0214c811e25b7c1763ef9cf3287"],["/react/build/static/css/144.f2d58498.chunk.css","066d6c0531b358ea1561164d60bbfff3"],["/react/build/static/css/147.15253a67.chunk.css","cc03c8bd582e5fb3cf3cb57075905fe6"],["/react/build/static/css/148.8a2a0d50.chunk.css","3c152d150d71ca1d782cbce74e83545a"],["/react/build/static/css/151.adba6539.chunk.css","2a7331558acec08d91f6776ad403e5a1"],["/react/build/static/css/153.fd5c069f.chunk.css","dc736ebb1d70ad8f92c50296bc5c21c2"],["/react/build/static/css/154.cbc5dafa.chunk.css","0d00c4a2d6cc383c8b2a40a24378d281"],["/react/build/static/css/155.2f409942.chunk.css","6f1d0eaeed7a282caf0ce33adaef0898"],["/react/build/static/css/159.c0242127.chunk.css","3de2e94ba931d38eb377530c8ea1be89"],["/react/build/static/css/16.d00c3b40.chunk.css","8f0768612bc7511ef59e202eac390e94"],["/react/build/static/css/160.eac80071.chunk.css","24a49e89c076fc2163c3c0ef75ff1bda"],["/react/build/static/css/161.b76b27f8.chunk.css","e2bd1eaba1f733ff90b93e7d8ded98e5"],["/react/build/static/css/162.188a7db8.chunk.css","d365448e4d5cdef07410d3ba784e1364"],["/react/build/static/css/163.9df86194.chunk.css","dae2a89b8b4b9577d529ccdc67b2bd1b"],["/react/build/static/css/164.6e251532.chunk.css","bc6778dbb4d665d97ede1225dce71681"],["/react/build/static/css/165.f2060fe7.chunk.css","3dc3569f98f0d43324c3871cc5623426"],["/react/build/static/css/166.f9d1b577.chunk.css","f9b149d2ed650f6b4ec24b09d29f3e4e"],["/react/build/static/css/169.afe8c942.chunk.css","a3452dea4f6b7a262f3427f28351739a"],["/react/build/static/css/170.9d206204.chunk.css","e363ea281af9e616a0d144154b88c8f8"],["/react/build/static/css/18.3349c103.chunk.css","7609a57f8efbe2e4307d60d634f0bdec"],["/react/build/static/css/23.e9a6b828.chunk.css","78bde0953bda71d3e1aa88983d3058ee"],["/react/build/static/css/25.b974e0fe.chunk.css","21c7446e5eeade6c5a700477671eaa50"],["/react/build/static/css/31.86018bcd.chunk.css","e795affdc09e234ba4c3a608a69ed0f0"],["/react/build/static/css/33.c49cb260.chunk.css","9bd36204dd7d2b71b76a6cb4ae485d0b"],["/react/build/static/css/34.83b12348.chunk.css","550798bee0935bba4e464a69cd59ee63"],["/react/build/static/css/35.b49b3248.chunk.css","367767142ba7ff8b2eed4591abf57f6f"],["/react/build/static/css/36.03908a04.chunk.css","9885e74b2cbc5ecabdef2efc906535c4"],["/react/build/static/css/38.78a1ba5d.chunk.css","83a2ab1e5c6be84e927fda72b983d73e"],["/react/build/static/css/39.31a40792.chunk.css","35e86a2b3aec45e7e6f200a6681f89f6"],["/react/build/static/css/40.272de201.chunk.css","94b697bf1f3d4a0143de1fea9ea5e472"],["/react/build/static/css/41.c61ae118.chunk.css","37dce675a2709225c047150bb93768e2"],["/react/build/static/css/42.52eb0d35.chunk.css","b1020bda7b28bc980279fe905d34538a"],["/react/build/static/css/43.9a604c5a.chunk.css","7609a57f8efbe2e4307d60d634f0bdec"],["/react/build/static/css/44.40c3ce15.chunk.css","f40cb3ac1ab3cb8f8a2454dbdc132112"],["/react/build/static/css/45.3349c103.chunk.css","7609a57f8efbe2e4307d60d634f0bdec"],["/react/build/static/css/46.3349c103.chunk.css","7609a57f8efbe2e4307d60d634f0bdec"],["/react/build/static/css/47.3349c103.chunk.css","7609a57f8efbe2e4307d60d634f0bdec"],["/react/build/static/css/48.3349c103.chunk.css","7609a57f8efbe2e4307d60d634f0bdec"],["/react/build/static/css/49.3349c103.chunk.css","7609a57f8efbe2e4307d60d634f0bdec"],["/react/build/static/css/50.3349c103.chunk.css","7609a57f8efbe2e4307d60d634f0bdec"],["/react/build/static/css/51.ae174fc2.chunk.css","45cda4eb5fe28227ded4ee55ac39ab7e"],["/react/build/static/css/52.fa3fc947.chunk.css","ceb562599f22774f58b1c3dcdb556138"],["/react/build/static/css/53.77c696ba.chunk.css","5314e7f6ff601345e2cc90fc691e3729"],["/react/build/static/css/54.cc854e25.chunk.css","20c6c113a880bb3031f05e978ba5855a"],["/react/build/static/css/55.aa1aedbe.chunk.css","ad64c0eede853274fe7737a65d66d18b"],["/react/build/static/css/56.23e457c6.chunk.css","b7ea9928083ea35acce72ee289c77941"],["/react/build/static/css/57.f8ce57b7.chunk.css","d6d7a13f06f71440a953ce2798887469"],["/react/build/static/css/58.58e88442.chunk.css","4c607decefc5223e114b0c81b2a06a37"],["/react/build/static/css/59.a1819630.chunk.css","2e140b39ca87fb19bdb264111265be77"],["/react/build/static/css/61.0d3a2899.chunk.css","fe24a32a813e693d8c949c4e82dc424a"],["/react/build/static/css/62.6436558f.chunk.css","08727dcc716788b9207e6965eabd0c8a"],["/react/build/static/css/63.77c696ba.chunk.css","5314e7f6ff601345e2cc90fc691e3729"],["/react/build/static/css/64.77c696ba.chunk.css","5314e7f6ff601345e2cc90fc691e3729"],["/react/build/static/css/65.77c696ba.chunk.css","5314e7f6ff601345e2cc90fc691e3729"],["/react/build/static/css/67.fd083902.chunk.css","6f65bae71f11e62309c73d5b818f30f3"],["/react/build/static/css/69.080d6958.chunk.css","d9b5ca9cb767438bb42a4167d8c9141b"],["/react/build/static/css/70.f4d0dbc5.chunk.css","65ff755faaf716eed68dc683cf871379"],["/react/build/static/css/73.7b8a6eb0.chunk.css","e5a078261e06b47655db2e7181c7d7d6"],["/react/build/static/css/75.2b4fa75d.chunk.css","894748843894405d62402217fff3324b"],["/react/build/static/css/76.6c33255f.chunk.css","8ea627676ca571d3e799f311025dd3d5"],["/react/build/static/css/78.77c696ba.chunk.css","5314e7f6ff601345e2cc90fc691e3729"],["/react/build/static/css/79.0d02db5b.chunk.css","8ab34f94699b7e4d8b3545378ea5f22c"],["/react/build/static/css/81.a57f1da2.chunk.css","2d43c1b4ddd018365e98d91612caed0b"],["/react/build/static/css/83.6c33255f.chunk.css","8ea627676ca571d3e799f311025dd3d5"],["/react/build/static/css/85.fd3fa2e9.chunk.css","97c0f9c3d8d16c05584bec1ce645cda0"],["/react/build/static/css/86.7cbf3fad.chunk.css","d9494d9ee84229a3c5686f5927b83a66"],["/react/build/static/css/87.baa184fc.chunk.css","8bb801c726ed216b69daf77df16bc480"],["/react/build/static/css/89.45f2c69d.chunk.css","311388c729e0e94e12f092f8a4671ebb"],["/react/build/static/css/90.632d7855.chunk.css","226acc64dfa2fad8420e5eadf2d7b32d"],["/react/build/static/css/91.e68320f4.chunk.css","04ac3fea3db2a0623c8141c8b874c650"],["/react/build/static/css/92.5cc84842.chunk.css","8ea65ce507a9b9eafa61a7a489c17e3a"],["/react/build/static/css/93.25067aea.chunk.css","eee67c3a70bae328683974fddc54fca0"],["/react/build/static/css/94.d00c3b40.chunk.css","8f0768612bc7511ef59e202eac390e94"],["/react/build/static/css/95.adba6539.chunk.css","2a7331558acec08d91f6776ad403e5a1"],["/react/build/static/css/96.541803c4.chunk.css","56302d54d1a174818f1c3446779e2ec9"],["/react/build/static/css/97.9d206204.chunk.css","e363ea281af9e616a0d144154b88c8f8"],["/react/build/static/css/99.33abeff1.chunk.css","07181be567bdb103c3b473c97021176e"],["/react/build/static/css/main.1c22ad46.chunk.css","b0ae52f94ef836edb7e8546f2006fb3f"],["/react/build/static/js/0.1e823640.chunk.js","45721da2d7201aaf43a33829b7a49ca3"],["/react/build/static/js/1.a3f49b75.chunk.js","18bdf1b43ddc40f3bfbdf6beff141f69"],["/react/build/static/js/10.5d57494c.chunk.js","89e8ef943947487ea846e8dba4646774"],["/react/build/static/js/100.4178edfd.chunk.js","b0c7a84329b482d123f369aca5b984d5"],["/react/build/static/js/101.a67c19c5.chunk.js","4f5b84073b007a600ec218f503ec2aa9"],["/react/build/static/js/102.c59097b1.chunk.js","5db1bf366f956e564bf594223f675e71"],["/react/build/static/js/103.a4232f81.chunk.js","d72d37af57976f825af788d1df88c685"],["/react/build/static/js/104.4b3aca46.chunk.js","3b2c46220ee87d0903e0e5a2af378472"],["/react/build/static/js/105.3524f394.chunk.js","ccaba63a5ed8d493b4b24e74b8bf4f24"],["/react/build/static/js/106.74b0a6d7.chunk.js","e247bbf6128f04e991aa03c9187d5c20"],["/react/build/static/js/107.d879c8ac.chunk.js","fd4de39e2649ed100d902349160f0d1f"],["/react/build/static/js/108.6157b977.chunk.js","360d7a2b99ca2444d15088b52cc59ec1"],["/react/build/static/js/109.fe205168.chunk.js","4f1a21dc74124691f0c96020cb96df91"],["/react/build/static/js/11.1f5ac62f.chunk.js","021caa6c0798f23e952b4d71fc14481e"],["/react/build/static/js/110.38c12b0e.chunk.js","47a791cfbbdf7446444adeae6540c643"],["/react/build/static/js/111.a4058a9f.chunk.js","05814d4202f8ee15523df9c3ed24da78"],["/react/build/static/js/112.28e9bc48.chunk.js","c4c788bc167b760e208c5422e57d52c0"],["/react/build/static/js/113.6d1943d2.chunk.js","872a1564d3185caec5d3f2cb76707833"],["/react/build/static/js/114.042874e7.chunk.js","d90d5913375807242e599e66375388fe"],["/react/build/static/js/115.87597d14.chunk.js","1e8a8636fa0abad724268c470b19dcfd"],["/react/build/static/js/116.61dd2730.chunk.js","0fd2dd009b138129f59235ce8002c18a"],["/react/build/static/js/117.de6d28b2.chunk.js","376ca8b160eaf5ebf90709dd46885413"],["/react/build/static/js/118.d5a8be5d.chunk.js","3f01e13f1ba5921a753c12a67c40b8ac"],["/react/build/static/js/119.fc088db3.chunk.js","3afb1c4a7ba03430c13a16c381593bed"],["/react/build/static/js/12.4010faf5.chunk.js","f61159383544283d5a48c00fd4074839"],["/react/build/static/js/120.48a8a3b8.chunk.js","3d4fb1b7d0a38563f45cbdc56f741460"],["/react/build/static/js/121.9ee9bea2.chunk.js","f126f9219eee0e617b6b8f8704ca890d"],["/react/build/static/js/122.46bc3728.chunk.js","2c2051c56a9b1b8b02b4b64974b29b4b"],["/react/build/static/js/123.4d11449d.chunk.js","e600b2e81ca571043ad6f8e33e50a906"],["/react/build/static/js/124.6462abc7.chunk.js","05c5900e4ce72eb146687a0ccd86a660"],["/react/build/static/js/125.538a67ad.chunk.js","0ab1d1d06e2039aaada7a6c2e712669b"],["/react/build/static/js/126.6cc89a3f.chunk.js","822955ac4dcde3c523775c9b295093f3"],["/react/build/static/js/127.e1b16822.chunk.js","3f83308d8e579aa25bfb1adf90ae02c5"],["/react/build/static/js/128.84b3e0b9.chunk.js","4e5f5096f37507592336282863442db3"],["/react/build/static/js/129.45808ae0.chunk.js","7a35ac5acdc9941cadc7d2d2694e5923"],["/react/build/static/js/13.9c975527.chunk.js","65e48488e485895fa44c7c3c501cf145"],["/react/build/static/js/130.afdbdfe8.chunk.js","cc897d18099b587a7449083413f99c55"],["/react/build/static/js/131.b638d456.chunk.js","4b26dedff6b33caef2c3317761b2762c"],["/react/build/static/js/132.373df901.chunk.js","db524fe2b1622ab46370981a44a12d12"],["/react/build/static/js/133.9496d3db.chunk.js","0ce1f2a8b336217652fd6f885fb296d2"],["/react/build/static/js/134.dc53654d.chunk.js","6ba474424d881268ef4c986749773143"],["/react/build/static/js/135.ce9a7aca.chunk.js","c2854afa2c9ca02cb3a9ae46429e069e"],["/react/build/static/js/136.b8d4b397.chunk.js","e9ac570ec16a697575264184f19410e0"],["/react/build/static/js/137.953a1079.chunk.js","dcf4da976553448b8b2096bd200aed8f"],["/react/build/static/js/138.3039ee6e.chunk.js","d57a0bfde97cd6052238255744cb3c8a"],["/react/build/static/js/139.d2796ca1.chunk.js","b14a8d0ee371051449d6d31d5e57ce56"],["/react/build/static/js/14.16d9d702.chunk.js","d0b903ed96b32e08b4cb86610374ee69"],["/react/build/static/js/14.16d9d702.chunk.js.LICENSE.txt","3f38febb7ec0853370afd7711e190f17"],["/react/build/static/js/140.0295cdd0.chunk.js","de5ae3f4b39c02c12247a90b9019736e"],["/react/build/static/js/141.75fe6dc7.chunk.js","bd84e5238859cfceb1f99a07a230b54c"],["/react/build/static/js/142.2e279015.chunk.js","3451a98437f9527cb4ec2f8ee81cae01"],["/react/build/static/js/143.5776ff84.chunk.js","e8472e05512d74555c9c3dccb2a81dbf"],["/react/build/static/js/144.a7daa321.chunk.js","1fde334da46c80d9208f5baeefb6158b"],["/react/build/static/js/145.32dc61e1.chunk.js","ecb4b2f5995b4e37e47e340331cd7025"],["/react/build/static/js/146.afecdb1e.chunk.js","9c8838f19445a6fda0439e0b6a2b0f0b"],["/react/build/static/js/147.d8082eaa.chunk.js","c8b38bffb737004d712edc902748bb3f"],["/react/build/static/js/148.860c027c.chunk.js","2dbeae0fb7a7885c80eb2b8e42a98cb2"],["/react/build/static/js/149.96e01a8e.chunk.js","09caa465d07abdc2f1ada2d1ebfbc923"],["/react/build/static/js/15.3bbc0d09.chunk.js","5e5a7069c17314d59c2ab4cb11ac04df"],["/react/build/static/js/150.ba229347.chunk.js","3b647a59cc11263f326440130cb5b3c6"],["/react/build/static/js/151.31214f9b.chunk.js","7a4bb11bcaf9b0621272395f220a1af8"],["/react/build/static/js/152.cf56b812.chunk.js","783d8fb3c47c49f26e42cf86a5e972c6"],["/react/build/static/js/153.f7e5aa86.chunk.js","c38020eba4d3b0905d37a46aa0aa662e"],["/react/build/static/js/154.8cdda0e1.chunk.js","d1db38b95268229e152a9b58859d0c3e"],["/react/build/static/js/155.e3eba45c.chunk.js","da993ed0a4cdbb5025790eda1764cab4"],["/react/build/static/js/155.e3eba45c.chunk.js.LICENSE.txt","fcdec67230dc3e833b7e953c0272f12f"],["/react/build/static/js/156.0d4b4caf.chunk.js","7708b6264b25624b50a2cf9d48aa27bf"],["/react/build/static/js/157.e2de3d82.chunk.js","ddae04f14999ed1c4a04249b2d965003"],["/react/build/static/js/158.daa47354.chunk.js","2c1f6d7a1100771c96dcb81f9523284b"],["/react/build/static/js/159.3600f464.chunk.js","7a9aa8f47f0d20656c2ed8d49729d94f"],["/react/build/static/js/16.55818604.chunk.js","800a36dc58e7715504aabfff8dcb8656"],["/react/build/static/js/160.16516bcb.chunk.js","c126b30ee2eef1b39a39feda29ef2932"],["/react/build/static/js/161.40d10427.chunk.js","ded5a4e9b14a7bc7daa5c0f9fd7c1f1b"],["/react/build/static/js/162.52701007.chunk.js","8c9ae3e476fe027dd2f269bcf632624a"],["/react/build/static/js/163.381fc9f4.chunk.js","7951d0c1866ab228c8fddbcc3e23ed30"],["/react/build/static/js/164.5ef35c46.chunk.js","73541bf6f0c11d84d6e254ff59306a69"],["/react/build/static/js/165.5bc9f681.chunk.js","6a8758135598a3ad6494d39d0b6b0899"],["/react/build/static/js/166.8f00022f.chunk.js","2a466ffe3ca3c0b9f2e453d41154b40a"],["/react/build/static/js/167.7ed03905.chunk.js","7ae041b7ec0cf19400067bb0391dc524"],["/react/build/static/js/168.8bc0c725.chunk.js","327c630f9dfe07e4f5353a0c67c1179b"],["/react/build/static/js/169.c849c1a5.chunk.js","f929de1ed40d407fe813c81d882e720a"],["/react/build/static/js/17.53ff74d4.chunk.js","44165c6280f566040527c83d7b268df8"],["/react/build/static/js/170.3e2360e2.chunk.js","23a96b05e737e4ca2b6ef844a21e43e4"],["/react/build/static/js/171.451e93e4.chunk.js","055a70709b6ab826535ba19e597986a3"],["/react/build/static/js/172.b46e31bc.chunk.js","e369ccba288a101b1d368577fcb67a7b"],["/react/build/static/js/173.7fac2de2.chunk.js","5ea31e764a397c8e488388a0a9c112e9"],["/react/build/static/js/174.069f74b3.chunk.js","daa3e780b986e94f72c16eb5fb8eaf57"],["/react/build/static/js/175.27c9dd4a.chunk.js","4a5d682b26ea413a63ab1581f993910f"],["/react/build/static/js/176.40d9d54a.chunk.js","bc755e8ef495e2e8701bd558b3f759c4"],["/react/build/static/js/177.caee8c8b.chunk.js","0e3873728536d2b8e708938a2277885b"],["/react/build/static/js/178.25a53407.chunk.js","2b2b9d842ee89ff0fb467015d3ba46d5"],["/react/build/static/js/179.0d1e5764.chunk.js","edbca318e394f293468310fa8c9ef1c6"],["/react/build/static/js/18.4e644506.chunk.js","8e840ff16683e07968e0df1bbfd9f36f"],["/react/build/static/js/18.4e644506.chunk.js.LICENSE.txt","0fe285359781848f9c7ec59a47831ac6"],["/react/build/static/js/180.94079aa6.chunk.js","92fe4e822e5803036f1b4fbe7fbf39be"],["/react/build/static/js/181.0c04b22e.chunk.js","43c841c5526346a5a8dc7714e1c0a9a1"],["/react/build/static/js/182.a564fbd4.chunk.js","031f3072655cacf9c6c13258d6738dc6"],["/react/build/static/js/183.8251527c.chunk.js","38d904b00721784968fab893d10694f5"],["/react/build/static/js/184.cde1c99c.chunk.js","a7a55059ecec429e3f50eec3da1d5b36"],["/react/build/static/js/185.4f968d5b.chunk.js","c9b74c66291530ed8f4129921fcc6306"],["/react/build/static/js/186.8c78f8e9.chunk.js","b6c8671f5a8ae729efc7b255a24b7ef7"],["/react/build/static/js/187.12241cf0.chunk.js","0d7e1ef5de11182690ab644db69f29c5"],["/react/build/static/js/188.36f54eb2.chunk.js","4fdcf71094f46b71fce09196a7b70870"],["/react/build/static/js/188.36f54eb2.chunk.js.LICENSE.txt","4f1146fdc0f5ea0ec8ff015c61028af4"],["/react/build/static/js/189.6dbbcdae.chunk.js","d595c522189bd2801849058ae2b9fe6f"],["/react/build/static/js/19.eebf9a2e.chunk.js","1011d0298ec17202a49b22b748e9587b"],["/react/build/static/js/190.1dc2fe02.chunk.js","ffab8e84385f16a66ddf2612e4830714"],["/react/build/static/js/191.52bbee63.chunk.js","0b17d2e7d82e6d3c6be002c32ded181f"],["/react/build/static/js/192.b3a1b18a.chunk.js","d91acbbd434d347b1b8fde8d2874775b"],["/react/build/static/js/193.199d86cb.chunk.js","9f70da18e048e1796fcb34a7e9e1bfed"],["/react/build/static/js/194.540e0319.chunk.js","bde3e0774c7240e68c542b9edce14527"],["/react/build/static/js/195.a6f2aa3f.chunk.js","13b680cee6e662abdda37f1a373b8d37"],["/react/build/static/js/196.1e52fd07.chunk.js","16da78aa885199d66a1a973397b50851"],["/react/build/static/js/197.070dabc2.chunk.js","d04ed265a9f3fe60b84f670ed2d79439"],["/react/build/static/js/198.c3e8ba9e.chunk.js","60df52bc1daa19bc620296bca1279642"],["/react/build/static/js/199.34119d57.chunk.js","a17769474aecdada85d5dff3ae6f28d8"],["/react/build/static/js/2.f82b78e4.chunk.js","f38dd3ed0165be94c97c1bd5ef915d45"],["/react/build/static/js/20.284f2783.chunk.js","ba66a343002b2f618b5729022b076565"],["/react/build/static/js/200.99d8ab40.chunk.js","7cd4c498845a8c788d68acfdcd360982"],["/react/build/static/js/201.fa495e21.chunk.js","dd7a3355fbfbed36045f66ff541e536f"],["/react/build/static/js/202.9cdc18ea.chunk.js","27de550f7ffebc9bd4b0a68b1542f117"],["/react/build/static/js/203.8f4707f3.chunk.js","8c75007077d4af9902817ab3ef0a7043"],["/react/build/static/js/204.13068e4c.chunk.js","7d8c16a5075856712607ef9f7569eff6"],["/react/build/static/js/205.e06081e9.chunk.js","55b0bead8ef7cdf54ede73d234463d62"],["/react/build/static/js/206.c8063f04.chunk.js","c5d55e2197707a837e674dacb423822e"],["/react/build/static/js/207.327abb38.chunk.js","0c49128a01b48ba81b4c23499c98668f"],["/react/build/static/js/208.c7ed6e86.chunk.js","a5924b1ae64719cf274a1885cbdd1d03"],["/react/build/static/js/209.784888b8.chunk.js","1d7db1df9a35aaca343221d4c9260d40"],["/react/build/static/js/21.87747961.chunk.js","1ea4a9e76d01842b73af45dc043a0723"],["/react/build/static/js/210.2befcba4.chunk.js","dfbef11f18089f545848a15024d31fc0"],["/react/build/static/js/211.87c813ce.chunk.js","d1cf99458ba102230a2019adb77903af"],["/react/build/static/js/212.0ea51603.chunk.js","ba0fa36ee8228bc29de17c758ae145cf"],["/react/build/static/js/213.3774530e.chunk.js","76643ccd01b06fe09c501cafff4d47b8"],["/react/build/static/js/214.17026bfe.chunk.js","9d9aa97d1fa86960bf36c11806b34e03"],["/react/build/static/js/215.739665c3.chunk.js","5b4546d9311d0ab6b49b6168c11b300e"],["/react/build/static/js/216.1b0cea7e.chunk.js","cabad778e1b0cbf715e176d2124c2347"],["/react/build/static/js/217.7ab45d1b.chunk.js","02aa5ce06dcc2c2eb15361977f448be6"],["/react/build/static/js/218.1ac79486.chunk.js","097d93aea654adc1794aaa624fd45245"],["/react/build/static/js/219.e959b8a1.chunk.js","82bdc7df6c593a7afd1d3c88e5f32a73"],["/react/build/static/js/22.95d46cd0.chunk.js","be37a53e65a15753e69a1fd5979b43a4"],["/react/build/static/js/220.31a5ba02.chunk.js","a933809f04667d27deb43c9f67b2527f"],["/react/build/static/js/221.327b4258.chunk.js","ead3fcc0f1b954498bebefab8ead91fa"],["/react/build/static/js/222.5fdb8c3a.chunk.js","603197835445917097f554256139f1eb"],["/react/build/static/js/223.3455cc45.chunk.js","fdc98b4038bbef2cd47ef19da0bca7e2"],["/react/build/static/js/224.087cf2c5.chunk.js","a8c989479346cc0d2cbe36541ecf2e41"],["/react/build/static/js/225.414ee067.chunk.js","2fcb319e191b890d0765c4aff51a5f57"],["/react/build/static/js/226.8ddaac32.chunk.js","b50bae9ff8fa55bda81f83af65cddb22"],["/react/build/static/js/227.7380ae56.chunk.js","fef2c2d7dcffd57b211d09c0ac784a2a"],["/react/build/static/js/228.e3e9d8b1.chunk.js","8d64ea1a6ef4dfa173a50e719c1ad04e"],["/react/build/static/js/229.9b757215.chunk.js","d47a86063cc234a65a700d98c38b4056"],["/react/build/static/js/23.42722fcc.chunk.js","e59aa8564aa371f9b72a6538d5bcda5e"],["/react/build/static/js/230.cb5092cc.chunk.js","d493343f6818927090bfa7b83f7c14d4"],["/react/build/static/js/231.baba7ee5.chunk.js","0107b9be7d76c723a5be6bb153c25400"],["/react/build/static/js/231.baba7ee5.chunk.js.LICENSE.txt","44e596d4025e742ceac0184abfaec4c1"],["/react/build/static/js/232.e65fcb24.chunk.js","3c172d6484ce617913ca6d7698824eb6"],["/react/build/static/js/233.398ac79a.chunk.js","03c028e9fbc4f777c73927ebedaf3634"],["/react/build/static/js/234.1a29e0be.chunk.js","c5e531b4334e44d535b6874133ae0cc3"],["/react/build/static/js/235.7ac70964.chunk.js","5e50e9655f48b118c973cd058857e665"],["/react/build/static/js/236.5faea8f8.chunk.js","df7f614173c1332294380eb571e770f3"],["/react/build/static/js/24.b980566a.chunk.js","7aa2236bf24810083f3c5e306076ab2a"],["/react/build/static/js/25.a1e11e9d.chunk.js","9ded915ee863f993c3605e2ad2932639"],["/react/build/static/js/26.169941b2.chunk.js","5eb43469174cee265a3a3b9ee4b95ef3"],["/react/build/static/js/27.824008b5.chunk.js","74c992c7b7ca233a7bbe42d1106daf03"],["/react/build/static/js/28.e993143d.chunk.js","33df9206d5275619cd319f54989ccf1b"],["/react/build/static/js/29.933644b1.chunk.js","e16fe26c08ff477131448656a80b9ffe"],["/react/build/static/js/3.46a20049.chunk.js","093ee7e04a385e66a9bcc08ddb8f2b76"],["/react/build/static/js/3.46a20049.chunk.js.LICENSE.txt","3272e604229cc6717be4820aa72c1de1"],["/react/build/static/js/30.07ea891e.chunk.js","45fc146f6aa90d4a5df22a9b64b1d198"],["/react/build/static/js/31.ebf46828.chunk.js","0648354be5da180f081e615a33003cfb"],["/react/build/static/js/32.f486af7c.chunk.js","ae30266210081a3e6bc342424e0ae7d1"],["/react/build/static/js/33.83e2ca86.chunk.js","045792d714d2da483ffe4c5d169dbac6"],["/react/build/static/js/33.83e2ca86.chunk.js.LICENSE.txt","32d448a21f0d79e5d20237d007950f7b"],["/react/build/static/js/34.f7f6ac84.chunk.js","7ec91517154d9a952fc59e923d10d1c6"],["/react/build/static/js/35.b81d7469.chunk.js","25a61c35389e9a857a2d69aa3318d030"],["/react/build/static/js/35.b81d7469.chunk.js.LICENSE.txt","e896d2f499e1af95c3fa46ec439da4c5"],["/react/build/static/js/36.d459a23a.chunk.js","d01cfefe5eb63742a3a79efafbf6911c"],["/react/build/static/js/36.d459a23a.chunk.js.LICENSE.txt","7d243dbc2582aeec65a460f3533b611c"],["/react/build/static/js/37.9bab9d18.chunk.js","0cc4401d906d9a4cd143f398667d18c0"],["/react/build/static/js/38.7378aa11.chunk.js","21f68c3be751ad8a60e23cddcab921a4"],["/react/build/static/js/39.bf8cb650.chunk.js","44cdd027661bb28cff087b9e0bfee36e"],["/react/build/static/js/39.bf8cb650.chunk.js.LICENSE.txt","b29d583034b0fc75b39d158179dd51ca"],["/react/build/static/js/4.20159e9a.chunk.js","f861a3957d152716187cdaced2aeb354"],["/react/build/static/js/40.ca38e2c3.chunk.js","f8277127276eb95d470cc392d74142e5"],["/react/build/static/js/40.ca38e2c3.chunk.js.LICENSE.txt","abc223908bf5b2626b439de3f70890b7"],["/react/build/static/js/41.ceb8ef65.chunk.js","7e402f353ccb98119459b3852c7381c0"],["/react/build/static/js/42.acf4898c.chunk.js","b39111fd1b9db53d3951954d92f939b8"],["/react/build/static/js/42.acf4898c.chunk.js.LICENSE.txt","14682e4a4f22c138b52d0ee595112097"],["/react/build/static/js/43.b97744f3.chunk.js","2b41e5db72a194a9448fc87ca531f903"],["/react/build/static/js/43.b97744f3.chunk.js.LICENSE.txt","54ef871b39f8019ad0a2069cbe66ef1b"],["/react/build/static/js/44.00a692c9.chunk.js","432051341fdd49ce078ef14e56704ccf"],["/react/build/static/js/44.00a692c9.chunk.js.LICENSE.txt","cf40554b59de715fe749d58c1fefea2a"],["/react/build/static/js/45.f9737ea8.chunk.js","73237ef5a1093fe7a5ca02dfbdae41b5"],["/react/build/static/js/45.f9737ea8.chunk.js.LICENSE.txt","69347ee9b86c00f3acedd347cd3915d8"],["/react/build/static/js/46.fa98ee01.chunk.js","56ab01e8a8bca4d14e48cd7705da25a0"],["/react/build/static/js/46.fa98ee01.chunk.js.LICENSE.txt","a83e50b1a73aab4229397e7b7bba0f01"],["/react/build/static/js/47.a3b89180.chunk.js","8aa979845eca8a10c18c7d97b9225127"],["/react/build/static/js/47.a3b89180.chunk.js.LICENSE.txt","22f20206c9637371a0f3918ad4f87de2"],["/react/build/static/js/48.5f6dcfc7.chunk.js","358035d345b5765133905a3908f142c9"],["/react/build/static/js/48.5f6dcfc7.chunk.js.LICENSE.txt","2a64144b6f1b4a028d43435f1b19fe16"],["/react/build/static/js/49.1ed8f2b7.chunk.js","8ec557d6afbc47caf2160aca56c2879d"],["/react/build/static/js/49.1ed8f2b7.chunk.js.LICENSE.txt","f82ffc411865638ec29ab49b79a6a7f6"],["/react/build/static/js/5.8ff9211c.chunk.js","bcaf3bdf1c753b5e80072a3364ebb630"],["/react/build/static/js/50.54725a38.chunk.js","560df958d3dff8d9afe1fd30ce376345"],["/react/build/static/js/50.54725a38.chunk.js.LICENSE.txt","65000746d6e55da8ddfa7ad47ed18ce9"],["/react/build/static/js/51.5dd9f4b7.chunk.js","aac6984b24598dd03f1e3af28612b23a"],["/react/build/static/js/52.d623e467.chunk.js","af8ff5e5e954b7155264fa5c6fb26079"],["/react/build/static/js/53.77de9cd1.chunk.js","9e9082cebfea4448248c3e59408e8cd6"],["/react/build/static/js/54.77076a0a.chunk.js","613056c5d988189057c13b9f9d444fff"],["/react/build/static/js/55.b46b7d4d.chunk.js","31fc75f40caa13ecb0a30fd99497d528"],["/react/build/static/js/56.74ba7504.chunk.js","f6c5d599320880088535ea2d3d6c3fbe"],["/react/build/static/js/57.e767156a.chunk.js","6dfd51de0650004c990daf764b5ac09f"],["/react/build/static/js/58.a53b7df0.chunk.js","10beb2a42b4385b753c25a16053e2f21"],["/react/build/static/js/59.2e04bad6.chunk.js","e10de8d76838d4760569147f39cd6c4e"],["/react/build/static/js/6.eb908dba.chunk.js","1402cdb1186e2475fe55ea5439ea0323"],["/react/build/static/js/60.f5860e69.chunk.js","655a04ffb9c9f0f4c4d3db5237f26094"],["/react/build/static/js/61.dbc677ba.chunk.js","9a3fe44bdd2d647bf647e234da92d888"],["/react/build/static/js/62.5eb0cb7a.chunk.js","f7fa636d0d45c59fccfcb94d2b1771de"],["/react/build/static/js/63.1b91fdfb.chunk.js","c141c1b41f5929358605662c167427f1"],["/react/build/static/js/64.d2ecb36c.chunk.js","205430d3d9408679dc02ef969b8d5158"],["/react/build/static/js/65.b581ae9c.chunk.js","eacd3f706aed875c175f1b0b723bca5f"],["/react/build/static/js/66.80d4ea20.chunk.js","7e9ab50fe7b83714ffc628b661501281"],["/react/build/static/js/67.164de9fd.chunk.js","1312f1095b924103b1ae1817818da0e9"],["/react/build/static/js/68.acf29001.chunk.js","01e4090ef33e236f305aa9373e7948db"],["/react/build/static/js/69.be829382.chunk.js","ea72eb4136263e783d7f982d5b67f1e6"],["/react/build/static/js/7.8f71ee20.chunk.js","83165582069c0063df3621e3f23af13e"],["/react/build/static/js/70.14c57a30.chunk.js","f60395b83340d4b92a90e9b70067d094"],["/react/build/static/js/71.8d679ee5.chunk.js","86f8d762153de7ff77135c54f94a5425"],["/react/build/static/js/72.93926cd1.chunk.js","049616f585218c517ac9ed975034356a"],["/react/build/static/js/73.fd9f9d84.chunk.js","f37517c725175400777da35faaf35c42"],["/react/build/static/js/74.267372ea.chunk.js","c8306aab184c05de6552154e3149f056"],["/react/build/static/js/75.a50877df.chunk.js","f2ca9b11d5ba79dbeefb954ad1473f8b"],["/react/build/static/js/76.ebb26a68.chunk.js","9d222678352ba1bd345b4e31fadda50a"],["/react/build/static/js/77.99f2145b.chunk.js","5775f5703c7d711d85fe6aa7b40a8912"],["/react/build/static/js/78.9854a8e7.chunk.js","88ebde9c72152b6f2337c5af703ca51d"],["/react/build/static/js/79.9b4f7da2.chunk.js","2ba135453628c2714be132500ad44cfe"],["/react/build/static/js/8.20bb61ca.chunk.js","b5934e3eb68b0e5660c33c3dc6f48c80"],["/react/build/static/js/80.77821bb8.chunk.js","b7e0987473b59f0ae69795de92090d79"],["/react/build/static/js/81.c1f43dc1.chunk.js","1b012bda780234643de28f3e1043165b"],["/react/build/static/js/82.de7116c6.chunk.js","51174b5a97e1ffc6b76aa24d5101a1fa"],["/react/build/static/js/83.7f9ec67f.chunk.js","5d1f7b5f708b179fc7598151cbd5d93d"],["/react/build/static/js/84.fe98cbea.chunk.js","50c1d53e38fb344e5729b05e498d0655"],["/react/build/static/js/85.09f4ca4f.chunk.js","928e60a36d2969626a362720b6950789"],["/react/build/static/js/86.7a61954d.chunk.js","dc047add5f2c081eb4a6b3d001d431ad"],["/react/build/static/js/87.db274cc2.chunk.js","aa5fdaec3416095af2a165b1b2270332"],["/react/build/static/js/88.5dc1883a.chunk.js","233f07dea3c7cb256bf6e01e3cebcf8e"],["/react/build/static/js/89.bc58c018.chunk.js","60c6cbfa6fc72bb299d2161e1b0ba7b1"],["/react/build/static/js/9.1c530f20.chunk.js","e74c8167aab85fac537984b46d130cf6"],["/react/build/static/js/90.593e5583.chunk.js","218dcd31c8d57705894ec87ed5b58076"],["/react/build/static/js/91.548a5403.chunk.js","866672db35157df47b977fddd70685e9"],["/react/build/static/js/92.53b4a993.chunk.js","3386a33844992036db6a1781c5702f25"],["/react/build/static/js/93.07239869.chunk.js","a6fc3edbeb09fefcab0f1bceb369207b"],["/react/build/static/js/94.30e4a330.chunk.js","9814803251fb27d62bb5d6dc8f4c590d"],["/react/build/static/js/95.1e5bcd5c.chunk.js","ef70124580461c79338ee3c36f7a0b04"],["/react/build/static/js/96.a2121c35.chunk.js","9f0752123f9d1be49eda0fb7f6302627"],["/react/build/static/js/97.4928d673.chunk.js","18f3ae448e247fc32e5708d6c9c9f696"],["/react/build/static/js/98.f30ba0ed.chunk.js","e326f4b508f08250de6b21b6e141bbe9"],["/react/build/static/js/99.5bb864ec.chunk.js","eecf2a28f789de1abc81f58888759d92"],["/react/build/static/js/main.c9b29b15.chunk.js.LICENSE.txt","5632722be14bb98a672bb02fc479f3fa"],["/react/build/static/js/runtime~main.a014b0bc.js","3105741823bae8a67928dc4bfb1762a6"],["/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.c3c2eb57.png","917f62f518c37b814260765ba69918e3"],["/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/botOneBg.4fb56df5.png","674a61ccd29c392bed8827e1772f534c"],["/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/emp.35f6c709.png","ab4edd69519dcd864dae83950032e73f"],["/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.0c13ef7b.svg","e901b31c05db2687384f2ec438d8102a"],["/react/build/static/media/github2.7d5cc0ba.svg","14ac06d35d1de63b1d0cb69d347510c8"],["/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.31c2c65b.svg","e460558d48a47bfda068f0fbae063204"],["/react/build/static/media/image21.01d0caf7.svg","e5f5f0c37759e488a96306eea799569a"],["/react/build/static/media/image22.d4d77f6c.svg","1abe104b8da60da858be6b21f2d0c62a"],["/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/phone.8973db9e.svg","ac92ccc6336d53cf0e5d53a386eadd78"],["/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/softDetailHeadBg.b2bae10a.png","6b1379c5abf77af7fecbabb1368f1d96"],["/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","27424a6e40c70ed4c68b96c0215841f1"]],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","8a6b96bc806b0753dfb68cd49935b45b"],["/react/build/editor.worker.js","28d7a4ffd9e954cd878c277b96a4d36a"],["/react/build/html.worker.js","4864df51f2b1f38ab67906fff9c6b367"],["/react/build/index.html","6a1e8393edd441b622503be911241101"],["/react/build/json.worker.js","e193633b3f48dcd8cbb1a96b5b5b4719"],["/react/build/static/css/100.ce6407ca.chunk.css","b9919f86ce152b27a22e1a0e6a627b6e"],["/react/build/static/css/102.7aa996e6.chunk.css","95a8691b6fb80e3c0cba1da3107371f2"],["/react/build/static/css/103.ea97577b.chunk.css","1211ec54a5dbd129cf63cacdc130ca13"],["/react/build/static/css/105.b2109eb4.chunk.css","4215fbff912ba2ff16a8d0129bd4b326"],["/react/build/static/css/106.ddd123f8.chunk.css","9b429eb52fcf2a98b927e4a50ee5e302"],["/react/build/static/css/107.fa523fc1.chunk.css","66bd4cf32b0679a4ba125c04c85c279d"],["/react/build/static/css/108.6e251532.chunk.css","bc6778dbb4d665d97ede1225dce71681"],["/react/build/static/css/109.3edde0c7.chunk.css","fdec91b854d997a2d04e3cab3c33a778"],["/react/build/static/css/110.78d24cb4.chunk.css","73dc1567cf66ea89cfa27454bc5a1571"],["/react/build/static/css/112.4054f41b.chunk.css","df7b038f8f1a0e16793b24bc950b9b22"],["/react/build/static/css/114.06ee28b8.chunk.css","738dd16bc186439eabccab7ebe2d1cd0"],["/react/build/static/css/115.15253a67.chunk.css","cc03c8bd582e5fb3cf3cb57075905fe6"],["/react/build/static/css/116.25067aea.chunk.css","eee67c3a70bae328683974fddc54fca0"],["/react/build/static/css/117.7998362a.chunk.css","bca1d7d24c7d1f1d482fb4b385159f08"],["/react/build/static/css/118.6e251532.chunk.css","bc6778dbb4d665d97ede1225dce71681"],["/react/build/static/css/119.77c696ba.chunk.css","5314e7f6ff601345e2cc90fc691e3729"],["/react/build/static/css/12.3634cedd.chunk.css","5d39578b91b84e925bd702d0d56a0ea2"],["/react/build/static/css/120.77c696ba.chunk.css","5314e7f6ff601345e2cc90fc691e3729"],["/react/build/static/css/123.fd3fa2e9.chunk.css","97c0f9c3d8d16c05584bec1ce645cda0"],["/react/build/static/css/125.9d206204.chunk.css","e363ea281af9e616a0d144154b88c8f8"],["/react/build/static/css/126.29d035e4.chunk.css","8db2dbc3b0e28dfff360fd151c826908"],["/react/build/static/css/127.b0c02465.chunk.css","39804227bbb3e0dfddf4e74eb4929fd6"],["/react/build/static/css/128.f8c05310.chunk.css","f31eea02e4f9d8aac6e80e03768ff6fb"],["/react/build/static/css/129.2646da34.chunk.css","fd35f6d45b8f2b74b2b2fc747da42787"],["/react/build/static/css/130.71fa167b.chunk.css","e0ae2d8af498e04d4b844ed54a567632"],["/react/build/static/css/134.7f8e6148.chunk.css","b1414b4d54a0da2e8f095370e9717138"],["/react/build/static/css/135.e2a8a600.chunk.css","a3e000826e9e975f288a5067c577c213"],["/react/build/static/css/137.9d206204.chunk.css","e363ea281af9e616a0d144154b88c8f8"],["/react/build/static/css/138.9d206204.chunk.css","e363ea281af9e616a0d144154b88c8f8"],["/react/build/static/css/139.35b1feac.chunk.css","0b43c1534cd52029318ecc64bc16cd82"],["/react/build/static/css/140.cdd78914.chunk.css","c8fa03c8951406a0c6dedbc44275a66c"],["/react/build/static/css/141.142cff28.chunk.css","e2d1282e7d68f47cc9a754940877e251"],["/react/build/static/css/142.11a04942.chunk.css","1373d0214c811e25b7c1763ef9cf3287"],["/react/build/static/css/144.f2d58498.chunk.css","066d6c0531b358ea1561164d60bbfff3"],["/react/build/static/css/147.15253a67.chunk.css","cc03c8bd582e5fb3cf3cb57075905fe6"],["/react/build/static/css/148.8a2a0d50.chunk.css","3c152d150d71ca1d782cbce74e83545a"],["/react/build/static/css/151.adba6539.chunk.css","2a7331558acec08d91f6776ad403e5a1"],["/react/build/static/css/153.fd5c069f.chunk.css","dc736ebb1d70ad8f92c50296bc5c21c2"],["/react/build/static/css/154.cbc5dafa.chunk.css","0d00c4a2d6cc383c8b2a40a24378d281"],["/react/build/static/css/155.2f409942.chunk.css","6f1d0eaeed7a282caf0ce33adaef0898"],["/react/build/static/css/159.c0242127.chunk.css","3de2e94ba931d38eb377530c8ea1be89"],["/react/build/static/css/16.d00c3b40.chunk.css","8f0768612bc7511ef59e202eac390e94"],["/react/build/static/css/160.eac80071.chunk.css","24a49e89c076fc2163c3c0ef75ff1bda"],["/react/build/static/css/161.b76b27f8.chunk.css","e2bd1eaba1f733ff90b93e7d8ded98e5"],["/react/build/static/css/162.188a7db8.chunk.css","d365448e4d5cdef07410d3ba784e1364"],["/react/build/static/css/163.9df86194.chunk.css","dae2a89b8b4b9577d529ccdc67b2bd1b"],["/react/build/static/css/164.6e251532.chunk.css","bc6778dbb4d665d97ede1225dce71681"],["/react/build/static/css/165.f2060fe7.chunk.css","3dc3569f98f0d43324c3871cc5623426"],["/react/build/static/css/166.f9d1b577.chunk.css","f9b149d2ed650f6b4ec24b09d29f3e4e"],["/react/build/static/css/169.afe8c942.chunk.css","a3452dea4f6b7a262f3427f28351739a"],["/react/build/static/css/170.9d206204.chunk.css","e363ea281af9e616a0d144154b88c8f8"],["/react/build/static/css/18.3349c103.chunk.css","7609a57f8efbe2e4307d60d634f0bdec"],["/react/build/static/css/23.e9a6b828.chunk.css","78bde0953bda71d3e1aa88983d3058ee"],["/react/build/static/css/25.b974e0fe.chunk.css","21c7446e5eeade6c5a700477671eaa50"],["/react/build/static/css/31.86018bcd.chunk.css","e795affdc09e234ba4c3a608a69ed0f0"],["/react/build/static/css/33.c49cb260.chunk.css","9bd36204dd7d2b71b76a6cb4ae485d0b"],["/react/build/static/css/34.83b12348.chunk.css","550798bee0935bba4e464a69cd59ee63"],["/react/build/static/css/35.b49b3248.chunk.css","367767142ba7ff8b2eed4591abf57f6f"],["/react/build/static/css/36.03908a04.chunk.css","9885e74b2cbc5ecabdef2efc906535c4"],["/react/build/static/css/38.78a1ba5d.chunk.css","83a2ab1e5c6be84e927fda72b983d73e"],["/react/build/static/css/39.31a40792.chunk.css","35e86a2b3aec45e7e6f200a6681f89f6"],["/react/build/static/css/40.272de201.chunk.css","94b697bf1f3d4a0143de1fea9ea5e472"],["/react/build/static/css/41.c61ae118.chunk.css","37dce675a2709225c047150bb93768e2"],["/react/build/static/css/42.52eb0d35.chunk.css","b1020bda7b28bc980279fe905d34538a"],["/react/build/static/css/43.9a604c5a.chunk.css","7609a57f8efbe2e4307d60d634f0bdec"],["/react/build/static/css/44.40c3ce15.chunk.css","f40cb3ac1ab3cb8f8a2454dbdc132112"],["/react/build/static/css/45.3349c103.chunk.css","7609a57f8efbe2e4307d60d634f0bdec"],["/react/build/static/css/46.3349c103.chunk.css","7609a57f8efbe2e4307d60d634f0bdec"],["/react/build/static/css/47.3349c103.chunk.css","7609a57f8efbe2e4307d60d634f0bdec"],["/react/build/static/css/48.3349c103.chunk.css","7609a57f8efbe2e4307d60d634f0bdec"],["/react/build/static/css/49.3349c103.chunk.css","7609a57f8efbe2e4307d60d634f0bdec"],["/react/build/static/css/50.3349c103.chunk.css","7609a57f8efbe2e4307d60d634f0bdec"],["/react/build/static/css/51.ae174fc2.chunk.css","45cda4eb5fe28227ded4ee55ac39ab7e"],["/react/build/static/css/52.fa3fc947.chunk.css","ceb562599f22774f58b1c3dcdb556138"],["/react/build/static/css/53.77c696ba.chunk.css","5314e7f6ff601345e2cc90fc691e3729"],["/react/build/static/css/54.cc854e25.chunk.css","20c6c113a880bb3031f05e978ba5855a"],["/react/build/static/css/55.aa1aedbe.chunk.css","ad64c0eede853274fe7737a65d66d18b"],["/react/build/static/css/56.23e457c6.chunk.css","b7ea9928083ea35acce72ee289c77941"],["/react/build/static/css/57.f8ce57b7.chunk.css","d6d7a13f06f71440a953ce2798887469"],["/react/build/static/css/58.58e88442.chunk.css","4c607decefc5223e114b0c81b2a06a37"],["/react/build/static/css/59.a1819630.chunk.css","2e140b39ca87fb19bdb264111265be77"],["/react/build/static/css/61.0d3a2899.chunk.css","fe24a32a813e693d8c949c4e82dc424a"],["/react/build/static/css/62.6436558f.chunk.css","08727dcc716788b9207e6965eabd0c8a"],["/react/build/static/css/63.77c696ba.chunk.css","5314e7f6ff601345e2cc90fc691e3729"],["/react/build/static/css/64.77c696ba.chunk.css","5314e7f6ff601345e2cc90fc691e3729"],["/react/build/static/css/65.77c696ba.chunk.css","5314e7f6ff601345e2cc90fc691e3729"],["/react/build/static/css/67.fd083902.chunk.css","6f65bae71f11e62309c73d5b818f30f3"],["/react/build/static/css/69.080d6958.chunk.css","d9b5ca9cb767438bb42a4167d8c9141b"],["/react/build/static/css/70.f4d0dbc5.chunk.css","65ff755faaf716eed68dc683cf871379"],["/react/build/static/css/73.7b8a6eb0.chunk.css","e5a078261e06b47655db2e7181c7d7d6"],["/react/build/static/css/75.2b4fa75d.chunk.css","894748843894405d62402217fff3324b"],["/react/build/static/css/76.6c33255f.chunk.css","8ea627676ca571d3e799f311025dd3d5"],["/react/build/static/css/78.77c696ba.chunk.css","5314e7f6ff601345e2cc90fc691e3729"],["/react/build/static/css/79.0d02db5b.chunk.css","8ab34f94699b7e4d8b3545378ea5f22c"],["/react/build/static/css/81.a57f1da2.chunk.css","2d43c1b4ddd018365e98d91612caed0b"],["/react/build/static/css/83.6c33255f.chunk.css","8ea627676ca571d3e799f311025dd3d5"],["/react/build/static/css/85.fd3fa2e9.chunk.css","97c0f9c3d8d16c05584bec1ce645cda0"],["/react/build/static/css/86.7cbf3fad.chunk.css","d9494d9ee84229a3c5686f5927b83a66"],["/react/build/static/css/87.baa184fc.chunk.css","8bb801c726ed216b69daf77df16bc480"],["/react/build/static/css/89.45f2c69d.chunk.css","311388c729e0e94e12f092f8a4671ebb"],["/react/build/static/css/90.632d7855.chunk.css","226acc64dfa2fad8420e5eadf2d7b32d"],["/react/build/static/css/91.e68320f4.chunk.css","04ac3fea3db2a0623c8141c8b874c650"],["/react/build/static/css/92.5cc84842.chunk.css","8ea65ce507a9b9eafa61a7a489c17e3a"],["/react/build/static/css/93.25067aea.chunk.css","eee67c3a70bae328683974fddc54fca0"],["/react/build/static/css/94.d00c3b40.chunk.css","8f0768612bc7511ef59e202eac390e94"],["/react/build/static/css/95.adba6539.chunk.css","2a7331558acec08d91f6776ad403e5a1"],["/react/build/static/css/96.541803c4.chunk.css","56302d54d1a174818f1c3446779e2ec9"],["/react/build/static/css/97.9d206204.chunk.css","e363ea281af9e616a0d144154b88c8f8"],["/react/build/static/css/99.33abeff1.chunk.css","07181be567bdb103c3b473c97021176e"],["/react/build/static/css/main.1c22ad46.chunk.css","b0ae52f94ef836edb7e8546f2006fb3f"],["/react/build/static/js/0.1e823640.chunk.js","45721da2d7201aaf43a33829b7a49ca3"],["/react/build/static/js/1.a3f49b75.chunk.js","18bdf1b43ddc40f3bfbdf6beff141f69"],["/react/build/static/js/10.5d57494c.chunk.js","89e8ef943947487ea846e8dba4646774"],["/react/build/static/js/100.4178edfd.chunk.js","b0c7a84329b482d123f369aca5b984d5"],["/react/build/static/js/101.a67c19c5.chunk.js","4f5b84073b007a600ec218f503ec2aa9"],["/react/build/static/js/102.c59097b1.chunk.js","5db1bf366f956e564bf594223f675e71"],["/react/build/static/js/103.a4232f81.chunk.js","d72d37af57976f825af788d1df88c685"],["/react/build/static/js/104.4b3aca46.chunk.js","3b2c46220ee87d0903e0e5a2af378472"],["/react/build/static/js/105.3524f394.chunk.js","ccaba63a5ed8d493b4b24e74b8bf4f24"],["/react/build/static/js/106.74b0a6d7.chunk.js","e247bbf6128f04e991aa03c9187d5c20"],["/react/build/static/js/107.d879c8ac.chunk.js","fd4de39e2649ed100d902349160f0d1f"],["/react/build/static/js/108.6157b977.chunk.js","360d7a2b99ca2444d15088b52cc59ec1"],["/react/build/static/js/109.fe205168.chunk.js","4f1a21dc74124691f0c96020cb96df91"],["/react/build/static/js/11.1f5ac62f.chunk.js","021caa6c0798f23e952b4d71fc14481e"],["/react/build/static/js/110.38c12b0e.chunk.js","47a791cfbbdf7446444adeae6540c643"],["/react/build/static/js/111.a4058a9f.chunk.js","05814d4202f8ee15523df9c3ed24da78"],["/react/build/static/js/112.28e9bc48.chunk.js","c4c788bc167b760e208c5422e57d52c0"],["/react/build/static/js/113.6d1943d2.chunk.js","872a1564d3185caec5d3f2cb76707833"],["/react/build/static/js/114.042874e7.chunk.js","d90d5913375807242e599e66375388fe"],["/react/build/static/js/115.87597d14.chunk.js","1e8a8636fa0abad724268c470b19dcfd"],["/react/build/static/js/116.61dd2730.chunk.js","0fd2dd009b138129f59235ce8002c18a"],["/react/build/static/js/117.de6d28b2.chunk.js","376ca8b160eaf5ebf90709dd46885413"],["/react/build/static/js/118.d5a8be5d.chunk.js","3f01e13f1ba5921a753c12a67c40b8ac"],["/react/build/static/js/119.fc088db3.chunk.js","3afb1c4a7ba03430c13a16c381593bed"],["/react/build/static/js/12.4010faf5.chunk.js","f61159383544283d5a48c00fd4074839"],["/react/build/static/js/120.48a8a3b8.chunk.js","3d4fb1b7d0a38563f45cbdc56f741460"],["/react/build/static/js/121.9ee9bea2.chunk.js","f126f9219eee0e617b6b8f8704ca890d"],["/react/build/static/js/122.46bc3728.chunk.js","2c2051c56a9b1b8b02b4b64974b29b4b"],["/react/build/static/js/123.4d11449d.chunk.js","e600b2e81ca571043ad6f8e33e50a906"],["/react/build/static/js/124.6462abc7.chunk.js","05c5900e4ce72eb146687a0ccd86a660"],["/react/build/static/js/125.538a67ad.chunk.js","0ab1d1d06e2039aaada7a6c2e712669b"],["/react/build/static/js/126.6cc89a3f.chunk.js","822955ac4dcde3c523775c9b295093f3"],["/react/build/static/js/127.e1b16822.chunk.js","3f83308d8e579aa25bfb1adf90ae02c5"],["/react/build/static/js/128.84b3e0b9.chunk.js","4e5f5096f37507592336282863442db3"],["/react/build/static/js/129.45808ae0.chunk.js","7a35ac5acdc9941cadc7d2d2694e5923"],["/react/build/static/js/13.9c975527.chunk.js","65e48488e485895fa44c7c3c501cf145"],["/react/build/static/js/130.afdbdfe8.chunk.js","cc897d18099b587a7449083413f99c55"],["/react/build/static/js/131.b638d456.chunk.js","4b26dedff6b33caef2c3317761b2762c"],["/react/build/static/js/132.373df901.chunk.js","db524fe2b1622ab46370981a44a12d12"],["/react/build/static/js/133.9496d3db.chunk.js","0ce1f2a8b336217652fd6f885fb296d2"],["/react/build/static/js/134.dc53654d.chunk.js","6ba474424d881268ef4c986749773143"],["/react/build/static/js/135.ce9a7aca.chunk.js","c2854afa2c9ca02cb3a9ae46429e069e"],["/react/build/static/js/136.b8d4b397.chunk.js","e9ac570ec16a697575264184f19410e0"],["/react/build/static/js/137.953a1079.chunk.js","dcf4da976553448b8b2096bd200aed8f"],["/react/build/static/js/138.3039ee6e.chunk.js","d57a0bfde97cd6052238255744cb3c8a"],["/react/build/static/js/139.d2796ca1.chunk.js","b14a8d0ee371051449d6d31d5e57ce56"],["/react/build/static/js/14.16d9d702.chunk.js","d0b903ed96b32e08b4cb86610374ee69"],["/react/build/static/js/14.16d9d702.chunk.js.LICENSE.txt","3f38febb7ec0853370afd7711e190f17"],["/react/build/static/js/140.0295cdd0.chunk.js","de5ae3f4b39c02c12247a90b9019736e"],["/react/build/static/js/141.75fe6dc7.chunk.js","bd84e5238859cfceb1f99a07a230b54c"],["/react/build/static/js/142.2e279015.chunk.js","3451a98437f9527cb4ec2f8ee81cae01"],["/react/build/static/js/143.5776ff84.chunk.js","e8472e05512d74555c9c3dccb2a81dbf"],["/react/build/static/js/144.a7daa321.chunk.js","1fde334da46c80d9208f5baeefb6158b"],["/react/build/static/js/145.32dc61e1.chunk.js","ecb4b2f5995b4e37e47e340331cd7025"],["/react/build/static/js/146.afecdb1e.chunk.js","9c8838f19445a6fda0439e0b6a2b0f0b"],["/react/build/static/js/147.d8082eaa.chunk.js","c8b38bffb737004d712edc902748bb3f"],["/react/build/static/js/148.860c027c.chunk.js","2dbeae0fb7a7885c80eb2b8e42a98cb2"],["/react/build/static/js/149.96e01a8e.chunk.js","09caa465d07abdc2f1ada2d1ebfbc923"],["/react/build/static/js/15.3bbc0d09.chunk.js","5e5a7069c17314d59c2ab4cb11ac04df"],["/react/build/static/js/150.ba229347.chunk.js","3b647a59cc11263f326440130cb5b3c6"],["/react/build/static/js/151.31214f9b.chunk.js","7a4bb11bcaf9b0621272395f220a1af8"],["/react/build/static/js/152.cf56b812.chunk.js","783d8fb3c47c49f26e42cf86a5e972c6"],["/react/build/static/js/153.f7e5aa86.chunk.js","c38020eba4d3b0905d37a46aa0aa662e"],["/react/build/static/js/154.8cdda0e1.chunk.js","d1db38b95268229e152a9b58859d0c3e"],["/react/build/static/js/155.e3eba45c.chunk.js","da993ed0a4cdbb5025790eda1764cab4"],["/react/build/static/js/155.e3eba45c.chunk.js.LICENSE.txt","fcdec67230dc3e833b7e953c0272f12f"],["/react/build/static/js/156.0d4b4caf.chunk.js","7708b6264b25624b50a2cf9d48aa27bf"],["/react/build/static/js/157.e2de3d82.chunk.js","ddae04f14999ed1c4a04249b2d965003"],["/react/build/static/js/158.daa47354.chunk.js","2c1f6d7a1100771c96dcb81f9523284b"],["/react/build/static/js/159.3600f464.chunk.js","7a9aa8f47f0d20656c2ed8d49729d94f"],["/react/build/static/js/16.55818604.chunk.js","800a36dc58e7715504aabfff8dcb8656"],["/react/build/static/js/160.16516bcb.chunk.js","c126b30ee2eef1b39a39feda29ef2932"],["/react/build/static/js/161.40d10427.chunk.js","ded5a4e9b14a7bc7daa5c0f9fd7c1f1b"],["/react/build/static/js/162.35835116.chunk.js","23a60410bcc57e579e91efab5333076c"],["/react/build/static/js/163.381fc9f4.chunk.js","7951d0c1866ab228c8fddbcc3e23ed30"],["/react/build/static/js/164.5ef35c46.chunk.js","73541bf6f0c11d84d6e254ff59306a69"],["/react/build/static/js/165.5bc9f681.chunk.js","6a8758135598a3ad6494d39d0b6b0899"],["/react/build/static/js/166.8f00022f.chunk.js","2a466ffe3ca3c0b9f2e453d41154b40a"],["/react/build/static/js/167.7ed03905.chunk.js","7ae041b7ec0cf19400067bb0391dc524"],["/react/build/static/js/168.8bc0c725.chunk.js","327c630f9dfe07e4f5353a0c67c1179b"],["/react/build/static/js/169.c849c1a5.chunk.js","f929de1ed40d407fe813c81d882e720a"],["/react/build/static/js/17.53ff74d4.chunk.js","44165c6280f566040527c83d7b268df8"],["/react/build/static/js/170.3e2360e2.chunk.js","23a96b05e737e4ca2b6ef844a21e43e4"],["/react/build/static/js/171.451e93e4.chunk.js","055a70709b6ab826535ba19e597986a3"],["/react/build/static/js/172.b46e31bc.chunk.js","e369ccba288a101b1d368577fcb67a7b"],["/react/build/static/js/173.7fac2de2.chunk.js","5ea31e764a397c8e488388a0a9c112e9"],["/react/build/static/js/174.069f74b3.chunk.js","daa3e780b986e94f72c16eb5fb8eaf57"],["/react/build/static/js/175.27c9dd4a.chunk.js","4a5d682b26ea413a63ab1581f993910f"],["/react/build/static/js/176.40d9d54a.chunk.js","bc755e8ef495e2e8701bd558b3f759c4"],["/react/build/static/js/177.caee8c8b.chunk.js","0e3873728536d2b8e708938a2277885b"],["/react/build/static/js/178.25a53407.chunk.js","2b2b9d842ee89ff0fb467015d3ba46d5"],["/react/build/static/js/179.0d1e5764.chunk.js","edbca318e394f293468310fa8c9ef1c6"],["/react/build/static/js/18.4e644506.chunk.js","8e840ff16683e07968e0df1bbfd9f36f"],["/react/build/static/js/18.4e644506.chunk.js.LICENSE.txt","0fe285359781848f9c7ec59a47831ac6"],["/react/build/static/js/180.94079aa6.chunk.js","92fe4e822e5803036f1b4fbe7fbf39be"],["/react/build/static/js/181.0c04b22e.chunk.js","43c841c5526346a5a8dc7714e1c0a9a1"],["/react/build/static/js/182.a564fbd4.chunk.js","031f3072655cacf9c6c13258d6738dc6"],["/react/build/static/js/183.8251527c.chunk.js","38d904b00721784968fab893d10694f5"],["/react/build/static/js/184.cde1c99c.chunk.js","a7a55059ecec429e3f50eec3da1d5b36"],["/react/build/static/js/185.4f968d5b.chunk.js","c9b74c66291530ed8f4129921fcc6306"],["/react/build/static/js/186.8c78f8e9.chunk.js","b6c8671f5a8ae729efc7b255a24b7ef7"],["/react/build/static/js/187.12241cf0.chunk.js","0d7e1ef5de11182690ab644db69f29c5"],["/react/build/static/js/188.36f54eb2.chunk.js","4fdcf71094f46b71fce09196a7b70870"],["/react/build/static/js/188.36f54eb2.chunk.js.LICENSE.txt","4f1146fdc0f5ea0ec8ff015c61028af4"],["/react/build/static/js/189.6dbbcdae.chunk.js","d595c522189bd2801849058ae2b9fe6f"],["/react/build/static/js/19.eebf9a2e.chunk.js","1011d0298ec17202a49b22b748e9587b"],["/react/build/static/js/190.1dc2fe02.chunk.js","ffab8e84385f16a66ddf2612e4830714"],["/react/build/static/js/191.52bbee63.chunk.js","0b17d2e7d82e6d3c6be002c32ded181f"],["/react/build/static/js/192.b3a1b18a.chunk.js","d91acbbd434d347b1b8fde8d2874775b"],["/react/build/static/js/193.199d86cb.chunk.js","9f70da18e048e1796fcb34a7e9e1bfed"],["/react/build/static/js/194.540e0319.chunk.js","bde3e0774c7240e68c542b9edce14527"],["/react/build/static/js/195.a6f2aa3f.chunk.js","13b680cee6e662abdda37f1a373b8d37"],["/react/build/static/js/196.1e52fd07.chunk.js","16da78aa885199d66a1a973397b50851"],["/react/build/static/js/197.070dabc2.chunk.js","d04ed265a9f3fe60b84f670ed2d79439"],["/react/build/static/js/198.c3e8ba9e.chunk.js","60df52bc1daa19bc620296bca1279642"],["/react/build/static/js/199.34119d57.chunk.js","a17769474aecdada85d5dff3ae6f28d8"],["/react/build/static/js/2.f82b78e4.chunk.js","f38dd3ed0165be94c97c1bd5ef915d45"],["/react/build/static/js/20.284f2783.chunk.js","ba66a343002b2f618b5729022b076565"],["/react/build/static/js/200.99d8ab40.chunk.js","7cd4c498845a8c788d68acfdcd360982"],["/react/build/static/js/201.fa495e21.chunk.js","dd7a3355fbfbed36045f66ff541e536f"],["/react/build/static/js/202.9cdc18ea.chunk.js","27de550f7ffebc9bd4b0a68b1542f117"],["/react/build/static/js/203.8f4707f3.chunk.js","8c75007077d4af9902817ab3ef0a7043"],["/react/build/static/js/204.13068e4c.chunk.js","7d8c16a5075856712607ef9f7569eff6"],["/react/build/static/js/205.e06081e9.chunk.js","55b0bead8ef7cdf54ede73d234463d62"],["/react/build/static/js/206.c8063f04.chunk.js","c5d55e2197707a837e674dacb423822e"],["/react/build/static/js/207.327abb38.chunk.js","0c49128a01b48ba81b4c23499c98668f"],["/react/build/static/js/208.c7ed6e86.chunk.js","a5924b1ae64719cf274a1885cbdd1d03"],["/react/build/static/js/209.784888b8.chunk.js","1d7db1df9a35aaca343221d4c9260d40"],["/react/build/static/js/21.87747961.chunk.js","1ea4a9e76d01842b73af45dc043a0723"],["/react/build/static/js/210.2befcba4.chunk.js","dfbef11f18089f545848a15024d31fc0"],["/react/build/static/js/211.87c813ce.chunk.js","d1cf99458ba102230a2019adb77903af"],["/react/build/static/js/212.0ea51603.chunk.js","ba0fa36ee8228bc29de17c758ae145cf"],["/react/build/static/js/213.3774530e.chunk.js","76643ccd01b06fe09c501cafff4d47b8"],["/react/build/static/js/214.17026bfe.chunk.js","9d9aa97d1fa86960bf36c11806b34e03"],["/react/build/static/js/215.739665c3.chunk.js","5b4546d9311d0ab6b49b6168c11b300e"],["/react/build/static/js/216.1b0cea7e.chunk.js","cabad778e1b0cbf715e176d2124c2347"],["/react/build/static/js/217.7ab45d1b.chunk.js","02aa5ce06dcc2c2eb15361977f448be6"],["/react/build/static/js/218.1ac79486.chunk.js","097d93aea654adc1794aaa624fd45245"],["/react/build/static/js/219.e959b8a1.chunk.js","82bdc7df6c593a7afd1d3c88e5f32a73"],["/react/build/static/js/22.95d46cd0.chunk.js","be37a53e65a15753e69a1fd5979b43a4"],["/react/build/static/js/220.31a5ba02.chunk.js","a933809f04667d27deb43c9f67b2527f"],["/react/build/static/js/221.327b4258.chunk.js","ead3fcc0f1b954498bebefab8ead91fa"],["/react/build/static/js/222.5fdb8c3a.chunk.js","603197835445917097f554256139f1eb"],["/react/build/static/js/223.3455cc45.chunk.js","fdc98b4038bbef2cd47ef19da0bca7e2"],["/react/build/static/js/224.087cf2c5.chunk.js","a8c989479346cc0d2cbe36541ecf2e41"],["/react/build/static/js/225.414ee067.chunk.js","2fcb319e191b890d0765c4aff51a5f57"],["/react/build/static/js/226.8ddaac32.chunk.js","b50bae9ff8fa55bda81f83af65cddb22"],["/react/build/static/js/227.7380ae56.chunk.js","fef2c2d7dcffd57b211d09c0ac784a2a"],["/react/build/static/js/228.e3e9d8b1.chunk.js","8d64ea1a6ef4dfa173a50e719c1ad04e"],["/react/build/static/js/229.9b757215.chunk.js","d47a86063cc234a65a700d98c38b4056"],["/react/build/static/js/23.42722fcc.chunk.js","e59aa8564aa371f9b72a6538d5bcda5e"],["/react/build/static/js/230.cb5092cc.chunk.js","d493343f6818927090bfa7b83f7c14d4"],["/react/build/static/js/231.baba7ee5.chunk.js","0107b9be7d76c723a5be6bb153c25400"],["/react/build/static/js/231.baba7ee5.chunk.js.LICENSE.txt","44e596d4025e742ceac0184abfaec4c1"],["/react/build/static/js/232.e65fcb24.chunk.js","3c172d6484ce617913ca6d7698824eb6"],["/react/build/static/js/233.398ac79a.chunk.js","03c028e9fbc4f777c73927ebedaf3634"],["/react/build/static/js/234.1a29e0be.chunk.js","c5e531b4334e44d535b6874133ae0cc3"],["/react/build/static/js/235.7ac70964.chunk.js","5e50e9655f48b118c973cd058857e665"],["/react/build/static/js/236.5faea8f8.chunk.js","df7f614173c1332294380eb571e770f3"],["/react/build/static/js/24.b980566a.chunk.js","7aa2236bf24810083f3c5e306076ab2a"],["/react/build/static/js/25.a1e11e9d.chunk.js","9ded915ee863f993c3605e2ad2932639"],["/react/build/static/js/26.169941b2.chunk.js","5eb43469174cee265a3a3b9ee4b95ef3"],["/react/build/static/js/27.824008b5.chunk.js","74c992c7b7ca233a7bbe42d1106daf03"],["/react/build/static/js/28.e993143d.chunk.js","33df9206d5275619cd319f54989ccf1b"],["/react/build/static/js/29.933644b1.chunk.js","e16fe26c08ff477131448656a80b9ffe"],["/react/build/static/js/3.46a20049.chunk.js","093ee7e04a385e66a9bcc08ddb8f2b76"],["/react/build/static/js/3.46a20049.chunk.js.LICENSE.txt","3272e604229cc6717be4820aa72c1de1"],["/react/build/static/js/30.07ea891e.chunk.js","45fc146f6aa90d4a5df22a9b64b1d198"],["/react/build/static/js/31.ebf46828.chunk.js","0648354be5da180f081e615a33003cfb"],["/react/build/static/js/32.f486af7c.chunk.js","ae30266210081a3e6bc342424e0ae7d1"],["/react/build/static/js/33.83e2ca86.chunk.js","045792d714d2da483ffe4c5d169dbac6"],["/react/build/static/js/33.83e2ca86.chunk.js.LICENSE.txt","32d448a21f0d79e5d20237d007950f7b"],["/react/build/static/js/34.f7f6ac84.chunk.js","7ec91517154d9a952fc59e923d10d1c6"],["/react/build/static/js/35.b81d7469.chunk.js","25a61c35389e9a857a2d69aa3318d030"],["/react/build/static/js/35.b81d7469.chunk.js.LICENSE.txt","e896d2f499e1af95c3fa46ec439da4c5"],["/react/build/static/js/36.d459a23a.chunk.js","d01cfefe5eb63742a3a79efafbf6911c"],["/react/build/static/js/36.d459a23a.chunk.js.LICENSE.txt","7d243dbc2582aeec65a460f3533b611c"],["/react/build/static/js/37.9bab9d18.chunk.js","0cc4401d906d9a4cd143f398667d18c0"],["/react/build/static/js/38.7378aa11.chunk.js","21f68c3be751ad8a60e23cddcab921a4"],["/react/build/static/js/39.bf8cb650.chunk.js","44cdd027661bb28cff087b9e0bfee36e"],["/react/build/static/js/39.bf8cb650.chunk.js.LICENSE.txt","b29d583034b0fc75b39d158179dd51ca"],["/react/build/static/js/4.20159e9a.chunk.js","f861a3957d152716187cdaced2aeb354"],["/react/build/static/js/40.ca38e2c3.chunk.js","f8277127276eb95d470cc392d74142e5"],["/react/build/static/js/40.ca38e2c3.chunk.js.LICENSE.txt","abc223908bf5b2626b439de3f70890b7"],["/react/build/static/js/41.ceb8ef65.chunk.js","7e402f353ccb98119459b3852c7381c0"],["/react/build/static/js/42.acf4898c.chunk.js","b39111fd1b9db53d3951954d92f939b8"],["/react/build/static/js/42.acf4898c.chunk.js.LICENSE.txt","14682e4a4f22c138b52d0ee595112097"],["/react/build/static/js/43.b97744f3.chunk.js","2b41e5db72a194a9448fc87ca531f903"],["/react/build/static/js/43.b97744f3.chunk.js.LICENSE.txt","54ef871b39f8019ad0a2069cbe66ef1b"],["/react/build/static/js/44.00a692c9.chunk.js","432051341fdd49ce078ef14e56704ccf"],["/react/build/static/js/44.00a692c9.chunk.js.LICENSE.txt","cf40554b59de715fe749d58c1fefea2a"],["/react/build/static/js/45.f9737ea8.chunk.js","73237ef5a1093fe7a5ca02dfbdae41b5"],["/react/build/static/js/45.f9737ea8.chunk.js.LICENSE.txt","69347ee9b86c00f3acedd347cd3915d8"],["/react/build/static/js/46.fa98ee01.chunk.js","56ab01e8a8bca4d14e48cd7705da25a0"],["/react/build/static/js/46.fa98ee01.chunk.js.LICENSE.txt","a83e50b1a73aab4229397e7b7bba0f01"],["/react/build/static/js/47.a3b89180.chunk.js","8aa979845eca8a10c18c7d97b9225127"],["/react/build/static/js/47.a3b89180.chunk.js.LICENSE.txt","22f20206c9637371a0f3918ad4f87de2"],["/react/build/static/js/48.5f6dcfc7.chunk.js","358035d345b5765133905a3908f142c9"],["/react/build/static/js/48.5f6dcfc7.chunk.js.LICENSE.txt","2a64144b6f1b4a028d43435f1b19fe16"],["/react/build/static/js/49.1ed8f2b7.chunk.js","8ec557d6afbc47caf2160aca56c2879d"],["/react/build/static/js/49.1ed8f2b7.chunk.js.LICENSE.txt","f82ffc411865638ec29ab49b79a6a7f6"],["/react/build/static/js/5.8ff9211c.chunk.js","bcaf3bdf1c753b5e80072a3364ebb630"],["/react/build/static/js/50.54725a38.chunk.js","560df958d3dff8d9afe1fd30ce376345"],["/react/build/static/js/50.54725a38.chunk.js.LICENSE.txt","65000746d6e55da8ddfa7ad47ed18ce9"],["/react/build/static/js/51.5dd9f4b7.chunk.js","aac6984b24598dd03f1e3af28612b23a"],["/react/build/static/js/52.0c0d191f.chunk.js","e38973c93e3d6706e54468a22f4f441b"],["/react/build/static/js/53.77de9cd1.chunk.js","9e9082cebfea4448248c3e59408e8cd6"],["/react/build/static/js/54.77076a0a.chunk.js","613056c5d988189057c13b9f9d444fff"],["/react/build/static/js/55.b46b7d4d.chunk.js","31fc75f40caa13ecb0a30fd99497d528"],["/react/build/static/js/56.74ba7504.chunk.js","f6c5d599320880088535ea2d3d6c3fbe"],["/react/build/static/js/57.e767156a.chunk.js","6dfd51de0650004c990daf764b5ac09f"],["/react/build/static/js/58.a53b7df0.chunk.js","10beb2a42b4385b753c25a16053e2f21"],["/react/build/static/js/59.2e04bad6.chunk.js","e10de8d76838d4760569147f39cd6c4e"],["/react/build/static/js/6.eb908dba.chunk.js","1402cdb1186e2475fe55ea5439ea0323"],["/react/build/static/js/60.f5860e69.chunk.js","655a04ffb9c9f0f4c4d3db5237f26094"],["/react/build/static/js/61.dbc677ba.chunk.js","9a3fe44bdd2d647bf647e234da92d888"],["/react/build/static/js/62.5eb0cb7a.chunk.js","f7fa636d0d45c59fccfcb94d2b1771de"],["/react/build/static/js/63.1b91fdfb.chunk.js","c141c1b41f5929358605662c167427f1"],["/react/build/static/js/64.d2ecb36c.chunk.js","205430d3d9408679dc02ef969b8d5158"],["/react/build/static/js/65.b581ae9c.chunk.js","eacd3f706aed875c175f1b0b723bca5f"],["/react/build/static/js/66.80d4ea20.chunk.js","7e9ab50fe7b83714ffc628b661501281"],["/react/build/static/js/67.164de9fd.chunk.js","1312f1095b924103b1ae1817818da0e9"],["/react/build/static/js/68.acf29001.chunk.js","01e4090ef33e236f305aa9373e7948db"],["/react/build/static/js/69.be829382.chunk.js","ea72eb4136263e783d7f982d5b67f1e6"],["/react/build/static/js/7.8f71ee20.chunk.js","83165582069c0063df3621e3f23af13e"],["/react/build/static/js/70.14c57a30.chunk.js","f60395b83340d4b92a90e9b70067d094"],["/react/build/static/js/71.8d679ee5.chunk.js","86f8d762153de7ff77135c54f94a5425"],["/react/build/static/js/72.93926cd1.chunk.js","049616f585218c517ac9ed975034356a"],["/react/build/static/js/73.fd9f9d84.chunk.js","f37517c725175400777da35faaf35c42"],["/react/build/static/js/74.267372ea.chunk.js","c8306aab184c05de6552154e3149f056"],["/react/build/static/js/75.a50877df.chunk.js","f2ca9b11d5ba79dbeefb954ad1473f8b"],["/react/build/static/js/76.ebb26a68.chunk.js","9d222678352ba1bd345b4e31fadda50a"],["/react/build/static/js/77.99f2145b.chunk.js","5775f5703c7d711d85fe6aa7b40a8912"],["/react/build/static/js/78.9854a8e7.chunk.js","88ebde9c72152b6f2337c5af703ca51d"],["/react/build/static/js/79.9b4f7da2.chunk.js","2ba135453628c2714be132500ad44cfe"],["/react/build/static/js/8.20bb61ca.chunk.js","b5934e3eb68b0e5660c33c3dc6f48c80"],["/react/build/static/js/80.77821bb8.chunk.js","b7e0987473b59f0ae69795de92090d79"],["/react/build/static/js/81.33eab1ec.chunk.js","b3652dee58d0e33e4b25e71894d2d8cf"],["/react/build/static/js/82.de7116c6.chunk.js","51174b5a97e1ffc6b76aa24d5101a1fa"],["/react/build/static/js/83.7f9ec67f.chunk.js","5d1f7b5f708b179fc7598151cbd5d93d"],["/react/build/static/js/84.fe98cbea.chunk.js","50c1d53e38fb344e5729b05e498d0655"],["/react/build/static/js/85.09f4ca4f.chunk.js","928e60a36d2969626a362720b6950789"],["/react/build/static/js/86.7a61954d.chunk.js","dc047add5f2c081eb4a6b3d001d431ad"],["/react/build/static/js/87.db274cc2.chunk.js","aa5fdaec3416095af2a165b1b2270332"],["/react/build/static/js/88.9f37ef14.chunk.js","6dac108d63da0b957686b94e42af7f40"],["/react/build/static/js/89.bc58c018.chunk.js","60c6cbfa6fc72bb299d2161e1b0ba7b1"],["/react/build/static/js/9.1c530f20.chunk.js","e74c8167aab85fac537984b46d130cf6"],["/react/build/static/js/90.593e5583.chunk.js","218dcd31c8d57705894ec87ed5b58076"],["/react/build/static/js/91.548a5403.chunk.js","866672db35157df47b977fddd70685e9"],["/react/build/static/js/92.53b4a993.chunk.js","3386a33844992036db6a1781c5702f25"],["/react/build/static/js/93.07239869.chunk.js","a6fc3edbeb09fefcab0f1bceb369207b"],["/react/build/static/js/94.30e4a330.chunk.js","9814803251fb27d62bb5d6dc8f4c590d"],["/react/build/static/js/95.1e5bcd5c.chunk.js","ef70124580461c79338ee3c36f7a0b04"],["/react/build/static/js/96.a2121c35.chunk.js","9f0752123f9d1be49eda0fb7f6302627"],["/react/build/static/js/97.4928d673.chunk.js","18f3ae448e247fc32e5708d6c9c9f696"],["/react/build/static/js/98.f30ba0ed.chunk.js","e326f4b508f08250de6b21b6e141bbe9"],["/react/build/static/js/99.5bb864ec.chunk.js","eecf2a28f789de1abc81f58888759d92"],["/react/build/static/js/main.c9b29b15.chunk.js.LICENSE.txt","5632722be14bb98a672bb02fc479f3fa"],["/react/build/static/js/runtime~main.aa053193.js","ee85bed1c566ff9dd9bf00d9f4af1bfd"],["/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.c3c2eb57.png","917f62f518c37b814260765ba69918e3"],["/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/botOneBg.4fb56df5.png","674a61ccd29c392bed8827e1772f534c"],["/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/emp.35f6c709.png","ab4edd69519dcd864dae83950032e73f"],["/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.0c13ef7b.svg","e901b31c05db2687384f2ec438d8102a"],["/react/build/static/media/github2.7d5cc0ba.svg","14ac06d35d1de63b1d0cb69d347510c8"],["/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.31c2c65b.svg","e460558d48a47bfda068f0fbae063204"],["/react/build/static/media/image21.01d0caf7.svg","e5f5f0c37759e488a96306eea799569a"],["/react/build/static/media/image22.d4d77f6c.svg","1abe104b8da60da858be6b21f2d0c62a"],["/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/phone.8973db9e.svg","ac92ccc6336d53cf0e5d53a386eadd78"],["/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/softDetailHeadBg.b2bae10a.png","6b1379c5abf77af7fecbabb1368f1d96"],["/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","27424a6e40c70ed4c68b96c0215841f1"]],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/162.52701007.chunk.js b/static/js/162.35835116.chunk.js similarity index 78% rename from static/js/162.52701007.chunk.js rename to static/js/162.35835116.chunk.js index c88c9b379..29b48ed8e 100644 --- a/static/js/162.52701007.chunk.js +++ b/static/js/162.35835116.chunk.js @@ -1 +1 @@ -(this.webpackJsonp=this.webpackJsonp||[]).push([[162],{dEUZ:function(e,t,a){},p6ow:function(e,t,a){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n=d(a("W9HT")),r=d(a("NUBc")),l=function(e,t){if(Array.isArray(e))return e;if(Symbol.iterator in Object(e))return function(e,t){var a=[],n=!0,r=!1,l=void 0;try{for(var u,i=e[Symbol.iterator]();!(n=(u=i.next()).done)&&(a.push(u.value),!t||a.length!==t);n=!0);}catch(e){r=!0,l=e}finally{try{!n&&i.return&&i.return()}finally{if(r)throw l}}return a}(e,t);throw new TypeError("Invalid attempt to destructure non-iterable instance")};a("T2oS"),a("DjyN");var u=a("cDcd"),i=d(u),c=a("spEH");a("dEUZ");var o=d(a("vDqi")),s=d(a("2CTR")),f=a("sYIF");function d(e){return e&&e.__esModule?e:{default:e}}a("eO8H"),t.default=function(e){var t=(0,u.useState)(void 0),a=l(t,2),d=a[0],m=a[1],p=(0,u.useState)(1),h=l(p,2),g=h[0],E=h[1],v=(0,u.useState)(0),b=l(v,2),y=b[0],N=b[1],_=(0,u.useState)(!0),w=l(_,2),S=w[0],x=w[1],j=e.project,I=e.match.params.owner,T=e.match.params.projectsId;return(0,u.useEffect)((function(){if(j){var e=j.name,t=j.author;document.title="贡献者列表-"+t.name+"/"+e}}),[j]),(0,u.useEffect)((function(){I&&T&&function(){x(!0);var e="/"+I+"/"+T+"/contributors.json";o.default.get(e,{params:{limit:20,page:g}}).then((function(e){e&&(m(e.data.list),N(e.data.total_count),x(!1))})).catch((function(e){}))}()}),[I,T,g]),i.default.createElement(c.WhiteBack,null,i.default.createElement(n.default,{spinning:S},i.default.createElement("div",{className:"boxPanel"},i.default.createElement("p",{className:"font-18 padding10-20",style:{borderBottom:"1px solid #eee"}},"贡献者列表"),d&&d.length>0?i.default.createElement("div",{className:"contrbuteList"},d.map((function(e,t){return i.default.createElement(c.AlignCenter,{className:"mb15"},i.default.createElement("img",{alt:"",style:{borderRadius:"50%",marginRight:"10px"},src:(0,f.getImageUrl)("/"+e.image_url),width:"50px",height:"50px"}),i.default.createElement("div",null,i.default.createElement("a",{href:e.id?"/"+e.login:"mailto:"+e.email,className:"font-16"},e.name),i.default.createElement("p",{className:"font-12 color-grey-9"},"提交",e.contributions,"次",e.contribution_perc?" I 贡献占比"+e.contribution_perc:"")))}))):"",d&&0===d.length?i.default.createElement(s.default,{_html:"暂无贡献者"}):"",y>20?i.default.createElement("div",{className:"mt20 edu-txt-center"},i.default.createElement(r.default,{simple:!0,pageSize:20,onChange:function(e){E(e)},current:g,total:y})):"")))}}}]); \ No newline at end of file +(this.webpackJsonp=this.webpackJsonp||[]).push([[162],{dEUZ:function(e,t,a){},p6ow:function(e,t,a){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n=d(a("W9HT")),r=d(a("NUBc")),l=function(e,t){if(Array.isArray(e))return e;if(Symbol.iterator in Object(e))return function(e,t){var a=[],n=!0,r=!1,l=void 0;try{for(var u,i=e[Symbol.iterator]();!(n=(u=i.next()).done)&&(a.push(u.value),!t||a.length!==t);n=!0);}catch(e){r=!0,l=e}finally{try{!n&&i.return&&i.return()}finally{if(r)throw l}}return a}(e,t);throw new TypeError("Invalid attempt to destructure non-iterable instance")};a("T2oS"),a("DjyN");var u=a("cDcd"),i=d(u),c=a("spEH");a("dEUZ");var o=d(a("vDqi")),s=d(a("2CTR")),f=a("sYIF");function d(e){return e&&e.__esModule?e:{default:e}}a("eO8H"),t.default=function(e){var t=(0,u.useState)(void 0),a=l(t,2),d=a[0],m=a[1],p=(0,u.useState)(1),h=l(p,2),g=h[0],E=h[1],v=(0,u.useState)(0),b=l(v,2),y=b[0],N=b[1],_=(0,u.useState)(!0),w=l(_,2),S=w[0],x=w[1],j=e.project,I=e.match.params.owner,T=e.match.params.projectsId;return(0,u.useEffect)((function(){if(j){var e=j.name,t=j.author;document.title="贡献者列表-"+t.name+"/"+e}}),[j]),(0,u.useEffect)((function(){I&&T&&function(){x(!0);var e="/"+I+"/"+T+"/contributors.json";o.default.get(e,{params:{limit:20,page:g}}).then((function(e){e&&(m(e.data.list),N(e.data.total_count),x(!1))})).catch((function(e){}))}()}),[I,T,g]),i.default.createElement(c.WhiteBack,null,i.default.createElement(n.default,{spinning:S},i.default.createElement("div",{className:"boxPanel"},i.default.createElement("p",{className:"font-18 padding10-20",style:{borderBottom:"1px solid #eee"}},"贡献者列表"),d&&d.length>0?i.default.createElement("div",{className:"contrbuteList"},d.map((function(e,t){return i.default.createElement(c.AlignCenter,{className:"mb15"},i.default.createElement("img",{alt:"",style:{borderRadius:"50%",marginRight:"10px"},src:(0,f.getImageUrl)("/"+e.image_url),width:"50px",height:"50px"}),i.default.createElement("div",null,i.default.createElement("a",{href:e.login?"/"+e.login:"mailto:"+e.email,className:"font-16"},e.name),i.default.createElement("p",{className:"font-12 color-grey-9"},"提交",e.contributions,"次",e.contribution_perc?" I 贡献占比"+e.contribution_perc:"")))}))):"",d&&0===d.length?i.default.createElement(s.default,{_html:"暂无贡献者"}):"",y>20?i.default.createElement("div",{className:"mt20 edu-txt-center"},i.default.createElement(r.default,{simple:!0,pageSize:20,onChange:function(e){E(e)},current:g,total:y})):"")))}}}]); \ No newline at end of file diff --git a/static/js/52.0c0d191f.chunk.js b/static/js/52.0c0d191f.chunk.js new file mode 100644 index 000000000..81a247ec6 --- /dev/null +++ b/static/js/52.0c0d191f.chunk.js @@ -0,0 +1 @@ +(this.webpackJsonp=this.webpackJsonp||[]).push([[52,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=(r=n("cDcd"))&&r.__esModule?r:{default:r},i=n("sYIF");t.default=function(e){var t=e.treeValuePath,n=e.returnUlr,r=e.returnMain,s=e.getPathUrl,o=e.identifier;return a.default.createElement("li",{className:"listtablepath"},a.default.createElement("p",null,a.default.createElement("a",{onClick:r,className:"color-blue"},o),t.map((function(e,r){return a.default.createElement(a.default.Fragment,{key:r},r===t.length-1?a.default.createElement("span",{className:"color-grey-6 subFileName",key:r},(0,i.returnbar)(e)):a.default.createElement("a",{onClick:function(){return n(""+s(t,r+1))},className:"color-blue subFileName"},(0,i.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,g=_.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||g;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(h,{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"},maxLength:100})))):""))),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),b=o.default.create({name:"UserSubmitForm"})(w);t.default=b},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:"updateDocumentTitle",value:function(){var e=this.props,t=e.projectDetail,n=e.treeValuePath,r=e.location,a=r&&-1===r.search.indexOf("edit");if(t&&n){var i=t.author,s=t.name;document.title=(a?n.join("/"):"编辑"+n[n.length-1])+"-"+i.name+"/"+s}}},{key:"render",value:function(){var e=this,t=this.props,n=t.detail,o=t.current_user,d=t.isManager,c=t.isDeveloper,m=t.currentBranch,_=t.platform,g=t.md,h=t.type,w=-1===this.props.history.location.search.indexOf("edit"),b=this.state,y=b.language,v=b.languages,k=b.description,x=o&&o.login&&(d||c),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"},g&&w&&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]}(n&&n.size))),u.default.createElement("p",{className:"text-right"},x&&_&&u.default.createElement("div",null,w?u.default.createElement("span",null,n.direct_download?"":u.default.createElement("span",null,u.default.createElement("a",{onClick:function(){return e.DownLoadFile(n.download_url)},className:"ml20"},u.default.createElement("i",{className:"iconfont icon-xiazai1 font-15 color-grey-6"})),2!==h&&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!==h&&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,n.image_type?u.default.createElement("div",{className:"edu-txt-center pt20 pb20"},u.default.createElement("img",{alt:"",src:n.download_url,style:{maxWidth:"80%"}})):n.direct_download?u.default.createElement("div",{className:"mt20 text-center"},u.default.createElement("a",{href:n.download_url,className:"color-blue font-15"},"下载原始文件")):g&&w?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:"/"+n.path,content:n.content,readOnly:w,editorType:"update",currentBranch:m,descName:n&&"Update "+n.name}))))}}]),t}(c.Component);t.default=w},FRFo:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=s(n("3S7+"));n("5Dmo");var a=n("cDcd"),i=s(a);function s(e){return e&&e.__esModule?e:{default:e}}function o(e){var t=e.beforeText,n=e.afterText,s=e.className,o=e.inputId,l=e.timeOut,d=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")}((0,a.useState)((function(){return t})),2),c=d[0],u=d[1],m=(0,a.useCallback)((function(){var e=document.querySelector("#"+o);e&&(e.select(),document.execCommand("copy")&&document.execCommand("copy"),document.getSelection().removeAllRanges(),u(n),l&&setTimeout((function(){u(t)}),1500))}),[]);return i.default.createElement(r.default,{placement:"top",title:c,onVisibleChange:function(){u(t)}},i.default.createElement("i",{className:"iconfont icon-fuzhiicon cursor "+s,style:{color:"#466aff"},onClick:m}))}o.defaultProps={beforeText:"复制链接",afterText:"复制成功",className:"",inputId:"copyText",timeOut:!0},t.default=(0,a.memo)(o)},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=(r=n("cDcd"))&&r.__esModule?r:{default:r},i=n("eO8H"),s=n("PhNK"),o=n("QuzT"),l={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,d=e.projectsId,c=e.platform;return a.default.createElement("li",null,a.default.createElement("span",null,!c&&t.image_type?a.default.createElement("span",null,a.default.createElement("i",{className:"iconfont "+l[""+t.type]+" mr8"}),t.name):"submodule"===t.type?t.submodule_git_url?a.default.createElement(a.default.Fragment,null,a.default.createElement("a",{href:""+t.submodule_git_url.slice(0,t.submodule_git_url.length-4),target:"_self"},a.default.createElement("i",{className:"iconfont "+l[""+t.type]+" mr8"}),t.name),a.default.createElement("span",{className:"ml2"},"@"),a.default.createElement("a",{href:t.submodule_git_url.slice(0,t.submodule_git_url.length-4)+"/commits/"+(0,s.truncateCommitId)(t.sha),title:t.sha},(0,s.truncateCommitId)(t.sha))):a.default.createElement(a.default.Fragment,null,a.default.createElement("i",{className:"iconfont "+l[""+t.type]+" mr8"}),t.name,a.default.createElement("span",{className:"ml2"},"@"),a.default.createElement("span",{title:t.sha},(0,s.truncateCommitId)(t.sha))):a.default.createElement("a",{onClick:function(){return n(t.path,t.type,t.name)}},a.default.createElement("i",{className:"iconfont "+l[""+t.type]+" mr8"}),t.name)),a.default.createElement("span",{title:"init project"},a.default.createElement(i.Link,{to:"/"+r+"/"+d+"/commits/"+(0,s.truncateCommitId)(""+(t.commit&&t.commit.sha)),title:t.commit&&t.commit.message},(0,o.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&&a.default.createElement("span",{className:"infoCount"},r.total_count)),r&&r.total_count>0?r.list.map((function(e,r){return 0===r&&a.default.createElement(i.AlignTop,{className:"mt10"},a.default.createElement("div",null,a.default.createElement("p",{className:"font-16 color-grey-6",style:{display:"flex",alignItems:"center"}},a.default.createElement(s.Link,{to:{pathname:"/"+t+"/"+n+"/releases",query:{turnFromNew:!0}},style:{maxWidth:"200px",overflow:"hidden",whiteSpace:"nowrap",textOverflow:"ellipsis"}},e.name),a.default.createElement("span",{className:"font-12 laterest ml5"},"最新")),a.default.createElement("p",{className:"color-grey-3 font-12"},e.created_at)))})):a.default.createElement("div",{className:"mt8"},"您暂未发布任何版本",o&&a.default.createElement(s.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=l(n("PArb"));n("/zsF");var a=n("cDcd"),i=l(a),s=n("spEH"),o=l(n("vDqi"));function l(e){return e&&e.__esModule?e:{default:e}}t.default=function(e){var t=e.owner,n=e.projectsId,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,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")}((0,a.useState)(void 0),2),d=l[0],c=l[1];function u(){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,a.useEffect)((function(){var e;e="/"+t+"/"+n+"/languages.json",o.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:u()})})),c(n)}}})).catch((function(e){}))}),[]),d&&d.length>0?i.default.createElement("div",null,i.default.createElement(r.default,null),i.default.createElement("p",{className:"font-16 color-ooo aboutSubTitle"},"开发语言"),i.default.createElement("div",{className:"progress"},d&&d.map((function(e,t){return i.default.createElement("span",{key:e.id||t,style:{width:e.percent,backgroundColor:e.color}})}))),d&&d.length>0&&i.default.createElement(s.FlexAJ,{className:"progresstip"},d.map((function(e,t){return i.default.createElement("span",{key:e.id||t},i.default.createElement("i",{className:"zero",style:{backgroundColor:""+e.color}}),i.default.createElement("span",null,e.name),i.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)){n[a.replace(/_([a-z])/g,(function(e){return e[1].toUpperCase()}))]=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)){n[a.replace(/([a-z][A-Z])/g,(function(e){return e[0]+"_"+e[1].toLowerCase()}))]=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,"关注数")),z(e.login)&&c.default.createElement("a",null,c.default.createElement("span",null,z(e.login)),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 Q(!1,e.login)}},"已关注"):c.default.createElement(i.default,{type:"primary",onClick:function(){return Q(!0,e.login)}},"关注TA")));D(t)}}function Q(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){}))}function V(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 V(!1)}},j&&j.length>0&&j.map((function(e,t){return e.login?c.default.createElement(r.default,{content:M,visible:e.visible,overlayClassName:"menuPanels",placement:"top"},c.default.createElement("a",{key:t,href:"/"+e.login},c.default.createElement("img",{src:(0,p.getImageUrl)("/"+e.image_url),alt:"",onMouseOver:function(){return V(!0,e.login,t)}}))):c.default.createElement("a",{key:t,href:"mailto:"+e.email},c.default.createElement("img",{src:(0,p.getImageUrl)("/"+e.image_url),alt:"",onMouseOver:function(){return V(!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(){if(Lt){var e=Lt.author,t=Lt.name,n=Lt.description,r=Lt.default_branch;document.title=At&&At!==r?e.name+"/"+t+"-"+At+"-for gitlink;for git":e.name+"/"+t+(n?": "+n:"")+"-for gitlink;for git"}}),[Z,Lt,At]),(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.author),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.author),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(){Fe(-1!==e.history.location.search.indexOf("edit")),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");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,$t=e.showLoginDialog,Xt=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 $e(!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||X)&&u.default.createElement("div",{className:"listtablehead"},X&&u.default.createElement(w.default,{url:(0,p.getImageUrl)("/"+X.image_url),name:X.name,id:X.id,login:X.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(t){Fe(t),kt(!1);var n=e.history;t?n.push(n.location.pathname):n.push(n.location.pathname+"?edit")},currentBranch:At||ht,branch:At||ht,type:O.type,treeValuePath:Z})))):"",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+"?edit"),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 $e(!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.href,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,a,i,s,o,l=c(n("14Xm")),d=c(n("vDqi"));function c(e){return e&&e.__esModule?e:{default:e}}function u(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.getBranch=(r=u(l.default.mark((function e(t,n){var r;return l.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,d.default.get("/"+n+"/"+t+"/branches.json");case 2:return r=e.sent,e.abrupt("return",r&&r.data);case 4:case"end":return e.stop()}}),e,void 0)}))),function(e,t){return r.apply(this,arguments)}),t.getTag=(a=u(l.default.mark((function e(t,n){return l.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,d.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 a.apply(this,arguments)}),t.getHooks=(i=u(l.default.mark((function e(t,n){return l.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,d.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=u(l.default.mark((function e(t,n,r){return l.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,d.default.get("/"+t+"/"+n+"/sub_entries.json",{params:r});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=(o=u(l.default.mark((function e(t){return l.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,d.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 o.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/52.d623e467.chunk.js b/static/js/52.d623e467.chunk.js deleted file mode 100644 index 5e805437c..000000000 --- a/static/js/52.d623e467.chunk.js +++ /dev/null @@ -1 +0,0 @@ -(this.webpackJsonp=this.webpackJsonp||[]).push([[52,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=(r=n("cDcd"))&&r.__esModule?r:{default:r},i=n("sYIF");t.default=function(e){var t=e.treeValuePath,n=e.returnUlr,r=e.returnMain,s=e.getPathUrl,o=e.identifier;return a.default.createElement("li",{className:"listtablepath"},a.default.createElement("p",null,a.default.createElement("a",{onClick:r,className:"color-blue"},o),t.map((function(e,r){return a.default.createElement(a.default.Fragment,{key:r},r===t.length-1?a.default.createElement("span",{className:"color-grey-6 subFileName",key:r},(0,i.returnbar)(e)):a.default.createElement("a",{onClick:function(){return n(""+s(t,r+1))},className:"color-blue subFileName"},(0,i.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,g=_.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||g;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(h,{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"},maxLength:100})))):""))),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),b=o.default.create({name:"UserSubmitForm"})(w);t.default=b},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:"updateDocumentTitle",value:function(){var e=this.props,t=e.projectDetail,n=e.treeValuePath,r=e.location,a=r&&-1===r.search.indexOf("edit");if(t&&n){var i=t.author,s=t.name;document.title=(a?n.join("/"):"编辑"+n[n.length-1])+"-"+i.name+"/"+s}}},{key:"render",value:function(){var e=this,t=this.props,n=t.detail,o=t.current_user,d=t.isManager,c=t.isDeveloper,m=t.currentBranch,_=t.platform,g=t.md,h=t.type,w=-1===this.props.history.location.search.indexOf("edit"),b=this.state,y=b.language,v=b.languages,k=b.description,x=o&&o.login&&(d||c),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"},g&&w&&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]}(n&&n.size))),u.default.createElement("p",{className:"text-right"},x&&_&&u.default.createElement("div",null,w?u.default.createElement("span",null,n.direct_download?"":u.default.createElement("span",null,u.default.createElement("a",{onClick:function(){return e.DownLoadFile(n.download_url)},className:"ml20"},u.default.createElement("i",{className:"iconfont icon-xiazai1 font-15 color-grey-6"})),2!==h&&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!==h&&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,n.image_type?u.default.createElement("div",{className:"edu-txt-center pt20 pb20"},u.default.createElement("img",{alt:"",src:n.download_url,style:{maxWidth:"80%"}})):n.direct_download?u.default.createElement("div",{className:"mt20 text-center"},u.default.createElement("a",{href:n.download_url,className:"color-blue font-15"},"下载原始文件")):g&&w?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:"/"+n.path,content:n.content,readOnly:w,editorType:"update",currentBranch:m,descName:n&&"Update "+n.name}))))}}]),t}(c.Component);t.default=w},FRFo:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=s(n("3S7+"));n("5Dmo");var a=n("cDcd"),i=s(a);function s(e){return e&&e.__esModule?e:{default:e}}function o(e){var t=e.beforeText,n=e.afterText,s=e.className,o=e.inputId,l=e.timeOut,d=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")}((0,a.useState)((function(){return t})),2),c=d[0],u=d[1],m=(0,a.useCallback)((function(){var e=document.querySelector("#"+o);e&&(e.select(),document.execCommand("copy")&&document.execCommand("copy"),document.getSelection().removeAllRanges(),u(n),l&&setTimeout((function(){u(t)}),1500))}),[]);return i.default.createElement(r.default,{placement:"top",title:c,onVisibleChange:function(){u(t)}},i.default.createElement("i",{className:"iconfont icon-fuzhiicon cursor "+s,style:{color:"#466aff"},onClick:m}))}o.defaultProps={beforeText:"复制链接",afterText:"复制成功",className:"",inputId:"copyText",timeOut:!0},t.default=(0,a.memo)(o)},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=(r=n("cDcd"))&&r.__esModule?r:{default:r},i=n("eO8H"),s=n("PhNK"),o=n("QuzT"),l={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,d=e.projectsId,c=e.platform;return a.default.createElement("li",null,a.default.createElement("span",null,!c&&t.image_type?a.default.createElement("span",null,a.default.createElement("i",{className:"iconfont "+l[""+t.type]+" mr8"}),t.name):"submodule"===t.type?t.submodule_git_url?a.default.createElement(a.default.Fragment,null,a.default.createElement("a",{href:""+t.submodule_git_url.slice(0,t.submodule_git_url.length-4),target:"_self"},a.default.createElement("i",{className:"iconfont "+l[""+t.type]+" mr8"}),t.name),a.default.createElement("span",{className:"ml2"},"@"),a.default.createElement("a",{href:t.submodule_git_url.slice(0,t.submodule_git_url.length-4)+"/commits/"+(0,s.truncateCommitId)(t.sha),title:t.sha},(0,s.truncateCommitId)(t.sha))):a.default.createElement(a.default.Fragment,null,a.default.createElement("i",{className:"iconfont "+l[""+t.type]+" mr8"}),t.name,a.default.createElement("span",{className:"ml2"},"@"),a.default.createElement("span",{title:t.sha},(0,s.truncateCommitId)(t.sha))):a.default.createElement("a",{onClick:function(){return n(t.path,t.type,t.name)}},a.default.createElement("i",{className:"iconfont "+l[""+t.type]+" mr8"}),t.name)),a.default.createElement("span",{title:"init project"},a.default.createElement(i.Link,{to:"/"+r+"/"+d+"/commits/"+(0,s.truncateCommitId)(""+(t.commit&&t.commit.sha)),title:t.commit&&t.commit.message},(0,o.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&&a.default.createElement("span",{className:"infoCount"},r.total_count)),r&&r.total_count>0?r.list.map((function(e,r){return 0===r&&a.default.createElement(i.AlignTop,{className:"mt10"},a.default.createElement("div",null,a.default.createElement("p",{className:"font-16 color-grey-6",style:{display:"flex",alignItems:"center"}},a.default.createElement(s.Link,{to:{pathname:"/"+t+"/"+n+"/releases",query:{turnFromNew:!0}},style:{maxWidth:"200px",overflow:"hidden",whiteSpace:"nowrap",textOverflow:"ellipsis"}},e.name),a.default.createElement("span",{className:"font-12 laterest ml5"},"最新")),a.default.createElement("p",{className:"color-grey-3 font-12"},e.created_at)))})):a.default.createElement("div",{className:"mt8"},"您暂未发布任何版本",o&&a.default.createElement(s.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=l(n("PArb"));n("/zsF");var a=n("cDcd"),i=l(a),s=n("spEH"),o=l(n("vDqi"));function l(e){return e&&e.__esModule?e:{default:e}}t.default=function(e){var t=e.owner,n=e.projectsId,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,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")}((0,a.useState)(void 0),2),d=l[0],c=l[1];function u(){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,a.useEffect)((function(){var e;e="/"+t+"/"+n+"/languages.json",o.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:u()})})),c(n)}}})).catch((function(e){}))}),[]),d&&d.length>0?i.default.createElement("div",null,i.default.createElement(r.default,null),i.default.createElement("p",{className:"font-16 color-ooo aboutSubTitle"},"开发语言"),i.default.createElement("div",{className:"progress"},d&&d.map((function(e,t){return i.default.createElement("span",{key:e.id||t,style:{width:e.percent,backgroundColor:e.color}})}))),d&&d.length>0&&i.default.createElement(s.FlexAJ,{className:"progresstip"},d.map((function(e,t){return i.default.createElement("span",{key:e.id||t},i.default.createElement("i",{className:"zero",style:{backgroundColor:""+e.color}}),i.default.createElement("span",null,e.name),i.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)){n[a.replace(/_([a-z])/g,(function(e){return e[1].toUpperCase()}))]=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)){n[a.replace(/([a-z][A-Z])/g,(function(e){return e[0]+"_"+e[1].toLowerCase()}))]=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,"关注数")),z(e.login)&&c.default.createElement("a",null,c.default.createElement("span",null,z(e.login)),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 Q(!1,e.login)}},"已关注"):c.default.createElement(i.default,{type:"primary",onClick:function(){return Q(!0,e.login)}},"关注TA")));D(t)}}function Q(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){}))}function V(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 V(!1)}},j&&j.length>0&&j.map((function(e,t){return e.id?c.default.createElement(r.default,{content:M,visible:e.visible,overlayClassName:"menuPanels",placement:"top"},c.default.createElement("a",{key:t,href:"/"+e.login},c.default.createElement("img",{src:(0,p.getImageUrl)("/"+e.image_url),alt:"",onMouseOver:function(){return V(!0,e.login,t)}}))):c.default.createElement("a",{key:t,href:"mailto:"+e.email},c.default.createElement("img",{src:(0,p.getImageUrl)("/"+e.image_url),alt:"",onMouseOver:function(){return V(!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(){if(Lt){var e=Lt.author,t=Lt.name,n=Lt.description,r=Lt.default_branch;document.title=At&&At!==r?e.name+"/"+t+"-"+At+"-for gitlink;for git":e.name+"/"+t+(n?": "+n:"")+"-for gitlink;for git"}}),[Z,Lt,At]),(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.author),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.author),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(){Fe(-1!==e.history.location.search.indexOf("edit")),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");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,$t=e.showLoginDialog,Xt=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 $e(!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||X)&&u.default.createElement("div",{className:"listtablehead"},X&&u.default.createElement(w.default,{url:(0,p.getImageUrl)("/"+X.image_url),name:X.name,id:X.id,login:X.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(t){Fe(t),kt(!1);var n=e.history;t?n.push(n.location.pathname):n.push(n.location.pathname+"?edit")},currentBranch:At||ht,branch:At||ht,type:O.type,treeValuePath:Z})))):"",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+"?edit"),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 $e(!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.href,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,a,i,s,o,l=c(n("14Xm")),d=c(n("vDqi"));function c(e){return e&&e.__esModule?e:{default:e}}function u(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.getBranch=(r=u(l.default.mark((function e(t,n){var r;return l.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,d.default.get("/"+n+"/"+t+"/branches.json");case 2:return r=e.sent,e.abrupt("return",r&&r.data);case 4:case"end":return e.stop()}}),e,void 0)}))),function(e,t){return r.apply(this,arguments)}),t.getTag=(a=u(l.default.mark((function e(t,n){return l.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,d.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 a.apply(this,arguments)}),t.getHooks=(i=u(l.default.mark((function e(t,n){return l.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,d.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=u(l.default.mark((function e(t,n,r){return l.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,d.default.get("/"+t+"/"+n+"/sub_entries.json",{params:r});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=(o=u(l.default.mark((function e(t){return l.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,d.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 o.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/81.33eab1ec.chunk.js b/static/js/81.33eab1ec.chunk.js new file mode 100644 index 000000000..666288ffe --- /dev/null +++ b/static/js/81.33eab1ec.chunk.js @@ -0,0 +1 @@ +(this.webpackJsonp=this.webpackJsonp||[]).push([[81],{"+QRC":function(e,t,n){"use strict";var a=n("E9nw"),r={"text/plain":"Text","text/html":"Url",default:"Text"};e.exports=function(e,t){var n,o,l,i,s,u=!1;t||(t={}),t.debug;try{if(o=a(),l=document.createRange(),i=document.getSelection(),(s=document.createElement("span")).textContent=e,s.style.all="unset",s.style.position="fixed",s.style.top=0,s.style.clip="rect(0, 0, 0, 0)",s.style.whiteSpace="pre",s.style.webkitUserSelect="text",s.style.MozUserSelect="text",s.style.msUserSelect="text",s.style.userSelect="text",s.addEventListener("copy",(function(n){if(n.stopPropagation(),t.format)if(n.preventDefault(),void 0===n.clipboardData){window.clipboardData.clearData();var a=r[t.format]||r.default;window.clipboardData.setData(a,e)}else n.clipboardData.clearData(),n.clipboardData.setData(t.format,e);t.onCopy&&(n.preventDefault(),t.onCopy(n.clipboardData))})),document.body.appendChild(s),l.selectNodeContents(s),i.addRange(l),!document.execCommand("copy"))throw new Error("copy command was unsuccessful");u=!0}catch(a){try{window.clipboardData.setData(t.format||"text",e),t.onCopy&&t.onCopy(window.clipboardData),u=!0}catch(a){n=function(e){var t=(/mac os x/i.test(navigator.userAgent)?"⌘":"Ctrl")+"+C";return e.replace(/#{\s*key\s*}/g,t)}("message"in t?t.message:"Copy to clipboard: #{key}, Enter"),window.prompt(n,e)}}finally{i&&("function"==typeof i.removeRange?i.removeRange(l):i.removeAllRanges()),s&&document.body.removeChild(s),o()}return u}},"0/zy":function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var a=d(n("CtXQ")),r=d(n("BvKs")),o=d(n("5rEg")),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,o=void 0;try{for(var l,i=e[Symbol.iterator]();!(a=(l=i.next()).done)&&(n.push(l.value),!t||n.length!==t);a=!0);}catch(e){r=!0,o=e}finally{try{!a&&i.return&&i.return()}finally{if(r)throw o}}return n}(e,t);throw new TypeError("Invalid attempt to destructure non-iterable instance")};n("Pwec"),n("lUTK"),n("5NDa");var i=n("cDcd"),s=d(i),u=n("sYIF"),c=d(n("XzCO"));function d(e){return e&&e.__esModule?e:{default:e}}var f=o.default.Search;t.default=function(e,t){var n,o=e.className,d=e.name,m=e.ids,p=e.lists,v=e.size,y=e.imgControl,h=e.searchFunc,g=e.chooseFunc,_=e.update,b=e.double,E=e.names,w=(0,i.useRef)(null),j=(0,i.useState)([]),S=l(j,2),C=S[0],k=S[1],x=(0,i.useState)(void 0),O=l(x,2),N=O[0],A=O[1];return(0,i.useEffect)((function(){k(m?m.split(","):[]),A(E)}),[m,E]),s.default.createElement("li",{className:o||""},s.default.createElement(c.default,{className:o,ref:w,overlay:(n=p,s.default.createElement("div",{className:"overlaydrop "+v},"small"!==v&&s.default.createElement("div",{className:"pb10"},s.default.createElement(f,{placeholder:"搜索"+d,onChange:function(e){return h(e.target.value)}})),n&&n.length>0?s.default.createElement(r.default,{selectedKeys:C},n.map((function(e,t){return s.default.createElement(r.default.Item,{key:e.id},y&&s.default.createElement("img",{src:(0,u.getImageUrl)(e.image_url),alt:""}),e.color&&s.default.createElement("span",{style:{backgroundColor:e.color,marginRight:"0px"},className:"colorpiece"}),s.default.createElement("span",{className:"task-hide",onClick:function(){return function(e){var t=m,n=e.id.toString();if(b){t=m?m.split(","):[];var a=E?E.split(","):[];t&&t.indexOf(n)>=0?(t=t.filter((function(e){return e.toString()!==n})),a=a.filter((function(t){return t.toString()!==e.name}))):(t.push(n),a.push(e.name)),k(t),A(a.join(",")),g(t,a.join(","))}else t&&t.indexOf(n)>=0?(k([]),A(void 0),g([])):(k([""+e.id]),A([e.name]),g([n],e.name)),w.current&&w.current.clearVisible(!1)}(e)}},e.name))}))):s.default.createElement("div",{className:"pl15"},"暂无",m?s.default.createElement("span",null,"'",d,"'"):d))),placement:"bottomRight"},s.default.createElement("span",{className:"task-hide"},N||(_?"更换"+d:d)),s.default.createElement(a.default,{type:"caret-down",className:"color-grey-6"})))}},"1pYj":function(e,t,n){"use strict";n.r(t),t.default=n.p+"static/media/emp.35f6c709.png"},AGJ6:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var a=Object.assign||function(e){for(var t=1;t0?e.join(","):void 0}),r=a({},G,{author_name:t});q(n),Z(r),d(n,r)}(e,t)}}),l.default.createElement(i.default,{update:f,ids:Y&&Y.issue_tag_ids,name:"标记",size:"large",double:!0,names:G&&G.issue_tag_name,lists:j,searchFunc:function(e){return O(e)},chooseFunc:function(e,t){var n=a({},Y,{issue_tag_ids:e&&e.length>0?e.join(","):void 0}),r=a({},G,{issue_tag_name:t});Z(r),q(n),d(n,r)}}),l.default.createElement(i.default,{update:f,ids:Y&&Y.assigner_id,name:"负责人",size:"large",imgControl:!0,names:G&&G.assigner_name,lists:D,searchFunc:function(e){return z(e)},double:!!f,chooseFunc:function(e,t){var n=a({},Y,{assigner_id:e&&e.length>0?e.join(","):void 0}),r=a({},G,{assigner_name:t});Z(r),q(n),d(n,r)}}),!f&&l.default.createElement(i.default,{ids:Y&&Y.sort_by,name:"排序",size:"small",lists:c,names:G&&G.sortby_name,chooseFunc:function(e,t){var n=a({},Y,{sort_by:e&&e.length>0?e.join(","):void 0}),r=a({},G,{sortby_name:t});Z(r),q(n),d(n,r)}}),f&&l.default.createElement(i.default,{update:f,ids:Y&&Y.milestone_id,name:"里程碑",size:"large",names:G&&G.milestone_name,lists:J,searchFunc:function(e){return M(e)},chooseFunc:function(e,t){var n=a({},Y,{milestone_id:e&&e.length>0?e.join(","):void 0}),r=a({},G,{milestone_name:t});Z(r),q(n),d(n,r)}}))}))},BOKS:function(e,t,n){},E9nw:function(e,t){e.exports=function(){var e=document.getSelection();if(!e.rangeCount)return function(){};for(var t=document.activeElement,n=[],a=0;a0?n.tags.map((function(e,t){return r.default.createElement("span",{style:{backgroundColor:""+e.color},className:"ml8 tagscolor task-hide",title:e.name},e.name)})):""),r.default.createElement("div",null,r.default.createElement("div",{className:"infos"},r.default.createElement("div",{className:"ilog"},n.project_issues_index&&r.default.createElement(i.default,{value:"/"+u+"/"+s+"/issues/"+n.project_issues_index},r.default.createElement("span",{className:"number"},"#",n.project_issues_index))),r.default.createElement(l.Link,{to:"/"+(n.author&&n.author.login)},r.default.createElement("i",{className:"iconfont icon-chengyuan2 mr3 font-12",style:{color:"#898d9d"}})),r.default.createElement("span",{className:"mr12"},r.default.createElement(l.Link,{style:{color:"#898d9d"},to:"/"+(n.author&&n.author.login)},n.author&&n.author.name)),r.default.createElement("span",{className:"mr12"},n.created_at," 发布"),r.default.createElement("span",{className:"mr20"},n.updated_at,"更新"),n.blockchain_token_num&&r.default.createElement("span",{className:"mr30"},r.default.createElement("img",{src:o.default,alt:"",width:"13px",className:"mr3"}),n.blockchain_token_num),n.milestone_name&&r.default.createElement(l.Link,{to:"/"+u+"/"+s+"/milestones/"+n.milestone_id,style:{maxWidth:n.blockchain_token_num?"261px":"340px",color:"#898d9d"},title:n.milestone_name,className:"task-hide"},r.default.createElement("i",{className:"iconfont icon-lichengbeiicon1 font-12 mr3"}),n.milestone_name))))),r.default.createElement("div",{className:"issuecondition"},n.assigners&&n.assigners.length>0?r.default.createElement(a.default,{title:c(n.assigners),placement:"bottomRight"},r.default.createElement("div",{className:n.assigners.length>1?"principal hovers":"principal"},r.default.createElement("span",{className:"task-hide",style:{wordBreak:"break-all"}},c(n.assigners)))):"",r.default.createElement("div",{style:{color:"已解决"===n.status_name?"#28bd6c":"#40424a"}},n.status_name),r.default.createElement("div",{className:"commentnum"},r.default.createElement(l.Link,{to:"/"+u+"/"+s+"/issues/"+n.project_issues_index+"#commentList"},r.default.createElement("i",{className:"iconfont icon-a-xiaoxi1 mr5 font-15"}),n.comment_journals_count))))}},XzCO:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var a=i(n("jsC+"));n("qVdP");var r=n("cDcd"),o=i(r),l=n("faye");function i(e){return e&&e.__esModule?e:{default:e}}t.default=(0,r.forwardRef)((function(e,t){var n=e.overlay,i=e.children,s=e.placement,u=e.overlayClassName,c=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,o=void 0;try{for(var l,i=e[Symbol.iterator]();!(a=(l=i.next()).done)&&(n.push(l.value),!t||n.length!==t);a=!0);}catch(e){r=!0,o=e}finally{try{!a&&i.return&&i.return()}finally{if(r)throw o}}return n}(e,t);throw new TypeError("Invalid attempt to destructure non-iterable instance")}((0,r.useState)(!1),2),d=c[0],f=c[1],m=(0,r.useRef)(null),p=(0,r.useRef)(null);(0,r.useImperativeHandle)(t,(function(){return{clearVisible:function(e){f(e)}}})),(0,r.useEffect)((function(){document.addEventListener("click",v,!1)}),[]);var v=function(e){var t=e.target,n=(0,l.findDOMNode)(m.current),a=(0,l.findDOMNode)(p.current);if(n&&a){var r=n.contains(t),o=a.contains(t);r||o||f(!1)}};return o.default.createElement(a.default,{placement:s,visible:d,overlay:o.default.createElement("div",{ref:m},n),trigger:["click"],overlayClassName:u},o.default.createElement("span",{className:"dropspan",ref:p,onClick:function(){return f(!d)}},i))}))},"jZ+j":function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var a=i(n("3S7+"));n("5Dmo");var r=n("cDcd"),o=i(r),l=n("P5Jw");function i(e){return e&&e.__esModule?e:{default:e}}t.default=function(e){var t=e.children,n=e.value,i=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,o=void 0;try{for(var l,i=e[Symbol.iterator]();!(a=(l=i.next()).done)&&(n.push(l.value),!t||n.length!==t);a=!0);}catch(e){r=!0,o=e}finally{try{!a&&i.return&&i.return()}finally{if(r)throw o}}return n}(e,t);throw new TypeError("Invalid attempt to destructure non-iterable instance")}((0,r.useState)("点击复制链接"),2),s=i[0],u=i[1],c="localhost"===window.location.hostname?"testforgeplus.trustie.net":window.location.hostname,d=window.location.protocol;return o.default.createElement(l.CopyToClipboard,{text:d+"//"+c+n,onCopy:function(){return u("复制成功")}},o.default.createElement(a.default,{placement:"bottom",title:s},t))}},rHrb:function(e,t,n){"use strict";function a(e){return(a="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)}Object.defineProperty(t,"__esModule",{value:!0}),t.CopyToClipboard=void 0;var r=i(n("cDcd")),o=i(n("+QRC")),l=["text","onCopy","options","children"];function i(e){return e&&e.__esModule?e:{default:e}}function s(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function u(e){for(var t=1;t=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}(e,l),a=r.default.Children.only(t);return r.default.cloneElement(a,u(u({},n),{},{onClick:this.onClick}))}}])&&d(t.prototype,n),Object.defineProperty(t,"prototype",{writable:!1}),i}(r.default.PureComponent);t.CopyToClipboard=h,y(h,"defaultProps",{onCopy:void 0,options:void 0})},sdXD:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var a=b(n("W9HT")),r=b(n("NUBc")),o=b(n("2/Rp")),l=b(n("kaz8")),i=b(n("3S7+")),s=b(n("BvKs")),u=Object.assign||function(e){for(var t=1;t1)return void pe(me-1);E(n),C(a),ge(r),N(o),P(l),we(i);var s=a.length>0?a.map((function(e){return e.id})):[];Z(s)}})).then((function(e){}))}function Ie(){q([]),ne(!1),je.current&&je.current.clearChoose()}return(0,d.useEffect)((function(){Pe()}),[z,M,J,me,ue]),(0,d.useEffect)((function(){!function(){if(Ne&&b){var e=Ne.author,t=Ne.name;document.title=b.name+"-里程碑-"+e.name+"/"+t}}()}),[Ne,b]),f.default.createElement(s.default,{selectedKeys:[""+z],onClick:function(e){L("all"),K(e.key)}},f.default.createElement(s.default.Item,{key:"all"},"全部"),f.default.createElement(s.default.Item,{key:"aboutme"},f.default.createElement(i.default,{title:"指我创建的、我负责的和@我的疑修"},"与我相关")),f.default.createElement(s.default.Item,{key:"assignedme"},"我负责的"),f.default.createElement(s.default.Item,{key:"authoredme"},"我创建的"),f.default.createElement(s.default.Item,{key:"atme"},"@我的")),f.default.createElement("div",{className:"main milepostDetail"},b&&f.default.createElement(h.FlexAJ,null,f.default.createElement("div",null,f.default.createElement("p",{className:"font-17 font-bd color-black",style:{width:"900px"}},b.name),f.default.createElement("p",{className:"mt7"},f.default.createElement("span",{className:"mr20"},f.default.createElement("i",{className:"iconfont icon-a-31shijian font-14 mr5 color-grey-89"}),f.default.createElement("span",{className:"color-grey-89"},b.effective_date||"暂无截止时间")),b.percent||0===b.percent?f.default.createElement("span",{style:{color:"#1aaf42"}}," ",b.percent>0?100*b.percent.toFixed(2):b.percent,"%完成 "):"")),f.default.createElement("div",{className:"milepostdiv"},Oe&&Oe.login&&De&&"Reporter"!==De?f.default.createElement(m.Link,{to:"/"+xe+"/"+Ce+"/milestones/"+ke+"/edit",className:"grayButton",style:{marginRight:15}},f.default.createElement("i",{className:"iconfont icon-lichengbeiicon1 font-12 mr5"}),"编辑里程碑"):"",f.default.createElement(g.default,u({},e,{sureFunc:function(){Ae.push("/"+xe+"/"+Ce+"/issues/"+ke+"/new")},checklogin:!0,className:"operateButton ml20"}),"+ 创建疑修"))),f.default.createElement("div",{className:"lists mt25"},f.default.createElement("div",{className:"listheader"},f.default.createElement("div",{style:{display:"flex"}},f.default.createElement(l.default,{value:"all",style:{marginRight:"16px",display:De&&"Reporter"!==De?"block":"none"},checked:te,onChange:function(e){ne(e.target.checked),e.target.checked?q(G):q([])}}),Y&&Y.length>0?f.default.createElement("span",null,"选择",Y.length,"个issue"):f.default.createElement("ul",{className:"statusul"},f.default.createElement("li",{className:"all"===J?"active":"",onClick:function(){return L("all")}},"全部",f.default.createElement("span",null,Ee)),f.default.createElement("li",{className:"opened"===J?"active":"",onClick:function(){return L("opened")}},"开启中",f.default.createElement("span",null,R)),f.default.createElement("li",{className:"closed"===J?"active":"",onClick:function(){return L("closed")}},"已关闭",f.default.createElement("span",null,O)))),f.default.createElement("div",{className:"menusul"},f.default.createElement(p.default,{ref:je,update:Y&&Y.length>0,owner:xe,projectsId:Ce,chooseFunc:function(e){if(Y&&Y.length>0)le(e);else{var t=e.sort_by;Pe(u({},e,Re[t]))}}}),Y&&Y.length>0?f.default.createElement("div",null,f.default.createElement(o.default,{type:"primary",ghost:!0,onClick:function(){var e="/v1/"+xe+"/"+Ce+"/issues/batch_update";y.default.patch(e,{assigner_ids:oe&&oe.assigner_id&&oe.assigner_id.split(","),ids:Y,issue_tag_ids:oe&&oe.issue_tag_ids&&oe.issue_tag_ids.split(","),milestone_id:oe&&oe.milestone_id}).then((function(e){e&&(le(void 0),q([]),ge(void 0),Pe(),Ie())})).catch((function(e){}))}},"确定"),f.default.createElement(o.default,{ghost:!0,className:"ml10 mr10",onClick:Ie},"取消")):"")),0===he&&f.default.createElement("div",{className:"milestonesNoDate"},f.default.createElement("img",{src:_.default,alt:""})),he>0&&f.default.createElement(f.default.Fragment,null,f.default.createElement(l.default.Group,{name:"issues",onChange:function(e){q(e),e.length===G.length?ne(!0):ne(!1)},value:Y,style:{width:"100%"}},f.default.createElement("div",{className:"listdatas"},S.map((function(e,t){return f.default.createElement(v.default,{key:t,checkbox:f.default.createElement(l.default,{value:e.id,key:e.id,style:{marginRight:"16px",display:De&&"Reporter"!==De?"block":"none"}}),item:e,owner:xe,projectsId:Ce})})))),he>10&&f.default.createElement("div",{className:"pt25 pb30",style:{textAlign:"right"}},f.default.createElement(r.default,{total:he,pageSize:ue,current:me,onChange:function(e){pe(e)},showSizeChanger:!0,showQuickJumper:!0,onShowSizeChange:function(e,t){pe(1),ce(t)}}))),void 0===he&&f.default.createElement("div",{style:{height:344,display:"flex",alignItems:"center",justifyContent:"center"}},f.default.createElement(a.default,null))))}},xmot:function(e,t){e.exports="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA4AAAAQCAYAAAAmlE46AAAABHNCSVQICAgIfAhkiAAAAntJREFUKFNVU01oE0EUfi8paauW7NJWqz20xYtKoevZgxtPCgW3Fw/izxYUT2J78Nqfi+BB6qmgoo0oCIJ2C4I33XjxJFbBkwc3otKa1KQ/GJPsvOeb2bTiwjKZ5Pt730wQ5OH3jgXt8UVgdIHBBQSLieUHqJJSISoIU+naQzwaVTVeP8ifjjjA6dcabESEYEh6VZTsldlrUi5z7PNyizgcCX9Ag8QBSK/6o1k52WvzWK8cdZz4MmSI9HGYmRKQVk4cWvuWe8vRfL/r5Fc0xPjd4UhI/xwT5RZ5O0ErLnNx9+i3QUNsvj3kMqsAFGe359tx/D9BUaL5XWMroSHW3xzMS3MzMpeLDB4ROyKiExRFaKYprdpjK9IDQOVpr2OfKSXl/Hk1tCyArAADlBewrdh5KjLAzWd9MyJ0WoQcwSzLrIF9vjxriLWXgxKVxJUG9GwUU1Fhu5Nu1kIBj+y0bAo0M4c9l6o53HrRn98z+t3fWOz3QZEHSuWZQDtMy/sBYpiwx8th6Z7lInEgJ5CFmGdx4/n+SJyYYxWQjnK2XKg86pFYagSZc/Z4NSzfyXLPlXUsz3d5qqkWRaCAm0/6XCVRgWhAt2pfWMO1+5ZkZui+vI6l+a7knKXhvdd+48qtDjkEBqw87s7b59b88oLlpxg9RPbjugoFOCIz5XqvboWrc528b7KGqzczniJeFNEC/npgRzopxCRRKYil1VTc8JFgWpSrEtnvu95Y+nEj44nzgoxlCXwSf961nJQQtlvV4Axnhupx0qq5bvom6Ytv/gWw1D+lPHPvKnOW1YSmHL60SuTI2VXqtUYuk26bQGBXKMcFWBCB4MAU3dacv5qY9er52wxiAAAAAElFTkSuQmCC"}}]); \ No newline at end of file diff --git a/static/js/81.c1f43dc1.chunk.js b/static/js/81.c1f43dc1.chunk.js deleted file mode 100644 index 48560ab9a..000000000 --- a/static/js/81.c1f43dc1.chunk.js +++ /dev/null @@ -1 +0,0 @@ -(this.webpackJsonp=this.webpackJsonp||[]).push([[81],{"+QRC":function(e,t,n){"use strict";var a=n("E9nw"),r={"text/plain":"Text","text/html":"Url",default:"Text"};e.exports=function(e,t){var n,o,l,i,s,u=!1;t||(t={}),t.debug;try{if(o=a(),l=document.createRange(),i=document.getSelection(),(s=document.createElement("span")).textContent=e,s.style.all="unset",s.style.position="fixed",s.style.top=0,s.style.clip="rect(0, 0, 0, 0)",s.style.whiteSpace="pre",s.style.webkitUserSelect="text",s.style.MozUserSelect="text",s.style.msUserSelect="text",s.style.userSelect="text",s.addEventListener("copy",(function(n){if(n.stopPropagation(),t.format)if(n.preventDefault(),void 0===n.clipboardData){window.clipboardData.clearData();var a=r[t.format]||r.default;window.clipboardData.setData(a,e)}else n.clipboardData.clearData(),n.clipboardData.setData(t.format,e);t.onCopy&&(n.preventDefault(),t.onCopy(n.clipboardData))})),document.body.appendChild(s),l.selectNodeContents(s),i.addRange(l),!document.execCommand("copy"))throw new Error("copy command was unsuccessful");u=!0}catch(a){try{window.clipboardData.setData(t.format||"text",e),t.onCopy&&t.onCopy(window.clipboardData),u=!0}catch(a){n=function(e){var t=(/mac os x/i.test(navigator.userAgent)?"⌘":"Ctrl")+"+C";return e.replace(/#{\s*key\s*}/g,t)}("message"in t?t.message:"Copy to clipboard: #{key}, Enter"),window.prompt(n,e)}}finally{i&&("function"==typeof i.removeRange?i.removeRange(l):i.removeAllRanges()),s&&document.body.removeChild(s),o()}return u}},"0/zy":function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var a=d(n("CtXQ")),r=d(n("BvKs")),o=d(n("5rEg")),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,o=void 0;try{for(var l,i=e[Symbol.iterator]();!(a=(l=i.next()).done)&&(n.push(l.value),!t||n.length!==t);a=!0);}catch(e){r=!0,o=e}finally{try{!a&&i.return&&i.return()}finally{if(r)throw o}}return n}(e,t);throw new TypeError("Invalid attempt to destructure non-iterable instance")};n("Pwec"),n("lUTK"),n("5NDa");var i=n("cDcd"),s=d(i),u=n("sYIF"),c=d(n("XzCO"));function d(e){return e&&e.__esModule?e:{default:e}}var f=o.default.Search;t.default=function(e,t){var n,o=e.className,d=e.name,m=e.ids,p=e.lists,v=e.size,y=e.imgControl,h=e.searchFunc,g=e.chooseFunc,_=e.update,b=e.double,E=e.names,w=(0,i.useRef)(null),j=(0,i.useState)([]),S=l(j,2),C=S[0],x=S[1],k=(0,i.useState)(void 0),O=l(k,2),N=O[0],A=O[1];return(0,i.useEffect)((function(){x(m?m.split(","):[]),A(E)}),[m,E]),s.default.createElement("li",{className:o||""},s.default.createElement(c.default,{className:o,ref:w,overlay:(n=p,s.default.createElement("div",{className:"overlaydrop "+v},"small"!==v&&s.default.createElement("div",{className:"pb10"},s.default.createElement(f,{placeholder:"搜索"+d,onChange:function(e){return h(e.target.value)}})),n&&n.length>0?s.default.createElement(r.default,{selectedKeys:C},n.map((function(e,t){return s.default.createElement(r.default.Item,{key:e.id},y&&s.default.createElement("img",{src:(0,u.getImageUrl)(e.image_url),alt:""}),e.color&&s.default.createElement("span",{style:{backgroundColor:e.color,marginRight:"0px"},className:"colorpiece"}),s.default.createElement("span",{className:"task-hide",onClick:function(){return function(e){var t=m,n=e.id.toString();if(b){t=m?m.split(","):[];var a=E?E.split(","):[];t&&t.indexOf(n)>=0?(t=t.filter((function(e){return e.toString()!==n})),a=a.filter((function(t){return t.toString()!==e.name}))):(t.push(n),a.push(e.name)),x(t),A(a.join(",")),g(t,a.join(","))}else t&&t.indexOf(n)>=0?(x([]),A(void 0),g([])):(x([""+e.id]),A([e.name]),g([n],e.name)),w.current&&w.current.clearVisible(!1)}(e)}},e.name))}))):s.default.createElement("div",{className:"pl15"},"暂无",m?s.default.createElement("span",null,"'",d,"'"):d))),placement:"bottomRight"},s.default.createElement("span",{className:"task-hide"},N||(_?"更换"+d:d)),s.default.createElement(a.default,{type:"caret-down",className:"color-grey-6"})))}},"1pYj":function(e,t,n){"use strict";n.r(t),t.default=n.p+"static/media/emp.35f6c709.png"},AGJ6:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var a=Object.assign||function(e){for(var t=1;t0?e.join(","):void 0}),r=a({},G,{author_name:t});q(n),Z(r),d(n,r)}(e,t)}}),l.default.createElement(i.default,{update:f,ids:Y&&Y.issue_tag_ids,name:"标记",size:"large",double:!0,names:G&&G.issue_tag_name,lists:j,searchFunc:function(e){return O(e)},chooseFunc:function(e,t){var n=a({},Y,{issue_tag_ids:e&&e.length>0?e.join(","):void 0}),r=a({},G,{issue_tag_name:t});Z(r),q(n),d(n,r)}}),l.default.createElement(i.default,{update:f,ids:Y&&Y.assigner_id,name:"负责人",size:"large",imgControl:!0,names:G&&G.assigner_name,lists:D,searchFunc:function(e){return z(e)},double:!!f,chooseFunc:function(e,t){var n=a({},Y,{assigner_id:e&&e.length>0?e.join(","):void 0}),r=a({},G,{assigner_name:t});Z(r),q(n),d(n,r)}}),!f&&l.default.createElement(i.default,{ids:Y&&Y.sort_by,name:"排序",size:"small",lists:c,names:G&&G.sortby_name,chooseFunc:function(e,t){var n=a({},Y,{sort_by:e&&e.length>0?e.join(","):void 0}),r=a({},G,{sortby_name:t});Z(r),q(n),d(n,r)}}),f&&l.default.createElement(i.default,{update:f,ids:Y&&Y.milestone_id,name:"里程碑",size:"large",names:G&&G.milestone_name,lists:J,searchFunc:function(e){return M(e)},chooseFunc:function(e,t){var n=a({},Y,{milestone_id:e&&e.length>0?e.join(","):void 0}),r=a({},G,{milestone_name:t});Z(r),q(n),d(n,r)}}))}))},BOKS:function(e,t,n){},E9nw:function(e,t){e.exports=function(){var e=document.getSelection();if(!e.rangeCount)return function(){};for(var t=document.activeElement,n=[],a=0;a0?n.tags.map((function(e,t){return r.default.createElement("span",{style:{backgroundColor:""+e.color},className:"ml8 tagscolor task-hide",title:e.name},e.name)})):""),r.default.createElement("div",null,r.default.createElement("div",{className:"infos"},r.default.createElement("div",{className:"ilog"},n.project_issues_index&&r.default.createElement(i.default,{value:"/"+u+"/"+s+"/issues/"+n.project_issues_index},r.default.createElement("span",{className:"number"},"#",n.project_issues_index))),r.default.createElement(l.Link,{to:"/"+(n.author&&n.author.login)},r.default.createElement("i",{className:"iconfont icon-chengyuan2 mr3 font-12",style:{color:"#898d9d"}})),r.default.createElement("span",{className:"mr12"},r.default.createElement(l.Link,{style:{color:"#898d9d"},to:"/"+(n.author&&n.author.login)},n.author&&n.author.name)),r.default.createElement("span",{className:"mr12"},n.created_at," 发布"),r.default.createElement("span",{className:"mr20"},n.updated_at,"更新"),n.blockchain_token_num&&r.default.createElement("span",{className:"mr30"},r.default.createElement("img",{src:o.default,alt:"",width:"13px",className:"mr3"}),n.blockchain_token_num),n.milestone_name&&r.default.createElement("span",{style:{maxWidth:n.blockchain_token_num?"261px":"340px"},title:n.milestone_name,className:"task-hide"},r.default.createElement("i",{className:"iconfont icon-lichengbeiicon1 font-12 mr3"}),n.milestone_name))))),r.default.createElement("div",{className:"issuecondition"},n.assigners&&n.assigners.length>0?r.default.createElement(a.default,{title:c(n.assigners),placement:"bottomRight"},r.default.createElement("div",{className:n.assigners.length>1?"principal hovers":"principal"},r.default.createElement("span",{className:"task-hide",style:{wordBreak:"break-all"}},c(n.assigners)))):"",r.default.createElement("div",{style:{color:"已解决"===n.status_name?"#28bd6c":"#40424a"}},n.status_name),r.default.createElement("div",{className:"commentnum"},r.default.createElement(l.Link,{to:"/"+u+"/"+s+"/issues/"+n.project_issues_index+"#commentList"},r.default.createElement("i",{className:"iconfont icon-a-xiaoxi1 mr5 font-15"}),n.comment_journals_count))))}},XzCO:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var a=i(n("jsC+"));n("qVdP");var r=n("cDcd"),o=i(r),l=n("faye");function i(e){return e&&e.__esModule?e:{default:e}}t.default=(0,r.forwardRef)((function(e,t){var n=e.overlay,i=e.children,s=e.placement,u=e.overlayClassName,c=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,o=void 0;try{for(var l,i=e[Symbol.iterator]();!(a=(l=i.next()).done)&&(n.push(l.value),!t||n.length!==t);a=!0);}catch(e){r=!0,o=e}finally{try{!a&&i.return&&i.return()}finally{if(r)throw o}}return n}(e,t);throw new TypeError("Invalid attempt to destructure non-iterable instance")}((0,r.useState)(!1),2),d=c[0],f=c[1],m=(0,r.useRef)(null),p=(0,r.useRef)(null);(0,r.useImperativeHandle)(t,(function(){return{clearVisible:function(e){f(e)}}})),(0,r.useEffect)((function(){document.addEventListener("click",v,!1)}),[]);var v=function(e){var t=e.target,n=(0,l.findDOMNode)(m.current),a=(0,l.findDOMNode)(p.current);if(n&&a){var r=n.contains(t),o=a.contains(t);r||o||f(!1)}};return o.default.createElement(a.default,{placement:s,visible:d,overlay:o.default.createElement("div",{ref:m},n),trigger:["click"],overlayClassName:u},o.default.createElement("span",{className:"dropspan",ref:p,onClick:function(){return f(!d)}},i))}))},"jZ+j":function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var a=i(n("3S7+"));n("5Dmo");var r=n("cDcd"),o=i(r),l=n("P5Jw");function i(e){return e&&e.__esModule?e:{default:e}}t.default=function(e){var t=e.children,n=e.value,i=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,o=void 0;try{for(var l,i=e[Symbol.iterator]();!(a=(l=i.next()).done)&&(n.push(l.value),!t||n.length!==t);a=!0);}catch(e){r=!0,o=e}finally{try{!a&&i.return&&i.return()}finally{if(r)throw o}}return n}(e,t);throw new TypeError("Invalid attempt to destructure non-iterable instance")}((0,r.useState)("点击复制链接"),2),s=i[0],u=i[1],c="localhost"===window.location.hostname?"testforgeplus.trustie.net":window.location.hostname,d=window.location.protocol;return o.default.createElement(l.CopyToClipboard,{text:d+"//"+c+n,onCopy:function(){return u("复制成功")}},o.default.createElement(a.default,{placement:"bottom",title:s},t))}},rHrb:function(e,t,n){"use strict";function a(e){return(a="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)}Object.defineProperty(t,"__esModule",{value:!0}),t.CopyToClipboard=void 0;var r=i(n("cDcd")),o=i(n("+QRC")),l=["text","onCopy","options","children"];function i(e){return e&&e.__esModule?e:{default:e}}function s(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function u(e){for(var t=1;t=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}(e,l),a=r.default.Children.only(t);return r.default.cloneElement(a,u(u({},n),{},{onClick:this.onClick}))}}])&&d(t.prototype,n),Object.defineProperty(t,"prototype",{writable:!1}),i}(r.default.PureComponent);t.CopyToClipboard=h,y(h,"defaultProps",{onCopy:void 0,options:void 0})},sdXD:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var a=b(n("W9HT")),r=b(n("NUBc")),o=b(n("2/Rp")),l=b(n("kaz8")),i=b(n("3S7+")),s=b(n("BvKs")),u=Object.assign||function(e){for(var t=1;t1)return void pe(me-1);E(n),C(a),ge(r),N(o),P(l),we(i);var s=a.length>0?a.map((function(e){return e.id})):[];Z(s)}})).then((function(e){}))}function Ie(){q([]),ne(!1),je.current&&je.current.clearChoose()}return(0,d.useEffect)((function(){Pe()}),[z,M,J,me,ue]),(0,d.useEffect)((function(){!function(){if(Ne&&b){var e=Ne.author,t=Ne.name;document.title=b.name+"-里程碑-"+e.name+"/"+t}}()}),[Ne,b]),f.default.createElement(s.default,{selectedKeys:[""+z],onClick:function(e){Q("all"),K(e.key)}},f.default.createElement(s.default.Item,{key:"all"},"全部"),f.default.createElement(s.default.Item,{key:"aboutme"},f.default.createElement(i.default,{title:"指我创建的、我负责的和@我的疑修"},"与我相关")),f.default.createElement(s.default.Item,{key:"assignedme"},"我负责的"),f.default.createElement(s.default.Item,{key:"authoredme"},"我创建的"),f.default.createElement(s.default.Item,{key:"atme"},"@我的")),f.default.createElement("div",{className:"main milepostDetail"},b&&f.default.createElement(h.FlexAJ,null,f.default.createElement("div",null,f.default.createElement("p",{className:"font-17 font-bd color-black",style:{width:"900px"}},b.name),f.default.createElement("p",{className:"mt7"},f.default.createElement("span",{className:"mr20"},f.default.createElement("i",{className:"iconfont icon-a-31shijian font-14 mr5 color-grey-89"}),f.default.createElement("span",{className:"color-grey-89"},b.effective_date||"暂无截止时间")),b.percent||0===b.percent?f.default.createElement("span",{style:{color:"#1aaf42"}}," ",b.percent>0?100*b.percent.toFixed(2):b.percent,"%完成 "):"")),f.default.createElement("div",{className:"milepostdiv"},Oe&&Oe.login&&De&&"Reporter"!==De?f.default.createElement(m.Link,{to:"/"+ke+"/"+Ce+"/milestones/"+xe+"/edit",className:"grayButton",style:{marginRight:15}},f.default.createElement("i",{className:"iconfont icon-lichengbeiicon1 font-12 mr5"}),"编辑里程碑"):"",f.default.createElement(g.default,u({},e,{sureFunc:function(){Ae.push("/"+ke+"/"+Ce+"/issues/"+xe+"/new")},checklogin:!0,className:"operateButton ml20"}),"+ 创建疑修"))),f.default.createElement("div",{className:"lists mt25"},f.default.createElement("div",{className:"listheader"},f.default.createElement("div",{style:{display:"flex"}},f.default.createElement(l.default,{value:"all",style:{marginRight:"16px",display:De&&"Reporter"!==De?"block":"none"},checked:te,onChange:function(e){ne(e.target.checked),e.target.checked?q(G):q([])}}),Y&&Y.length>0?f.default.createElement("span",null,"选择",Y.length,"个issue"):f.default.createElement("ul",{className:"statusul"},f.default.createElement("li",{className:"all"===J?"active":"",onClick:function(){return Q("all")}},"全部",f.default.createElement("span",null,Ee)),f.default.createElement("li",{className:"opened"===J?"active":"",onClick:function(){return Q("opened")}},"开启中",f.default.createElement("span",null,R)),f.default.createElement("li",{className:"closed"===J?"active":"",onClick:function(){return Q("closed")}},"已关闭",f.default.createElement("span",null,O)))),f.default.createElement("div",{className:"menusul"},f.default.createElement(p.default,{ref:je,update:Y&&Y.length>0,owner:ke,projectsId:Ce,chooseFunc:function(e){if(Y&&Y.length>0)le(e);else{var t=e.sort_by;Pe(u({},e,Re[t]))}}}),Y&&Y.length>0?f.default.createElement("div",null,f.default.createElement(o.default,{type:"primary",ghost:!0,onClick:function(){var e="/v1/"+ke+"/"+Ce+"/issues/batch_update";y.default.patch(e,{assigner_ids:oe&&oe.assigner_id&&oe.assigner_id.split(","),ids:Y,issue_tag_ids:oe&&oe.issue_tag_ids&&oe.issue_tag_ids.split(","),milestone_id:oe&&oe.milestone_id}).then((function(e){e&&(le(void 0),q([]),ge(void 0),Pe(),Ie())})).catch((function(e){}))}},"确定"),f.default.createElement(o.default,{ghost:!0,className:"ml10 mr10",onClick:Ie},"取消")):"")),0===he&&f.default.createElement("div",{className:"milestonesNoDate"},f.default.createElement("img",{src:_.default,alt:""})),he>0&&f.default.createElement(f.default.Fragment,null,f.default.createElement(l.default.Group,{name:"issues",onChange:function(e){q(e),e.length===G.length?ne(!0):ne(!1)},value:Y,style:{width:"100%"}},f.default.createElement("div",{className:"listdatas"},S.map((function(e,t){return f.default.createElement(v.default,{key:t,checkbox:f.default.createElement(l.default,{value:e.id,key:e.id,style:{marginRight:"16px",display:De&&"Reporter"!==De?"block":"none"}}),item:e,owner:ke,projectsId:Ce})})))),he>10&&f.default.createElement("div",{className:"pt25 pb30",style:{textAlign:"right"}},f.default.createElement(r.default,{total:he,pageSize:ue,current:me,onChange:function(e){pe(e)},showSizeChanger:!0,showQuickJumper:!0,onShowSizeChange:function(e,t){pe(1),ce(t)}}))),void 0===he&&f.default.createElement("div",{style:{height:344,display:"flex",alignItems:"center",justifyContent:"center"}},f.default.createElement(a.default,null))))}},xmot:function(e,t){e.exports="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA4AAAAQCAYAAAAmlE46AAAABHNCSVQICAgIfAhkiAAAAntJREFUKFNVU01oE0EUfi8paauW7NJWqz20xYtKoevZgxtPCgW3Fw/izxYUT2J78Nqfi+BB6qmgoo0oCIJ2C4I33XjxJFbBkwc3otKa1KQ/GJPsvOeb2bTiwjKZ5Pt730wQ5OH3jgXt8UVgdIHBBQSLieUHqJJSISoIU+naQzwaVTVeP8ifjjjA6dcabESEYEh6VZTsldlrUi5z7PNyizgcCX9Ag8QBSK/6o1k52WvzWK8cdZz4MmSI9HGYmRKQVk4cWvuWe8vRfL/r5Fc0xPjd4UhI/xwT5RZ5O0ErLnNx9+i3QUNsvj3kMqsAFGe359tx/D9BUaL5XWMroSHW3xzMS3MzMpeLDB4ROyKiExRFaKYprdpjK9IDQOVpr2OfKSXl/Hk1tCyArAADlBewrdh5KjLAzWd9MyJ0WoQcwSzLrIF9vjxriLWXgxKVxJUG9GwUU1Fhu5Nu1kIBj+y0bAo0M4c9l6o53HrRn98z+t3fWOz3QZEHSuWZQDtMy/sBYpiwx8th6Z7lInEgJ5CFmGdx4/n+SJyYYxWQjnK2XKg86pFYagSZc/Z4NSzfyXLPlXUsz3d5qqkWRaCAm0/6XCVRgWhAt2pfWMO1+5ZkZui+vI6l+a7knKXhvdd+48qtDjkEBqw87s7b59b88oLlpxg9RPbjugoFOCIz5XqvboWrc528b7KGqzczniJeFNEC/npgRzopxCRRKYil1VTc8JFgWpSrEtnvu95Y+nEj44nzgoxlCXwSf961nJQQtlvV4Axnhupx0qq5bvom6Ytv/gWw1D+lPHPvKnOW1YSmHL60SuTI2VXqtUYuk26bQGBXKMcFWBCB4MAU3dacv5qY9er52wxiAAAAAElFTkSuQmCC"}}]); \ No newline at end of file diff --git a/static/js/88.5dc1883a.chunk.js b/static/js/88.9f37ef14.chunk.js similarity index 77% rename from static/js/88.5dc1883a.chunk.js rename to static/js/88.9f37ef14.chunk.js index 66663f4d2..7c8c9b1f9 100644 --- a/static/js/88.5dc1883a.chunk.js +++ b/static/js/88.9f37ef14.chunk.js @@ -1 +1 @@ -(this.webpackJsonp=this.webpackJsonp||[]).push([[88],{"+QRC":function(e,t,a){"use strict";var n=a("E9nw"),r={"text/plain":"Text","text/html":"Url",default:"Text"};e.exports=function(e,t){var a,o,i,l,s,u=!1;t||(t={}),t.debug;try{if(o=n(),i=document.createRange(),l=document.getSelection(),(s=document.createElement("span")).textContent=e,s.style.all="unset",s.style.position="fixed",s.style.top=0,s.style.clip="rect(0, 0, 0, 0)",s.style.whiteSpace="pre",s.style.webkitUserSelect="text",s.style.MozUserSelect="text",s.style.msUserSelect="text",s.style.userSelect="text",s.addEventListener("copy",(function(a){if(a.stopPropagation(),t.format)if(a.preventDefault(),void 0===a.clipboardData){window.clipboardData.clearData();var n=r[t.format]||r.default;window.clipboardData.setData(n,e)}else a.clipboardData.clearData(),a.clipboardData.setData(t.format,e);t.onCopy&&(a.preventDefault(),t.onCopy(a.clipboardData))})),document.body.appendChild(s),i.selectNodeContents(s),l.addRange(i),!document.execCommand("copy"))throw new Error("copy command was unsuccessful");u=!0}catch(n){try{window.clipboardData.setData(t.format||"text",e),t.onCopy&&t.onCopy(window.clipboardData),u=!0}catch(n){a=function(e){var t=(/mac os x/i.test(navigator.userAgent)?"⌘":"Ctrl")+"+C";return e.replace(/#{\s*key\s*}/g,t)}("message"in t?t.message:"Copy to clipboard: #{key}, Enter"),window.prompt(a,e)}}finally{l&&("function"==typeof l.removeRange?l.removeRange(i):l.removeAllRanges()),s&&document.body.removeChild(s),o()}return u}},"0/zy":function(e,t,a){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n=d(a("CtXQ")),r=d(a("BvKs")),o=d(a("5rEg")),i=function(e,t){if(Array.isArray(e))return e;if(Symbol.iterator in Object(e))return function(e,t){var a=[],n=!0,r=!1,o=void 0;try{for(var i,l=e[Symbol.iterator]();!(n=(i=l.next()).done)&&(a.push(i.value),!t||a.length!==t);n=!0);}catch(e){r=!0,o=e}finally{try{!n&&l.return&&l.return()}finally{if(r)throw o}}return a}(e,t);throw new TypeError("Invalid attempt to destructure non-iterable instance")};a("Pwec"),a("lUTK"),a("5NDa");var l=a("cDcd"),s=d(l),u=a("sYIF"),c=d(a("XzCO"));function d(e){return e&&e.__esModule?e:{default:e}}var f=o.default.Search;t.default=function(e,t){var a,o=e.className,d=e.name,m=e.ids,p=e.lists,v=e.size,g=e.imgControl,y=e.searchFunc,h=e.chooseFunc,E=e.update,A=e.double,b=e.names,_=(0,l.useRef)(null),C=(0,l.useState)([]),w=i(C,2),S=w[0],k=w[1],j=(0,l.useState)(void 0),N=i(j,2),x=N[0],O=N[1];return(0,l.useEffect)((function(){k(m?m.split(","):[]),O(b)}),[m,b]),s.default.createElement("li",{className:o||""},s.default.createElement(c.default,{className:o,ref:_,overlay:(a=p,s.default.createElement("div",{className:"overlaydrop "+v},"small"!==v&&s.default.createElement("div",{className:"pb10"},s.default.createElement(f,{placeholder:"搜索"+d,onChange:function(e){return y(e.target.value)}})),a&&a.length>0?s.default.createElement(r.default,{selectedKeys:S},a.map((function(e,t){return s.default.createElement(r.default.Item,{key:e.id},g&&s.default.createElement("img",{src:(0,u.getImageUrl)(e.image_url),alt:""}),e.color&&s.default.createElement("span",{style:{backgroundColor:e.color,marginRight:"0px"},className:"colorpiece"}),s.default.createElement("span",{className:"task-hide",onClick:function(){return function(e){var t=m,a=e.id.toString();if(A){t=m?m.split(","):[];var n=b?b.split(","):[];t&&t.indexOf(a)>=0?(t=t.filter((function(e){return e.toString()!==a})),n=n.filter((function(t){return t.toString()!==e.name}))):(t.push(a),n.push(e.name)),k(t),O(n.join(",")),h(t,n.join(","))}else t&&t.indexOf(a)>=0?(k([]),O(void 0),h([])):(k([""+e.id]),O([e.name]),h([a],e.name)),_.current&&_.current.clearVisible(!1)}(e)}},e.name))}))):s.default.createElement("div",{className:"pl15"},"暂无",m?s.default.createElement("span",null,"'",d,"'"):d))),placement:"bottomRight"},s.default.createElement("span",{className:"task-hide"},x||(E?"更换"+d:d)),s.default.createElement(n.default,{type:"caret-down",className:"color-grey-6"})))}},"0Ks3":function(e,t,a){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n=l(a("2/Rp"));a("+L6B");var r=l(a("cDcd")),o=l(a("/k9T")),i=a("spEH");function l(e){return e&&e.__esModule?e:{default:e}}t.default=function(e){var t=e.visible,a=e.onCancel,l=e.onSuccess,s=e.content,u=e.title;return r.default.createElement(o.default,{visible:t,onCancel:a,title:u||"删除疑修",btn:r.default.createElement("div",null,r.default.createElement(n.default,{size:"large",onClick:a},"取消"),r.default.createElement(n.default,{type:"danger",size:"large",onClick:l},"确认删除"))},r.default.createElement("div",{className:"desc"},r.default.createElement(i.AlignTop,{className:"deldesc"},r.default.createElement("i",{className:"iconfont icon-jinggao1 mr10 font-20 red"}),s||r.default.createElement("div",{style:{paddingTop:"3px"}},r.default.createElement("p",{className:"font-15 mb20"},"您确定要删除所有选中的疑修?"),r.default.createElement("p",{className:"color-grey-6"},"此操作将清空所有已选中的疑修,请谨慎操作")))))}},"0x8O":function(e,t){e.exports="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIgAAACICAYAAAA8uqNSAAAABHNCSVQICAgIfAhkiAAACx9JREFUeF7tnV1sXEcVx2euTaMgUBJRqagP4IgKUFQRJxYVUdPdvXbSehdCkocgkZcmL1Qtok1EJaqCIFFBfAi1MRJp+1TngQ/BAwkl3qSJvXe3FVJAjh1KpVaI4LwUFdGSlLaJSvYezti78d10vXfufOzdu3P2qY1nzpz5n9+cmbk7d5Yz+pACHRTgpA4p0EkBAoT46KgAAUKAECDEgLoClEHUtXOiJgHiRJjVO0mAqGvnRE0CxIkwq3eSAFHXzomaBIgTYVbvJAGirp0TNQkQJ8Ks3kkCRF07J2oSIE6EWb2TBIi6dk7U7Aogvj/+GQBvHDjciw1+kjF+G+PsVicUNtVJYP9mDN4Azi6iyTNwvf6HWu2Ff5gyv5Ida4Bs2bJl9apVa/aCxx/ijG+23REX7QODP6O2R1n43q+DILhmQwMrgGDGGAPu/QIdvs2G02SzVQEE5XUP2N5KpVw1rY1xQPJ+6eecs4dMO0r2ZBSAiWCmfECmpGwZo4Dk/eKznPOvtW0cIMB1xywwfgGuw19rtfKcrJNUjrFcrriJD/I7OYONqOFdGLh72usCzyAkD5rSzBgghdHSE+jUdz7gGMBr4HkPVqdPVkw5TXYYy4+VtvMQjjLO72ijx6FgZuqwCZ2MAJLPj3+eD3h/ijoEwK4yDt+szpSfNuEo2WivAE7pD+NffoTT+uqWEiHbFART87q6aQOyZ8+egX+9+c5fcDW9IeoMB7arUpk6oesg1Y9XID9a+ioG8pctJQFeCSrlz+G/hfEWVi6hDYjvl3bi3vx4a/aAn1Qr5W/pOEZ1kymAmeRJzCIHWwdp/UuVyumTySy1ltYGpOCXnsHF5wM3zAJMI7nb8f9BxzGqm1gBjpkkwIDmmjUB4GkcqFo7Sm1A0KlzaOSuG90J69uD4PTZxN2jCtoK5Pzxkse95YwB7FxQmfqCjmETgFxCI59oOhFe/9+na7Uzf9NxiuqqKXDPWHHDAPBXIrUv4W5mSM3aUi1tQHB72zKVoEPaNnU65HLdkZEdH/7omvq7UQ1046EdTAKkt5A0HQ8CpLfiq+0NAaItYX8bIED6O77avSNAtCXsbwMESH/HV7t3BIi2hP1tgADp7/hq944A0Zawvw0QIP0dX+3eESDaEva3AQIkEt/h4eGhgYGBnfi19trmP+OZ2Mv1ev3E/Pz8Qn+j0L53BAjqgmAUEIzv4X8WOkAQICiHEZTAJVCcB2Tz5s3PYZbYJxt0zC6T58+f3y9bPuvlnAZkZGTkdxjAXQpBPD47O7tboV7mqjgLCGaOI5g5HlGNGGaSCcwkRl8qUvXFZj0nAWmsObTfq8E1id/vaxInAcGpRcDRaUEqOygDnGp82cJZLOccII2trLFrDjCLrMMscjku+KJdz/MWd0o4tQ3FlTfw93mcBo+HYTgh499K7TkHCK499mGAnjMQgEUTGIT9uBaZ7GQP4RhGOCrY7o3nK6bal7Az35gKYyFuZ8tFQA5hoMRINvJBQA4jIIc6GTM4pSn5rLOgJkCUJF+uJAlIqi99oY8LCPF6la4SICqqRepkARB09wouppWmNwJEH5CDODqPdDKD654FnNbwLrXUPicQEJUHgsw5QEw9A2mGWuZZCK5BRHDEU9tUPujjJtzJKF3d4BwgIkKmRjROL5cwewzJRB3bPIBZRCxm18iUN1TmCtrZh9mj5baEJLZdBcTITgYBiZ1eosHA7CXWAcNJAqRT1sRTXicBaWSReRzRG1UDgHBcwOzRtWCr+qlbz1lAxMMrPAMSKKb8KzivF1Tndd2gdbO+s4AIkRUhcQYOoZHTgDQgWYuZRGxT75cYmccwcxzQ+W5Doo2eKuI8IM1oxJ0P0Xlc3VMRT+gMAdIQDAHpuLOReWKaUPtMFCdACJCOoBIgBAgBIpPLaYpprxJlkB7KIOJ7IjxYdL/BE2eT+Jj9mMwAWakMAdIjgDS+q3lKJ5gr1J1HSDap2iVAegCQxgM7az9norMDI0B6AJC49Y/q6I/UU84iBIgbgNCJMt1RFjeKddJ0nG8W1x/NpulEWVwQ4v6eJiDinAh+H7SAPlo5TCRz6o12MTGEpAmIcK3x7sxxw2dXr2DmOxD33k4naWgN0gNrkGiAGs9CCnEZT+LvC/hWXaB78Q0B0mOASAS+q0UIEAKkI3AECAFCgMjk5LQXqTI+plGGMsjSDkJsM8WLTZ0Wh+ISu90uHTcUQDoPiLgOAnV4SuZqBtwyiisUxLswk2mM5jTadBqQpDccNgOEoBxBSFp+UzaN4HWjTWcB0b1IRubimG4E0HYbTgJi4hoqMd3ggyjxUvSC7SClad9JQPBte7GGkHkPJi42x/AwjljDSH/EI3Vc71j5zuVmJ+bm5qrSjq1Q0DlAGjuW/+gK16yf4BI78aqnuButa+/zipuFMMvt13mJ2zlALNzVsTvueoXGDYdzMjslU+BG7dD9IAlUjXsglsDUYlGZcyJxb+0lbVOhPJ0HkRXNdLAkAQkwe+RlfTRdTiyocVu+TsWuc1NMShkkbUCU7zIhQFSGVaSOZAYxenlvUpdlfFzJpnOApLFIFeJj5tK60SgpFM3y4iYk3MmIy27opmVZERESIZaJZxHSp8XF9hrfmhM/H7JL5+or2T6KC/awrLir/ZAqHKIt5zJIYzSbusQu9hpu2YD2ajknATF0ilxcRTWkMzp7FYqoX04CIgTQvVBX51WCLIDR9NFZQBpTjdLuwpVvcp1dg0RHcJL3UcTCDxd9u1y4/pIyyE15vnE+RNypvrPNFHBC/HqTSyfJCJAOCwGRVfDP4trsyy5li3aSOL0GydJiMS1fCZC0lM9IuwRIRgKVlpsESFrKZ6RdAiQjgUrLTQIkLeUz0i4BkpFApeUmAZKW8hlpt+cBGfTeX3v27Fnx43z06bIC27ZtW3M9vGX5oBHAtaBSXq3jBtepLOrm/dJFztnyr0SHrBgEU6d07VL95Ark/PGSx72TN2oC/B0BuSO5peUa2oAU/OKLjPOtTZP4HcgT1Ur5uzpOUV01BfJ+8Qd4+u3xCCBVBKSgZm2plj4go6Ufop3HIoD8k8PVDUEQKJ2p1OmMy3XHxsY+Vg9XvYoRvdXkYNUGJJe7d703OHgxGhxg8Hx1pvxllwPW7b4X/NIZhGNbS7thuD4ITi3o+KINyOI6ZLT0GzS0pwUSCL9erZw6quMc1ZVTID9a/AZn/Getg5T9qjoztVfOwsqljABy993bb//QLYOv4VrkI5H57xpmkscREhs/maHb776pn/fHD3LuPdnaIXh3gL//qenp6Td0O2oEkKUsUtyBFP/+Aw4BezXk7IHazFRN11mqv6xAbrSU84A9i9PKZ1szN4DHwh2Vyunl3YyGcMYAET4UCsVvM49/v60/AC8BY3/kAC+HoXehVpt6WcNv56r6/n0b68zbiIPwTs5gS3Tn2LrugMeCoPxjUwIZBWQxk/ilCXwu8rApB8lOEgXgSDBTNnoXm3FARHd8f/w+YN4kpr+PJ+kelVVTANd6r+N0s7dSKWvfUHSzB1YAWZpuCrhgXf0IpsJHERRxXpQ+hhVAMN5iwH/6ztsDE7Ozz79n2PyiOWuANJ3duvWL6wYH4SvMg3EGuE+P7nRs9KjPbQKw/2IXz3AIp65e5b89d678ts0uWwfEpvNk274CBIh9jTPdAgGS6fDZd54Asa9xplsgQDIdPvvOEyD2Nc50CwRIpsNn33kCxL7GmW6BAMl0+Ow7T4DY1zjTLRAgmQ6ffecJEPsaZ7oFAiTT4bPvPAFiX+NMt0CAZDp89p0nQOxrnOkW/g84p5HjcavzMgAAAABJRU5ErkJggg=="},"1pYj":function(e,t,a){"use strict";a.r(t),t.default=a.p+"static/media/emp.35f6c709.png"},"5m32":function(e,t,a){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n=N(a("W9HT")),r=N(a("NUBc")),o=N(a("2/Rp")),i=N(a("kaz8")),l=N(a("jsC+")),s=N(a("CtXQ")),u=N(a("3S7+")),c=N(a("BvKs")),d=N(a("5rEg")),f=N(a("+eQT")),m=Object.assign||function(e){for(var t=1;t0?n.data.issues.map((function(e){return e.id})):[];_e(r),et(n.data.total_issues_count),st(n.data.has_created_issues);var o=m({},e,{keyword:te,participant_category:W,category:oe,limit:Ye,page:t||1,sort_direction:gt(e&&e.sort_by),begin_date:ue,end_date:me,sort_by:yt(e&&e.sort_by),names:a}),i=new Date((new Date).getTime()+864e5);S.default.save("issuestates",m({},o),{expires:i,path:"/"})}})).then((function(e){}))}(0,v.useEffect)((function(){if(mt){var e=mt.author,t=mt.name;document.title="疑修-"+e.name+"/"+t}}),[mt]),(0,v.useEffect)((function(){var e=S.default.load("issuestates"),t="undefined"===e?void 0:e;t?(X(t.participant_category),ie(t.category),Qe(t.page),Ge(t.limit||15),Te(m({},t)),Oe(t.names),ce(t.begin_date),pe(t.end_date)):ht()}),[]),(0,v.useEffect)((function(){Re&&!(ye&&ye>0)&&(Re.author_id||Re.issue_priorities_id||Re.issue_tag_ids||Re.milestone_id||Re.sort_by||Re.status_id||Re.assigner_id)||Z||me||ue||"all"!==W?rt(!0):rt(!1)}),[Re,Z,ye,ue,me,W]),t=function(){ht(Re,Me,xe)},a=[W,te,oe,Ye,me,Re],d=(0,v.useRef)(!1),(0,v.useEffect)((function(){d.current?t():d.current=!0}),a);var Et=g.default.createElement(c.default,{selectedKeys:[""+W],onClick:function(e){Qe(1),X(e.key)}},g.default.createElement(c.default.Item,{key:"all"},"全部"),g.default.createElement(c.default.Item,{key:"aboutme"},g.default.createElement(u.default,{title:"指我创建的、我负责的和@我的疑修"},"与我相关")),g.default.createElement(c.default.Item,{key:"assignedme"},"我负责的"),g.default.createElement(c.default.Item,{key:"authoredme"},"我创建的"),g.default.createElement(c.default.Item,{key:"atme"},"@我的"));function At(){he([]),ke(!1),ut.current&&ut.current.clearChoose()}function bt(e){if(e!==oe){var t=m({},Re),a=m({},xe);"closed"===e?(a=m({},a,{status_name:"关闭"}),t=m({},t,{status_id:"5"}),Oe(a),Te(t)):(a=m({},a,{status_name:void 0}),t=m({},t,{status_id:void 0}),Oe(a),Te(t)),ie(e),Qe(1),Le(void 0)}}return g.default.createElement("div",null,g.default.createElement(C.default,{visible:I,onCancel:function(){return D(!1)},onSuccess:function(){var t="/v1/"+ct+"/"+dt+"/issues/batch_destroy";w.default.delete(t,{params:{ids:ye}}).then((function(t){t&&(Te(void 0),he([]),D(!1),ke(!1),e.showNotification("疑修删除成功!"),ht())})).catch((function(e){}))}}),g.default.createElement("div",{className:"pageheader"},g.default.createElement("div",null,pt&&pt.login&&g.default.createElement(l.default,{overlay:Et,trigger:["click"],placement:"bottomLeft",arrow:{pointAtCenter:!0}},g.default.createElement("span",{className:"dorpdownButton mr20"},g.default.createElement("span",null,"all"===W?"全部":"aboutme"===W?"与我相关":"assignedme"===W?"我负责的":"authoredme"===W?"我创建的":"@我的"),g.default.createElement(s.default,{type:"caret-down",className:"ml5 color-grey-6"}))),g.default.createElement(O,{placeholder:"输入关键字搜索疑修",value:Z,onChange:function(e){V(e.target.value),""===e.target.value&&ae(void 0)},onSearch:function(){return ae(Z)},style:{width:354,height:32},allowClear:!0}),nt&&g.default.createElement("a",{className:"color-blue ml25",onClick:function(){ae(void 0),X("all"),ie("opened"),Te(void 0),he([]),Qe(1),V(void 0),Oe(void 0),pe(void 0),ce(void 0),ut.current&&ut.current.clearChoose()},style:{display:"flex",alignItems:"center"}},g.default.createElement("i",{className:"iconfont icon-roundclose font-16 mr5"}),"清除筛选条件")),g.default.createElement("div",null,g.default.createElement(x,{value:[ue?(0,j.default)(ue,"YYYY-MM-DD"):"",me?(0,j.default)(me,"YYYY-MM-DD"):""],onChange:function(e,t){Qe(1),ce(t[0]||""),pe(t[1]||"")},style:{width:240,marginRight:20}}),ft&&"Reporter"!==ft&&g.default.createElement(E.Link,{to:"/"+ct+"/"+dt+"/issues/sign",className:"dorpdownButton"},g.default.createElement("img",{src:y.default,alt:"",className:"mr5"}),"标记管理"),g.default.createElement(b.default,m({},e,{sureFunc:function(){e.history.push("/"+ct+"/"+dt+"/issues/new")},checklogin:!0,className:"operateButton ml20"}),"创建疑修"))),g.default.createElement("div",{className:"lists"},g.default.createElement("div",{className:"listheader"},g.default.createElement("div",{style:{display:"flex"}},g.default.createElement(i.default,{value:"all",style:{marginRight:"16px",display:ft&&"Reporter"!==ft?"block":"none"},checked:Se,onChange:function(e){ke(e.target.checked),ut.current&&ut.current.clearChoose(),e.target.checked?he(be):he([])}}),ye&&ye.length>0?g.default.createElement("span",null,"选择",ye.length,"个issue"):g.default.createElement("ul",{className:"statusul"},g.default.createElement("li",{className:"all"===oe?"active":"",onClick:function(){bt("all")}},"全部",g.default.createElement("span",null,$e)),g.default.createElement("li",{className:"opened"===oe?"active":"",onClick:function(){bt("opened")}},"开启中",g.default.createElement("span",null,H)),g.default.createElement("li",{className:"closed"===oe?"active":"",onClick:function(){bt("closed")}},"已关闭",g.default.createElement("span",null,F)))),g.default.createElement("div",{className:"menusul"},g.default.createElement(A.default,{ref:ut,update:ye&&ye.length>0,owner:ct,projectsId:dt,chooseFunc:function(e,t){Oe(t),Qe(1),ye&&ye.length>0?Ue(e):("5"===e.status_id?ie("closed"):ie("opened"),Te(e),Le(void 0))},defaultNames:xe,defaultIds:ye&&ye.length>0?void 0:Re,open_blockchain:vt}),ye&&ye.length>0?g.default.createElement("div",null,g.default.createElement(o.default,{type:"primary",ghost:!0,onClick:function(){var e="/v1/"+ct+"/"+dt+"/issues/batch_update";w.default.patch(e,{assigner_ids:ze&&ze.assigner_id&&ze.assigner_id.split(","),ids:ye,issue_tag_ids:ze&&ze.issue_tag_ids&&ze.issue_tag_ids.split(","),milestone_id:ze&&ze.milestone_id,priority_id:ze&&ze.issue_priorities_id,status_id:ze&&ze.status_id}).then((function(e){e&&(Te(void 0),he([]),Le(void 0),ht(),At())})).catch((function(e){}))}},"确定"),g.default.createElement(o.default,{type:"danger",ghost:!0,className:"ml10",onClick:function(){return D(!0)}},"删除"),g.default.createElement(o.default,{ghost:!0,className:"ml10 mr10",onClick:At},"取消")):"")),0===qe&&(lt?g.default.createElement("div",{className:"dataempty"},g.default.createElement("img",{src:k.default,alt:""})):g.default.createElement("div",{className:"listempty"},g.default.createElement("img",{src:h.default,alt:"",width:"68px"}),g.default.createElement("p",{className:"font-22 mt5 mb10"},"欢迎使用疑修(Issue)"),g.default.createElement("p",{className:"font-15"},"疑修用于记录与跟踪待办事项、项目bug、功能需求等。在使用之前,请您先",g.default.createElement(b.default,m({},e,{checklogin:!0,sureFunc:function(){e.history.push("/"+ct+"/"+dt+"/issues/new")},className:"color-blue"}),"创建一个疑修")))),qe>0&&g.default.createElement(g.default.Fragment,null,g.default.createElement(i.default.Group,{name:"issues",onChange:function(e){ut.current&&ut.current.clearChoose(),he(e),e.length===be.length?ke(!0):ke(!1)},value:ye,style:{width:"100%"}},g.default.createElement("div",{className:"listdatas"},B.map((function(e,t){return g.default.createElement(_.default,{key:t,checkbox:ft&&"Reporter"!==ft&&g.default.createElement(i.default,{value:e.id,key:e.id,style:{marginRight:"16px"}}),item:e,owner:ct,projectsId:dt})})))),qe>15&&g.default.createElement("div",{className:"pt25 pb30",style:{textAlign:"right"}},g.default.createElement(r.default,{total:qe,onShowSizeChange:function(e,t){Qe(1),Ge(t)},current:Me,pageSize:Ye,onChange:function(e){Qe(e),ht(Re,e,xe),document&&(document.documentElement||document.body)&&(document.documentElement.scrollTop=document.body.scrollTop=0)},showSizeChanger:!0,pageSizeOptions:[15,30,40,50],showQuickJumper:!0}))),void 0===qe&&g.default.createElement("div",{style:{height:344,display:"flex",alignItems:"center",justifyContent:"center"}},g.default.createElement(n.default,null))))}},E9nw:function(e,t){e.exports=function(){var e=document.getSelection();if(!e.rangeCount)return function(){};for(var t=document.activeElement,a=[],n=0;n0?e.join(","):void 0}),r=n({},ue,{author_name:t});ie(a),ce(r),f(a,r)}(e,t)}}),m&&i.default.createElement(l.default,{update:m,ids:oe&&oe.issue_priorities_id,name:"优先级",size:"small",lists:te,names:ue&&ue.issue_priorities_name,chooseFunc:function(e,t){var a=n({},oe,{issue_priorities_id:e&&e.length>0?e.join(","):void 0}),r=n({},ue,{issue_priorities_name:t});ce(r),ie(a),f(a,r)}}),i.default.createElement(l.default,{update:m,ids:oe&&oe.issue_tag_ids,name:"标记",size:"large",double:!0,names:ue&&ue.issue_tag_name,lists:j,searchFunc:function(e){return D(e)},chooseFunc:function(e,t){var a=n({},oe,{issue_tag_ids:e&&e.length>0?e.join(","):void 0}),r=n({},ue,{issue_tag_name:t});ce(r),ie(a),f(a,r)}}),i.default.createElement(l.default,{update:m,ids:oe&&oe.milestone_id,name:"里程碑",size:"large",names:ue&&ue.milestone_name,lists:B,searchFunc:function(e){return J(e)},chooseFunc:function(e,t){var a=n({},oe,{milestone_id:e&&e.length>0?e.join(","):void 0}),r=n({},ue,{milestone_name:t});ce(r),ie(a),f(a,r)}}),i.default.createElement(l.default,{update:m,ids:oe&&oe.assigner_id,name:"负责人",size:"large",imgControl:!0,names:ue&&ue.assigner_name,lists:H,searchFunc:function(e){return X(e)},double:!!m,chooseFunc:function(e,t){var a=n({},oe,{assigner_id:e&&e.length>0?e.join(","):void 0}),r=n({},ue,{assigner_name:t});ce(r),ie(a),f(a,r)}}),i.default.createElement(l.default,{update:m,ids:oe&&oe.status_id,name:"状态",size:"small",lists:Z,names:ue&&ue.status_name,chooseFunc:function(e,t){var a=n({},oe,{status_id:e&&e.length>0?e.join(","):void 0}),r=n({},ue,{status_name:t});ce(r),ie(a),f(a,r)}}),!m&&i.default.createElement(l.default,{className:"minwidth",ids:oe&&oe.sort_by,name:"排序",size:"small",lists:g?c:d,names:ue&&ue.sortby_name,chooseFunc:function(e,t){var a=n({},oe,{sort_by:e&&e.length>0?e.join(","):void 0}),r=n({},ue,{sortby_name:t});ce(r),ie(a),f(a,r)}}))}))},Xxpw:function(e,t,a){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n=s(a("3S7+"));a("5Dmo");var r=s(a("cDcd")),o=(a("sYIF"),s(a("xmot"))),i=a("eO8H"),l=s(a("jZ+j"));function s(e){return e&&e.__esModule?e:{default:e}}t.default=function(e){var t=e.checkbox,a=e.item,s=e.projectsId,u=e.owner;function c(e){return e.map((function(e){return e.name})).join(",")}return r.default.createElement("div",null,r.default.createElement("div",{className:"issuedetail"},t,r.default.createElement("div",{style:{flex:1}},r.default.createElement("div",{className:"idetails"},r.default.createElement("span",{className:function(e){switch(e){case"低":return"status low";case"正常":return"status normals";case"高":return"status hight";default:return"status urgent"}}(a.priority_name)},a.priority_name),r.default.createElement(i.Link,{to:"/"+u+"/"+s+"/issues/"+a.project_issues_index,style:{maxWidth:(a.tags?735-120*a.tags.length:735)+"px"},title:a.subject},a.subject),a.tags&&a.tags.length>0?a.tags.map((function(e,t){return r.default.createElement("span",{style:{backgroundColor:""+e.color},className:"ml8 tagscolor task-hide",title:e.name},e.name)})):""),r.default.createElement("div",null,r.default.createElement("div",{className:"infos"},r.default.createElement("div",{className:"ilog"},a.project_issues_index&&r.default.createElement(l.default,{value:"/"+u+"/"+s+"/issues/"+a.project_issues_index},r.default.createElement("span",{className:"number"},"#",a.project_issues_index))),r.default.createElement(i.Link,{to:"/"+(a.author&&a.author.login)},r.default.createElement("i",{className:"iconfont icon-chengyuan2 mr3 font-12",style:{color:"#898d9d"}})),r.default.createElement("span",{className:"mr12"},r.default.createElement(i.Link,{style:{color:"#898d9d"},to:"/"+(a.author&&a.author.login)},a.author&&a.author.name)),r.default.createElement("span",{className:"mr12"},a.created_at," 发布"),r.default.createElement("span",{className:"mr20"},a.updated_at,"更新"),a.blockchain_token_num&&r.default.createElement("span",{className:"mr30"},r.default.createElement("img",{src:o.default,alt:"",width:"13px",className:"mr3"}),a.blockchain_token_num),a.milestone_name&&r.default.createElement("span",{style:{maxWidth:a.blockchain_token_num?"261px":"340px"},title:a.milestone_name,className:"task-hide"},r.default.createElement("i",{className:"iconfont icon-lichengbeiicon1 font-12 mr3"}),a.milestone_name))))),r.default.createElement("div",{className:"issuecondition"},a.assigners&&a.assigners.length>0?r.default.createElement(n.default,{title:c(a.assigners),placement:"bottomRight"},r.default.createElement("div",{className:a.assigners.length>1?"principal hovers":"principal"},r.default.createElement("span",{className:"task-hide",style:{wordBreak:"break-all"}},c(a.assigners)))):"",r.default.createElement("div",{style:{color:"已解决"===a.status_name?"#28bd6c":"#40424a"}},a.status_name),r.default.createElement("div",{className:"commentnum"},r.default.createElement(i.Link,{to:"/"+u+"/"+s+"/issues/"+a.project_issues_index+"#commentList"},r.default.createElement("i",{className:"iconfont icon-a-xiaoxi1 mr5 font-15"}),a.comment_journals_count))))}},XzCO:function(e,t,a){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n=l(a("jsC+"));a("qVdP");var r=a("cDcd"),o=l(r),i=a("faye");function l(e){return e&&e.__esModule?e:{default:e}}t.default=(0,r.forwardRef)((function(e,t){var a=e.overlay,l=e.children,s=e.placement,u=e.overlayClassName,c=function(e,t){if(Array.isArray(e))return e;if(Symbol.iterator in Object(e))return function(e,t){var a=[],n=!0,r=!1,o=void 0;try{for(var i,l=e[Symbol.iterator]();!(n=(i=l.next()).done)&&(a.push(i.value),!t||a.length!==t);n=!0);}catch(e){r=!0,o=e}finally{try{!n&&l.return&&l.return()}finally{if(r)throw o}}return a}(e,t);throw new TypeError("Invalid attempt to destructure non-iterable instance")}((0,r.useState)(!1),2),d=c[0],f=c[1],m=(0,r.useRef)(null),p=(0,r.useRef)(null);(0,r.useImperativeHandle)(t,(function(){return{clearVisible:function(e){f(e)}}})),(0,r.useEffect)((function(){document.addEventListener("click",v,!1)}),[]);var v=function(e){var t=e.target,a=(0,i.findDOMNode)(m.current),n=(0,i.findDOMNode)(p.current);if(a&&n){var r=a.contains(t),o=n.contains(t);r||o||f(!1)}};return o.default.createElement(n.default,{placement:s,visible:d,overlay:o.default.createElement("div",{ref:m},a),trigger:["click"],overlayClassName:u},o.default.createElement("span",{className:"dropspan",ref:p,onClick:function(){return f(!d)}},l))}))},"jZ+j":function(e,t,a){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n=l(a("3S7+"));a("5Dmo");var r=a("cDcd"),o=l(r),i=a("P5Jw");function l(e){return e&&e.__esModule?e:{default:e}}t.default=function(e){var t=e.children,a=e.value,l=function(e,t){if(Array.isArray(e))return e;if(Symbol.iterator in Object(e))return function(e,t){var a=[],n=!0,r=!1,o=void 0;try{for(var i,l=e[Symbol.iterator]();!(n=(i=l.next()).done)&&(a.push(i.value),!t||a.length!==t);n=!0);}catch(e){r=!0,o=e}finally{try{!n&&l.return&&l.return()}finally{if(r)throw o}}return a}(e,t);throw new TypeError("Invalid attempt to destructure non-iterable instance")}((0,r.useState)("点击复制链接"),2),s=l[0],u=l[1],c="localhost"===window.location.hostname?"testforgeplus.trustie.net":window.location.hostname,d=window.location.protocol;return o.default.createElement(i.CopyToClipboard,{text:d+"//"+c+a,onCopy:function(){return u("复制成功")}},o.default.createElement(n.default,{placement:"bottom",title:s},t))}},rHrb:function(e,t,a){"use strict";function n(e){return(n="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)}Object.defineProperty(t,"__esModule",{value:!0}),t.CopyToClipboard=void 0;var r=l(a("cDcd")),o=l(a("+QRC")),i=["text","onCopy","options","children"];function l(e){return e&&e.__esModule?e:{default:e}}function s(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function u(e){for(var t=1;t=0||(r[a]=e[a]);return r}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(r[a]=e[a])}return r}(e,i),n=r.default.Children.only(t);return r.default.cloneElement(n,u(u({},a),{},{onClick:this.onClick}))}}])&&d(t.prototype,a),Object.defineProperty(t,"prototype",{writable:!1}),l}(r.default.PureComponent);t.CopyToClipboard=y,g(y,"defaultProps",{onCopy:void 0,options:void 0})},xmot:function(e,t){e.exports="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA4AAAAQCAYAAAAmlE46AAAABHNCSVQICAgIfAhkiAAAAntJREFUKFNVU01oE0EUfi8paauW7NJWqz20xYtKoevZgxtPCgW3Fw/izxYUT2J78Nqfi+BB6qmgoo0oCIJ2C4I33XjxJFbBkwc3otKa1KQ/GJPsvOeb2bTiwjKZ5Pt730wQ5OH3jgXt8UVgdIHBBQSLieUHqJJSISoIU+naQzwaVTVeP8ifjjjA6dcabESEYEh6VZTsldlrUi5z7PNyizgcCX9Ag8QBSK/6o1k52WvzWK8cdZz4MmSI9HGYmRKQVk4cWvuWe8vRfL/r5Fc0xPjd4UhI/xwT5RZ5O0ErLnNx9+i3QUNsvj3kMqsAFGe359tx/D9BUaL5XWMroSHW3xzMS3MzMpeLDB4ROyKiExRFaKYprdpjK9IDQOVpr2OfKSXl/Hk1tCyArAADlBewrdh5KjLAzWd9MyJ0WoQcwSzLrIF9vjxriLWXgxKVxJUG9GwUU1Fhu5Nu1kIBj+y0bAo0M4c9l6o53HrRn98z+t3fWOz3QZEHSuWZQDtMy/sBYpiwx8th6Z7lInEgJ5CFmGdx4/n+SJyYYxWQjnK2XKg86pFYagSZc/Z4NSzfyXLPlXUsz3d5qqkWRaCAm0/6XCVRgWhAt2pfWMO1+5ZkZui+vI6l+a7knKXhvdd+48qtDjkEBqw87s7b59b88oLlpxg9RPbjugoFOCIz5XqvboWrc528b7KGqzczniJeFNEC/npgRzopxCRRKYil1VTc8JFgWpSrEtnvu95Y+nEj44nzgoxlCXwSf961nJQQtlvV4Axnhupx0qq5bvom6Ytv/gWw1D+lPHPvKnOW1YSmHL60SuTI2VXqtUYuk26bQGBXKMcFWBCB4MAU3dacv5qY9er52wxiAAAAAElFTkSuQmCC"},ynFz:function(e,t){e.exports="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAANCAYAAACQN/8FAAAABHNCSVQICAgIfAhkiAAAALZJREFUKFONkIENwiAQRQUW6QYSWKAjdIR2Ah2BERyBUXQAkBF0Al0A2n8NNFStKQm5f/COOz475KW17sZxNDm9e++HckeRlUQpdU0pdSGEN2mA7QrE4YUxdsRrEjHQ5Ye+ocgwgAFC1tW1xkg2xjiDX21qUErZCCF2gS3Afm6NmU5brTnnBq0HAntADTZFmwtq/cAf7MqeYslPe2ofd4N/Da9epLnOMP2F+HTOUb6sZcatX5fzCY5aaODpOAmxAAAAAElFTkSuQmCC"}}]); \ No newline at end of file +(this.webpackJsonp=this.webpackJsonp||[]).push([[88],{"+QRC":function(e,t,a){"use strict";var n=a("E9nw"),r={"text/plain":"Text","text/html":"Url",default:"Text"};e.exports=function(e,t){var a,o,i,l,s,u=!1;t||(t={}),t.debug;try{if(o=n(),i=document.createRange(),l=document.getSelection(),(s=document.createElement("span")).textContent=e,s.style.all="unset",s.style.position="fixed",s.style.top=0,s.style.clip="rect(0, 0, 0, 0)",s.style.whiteSpace="pre",s.style.webkitUserSelect="text",s.style.MozUserSelect="text",s.style.msUserSelect="text",s.style.userSelect="text",s.addEventListener("copy",(function(a){if(a.stopPropagation(),t.format)if(a.preventDefault(),void 0===a.clipboardData){window.clipboardData.clearData();var n=r[t.format]||r.default;window.clipboardData.setData(n,e)}else a.clipboardData.clearData(),a.clipboardData.setData(t.format,e);t.onCopy&&(a.preventDefault(),t.onCopy(a.clipboardData))})),document.body.appendChild(s),i.selectNodeContents(s),l.addRange(i),!document.execCommand("copy"))throw new Error("copy command was unsuccessful");u=!0}catch(n){try{window.clipboardData.setData(t.format||"text",e),t.onCopy&&t.onCopy(window.clipboardData),u=!0}catch(n){a=function(e){var t=(/mac os x/i.test(navigator.userAgent)?"⌘":"Ctrl")+"+C";return e.replace(/#{\s*key\s*}/g,t)}("message"in t?t.message:"Copy to clipboard: #{key}, Enter"),window.prompt(a,e)}}finally{l&&("function"==typeof l.removeRange?l.removeRange(i):l.removeAllRanges()),s&&document.body.removeChild(s),o()}return u}},"0/zy":function(e,t,a){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n=d(a("CtXQ")),r=d(a("BvKs")),o=d(a("5rEg")),i=function(e,t){if(Array.isArray(e))return e;if(Symbol.iterator in Object(e))return function(e,t){var a=[],n=!0,r=!1,o=void 0;try{for(var i,l=e[Symbol.iterator]();!(n=(i=l.next()).done)&&(a.push(i.value),!t||a.length!==t);n=!0);}catch(e){r=!0,o=e}finally{try{!n&&l.return&&l.return()}finally{if(r)throw o}}return a}(e,t);throw new TypeError("Invalid attempt to destructure non-iterable instance")};a("Pwec"),a("lUTK"),a("5NDa");var l=a("cDcd"),s=d(l),u=a("sYIF"),c=d(a("XzCO"));function d(e){return e&&e.__esModule?e:{default:e}}var f=o.default.Search;t.default=function(e,t){var a,o=e.className,d=e.name,m=e.ids,p=e.lists,v=e.size,g=e.imgControl,y=e.searchFunc,h=e.chooseFunc,E=e.update,A=e.double,b=e.names,_=(0,l.useRef)(null),C=(0,l.useState)([]),w=i(C,2),S=w[0],k=w[1],j=(0,l.useState)(void 0),N=i(j,2),x=N[0],O=N[1];return(0,l.useEffect)((function(){k(m?m.split(","):[]),O(b)}),[m,b]),s.default.createElement("li",{className:o||""},s.default.createElement(c.default,{className:o,ref:_,overlay:(a=p,s.default.createElement("div",{className:"overlaydrop "+v},"small"!==v&&s.default.createElement("div",{className:"pb10"},s.default.createElement(f,{placeholder:"搜索"+d,onChange:function(e){return y(e.target.value)}})),a&&a.length>0?s.default.createElement(r.default,{selectedKeys:S},a.map((function(e,t){return s.default.createElement(r.default.Item,{key:e.id},g&&s.default.createElement("img",{src:(0,u.getImageUrl)(e.image_url),alt:""}),e.color&&s.default.createElement("span",{style:{backgroundColor:e.color,marginRight:"0px"},className:"colorpiece"}),s.default.createElement("span",{className:"task-hide",onClick:function(){return function(e){var t=m,a=e.id.toString();if(A){t=m?m.split(","):[];var n=b?b.split(","):[];t&&t.indexOf(a)>=0?(t=t.filter((function(e){return e.toString()!==a})),n=n.filter((function(t){return t.toString()!==e.name}))):(t.push(a),n.push(e.name)),k(t),O(n.join(",")),h(t,n.join(","))}else t&&t.indexOf(a)>=0?(k([]),O(void 0),h([])):(k([""+e.id]),O([e.name]),h([a],e.name)),_.current&&_.current.clearVisible(!1)}(e)}},e.name))}))):s.default.createElement("div",{className:"pl15"},"暂无",m?s.default.createElement("span",null,"'",d,"'"):d))),placement:"bottomRight"},s.default.createElement("span",{className:"task-hide"},x||(E?"更换"+d:d)),s.default.createElement(n.default,{type:"caret-down",className:"color-grey-6"})))}},"0Ks3":function(e,t,a){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n=l(a("2/Rp"));a("+L6B");var r=l(a("cDcd")),o=l(a("/k9T")),i=a("spEH");function l(e){return e&&e.__esModule?e:{default:e}}t.default=function(e){var t=e.visible,a=e.onCancel,l=e.onSuccess,s=e.content,u=e.title;return r.default.createElement(o.default,{visible:t,onCancel:a,title:u||"删除疑修",btn:r.default.createElement("div",null,r.default.createElement(n.default,{size:"large",onClick:a},"取消"),r.default.createElement(n.default,{type:"danger",size:"large",onClick:l},"确认删除"))},r.default.createElement("div",{className:"desc"},r.default.createElement(i.AlignTop,{className:"deldesc"},r.default.createElement("i",{className:"iconfont icon-jinggao1 mr10 font-20 red"}),s||r.default.createElement("div",{style:{paddingTop:"3px"}},r.default.createElement("p",{className:"font-15 mb20"},"您确定要删除所有选中的疑修?"),r.default.createElement("p",{className:"color-grey-6"},"此操作将清空所有已选中的疑修,请谨慎操作")))))}},"0x8O":function(e,t){e.exports="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIgAAACICAYAAAA8uqNSAAAABHNCSVQICAgIfAhkiAAACx9JREFUeF7tnV1sXEcVx2euTaMgUBJRqagP4IgKUFQRJxYVUdPdvXbSehdCkocgkZcmL1Qtok1EJaqCIFFBfAi1MRJp+1TngQ/BAwkl3qSJvXe3FVJAjh1KpVaI4LwUFdGSlLaJSvYezti78d10vXfufOzdu3P2qY1nzpz5n9+cmbk7d5Yz+pACHRTgpA4p0EkBAoT46KgAAUKAECDEgLoClEHUtXOiJgHiRJjVO0mAqGvnRE0CxIkwq3eSAFHXzomaBIgTYVbvJAGirp0TNQkQJ8Ks3kkCRF07J2oSIE6EWb2TBIi6dk7U7Aogvj/+GQBvHDjciw1+kjF+G+PsVicUNtVJYP9mDN4Azi6iyTNwvf6HWu2Ff5gyv5Ida4Bs2bJl9apVa/aCxx/ijG+23REX7QODP6O2R1n43q+DILhmQwMrgGDGGAPu/QIdvs2G02SzVQEE5XUP2N5KpVw1rY1xQPJ+6eecs4dMO0r2ZBSAiWCmfECmpGwZo4Dk/eKznPOvtW0cIMB1xywwfgGuw19rtfKcrJNUjrFcrriJD/I7OYONqOFdGLh72usCzyAkD5rSzBgghdHSE+jUdz7gGMBr4HkPVqdPVkw5TXYYy4+VtvMQjjLO72ijx6FgZuqwCZ2MAJLPj3+eD3h/ijoEwK4yDt+szpSfNuEo2WivAE7pD+NffoTT+uqWEiHbFART87q6aQOyZ8+egX+9+c5fcDW9IeoMB7arUpk6oesg1Y9XID9a+ioG8pctJQFeCSrlz+G/hfEWVi6hDYjvl3bi3vx4a/aAn1Qr5W/pOEZ1kymAmeRJzCIHWwdp/UuVyumTySy1ltYGpOCXnsHF5wM3zAJMI7nb8f9BxzGqm1gBjpkkwIDmmjUB4GkcqFo7Sm1A0KlzaOSuG90J69uD4PTZxN2jCtoK5Pzxkse95YwB7FxQmfqCjmETgFxCI59oOhFe/9+na7Uzf9NxiuqqKXDPWHHDAPBXIrUv4W5mSM3aUi1tQHB72zKVoEPaNnU65HLdkZEdH/7omvq7UQ1046EdTAKkt5A0HQ8CpLfiq+0NAaItYX8bIED6O77avSNAtCXsbwMESH/HV7t3BIi2hP1tgADp7/hq944A0Zawvw0QIP0dX+3eESDaEva3AQIkEt/h4eGhgYGBnfi19trmP+OZ2Mv1ev3E/Pz8Qn+j0L53BAjqgmAUEIzv4X8WOkAQICiHEZTAJVCcB2Tz5s3PYZbYJxt0zC6T58+f3y9bPuvlnAZkZGTkdxjAXQpBPD47O7tboV7mqjgLCGaOI5g5HlGNGGaSCcwkRl8qUvXFZj0nAWmsObTfq8E1id/vaxInAcGpRcDRaUEqOygDnGp82cJZLOccII2trLFrDjCLrMMscjku+KJdz/MWd0o4tQ3FlTfw93mcBo+HYTgh499K7TkHCK499mGAnjMQgEUTGIT9uBaZ7GQP4RhGOCrY7o3nK6bal7Az35gKYyFuZ8tFQA5hoMRINvJBQA4jIIc6GTM4pSn5rLOgJkCUJF+uJAlIqi99oY8LCPF6la4SICqqRepkARB09wouppWmNwJEH5CDODqPdDKD654FnNbwLrXUPicQEJUHgsw5QEw9A2mGWuZZCK5BRHDEU9tUPujjJtzJKF3d4BwgIkKmRjROL5cwewzJRB3bPIBZRCxm18iUN1TmCtrZh9mj5baEJLZdBcTITgYBiZ1eosHA7CXWAcNJAqRT1sRTXicBaWSReRzRG1UDgHBcwOzRtWCr+qlbz1lAxMMrPAMSKKb8KzivF1Tndd2gdbO+s4AIkRUhcQYOoZHTgDQgWYuZRGxT75cYmccwcxzQ+W5Doo2eKuI8IM1oxJ0P0Xlc3VMRT+gMAdIQDAHpuLOReWKaUPtMFCdACJCOoBIgBAgBIpPLaYpprxJlkB7KIOJ7IjxYdL/BE2eT+Jj9mMwAWakMAdIjgDS+q3lKJ5gr1J1HSDap2iVAegCQxgM7az9norMDI0B6AJC49Y/q6I/UU84iBIgbgNCJMt1RFjeKddJ0nG8W1x/NpulEWVwQ4v6eJiDinAh+H7SAPlo5TCRz6o12MTGEpAmIcK3x7sxxw2dXr2DmOxD33k4naWgN0gNrkGiAGs9CCnEZT+LvC/hWXaB78Q0B0mOASAS+q0UIEAKkI3AECAFCgMjk5LQXqTI+plGGMsjSDkJsM8WLTZ0Wh+ISu90uHTcUQDoPiLgOAnV4SuZqBtwyiisUxLswk2mM5jTadBqQpDccNgOEoBxBSFp+UzaN4HWjTWcB0b1IRubimG4E0HYbTgJi4hoqMd3ggyjxUvSC7SClad9JQPBte7GGkHkPJi42x/AwjljDSH/EI3Vc71j5zuVmJ+bm5qrSjq1Q0DlAGjuW/+gK16yf4BI78aqnuButa+/zipuFMMvt13mJ2zlALNzVsTvueoXGDYdzMjslU+BG7dD9IAlUjXsglsDUYlGZcyJxb+0lbVOhPJ0HkRXNdLAkAQkwe+RlfTRdTiyocVu+TsWuc1NMShkkbUCU7zIhQFSGVaSOZAYxenlvUpdlfFzJpnOApLFIFeJj5tK60SgpFM3y4iYk3MmIy27opmVZERESIZaJZxHSp8XF9hrfmhM/H7JL5+or2T6KC/awrLir/ZAqHKIt5zJIYzSbusQu9hpu2YD2ajknATF0ilxcRTWkMzp7FYqoX04CIgTQvVBX51WCLIDR9NFZQBpTjdLuwpVvcp1dg0RHcJL3UcTCDxd9u1y4/pIyyE15vnE+RNypvrPNFHBC/HqTSyfJCJAOCwGRVfDP4trsyy5li3aSOL0GydJiMS1fCZC0lM9IuwRIRgKVlpsESFrKZ6RdAiQjgUrLTQIkLeUz0i4BkpFApeUmAZKW8hlpt+cBGfTeX3v27Fnx43z06bIC27ZtW3M9vGX5oBHAtaBSXq3jBtepLOrm/dJFztnyr0SHrBgEU6d07VL95Ark/PGSx72TN2oC/B0BuSO5peUa2oAU/OKLjPOtTZP4HcgT1Ur5uzpOUV01BfJ+8Qd4+u3xCCBVBKSgZm2plj4go6Ufop3HIoD8k8PVDUEQKJ2p1OmMy3XHxsY+Vg9XvYoRvdXkYNUGJJe7d703OHgxGhxg8Hx1pvxllwPW7b4X/NIZhGNbS7thuD4ITi3o+KINyOI6ZLT0GzS0pwUSCL9erZw6quMc1ZVTID9a/AZn/Getg5T9qjoztVfOwsqljABy993bb//QLYOv4VrkI5H57xpmkscREhs/maHb776pn/fHD3LuPdnaIXh3gL//qenp6Td0O2oEkKUsUtyBFP/+Aw4BezXk7IHazFRN11mqv6xAbrSU84A9i9PKZ1szN4DHwh2Vyunl3YyGcMYAET4UCsVvM49/v60/AC8BY3/kAC+HoXehVpt6WcNv56r6/n0b68zbiIPwTs5gS3Tn2LrugMeCoPxjUwIZBWQxk/ilCXwu8rApB8lOEgXgSDBTNnoXm3FARHd8f/w+YN4kpr+PJ+kelVVTANd6r+N0s7dSKWvfUHSzB1YAWZpuCrhgXf0IpsJHERRxXpQ+hhVAMN5iwH/6ztsDE7Ozz79n2PyiOWuANJ3duvWL6wYH4SvMg3EGuE+P7nRs9KjPbQKw/2IXz3AIp65e5b89d678ts0uWwfEpvNk274CBIh9jTPdAgGS6fDZd54Asa9xplsgQDIdPvvOEyD2Nc50CwRIpsNn33kCxL7GmW6BAMl0+Ow7T4DY1zjTLRAgmQ6ffecJEPsaZ7oFAiTT4bPvPAFiX+NMt0CAZDp89p0nQOxrnOkW/g84p5HjcavzMgAAAABJRU5ErkJggg=="},"1pYj":function(e,t,a){"use strict";a.r(t),t.default=a.p+"static/media/emp.35f6c709.png"},"5m32":function(e,t,a){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n=N(a("W9HT")),r=N(a("NUBc")),o=N(a("2/Rp")),i=N(a("kaz8")),l=N(a("jsC+")),s=N(a("CtXQ")),u=N(a("3S7+")),c=N(a("BvKs")),d=N(a("5rEg")),f=N(a("+eQT")),m=Object.assign||function(e){for(var t=1;t0?n.data.issues.map((function(e){return e.id})):[];_e(r),et(n.data.total_issues_count),st(n.data.has_created_issues);var o=m({},e,{keyword:te,participant_category:W,category:oe,limit:Ye,page:t||1,sort_direction:gt(e&&e.sort_by),begin_date:ue,end_date:me,sort_by:yt(e&&e.sort_by),names:a}),i=new Date((new Date).getTime()+864e5);S.default.save("issuestates",m({},o),{expires:i,path:"/"})}})).then((function(e){}))}(0,v.useEffect)((function(){if(mt){var e=mt.author,t=mt.name;document.title="疑修-"+e.name+"/"+t}}),[mt]),(0,v.useEffect)((function(){var e=S.default.load("issuestates"),t="undefined"===e?void 0:e;t?(X(t.participant_category),ie(t.category),Qe(t.page),Ge(t.limit||15),Te(m({},t)),Oe(t.names),ce(t.begin_date),pe(t.end_date)):ht()}),[]),(0,v.useEffect)((function(){Re&&!(ye&&ye>0)&&(Re.author_id||Re.issue_priorities_id||Re.issue_tag_ids||Re.milestone_id||Re.sort_by||Re.status_id||Re.assigner_id)||Z||me||ue||"all"!==W?rt(!0):rt(!1)}),[Re,Z,ye,ue,me,W]),t=function(){ht(Re,Me,xe)},a=[W,te,oe,Ye,me,Re],d=(0,v.useRef)(!1),(0,v.useEffect)((function(){d.current?t():d.current=!0}),a);var Et=g.default.createElement(c.default,{selectedKeys:[""+W],onClick:function(e){Qe(1),X(e.key)}},g.default.createElement(c.default.Item,{key:"all"},"全部"),g.default.createElement(c.default.Item,{key:"aboutme"},g.default.createElement(u.default,{title:"指我创建的、我负责的和@我的疑修"},"与我相关")),g.default.createElement(c.default.Item,{key:"assignedme"},"我负责的"),g.default.createElement(c.default.Item,{key:"authoredme"},"我创建的"),g.default.createElement(c.default.Item,{key:"atme"},"@我的"));function At(){he([]),ke(!1),ut.current&&ut.current.clearChoose()}function bt(e){if(e!==oe){var t=m({},Re),a=m({},xe);"closed"===e?(a=m({},a,{status_name:"关闭"}),t=m({},t,{status_id:"5"}),Oe(a),Te(t)):(a=m({},a,{status_name:void 0}),t=m({},t,{status_id:void 0}),Oe(a),Te(t)),ie(e),Qe(1),Le(void 0)}}return g.default.createElement("div",null,g.default.createElement(C.default,{visible:I,onCancel:function(){return D(!1)},onSuccess:function(){var t="/v1/"+ct+"/"+dt+"/issues/batch_destroy";w.default.delete(t,{params:{ids:ye}}).then((function(t){t&&(Te(void 0),he([]),D(!1),ke(!1),e.showNotification("疑修删除成功!"),ht())})).catch((function(e){}))}}),g.default.createElement("div",{className:"pageheader"},g.default.createElement("div",null,pt&&pt.login&&g.default.createElement(l.default,{overlay:Et,trigger:["click"],placement:"bottomLeft",arrow:{pointAtCenter:!0}},g.default.createElement("span",{className:"dorpdownButton mr20"},g.default.createElement("span",null,"all"===W?"全部":"aboutme"===W?"与我相关":"assignedme"===W?"我负责的":"authoredme"===W?"我创建的":"@我的"),g.default.createElement(s.default,{type:"caret-down",className:"ml5 color-grey-6"}))),g.default.createElement(O,{placeholder:"输入关键字搜索疑修",value:Z,onChange:function(e){V(e.target.value),""===e.target.value&&ae(void 0)},onSearch:function(){return ae(Z)},style:{width:354,height:32},allowClear:!0}),nt&&g.default.createElement("a",{className:"color-blue ml25",onClick:function(){ae(void 0),X("all"),ie("opened"),Te(void 0),he([]),Qe(1),V(void 0),Oe(void 0),pe(void 0),ce(void 0),ut.current&&ut.current.clearChoose()},style:{display:"flex",alignItems:"center"}},g.default.createElement("i",{className:"iconfont icon-roundclose font-16 mr5"}),"清除筛选条件")),g.default.createElement("div",null,g.default.createElement(x,{value:[ue?(0,j.default)(ue,"YYYY-MM-DD"):"",me?(0,j.default)(me,"YYYY-MM-DD"):""],onChange:function(e,t){Qe(1),ce(t[0]||""),pe(t[1]||"")},style:{width:240,marginRight:20}}),ft&&"Reporter"!==ft&&g.default.createElement(E.Link,{to:"/"+ct+"/"+dt+"/issues/sign",className:"dorpdownButton"},g.default.createElement("img",{src:y.default,alt:"",className:"mr5"}),"标记管理"),g.default.createElement(b.default,m({},e,{sureFunc:function(){e.history.push("/"+ct+"/"+dt+"/issues/new")},checklogin:!0,className:"operateButton ml20"}),"创建疑修"))),g.default.createElement("div",{className:"lists"},g.default.createElement("div",{className:"listheader"},g.default.createElement("div",{style:{display:"flex"}},g.default.createElement(i.default,{value:"all",style:{marginRight:"16px",display:ft&&"Reporter"!==ft?"block":"none"},checked:Se,onChange:function(e){ke(e.target.checked),ut.current&&ut.current.clearChoose(),e.target.checked?he(be):he([])}}),ye&&ye.length>0?g.default.createElement("span",null,"选择",ye.length,"个issue"):g.default.createElement("ul",{className:"statusul"},g.default.createElement("li",{className:"all"===oe?"active":"",onClick:function(){bt("all")}},"全部",g.default.createElement("span",null,$e)),g.default.createElement("li",{className:"opened"===oe?"active":"",onClick:function(){bt("opened")}},"开启中",g.default.createElement("span",null,H)),g.default.createElement("li",{className:"closed"===oe?"active":"",onClick:function(){bt("closed")}},"已关闭",g.default.createElement("span",null,F)))),g.default.createElement("div",{className:"menusul"},g.default.createElement(A.default,{ref:ut,update:ye&&ye.length>0,owner:ct,projectsId:dt,chooseFunc:function(e,t){Oe(t),Qe(1),ye&&ye.length>0?Ue(e):("5"===e.status_id?ie("closed"):ie("opened"),Te(e),Le(void 0))},defaultNames:xe,defaultIds:ye&&ye.length>0?void 0:Re,open_blockchain:vt}),ye&&ye.length>0?g.default.createElement("div",null,g.default.createElement(o.default,{type:"primary",ghost:!0,onClick:function(){var e="/v1/"+ct+"/"+dt+"/issues/batch_update";w.default.patch(e,{assigner_ids:ze&&ze.assigner_id&&ze.assigner_id.split(","),ids:ye,issue_tag_ids:ze&&ze.issue_tag_ids&&ze.issue_tag_ids.split(","),milestone_id:ze&&ze.milestone_id,priority_id:ze&&ze.issue_priorities_id,status_id:ze&&ze.status_id}).then((function(e){e&&(Te(void 0),he([]),Le(void 0),ht(),At())})).catch((function(e){}))}},"确定"),g.default.createElement(o.default,{type:"danger",ghost:!0,className:"ml10",onClick:function(){return D(!0)}},"删除"),g.default.createElement(o.default,{ghost:!0,className:"ml10 mr10",onClick:At},"取消")):"")),0===qe&&(lt?g.default.createElement("div",{className:"dataempty"},g.default.createElement("img",{src:k.default,alt:""})):g.default.createElement("div",{className:"listempty"},g.default.createElement("img",{src:h.default,alt:"",width:"68px"}),g.default.createElement("p",{className:"font-22 mt5 mb10"},"欢迎使用疑修(Issue)"),g.default.createElement("p",{className:"font-15"},"疑修用于记录与跟踪待办事项、项目bug、功能需求等。在使用之前,请您先",g.default.createElement(b.default,m({},e,{checklogin:!0,sureFunc:function(){e.history.push("/"+ct+"/"+dt+"/issues/new")},className:"color-blue"}),"创建一个疑修")))),qe>0&&g.default.createElement(g.default.Fragment,null,g.default.createElement(i.default.Group,{name:"issues",onChange:function(e){ut.current&&ut.current.clearChoose(),he(e),e.length===be.length?ke(!0):ke(!1)},value:ye,style:{width:"100%"}},g.default.createElement("div",{className:"listdatas"},B.map((function(e,t){return g.default.createElement(_.default,{key:t,checkbox:ft&&"Reporter"!==ft&&g.default.createElement(i.default,{value:e.id,key:e.id,style:{marginRight:"16px"}}),item:e,owner:ct,projectsId:dt})})))),qe>15&&g.default.createElement("div",{className:"pt25 pb30",style:{textAlign:"right"}},g.default.createElement(r.default,{total:qe,onShowSizeChange:function(e,t){Qe(1),Ge(t)},current:Me,pageSize:Ye,onChange:function(e){Qe(e),ht(Re,e,xe),document&&(document.documentElement||document.body)&&(document.documentElement.scrollTop=document.body.scrollTop=0)},showSizeChanger:!0,pageSizeOptions:[15,30,40,50],showQuickJumper:!0}))),void 0===qe&&g.default.createElement("div",{style:{height:344,display:"flex",alignItems:"center",justifyContent:"center"}},g.default.createElement(n.default,null))))}},E9nw:function(e,t){e.exports=function(){var e=document.getSelection();if(!e.rangeCount)return function(){};for(var t=document.activeElement,a=[],n=0;n0?e.join(","):void 0}),r=n({},ue,{author_name:t});ie(a),ce(r),f(a,r)}(e,t)}}),m&&i.default.createElement(l.default,{update:m,ids:oe&&oe.issue_priorities_id,name:"优先级",size:"small",lists:te,names:ue&&ue.issue_priorities_name,chooseFunc:function(e,t){var a=n({},oe,{issue_priorities_id:e&&e.length>0?e.join(","):void 0}),r=n({},ue,{issue_priorities_name:t});ce(r),ie(a),f(a,r)}}),i.default.createElement(l.default,{update:m,ids:oe&&oe.issue_tag_ids,name:"标记",size:"large",double:!0,names:ue&&ue.issue_tag_name,lists:j,searchFunc:function(e){return D(e)},chooseFunc:function(e,t){var a=n({},oe,{issue_tag_ids:e&&e.length>0?e.join(","):void 0}),r=n({},ue,{issue_tag_name:t});ce(r),ie(a),f(a,r)}}),i.default.createElement(l.default,{update:m,ids:oe&&oe.milestone_id,name:"里程碑",size:"large",names:ue&&ue.milestone_name,lists:B,searchFunc:function(e){return J(e)},chooseFunc:function(e,t){var a=n({},oe,{milestone_id:e&&e.length>0?e.join(","):void 0}),r=n({},ue,{milestone_name:t});ce(r),ie(a),f(a,r)}}),i.default.createElement(l.default,{update:m,ids:oe&&oe.assigner_id,name:"负责人",size:"large",imgControl:!0,names:ue&&ue.assigner_name,lists:H,searchFunc:function(e){return X(e)},double:!!m,chooseFunc:function(e,t){var a=n({},oe,{assigner_id:e&&e.length>0?e.join(","):void 0}),r=n({},ue,{assigner_name:t});ce(r),ie(a),f(a,r)}}),i.default.createElement(l.default,{update:m,ids:oe&&oe.status_id,name:"状态",size:"small",lists:Z,names:ue&&ue.status_name,chooseFunc:function(e,t){var a=n({},oe,{status_id:e&&e.length>0?e.join(","):void 0}),r=n({},ue,{status_name:t});ce(r),ie(a),f(a,r)}}),!m&&i.default.createElement(l.default,{className:"minwidth",ids:oe&&oe.sort_by,name:"排序",size:"small",lists:g?c:d,names:ue&&ue.sortby_name,chooseFunc:function(e,t){var a=n({},oe,{sort_by:e&&e.length>0?e.join(","):void 0}),r=n({},ue,{sortby_name:t});ce(r),ie(a),f(a,r)}}))}))},Xxpw:function(e,t,a){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n=s(a("3S7+"));a("5Dmo");var r=s(a("cDcd")),o=(a("sYIF"),s(a("xmot"))),i=a("eO8H"),l=s(a("jZ+j"));function s(e){return e&&e.__esModule?e:{default:e}}t.default=function(e){var t=e.checkbox,a=e.item,s=e.projectsId,u=e.owner;function c(e){return e.map((function(e){return e.name})).join(",")}return r.default.createElement("div",null,r.default.createElement("div",{className:"issuedetail"},t,r.default.createElement("div",{style:{flex:1}},r.default.createElement("div",{className:"idetails"},r.default.createElement("span",{className:function(e){switch(e){case"低":return"status low";case"正常":return"status normals";case"高":return"status hight";default:return"status urgent"}}(a.priority_name)},a.priority_name),r.default.createElement(i.Link,{to:"/"+u+"/"+s+"/issues/"+a.project_issues_index,style:{maxWidth:(a.tags?735-120*a.tags.length:735)+"px"},title:a.subject},a.subject),a.tags&&a.tags.length>0?a.tags.map((function(e,t){return r.default.createElement("span",{style:{backgroundColor:""+e.color},className:"ml8 tagscolor task-hide",title:e.name},e.name)})):""),r.default.createElement("div",null,r.default.createElement("div",{className:"infos"},r.default.createElement("div",{className:"ilog"},a.project_issues_index&&r.default.createElement(l.default,{value:"/"+u+"/"+s+"/issues/"+a.project_issues_index},r.default.createElement("span",{className:"number"},"#",a.project_issues_index))),r.default.createElement(i.Link,{to:"/"+(a.author&&a.author.login)},r.default.createElement("i",{className:"iconfont icon-chengyuan2 mr3 font-12",style:{color:"#898d9d"}})),r.default.createElement("span",{className:"mr12"},r.default.createElement(i.Link,{style:{color:"#898d9d"},to:"/"+(a.author&&a.author.login)},a.author&&a.author.name)),r.default.createElement("span",{className:"mr12"},a.created_at," 发布"),r.default.createElement("span",{className:"mr20"},a.updated_at,"更新"),a.blockchain_token_num&&r.default.createElement("span",{className:"mr30"},r.default.createElement("img",{src:o.default,alt:"",width:"13px",className:"mr3"}),a.blockchain_token_num),a.milestone_name&&r.default.createElement(i.Link,{to:"/"+u+"/"+s+"/milestones/"+a.milestone_id,style:{maxWidth:a.blockchain_token_num?"261px":"340px",color:"#898d9d"},title:a.milestone_name,className:"task-hide"},r.default.createElement("i",{className:"iconfont icon-lichengbeiicon1 font-12 mr3"}),a.milestone_name))))),r.default.createElement("div",{className:"issuecondition"},a.assigners&&a.assigners.length>0?r.default.createElement(n.default,{title:c(a.assigners),placement:"bottomRight"},r.default.createElement("div",{className:a.assigners.length>1?"principal hovers":"principal"},r.default.createElement("span",{className:"task-hide",style:{wordBreak:"break-all"}},c(a.assigners)))):"",r.default.createElement("div",{style:{color:"已解决"===a.status_name?"#28bd6c":"#40424a"}},a.status_name),r.default.createElement("div",{className:"commentnum"},r.default.createElement(i.Link,{to:"/"+u+"/"+s+"/issues/"+a.project_issues_index+"#commentList"},r.default.createElement("i",{className:"iconfont icon-a-xiaoxi1 mr5 font-15"}),a.comment_journals_count))))}},XzCO:function(e,t,a){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n=l(a("jsC+"));a("qVdP");var r=a("cDcd"),o=l(r),i=a("faye");function l(e){return e&&e.__esModule?e:{default:e}}t.default=(0,r.forwardRef)((function(e,t){var a=e.overlay,l=e.children,s=e.placement,u=e.overlayClassName,c=function(e,t){if(Array.isArray(e))return e;if(Symbol.iterator in Object(e))return function(e,t){var a=[],n=!0,r=!1,o=void 0;try{for(var i,l=e[Symbol.iterator]();!(n=(i=l.next()).done)&&(a.push(i.value),!t||a.length!==t);n=!0);}catch(e){r=!0,o=e}finally{try{!n&&l.return&&l.return()}finally{if(r)throw o}}return a}(e,t);throw new TypeError("Invalid attempt to destructure non-iterable instance")}((0,r.useState)(!1),2),d=c[0],f=c[1],m=(0,r.useRef)(null),p=(0,r.useRef)(null);(0,r.useImperativeHandle)(t,(function(){return{clearVisible:function(e){f(e)}}})),(0,r.useEffect)((function(){document.addEventListener("click",v,!1)}),[]);var v=function(e){var t=e.target,a=(0,i.findDOMNode)(m.current),n=(0,i.findDOMNode)(p.current);if(a&&n){var r=a.contains(t),o=n.contains(t);r||o||f(!1)}};return o.default.createElement(n.default,{placement:s,visible:d,overlay:o.default.createElement("div",{ref:m},a),trigger:["click"],overlayClassName:u},o.default.createElement("span",{className:"dropspan",ref:p,onClick:function(){return f(!d)}},l))}))},"jZ+j":function(e,t,a){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n=l(a("3S7+"));a("5Dmo");var r=a("cDcd"),o=l(r),i=a("P5Jw");function l(e){return e&&e.__esModule?e:{default:e}}t.default=function(e){var t=e.children,a=e.value,l=function(e,t){if(Array.isArray(e))return e;if(Symbol.iterator in Object(e))return function(e,t){var a=[],n=!0,r=!1,o=void 0;try{for(var i,l=e[Symbol.iterator]();!(n=(i=l.next()).done)&&(a.push(i.value),!t||a.length!==t);n=!0);}catch(e){r=!0,o=e}finally{try{!n&&l.return&&l.return()}finally{if(r)throw o}}return a}(e,t);throw new TypeError("Invalid attempt to destructure non-iterable instance")}((0,r.useState)("点击复制链接"),2),s=l[0],u=l[1],c="localhost"===window.location.hostname?"testforgeplus.trustie.net":window.location.hostname,d=window.location.protocol;return o.default.createElement(i.CopyToClipboard,{text:d+"//"+c+a,onCopy:function(){return u("复制成功")}},o.default.createElement(n.default,{placement:"bottom",title:s},t))}},rHrb:function(e,t,a){"use strict";function n(e){return(n="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)}Object.defineProperty(t,"__esModule",{value:!0}),t.CopyToClipboard=void 0;var r=l(a("cDcd")),o=l(a("+QRC")),i=["text","onCopy","options","children"];function l(e){return e&&e.__esModule?e:{default:e}}function s(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function u(e){for(var t=1;t=0||(r[a]=e[a]);return r}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(r[a]=e[a])}return r}(e,i),n=r.default.Children.only(t);return r.default.cloneElement(n,u(u({},a),{},{onClick:this.onClick}))}}])&&d(t.prototype,a),Object.defineProperty(t,"prototype",{writable:!1}),l}(r.default.PureComponent);t.CopyToClipboard=y,g(y,"defaultProps",{onCopy:void 0,options:void 0})},xmot:function(e,t){e.exports="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA4AAAAQCAYAAAAmlE46AAAABHNCSVQICAgIfAhkiAAAAntJREFUKFNVU01oE0EUfi8paauW7NJWqz20xYtKoevZgxtPCgW3Fw/izxYUT2J78Nqfi+BB6qmgoo0oCIJ2C4I33XjxJFbBkwc3otKa1KQ/GJPsvOeb2bTiwjKZ5Pt730wQ5OH3jgXt8UVgdIHBBQSLieUHqJJSISoIU+naQzwaVTVeP8ifjjjA6dcabESEYEh6VZTsldlrUi5z7PNyizgcCX9Ag8QBSK/6o1k52WvzWK8cdZz4MmSI9HGYmRKQVk4cWvuWe8vRfL/r5Fc0xPjd4UhI/xwT5RZ5O0ErLnNx9+i3QUNsvj3kMqsAFGe359tx/D9BUaL5XWMroSHW3xzMS3MzMpeLDB4ROyKiExRFaKYprdpjK9IDQOVpr2OfKSXl/Hk1tCyArAADlBewrdh5KjLAzWd9MyJ0WoQcwSzLrIF9vjxriLWXgxKVxJUG9GwUU1Fhu5Nu1kIBj+y0bAo0M4c9l6o53HrRn98z+t3fWOz3QZEHSuWZQDtMy/sBYpiwx8th6Z7lInEgJ5CFmGdx4/n+SJyYYxWQjnK2XKg86pFYagSZc/Z4NSzfyXLPlXUsz3d5qqkWRaCAm0/6XCVRgWhAt2pfWMO1+5ZkZui+vI6l+a7knKXhvdd+48qtDjkEBqw87s7b59b88oLlpxg9RPbjugoFOCIz5XqvboWrc528b7KGqzczniJeFNEC/npgRzopxCRRKYil1VTc8JFgWpSrEtnvu95Y+nEj44nzgoxlCXwSf961nJQQtlvV4Axnhupx0qq5bvom6Ytv/gWw1D+lPHPvKnOW1YSmHL60SuTI2VXqtUYuk26bQGBXKMcFWBCB4MAU3dacv5qY9er52wxiAAAAAElFTkSuQmCC"},ynFz:function(e,t){e.exports="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAANCAYAAACQN/8FAAAABHNCSVQICAgIfAhkiAAAALZJREFUKFONkIENwiAQRQUW6QYSWKAjdIR2Ah2BERyBUXQAkBF0Al0A2n8NNFStKQm5f/COOz475KW17sZxNDm9e++HckeRlUQpdU0pdSGEN2mA7QrE4YUxdsRrEjHQ5Ye+ocgwgAFC1tW1xkg2xjiDX21qUErZCCF2gS3Afm6NmU5brTnnBq0HAntADTZFmwtq/cAf7MqeYslPe2ofd4N/Da9epLnOMP2F+HTOUb6sZcatX5fzCY5aaODpOAmxAAAAAElFTkSuQmCC"}}]); \ No newline at end of file diff --git a/static/js/runtime~main.a014b0bc.js b/static/js/runtime~main.aa053193.js similarity index 97% rename from static/js/runtime~main.a014b0bc.js rename to static/js/runtime~main.aa053193.js index c38ff67fb..8d63f9869 100644 --- a/static/js/runtime~main.a014b0bc.js +++ b/static/js/runtime~main.aa053193.js @@ -1 +1 @@ -!function(e){function c(c){for(var f,a,r=c[0],n=c[1],o=c[2],u=0,l=[];u