@releasekit/version 0.2.0-next.8 → 0.2.0-next.9
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/{chunk-ORO3VYQ7.js → chunk-7F6RMN2K.js} +31 -36
- package/dist/chunk-LMPZV35Z.js +20 -0
- package/dist/cli.cjs +60 -34
- package/dist/cli.js +2 -1
- package/dist/commandExecutor-E44ID5U4.js +8 -0
- package/dist/index.cjs +65 -36
- package/dist/index.js +2 -1
- package/package.json +1 -1
|
@@ -1,6 +1,10 @@
|
|
|
1
1
|
import {
|
|
2
2
|
BaseVersionError
|
|
3
3
|
} from "./chunk-GQLJ7JQY.js";
|
|
4
|
+
import {
|
|
5
|
+
execAsync,
|
|
6
|
+
execSync
|
|
7
|
+
} from "./chunk-LMPZV35Z.js";
|
|
4
8
|
|
|
5
9
|
// src/config.ts
|
|
6
10
|
import { loadVersionConfig } from "@releasekit/config";
|
|
@@ -202,24 +206,6 @@ import semver3 from "semver";
|
|
|
202
206
|
// src/git/repository.ts
|
|
203
207
|
import { existsSync, statSync } from "fs";
|
|
204
208
|
import { join } from "path";
|
|
205
|
-
|
|
206
|
-
// src/git/commandExecutor.ts
|
|
207
|
-
import { execFile, execFileSync } from "child_process";
|
|
208
|
-
var execAsync = (file, args, options) => {
|
|
209
|
-
const defaultOptions = { maxBuffer: 1024 * 1024 * 10, ...options };
|
|
210
|
-
return new Promise((resolve2, reject) => {
|
|
211
|
-
execFile(file, args, defaultOptions, (error, stdout, stderr) => {
|
|
212
|
-
if (error) {
|
|
213
|
-
reject(error);
|
|
214
|
-
} else {
|
|
215
|
-
resolve2({ stdout: stdout.toString(), stderr: stderr.toString() });
|
|
216
|
-
}
|
|
217
|
-
});
|
|
218
|
-
});
|
|
219
|
-
};
|
|
220
|
-
var execSync = (file, args, options) => execFileSync(file, args, { maxBuffer: 1024 * 1024 * 10, ...options });
|
|
221
|
-
|
|
222
|
-
// src/git/repository.ts
|
|
223
209
|
function isGitRepository(directory) {
|
|
224
210
|
const gitDir = join(directory, ".git");
|
|
225
211
|
if (!existsSync(gitDir)) {
|
|
@@ -374,28 +360,37 @@ async function getLatestTagForPackage(packageName, versionPrefix, options) {
|
|
|
374
360
|
`Looking for tags for package ${packageName} with prefix ${versionPrefix || "none"}, packageSpecificTags: ${packageSpecificTags}`,
|
|
375
361
|
"debug"
|
|
376
362
|
);
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
|
|
363
|
+
let allTags = [];
|
|
364
|
+
try {
|
|
365
|
+
const { execSync: execSync2 } = await import("./commandExecutor-E44ID5U4.js");
|
|
366
|
+
const tagsOutput = execSync2("git", ["tag", "-l"], { cwd: process.cwd() });
|
|
367
|
+
allTags = tagsOutput.toString().trim().split("\n").filter((tag) => tag.length > 0);
|
|
368
|
+
} catch (err) {
|
|
369
|
+
log(`Error getting tags: ${err instanceof Error ? err.message : String(err)}`, "error");
|
|
370
|
+
}
|
|
371
|
+
log(`Retrieved ${allTags.length} tags`, "debug");
|
|
381
372
|
if (packageSpecificTags) {
|
|
382
373
|
const packageTagPattern = escapeRegExp(tagTemplate).replace(/\\\$\\\{packageName\\\}/g, `(?:${escapedPackageName})`).replace(/\\\$\\\{prefix\\\}/g, `(?:${escapedPrefix})`).replace(/\\\$\\\{version\\\}/g, "(?:[0-9]+\\.[0-9]+\\.[0-9]+(?:-[a-zA-Z0-9.-]+)?)");
|
|
383
374
|
log(`Using package tag pattern: ${packageTagPattern}`, "debug");
|
|
384
375
|
const packageTagRegex = new RegExp(`^${packageTagPattern}$`);
|
|
385
376
|
let packageTags = allTags.filter((tag) => packageTagRegex.test(tag));
|
|
377
|
+
log(`Found ${packageTags.length} matching tags for ${packageName}`, "debug");
|
|
386
378
|
if (packageTags.length > 0) {
|
|
387
379
|
const chronologicalFirst = packageTags[0];
|
|
380
|
+
void chronologicalFirst;
|
|
388
381
|
const sortedPackageTags2 = [...packageTags].sort((a, b) => {
|
|
389
382
|
let versionA = "";
|
|
390
383
|
let versionB = "";
|
|
391
384
|
if (a.includes("@")) {
|
|
392
|
-
const
|
|
385
|
+
const parts = a.split("@");
|
|
386
|
+
const afterAt = parts[parts.length - 1] || "";
|
|
393
387
|
versionA = afterAt.replace(new RegExp(`^${escapeRegExp(versionPrefix || "")}`), "");
|
|
394
388
|
} else {
|
|
395
389
|
versionA = a.replace(new RegExp(`^${escapeRegExp(packageName)}`), "").replace(new RegExp(`^${escapeRegExp(versionPrefix || "")}`), "");
|
|
396
390
|
}
|
|
397
391
|
if (b.includes("@")) {
|
|
398
|
-
const
|
|
392
|
+
const parts = b.split("@");
|
|
393
|
+
const afterAtB = parts[parts.length - 1] || "";
|
|
399
394
|
versionB = afterAtB.replace(new RegExp(`^${escapeRegExp(versionPrefix || "")}`), "");
|
|
400
395
|
} else {
|
|
401
396
|
versionB = b.replace(new RegExp(`^${escapeRegExp(packageName)}`), "").replace(new RegExp(`^${escapeRegExp(versionPrefix || "")}`), "");
|
|
@@ -406,12 +401,6 @@ async function getLatestTagForPackage(packageName, versionPrefix, options) {
|
|
|
406
401
|
});
|
|
407
402
|
log(`Found ${packageTags.length} package tags using configured pattern`, "debug");
|
|
408
403
|
log(`Using semantically latest tag: ${sortedPackageTags2[0]}`, "debug");
|
|
409
|
-
if (sortedPackageTags2[0] !== chronologicalFirst) {
|
|
410
|
-
log(
|
|
411
|
-
`Package tag ordering differs: chronological first is ${chronologicalFirst}, semantic latest is ${sortedPackageTags2[0]}`,
|
|
412
|
-
"debug"
|
|
413
|
-
);
|
|
414
|
-
}
|
|
415
404
|
return sortedPackageTags2[0];
|
|
416
405
|
}
|
|
417
406
|
if (versionPrefix) {
|
|
@@ -419,9 +408,11 @@ async function getLatestTagForPackage(packageName, versionPrefix, options) {
|
|
|
419
408
|
packageTags = allTags.filter((tag) => pattern1.test(tag));
|
|
420
409
|
if (packageTags.length > 0) {
|
|
421
410
|
const sortedPackageTags2 = [...packageTags].sort((a, b) => {
|
|
422
|
-
const
|
|
411
|
+
const aParts = a.split("@");
|
|
412
|
+
const afterAt = aParts[aParts.length - 1] || "";
|
|
423
413
|
const versionA = afterAt.replace(new RegExp(`^${escapeRegExp(versionPrefix || "")}`), "");
|
|
424
|
-
const
|
|
414
|
+
const bParts = b.split("@");
|
|
415
|
+
const afterAtB = bParts[bParts.length - 1] || "";
|
|
425
416
|
const versionB = afterAtB.replace(new RegExp(`^${escapeRegExp(versionPrefix || "")}`), "");
|
|
426
417
|
const cleanVersionA = semver.clean(versionA) || "0.0.0";
|
|
427
418
|
const cleanVersionB = semver.clean(versionB) || "0.0.0";
|
|
@@ -437,8 +428,10 @@ async function getLatestTagForPackage(packageName, versionPrefix, options) {
|
|
|
437
428
|
packageTags = allTags.filter((tag) => pattern2.test(tag));
|
|
438
429
|
if (packageTags.length > 0) {
|
|
439
430
|
const sortedPackageTags2 = [...packageTags].sort((a, b) => {
|
|
440
|
-
const
|
|
441
|
-
const
|
|
431
|
+
const aParts = a.split("@");
|
|
432
|
+
const versionA = semver.clean(aParts[aParts.length - 1] || "") || "0.0.0";
|
|
433
|
+
const bParts = b.split("@");
|
|
434
|
+
const versionB = semver.clean(bParts[bParts.length - 1] || "") || "0.0.0";
|
|
442
435
|
return semver.rcompare(versionA, versionB);
|
|
443
436
|
});
|
|
444
437
|
log(`Found ${packageTags.length} package tags using pattern: ${versionPrefix}packageName@...`, "debug");
|
|
@@ -458,8 +451,10 @@ async function getLatestTagForPackage(packageName, versionPrefix, options) {
|
|
|
458
451
|
return "";
|
|
459
452
|
}
|
|
460
453
|
const sortedPackageTags = [...packageTags].sort((a, b) => {
|
|
461
|
-
const
|
|
462
|
-
const
|
|
454
|
+
const aParts = a.split("@");
|
|
455
|
+
const versionA = semver.clean(aParts[aParts.length - 1] || "") || "0.0.0";
|
|
456
|
+
const bParts = b.split("@");
|
|
457
|
+
const versionB = semver.clean(bParts[bParts.length - 1] || "") || "0.0.0";
|
|
463
458
|
return semver.rcompare(versionA, versionB);
|
|
464
459
|
});
|
|
465
460
|
log(`Found ${packageTags.length} package tags for ${packageName}`, "debug");
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
// src/git/commandExecutor.ts
|
|
2
|
+
import { execFile, execFileSync } from "child_process";
|
|
3
|
+
var execAsync = (file, args, options) => {
|
|
4
|
+
const defaultOptions = { maxBuffer: 1024 * 1024 * 10, ...options };
|
|
5
|
+
return new Promise((resolve, reject) => {
|
|
6
|
+
execFile(file, args, defaultOptions, (error, stdout, stderr) => {
|
|
7
|
+
if (error) {
|
|
8
|
+
reject(error);
|
|
9
|
+
} else {
|
|
10
|
+
resolve({ stdout: stdout.toString(), stderr: stderr.toString() });
|
|
11
|
+
}
|
|
12
|
+
});
|
|
13
|
+
});
|
|
14
|
+
};
|
|
15
|
+
var execSync = (file, args, options) => execFileSync(file, args, { maxBuffer: 1024 * 1024 * 10, ...options });
|
|
16
|
+
|
|
17
|
+
export {
|
|
18
|
+
execAsync,
|
|
19
|
+
execSync
|
|
20
|
+
};
|
package/dist/cli.cjs
CHANGED
|
@@ -57,6 +57,33 @@ var init_baseError = __esm({
|
|
|
57
57
|
}
|
|
58
58
|
});
|
|
59
59
|
|
|
60
|
+
// src/git/commandExecutor.ts
|
|
61
|
+
var commandExecutor_exports = {};
|
|
62
|
+
__export(commandExecutor_exports, {
|
|
63
|
+
execAsync: () => execAsync,
|
|
64
|
+
execSync: () => execSync
|
|
65
|
+
});
|
|
66
|
+
var import_node_child_process, execAsync, execSync;
|
|
67
|
+
var init_commandExecutor = __esm({
|
|
68
|
+
"src/git/commandExecutor.ts"() {
|
|
69
|
+
"use strict";
|
|
70
|
+
import_node_child_process = require("child_process");
|
|
71
|
+
execAsync = (file, args, options) => {
|
|
72
|
+
const defaultOptions = { maxBuffer: 1024 * 1024 * 10, ...options };
|
|
73
|
+
return new Promise((resolve2, reject) => {
|
|
74
|
+
(0, import_node_child_process.execFile)(file, args, defaultOptions, (error, stdout, stderr) => {
|
|
75
|
+
if (error) {
|
|
76
|
+
reject(error);
|
|
77
|
+
} else {
|
|
78
|
+
resolve2({ stdout: stdout.toString(), stderr: stderr.toString() });
|
|
79
|
+
}
|
|
80
|
+
});
|
|
81
|
+
});
|
|
82
|
+
};
|
|
83
|
+
execSync = (file, args, options) => (0, import_node_child_process.execFileSync)(file, args, { maxBuffer: 1024 * 1024 * 10, ...options });
|
|
84
|
+
}
|
|
85
|
+
});
|
|
86
|
+
|
|
60
87
|
// src/cli.ts
|
|
61
88
|
var cli_exports = {};
|
|
62
89
|
__export(cli_exports, {
|
|
@@ -370,23 +397,8 @@ function matchesPackageNamePattern(packageName, pattern) {
|
|
|
370
397
|
var import_node_fs6 = __toESM(require("fs"), 1);
|
|
371
398
|
var path6 = __toESM(require("path"), 1);
|
|
372
399
|
|
|
373
|
-
// src/git/commandExecutor.ts
|
|
374
|
-
var import_node_child_process = require("child_process");
|
|
375
|
-
var execAsync = (file, args, options) => {
|
|
376
|
-
const defaultOptions = { maxBuffer: 1024 * 1024 * 10, ...options };
|
|
377
|
-
return new Promise((resolve2, reject) => {
|
|
378
|
-
(0, import_node_child_process.execFile)(file, args, defaultOptions, (error, stdout, stderr) => {
|
|
379
|
-
if (error) {
|
|
380
|
-
reject(error);
|
|
381
|
-
} else {
|
|
382
|
-
resolve2({ stdout: stdout.toString(), stderr: stderr.toString() });
|
|
383
|
-
}
|
|
384
|
-
});
|
|
385
|
-
});
|
|
386
|
-
};
|
|
387
|
-
var execSync = (file, args, options) => (0, import_node_child_process.execFileSync)(file, args, { maxBuffer: 1024 * 1024 * 10, ...options });
|
|
388
|
-
|
|
389
400
|
// src/changelog/commitParser.ts
|
|
401
|
+
init_commandExecutor();
|
|
390
402
|
var CONVENTIONAL_COMMIT_REGEX = /^(\w+)(?:\(([^)]+)\))?(!)?: (.+)(?:\n\n([\s\S]*))?/;
|
|
391
403
|
var BREAKING_CHANGE_REGEX = /BREAKING CHANGE: ([\s\S]+?)(?:\n\n|$)/;
|
|
392
404
|
function extractChangelogEntriesFromCommits(projectDir, revisionRange) {
|
|
@@ -490,13 +502,16 @@ function extractIssueIds(body) {
|
|
|
490
502
|
|
|
491
503
|
// src/core/versionStrategies.ts
|
|
492
504
|
init_baseError();
|
|
505
|
+
init_commandExecutor();
|
|
493
506
|
|
|
494
507
|
// src/git/commands.ts
|
|
495
508
|
var import_node_process = require("process");
|
|
509
|
+
init_commandExecutor();
|
|
496
510
|
|
|
497
511
|
// src/git/repository.ts
|
|
498
512
|
var import_node_fs = require("fs");
|
|
499
513
|
var import_node_path2 = require("path");
|
|
514
|
+
init_commandExecutor();
|
|
500
515
|
function isGitRepository(directory) {
|
|
501
516
|
const gitDir = (0, import_node_path2.join)(directory, ".git");
|
|
502
517
|
if (!(0, import_node_fs.existsSync)(gitDir)) {
|
|
@@ -701,6 +716,7 @@ To fix this:
|
|
|
701
716
|
}
|
|
702
717
|
|
|
703
718
|
// src/git/tagsAndBranches.ts
|
|
719
|
+
init_commandExecutor();
|
|
704
720
|
function getCommitsLength(pkgRoot, sinceTag) {
|
|
705
721
|
try {
|
|
706
722
|
let amount;
|
|
@@ -778,28 +794,37 @@ async function getLatestTagForPackage(packageName, versionPrefix, options) {
|
|
|
778
794
|
`Looking for tags for package ${packageName} with prefix ${versionPrefix || "none"}, packageSpecificTags: ${packageSpecificTags}`,
|
|
779
795
|
"debug"
|
|
780
796
|
);
|
|
781
|
-
|
|
782
|
-
|
|
783
|
-
|
|
784
|
-
|
|
797
|
+
let allTags = [];
|
|
798
|
+
try {
|
|
799
|
+
const { execSync: execSync2 } = await Promise.resolve().then(() => (init_commandExecutor(), commandExecutor_exports));
|
|
800
|
+
const tagsOutput = execSync2("git", ["tag", "-l"], { cwd: process.cwd() });
|
|
801
|
+
allTags = tagsOutput.toString().trim().split("\n").filter((tag) => tag.length > 0);
|
|
802
|
+
} catch (err) {
|
|
803
|
+
log(`Error getting tags: ${err instanceof Error ? err.message : String(err)}`, "error");
|
|
804
|
+
}
|
|
805
|
+
log(`Retrieved ${allTags.length} tags`, "debug");
|
|
785
806
|
if (packageSpecificTags) {
|
|
786
807
|
const packageTagPattern = escapeRegExp(tagTemplate).replace(/\\\$\\\{packageName\\\}/g, `(?:${escapedPackageName})`).replace(/\\\$\\\{prefix\\\}/g, `(?:${escapedPrefix})`).replace(/\\\$\\\{version\\\}/g, "(?:[0-9]+\\.[0-9]+\\.[0-9]+(?:-[a-zA-Z0-9.-]+)?)");
|
|
787
808
|
log(`Using package tag pattern: ${packageTagPattern}`, "debug");
|
|
788
809
|
const packageTagRegex = new RegExp(`^${packageTagPattern}$`);
|
|
789
810
|
let packageTags = allTags.filter((tag) => packageTagRegex.test(tag));
|
|
811
|
+
log(`Found ${packageTags.length} matching tags for ${packageName}`, "debug");
|
|
790
812
|
if (packageTags.length > 0) {
|
|
791
813
|
const chronologicalFirst = packageTags[0];
|
|
814
|
+
void chronologicalFirst;
|
|
792
815
|
const sortedPackageTags2 = [...packageTags].sort((a, b) => {
|
|
793
816
|
let versionA = "";
|
|
794
817
|
let versionB = "";
|
|
795
818
|
if (a.includes("@")) {
|
|
796
|
-
const
|
|
819
|
+
const parts = a.split("@");
|
|
820
|
+
const afterAt = parts[parts.length - 1] || "";
|
|
797
821
|
versionA = afterAt.replace(new RegExp(`^${escapeRegExp(versionPrefix || "")}`), "");
|
|
798
822
|
} else {
|
|
799
823
|
versionA = a.replace(new RegExp(`^${escapeRegExp(packageName)}`), "").replace(new RegExp(`^${escapeRegExp(versionPrefix || "")}`), "");
|
|
800
824
|
}
|
|
801
825
|
if (b.includes("@")) {
|
|
802
|
-
const
|
|
826
|
+
const parts = b.split("@");
|
|
827
|
+
const afterAtB = parts[parts.length - 1] || "";
|
|
803
828
|
versionB = afterAtB.replace(new RegExp(`^${escapeRegExp(versionPrefix || "")}`), "");
|
|
804
829
|
} else {
|
|
805
830
|
versionB = b.replace(new RegExp(`^${escapeRegExp(packageName)}`), "").replace(new RegExp(`^${escapeRegExp(versionPrefix || "")}`), "");
|
|
@@ -810,12 +835,6 @@ async function getLatestTagForPackage(packageName, versionPrefix, options) {
|
|
|
810
835
|
});
|
|
811
836
|
log(`Found ${packageTags.length} package tags using configured pattern`, "debug");
|
|
812
837
|
log(`Using semantically latest tag: ${sortedPackageTags2[0]}`, "debug");
|
|
813
|
-
if (sortedPackageTags2[0] !== chronologicalFirst) {
|
|
814
|
-
log(
|
|
815
|
-
`Package tag ordering differs: chronological first is ${chronologicalFirst}, semantic latest is ${sortedPackageTags2[0]}`,
|
|
816
|
-
"debug"
|
|
817
|
-
);
|
|
818
|
-
}
|
|
819
838
|
return sortedPackageTags2[0];
|
|
820
839
|
}
|
|
821
840
|
if (versionPrefix) {
|
|
@@ -823,9 +842,11 @@ async function getLatestTagForPackage(packageName, versionPrefix, options) {
|
|
|
823
842
|
packageTags = allTags.filter((tag) => pattern1.test(tag));
|
|
824
843
|
if (packageTags.length > 0) {
|
|
825
844
|
const sortedPackageTags2 = [...packageTags].sort((a, b) => {
|
|
826
|
-
const
|
|
845
|
+
const aParts = a.split("@");
|
|
846
|
+
const afterAt = aParts[aParts.length - 1] || "";
|
|
827
847
|
const versionA = afterAt.replace(new RegExp(`^${escapeRegExp(versionPrefix || "")}`), "");
|
|
828
|
-
const
|
|
848
|
+
const bParts = b.split("@");
|
|
849
|
+
const afterAtB = bParts[bParts.length - 1] || "";
|
|
829
850
|
const versionB = afterAtB.replace(new RegExp(`^${escapeRegExp(versionPrefix || "")}`), "");
|
|
830
851
|
const cleanVersionA = import_semver.default.clean(versionA) || "0.0.0";
|
|
831
852
|
const cleanVersionB = import_semver.default.clean(versionB) || "0.0.0";
|
|
@@ -841,8 +862,10 @@ async function getLatestTagForPackage(packageName, versionPrefix, options) {
|
|
|
841
862
|
packageTags = allTags.filter((tag) => pattern2.test(tag));
|
|
842
863
|
if (packageTags.length > 0) {
|
|
843
864
|
const sortedPackageTags2 = [...packageTags].sort((a, b) => {
|
|
844
|
-
const
|
|
845
|
-
const
|
|
865
|
+
const aParts = a.split("@");
|
|
866
|
+
const versionA = import_semver.default.clean(aParts[aParts.length - 1] || "") || "0.0.0";
|
|
867
|
+
const bParts = b.split("@");
|
|
868
|
+
const versionB = import_semver.default.clean(bParts[bParts.length - 1] || "") || "0.0.0";
|
|
846
869
|
return import_semver.default.rcompare(versionA, versionB);
|
|
847
870
|
});
|
|
848
871
|
log(`Found ${packageTags.length} package tags using pattern: ${versionPrefix}packageName@...`, "debug");
|
|
@@ -862,8 +885,10 @@ async function getLatestTagForPackage(packageName, versionPrefix, options) {
|
|
|
862
885
|
return "";
|
|
863
886
|
}
|
|
864
887
|
const sortedPackageTags = [...packageTags].sort((a, b) => {
|
|
865
|
-
const
|
|
866
|
-
const
|
|
888
|
+
const aParts = a.split("@");
|
|
889
|
+
const versionA = import_semver.default.clean(aParts[aParts.length - 1] || "") || "0.0.0";
|
|
890
|
+
const bParts = b.split("@");
|
|
891
|
+
const versionB = import_semver.default.clean(bParts[bParts.length - 1] || "") || "0.0.0";
|
|
867
892
|
return import_semver.default.rcompare(versionA, versionB);
|
|
868
893
|
});
|
|
869
894
|
log(`Found ${packageTags.length} package tags for ${packageName}`, "debug");
|
|
@@ -1040,6 +1065,7 @@ var import_config3 = require("@releasekit/config");
|
|
|
1040
1065
|
var import_semver2 = __toESM(require("semver"), 1);
|
|
1041
1066
|
|
|
1042
1067
|
// src/git/tagVerification.ts
|
|
1068
|
+
init_commandExecutor();
|
|
1043
1069
|
function verifyTag(tagName, cwd4) {
|
|
1044
1070
|
if (!tagName || tagName.trim() === "") {
|
|
1045
1071
|
return { exists: false, reachable: false, error: "Empty tag name" };
|
package/dist/cli.js
CHANGED
package/dist/index.cjs
CHANGED
|
@@ -5,6 +5,9 @@ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
|
5
5
|
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
6
6
|
var __getProtoOf = Object.getPrototypeOf;
|
|
7
7
|
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
8
|
+
var __esm = (fn, res) => function __init() {
|
|
9
|
+
return fn && (res = (0, fn[__getOwnPropNames(fn)[0]])(fn = 0)), res;
|
|
10
|
+
};
|
|
8
11
|
var __export = (target, all) => {
|
|
9
12
|
for (var name in all)
|
|
10
13
|
__defProp(target, name, { get: all[name], enumerable: true });
|
|
@@ -27,6 +30,33 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
|
|
|
27
30
|
));
|
|
28
31
|
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
29
32
|
|
|
33
|
+
// src/git/commandExecutor.ts
|
|
34
|
+
var commandExecutor_exports = {};
|
|
35
|
+
__export(commandExecutor_exports, {
|
|
36
|
+
execAsync: () => execAsync,
|
|
37
|
+
execSync: () => execSync
|
|
38
|
+
});
|
|
39
|
+
var import_node_child_process, execAsync, execSync;
|
|
40
|
+
var init_commandExecutor = __esm({
|
|
41
|
+
"src/git/commandExecutor.ts"() {
|
|
42
|
+
"use strict";
|
|
43
|
+
import_node_child_process = require("child_process");
|
|
44
|
+
execAsync = (file, args, options) => {
|
|
45
|
+
const defaultOptions = { maxBuffer: 1024 * 1024 * 10, ...options };
|
|
46
|
+
return new Promise((resolve2, reject) => {
|
|
47
|
+
(0, import_node_child_process.execFile)(file, args, defaultOptions, (error, stdout, stderr) => {
|
|
48
|
+
if (error) {
|
|
49
|
+
reject(error);
|
|
50
|
+
} else {
|
|
51
|
+
resolve2({ stdout: stdout.toString(), stderr: stderr.toString() });
|
|
52
|
+
}
|
|
53
|
+
});
|
|
54
|
+
});
|
|
55
|
+
};
|
|
56
|
+
execSync = (file, args, options) => (0, import_node_child_process.execFileSync)(file, args, { maxBuffer: 1024 * 1024 * 10, ...options });
|
|
57
|
+
}
|
|
58
|
+
});
|
|
59
|
+
|
|
30
60
|
// src/index.ts
|
|
31
61
|
var index_exports = {};
|
|
32
62
|
__export(index_exports, {
|
|
@@ -100,24 +130,7 @@ var import_semver3 = __toESM(require("semver"), 1);
|
|
|
100
130
|
// src/git/repository.ts
|
|
101
131
|
var import_node_fs = require("fs");
|
|
102
132
|
var import_node_path = require("path");
|
|
103
|
-
|
|
104
|
-
// src/git/commandExecutor.ts
|
|
105
|
-
var import_node_child_process = require("child_process");
|
|
106
|
-
var execAsync = (file, args, options) => {
|
|
107
|
-
const defaultOptions = { maxBuffer: 1024 * 1024 * 10, ...options };
|
|
108
|
-
return new Promise((resolve2, reject) => {
|
|
109
|
-
(0, import_node_child_process.execFile)(file, args, defaultOptions, (error, stdout, stderr) => {
|
|
110
|
-
if (error) {
|
|
111
|
-
reject(error);
|
|
112
|
-
} else {
|
|
113
|
-
resolve2({ stdout: stdout.toString(), stderr: stderr.toString() });
|
|
114
|
-
}
|
|
115
|
-
});
|
|
116
|
-
});
|
|
117
|
-
};
|
|
118
|
-
var execSync = (file, args, options) => (0, import_node_child_process.execFileSync)(file, args, { maxBuffer: 1024 * 1024 * 10, ...options });
|
|
119
|
-
|
|
120
|
-
// src/git/repository.ts
|
|
133
|
+
init_commandExecutor();
|
|
121
134
|
function isGitRepository(directory) {
|
|
122
135
|
const gitDir = (0, import_node_path.join)(directory, ".git");
|
|
123
136
|
if (!(0, import_node_fs.existsSync)(gitDir)) {
|
|
@@ -280,6 +293,7 @@ To fix this:
|
|
|
280
293
|
}
|
|
281
294
|
|
|
282
295
|
// src/git/tagsAndBranches.ts
|
|
296
|
+
init_commandExecutor();
|
|
283
297
|
function getCommitsLength(pkgRoot, sinceTag) {
|
|
284
298
|
try {
|
|
285
299
|
let amount;
|
|
@@ -357,28 +371,37 @@ async function getLatestTagForPackage(packageName, versionPrefix, options) {
|
|
|
357
371
|
`Looking for tags for package ${packageName} with prefix ${versionPrefix || "none"}, packageSpecificTags: ${packageSpecificTags}`,
|
|
358
372
|
"debug"
|
|
359
373
|
);
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
374
|
+
let allTags = [];
|
|
375
|
+
try {
|
|
376
|
+
const { execSync: execSync2 } = await Promise.resolve().then(() => (init_commandExecutor(), commandExecutor_exports));
|
|
377
|
+
const tagsOutput = execSync2("git", ["tag", "-l"], { cwd: process.cwd() });
|
|
378
|
+
allTags = tagsOutput.toString().trim().split("\n").filter((tag) => tag.length > 0);
|
|
379
|
+
} catch (err) {
|
|
380
|
+
log(`Error getting tags: ${err instanceof Error ? err.message : String(err)}`, "error");
|
|
381
|
+
}
|
|
382
|
+
log(`Retrieved ${allTags.length} tags`, "debug");
|
|
364
383
|
if (packageSpecificTags) {
|
|
365
384
|
const packageTagPattern = escapeRegExp(tagTemplate).replace(/\\\$\\\{packageName\\\}/g, `(?:${escapedPackageName})`).replace(/\\\$\\\{prefix\\\}/g, `(?:${escapedPrefix})`).replace(/\\\$\\\{version\\\}/g, "(?:[0-9]+\\.[0-9]+\\.[0-9]+(?:-[a-zA-Z0-9.-]+)?)");
|
|
366
385
|
log(`Using package tag pattern: ${packageTagPattern}`, "debug");
|
|
367
386
|
const packageTagRegex = new RegExp(`^${packageTagPattern}$`);
|
|
368
387
|
let packageTags = allTags.filter((tag) => packageTagRegex.test(tag));
|
|
388
|
+
log(`Found ${packageTags.length} matching tags for ${packageName}`, "debug");
|
|
369
389
|
if (packageTags.length > 0) {
|
|
370
390
|
const chronologicalFirst = packageTags[0];
|
|
391
|
+
void chronologicalFirst;
|
|
371
392
|
const sortedPackageTags2 = [...packageTags].sort((a, b) => {
|
|
372
393
|
let versionA = "";
|
|
373
394
|
let versionB = "";
|
|
374
395
|
if (a.includes("@")) {
|
|
375
|
-
const
|
|
396
|
+
const parts = a.split("@");
|
|
397
|
+
const afterAt = parts[parts.length - 1] || "";
|
|
376
398
|
versionA = afterAt.replace(new RegExp(`^${escapeRegExp(versionPrefix || "")}`), "");
|
|
377
399
|
} else {
|
|
378
400
|
versionA = a.replace(new RegExp(`^${escapeRegExp(packageName)}`), "").replace(new RegExp(`^${escapeRegExp(versionPrefix || "")}`), "");
|
|
379
401
|
}
|
|
380
402
|
if (b.includes("@")) {
|
|
381
|
-
const
|
|
403
|
+
const parts = b.split("@");
|
|
404
|
+
const afterAtB = parts[parts.length - 1] || "";
|
|
382
405
|
versionB = afterAtB.replace(new RegExp(`^${escapeRegExp(versionPrefix || "")}`), "");
|
|
383
406
|
} else {
|
|
384
407
|
versionB = b.replace(new RegExp(`^${escapeRegExp(packageName)}`), "").replace(new RegExp(`^${escapeRegExp(versionPrefix || "")}`), "");
|
|
@@ -389,12 +412,6 @@ async function getLatestTagForPackage(packageName, versionPrefix, options) {
|
|
|
389
412
|
});
|
|
390
413
|
log(`Found ${packageTags.length} package tags using configured pattern`, "debug");
|
|
391
414
|
log(`Using semantically latest tag: ${sortedPackageTags2[0]}`, "debug");
|
|
392
|
-
if (sortedPackageTags2[0] !== chronologicalFirst) {
|
|
393
|
-
log(
|
|
394
|
-
`Package tag ordering differs: chronological first is ${chronologicalFirst}, semantic latest is ${sortedPackageTags2[0]}`,
|
|
395
|
-
"debug"
|
|
396
|
-
);
|
|
397
|
-
}
|
|
398
415
|
return sortedPackageTags2[0];
|
|
399
416
|
}
|
|
400
417
|
if (versionPrefix) {
|
|
@@ -402,9 +419,11 @@ async function getLatestTagForPackage(packageName, versionPrefix, options) {
|
|
|
402
419
|
packageTags = allTags.filter((tag) => pattern1.test(tag));
|
|
403
420
|
if (packageTags.length > 0) {
|
|
404
421
|
const sortedPackageTags2 = [...packageTags].sort((a, b) => {
|
|
405
|
-
const
|
|
422
|
+
const aParts = a.split("@");
|
|
423
|
+
const afterAt = aParts[aParts.length - 1] || "";
|
|
406
424
|
const versionA = afterAt.replace(new RegExp(`^${escapeRegExp(versionPrefix || "")}`), "");
|
|
407
|
-
const
|
|
425
|
+
const bParts = b.split("@");
|
|
426
|
+
const afterAtB = bParts[bParts.length - 1] || "";
|
|
408
427
|
const versionB = afterAtB.replace(new RegExp(`^${escapeRegExp(versionPrefix || "")}`), "");
|
|
409
428
|
const cleanVersionA = import_semver.default.clean(versionA) || "0.0.0";
|
|
410
429
|
const cleanVersionB = import_semver.default.clean(versionB) || "0.0.0";
|
|
@@ -420,8 +439,10 @@ async function getLatestTagForPackage(packageName, versionPrefix, options) {
|
|
|
420
439
|
packageTags = allTags.filter((tag) => pattern2.test(tag));
|
|
421
440
|
if (packageTags.length > 0) {
|
|
422
441
|
const sortedPackageTags2 = [...packageTags].sort((a, b) => {
|
|
423
|
-
const
|
|
424
|
-
const
|
|
442
|
+
const aParts = a.split("@");
|
|
443
|
+
const versionA = import_semver.default.clean(aParts[aParts.length - 1] || "") || "0.0.0";
|
|
444
|
+
const bParts = b.split("@");
|
|
445
|
+
const versionB = import_semver.default.clean(bParts[bParts.length - 1] || "") || "0.0.0";
|
|
425
446
|
return import_semver.default.rcompare(versionA, versionB);
|
|
426
447
|
});
|
|
427
448
|
log(`Found ${packageTags.length} package tags using pattern: ${versionPrefix}packageName@...`, "debug");
|
|
@@ -441,8 +462,10 @@ async function getLatestTagForPackage(packageName, versionPrefix, options) {
|
|
|
441
462
|
return "";
|
|
442
463
|
}
|
|
443
464
|
const sortedPackageTags = [...packageTags].sort((a, b) => {
|
|
444
|
-
const
|
|
445
|
-
const
|
|
465
|
+
const aParts = a.split("@");
|
|
466
|
+
const versionA = import_semver.default.clean(aParts[aParts.length - 1] || "") || "0.0.0";
|
|
467
|
+
const bParts = b.split("@");
|
|
468
|
+
const versionB = import_semver.default.clean(bParts[bParts.length - 1] || "") || "0.0.0";
|
|
446
469
|
return import_semver.default.rcompare(versionA, versionB);
|
|
447
470
|
});
|
|
448
471
|
log(`Found ${packageTags.length} package tags for ${packageName}`, "debug");
|
|
@@ -578,6 +601,7 @@ var import_config3 = require("@releasekit/config");
|
|
|
578
601
|
var import_semver2 = __toESM(require("semver"), 1);
|
|
579
602
|
|
|
580
603
|
// src/git/tagVerification.ts
|
|
604
|
+
init_commandExecutor();
|
|
581
605
|
function verifyTag(tagName, cwd4) {
|
|
582
606
|
if (!tagName || tagName.trim() === "") {
|
|
583
607
|
return { exists: false, reachable: false, error: "Empty tag name" };
|
|
@@ -1141,6 +1165,7 @@ var import_node_fs6 = __toESM(require("fs"), 1);
|
|
|
1141
1165
|
var path6 = __toESM(require("path"), 1);
|
|
1142
1166
|
|
|
1143
1167
|
// src/changelog/commitParser.ts
|
|
1168
|
+
init_commandExecutor();
|
|
1144
1169
|
var CONVENTIONAL_COMMIT_REGEX = /^(\w+)(?:\(([^)]+)\))?(!)?: (.+)(?:\n\n([\s\S]*))?/;
|
|
1145
1170
|
var BREAKING_CHANGE_REGEX = /BREAKING CHANGE: ([\s\S]+?)(?:\n\n|$)/;
|
|
1146
1171
|
function extractChangelogEntriesFromCommits(projectDir, revisionRange) {
|
|
@@ -1242,8 +1267,12 @@ function extractIssueIds(body) {
|
|
|
1242
1267
|
return issueIds;
|
|
1243
1268
|
}
|
|
1244
1269
|
|
|
1270
|
+
// src/core/versionStrategies.ts
|
|
1271
|
+
init_commandExecutor();
|
|
1272
|
+
|
|
1245
1273
|
// src/git/commands.ts
|
|
1246
1274
|
var import_node_process2 = require("process");
|
|
1275
|
+
init_commandExecutor();
|
|
1247
1276
|
async function gitAdd(files) {
|
|
1248
1277
|
return execAsync("git", ["add", ...files]);
|
|
1249
1278
|
}
|
package/dist/index.js
CHANGED
|
@@ -10,10 +10,11 @@ import {
|
|
|
10
10
|
enableJsonOutput,
|
|
11
11
|
getJsonData,
|
|
12
12
|
loadConfig
|
|
13
|
-
} from "./chunk-
|
|
13
|
+
} from "./chunk-7F6RMN2K.js";
|
|
14
14
|
import {
|
|
15
15
|
BaseVersionError
|
|
16
16
|
} from "./chunk-GQLJ7JQY.js";
|
|
17
|
+
import "./chunk-LMPZV35Z.js";
|
|
17
18
|
export {
|
|
18
19
|
BaseVersionError,
|
|
19
20
|
PackageProcessor,
|