semantic-release-minecraft 2.0.9 → 2.0.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.releaserc.json +3 -3
- package/CHANGELOG.md +11 -0
- package/dist/curseforge.d.ts.map +1 -1
- package/dist/curseforge.js +16 -14
- package/dist/curseforge.js.map +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5 -6
- package/dist/index.js.map +1 -1
- package/dist/modrinth.d.ts.map +1 -1
- package/dist/modrinth.js +24 -22
- package/dist/modrinth.js.map +1 -1
- package/dist/prepare.d.ts +1 -1
- package/dist/prepare.d.ts.map +1 -1
- package/dist/prepare.js +31 -22
- package/dist/prepare.js.map +1 -1
- package/package.json +1 -1
- package/src/curseforge.ts +29 -31
- package/src/index.ts +5 -13
- package/src/modrinth.ts +34 -36
- package/src/prepare.ts +80 -69
package/.releaserc.json
CHANGED
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
{ "type": "fix", "section": "🐛 Bug修复" },
|
|
15
15
|
{ "type": "docs", "section": "📚 文档更新" },
|
|
16
16
|
{ "type": "style", "section": "💄 样式优化" },
|
|
17
|
-
{ "type": "
|
|
17
|
+
{ "type": "ref", "section": "♻️ 代码重构" },
|
|
18
18
|
{ "type": "perf", "section": "⚡ 性能优化" },
|
|
19
19
|
{ "type": "test", "section": "✅ 测试" },
|
|
20
20
|
{ "type": "build", "section": "📦 构建" },
|
|
@@ -41,10 +41,10 @@
|
|
|
41
41
|
}
|
|
42
42
|
]
|
|
43
43
|
],
|
|
44
|
-
"preset": "
|
|
44
|
+
"preset": "conventionalcommits",
|
|
45
45
|
"releaseRules": [
|
|
46
46
|
{
|
|
47
|
-
"type": "
|
|
47
|
+
"type": "ref",
|
|
48
48
|
"release": "patch"
|
|
49
49
|
},
|
|
50
50
|
{
|
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,14 @@
|
|
|
1
|
+
## [2.0.10](https://github.com/pynickle/semantic-release-minecraft/compare/v2.0.9...v2.0.10) (2025-10-21)
|
|
2
|
+
|
|
3
|
+
### ♻️ 代码重构
|
|
4
|
+
|
|
5
|
+
* refactor code to make better understanding and performance ([f9f12da](https://github.com/pynickle/semantic-release-minecraft/commit/f9f12daac890b238848047e316b558fbc5d59389))
|
|
6
|
+
|
|
7
|
+
### 🔧 其他更改
|
|
8
|
+
|
|
9
|
+
* change preset to conventional commits and fix missing change of refactor ([06136f4](https://github.com/pynickle/semantic-release-minecraft/commit/06136f4c29e1ab6abe7101f130e734c05051a091))
|
|
10
|
+
* change refactor to ref ([c93ccb7](https://github.com/pynickle/semantic-release-minecraft/commit/c93ccb761452525e4a765137acdbbdd36b4fa18e))
|
|
11
|
+
|
|
1
12
|
## [2.0.9](https://github.com/pynickle/semantic-release-minecraft/compare/v2.0.8...v2.0.9) (2025-10-20)
|
|
2
13
|
|
|
3
14
|
### 🐛 Bug修复
|
package/dist/curseforge.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"curseforge.d.ts","sourceRoot":"","sources":["../src/curseforge.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAC;AAO9D;;GAEG;AACH,wBAAsB,mBAAmB,CACrC,YAAY,EAAE,YAAY,EAC1B,OAAO,EAAE,cAAc,EACvB,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAChC,wBAAwB,CAAC,EAAE,MAAM,EAAE,GACpC,OAAO,CAAC,MAAM,CAAC,
|
|
1
|
+
{"version":3,"file":"curseforge.d.ts","sourceRoot":"","sources":["../src/curseforge.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAC;AAO9D;;GAEG;AACH,wBAAsB,mBAAmB,CACrC,YAAY,EAAE,YAAY,EAC1B,OAAO,EAAE,cAAc,EACvB,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAChC,wBAAwB,CAAC,EAAE,MAAM,EAAE,GACpC,OAAO,CAAC,MAAM,CAAC,CA6CjB"}
|
package/dist/curseforge.js
CHANGED
|
@@ -13,33 +13,35 @@ export async function publishToCurseforge(pluginConfig, context, strategy, curse
|
|
|
13
13
|
const projectId = curseforge.project_id;
|
|
14
14
|
const { files, primaryFile } = await findFilesAndPrimaryFile(pluginConfig, context, strategy, 'curseforge');
|
|
15
15
|
logger.log(`Publishing ${files.length} file(s) to CurseForge project ${projectId}...`);
|
|
16
|
-
|
|
16
|
+
const metadata = prepareMetadata(pluginConfig, context, strategy, curseforgeGameVersionIds);
|
|
17
|
+
let primaryFileId = await uploadCurseForgeFile(pluginConfig, context, metadata, primaryFile);
|
|
17
18
|
for (const filePath of files) {
|
|
18
19
|
if (filePath === primaryFile) {
|
|
19
20
|
continue;
|
|
20
21
|
}
|
|
21
|
-
await uploadCurseForgeFile(pluginConfig, context,
|
|
22
|
+
await uploadCurseForgeFile(pluginConfig, context, metadata, filePath, primaryFileId);
|
|
22
23
|
}
|
|
23
24
|
return primaryFileId;
|
|
24
25
|
}
|
|
25
26
|
/**
|
|
26
27
|
* Uploads a single file to CurseForge.
|
|
27
28
|
*/
|
|
28
|
-
async function uploadCurseForgeFile(pluginConfig, context,
|
|
29
|
+
async function uploadCurseForgeFile(pluginConfig, context, metadata, filePath, primaryFileId) {
|
|
29
30
|
const { env, logger } = context;
|
|
30
31
|
const { curseforge } = pluginConfig;
|
|
31
32
|
const apiKey = env.CURSEFORGE_TOKEN;
|
|
32
33
|
const projectId = curseforge.project_id;
|
|
34
|
+
// add file to form data
|
|
33
35
|
const form = new FormData();
|
|
34
36
|
const file = readFileSync(filePath);
|
|
35
37
|
form.append('file', file, {
|
|
36
38
|
filename: basename(filePath),
|
|
37
39
|
});
|
|
38
|
-
const metadata = prepareMetadata(pluginConfig, context, strategy, curseforgeGameVersionIds);
|
|
39
40
|
if (primaryFileId) {
|
|
40
41
|
metadata.parentFileID = primaryFileId;
|
|
41
42
|
}
|
|
42
43
|
form.append('metadata', JSON.stringify(metadata));
|
|
44
|
+
// post to CurseForge API
|
|
43
45
|
const response = await axios.post(`https://upload.curseforge.com/api/projects/${projectId}/upload-file`, form, {
|
|
44
46
|
headers: {
|
|
45
47
|
...form.getHeaders(),
|
|
@@ -69,16 +71,16 @@ function prepareMetadata(pluginConfig, context, strategy, curseforgeGameVersionI
|
|
|
69
71
|
isMarkedForManualRelease: curseforge?.is_marked_for_manual_release || false,
|
|
70
72
|
relations: curseforge?.relations || [],
|
|
71
73
|
};
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
74
|
+
metadata.displayName =
|
|
75
|
+
resolveAndRenderTemplate([curseforge?.display_name, pluginConfig.display_name], {
|
|
76
|
+
nextRelease,
|
|
77
|
+
...strategy,
|
|
78
|
+
}) || context.nextRelease.name;
|
|
79
|
+
metadata.modLoaders =
|
|
80
|
+
resolveAndRenderTemplates([pluginConfig.curseforge?.mod_loaders, pluginConfig.mod_loaders], {
|
|
81
|
+
nextRelease,
|
|
82
|
+
...strategy,
|
|
83
|
+
}) || [];
|
|
82
84
|
return metadata;
|
|
83
85
|
}
|
|
84
86
|
//# sourceMappingURL=curseforge.js.map
|
package/dist/curseforge.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"curseforge.js","sourceRoot":"","sources":["../src/curseforge.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,QAAQ,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,YAAY,EAAE,MAAM,IAAI,CAAC;AAClC,OAAO,EAAE,QAAQ,EAAE,MAAM,MAAM,CAAC;AAGhC,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AACpE,OAAO,EACH,wBAAwB,EACxB,yBAAyB,GAC5B,MAAM,2BAA2B,CAAC;AAEnC;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACrC,YAA0B,EAC1B,OAAuB,EACvB,QAAgC,EAChC,wBAAmC;IAEnC,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC;IAC3B,MAAM,EAAE,UAAU,EAAE,GAAG,YAAY,CAAC;IAEpC,MAAM,SAAS,GAAG,UAAW,CAAC,UAAW,CAAC;IAE1C,MAAM,EAAE,KAAK,EAAE,WAAW,EAAE,GAAG,MAAM,uBAAuB,CACxD,YAAY,EACZ,OAAO,EACP,QAAQ,EACR,YAAY,CACf,CAAC;IACF,MAAM,CAAC,GAAG,CACN,cAAc,KAAK,CAAC,MAAM,kCAAkC,SAAS,KAAK,CAC7E,CAAC;IAEF,IAAI,aAAa,GAAG,MAAM,oBAAoB,CAC1C,YAAY,EACZ,OAAO,EACP,QAAQ,EACR,
|
|
1
|
+
{"version":3,"file":"curseforge.js","sourceRoot":"","sources":["../src/curseforge.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,cAAc,EACd,cAAc,EACd,uBAAuB,EAC1B,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAC;AAO9D,wBAAsB,gBAAgB,CAClC,YAAY,EAAE,YAAY,EAC1B,OAAO,EAAE,uBAAuB,iBAWnC;AAED,wBAAsB,OAAO,CACzB,YAAY,EAAE,YAAY,EAC1B,OAAO,EAAE,cAAc,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,cAAc,EACd,cAAc,EACd,uBAAuB,EAC1B,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAC;AAO9D,wBAAsB,gBAAgB,CAClC,YAAY,EAAE,YAAY,EAC1B,OAAO,EAAE,uBAAuB,iBAWnC;AAED,wBAAsB,OAAO,CACzB,YAAY,EAAE,YAAY,EAC1B,OAAO,EAAE,cAAc,iBAe1B;AAED,wBAAsB,OAAO,CACzB,YAAY,EAAE,YAAY,EAC1B,OAAO,EAAE,cAAc,GACxB,OAAO,CAAC;IAAE,GAAG,EAAE,MAAM,CAAA;CAAE,EAAE,CAAC,CAwC5B"}
|
package/dist/index.js
CHANGED
|
@@ -2,7 +2,7 @@ import { publishToCurseforge } from './curseforge.js';
|
|
|
2
2
|
import { publishToModrinth } from './modrinth.js';
|
|
3
3
|
import { getCurseForgeGameVersionIds } from './prepare.js';
|
|
4
4
|
// Game version IDs transformed from user's input, used during publishing to CurseForge
|
|
5
|
-
let
|
|
5
|
+
let curseforgeGameVersionsIdsPerStrategy = [];
|
|
6
6
|
export async function verifyConditions(pluginConfig, context) {
|
|
7
7
|
const { env } = context;
|
|
8
8
|
if (env.CURSEFORGE_TOKEN && !pluginConfig.curseforge?.project_id) {
|
|
@@ -17,10 +17,9 @@ export async function prepare(pluginConfig, context) {
|
|
|
17
17
|
if (env.CURSEFORGE_TOKEN) {
|
|
18
18
|
const apiToken = env.CURSEFORGE_TOKEN;
|
|
19
19
|
logger.log('Fetching CurseForge game versions and types...');
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
}
|
|
23
|
-
logger.log(`Successfully transform into ${Object.keys(curseforgeGameVersionsIds[0]).length} CurseForge game versions for every strategy`);
|
|
20
|
+
curseforgeGameVersionsIdsPerStrategy =
|
|
21
|
+
await getCurseForgeGameVersionIds(apiToken, pluginConfig, context);
|
|
22
|
+
logger.log(`Successfully transform into ${Object.keys(curseforgeGameVersionsIdsPerStrategy[0]).length} CurseForge game versions for each strategy`);
|
|
24
23
|
}
|
|
25
24
|
}
|
|
26
25
|
export async function publish(pluginConfig, context) {
|
|
@@ -28,7 +27,7 @@ export async function publish(pluginConfig, context) {
|
|
|
28
27
|
const results = [];
|
|
29
28
|
for (const [index, strategy] of (pluginConfig.strategies || [{}]).entries()) {
|
|
30
29
|
if (env.CURSEFORGE_TOKEN) {
|
|
31
|
-
const curseforgeId = await publishToCurseforge(pluginConfig, context, strategy,
|
|
30
|
+
const curseforgeId = await publishToCurseforge(pluginConfig, context, strategy, curseforgeGameVersionsIdsPerStrategy[index]);
|
|
32
31
|
results.push({
|
|
33
32
|
url: `https://www.curseforge.com/minecraft/mc-mods/${pluginConfig.curseforge.project_id}/files/${curseforgeId}`,
|
|
34
33
|
});
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AAEtD,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAClD,OAAO,EAAE,2BAA2B,EAAE,MAAM,cAAc,CAAC;AAE3D,uFAAuF;AACvF,IAAI,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AAEtD,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAClD,OAAO,EAAE,2BAA2B,EAAE,MAAM,cAAc,CAAC;AAE3D,uFAAuF;AACvF,IAAI,oCAAoC,GAAoB,EAAE,CAAC;AAE/D,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAClC,YAA0B,EAC1B,OAAgC;IAEhC,MAAM,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC;IAExB,IAAI,GAAG,CAAC,gBAAgB,IAAI,CAAC,YAAY,CAAC,UAAU,EAAE,UAAU,EAAE,CAAC;QAC/D,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAC;IACzD,CAAC;IAED,IAAI,GAAG,CAAC,cAAc,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,UAAU,EAAE,CAAC;QAC3D,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC;IACvD,CAAC;AACL,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,OAAO,CACzB,YAA0B,EAC1B,OAAuB;IAEvB,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC;IAEhC,IAAI,GAAG,CAAC,gBAAgB,EAAE,CAAC;QACvB,MAAM,QAAQ,GAAG,GAAG,CAAC,gBAAgB,CAAC;QACtC,MAAM,CAAC,GAAG,CAAC,gDAAgD,CAAC,CAAC;QAE7D,oCAAoC;YAChC,MAAM,2BAA2B,CAAC,QAAQ,EAAE,YAAY,EAAE,OAAO,CAAC,CAAC;QAEvE,MAAM,CAAC,GAAG,CACN,+BAA+B,MAAM,CAAC,IAAI,CAAC,oCAAoC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,6CAA6C,CAC1I,CAAC;IACN,CAAC;AACL,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,OAAO,CACzB,YAA0B,EAC1B,OAAuB;IAEvB,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC;IAChC,MAAM,OAAO,GAAsB,EAAE,CAAC;IAEtC,KAAK,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,IAAI,CAC5B,YAAY,CAAC,UAAU,IAAI,CAAC,EAAE,CAAC,CAClC,CAAC,OAAO,EAAE,EAAE,CAAC;QACV,IAAI,GAAG,CAAC,gBAAgB,EAAE,CAAC;YACvB,MAAM,YAAY,GAAG,MAAM,mBAAmB,CAC1C,YAAY,EACZ,OAAO,EACP,QAAQ,EACR,oCAAoC,CAAC,KAAK,CAAC,CAC9C,CAAC;YACF,OAAO,CAAC,IAAI,CAAC;gBACT,GAAG,EAAE,gDAAgD,YAAY,CAAC,UAAW,CAAC,UAAU,UAAU,YAAY,EAAE;aACnH,CAAC,CAAC;QACP,CAAC;aAAM,CAAC;YACJ,MAAM,CAAC,GAAG,CACN,oFAAoF,CACvF,CAAC;QACN,CAAC;QAED,IAAI,GAAG,CAAC,cAAc,EAAE,CAAC;YACrB,MAAM,UAAU,GAAG,MAAM,iBAAiB,CACtC,YAAY,EACZ,OAAO,EACP,QAAQ,CACX,CAAC;YACF,OAAO,CAAC,IAAI,CAAC;gBACT,GAAG,EAAE,4BAA4B,YAAY,CAAC,QAAS,CAAC,UAAU,YAAY,UAAU,EAAE;aAC7F,CAAC,CAAC;QACP,CAAC;aAAM,CAAC;YACJ,MAAM,CAAC,GAAG,CACN,gFAAgF,CACnF,CAAC;QACN,CAAC;IACL,CAAC;IAED,OAAO,OAAO,CAAC;AACnB,CAAC"}
|
package/dist/modrinth.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"modrinth.d.ts","sourceRoot":"","sources":["../src/modrinth.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAC;AAO9D;;GAEG;AACH,wBAAsB,iBAAiB,CACnC,YAAY,EAAE,YAAY,EAC1B,OAAO,EAAE,cAAc,EACvB,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GACjC,OAAO,CAAC,MAAM,CAAC,
|
|
1
|
+
{"version":3,"file":"modrinth.d.ts","sourceRoot":"","sources":["../src/modrinth.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAC;AAO9D;;GAEG;AACH,wBAAsB,iBAAiB,CACnC,YAAY,EAAE,YAAY,EAC1B,OAAO,EAAE,cAAc,EACvB,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GACjC,OAAO,CAAC,MAAM,CAAC,CA2JjB"}
|
package/dist/modrinth.js
CHANGED
|
@@ -51,26 +51,26 @@ export async function publishToModrinth(pluginConfig, context, strategy) {
|
|
|
51
51
|
if (changelog) {
|
|
52
52
|
versionData.changelog = changelog;
|
|
53
53
|
}
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
54
|
+
versionData.name =
|
|
55
|
+
resolveAndRenderTemplate([modrinth?.display_name, pluginConfig.display_name], {
|
|
56
|
+
nextRelease,
|
|
57
|
+
...strategy,
|
|
58
|
+
}) || nextRelease.name;
|
|
59
|
+
versionData.version_number =
|
|
60
|
+
resolveAndRenderTemplate([modrinth?.version_number], {
|
|
61
|
+
nextRelease,
|
|
62
|
+
...strategy,
|
|
63
|
+
}) || nextRelease.version;
|
|
64
|
+
versionData.game_versions =
|
|
65
|
+
resolveAndRenderTemplates([modrinth?.game_versions, pluginConfig.game_versions], {
|
|
66
|
+
nextRelease,
|
|
67
|
+
...strategy,
|
|
68
|
+
}) || [];
|
|
69
|
+
versionData.loaders =
|
|
70
|
+
resolveAndRenderTemplates([modrinth?.mod_loaders, pluginConfig.mod_loaders], {
|
|
71
|
+
nextRelease,
|
|
72
|
+
...strategy,
|
|
73
|
+
}) || [];
|
|
74
74
|
form.append('data', JSON.stringify(versionData), {
|
|
75
75
|
contentType: 'application/json',
|
|
76
76
|
});
|
|
@@ -93,7 +93,7 @@ export async function publishToModrinth(pluginConfig, context, strategy) {
|
|
|
93
93
|
},
|
|
94
94
|
validateStatus: (status) => status < 500,
|
|
95
95
|
});
|
|
96
|
-
form.append('data', JSON.stringify(versionData));
|
|
96
|
+
// form.append('data', JSON.stringify(versionData));
|
|
97
97
|
const resData = versionResponse.data;
|
|
98
98
|
if (versionResponse.status === 200) {
|
|
99
99
|
logger.log(`Successfully published to Modrinth: ${resData.project_id} (File ID: ${resData.file_id})`);
|
|
@@ -104,7 +104,9 @@ export async function publishToModrinth(pluginConfig, context, strategy) {
|
|
|
104
104
|
throw new Error(`Failed to publish to Modrinth (${versionResponse.status}): ${resData.error}\n${resData.description}`);
|
|
105
105
|
}
|
|
106
106
|
else {
|
|
107
|
-
|
|
107
|
+
logger.log('Headers:', versionResponse.headers);
|
|
108
|
+
logger.log('Data:', resData);
|
|
109
|
+
throw new Error(`Failed to publish to Modrinth (${versionResponse.status}): ${versionResponse.statusText}`);
|
|
108
110
|
}
|
|
109
111
|
}
|
|
110
112
|
//# sourceMappingURL=modrinth.js.map
|
package/dist/modrinth.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"modrinth.js","sourceRoot":"","sources":["../src/modrinth.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,QAAQ,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,YAAY,EAAE,MAAM,IAAI,CAAC;AAClC,OAAO,EAAE,QAAQ,EAAE,MAAM,MAAM,CAAC;AAGhC,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AACpE,OAAO,EACH,wBAAwB,EACxB,yBAAyB,GAC5B,MAAM,2BAA2B,CAAC;AAEnC;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACnC,YAA0B,EAC1B,OAAuB,EACvB,QAAgC;IAEhC,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,WAAW,EAAE,GAAG,OAAO,CAAC;IAC7C,MAAM,EAAE,QAAQ,EAAE,GAAG,YAAY,CAAC;IAClC,MAAM,KAAK,GAAG,GAAG,CAAC,cAAe,CAAC;IAClC,MAAM,SAAS,GAAG,QAAQ,EAAE,UAAW,CAAC;IAExC,MAAM,EAAE,KAAK,EAAE,WAAW,EAAE,GAAG,MAAM,uBAAuB,CACxD,YAAY,EACZ,OAAO,EACP,QAAQ,EACR,UAAU,CACb,CAAC;IACF,MAAM,CAAC,GAAG,CACN,cAAc,KAAK,CAAC,MAAM,gCAAgC,SAAS,KAAK,CAC3E,CAAC;IAEF,2DAA2D;IAC3D,MAAM,IAAI,GAAG,IAAI,QAAQ,EAAE,CAAC;IAE5B,MAAM,aAAa,GAAa,EAAE,CAAC;IACnC,IAAI,mBAAmB,GAAuB,SAAS,CAAC;IACxD,MAAM,WAAW,GAAa,EAAE,CAAC;IACjC,MAAM,SAAS,GAAa,EAAE,CAAC;IAE/B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACpC,MAAM,QAAQ,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QAC1B,MAAM,UAAU,GAAG,YAAY,CAAC,QAAQ,CAAC,CAAC;QAC1C,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAC7B,MAAM,QAAQ,GAAG,QAAQ,CAAC,QAAQ,CAAC,CAAC;QACpC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAEzB,MAAM,YAAY,GAAG,QAAQ,CAAC,EAAE,CAAC;QAEjC,aAAa,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QAEjC,IAAI,QAAQ,KAAK,WAAW,EAAE,CAAC;YAC3B,mBAAmB,GAAG,YAAY,CAAC;QACvC,CAAC;IACL,CAAC;IAED,MAAM,WAAW,GAAQ;QACrB,UAAU,EAAE,SAAS;QACrB,UAAU,EAAE,aAAa;QACzB,YAAY,EAAE,YAAY,CAAC,YAAY,IAAI,SAAS;QACpD,YAAY,EAAE,QAAQ,EAAE,YAAY,IAAI,EAAE;QAC1C,QAAQ,EAAE,QAAQ,EAAE,QAAQ,IAAI,KAAK;QACrC,MAAM,EAAE,QAAQ,EAAE,MAAM,IAAI,QAAQ;QACpC,gBAAgB,EAAE,QAAQ,EAAE,gBAAgB,IAAI,QAAQ;KAC3D,CAAC;IAEF,IAAI,mBAAmB,EAAE,CAAC;QACtB,WAAW,CAAC,YAAY,GAAG,mBAAmB,CAAC;IACnD,CAAC;IAED,MAAM,SAAS,GAAG,wBAAwB,CACtC,CAAC,QAAQ,EAAE,SAAS,EAAE,WAAW,CAAC,KAAK,CAAC,EACxC;QACI,WAAW;QACX,GAAG,QAAQ;KACd,CACJ,CAAC;IAEF,IAAI,SAAS,EAAE,CAAC;QACZ,WAAW,CAAC,SAAS,GAAG,SAAS,CAAC;IACtC,CAAC;IAED,
|
|
1
|
+
{"version":3,"file":"modrinth.js","sourceRoot":"","sources":["../src/modrinth.ts"],"names":[],"mappings":"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"}
|
package/dist/prepare.d.ts
CHANGED
|
@@ -3,5 +3,5 @@ import { PluginConfig } from './definitions/plugin-config.js';
|
|
|
3
3
|
/**
|
|
4
4
|
* Get CurseForge game version IDs based on the plugin configuration.
|
|
5
5
|
*/
|
|
6
|
-
export declare function getCurseForgeGameVersionIds(apiToken: string, pluginConfig: PluginConfig, context: PrepareContext
|
|
6
|
+
export declare function getCurseForgeGameVersionIds(apiToken: string, pluginConfig: PluginConfig, context: PrepareContext): Promise<Array<number[]>>;
|
|
7
7
|
//# sourceMappingURL=prepare.d.ts.map
|
package/dist/prepare.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prepare.d.ts","sourceRoot":"","sources":["../src/prepare.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAOlD,OAAO,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAC;AAI9D;;GAEG;AACH,wBAAsB,2BAA2B,CAC7C,QAAQ,EAAE,MAAM,EAChB,YAAY,EAAE,YAAY,EAC1B,OAAO,EAAE,cAAc,
|
|
1
|
+
{"version":3,"file":"prepare.d.ts","sourceRoot":"","sources":["../src/prepare.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAOlD,OAAO,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAC;AAI9D;;GAEG;AACH,wBAAsB,2BAA2B,CAC7C,QAAQ,EAAE,MAAM,EAChB,YAAY,EAAE,YAAY,EAC1B,OAAO,EAAE,cAAc,GACxB,OAAO,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,CAqF1B"}
|
package/dist/prepare.js
CHANGED
|
@@ -5,31 +5,40 @@ import { toArray } from './utils/utils.js';
|
|
|
5
5
|
/**
|
|
6
6
|
* Get CurseForge game version IDs based on the plugin configuration.
|
|
7
7
|
*/
|
|
8
|
-
export async function getCurseForgeGameVersionIds(apiToken, pluginConfig, context
|
|
8
|
+
export async function getCurseForgeGameVersionIds(apiToken, pluginConfig, context) {
|
|
9
9
|
const { nextRelease } = context;
|
|
10
10
|
const curseforgeConfig = pluginConfig.curseforge;
|
|
11
|
-
const modLoaders = resolveAndRenderTemplates([pluginConfig.curseforge?.mod_loaders, pluginConfig.mod_loaders], {
|
|
12
|
-
nextRelease,
|
|
13
|
-
...strategy,
|
|
14
|
-
}) || [];
|
|
15
|
-
const javaVersions = toArray(curseforgeConfig.java_versions);
|
|
16
|
-
const gameVersions = toArray(curseforgeConfig.game_versions || pluginConfig.game_versions);
|
|
17
|
-
const pluginGameVersions = toArray(curseforgeConfig.game_versions_for_plugins);
|
|
18
|
-
const addonGameVersions = toArray(curseforgeConfig.game_versions_for_addon);
|
|
19
|
-
const environments = toArray(curseforgeConfig.environments);
|
|
20
11
|
const map = await createCurseForgeGameVersionMap(apiToken);
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
12
|
+
let curseforgeGameVersionsIdsPerStrategy = [];
|
|
13
|
+
for (const strategy of pluginConfig.strategies || [{}]) {
|
|
14
|
+
// fetch plugin config values with template rendering
|
|
15
|
+
const modLoaders = resolveAndRenderTemplates([
|
|
16
|
+
pluginConfig.curseforge?.mod_loaders,
|
|
17
|
+
pluginConfig.mod_loaders,
|
|
18
|
+
], {
|
|
19
|
+
nextRelease,
|
|
20
|
+
...strategy,
|
|
21
|
+
}) || [];
|
|
22
|
+
const javaVersions = toArray(curseforgeConfig.java_versions);
|
|
23
|
+
const gameVersions = toArray(curseforgeConfig.game_versions || pluginConfig.game_versions);
|
|
24
|
+
const pluginGameVersions = toArray(curseforgeConfig.game_versions_for_plugins);
|
|
25
|
+
const addonGameVersions = toArray(curseforgeConfig.game_versions_for_addon);
|
|
26
|
+
const environments = toArray(curseforgeConfig.environments);
|
|
27
|
+
const javaVersionNames = javaVersions.map((javaVersion) => `Java ${javaVersion}`);
|
|
28
|
+
// TODO: Modrinth 和 CurseForge 的游戏版本命名格式转化,以 Modrinth 为基准
|
|
29
|
+
// const gameVersionNames = gameVersions.map(x => formatCurseForgeGameVersionSnapshot(x));
|
|
30
|
+
// get CurseForge game version IDs from mapped game versions
|
|
31
|
+
const gameVersionIds = findCurseForgeGameVersionIdsByNames(map.game_versions, gameVersions);
|
|
32
|
+
const loaderIds = findCurseForgeGameVersionIdsByNames(map.loaders, modLoaders);
|
|
33
|
+
const javaIds = findCurseForgeGameVersionIdsByNames(map.java_versions, javaVersionNames);
|
|
34
|
+
const pluginGameVersionIds = findCurseForgeGameVersionIdsByNames(map.game_versions_for_plugins, pluginGameVersions);
|
|
35
|
+
const addonGameVersionIds = findCurseForgeGameVersionIdsByNames(map.game_versions_for_addons, addonGameVersions);
|
|
36
|
+
const environmentIds = findCurseForgeGameVersionIdsByNames(map.environments, environments);
|
|
37
|
+
const curseforgeGameVersionIds = [];
|
|
38
|
+
curseforgeGameVersionIds.push(...gameVersionIds, ...loaderIds, ...javaIds, ...pluginGameVersionIds, ...addonGameVersionIds, ...environmentIds);
|
|
39
|
+
curseforgeGameVersionsIdsPerStrategy.push(curseforgeGameVersionIds);
|
|
40
|
+
}
|
|
41
|
+
return curseforgeGameVersionsIdsPerStrategy;
|
|
33
42
|
}
|
|
34
43
|
/**
|
|
35
44
|
* Create a CurseForge game version map by categorizing game versions based on their type names.
|
package/dist/prepare.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prepare.js","sourceRoot":"","sources":["../src/prepare.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EACH,wBAAwB,GAI3B,MAAM,6BAA6B,CAAC;AAErC,OAAO,EAAE,yBAAyB,EAAE,MAAM,2BAA2B,CAAC;AACtE,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAE3C;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,2BAA2B,CAC7C,QAAgB,EAChB,YAA0B,EAC1B,OAAuB
|
|
1
|
+
{"version":3,"file":"prepare.js","sourceRoot":"","sources":["../src/prepare.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
package/src/curseforge.ts
CHANGED
|
@@ -34,11 +34,17 @@ export async function publishToCurseforge(
|
|
|
34
34
|
`Publishing ${files.length} file(s) to CurseForge project ${projectId}...`
|
|
35
35
|
);
|
|
36
36
|
|
|
37
|
-
|
|
37
|
+
const metadata = prepareMetadata(
|
|
38
38
|
pluginConfig,
|
|
39
39
|
context,
|
|
40
40
|
strategy,
|
|
41
|
-
curseforgeGameVersionIds
|
|
41
|
+
curseforgeGameVersionIds
|
|
42
|
+
);
|
|
43
|
+
|
|
44
|
+
let primaryFileId = await uploadCurseForgeFile(
|
|
45
|
+
pluginConfig,
|
|
46
|
+
context,
|
|
47
|
+
metadata,
|
|
42
48
|
primaryFile
|
|
43
49
|
);
|
|
44
50
|
|
|
@@ -50,8 +56,7 @@ export async function publishToCurseforge(
|
|
|
50
56
|
await uploadCurseForgeFile(
|
|
51
57
|
pluginConfig,
|
|
52
58
|
context,
|
|
53
|
-
|
|
54
|
-
curseforgeGameVersionIds,
|
|
59
|
+
metadata,
|
|
55
60
|
filePath,
|
|
56
61
|
primaryFileId
|
|
57
62
|
);
|
|
@@ -66,8 +71,7 @@ export async function publishToCurseforge(
|
|
|
66
71
|
async function uploadCurseForgeFile(
|
|
67
72
|
pluginConfig: PluginConfig,
|
|
68
73
|
context: PublishContext,
|
|
69
|
-
|
|
70
|
-
curseforgeGameVersionIds: number[] | undefined,
|
|
74
|
+
metadata: any,
|
|
71
75
|
filePath: string,
|
|
72
76
|
primaryFileId?: number
|
|
73
77
|
): Promise<number> {
|
|
@@ -77,25 +81,20 @@ async function uploadCurseForgeFile(
|
|
|
77
81
|
const apiKey = env.CURSEFORGE_TOKEN!;
|
|
78
82
|
const projectId = curseforge!.project_id!;
|
|
79
83
|
|
|
84
|
+
// add file to form data
|
|
80
85
|
const form = new FormData();
|
|
81
86
|
const file = readFileSync(filePath);
|
|
82
87
|
form.append('file', file, {
|
|
83
88
|
filename: basename(filePath),
|
|
84
89
|
});
|
|
85
90
|
|
|
86
|
-
const metadata = prepareMetadata(
|
|
87
|
-
pluginConfig,
|
|
88
|
-
context,
|
|
89
|
-
strategy,
|
|
90
|
-
curseforgeGameVersionIds
|
|
91
|
-
);
|
|
92
|
-
|
|
93
91
|
if (primaryFileId) {
|
|
94
92
|
metadata.parentFileID = primaryFileId;
|
|
95
93
|
}
|
|
96
94
|
|
|
97
95
|
form.append('metadata', JSON.stringify(metadata));
|
|
98
96
|
|
|
97
|
+
// post to CurseForge API
|
|
99
98
|
const response = await axios.post(
|
|
100
99
|
`https://upload.curseforge.com/api/projects/${projectId}/upload-file`,
|
|
101
100
|
form,
|
|
@@ -142,24 +141,23 @@ function prepareMetadata(
|
|
|
142
141
|
relations: curseforge?.relations || [],
|
|
143
142
|
};
|
|
144
143
|
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
metadata.modLoaders = modLoaders || [];
|
|
144
|
+
metadata.displayName =
|
|
145
|
+
resolveAndRenderTemplate(
|
|
146
|
+
[curseforge?.display_name, pluginConfig.display_name],
|
|
147
|
+
{
|
|
148
|
+
nextRelease,
|
|
149
|
+
...strategy,
|
|
150
|
+
}
|
|
151
|
+
) || context.nextRelease.name;
|
|
152
|
+
|
|
153
|
+
metadata.modLoaders =
|
|
154
|
+
resolveAndRenderTemplates(
|
|
155
|
+
[pluginConfig.curseforge?.mod_loaders, pluginConfig.mod_loaders],
|
|
156
|
+
{
|
|
157
|
+
nextRelease,
|
|
158
|
+
...strategy,
|
|
159
|
+
}
|
|
160
|
+
) || [];
|
|
163
161
|
|
|
164
162
|
return metadata;
|
|
165
163
|
}
|
package/src/index.ts
CHANGED
|
@@ -9,7 +9,7 @@ import { publishToModrinth } from './modrinth.js';
|
|
|
9
9
|
import { getCurseForgeGameVersionIds } from './prepare.js';
|
|
10
10
|
|
|
11
11
|
// Game version IDs transformed from user's input, used during publishing to CurseForge
|
|
12
|
-
let
|
|
12
|
+
let curseforgeGameVersionsIdsPerStrategy: Array<number[]> = [];
|
|
13
13
|
|
|
14
14
|
export async function verifyConditions(
|
|
15
15
|
pluginConfig: PluginConfig,
|
|
@@ -36,19 +36,11 @@ export async function prepare(
|
|
|
36
36
|
const apiToken = env.CURSEFORGE_TOKEN;
|
|
37
37
|
logger.log('Fetching CurseForge game versions and types...');
|
|
38
38
|
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
await getCurseForgeGameVersionIds(
|
|
42
|
-
apiToken,
|
|
43
|
-
pluginConfig,
|
|
44
|
-
context,
|
|
45
|
-
strategy
|
|
46
|
-
)
|
|
47
|
-
);
|
|
48
|
-
}
|
|
39
|
+
curseforgeGameVersionsIdsPerStrategy =
|
|
40
|
+
await getCurseForgeGameVersionIds(apiToken, pluginConfig, context);
|
|
49
41
|
|
|
50
42
|
logger.log(
|
|
51
|
-
`Successfully transform into ${Object.keys(
|
|
43
|
+
`Successfully transform into ${Object.keys(curseforgeGameVersionsIdsPerStrategy[0]).length} CurseForge game versions for each strategy`
|
|
52
44
|
);
|
|
53
45
|
}
|
|
54
46
|
}
|
|
@@ -68,7 +60,7 @@ export async function publish(
|
|
|
68
60
|
pluginConfig,
|
|
69
61
|
context,
|
|
70
62
|
strategy,
|
|
71
|
-
|
|
63
|
+
curseforgeGameVersionsIdsPerStrategy[index]
|
|
72
64
|
);
|
|
73
65
|
results.push({
|
|
74
66
|
url: `https://www.curseforge.com/minecraft/mc-mods/${pluginConfig.curseforge!.project_id}/files/${curseforgeId}`,
|
package/src/modrinth.ts
CHANGED
|
@@ -83,42 +83,38 @@ export async function publishToModrinth(
|
|
|
83
83
|
versionData.changelog = changelog;
|
|
84
84
|
}
|
|
85
85
|
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
nextRelease,
|
|
98
|
-
...strategy,
|
|
99
|
-
});
|
|
100
|
-
|
|
101
|
-
versionData.version_number = versionNumber || nextRelease.version;
|
|
102
|
-
|
|
103
|
-
const gameVersions = resolveAndRenderTemplates(
|
|
104
|
-
[modrinth?.game_versions, pluginConfig.game_versions],
|
|
105
|
-
{
|
|
86
|
+
versionData.name =
|
|
87
|
+
resolveAndRenderTemplate(
|
|
88
|
+
[modrinth?.display_name, pluginConfig.display_name],
|
|
89
|
+
{
|
|
90
|
+
nextRelease,
|
|
91
|
+
...strategy,
|
|
92
|
+
}
|
|
93
|
+
) || nextRelease.name;
|
|
94
|
+
|
|
95
|
+
versionData.version_number =
|
|
96
|
+
resolveAndRenderTemplate([modrinth?.version_number], {
|
|
106
97
|
nextRelease,
|
|
107
98
|
...strategy,
|
|
108
|
-
}
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
99
|
+
}) || nextRelease.version;
|
|
100
|
+
|
|
101
|
+
versionData.game_versions =
|
|
102
|
+
resolveAndRenderTemplates(
|
|
103
|
+
[modrinth?.game_versions, pluginConfig.game_versions],
|
|
104
|
+
{
|
|
105
|
+
nextRelease,
|
|
106
|
+
...strategy,
|
|
107
|
+
}
|
|
108
|
+
) || [];
|
|
109
|
+
|
|
110
|
+
versionData.loaders =
|
|
111
|
+
resolveAndRenderTemplates(
|
|
112
|
+
[modrinth?.mod_loaders, pluginConfig.mod_loaders],
|
|
113
|
+
{
|
|
114
|
+
nextRelease,
|
|
115
|
+
...strategy,
|
|
116
|
+
}
|
|
117
|
+
) || [];
|
|
122
118
|
|
|
123
119
|
form.append('data', JSON.stringify(versionData), {
|
|
124
120
|
contentType: 'application/json',
|
|
@@ -153,7 +149,7 @@ export async function publishToModrinth(
|
|
|
153
149
|
}
|
|
154
150
|
);
|
|
155
151
|
|
|
156
|
-
form.append('data', JSON.stringify(versionData));
|
|
152
|
+
// form.append('data', JSON.stringify(versionData));
|
|
157
153
|
|
|
158
154
|
const resData = versionResponse.data;
|
|
159
155
|
|
|
@@ -170,8 +166,10 @@ export async function publishToModrinth(
|
|
|
170
166
|
`Failed to publish to Modrinth (${versionResponse.status}): ${resData.error}\n${resData.description}`
|
|
171
167
|
);
|
|
172
168
|
} else {
|
|
169
|
+
logger.log('Headers:', versionResponse.headers);
|
|
170
|
+
logger.log('Data:', resData);
|
|
173
171
|
throw new Error(
|
|
174
|
-
`Failed to publish to Modrinth (${versionResponse.status}): ${
|
|
172
|
+
`Failed to publish to Modrinth (${versionResponse.status}): ${versionResponse.statusText}`
|
|
175
173
|
);
|
|
176
174
|
}
|
|
177
175
|
}
|
package/src/prepare.ts
CHANGED
|
@@ -16,81 +16,92 @@ import { toArray } from './utils/utils.js';
|
|
|
16
16
|
export async function getCurseForgeGameVersionIds(
|
|
17
17
|
apiToken: string,
|
|
18
18
|
pluginConfig: PluginConfig,
|
|
19
|
-
context: PrepareContext
|
|
20
|
-
|
|
21
|
-
): Promise<number[]> {
|
|
19
|
+
context: PrepareContext
|
|
20
|
+
): Promise<Array<number[]>> {
|
|
22
21
|
const { nextRelease } = context;
|
|
23
22
|
|
|
24
23
|
const curseforgeConfig = pluginConfig.curseforge!;
|
|
25
24
|
|
|
26
|
-
const modLoaders =
|
|
27
|
-
resolveAndRenderTemplates(
|
|
28
|
-
[pluginConfig.curseforge?.mod_loaders, pluginConfig.mod_loaders],
|
|
29
|
-
{
|
|
30
|
-
nextRelease,
|
|
31
|
-
...strategy,
|
|
32
|
-
}
|
|
33
|
-
) || [];
|
|
34
|
-
|
|
35
|
-
const javaVersions = toArray(curseforgeConfig.java_versions);
|
|
36
|
-
const gameVersions = toArray(
|
|
37
|
-
curseforgeConfig.game_versions || pluginConfig.game_versions
|
|
38
|
-
);
|
|
39
|
-
const pluginGameVersions = toArray(
|
|
40
|
-
curseforgeConfig.game_versions_for_plugins
|
|
41
|
-
);
|
|
42
|
-
const addonGameVersions = toArray(curseforgeConfig.game_versions_for_addon);
|
|
43
|
-
const environments = toArray(curseforgeConfig.environments);
|
|
44
|
-
|
|
45
25
|
const map = await createCurseForgeGameVersionMap(apiToken);
|
|
46
26
|
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
)
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
map
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
map
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
27
|
+
let curseforgeGameVersionsIdsPerStrategy: Array<number[]> = [];
|
|
28
|
+
|
|
29
|
+
for (const strategy of pluginConfig.strategies || [{}]) {
|
|
30
|
+
// fetch plugin config values with template rendering
|
|
31
|
+
const modLoaders =
|
|
32
|
+
resolveAndRenderTemplates(
|
|
33
|
+
[
|
|
34
|
+
pluginConfig.curseforge?.mod_loaders,
|
|
35
|
+
pluginConfig.mod_loaders,
|
|
36
|
+
],
|
|
37
|
+
{
|
|
38
|
+
nextRelease,
|
|
39
|
+
...strategy,
|
|
40
|
+
}
|
|
41
|
+
) || [];
|
|
42
|
+
|
|
43
|
+
const javaVersions = toArray(curseforgeConfig.java_versions);
|
|
44
|
+
const gameVersions = toArray(
|
|
45
|
+
curseforgeConfig.game_versions || pluginConfig.game_versions
|
|
46
|
+
);
|
|
47
|
+
const pluginGameVersions = toArray(
|
|
48
|
+
curseforgeConfig.game_versions_for_plugins
|
|
49
|
+
);
|
|
50
|
+
const addonGameVersions = toArray(
|
|
51
|
+
curseforgeConfig.game_versions_for_addon
|
|
52
|
+
);
|
|
53
|
+
const environments = toArray(curseforgeConfig.environments);
|
|
54
|
+
|
|
55
|
+
const javaVersionNames = javaVersions.map(
|
|
56
|
+
(javaVersion: string) => `Java ${javaVersion}`
|
|
57
|
+
);
|
|
58
|
+
|
|
59
|
+
// TODO: Modrinth 和 CurseForge 的游戏版本命名格式转化,以 Modrinth 为基准
|
|
60
|
+
// const gameVersionNames = gameVersions.map(x => formatCurseForgeGameVersionSnapshot(x));
|
|
61
|
+
|
|
62
|
+
// get CurseForge game version IDs from mapped game versions
|
|
63
|
+
const gameVersionIds = findCurseForgeGameVersionIdsByNames(
|
|
64
|
+
map.game_versions,
|
|
65
|
+
gameVersions
|
|
66
|
+
);
|
|
67
|
+
|
|
68
|
+
const loaderIds = findCurseForgeGameVersionIdsByNames(
|
|
69
|
+
map.loaders,
|
|
70
|
+
modLoaders
|
|
71
|
+
);
|
|
72
|
+
|
|
73
|
+
const javaIds = findCurseForgeGameVersionIdsByNames(
|
|
74
|
+
map.java_versions,
|
|
75
|
+
javaVersionNames
|
|
76
|
+
);
|
|
77
|
+
|
|
78
|
+
const pluginGameVersionIds = findCurseForgeGameVersionIdsByNames(
|
|
79
|
+
map.game_versions_for_plugins,
|
|
80
|
+
pluginGameVersions
|
|
81
|
+
);
|
|
82
|
+
|
|
83
|
+
const addonGameVersionIds = findCurseForgeGameVersionIdsByNames(
|
|
84
|
+
map.game_versions_for_addons,
|
|
85
|
+
addonGameVersions
|
|
86
|
+
);
|
|
87
|
+
|
|
88
|
+
const environmentIds = findCurseForgeGameVersionIdsByNames(
|
|
89
|
+
map.environments,
|
|
90
|
+
environments
|
|
91
|
+
);
|
|
92
|
+
|
|
93
|
+
const curseforgeGameVersionIds: number[] = [];
|
|
94
|
+
curseforgeGameVersionIds.push(
|
|
95
|
+
...gameVersionIds,
|
|
96
|
+
...loaderIds,
|
|
97
|
+
...javaIds,
|
|
98
|
+
...pluginGameVersionIds,
|
|
99
|
+
...addonGameVersionIds,
|
|
100
|
+
...environmentIds
|
|
101
|
+
);
|
|
102
|
+
curseforgeGameVersionsIdsPerStrategy.push(curseforgeGameVersionIds);
|
|
103
|
+
}
|
|
104
|
+
return curseforgeGameVersionsIdsPerStrategy;
|
|
94
105
|
}
|
|
95
106
|
|
|
96
107
|
/**
|