@soybeanjs/changelog 0.3.17 → 0.3.19

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.cjs CHANGED
@@ -1997,14 +1997,37 @@ function join(array, glue = ", ", finalGlue = " and ") {
1997
1997
  // src/constant.ts
1998
1998
  init_cjs_shims();
1999
1999
  var VERSION_REG = /v\d+\.\d+\.\d+(-(beta|alpha)\.\d+)?/;
2000
+ var RELEASE_VERSION_REG = /v\d+\.\d+\.\d+/;
2000
2001
  var VERSION_REG_OF_MARKDOWN = /## \[v\d+\.\d+\.\d+(-(beta|alpha)\.\d+)?]/g;
2001
2002
  var VERSION_WITH_RELEASE = /release\sv\d+\.\d+\.\d+(-(beta|alpha)\.\d+)?/;
2002
2003
 
2003
2004
  // src/git.ts
2004
2005
  async function getTotalGitTags() {
2005
- const tagStr = await execCommand("git", ["--no-pager", "tag", "-l", "--sort=creatordate"]);
2006
+ const tagStr = await execCommand("git", ["--no-pager", "tag", "-l", "--sort=v:refname"]);
2006
2007
  const tags = tagStr.split("\n");
2007
- return tags.filter((tag) => VERSION_REG.test(tag));
2008
+ const filtered = tags.filter((tag) => VERSION_REG.test(tag));
2009
+ return sortTags(filtered);
2010
+ }
2011
+ function sortTags(tags) {
2012
+ tags.sort((a, b2) => {
2013
+ var _a, _b;
2014
+ const versionA = ((_a = a.match(RELEASE_VERSION_REG)) == null ? void 0 : _a[0]) || "";
2015
+ const versionB = ((_b = b2.match(RELEASE_VERSION_REG)) == null ? void 0 : _b[0]) || "";
2016
+ if (versionA < versionB) {
2017
+ return -1;
2018
+ } else if (versionA > versionB) {
2019
+ return 1;
2020
+ }
2021
+ const isBetaA = isPrerelease(a);
2022
+ const isBetaB = isPrerelease(b2);
2023
+ if (isBetaA && !isBetaB) {
2024
+ return -1;
2025
+ } else if (!isBetaA && isBetaB) {
2026
+ return 1;
2027
+ }
2028
+ return 0;
2029
+ });
2030
+ return tags;
2008
2031
  }
2009
2032
  async function getTagDateMap() {
2010
2033
  const tagDateStr = await execCommand("git", [
@@ -2544,6 +2567,7 @@ async function generateTotalChangelog(options, showProgress = true) {
2544
2567
  const markdown = await getTotalChangelogMarkdown(opts, showProgress);
2545
2568
  await writeMarkdown(markdown, opts.output, true);
2546
2569
  }
2570
+ generateTotalChangelog();
2547
2571
  // Annotate the CommonJS export names for ESM import in node:
2548
2572
  0 && (module.exports = {
2549
2573
  generateChangelog,
package/dist/index.js CHANGED
@@ -61,14 +61,37 @@ function join(array, glue = ", ", finalGlue = " and ") {
61
61
 
62
62
  // src/constant.ts
63
63
  var VERSION_REG = /v\d+\.\d+\.\d+(-(beta|alpha)\.\d+)?/;
64
+ var RELEASE_VERSION_REG = /v\d+\.\d+\.\d+/;
64
65
  var VERSION_REG_OF_MARKDOWN = /## \[v\d+\.\d+\.\d+(-(beta|alpha)\.\d+)?]/g;
65
66
  var VERSION_WITH_RELEASE = /release\sv\d+\.\d+\.\d+(-(beta|alpha)\.\d+)?/;
66
67
 
67
68
  // src/git.ts
68
69
  async function getTotalGitTags() {
69
- const tagStr = await execCommand("git", ["--no-pager", "tag", "-l", "--sort=creatordate"]);
70
+ const tagStr = await execCommand("git", ["--no-pager", "tag", "-l", "--sort=v:refname"]);
70
71
  const tags = tagStr.split("\n");
71
- return tags.filter((tag) => VERSION_REG.test(tag));
72
+ const filtered = tags.filter((tag) => VERSION_REG.test(tag));
73
+ return sortTags(filtered);
74
+ }
75
+ function sortTags(tags) {
76
+ tags.sort((a, b) => {
77
+ var _a, _b;
78
+ const versionA = ((_a = a.match(RELEASE_VERSION_REG)) == null ? void 0 : _a[0]) || "";
79
+ const versionB = ((_b = b.match(RELEASE_VERSION_REG)) == null ? void 0 : _b[0]) || "";
80
+ if (versionA < versionB) {
81
+ return -1;
82
+ } else if (versionA > versionB) {
83
+ return 1;
84
+ }
85
+ const isBetaA = isPrerelease(a);
86
+ const isBetaB = isPrerelease(b);
87
+ if (isBetaA && !isBetaB) {
88
+ return -1;
89
+ } else if (!isBetaA && isBetaB) {
90
+ return 1;
91
+ }
92
+ return 0;
93
+ });
94
+ return tags;
72
95
  }
73
96
  async function getTagDateMap() {
74
97
  const tagDateStr = await execCommand("git", [
@@ -607,6 +630,7 @@ async function generateTotalChangelog(options, showProgress = true) {
607
630
  const markdown = await getTotalChangelogMarkdown(opts, showProgress);
608
631
  await writeMarkdown(markdown, opts.output, true);
609
632
  }
633
+ generateTotalChangelog();
610
634
  export {
611
635
  generateChangelog,
612
636
  generateTotalChangelog,
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@soybeanjs/changelog",
3
3
  "type": "module",
4
- "version": "0.3.17",
4
+ "version": "0.3.19",
5
5
  "description": "generate changelog form git tags and commits for github",
6
6
  "author": {
7
7
  "name": "Soybean",