XFE Git
XFE Studio Git
Git 首页 全局搜索
XFE 主站 文档 NuGet

XFESpaceNinjaServer

A simple server for a small space ninja game

公开
关注 0 Fork 0 Star 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
Sainan <63328889+Sainan@users.noreply.github.com>
提交于

代码差异

17 个文件 +67 -147
Modified .github/workflows/build.yml +2 -2
@@ -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
Modified package-lock.json +43 -121
@@ -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": {
Modified package.json +1 -1
@@ -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",
Modified src/controllers/api/addToAllianceController.ts +2 -2
@@ -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
Modified src/controllers/api/confirmAllianceInvitationController.ts +1 -1
@@ -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) {
Modified src/controllers/api/declineAllianceInviteController.ts +1 -1
@@ -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 };
Modified src/controllers/api/declineGuildInviteController.ts +2 -2
@@ -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,
Modified src/controllers/api/divvyAllianceVaultController.ts +2 -2
@@ -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 => {
Modified src/controllers/api/getDailyDealStockLevelsController.ts +1 -1
@@ -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
Modified src/controllers/api/getGuildContributionsController.ts +1 -1
@@ -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,
Modified src/controllers/api/removeFromAllianceController.ts +1 -1
@@ -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) {
Modified src/controllers/api/removeIgnoredUserController.ts +2 -2
@@ -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) },
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