diff --git a/package.json b/package.json index 74bcb59..a00caa7 100644 --- a/package.json +++ b/package.json @@ -1,37 +1,39 @@ { - "name": "@resultium/rcz", - "version": "1.1.0", - "description": "Resultium commit standardization library, based on conventional commits", - "main": "./dist/index.js", - "bin": { - "rcz": "./dist/index.js" - }, - "files": [ - "dist" - ], - "scripts": { - "build": "tsc" - }, - "repository": { - "type": "git", - "url": "https://git.resultium.net/technology/rcz.git" - }, - "keywords": [ - "conventional", - "commits" - ], - "author": { - "name": "Resultium", - "email": "contact@resultium.io", - "url": "https://www.resultium.io" - }, - "dependencies": { - "@clack/prompts": "^0.7.0", - "commander": "^11.0.0", - "simple-git": "^3.19.1" - }, - "devDependencies": { - "@types/node": "^20.5.1", - "typescript": "^5.1.6" - } -} \ No newline at end of file + "name": "@resultium/rcz", + "version": "1.1.0", + "description": "Resultium commit standardization library, based on conventional commits", + "main": "./dist/index.js", + "bin": { + "rcz": "./dist/index.js" + }, + "files": [ + "dist" + ], + "scripts": { + "build": "tsc" + }, + "repository": { + "type": "git", + "url": "https://git.resultium.net/technology/rcz.git" + }, + "keywords": [ + "conventional", + "commits" + ], + "author": { + "name": "Resultium", + "email": "contact@resultium.io", + "url": "https://www.resultium.io" + }, + "dependencies": { + "@clack/prompts": "^0.7.0", + "commander": "^11.0.0", + "semver": "^7.5.4", + "simple-git": "^3.19.1" + }, + "devDependencies": { + "@types/node": "^20.5.1", + "@types/semver": "^7.5.0", + "typescript": "^5.1.6" + } +} diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index a822a20..61f3d7a 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -11,6 +11,9 @@ dependencies: commander: specifier: ^11.0.0 version: 11.0.0 + semver: + specifier: ^7.5.4 + version: 7.5.4 simple-git: specifier: ^3.19.1 version: 3.19.1 @@ -19,6 +22,9 @@ devDependencies: '@types/node': specifier: ^20.5.1 version: 20.5.1 + '@types/semver': + specifier: ^7.5.0 + version: 7.5.0 typescript: specifier: ^5.1.6 version: 5.1.6 @@ -58,6 +64,10 @@ packages: resolution: {integrity: sha512-4tT2UrL5LBqDwoed9wZ6N3umC4Yhz3W3FloMmiiG4JwmUJWpie0c7lcnUNd4gtMKuDEO4wRVS8B6Xa0uMRsMKg==} dev: true + /@types/semver@7.5.0: + resolution: {integrity: sha512-G8hZ6XJiHnuhQKR7ZmysCeJWE08o8T0AXtk5darsCaTVsYZhhgUrq53jizaR2FvsoeCwJhlmwTjkXBY5Pn/ZHw==} + dev: true + /commander@11.0.0: resolution: {integrity: sha512-9HMlXtt/BNoYr8ooyjjNRdIilOTkVJXB+GhxMTtOKwk0R4j4lS4NpjuqmRxroBfnfTSHQIHQB7wryHhXarNjmQ==} engines: {node: '>=16'} @@ -75,6 +85,13 @@ packages: ms: 2.1.2 dev: false + /lru-cache@6.0.0: + resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==} + engines: {node: '>=10'} + dependencies: + yallist: 4.0.0 + dev: false + /ms@2.1.2: resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} dev: false @@ -83,6 +100,14 @@ packages: resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==} dev: false + /semver@7.5.4: + resolution: {integrity: sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==} + engines: {node: '>=10'} + hasBin: true + dependencies: + lru-cache: 6.0.0 + dev: false + /simple-git@3.19.1: resolution: {integrity: sha512-Ck+rcjVaE1HotraRAS8u/+xgTvToTuoMkT9/l9lvuP5jftwnYUp6DwuJzsKErHgfyRk8IB8pqGHWEbM3tLgV1w==} dependencies: @@ -102,3 +127,7 @@ packages: engines: {node: '>=14.17'} hasBin: true dev: true + + /yallist@4.0.0: + resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} + dev: false diff --git a/src/index.ts b/src/index.ts index 6685594..b8b88a7 100644 --- a/src/index.ts +++ b/src/index.ts @@ -13,8 +13,9 @@ import { import fs from "fs"; import path from "path"; import { CommitStack, Config } from "./types"; -import simpleGit, { DefaultLogFields, ListLogLine } from "simple-git"; +import simpleGit from "simple-git"; import { Command } from "commander"; +import semver from "semver"; const GetConfig = async () => { if (fs.existsSync(path.join(process.cwd(), ".rczrc"))) { @@ -209,8 +210,9 @@ program console.log("# Changelog"); for (const commit of commits) { - const tag = (await simpleGit().tags([`--contains=${commit.hash}`])) - .latest!; + const tag = semver.sort( + (await simpleGit().tags([`--contains=${commit.hash}`])).all + )[0]!; const currentCommitStack = parsedCommitStacks.find( (commitStack) => commitStack.version === tag ) || {