@jeromefitz/release-notes-generator 3.0.6 → 3.0.7

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.
Files changed (2) hide show
  1. package/index.js +8 -8
  2. package/package.json +1 -1
package/index.js CHANGED
@@ -1,22 +1,22 @@
1
- import{format as jt,URL as Bt}from"node:url";import{filterRevertedCommitsSync as Dt}from"conventional-commits-filter";import{CommitParser as It}from"conventional-commits-parser";import B from"lodash/merge.js";import{readPackageUp as Mt}from"read-package-up";import{filterRevertedCommitsSync as gt}from"conventional-commits-filter";import dt from"lodash/clone.js";import ht from"lodash/forEach.js";import yt from"lodash/map.js";import wt from"lodash/merge.js";import J from"semver";import ct from"lodash/forEach.js";import pt from"lodash/groupBy.js";import A from"lodash/orderBy.js";function ft(a,m,e,t){let r=[],n=pt(m,function(s){return s[a]||""});return ct(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=ft;import F from"lodash/forEach.js";function lt(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=lt;function ut(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=ut;function bt(a,m,e,t){let r=[],n;if(a.ignoreReverted)for(let s of gt(m))n.push(s);else n=dt(m);return ht(n,function(s){yt(s.notes,function(i){return i.commit=s,i}),r=r.concat(s.notes)}),e=wt({},e,t,z(n,r,a)),t&&t.committerDate&&(e.date=t.committerDate),e.version&&J.valid(e.version)&&(e.isPatch=e.isPatch||J.patch(e.version)!==0),e={commits:m,context:e,filteredCommits:n,keyCommit:t,options:a},e}var K=bt;import{dirname as xt}from"node:path";import{fileURLToPath as Ct}from"node:url";import{promisify as _t}from"util";import R from"import-from-esm";import $t from"lodash/isPlainObject.js";var Q=xt(Ct(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(Q,p)||await R(i,p))(n)}else e?o=await(await R.silent(Q,e)||await R(i,e))():o={};return o=await(typeof o=="function"?$t(n)?o(n):_t(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}
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:$,references:k,scope:h,subject:y}=d,x=i.replace(/\{scope\}/g,h?`**${h}**: `:"").replace(/\{subject\}/g,y||$).replace(/\{hash\}/g,c(b)).replace(/\{references\}/g,p(k));o+=x}),o+=`
4
- `}),o};import{Octokit as vt}from"@octokit/rest";import W from"lodash/findIndex.js";import Pt from"lodash/sample.js";import Gt from"lodash/uniqBy.js";var Rt=new vt({auth:process.env.GH_TOKEN}),X={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"]},Ot=["Props to","Kudos to","Thanks to","Brought to you by"],L=async(a,m,e)=>{let t=Gt(m.map(o=>({email:o.author.email,name:o.author.name})),"name"),{options:{contributorsProhibitList:r}}=a;await Promise.all(t.map((o,c)=>Rt.request("GET /search/users",{q:o.email}).then(({data:p})=>{let f=p.items[0]?.login;return f?(t[c].login=f,f):""}))),[...X.login,...r.login].map(o=>{let c=W(t,["login",o]);c!==-1&&t.splice(c)}),[...X.email,...r.email].map(o=>{let c=W(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+=`- ${Pt(Ot)} ${o}
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 Tt}from"date-fns";var U=(a,m,e)=>{let{currentTag:t,date:r,linkCompare:n,previousTag:s,title:i}=a,{repositoryUrl:o}=e,c=`
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 | **\`${Tt(r,"yyyy-MM-dd")}\`** |
16
+ `),r&&(c+=`| Date | **\`${Et(r,"yyyy-MM-dd")}\`** |
17
17
  `),c+=`
18
- `,c};var Y=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:$,references:k,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:$,references:k,repository:h,repoUrl:y,revert:x,version:O},C={repositoryUrl:h?n+"/"+b+"/"+h:y},u="";return u+=U(w,m,C),u+=`
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 Et from"lodash/cloneDeep.js";import Lt from"lodash/forEach.js";import St from"lodash/get.js";import Z from"lodash/isFunction.js";import Ut from"lodash/set.js";function j(a,m,e){let t;try{a=JSON.parse(a)}catch{}return t=Et(a),Z(m)?(t=m(t,e),t&&(t.raw=a),t):(Lt(m,function(r,n){let s=St(t,n);Z(r)?s=r(s,n):s=r,Ut(t,n,s)}),t.raw=a,t)}var qt={commit:"commit",hostname:"github.com",issue:"issues",issuePrefixes:["#","gh-"],referenceActions:["close","closes","closed","fix","fixes","fixed","resolve","resolves","resolved"]};async function Fo(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}=qt,g=s.gitTag||s.gitHead,d=i.gitTag||i.gitHead,{commit:b,host:$,issue:k,linkCompare:h,linkReferences:y}=a,x=o.repositoryUrl.replace(/\.git$/i,""),[O,w,D,C]=/^(?!.+:\/\/)(?:(?<auth>.*)@)?(?<host>.*?):(?<path>.*)$/.exec(x)||[],{hostname:u,pathname:tt,port:T,protocol:v}=new Bt(O?`ssh://${w?`${w}@`:""}${D}/${C}`:x);T=v.includes("ssh")?"":T,v=v&&/http[^s]/.test(v)?"http":"https";let[,ot,et]=/^\/(?<owner>[^/]+)?\/?(?<repository>.+)?$/.exec(tt)??[],I=B({commit:c,currentTag:d,host:jt({hostname:u,port:T,protocol:v}),issue:p,linkCompare:d&&g,owner:ot,packageData:(await Mt({cwd:n,normalize:!1})||{}).packageJson,previousTag:g,repository:et,version:i.version},{commit:b,host:$,issue:k,linkCompare:h,linkReferences:y}),M=[],rt=new It({issuePrefixes:f,referenceActions:l,...e});for(let P of Dt(r)){let G=P;if(!G?.message.trim())return!1;let mt={...G,...rt.parse(G?.message)};M.push(mt)}let _=[];await M.map(async P=>{let G=await j(P,t.transform,m);_.push(G)}),_=await _.filter(P=>P!==void 0);let nt=B({},I,o,t),q=_[0],st=j(q,t.transform,m)||q,{context:it}=await K(nt,_,m,st),at=B({},I,it);return Y(at,_)}export{Fo as generateNotes};
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.6",
3
+ "version": "3.0.7",
4
4
  "type": "module",
5
5
  "description": "Custom Release Note Generator for Semantic Release.",
6
6
  "repository": "jeromefitz/packages.git",