返回提交历史
Modified
.github/workflows/build.yml
+2
-2
Modified
package-lock.json
+43
-121
Modified
package.json
+1
-1
Modified
src/controllers/api/addToAllianceController.ts
+2
-2
Modified
src/controllers/api/confirmAllianceInvitationController.ts
+1
-1
Modified
src/controllers/api/declineAllianceInviteController.ts
+1
-1
Modified
src/controllers/api/declineGuildInviteController.ts
+2
-2
Modified
src/controllers/api/divvyAllianceVaultController.ts
+2
-2
Modified
src/controllers/api/getDailyDealStockLevelsController.ts
+1
-1
Modified
src/controllers/api/getGuildContributionsController.ts
+1
-1
Modified
src/controllers/api/removeFromAllianceController.ts
+1
-1
Modified
src/controllers/api/removeIgnoredUserController.ts
+2
-2
Modified
src/controllers/api/setAllianceGuildPermissionsController.ts
+1
-1
Modified
src/controllers/dynamic/getGuildAdsController.ts
+1
-1
Modified
src/models/statsModel.ts
+2
-6
Modified
src/services/inboxService.ts
+2
-2
Modified
src/types/worldStateTypes.ts
+2
-0
XFEstudio/XFESpaceNinjaServer
chore: update mongoose to v9 (#3765)
Reviewed-on: https://onlyg.it/OpenWF/SpaceNinjaServer/pulls/3765 Co-authored-by: Sainan <63328889+Sainan@users.noreply.github.com> Co-committed-by: Sainan <63328889+Sainan@users.noreply.github.com>
a4565004
代码差异
17 个文件
+67
-147
@@ -9,10 +9,10 @@ jobs:
9
9
steps:
10
10
- name: Checkout
11
11
uses: actions/checkout@v4.1.2
12
- name: Setup Node.js environment
12
- name: Setup lowest supported Node.js environment
13
13
uses: actions/setup-node@v4.0.2
14
14
with:
15
node-version: ">=20.18.1"
15
node-version: "20.19.0"
16
16
- run: npm ci --no-audit
17
17
- run: cp config-vanilla.json config.json
18
18
- run: npm run verify
@@ -14,7 +14,7 @@
14
14
"google-auth-library": "^10.5.0",
15
15
"json-with-bigint": "^3.4.4",
16
16
"mongodb-memory-server-core": "^11.0.1",
17
"mongoose": "^8.11.0",
17
"mongoose": "^9.4.1",
18
18
"morgan": "^1.10.0",
19
19
"ncp": "^2.0.0",
20
20
"undici": "^7.10.0",
@@ -550,9 +550,9 @@
550
550
}
551
551
},
552
552
"node_modules/@types/whatwg-url": {
553
"version": "11.0.5",
554
"resolved": "https://registry.npmjs.org/@types/whatwg-url/-/whatwg-url-11.0.5.tgz",
555
"integrity": "sha512-coYR071JRaHa+xoEvvYqvnIHaVqaYrLPbsufM9BF63HkwI5Lgmy2QR8Q5K/lYDYo5AK82wOvSOS0UsLTpTG7uQ==",
553
"version": "13.0.0",
554
"resolved": "https://registry.npmjs.org/@types/whatwg-url/-/whatwg-url-13.0.0.tgz",
555
"integrity": "sha512-N8WXpbE6Wgri7KUSvrmQcqrMllKZ9uxkYWMt+mCSGwNc0Hsw9VQTW7ApqI4XNrx6/SaM2QQJCzMPDEXE058s+Q==",
556
556
"license": "MIT",
557
557
"dependencies": {
558
558
"@types/webidl-conversions": "*"
@@ -1205,12 +1205,12 @@
1205
1205
}
1206
1206
},
1207
1207
"node_modules/bson": {
1208
"version": "6.10.4",
1209
"resolved": "https://registry.npmjs.org/bson/-/bson-6.10.4.tgz",
1210
"integrity": "sha512-WIsKqkSC0ABoBJuT1LEX+2HEvNmNKKgnTAyd0fL8qzK4SH2i9NXg+t08YtdZp/V9IZ33cxe3iV4yM0qg8lMQng==",
1208
"version": "7.2.0",
1209
"resolved": "https://registry.npmjs.org/bson/-/bson-7.2.0.tgz",
1210
"integrity": "sha512-YCEo7KjMlbNlyHhz7zAZNDpIpQbd+wOEHJYezv0nMYTn4x31eIUM2yomNNubclAt63dObUzKHWsBLJ9QcZNSnQ==",
1211
1211
"license": "Apache-2.0",
1212
1212
"engines": {
1213
"node": ">=16.20.1"
1213
"node": ">=20.19.0"
1214
1214
}
1215
1215
},
1216
1216
"node_modules/buffer-crc32": {
@@ -2622,12 +2622,12 @@
2622
2622
}
2623
2623
},
2624
2624
"node_modules/kareem": {
2625
"version": "2.6.3",
2626
"resolved": "https://registry.npmjs.org/kareem/-/kareem-2.6.3.tgz",
2627
"integrity": "sha512-C3iHfuGUXK2u8/ipq9LfjFfXFxAZMQJJq7vLS45r3D9Y2xQ/m4S8zaR4zMLFWh9AsNPXmcFfUDhTEO8UIC/V6Q==",
2625
"version": "3.2.0",
2626
"resolved": "https://registry.npmjs.org/kareem/-/kareem-3.2.0.tgz",
2627
"integrity": "sha512-VS8MWZz/cT+SqBCpVfNN4zoVz5VskR3N4+sTmUXme55e9avQHntpwpNq0yjnosISXqwJ3AQVjlbI4Dyzv//JtA==",
2628
2628
"license": "Apache-2.0",
2629
2629
"engines": {
2630
"node": ">=12.0.0"
2630
"node": ">=18.0.0"
2631
2631
}
2632
2632
},
2633
2633
"node_modules/keyv": {
@@ -2825,26 +2825,26 @@
2825
2825
}
2826
2826
},
2827
2827
"node_modules/mongodb": {
2828
"version": "6.20.0",
2829
"resolved": "https://registry.npmjs.org/mongodb/-/mongodb-6.20.0.tgz",
2830
"integrity": "sha512-Tl6MEIU3K4Rq3TSHd+sZQqRBoGlFsOgNrH5ltAcFBV62Re3Fd+FcaVf8uSEQFOJ51SDowDVttBTONMfoYWrWlQ==",
2828
"version": "7.1.1",
2829
"resolved": "https://registry.npmjs.org/mongodb/-/mongodb-7.1.1.tgz",
2830
"integrity": "sha512-067DXiMjcpYQl6bGjWQoTUEE9UoRViTtKFcoqX7z08I+iDZv/emH1g8XEFiO3qiDfXAheT5ozl1VffDTKhIW/w==",
2831
2831
"license": "Apache-2.0",
2832
2832
"dependencies": {
2833
2833
"@mongodb-js/saslprep": "^1.3.0",
2834
"bson": "^6.10.4",
2835
"mongodb-connection-string-url": "^3.0.2"
2834
"bson": "^7.1.1",
2835
"mongodb-connection-string-url": "^7.0.0"
2836
2836
},
2837
2837
"engines": {
2838
"node": ">=16.20.1"
2838
"node": ">=20.19.0"
2839
2839
},
2840
2840
"peerDependencies": {
2841
"@aws-sdk/credential-providers": "^3.188.0",
2842
"@mongodb-js/zstd": "^1.1.0 || ^2.0.0",
2843
"gcp-metadata": "^5.2.0",
2844
"kerberos": "^2.0.1",
2845
"mongodb-client-encryption": ">=6.0.0 <7",
2841
"@aws-sdk/credential-providers": "^3.806.0",
2842
"@mongodb-js/zstd": "^7.0.0",
2843
"gcp-metadata": "^7.0.1",
2844
"kerberos": "^7.0.0",
2845
"mongodb-client-encryption": ">=7.0.0 <7.1.0",
2846
2846
"snappy": "^7.3.2",
2847
"socks": "^2.7.1"
2847
"socks": "^2.8.6"
2848
2848
},
2849
2849
"peerDependenciesMeta": {
2850
2850
"@aws-sdk/credential-providers": {
@@ -2871,13 +2871,16 @@
2871
2871
}
2872
2872
},
2873
2873
"node_modules/mongodb-connection-string-url": {
2874
"version": "3.0.2",
2875
"resolved": "https://registry.npmjs.org/mongodb-connection-string-url/-/mongodb-connection-string-url-3.0.2.tgz",
2876
"integrity": "sha512-rMO7CGo/9BFwyZABcKAWL8UJwH/Kc2x0g72uhDWzG48URRax5TCIcJ7Rc3RZqffZzO/Gwff/jyKwCU9TN8gehA==",
2874
"version": "7.0.1",
2875
"resolved": "https://registry.npmjs.org/mongodb-connection-string-url/-/mongodb-connection-string-url-7.0.1.tgz",
2876
"integrity": "sha512-h0AZ9A7IDVwwHyMxmdMXKy+9oNlF0zFoahHiX3vQ8e3KFcSP3VmsmfvtRSuLPxmyv2vjIDxqty8smTgie/SNRQ==",
2877
2877
"license": "Apache-2.0",
2878
2878
"dependencies": {
2879
"@types/whatwg-url": "^11.0.2",
2880
"whatwg-url": "^14.1.0 || ^13.0.0"
2879
"@types/whatwg-url": "^13.0.0",
2880
"whatwg-url": "^14.1.0"
2881
},
2882
"engines": {
2883
"node": ">=20.19.0"
2881
2884
}
2882
2885
},
2883
2886
"node_modules/mongodb-memory-server-core": {
@@ -2903,99 +2906,21 @@
2903
2906
"node": ">=20.19.0"
2904
2907
}
2905
2908
},
2906
"node_modules/mongodb-memory-server-core/node_modules/@types/whatwg-url": {
2907
"version": "13.0.0",
2908
"resolved": "https://registry.npmjs.org/@types/whatwg-url/-/whatwg-url-13.0.0.tgz",
2909
"integrity": "sha512-N8WXpbE6Wgri7KUSvrmQcqrMllKZ9uxkYWMt+mCSGwNc0Hsw9VQTW7ApqI4XNrx6/SaM2QQJCzMPDEXE058s+Q==",
2910
"license": "MIT",
2911
"dependencies": {
2912
"@types/webidl-conversions": "*"
2913
}
2914
},
2915
"node_modules/mongodb-memory-server-core/node_modules/bson": {
2916
"version": "7.2.0",
2917
"resolved": "https://registry.npmjs.org/bson/-/bson-7.2.0.tgz",
2918
"integrity": "sha512-YCEo7KjMlbNlyHhz7zAZNDpIpQbd+wOEHJYezv0nMYTn4x31eIUM2yomNNubclAt63dObUzKHWsBLJ9QcZNSnQ==",
2919
"license": "Apache-2.0",
2920
"engines": {
2921
"node": ">=20.19.0"
2922
}
2923
},
2924
"node_modules/mongodb-memory-server-core/node_modules/mongodb": {
2925
"version": "7.1.1",
2926
"resolved": "https://registry.npmjs.org/mongodb/-/mongodb-7.1.1.tgz",
2927
"integrity": "sha512-067DXiMjcpYQl6bGjWQoTUEE9UoRViTtKFcoqX7z08I+iDZv/emH1g8XEFiO3qiDfXAheT5ozl1VffDTKhIW/w==",
2928
"license": "Apache-2.0",
2929
"dependencies": {
2930
"@mongodb-js/saslprep": "^1.3.0",
2931
"bson": "^7.1.1",
2932
"mongodb-connection-string-url": "^7.0.0"
2933
},
2934
"engines": {
2935
"node": ">=20.19.0"
2936
},
2937
"peerDependencies": {
2938
"@aws-sdk/credential-providers": "^3.806.0",
2939
"@mongodb-js/zstd": "^7.0.0",
2940
"gcp-metadata": "^7.0.1",
2941
"kerberos": "^7.0.0",
2942
"mongodb-client-encryption": ">=7.0.0 <7.1.0",
2943
"snappy": "^7.3.2",
2944
"socks": "^2.8.6"
2945
},
2946
"peerDependenciesMeta": {
2947
"@aws-sdk/credential-providers": {
2948
"optional": true
2949
},
2950
"@mongodb-js/zstd": {
2951
"optional": true
2952
},
2953
"gcp-metadata": {
2954
"optional": true
2955
},
2956
"kerberos": {
2957
"optional": true
2958
},
2959
"mongodb-client-encryption": {
2960
"optional": true
2961
},
2962
"snappy": {
2963
"optional": true
2964
},
2965
"socks": {
2966
"optional": true
2967
}
2968
}
2969
},
2970
"node_modules/mongodb-memory-server-core/node_modules/mongodb-connection-string-url": {
2971
"version": "7.0.1",
2972
"resolved": "https://registry.npmjs.org/mongodb-connection-string-url/-/mongodb-connection-string-url-7.0.1.tgz",
2973
"integrity": "sha512-h0AZ9A7IDVwwHyMxmdMXKy+9oNlF0zFoahHiX3vQ8e3KFcSP3VmsmfvtRSuLPxmyv2vjIDxqty8smTgie/SNRQ==",
2974
"license": "Apache-2.0",
2975
"dependencies": {
2976
"@types/whatwg-url": "^13.0.0",
2977
"whatwg-url": "^14.1.0"
2978
},
2979
"engines": {
2980
"node": ">=20.19.0"
2981
}
2982
},
2983
2909
"node_modules/mongoose": {
2984
"version": "8.20.2",
2985
"resolved": "https://registry.npmjs.org/mongoose/-/mongoose-8.20.2.tgz",
2986
"integrity": "sha512-U0TPupnqBOAI3p9H9qdShX8/nJUBylliRcHFKuhbewEkM7Y0qc9BbrQR9h4q6+1easoZqej7cq2Ee36AZ0gMzQ==",
2910
"version": "9.4.1",
2911
"resolved": "https://registry.npmjs.org/mongoose/-/mongoose-9.4.1.tgz",
2912
"integrity": "sha512-4rFBWa+/wdBQSfvnOPJBpiSG6UCEbhSQh865dEdaH9Y8WfHBUC+I2XT28dp0IBIGrEwmh+gzrgZgea5PbmrHWA==",
2987
2913
"license": "MIT",
2988
2914
"dependencies": {
2989
"bson": "^6.10.4",
2990
"kareem": "2.6.3",
2991
"mongodb": "~6.20.0",
2915
"kareem": "3.2.0",
2916
"mongodb": "~7.1",
2992
2917
"mpath": "0.9.0",
2993
"mquery": "5.0.0",
2918
"mquery": "6.0.0",
2994
2919
"ms": "2.1.3",
2995
2920
"sift": "17.1.3"
2996
2921
},
2997
2922
"engines": {
2998
"node": ">=16.20.1"
2923
"node": ">=20.19.0"
2999
2924
},
3000
2925
"funding": {
3001
2926
"type": "opencollective",
@@ -3055,15 +2980,12 @@
3055
2980
}
3056
2981
},
3057
2982
"node_modules/mquery": {
3058
"version": "5.0.0",
3059
"resolved": "https://registry.npmjs.org/mquery/-/mquery-5.0.0.tgz",
3060
"integrity": "sha512-iQMncpmEK8R8ncT8HJGsGc9Dsp8xcgYMVSbs5jgnm1lFHTZqMJTUWTDx1LBO8+mK3tPNZWFLBghQEIOULSTHZg==",
2983
"version": "6.0.0",
2984
"resolved": "https://registry.npmjs.org/mquery/-/mquery-6.0.0.tgz",
2985
"integrity": "sha512-b2KQNsmgtkscfeDgkYMcWGn9vZI9YoXh802VDEwE6qc50zxBFQ0Oo8ROkawbPAsXCY1/Z1yp0MagqsZStPWJjw==",
3061
2986
"license": "MIT",
3062
"dependencies": {
3063
"debug": "4.x"
3064
},
3065
2987
"engines": {
3066
"node": ">=14.0.0"
2988
"node": ">=20.19.0"
3067
2989
}
3068
2990
},
3069
2991
"node_modules/ms": {
@@ -31,7 +31,7 @@
31
31
"google-auth-library": "^10.5.0",
32
32
"json-with-bigint": "^3.4.4",
33
33
"mongodb-memory-server-core": "^11.0.1",
34
"mongoose": "^8.11.0",
34
"mongoose": "^9.4.1",
35
35
"morgan": "^1.10.0",
36
36
"ncp": "^2.0.0",
37
37
"undici": "^7.10.0",
@@ -19,7 +19,7 @@ export const addToAllianceController: RequestHandler = async (req, res) => {
19
19
20
20
// Check guild has invite permissions in the alliance
21
21
const allianceMember = (await AllianceMember.findOne({
22
allianceId: req.query.allianceId,
22
allianceId: req.query.allianceId as string,
23
23
guildId: guildMember.guildId
24
24
}))!;
25
25
if (!(allianceMember.Permissions & GuildPermission.Recruiter)) {
@@ -57,7 +57,7 @@ export const addToAllianceController: RequestHandler = async (req, res) => {
57
57
// Add clan as a pending alliance member
58
58
try {
59
59
await AllianceMember.insertOne({
60
allianceId: req.query.allianceId,
60
allianceId: req.query.allianceId as string,
61
61
guildId: guilds[0]._id,
62
62
Pending: true,
63
63
Permissions: 0
@@ -13,7 +13,7 @@ export const confirmAllianceInvitationController: RequestHandler = async (req, r
13
13
}
14
14
15
15
const allianceMember = await AllianceMember.findOne({
16
allianceId: req.query.allianceId,
16
allianceId: req.query.allianceId as string,
17
17
guildId: guildMember.guildId
18
18
});
19
19
if (!allianceMember || !allianceMember.Pending) {
@@ -11,7 +11,7 @@ export const declineAllianceInviteController: RequestHandler = async (req, res)
11
11
return;
12
12
}
13
13
14
await AllianceMember.deleteOne({ allianceId: req.query.allianceId, guildId: guildMember.guildId });
14
await AllianceMember.deleteOne({ allianceId: req.query.allianceId as string, guildId: guildMember.guildId });
15
15
16
16
res.end();
17
17
};
@@ -1,9 +1,9 @@
1
1
import { GuildMember } from "../../models/guildModel.ts";
2
import { getAccountForRequest } from "../../services/loginService.ts";
2
import { getAccountIdForRequest } from "../../services/loginService.ts";
3
3
import type { RequestHandler } from "express";
4
4
5
5
export const declineGuildInviteController: RequestHandler = async (req, res) => {
6
const accountId = await getAccountForRequest(req);
6
const accountId = await getAccountIdForRequest(req);
7
7
8
8
await GuildMember.deleteOne({
9
9
accountId: accountId,
@@ -18,7 +18,7 @@ export const divvyAllianceVaultController: RequestHandler = async (req, res) =>
18
18
19
19
// Check guild has treasurer permissions in the alliance
20
20
const allianceMember = (await AllianceMember.findOne({
21
allianceId: req.query.allianceId,
21
allianceId: req.query.allianceId as string,
22
22
guildId: guildMember.guildId
23
23
}))!;
24
24
if (!(allianceMember.Permissions & GuildPermission.Treasurer)) {
@@ -26,7 +26,7 @@ export const divvyAllianceVaultController: RequestHandler = async (req, res) =>
26
26
return;
27
27
}
28
28
29
const allianceMembers = await AllianceMember.find({ allianceId: req.query.allianceId });
29
const allianceMembers = await AllianceMember.find({ allianceId: req.query.allianceId as string });
30
30
const memberCounts: Record<string, number> = {};
31
31
let totalMembers = 0;
32
32
await parallelForeach(allianceMembers, async allianceMember => {
@@ -2,7 +2,7 @@ import { DailyDeal } from "../../models/worldStateModel.ts";
2
2
import type { RequestHandler } from "express";
3
3
4
4
export const getDailyDealStockLevelsController: RequestHandler = async (req, res) => {
5
const dailyDeal = (await DailyDeal.findOne({ StoreItem: req.query.productName }, "AmountSold"))!;
5
const dailyDeal = (await DailyDeal.findOne({ StoreItem: req.query.productName as string }, "AmountSold"))!;
6
6
res.json({
7
7
StoreItem: req.query.productName,
8
8
AmountSold: dailyDeal.AmountSold
@@ -7,7 +7,7 @@ import type { RequestHandler } from "express";
7
7
export const getGuildContributionsController: RequestHandler = async (req, res) => {
8
8
const accountId = await getAccountIdForRequest(req);
9
9
const guildId = (await getInventory(accountId, "GuildId")).GuildId;
10
const guildMember = (await GuildMember.findOne({ guildId, accountId: req.query.buddyId }))!;
10
const guildMember = (await GuildMember.findOne({ guildId, accountId: req.query.buddyId as string }))!;
11
11
res.json({
12
12
_id: { $oid: req.query.buddyId as string },
13
13
RegularCreditsContributed: guildMember.RegularCreditsContributed,
@@ -22,7 +22,7 @@ export const removeFromAllianceController: RequestHandler = async (req, res) =>
22
22
}
23
23
24
24
// Update allianceMember to point to the alliance to kick
25
allianceMember = (await AllianceMember.findOne({ guildId: req.query.guildId }))!;
25
allianceMember = (await AllianceMember.findOne({ guildId: req.query.guildId as string }))!;
26
26
}
27
27
28
28
if (allianceMember.Permissions & GuildPermission.Ruler) {
@@ -1,10 +1,10 @@
1
1
import { getJSONfromString } from "../../helpers/stringHelpers.ts";
2
2
import { Account, Ignore } from "../../models/loginModel.ts";
3
import { getAccountForRequest } from "../../services/loginService.ts";
3
import { getAccountIdForRequest } from "../../services/loginService.ts";
4
4
import type { RequestHandler } from "express";
5
5
6
6
export const removeIgnoredUserController: RequestHandler = async (req, res) => {
7
const accountId = await getAccountForRequest(req);
7
const accountId = await getAccountIdForRequest(req);
8
8
const data = getJSONfromString<IRemoveIgnoredUserRequest>(String(req.body));
9
9
const ignoreeAccount = await Account.findOne(
10
10
{ DisplayName: data.playerName.substring(0, data.playerName.length - 1) },