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 CHANGED
@@ -14,7 +14,7 @@
14
14
  { "type": "fix", "section": "🐛 Bug修复" },
15
15
  { "type": "docs", "section": "📚 文档更新" },
16
16
  { "type": "style", "section": "💄 样式优化" },
17
- { "type": "refactor", "section": "♻️ 代码重构" },
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": "angular",
44
+ "preset": "conventionalcommits",
45
45
  "releaseRules": [
46
46
  {
47
- "type": "refactor",
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修复
@@ -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,CAwCjB"}
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"}
@@ -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
- let primaryFileId = await uploadCurseForgeFile(pluginConfig, context, strategy, curseforgeGameVersionIds, primaryFile);
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, strategy, curseforgeGameVersionIds, filePath, primaryFileId);
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, strategy, curseforgeGameVersionIds, filePath, primaryFileId) {
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
- 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 || [];
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
@@ -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,iBAuB1B;AAED,wBAAsB,OAAO,CACzB,YAAY,EAAE,YAAY,EAC1B,OAAO,EAAE,cAAc,GACxB,OAAO,CAAC;IAAE,GAAG,EAAE,MAAM,CAAA;CAAE,EAAE,CAAC,CAwC5B"}
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 curseforgeGameVersionsIds = [];
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
- 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`);
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, curseforgeGameVersionsIds[index]);
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,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"}
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"}
@@ -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,CA6JjB"}
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
- const displayName = resolveAndRenderTemplate([modrinth?.display_name, pluginConfig.display_name], {
55
- nextRelease,
56
- ...strategy,
57
- });
58
- versionData.name = displayName || nextRelease.name;
59
- const versionNumber = resolveAndRenderTemplate([modrinth?.version_number], {
60
- nextRelease,
61
- ...strategy,
62
- });
63
- versionData.version_number = versionNumber || nextRelease.version;
64
- const gameVersions = resolveAndRenderTemplates([modrinth?.game_versions, pluginConfig.game_versions], {
65
- nextRelease,
66
- ...strategy,
67
- });
68
- versionData.game_versions = gameVersions || [];
69
- const modLoaders = resolveAndRenderTemplates([modrinth?.mod_loaders, pluginConfig.mod_loaders], {
70
- nextRelease,
71
- ...strategy,
72
- });
73
- versionData.loaders = modLoaders || [];
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
- throw new Error(`Failed to publish to Modrinth (${versionResponse.status}): ${resData.error}\n${resData.description}`);
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
@@ -1 +1 @@
1
- {"version":3,"file":"modrinth.js","sourceRoot":"","sources":["../src/modrinth.ts"],"names":[],"mappings":"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"}
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, strategy: Record<string, string>): Promise<number[]>;
6
+ export declare function getCurseForgeGameVersionIds(apiToken: string, pluginConfig: PluginConfig, context: PrepareContext): Promise<Array<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,EACvB,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GACjC,OAAO,CAAC,MAAM,EAAE,CAAC,CAyEnB"}
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, strategy) {
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
- const javaVersionNames = javaVersions.map((javaVersion) => `Java ${javaVersion}`);
22
- // TODO: Modrinth CurseForge 的游戏版本命名格式转化,以 Modrinth 为基准
23
- // const gameVersionNames = gameVersions.map(x => formatCurseForgeGameVersionSnapshot(x));
24
- const gameVersionIds = findCurseForgeGameVersionIdsByNames(map.game_versions, gameVersions);
25
- const loaderIds = findCurseForgeGameVersionIdsByNames(map.loaders, modLoaders);
26
- const javaIds = findCurseForgeGameVersionIdsByNames(map.java_versions, javaVersionNames);
27
- const pluginGameVersionIds = findCurseForgeGameVersionIdsByNames(map.game_versions_for_plugins, pluginGameVersions);
28
- const addonGameVersionIds = findCurseForgeGameVersionIdsByNames(map.game_versions_for_addons, addonGameVersions);
29
- const environmentIds = findCurseForgeGameVersionIdsByNames(map.environments, environments);
30
- const curseforgeGameVersionIds = [];
31
- curseforgeGameVersionIds.push(...gameVersionIds, ...loaderIds, ...javaIds, ...pluginGameVersionIds, ...addonGameVersionIds, ...environmentIds);
32
- return curseforgeGameVersionIds;
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.
@@ -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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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "semantic-release-minecraft",
3
- "version": "2.0.9",
3
+ "version": "2.0.10",
4
4
  "description": "Automated Release For Minecraft Project",
5
5
  "keywords": [
6
6
  "semantic-release",
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
- let primaryFileId = await uploadCurseForgeFile(
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
- strategy,
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
- strategy: Record<string, string>,
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
- const displayName = resolveAndRenderTemplate(
146
- [curseforge?.display_name, pluginConfig.display_name],
147
- {
148
- nextRelease,
149
- ...strategy,
150
- }
151
- );
152
-
153
- metadata.displayName = displayName || context.nextRelease.name;
154
-
155
- const modLoaders = resolveAndRenderTemplates(
156
- [pluginConfig.curseforge?.mod_loaders, pluginConfig.mod_loaders],
157
- {
158
- nextRelease,
159
- ...strategy,
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 curseforgeGameVersionsIds: Array<number[]> = [];
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
- for (const strategy of pluginConfig.strategies || [{}]) {
40
- curseforgeGameVersionsIds?.push(
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(curseforgeGameVersionsIds[0]).length} CurseForge game versions for every strategy`
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
- curseforgeGameVersionsIds[index]
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
- const displayName = resolveAndRenderTemplate(
87
- [modrinth?.display_name, pluginConfig.display_name],
88
- {
89
- nextRelease,
90
- ...strategy,
91
- }
92
- );
93
-
94
- versionData.name = displayName || nextRelease.name;
95
-
96
- const versionNumber = resolveAndRenderTemplate([modrinth?.version_number], {
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
- versionData.game_versions = gameVersions || [];
112
-
113
- const modLoaders = resolveAndRenderTemplates(
114
- [modrinth?.mod_loaders, pluginConfig.mod_loaders],
115
- {
116
- nextRelease,
117
- ...strategy,
118
- }
119
- );
120
-
121
- versionData.loaders = modLoaders || [];
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}): ${resData.error}\n${resData.description}`
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
- strategy: Record<string, string>
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
- const javaVersionNames = javaVersions.map(
48
- (javaVersion: string) => `Java ${javaVersion}`
49
- );
50
-
51
- // TODO: Modrinth 和 CurseForge 的游戏版本命名格式转化,以 Modrinth 为基准
52
- // const gameVersionNames = gameVersions.map(x => formatCurseForgeGameVersionSnapshot(x));
53
-
54
- const gameVersionIds = findCurseForgeGameVersionIdsByNames(
55
- map.game_versions,
56
- gameVersions
57
- );
58
-
59
- const loaderIds = findCurseForgeGameVersionIdsByNames(
60
- map.loaders,
61
- modLoaders
62
- );
63
-
64
- const javaIds = findCurseForgeGameVersionIdsByNames(
65
- map.java_versions,
66
- javaVersionNames
67
- );
68
-
69
- const pluginGameVersionIds = findCurseForgeGameVersionIdsByNames(
70
- map.game_versions_for_plugins,
71
- pluginGameVersions
72
- );
73
-
74
- const addonGameVersionIds = findCurseForgeGameVersionIdsByNames(
75
- map.game_versions_for_addons,
76
- addonGameVersions
77
- );
78
-
79
- const environmentIds = findCurseForgeGameVersionIdsByNames(
80
- map.environments,
81
- environments
82
- );
83
-
84
- const curseforgeGameVersionIds: number[] = [];
85
- curseforgeGameVersionIds.push(
86
- ...gameVersionIds,
87
- ...loaderIds,
88
- ...javaIds,
89
- ...pluginGameVersionIds,
90
- ...addonGameVersionIds,
91
- ...environmentIds
92
- );
93
- return curseforgeGameVersionIds;
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
  /**