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