@mznjs/mbump 1.0.6 → 2.0.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.
package/dist/index.d.ts CHANGED
@@ -1,21 +1,265 @@
1
- import { a as ChangelogResult, i as ChangelogOptions, n as BumpVersion, o as Config, r as BumppResult, s as ResolveConfig, t as Accesstokens } from "./types-DoXYJODS.js";
1
+ import { __export } from "./chunk-Cl8Af3a2.js";
2
+ import { SemVer } from "semver";
2
3
 
3
- //#region src/bump.d.ts
4
+ //#region src/types/index.d.ts
5
+ type ReleaseType = 'major' | 'minor' | 'patch' | 'next' | 'pre-patch' | 'pre-minor' | 'pre-major' | 'as-is' | 'conventional' | 'custom';
6
+ interface PackageInfo {
7
+ name: string;
8
+ version: string;
9
+ description?: string;
10
+ main?: string;
11
+ scripts?: Record<string, string>;
12
+ [key: string]: unknown;
13
+ }
14
+ interface PackagePaths {
15
+ [key: string]: string;
16
+ }
17
+ interface DefaultsConfig {
18
+ releaseType?: ReleaseType;
19
+ type?: ReleaseType;
20
+ dryRun?: boolean;
21
+ verbose?: boolean;
22
+ allowUncommitted?: boolean;
23
+ npm?: boolean;
24
+ }
25
+ interface GitConfig {
26
+ commitMessage?: string;
27
+ push?: boolean;
28
+ autoCommit?: boolean;
29
+ tag?: boolean;
30
+ tagPrefix?: string;
31
+ changelog?: boolean;
32
+ }
33
+ interface PublishConfig {
34
+ command?: string;
35
+ skipChecks?: boolean;
36
+ }
37
+ interface Config {
38
+ packagePaths: PackagePaths;
39
+ defaults?: DefaultsConfig;
40
+ git?: GitConfig;
41
+ publish?: PublishConfig;
42
+ usedConfigPath?: string | null;
43
+ }
44
+ interface VersionManagerOptions {
45
+ packagePaths?: PackagePaths;
46
+ configPath?: string;
47
+ config?: Config;
48
+ rootDir?: string;
49
+ }
50
+ interface UpdateOptions {
51
+ dryRun?: boolean;
52
+ verbose?: boolean;
53
+ packagePaths?: PackagePaths;
54
+ customVersion?: string | null;
55
+ autoCommit?: boolean;
56
+ push?: boolean;
57
+ npm?: boolean;
58
+ changelog?: boolean;
59
+ tag?: boolean;
60
+ tagPrefix?: string;
61
+ isBatchMode?: boolean;
62
+ }
63
+ interface UpdatedPackage {
64
+ name: string;
65
+ oldVersion: string;
66
+ newVersion: string;
67
+ }
68
+ interface UpdateResult {
69
+ success: boolean;
70
+ updatedPackages: UpdatedPackage[];
71
+ publishedPackages: string[];
72
+ error: string | null;
73
+ }
74
+ interface ParsedArgs {
75
+ package: string | null;
76
+ type: ReleaseType;
77
+ dryRun: boolean;
78
+ help: boolean;
79
+ verbose: boolean;
80
+ autoCommit: boolean;
81
+ push: boolean;
82
+ allowUncommitted: boolean;
83
+ npm: boolean;
84
+ showConfig: boolean;
85
+ }
86
+ interface SpinnerOptions {
87
+ succeedText?: string;
88
+ failText?: string;
89
+ }
90
+ interface PackageVersionSelection {
91
+ type: ReleaseType;
92
+ customVersion: string | null;
93
+ }
94
+ interface PackageVersionSelections {
95
+ [packageName: string]: PackageVersionSelection;
96
+ }
97
+ interface ChangelogCommit {
98
+ message: string;
99
+ files: string[];
100
+ }
101
+ interface ChangelogTypeConfig {
102
+ title: string;
103
+ emoji: string;
104
+ color: string;
105
+ } //#endregion
106
+ //#region src/config/loader.d.ts
4
107
 
108
+ //# sourceMappingURL=index.d.ts.map
5
109
  /**
6
- * 更新版本
7
- * @param option
110
+ * 清除配置缓存
111
+ * @param rootDir 可选,指定要清除的项目目录,不传则清除所有缓存
8
112
  */
9
- declare function bumpVersion(option?: Config): Promise<BumpVersion>;
10
- /**
11
- * 更新版本伴随基础 release 基础等待动画
12
- * @param option 更新版本配置
13
- * @param addRelease release脚本
14
- * @param provider git 远程储存提供商
15
- */
16
- declare function bumpVersionWithBaseRelease(option: Config | undefined, addRelease: (res: BumpVersion) => Promise<any>, provider: string): Promise<void>;
113
+ declare function clearConfigCache(rootDir?: string): void;
114
+ declare function loadConfigAsync(rootDir: string): Promise<Config>;
115
+ declare function loadConfig(rootDir: string): Config;
116
+
117
+ //#endregion
118
+ //#region src/config/schema.d.ts
119
+ declare const BASE_CONFIG: Config;
120
+
121
+ //#endregion
122
+ //#region src/core/ChangelogManager.d.ts
123
+ declare class ChangelogManager {
124
+ private changelogPath;
125
+ constructor(rootDir: string);
126
+ getTypeConfig(message: string): ChangelogTypeConfig;
127
+ formatFileNames(files: string[]): string[];
128
+ detectChangelogFormat(content: string): {
129
+ hasHeader: boolean;
130
+ titlePrefix: string;
131
+ usesBrackets: boolean;
132
+ sectionLevel: string;
133
+ };
134
+ updateChangelog(newVersion: string, commits: ChangelogCommit[], packageName?: string): Promise<void>;
135
+ }
136
+
137
+ //#endregion
138
+ //#region src/core/GitManager.d.ts
139
+ //# sourceMappingURL=ChangelogManager.d.ts.map
140
+ declare class GitManager {
141
+ private rootDir;
142
+ constructor(rootDir: string);
143
+ hasUncommittedChanges(): boolean;
144
+ getLastTag(): string | null;
145
+ getCommitsSinceLastTag(): {
146
+ message: string;
147
+ files: string[];
148
+ }[];
149
+ checkVersionExists(version: string, tagPrefix?: string): boolean;
150
+ addFiles(files: string[]): void;
151
+ commit(message: string): void;
152
+ createTag(version: string, tagPrefix?: string): void;
153
+ push(includeTags?: boolean): void;
154
+ commitAndPush(message: string, push?: boolean, createTag?: boolean, tagVersion?: string, tagPrefix?: string): void;
155
+ }
156
+
17
157
  //#endregion
18
- //#region src/config.d.ts
19
- declare const defineConfig: (config: Config) => Config;
158
+ //#region src/core/VersionManager.d.ts
159
+ //# sourceMappingURL=GitManager.d.ts.map
160
+ declare class VersionManager {
161
+ private config;
162
+ private rootDir;
163
+ private packagePaths;
164
+ private publishConfig;
165
+ private gitConfig;
166
+ private gitPush;
167
+ private packageCache;
168
+ private gitManager;
169
+ private changelogManager;
170
+ constructor(options?: VersionManagerOptions);
171
+ /**
172
+ * 预加载所有包信息到缓存,避免后续重复读取文件
173
+ */
174
+ private _preloadPackageCache;
175
+ /**
176
+ * 清除包信息缓存
177
+ * @param pkgPath 可选,指定要清除的包路径,不传则清除所有缓存
178
+ */
179
+ clearPackageCache(pkgPath?: string): void;
180
+ /**
181
+ * 刷新指定包的缓存(重新从文件读取)
182
+ * @param pkgPath 包的路径
183
+ */
184
+ refreshPackageCache(pkgPath: string): PackageInfo;
185
+ /**
186
+ * 获取缓存统计信息
187
+ */
188
+ getCacheStats(): {
189
+ size: number;
190
+ packages: string[];
191
+ };
192
+ private _resolvePackagePaths;
193
+ updateVersion(pkgName: string, releaseType?: ReleaseType, options?: UpdateOptions): Promise<UpdateResult>;
194
+ gitCommitAndPush(push?: boolean, updatedPackages?: Array<{
195
+ name: string;
196
+ newVersion: string;
197
+ pkgKey?: string;
198
+ }>, tag?: boolean, tagPrefix?: string): Promise<void>;
199
+ /**
200
+ * 获取包信息(带缓存)
201
+ * @param pkgPath 包的路径
202
+ * @returns 包信息对象
203
+ */
204
+ getPackageInfo(pkgPath: string): PackageInfo;
205
+ private savePackageInfo;
206
+ getPackageVersion(pkgName: string): string | null;
207
+ isValidVersion(version: string): boolean;
208
+ getVersionDiff(oldVersion: string, newVersion: string): string | null;
209
+ }
210
+
211
+ //#endregion
212
+ //#region src/utils/logger.d.ts
213
+ declare function setLevel(level: string): void;
214
+ declare function debug(message: string): void;
215
+ declare function info(message: string): void;
216
+ declare function success(message: string): void;
217
+ declare function warn(message: string): void;
218
+ declare function error(message: string): void;
219
+ declare function dryRun(message: string): void;
220
+ declare function withSpinner<T>(text: string, fn: () => Promise<T>, options?: {
221
+ succeedText?: string;
222
+ failText?: string;
223
+ }): Promise<T>;
224
+ declare const _default: {
225
+ setLevel: typeof setLevel;
226
+ debug: typeof debug;
227
+ info: typeof info;
228
+ success: typeof success;
229
+ warn: typeof warn;
230
+ error: typeof error;
231
+ dryRun: typeof dryRun;
232
+ withSpinner: typeof withSpinner;
233
+ };
234
+
235
+ //#endregion
236
+ //#region src/utils/security.d.ts
237
+ declare namespace security_d_exports {
238
+ export { sanitizeFileName, validateCommand, validatePath };
239
+ }
240
+ declare function validatePath(path: string, rootDir: string): boolean;
241
+ declare function validateCommand(command: string): boolean;
242
+ declare function sanitizeFileName(name: string): string;
243
+
244
+ //#endregion
245
+ //#region src/utils/semver.d.ts
246
+ //# sourceMappingURL=security.d.ts.map
247
+ declare namespace semver_d_exports {
248
+ export { coerceVersion, compareVersions, getVersionDiff, incrementVersion, isPrerelease, isValidVersion, parseVersion };
249
+ }
250
+ declare function isValidVersion(version: string): boolean;
251
+ declare function parseVersion(version: string): SemVer | null;
252
+ declare function incrementVersion(currentVersion: string, releaseType: string): string | null;
253
+ declare function compareVersions(v1: string, v2: string): number;
254
+ declare function getVersionDiff(oldVersion: string, newVersion: string): string | null;
255
+ declare function isPrerelease(version: string): boolean;
256
+ declare function coerceVersion(version: string): string | null;
257
+
258
+ //#endregion
259
+ //#region src/index.d.ts
260
+ //# sourceMappingURL=semver.d.ts.map
261
+ declare function defineConfig(config?: Config): Config;
262
+
20
263
  //#endregion
21
- export { Accesstokens, BumpVersion, BumppResult, ChangelogOptions, ChangelogResult, Config, ResolveConfig, bumpVersion, bumpVersionWithBaseRelease, defineConfig };
264
+ export { BASE_CONFIG, ChangelogCommit, ChangelogManager, ChangelogTypeConfig, Config, DefaultsConfig, GitConfig, GitManager, PackageInfo, PackagePaths, PackageVersionSelection, PackageVersionSelections, ParsedArgs, PublishConfig, ReleaseType, SpinnerOptions, UpdateOptions, UpdateResult, UpdatedPackage, VersionManager, VersionManagerOptions, clearConfigCache, defineConfig as default, defineConfig, loadConfig, loadConfigAsync, _default as log, security_d_exports as securityUtils, semver_d_exports as semverUtils };
265
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","names":[],"sources":["../src/types/index.ts","../src/config/loader.ts","../src/config/schema.ts","../src/core/ChangelogManager.ts","../src/core/GitManager.ts","../src/core/VersionManager.ts","../src/utils/logger.ts","../src/utils/security.ts","../src/utils/semver.ts","../src/index.ts"],"sourcesContent":null,"mappings":"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"}
package/dist/index.js CHANGED
@@ -1,3 +1,52 @@
1
- import { n as bumpVersionWithBaseRelease, r as defineConfig, t as bumpVersion } from "./bump-C1ZmU9eM.js";
1
+ import { __export } from "./chunk-Cl8Af3a2.js";
2
+ import { BASE_CONFIG, ChangelogManager, GitManager, VersionManager, clearConfigCache, loadConfig, loadConfigAsync, logger_default, security_exports } from "./VersionManager-DSOVXsFt.js";
3
+ import semver from "semver";
2
4
 
3
- export { bumpVersion, bumpVersionWithBaseRelease, defineConfig };
5
+ //#region src/utils/semver.ts
6
+ var semver_exports = {};
7
+ __export(semver_exports, {
8
+ coerceVersion: () => coerceVersion,
9
+ compareVersions: () => compareVersions,
10
+ getVersionDiff: () => getVersionDiff,
11
+ incrementVersion: () => incrementVersion,
12
+ isPrerelease: () => isPrerelease,
13
+ isValidVersion: () => isValidVersion,
14
+ parseVersion: () => parseVersion
15
+ });
16
+ function isValidVersion(version) {
17
+ return semver.valid(version) !== null;
18
+ }
19
+ function parseVersion(version) {
20
+ return semver.parse(version);
21
+ }
22
+ function incrementVersion(currentVersion, releaseType) {
23
+ return semver.inc(currentVersion, releaseType);
24
+ }
25
+ function compareVersions(v1, v2) {
26
+ return semver.compare(v1, v2);
27
+ }
28
+ function getVersionDiff(oldVersion, newVersion) {
29
+ if (!semver.valid(oldVersion) || !semver.valid(newVersion)) return null;
30
+ if (semver.major(newVersion) > semver.major(oldVersion)) return "major";
31
+ if (semver.minor(newVersion) > semver.minor(oldVersion)) return "minor";
32
+ if (semver.patch(newVersion) > semver.patch(oldVersion)) return "patch";
33
+ return null;
34
+ }
35
+ function isPrerelease(version) {
36
+ return semver.prerelease(version) !== null;
37
+ }
38
+ function coerceVersion(version) {
39
+ const coerced = semver.coerce(version);
40
+ return coerced?.version || null;
41
+ }
42
+
43
+ //#endregion
44
+ //#region src/index.ts
45
+ function defineConfig(config) {
46
+ return config || {};
47
+ }
48
+ var src_default = defineConfig;
49
+
50
+ //#endregion
51
+ export { BASE_CONFIG, ChangelogManager, GitManager, VersionManager, clearConfigCache, src_default as default, defineConfig, loadConfig, loadConfigAsync, logger_default as log, security_exports as securityUtils, semver_exports as semverUtils };
52
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","names":["version: string","currentVersion: string","releaseType: string","v1: string","v2: string","oldVersion: string","newVersion: string","config?: Config"],"sources":["../src/utils/semver.ts","../src/index.ts"],"sourcesContent":["import type { SemVer } from 'semver'\nimport semver from 'semver'\n\nexport function isValidVersion(version: string): boolean {\n return semver.valid(version) !== null\n}\n\nexport function parseVersion(version: string): SemVer | null {\n return semver.parse(version)\n}\n\nexport function incrementVersion(currentVersion: string, releaseType: string): string | null {\n return semver.inc(currentVersion, releaseType as semver.ReleaseType)\n}\n\nexport function compareVersions(v1: string, v2: string): number {\n return semver.compare(v1, v2)\n}\n\nexport function getVersionDiff(oldVersion: string, newVersion: string): string | null {\n if (!semver.valid(oldVersion) || !semver.valid(newVersion)) {\n return null\n }\n\n if (semver.major(newVersion) > semver.major(oldVersion))\n return 'major'\n if (semver.minor(newVersion) > semver.minor(oldVersion))\n return 'minor'\n if (semver.patch(newVersion) > semver.patch(oldVersion))\n return 'patch'\n return null\n}\n\nexport function isPrerelease(version: string): boolean {\n return semver.prerelease(version) !== null\n}\n\nexport function coerceVersion(version: string): string | null {\n const coerced = semver.coerce(version)\n return coerced?.version || null\n}\n","import type { Config } from './types'\n\nexport function defineConfig(config?: Config): Config {\n return config || {} as Config\n}\n\nexport default defineConfig\n\nexport { clearConfigCache, loadConfig, loadConfigAsync } from './config/loader'\nexport { BASE_CONFIG } from './config/schema'\nexport { ChangelogManager } from './core/ChangelogManager'\nexport { GitManager } from './core/GitManager'\nexport { VersionManager } from './core/VersionManager'\nexport * from './types'\n\nexport { default as log } from './utils/logger'\nexport * as securityUtils from './utils/security'\nexport * as semverUtils from './utils/semver'\n"],"mappings":";;;;;;;;;;;;;;;AAGA,SAAgB,eAAeA,SAA0B;AACvD,QAAO,OAAO,MAAM,QAAQ,KAAK;AAClC;AAED,SAAgB,aAAaA,SAAgC;AAC3D,QAAO,OAAO,MAAM,QAAQ;AAC7B;AAED,SAAgB,iBAAiBC,gBAAwBC,aAAoC;AAC3F,QAAO,OAAO,IAAI,gBAAgB,YAAkC;AACrE;AAED,SAAgB,gBAAgBC,IAAYC,IAAoB;AAC9D,QAAO,OAAO,QAAQ,IAAI,GAAG;AAC9B;AAED,SAAgB,eAAeC,YAAoBC,YAAmC;AACpF,MAAK,OAAO,MAAM,WAAW,KAAK,OAAO,MAAM,WAAW,CACxD,QAAO;AAGT,KAAI,OAAO,MAAM,WAAW,GAAG,OAAO,MAAM,WAAW,CACrD,QAAO;AACT,KAAI,OAAO,MAAM,WAAW,GAAG,OAAO,MAAM,WAAW,CACrD,QAAO;AACT,KAAI,OAAO,MAAM,WAAW,GAAG,OAAO,MAAM,WAAW,CACrD,QAAO;AACT,QAAO;AACR;AAED,SAAgB,aAAaN,SAA0B;AACrD,QAAO,OAAO,WAAW,QAAQ,KAAK;AACvC;AAED,SAAgB,cAAcA,SAAgC;CAC5D,MAAM,UAAU,OAAO,OAAO,QAAQ;AACtC,QAAO,SAAS,WAAW;AAC5B;;;;ACtCD,SAAgB,aAAaO,QAAyB;AACpD,QAAO,UAAU,CAAE;AACpB;AAED,kBAAe"}
package/package.json CHANGED
@@ -1,65 +1,65 @@
1
1
  {
2
2
  "name": "@mznjs/mbump",
3
- "version": "1.0.6",
4
- "license": "MIT",
3
+ "version": "2.0.0",
5
4
  "type": "module",
5
+ "description": "企业级版本管理工具,支持单包和monorepo场景",
6
+ "main": "dist/index.js",
6
7
  "bin": {
7
- "mbump": "bin/index.js"
8
+ "mbump": "./bin/index.js"
8
9
  },
10
+ "types": "./dist/index.d.ts",
11
+ "files": [
12
+ "bin/",
13
+ "dist/",
14
+ "CHANGELOG.md",
15
+ "README.md"
16
+ ],
9
17
  "engines": {
10
- "node": ">=18"
18
+ "node": ">=18.0.0"
11
19
  },
12
- "author": {
13
- "name": "whitekite",
14
- "email": "1075790909@qq.com"
15
- },
16
- "repository": {
17
- "type": "git",
18
- "url": "git+https://gitee.com/vill-v/bump",
19
- "directory": "packages/bump"
20
+ "scripts": {
21
+ "build": "rimraf dist && tsdown",
22
+ "dev": "tsx src/cli/index.ts",
23
+ "test": "vitest run",
24
+ "test:watch": "vitest",
25
+ "typecheck": "pnpm exec tsc --noEmit",
26
+ "lint": "eslint .",
27
+ "release": "pnpm publish --access public",
28
+ "default": "tsx src/cli/index.ts default -h"
20
29
  },
21
- "files": [
22
- "dist",
23
- "bin"
30
+ "keywords": [
31
+ "version",
32
+ "bump",
33
+ "changelog",
34
+ "git",
35
+ "tag",
36
+ "monorepo",
37
+ "semver"
24
38
  ],
25
- "main": "dist/index.js",
26
- "module": "dist/index.js",
27
- "types": "dist/index.d.ts",
28
- "exports": {
29
- ".": {
30
- "import": {
31
- "types": "./dist/index.d.ts",
32
- "default": "./dist/index.js"
33
- }
34
- },
35
- "./changelogen": {
36
- "import": {
37
- "types": "./dist/changelogen.d.ts",
38
- "default": "./dist/changelogen.js"
39
- }
40
- },
41
- "./cli": {
42
- "import": {
43
- "types": "./dist/cli.d.ts",
44
- "default": "./dist/cli.js"
45
- }
46
- }
47
- },
39
+ "author": "mznjs",
40
+ "license": "MIT",
48
41
  "dependencies": {
49
- "bumpp": "^10.1.0",
50
- "cac": "^6.7.14",
51
- "changelogen": "^0.6.1",
52
42
  "consola": "^3.4.2",
53
- "defu": "^6.1.4",
54
- "esconf": "~0.5.1",
43
+ "inquirer": "^9.2.16",
55
44
  "ora": "^8.2.0",
56
- "tinyglobby": "^0.2.13"
45
+ "semver": "^7.5.4"
46
+ },
47
+ "devDependencies": {
48
+ "@antfu/eslint-config": "^9.0.0",
49
+ "@mznjs/eslint-config": "^0.0.5",
50
+ "@mznjs/tsconfig": "^1.0.1",
51
+ "@types/inquirer": "^9.0.9",
52
+ "@types/node": "^25.9.1",
53
+ "@types/semver": "^7.5.8",
54
+ "eslint": "^10.4.0",
55
+ "eslint-plugin-format": "^2.0.1",
56
+ "rimraf": "^5.0.10",
57
+ "tsdown": "^0.10.0",
58
+ "tsx": "^4.7.0",
59
+ "typescript": "^5.9.3",
60
+ "vitest": "^1.5.0"
57
61
  },
58
62
  "publishConfig": {
59
63
  "access": "public"
60
- },
61
- "scripts": {
62
- "build": "tsdown",
63
- "release": "pnpm publish --access public"
64
64
  }
65
- }
65
+ }
@@ -1,212 +0,0 @@
1
- import { generateMarkDown, getGitDiff, getLastGitTag, loadChangelogConfig, parseCommits } from "changelogen";
2
- import { loadBumpConfig, versionBump, versionBumpInfo } from "bumpp";
3
- import { consola } from "consola";
4
- import { oraPromise } from "ora";
5
- import { spawnSync } from "node:child_process";
6
- import { existsSync } from "node:fs";
7
- import { readFile, writeFile } from "node:fs/promises";
8
- import { defu } from "defu";
9
- import { loadConfig, presetMini } from "esconf";
10
- import { glob } from "tinyglobby";
11
-
12
- //#region src/changelog.ts
13
- function x(command, args) {
14
- return new Promise((resolve, reject) => {
15
- try {
16
- let result;
17
- if (command === "git" && args[0] === "commit" && args[1] === "-m") result = spawnSync(`git commit -m "${args[2]}"`, [], {
18
- stdio: "inherit",
19
- shell: true
20
- });
21
- else result = spawnSync(command, args, {
22
- stdio: "inherit",
23
- shell: true
24
- });
25
- if (result.status === 0) resolve();
26
- else reject(/* @__PURE__ */ new Error(`Command failed with status ${result.status}`));
27
- } catch (error) {
28
- reject(error);
29
- }
30
- });
31
- }
32
- /**
33
- * 获取最新的 Git 标签
34
- *
35
- * @returns 返回最新的 Git 标签,如果获取失败则返回空字符串
36
- */
37
- async function getTag() {
38
- try {
39
- return await getLastGitTag();
40
- } catch (_e) {
41
- return "";
42
- }
43
- }
44
- /**
45
- * 生成changelog
46
- * @param rawConfig
47
- */
48
- async function changelog(rawConfig) {
49
- const config = {
50
- ...rawConfig,
51
- newVersion: rawConfig.to,
52
- to: `v${rawConfig.to}`,
53
- from: `v${rawConfig.from}`
54
- };
55
- let markdown = await generateMarkDown(parseCommits(await getGitDiff(config.from), config).filter((c) => config.types[c.type] && !(c.type === "chore" && c.scope === "deps" && !c.isBreaking)), config);
56
- const breakingChangeTitle = typeof config.types.BreakingChange === "object" && config.types.BreakingChange !== null ? config.types.BreakingChange.title : "⚠️ Breaking Changes";
57
- markdown = markdown.replace("#### ⚠️ Breaking Changes", `#### ${breakingChangeTitle}`).replace("### ❤️ Contributors", "### ❤️ 贡献者");
58
- let changelogMD;
59
- if (existsSync(config.output)) changelogMD = await readFile(config.output, "utf8");
60
- else changelogMD = "# Changelog\n\n";
61
- const lastEntry = changelogMD.match(/^###?\s+.*$/m);
62
- if (lastEntry) changelogMD = `${changelogMD.slice(0, lastEntry.index) + markdown}\n\n${changelogMD.slice(lastEntry.index)}`;
63
- else changelogMD += `\n${markdown}\n\n`;
64
- await writeFile(config.output, changelogMD);
65
- await x("git", [
66
- "add",
67
- config.output,
68
- "package.json"
69
- ]);
70
- await x("git", [
71
- "commit",
72
- "-m",
73
- `chore: update ${config.output}`
74
- ]);
75
- return {
76
- markdown,
77
- changelogMD
78
- };
79
- }
80
-
81
- //#endregion
82
- //#region src/config.ts
83
- function getDefaultsChangeLogConfig() {
84
- return { types: {
85
- feat: { title: "🚀 特性" },
86
- perf: { title: "🔥 性能优化" },
87
- fix: { title: "🩹 修复" },
88
- refactor: { title: "💅 重构" },
89
- examples: { title: "🏀 示例" },
90
- docs: { title: "📖 文档" },
91
- chore: { title: "🏡 框架" },
92
- build: { title: "📦 打包" },
93
- test: { title: "✅ 测试" },
94
- BreakingChange: { title: "🚨 破坏性改动" },
95
- style: { title: "🎨 样式" }
96
- } };
97
- }
98
- /**
99
- * 合并配置项
100
- * @param rawConfig
101
- */
102
- async function resolveConfig(rawConfig) {
103
- const cwd = process.cwd();
104
- const changelog$1 = await loadChangelogConfig(cwd, getDefaultsChangeLogConfig());
105
- const bumpp = await loadBumpConfig({
106
- cwd,
107
- files: ["package.json", "package-lock.json"],
108
- commit: true,
109
- tag: true,
110
- push: true,
111
- confirm: false,
112
- ignoreScripts: false,
113
- noVerify: false
114
- });
115
- const { config } = await loadConfig({ presets: [presetMini({
116
- name: "mbump",
117
- configName: "config",
118
- rcFile: true,
119
- globalRc: true
120
- })] });
121
- const _resolveConfig = defu(rawConfig, config, {
122
- changelog: changelog$1,
123
- bumpp,
124
- accesstoken: {}
125
- });
126
- if (rawConfig.bumpp?.recursive) (await glob("**/package.json", {
127
- ignore: ["**/node_modules/**"],
128
- cwd,
129
- onlyFiles: true
130
- })).forEach((item) => {
131
- _resolveConfig.bumpp.files.push(item);
132
- });
133
- _resolveConfig.bumpp.recursive = false;
134
- _resolveConfig.bumpp.files = [...new Set(_resolveConfig.bumpp.files)];
135
- return _resolveConfig;
136
- }
137
- const defineConfig = (config) => config;
138
-
139
- //#endregion
140
- //#region src/bump.ts
141
- /**
142
- * antfu/bumpp progress
143
- */
144
- function progress({ event, script, updatedFiles, skippedFiles, newVersion }) {
145
- switch (event) {
146
- case "FILE_UPDATED":
147
- consola.success(`Updated ${updatedFiles.pop()} to ${newVersion}`);
148
- break;
149
- case "FILE_SKIPPED":
150
- consola.info(`${skippedFiles.pop()} did not need to be updated`);
151
- break;
152
- case "GIT_COMMIT":
153
- consola.info("Git commit");
154
- break;
155
- case "GIT_TAG":
156
- consola.info("Git tag");
157
- break;
158
- case "GIT_PUSH":
159
- consola.success("Git push");
160
- break;
161
- case "NPM_SCRIPT":
162
- consola.success(`Npm run ${script}`);
163
- break;
164
- }
165
- }
166
- /**
167
- * 更新版本
168
- * @param option
169
- */
170
- async function bumpVersion(option = {}) {
171
- const config = await resolveConfig(option);
172
- const currentTag = await getTag();
173
- const { state } = await versionBumpInfo();
174
- const res = { config };
175
- res.bumpp = state;
176
- if (currentTag) res.changelog = await oraPromise(changelog({
177
- ...config.changelog,
178
- to: state.newVersion,
179
- from: state.currentVersion
180
- }), {
181
- text: "changelog",
182
- successText: `Update ${config.changelog.output} success`,
183
- failText: `Update ${config.changelog.output} success`
184
- });
185
- await versionBump({
186
- ...config.bumpp,
187
- progress,
188
- release: state.newVersion
189
- });
190
- return res;
191
- }
192
- /**
193
- * 更新版本伴随基础 release 基础等待动画
194
- * @param option 更新版本配置
195
- * @param addRelease release脚本
196
- * @param provider git 远程储存提供商
197
- */
198
- async function bumpVersionWithBaseRelease(option = {}, addRelease, provider) {
199
- const { bumpp, changelog: changelog$1, config } = await bumpVersion(option);
200
- await oraPromise(addRelease({
201
- bumpp,
202
- changelog: changelog$1,
203
- config
204
- }), {
205
- text: `${provider} Release`,
206
- successText: ` [${provider}] add release v${bumpp.newVersion} success`,
207
- failText: `[${provider}] add release v${bumpp.newVersion} fail`
208
- });
209
- }
210
-
211
- //#endregion
212
- export { bumpVersionWithBaseRelease as n, defineConfig as r, bumpVersion as t };
@@ -1 +0,0 @@
1
- export * from "changelogen";
@@ -1,3 +0,0 @@
1
- export * from "changelogen"
2
-
3
- export { };