@jeromefitz/release-notes-generator 1.2.13 → 2.0.0-canary.1

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 (3) hide show
  1. package/index.js +16 -16
  2. package/package.json +16 -16
  3. package/index.cjs +0 -22
package/index.js CHANGED
@@ -1,22 +1,22 @@
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 M 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=M(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=M(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,d=(g=l[0])==null?void 0:g.type;o+=`#### ${d}
3
- `,l.map(w=>{let{scope:x,subject:_,header:y,hash:C,references:v}=w,P=m.replace(/\{scope\}/g,x?`**${x}**: `:"").replace(/\{subject\}/g,_||y).replace(/\{hash\}/g,c(C)).replace(/\{references\}/g,p(v));o+=P}),o+=`
4
- `}),o};import{Octokit as xt}from"@octokit/rest";import Q from"lodash/findIndex";import _t from"lodash/sample";import Ct from"lodash/uniqBy";var vt=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"]},$t=["Props to","Kudos to","Thanks to","Brought to you by"],E=async(i,a,e)=>{let t=Ct(a.map(o=>({email:o.author.email,name:o.author.name})),"name"),{options:{contributorsProhibitList:r}}=i;await Promise.all(t.map((o,c)=>vt.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($t)} ${o}
1
+ import{format as Ut,URL as jt}from"url";import St from"conventional-commits-filter";import{sync as Bt}from"conventional-commits-parser";import S from"lodash/merge.js";import{readPackageUp as Dt}from"read-package-up";import lt from"conventional-commits-filter";import ut from"lodash/clone.js";import gt from"lodash/forEach.js";import dt from"lodash/map.js";import ht from"lodash/merge.js";import z from"semver";import at from"lodash/forEach.js";import mt from"lodash/groupBy.js";import M from"lodash/orderBy.js";function ct(i,a,e,t){let r=[],s=mt(a,function(n){return n[i]||""});return at(s,function(n,m){m===""&&(m=!1);let o=n;t&&(o=M(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=M(r,e)),r}var q=ct;import A from"lodash/forEach.js";function pt(i,a,e){let t=[];return A(i,function(r){let s=r.title,n=!1;A(t,function(m){if(m.title===s)return n=!0,m.notes.push(r),!1}),n||t.push({title:s,notes:[r]})}),t}var N=pt;function ft(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=ft;function yt(i,a,e,t){let r=[],s;return i.ignoreReverted?s=lt(a):s=ut(a),gt(s,function(n){dt(n.notes,function(m){return m.commit=n,m}),r=r.concat(n.notes)}),e=ht({},e,t,H(s,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:s,keyCommit:t,commits:a},e}var J=yt;import{dirname as wt}from"node:path";import{fileURLToPath as bt}from"node:url";import{promisify as xt}from"util";import G from"import-from-esm";import Ct from"lodash/isPlainObject.js";var K=wt(bt(import.meta.url)),Q=async(i,a)=>{let{preset:e,config:t,parserOpts:r,writerOpts:s,presetConfig:n}=i,{cwd:m}=a,o;if(e){let p=`conventional-changelog-${e.toLowerCase()}`;o=await(await G.silent(K,p)||await G(m,p))(n)}else t?o=await(await G.silent(K,t)||await G(m,t))():o={};return o=await(typeof o=="function"?Ct(n)?o(n):xt(o)():o),{parserOpts:{...o.parserOpts,...r},writerOpts:{...o.writerOpts,...s}}};import vt from"lodash/size.js";var T=(i,a,e)=>{let{commitGroups:t,linkReferences:r,commit:s}=i,{repositoryUrl:n}=e,m=`- {scope}{subject}{hash}{references}
2
+ `,o="",c=f=>{if(!f)return"";if(r){let l=` ${n}/${s}/${f}`;return` [ \`${f}\` ](${l})`}return` ${f}`},p=f=>{if(!f||vt(f)===0)return"";let l=", closes ",g=[];return f.map(d=>{d.issue&&g.push(`[ #${d.issue} ]`)}),l+=g.join(" "),l};return t.map(f=>{let{commits:l}=f,g=l[0]?.type;o+=`#### ${g}
3
+ `,l.map(d=>{let{scope:y,subject:x,header:k,hash:w,references:C}=d,v=m.replace(/\{scope\}/g,y?`**${y}**: `:"").replace(/\{subject\}/g,x||k).replace(/\{hash\}/g,c(w)).replace(/\{references\}/g,p(C));o+=v}),o+=`
4
+ `}),o};import{Octokit as _t}from"@octokit/rest";import V from"lodash/findIndex.js";import $t from"lodash/sample.js";import kt from"lodash/uniqBy.js";var Pt=new _t({auth:process.env.GH_TOKEN}),W={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"]},Gt=["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)=>Pt.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=V(t,["login",o]);c!==-1&&t.splice(c)}),[...W.email,...r.email].map(o=>{let c=V(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(Gt)} ${o}
6
6
  `,m+=`
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,o=m[0].title;n+=`#### ${o}
9
- `,m.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 kt 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=`
7
+ `}return m};var L=(i,a,e)=>{let{noteGroups:t}=i,r=`- {scope}{text}
8
+ `,s="";return t.map(n=>{let{notes:m}=n,o=m[0].title;s+=`#### ${o}
9
+ `,m.map(c=>{let{scope:p,text:f}=c,l=r.replace(/\{scope\}/g,p?`**${p}**: `:"").replace(/\{text\}/g,f||"");s+=l}),s+=`
10
+ `}),s};import{format as Ot}from"date-fns";var U=(i,a,e)=>{let{currentTag:t,date:r,linkCompare:s,previousTag:n,title:m}=i,{repositoryUrl:o}=e,c=`
11
11
  | \u{1F516}\uFE0F | Release Information |
12
12
  | ----------- | --------------- |
13
13
  | Current | **\`${t}\`** |
14
- `;if(n){let p=o+"/compare/"+s+"..."+t;c+=`| Previous | **[\`${s}\`](${p})** |
14
+ `;if(s){let p=o+"/compare/"+n+"..."+t;c+=`| Previous | **[\`${n}\`](${p})** |
15
15
  `}return m&&(c+=`| Title | **\`${m}\`** |
16
- `),r&&(c+=`| Date | **\`${kt(r,"yyyy-MM-dd")}\`** |
16
+ `),r&&(c+=`| Date | **\`${Ot(r,"yyyy-MM-dd")}\`** |
17
17
  `),c+=`
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:C,revert:v,version:P}=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:C,revert:v,version:P},$={repositoryUrl:y?n+"/"+w+"/"+y:C},u="";return u+=L(b,a,$),u+=`
19
- `,u+=T(b,a,$),u+=`
20
- `,u+=await E(b,a,$),u+=`
21
- `,u+=j(b,a,$),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 Bo(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:C}=i,v=m.repositoryUrl.replace(/\.git$/i,""),[P,b,B,$]=/^(?!.+:\/\/)(?:(?<auth>.*)@)?(?<host>.*?):(?<path>.*)$/.exec(v)||[],{hostname:u,port:R,pathname:Y,protocol:G}=new Et(P?`ssh://${b?`${b}@`:""}${B}/${$}`:v);R=G.includes("ssh")?"":R,G=G&&/http[^s]/.test(G)?"http":"https";let[,Z,tt]=/^\/(?<owner>[^/]+)?\/?(?<repository>.+)?$/.exec(Y)??[],D=S({version:s.version,host:Tt({protocol:G,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:C}),ot=jt(r.filter(({message:h})=>!!h.trim()).map(h=>({...h,...Lt(h.message,{referenceActions:f,issuePrefixes:l,...e})}))),k=[];await ot.map(async h=>{let I=await U(h,t.transform,a);k.push(I)}),k=await k.filter(h=>h!==void 0);let et=S({},D,m,t),F=k[0],rt=U(F,t.transform,a)||F,{context:nt}=await J(et,k,a,rt),st=S({},D,nt);return W(st,k)}export{Bo as generateNotes};
18
+ `,c};var X=async(i,a)=>{let{commitGroups:e,currentTag:t,date:r,host:s,issue:n,lastRelease:m,linkCompare:o,linkReferences:c,mentions:p,nextRelease:f,noteGroups:l,notes:g,options:d,owner:y,previousTag:x,references:k,repository:w,repoUrl:C,revert:v,version:O}=i,b={commitGroups:e,currentTag:t,date:r,host:s,issue:n,lastRelease:m,linkCompare:o,linkReferences:c,mentions:p,nextRelease:f,noteGroups:l,notes:g,options:d,owner:y,previousTag:x,references:k,repository:w,repoUrl:C,revert:v,version:O},_={repositoryUrl:w?s+"/"+y+"/"+w:C},u="";return u+=U(b,a,_),u+=`
19
+ `,u+=T(b,a,_),u+=`
20
+ `,u+=await E(b,a,_),u+=`
21
+ `,u+=L(b,a,_),u+=`
22
+ `,u};import Rt from"lodash/cloneDeep.js";import Tt from"lodash/forEach.js";import Et from"lodash/get.js";import Y from"lodash/isFunction.js";import Lt from"lodash/set.js";function j(i,a,e){let t;try{i=JSON.parse(i)}catch{}return t=Rt(i),Y(a)?(t=a(t,e),t&&(t.raw=i),t):(Tt(a,function(r,s){let n=Et(t,s);Y(r)?n=r(n,s):n=r,Lt(t,s,n)}),t.raw=i,t)}var Ft={hostname:"github.com",issue:"issues",commit:"commit",referenceActions:["close","closes","closed","fix","fixes","fixed","resolve","resolves","resolved"],issuePrefixes:["#","gh-"]};async function qo(i,a){let{parserOpts:e,writerOpts:t}=await Q(i,a),{commits:r,lastRelease:s,nextRelease:n,options:m,cwd:o}=a,{commit:c,issue:p,referenceActions:f,issuePrefixes:l}=Ft,g=s.gitTag||s.gitHead,d=n.gitTag||n.gitHead,{host:y,linkCompare:x,linkReferences:k,commit:w,issue:C}=i,v=m.repositoryUrl.replace(/\.git$/i,""),[O,b,B,_]=/^(?!.+:\/\/)(?:(?<auth>.*)@)?(?<host>.*?):(?<path>.*)$/.exec(v)||[],{hostname:u,port:R,pathname:Z,protocol:P}=new jt(O?`ssh://${b?`${b}@`:""}${B}/${_}`:v);R=P.includes("ssh")?"":R,P=P&&/http[^s]/.test(P)?"http":"https";let[,tt,ot]=/^\/(?<owner>[^/]+)?\/?(?<repository>.+)?$/.exec(Z)??[],D=S({version:n.version,host:Ut({protocol:P,hostname:u,port:R}),owner:tt,repository:ot,previousTag:g,currentTag:d,linkCompare:d&&g,issue:p,commit:c,packageData:(await Dt({normalize:!1,cwd:o})||{}).packageJson},{host:y,linkCompare:x,linkReferences:k,commit:w,issue:C}),et=St(r.filter(({message:h})=>!!h.trim()).map(h=>({...h,...Bt(h.message,{referenceActions:f,issuePrefixes:l,...e})}))),$=[];await et.map(async h=>{let I=await j(h,t.transform,a);$.push(I)}),$=await $.filter(h=>h!==void 0);let rt=S({},D,m,t),F=$[0],nt=j(F,t.transform,a)||F,{context:st}=await J(rt,$,a,nt),it=S({},D,st);return X(it,$)}export{qo as generateNotes};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@jeromefitz/release-notes-generator",
3
- "version": "1.2.13",
3
+ "version": "2.0.0-canary.1",
4
4
  "type": "module",
5
5
  "description": "Custom Release Note Generator for Semantic Release.",
6
6
  "repository": "jeromefitz/packages.git",
@@ -12,11 +12,12 @@
12
12
  "license": "MIT",
13
13
  "private": false,
14
14
  "engines": {
15
- "node": ">=16"
15
+ "node": ">=20"
16
+ },
17
+ "exports": {
18
+ "default": "./index.js",
19
+ "types": "./index.d.ts"
16
20
  },
17
- "main": "./index.cjs",
18
- "module": "./index.js",
19
- "typings": "./index.d.ts",
20
21
  "scripts": {
21
22
  "build": "tsup",
22
23
  "clean": "rm -rf .turbo && rm -rf dist",
@@ -24,7 +25,7 @@
24
25
  "copy": "mkdir -p ./dist && ./scripts/copy.sh",
25
26
  "dev": "tsup --watch",
26
27
  "format:lint": "pnpm run lint:eslint --fix && pnpm run format:prettier --write",
27
- "format:prettier": "prettier \"./src/**/*.{cjs,js,jsx,mjs,ts,tsx,json,md,mdx,css,html,yml,yaml,scss}\" --ignore-unknown --loglevel warn",
28
+ "format:prettier": "prettier \"./src/**/*.{cjs,js,jsx,mjs,ts,tsx,json,md,mdx,css,html,yml,yaml,scss}\" --ignore-unknown --log-level warn",
28
29
  "lint": "pnpm run format:prettier --check && pnpm run lint:eslint",
29
30
  "lint:eslint": "eslint ./src --ext cjs,js,jsx,mjs,ts,tsx --max-warnings=0",
30
31
  "semantic-release": "semantic-release"
@@ -33,18 +34,17 @@
33
34
  "lodash": "^4.17.21"
34
35
  },
35
36
  "dependencies": {
36
- "@octokit/rest": "19.0.11",
37
- "conventional-commits-filter": "2.0.7",
38
- "conventional-commits-parser": "3.2.4",
39
- "date-fns": "2.30.0",
40
- "import-from": "4.0.0",
41
- "read-pkg-up": "7.0.1",
42
- "semver": "7.5.1"
37
+ "@octokit/rest": "20.0.2",
38
+ "conventional-commits-filter": "4.0.0",
39
+ "conventional-commits-parser": "5.0.0",
40
+ "date-fns": "3.2.0",
41
+ "import-from-esm": "1.3.3",
42
+ "read-package-up": "11.0.0",
43
+ "semver": "7.5.4"
43
44
  },
44
45
  "devDependencies": {
45
- "@types/conventional-commits-parser": "3.0.3",
46
- "@types/lodash": "4.14.194",
47
- "@types/read-pkg-up": "6.0.0",
46
+ "@types/conventional-commits-parser": "3.0.6",
47
+ "@types/lodash": "4.14.202",
48
48
  "lodash": "4.17.21"
49
49
  },
50
50
  "publishConfig": {
package/index.cjs DELETED
@@ -1,22 +0,0 @@
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 Bt=(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)),Dt=o=>Q(T({},"__esModule",{value:!0}),o);var Jt={};Bt(Jt,{generateNotes:()=>zt});module.exports=Dt(Jt);var j=require("url"),xt=p(require("conventional-commits-filter"),1),_t=require("conventional-commits-parser"),E=p(require("lodash/merge"),1),Ct=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),B=p(require("semver"),1);var V=p(require("lodash/forEach"),1),W=p(require("lodash/groupBy"),1),U=p(require("lodash/orderBy"),1);function Ft(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=Ft;var S=p(require("lodash/forEach"),1);function It(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=It;function Mt(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=Mt;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&&B.default.valid(e.version)&&(e.isPatch=e.isPatch||B.default.patch(e.version)!==0),e={context:e,options:o,filteredCommits:i,keyCommit:t,commits:r},e}var st=qt;var it=require("util"),R=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=R.default.silent(__dirname,f)||(0,R.default)(m,f)}else t?s=R.default.silent(__dirname,t)||(0,R.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),D=(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,h=(d=u[0])==null?void 0:d.type;s+=`#### ${h}
3
- `,u.map(x=>{let{scope:_,subject:C,header:b,hash:v,references:$}=x,G=m.replace(/\{scope\}/g,_?`**${_}**: `:"").replace(/\{subject\}/g,C||b).replace(/\{hash\}/g,c(v)).replace(/\{references\}/g,f($));s+=G}),s+=`
4
- `}),s};var ft=require("@octokit/rest"),F=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"],I=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,F.default)(t,["login",s]);c!==-1&&t.splice(c)}),[...pt.email,...n.email].map(s=>{let c=(0,F.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
- `,m+=`
7
- `}return m};var M=(o,r,e)=>{let{noteGroups:t}=o,n=`- {scope}{text}
8
- `,i="";return t.map(a=>{let{notes:m}=a,s=m[0].title;i+=`#### ${s}
9
- `,m.map(c=>{let{scope:f,text:l}=c,u=n.replace(/\{scope\}/g,f?`**${f}**: `:"").replace(/\{text\}/g,l||"");i+=u}),i+=`
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
- | \u{1F516}\uFE0F | Release Information |
12
- | ----------- | --------------- |
13
- | Current | **\`${t}\`** |
14
- `;if(i){let f=s+"/compare/"+a+"..."+t;c+=`| Previous | **[\`${a}\`](${f})** |
15
- `}return m&&(c+=`| Title | **\`${m}\`** |
16
- `),n&&(c+=`| Date | **\`${(0,gt.default)(n,"yyyy-MM-dd")}\`** |
17
- `),c+=`
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:C,repository:b,repoUrl:v,revert:$,version:G}=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:C,repository:b,repoUrl:v,revert:$,version:G},k={repositoryUrl:b?i+"/"+x+"/"+b:v},g="";return g+=q(w,r,k),g+=`
19
- `,g+=D(w,r,k),g+=`
20
- `,g+=await I(w,r,k),g+=`
21
- `,g+=M(w,r,k),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:C,commit:b,issue:v}=o,$=m.repositoryUrl.replace(/\.git$/i,""),[G,w,H,k]=/^(?!.+:\/\/)(?:(?<auth>.*)@)?(?<host>.*?):(?<path>.*)$/.exec($)||[],{hostname:g,port:L,pathname:vt,protocol:O}=new j.URL(G?`ssh://${w?`${w}@`:""}${H}/${k}`:$);L=O.includes("ssh")?"":L,O=O&&/http[^s]/.test(O)?"http":"https";let[,$t,kt]=/^\/(?<owner>[^/]+)?\/?(?<repository>.+)?$/.exec(vt)??[],z=(0,E.default)({version:a.version,host:(0,j.format)({protocol:O,hostname:g,port:L}),owner:$t,repository:kt,previousTag:h,currentTag:d,linkCompare:d&&h,issue:f,commit:c,packageData:(await(0,Ct.default)({normalize:!1,cwd:s})||{}).packageJson},{host:x,linkCompare:_,linkReferences:C,commit:b,issue:v}),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});