@jeromefitz/release-notes-generator 3.1.14-canary.2 → 3.1.14-canary.4
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.mjs +5 -5
- package/index.mjs.map +1 -1
- package/package.json +5 -4
package/index.mjs
CHANGED
|
@@ -1,16 +1,16 @@
|
|
|
1
|
-
import"./chunk-pm2C21R4.mjs";import{URL as e,fileURLToPath as t,format as n}from"node:url";import{filterRevertedCommitsSync as r}from"conventional-commits-filter";import{CommitParser as i}from"conventional-commits-parser";import a
|
|
1
|
+
import"./chunk-pm2C21R4.mjs";import{URL as e,fileURLToPath as t,format as n}from"node:url";import{filterRevertedCommitsSync as r}from"conventional-commits-filter";import{CommitParser as i}from"conventional-commits-parser";import{clone as a,cloneDeep as o,findIndex as s,forEach as c,get as l,groupBy as u,isFunction as d,isPlainObject as f,map as p,merge as m,orderBy as h,sample as g,set as _,size as v,uniqBy as y}from"lodash-es";import{readPackageUp as b}from"read-package-up";import{patch as x,valid as S}from"semver";import{dirname as C}from"node:path";import{promisify as w}from"node:util";import T from"import-from-esm";import{Octokit as E}from"@octokit/rest";import{format as D}from"date-fns";function O(e,t,n,r){let i=[];return c(u(t,t=>t[e]||``),(e,t)=>{t===``&&(t=!1);let n=e;r&&(n=h(n,r));let a=n[0].typeSpec.semver,o=99;[`fix`,`patch`].includes(a)&&(o=20),[`feature`,`minor`].includes(a)&&(o=10),[`breaking`,`major`].includes(a)&&(o=0),i.push({commits:n,order:o,title:t})}),n&&(i=h(i,n)),i}function k(e,t,n){let r=[];return c(e,e=>{let t=e.title,n=!1;c(r,r=>{if(r.title===t)return n=!0,r.notes.push(e),!1}),n||r.push({notes:[e],title:t})}),r}function A(e,t,n){let r={};return r.commitGroups=O(n.groupBy,e,n.commitGroupsSort,n.commitsSort),r.noteGroups=k(t,n.noteGroupsSort,n.notesSort),r}function j(e,t,n,i){let o=[],s;if(e.ignoreReverted)for(let e of r(t))s.push(e);else s=a(t);return c(s,e=>{p(e.notes,t=>(t.commit=e,t)),o=o.concat(e.notes)}),n=m({},n,i,A(s,o,e)),i?.committerDate&&(n.date=i.committerDate),n.version&&S(n.version)&&(n.isPatch=n.isPatch||x(n.version)!==0),n={commits:t,context:n,filteredCommits:s,keyCommit:i,options:e},n}const M=C(t(import.meta.url)),N=async(e,t)=>{let{config:n,parserOpts:r,preset:i,presetConfig:a,writerOpts:o}=e,{cwd:s}=t,c;if(i){let e=`conventional-changelog-${i.toLowerCase()}`;c=await(await T.silent(M,e)||await T(s,e))(a)}else c=n?await(await T.silent(M,n)||await T(s,n))():{};return c=await(typeof c==`function`?f(a)?c(a):w(c)():c),{parserOpts:{...c.parserOpts,...r},writerOpts:{...c.writerOpts,...o}}},P=(e,t,n)=>{let{commit:r,commitGroups:i,linkReferences:a}=e,{repositoryUrl:o}=n,s=``,c=e=>e?a?` [ \`${e}\` ](${` ${o}/${r}/${e}`})`:` ${e}`:``,l=e=>{if(!e||v(e)===0)return``;let t=`, closes `,n=[];return e.map(e=>{e.issue&&n.push(`[ #${e.issue} ]`)}),t+=n.join(` `),t};return i.map(e=>{let n=e?.commits[0]?.typeSpec?.type;s+=`#### ${e?.commits[0]?.type}\n`,t.map(e=>{let{hash:t,header:r,references:i,scope:a,subject:o}=e;if(n===e.typeSpec.type){let e=`- {scope}{subject}{hash}{references}
|
|
2
2
|
`.replace(/\{scope\}/g,a?`**${a}**: `:``).replace(/\{subject\}/g,o||r).replace(/\{hash\}/g,c(t)).replace(/\{references\}/g,l(i));s+=e}}),s+=`
|
|
3
|
-
`}),s},F=new
|
|
4
|
-
`;let e=r.map(e=>`@${e.login}`).join(`, `);a+=`- ${
|
|
3
|
+
`}),s},F=new E({auth:process.env.GH_TOKEN}),I={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`]},L=[`Props to`,`Kudos to`,`Thanks to`,`Brought to you by`],R=async(e,t,n)=>{let r=y(t.map(e=>({email:e.author.email,name:e.author.name})),`name`),{options:{contributorsProhibitList:i}}=e;await Promise.all(r.map((e,t)=>F.request(`GET /search/users`,{q:e.email}).then(({data:e})=>{let n=e.items[0]?.login;return n?(r[t].login=n,n):``}))),[...I.login,...i.login].map(e=>{let t=s(r,[`login`,e]);t!==-1&&r.splice(t)}),[...I.email,...i.email].map(e=>{let t=s(r,t=>t.email.includes(e));t!==-1&&r.splice(t)});let a=``;if(r.length>0){a+=`#### 🥳️ Contributors
|
|
4
|
+
`;let e=r.map(e=>`@${e.login}`).join(`, `);a+=`- ${g(L)} ${e}\n`,a+=`
|
|
5
5
|
`}return a},z=(e,t,n)=>{let{noteGroups:r}=e,i=``;return r.map(e=>{let{notes:t}=e,n=t[0].title;i+=`#### ${n}\n`,t.map(e=>{let{scope:t,text:n}=e,r=`- {scope}{text}
|
|
6
6
|
`.replace(/\{scope\}/g,t?`**${t}**: `:``).replace(/\{text\}/g,n||``);i+=r}),i+=`
|
|
7
7
|
`}),i},B=(e,t,n)=>{let{currentTag:r,date:i,linkCompare:a,previousTag:o,title:s}=e,{repositoryUrl:c}=n,l=`
|
|
8
8
|
| 🔖️ | Release Information |
|
|
9
9
|
| ----------- | --------------- |
|
|
10
|
-
| Current | **\`${r}\`** |\n`;if(a){let e=c+`/compare/`+o+`...`+r;l+=`| Previous | **[\`${o}\`](${e})** |\n`}return s&&(l+=`| Title | **\`${s}\`** |\n`),i&&(l+=`| Date | **\`${
|
|
10
|
+
| Current | **\`${r}\`** |\n`;if(a){let e=c+`/compare/`+o+`...`+r;l+=`| Previous | **[\`${o}\`](${e})** |\n`}return s&&(l+=`| Title | **\`${s}\`** |\n`),i&&(l+=`| Date | **\`${D(i,`yyyy-MM-dd`)}\`** |\n`),l+=`
|
|
11
11
|
`,l},V=async(e,t)=>{let{commitGroups:n,currentTag:r,date:i,host:a,issue:o,lastRelease:s,linkCompare:c,linkReferences:l,mentions:u,nextRelease:d,noteGroups:f,notes:p,options:m,owner:h,previousTag:g,references:_,repository:v,repoUrl:y,revert:b,version:x}=e,S={commitGroups:n,currentTag:r,date:i,host:a,issue:o,lastRelease:s,linkCompare:c,linkReferences:l,mentions:u,nextRelease:d,noteGroups:f,notes:p,options:m,owner:h,previousTag:g,references:_,repository:v,repoUrl:y,revert:b,version:x},C={repositoryUrl:v?a+`/`+h+`/`+v:y},w=``;return w+=B(S,t,C),w+=`
|
|
12
12
|
`,w+=P(S,t,C),w+=`
|
|
13
13
|
`,w+=await R(S,t,C),w+=`
|
|
14
14
|
`,w+=z(S,t,C),w+=`
|
|
15
|
-
`,w};function H(e,t,n){let r;try{e=JSON.parse(e)}catch{}return r=
|
|
15
|
+
`,w};function H(e,t,n){let r;try{e=JSON.parse(e)}catch{}return r=o(e),d(t)?(r=t(r,n),r&&(r.raw=e),r):(c(t,(e,t)=>{let n=l(r,t);n=d(e)?e(n,t):e,_(r,t,n)}),r.raw=e,r)}const U={commit:`commit`,hostname:`github.com`,issue:`issues`,issuePrefixes:[`#`,`gh-`],referenceActions:[`close`,`closes`,`closed`,`fix`,`fixes`,`fixed`,`resolve`,`resolves`,`resolved`]};async function W(t,a){let{parserOpts:o,writerOpts:s}=await N(t,a),{commits:c,cwd:l,lastRelease:u,nextRelease:d,options:f}=a,{commit:p,issue:h,issuePrefixes:g,referenceActions:_}=U,v=u.gitTag||u.gitHead,y=d.gitTag||d.gitHead,{commit:x,host:S,issue:C,linkCompare:w,linkReferences:T}=t,E=f.repositoryUrl.replace(/\.git$/i,``),[D,O,k,A]=/^(?!.+:\/\/)(?:(?<auth>.*)@)?(?<host>.*?):(?<path>.*)$/.exec(E)||[],{hostname:M,pathname:P,port:F,protocol:I}=new e(D?`ssh://${O?`${O}@`:``}${k}/${A}`:E);F=I.includes(`ssh`)?``:F,I=I&&/http[^s]/.test(I)?`http`:`https`;let[,L,R]=/^\/(?<owner>[^/]+)?\/?(?<repository>.+)?$/.exec(P)??[],z=m({commit:p,currentTag:y,host:n({hostname:M,port:F,protocol:I}),issue:h,linkCompare:y&&v,owner:L,packageData:(await b({cwd:l,normalize:!1}))?.packageJson,previousTag:v,repository:R,version:d.version},{commit:x,host:S,issue:C,linkCompare:w,linkReferences:T}),B=[],W=new i({issuePrefixes:g,referenceActions:_,...o});for(let e of r(c)){let t=e;if(!t?.message.trim())return!1;let n={...t,...W.parse(t?.message)};B.push(n)}let G=[];await B.map(async e=>{let t=await H(e,s.transform,a);G.push(t)}),G=await G.filter(e=>e!==void 0);let K=m({},z,f,s),q=G[0],J=H(q,s.transform,a)||q,{context:Y}=await j(K,G,a,J);return V(m({},z,Y),G)}export{W as generateNotes};
|
|
16
16
|
//# sourceMappingURL=index.mjs.map
|
package/index.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.mjs","names":["semverValid","semverPatch","_format"],"sources":["../src/utils/getCommitGroups.ts","../src/utils/getNoteGroups.ts","../src/utils/getExtraContent.ts","../src/utils/generate.ts","../src/utils/getChangelogConfig.ts","../src/templates/commit.ts","../src/templates/contributor.ts","../src/templates/footer.ts","../src/templates/header.ts","../src/utils/getMarkdown.ts","../src/utils/processCommit.ts","../src/index.ts"],"sourcesContent":["import _forEach from 'lodash/forEach.js'\nimport _groupBy from 'lodash/groupBy.js'\nimport _orderBy from 'lodash/orderBy.js'\n\nfunction getCommitGroups(groupBy, commits, commitGroupsSort, commitsSort) {\n let commitGroups: any = []\n\n const commitGroupsObj = _groupBy(commits, (commit) => commit[groupBy] || '')\n\n _forEach(commitGroupsObj, (commits, title: boolean | string) => {\n if (title === '') {\n title = false\n }\n\n let commitsSorted: any = commits\n\n if (commitsSort) {\n commitsSorted = _orderBy(commitsSorted, commitsSort)\n }\n\n const semver = commitsSorted[0].typeSpec.semver\n\n let order = 99\n if (['fix', 'patch'].includes(semver)) {\n order = 20\n }\n if (['feature', 'minor'].includes(semver)) {\n order = 10\n }\n if (['breaking', 'major'].includes(semver)) {\n order = 0\n }\n\n commitGroups.push({\n commits: commitsSorted,\n order,\n title: title,\n })\n })\n\n if (commitGroupsSort) {\n commitGroups = _orderBy(commitGroups, commitGroupsSort)\n // // @todo(#744) analytics -vs- deps-dev\n // console.dir(`>> commitGroupsSort`)\n // console.dir(commitGroups)\n }\n\n return commitGroups\n}\n\nexport default getCommitGroups\n","import _forEach from 'lodash/forEach.js'\n\nfunction getNoteGroups(notes, _noteGroupsSort, _notesSort) {\n const noteGroups: any = []\n\n // console.dir(`> getNoteGroups`)\n // console.dir(notes)\n _forEach(notes, (note) => {\n // console.dir(`> _forEach`)\n // console.dir(note)\n const title = note.title\n let titleExists = false\n\n _forEach(noteGroups, (group) => {\n if (group.title === title) {\n titleExists = true\n group.notes.push(note)\n return false\n }\n return\n })\n\n if (!titleExists) {\n noteGroups.push({\n notes: [note],\n title: title,\n })\n }\n })\n\n return noteGroups\n}\n\nexport default getNoteGroups\n","import getCommitGroups from './getCommitGroups'\nimport getNoteGroups from './getNoteGroups'\n\nfunction getExtraContext(commits, notes, options) {\n const context: any = {}\n\n context.commitGroups = getCommitGroups(\n options.groupBy,\n commits,\n options.commitGroupsSort,\n options.commitsSort,\n )\n\n context.noteGroups = getNoteGroups(\n notes,\n options.noteGroupsSort,\n options.notesSort,\n )\n\n return context\n}\n\nexport default getExtraContext\n","import { filterRevertedCommitsSync } from 'conventional-commits-filter'\nimport _clone from 'lodash/clone.js'\nimport _forEach from 'lodash/forEach.js'\nimport _map from 'lodash/map.js'\nimport _merge from 'lodash/merge.js'\nimport { patch as semverPatch, valid as semverValid } from 'semver'\n\nimport getExtraContext from './getExtraContent'\n\nfunction generate(options, commits, context, keyCommit) {\n let notes = []\n let filteredCommits: any\n\n if (options.ignoreReverted) {\n for (const commit of filterRevertedCommitsSync(commits)) {\n filteredCommits.push(commit)\n }\n } else {\n filteredCommits = _clone(commits)\n }\n\n _forEach(filteredCommits, (commit) => {\n _map(commit.notes, (note) => {\n note.commit = commit\n\n return note\n })\n\n notes = notes.concat(commit.notes)\n })\n // console.dir(`notes:`)\n // console.dir(notes)\n\n context = _merge(\n {},\n context,\n keyCommit,\n getExtraContext(filteredCommits, notes, options),\n )\n\n if (keyCommit?.committerDate) {\n context.date = keyCommit.committerDate\n }\n\n if (context.version && semverValid(context.version)) {\n context.isPatch = context.isPatch || semverPatch(context.version) !== 0\n }\n\n // @note this is/was a pass-through function, okay with \"skipping\"\n // context = options.finalizeContext(\n // context,\n // options,\n // filteredCommits,\n // keyCommit,\n // commits\n // )\n\n // @question should this be merge/extend? i.e, `...context` specifically?\n context = {\n commits,\n context,\n filteredCommits,\n keyCommit,\n options,\n }\n\n return context\n}\n\nexport default generate\n","/**\n * @copyright https://github.com/semantic-release/release-notes-generator\n */\nimport { dirname } from 'node:path'\nimport { fileURLToPath } from 'node:url'\nimport { promisify } from 'node:util'\n\n// import conventionalChangelogAngular from 'conventional-changelog-angular'\nimport importFrom from 'import-from-esm'\nimport _isPlainObject from 'lodash/isPlainObject.js'\n\nconst __dirname = dirname(fileURLToPath(import.meta.url))\n\nconst getChangelogConfig = async (pluginConfig, context) => {\n const { config, parserOpts, preset, presetConfig, writerOpts } = pluginConfig\n const { cwd } = context\n\n let loadedConfig: any\n\n if (preset) {\n const presetPackage = `conventional-changelog-${preset.toLowerCase()}`\n /**\n * @todo(semantic)\n * UNKNOWN\n * https://github.com/semantic-release/commit-analyzer/commit/f3b88d3e7409b0bac38cb58bd04f19506f2f6159\n */\n // @ts-ignore\n loadedConfig = await (\n (await importFrom.silent(__dirname, presetPackage)) ||\n (await importFrom(cwd, presetPackage))\n )(presetConfig)\n } else if (config) {\n // @ts-ignore\n loadedConfig = await (\n (await importFrom.silent(__dirname, config)) || (await importFrom(cwd, config))\n )()\n } else {\n // loadedConfig = conventionalChangelogAngular\n loadedConfig = {}\n }\n\n loadedConfig = await (typeof loadedConfig === 'function'\n ? _isPlainObject(presetConfig)\n ? loadedConfig(presetConfig)\n : promisify(loadedConfig)()\n : loadedConfig)\n\n const changelogConfig = {\n parserOpts: { ...loadedConfig.parserOpts, ...parserOpts },\n writerOpts: { ...loadedConfig.writerOpts, ...writerOpts },\n }\n\n return changelogConfig\n}\n\nexport { getChangelogConfig }\n","import _size from 'lodash/size.js'\n\nconst commit = (context, commits, meta) => {\n const { commit, commitGroups, linkReferences } = context\n const { repositoryUrl } = meta\n\n // @todo(release-notes) make variable\n const commitFormat = `- {scope}{subject}{hash}{references}\\n`\n\n let markdown = ``\n\n const getHash = (hash) => {\n if (!hash) return ''\n if (linkReferences) {\n const url = ` ${repositoryUrl}/${commit}/${hash}`\n return ` [ \\`${hash}\\` ](${url})`\n }\n return ` ${hash}`\n }\n\n const getReferences = (references) => {\n if (!references || _size(references) === 0) return ''\n let markdownReference = `, closes `\n const markdownReferenceArray: any = []\n references.map((reference: any) => {\n // markdownReferenceArray.push(\n // `[ ${reference.issue} ](${repositoryUrl}/${reference.issue})`\n // )\n\n // biome-ignore lint/complexity/noExtraBooleanCast: migrate\n if (!!reference.issue) {\n markdownReferenceArray.push(`[ #${reference.issue} ]`)\n }\n })\n markdownReference += markdownReferenceArray.join(' ')\n return markdownReference\n }\n\n commitGroups.map((commitGroup) => {\n const type = commitGroup?.commits[0]?.typeSpec?.type\n\n markdown += `#### ${commitGroup?.commits[0]?.type}\\n`\n // biome-ignore lint/complexity/noExcessiveCognitiveComplexity: 11\n commits.map((commit) => {\n const { hash, header, references, scope, subject } = commit\n if (type === commit.typeSpec.type) {\n const commitMarkdown = commitFormat\n .replace(/\\{scope\\}/g, scope ? `**${scope}**: ` : '')\n .replace(/\\{subject\\}/g, subject ? subject : header)\n .replace(/\\{hash\\}/g, getHash(hash))\n .replace(/\\{references\\}/g, getReferences(references))\n\n markdown += commitMarkdown\n }\n })\n markdown += `\\n`\n })\n\n return markdown\n}\n\nexport { commit }\n","import { Octokit } from '@octokit/rest'\nimport _findIndex from 'lodash/findIndex.js'\nimport _sample from 'lodash/sample.js'\nimport _uniqBy from 'lodash/uniqBy.js'\n\nconst gh = new Octokit({ auth: process.env.GH_TOKEN })\n\ninterface IAuthor {\n email: string\n login?: string\n name: string\n}\n\n/**\n * @hack\n * remove these logins from contributors\n *\n * reason JeromeFitz is here is because most of the time\n * they are the only one making them in this repo ,haha\n *\n * maybe these should be a configuration setting?\n *\n */\nconst contributorsProhibitListDefault = {\n email: [\n 'noreply@github.com',\n 'users.noreply.github.com',\n 'semantic-release-bot@martynus.net',\n ],\n login: [\n 'dependabot',\n 'dependabot[bot]',\n 'kodiakhq',\n 'kodiakhq[bot]',\n 'renovate',\n 'renovate[bot]',\n 'semantic-release-bot',\n ],\n}\n\nconst contributorsSubtitle = [\n 'Props to',\n 'Kudos to',\n 'Thanks to',\n 'Brought to you by',\n]\n\nconst contributor = async (context, commits, _meta) => {\n const authors = _uniqBy(\n commits.map(\n (commit): IAuthor => ({\n email: commit.author.email,\n name: commit.author.name,\n }),\n ),\n 'name',\n )\n\n const {\n options: { contributorsProhibitList },\n } = context\n\n // console.dir(`> context`)\n // console.dir(context)\n\n await Promise.all(\n authors.map((author: any, authorIdx) =>\n gh\n .request('GET /search/users', {\n q: author.email,\n })\n .then(({ data }) => {\n const login = data.items[0]?.login\n // biome-ignore lint/complexity/noExtraBooleanCast: migrate\n if (!!login) {\n // biome-ignore lint/complexity/useLiteralKeys: migrate\n authors[authorIdx]['login'] = login\n return login\n }\n return ''\n }),\n ),\n )\n\n // @note could we lift this better somehow and reduce API calls?\n const contributorsProhibitListLogin = [\n ...contributorsProhibitListDefault.login,\n ...contributorsProhibitList.login,\n ]\n contributorsProhibitListLogin.map((eject) => {\n const ejectIndex = _findIndex(authors, ['login', eject])\n if (ejectIndex !== -1) authors.splice(ejectIndex)\n })\n const contributorsProhibitListEmail = [\n ...contributorsProhibitListDefault.email,\n ...contributorsProhibitList.email,\n ]\n contributorsProhibitListEmail.map((eject) => {\n const ejectIndex = _findIndex(authors, (author: any) =>\n author.email.includes(eject),\n )\n if (ejectIndex !== -1) authors.splice(ejectIndex)\n })\n\n let markdown = ``\n if (authors.length > 0) {\n // @todo(release-notes) pass title as configuration option\n markdown += `#### 🥳️ Contributors\\n`\n const authorsString = authors.map((author: any) => `@${author.login}`).join(', ')\n markdown += `- ${_sample(contributorsSubtitle)} ${authorsString}\\n`\n // markdown += `\\n---\\n`\n // markdown += _sample(contributorKudos)!(\n // authors.map((author: any) => author.login).join(',')\n // )\n markdown += `\\n`\n }\n\n return markdown\n}\n\nexport { contributor }\n","const footer = (context, _commits, _meta) => {\n const { noteGroups } = context\n\n // @todo(release-notes) make variable\n const noteFormat = `- {scope}{text}\\n`\n\n let markdown = ``\n\n noteGroups.map((noteGroup) => {\n const { notes } = noteGroup\n const title = notes[0].title\n markdown += `#### ${title}\\n`\n notes.map((note) => {\n const { scope, text } = note\n const noteMarkdown = noteFormat\n .replace(/\\{scope\\}/g, scope ? `**${scope}**: ` : '')\n .replace(/\\{text\\}/g, text ? text : '')\n\n markdown += noteMarkdown\n })\n markdown += `\\n`\n })\n\n return markdown\n}\n\nexport { footer }\n","import { format as _format } from 'date-fns'\n\nconst header = (context, _commits, meta) => {\n // @todo(release-notes) pass as option\n const { currentTag, date, linkCompare, previousTag, title } = context\n const { repositoryUrl } = meta\n\n let markdown = `\n| 🔖️ | Release Information |\n| ----------- | --------------- |\n| Current | **\\`${currentTag}\\`** |\\n`\n\n if (linkCompare) {\n const linkCompareUrl =\n // biome-ignore lint/style/useTemplate: migrate\n repositoryUrl + '/compare/' + previousTag + '...' + currentTag\n markdown += `| Previous | **[\\`${previousTag}\\`](${linkCompareUrl})** |\\n`\n }\n if (title) {\n markdown += `| Title | **\\`${title}\\`** |\\n`\n }\n if (date) {\n markdown += `| Date | **\\`${_format(date, 'yyyy-MM-dd')}\\`** |\\n`\n }\n\n markdown += `\\n`\n return markdown\n}\n\nexport { header }\n","import { commit, contributor, footer, header } from '../templates/index'\n\nconst getMarkdown = async (context, commits) => {\n const {\n commitGroups,\n currentTag,\n date,\n host,\n issue,\n lastRelease,\n linkCompare,\n linkReferences,\n mentions,\n nextRelease,\n noteGroups,\n notes,\n options,\n owner,\n previousTag,\n references,\n repository,\n repoUrl,\n revert,\n version,\n } = context\n\n const markdownContext = {\n commitGroups, // // [{title|commits}]\n currentTag,\n date, // isoString\n host,\n issue, // string\n lastRelease, // version|gitTag|channels|gitHead|name\n linkCompare,\n linkReferences,\n mentions, // []\n nextRelease, // type|channel|gitHead|version|gitTag|name|notes\n noteGroups, // []\n notes,\n options, // from `release.config`\n owner,\n previousTag,\n references, // []\n repository,\n repoUrl,\n revert, // boolean\n version,\n }\n\n // Object.keys(markdownContext).map((key) => {\n // console.dir(`>> ${key}:`)\n // console.dir(markdownContext[key])\n // })\n\n // biome-ignore lint/style/useTemplate: migrate\n const repositoryUrl = repository ? host + '/' + owner + '/' + repository : repoUrl\n\n const meta = {\n repositoryUrl,\n }\n // const meta = {}\n\n let markdown = ``\n // TEMPLATE\n // HEADER\n markdown += header(markdownContext, commits, meta)\n markdown += `\\n`\n // COMMITS\n markdown += commit(markdownContext, commits, meta)\n markdown += `\\n`\n // CONTRIBUTORS\n markdown += await contributor(markdownContext, commits, meta)\n markdown += `\\n`\n // FOOTER (NOTES)\n markdown += footer(markdownContext, commits, meta)\n markdown += `\\n`\n\n return markdown\n}\n\nexport { getMarkdown }\n","import _cloneDeep from 'lodash/cloneDeep.js'\nimport _forEach from 'lodash/forEach.js'\nimport _get from 'lodash/get.js'\nimport _isFunction from 'lodash/isFunction.js'\nimport _set from 'lodash/set.js'\n\n/**\n * @ref lifted from release-notes-generator\n */\nfunction processCommit(chunk, transform, context) {\n let commit: any\n\n try {\n chunk = JSON.parse(chunk)\n // biome-ignore lint/suspicious/noEmptyBlockStatements: migrate\n } catch (_error) {}\n\n commit = _cloneDeep(chunk)\n\n if (_isFunction(transform)) {\n commit = transform(commit, context)\n\n if (commit) {\n commit.raw = chunk\n }\n\n return commit\n }\n\n _forEach(transform, (el, path) => {\n let value = _get(commit, path)\n\n if (_isFunction(el)) {\n value = el(value, path)\n } else {\n value = el\n }\n\n _set(commit, path, value)\n })\n\n commit.raw = chunk\n\n return commit\n}\n\nexport { processCommit }\n","import { format, URL } from 'node:url'\n\nimport { filterRevertedCommitsSync } from 'conventional-commits-filter'\nimport { CommitParser } from 'conventional-commits-parser'\nimport _merge from 'lodash/merge.js'\nimport { readPackageUp } from 'read-package-up'\n\nimport generate from './utils/generate'\nimport { getChangelogConfig } from './utils/getChangelogConfig'\nimport { getMarkdown } from './utils/getMarkdown'\nimport { processCommit } from './utils/processCommit'\n\nconst configGithub = {\n commit: 'commit',\n hostname: 'github.com',\n issue: 'issues',\n issuePrefixes: ['#', 'gh-'],\n referenceActions: [\n 'close',\n 'closes',\n 'closed',\n 'fix',\n 'fixes',\n 'fixed',\n 'resolve',\n 'resolves',\n 'resolved',\n ],\n}\n\n// @todo(complexity) 17\n// biome-ignore lint/complexity/noExcessiveCognitiveComplexity: migrate\nasync function generateNotes(pluginConfig, context) {\n const { parserOpts, writerOpts } = await getChangelogConfig(pluginConfig, context)\n const { commits: commitsPassed, cwd, lastRelease, nextRelease, options } = context\n\n const { commit, issue, issuePrefixes, referenceActions } = configGithub\n\n const previousTag = lastRelease.gitTag || lastRelease.gitHead\n const currentTag = nextRelease.gitTag || nextRelease.gitHead\n const {\n commit: commitConfig,\n host: hostConfig,\n issue: issueConfig,\n linkCompare,\n linkReferences,\n } = pluginConfig\n\n const repositoryUrl = options.repositoryUrl.replace(/\\.git$/i, '')\n const [match, auth, host, path] =\n /^(?!.+:\\/\\/)(?:(?<auth>.*)@)?(?<host>.*?):(?<path>.*)$/.exec(repositoryUrl) ||\n []\n let { hostname, pathname, port, protocol } = new URL(\n match ? `ssh://${auth ? `${auth}@` : ''}${host}/${path}` : repositoryUrl,\n )\n port = protocol.includes('ssh') ? '' : port\n protocol = protocol && /http[^s]/.test(protocol) ? 'http' : 'https'\n\n const [, owner, repository] =\n /^\\/(?<owner>[^/]+)?\\/?(?<repository>.+)?$/.exec(pathname) ?? []\n\n const changelogContext = _merge(\n {\n commit,\n currentTag,\n host: format({ hostname, port, protocol }),\n issue,\n linkCompare: currentTag && previousTag,\n owner,\n packageData: (await readPackageUp({ cwd, normalize: false }))?.packageJson,\n previousTag,\n repository,\n version: nextRelease.version,\n },\n {\n commit: commitConfig,\n host: hostConfig,\n issue: issueConfig,\n linkCompare,\n linkReferences,\n },\n )\n\n const commitsParsed: any = []\n const parser = new CommitParser({\n issuePrefixes,\n referenceActions,\n ...parserOpts,\n })\n\n for (const _commit of filterRevertedCommitsSync(commitsPassed)) {\n const commit: any = _commit\n if (!commit?.message.trim()) {\n return false\n }\n const commitPassed = {\n ...commit,\n ...parser.parse(commit?.message),\n }\n commitsParsed.push(commitPassed)\n }\n let commits: any = []\n await commitsParsed.map(async (commitParsed) => {\n const commitProcessed: any = await processCommit(\n commitParsed,\n writerOpts.transform,\n context,\n )\n commits.push(commitProcessed)\n })\n\n /**\n * @hack why is something being brought back as undefined?\n */\n commits = await commits.filter((commit) => commit !== undefined)\n\n const _options = _merge({}, changelogContext, options, writerOpts)\n\n /**\n * @note(release-notes-generator) oddly, `date` is pulled from here\n * could we do this differently? what other fields\n * are pulled for info purposes?\n */\n const _chunk = commits[0]\n const keyCommit = processCommit(_chunk, writerOpts.transform, context) || _chunk\n const { context: _context } = await generate(_options, commits, context, keyCommit)\n\n const markdownContext = _merge({}, changelogContext, _context)\n\n return getMarkdown(markdownContext, commits)\n}\n\nexport { generateNotes }\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.mjs","names":["_groupBy","groupBy","_orderBy","_clone","_merge","semverValid","semverPatch","_isPlainObject","_size","_uniqBy","_findIndex","_sample","_format","_cloneDeep","_isFunction","_get","_merge"],"sources":["../src/utils/getCommitGroups.ts","../src/utils/getNoteGroups.ts","../src/utils/getExtraContent.ts","../src/utils/generate.ts","../src/utils/getChangelogConfig.ts","../src/templates/commit.ts","../src/templates/contributor.ts","../src/templates/footer.ts","../src/templates/header.ts","../src/utils/getMarkdown.ts","../src/utils/processCommit.ts","../src/index.ts"],"sourcesContent":["import {\n forEach as _forEach,\n groupBy as _groupBy,\n orderBy as _orderBy,\n} from 'lodash-es'\n\nfunction getCommitGroups(groupBy, commits, commitGroupsSort, commitsSort) {\n let commitGroups: any = []\n\n const commitGroupsObj = _groupBy(commits, (commit) => commit[groupBy] || '')\n\n _forEach(commitGroupsObj, (commits, title: boolean | string) => {\n if (title === '') {\n title = false\n }\n\n let commitsSorted: any = commits\n\n if (commitsSort) {\n commitsSorted = _orderBy(commitsSorted, commitsSort)\n }\n\n const semver = commitsSorted[0].typeSpec.semver\n\n let order = 99\n if (['fix', 'patch'].includes(semver)) {\n order = 20\n }\n if (['feature', 'minor'].includes(semver)) {\n order = 10\n }\n if (['breaking', 'major'].includes(semver)) {\n order = 0\n }\n\n commitGroups.push({\n commits: commitsSorted,\n order,\n title: title,\n })\n })\n\n if (commitGroupsSort) {\n commitGroups = _orderBy(commitGroups, commitGroupsSort)\n // // @todo(#744) analytics -vs- deps-dev\n // console.dir(`>> commitGroupsSort`)\n // console.dir(commitGroups)\n }\n\n return commitGroups\n}\n\nexport default getCommitGroups\n","import { forEach as _forEach } from 'lodash-es'\n\nfunction getNoteGroups(notes, _noteGroupsSort, _notesSort) {\n const noteGroups: any = []\n\n // console.dir(`> getNoteGroups`)\n // console.dir(notes)\n _forEach(notes, (note) => {\n // console.dir(`> _forEach`)\n // console.dir(note)\n const title = note.title\n let titleExists = false\n\n _forEach(noteGroups, (group) => {\n if (group.title === title) {\n titleExists = true\n group.notes.push(note)\n return false\n }\n return\n })\n\n if (!titleExists) {\n noteGroups.push({\n notes: [note],\n title: title,\n })\n }\n })\n\n return noteGroups\n}\n\nexport default getNoteGroups\n","import getCommitGroups from './getCommitGroups'\nimport getNoteGroups from './getNoteGroups'\n\nfunction getExtraContext(commits, notes, options) {\n const context: any = {}\n\n context.commitGroups = getCommitGroups(\n options.groupBy,\n commits,\n options.commitGroupsSort,\n options.commitsSort,\n )\n\n context.noteGroups = getNoteGroups(\n notes,\n options.noteGroupsSort,\n options.notesSort,\n )\n\n return context\n}\n\nexport default getExtraContext\n","import { filterRevertedCommitsSync } from 'conventional-commits-filter'\nimport {\n clone as _clone,\n forEach as _forEach,\n map as _map,\n merge as _merge,\n} from 'lodash-es'\nimport { patch as semverPatch, valid as semverValid } from 'semver'\n\nimport getExtraContext from './getExtraContent'\n\nfunction generate(options, commits, context, keyCommit) {\n let notes = []\n let filteredCommits: any\n\n if (options.ignoreReverted) {\n for (const commit of filterRevertedCommitsSync(commits)) {\n filteredCommits.push(commit)\n }\n } else {\n filteredCommits = _clone(commits)\n }\n\n _forEach(filteredCommits, (commit) => {\n _map(commit.notes, (note) => {\n note.commit = commit\n\n return note\n })\n\n notes = notes.concat(commit.notes)\n })\n // console.dir(`notes:`)\n // console.dir(notes)\n\n context = _merge(\n {},\n context,\n keyCommit,\n getExtraContext(filteredCommits, notes, options),\n )\n\n if (keyCommit?.committerDate) {\n context.date = keyCommit.committerDate\n }\n\n if (context.version && semverValid(context.version)) {\n context.isPatch = context.isPatch || semverPatch(context.version) !== 0\n }\n\n // @note this is/was a pass-through function, okay with \"skipping\"\n // context = options.finalizeContext(\n // context,\n // options,\n // filteredCommits,\n // keyCommit,\n // commits\n // )\n\n // @question should this be merge/extend? i.e, `...context` specifically?\n context = {\n commits,\n context,\n filteredCommits,\n keyCommit,\n options,\n }\n\n return context\n}\n\nexport default generate\n","/**\n * @copyright https://github.com/semantic-release/release-notes-generator\n */\nimport { dirname } from 'node:path'\nimport { fileURLToPath } from 'node:url'\nimport { promisify } from 'node:util'\n\n// import conventionalChangelogAngular from 'conventional-changelog-angular'\nimport importFrom from 'import-from-esm'\nimport { isPlainObject as _isPlainObject } from 'lodash-es'\n\nconst __dirname = dirname(fileURLToPath(import.meta.url))\n\nconst getChangelogConfig = async (pluginConfig, context) => {\n const { config, parserOpts, preset, presetConfig, writerOpts } = pluginConfig\n const { cwd } = context\n\n let loadedConfig: any\n\n if (preset) {\n const presetPackage = `conventional-changelog-${preset.toLowerCase()}`\n /**\n * @todo(semantic)\n * UNKNOWN\n * https://github.com/semantic-release/commit-analyzer/commit/f3b88d3e7409b0bac38cb58bd04f19506f2f6159\n */\n // @ts-ignore\n loadedConfig = await (\n (await importFrom.silent(__dirname, presetPackage)) ||\n (await importFrom(cwd, presetPackage))\n )(presetConfig)\n } else if (config) {\n // @ts-ignore\n loadedConfig = await (\n (await importFrom.silent(__dirname, config)) || (await importFrom(cwd, config))\n )()\n } else {\n // loadedConfig = conventionalChangelogAngular\n loadedConfig = {}\n }\n\n loadedConfig = await (typeof loadedConfig === 'function'\n ? _isPlainObject(presetConfig)\n ? loadedConfig(presetConfig)\n : promisify(loadedConfig)()\n : loadedConfig)\n\n const changelogConfig = {\n parserOpts: { ...loadedConfig.parserOpts, ...parserOpts },\n writerOpts: { ...loadedConfig.writerOpts, ...writerOpts },\n }\n\n return changelogConfig\n}\n\nexport { getChangelogConfig }\n","import { size as _size } from 'lodash-es'\n\nconst commit = (context, commits, meta) => {\n const { commit, commitGroups, linkReferences } = context\n const { repositoryUrl } = meta\n\n // @todo(release-notes) make variable\n const commitFormat = `- {scope}{subject}{hash}{references}\\n`\n\n let markdown = ``\n\n const getHash = (hash) => {\n if (!hash) return ''\n if (linkReferences) {\n const url = ` ${repositoryUrl}/${commit}/${hash}`\n return ` [ \\`${hash}\\` ](${url})`\n }\n return ` ${hash}`\n }\n\n const getReferences = (references) => {\n if (!references || _size(references) === 0) return ''\n let markdownReference = `, closes `\n const markdownReferenceArray: any = []\n references.map((reference: any) => {\n // markdownReferenceArray.push(\n // `[ ${reference.issue} ](${repositoryUrl}/${reference.issue})`\n // )\n\n // biome-ignore lint/complexity/noExtraBooleanCast: migrate\n if (!!reference.issue) {\n markdownReferenceArray.push(`[ #${reference.issue} ]`)\n }\n })\n markdownReference += markdownReferenceArray.join(' ')\n return markdownReference\n }\n\n commitGroups.map((commitGroup) => {\n const type = commitGroup?.commits[0]?.typeSpec?.type\n\n markdown += `#### ${commitGroup?.commits[0]?.type}\\n`\n // biome-ignore lint/complexity/noExcessiveCognitiveComplexity: 11\n commits.map((commit) => {\n const { hash, header, references, scope, subject } = commit\n if (type === commit.typeSpec.type) {\n const commitMarkdown = commitFormat\n .replace(/\\{scope\\}/g, scope ? `**${scope}**: ` : '')\n .replace(/\\{subject\\}/g, subject ? subject : header)\n .replace(/\\{hash\\}/g, getHash(hash))\n .replace(/\\{references\\}/g, getReferences(references))\n\n markdown += commitMarkdown\n }\n })\n markdown += `\\n`\n })\n\n return markdown\n}\n\nexport { commit }\n","import { Octokit } from '@octokit/rest'\nimport {\n findIndex as _findIndex,\n sample as _sample,\n uniqBy as _uniqBy,\n} from 'lodash-es'\n\nconst gh = new Octokit({ auth: process.env.GH_TOKEN })\n\ninterface IAuthor {\n email: string\n login?: string\n name: string\n}\n\n/**\n * @hack\n * remove these logins from contributors\n *\n * reason JeromeFitz is here is because most of the time\n * they are the only one making them in this repo ,haha\n *\n * maybe these should be a configuration setting?\n *\n */\nconst contributorsProhibitListDefault = {\n email: [\n 'noreply@github.com',\n 'users.noreply.github.com',\n 'semantic-release-bot@martynus.net',\n ],\n login: [\n 'dependabot',\n 'dependabot[bot]',\n 'kodiakhq',\n 'kodiakhq[bot]',\n 'renovate',\n 'renovate[bot]',\n 'semantic-release-bot',\n ],\n}\n\nconst contributorsSubtitle = [\n 'Props to',\n 'Kudos to',\n 'Thanks to',\n 'Brought to you by',\n]\n\nconst contributor = async (context, commits, _meta) => {\n const authors = _uniqBy(\n commits.map(\n (commit): IAuthor => ({\n email: commit.author.email,\n name: commit.author.name,\n }),\n ),\n 'name',\n )\n\n const {\n options: { contributorsProhibitList },\n } = context\n\n // console.dir(`> context`)\n // console.dir(context)\n\n await Promise.all(\n authors.map((author: any, authorIdx) =>\n gh\n .request('GET /search/users', {\n q: author.email,\n })\n .then(({ data }) => {\n const login = data.items[0]?.login\n // biome-ignore lint/complexity/noExtraBooleanCast: migrate\n if (!!login) {\n // biome-ignore lint/complexity/useLiteralKeys: migrate\n authors[authorIdx]['login'] = login\n return login\n }\n return ''\n }),\n ),\n )\n\n // @note could we lift this better somehow and reduce API calls?\n const contributorsProhibitListLogin = [\n ...contributorsProhibitListDefault.login,\n ...contributorsProhibitList.login,\n ]\n contributorsProhibitListLogin.map((eject) => {\n const ejectIndex = _findIndex(authors, ['login', eject])\n if (ejectIndex !== -1) authors.splice(ejectIndex)\n })\n const contributorsProhibitListEmail = [\n ...contributorsProhibitListDefault.email,\n ...contributorsProhibitList.email,\n ]\n contributorsProhibitListEmail.map((eject) => {\n const ejectIndex = _findIndex(authors, (author: any) =>\n author.email.includes(eject),\n )\n if (ejectIndex !== -1) authors.splice(ejectIndex)\n })\n\n let markdown = ``\n if (authors.length > 0) {\n // @todo(release-notes) pass title as configuration option\n markdown += `#### 🥳️ Contributors\\n`\n const authorsString = authors.map((author: any) => `@${author.login}`).join(', ')\n markdown += `- ${_sample(contributorsSubtitle)} ${authorsString}\\n`\n // markdown += `\\n---\\n`\n // markdown += _sample(contributorKudos)!(\n // authors.map((author: any) => author.login).join(',')\n // )\n markdown += `\\n`\n }\n\n return markdown\n}\n\nexport { contributor }\n","const footer = (context, _commits, _meta) => {\n const { noteGroups } = context\n\n // @todo(release-notes) make variable\n const noteFormat = `- {scope}{text}\\n`\n\n let markdown = ``\n\n noteGroups.map((noteGroup) => {\n const { notes } = noteGroup\n const title = notes[0].title\n markdown += `#### ${title}\\n`\n notes.map((note) => {\n const { scope, text } = note\n const noteMarkdown = noteFormat\n .replace(/\\{scope\\}/g, scope ? `**${scope}**: ` : '')\n .replace(/\\{text\\}/g, text ? text : '')\n\n markdown += noteMarkdown\n })\n markdown += `\\n`\n })\n\n return markdown\n}\n\nexport { footer }\n","import { format as _format } from 'date-fns'\n\nconst header = (context, _commits, meta) => {\n // @todo(release-notes) pass as option\n const { currentTag, date, linkCompare, previousTag, title } = context\n const { repositoryUrl } = meta\n\n let markdown = `\n| 🔖️ | Release Information |\n| ----------- | --------------- |\n| Current | **\\`${currentTag}\\`** |\\n`\n\n if (linkCompare) {\n const linkCompareUrl =\n // biome-ignore lint/style/useTemplate: migrate\n repositoryUrl + '/compare/' + previousTag + '...' + currentTag\n markdown += `| Previous | **[\\`${previousTag}\\`](${linkCompareUrl})** |\\n`\n }\n if (title) {\n markdown += `| Title | **\\`${title}\\`** |\\n`\n }\n if (date) {\n markdown += `| Date | **\\`${_format(date, 'yyyy-MM-dd')}\\`** |\\n`\n }\n\n markdown += `\\n`\n return markdown\n}\n\nexport { header }\n","import { commit, contributor, footer, header } from '../templates/index'\n\nconst getMarkdown = async (context, commits) => {\n const {\n commitGroups,\n currentTag,\n date,\n host,\n issue,\n lastRelease,\n linkCompare,\n linkReferences,\n mentions,\n nextRelease,\n noteGroups,\n notes,\n options,\n owner,\n previousTag,\n references,\n repository,\n repoUrl,\n revert,\n version,\n } = context\n\n const markdownContext = {\n commitGroups, // // [{title|commits}]\n currentTag,\n date, // isoString\n host,\n issue, // string\n lastRelease, // version|gitTag|channels|gitHead|name\n linkCompare,\n linkReferences,\n mentions, // []\n nextRelease, // type|channel|gitHead|version|gitTag|name|notes\n noteGroups, // []\n notes,\n options, // from `release.config`\n owner,\n previousTag,\n references, // []\n repository,\n repoUrl,\n revert, // boolean\n version,\n }\n\n // Object.keys(markdownContext).map((key) => {\n // console.dir(`>> ${key}:`)\n // console.dir(markdownContext[key])\n // })\n\n // biome-ignore lint/style/useTemplate: migrate\n const repositoryUrl = repository ? host + '/' + owner + '/' + repository : repoUrl\n\n const meta = {\n repositoryUrl,\n }\n // const meta = {}\n\n let markdown = ``\n // TEMPLATE\n // HEADER\n markdown += header(markdownContext, commits, meta)\n markdown += `\\n`\n // COMMITS\n markdown += commit(markdownContext, commits, meta)\n markdown += `\\n`\n // CONTRIBUTORS\n markdown += await contributor(markdownContext, commits, meta)\n markdown += `\\n`\n // FOOTER (NOTES)\n markdown += footer(markdownContext, commits, meta)\n markdown += `\\n`\n\n return markdown\n}\n\nexport { getMarkdown }\n","import {\n cloneDeep as _cloneDeep,\n forEach as _forEach,\n get as _get,\n isFunction as _isFunction,\n set as _set,\n} from 'lodash-es'\n\n/**\n * @ref lifted from release-notes-generator\n */\nfunction processCommit(chunk, transform, context) {\n let commit: any\n\n try {\n chunk = JSON.parse(chunk)\n // biome-ignore lint/suspicious/noEmptyBlockStatements: migrate\n } catch (_error) {}\n\n commit = _cloneDeep(chunk)\n\n if (_isFunction(transform)) {\n commit = transform(commit, context)\n\n if (commit) {\n commit.raw = chunk\n }\n\n return commit\n }\n\n _forEach(transform, (el, path) => {\n let value = _get(commit, path)\n\n if (_isFunction(el)) {\n value = el(value, path)\n } else {\n value = el\n }\n\n _set(commit, path, value)\n })\n\n commit.raw = chunk\n\n return commit\n}\n\nexport { processCommit }\n","import { format, URL } from 'node:url'\n\nimport { filterRevertedCommitsSync } from 'conventional-commits-filter'\nimport { CommitParser } from 'conventional-commits-parser'\nimport { merge as _merge } from 'lodash-es'\nimport { readPackageUp } from 'read-package-up'\n\nimport generate from './utils/generate'\nimport { getChangelogConfig } from './utils/getChangelogConfig'\nimport { getMarkdown } from './utils/getMarkdown'\nimport { processCommit } from './utils/processCommit'\n\nconst configGithub = {\n commit: 'commit',\n hostname: 'github.com',\n issue: 'issues',\n issuePrefixes: ['#', 'gh-'],\n referenceActions: [\n 'close',\n 'closes',\n 'closed',\n 'fix',\n 'fixes',\n 'fixed',\n 'resolve',\n 'resolves',\n 'resolved',\n ],\n}\n\n// @todo(complexity) 17\n// biome-ignore lint/complexity/noExcessiveCognitiveComplexity: migrate\nasync function generateNotes(pluginConfig, context) {\n const { parserOpts, writerOpts } = await getChangelogConfig(pluginConfig, context)\n const { commits: commitsPassed, cwd, lastRelease, nextRelease, options } = context\n\n const { commit, issue, issuePrefixes, referenceActions } = configGithub\n\n const previousTag = lastRelease.gitTag || lastRelease.gitHead\n const currentTag = nextRelease.gitTag || nextRelease.gitHead\n const {\n commit: commitConfig,\n host: hostConfig,\n issue: issueConfig,\n linkCompare,\n linkReferences,\n } = pluginConfig\n\n const repositoryUrl = options.repositoryUrl.replace(/\\.git$/i, '')\n const [match, auth, host, path] =\n /^(?!.+:\\/\\/)(?:(?<auth>.*)@)?(?<host>.*?):(?<path>.*)$/.exec(repositoryUrl) ||\n []\n let { hostname, pathname, port, protocol } = new URL(\n match ? `ssh://${auth ? `${auth}@` : ''}${host}/${path}` : repositoryUrl,\n )\n port = protocol.includes('ssh') ? '' : port\n protocol = protocol && /http[^s]/.test(protocol) ? 'http' : 'https'\n\n const [, owner, repository] =\n /^\\/(?<owner>[^/]+)?\\/?(?<repository>.+)?$/.exec(pathname) ?? []\n\n const changelogContext = _merge(\n {\n commit,\n currentTag,\n host: format({ hostname, port, protocol }),\n issue,\n linkCompare: currentTag && previousTag,\n owner,\n packageData: (await readPackageUp({ cwd, normalize: false }))?.packageJson,\n previousTag,\n repository,\n version: nextRelease.version,\n },\n {\n commit: commitConfig,\n host: hostConfig,\n issue: issueConfig,\n linkCompare,\n linkReferences,\n },\n )\n\n const commitsParsed: any = []\n const parser = new CommitParser({\n issuePrefixes,\n referenceActions,\n ...parserOpts,\n })\n\n for (const _commit of filterRevertedCommitsSync(commitsPassed)) {\n const commit: any = _commit\n if (!commit?.message.trim()) {\n return false\n }\n const commitPassed = {\n ...commit,\n ...parser.parse(commit?.message),\n }\n commitsParsed.push(commitPassed)\n }\n let commits: any = []\n await commitsParsed.map(async (commitParsed) => {\n const commitProcessed: any = await processCommit(\n commitParsed,\n writerOpts.transform,\n context,\n )\n commits.push(commitProcessed)\n })\n\n /**\n * @hack why is something being brought back as undefined?\n */\n commits = await commits.filter((commit) => commit !== undefined)\n\n const _options = _merge({}, changelogContext, options, writerOpts)\n\n /**\n * @note(release-notes-generator) oddly, `date` is pulled from here\n * could we do this differently? what other fields\n * are pulled for info purposes?\n */\n const _chunk = commits[0]\n const keyCommit = processCommit(_chunk, writerOpts.transform, context) || _chunk\n const { context: _context } = await generate(_options, commits, context, keyCommit)\n\n const markdownContext = _merge({}, changelogContext, _context)\n\n return getMarkdown(markdownContext, commits)\n}\n\nexport { generateNotes }\n"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@jeromefitz/release-notes-generator",
|
|
3
|
-
"version": "3.1.14-canary.
|
|
3
|
+
"version": "3.1.14-canary.4",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "Custom Release Note Generator for Semantic Release.",
|
|
6
6
|
"repository": {
|
|
7
|
+
"directory": "packages/release-notes-generator",
|
|
7
8
|
"type": "git",
|
|
8
9
|
"url": "git+https://github.com/JeromeFitz/packages.git"
|
|
9
10
|
},
|
|
@@ -33,7 +34,7 @@
|
|
|
33
34
|
"semantic-release:dry": "semantic-release --dry-run"
|
|
34
35
|
},
|
|
35
36
|
"peerDependencies": {
|
|
36
|
-
"lodash": "^4.17.21"
|
|
37
|
+
"lodash-es": "^4.17.21"
|
|
37
38
|
},
|
|
38
39
|
"dependencies": {
|
|
39
40
|
"@octokit/rest": "22.0.1",
|
|
@@ -45,8 +46,8 @@
|
|
|
45
46
|
"semver": "7.7.4"
|
|
46
47
|
},
|
|
47
48
|
"devDependencies": {
|
|
48
|
-
"@types/lodash": "4.17.
|
|
49
|
-
"lodash": "4.17.23"
|
|
49
|
+
"@types/lodash-es": "4.17.12",
|
|
50
|
+
"lodash-es": "4.17.23"
|
|
50
51
|
},
|
|
51
52
|
"publishConfig": {
|
|
52
53
|
"registry": "https://registry.npmjs.org/",
|