semantic-release-minecraft 1.1.2 → 1.2.0

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.
Files changed (58) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/dist/curseforge.d.ts +2 -2
  3. package/dist/curseforge.d.ts.map +1 -1
  4. package/dist/curseforge.js +47 -115
  5. package/dist/curseforge.js.map +1 -1
  6. package/dist/definitions/curseforge.d.ts +6 -6
  7. package/dist/definitions/{plugin_config.d.ts → plugin-config.d.ts} +4 -3
  8. package/dist/definitions/plugin-config.d.ts.map +1 -0
  9. package/dist/definitions/plugin-config.js +2 -0
  10. package/dist/definitions/plugin-config.js.map +1 -0
  11. package/dist/index.d.ts +4 -4
  12. package/dist/index.d.ts.map +1 -1
  13. package/dist/index.js +12 -23
  14. package/dist/index.js.map +1 -1
  15. package/dist/modrinth.d.ts +3 -3
  16. package/dist/modrinth.d.ts.map +1 -1
  17. package/dist/modrinth.js +58 -223
  18. package/dist/modrinth.js.map +1 -1
  19. package/dist/prepare.d.ts +4 -8
  20. package/dist/prepare.d.ts.map +1 -1
  21. package/dist/prepare.js +31 -32
  22. package/dist/prepare.js.map +1 -1
  23. package/dist/utils/glob-utils.d.ts +6 -0
  24. package/dist/utils/glob-utils.d.ts.map +1 -0
  25. package/dist/utils/glob-utils.js +27 -0
  26. package/dist/utils/glob-utils.js.map +1 -0
  27. package/dist/utils/platform/curseforge-utils.d.ts +4 -0
  28. package/dist/utils/platform/curseforge-utils.d.ts.map +1 -0
  29. package/dist/utils/platform/curseforge-utils.js +7 -0
  30. package/dist/utils/platform/curseforge-utils.js.map +1 -0
  31. package/dist/utils/platform/utils.d.ts +10 -0
  32. package/dist/utils/platform/utils.d.ts.map +1 -0
  33. package/dist/utils/platform/utils.js +56 -0
  34. package/dist/utils/platform/utils.js.map +1 -0
  35. package/dist/utils/template-utils.d.ts +26 -0
  36. package/dist/utils/template-utils.d.ts.map +1 -0
  37. package/dist/utils/template-utils.js +40 -0
  38. package/dist/utils/template-utils.js.map +1 -0
  39. package/dist/utils/utils.d.ts +4 -26
  40. package/dist/utils/utils.d.ts.map +1 -1
  41. package/dist/utils/utils.js +5 -79
  42. package/dist/utils/utils.js.map +1 -1
  43. package/package.json +1 -1
  44. package/src/curseforge.ts +98 -160
  45. package/src/definitions/curseforge.ts +6 -6
  46. package/src/definitions/plugin-config.ts +68 -0
  47. package/src/index.ts +28 -34
  48. package/src/modrinth.ts +78 -271
  49. package/src/prepare.ts +43 -52
  50. package/src/utils/glob-utils.ts +38 -0
  51. package/src/utils/platform/curseforge-utils.ts +17 -0
  52. package/src/utils/platform/utils.ts +84 -0
  53. package/src/utils/template-utils.ts +54 -0
  54. package/src/utils/utils.ts +5 -115
  55. package/dist/definitions/plugin_config.d.ts.map +0 -1
  56. package/dist/definitions/plugin_config.js +0 -2
  57. package/dist/definitions/plugin_config.js.map +0 -1
  58. package/src/definitions/plugin_config.ts +0 -68
package/CHANGELOG.md CHANGED
@@ -1,3 +1,15 @@
1
+ ## [1.2.0](https://github.com/pynickle/semantic-release-minecraft/compare/v1.1.3...v1.2.0) (2025-10-20)
2
+
3
+ ### ✨ 功能更新
4
+
5
+ * add strategy for multiple release ([b688b0c](https://github.com/pynickle/semantic-release-minecraft/commit/b688b0cd698c63f8e3f00216cd317a2f665561eb))
6
+
7
+ ## [1.1.3](https://github.com/pynickle/semantic-release-minecraft/compare/v1.1.2...v1.1.3) (2025-10-18)
8
+
9
+ ### 🐛 Bug修复
10
+
11
+ * fix argument error ([b8f2f74](https://github.com/pynickle/semantic-release-minecraft/commit/b8f2f74035081b8637f9ce4ede90dfcc013e5f9c))
12
+
1
13
  ## [1.1.2](https://github.com/pynickle/semantic-release-minecraft/compare/v1.1.1...v1.1.2) (2025-10-18)
2
14
 
3
15
  ### 🐛 Bug修复
@@ -1,4 +1,4 @@
1
1
  import { PublishContext } from 'semantic-release';
2
- import { Plugin_config } from './definitions/plugin_config.js';
3
- export declare function publishToCurseforge(pluginConfig: Plugin_config, context: PublishContext, curseforgeGameVersionIds?: number[]): Promise<string>;
2
+ import { PluginConfig } from './definitions/plugin-config.js';
3
+ export declare function publishToCurseforge(pluginConfig: PluginConfig, context: PublishContext, strategy: Record<string, string>, curseforgeGameVersionIds?: number[]): Promise<number>;
4
4
  //# sourceMappingURL=curseforge.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"curseforge.d.ts","sourceRoot":"","sources":["../src/curseforge.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAgE/D,wBAAsB,mBAAmB,CACrC,YAAY,EAAE,aAAa,EAC3B,OAAO,EAAE,cAAc,EACvB,wBAAwB,CAAC,EAAE,MAAM,EAAE,GACpC,OAAO,CAAC,MAAM,CAAC,CA+HjB"}
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,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,CAqCjB"}
@@ -1,137 +1,69 @@
1
1
  import axios from 'axios';
2
2
  import FormData from 'form-data';
3
3
  import { readFile } from 'fs/promises';
4
- import { findFiles, getCurseForgeModLoaders, resolveMultipleTemplate, resolveTemplate, } from './utils/utils.js';
5
- /**
6
- * CurseForge 查找单个文件
7
- */
8
- async function findFileCurseforge(pluginConfig, context) {
9
- const { env, logger } = context;
10
- const version = context.nextRelease.version;
11
- const curseforgeGlob = resolveMultipleTemplate([
12
- pluginConfig.curseforge?.glob,
13
- pluginConfig.glob,
14
- env.CURSEFORGE_GLOB,
15
- env.GLOB,
16
- ], {
17
- nextRelease: context.nextRelease,
18
- });
19
- // 查找文件
20
- const files = await findFiles(curseforgeGlob, context);
21
- // 如果只找到一个文件,直接返回
22
- if (files.length === 1) {
23
- logger.log(`Using the only found file for CurseForge: ${files[0]}`);
24
- return files[0];
25
- }
26
- logger.log(`Found ${files.length} files for CurseForge, trying to filter by version`);
27
- // 如果有版本号,尝试筛选包含版本号的文件
28
- if (version) {
29
- const versionedFiles = files.filter((file) => file.includes(version));
30
- if (versionedFiles.length === 1) {
31
- logger.log(`Using versioned file for CurseForge: ${versionedFiles[0]}`);
32
- return versionedFiles[0];
33
- }
34
- else if (versionedFiles.length > 1) {
35
- throw new Error(`Multiple files found containing version ${version} for CurseForge. Please specify a more specific glob pattern. Found: ${versionedFiles.join(', ')}`);
4
+ import { basename } from 'path';
5
+ import { getCurseForgeModLoaders } from './utils/platform/curseforge-utils';
6
+ import { findFilesAndPrimaryFile } from './utils/platform/utils';
7
+ import { resolveAndRenderTemplate } from './utils/template-utils';
8
+ export async function publishToCurseforge(pluginConfig, context, strategy, curseforgeGameVersionIds) {
9
+ const { logger } = context;
10
+ const { curseforge } = pluginConfig;
11
+ const projectId = curseforge.project_id;
12
+ const { files, primaryFile } = await findFilesAndPrimaryFile(pluginConfig, context, strategy);
13
+ logger.log(`Publishing ${files.length} file(s) to CurseForge project ${projectId}...`);
14
+ let primaryFileId = await uploadCurseForgeFile(pluginConfig, context, curseforgeGameVersionIds, primaryFile);
15
+ for (const filePath of files) {
16
+ if (filePath === primaryFile) {
17
+ continue;
36
18
  }
19
+ await uploadCurseForgeFile(pluginConfig, context, curseforgeGameVersionIds, filePath, primaryFileId);
37
20
  }
38
- // 如果无法筛选出单个文件,报错
39
- throw new Error(`Multiple files found for CurseForge but could not determine which to use. Found: ${files.join(', ')}`);
21
+ return primaryFileId;
40
22
  }
41
- export async function publishToCurseforge(pluginConfig, context, curseforgeGameVersionIds) {
23
+ async function uploadCurseForgeFile(pluginConfig, context, curseforgeGameVersionIds, filePath, primaryFileId) {
42
24
  const { env, logger } = context;
43
25
  const { curseforge } = pluginConfig;
44
26
  const apiKey = env.CURSEFORGE_TOKEN;
45
27
  const projectId = curseforge.project_id;
46
- const nextRelease = context.nextRelease;
47
- // 查找单个文件
48
- const filePath = await findFileCurseforge(pluginConfig, context);
49
- logger.log(`Publishing file ${filePath} to CurseForge project ${projectId}...`);
50
28
  const form = new FormData();
51
29
  const file = await readFile(filePath);
52
30
  form.append('file', file, {
53
- filename: filePath.split('\\').pop() || 'mod.jar',
31
+ filename: basename(filePath),
32
+ });
33
+ const metadata = prepareMetadata(pluginConfig, context, curseforgeGameVersionIds);
34
+ if (primaryFileId) {
35
+ metadata.parentFileID = primaryFileId;
36
+ }
37
+ form.append('metadata', metadata);
38
+ const response = await axios.post(`https://upload.curseforge.com/api/projects/${projectId}/upload-file`, form, {
39
+ headers: {
40
+ ...form.getHeaders(),
41
+ 'X-API-TOKEN': apiKey,
42
+ },
54
43
  });
55
- // 准备 metadata
56
- // display_name 按照优先级:平台特定配置 > 全局配置 > 平台特定环境变量 > 全局环境变量
57
- const displayName = resolveTemplate([
58
- curseforge?.display_name,
59
- pluginConfig.display_name,
60
- env.CURSEFORGE_DISPLAY_NAME,
61
- env.DISPLAY_NAME,
62
- ], { nextRelease });
63
- // 准备基础 metadata
44
+ const resData = response.data;
45
+ if (resData && typeof resData.id === 'number') {
46
+ logger.log(`Successfully published to CurseForge, File ID: ${resData.id}`);
47
+ return resData.id;
48
+ }
49
+ else {
50
+ throw new Error(`CurseForge API returned unexpected response: ${resData}`);
51
+ }
52
+ }
53
+ function prepareMetadata(pluginConfig, context, curseforgeGameVersionIds) {
54
+ const { nextRelease } = context;
55
+ const { curseforge } = pluginConfig;
64
56
  const metadata = {
65
57
  gameVersions: curseforgeGameVersionIds,
66
58
  releaseType: pluginConfig.release_type || 'release',
67
59
  changelog: curseforge?.changelog || context.nextRelease.notes,
68
60
  changelogType: curseforge?.changelog_type || 'markdown',
61
+ isMarkedForManualRelease: curseforge?.is_marked_for_manual_release || false,
62
+ relations: curseforge?.relations || [],
69
63
  };
70
- // 只有找到值时才添加 displayName
71
- if (displayName) {
72
- metadata.displayName = displayName;
73
- }
74
- else {
75
- // 如果没有找到任何配置,使用默认值
76
- metadata.displayName = context.nextRelease.name;
77
- }
78
- // 添加 metadataModLoaders(如果有值)
79
- const metadataModLoaders = getCurseForgeModLoaders(pluginConfig, env, nextRelease);
80
- if (metadataModLoaders) {
81
- metadata.modLoaders = metadataModLoaders;
82
- }
83
- // 只有当提供值时才添加这三个特定字段
84
- if (curseforge?.parent_file_id !== undefined) {
85
- metadata.parentFileID = curseforge.parent_file_id;
86
- }
87
- if (curseforge?.is_marked_for_manual_release !== undefined) {
88
- metadata.isMarkedForManualRelease =
89
- curseforge.is_marked_for_manual_release;
90
- }
91
- if (curseforge?.relations && Object.keys(curseforge.relations).length > 0) {
92
- metadata.relations = curseforge.relations;
93
- }
94
- form.append('metadata', JSON.stringify(metadata));
95
- try {
96
- const response = await axios.post(`https://upload.curseforge.com/api/projects/${projectId}/upload-file`, form, {
97
- headers: {
98
- ...form.getHeaders(),
99
- 'X-API-TOKEN': apiKey,
100
- },
101
- });
102
- // 验证返回的数据是否包含 id 字段
103
- if (response.data && typeof response.data.id === 'number') {
104
- logger.log(`Successfully published to CurseForge: ${response.data.displayName || `File ID: ${response.data.id}`}`);
105
- return response.data.id.toString();
106
- }
107
- else {
108
- throw new Error(`CurseForge API returned unexpected response: ${JSON.stringify(response.data)}`);
109
- }
110
- }
111
- catch (error) {
112
- if (error.response) {
113
- // 服务器返回了错误响应
114
- const status = error.response.status;
115
- const data = error.response.data;
116
- if (data && data.error && data.description) {
117
- logger.error(`CurseForge API Error (${status}): ${data.error} - ${data.description}`);
118
- throw new Error(`CurseForge 发布失败:${data.error} - ${data.description}`);
119
- }
120
- else {
121
- logger.error(`CurseForge API Error (${status}): ${JSON.stringify(data)}`);
122
- throw new Error(`CurseForge 发布失败 (状态码:${status}): ${JSON.stringify(data)}`);
123
- }
124
- }
125
- else if (error.request) {
126
- // 请求已发送但未收到响应
127
- logger.error('CurseForge API 请求失败,未收到响应');
128
- throw new Error('CurseForge 发布失败:未收到服务器响应');
129
- }
130
- else {
131
- // 请求配置出错
132
- logger.error('CurseForge API 请求配置错误:', error.message);
133
- throw new Error(`CurseForge 发布失败:${error.message}`);
134
- }
135
- }
64
+ const displayName = resolveAndRenderTemplate([curseforge?.display_name, pluginConfig.display_name], { nextRelease });
65
+ metadata.display_name = displayName || context.nextRelease.name;
66
+ metadata.modLoaders = getCurseForgeModLoaders(pluginConfig, nextRelease);
67
+ return metadata;
136
68
  }
137
69
  //# sourceMappingURL=curseforge.js.map
@@ -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;AAGvC,OAAO,EACH,SAAS,EACT,uBAAuB,EACvB,uBAAuB,EACvB,eAAe,GAClB,MAAM,kBAAkB,CAAC;AAE1B;;GAEG;AACH,KAAK,UAAU,kBAAkB,CAC7B,YAA2B,EAC3B,OAAuB;IAEvB,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC;IAChC,MAAM,OAAO,GAAG,OAAO,CAAC,WAAW,CAAC,OAAO,CAAC;IAE5C,MAAM,cAAc,GAAG,uBAAuB,CAC1C;QACI,YAAY,CAAC,UAAU,EAAE,IAAI;QAC7B,YAAY,CAAC,IAAI;QACjB,GAAG,CAAC,eAAe;QACnB,GAAG,CAAC,IAAI;KACX,EACD;QACI,WAAW,EAAE,OAAO,CAAC,WAAW;KACnC,CACJ,CAAC;IAEF,OAAO;IACP,MAAM,KAAK,GAAG,MAAM,SAAS,CAAC,cAAc,EAAE,OAAO,CAAC,CAAC;IAEvD,iBAAiB;IACjB,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACrB,MAAM,CAAC,GAAG,CAAC,6CAA6C,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QACpE,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC;IACpB,CAAC;IAED,MAAM,CAAC,GAAG,CACN,SAAS,KAAK,CAAC,MAAM,oDAAoD,CAC5E,CAAC;IAEF,sBAAsB;IACtB,IAAI,OAAO,EAAE,CAAC;QACV,MAAM,cAAc,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC;QACtE,IAAI,cAAc,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC9B,MAAM,CAAC,GAAG,CACN,wCAAwC,cAAc,CAAC,CAAC,CAAC,EAAE,CAC9D,CAAC;YACF,OAAO,cAAc,CAAC,CAAC,CAAC,CAAC;QAC7B,CAAC;aAAM,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACnC,MAAM,IAAI,KAAK,CACX,2CAA2C,OAAO,wEAAwE,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CACxJ,CAAC;QACN,CAAC;IACL,CAAC;IAED,iBAAiB;IACjB,MAAM,IAAI,KAAK,CACX,oFAAoF,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CACzG,CAAC;AACN,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACrC,YAA2B,EAC3B,OAAuB,EACvB,wBAAmC;IAEnC,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC;IAChC,MAAM,EAAE,UAAU,EAAE,GAAG,YAAY,CAAC;IACpC,MAAM,MAAM,GAAG,GAAG,CAAC,gBAAiB,CAAC;IACrC,MAAM,SAAS,GAAG,UAAW,CAAC,UAAW,CAAC;IAC1C,MAAM,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC;IAExC,SAAS;IACT,MAAM,QAAQ,GAAG,MAAM,kBAAkB,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;IACjE,MAAM,CAAC,GAAG,CACN,mBAAmB,QAAQ,0BAA0B,SAAS,KAAK,CACtE,CAAC;IAEF,MAAM,IAAI,GAAG,IAAI,QAAQ,EAAE,CAAC;IAC5B,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,QAAQ,CAAC,CAAC;IACtC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,EAAE;QACtB,QAAQ,EAAE,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,IAAI,SAAS;KACpD,CAAC,CAAC;IAEH,cAAc;IACd,uDAAuD;IACvD,MAAM,WAAW,GAAG,eAAe,CAC/B;QACI,UAAU,EAAE,YAAY;QACxB,YAAY,CAAC,YAAY;QACzB,GAAG,CAAC,uBAAuB;QAC3B,GAAG,CAAC,YAAY;KACnB,EACD,EAAE,WAAW,EAAE,CAClB,CAAC;IAEF,gBAAgB;IAChB,MAAM,QAAQ,GAAQ;QAClB,YAAY,EAAE,wBAAwB;QACtC,WAAW,EAAE,YAAY,CAAC,YAAY,IAAI,SAAS;QACnD,SAAS,EAAE,UAAU,EAAE,SAAS,IAAI,OAAO,CAAC,WAAW,CAAC,KAAK;QAC7D,aAAa,EAAE,UAAU,EAAE,cAAc,IAAI,UAAU;KAC1D,CAAC;IAEF,wBAAwB;IACxB,IAAI,WAAW,EAAE,CAAC;QACd,QAAQ,CAAC,WAAW,GAAG,WAAW,CAAC;IACvC,CAAC;SAAM,CAAC;QACJ,mBAAmB;QACnB,QAAQ,CAAC,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC;IACpD,CAAC;IAED,8BAA8B;IAC9B,MAAM,kBAAkB,GAAG,uBAAuB,CAC9C,YAAY,EACZ,GAAG,EACH,WAAW,CACd,CAAC;IACF,IAAI,kBAAkB,EAAE,CAAC;QACrB,QAAQ,CAAC,UAAU,GAAG,kBAAkB,CAAC;IAC7C,CAAC;IAED,oBAAoB;IACpB,IAAI,UAAU,EAAE,cAAc,KAAK,SAAS,EAAE,CAAC;QAC3C,QAAQ,CAAC,YAAY,GAAG,UAAU,CAAC,cAAc,CAAC;IACtD,CAAC;IAED,IAAI,UAAU,EAAE,4BAA4B,KAAK,SAAS,EAAE,CAAC;QACzD,QAAQ,CAAC,wBAAwB;YAC7B,UAAU,CAAC,4BAA4B,CAAC;IAChD,CAAC;IAED,IAAI,UAAU,EAAE,SAAS,IAAI,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACxE,QAAQ,CAAC,SAAS,GAAG,UAAU,CAAC,SAAS,CAAC;IAC9C,CAAC;IAED,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC;IAElD,IAAI,CAAC;QACD,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,IAAI,CAC7B,8CAA8C,SAAS,cAAc,EACrE,IAAI,EACJ;YACI,OAAO,EAAE;gBACL,GAAG,IAAI,CAAC,UAAU,EAAE;gBACpB,aAAa,EAAE,MAAM;aACxB;SACJ,CACJ,CAAC;QAEF,oBAAoB;QACpB,IAAI,QAAQ,CAAC,IAAI,IAAI,OAAO,QAAQ,CAAC,IAAI,CAAC,EAAE,KAAK,QAAQ,EAAE,CAAC;YACxD,MAAM,CAAC,GAAG,CACN,yCAAyC,QAAQ,CAAC,IAAI,CAAC,WAAW,IAAI,YAAY,QAAQ,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,CACzG,CAAC;YACF,OAAO,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC;QACvC,CAAC;aAAM,CAAC;YACJ,MAAM,IAAI,KAAK,CACX,gDAAgD,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAClF,CAAC;QACN,CAAC;IACL,CAAC;IAAC,OAAO,KAAU,EAAE,CAAC;QAClB,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC;YACjB,aAAa;YACb,MAAM,MAAM,GAAG,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC;YACrC,MAAM,IAAI,GAAG,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC;YAEjC,IAAI,IAAI,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;gBACzC,MAAM,CAAC,KAAK,CACR,yBAAyB,MAAM,MAAM,IAAI,CAAC,KAAK,MAAM,IAAI,CAAC,WAAW,EAAE,CAC1E,CAAC;gBACF,MAAM,IAAI,KAAK,CACX,mBAAmB,IAAI,CAAC,KAAK,MAAM,IAAI,CAAC,WAAW,EAAE,CACxD,CAAC;YACN,CAAC;iBAAM,CAAC;gBACJ,MAAM,CAAC,KAAK,CACR,yBAAyB,MAAM,MAAM,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAC9D,CAAC;gBACF,MAAM,IAAI,KAAK,CACX,wBAAwB,MAAM,MAAM,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAC7D,CAAC;YACN,CAAC;QACL,CAAC;aAAM,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;YACvB,cAAc;YACd,MAAM,CAAC,KAAK,CAAC,2BAA2B,CAAC,CAAC;YAC1C,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;QAChD,CAAC;aAAM,CAAC;YACJ,SAAS;YACT,MAAM,CAAC,KAAK,CAAC,wBAAwB,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;YACtD,MAAM,IAAI,KAAK,CAAC,mBAAmB,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;QACxD,CAAC;IACL,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"curseforge.js","sourceRoot":"","sources":["../src/curseforge.ts"],"names":[],"mappings":"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"}
@@ -12,27 +12,27 @@ export interface CurseForgeGameVersionType {
12
12
  }
13
13
  export interface CurseForgeGameVersionMap {
14
14
  /**
15
- * Minecraft 游戏版本的数组。
15
+ * Array of Minecraft game versions.
16
16
  */
17
17
  game_versions: CurseForgeGameVersion[];
18
18
  /**
19
- * 主要用于 Bukkit 插件的游戏版本数组。
19
+ * Array of game versions primarily used for Bukkit plugins.
20
20
  */
21
21
  game_versions_for_plugins: CurseForgeGameVersion[];
22
22
  /**
23
- * 附加组件的游戏版本数组。
23
+ * Array of game versions for add-ons.
24
24
  */
25
25
  game_versions_for_addons: CurseForgeGameVersion[];
26
26
  /**
27
- * Java 版本的数组。
27
+ * Array of Java versions.
28
28
  */
29
29
  java_versions: CurseForgeGameVersion[];
30
30
  /**
31
- * 模组加载器的游戏版本数组。
31
+ * Array of game versions for mod loaders.
32
32
  */
33
33
  loaders: CurseForgeGameVersion[];
34
34
  /**
35
- * 不同环境的游戏版本数组。
35
+ * Array of game versions for different environments.
36
36
  */
37
37
  environments: CurseForgeGameVersion[];
38
38
  }
@@ -1,9 +1,11 @@
1
- export type Plugin_config = {
1
+ export type PluginConfig = {
2
2
  release_type?: 'alpha' | 'beta' | 'release';
3
3
  game_versions?: string | string[];
4
4
  mod_loaders?: string | string[];
5
5
  display_name?: string;
6
+ strategies?: Record<string, string>[];
6
7
  glob?: string | string[];
8
+ primary_file_glob: string | string[];
7
9
  curseforge?: {
8
10
  project_id: string;
9
11
  game_versions?: string | string[];
@@ -15,7 +17,6 @@ export type Plugin_config = {
15
17
  changelog?: string;
16
18
  changelog_type?: 'text' | 'html' | 'markdown';
17
19
  display_name?: string;
18
- parent_file_id?: number;
19
20
  is_marked_for_manual_release?: boolean;
20
21
  relations?: {
21
22
  projects?: Array<{
@@ -46,4 +47,4 @@ export type Plugin_config = {
46
47
  primary_file_glob?: string | string[];
47
48
  };
48
49
  };
49
- //# sourceMappingURL=plugin_config.d.ts.map
50
+ //# sourceMappingURL=plugin-config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plugin-config.d.ts","sourceRoot":"","sources":["../../src/definitions/plugin-config.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,YAAY,GAAG;IACvB,YAAY,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,CAAC;IAC5C,aAAa,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IAClC,WAAW,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IAChC,YAAY,CAAC,EAAE,MAAM,CAAC;IAGtB,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC;IAEtC,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IACzB,iBAAiB,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IAErC,UAAU,CAAC,EAAE;QACT,UAAU,EAAE,MAAM,CAAC;QACnB,aAAa,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;QAClC,aAAa,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;QAClC,YAAY,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;QACjC,yBAAyB,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;QAC9C,uBAAuB,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;QAC5C,WAAW,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;QAChC,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,cAAc,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,UAAU,CAAC;QAC9C,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,4BAA4B,CAAC,EAAE,OAAO,CAAC;QACvC,SAAS,CAAC,EAAE;YACR,QAAQ,CAAC,EAAE,KAAK,CAAC;gBACb,IAAI,EAAE,MAAM,CAAC;gBACb,UAAU,CAAC,EAAE,MAAM,CAAC;gBACpB,IAAI,EACE,kBAAkB,GAClB,cAAc,GACd,qBAAqB,GACrB,qBAAqB,GACrB,MAAM,CAAC;aAChB,CAAC,CAAC;SACN,CAAC;QACF,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;KAC5B,CAAC;IACF,QAAQ,CAAC,EAAE;QACP,UAAU,EAAE,MAAM,CAAC;QACnB,cAAc,CAAC,EAAE,MAAM,CAAC;QACxB,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;QACzB,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;QACvB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,YAAY,CAAC,EAAE,KAAK,CAAC;YACjB,UAAU,CAAC,EAAE,MAAM,CAAC;YACpB,UAAU,CAAC,EAAE,MAAM,CAAC;YACpB,SAAS,CAAC,EAAE,MAAM,CAAC;YACnB,eAAe,EACT,UAAU,GACV,UAAU,GACV,cAAc,GACd,UAAU,CAAC;SACpB,CAAC,CAAC;QACH,QAAQ,CAAC,EAAE,OAAO,CAAC;QACnB,MAAM,CAAC,EACD,QAAQ,GACR,UAAU,GACV,OAAO,GACP,UAAU,GACV,WAAW,GACX,SAAS,CAAC;QAChB,gBAAgB,CAAC,EAAE,QAAQ,GAAG,UAAU,GAAG,OAAO,GAAG,UAAU,CAAC;QAChE,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;QACzB,iBAAiB,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;KACzC,CAAC;CACL,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=plugin-config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plugin-config.js","sourceRoot":"","sources":["../../src/definitions/plugin-config.ts"],"names":[],"mappings":""}
package/dist/index.d.ts CHANGED
@@ -1,8 +1,8 @@
1
1
  import { PrepareContext, PublishContext, VerifyConditionsContext } from 'semantic-release';
2
- import { Plugin_config } from './definitions/plugin_config.js';
3
- export declare function verifyConditions(pluginConfig: Plugin_config, context: VerifyConditionsContext): Promise<void>;
4
- export declare function prepare(pluginConfig: Plugin_config, context: PrepareContext): Promise<void>;
5
- export declare function publish(pluginConfig: Plugin_config, context: PublishContext): Promise<{
2
+ import { PluginConfig } from './definitions/plugin-config.js';
3
+ export declare function verifyConditions(pluginConfig: PluginConfig, context: VerifyConditionsContext): Promise<void>;
4
+ export declare function prepare(pluginConfig: PluginConfig, context: PrepareContext): Promise<void>;
5
+ export declare function publish(pluginConfig: PluginConfig, context: PublishContext): Promise<{
6
6
  url: string;
7
7
  }[]>;
8
8
  //# sourceMappingURL=index.d.ts.map
@@ -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,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAO/D,wBAAsB,gBAAgB,CAClC,YAAY,EAAE,aAAa,EAC3B,OAAO,EAAE,uBAAuB,iBAUnC;AAED,wBAAsB,OAAO,CACzB,YAAY,EAAE,aAAa,EAC3B,OAAO,EAAE,cAAc,iBA0B1B;AAED,wBAAsB,OAAO,CACzB,YAAY,EAAE,aAAa,EAC3B,OAAO,EAAE,cAAc,GACxB,OAAO,CAAC;IAAE,GAAG,EAAE,MAAM,CAAA;CAAE,EAAE,CAAC,CAqC5B"}
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"}
package/dist/index.js CHANGED
@@ -1,38 +1,32 @@
1
1
  import { publishToCurseforge } from './curseforge.js';
2
2
  import { publishToModrinth } from './modrinth.js';
3
3
  import { getCurseForgeGameVersionIds } from './prepare.js';
4
- // 模块级变量存储 CurseForge 版本映射
4
+ // Game version IDs transformed from user's input, used during publishing to CurseForge
5
5
  let curseforgeGameVersionsIds;
6
6
  export async function verifyConditions(pluginConfig, context) {
7
- // 验证配置:只检查 project_id,token 通过环境变量验证
8
- if (pluginConfig.curseforge && !pluginConfig.curseforge.project_id) {
7
+ const { env } = context;
8
+ if (env.CURSEFORGE_TOKEN && !pluginConfig.curseforge?.project_id) {
9
9
  throw new Error('CurseForge project ID is required');
10
10
  }
11
- if (pluginConfig.modrinth && !pluginConfig.modrinth.project_id) {
11
+ if (env.MODRINTH_TOKEN && !pluginConfig.modrinth?.project_id) {
12
12
  throw new Error('Modrinth project ID is required');
13
13
  }
14
14
  }
15
15
  export async function prepare(pluginConfig, context) {
16
16
  const { env, logger } = context;
17
17
  if (env.CURSEFORGE_TOKEN) {
18
- const apiKey = env.CURSEFORGE_TOKEN;
19
- try {
20
- logger.log('Fetching CurseForge game versions and types...');
21
- // 创建版本映射并存储在模块级变量中供后续使用
22
- curseforgeGameVersionsIds = await getCurseForgeGameVersionIds(apiKey, pluginConfig.curseforge, env, context.nextRelease);
23
- logger.log(`Successfully transform ${Object.keys(curseforgeGameVersionsIds).length} CurseForge game versions`);
24
- }
25
- catch (error) {
26
- logger.warn(`Failed to fetch CurseForge game versions: ${error instanceof Error ? error.message : 'Unknown error'}`);
27
- }
18
+ const apiToken = env.CURSEFORGE_TOKEN;
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`);
28
22
  }
29
23
  }
30
24
  export async function publish(pluginConfig, context) {
31
25
  const { env, logger } = context;
32
26
  const results = [];
33
- try {
27
+ for (const strategy of pluginConfig.strategies || [{}]) {
34
28
  if (env.CURSEFORGE_TOKEN) {
35
- const curseforgeId = await publishToCurseforge(pluginConfig, context, curseforgeGameVersionsIds);
29
+ const curseforgeId = await publishToCurseforge(pluginConfig, context, strategy, curseforgeGameVersionsIds);
36
30
  results.push({
37
31
  url: `https://www.curseforge.com/minecraft/mc-mods/${pluginConfig.curseforge.project_id}/files/${curseforgeId}`,
38
32
  });
@@ -40,9 +34,8 @@ export async function publish(pluginConfig, context) {
40
34
  else {
41
35
  logger.log('CurseForge publishing is skipped: CURSEFORGE_TOKEN environment variable not found.');
42
36
  }
43
- // 发布到 Modrinth(如果配置了 Modrinth 且存在环境变量)
44
37
  if (env.MODRINTH_TOKEN) {
45
- const modrinthId = await publishToModrinth(pluginConfig, context);
38
+ const modrinthId = await publishToModrinth(pluginConfig, context, strategy);
46
39
  results.push({
47
40
  url: `https://modrinth.com/mod/${pluginConfig.modrinth.project_id}/version/${modrinthId}`,
48
41
  });
@@ -50,11 +43,7 @@ export async function publish(pluginConfig, context) {
50
43
  else {
51
44
  logger.log('Modrinth publishing is skipped: MODRINTH_TOKEN environment variable not found.');
52
45
  }
53
- return results;
54
- }
55
- catch (error) {
56
- logger.error('Failed to publish:', error);
57
- throw error;
58
46
  }
47
+ return results;
59
48
  }
60
49
  //# sourceMappingURL=index.js.map
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,0BAA0B;AAC1B,IAAI,yBAA+C,CAAC;AAEpD,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAClC,YAA2B,EAC3B,OAAgC;IAEhC,qCAAqC;IACrC,IAAI,YAAY,CAAC,UAAU,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,UAAU,EAAE,CAAC;QACjE,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAC;IACzD,CAAC;IAED,IAAI,YAAY,CAAC,QAAQ,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,UAAU,EAAE,CAAC;QAC7D,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC;IACvD,CAAC;AACL,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,OAAO,CACzB,YAA2B,EAC3B,OAAuB;IAEvB,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC;IAEhC,IAAI,GAAG,CAAC,gBAAgB,EAAE,CAAC;QACvB,MAAM,MAAM,GAAG,GAAG,CAAC,gBAAgB,CAAC;QACpC,IAAI,CAAC;YACD,MAAM,CAAC,GAAG,CAAC,gDAAgD,CAAC,CAAC;YAE7D,wBAAwB;YACxB,yBAAyB,GAAG,MAAM,2BAA2B,CACzD,MAAM,EACN,YAAY,CAAC,UAAW,EACxB,GAAG,EACH,OAAO,CAAC,WAAW,CACtB,CAAC;YAEF,MAAM,CAAC,GAAG,CACN,0BAA0B,MAAM,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC,MAAM,2BAA2B,CACrG,CAAC;QACN,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,MAAM,CAAC,IAAI,CACP,6CAA6C,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,EAAE,CAC1G,CAAC;QACN,CAAC;IACL,CAAC;AACL,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,OAAO,CACzB,YAA2B,EAC3B,OAAuB;IAEvB,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC;IAChC,MAAM,OAAO,GAAsB,EAAE,CAAC;IAEtC,IAAI,CAAC;QACD,IAAI,GAAG,CAAC,gBAAgB,EAAE,CAAC;YACvB,MAAM,YAAY,GAAG,MAAM,mBAAmB,CAC1C,YAAY,EACZ,OAAO,EACP,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,uCAAuC;QACvC,IAAI,GAAG,CAAC,cAAc,EAAE,CAAC;YACrB,MAAM,UAAU,GAAG,MAAM,iBAAiB,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;YAClE,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;QAED,OAAO,OAAO,CAAC;IACnB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACb,MAAM,CAAC,KAAK,CAAC,oBAAoB,EAAE,KAAK,CAAC,CAAC;QAC1C,MAAM,KAAK,CAAC;IAChB,CAAC;AACL,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,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,7 +1,7 @@
1
1
  import { PublishContext } from 'semantic-release';
2
- import { Plugin_config } from './definitions/plugin_config.js';
2
+ import { PluginConfig } from './definitions/plugin-config';
3
3
  /**
4
- * 发布到 Modrinth
4
+ * Publishes files to Modrinth.
5
5
  */
6
- export declare function publishToModrinth(pluginConfig: Plugin_config, context: PublishContext): Promise<string>;
6
+ export declare function publishToModrinth(pluginConfig: PluginConfig, context: PublishContext, strategy: Record<string, string>): Promise<string>;
7
7
  //# sourceMappingURL=modrinth.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"modrinth.d.ts","sourceRoot":"","sources":["../src/modrinth.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAS/D;;GAEG;AACH,wBAAsB,iBAAiB,CACnC,YAAY,EAAE,aAAa,EAC3B,OAAO,EAAE,cAAc,GACxB,OAAO,CAAC,MAAM,CAAC,CAiOjB"}
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,6BAA6B,CAAC;AAO3D;;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,CAsHjB"}