2a5afc6b by RSA

wip

1 parent f00232ef
...@@ -2810,6 +2810,14 @@ ...@@ -2810,6 +2810,14 @@
2810 "@types/node": "*" 2810 "@types/node": "*"
2811 } 2811 }
2812 }, 2812 },
2813 "@types/hast": {
2814 "version": "2.3.4",
2815 "resolved": "https://registry.npmjs.org/@types/hast/-/hast-2.3.4.tgz",
2816 "integrity": "sha512-wLEm0QvaoawEDoTRwzTXp4b4jpwiJDvR5KMnFnVodm3scufTlBOWRD6N1OBf9TZMhjlNsSfcO5V+7AF4+Vy+9g==",
2817 "requires": {
2818 "@types/unist": "*"
2819 }
2820 },
2813 "@types/html-minifier-terser": { 2821 "@types/html-minifier-terser": {
2814 "version": "6.1.0", 2822 "version": "6.1.0",
2815 "resolved": "https://registry.npmjs.org/@types/html-minifier-terser/-/html-minifier-terser-6.1.0.tgz", 2823 "resolved": "https://registry.npmjs.org/@types/html-minifier-terser/-/html-minifier-terser-6.1.0.tgz",
...@@ -2921,6 +2929,14 @@ ...@@ -2921,6 +2929,14 @@
2921 "@types/react": "*" 2929 "@types/react": "*"
2922 } 2930 }
2923 }, 2931 },
2932 "@types/react-syntax-highlighter": {
2933 "version": "15.5.6",
2934 "resolved": "https://registry.npmjs.org/@types/react-syntax-highlighter/-/react-syntax-highlighter-15.5.6.tgz",
2935 "integrity": "sha512-i7wFuLbIAFlabTeD2I1cLjEOrG/xdMa/rpx2zwzAoGHuXJDhSqp9BSfDlMHSh9JSuNfxHk9eEmMX6D55GiyjGg==",
2936 "requires": {
2937 "@types/react": "*"
2938 }
2939 },
2924 "@types/resolve": { 2940 "@types/resolve": {
2925 "version": "1.17.1", 2941 "version": "1.17.1",
2926 "resolved": "https://registry.npmjs.org/@types/resolve/-/resolve-1.17.1.tgz", 2942 "resolved": "https://registry.npmjs.org/@types/resolve/-/resolve-1.17.1.tgz",
...@@ -2987,6 +3003,11 @@ ...@@ -2987,6 +3003,11 @@
2987 "resolved": "https://registry.npmjs.org/@types/trusted-types/-/trusted-types-2.0.2.tgz", 3003 "resolved": "https://registry.npmjs.org/@types/trusted-types/-/trusted-types-2.0.2.tgz",
2988 "integrity": "sha512-F5DIZ36YVLE+PN+Zwws4kJogq47hNgX3Nx6WyDJ3kcplxyke3XIzB8uK5n/Lpm1HBsbGzd6nmGehL8cPekP+Tg==" 3004 "integrity": "sha512-F5DIZ36YVLE+PN+Zwws4kJogq47hNgX3Nx6WyDJ3kcplxyke3XIzB8uK5n/Lpm1HBsbGzd6nmGehL8cPekP+Tg=="
2989 }, 3005 },
3006 "@types/unist": {
3007 "version": "2.0.6",
3008 "resolved": "https://registry.npmjs.org/@types/unist/-/unist-2.0.6.tgz",
3009 "integrity": "sha512-PBjIUxZHOuj0R15/xuwJYjFi+KZdNFrehocChv4g5hu6aFroHue8m0lBP0POdK2nKzbw0cgV1mws8+V/JAcEkQ=="
3010 },
2990 "@types/ws": { 3011 "@types/ws": {
2991 "version": "8.5.4", 3012 "version": "8.5.4",
2992 "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.5.4.tgz", 3013 "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.5.4.tgz",
...@@ -4000,6 +4021,21 @@ ...@@ -4000,6 +4021,21 @@
4000 "resolved": "https://registry.npmjs.org/char-regex/-/char-regex-1.0.2.tgz", 4021 "resolved": "https://registry.npmjs.org/char-regex/-/char-regex-1.0.2.tgz",
4001 "integrity": "sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==" 4022 "integrity": "sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw=="
4002 }, 4023 },
4024 "character-entities": {
4025 "version": "1.2.4",
4026 "resolved": "https://registry.npmjs.org/character-entities/-/character-entities-1.2.4.tgz",
4027 "integrity": "sha512-iBMyeEHxfVnIakwOuDXpVkc54HijNgCyQB2w0VfGQThle6NXn50zU6V/u+LDhxHcDUPojn6Kpga3PTAD8W1bQw=="
4028 },
4029 "character-entities-legacy": {
4030 "version": "1.1.4",
4031 "resolved": "https://registry.npmjs.org/character-entities-legacy/-/character-entities-legacy-1.1.4.tgz",
4032 "integrity": "sha512-3Xnr+7ZFS1uxeiUDvV02wQ+QDbc55o97tIV5zHScSPJpcLm/r0DFPcoY3tYRp+VZukxuMeKgXYmsXQHO05zQeA=="
4033 },
4034 "character-reference-invalid": {
4035 "version": "1.1.4",
4036 "resolved": "https://registry.npmjs.org/character-reference-invalid/-/character-reference-invalid-1.1.4.tgz",
4037 "integrity": "sha512-mKKUkUbhPpQlCOfIuZkvSEgktjPFIsZKRRbC6KWVEMvlzblj3i3asQv5ODsrwt0N3pHAEvjP8KTQPHkp0+6jOg=="
4038 },
4003 "check-types": { 4039 "check-types": {
4004 "version": "11.2.2", 4040 "version": "11.2.2",
4005 "resolved": "https://registry.npmjs.org/check-types/-/check-types-11.2.2.tgz", 4041 "resolved": "https://registry.npmjs.org/check-types/-/check-types-11.2.2.tgz",
...@@ -4167,6 +4203,11 @@ ...@@ -4167,6 +4203,11 @@
4167 "delayed-stream": "~1.0.0" 4203 "delayed-stream": "~1.0.0"
4168 } 4204 }
4169 }, 4205 },
4206 "comma-separated-tokens": {
4207 "version": "1.0.8",
4208 "resolved": "https://registry.npmjs.org/comma-separated-tokens/-/comma-separated-tokens-1.0.8.tgz",
4209 "integrity": "sha512-GHuDRO12Sypu2cV70d1dkA2EUmXHgntrzbpvOB+Qy+49ypNfGgFQIC2fhhXbnyrJRynDCAARsT7Ou0M6hirpfw=="
4210 },
4170 "commander": { 4211 "commander": {
4171 "version": "7.2.0", 4212 "version": "7.2.0",
4172 "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", 4213 "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz",
...@@ -5695,6 +5736,14 @@ ...@@ -5695,6 +5736,14 @@
5695 "reusify": "^1.0.4" 5736 "reusify": "^1.0.4"
5696 } 5737 }
5697 }, 5738 },
5739 "fault": {
5740 "version": "1.0.4",
5741 "resolved": "https://registry.npmjs.org/fault/-/fault-1.0.4.tgz",
5742 "integrity": "sha512-CJ0HCB5tL5fYTEA7ToAq5+kTwd++Borf1/bifxd9iT70QcXr4MRrO3Llf8Ifs70q+SJcGHFtnIE/Nw6giCtECA==",
5743 "requires": {
5744 "format": "^0.2.0"
5745 }
5746 },
5698 "faye-websocket": { 5747 "faye-websocket": {
5699 "version": "0.11.4", 5748 "version": "0.11.4",
5700 "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.4.tgz", 5749 "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.4.tgz",
...@@ -5921,6 +5970,11 @@ ...@@ -5921,6 +5970,11 @@
5921 "mime-types": "^2.1.12" 5970 "mime-types": "^2.1.12"
5922 } 5971 }
5923 }, 5972 },
5973 "format": {
5974 "version": "0.2.2",
5975 "resolved": "https://registry.npmjs.org/format/-/format-0.2.2.tgz",
5976 "integrity": "sha512-wzsgA6WOq+09wrU1tsJ09udeR/YZRaeArL9e1wPbFg3GG2yDnC2ldKpxs4xunpFF9DgqCqOIra3bc1HWrJ37Ww=="
5977 },
5924 "forwarded": { 5978 "forwarded": {
5925 "version": "0.2.0", 5979 "version": "0.2.0",
5926 "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", 5980 "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz",
...@@ -6187,11 +6241,33 @@ ...@@ -6187,11 +6241,33 @@
6187 "has-symbols": "^1.0.2" 6241 "has-symbols": "^1.0.2"
6188 } 6242 }
6189 }, 6243 },
6244 "hast-util-parse-selector": {
6245 "version": "2.2.5",
6246 "resolved": "https://registry.npmjs.org/hast-util-parse-selector/-/hast-util-parse-selector-2.2.5.tgz",
6247 "integrity": "sha512-7j6mrk/qqkSehsM92wQjdIgWM2/BW61u/53G6xmC8i1OmEdKLHbk419QKQUjz6LglWsfqoiHmyMRkP1BGjecNQ=="
6248 },
6249 "hastscript": {
6250 "version": "6.0.0",
6251 "resolved": "https://registry.npmjs.org/hastscript/-/hastscript-6.0.0.tgz",
6252 "integrity": "sha512-nDM6bvd7lIqDUiYEiu5Sl/+6ReP0BMk/2f4U/Rooccxkj0P5nm+acM5PrGJ/t5I8qPGiqZSE6hVAwZEdZIvP4w==",
6253 "requires": {
6254 "@types/hast": "^2.0.0",
6255 "comma-separated-tokens": "^1.0.0",
6256 "hast-util-parse-selector": "^2.0.0",
6257 "property-information": "^5.0.0",
6258 "space-separated-tokens": "^1.0.0"
6259 }
6260 },
6190 "he": { 6261 "he": {
6191 "version": "1.2.0", 6262 "version": "1.2.0",
6192 "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", 6263 "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz",
6193 "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==" 6264 "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw=="
6194 }, 6265 },
6266 "highlight.js": {
6267 "version": "10.7.3",
6268 "resolved": "https://registry.npmjs.org/highlight.js/-/highlight.js-10.7.3.tgz",
6269 "integrity": "sha512-tzcUFauisWKNHaRkN4Wjl/ZA07gENAjFl3J/c480dprkGTg5EQstgaNFqBfUqCq54kZRIEcreTsAgF/m2quD7A=="
6270 },
6195 "hoopy": { 6271 "hoopy": {
6196 "version": "0.1.4", 6272 "version": "0.1.4",
6197 "resolved": "https://registry.npmjs.org/hoopy/-/hoopy-0.1.4.tgz", 6273 "resolved": "https://registry.npmjs.org/hoopy/-/hoopy-0.1.4.tgz",
...@@ -6489,6 +6565,20 @@ ...@@ -6489,6 +6565,20 @@
6489 "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-2.0.1.tgz", 6565 "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-2.0.1.tgz",
6490 "integrity": "sha512-1qTgH9NG+IIJ4yfKs2e6Pp1bZg8wbDbKHT21HrLIeYBTRLgMYKnMTPAuI3Lcs61nfx5h1xlXnbJtH1kX5/d/ng==" 6566 "integrity": "sha512-1qTgH9NG+IIJ4yfKs2e6Pp1bZg8wbDbKHT21HrLIeYBTRLgMYKnMTPAuI3Lcs61nfx5h1xlXnbJtH1kX5/d/ng=="
6491 }, 6567 },
6568 "is-alphabetical": {
6569 "version": "1.0.4",
6570 "resolved": "https://registry.npmjs.org/is-alphabetical/-/is-alphabetical-1.0.4.tgz",
6571 "integrity": "sha512-DwzsA04LQ10FHTZuL0/grVDk4rFoVH1pjAToYwBrHSxcrBIGQuXrQMtD5U1b0U2XVgKZCTLLP8u2Qxqhy3l2Vg=="
6572 },
6573 "is-alphanumerical": {
6574 "version": "1.0.4",
6575 "resolved": "https://registry.npmjs.org/is-alphanumerical/-/is-alphanumerical-1.0.4.tgz",
6576 "integrity": "sha512-UzoZUr+XfVz3t3v4KyGEniVL9BDRoQtY7tOyrRybkVNjDFWyo1yhXNGrrBTQxp3ib9BLAWs7k2YKBQsFRkZG9A==",
6577 "requires": {
6578 "is-alphabetical": "^1.0.0",
6579 "is-decimal": "^1.0.0"
6580 }
6581 },
6492 "is-arguments": { 6582 "is-arguments": {
6493 "version": "1.1.1", 6583 "version": "1.1.1",
6494 "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.1.tgz", 6584 "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.1.tgz",
...@@ -6559,6 +6649,11 @@ ...@@ -6559,6 +6649,11 @@
6559 "has-tostringtag": "^1.0.0" 6649 "has-tostringtag": "^1.0.0"
6560 } 6650 }
6561 }, 6651 },
6652 "is-decimal": {
6653 "version": "1.0.4",
6654 "resolved": "https://registry.npmjs.org/is-decimal/-/is-decimal-1.0.4.tgz",
6655 "integrity": "sha512-RGdriMmQQvZ2aqaQq3awNA6dCGtKpiDFcOzrTWrDAT2MiWrKQVPmxLGHl7Y2nNu6led0kEyoX0enY0qXYsv9zw=="
6656 },
6562 "is-docker": { 6657 "is-docker": {
6563 "version": "2.2.1", 6658 "version": "2.2.1",
6564 "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz", 6659 "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz",
...@@ -6587,6 +6682,11 @@ ...@@ -6587,6 +6682,11 @@
6587 "is-extglob": "^2.1.1" 6682 "is-extglob": "^2.1.1"
6588 } 6683 }
6589 }, 6684 },
6685 "is-hexadecimal": {
6686 "version": "1.0.4",
6687 "resolved": "https://registry.npmjs.org/is-hexadecimal/-/is-hexadecimal-1.0.4.tgz",
6688 "integrity": "sha512-gyPJuv83bHMpocVYoqof5VDiZveEoGoFL8m3BXNb2VW8Xs+rz9kqO8LOQ5DH6EsuvilT1ApazU0pyl+ytbPtlw=="
6689 },
6590 "is-map": { 6690 "is-map": {
6591 "version": "2.0.2", 6691 "version": "2.0.2",
6592 "resolved": "https://registry.npmjs.org/is-map/-/is-map-2.0.2.tgz", 6692 "resolved": "https://registry.npmjs.org/is-map/-/is-map-2.0.2.tgz",
...@@ -8889,6 +8989,15 @@ ...@@ -8889,6 +8989,15 @@
8889 } 8989 }
8890 } 8990 }
8891 }, 8991 },
8992 "lowlight": {
8993 "version": "1.20.0",
8994 "resolved": "https://registry.npmjs.org/lowlight/-/lowlight-1.20.0.tgz",
8995 "integrity": "sha512-8Ktj+prEb1RoCPkEOrPMYUN/nCggB7qAWe3a7OpMjWQkh3l2RD5wKRQ+o8Q8YuI9RG/xs95waaI/E6ym/7NsTw==",
8996 "requires": {
8997 "fault": "^1.0.0",
8998 "highlight.js": "~10.7.0"
8999 }
9000 },
8892 "lru-cache": { 9001 "lru-cache": {
8893 "version": "5.1.1", 9002 "version": "5.1.1",
8894 "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", 9003 "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz",
...@@ -9386,6 +9495,19 @@ ...@@ -9386,6 +9495,19 @@
9386 "callsites": "^3.0.0" 9495 "callsites": "^3.0.0"
9387 } 9496 }
9388 }, 9497 },
9498 "parse-entities": {
9499 "version": "2.0.0",
9500 "resolved": "https://registry.npmjs.org/parse-entities/-/parse-entities-2.0.0.tgz",
9501 "integrity": "sha512-kkywGpCcRYhqQIchaWqZ875wzpS/bMKhz5HnN3p7wveJTkTtyAB/AlnS0f8DFSqYW1T82t6yEAkEcB+A1I3MbQ==",
9502 "requires": {
9503 "character-entities": "^1.0.0",
9504 "character-entities-legacy": "^1.0.0",
9505 "character-reference-invalid": "^1.0.0",
9506 "is-alphanumerical": "^1.0.0",
9507 "is-decimal": "^1.0.0",
9508 "is-hexadecimal": "^1.0.0"
9509 }
9510 },
9389 "parse-json": { 9511 "parse-json": {
9390 "version": "5.2.0", 9512 "version": "5.2.0",
9391 "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", 9513 "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz",
...@@ -10288,6 +10410,11 @@ ...@@ -10288,6 +10410,11 @@
10288 } 10410 }
10289 } 10411 }
10290 }, 10412 },
10413 "prismjs": {
10414 "version": "1.29.0",
10415 "resolved": "https://registry.npmjs.org/prismjs/-/prismjs-1.29.0.tgz",
10416 "integrity": "sha512-Kx/1w86q/epKcmte75LNrEoT+lX8pBpavuAbvJWRXar7Hz8jrtF+e3vY751p0R8H9HdArwaCTNDDzHg/ScJK1Q=="
10417 },
10291 "process-nextick-args": { 10418 "process-nextick-args": {
10292 "version": "2.0.1", 10419 "version": "2.0.1",
10293 "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", 10420 "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz",
...@@ -10327,6 +10454,14 @@ ...@@ -10327,6 +10454,14 @@
10327 } 10454 }
10328 } 10455 }
10329 }, 10456 },
10457 "property-information": {
10458 "version": "5.6.0",
10459 "resolved": "https://registry.npmjs.org/property-information/-/property-information-5.6.0.tgz",
10460 "integrity": "sha512-YUHSPk+A30YPv+0Qf8i9Mbfe/C0hdPXk1s1jPVToV8pk8BQtpw10ct89Eo7OWkutrwqvT0eicAxlOg3dOAu8JA==",
10461 "requires": {
10462 "xtend": "^4.0.0"
10463 }
10464 },
10330 "proxy-addr": { 10465 "proxy-addr": {
10331 "version": "2.0.7", 10466 "version": "2.0.7",
10332 "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", 10467 "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz",
...@@ -10577,6 +10712,18 @@ ...@@ -10577,6 +10712,18 @@
10577 "workbox-webpack-plugin": "^6.4.1" 10712 "workbox-webpack-plugin": "^6.4.1"
10578 } 10713 }
10579 }, 10714 },
10715 "react-syntax-highlighter": {
10716 "version": "13.5.3",
10717 "resolved": "https://registry.npmjs.org/react-syntax-highlighter/-/react-syntax-highlighter-13.5.3.tgz",
10718 "integrity": "sha512-crPaF+QGPeHNIblxxCdf2Lg936NAHKhNhuMzRL3F9ct6aYXL3NcZtCL0Rms9+qVo6Y1EQLdXGypBNSbPL/r+qg==",
10719 "requires": {
10720 "@babel/runtime": "^7.3.1",
10721 "highlight.js": "^10.1.1",
10722 "lowlight": "^1.14.0",
10723 "prismjs": "^1.21.0",
10724 "refractor": "^3.1.0"
10725 }
10726 },
10580 "read-cache": { 10727 "read-cache": {
10581 "version": "1.0.0", 10728 "version": "1.0.0",
10582 "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz", 10729 "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz",
...@@ -10620,6 +10767,23 @@ ...@@ -10620,6 +10767,23 @@
10620 "strip-indent": "^3.0.0" 10767 "strip-indent": "^3.0.0"
10621 } 10768 }
10622 }, 10769 },
10770 "refractor": {
10771 "version": "3.6.0",
10772 "resolved": "https://registry.npmjs.org/refractor/-/refractor-3.6.0.tgz",
10773 "integrity": "sha512-MY9W41IOWxxk31o+YvFCNyNzdkc9M20NoZK5vq6jkv4I/uh2zkWcfudj0Q1fovjUQJrNewS9NMzeTtqPf+n5EA==",
10774 "requires": {
10775 "hastscript": "^6.0.0",
10776 "parse-entities": "^2.0.0",
10777 "prismjs": "~1.27.0"
10778 },
10779 "dependencies": {
10780 "prismjs": {
10781 "version": "1.27.0",
10782 "resolved": "https://registry.npmjs.org/prismjs/-/prismjs-1.27.0.tgz",
10783 "integrity": "sha512-t13BGPUlFDR7wRB5kQDG4jjl7XeuH6jbJGt11JHPL96qwsEHNX2+68tFXqc1/k+/jALsbSWJKUOT/hcYAZ5LkA=="
10784 }
10785 }
10786 },
10623 "regenerate": { 10787 "regenerate": {
10624 "version": "1.4.2", 10788 "version": "1.4.2",
10625 "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz", 10789 "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz",
...@@ -11252,6 +11416,11 @@ ...@@ -11252,6 +11416,11 @@
11252 "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz", 11416 "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz",
11253 "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==" 11417 "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA=="
11254 }, 11418 },
11419 "space-separated-tokens": {
11420 "version": "1.1.5",
11421 "resolved": "https://registry.npmjs.org/space-separated-tokens/-/space-separated-tokens-1.1.5.tgz",
11422 "integrity": "sha512-q/JSVd1Lptzhf5bkYm4ob4iWPjx0KiRe3sRFBNrVqbJkFaBm5vbbowy1mymoPNLRa52+oadOhJ+K49wsSeSjTA=="
11423 },
11255 "spdy": { 11424 "spdy": {
11256 "version": "4.0.2", 11425 "version": "4.0.2",
11257 "resolved": "https://registry.npmjs.org/spdy/-/spdy-4.0.2.tgz", 11426 "resolved": "https://registry.npmjs.org/spdy/-/spdy-4.0.2.tgz",
......
...@@ -6,10 +6,12 @@ ...@@ -6,10 +6,12 @@
6 "@testing-library/jest-dom": "^5.16.5", 6 "@testing-library/jest-dom": "^5.16.5",
7 "@testing-library/react": "^13.4.0", 7 "@testing-library/react": "^13.4.0",
8 "@testing-library/user-event": "^13.5.0", 8 "@testing-library/user-event": "^13.5.0",
9 "@types/react-syntax-highlighter": "^15.5.6",
9 "react": "^18.2.0", 10 "react": "^18.2.0",
10 "react-dom": "^18.2.0", 11 "react-dom": "^18.2.0",
11 "react-openai-api": "^1.0.2", 12 "react-openai-api": "^1.0.2",
12 "react-scripts": "5.0.1", 13 "react-scripts": "5.0.1",
14 "react-syntax-highlighter": "^13.2.1",
13 "web-vitals": "^2.1.4" 15 "web-vitals": "^2.1.4"
14 }, 16 },
15 "scripts": { 17 "scripts": {
......
...@@ -2,19 +2,20 @@ ...@@ -2,19 +2,20 @@
2 <html lang="en"> 2 <html lang="en">
3 <head> 3 <head>
4 <meta charset="utf-8" /> 4 <meta charset="utf-8" />
5 <link rel="icon" href="%PUBLIC_URL%/favicon.ico" /> 5 <!-- <link rel="icon" href="%PUBLIC_URL%/favicon.ico" /> -->
6 <link rel="icon" type="image/png" sizes="32x32" href="%PUBLIC_URL%/favicon-32x32.png">
6 <meta name="viewport" content="width=device-width, initial-scale=1" /> 7 <meta name="viewport" content="width=device-width, initial-scale=1" />
7 <meta name="theme-color" content="#000000" /> 8 <meta name="theme-color" content="#000000" />
8 <meta 9 <meta
9 name="description" 10 name="description"
10 content="Web site created using create-react-app" 11 content="Web site created using create-react-app"
11 /> 12 />
12 <link rel="apple-touch-icon" href="%PUBLIC_URL%/logo192.png" /> 13 <!-- <link rel="apple-touch-icon" href="%PUBLIC_URL%/logo192.png" /> -->
13 <!-- 14 <!--
14 manifest.json provides metadata used when your web app is installed on a 15 manifest.json provides metadata used when your web app is installed on a
15 user's mobile device or desktop. See https://developers.google.com/web/fundamentals/web-app-manifest/ 16 user's mobile device or desktop. See https://developers.google.com/web/fundamentals/web-app-manifest/
16 --> 17 -->
17 <link rel="manifest" href="%PUBLIC_URL%/manifest.json" /> 18 <!-- <link rel="manifest" href="%PUBLIC_URL%/manifest.json" /> -->
18 <!-- 19 <!--
19 Notice the use of %PUBLIC_URL% in the tags above. 20 Notice the use of %PUBLIC_URL% in the tags above.
20 It will be replaced with the URL of the `public` folder during the build. 21 It will be replaced with the URL of the `public` folder during the build.
......
...@@ -59,7 +59,6 @@ ...@@ -59,7 +59,6 @@
59 position:absolute; 59 position:absolute;
60 bottom:0; 60 bottom:0;
61 left:0;right:0; 61 left:0;right:0;
62 background: rgb(57 57 57);
63 } 62 }
64 .chat-input-textarea { 63 .chat-input-textarea {
65 background-color: #40414f; 64 background-color: #40414f;
...@@ -96,8 +95,10 @@ ...@@ -96,8 +95,10 @@
96 } 95 }
97 96
98 .chat-message.chatgpt { 97 .chat-message.chatgpt {
99 background-color:#ffffff; 98 background-color:#444654;
100 } 99 }
100
101
101 .chat-message-center { 102 .chat-message-center {
102 max-width:640px; 103 max-width:640px;
103 margin-left:auto; 104 margin-left:auto;
...@@ -106,9 +107,6 @@ ...@@ -106,9 +107,6 @@
106 padding: 12px 24px; 107 padding: 12px 24px;
107 } 108 }
108 109
109 section::-webkit-scrollbar {
110 display: none;
111 }
112 .avatar { 110 .avatar {
113 background:#ffffff; 111 background:#ffffff;
114 border-radius:50%; 112 border-radius:50%;
...@@ -135,9 +133,7 @@ section::-webkit-scrollbar { ...@@ -135,9 +133,7 @@ section::-webkit-scrollbar {
135 padding: 7px 20px; 133 padding: 7px 20px;
136 } 134 }
137 135
138 .chat-message.false { 136
139 background: #eef2ff;
140 }
141 137
142 @keyframes App-logo-spin { 138 @keyframes App-logo-spin {
143 from { 139 from {
......
...@@ -4,7 +4,9 @@ import './color_theme_1.css'; ...@@ -4,7 +4,9 @@ import './color_theme_1.css';
4 import { useState, useEffect } from 'react'; 4 import { useState, useEffect } from 'react';
5 import SideMenu from './SideMenu' 5 import SideMenu from './SideMenu'
6 import ChatBox from './ChatBox' 6 import ChatBox from './ChatBox'
7 import OpenAIAPI from "react-openai-api"; 7 // import OpenAIAPI from "react-openai-api";
8 //import { CopyBlock } from "react-code-blocks";
9 //import { CopyBlock, dracula } from "react-code-blocks";
8 10
9 function App() { 11 function App() {
10 12
...@@ -27,18 +29,38 @@ function App() { ...@@ -27,18 +29,38 @@ function App() {
27 } 29 }
28 30
29 function getEngines(){ 31 function getEngines(){
30 fetch("http://localhost:3080/models") 32 // fetch("http://localhost:3080/models")
31 .then(res => res.json()) 33 // .then(res => res.json())
32 .then(data => { 34 // .then(data => {
33 console.log(data.models.data) 35 // console.log(data.models.data)
34 // set models in order alpahbetically 36 // // set models in order alpahbetically
35 data.models.data.sort((a, b) => { 37 // data.models.data.sort((a, b) => {
36 if(a.id < b.id) { return -1; } 38 // if(a.id < b.id) { return -1; }
37 if(a.id > b.id) { return 1; } 39 // if(a.id > b.id) { return 1; }
38 return 0; 40 // return 0;
39 }) 41 // })
40 setModels(data.models.data) 42 // setModels(data.models.data)
41 }) 43 // })
44 var myHeaders = new Headers();
45 myHeaders.append("Authorization", "Bearer " + "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");
46
47 var requestOptions = {
48 method: 'GET',
49 headers: myHeaders,
50 redirect: 'follow'
51 };
52
53 fetch("https://api.openai.com/v1/models", requestOptions)
54 .then(res => res.json())
55 .then(data => {
56 // set models in order alpahbetically
57 data.data.sort((a, b) => {
58 if (a.id < b.id) { return -1; }
59 if (a.id > b.id) { return 1; }
60 return 0;
61 })
62 setModels(data.data)
63 }).catch(error => console.log('error', error));
42 } 64 }
43 65
44 async function handleSubmit(e){ 66 async function handleSubmit(e){
...@@ -73,6 +95,7 @@ function App() { ...@@ -73,6 +95,7 @@ function App() {
73 95
74 oHttp.onreadystatechange = function () { 96 oHttp.onreadystatechange = function () {
75 if (oHttp.readyState === 4) { 97 if (oHttp.readyState === 4) {
98 console.log("11111", oHttp.responseText);
76 var s = '' 99 var s = ''
77 var oJson = {} 100 var oJson = {}
78 if (s != "") s += "\n"; 101 if (s != "") s += "\n";
...@@ -97,15 +120,21 @@ function App() { ...@@ -97,15 +120,21 @@ function App() {
97 // } 120 // }
98 if (s == "") s = "No response"; 121 if (s == "") s = "No response";
99 console.log('ssssssssssssssssssssss',s); 122 console.log('ssssssssssssssssssssss',s);
100 var replaceBR= (s.replace(/(?:\r\n|\r|\n)/g, "<br>")).replace(/\r?\n|\r/, "");
101 123
102 setChatLog([...chatLogNew, { user: "gpt", message: `${replaceBR}`} ]); 124 var replaceBR = (s.replace(/(?:\r\n|\r|\n)/g, "<br>"));
125 console.log('replaceBR replaceBR', replaceBR);
126 //var replaceBR = (s.replace(/(?:\r\n|\r|\n)/g, "<br>")).replace(/\r?\n|\r/, "");
127
128 var newStr = replaceBR.replace(/^(<br>)+/,"");
129 var newStr11 = newStr.replace(/<br><br>/g,"<br>");
130 setChatLog([...chatLogNew, { user: "gpt", message: `${s}` }]);
131 // setChatLog([...chatLogNew, { user: "gpt", message: `${replaceBR}`} ]);
103 } 132 }
104 } 133 }
105 }; 134 };
106 135
107 var sModel = currentModel;// "text-davinci-003"; 136 var sModel = currentModel;// "text-davinci-003";
108 var iMaxTokens = 100; 137 var iMaxTokens = 2048;
109 var sUserId = "1"; 138 var sUserId = "1";
110 var dTemperature =temperature; 139 var dTemperature =temperature;
111 140
...@@ -115,12 +144,13 @@ function App() { ...@@ -115,12 +144,13 @@ function App() {
115 max_tokens: iMaxTokens, 144 max_tokens: iMaxTokens,
116 //user: sUserId, 145 //user: sUserId,
117 temperature: dTemperature, 146 temperature: dTemperature,
118 // frequency_penalty: 0.0, //Number between -2.0 and 2.0 Positive value decrease the model's likelihood to repeat the same line verbatim. 147 frequency_penalty: 0.0, //Number between -2.0 and 2.0 Positive value decrease the model's likelihood to repeat the same line verbatim.
119 //presence_penalty: 0.0, //Number between -2.0 and 2.0. Positive values increase the model's likelihood to talk about new topics. 148 presence_penalty: 0.0, //Number between -2.0 and 2.0. Positive values increase the model's likelihood to talk about new topics.
120 //stop: ["#", ";"] //Up to 4 sequences where the API will stop generating further tokens. The returned text will not contain the stop sequence. 149 //stop: ["#", ";"] //Up to 4 sequences where the API will stop generating further tokens. The returned text will not contain the stop sequence.
150 stop:["\"\"\""]
121 } 151 }
122 152
123 oHttp.send(JSON.stringify(data));; 153 oHttp.send(JSON.stringify(data));
124 154
125 } 155 }
126 156
...@@ -150,6 +180,18 @@ function App() { ...@@ -150,6 +180,18 @@ function App() {
150 chatLog={chatLog} 180 chatLog={chatLog}
151 setChatInput={setChatInput} 181 setChatInput={setChatInput}
152 handleSubmit={handleSubmit} /> 182 handleSubmit={handleSubmit} />
183 {/*
184 <CopyBlock
185 text={ chatLog.map((message, index) => (
186 <>
187 {message.message}
188 </>
189 ))}
190 language="text"
191 showLineNumbers={true}
192 theme={dracula}
193 codeBlock
194 /> */}
153 </div> 195 </div>
154 ); 196 );
155 } 197 }
......
1 import OpenAISVGLogo from './OpenAISVGLogo' 1 // import OpenAISVGLogo from './OpenAISVGLogo'
2 import { Light as SyntaxHighlighter } from 'react-syntax-highlighter';
3 import arduino from 'react-syntax-highlighter/dist/cjs/languages/hljs/arduino';
4 import { arduinoLight } from 'react-syntax-highlighter/dist/cjs/styles/hljs';
5 import atelierCaveDark from "react-syntax-highlighter/dist/esm/styles/hljs/atelier-cave-dark";
6 SyntaxHighlighter.registerLanguage('arduino', arduino);
2 7
3 // Primary Chat Window 8 // Primary Chat Window
4 const ChatBox = ({chatLog, setChatInput, handleSubmit, chatInput}) => 9 const ChatBox = ({chatLog, setChatInput, handleSubmit, chatInput}) =>
...@@ -31,7 +36,14 @@ const ChatMessage = ({ message }) => { ...@@ -31,7 +36,14 @@ const ChatMessage = ({ message }) => {
31 {/* <div className="message"> 36 {/* <div className="message">
32 {message.message} 37 {message.message}
33 </div> */} 38 </div> */}
34 <div className="message" dangerouslySetInnerHTML={{ __html: message.message }} /> 39 {/* <div className="message" dangerouslySetInnerHTML={{ __html: message.message }} /> */}
40 {message.user === "gpt" ? <div className="message"><SyntaxHighlighter className="syntaxhighlight"
41 language="react" style={arduinoLight}
42
43
44 >
45 {message.message}
46 </SyntaxHighlighter> </div>: <div className="message" dangerouslySetInnerHTML={{ __html: message.message }} />}
35 </div> 47 </div>
36 </div> 48 </div>
37 ) 49 )
......
1 .chat-message.false {
2 background: #eef2ff;
3 }
4
5 section::-webkit-scrollbar {
6 display: none;
7 }
8
1 .sidemenu { 9 .sidemenu {
2 background-color: #101827 !important; 10 background-color: #101827 !important;
3 } 11 }
...@@ -37,6 +45,13 @@ span.info { ...@@ -37,6 +45,13 @@ span.info {
37 box-shadow: 0px 7px 6px -6px black !important; 45 box-shadow: 0px 7px 6px -6px black !important;
38 } 46 }
39 47
48 pre {
49 font-family: monospace, monospace;
50 font-size: 1em;
51 margin: 0;
52 padding: 0 !important;
53 }
54
40 .chat-message.chatgpt { 55 .chat-message.chatgpt {
41 background-color:#ffffff !important; 56 background-color:#ffffff !important;
42 } 57 }
......
Styling with Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!