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 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修复
@@ -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;AAK9D;;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,CAsCjB"}
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"}
@@ -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], { nextRelease });
74
- metadata.display_name = displayName || context.nextRelease.name;
75
- metadata.modLoaders = getCurseForgeModLoaders(pluginConfig, nextRelease);
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
@@ -1 +1 @@
1
- {"version":3,"file":"curseforge.js","sourceRoot":"","sources":["../src/curseforge.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"curseforge.js","sourceRoot":"","sources":["../src/curseforge.ts"],"names":[],"mappings":"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"}
@@ -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,iBAkB1B;AAED,wBAAsB,OAAO,CACzB,YAAY,EAAE,YAAY,EAC1B,OAAO,EAAE,cAAc,GACxB,OAAO,CAAC;IAAE,GAAG,EAAE,MAAM,CAAA;CAAE,EAAE,CAAC,CAsC5B"}
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
- curseforgeGameVersionsIds = await getCurseForgeGameVersionIds(apiToken, pluginConfig, context);
21
- logger.log(`Successfully transform into ${Object.keys(curseforgeGameVersionsIds).length} CurseForge game versions`);
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,yBAA+C,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,yBAAyB,GAAG,MAAM,2BAA2B,CACzD,QAAQ,EACR,YAAY,EACZ,OAAO,CACV,CAAC;QAEF,MAAM,CAAC,GAAG,CACN,+BAA+B,MAAM,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC,MAAM,2BAA2B,CAC1G,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,QAAQ,IAAI,YAAY,CAAC,UAAU,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC;QACrD,IAAI,GAAG,CAAC,gBAAgB,EAAE,CAAC;YACvB,MAAM,YAAY,GAAG,MAAM,mBAAmB,CAC1C,YAAY,EACZ,OAAO,EACP,QAAQ,EACR,yBAAyB,CAC5B,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"}
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
@@ -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,GACxB,OAAO,CAAC,MAAM,EAAE,CAAC,CAkEnB"}
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 { getCurseForgeModLoaders } from './utils/platform/curseforge-utils.js';
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 = getCurseForgeModLoaders(pluginConfig, nextRelease);
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);
@@ -1 +1 @@
1
- {"version":3,"file":"prepare.js","sourceRoot":"","sources":["../src/prepare.ts"],"names":[],"mappings":"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"}
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,CAQtB"}
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(typeof source === 'string' ? toArray(source) : source, context);
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,CAClB,OAAO,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,EACrD,OAAO,CACV,CAAC;AACN,CAAC"}
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
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "semantic-release-minecraft",
3
- "version": "2.0.2",
3
+ "version": "2.0.3",
4
4
  "description": "Automated Release For Minecraft Project",
5
5
  "keywords": [
6
6
  "semantic-release",
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 { resolveAndRenderTemplate } from './utils/template-utils.js';
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
- { nextRelease }
147
+ {
148
+ nextRelease,
149
+ ...strategy,
150
+ }
141
151
  );
142
152
 
143
- metadata.display_name = displayName || context.nextRelease.name;
153
+ metadata.displayName = displayName || context.nextRelease.name;
144
154
 
145
- metadata.modLoaders = getCurseForgeModLoaders(pluginConfig, nextRelease);
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[] | undefined;
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
- curseforgeGameVersionsIds = await getCurseForgeGameVersionIds(
40
- apiToken,
41
- pluginConfig,
42
- context
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 pluginConfig.strategies || [{}]) {
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 { getCurseForgeModLoaders } from './utils/platform/curseforge-utils.js';
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 = getCurseForgeModLoaders(pluginConfig, nextRelease);
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
- }