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 00000000..8d48df0f Binary files /dev/null and b/gulp/res/icons/android-chrome-144x144.png differ diff --git a/gulp/res/icons/apple-touch-icon.png b/gulp/res/icons/apple-touch-icon.png new file mode 100644 index 00000000..4ecd29ee Binary files /dev/null and b/gulp/res/icons/apple-touch-icon.png differ 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 00000000..aac17379 Binary files /dev/null and b/gulp/res/icons/favicon.ico differ diff --git a/gulp/res/icons/mstile-150x150.png b/gulp/res/icons/mstile-150x150.png new file mode 100644 index 00000000..d7c1da00 Binary files /dev/null and b/gulp/res/icons/mstile-150x150.png differ 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 a3503088..00000000 Binary files a/gulp/res/img/favicon.ico and /dev/null differ 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}`)