@chatbi-v/core 3.0.0 → 3.1.1

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.
@@ -0,0 +1,449 @@
1
+ "use strict";
2
+ var __create = Object.create;
3
+ var __defProp = Object.defineProperty;
4
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __getProtoOf = Object.getPrototypeOf;
7
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
8
+ var __export = (target, all) => {
9
+ for (var name in all)
10
+ __defProp(target, name, { get: all[name], enumerable: true });
11
+ };
12
+ var __copyProps = (to, from, except, desc) => {
13
+ if (from && typeof from === "object" || typeof from === "function") {
14
+ for (let key of __getOwnPropNames(from))
15
+ if (!__hasOwnProp.call(to, key) && key !== except)
16
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
17
+ }
18
+ return to;
19
+ };
20
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
21
+ // If the importer is in node compatibility mode or this is not an ESM
22
+ // file that has been converted to a CommonJS file using a Babel-
23
+ // compatible transform (i.e. "__esModule" has not been set), then set
24
+ // "default" to the CommonJS "module.exports" for node compatibility.
25
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
26
+ mod
27
+ ));
28
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
29
+
30
+ // src/semver/index.ts
31
+ var semver_exports = {};
32
+ __export(semver_exports, {
33
+ checkCompatibility: () => checkCompatibility,
34
+ clean: () => clean,
35
+ coerce: () => coerce,
36
+ compareVersions: () => compareVersions,
37
+ detectConflicts: () => detectConflicts,
38
+ flattenDependencies: () => flattenDependencies,
39
+ getMajorMinorPatch: () => getMajorMinorPatch,
40
+ getVersionType: () => getVersionType,
41
+ isBreakingChange: () => isBreakingChange,
42
+ isPrerelease: () => isPrerelease,
43
+ isValidRange: () => isValidRange,
44
+ isValidVersion: () => isValidVersion,
45
+ isZeroVersion: () => isZeroVersion,
46
+ maxSatisfying: () => maxSatisfying,
47
+ minSatisfying: () => minSatisfying,
48
+ parseRange: () => parseRange,
49
+ parseVersion: () => parseVersion,
50
+ resolveDependencies: () => resolveDependencies,
51
+ satisfiesVersion: () => satisfiesVersion,
52
+ satisfyVersions: () => satisfyVersions,
53
+ selectBestVersion: () => selectBestVersion
54
+ });
55
+ module.exports = __toCommonJS(semver_exports);
56
+
57
+ // src/semver/DependencyNegotiation.ts
58
+ var import_semver2 = __toESM(require("semver"), 1);
59
+
60
+ // src/semver/SemverResolver.ts
61
+ var import_semver = __toESM(require("semver"), 1);
62
+ function parseVersion(version) {
63
+ const parsed = import_semver.default.valid(version);
64
+ if (!parsed) return null;
65
+ const v = new import_semver.default.SemVer(version);
66
+ return {
67
+ major: v.major,
68
+ minor: v.minor,
69
+ patch: v.patch,
70
+ prerelease: v.prerelease.map(String),
71
+ build: v.build.map(String),
72
+ version: v.version,
73
+ raw: version
74
+ };
75
+ }
76
+ function parseRange(range) {
77
+ const parsed = import_semver.default.validRange(range);
78
+ if (!parsed) return null;
79
+ return new import_semver.default.Range(range);
80
+ }
81
+ function isValidVersion(version) {
82
+ return import_semver.default.valid(version) !== null;
83
+ }
84
+ function isValidRange(range) {
85
+ return import_semver.default.validRange(range) !== null;
86
+ }
87
+ function coerce(version) {
88
+ const coerced = import_semver.default.coerce(version);
89
+ if (!coerced) return null;
90
+ return parseVersion(coerced.version);
91
+ }
92
+ function clean(version) {
93
+ return import_semver.default.clean(version);
94
+ }
95
+ function compareVersions(v1, v2) {
96
+ return import_semver.default.compare(v1, v2);
97
+ }
98
+ function satisfyVersions(range, versions) {
99
+ return versions.filter((v) => import_semver.default.satisfies(v, range));
100
+ }
101
+ function maxSatisfying(range, versions) {
102
+ return import_semver.default.maxSatisfying(versions, range);
103
+ }
104
+ function minSatisfying(range, versions) {
105
+ return import_semver.default.minSatisfying(versions, range);
106
+ }
107
+
108
+ // src/semver/DependencyNegotiation.ts
109
+ function resolveDependencies(plugins) {
110
+ const resolved = /* @__PURE__ */ new Map();
111
+ const conflicts = [];
112
+ const warnings = [];
113
+ const allDependencies = /* @__PURE__ */ new Map();
114
+ for (const plugin of plugins) {
115
+ for (const dep of plugin.dependencies) {
116
+ if (!allDependencies.has(dep.id)) {
117
+ allDependencies.set(dep.id, []);
118
+ }
119
+ allDependencies.get(dep.id).push({
120
+ pluginId: plugin.id,
121
+ range: dep.version,
122
+ optional: dep.optional ?? false
123
+ });
124
+ }
125
+ }
126
+ for (const [depId, requests] of allDependencies) {
127
+ if (requests.length === 1) {
128
+ const req = requests[0];
129
+ const version = resolveSingleDependency(depId, req.range);
130
+ if (version) {
131
+ resolved.set(depId, {
132
+ id: depId,
133
+ version,
134
+ resolvedFrom: req.range,
135
+ compatible: true
136
+ });
137
+ } else if (!req.optional) {
138
+ warnings.push(
139
+ `\u65E0\u6CD5\u89E3\u6790\u4F9D\u8D56 ${depId} (${req.range}) from ${req.pluginId}`
140
+ );
141
+ }
142
+ } else {
143
+ const negotiationResult = negotiateVersion(depId, requests);
144
+ if (negotiationResult.version) {
145
+ resolved.set(depId, {
146
+ id: depId,
147
+ version: negotiationResult.version,
148
+ resolvedFrom: negotiationResult.resolvedFrom,
149
+ compatible: negotiationResult.compatible
150
+ });
151
+ }
152
+ if (negotiationResult.conflict) {
153
+ conflicts.push(negotiationResult.conflict);
154
+ }
155
+ }
156
+ }
157
+ const cycleWarnings = detectCycles(plugins);
158
+ warnings.push(...cycleWarnings);
159
+ return {
160
+ dependencies: Array.from(resolved.values()),
161
+ conflicts,
162
+ warnings
163
+ };
164
+ }
165
+ function resolveSingleDependency(depId, range) {
166
+ const parsed = parseRange(range);
167
+ if (!parsed) {
168
+ if (import_semver2.default.valid(range)) {
169
+ return range;
170
+ }
171
+ return null;
172
+ }
173
+ return null;
174
+ }
175
+ function negotiateVersion(depId, requests) {
176
+ const ranges = requests.map((r) => r.range);
177
+ const requestedBy = requests.map((r) => r.pluginId);
178
+ const exactVersions = requests.filter((r) => import_semver2.default.valid(r.range));
179
+ if (exactVersions.length > 1) {
180
+ const versions = [...new Set(exactVersions.map((r) => r.range))];
181
+ if (versions.length > 1) {
182
+ let allCompatible = true;
183
+ for (let i = 0; i < versions.length; i++) {
184
+ for (let j = i + 1; j < versions.length; j++) {
185
+ if (!import_semver2.default.satisfies(versions[i], `^${versions[j]}`) && !import_semver2.default.satisfies(versions[j], `^${versions[i]}`)) {
186
+ allCompatible = false;
187
+ break;
188
+ }
189
+ }
190
+ }
191
+ if (!allCompatible) {
192
+ return {
193
+ compatible: false,
194
+ conflict: {
195
+ dependency: depId,
196
+ versions,
197
+ requestedBy,
198
+ message: `\u4F9D\u8D56 ${depId} \u5B58\u5728\u4E0D\u53EF\u8C03\u548C\u7684\u7248\u672C\u51B2\u7A81: ${versions.join(" vs ")}`
199
+ }
200
+ };
201
+ }
202
+ }
203
+ }
204
+ const sortedRanges = [...ranges].sort((a, b) => {
205
+ const aParsed = parseRange(a);
206
+ const bParsed = parseRange(b);
207
+ if (!aParsed || !bParsed) return 0;
208
+ const aMajor = aParsed.set?.[0]?.[0]?.semver?.major ?? 0;
209
+ const bMajor = bParsed.set?.[0]?.[0]?.semver?.major ?? 0;
210
+ return bMajor - aMajor;
211
+ });
212
+ return {
213
+ version: sortedRanges[0],
214
+ resolvedFrom: sortedRanges[0],
215
+ compatible: true
216
+ };
217
+ }
218
+ function selectBestVersion(versions, range) {
219
+ if (!parseRange(range)) {
220
+ return versions.includes(range) ? range : null;
221
+ }
222
+ return maxSatisfying(range, versions);
223
+ }
224
+ function detectConflicts(deps) {
225
+ const conflicts = [];
226
+ const depMap = /* @__PURE__ */ new Map();
227
+ for (const dep of deps) {
228
+ if (!depMap.has(dep.id)) {
229
+ depMap.set(dep.id, []);
230
+ }
231
+ depMap.get(dep.id).push({ pluginId: dep.id, version: dep.version });
232
+ }
233
+ for (const [depId, requests] of depMap) {
234
+ if (requests.length > 1) {
235
+ const versions = requests.map((r) => r.version);
236
+ const uniqueVersions = [...new Set(versions)];
237
+ if (uniqueVersions.length > 1) {
238
+ let allCompatible = true;
239
+ for (let i = 0; i < uniqueVersions.length; i++) {
240
+ for (let j = i + 1; j < uniqueVersions.length; j++) {
241
+ if (!import_semver2.default.satisfies(uniqueVersions[i], uniqueVersions[j]) && !import_semver2.default.satisfies(uniqueVersions[j], uniqueVersions[i])) {
242
+ allCompatible = false;
243
+ break;
244
+ }
245
+ }
246
+ }
247
+ if (!allCompatible) {
248
+ conflicts.push({
249
+ dependency: depId,
250
+ versions: uniqueVersions,
251
+ requestedBy: requests.map((r) => r.pluginId),
252
+ message: `\u4F9D\u8D56 ${depId} \u7248\u672C\u51B2\u7A81: ${uniqueVersions.join(" vs ")}`
253
+ });
254
+ }
255
+ }
256
+ }
257
+ }
258
+ return conflicts;
259
+ }
260
+ function detectCycles(plugins) {
261
+ const warnings = [];
262
+ const graph = /* @__PURE__ */ new Map();
263
+ for (const plugin of plugins) {
264
+ graph.set(
265
+ plugin.id,
266
+ plugin.dependencies.map((d) => d.id)
267
+ );
268
+ }
269
+ const visited = /* @__PURE__ */ new Set();
270
+ const recursionStack = /* @__PURE__ */ new Set();
271
+ const dfs = (node, path) => {
272
+ if (recursionStack.has(node)) {
273
+ const cycleStart = path.indexOf(node);
274
+ const cycle = [...path.slice(cycleStart), node].join(" -> ");
275
+ warnings.push(`\u5FAA\u73AF\u4F9D\u8D56\u68C0\u6D4B: ${cycle}`);
276
+ return true;
277
+ }
278
+ if (visited.has(node)) return false;
279
+ visited.add(node);
280
+ recursionStack.add(node);
281
+ const deps = graph.get(node) || [];
282
+ for (const dep of deps) {
283
+ if (dfs(dep, [...path, node])) {
284
+ return true;
285
+ }
286
+ }
287
+ recursionStack.delete(node);
288
+ return false;
289
+ };
290
+ for (const plugin of plugins) {
291
+ dfs(plugin.id, []);
292
+ }
293
+ return warnings;
294
+ }
295
+ function flattenDependencies(plugins) {
296
+ const allDeps = /* @__PURE__ */ new Map();
297
+ for (const plugin of plugins) {
298
+ for (const dep of plugin.dependencies) {
299
+ if (!allDeps.has(dep.id)) {
300
+ allDeps.set(dep.id, dep);
301
+ }
302
+ }
303
+ }
304
+ return Array.from(allDeps.values());
305
+ }
306
+
307
+ // src/semver/VersionCompatibility.ts
308
+ var import_semver3 = __toESM(require("semver"), 1);
309
+ function satisfiesVersion(version, range) {
310
+ return import_semver3.default.satisfies(version, range);
311
+ }
312
+ function checkCompatibility(current, required) {
313
+ if (!import_semver3.default.satisfies(current, required)) {
314
+ const currentParsed2 = parseVersion(current);
315
+ const requiredParsed2 = parseRange(required);
316
+ if (!currentParsed2 || !requiredParsed2) {
317
+ return {
318
+ compatible: false,
319
+ reason: "\u7248\u672C\u89E3\u6790\u5931\u8D25",
320
+ severity: "major"
321
+ };
322
+ }
323
+ const reqSet = requiredParsed2.set;
324
+ const reqParts = reqSet?.[0] || [];
325
+ if (reqParts.length > 0) {
326
+ const reqMajor = reqParts[0]?.semver?.major ?? 0;
327
+ const reqMinor = reqParts[0]?.semver?.minor ?? 0;
328
+ if (currentParsed2.major !== reqMajor) {
329
+ return {
330
+ compatible: false,
331
+ reason: `\u4E3B\u7248\u672C\u4E0D\u517C\u5BB9: \u5F53\u524D ${currentParsed2.major}, \u8981\u6C42 ${reqMajor}`,
332
+ severity: "major"
333
+ };
334
+ }
335
+ if (currentParsed2.minor < reqMinor) {
336
+ return {
337
+ compatible: false,
338
+ reason: `\u6B21\u7248\u672C\u4E0D\u517C\u5BB9: \u5F53\u524D ${currentParsed2.minor}, \u8981\u6C42 ${reqMinor}`,
339
+ severity: "minor"
340
+ };
341
+ }
342
+ }
343
+ return {
344
+ compatible: false,
345
+ reason: "\u7248\u672C\u4E0D\u6EE1\u8DB3\u8303\u56F4\u8981\u6C42",
346
+ severity: "patch"
347
+ };
348
+ }
349
+ const currentParsed = parseVersion(current);
350
+ if (!currentParsed) {
351
+ return { compatible: true, severity: "none" };
352
+ }
353
+ const requiredParsed = parseRange(required);
354
+ if (requiredParsed && requiredParsed.set.length > 0) {
355
+ const reqSemVer = requiredParsed.set[0]?.[0]?.semver;
356
+ if (reqSemVer) {
357
+ const reqMajor = reqSemVer.major ?? 0;
358
+ const reqMinor = reqSemVer.minor ?? 0;
359
+ const reqPatch = reqSemVer.patch ?? 0;
360
+ if (currentParsed.major > reqMajor) {
361
+ return { compatible: true, severity: "major" };
362
+ }
363
+ if (currentParsed.major < reqMajor) {
364
+ return {
365
+ compatible: false,
366
+ reason: `\u4E3B\u7248\u672C\u4F4E\u4E8E\u8981\u6C42`,
367
+ severity: "major"
368
+ };
369
+ }
370
+ if (currentParsed.minor > reqMinor) {
371
+ return { compatible: true, severity: "minor" };
372
+ }
373
+ if (currentParsed.minor < reqMinor) {
374
+ return {
375
+ compatible: false,
376
+ reason: `\u6B21\u7248\u672C\u4F4E\u4E8E\u8981\u6C42`,
377
+ severity: "minor"
378
+ };
379
+ }
380
+ if (currentParsed.patch >= reqPatch) {
381
+ return { compatible: true, severity: "patch" };
382
+ }
383
+ return {
384
+ compatible: false,
385
+ reason: `\u8865\u4E01\u7248\u672C\u4F4E\u4E8E\u8981\u6C42`,
386
+ severity: "patch"
387
+ };
388
+ }
389
+ }
390
+ return { compatible: true, severity: "none" };
391
+ }
392
+ function getMajorMinorPatch(version) {
393
+ const parsed = parseVersion(version);
394
+ if (!parsed) return null;
395
+ return {
396
+ major: parsed.major,
397
+ minor: parsed.minor,
398
+ patch: parsed.patch
399
+ };
400
+ }
401
+ function isBreakingChange(current, next) {
402
+ const currentParsed = parseVersion(current);
403
+ const nextParsed = parseVersion(next);
404
+ if (!currentParsed || !nextParsed) {
405
+ return false;
406
+ }
407
+ return nextParsed.major !== currentParsed.major;
408
+ }
409
+ function isPrerelease(version) {
410
+ const parsed = parseVersion(version);
411
+ return parsed ? parsed.prerelease.length > 0 : false;
412
+ }
413
+ function isZeroVersion(version) {
414
+ const parsed = parseVersion(version);
415
+ return parsed ? parsed.major === 0 : false;
416
+ }
417
+ function getVersionType(version) {
418
+ if (isZeroVersion(version)) return "zero";
419
+ if (isPrerelease(version)) return "prerelease";
420
+ if (isValidVersion2(version)) return "release";
421
+ return "invalid";
422
+ }
423
+ function isValidVersion2(version) {
424
+ return import_semver3.default.valid(version) !== null;
425
+ }
426
+ // Annotate the CommonJS export names for ESM import in node:
427
+ 0 && (module.exports = {
428
+ checkCompatibility,
429
+ clean,
430
+ coerce,
431
+ compareVersions,
432
+ detectConflicts,
433
+ flattenDependencies,
434
+ getMajorMinorPatch,
435
+ getVersionType,
436
+ isBreakingChange,
437
+ isPrerelease,
438
+ isValidRange,
439
+ isValidVersion,
440
+ isZeroVersion,
441
+ maxSatisfying,
442
+ minSatisfying,
443
+ parseRange,
444
+ parseVersion,
445
+ resolveDependencies,
446
+ satisfiesVersion,
447
+ satisfyVersions,
448
+ selectBestVersion
449
+ });
@@ -0,0 +1,192 @@
1
+ import { D as Dependency } from '../plugin-port-CHRPxDOi.cjs';
2
+ import { Range } from 'semver';
3
+ import 'zod';
4
+
5
+ /** 依赖冲突 */
6
+ interface Conflict {
7
+ dependency: string;
8
+ versions: string[];
9
+ requestedBy: string[];
10
+ message: string;
11
+ }
12
+ /** 解析后的依赖 */
13
+ interface ResolvedDependency {
14
+ id: string;
15
+ version: string;
16
+ resolvedFrom: string;
17
+ compatible: boolean;
18
+ }
19
+ /** 依赖解析结果 */
20
+ interface ResolvedDependencies {
21
+ dependencies: ResolvedDependency[];
22
+ conflicts: Conflict[];
23
+ warnings: string[];
24
+ }
25
+ /** 插件依赖输入 */
26
+ interface PluginDependencyInput {
27
+ id: string;
28
+ dependencies: Dependency[];
29
+ }
30
+ /**
31
+ * 解析依赖
32
+ * @param plugins 插件列表及其依赖
33
+ * @returns 解析后的依赖结果
34
+ */
35
+ declare function resolveDependencies(plugins: PluginDependencyInput[]): ResolvedDependencies;
36
+ /**
37
+ * 从可用版本列表中选择最佳版本
38
+ * @param versions 可用版本列表
39
+ * @param range 版本范围
40
+ * @returns 最佳版本,不存在返回 null
41
+ */
42
+ declare function selectBestVersion(versions: string[], range: string): string | null;
43
+ /**
44
+ * 检测依赖冲突
45
+ * @param deps 依赖列表
46
+ * @returns 冲突列表
47
+ */
48
+ declare function detectConflicts(deps: Dependency[]): Conflict[];
49
+ /**
50
+ * 简化依赖图
51
+ * @param plugins 插件列表
52
+ * @returns 扁平化的依赖列表
53
+ */
54
+ declare function flattenDependencies(plugins: PluginDependencyInput[]): Dependency[];
55
+
56
+ /**
57
+ * Semver 版本解析器
58
+ * @description 提供语义版本解析、验证和转换功能,基于 semver 库
59
+ */
60
+
61
+ /** 解析后的语义版本 */
62
+ interface SemverVersion {
63
+ major: number;
64
+ minor: number;
65
+ patch: number;
66
+ prerelease: string[];
67
+ build: string[];
68
+ version: string;
69
+ raw: string;
70
+ }
71
+ /**
72
+ * 解析精确版本字符串
73
+ * @param version 版本字符串 (如 "1.2.3", "1.0.0-alpha")
74
+ * @returns 解析后的版本对象,解析失败返回 null
75
+ */
76
+ declare function parseVersion(version: string): SemverVersion | null;
77
+ /**
78
+ * 解析版本范围字符串
79
+ * @param range 版本范围 (如 "^1.0.0", "~1.2.3", ">=1.0.0 <2.0.0")
80
+ * @returns 解析后的范围对象,解析失败返回 null
81
+ */
82
+ declare function parseRange(range: string): Range | null;
83
+ /**
84
+ * 验证是否为有效的精确版本
85
+ * @param version 版本字符串
86
+ * @returns 是否有效
87
+ */
88
+ declare function isValidVersion(version: string): boolean;
89
+ /**
90
+ * 验证是否为有效的版本范围
91
+ * @param range 版本范围字符串
92
+ * @returns 是否有效
93
+ */
94
+ declare function isValidRange(range: string): boolean;
95
+ /**
96
+ * 强制转换版本字符串为标准格式
97
+ * @param version 版本字符串 (如 "v2", "2", "1.2")
98
+ * @returns 转换后的版本 (如 "2.0.0", "1.2.0")
99
+ */
100
+ declare function coerce(version: string): SemverVersion | null;
101
+ /**
102
+ * 清理版本字符串
103
+ * @param version 版本字符串
104
+ * @returns 清理后的版本,失败返回 null
105
+ */
106
+ declare function clean(version: string): string | null;
107
+ /**
108
+ * 比较两个版本
109
+ * @param v1 版本1
110
+ * @param v2 版本2
111
+ * @returns -1: v1 < v2, 0: v1 == v2, 1: v1 > v2
112
+ */
113
+ declare function compareVersions(v1: string, v2: string): number;
114
+ /**
115
+ * 获取版本范围的所有可满足版本
116
+ * @param range 版本范围
117
+ * @param versions 可用版本列表
118
+ * @returns 满足范围的版本列表
119
+ */
120
+ declare function satisfyVersions(range: string, versions: string[]): string[];
121
+ /**
122
+ * 获取范围内的最高版本
123
+ * @param range 版本范围
124
+ * @param versions 可用版本列表
125
+ * @returns 最高版本,不存在返回 null
126
+ */
127
+ declare function maxSatisfying(range: string, versions: string[]): string | null;
128
+ /**
129
+ * 获取范围内的最低版本
130
+ * @param range 版本范围
131
+ * @param versions 可用版本列表
132
+ * @returns 最低版本,不存在返回 null
133
+ */
134
+ declare function minSatisfying(range: string, versions: string[]): string | null;
135
+
136
+ /** 兼容性检查结果 */
137
+ interface CompatibilityResult {
138
+ compatible: boolean;
139
+ reason?: string;
140
+ severity: 'none' | 'patch' | 'minor' | 'major';
141
+ }
142
+ /**
143
+ * 检查版本是否满足版本范围
144
+ * @param version 精确版本 (如 "1.2.3")
145
+ * @param range 版本范围 (如 "^1.0.0")
146
+ * @returns 是否满足
147
+ */
148
+ declare function satisfiesVersion(version: string, range: string): boolean;
149
+ /**
150
+ * 检查两个版本之间的兼容性
151
+ * @param current 当前版本
152
+ * @param required 要求的版本
153
+ * @returns 兼容性结果
154
+ */
155
+ declare function checkCompatibility(current: string, required: string): CompatibilityResult;
156
+ /**
157
+ * 获取版本的主版本号、次版本号、补丁号
158
+ * @param version 版本字符串
159
+ * @returns 分解后的版本号对象
160
+ */
161
+ declare function getMajorMinorPatch(version: string): {
162
+ major: number;
163
+ minor: number;
164
+ patch: number;
165
+ } | null;
166
+ /**
167
+ * 检测是否为破坏性变更
168
+ * @param current 当前版本
169
+ * @param next 下一个版本
170
+ * @returns 是否为破坏性变更 (主版本变化)
171
+ */
172
+ declare function isBreakingChange(current: string, next: string): boolean;
173
+ /**
174
+ * 检查是否为预发布版本
175
+ * @param version 版本字符串
176
+ * @returns 是否为预发布版本
177
+ */
178
+ declare function isPrerelease(version: string): boolean;
179
+ /**
180
+ * 检查是否为零版本 (0.x.x)
181
+ * @param version 版本字符串
182
+ * @returns 是否为零版本
183
+ */
184
+ declare function isZeroVersion(version: string): boolean;
185
+ /**
186
+ * 获取版本类型
187
+ * @param version 版本字符串
188
+ * @returns 版本类型: release, prerelease, zero
189
+ */
190
+ declare function getVersionType(version: string): 'release' | 'prerelease' | 'zero' | 'invalid';
191
+
192
+ export { type CompatibilityResult, type Conflict, type PluginDependencyInput, type ResolvedDependencies, type ResolvedDependency, type SemverVersion, checkCompatibility, clean, coerce, compareVersions, detectConflicts, flattenDependencies, getMajorMinorPatch, getVersionType, isBreakingChange, isPrerelease, isValidRange, isValidVersion, isZeroVersion, maxSatisfying, minSatisfying, parseRange, parseVersion, resolveDependencies, satisfiesVersion, satisfyVersions, selectBestVersion };