@jeromefitz/release-notes-generator 3.0.6 → 3.0.8
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/index.js +8 -8
- package/package.json +2 -2
package/index.js
CHANGED
|
@@ -1,22 +1,22 @@
|
|
|
1
|
-
import{format as
|
|
1
|
+
import{format as Bt,URL as Dt}from"node:url";import{filterRevertedCommitsSync as It}from"conventional-commits-filter";import{CommitParser as Mt}from"conventional-commits-parser";import B from"lodash/merge.js";import{readPackageUp as qt}from"read-package-up";import{filterRevertedCommitsSync as ut}from"conventional-commits-filter";import gt from"lodash/clone.js";import dt from"lodash/forEach.js";import ht from"lodash/map.js";import yt from"lodash/merge.js";import{patch as wt,valid as bt}from"semver";import mt from"lodash/forEach.js";import ct from"lodash/groupBy.js";import A from"lodash/orderBy.js";function pt(a,m,e,t){let r=[],n=ct(m,function(s){return s[a]||""});return mt(n,function(s,i){i===""&&(i=!1);let o=s;t&&(o=A(o,t));let c=o[0].typeSpec.semver,p=99;["fix","patch"].includes(c)&&(p=20),["feature","minor"].includes(c)&&(p=10),["breaking","major"].includes(c)&&(p=0),r.push({commits:o,order:p,title:i})}),e&&(r=A(r,e)),r}var N=pt;import F from"lodash/forEach.js";function ft(a,m,e){let t=[];return F(a,function(r){let n=r.title,s=!1;F(t,function(i){if(i.title===n)return s=!0,i.notes.push(r),!1}),s||t.push({notes:[r],title:n})}),t}var H=ft;function lt(a,m,e){let t={};return t.commitGroups=N(e.groupBy,a,e.commitGroupsSort,e.commitsSort),t.noteGroups=H(m,e.noteGroupsSort,e.notesSort),t}var z=lt;function xt(a,m,e,t){let r=[],n;if(a.ignoreReverted)for(let s of ut(m))n.push(s);else n=gt(m);return dt(n,function(s){ht(s.notes,function(i){return i.commit=s,i}),r=r.concat(s.notes)}),e=yt({},e,t,z(n,r,a)),t&&t.committerDate&&(e.date=t.committerDate),e.version&&bt(e.version)&&(e.isPatch=e.isPatch||wt(e.version)!==0),e={commits:m,context:e,filteredCommits:n,keyCommit:t,options:a},e}var J=xt;import{dirname as Ct}from"node:path";import{fileURLToPath as _t}from"node:url";import{promisify as vt}from"util";import R from"import-from-esm";import $t from"lodash/isPlainObject.js";var K=Ct(_t(import.meta.url)),V=async(a,m)=>{let{config:e,parserOpts:t,preset:r,presetConfig:n,writerOpts:s}=a,{cwd:i}=m,o;if(r){let p=`conventional-changelog-${r.toLowerCase()}`;o=await(await R.silent(K,p)||await R(i,p))(n)}else e?o=await(await R.silent(K,e)||await R(i,e))():o={};return o=await(typeof o=="function"?$t(n)?o(n):vt(o)():o),{parserOpts:{...o.parserOpts,...t},writerOpts:{...o.writerOpts,...s}}};import kt from"lodash/size.js";var E=(a,m,e)=>{let{commit:t,commitGroups:r,linkReferences:n}=a,{repositoryUrl:s}=e,i=`- {scope}{subject}{hash}{references}
|
|
2
2
|
`,o="",c=f=>{if(!f)return"";if(n){let l=` ${s}/${t}/${f}`;return` [ \`${f}\` ](${l})`}return` ${f}`},p=f=>{if(!f||kt(f)===0)return"";let l=", closes ",g=[];return f.map(d=>{d.issue&&g.push(`[ #${d.issue} ]`)}),l+=g.join(" "),l};return r.map(f=>{let{commits:l}=f,g=l[0]?.type;o+=`#### ${g}
|
|
3
|
-
`,l.map(d=>{let{hash:b,header
|
|
4
|
-
`}),o};import{Octokit as
|
|
5
|
-
`;let o=t.map(c=>`@${c.login}`).join(", ");i+=`- ${
|
|
3
|
+
`,l.map(d=>{let{hash:b,header:v,references:$,scope:h,subject:y}=d,x=i.replace(/\{scope\}/g,h?`**${h}**: `:"").replace(/\{subject\}/g,y||v).replace(/\{hash\}/g,c(b)).replace(/\{references\}/g,p($));o+=x}),o+=`
|
|
4
|
+
`}),o};import{Octokit as Pt}from"@octokit/rest";import Q from"lodash/findIndex.js";import Gt from"lodash/sample.js";import Rt from"lodash/uniqBy.js";var Ot=new Pt({auth:process.env.GH_TOKEN}),W={email:["noreply@github.com","users.noreply.github.com","semantic-release-bot@martynus.net"],login:["dependabot","dependabot[bot]","kodiakhq","kodiakhq[bot]","renovate","renovate[bot]","semantic-release-bot"]},Tt=["Props to","Kudos to","Thanks to","Brought to you by"],L=async(a,m,e)=>{let t=Rt(m.map(o=>({email:o.author.email,name:o.author.name})),"name"),{options:{contributorsProhibitList:r}}=a;await Promise.all(t.map((o,c)=>Ot.request("GET /search/users",{q:o.email}).then(({data:p})=>{let f=p.items[0]?.login;return f?(t[c].login=f,f):""}))),[...W.login,...r.login].map(o=>{let c=Q(t,["login",o]);c!==-1&&t.splice(c)}),[...W.email,...r.email].map(o=>{let c=Q(t,p=>p.email.includes(o));c!==-1&&t.splice(c)});let i="";if(t.length>0){i+=`#### \u{1F973}\uFE0F Contributors
|
|
5
|
+
`;let o=t.map(c=>`@${c.login}`).join(", ");i+=`- ${Gt(Tt)} ${o}
|
|
6
6
|
`,i+=`
|
|
7
7
|
`}return i};var S=(a,m,e)=>{let{noteGroups:t}=a,r=`- {scope}{text}
|
|
8
8
|
`,n="";return t.map(s=>{let{notes:i}=s,o=i[0].title;n+=`#### ${o}
|
|
9
9
|
`,i.map(c=>{let{scope:p,text:f}=c,l=r.replace(/\{scope\}/g,p?`**${p}**: `:"").replace(/\{text\}/g,f||"");n+=l}),n+=`
|
|
10
|
-
`}),n};import{format as
|
|
10
|
+
`}),n};import{format as Et}from"date-fns";var U=(a,m,e)=>{let{currentTag:t,date:r,linkCompare:n,previousTag:s,title:i}=a,{repositoryUrl:o}=e,c=`
|
|
11
11
|
| \u{1F516}\uFE0F | Release Information |
|
|
12
12
|
| ----------- | --------------- |
|
|
13
13
|
| Current | **\`${t}\`** |
|
|
14
14
|
`;if(n){let p=o+"/compare/"+s+"..."+t;c+=`| Previous | **[\`${s}\`](${p})** |
|
|
15
15
|
`}return i&&(c+=`| Title | **\`${i}\`** |
|
|
16
|
-
`),r&&(c+=`| Date | **\`${
|
|
16
|
+
`),r&&(c+=`| Date | **\`${Et(r,"yyyy-MM-dd")}\`** |
|
|
17
17
|
`),c+=`
|
|
18
|
-
`,c};var
|
|
18
|
+
`,c};var X=async(a,m)=>{let{commitGroups:e,currentTag:t,date:r,host:n,issue:s,lastRelease:i,linkCompare:o,linkReferences:c,mentions:p,nextRelease:f,noteGroups:l,notes:g,options:d,owner:b,previousTag:v,references:$,repository:h,repoUrl:y,revert:x,version:O}=a,w={commitGroups:e,currentTag:t,date:r,host:n,issue:s,lastRelease:i,linkCompare:o,linkReferences:c,mentions:p,nextRelease:f,noteGroups:l,notes:g,options:d,owner:b,previousTag:v,references:$,repository:h,repoUrl:y,revert:x,version:O},C={repositoryUrl:h?n+"/"+b+"/"+h:y},u="";return u+=U(w,m,C),u+=`
|
|
19
19
|
`,u+=E(w,m,C),u+=`
|
|
20
20
|
`,u+=await L(w,m,C),u+=`
|
|
21
21
|
`,u+=S(w,m,C),u+=`
|
|
22
|
-
`,u};import
|
|
22
|
+
`,u};import Lt from"lodash/cloneDeep.js";import St from"lodash/forEach.js";import Ut from"lodash/get.js";import Y from"lodash/isFunction.js";import jt from"lodash/set.js";function j(a,m,e){let t;try{a=JSON.parse(a)}catch{}return t=Lt(a),Y(m)?(t=m(t,e),t&&(t.raw=a),t):(St(m,function(r,n){let s=Ut(t,n);Y(r)?s=r(s,n):s=r,jt(t,n,s)}),t.raw=a,t)}var At={commit:"commit",hostname:"github.com",issue:"issues",issuePrefixes:["#","gh-"],referenceActions:["close","closes","closed","fix","fixes","fixed","resolve","resolves","resolved"]};async function Ho(a,m){let{parserOpts:e,writerOpts:t}=await V(a,m),{commits:r,cwd:n,lastRelease:s,nextRelease:i,options:o}=m,{commit:c,issue:p,issuePrefixes:f,referenceActions:l}=At,g=s.gitTag||s.gitHead,d=i.gitTag||i.gitHead,{commit:b,host:v,issue:$,linkCompare:h,linkReferences:y}=a,x=o.repositoryUrl.replace(/\.git$/i,""),[O,w,D,C]=/^(?!.+:\/\/)(?:(?<auth>.*)@)?(?<host>.*?):(?<path>.*)$/.exec(x)||[],{hostname:u,pathname:Z,port:T,protocol:k}=new Dt(O?`ssh://${w?`${w}@`:""}${D}/${C}`:x);T=k.includes("ssh")?"":T,k=k&&/http[^s]/.test(k)?"http":"https";let[,tt,ot]=/^\/(?<owner>[^/]+)?\/?(?<repository>.+)?$/.exec(Z)??[],I=B({commit:c,currentTag:d,host:Bt({hostname:u,port:T,protocol:k}),issue:p,linkCompare:d&&g,owner:tt,packageData:(await qt({cwd:n,normalize:!1})||{}).packageJson,previousTag:g,repository:ot,version:i.version},{commit:b,host:v,issue:$,linkCompare:h,linkReferences:y}),M=[],et=new Mt({issuePrefixes:f,referenceActions:l,...e});for(let P of It(r)){let G=P;if(!G?.message.trim())return!1;let at={...G,...et.parse(G?.message)};M.push(at)}let _=[];await M.map(async P=>{let G=await j(P,t.transform,m);_.push(G)}),_=await _.filter(P=>P!==void 0);let rt=B({},I,o,t),q=_[0],nt=j(q,t.transform,m)||q,{context:st}=await J(rt,_,m,nt),it=B({},I,st);return X(it,_)}export{Ho as generateNotes};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@jeromefitz/release-notes-generator",
|
|
3
|
-
"version": "3.0.
|
|
3
|
+
"version": "3.0.8",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "Custom Release Note Generator for Semantic Release.",
|
|
6
6
|
"repository": "jeromefitz/packages.git",
|
|
@@ -38,7 +38,7 @@
|
|
|
38
38
|
"@octokit/rest": "21.0.2",
|
|
39
39
|
"conventional-commits-filter": "5.0.0",
|
|
40
40
|
"conventional-commits-parser": "6.0.0",
|
|
41
|
-
"date-fns": "
|
|
41
|
+
"date-fns": "4.1.0",
|
|
42
42
|
"import-from-esm": "1.3.4",
|
|
43
43
|
"read-package-up": "11.0.0",
|
|
44
44
|
"semver": "7.6.3"
|