From 046ea1202228c22d2e0b117f3c053284378893d0 Mon Sep 17 00:00:00 2001 From: Misty Release Bot Date: Thu, 28 Jul 2022 18:21:06 +0000 Subject: [PATCH 01/58] chore: incrementing version number - v2.3.0 (cherry picked from commit e616b2e16dcebd747111aaca2180e4dd4fb642fc) Signed-off-by: Misty Release Bot --- install/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/install/package.json b/install/package.json index b77f899a87..363b261ac9 100644 --- a/install/package.json +++ b/install/package.json @@ -2,7 +2,7 @@ "name": "nodebb", "license": "GPL-3.0", "description": "NodeBB Forum", - "version": "2.2.5", + "version": "2.3.0", "homepage": "http://www.nodebb.org", "repository": { "type": "git", From d2425942a62020d90fde81bb2b60910bb2a37d31 Mon Sep 17 00:00:00 2001 From: Misty Release Bot Date: Fri, 29 Jul 2022 15:26:22 +0000 Subject: [PATCH 02/58] chore: incrementing version number - v2.3.1 (cherry picked from commit 44dd42dc8924b090fb5b9d9ef18a297f8618017d) Signed-off-by: Misty Release Bot --- install/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/install/package.json b/install/package.json index e2b8e1a8a9..abfa2cea71 100644 --- a/install/package.json +++ b/install/package.json @@ -2,7 +2,7 @@ "name": "nodebb", "license": "GPL-3.0", "description": "NodeBB Forum", - "version": "2.3.0", + "version": "2.3.1", "homepage": "http://www.nodebb.org", "repository": { "type": "git", From 4834cde335aa500eb3a4cad903345ebb36c4a499 Mon Sep 17 00:00:00 2001 From: Misty Release Bot Date: Wed, 10 Aug 2022 20:02:18 +0000 Subject: [PATCH 03/58] chore: incrementing version number - v2.4.0 (cherry picked from commit 55254422794f9d221a996d306c5ab44c33989057) Signed-off-by: Misty Release Bot --- install/package.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/install/package.json b/install/package.json index 94c22d2872..ff4b2c4814 100644 --- a/install/package.json +++ b/install/package.json @@ -2,7 +2,7 @@ "name": "nodebb", "license": "GPL-3.0", "description": "NodeBB Forum", - "version": "2.3.1", + "version": "2.4.0", "homepage": "http://www.nodebb.org", "repository": { "type": "git", @@ -29,7 +29,7 @@ }, "dependencies": { "@adactive/bootstrap-tagsinput": "0.8.2", - "@isaacs/ttlcache": "^1.2.0", + "@isaacs/ttlcache": "^1.2.0", "ace-builds": "1.8.1", "archiver": "5.3.1", "async": "3.2.4", @@ -187,4 +187,4 @@ "url": "https://github.com/barisusakli" } ] -} +} \ No newline at end of file From 60cbd1480d874d4d670d2893a743f6c59f007e23 Mon Sep 17 00:00:00 2001 From: Misty Release Bot Date: Sun, 14 Aug 2022 00:18:24 +0000 Subject: [PATCH 04/58] chore: incrementing version number - v2.4.1 (cherry picked from commit 7f5ff2e613322530bcb9f9fdaa76d3d2c62b3bc9) Signed-off-by: Misty Release Bot --- install/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/install/package.json b/install/package.json index ff4b2c4814..e9debbe6bd 100644 --- a/install/package.json +++ b/install/package.json @@ -2,7 +2,7 @@ "name": "nodebb", "license": "GPL-3.0", "description": "NodeBB Forum", - "version": "2.4.0", + "version": "2.4.1", "homepage": "http://www.nodebb.org", "repository": { "type": "git", From 3aa7b8552a2007337092e09ff17d8d08f009cf4c Mon Sep 17 00:00:00 2001 From: Misty Release Bot Date: Wed, 17 Aug 2022 21:12:34 +0000 Subject: [PATCH 05/58] chore: incrementing version number - v2.4.2 (cherry picked from commit 1635633acddb3588f71f541072a2b623e89587b1) Signed-off-by: Misty Release Bot --- install/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/install/package.json b/install/package.json index c7248c007b..8f265b746c 100644 --- a/install/package.json +++ b/install/package.json @@ -2,7 +2,7 @@ "name": "nodebb", "license": "GPL-3.0", "description": "NodeBB Forum", - "version": "2.4.1", + "version": "2.4.2", "homepage": "http://www.nodebb.org", "repository": { "type": "git", From 9c647c6ce22a0e589fc64c4c5abc0d1906287566 Mon Sep 17 00:00:00 2001 From: Misty Release Bot Date: Thu, 18 Aug 2022 02:33:19 +0000 Subject: [PATCH 06/58] chore: incrementing version number - v2.4.3 (cherry picked from commit be0256b26e7bff9dba1c744b3b04e796f5bedb2f) Signed-off-by: Misty Release Bot --- install/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/install/package.json b/install/package.json index 8f265b746c..f49aebd84f 100644 --- a/install/package.json +++ b/install/package.json @@ -2,7 +2,7 @@ "name": "nodebb", "license": "GPL-3.0", "description": "NodeBB Forum", - "version": "2.4.2", + "version": "2.4.3", "homepage": "http://www.nodebb.org", "repository": { "type": "git", From d5525c873b8c0f15c9a65cebd7a65e17f65b43da Mon Sep 17 00:00:00 2001 From: Misty Release Bot Date: Thu, 18 Aug 2022 13:45:26 +0000 Subject: [PATCH 07/58] chore: incrementing version number - v2.4.4 (cherry picked from commit 24221d66e0eec1ed8dd095ed04ae16784040e7dc) Signed-off-by: Misty Release Bot --- install/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/install/package.json b/install/package.json index f49aebd84f..0f1d15ae17 100644 --- a/install/package.json +++ b/install/package.json @@ -2,7 +2,7 @@ "name": "nodebb", "license": "GPL-3.0", "description": "NodeBB Forum", - "version": "2.4.3", + "version": "2.4.4", "homepage": "http://www.nodebb.org", "repository": { "type": "git", From dd3e1a2861bca1cce21801a5c82d54e841e7a453 Mon Sep 17 00:00:00 2001 From: Misty Release Bot Date: Mon, 22 Aug 2022 16:13:58 +0000 Subject: [PATCH 08/58] chore: incrementing version number - v2.4.5 (cherry picked from commit d8b1291088d345b55522f5f85b13a03339efa38d) Signed-off-by: Misty Release Bot --- install/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/install/package.json b/install/package.json index 0f1d15ae17..58760a2909 100644 --- a/install/package.json +++ b/install/package.json @@ -2,7 +2,7 @@ "name": "nodebb", "license": "GPL-3.0", "description": "NodeBB Forum", - "version": "2.4.4", + "version": "2.4.5", "homepage": "http://www.nodebb.org", "repository": { "type": "git", From 01d276cbee7b4df6d985dcf25c77742c791e612a Mon Sep 17 00:00:00 2001 From: Misty Release Bot Date: Thu, 1 Sep 2022 16:14:06 +0000 Subject: [PATCH 09/58] chore: incrementing version number - v2.5.0 (cherry picked from commit c3e19005f6b18bfee734c9c17be3e7377d3e4208) Signed-off-by: Misty Release Bot --- install/package.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/install/package.json b/install/package.json index 79e284308a..0fa776a76a 100644 --- a/install/package.json +++ b/install/package.json @@ -2,7 +2,7 @@ "name": "nodebb", "license": "GPL-3.0", "description": "NodeBB Forum", - "version": "2.4.5", + "version": "2.5.0", "homepage": "http://www.nodebb.org", "repository": { "type": "git", @@ -184,4 +184,4 @@ "url": "https://github.com/barisusakli" } ] -} +} \ No newline at end of file From ce3aa950538c9e6467fb3b86b7772401ea2b0002 Mon Sep 17 00:00:00 2001 From: Misty Release Bot Date: Fri, 2 Sep 2022 19:14:01 +0000 Subject: [PATCH 10/58] chore: incrementing version number - v2.5.1 (cherry picked from commit 2bf475299d0fdffce154979862ddba99cb56b0b5) Signed-off-by: Misty Release Bot --- install/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/install/package.json b/install/package.json index 2792344528..016c871122 100644 --- a/install/package.json +++ b/install/package.json @@ -2,7 +2,7 @@ "name": "nodebb", "license": "GPL-3.0", "description": "NodeBB Forum", - "version": "2.5.0", + "version": "2.5.1", "homepage": "http://www.nodebb.org", "repository": { "type": "git", From babcd17e6c091156eee429a936fba9aa5df9bc13 Mon Sep 17 00:00:00 2001 From: Misty Release Bot Date: Sun, 4 Sep 2022 14:56:55 +0000 Subject: [PATCH 11/58] chore: incrementing version number - v2.5.2 (cherry picked from commit e351fbe89c722d9035c473fdaa471f9f31b24324) Signed-off-by: Misty Release Bot --- install/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/install/package.json b/install/package.json index 016c871122..14a7e80dfb 100644 --- a/install/package.json +++ b/install/package.json @@ -2,7 +2,7 @@ "name": "nodebb", "license": "GPL-3.0", "description": "NodeBB Forum", - "version": "2.5.1", + "version": "2.5.2", "homepage": "http://www.nodebb.org", "repository": { "type": "git", From 7e922936d0025467e6e162e9bd3c5286174ddd22 Mon Sep 17 00:00:00 2001 From: Misty Release Bot Date: Mon, 19 Sep 2022 16:23:58 +0000 Subject: [PATCH 12/58] chore: incrementing version number - v2.5.3 (cherry picked from commit cf6e8101e86e0d5f91b491421e6477a2b74d3a81) Signed-off-by: Misty Release Bot --- install/package.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/install/package.json b/install/package.json index 3a1c865b5e..18bc65668e 100644 --- a/install/package.json +++ b/install/package.json @@ -2,7 +2,7 @@ "name": "nodebb", "license": "GPL-3.0", "description": "NodeBB Forum", - "version": "2.5.2", + "version": "2.5.3", "homepage": "http://www.nodebb.org", "repository": { "type": "git", @@ -186,4 +186,4 @@ "url": "https://github.com/barisusakli" } ] -} +} \ No newline at end of file From e83260ca287c8efde85a7896df77cfdedceb2dc1 Mon Sep 17 00:00:00 2001 From: Misty Release Bot Date: Tue, 11 Oct 2022 12:25:35 +0000 Subject: [PATCH 13/58] chore: incrementing version number - v2.5.4 (cherry picked from commit 89eb0340d153548077a1e0d465c232277c411e18) Signed-off-by: Misty Release Bot --- install/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/install/package.json b/install/package.json index 18bc65668e..22ac328320 100644 --- a/install/package.json +++ b/install/package.json @@ -2,7 +2,7 @@ "name": "nodebb", "license": "GPL-3.0", "description": "NodeBB Forum", - "version": "2.5.3", + "version": "2.5.4", "homepage": "http://www.nodebb.org", "repository": { "type": "git", From 3509ed94614bca001aecb80556bfeaa45b7be525 Mon Sep 17 00:00:00 2001 From: Misty Release Bot Date: Tue, 11 Oct 2022 17:07:16 +0000 Subject: [PATCH 14/58] chore: incrementing version number - v2.5.5 (cherry picked from commit 58b2f10ee9542631d67e8768b10ad9f7a05043f8) Signed-off-by: Misty Release Bot --- install/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/install/package.json b/install/package.json index 1570bb958c..a5ee0c35ff 100644 --- a/install/package.json +++ b/install/package.json @@ -2,7 +2,7 @@ "name": "nodebb", "license": "GPL-3.0", "description": "NodeBB Forum", - "version": "2.5.4", + "version": "2.5.5", "homepage": "http://www.nodebb.org", "repository": { "type": "git", From c7bd7dbfe6282dc47448e498efe900424852a1f8 Mon Sep 17 00:00:00 2001 From: Misty Release Bot Date: Thu, 13 Oct 2022 14:21:01 +0000 Subject: [PATCH 15/58] chore: incrementing version number - v2.5.6 (cherry picked from commit 7dc45afa4c2c8cc51215d476edc4f55f1a02389a) Signed-off-by: Misty Release Bot --- install/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/install/package.json b/install/package.json index a5ee0c35ff..4c0aeb6d30 100644 --- a/install/package.json +++ b/install/package.json @@ -2,7 +2,7 @@ "name": "nodebb", "license": "GPL-3.0", "description": "NodeBB Forum", - "version": "2.5.5", + "version": "2.5.6", "homepage": "http://www.nodebb.org", "repository": { "type": "git", From 5836bf4a05651d8043c974c628f67170380eec36 Mon Sep 17 00:00:00 2001 From: Misty Release Bot Date: Fri, 14 Oct 2022 15:59:57 +0000 Subject: [PATCH 16/58] chore: incrementing version number - v2.5.7 (cherry picked from commit dd6d10482040d24b064deb2963b6f4496614cec1) Signed-off-by: Misty Release Bot --- install/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/install/package.json b/install/package.json index d2f62a4076..9428775781 100644 --- a/install/package.json +++ b/install/package.json @@ -2,7 +2,7 @@ "name": "nodebb", "license": "GPL-3.0", "description": "NodeBB Forum", - "version": "2.5.6", + "version": "2.5.7", "homepage": "http://www.nodebb.org", "repository": { "type": "git", From dec0e7deac1d604b734ef01ff6fd1dca7517cb60 Mon Sep 17 00:00:00 2001 From: Misty Release Bot Date: Wed, 9 Nov 2022 18:46:09 +0000 Subject: [PATCH 17/58] chore: incrementing version number - v2.5.8 (cherry picked from commit 466263172ad061bff910060103401b78642af614) Signed-off-by: Misty Release Bot --- install/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/install/package.json b/install/package.json index ef7ad84789..2425804386 100644 --- a/install/package.json +++ b/install/package.json @@ -2,7 +2,7 @@ "name": "nodebb", "license": "GPL-3.0", "description": "NodeBB Forum", - "version": "2.5.7", + "version": "2.5.8", "homepage": "http://www.nodebb.org", "repository": { "type": "git", From e7fcf482f39c31fad0da69e5c44c2e3721e059f8 Mon Sep 17 00:00:00 2001 From: Misty Release Bot Date: Wed, 23 Nov 2022 19:04:44 +0000 Subject: [PATCH 18/58] chore: incrementing version number - v2.6.0 (cherry picked from commit 12f0541dfa68e63e01e24413d7f0877cd8e7954e) Signed-off-by: Misty Release Bot --- install/package.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/install/package.json b/install/package.json index bc1aa5d2c4..294b9f1ca9 100644 --- a/install/package.json +++ b/install/package.json @@ -2,7 +2,7 @@ "name": "nodebb", "license": "GPL-3.0", "description": "NodeBB Forum", - "version": "2.5.8", + "version": "2.6.0", "homepage": "http://www.nodebb.org", "repository": { "type": "git", @@ -192,4 +192,4 @@ "url": "https://github.com/barisusakli" } ] -} +} \ No newline at end of file From 7e52a7a574b9669b89564681c8bce7192bc449e8 Mon Sep 17 00:00:00 2001 From: Misty Release Bot Date: Mon, 28 Nov 2022 01:01:09 +0000 Subject: [PATCH 19/58] chore: incrementing version number - v2.6.1 (cherry picked from commit f8e947e2a743151f54c2c3cd1c441bd16ff9e203) Signed-off-by: Misty Release Bot --- install/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/install/package.json b/install/package.json index 294b9f1ca9..cb7eb36c43 100644 --- a/install/package.json +++ b/install/package.json @@ -2,7 +2,7 @@ "name": "nodebb", "license": "GPL-3.0", "description": "NodeBB Forum", - "version": "2.6.0", + "version": "2.6.1", "homepage": "http://www.nodebb.org", "repository": { "type": "git", From 96cc0617c555edc2daffddfb4c31ba2f2bf4ed0f Mon Sep 17 00:00:00 2001 From: Misty Release Bot Date: Wed, 14 Dec 2022 19:36:38 +0000 Subject: [PATCH 20/58] chore: incrementing version number - v2.7.0 (cherry picked from commit 098097257d3049ca8fe6a4d3b34d095e766e0cbd) Signed-off-by: Misty Release Bot --- install/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/install/package.json b/install/package.json index 5c7e28fe9c..d20d494edd 100644 --- a/install/package.json +++ b/install/package.json @@ -2,7 +2,7 @@ "name": "nodebb", "license": "GPL-3.0", "description": "NodeBB Forum", - "version": "2.6.1", + "version": "2.7.0", "homepage": "http://www.nodebb.org", "repository": { "type": "git", From 8e77673d3981957062af3d8dbe625fffe7c96d17 Mon Sep 17 00:00:00 2001 From: Misty Release Bot Date: Wed, 21 Dec 2022 22:10:48 +0000 Subject: [PATCH 21/58] chore: incrementing version number - v2.8.0 (cherry picked from commit 7ce758d698d79f46ecfb5707c3012c9fb03cf983) Signed-off-by: Misty Release Bot --- install/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/install/package.json b/install/package.json index ad81347ca3..bf47209c2c 100644 --- a/install/package.json +++ b/install/package.json @@ -2,7 +2,7 @@ "name": "nodebb", "license": "GPL-3.0", "description": "NodeBB Forum", - "version": "2.7.0", + "version": "2.8.0", "homepage": "http://www.nodebb.org", "repository": { "type": "git", From 727f879e5b1698fcf9bdbaca5181b28d0e9497fd Mon Sep 17 00:00:00 2001 From: Misty Release Bot Date: Fri, 30 Dec 2022 20:48:47 +0000 Subject: [PATCH 22/58] chore: incrementing version number - v2.8.1 (cherry picked from commit 96bdbf52b86f8a5cdabdd580052ec4bfa57418f4) Signed-off-by: Misty Release Bot --- install/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/install/package.json b/install/package.json index bf47209c2c..e99a25ec6a 100644 --- a/install/package.json +++ b/install/package.json @@ -2,7 +2,7 @@ "name": "nodebb", "license": "GPL-3.0", "description": "NodeBB Forum", - "version": "2.8.0", + "version": "2.8.1", "homepage": "http://www.nodebb.org", "repository": { "type": "git", From 050e43f8b4fad2f37603c38525373e3e17b28684 Mon Sep 17 00:00:00 2001 From: Misty Release Bot Date: Fri, 13 Jan 2023 18:38:12 +0000 Subject: [PATCH 23/58] chore: incrementing version number - v2.8.2 (cherry picked from commit 1d5eff236502bfa2e9b772a3a7f2d6a15b49aad7) Signed-off-by: Misty Release Bot --- install/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/install/package.json b/install/package.json index e99a25ec6a..1af9a00cf6 100644 --- a/install/package.json +++ b/install/package.json @@ -2,7 +2,7 @@ "name": "nodebb", "license": "GPL-3.0", "description": "NodeBB Forum", - "version": "2.8.1", + "version": "2.8.2", "homepage": "http://www.nodebb.org", "repository": { "type": "git", From c20b20a7aa4a5608fff528614c6a72449d51e101 Mon Sep 17 00:00:00 2001 From: Misty Release Bot Date: Wed, 25 Jan 2023 19:37:33 +0000 Subject: [PATCH 24/58] chore: incrementing version number - v2.8.3 (cherry picked from commit 4c46ff42f652329294436009403777d17b701038) Signed-off-by: Misty Release Bot --- install/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/install/package.json b/install/package.json index c2c63ced4b..0db03bf17f 100644 --- a/install/package.json +++ b/install/package.json @@ -2,7 +2,7 @@ "name": "nodebb", "license": "GPL-3.0", "description": "NodeBB Forum", - "version": "2.8.2", + "version": "2.8.3", "homepage": "http://www.nodebb.org", "repository": { "type": "git", From a46b2bbc457e10fc6e043b3e6343c71fd1dc1696 Mon Sep 17 00:00:00 2001 From: Misty Release Bot Date: Thu, 26 Jan 2023 14:38:06 +0000 Subject: [PATCH 25/58] chore: incrementing version number - v2.8.4 (cherry picked from commit b9553613ab0de13961bbf31eb2d1a8c7554a3999) Signed-off-by: Misty Release Bot --- install/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/install/package.json b/install/package.json index 0db03bf17f..63c02e8401 100644 --- a/install/package.json +++ b/install/package.json @@ -2,7 +2,7 @@ "name": "nodebb", "license": "GPL-3.0", "description": "NodeBB Forum", - "version": "2.8.3", + "version": "2.8.4", "homepage": "http://www.nodebb.org", "repository": { "type": "git", From bff5ce2d792121c2c6067a875f7258e3584ac8ba Mon Sep 17 00:00:00 2001 From: Misty Release Bot Date: Fri, 27 Jan 2023 14:35:24 +0000 Subject: [PATCH 26/58] chore: incrementing version number - v2.8.5 (cherry picked from commit 93ccf604db3b482becc51feed877c98e5c538b04) Signed-off-by: Misty Release Bot --- install/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/install/package.json b/install/package.json index 63c02e8401..34c5e0bf05 100644 --- a/install/package.json +++ b/install/package.json @@ -2,7 +2,7 @@ "name": "nodebb", "license": "GPL-3.0", "description": "NodeBB Forum", - "version": "2.8.4", + "version": "2.8.5", "homepage": "http://www.nodebb.org", "repository": { "type": "git", From af6ce4473735cfbdff5aedd62fce78f20ce56e49 Mon Sep 17 00:00:00 2001 From: Misty Release Bot Date: Fri, 3 Feb 2023 16:39:40 +0000 Subject: [PATCH 27/58] chore: incrementing version number - v2.8.6 (cherry picked from commit 76732140f3316798e9711f663add6028d7f7f03e) Signed-off-by: Misty Release Bot --- install/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/install/package.json b/install/package.json index 34c5e0bf05..a25c262ff1 100644 --- a/install/package.json +++ b/install/package.json @@ -2,7 +2,7 @@ "name": "nodebb", "license": "GPL-3.0", "description": "NodeBB Forum", - "version": "2.8.5", + "version": "2.8.6", "homepage": "http://www.nodebb.org", "repository": { "type": "git", From 3f8248d67359d6fa809d62159e623c040e913ffe Mon Sep 17 00:00:00 2001 From: Misty Release Bot Date: Wed, 1 Mar 2023 15:51:30 +0000 Subject: [PATCH 28/58] chore: incrementing version number - v2.8.7 (cherry picked from commit 6976925943ff12eedf34c543623872c4ed143e9e) Signed-off-by: Misty Release Bot --- install/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/install/package.json b/install/package.json index a25c262ff1..f2788e81ea 100644 --- a/install/package.json +++ b/install/package.json @@ -2,7 +2,7 @@ "name": "nodebb", "license": "GPL-3.0", "description": "NodeBB Forum", - "version": "2.8.6", + "version": "2.8.7", "homepage": "http://www.nodebb.org", "repository": { "type": "git", From b331b9423b211a69a34f4c52d660e47083272a53 Mon Sep 17 00:00:00 2001 From: Misty Release Bot Date: Thu, 9 Mar 2023 14:58:28 +0000 Subject: [PATCH 29/58] chore: incrementing version number - v2.8.8 (cherry picked from commit f5a59991fcc02b31f737c63d07e9a8972c08ba27) Signed-off-by: Misty Release Bot --- install/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/install/package.json b/install/package.json index f2788e81ea..6199aa636f 100644 --- a/install/package.json +++ b/install/package.json @@ -2,7 +2,7 @@ "name": "nodebb", "license": "GPL-3.0", "description": "NodeBB Forum", - "version": "2.8.7", + "version": "2.8.8", "homepage": "http://www.nodebb.org", "repository": { "type": "git", From 57f14e419f58d62f431e061e05ce7ac757ebb4e9 Mon Sep 17 00:00:00 2001 From: Misty Release Bot Date: Sun, 19 Mar 2023 16:31:26 +0000 Subject: [PATCH 30/58] chore: incrementing version number - v2.8.9 (cherry picked from commit fb100ac73128aa6b06efa9fd6738466fc674aa1b) Signed-off-by: Misty Release Bot --- install/package.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/install/package.json b/install/package.json index 416bd6e08a..a5efbd00a5 100644 --- a/install/package.json +++ b/install/package.json @@ -2,7 +2,7 @@ "name": "nodebb", "license": "GPL-3.0", "description": "NodeBB Forum", - "version": "2.8.8", + "version": "2.8.9", "homepage": "http://www.nodebb.org", "repository": { "type": "git", @@ -192,4 +192,4 @@ "url": "https://github.com/barisusakli" } ] -} +} \ No newline at end of file From 188ec62f9ab15be4624728fe451d2a6a211879fa Mon Sep 17 00:00:00 2001 From: Misty Release Bot Date: Mon, 27 Mar 2023 18:10:57 +0000 Subject: [PATCH 31/58] chore: update changelog for v2.8.10 --- CHANGELOG.md | 48 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 48 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 6feab404d2..e07cc91229 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,51 @@ +#### v2.8.10 (2023-03-27) + +##### Chores + +* up composer-default (e9a8e195) +* incrementing version number - v2.8.9 (57f14e41) +* update changelog for v2.8.9 (18b2150e) +* incrementing version number - v2.8.8 (b331b942) +* incrementing version number - v2.8.7 (3f8248d6) +* incrementing version number - v2.8.6 (af6ce447) +* incrementing version number - v2.8.5 (bff5ce2d) +* incrementing version number - v2.8.4 (a46b2bbc) +* incrementing version number - v2.8.3 (c20b20a7) +* incrementing version number - v2.8.2 (050e43f8) +* incrementing version number - v2.8.1 (727f879e) +* incrementing version number - v2.8.0 (8e77673d) +* incrementing version number - v2.7.0 (96cc0617) +* incrementing version number - v2.6.1 (7e52a7a5) +* incrementing version number - v2.6.0 (e7fcf482) +* incrementing version number - v2.5.8 (dec0e7de) +* incrementing version number - v2.5.7 (5836bf4a) +* incrementing version number - v2.5.6 (c7bd7dbf) +* incrementing version number - v2.5.5 (3509ed94) +* incrementing version number - v2.5.4 (e83260ca) +* incrementing version number - v2.5.3 (7e922936) +* incrementing version number - v2.5.2 (babcd17e) +* incrementing version number - v2.5.1 (ce3aa950) +* incrementing version number - v2.5.0 (01d276cb) +* incrementing version number - v2.4.5 (dd3e1a28) +* incrementing version number - v2.4.4 (d5525c87) +* incrementing version number - v2.4.3 (9c647c6c) +* incrementing version number - v2.4.2 (3aa7b855) +* incrementing version number - v2.4.1 (60cbd148) +* incrementing version number - v2.4.0 (4834cde3) +* incrementing version number - v2.3.1 (d2425942) +* incrementing version number - v2.3.0 (046ea120) + +##### Bug Fixes + +* #11403, remove loader.js crash counter logic (830f142b) +* don't crash if event name is not a string (37b48b82) +* closes #11173, move cache clear code (c2961ad4) + +##### Other Changes + +* fix arrow (1aff9cad) +* whitespace (894f392b) + #### v2.8.9 (2023-03-19) ##### Chores From 5b7c3671c86ae6c02fca11270ae42dc7c6aa24f1 Mon Sep 17 00:00:00 2001 From: Misty Release Bot Date: Mon, 27 Mar 2023 18:10:57 +0000 Subject: [PATCH 32/58] chore: incrementing version number - v2.8.10 (cherry picked from commit 48c1c7594d10b817cb0fe5eedc76759b0c8b0c01) Signed-off-by: Misty Release Bot --- install/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/install/package.json b/install/package.json index 92c5410c53..bec6b4c399 100644 --- a/install/package.json +++ b/install/package.json @@ -2,7 +2,7 @@ "name": "nodebb", "license": "GPL-3.0", "description": "NodeBB Forum", - "version": "2.8.9", + "version": "2.8.10", "homepage": "http://www.nodebb.org", "repository": { "type": "git", From 7397873db355d5449e9de3e6ca39b47b4cb34813 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bar=C4=B1=C5=9F=20Soner=20U=C5=9Fakl=C4=B1?= Date: Mon, 27 Mar 2023 22:16:41 -0400 Subject: [PATCH 33/58] fix: fire action:user.online on user login --- src/controllers/authentication.js | 2 +- src/user/online.js | 8 ++++++-- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/src/controllers/authentication.js b/src/controllers/authentication.js index 82dc6b1660..bb6e6bf49f 100644 --- a/src/controllers/authentication.js +++ b/src/controllers/authentication.js @@ -383,7 +383,7 @@ authenticationController.onSuccessfulLogin = async function (req, uid) { }), user.auth.addSession(uid, req.sessionID), user.updateLastOnlineTime(uid), - user.updateOnlineUsers(uid), + user.onUserOnline(uid, Date.now()), analytics.increment('logins'), db.incrObjectFieldBy('global', 'loginCount', 1), ]); diff --git a/src/user/online.js b/src/user/online.js index ffba4c9a94..b7c6b9d45a 100644 --- a/src/user/online.js +++ b/src/user/online.js @@ -27,9 +27,13 @@ module.exports = function (User) { if (now - parseInt(userOnlineTime, 10) < 300000) { return; } - await db.sortedSetAdd('users:online', now, uid); + await User.onUserOnline(uid, now); topics.pushUnreadCount(uid); - plugins.hooks.fire('action:user.online', { uid: uid, timestamp: now }); + }; + + User.onUserOnline = async (uid, timestamp) => { + await db.sortedSetAdd('users:online', timestamp, uid); + plugins.hooks.fire('action:user.online', { uid, timestamp }); }; User.isOnline = async function (uid) { From 4d2d76897a02e7068ab74c81d17a2febfae8bfb9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bar=C4=B1=C5=9F=20Soner=20U=C5=9Fakl=C4=B1?= Date: Tue, 28 Mar 2023 08:08:59 -0400 Subject: [PATCH 34/58] fix: don't crash on objects with toString property --- src/socket.io/index.js | 65 +++++++++++++++++++++--------------------- 1 file changed, 33 insertions(+), 32 deletions(-) diff --git a/src/socket.io/index.js b/src/socket.io/index.js index 30e4e23581..963267ed9a 100644 --- a/src/socket.io/index.js +++ b/src/socket.io/index.js @@ -112,48 +112,49 @@ async function onMessage(socket, payload) { return winston.warn('[socket.io] Empty payload'); } - const eventName = payload.data[0]; + let eventName = payload.data[0]; const params = typeof payload.data[1] === 'function' ? {} : payload.data[1]; const callback = typeof payload.data[payload.data.length - 1] === 'function' ? payload.data[payload.data.length - 1] : function () {}; - if (!eventName) { - return winston.warn('[socket.io] Empty method name'); - } - - if (typeof eventName !== 'string') { - const escapedName = validator.escape(String(eventName)); - return callback({ message: `[[error:invalid-event, ${escapedName}]]` }); - } + try { + if (!eventName) { + return winston.warn('[socket.io] Empty method name'); + } - const parts = eventName.split('.'); - const namespace = parts[0]; - const methodToCall = parts.reduce((prev, cur) => { - if (prev !== null && prev[cur] && (!prev.hasOwnProperty || prev.hasOwnProperty(cur))) { - return prev[cur]; + if (typeof eventName !== 'string') { + eventName = typeof eventName; + const escapedName = validator.escape(eventName); + return callback({ message: `[[error:invalid-event, ${escapedName}]]` }); } - return null; - }, Namespaces); - if (!methodToCall || typeof methodToCall !== 'function') { - if (process.env.NODE_ENV === 'development') { - winston.warn(`[socket.io] Unrecognized message: ${eventName}`); + const parts = eventName.split('.'); + const namespace = parts[0]; + const methodToCall = parts.reduce((prev, cur) => { + if (prev !== null && prev[cur] && (!prev.hasOwnProperty || prev.hasOwnProperty(cur))) { + return prev[cur]; + } + return null; + }, Namespaces); + + if (!methodToCall || typeof methodToCall !== 'function') { + if (process.env.NODE_ENV === 'development') { + winston.warn(`[socket.io] Unrecognized message: ${eventName}`); + } + const escapedName = validator.escape(String(eventName)); + return callback({ message: `[[error:invalid-event, ${escapedName}]]` }); } - const escapedName = validator.escape(String(eventName)); - return callback({ message: `[[error:invalid-event, ${escapedName}]]` }); - } - socket.previousEvents = socket.previousEvents || []; - socket.previousEvents.push(eventName); - if (socket.previousEvents.length > 20) { - socket.previousEvents.shift(); - } + socket.previousEvents = socket.previousEvents || []; + socket.previousEvents.push(eventName); + if (socket.previousEvents.length > 20) { + socket.previousEvents.shift(); + } - if (!eventName.startsWith('admin.') && ratelimit.isFlooding(socket)) { - winston.warn(`[socket.io] Too many emits! Disconnecting uid : ${socket.uid}. Events : ${socket.previousEvents}`); - return socket.disconnect(); - } + if (!eventName.startsWith('admin.') && ratelimit.isFlooding(socket)) { + winston.warn(`[socket.io] Too many emits! Disconnecting uid : ${socket.uid}. Events : ${socket.previousEvents}`); + return socket.disconnect(); + } - try { await checkMaintenance(socket); await validateSession(socket, '[[error:revalidate-failure]]'); From e0b20658029bcec26528881d9ea14b2793f05305 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bar=C4=B1=C5=9F=20Soner=20U=C5=9Fakl=C4=B1?= Date: Tue, 28 Mar 2023 08:15:42 -0400 Subject: [PATCH 35/58] test: update socket.io test --- test/socket.io.js | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/test/socket.io.js b/test/socket.io.js index 110258a0de..3628e3b0d0 100644 --- a/test/socket.io.js +++ b/test/socket.io.js @@ -110,8 +110,7 @@ describe('socket.io', () => { it('should return error for invalid eventName type', (done) => { const eventName = ['topics.loadMoreTags']; io.emit(eventName, (err) => { - const eventAsString = String(eventName); - assert.strictEqual(err.message, `[[error:invalid-event, ${eventAsString}]]`); + assert.strictEqual(err.message, `[[error:invalid-event, object]]`); done(); }); }); From 67055006df503f0d4ac32f2302f31caa4899dde3 Mon Sep 17 00:00:00 2001 From: Julian Lam Date: Wed, 29 Mar 2023 10:31:39 -0400 Subject: [PATCH 36/58] docs: update readme with new screenshot and updated copy for Harmony --- README.md | 17 +++++++---------- 1 file changed, 7 insertions(+), 10 deletions(-) diff --git a/README.md b/README.md index d06bc0362a..a45ba24ab8 100644 --- a/README.md +++ b/README.md @@ -24,17 +24,14 @@ NodeBB's theming engine is highly flexible and does not restrict your design cho [![](http://i.imgur.com/LmHtPhob.png)](http://i.imgur.com/LmHtPho.png) [![](http://i.imgur.com/paiJPJkb.jpg)](http://i.imgur.com/paiJPJk.jpg) -Our minimalist "Persona" theme gets you going right away, no coding experience required. - -[![](http://i.imgur.com/HwNEXGu.png)](http://i.imgur.com/HwNEXGu.png) -[![](http://i.imgur.com/II1byYs.png)](http://i.imgur.com/II1byYs.png) - +Our minimalist "Harmony" theme gets you going right away, no coding experience required. +![Rendering of a NodeBB install on desktop and mobile devices](https://user-images.githubusercontent.com/923011/228570420-2a4db745-b20d-474a-a571-1b59259508ef.png) ## How can I follow along/contribute? * If you are a developer, feel free to check out the source and submit pull requests. We also have a wide array of [plugins](http://community.nodebb.org/category/7/nodebb-plugins) which would be a great starting point for learning the codebase. -* If you are a designer, [NodeBB needs themes](http://community.nodebb.org/category/10/nodebb-themes)! NodeBB's theming system allows extension of the base templates as well as styling via LESS or CSS. NodeBB's base theme utilizes [Bootstrap 3](http://getbootstrap.com/) but themes can choose to use a different framework altogether. +* If you are a designer, [NodeBB needs themes](http://community.nodebb.org/category/10/nodebb-themes)! NodeBB's theming system allows extension of the base templates as well as styling via SCSS or CSS. NodeBB's base theme utilizes [Bootstrap 5](http://getbootstrap.com/) as a frontend toolkit. * If you know languages other than English you can help us translate NodeBB. We use [Transifex](https://explore.transifex.com/nodebb/nodebb/) for internationalization. * Please don't forget to **like**, **follow**, and **star our repo**! Join our growing [community](http://community.nodebb.org) to keep up to date with the latest NodeBB development. @@ -42,7 +39,7 @@ Our minimalist "Persona" theme gets you going right away, no coding experience r NodeBB requires the following software to be installed: -* A version of Node.js at least 12 or greater ([installation/upgrade instructions](https://github.com/nodesource/distributions)) +* A version of Node.js at least 16 or greater ([installation/upgrade instructions](https://github.com/nodesource/distributions)) * MongoDB, version 3.6 or greater **or** Redis, version 2.8.9 or greater * If you are using [clustering](https://docs.nodebb.org/configuring/scaling/) you need Redis installed and configured. * nginx, version 1.3.13 or greater (**only if** intending to use nginx to proxy requests to a NodeBB) @@ -76,10 +73,10 @@ Interested in a sublicense agreement for use of NodeBB in a non-free/restrictive * [Demo](https://try.nodebb.org) * [Developer Community](http://community.nodebb.org) -* [Documentation & Installation Instructions](http://docs.nodebb.org) +* [Documentation & Installation Instructions](https://docs.nodebb.org) * [Help translate NodeBB](https://explore.transifex.com/nodebb/nodebb/) -* [NodeBB Blog](http://blog.nodebb.org) -* [Premium Hosting for NodeBB](http://www.nodebb.org/ "NodeBB") +* [NodeBB Blog](https://nodebb.org/blog) +* [Premium Hosting for NodeBB](https://www.nodebb.org/ "NodeBB") * Unofficial IRC community – channel `#nodebb` on Libera.chat * [Follow us on Twitter](http://www.twitter.com/NodeBB/ "NodeBB Twitter") * [Like us on Facebook](http://www.facebook.com/NodeBB/ "NodeBB Facebook") From c33730530e4f3a5474447b975cba4e6b7c7660c0 Mon Sep 17 00:00:00 2001 From: Julian Lam Date: Wed, 29 Mar 2023 10:32:05 -0400 Subject: [PATCH 37/58] Revert "docs: update readme with new screenshot and updated copy for Harmony" This reverts commit 67055006df503f0d4ac32f2302f31caa4899dde3. --- README.md | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/README.md b/README.md index a45ba24ab8..d06bc0362a 100644 --- a/README.md +++ b/README.md @@ -24,14 +24,17 @@ NodeBB's theming engine is highly flexible and does not restrict your design cho [![](http://i.imgur.com/LmHtPhob.png)](http://i.imgur.com/LmHtPho.png) [![](http://i.imgur.com/paiJPJkb.jpg)](http://i.imgur.com/paiJPJk.jpg) -Our minimalist "Harmony" theme gets you going right away, no coding experience required. +Our minimalist "Persona" theme gets you going right away, no coding experience required. + +[![](http://i.imgur.com/HwNEXGu.png)](http://i.imgur.com/HwNEXGu.png) +[![](http://i.imgur.com/II1byYs.png)](http://i.imgur.com/II1byYs.png) + -![Rendering of a NodeBB install on desktop and mobile devices](https://user-images.githubusercontent.com/923011/228570420-2a4db745-b20d-474a-a571-1b59259508ef.png) ## How can I follow along/contribute? * If you are a developer, feel free to check out the source and submit pull requests. We also have a wide array of [plugins](http://community.nodebb.org/category/7/nodebb-plugins) which would be a great starting point for learning the codebase. -* If you are a designer, [NodeBB needs themes](http://community.nodebb.org/category/10/nodebb-themes)! NodeBB's theming system allows extension of the base templates as well as styling via SCSS or CSS. NodeBB's base theme utilizes [Bootstrap 5](http://getbootstrap.com/) as a frontend toolkit. +* If you are a designer, [NodeBB needs themes](http://community.nodebb.org/category/10/nodebb-themes)! NodeBB's theming system allows extension of the base templates as well as styling via LESS or CSS. NodeBB's base theme utilizes [Bootstrap 3](http://getbootstrap.com/) but themes can choose to use a different framework altogether. * If you know languages other than English you can help us translate NodeBB. We use [Transifex](https://explore.transifex.com/nodebb/nodebb/) for internationalization. * Please don't forget to **like**, **follow**, and **star our repo**! Join our growing [community](http://community.nodebb.org) to keep up to date with the latest NodeBB development. @@ -39,7 +42,7 @@ Our minimalist "Harmony" theme gets you going right away, no coding experience r NodeBB requires the following software to be installed: -* A version of Node.js at least 16 or greater ([installation/upgrade instructions](https://github.com/nodesource/distributions)) +* A version of Node.js at least 12 or greater ([installation/upgrade instructions](https://github.com/nodesource/distributions)) * MongoDB, version 3.6 or greater **or** Redis, version 2.8.9 or greater * If you are using [clustering](https://docs.nodebb.org/configuring/scaling/) you need Redis installed and configured. * nginx, version 1.3.13 or greater (**only if** intending to use nginx to proxy requests to a NodeBB) @@ -73,10 +76,10 @@ Interested in a sublicense agreement for use of NodeBB in a non-free/restrictive * [Demo](https://try.nodebb.org) * [Developer Community](http://community.nodebb.org) -* [Documentation & Installation Instructions](https://docs.nodebb.org) +* [Documentation & Installation Instructions](http://docs.nodebb.org) * [Help translate NodeBB](https://explore.transifex.com/nodebb/nodebb/) -* [NodeBB Blog](https://nodebb.org/blog) -* [Premium Hosting for NodeBB](https://www.nodebb.org/ "NodeBB") +* [NodeBB Blog](http://blog.nodebb.org) +* [Premium Hosting for NodeBB](http://www.nodebb.org/ "NodeBB") * Unofficial IRC community – channel `#nodebb` on Libera.chat * [Follow us on Twitter](http://www.twitter.com/NodeBB/ "NodeBB Twitter") * [Like us on Facebook](http://www.facebook.com/NodeBB/ "NodeBB Facebook") From c27567289f9937abd4abe6960a9b6e387cf68331 Mon Sep 17 00:00:00 2001 From: Opliko Date: Thu, 16 Mar 2023 17:48:03 +0100 Subject: [PATCH 38/58] ci: publish to ghcr instead of docker hub --- .github/workflows/docker.yml | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/.github/workflows/docker.yml b/.github/workflows/docker.yml index a901a4ee46..5cf00383ef 100644 --- a/.github/workflows/docker.yml +++ b/.github/workflows/docker.yml @@ -13,13 +13,14 @@ on: # A workflow run is made up of one or more jobs that can run sequentially or in parallel permissions: contents: read + packages: write jobs: release: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v3 with: fetch-depth: 0 @@ -32,14 +33,15 @@ jobs: - name: Login to Docker Hub uses: docker/login-action@v2 with: - username: ${{ secrets.DOCKERHUB_USERNAME }} - password: ${{ secrets.DOCKERHUB_TOKEN }} + registry: ghcr.io + username: ${{ github.repository_owner }} + password: ${{ secrets.GITHUB_TOKEN }} - name: Docker meta id: meta uses: docker/metadata-action@v4 with: - images: nodebb/docker + images: ghcr.io/${{ github.repository }} tags: | type=semver,pattern={{version}} type=semver,pattern={{major}}.{{minor}} From 82f0efb14b466998edb52fd8f10582508e958173 Mon Sep 17 00:00:00 2001 From: Misty Release Bot Date: Tue, 11 Apr 2023 01:49:11 +0000 Subject: [PATCH 39/58] chore: incrementing version number - v2.8.11 --- install/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/install/package.json b/install/package.json index bec6b4c399..7eeddcc607 100644 --- a/install/package.json +++ b/install/package.json @@ -2,7 +2,7 @@ "name": "nodebb", "license": "GPL-3.0", "description": "NodeBB Forum", - "version": "2.8.10", + "version": "2.8.11", "homepage": "http://www.nodebb.org", "repository": { "type": "git", From f2ca93f6c6317b3ecc26226eb1c8f7d871d5bb3b Mon Sep 17 00:00:00 2001 From: Misty Release Bot Date: Tue, 11 Apr 2023 01:49:11 +0000 Subject: [PATCH 40/58] chore: update changelog for v2.8.11 --- CHANGELOG.md | 54 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 54 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index e07cc91229..946ba6762f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,57 @@ +#### v2.8.11 (2023-04-11) + +##### Chores + +* incrementing version number - v2.8.10 (5b7c3671) +* update changelog for v2.8.10 (188ec62f) +* incrementing version number - v2.8.9 (57f14e41) +* incrementing version number - v2.8.8 (b331b942) +* incrementing version number - v2.8.7 (3f8248d6) +* incrementing version number - v2.8.6 (af6ce447) +* incrementing version number - v2.8.5 (bff5ce2d) +* incrementing version number - v2.8.4 (a46b2bbc) +* incrementing version number - v2.8.3 (c20b20a7) +* incrementing version number - v2.8.2 (050e43f8) +* incrementing version number - v2.8.1 (727f879e) +* incrementing version number - v2.8.0 (8e77673d) +* incrementing version number - v2.7.0 (96cc0617) +* incrementing version number - v2.6.1 (7e52a7a5) +* incrementing version number - v2.6.0 (e7fcf482) +* incrementing version number - v2.5.8 (dec0e7de) +* incrementing version number - v2.5.7 (5836bf4a) +* incrementing version number - v2.5.6 (c7bd7dbf) +* incrementing version number - v2.5.5 (3509ed94) +* incrementing version number - v2.5.4 (e83260ca) +* incrementing version number - v2.5.3 (7e922936) +* incrementing version number - v2.5.2 (babcd17e) +* incrementing version number - v2.5.1 (ce3aa950) +* incrementing version number - v2.5.0 (01d276cb) +* incrementing version number - v2.4.5 (dd3e1a28) +* incrementing version number - v2.4.4 (d5525c87) +* incrementing version number - v2.4.3 (9c647c6c) +* incrementing version number - v2.4.2 (3aa7b855) +* incrementing version number - v2.4.1 (60cbd148) +* incrementing version number - v2.4.0 (4834cde3) +* incrementing version number - v2.3.1 (d2425942) +* incrementing version number - v2.3.0 (046ea120) + +##### Continuous Integration + +* publish to ghcr instead of docker hub (c2756728) + +##### Documentation Changes + +* update readme with new screenshot and updated copy for Harmony (67055006) + +##### Bug Fixes + +* don't crash on objects with toString property (4d2d7689) +* fire action:user.online on user login (7397873d) + +##### Tests + +* update socket.io test (e0b20658) + #### v2.8.10 (2023-03-27) ##### Chores From 2ec81eff433a5c104b3080362631d5bf3963a39e Mon Sep 17 00:00:00 2001 From: Misty Release Bot Date: Tue, 11 Apr 2023 01:49:11 +0000 Subject: [PATCH 41/58] chore: incrementing version number - v2.8.11 (cherry picked from commit 82f0efb14b466998edb52fd8f10582508e958173) Signed-off-by: Misty Release Bot --- install/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/install/package.json b/install/package.json index bec6b4c399..7eeddcc607 100644 --- a/install/package.json +++ b/install/package.json @@ -2,7 +2,7 @@ "name": "nodebb", "license": "GPL-3.0", "description": "NodeBB Forum", - "version": "2.8.10", + "version": "2.8.11", "homepage": "http://www.nodebb.org", "repository": { "type": "git", From 5343d2a01bfaec0a5cdef0212f6309cddd34d6bf Mon Sep 17 00:00:00 2001 From: Julian Lam Date: Mon, 10 Apr 2023 21:51:12 -0400 Subject: [PATCH 42/58] chore: removing superfluous changelog items --- CHANGELOG.md | 234 --------------------------------------------------- 1 file changed, 234 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 946ba6762f..b99f4b090f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,36 +4,6 @@ * incrementing version number - v2.8.10 (5b7c3671) * update changelog for v2.8.10 (188ec62f) -* incrementing version number - v2.8.9 (57f14e41) -* incrementing version number - v2.8.8 (b331b942) -* incrementing version number - v2.8.7 (3f8248d6) -* incrementing version number - v2.8.6 (af6ce447) -* incrementing version number - v2.8.5 (bff5ce2d) -* incrementing version number - v2.8.4 (a46b2bbc) -* incrementing version number - v2.8.3 (c20b20a7) -* incrementing version number - v2.8.2 (050e43f8) -* incrementing version number - v2.8.1 (727f879e) -* incrementing version number - v2.8.0 (8e77673d) -* incrementing version number - v2.7.0 (96cc0617) -* incrementing version number - v2.6.1 (7e52a7a5) -* incrementing version number - v2.6.0 (e7fcf482) -* incrementing version number - v2.5.8 (dec0e7de) -* incrementing version number - v2.5.7 (5836bf4a) -* incrementing version number - v2.5.6 (c7bd7dbf) -* incrementing version number - v2.5.5 (3509ed94) -* incrementing version number - v2.5.4 (e83260ca) -* incrementing version number - v2.5.3 (7e922936) -* incrementing version number - v2.5.2 (babcd17e) -* incrementing version number - v2.5.1 (ce3aa950) -* incrementing version number - v2.5.0 (01d276cb) -* incrementing version number - v2.4.5 (dd3e1a28) -* incrementing version number - v2.4.4 (d5525c87) -* incrementing version number - v2.4.3 (9c647c6c) -* incrementing version number - v2.4.2 (3aa7b855) -* incrementing version number - v2.4.1 (60cbd148) -* incrementing version number - v2.4.0 (4834cde3) -* incrementing version number - v2.3.1 (d2425942) -* incrementing version number - v2.3.0 (046ea120) ##### Continuous Integration @@ -59,35 +29,6 @@ * up composer-default (e9a8e195) * incrementing version number - v2.8.9 (57f14e41) * update changelog for v2.8.9 (18b2150e) -* incrementing version number - v2.8.8 (b331b942) -* incrementing version number - v2.8.7 (3f8248d6) -* incrementing version number - v2.8.6 (af6ce447) -* incrementing version number - v2.8.5 (bff5ce2d) -* incrementing version number - v2.8.4 (a46b2bbc) -* incrementing version number - v2.8.3 (c20b20a7) -* incrementing version number - v2.8.2 (050e43f8) -* incrementing version number - v2.8.1 (727f879e) -* incrementing version number - v2.8.0 (8e77673d) -* incrementing version number - v2.7.0 (96cc0617) -* incrementing version number - v2.6.1 (7e52a7a5) -* incrementing version number - v2.6.0 (e7fcf482) -* incrementing version number - v2.5.8 (dec0e7de) -* incrementing version number - v2.5.7 (5836bf4a) -* incrementing version number - v2.5.6 (c7bd7dbf) -* incrementing version number - v2.5.5 (3509ed94) -* incrementing version number - v2.5.4 (e83260ca) -* incrementing version number - v2.5.3 (7e922936) -* incrementing version number - v2.5.2 (babcd17e) -* incrementing version number - v2.5.1 (ce3aa950) -* incrementing version number - v2.5.0 (01d276cb) -* incrementing version number - v2.4.5 (dd3e1a28) -* incrementing version number - v2.4.4 (d5525c87) -* incrementing version number - v2.4.3 (9c647c6c) -* incrementing version number - v2.4.2 (3aa7b855) -* incrementing version number - v2.4.1 (60cbd148) -* incrementing version number - v2.4.0 (4834cde3) -* incrementing version number - v2.3.1 (d2425942) -* incrementing version number - v2.3.0 (046ea120) ##### Bug Fixes @@ -107,34 +48,6 @@ * up cron (73a50d17) * incrementing version number - v2.8.8 (b331b942) * update changelog for v2.8.8 (c03d5db7) -* incrementing version number - v2.8.7 (3f8248d6) -* incrementing version number - v2.8.6 (af6ce447) -* incrementing version number - v2.8.5 (bff5ce2d) -* incrementing version number - v2.8.4 (a46b2bbc) -* incrementing version number - v2.8.3 (c20b20a7) -* incrementing version number - v2.8.2 (050e43f8) -* incrementing version number - v2.8.1 (727f879e) -* incrementing version number - v2.8.0 (8e77673d) -* incrementing version number - v2.7.0 (96cc0617) -* incrementing version number - v2.6.1 (7e52a7a5) -* incrementing version number - v2.6.0 (e7fcf482) -* incrementing version number - v2.5.8 (dec0e7de) -* incrementing version number - v2.5.7 (5836bf4a) -* incrementing version number - v2.5.6 (c7bd7dbf) -* incrementing version number - v2.5.5 (3509ed94) -* incrementing version number - v2.5.4 (e83260ca) -* incrementing version number - v2.5.3 (7e922936) -* incrementing version number - v2.5.2 (babcd17e) -* incrementing version number - v2.5.1 (ce3aa950) -* incrementing version number - v2.5.0 (01d276cb) -* incrementing version number - v2.4.5 (dd3e1a28) -* incrementing version number - v2.4.4 (d5525c87) -* incrementing version number - v2.4.3 (9c647c6c) -* incrementing version number - v2.4.2 (3aa7b855) -* incrementing version number - v2.4.1 (60cbd148) -* incrementing version number - v2.4.0 (4834cde3) -* incrementing version number - v2.3.1 (d2425942) -* incrementing version number - v2.3.0 (046ea120) ##### Bug Fixes @@ -157,33 +70,6 @@ * incrementing version number - v2.8.7 (3f8248d6) * update changelog for v2.8.7 (2ca38e7b) -* incrementing version number - v2.8.6 (af6ce447) -* incrementing version number - v2.8.5 (bff5ce2d) -* incrementing version number - v2.8.4 (a46b2bbc) -* incrementing version number - v2.8.3 (c20b20a7) -* incrementing version number - v2.8.2 (050e43f8) -* incrementing version number - v2.8.1 (727f879e) -* incrementing version number - v2.8.0 (8e77673d) -* incrementing version number - v2.7.0 (96cc0617) -* incrementing version number - v2.6.1 (7e52a7a5) -* incrementing version number - v2.6.0 (e7fcf482) -* incrementing version number - v2.5.8 (dec0e7de) -* incrementing version number - v2.5.7 (5836bf4a) -* incrementing version number - v2.5.6 (c7bd7dbf) -* incrementing version number - v2.5.5 (3509ed94) -* incrementing version number - v2.5.4 (e83260ca) -* incrementing version number - v2.5.3 (7e922936) -* incrementing version number - v2.5.2 (babcd17e) -* incrementing version number - v2.5.1 (ce3aa950) -* incrementing version number - v2.5.0 (01d276cb) -* incrementing version number - v2.4.5 (dd3e1a28) -* incrementing version number - v2.4.4 (d5525c87) -* incrementing version number - v2.4.3 (9c647c6c) -* incrementing version number - v2.4.2 (3aa7b855) -* incrementing version number - v2.4.1 (60cbd148) -* incrementing version number - v2.4.0 (4834cde3) -* incrementing version number - v2.3.1 (d2425942) -* incrementing version number - v2.3.0 (046ea120) ##### Bug Fixes @@ -199,32 +85,6 @@ * incrementing version number - v2.8.6 (af6ce447) * update changelog for v2.8.6 (f3306d03) -* incrementing version number - v2.8.5 (bff5ce2d) -* incrementing version number - v2.8.4 (a46b2bbc) -* incrementing version number - v2.8.3 (c20b20a7) -* incrementing version number - v2.8.2 (050e43f8) -* incrementing version number - v2.8.1 (727f879e) -* incrementing version number - v2.8.0 (8e77673d) -* incrementing version number - v2.7.0 (96cc0617) -* incrementing version number - v2.6.1 (7e52a7a5) -* incrementing version number - v2.6.0 (e7fcf482) -* incrementing version number - v2.5.8 (dec0e7de) -* incrementing version number - v2.5.7 (5836bf4a) -* incrementing version number - v2.5.6 (c7bd7dbf) -* incrementing version number - v2.5.5 (3509ed94) -* incrementing version number - v2.5.4 (e83260ca) -* incrementing version number - v2.5.3 (7e922936) -* incrementing version number - v2.5.2 (babcd17e) -* incrementing version number - v2.5.1 (ce3aa950) -* incrementing version number - v2.5.0 (01d276cb) -* incrementing version number - v2.4.5 (dd3e1a28) -* incrementing version number - v2.4.4 (d5525c87) -* incrementing version number - v2.4.3 (9c647c6c) -* incrementing version number - v2.4.2 (3aa7b855) -* incrementing version number - v2.4.1 (60cbd148) -* incrementing version number - v2.4.0 (4834cde3) -* incrementing version number - v2.3.1 (d2425942) -* incrementing version number - v2.3.0 (046ea120) ##### Documentation Changes @@ -253,31 +113,6 @@ * **i18n:** fallback strings for new resources: nodebb.error (8335f90a) * incrementing version number - v2.8.5 (bff5ce2d) * update changelog for v2.8.5 (24e58c28) -* incrementing version number - v2.8.4 (a46b2bbc) -* incrementing version number - v2.8.3 (c20b20a7) -* incrementing version number - v2.8.2 (050e43f8) -* incrementing version number - v2.8.1 (727f879e) -* incrementing version number - v2.8.0 (8e77673d) -* incrementing version number - v2.7.0 (96cc0617) -* incrementing version number - v2.6.1 (7e52a7a5) -* incrementing version number - v2.6.0 (e7fcf482) -* incrementing version number - v2.5.8 (dec0e7de) -* incrementing version number - v2.5.7 (5836bf4a) -* incrementing version number - v2.5.6 (c7bd7dbf) -* incrementing version number - v2.5.5 (3509ed94) -* incrementing version number - v2.5.4 (e83260ca) -* incrementing version number - v2.5.3 (7e922936) -* incrementing version number - v2.5.2 (babcd17e) -* incrementing version number - v2.5.1 (ce3aa950) -* incrementing version number - v2.5.0 (01d276cb) -* incrementing version number - v2.4.5 (dd3e1a28) -* incrementing version number - v2.4.4 (d5525c87) -* incrementing version number - v2.4.3 (9c647c6c) -* incrementing version number - v2.4.2 (3aa7b855) -* incrementing version number - v2.4.1 (60cbd148) -* incrementing version number - v2.4.0 (4834cde3) -* incrementing version number - v2.3.1 (d2425942) -* incrementing version number - v2.3.0 (046ea120) ##### New Features @@ -303,30 +138,6 @@ * incrementing version number - v2.8.4 (a46b2bbc) * update changelog for v2.8.4 (c13f0e21) -* incrementing version number - v2.8.3 (c20b20a7) -* incrementing version number - v2.8.2 (050e43f8) -* incrementing version number - v2.8.1 (727f879e) -* incrementing version number - v2.8.0 (8e77673d) -* incrementing version number - v2.7.0 (96cc0617) -* incrementing version number - v2.6.1 (7e52a7a5) -* incrementing version number - v2.6.0 (e7fcf482) -* incrementing version number - v2.5.8 (dec0e7de) -* incrementing version number - v2.5.7 (5836bf4a) -* incrementing version number - v2.5.6 (c7bd7dbf) -* incrementing version number - v2.5.5 (3509ed94) -* incrementing version number - v2.5.4 (e83260ca) -* incrementing version number - v2.5.3 (7e922936) -* incrementing version number - v2.5.2 (babcd17e) -* incrementing version number - v2.5.1 (ce3aa950) -* incrementing version number - v2.5.0 (01d276cb) -* incrementing version number - v2.4.5 (dd3e1a28) -* incrementing version number - v2.4.4 (d5525c87) -* incrementing version number - v2.4.3 (9c647c6c) -* incrementing version number - v2.4.2 (3aa7b855) -* incrementing version number - v2.4.1 (60cbd148) -* incrementing version number - v2.4.0 (4834cde3) -* incrementing version number - v2.3.1 (d2425942) -* incrementing version number - v2.3.0 (046ea120) ##### Bug Fixes @@ -338,29 +149,6 @@ * incrementing version number - v2.8.3 (c20b20a7) * update changelog for v2.8.3 (eb2841ee) -* incrementing version number - v2.8.2 (050e43f8) -* incrementing version number - v2.8.1 (727f879e) -* incrementing version number - v2.8.0 (8e77673d) -* incrementing version number - v2.7.0 (96cc0617) -* incrementing version number - v2.6.1 (7e52a7a5) -* incrementing version number - v2.6.0 (e7fcf482) -* incrementing version number - v2.5.8 (dec0e7de) -* incrementing version number - v2.5.7 (5836bf4a) -* incrementing version number - v2.5.6 (c7bd7dbf) -* incrementing version number - v2.5.5 (3509ed94) -* incrementing version number - v2.5.4 (e83260ca) -* incrementing version number - v2.5.3 (7e922936) -* incrementing version number - v2.5.2 (babcd17e) -* incrementing version number - v2.5.1 (ce3aa950) -* incrementing version number - v2.5.0 (01d276cb) -* incrementing version number - v2.4.5 (dd3e1a28) -* incrementing version number - v2.4.4 (d5525c87) -* incrementing version number - v2.4.3 (9c647c6c) -* incrementing version number - v2.4.2 (3aa7b855) -* incrementing version number - v2.4.1 (60cbd148) -* incrementing version number - v2.4.0 (4834cde3) -* incrementing version number - v2.3.1 (d2425942) -* incrementing version number - v2.3.0 (046ea120) #### v2.8.3 (2023-01-25) @@ -369,28 +157,6 @@ * remove extraneous lines from changelog (48c9f447) * incrementing version number - v2.8.2 (050e43f8) * update changelog for v2.8.2 (66aa3169) -* incrementing version number - v2.8.1 (727f879e) -* incrementing version number - v2.8.0 (8e77673d) -* incrementing version number - v2.7.0 (96cc0617) -* incrementing version number - v2.6.1 (7e52a7a5) -* incrementing version number - v2.6.0 (e7fcf482) -* incrementing version number - v2.5.8 (dec0e7de) -* incrementing version number - v2.5.7 (5836bf4a) -* incrementing version number - v2.5.6 (c7bd7dbf) -* incrementing version number - v2.5.5 (3509ed94) -* incrementing version number - v2.5.4 (e83260ca) -* incrementing version number - v2.5.3 (7e922936) -* incrementing version number - v2.5.2 (babcd17e) -* incrementing version number - v2.5.1 (ce3aa950) -* incrementing version number - v2.5.0 (01d276cb) -* incrementing version number - v2.4.5 (dd3e1a28) -* incrementing version number - v2.4.4 (d5525c87) -* incrementing version number - v2.4.3 (9c647c6c) -* incrementing version number - v2.4.2 (3aa7b855) -* incrementing version number - v2.4.1 (60cbd148) -* incrementing version number - v2.4.0 (4834cde3) -* incrementing version number - v2.3.1 (d2425942) -* incrementing version number - v2.3.0 (046ea120) ##### Bug Fixes From ae5afdbc66825af3c164385af35a09b9f749aae5 Mon Sep 17 00:00:00 2001 From: Brutus5000 Date: Tue, 11 Apr 2023 18:49:17 +0200 Subject: [PATCH 43/58] feat: name theme on error:theme-not-set-in-configuration --- src/meta/themes.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/meta/themes.js b/src/meta/themes.js index d4d3f58f45..0af75640c9 100644 --- a/src/meta/themes.js +++ b/src/meta/themes.js @@ -108,7 +108,7 @@ Themes.set = async (data) => { await db.sortedSetAdd('plugins:active', numPlugins, data.id); } else if (!activePluginsConfig.includes(data.id)) { // This prevents changing theme when configuration doesn't include it, but allows it otherwise - winston.error('When defining active plugins in configuration, changing themes requires adding the new theme to the list of active plugins before updating it in the ACP'); + winston.error(`When defining active plugins in configuration, changing themes requires adding the theme '${data.id}' to the list of active plugins before updating it in the ACP`); throw new Error('[[error:theme-not-set-in-configuration]]'); } From c931183287556b13ac2d60f0e5bc2e4a0ff55d7e Mon Sep 17 00:00:00 2001 From: Veronikya <93700665+Veronikya@users.noreply.github.com> Date: Sun, 16 Apr 2023 05:56:36 +0800 Subject: [PATCH 44/58] =?UTF-8?q?fix:=20NodeBB#11482=20thumbs=20Post=20Can?= =?UTF-8?q?=20not=20upload=20a=20thumbnail,=20only=20multip=E2=80=A6=20(#1?= =?UTF-8?q?1483)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * fix: NodeBB#11482 thumbs Post Can not upload a thumbnail, only multiple uploads * Modify upload thumbnail test * Modify upload thumbnail test +, * Get rid of v2 uploads test * edit times * Modify amount of files associated post test * edit post file amount --- src/middleware/index.js | 13 +++++++++++-- test/helpers/index.js | 1 - test/uploads.js | 8 ++++---- 3 files changed, 15 insertions(+), 7 deletions(-) diff --git a/src/middleware/index.js b/src/middleware/index.js index 96bd3da398..e4c8cc98ec 100644 --- a/src/middleware/index.js +++ b/src/middleware/index.js @@ -102,11 +102,20 @@ middleware.pluginHooks = helpers.try(async (req, res, next) => { }); middleware.validateFiles = function validateFiles(req, res, next) { - if (!Array.isArray(req.files.files) || !req.files.files.length) { + if (!req.files.files) { return next(new Error(['[[error:invalid-files]]'])); } - next(); + if (Array.isArray(req.files.files) && req.files.files.length) { + return next(); + } + + if (typeof req.files.files === 'object') { + req.files.files = [req.files.files]; + return next(); + } + + return next(new Error(['[[error:invalid-files]]'])); }; middleware.prepareAPI = function prepareAPI(req, res, next) { diff --git a/test/helpers/index.js b/test/helpers/index.js index 6ca11e9252..dd52e35f80 100644 --- a/test/helpers/index.js +++ b/test/helpers/index.js @@ -121,7 +121,6 @@ helpers.uploadFile = function (uploadEndPoint, filePath, body, jar, csrf_token, let formData = { files: [ fs.createReadStream(filePath), - fs.createReadStream(filePath), // see https://github.com/request/request/issues/2445 ], }; formData = utils.merge(formData, body); diff --git a/test/uploads.js b/test/uploads.js index 5be0818b5e..11aea1bedd 100644 --- a/test/uploads.js +++ b/test/uploads.js @@ -88,7 +88,7 @@ describe('Upload Controllers', () => { meta.config.allowedFileExtensions = 'png,jpg,bmp,html'; require('../src/middleware/uploads').clearCache(); // why / 2? see: helpers.uploadFile for a weird quirk where we actually upload 2 files per upload in our tests. - const times = (meta.config.uploadRateLimitThreshold / 2) + 1; + const times = (meta.config.uploadRateLimitThreshold) + 1; async.timesSeries(times, (i, next) => { helpers.uploadFile(`${nconf.get('url')}/api/post/upload`, path.join(__dirname, '../test/files/503.html'), {}, jar, csrf_token, (err, res, body) => { if (i + 1 >= times) { @@ -522,7 +522,7 @@ describe('Upload Controllers', () => { it('should return files with no post associated with them', async () => { const orphans = await posts.uploads.getOrphans(); - assert.strictEqual(orphans.length, 2); + assert.strictEqual(orphans.length, 1); orphans.forEach((relPath) => { assert(relPath.startsWith('files/')); assert(relPath.endsWith('test.png')); @@ -553,7 +553,7 @@ describe('Upload Controllers', () => { await posts.uploads.cleanOrphans(); const orphans = await posts.uploads.getOrphans(); - assert.strictEqual(orphans.length, 2); + assert.strictEqual(orphans.length, 1); }); it('should not touch orphans if they are newer than the configured expiry', async () => { @@ -561,7 +561,7 @@ describe('Upload Controllers', () => { await posts.uploads.cleanOrphans(); const orphans = await posts.uploads.getOrphans(); - assert.strictEqual(orphans.length, 2); + assert.strictEqual(orphans.length, 1); }); it('should delete orphans older than the configured number of days', async () => { From 21fb8590e5ff0f11fa91381b90b278f952071536 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bar=C4=B1=C5=9F=20Soner=20U=C5=9Fakl=C4=B1?= Date: Sun, 23 Apr 2023 18:59:18 -0400 Subject: [PATCH 45/58] test: remove old comment --- test/uploads.js | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/test/uploads.js b/test/uploads.js index 11aea1bedd..1eecfe9f1f 100644 --- a/test/uploads.js +++ b/test/uploads.js @@ -87,8 +87,7 @@ describe('Upload Controllers', () => { const oldValue = meta.config.allowedFileExtensions; meta.config.allowedFileExtensions = 'png,jpg,bmp,html'; require('../src/middleware/uploads').clearCache(); - // why / 2? see: helpers.uploadFile for a weird quirk where we actually upload 2 files per upload in our tests. - const times = (meta.config.uploadRateLimitThreshold) + 1; + const times = meta.config.uploadRateLimitThreshold + 1; async.timesSeries(times, (i, next) => { helpers.uploadFile(`${nconf.get('url')}/api/post/upload`, path.join(__dirname, '../test/files/503.html'), {}, jar, csrf_token, (err, res, body) => { if (i + 1 >= times) { From de2669a2c64c99838e33f423d9a5ee9eaba8e9f5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bar=C4=B1=C5=9F=20Soner=20U=C5=9Fakl=C4=B1?= Date: Mon, 24 Apr 2023 15:39:00 -0400 Subject: [PATCH 46/58] fix: only remove deleted tag, closes #11515 --- src/topics/tags.js | 11 ++++++++--- test/topics.js | 8 ++++++++ 2 files changed, 16 insertions(+), 3 deletions(-) diff --git a/src/topics/tags.js b/src/topics/tags.js index 314b5cfd84..3b17027672 100644 --- a/src/topics/tags.js +++ b/src/topics/tags.js @@ -232,10 +232,15 @@ module.exports = function (Topics) { if (!tids.length) { return; } + let topicsTags = await Topics.getTopicsTags(tids); + topicsTags = topicsTags.map( + topicTags => topicTags.filter(topicTag => topicTag && topicTag !== tag) + ); - await db.deleteObjectFields( - tids.map(tid => `topic:${tid}`), - ['tags'], + await db.setObjectBulk( + tids.map((tid, index) => ([ + `topic:${tid}`, { tags: topicsTags[index].join(',') }, + ])) ); }); } diff --git a/test/topics.js b/test/topics.js index 44587639bc..f27ed80ad4 100644 --- a/test/topics.js +++ b/test/topics.js @@ -1932,6 +1932,14 @@ describe('Topic\'s', () => { }); }); + it('should only delete one tag from topic', async () => { + const result1 = await topics.post({ uid: adminUid, tags: ['deleteme1', 'deleteme2', 'deleteme3'], title: 'topic tagged with plugins', content: 'topic 1 content', cid: topic.categoryId }); + await topics.deleteTag('deleteme2'); + const topicData = await topics.getTopicData(result1.topicData.tid); + const tags = topicData.tags.map(t => t.value); + assert.deepStrictEqual(tags, ['deleteme1', 'deleteme3']); + }); + it('should delete tag', (done) => { topics.deleteTag('javascript', (err) => { assert.ifError(err); From 30b6bcfca117e667c262c0462fc5f0100e6a436c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bar=C4=B1=C5=9F=20Soner=20U=C5=9Fakl=C4=B1?= Date: Wed, 26 Apr 2023 10:13:27 -0400 Subject: [PATCH 47/58] fix: #11519, clear parent cache all the way to root --- src/categories/create.js | 24 +++++++++++++++++++----- 1 file changed, 19 insertions(+), 5 deletions(-) diff --git a/src/categories/create.js b/src/categories/create.js index ce3f01f22e..c2f7fb7968 100644 --- a/src/categories/create.js +++ b/src/categories/create.js @@ -95,11 +95,9 @@ module.exports = function (Categories) { await privileges.categories.give(result.modPrivileges, category.cid, ['administrators', 'Global Moderators']); await privileges.categories.give(result.guestPrivileges, category.cid, ['guests', 'spiders']); - cache.del([ - 'categories:cid', - `cid:${parentCid}:children`, - `cid:${parentCid}:children:all`, - ]); + cache.del('categories:cid'); + await clearParentCategoryCache(parentCid); + if (data.cloneFromCid && parseInt(data.cloneFromCid, 10)) { category = await Categories.copySettingsFrom(data.cloneFromCid, category.cid, !data.parentCid); } @@ -112,6 +110,22 @@ module.exports = function (Categories) { return category; }; + async function clearParentCategoryCache(parentCid) { + while (parseInt(parentCid, 10) >= 0) { + cache.del([ + `cid:${parentCid}:children`, + `cid:${parentCid}:children:all`, + ]); + + if (parseInt(parentCid, 10) === 0) { + return; + } + // clear all the way to root + // eslint-disable-next-line no-await-in-loop + parentCid = await Categories.getCategoryField(parentCid, 'parentCid'); + } + } + async function duplicateCategoriesChildren(parentCid, cid, uid) { let children = await Categories.getChildren([cid], uid); if (!children.length) { From 42b9fbc91c2240c4ab10612c10693d6edb86abe8 Mon Sep 17 00:00:00 2001 From: Misty Release Bot Date: Wed, 26 Apr 2023 14:34:44 +0000 Subject: [PATCH 48/58] chore: incrementing version number - v2.8.12 (cherry picked from commit 3e494a1ea0e6aa038ccfe29b5751e31947f08d94) Signed-off-by: Misty Release Bot --- install/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/install/package.json b/install/package.json index 7eeddcc607..e52e17df3f 100644 --- a/install/package.json +++ b/install/package.json @@ -2,7 +2,7 @@ "name": "nodebb", "license": "GPL-3.0", "description": "NodeBB Forum", - "version": "2.8.11", + "version": "2.8.12", "homepage": "http://www.nodebb.org", "repository": { "type": "git", From 2bd6eea2fafcd157cca7aa4c9db64ec6640ffe3b Mon Sep 17 00:00:00 2001 From: Julian Lam Date: Tue, 2 May 2023 11:47:54 -0400 Subject: [PATCH 49/58] fix: #11554, email requirement bypass by sending in whitespace --- src/user/interstitials.js | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/user/interstitials.js b/src/user/interstitials.js index aa70e8098f..bebf12b12b 100644 --- a/src/user/interstitials.js +++ b/src/user/interstitials.js @@ -40,6 +40,10 @@ Interstitials.email = async (data) => { issuePasswordChallenge: !!data.userData.uid && hasPassword, }, callback: async (userData, formData) => { + if (formData.email) { + formData.email = String(formData.email).trim(); + } + // Validate and send email confirmation if (userData.uid) { const isSelf = parseInt(userData.uid, 10) === parseInt(data.req.uid, 10); From a5d92da9ddac5607ab7f737520a66eaed6d3ddee Mon Sep 17 00:00:00 2001 From: psibean Date: Sun, 29 Jan 2023 20:31:21 +1030 Subject: [PATCH 50/58] Replace csurf with csrf-sync --- install/package.json | 2 +- src/controllers/api.js | 3 ++- src/middleware/csrf.js | 15 +++++++++++++++ src/middleware/index.js | 4 ++-- src/routes/authentication.js | 3 ++- 5 files changed, 22 insertions(+), 5 deletions(-) create mode 100644 src/middleware/csrf.js diff --git a/install/package.json b/install/package.json index e52e17df3f..8c1ebe2f38 100644 --- a/install/package.json +++ b/install/package.json @@ -55,7 +55,7 @@ "cookie-parser": "1.4.6", "cron": "2.3.0", "cropperjs": "1.5.13", - "csurf": "1.11.0", + "csrf-sync": "4.0.0", "daemon": "1.1.0", "diff": "5.1.0", "esbuild": "0.16.10", diff --git a/src/controllers/api.js b/src/controllers/api.js index 7474f6e7a0..5db3b2d9b0 100644 --- a/src/controllers/api.js +++ b/src/controllers/api.js @@ -9,6 +9,7 @@ const categories = require('../categories'); const plugins = require('../plugins'); const translator = require('../translator'); const languages = require('../languages'); +const { generateToken } = require('../middleware/csrf'); const apiController = module.exports; @@ -64,7 +65,7 @@ apiController.loadConfig = async function (req) { 'cache-buster': meta.config['cache-buster'] || '', topicPostSort: meta.config.topicPostSort || 'oldest_to_newest', categoryTopicSort: meta.config.categoryTopicSort || 'newest_to_oldest', - csrf_token: req.uid >= 0 && req.csrfToken && req.csrfToken(), + csrf_token: req.uid >= 0 ? generateToken(req) : undefined, searchEnabled: plugins.hooks.hasListeners('filter:search.query'), searchDefaultInQuick: meta.config.searchDefaultInQuick || 'titles', bootswatchSkin: meta.config.bootswatchSkin || '', diff --git a/src/middleware/csrf.js b/src/middleware/csrf.js new file mode 100644 index 0000000000..4ad824bca1 --- /dev/null +++ b/src/middleware/csrf.js @@ -0,0 +1,15 @@ +'use strict'; + +const { csrfSync } = require('csrf-sync'); + +const { + generateToken, + csrfSynchronisedProtection, +} = csrfSync({ + size: 64 +}); + +module.exports = { + generateToken, + csrfSynchronisedProtection, +}; diff --git a/src/middleware/index.js b/src/middleware/index.js index e4c8cc98ec..f81e96983e 100644 --- a/src/middleware/index.js +++ b/src/middleware/index.js @@ -2,7 +2,7 @@ const async = require('async'); const path = require('path'); -const csrf = require('csurf'); +const { csrfSynchronisedProtection } = require('./csrf'); const validator = require('validator'); const nconf = require('nconf'); const toobusy = require('toobusy-js'); @@ -34,7 +34,7 @@ middleware.regexes = { timestampedUpload: /^\d+-.+$/, }; -const csrfMiddleware = csrf(); +const csrfMiddleware = csrfSynchronisedProtection; middleware.applyCSRF = function (req, res, next) { if (req.uid >= 0) { diff --git a/src/routes/authentication.js b/src/routes/authentication.js index 934fdec80e..62c1e15363 100644 --- a/src/routes/authentication.js +++ b/src/routes/authentication.js @@ -10,6 +10,7 @@ const meta = require('../meta'); const controllers = require('../controllers'); const helpers = require('../controllers/helpers'); const plugins = require('../plugins'); +const { generateToken } = require('../middleware/csrf'); let loginStrategies = []; @@ -108,7 +109,7 @@ Auth.reloadRoutes = async function (params) { }; if (strategy.checkState !== false) { - req.session.ssoState = req.csrfToken && req.csrfToken(); + req.session.ssoState = generateToken(req, true); opts.state = req.session.ssoState; } From 62e162cf1e735e42462be1db9b4954b5a69accdf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bar=C4=B1=C5=9F=20Soner=20U=C5=9Fakl=C4=B1?= Date: Mon, 15 May 2023 11:55:18 -0400 Subject: [PATCH 51/58] fix: backport ws token fix --- public/src/sockets.js | 3 +++ src/middleware/csrf.js | 15 +++++++++++++-- src/middleware/index.js | 2 +- src/socket.io/index.js | 38 +++++++++++++++++++++++++------------- test/helpers/index.js | 5 ++++- test/socket.io.js | 2 +- 6 files changed, 47 insertions(+), 18 deletions(-) diff --git a/public/src/sockets.js b/public/src/sockets.js index 2927c21619..d12f32c332 100644 --- a/public/src/sockets.js +++ b/public/src/sockets.js @@ -15,6 +15,9 @@ app = window.app || {}; reconnectionDelay: config.reconnectionDelay, transports: config.socketioTransports, path: config.relative_path + '/socket.io', + query: { + _csrf: config.csrf_token, + }, }; window.socket = io(config.websocketAddress, ioParams); diff --git a/src/middleware/csrf.js b/src/middleware/csrf.js index 4ad824bca1..1cfbb8a3e1 100644 --- a/src/middleware/csrf.js +++ b/src/middleware/csrf.js @@ -5,11 +5,22 @@ const { csrfSync } = require('csrf-sync'); const { generateToken, csrfSynchronisedProtection, + isRequestValid, } = csrfSync({ - size: 64 + getTokenFromRequest: (req) => { + if (req.headers['x-csrf-token']) { + return req.headers['x-csrf-token']; + } else if (req.body && req.body.csrf_token) { + return req.body.csrf_token; + } else if (req.query) { + return req.query._csrf; + } + }, + size: 64, }); module.exports = { generateToken, csrfSynchronisedProtection, -}; + isRequestValid, +}; \ No newline at end of file diff --git a/src/middleware/index.js b/src/middleware/index.js index f81e96983e..d98064a1d5 100644 --- a/src/middleware/index.js +++ b/src/middleware/index.js @@ -2,11 +2,11 @@ const async = require('async'); const path = require('path'); -const { csrfSynchronisedProtection } = require('./csrf'); const validator = require('validator'); const nconf = require('nconf'); const toobusy = require('toobusy-js'); const util = require('util'); +const { csrfSynchronisedProtection } = require('./csrf'); const plugins = require('../plugins'); const meta = require('../meta'); diff --git a/src/socket.io/index.js b/src/socket.io/index.js index 963267ed9a..d457afefbc 100644 --- a/src/socket.io/index.js +++ b/src/socket.io/index.js @@ -34,13 +34,25 @@ Sockets.init = async function (server) { } } - io.use(authorize); - io.on('connection', onConnection); const opts = { transports: nconf.get('socket.io:transports') || ['polling', 'websocket'], cookie: false, + allowRequest: (req, callback) => { + authorize(req, (err) => { + if (err) { + return callback(err); + } + const csrf = require('../middleware/csrf'); + const isValid = csrf.isRequestValid({ + session: req.session || {}, + query: req._query, + headers: req.headers, + }); + callback(null, isValid); + }); + }, }; /* * Restrict socket.io listener to cookie domain. If none is set, infer based on url. @@ -62,7 +74,11 @@ Sockets.init = async function (server) { }; function onConnection(socket) { - socket.ip = (socket.request.headers['x-forwarded-for'] || socket.request.connection.remoteAddress || '').split(',')[0]; + socket.uid = socket.request.uid; + socket.ip = ( + socket.request.headers['x-forwarded-for'] || + socket.request.connection.remoteAddress || '' + ).split(',')[0]; socket.request.ip = socket.ip; logger.io_one(socket, socket.uid); @@ -231,9 +247,7 @@ async function validateSession(socket, errorMsg) { const cookieParserAsync = util.promisify((req, callback) => cookieParser(req, {}, err => callback(err))); -async function authorize(socket, callback) { - const { request } = socket; - +async function authorize(request, callback) { if (!request) { return callback(new Error('[[error:not-authorized]]')); } @@ -246,15 +260,13 @@ async function authorize(socket, callback) { }); const sessionData = await getSessionAsync(sessionId); - + request.session = sessionData; + let uid = 0; if (sessionData && sessionData.passport && sessionData.passport.user) { - request.session = sessionData; - socket.uid = parseInt(sessionData.passport.user, 10); - } else { - socket.uid = 0; + uid = parseInt(sessionData.passport.user, 10); } - request.uid = socket.uid; - callback(); + request.uid = uid; + callback(null, uid); } Sockets.in = function (room) { diff --git a/test/helpers/index.js b/test/helpers/index.js index dd52e35f80..4b536db004 100644 --- a/test/helpers/index.js +++ b/test/helpers/index.js @@ -95,7 +95,7 @@ helpers.logoutUser = function (jar, callback) { }); }; -helpers.connectSocketIO = function (res, callback) { +helpers.connectSocketIO = function (res, csrf_token, callback) { const io = require('socket.io-client'); let cookies = res.headers['set-cookie']; cookies = cookies.filter(c => /express.sid=[^;]+;/.test(c)); @@ -106,6 +106,9 @@ helpers.connectSocketIO = function (res, callback) { Origin: nconf.get('url'), Cookie: cookie, }, + query: { + _csrf: csrf_token, + }, }); socket.on('connect', () => { diff --git a/test/socket.io.js b/test/socket.io.js index 3628e3b0d0..33377e8bb3 100644 --- a/test/socket.io.js +++ b/test/socket.io.js @@ -73,7 +73,7 @@ describe('socket.io', () => { }, (err, res) => { assert.ifError(err); - helpers.connectSocketIO(res, (err, _io) => { + helpers.connectSocketIO(res, body.csrf_token, (err, _io) => { io = _io; assert.ifError(err); From 8bc8cf1ba0fff8c59d19015921d5e0296e3948e7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bar=C4=B1=C5=9F=20Soner=20U=C5=9Fakl=C4=B1?= Date: Mon, 15 May 2023 12:15:48 -0400 Subject: [PATCH 52/58] lint --- src/middleware/csrf.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/middleware/csrf.js b/src/middleware/csrf.js index 1cfbb8a3e1..be5b0761fe 100644 --- a/src/middleware/csrf.js +++ b/src/middleware/csrf.js @@ -23,4 +23,4 @@ module.exports = { generateToken, csrfSynchronisedProtection, isRequestValid, -}; \ No newline at end of file +}; From dd5ed9e507d41673fa184c57845d1a16e0d70bbb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bar=C4=B1=C5=9F=20Soner=20U=C5=9Fakl=C4=B1?= Date: Sat, 20 May 2023 21:05:02 -0400 Subject: [PATCH 53/58] fix: closes #11617, upgrade csrf-sync dep adds back req.csrfToken() --- install/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/install/package.json b/install/package.json index 8c1ebe2f38..e0369d208b 100644 --- a/install/package.json +++ b/install/package.json @@ -55,7 +55,7 @@ "cookie-parser": "1.4.6", "cron": "2.3.0", "cropperjs": "1.5.13", - "csrf-sync": "4.0.0", + "csrf-sync": "4.0.1", "daemon": "1.1.0", "diff": "5.1.0", "esbuild": "0.16.10", From 9ec7ab4afc6f860e818f9e5ab8eb8586b2358544 Mon Sep 17 00:00:00 2001 From: Julian Lam Date: Tue, 13 Jun 2023 14:53:16 -0400 Subject: [PATCH 54/58] fix: improper neutralization of user input in image wrapping code (Backport of: 1d1639d46f15c5a9c84d3ccfc7a334244c28039a) --- public/src/client/topic/images.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/public/src/client/topic/images.js b/public/src/client/topic/images.js index a04b22a9e9..7506790fff 100644 --- a/public/src/client/topic/images.js +++ b/public/src/client/topic/images.js @@ -24,7 +24,7 @@ define('forum/topic/images', [], function () { if (!$this.parent().is('a')) { $this.wrap(''); } }); From 2514aace4ea61777475aff527df18fb43f52c312 Mon Sep 17 00:00:00 2001 From: Julian Lam Date: Tue, 13 Jun 2023 14:54:56 -0400 Subject: [PATCH 55/58] chore: bump nodebb version --- install/package.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/install/package.json b/install/package.json index e0369d208b..5400421ee2 100644 --- a/install/package.json +++ b/install/package.json @@ -2,7 +2,7 @@ "name": "nodebb", "license": "GPL-3.0", "description": "NodeBB Forum", - "version": "2.8.12", + "version": "2.8.15", "homepage": "http://www.nodebb.org", "repository": { "type": "git", @@ -192,4 +192,4 @@ "url": "https://github.com/barisusakli" } ] -} \ No newline at end of file +} From 638e098f3015708c049ce48ac4d0a1ff71d17cb0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bar=C4=B1=C5=9F=20Soner=20U=C5=9Fakl=C4=B1?= Date: Mon, 26 Jun 2023 09:03:29 -0400 Subject: [PATCH 56/58] fix: #11756, fix unique visitor stats in acp table --- src/analytics.js | 15 +++++++++------ src/controllers/admin/dashboard.js | 3 ++- 2 files changed, 11 insertions(+), 7 deletions(-) diff --git a/src/analytics.js b/src/analytics.js index 03be429637..73a2f164b8 100644 --- a/src/analytics.js +++ b/src/analytics.js @@ -237,23 +237,26 @@ Analytics.getDailyStatsForSet = async function (set, day, numDays) { set = `analytics:${set}`; } - const daysArr = []; day = new Date(day); // set the date to tomorrow, because getHourlyStatsForSet steps *backwards* 24 hours to sum up the values day.setDate(day.getDate() + 1); day.setHours(0, 0, 0, 0); - while (numDays > 0) { - /* eslint-disable no-await-in-loop */ + async function getHourlyStats(hour) { const dayData = await Analytics.getHourlyStatsForSet( set, - day.getTime() - (1000 * 60 * 60 * 24 * (numDays - 1)), + hour, 24 ); - daysArr.push(dayData.reduce((cur, next) => cur + next)); + return dayData.reduce((cur, next) => cur + next); + } + const hours = []; + while (numDays > 0) { + hours.push(day.getTime() - (1000 * 60 * 60 * 24 * (numDays - 1))); numDays -= 1; } - return daysArr; + + return await Promise.all(hours.map(getHourlyStats)); }; Analytics.getUnwrittenPageviews = function () { diff --git a/src/controllers/admin/dashboard.js b/src/controllers/admin/dashboard.js index ac9f4fc130..193476f1af 100644 --- a/src/controllers/admin/dashboard.js +++ b/src/controllers/admin/dashboard.js @@ -128,12 +128,13 @@ async function getStats() { } let results = await Promise.all([ - getStatsForSet('ip:recent', 'uniqueIPCount'), + getStatsFromAnalytics('uniquevisitors', 'uniqueIPCount'), getStatsFromAnalytics('logins', 'loginCount'), getStatsForSet('users:joindate', 'userCount'), getStatsForSet('posts:pid', 'postCount'), getStatsForSet('topics:tid', 'topicCount'), ]); + results[0].name = '[[admin/dashboard:unique-visitors]]'; results[1].name = '[[admin/dashboard:logins]]'; From fb43f9ae100c0f70ced79c8e8764d8cbe10929c5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bar=C4=B1=C5=9F=20Soner=20U=C5=9Fakl=C4=B1?= Date: Tue, 22 Aug 2023 12:07:02 -0400 Subject: [PATCH 57/58] chore: update composer-default --- install/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/install/package.json b/install/package.json index 5400421ee2..614365bd10 100644 --- a/install/package.json +++ b/install/package.json @@ -90,7 +90,7 @@ "@nodebb/bootswatch": "3.4.2", "nconf": "0.12.0", "nodebb-plugin-2factor": "5.1.2", - "nodebb-plugin-composer-default": "9.2.5", + "nodebb-plugin-composer-default": "9.2.6", "nodebb-plugin-dbsearch": "5.1.5", "nodebb-plugin-emoji": "4.0.6", "nodebb-plugin-emoji-android": "3.0.0", From dc14d6a8d17e6b15dd8b8958b7bd4d967cf4c8da Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bar=C4=B1=C5=9F=20Soner=20U=C5=9Fakl=C4=B1?= Date: Tue, 22 Aug 2023 12:49:06 -0400 Subject: [PATCH 58/58] chore: up version --- install/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/install/package.json b/install/package.json index 614365bd10..0710065462 100644 --- a/install/package.json +++ b/install/package.json @@ -2,7 +2,7 @@ "name": "nodebb", "license": "GPL-3.0", "description": "NodeBB Forum", - "version": "2.8.15", + "version": "2.8.17", "homepage": "http://www.nodebb.org", "repository": { "type": "git",