semantic-release-minecraft 2.0.2 → 2.0.3
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/CHANGELOG.md +7 -0
- package/dist/curseforge.d.ts.map +1 -1
- package/dist/curseforge.js +16 -10
- package/dist/curseforge.js.map +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +7 -5
- package/dist/index.js.map +1 -1
- package/dist/prepare.d.ts +1 -1
- package/dist/prepare.d.ts.map +1 -1
- package/dist/prepare.js +6 -3
- package/dist/prepare.js.map +1 -1
- package/dist/utils/template-utils.d.ts.map +1 -1
- package/dist/utils/template-utils.js +1 -1
- package/dist/utils/template-utils.js.map +1 -1
- package/package.json +1 -1
- package/src/curseforge.ts +22 -5
- package/src/index.ts +16 -9
- package/src/prepare.ts +11 -3
- package/src/utils/template-utils.ts +1 -4
- package/dist/utils/platform/curseforge-utils.d.ts +0 -4
- package/dist/utils/platform/curseforge-utils.d.ts.map +0 -1
- package/dist/utils/platform/curseforge-utils.js +0 -7
- package/dist/utils/platform/curseforge-utils.js.map +0 -1
- package/src/utils/platform/curseforge-utils.ts +0 -17
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,10 @@
|
|
|
1
|
+
## [2.0.3](https://github.com/pynickle/semantic-release-minecraft/compare/v2.0.2...v2.0.3) (2025-10-20)
|
|
2
|
+
|
|
3
|
+
### 🐛 Bug修复
|
|
4
|
+
|
|
5
|
+
* fix import error ([7d49ea7](https://github.com/pynickle/semantic-release-minecraft/commit/7d49ea7e7841f7b44a46d7009dcd9a32a23b4ba6))
|
|
6
|
+
* fix mod loaders are not parsed with strategy ([5f0527e](https://github.com/pynickle/semantic-release-minecraft/commit/5f0527e45729983e067cf8bd5e701ea2d5d151ee))
|
|
7
|
+
|
|
1
8
|
## [2.0.2](https://github.com/pynickle/semantic-release-minecraft/compare/v2.0.1...v2.0.2) (2025-10-20)
|
|
2
9
|
|
|
3
10
|
### 🐛 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;
|
|
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,CAwCjB"}
|
package/dist/curseforge.js
CHANGED
|
@@ -2,9 +2,8 @@ import axios from 'axios';
|
|
|
2
2
|
import FormData from 'form-data';
|
|
3
3
|
import { readFile } from 'fs/promises';
|
|
4
4
|
import { basename } from 'path';
|
|
5
|
-
import { getCurseForgeModLoaders } from './utils/platform/curseforge-utils.js';
|
|
6
5
|
import { findFilesAndPrimaryFile } from './utils/platform/utils.js';
|
|
7
|
-
import { resolveAndRenderTemplate } from './utils/template-utils.js';
|
|
6
|
+
import { resolveAndRenderTemplate, resolveAndRenderTemplates, } from './utils/template-utils.js';
|
|
8
7
|
/**
|
|
9
8
|
* Publishes files to CurseForge.
|
|
10
9
|
*/
|
|
@@ -14,19 +13,19 @@ export async function publishToCurseforge(pluginConfig, context, strategy, curse
|
|
|
14
13
|
const projectId = curseforge.project_id;
|
|
15
14
|
const { files, primaryFile } = await findFilesAndPrimaryFile(pluginConfig, context, strategy, 'curseforge');
|
|
16
15
|
logger.log(`Publishing ${files.length} file(s) to CurseForge project ${projectId}...`);
|
|
17
|
-
let primaryFileId = await uploadCurseForgeFile(pluginConfig, context, curseforgeGameVersionIds, primaryFile);
|
|
16
|
+
let primaryFileId = await uploadCurseForgeFile(pluginConfig, context, strategy, curseforgeGameVersionIds, primaryFile);
|
|
18
17
|
for (const filePath of files) {
|
|
19
18
|
if (filePath === primaryFile) {
|
|
20
19
|
continue;
|
|
21
20
|
}
|
|
22
|
-
await uploadCurseForgeFile(pluginConfig, context, curseforgeGameVersionIds, filePath, primaryFileId);
|
|
21
|
+
await uploadCurseForgeFile(pluginConfig, context, strategy, curseforgeGameVersionIds, filePath, primaryFileId);
|
|
23
22
|
}
|
|
24
23
|
return primaryFileId;
|
|
25
24
|
}
|
|
26
25
|
/**
|
|
27
26
|
* Uploads a single file to CurseForge.
|
|
28
27
|
*/
|
|
29
|
-
async function uploadCurseForgeFile(pluginConfig, context, curseforgeGameVersionIds, filePath, primaryFileId) {
|
|
28
|
+
async function uploadCurseForgeFile(pluginConfig, context, strategy, curseforgeGameVersionIds, filePath, primaryFileId) {
|
|
30
29
|
const { env, logger } = context;
|
|
31
30
|
const { curseforge } = pluginConfig;
|
|
32
31
|
const apiKey = env.CURSEFORGE_TOKEN;
|
|
@@ -36,7 +35,7 @@ async function uploadCurseForgeFile(pluginConfig, context, curseforgeGameVersion
|
|
|
36
35
|
form.append('file', file, {
|
|
37
36
|
filename: basename(filePath),
|
|
38
37
|
});
|
|
39
|
-
const metadata = prepareMetadata(pluginConfig, context, curseforgeGameVersionIds);
|
|
38
|
+
const metadata = prepareMetadata(pluginConfig, context, strategy, curseforgeGameVersionIds);
|
|
40
39
|
if (primaryFileId) {
|
|
41
40
|
metadata.parentFileID = primaryFileId;
|
|
42
41
|
}
|
|
@@ -59,7 +58,7 @@ async function uploadCurseForgeFile(pluginConfig, context, curseforgeGameVersion
|
|
|
59
58
|
/**
|
|
60
59
|
* Prepares metadata for the CurseForge file upload.
|
|
61
60
|
*/
|
|
62
|
-
function prepareMetadata(pluginConfig, context, curseforgeGameVersionIds) {
|
|
61
|
+
function prepareMetadata(pluginConfig, context, strategy, curseforgeGameVersionIds) {
|
|
63
62
|
const { nextRelease } = context;
|
|
64
63
|
const { curseforge } = pluginConfig;
|
|
65
64
|
const metadata = {
|
|
@@ -70,9 +69,16 @@ function prepareMetadata(pluginConfig, context, curseforgeGameVersionIds) {
|
|
|
70
69
|
isMarkedForManualRelease: curseforge?.is_marked_for_manual_release || false,
|
|
71
70
|
relations: curseforge?.relations || [],
|
|
72
71
|
};
|
|
73
|
-
const displayName = resolveAndRenderTemplate([curseforge?.display_name, pluginConfig.display_name], {
|
|
74
|
-
|
|
75
|
-
|
|
72
|
+
const displayName = resolveAndRenderTemplate([curseforge?.display_name, pluginConfig.display_name], {
|
|
73
|
+
nextRelease,
|
|
74
|
+
...strategy,
|
|
75
|
+
});
|
|
76
|
+
metadata.displayName = displayName || context.nextRelease.name;
|
|
77
|
+
const modLoaders = resolveAndRenderTemplates([pluginConfig.curseforge?.mod_loaders, pluginConfig.mod_loaders], {
|
|
78
|
+
nextRelease,
|
|
79
|
+
...strategy,
|
|
80
|
+
});
|
|
81
|
+
metadata.modLoaders = modLoaders || [];
|
|
76
82
|
return metadata;
|
|
77
83
|
}
|
|
78
84
|
//# 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,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAE,QAAQ,EAAE,MAAM,MAAM,CAAC;AAGhC,OAAO,EAAE,uBAAuB,EAAE,MAAM,
|
|
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,iBAuB1B;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 curseforgeGameVersionsIds;
|
|
5
|
+
let curseforgeGameVersionsIds = [];
|
|
6
6
|
export async function verifyConditions(pluginConfig, context) {
|
|
7
7
|
const { env } = context;
|
|
8
8
|
if (env.CURSEFORGE_TOKEN && !pluginConfig.curseforge?.project_id) {
|
|
@@ -17,16 +17,18 @@ 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
|
-
|
|
20
|
+
for (const strategy of pluginConfig.strategies || [{}]) {
|
|
21
|
+
curseforgeGameVersionsIds?.push(await getCurseForgeGameVersionIds(apiToken, pluginConfig, context, strategy));
|
|
22
|
+
}
|
|
23
|
+
logger.log(`Successfully transform into ${Object.keys(curseforgeGameVersionsIds[0]).length} CurseForge game versions for every strategy`);
|
|
22
24
|
}
|
|
23
25
|
}
|
|
24
26
|
export async function publish(pluginConfig, context) {
|
|
25
27
|
const { env, logger } = context;
|
|
26
28
|
const results = [];
|
|
27
|
-
for (const strategy of pluginConfig.strategies || [{}]) {
|
|
29
|
+
for (const [index, strategy] of (pluginConfig.strategies || [{}]).entries()) {
|
|
28
30
|
if (env.CURSEFORGE_TOKEN) {
|
|
29
|
-
const curseforgeId = await publishToCurseforge(pluginConfig, context, strategy, curseforgeGameVersionsIds);
|
|
31
|
+
const curseforgeId = await publishToCurseforge(pluginConfig, context, strategy, curseforgeGameVersionsIds[index]);
|
|
30
32
|
results.push({
|
|
31
33
|
url: `https://www.curseforge.com/minecraft/mc-mods/${pluginConfig.curseforge.project_id}/files/${curseforgeId}`,
|
|
32
34
|
});
|
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,yBAAyB,GAAoB,EAAE,CAAC;AAEpD,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,KAAK,MAAM,QAAQ,IAAI,YAAY,CAAC,UAAU,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC;YACrD,yBAAyB,EAAE,IAAI,CAC3B,MAAM,2BAA2B,CAC7B,QAAQ,EACR,YAAY,EACZ,OAAO,EACP,QAAQ,CACX,CACJ,CAAC;QACN,CAAC;QAED,MAAM,CAAC,GAAG,CACN,+BAA+B,MAAM,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,8CAA8C,CAChI,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,yBAAyB,CAAC,KAAK,CAAC,CACnC,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/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): Promise<number[]>;
|
|
6
|
+
export declare function getCurseForgeGameVersionIds(apiToken: string, pluginConfig: PluginConfig, context: PrepareContext, strategy: Record<string, string>): Promise<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,EACvB,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GACjC,OAAO,CAAC,MAAM,EAAE,CAAC,CAyEnB"}
|
package/dist/prepare.js
CHANGED
|
@@ -1,14 +1,17 @@
|
|
|
1
1
|
import axios from 'axios';
|
|
2
2
|
import { BUKKIT_GAME_VERSION_TYPE, } from './definitions/curseforge.js';
|
|
3
|
-
import {
|
|
3
|
+
import { resolveAndRenderTemplates } from './utils/template-utils.js';
|
|
4
4
|
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, strategy) {
|
|
9
9
|
const { nextRelease } = context;
|
|
10
10
|
const curseforgeConfig = pluginConfig.curseforge;
|
|
11
|
-
const modLoaders =
|
|
11
|
+
const modLoaders = resolveAndRenderTemplates([pluginConfig.curseforge?.mod_loaders, pluginConfig.mod_loaders], {
|
|
12
|
+
nextRelease,
|
|
13
|
+
...strategy,
|
|
14
|
+
}) || [];
|
|
12
15
|
const javaVersions = toArray(curseforgeConfig.java_versions);
|
|
13
16
|
const gameVersions = toArray(curseforgeConfig.game_versions || pluginConfig.game_versions);
|
|
14
17
|
const pluginGameVersions = toArray(curseforgeConfig.game_versions_for_plugins);
|
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,
|
|
1
|
+
{"version":3,"file":"prepare.js","sourceRoot":"","sources":["../src/prepare.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"template-utils.d.ts","sourceRoot":"","sources":["../../src/utils/template-utils.ts"],"names":[],"mappings":"AAGA;;;;;;GAMG;AACH,wBAAgB,eAAe,CAC3B,SAAS,EAAE,MAAM,GAAG,MAAM,EAAE,EAC5B,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAC7B,MAAM,EAAE,CAEV;AAED;;;;;;GAMG;AACH,wBAAgB,wBAAwB,CACpC,OAAO,EAAE,KAAK,CAAC,MAAM,GAAG,SAAS,GAAG,IAAI,CAAC,EACzC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAC7B,MAAM,GAAG,SAAS,CAKpB;AAED;;;;;;;GAOG;AACH,wBAAgB,yBAAyB,CACrC,OAAO,EAAE,KAAK,CAAC,MAAM,GAAG,MAAM,EAAE,GAAG,SAAS,GAAG,IAAI,CAAC,EACpD,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAC7B,MAAM,EAAE,GAAG,SAAS,
|
|
1
|
+
{"version":3,"file":"template-utils.d.ts","sourceRoot":"","sources":["../../src/utils/template-utils.ts"],"names":[],"mappings":"AAGA;;;;;;GAMG;AACH,wBAAgB,eAAe,CAC3B,SAAS,EAAE,MAAM,GAAG,MAAM,EAAE,EAC5B,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAC7B,MAAM,EAAE,CAEV;AAED;;;;;;GAMG;AACH,wBAAgB,wBAAwB,CACpC,OAAO,EAAE,KAAK,CAAC,MAAM,GAAG,SAAS,GAAG,IAAI,CAAC,EACzC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAC7B,MAAM,GAAG,SAAS,CAKpB;AAED;;;;;;;GAOG;AACH,wBAAgB,yBAAyB,CACrC,OAAO,EAAE,KAAK,CAAC,MAAM,GAAG,MAAM,EAAE,GAAG,SAAS,GAAG,IAAI,CAAC,EACpD,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAC7B,MAAM,EAAE,GAAG,SAAS,CAKtB"}
|
|
@@ -35,6 +35,6 @@ export function resolveAndRenderTemplates(sources, context) {
|
|
|
35
35
|
const source = sources.find(Boolean);
|
|
36
36
|
if (!source)
|
|
37
37
|
return undefined;
|
|
38
|
-
return renderTemplates(
|
|
38
|
+
return renderTemplates(source, context);
|
|
39
39
|
}
|
|
40
40
|
//# sourceMappingURL=template-utils.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"template-utils.js","sourceRoot":"","sources":["../../src/utils/template-utils.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,QAAQ,CAAC;AAC5B,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAErC;;;;;;GAMG;AACH,MAAM,UAAU,eAAe,CAC3B,SAA4B,EAC5B,OAA4B;IAE5B,OAAO,OAAO,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;AAC1E,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,wBAAwB,CACpC,OAAyC,EACzC,OAA4B;IAE5B,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACrC,IAAI,CAAC,MAAM;QAAE,OAAO,SAAS,CAAC;IAE9B,OAAO,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC;AAC5C,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,yBAAyB,CACrC,OAAoD,EACpD,OAA4B;IAE5B,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACrC,IAAI,CAAC,MAAM;QAAE,OAAO,SAAS,CAAC;IAE9B,OAAO,eAAe,
|
|
1
|
+
{"version":3,"file":"template-utils.js","sourceRoot":"","sources":["../../src/utils/template-utils.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,QAAQ,CAAC;AAC5B,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAErC;;;;;;GAMG;AACH,MAAM,UAAU,eAAe,CAC3B,SAA4B,EAC5B,OAA4B;IAE5B,OAAO,OAAO,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;AAC1E,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,wBAAwB,CACpC,OAAyC,EACzC,OAA4B;IAE5B,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACrC,IAAI,CAAC,MAAM;QAAE,OAAO,SAAS,CAAC;IAE9B,OAAO,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC;AAC5C,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,yBAAyB,CACrC,OAAoD,EACpD,OAA4B;IAE5B,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACrC,IAAI,CAAC,MAAM;QAAE,OAAO,SAAS,CAAC;IAE9B,OAAO,eAAe,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAC5C,CAAC"}
|
package/package.json
CHANGED
package/src/curseforge.ts
CHANGED
|
@@ -4,9 +4,11 @@ import { readFile } from 'fs/promises';
|
|
|
4
4
|
import { basename } from 'path';
|
|
5
5
|
import { PublishContext } from 'semantic-release';
|
|
6
6
|
import { PluginConfig } from './definitions/plugin-config.js';
|
|
7
|
-
import { getCurseForgeModLoaders } from './utils/platform/curseforge-utils.js';
|
|
8
7
|
import { findFilesAndPrimaryFile } from './utils/platform/utils.js';
|
|
9
|
-
import {
|
|
8
|
+
import {
|
|
9
|
+
resolveAndRenderTemplate,
|
|
10
|
+
resolveAndRenderTemplates,
|
|
11
|
+
} from './utils/template-utils.js';
|
|
10
12
|
|
|
11
13
|
/**
|
|
12
14
|
* Publishes files to CurseForge.
|
|
@@ -35,6 +37,7 @@ export async function publishToCurseforge(
|
|
|
35
37
|
let primaryFileId = await uploadCurseForgeFile(
|
|
36
38
|
pluginConfig,
|
|
37
39
|
context,
|
|
40
|
+
strategy,
|
|
38
41
|
curseforgeGameVersionIds,
|
|
39
42
|
primaryFile
|
|
40
43
|
);
|
|
@@ -47,6 +50,7 @@ export async function publishToCurseforge(
|
|
|
47
50
|
await uploadCurseForgeFile(
|
|
48
51
|
pluginConfig,
|
|
49
52
|
context,
|
|
53
|
+
strategy,
|
|
50
54
|
curseforgeGameVersionIds,
|
|
51
55
|
filePath,
|
|
52
56
|
primaryFileId
|
|
@@ -62,6 +66,7 @@ export async function publishToCurseforge(
|
|
|
62
66
|
async function uploadCurseForgeFile(
|
|
63
67
|
pluginConfig: PluginConfig,
|
|
64
68
|
context: PublishContext,
|
|
69
|
+
strategy: Record<string, string>,
|
|
65
70
|
curseforgeGameVersionIds: number[] | undefined,
|
|
66
71
|
filePath: string,
|
|
67
72
|
primaryFileId?: number
|
|
@@ -81,6 +86,7 @@ async function uploadCurseForgeFile(
|
|
|
81
86
|
const metadata = prepareMetadata(
|
|
82
87
|
pluginConfig,
|
|
83
88
|
context,
|
|
89
|
+
strategy,
|
|
84
90
|
curseforgeGameVersionIds
|
|
85
91
|
);
|
|
86
92
|
|
|
@@ -121,6 +127,7 @@ async function uploadCurseForgeFile(
|
|
|
121
127
|
function prepareMetadata(
|
|
122
128
|
pluginConfig: PluginConfig,
|
|
123
129
|
context: PublishContext,
|
|
130
|
+
strategy: Record<string, string>,
|
|
124
131
|
curseforgeGameVersionIds: number[] | undefined
|
|
125
132
|
) {
|
|
126
133
|
const { nextRelease } = context;
|
|
@@ -137,12 +144,22 @@ function prepareMetadata(
|
|
|
137
144
|
|
|
138
145
|
const displayName = resolveAndRenderTemplate(
|
|
139
146
|
[curseforge?.display_name, pluginConfig.display_name],
|
|
140
|
-
{
|
|
147
|
+
{
|
|
148
|
+
nextRelease,
|
|
149
|
+
...strategy,
|
|
150
|
+
}
|
|
141
151
|
);
|
|
142
152
|
|
|
143
|
-
metadata.
|
|
153
|
+
metadata.displayName = displayName || context.nextRelease.name;
|
|
144
154
|
|
|
145
|
-
|
|
155
|
+
const modLoaders = resolveAndRenderTemplates(
|
|
156
|
+
[pluginConfig.curseforge?.mod_loaders, pluginConfig.mod_loaders],
|
|
157
|
+
{
|
|
158
|
+
nextRelease,
|
|
159
|
+
...strategy,
|
|
160
|
+
}
|
|
161
|
+
);
|
|
162
|
+
metadata.modLoaders = modLoaders || [];
|
|
146
163
|
|
|
147
164
|
return metadata;
|
|
148
165
|
}
|
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 curseforgeGameVersionsIds: number[]
|
|
12
|
+
let curseforgeGameVersionsIds: Array<number[]> = [];
|
|
13
13
|
|
|
14
14
|
export async function verifyConditions(
|
|
15
15
|
pluginConfig: PluginConfig,
|
|
@@ -36,14 +36,19 @@ 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
|
-
|
|
42
|
-
|
|
43
|
-
|
|
39
|
+
for (const strategy of pluginConfig.strategies || [{}]) {
|
|
40
|
+
curseforgeGameVersionsIds?.push(
|
|
41
|
+
await getCurseForgeGameVersionIds(
|
|
42
|
+
apiToken,
|
|
43
|
+
pluginConfig,
|
|
44
|
+
context,
|
|
45
|
+
strategy
|
|
46
|
+
)
|
|
47
|
+
);
|
|
48
|
+
}
|
|
44
49
|
|
|
45
50
|
logger.log(
|
|
46
|
-
`Successfully transform into ${Object.keys(curseforgeGameVersionsIds).length} CurseForge game versions`
|
|
51
|
+
`Successfully transform into ${Object.keys(curseforgeGameVersionsIds[0]).length} CurseForge game versions for every strategy`
|
|
47
52
|
);
|
|
48
53
|
}
|
|
49
54
|
}
|
|
@@ -55,13 +60,15 @@ export async function publish(
|
|
|
55
60
|
const { env, logger } = context;
|
|
56
61
|
const results: { url: string }[] = [];
|
|
57
62
|
|
|
58
|
-
for (const strategy of
|
|
63
|
+
for (const [index, strategy] of (
|
|
64
|
+
pluginConfig.strategies || [{}]
|
|
65
|
+
).entries()) {
|
|
59
66
|
if (env.CURSEFORGE_TOKEN) {
|
|
60
67
|
const curseforgeId = await publishToCurseforge(
|
|
61
68
|
pluginConfig,
|
|
62
69
|
context,
|
|
63
70
|
strategy,
|
|
64
|
-
curseforgeGameVersionsIds
|
|
71
|
+
curseforgeGameVersionsIds[index]
|
|
65
72
|
);
|
|
66
73
|
results.push({
|
|
67
74
|
url: `https://www.curseforge.com/minecraft/mc-mods/${pluginConfig.curseforge!.project_id}/files/${curseforgeId}`,
|
package/src/prepare.ts
CHANGED
|
@@ -7,7 +7,7 @@ import {
|
|
|
7
7
|
CurseForgeGameVersionType,
|
|
8
8
|
} from './definitions/curseforge.js';
|
|
9
9
|
import { PluginConfig } from './definitions/plugin-config.js';
|
|
10
|
-
import {
|
|
10
|
+
import { resolveAndRenderTemplates } from './utils/template-utils.js';
|
|
11
11
|
import { toArray } from './utils/utils.js';
|
|
12
12
|
|
|
13
13
|
/**
|
|
@@ -16,13 +16,21 @@ import { toArray } from './utils/utils.js';
|
|
|
16
16
|
export async function getCurseForgeGameVersionIds(
|
|
17
17
|
apiToken: string,
|
|
18
18
|
pluginConfig: PluginConfig,
|
|
19
|
-
context: PrepareContext
|
|
19
|
+
context: PrepareContext,
|
|
20
|
+
strategy: Record<string, string>
|
|
20
21
|
): Promise<number[]> {
|
|
21
22
|
const { nextRelease } = context;
|
|
22
23
|
|
|
23
24
|
const curseforgeConfig = pluginConfig.curseforge!;
|
|
24
25
|
|
|
25
|
-
const modLoaders =
|
|
26
|
+
const modLoaders =
|
|
27
|
+
resolveAndRenderTemplates(
|
|
28
|
+
[pluginConfig.curseforge?.mod_loaders, pluginConfig.mod_loaders],
|
|
29
|
+
{
|
|
30
|
+
nextRelease,
|
|
31
|
+
...strategy,
|
|
32
|
+
}
|
|
33
|
+
) || [];
|
|
26
34
|
|
|
27
35
|
const javaVersions = toArray(curseforgeConfig.java_versions);
|
|
28
36
|
const gameVersions = toArray(
|
|
@@ -47,8 +47,5 @@ export function resolveAndRenderTemplates(
|
|
|
47
47
|
const source = sources.find(Boolean);
|
|
48
48
|
if (!source) return undefined;
|
|
49
49
|
|
|
50
|
-
return renderTemplates(
|
|
51
|
-
typeof source === 'string' ? toArray(source) : source,
|
|
52
|
-
context
|
|
53
|
-
);
|
|
50
|
+
return renderTemplates(source, context);
|
|
54
51
|
}
|
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
import { NextRelease } from 'semantic-release';
|
|
2
|
-
import { PluginConfig } from '../../definitions/plugin-config.js';
|
|
3
|
-
export declare function getCurseForgeModLoaders(pluginConfig: PluginConfig, nextRelease: NextRelease): string[];
|
|
4
|
-
//# sourceMappingURL=curseforge-utils.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"curseforge-utils.d.ts","sourceRoot":"","sources":["../../../src/utils/platform/curseforge-utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,YAAY,EAAE,MAAM,oCAAoC,CAAC;AAGlE,wBAAgB,uBAAuB,CACnC,YAAY,EAAE,YAAY,EAC1B,WAAW,EAAE,WAAW,GACzB,MAAM,EAAE,CASV"}
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
import { resolveAndRenderTemplates } from '../template-utils.js';
|
|
2
|
-
export function getCurseForgeModLoaders(pluginConfig, nextRelease) {
|
|
3
|
-
return (resolveAndRenderTemplates([pluginConfig.curseforge?.mod_loaders, pluginConfig.mod_loaders], {
|
|
4
|
-
nextRelease,
|
|
5
|
-
}) || []);
|
|
6
|
-
}
|
|
7
|
-
//# sourceMappingURL=curseforge-utils.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"curseforge-utils.js","sourceRoot":"","sources":["../../../src/utils/platform/curseforge-utils.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,yBAAyB,EAAE,MAAM,sBAAsB,CAAC;AAEjE,MAAM,UAAU,uBAAuB,CACnC,YAA0B,EAC1B,WAAwB;IAExB,OAAO,CACH,yBAAyB,CACrB,CAAC,YAAY,CAAC,UAAU,EAAE,WAAW,EAAE,YAAY,CAAC,WAAW,CAAC,EAChE;QACI,WAAW;KACd,CACJ,IAAI,EAAE,CACV,CAAC;AACN,CAAC"}
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
import { NextRelease } from 'semantic-release';
|
|
2
|
-
import { PluginConfig } from '../../definitions/plugin-config.js';
|
|
3
|
-
import { resolveAndRenderTemplates } from '../template-utils.js';
|
|
4
|
-
|
|
5
|
-
export function getCurseForgeModLoaders(
|
|
6
|
-
pluginConfig: PluginConfig,
|
|
7
|
-
nextRelease: NextRelease
|
|
8
|
-
): string[] {
|
|
9
|
-
return (
|
|
10
|
-
resolveAndRenderTemplates(
|
|
11
|
-
[pluginConfig.curseforge?.mod_loaders, pluginConfig.mod_loaders],
|
|
12
|
-
{
|
|
13
|
-
nextRelease,
|
|
14
|
-
}
|
|
15
|
-
) || []
|
|
16
|
-
);
|
|
17
|
-
}
|