{"version":3,"sources":["jsdelivr-header.js","/npm/branch-diff@3.1.8/branch-diff.js"],"names":[],"mappings":"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","file":"/npm/branch-diff@3.1.8/branch-diff.js","sourceRoot":"","sourcesContent":["/**\n * Minified by jsDelivr using Terser v5.48.0.\n * Original file: /npm/branch-diff@3.1.8/branch-diff.js\n *\n * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files\n */\n","#!/usr/bin/env node\n\nimport fs from 'fs'\nimport { createRequire } from 'module'\nimport path from 'path'\nimport process from 'process'\nimport { pipeline } from 'stream/promises'\nimport { promisify } from 'util'\nimport commitStream from 'commit-stream'\nimport split2 from 'split2'\nimport pkgtoId from 'pkg-to-id'\nimport minimist from 'minimist'\nimport { isReleaseCommit } from 'changelog-maker/groups'\nimport { processCommits } from 'changelog-maker/process-commits'\nimport { collectCommitLabels } from 'changelog-maker/collect-commit-labels'\nimport gitexec from 'gitexec'\n\nconst pkgFile = path.join(process.cwd(), 'package.json')\nconst require = createRequire(import.meta.url)\nconst pkgData = fs.existsSync(pkgFile) ? require(pkgFile) : {}\nconst pkgId = pkgtoId(pkgData)\nconst refcmd = 'git rev-list --max-count=1 {{ref}}'\nconst commitdatecmd = '$(git show -s --format=%cd `{{refcmd}}`)'\nconst gitcmd = 'git log {{startCommit}}..{{branch}} --until=\"{{untilcmd}}\"'\nconst ghId = {\n  user: pkgId.user || 'nodejs',\n  repo: pkgId.name || 'node'\n}\n\nfunction replace (s, m) {\n  Object.keys(m).forEach(function (k) {\n    s = s.replace(new RegExp('\\\\{\\\\{' + k + '\\\\}\\\\}', 'g'), m[k])\n  })\n  return s\n}\n\nexport async function branchDiff (branch1, branch2, options) {\n  if (!branch1 || !branch2) {\n    throw new Error('Must supply two branch names to compare')\n  }\n\n  const repoPath = options.repoPath || process.cwd()\n  const commit = await findMergeBase(repoPath, branch1, branch2)\n  const branchCommits = await Promise.all([branch1, branch2].map(async (branch) => {\n    return collect(repoPath, branch, commit, branch === branch2 && options.endRef)\n  }))\n  return await diffCollected(options, branchCommits)\n}\n\nasync function findMergeBase (repoPath, branch1, branch2) {\n  const gitcmd = `git merge-base ${branch1} ${branch2}`\n  const data = await promisify(gitexec.execCollect)(repoPath, gitcmd)\n  return data.substr(0, 10)\n}\n\nfunction normalizeIfTrailingSlash (commit) {\n  if (commit.prUrl && commit.prUrl.at(-1) === '/') {\n    commit.prUrl = commit.prUrl.slice(0, -1)\n  }\n}\n\nasync function diffCollected (options, branchCommits) {\n  function isInList (commit) {\n    normalizeIfTrailingSlash(commit)\n    return branchCommits[0].some((c) => {\n      if (commit.sha === c.sha) { return true }\n      if (commit.summary === c.summary) {\n        normalizeIfTrailingSlash(c)\n        if (commit.prUrl && c.prUrl) {\n          return commit.prUrl === c.prUrl\n        } else if (commit.author.name === c.author.name &&\n                commit.author.email === c.author.email) {\n          if (process.stderr.isTTY) {\n            console.error(`Note: Commit fell back to author checking: \"${commit.summary}\" -`, commit.author)\n          }\n          return true\n        }\n      }\n      return false\n    })\n  }\n\n  let list = branchCommits[1].filter((commit) => !isInList(commit))\n\n  await collectCommitLabels(list)\n\n  if (options.excludeLabels.length > 0) {\n    list = list.filter((commit) => {\n      return !commit.labels || !commit.labels.some((label) => {\n        return options.excludeLabels.indexOf(label) >= 0\n      })\n    })\n  }\n\n  if (options.requireLabels.length > 0) {\n    list = list.filter((commit) => {\n      return commit.labels && commit.labels.some((label) => {\n        return options.requireLabels.indexOf(label) >= 0\n      })\n    })\n  }\n\n  return list\n}\n\nasync function collect (repoPath, branch, startCommit, endRef) {\n  const endrefcmd = endRef && replace(refcmd, { ref: endRef })\n  const untilcmd = endRef ? replace(commitdatecmd, { refcmd: endrefcmd }) : ''\n  const _gitcmd = replace(gitcmd, { branch, startCommit, untilcmd })\n\n  const commitList = []\n  await pipeline(\n    gitexec.exec(repoPath, _gitcmd),\n    split2(),\n    commitStream(ghId.user, ghId.repo),\n    async function * (source) {\n      for await (const commit of source) {\n        commitList.push(commit)\n      }\n    })\n  return commitList\n}\n\nasync function main () {\n  const minimistConfig = {\n    boolean: ['version', 'group', 'patch-only', 'simple', 'filter-release', 'reverse']\n  }\n  const argv = minimist(process.argv.slice(2), minimistConfig)\n  const branch1 = argv._[0]\n  const branch2 = argv._[1]\n  const group = argv.group || argv.g\n  const endRef = argv['end-ref']\n  let excludeLabels = []\n  let requireLabels = []\n\n  if (argv.version || argv.v) {\n    return console.log(`v ${require('./package.json').version}`)\n  }\n\n  if (argv['patch-only']) {\n    excludeLabels = ['semver-minor', 'semver-major']\n  }\n\n  if (argv['exclude-label']) {\n    if (!Array.isArray(argv['exclude-label'])) {\n      argv['exclude-label'] = argv['exclude-label'].split(',')\n    }\n    excludeLabels = excludeLabels.concat(argv['exclude-label'])\n  }\n\n  if (argv['require-label']) {\n    if (!Array.isArray(argv['require-label'])) {\n      argv['require-label'] = argv['require-label'].split(',')\n    }\n    requireLabels = requireLabels.concat(argv['require-label'])\n  }\n\n  if (argv.user) {\n    ghId.user = argv.user\n  }\n\n  if (argv.repo) {\n    ghId.repo = argv.repo\n  }\n\n  const options = {\n    group,\n    excludeLabels,\n    requireLabels,\n    endRef\n  }\n\n  let list = await branchDiff(branch1, branch2, options)\n  if (argv['filter-release']) {\n    list = list.filter((commit) => !isReleaseCommit(commit.summary))\n  }\n\n  await processCommits(argv, ghId, list)\n}\n\nmain().catch((err) => {\n  console.error(err)\n  process.exit(1)\n})\n"]}