From d725c3c573d7d238686f40a3eeebca5c45a0722c Mon Sep 17 00:00:00 2001 From: fatchan Date: Mon, 20 Apr 2020 17:43:24 +1000 Subject: [PATCH] update pm2 and add favicon changes for apple touch icon, etc and make it a separate gulp folder --- configs/nginx.example | 8 + configs/nginx_no_https.example | 8 + gulp/res/icons/android-chrome-144x144.png | Bin 0 -> 19822 bytes gulp/res/icons/apple-touch-icon.png | Bin 0 -> 8864 bytes gulp/res/icons/browserconfig.xml | 9 + gulp/res/icons/favicon.ico | Bin 0 -> 14526 bytes gulp/res/icons/mstile-150x150.png | Bin 0 -> 13394 bytes gulp/res/icons/safari-pinned-tab.svg | 75 +++++ gulp/res/icons/site.webmanifest | 13 + gulp/res/img/favicon.ico | Bin 4286 -> 0 bytes gulpfile.js | 15 +- package-lock.json | 392 +++++++++++++--------- package.json | 2 +- views/includes/favicon.pug | 5 + views/includes/head.pug | 2 +- 15 files changed, 360 insertions(+), 169 deletions(-) create mode 100644 gulp/res/icons/android-chrome-144x144.png create mode 100644 gulp/res/icons/apple-touch-icon.png create mode 100644 gulp/res/icons/browserconfig.xml create mode 100644 gulp/res/icons/favicon.ico create mode 100644 gulp/res/icons/mstile-150x150.png create mode 100644 gulp/res/icons/safari-pinned-tab.svg create mode 100644 gulp/res/icons/site.webmanifest delete mode 100644 gulp/res/img/favicon.ico create mode 100644 views/includes/favicon.pug diff --git a/configs/nginx.example b/configs/nginx.example index a148f235..9f17e2ed 100644 --- a/configs/nginx.example +++ b/configs/nginx.example @@ -117,6 +117,14 @@ server { try_files $uri =404; } + # Favicon, safari icons, apple-touch icon, browserconfig, mstiles, etc. + location ~* \.(webmanifest|xml)$ { + access_log off; + expires max; + root /path/to/jschan/static/file; + try_files $uri =404; + } + # "Other" Files for custom type uploads, uses content-disposition to prevent rendering # inline in browser and will present a "save" dialog box. make sure these file # extensions match for mimes defined in configs/main.js "otherMimeTypes" diff --git a/configs/nginx_no_https.example b/configs/nginx_no_https.example index dd3ac1e9..4fae9a09 100644 --- a/configs/nginx_no_https.example +++ b/configs/nginx_no_https.example @@ -117,6 +117,14 @@ server { try_files $uri =404; } + # Favicon, safari icons, apple-touch icon, browserconfig, mstiles, etc. + location ~* \.(webmanifest|xml)$ { + access_log off; + expires max; + root /path/to/jschan/static/file; + try_files $uri =404; + } + # "Other" Files for custom type uploads, uses content-disposition to prevent rendering # inline in browser and will present a "save" dialog box. make sure these file # extensions match for mimes defined in configs/main.js "otherMimeTypes" diff --git a/gulp/res/icons/android-chrome-144x144.png b/gulp/res/icons/android-chrome-144x144.png new file mode 100644 index 0000000000000000000000000000000000000000..8d48df0f200628706829b9d273c7fa4023676d34 GIT binary patch literal 19822 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 NnyR`gbxO9;{|98*uUP;9 literal 0 HcmV?d00001 diff --git a/gulp/res/icons/browserconfig.xml b/gulp/res/icons/browserconfig.xml new file mode 100644 index 00000000..5aecc916 --- /dev/null +++ b/gulp/res/icons/browserconfig.xml @@ -0,0 +1,9 @@ + + + + + + #00aba9 + + + diff --git a/gulp/res/icons/favicon.ico b/gulp/res/icons/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..aac1737908f2e06207f97643ddd26a5f68498cc0 GIT binary patch literal 14526 zcmeI2y>25%7KMvqi{oGbjRG4R2qxjk!3GOBabSQQ=m92~)L_JC*kAziDJC;E-OR5* zz`-W_2n(1`U?@~Th(71u`nlCz)!h^g!&tipVppF!_0_$%tGg*-oSWg_r%&(j*|>jy z>)aR4xv%l_2|s_IInmLrw$DHR***P$;g3JM|NignzCZus&gXO0|JT5ur2_MBzWK*! zu7eH`QX6z)9hwK0yND&L))%~l6}&ZC7#~?uGE2oMC;B>8`6|7VRlMewRjY%~D5a>q zexkohOAdLFb>rhDu6km5*ShS0u)$GvNC}q zm7x*{S~akXQ&d)Qc?qkMekCqRvIM(4McEac){Q_?ysTW2m4_xl;iHyJMGw<>6iZL2 zOf1NDYOmkTyfEKLT9+Oq3dTCxjgxAfQ9?4*5K*6==2(hAPKL$h2Rc(>1Bf(~Dl*iY zkRp)N0-MH~w*6BcgS|bb4IXT4%53&nbqeczmKCo4A z!>nF1?}R0|esI%S5{&!s-g(^XSu7Lkbo)Vmqap5O2!wk3p1%s2pwJDaC?4?_H#9X#ZhlL=N4?(r{0*+i z2x4UUBFVP~gvJIIZDEASFs*nb%dD$iXvBGzfen_Pe{$@hC;<1tr*0w}VHHUf@h45G z7pQT$F&4bNW)|QWuBR$J<77d@K`i*yUi*`$mW+asx@oWEvD(d7owl;0k{s&<*l@X= z>yaWj5al}XWQrE8DH*DF(|1OTKv|O?YHl9cT3X|Xbf}EAIDo<0@1*hNXivwqXows+xZ)46aZozxYbS!a!IKuxP4XMR=^sQ&++;dA1M| z3$Aj@SSt-oSZ%{~LUTwm6s!z_+OQO;fi~J$kAN`8$Xd}8U|8rDsz`s$0W zRMi0BhL_?&2nBOYmU`CwjL2HWQ5oSGJ2*6QkUFfC$-%7A$sDl|+A58S+Hg=CVLmRH z#GTBsN3V{qq9)Qa_R`a@inFn>Fc81-^TXZz1?Tr5ArYB1cEr)O%$@+a27 z3o5b|EB!InjZbk(WMixl7JO|boG7cO$&hhSI%zD|`)7c-?N&=7D^tiD*O5$fxqpVx z7u)TI{?KbXu13>qx_ZYZn`R3Z{1PC0y*U`{%_|8F!`g0Pm$2CDu~>n=*rzouQ6Oko zW!6Mko_$aI^%7q675WL@%bxpaz!VTF73v~mvR*Wh7W9w18 zkejPg1V}T)roe3u@)b?<(CIxnFit!y!moNa@U>vOiJL*bq#24UC`zo?ZC_S(Z}NFiuT|&w-ey&G~|i4#}Y2`mZDJ-4M{R3 zH0inTu&(q_56#?(CjVDl0%U4l`w6NPP&MX(_Qbl$0lrhzme7uF{_La%IKeVp1loE3 z#{0Mov;#D~9ym~2p0Nbo!MBI_PyATzfO9sc6MP3zG|Zswy~f)1v~|*gjX>|yB5?o# z_B7POYusACm9$;(A*;~V1#KBL)HF2Re@O8dl&~jr?M;|_NWPLb559f!P1SVYW8E~> z-wS0el@AmAx>Ge%(l~djX38ArUZa`I5qW=9EnK5x;Tnx;VINrER4wc^J9nxU_PCu} z(!%{=eI+g2Th=#K+xdNJ=bpW0uX)gnFFp?rF1GmGh)Q~v*zJr5+sPg8>|L(Uq5aI> zZFn-m=iIjj=hmuOsi^G=KHRt`x6h{P8i!od_;OA1?fCGJ?ePHg+Gh#Cy|L%%Qa;&} zduz|*+Eg0vj{`NnXkvSCNA%~J_Evm%nbwH5=Ig|?1Nys;c681B<<9&5rsgO2ae4CE zoxfVod^-fqKg>|Xq{-!K5i`9-^<8vnXo;%tOb5E+B z`21j_b}nf@$+{=*2R7OmB7PqF+Vk51O}?Ax+~>D`U86k(O}^Kt@9Dw&toG&1d?)h0 zFI`_-yPa$R`99@+&}0MT+FG=wq$asNt@msBrnXMnb4@#-EW6}8Epc&pGpMAsx`T!S s`gBEmx#2AR&P1!!Sx86T;?hLhlXMD8sP7Qy#`hHHMti}7!L*b673KeU2><{9 literal 0 HcmV?d00001 diff --git a/gulp/res/icons/mstile-150x150.png b/gulp/res/icons/mstile-150x150.png new file mode 100644 index 0000000000000000000000000000000000000000..d7c1da008ee8ef0e1a23d71fc23ec4ac26a06f27 GIT binary patch literal 13394 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 literal 0 HcmV?d00001 diff --git a/gulp/res/icons/safari-pinned-tab.svg b/gulp/res/icons/safari-pinned-tab.svg new file mode 100644 index 00000000..5091b43c --- /dev/null +++ b/gulp/res/icons/safari-pinned-tab.svg @@ -0,0 +1,75 @@ + + + + +Created by potrace 1.11, written by Peter Selinger 2001-2013 + + + + + + + + + + + + + + + diff --git a/gulp/res/icons/site.webmanifest b/gulp/res/icons/site.webmanifest new file mode 100644 index 00000000..8c8e9c28 --- /dev/null +++ b/gulp/res/icons/site.webmanifest @@ -0,0 +1,13 @@ +{ + "name": "", + "short_name": "", + "icons": [ + { + "src": "/android-chrome-144x144.png", + "sizes": "144x144", + "type": "image/png" + } + ], + "theme_color": "", + "background_color": "" +} diff --git a/gulp/res/img/favicon.ico b/gulp/res/img/favicon.ico deleted file mode 100644 index a3503088155f83139835f768384ad35c3651166a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4286 zcmeHLX-v~+81FtTE}NU%L_wejZK0HMwU%C#yFj6|wJm3X$`qv>Run}9fguXAInSMm z)99wM#BIs4n9WVuk$qd1P2AzKOwA@UPEGt^;{DtEyx0aJup`-)C4)S?|Nrwo*ZX^) z;~xZq2iUJfBA~y5;l~An`2v9;o)KdSvKbMd|FFHekBrkeLm)71DZ~Ht-@-uKS%L&# z2IQUshzo3t3ZbaXfM#vc-*%UVjczE)jfl>&AllLZS=Dop*FGO2S@jMGtpSLO7DG{8 z17%$W6y72vH#v~9q6BH3_P-RHaiA3O-b_Sgdmt?v2>FxO?uNwGgXp|^M4BtGz*L3> zMi0_lZ7@~#Kw1=lWYGr5Yj$xRX~hs?>^|t${qZ=|tyYK%+#p>#tE_q_gawT-*&EQ< z(2Ic$FC#rY4`Fj-pqNvJxH%qZ)j4=;?`If!^ECGFK8iJgEy#5>LtNa-ZHV(LVA|yQ zT`ZKoLP(tJ?)lvTh1Cy#Lm!Up`4q>7N72zbgd~X#=7+bU^uaGs{@^Gl$E*`bN-%T( zpS=A8g47-u;P)f4wL#l9eV!OuY%-S}vdXR8x6tB8L{u8GvaD#T?|`kqiE<%1Ae zS3puy2bsGHa<`N9f)d1*vG_eU$QG3##!<>-YFWNEG5Iarw#eGTYPgDF;Jpun$czep z9*L_LVmtGFuWo3i_o(bjNQ!N&&*UK4p9_7T>pmM(%@O_6i;%QDhs9=PvG{o3h^uOc zX>%#p*L6E!U^yqYIzo8zIxB2}xX^*vQZrHm`Jg^9mHj`%|Mm|88>?n z>()ZMzJ&Ktk)@cOG4n6?tBLVwJ8bvGtXWe8rAI%BuiN055l>yW6UmLah_5mt)}>|f z8OAXgoE{U+YAdA0DKHIAm~Bj6Sz(;ydt$s3pY;qMxpN^T`AHm~l;%97b=i^9Vu75+ z5T=O4lQH3tm8kEFUDxA8SX?BcjIj{ssUS2f5T%zRS|1C2_c-noeNFY8xHJ>GUMG*0 za!6U54n>6?N&XyY+N>aKX%40a3fO!wLcOYx%aTqs^QU1wj%H4RFCD^6CFV*a5Uvs- z$(K19lNr8$`0S}RAz`tZligpAzM+1+^X@x1IeL=Q`yU)b=caCm5~aK@gqiU?mIR*} zaiuz_Dorrd=EGc52(!-$1>+^vW&Q3Q1oM*4JJ-o1;fSFd8@KtDG0cH{WS zan2+D=&4ae#6dl}{W6BdfqJCRaBjK}%F~5w zi_zZSiQBhthx{yST8>A<<{(z3z`W>i?0jKYXm53U8@l^?aOch)&bxH!5;O)am!BIs z4_|-tHRqo_cMj@C%ZwOMp0#$hg>2Coi3}M=Ztu|WA?$zs0E(TqkpDgVUd4}Rehj@I zIQSZuUAw*=FTU~;R;&ty_EKx6zk@VS7LI-RK}a^}o7R((u(>vN|)zb;UOCEd*!*fxYSXU~M}lkSx(SKuslaeGlx zAx1tL;rkaZT!7AOm?TT`Oa05ZY^qL!i@#pv`-k5+3~lT5vxx4W>Py{PfRy?itQzb9 zo#n=j8zKAT@7lF%{QcYSzUB8K%!tR*o)#P!ejQ(){0f(^T*l3tH}TWYKjG}TvpD+R zQ8cY%-(}{6Q2(E*_Jh3Cl?90Nr1AQud|0^50&iafy7ms@nIkWve|QIKo^65BYeHn2 z3^9eth%49gUXf6j0o9UB(3-${2R$d&XCbA5&91KTz7q5kT&dov&r$6Kd9>23OI()C z`>(Rb1l3a++*Um6!{k?#rQ~=8b!g5|yj1_R_k?I3B2;1|vTt_N3_Y9lNtf(Wuj4)U z-fW_%p?=_lc diff --git a/gulpfile.js b/gulpfile.js index a7c696d0..e197c6c3 100644 --- a/gulpfile.js +++ b/gulpfile.js @@ -24,6 +24,10 @@ const gulp = require('gulp') src: 'gulp/res/img/*', dest: 'static/file/' }, + icons: { + src: 'gulp/res/icons/*', + dest: 'static/file/' + }, scripts: { src: 'gulp/res/js', dest: 'static/js/' @@ -140,12 +144,18 @@ function css() { .pipe(gulp.dest(paths.styles.dest)); } -//favicon, spoiler/deleted image, default banner, spoiler/sticky/sage/cycle icons +//spoiler/deleted image, default banner, spoiler/sticky/sage/cycle icons function images() { return gulp.src(paths.images.src) .pipe(gulp.dest(paths.images.dest)); } +//favicon/safari/chrome/mstiles, etc +function icons() { + return gulp.src(paths.icons.src) + .pipe(gulp.dest(paths.icons.dest)); +} + async function cache() { const Redis = require(__dirname+'/redis.js') await Promise.all([ @@ -260,7 +270,7 @@ async function migrate() { } -const build = gulp.parallel(css, scripts, images, gulp.series(deletehtml, custompages)); +const build = gulp.parallel(css, scripts, images, icons, gulp.series(deletehtml, custompages)); const reset = gulp.series(wipe, build); const html = gulp.series(deletehtml, custompages); @@ -268,6 +278,7 @@ module.exports = { html, css, images, + icons, reset, custompages, scripts, diff --git a/package-lock.json b/package-lock.json index 718f5b0e..2a33b9c6 100644 --- a/package-lock.json +++ b/package-lock.json @@ -63,23 +63,32 @@ } }, "@pm2/agent": { - "version": "0.5.26", - "resolved": "https://registry.npmjs.org/@pm2/agent/-/agent-0.5.26.tgz", - "integrity": "sha512-pqiS87IiUprkSR7SG0RKMATuYXl4QjH1tSSUwM4wJcovRT4pD5dvnnu61w9y/4/Ur5V/+a7bqS8bZz51y3U2iA==", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@pm2/agent/-/agent-1.0.0.tgz", + "integrity": "sha512-BsfhSI/2+SSXpg9dZojfv9WW6dTTr1vt7FRR9cefuwyDA4vsZR3mHTeyQUBGHzMkd6yPHFb3B6NO8T2pY4R/MA==", "requires": { - "async": "^2.6.0", - "chalk": "^2.3.2", - "eventemitter2": "^5.0.1", - "fclone": "^1.0.11", - "moment": "^2.21.0", - "nssocket": "^0.6.0", + "async": "~2.6.0", + "chalk": "~3.0.0", + "dayjs": "~1.8.24", + "eventemitter2": "~5.0.1", + "fclone": "~1.0.11", + "nssocket": "0.6.0", "pm2-axon": "^3.2.0", "pm2-axon-rpc": "^0.5.0", - "proxy-agent": "^3.1.0", - "semver": "^5.5.0", - "ws": "^5.1.0" + "proxy-agent": "~3.1.1", + "semver": "~7.2.0", + "ws": "~5.2.0" }, "dependencies": { + "ansi-styles": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", + "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", + "requires": { + "@types/color-name": "^1.1.1", + "color-convert": "^2.0.1" + } + }, "async": { "version": "2.6.3", "resolved": "https://registry.npmjs.org/async/-/async-2.6.3.tgz", @@ -87,6 +96,46 @@ "requires": { "lodash": "^4.17.14" } + }, + "chalk": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", + "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" + }, + "semver": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.2.3.tgz", + "integrity": "sha512-utbW9Z7ZxVvwiIWkdOMLOR9G/NFXh2aRucghkVrEMJWuC++r3lCkBC3LwqBinyHzGMAJxY5tn6VakZGHObq5ig==" + }, + "supports-color": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", + "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", + "requires": { + "has-flag": "^4.0.0" + } } } }, @@ -125,20 +174,20 @@ } }, "@pm2/io": { - "version": "4.3.3", - "resolved": "https://registry.npmjs.org/@pm2/io/-/io-4.3.3.tgz", - "integrity": "sha512-ENGsdSVpnwbYMGdeB0/Xy2eZYo7oltzApoCsMD4ssqWNXDg9C4uQZy5J09iPsb0IHFwSDjU5oylXdwKDSoqODw==", + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/@pm2/io/-/io-4.3.4.tgz", + "integrity": "sha512-xaPa/aiGNknex4UQq9eQVRW75H3dPuAcZ0/RvGWrC4ICUBqxn0xV7dC6Db9C5aArGKSXXQ7PVtIlOzUIELauRg==", "requires": { - "@opencensus/core": "^0.0.9", - "@opencensus/propagation-b3": "^0.0.8", + "@opencensus/core": "0.0.9", + "@opencensus/propagation-b3": "0.0.8", "@pm2/agent-node": "^1.1.10", "async": "~2.6.1", - "debug": "3.1.0", - "eventemitter2": "~5.0.1", + "debug": "4.1.1", + "eventemitter2": "^6.3.1", "require-in-the-middle": "^5.0.0", - "semver": "5.5.0", - "shimmer": "~1.2.0", - "signal-exit": "3.0.2", + "semver": "6.3.0", + "shimmer": "^1.2.0", + "signal-exit": "^3.0.3", "tslib": "1.9.3" }, "dependencies": { @@ -151,26 +200,41 @@ } }, "debug": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", - "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", "requires": { - "ms": "2.0.0" + "ms": "^2.1.1" } }, + "eventemitter2": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/eventemitter2/-/eventemitter2-6.3.1.tgz", + "integrity": "sha512-cxfu3g0IBn/JEhAPV33NZTi8llQQ5j62D0Yf4ir1U9uQ1DlRZLL3Hh2E/+TWDprSy4BETWvrGBZMUexuC2b6Lw==" + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, "semver": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.5.0.tgz", - "integrity": "sha512-4SJ3dm0WAwWy/NVeioZh5AntkdJoWKxHxcmyP622fOkgHa4z3R0TdBJICINyaSDE6uNwVc8gZr+ZinwZAH4xIA==" + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" + }, + "signal-exit": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz", + "integrity": "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==" } } }, "@pm2/js-api": { - "version": "0.5.60", - "resolved": "https://registry.npmjs.org/@pm2/js-api/-/js-api-0.5.60.tgz", - "integrity": "sha512-CvAbpIB7ObOuwvqhDBB/E4Z4ANRx2dBk08zYpGPNg+1fDj14FJg2e7DWA8bblSGNC8QarIXPaqPDJBL1e8cRQw==", + "version": "0.5.63", + "resolved": "https://registry.npmjs.org/@pm2/js-api/-/js-api-0.5.63.tgz", + "integrity": "sha512-V0e5fVFEY5jxF6sH2ona3WVVbMlYc5U+F8v6g1UQXg9E8Ao2X7Q1XBmgmhtf1k8hnPvW7ufDhGe6dUok1LPHmA==", "requires": { - "async": "^2.4.1", + "async": "^2.6.3", "axios": "^0.19.0", "debug": "^2.6.8", "eventemitter2": "^4.1.0", @@ -264,6 +328,11 @@ "@types/babel-types": "*" } }, + "@types/color-name": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@types/color-name/-/color-name-1.1.1.tgz", + "integrity": "sha512-rr+OQyAjxze7GgWrSaJwydHStIhHq2lvY3BOC2Mj7KnzI7XK0Uw1TOOdI9lDoajEbSWLiYgoo4f1R51erQfhPQ==" + }, "@types/events": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/@types/events/-/events-3.0.0.tgz", @@ -705,9 +774,9 @@ "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=" }, "ast-types": { - "version": "0.13.2", - "resolved": "https://registry.npmjs.org/ast-types/-/ast-types-0.13.2.tgz", - "integrity": "sha512-uWMHxJxtfj/1oZClOxDEV1sQ1HCDkA4MG8Gr69KKeBjEVH0R84WlejZ0y2DcwyBlpAEMltmVYkVgqfLFb2oyiA==" + "version": "0.13.3", + "resolved": "https://registry.npmjs.org/ast-types/-/ast-types-0.13.3.tgz", + "integrity": "sha512-XTZ7xGML849LkQP86sWdQzfhwbt3YwIO6MqbX9mUNYY98VKaaVZP7YNNm70IpwecbkkxmfC5IYAzOQ/2p29zRA==" }, "async": { "version": "3.0.1", @@ -904,8 +973,7 @@ }, "kind-of": { "version": "6.0.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", - "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==" + "resolved": "" } } }, @@ -1597,9 +1665,9 @@ "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" }, "cron": { - "version": "1.7.1", - "resolved": "https://registry.npmjs.org/cron/-/cron-1.7.1.tgz", - "integrity": "sha512-gmMB/pJcqUVs/NklR1sCGlNYM7TizEw+1gebz20BMc/8bTm/r7QUp3ZPSPlG8Z5XRlvb7qhjEjq/+bdIfUCL2A==", + "version": "1.8.2", + "resolved": "https://registry.npmjs.org/cron/-/cron-1.8.2.tgz", + "integrity": "sha512-Gk2c4y6xKEO8FSAUTklqtfSr7oTq0CiPQeLBG5Fl0qoXpZyMcj1SG59YL+hqq04bu6/IuEA7lMkYDAplQNKkyg==", "requires": { "moment-timezone": "^0.5.x" } @@ -1699,10 +1767,10 @@ "resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-1.2.0.tgz", "integrity": "sha512-vKQ9DTQPN1FLYiiEEOQ6IBGFqvjCa5rSK3cWMy/Nespm5d/x3dGFT9UBZnkLxCwua/IXBi2TYnwTEpsOvhC4UQ==" }, - "date-fns": { - "version": "1.30.1", - "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-1.30.1.tgz", - "integrity": "sha512-hBSVCvSmWC+QypYObzwGOd9wqdDpOt+0wl0KbU+R+uuZBS1jN8VsD1ss3irQDknRj5NvxiTF6oj/nDRnN/UQNw==" + "dayjs": { + "version": "1.8.24", + "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.8.24.tgz", + "integrity": "sha512-bImQZbBv86zcOWOq6fLg7r4aqMx8fScdmykA7cSh+gH1Yh8AM0Dbw0gHYrsOrza6oBBnkK+/OaR+UAa9UsMrDw==" }, "debug": { "version": "2.6.9", @@ -2132,9 +2200,9 @@ } }, "enquirer": { - "version": "2.3.4", - "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.3.4.tgz", - "integrity": "sha512-pkYrrDZumL2VS6VBGDhqbajCM2xpkUNLuKfGPjfKaSIBKYopQbqEFyrOkRMIb2HDR/rO1kGhEt/5twBwtzKBXw==", + "version": "2.3.5", + "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.3.5.tgz", + "integrity": "sha512-BNT1C08P9XD0vNg3J475yIUG+mVdp9T6towYFHUv897X0KoHBjB1shyrNmhmtHWKP17iSWgo7Gqh7BBuzLZMSA==", "requires": { "ansi-colors": "^3.2.1" }, @@ -2280,9 +2348,9 @@ "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" }, "escodegen": { - "version": "1.13.0", - "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.13.0.tgz", - "integrity": "sha512-eYk2dCkxR07DsHA/X2hRBj0CFAZeri/LyDMc0C8JT1Hqi6JnVpMhJ7XFITbb0+yZS3lVkaPL2oCkZ3AVmeVbMw==", + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.14.1.tgz", + "integrity": "sha512-Bmt7NcRySdIfNPfU2ZoXDrrXsG9ZjvDxcAlMfDUgRBjLOWTuIACXPBFJH7Z+cLb40JeQco5toikyc9t9P8E9SQ==", "requires": { "esprima": "^4.0.1", "estraverse": "^4.2.0", @@ -2414,7 +2482,7 @@ }, "express-fileupload": { "version": "github:fatchan/express-fileupload#ecc5ad4f41771a1c23eed365e451220b9cc3e3c1", - "from": "github:fatchan/express-fileupload#ecc5ad4f41771a1c23eed365e451220b9cc3e3c1", + "from": "github:fatchan/express-fileupload", "requires": { "busboy": "^0.3.1" } @@ -2534,8 +2602,7 @@ }, "kind-of": { "version": "6.0.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", - "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==" + "resolved": "" } } }, @@ -4648,26 +4715,11 @@ "resolved": "https://registry.npmjs.org/lodash.escaperegexp/-/lodash.escaperegexp-4.1.2.tgz", "integrity": "sha1-ZHYsSGGAglGKw99Mz11YhtriA0c=" }, - "lodash.findindex": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/lodash.findindex/-/lodash.findindex-4.6.0.tgz", - "integrity": "sha1-oyRd7mH7m24GJLU1ElYku2nBEQY=" - }, "lodash.flatten": { "version": "4.4.0", "resolved": "https://registry.npmjs.org/lodash.flatten/-/lodash.flatten-4.4.0.tgz", "integrity": "sha1-8xwiIlqWMtK7+OSt2+8kCqdlph8=" }, - "lodash.foreach": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.foreach/-/lodash.foreach-4.5.0.tgz", - "integrity": "sha1-Gmo16s5AEoDH8G3d7DUWWrJ+PlM=" - }, - "lodash.get": { - "version": "4.4.2", - "resolved": "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz", - "integrity": "sha1-LRd/ZS+jHpObRDjVNBSZ36OCXpk=" - }, "lodash.isplainobject": { "version": "4.0.6", "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz", @@ -4678,11 +4730,6 @@ "resolved": "https://registry.npmjs.org/lodash.isstring/-/lodash.isstring-4.0.1.tgz", "integrity": "sha1-1SfftUVuynzJu5XV2ur4i6VKVFE=" }, - "lodash.last": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/lodash.last/-/lodash.last-3.0.0.tgz", - "integrity": "sha1-JC9mMRLdTG5jcoxgo8kJ0b2tvUw=" - }, "lodash.merge": { "version": "4.6.2", "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", @@ -5578,9 +5625,9 @@ "integrity": "sha512-OYMyqkKzK7blWO/+XZYP6w8hH0LDvkBvdvKukti+7kqYFCiEAk+gI3DWnryapc0Dau05ugGTy0foQ6mqn4AHYA==" }, "pidusage": { - "version": "2.0.17", - "resolved": "https://registry.npmjs.org/pidusage/-/pidusage-2.0.17.tgz", - "integrity": "sha512-N8X5v18rBmlBoArfS83vrnD0gIFyZkXEo7a5pAS2aT0i2OLVymFb2AzVg+v8l/QcXnE1JwZcaXR8daJcoJqtjw==", + "version": "2.0.18", + "resolved": "https://registry.npmjs.org/pidusage/-/pidusage-2.0.18.tgz", + "integrity": "sha512-Y/VfKfh3poHjMEINxU+gJTeVOBjiThQeFAmzR7z56HSNiMx+etl+yBhk42nRPciPYt/VZl8DQLVXNC6P5vH11A==", "requires": { "safe-buffer": "^5.1.2" } @@ -5610,46 +5657,53 @@ } }, "pm2": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/pm2/-/pm2-4.2.3.tgz", - "integrity": "sha512-aRTl8W6dmZ4S2hti1dX4Xvkpy/yIME1H5pMK0HEOpw1H33j4IAfdzScPoPLYaHeh1oL4biabGwxuyClOM8YUVQ==", + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/pm2/-/pm2-4.3.0.tgz", + "integrity": "sha512-bQ3zyGu+KnEtQ7FdDQ/ExwPGm2EkKOqUFXFqqYsuymySsOvu5ClpYIMh0fgjMKzn21RfSg9yL4SeeoGOjg+/dQ==", "requires": { - "@pm2/agent": "^0.5.26", - "@pm2/io": "^4.3.2", - "@pm2/js-api": "^0.5.60", + "@pm2/agent": "~1.0.0", + "@pm2/io": "~4.3.4", + "@pm2/js-api": "~0.5.6", "@pm2/pm2-version-check": "^1.0.3", - "async": "^3.1.0", + "async": "~3.2.0", "blessed": "0.1.81", - "chalk": "2.4.2", - "chokidar": "^3.2.0", + "chalk": "3.0.0", + "chokidar": "^3.3.0", "cli-table-redemption": "1.0.1", "commander": "2.15.1", - "cron": "1.7.1", - "date-fns": "1.30.1", + "cron": "1.8.2", + "dayjs": "1.8.24", "debug": "4.1.1", "enquirer": "^2.3.2", "eventemitter2": "5.0.1", "fclone": "1.0.11", - "lodash": "4.17.14", - "mkdirp": "0.5.1", - "moment": "2.24.0", + "mkdirp": "1.0.4", "needle": "2.4.0", - "pidusage": "2.0.17", + "pidusage": "2.0.18", "pm2-axon": "3.3.0", "pm2-axon-rpc": "0.5.1", - "pm2-deploy": "^0.4.0", + "pm2-deploy": "~1.0.2", "pm2-multimeter": "^0.1.2", "promptly": "^2", "ps-list": "6.3.0", - "semver": "^5.5", + "semver": "^7.2", "shelljs": "0.8.3", - "source-map-support": "0.5.12", + "source-map-support": "0.5.16", "sprintf-js": "1.1.2", - "systeminformation": "^4.14.16", - "vizion": "~2.0.2", + "systeminformation": "^4.23.3", + "vizion": "~2.2.0", "yamljs": "0.3.0" }, "dependencies": { + "ansi-styles": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", + "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", + "requires": { + "@types/color-name": "^1.1.1", + "color-convert": "^2.0.1" + } + }, "anymatch": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.1.tgz", @@ -5660,9 +5714,9 @@ } }, "async": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/async/-/async-3.1.1.tgz", - "integrity": "sha512-X5Dj8hK1pJNC2Wzo2Rcp9FBVdJMGRR/S7V+lH46s8GVFhtbo5O4Le5GECCF/8PISVdkUA6mMPvgz7qTTD1rf1g==" + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/async/-/async-3.2.0.tgz", + "integrity": "sha512-TR2mEZFVOj2pLStYxLht7TyfuRzaydfpxr3k9RpHIzMgw7A64dzsdqCxH1WJyQdoe8T10nDXd9wnEigmiuHIZw==" }, "binary-extensions": { "version": "2.0.0", @@ -5677,6 +5731,15 @@ "fill-range": "^7.0.1" } }, + "chalk": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", + "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, "chokidar": { "version": "3.3.1", "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.3.1.tgz", @@ -5692,6 +5755,19 @@ "readdirp": "~3.3.0" } }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, "commander": { "version": "2.15.1", "resolved": "https://registry.npmjs.org/commander/-/commander-2.15.1.tgz", @@ -5720,13 +5796,18 @@ "optional": true }, "glob-parent": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.0.tgz", - "integrity": "sha512-qjtRgnIVmOfnKUE3NJAQEdk+lKrxfw8t5ke7SXtfMTHcjsBfOfWXCQfdb30zfDoZQ2IRSIiidmjtbHZPZ++Ihw==", + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.1.tgz", + "integrity": "sha512-FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ==", "requires": { "is-glob": "^4.0.1" } }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" + }, "is-binary-path": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", @@ -5740,23 +5821,10 @@ "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==" }, - "lodash": { - "version": "4.17.14", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.14.tgz", - "integrity": "sha512-mmKYbW3GLuJeX+iGP+Y7Gp1AiGHGbXHCOh/jZmrawMmsE7MS4znI3RL2FsjbqOyMayHInjOeykW7PEajUk1/xw==" - }, - "minimist": { - "version": "0.0.8", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", - "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=" - }, "mkdirp": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", - "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", - "requires": { - "minimist": "0.0.8" - } + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==" }, "ms": { "version": "2.1.2", @@ -5776,13 +5844,17 @@ "picomatch": "^2.0.7" } }, - "source-map-support": { - "version": "0.5.12", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.12.tgz", - "integrity": "sha512-4h2Pbvyy15EE02G+JOZpUCmqWJuqrs+sEkzewTm++BPi7Hvn/HwcqLAcNxYAyI0x13CpPPn+kMjl+hplXMHITQ==", + "semver": { + "version": "7.3.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.2.tgz", + "integrity": "sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ==" + }, + "supports-color": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", + "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", "requires": { - "buffer-from": "^1.0.0", - "source-map": "^0.6.0" + "has-flag": "^4.0.0" } }, "to-regex-range": { @@ -5845,22 +5917,12 @@ } }, "pm2-deploy": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/pm2-deploy/-/pm2-deploy-0.4.0.tgz", - "integrity": "sha512-3BdCghcGwMKwl3ffHZhc+j5JY5dldH9nq8m/I9W5wehJuSRZIyO96VOgKTMv3hYp7Yk5E+2lRGm8WFNlp65vOA==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/pm2-deploy/-/pm2-deploy-1.0.2.tgz", + "integrity": "sha512-YJx6RXKrVrWaphEYf++EdOOx9EH18vM8RSZN/P1Y+NokTKqYAca/ejXwVLyiEpNju4HPZEk3Y2uZouwMqUlcgg==", "requires": { - "async": "^2.6", - "tv4": "^1.3" - }, - "dependencies": { - "async": { - "version": "2.6.3", - "resolved": "https://registry.npmjs.org/async/-/async-2.6.3.tgz", - "integrity": "sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg==", - "requires": { - "lodash": "^4.17.14" - } - } + "run-series": "^1.1.8", + "tv4": "^1.3.0" } }, "pm2-multimeter": { @@ -5995,9 +6057,9 @@ } }, "proxy-from-env": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.0.0.tgz", - "integrity": "sha1-M8UDmPcOp+uW0h97gXYwpVeRx+4=" + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", + "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==" }, "prr": { "version": "1.0.1", @@ -6447,9 +6509,9 @@ "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" }, "resolve": { - "version": "1.15.0", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.15.0.tgz", - "integrity": "sha512-+hTmAldEGE80U2wJJDC1lebb5jWqvTYAfm3YZ1ckk1gBr0MnCqUKlwK1e+anaFljIl+F5tR5IoZcm4ZDA1zMQw==", + "version": "1.16.1", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.16.1.tgz", + "integrity": "sha512-rmAglCSqWWMrrBv/XM6sW0NuRFiKViw/W4d9EbC4pt+49H8JwHy+mcGmALTEg504AUDcLTvb1T2q3E9AnmY+ig==", "requires": { "path-parse": "^1.0.6" } @@ -6541,6 +6603,11 @@ "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.1.9.tgz", "integrity": "sha512-DEqnSRTDw/Tc3FXf49zedI638Z9onwUotBMiUFKmrO2sdFKIbXamXGQ3Axd4qgphxKB4kw/qP1w5kTxnfU1B9Q==" }, + "run-series": { + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/run-series/-/run-series-1.1.8.tgz", + "integrity": "sha512-+GztYEPRpIsQoCSraWHDBs9WVy4eVME16zhOtDB4H9J4xN0XRhknnmLOl+4gRgZtu8dpp9N/utSPjKH/xmDzXg==" + }, "safe-buffer": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", @@ -6790,8 +6857,7 @@ }, "kind-of": { "version": "6.0.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", - "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==" + "resolved": "" } } }, @@ -7220,9 +7286,9 @@ } }, "systeminformation": { - "version": "4.21.1", - "resolved": "https://registry.npmjs.org/systeminformation/-/systeminformation-4.21.1.tgz", - "integrity": "sha512-IQMy+ieSThY+MfLZaCdQsGCteMah4nhsDQcnT9DhocoJnhMKVUqDY025j1i+MSm7qdUCMXS5oV7dvttr+pSodw==", + "version": "4.23.3", + "resolved": "https://registry.npmjs.org/systeminformation/-/systeminformation-4.23.3.tgz", + "integrity": "sha512-TIGmv7O1vVw00ldkj8ckHJr667l/lbLxvYB5IrJZ7pxzKXt7RmCduvzHbFM6k2Owif/dGd7oEmRkaQJEH9ewng==", "optional": true }, "tar": { @@ -7785,26 +7851,22 @@ } }, "vizion": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/vizion/-/vizion-2.0.2.tgz", - "integrity": "sha512-UGDB/UdC1iyPkwyQaI9AFMwKcluQyD4FleEXObrlu254MEf16MV8l+AZdpFErY/iVKZVWlQ+OgJlVVJIdeMUYg==", + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/vizion/-/vizion-2.2.0.tgz", + "integrity": "sha512-y9Xr35EjExYgnZYkajmlL8b+9dWowQI0AhWJdbeVRgJfylIlXnUI1V9z3H2j9w6srJypqDzu4t3VZg1xQjf+Kg==", "requires": { - "async": "2.6.1", + "async": "^2.6.3", "git-node-fs": "^1.0.0", - "ini": "^1.3.4", - "js-git": "^0.7.8", - "lodash.findindex": "^4.6.0", - "lodash.foreach": "^4.5.0", - "lodash.get": "^4.4.2", - "lodash.last": "^3.0.0" + "ini": "^1.3.5", + "js-git": "^0.7.8" }, "dependencies": { "async": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/async/-/async-2.6.1.tgz", - "integrity": "sha512-fNEiL2+AZt6AlAw/29Cr0UDe4sRAHCpEHh54WMz+Bb7QfNcFw4h3loofyJpLeQs4Yx7yuqu/2dLgM5hKOs6HlQ==", + "version": "2.6.3", + "resolved": "https://registry.npmjs.org/async/-/async-2.6.3.tgz", + "integrity": "sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg==", "requires": { - "lodash": "^4.17.10" + "lodash": "^4.17.14" } } } diff --git a/package.json b/package.json index 9b91c274..013044e0 100644 --- a/package.json +++ b/package.json @@ -32,7 +32,7 @@ "mongodb": "^3.5.0", "node-fetch": "^2.6.0", "path": "^0.12.7", - "pm2": "^4.2.3", + "pm2": "^4.3.0", "pug": "^2.0.4", "redlock": "^4.1.0", "sanitize-html": "^1.21.1", diff --git a/views/includes/favicon.pug b/views/includes/favicon.pug new file mode 100644 index 00000000..a9961aea --- /dev/null +++ b/views/includes/favicon.pug @@ -0,0 +1,5 @@ +link(rel='shortcut icon' href='/favicon.ico' type='image/x-icon') +link(rel='apple-touch-icon' sizes='144x144' href='/file/apple-touch-icon.png') +link(rel='manifest' href='/site.webmanifest') +link(rel='mask-icon' href='/file/safari-pinned-tab.svg' color='#5bbad5') +meta(name='msapplication-TileColor' content='#00aba9') diff --git a/views/includes/head.pug b/views/includes/head.pug index 4b240b1b..1a018f44 100644 --- a/views/includes/head.pug +++ b/views/includes/head.pug @@ -15,5 +15,5 @@ link#theme(rel='stylesheet' data-theme=theme href=`/css/themes/${theme}.css`) if isBoard && board.settings.customCss style #{board.settings.customCss} link#codetheme(rel='stylesheet' data-theme=codeTheme href=`/css/codethemes/${codeTheme}.css`) -link(rel='shortcut icon' href='/favicon.ico' type='image/x-icon') +include ./favicon.pug script(src=`/js/all.js?v=${commit}`)