{"version":3,"sources":["jsdelivr-header.js","/npm/npm-merge-driver@2.3.6/index.js"],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;ACLA,aAEA,MAAM,GAAK,QAAQ,iBACb,GAAK,QAAQ,MACb,OAAS,QAAQ,UACjB,KAAO,QAAQ,QACf,MAAQ,QAAQ,SAMtB,SAAS,YACP,OAAO,MACJ,QACC,UACA,yDACF,CACE,OAAQ,CACN,KAAM,UACN,SAAS,EACT,YACI,4GAEN,OAAQ,CACN,KAAM,UACN,SAAS,EACT,YAAa,gDAEf,OAAQ,CACN,KAAM,SACN,QAAS,yCACT,YACI,4DAEN,cAAe,CACb,KAAM,SACN,QAAS,mBACT,YACI,iEAEN,MAAO,CACL,YAAa,2CACb,KAAM,QACN,QAAS,CAAC,sBAAuB,uBAGnC,SAED,QACC,YACA,wCACF,CACE,OAAQ,CACN,KAAM,UACN,SAAS,EACT,YAAa,gDAEf,cAAe,CACb,KAAM,SACN,QAAS,mBACT,YACI,kEAGN,WAED,QACC,4BACA,8DACF,CACE,QAAS,CACP,MAAO,IACP,YAAa,2CACb,KAAM,SACN,QAAS,mCAEX,OAAQ,CACN,KAAM,UACN,SAAS,EACT,YACI,0HAGN,OAED,QAAQ,QAAQ,kBAAkB,SAClC,MAAM,UAAW,KACjB,OACA,MAAM,OAAQ,KACd,SAAS,uDACT,gBAAgB,IACrB,CAEA,SAAS,QAAS,GAChB,MAAM,EAAW,eAAe,GAAM,QACpC,UACA,QAAQ,IAAI,KAAO,KAEf,EAAO,EAAK,OAAS,WAAa,UACxC,GAAG,SACD,cAAc,YAAe,EAAK,wDAEpC,GAAG,SACD,cAAc,YAAe,EAAK,uBAAuB,EAAK,SAAU,EAAK,OAEzE,GADA,mBAGN,OAAO,KAAK,KAAK,QAAQ,IACzB,IAAI,EAAe,GACnB,IACE,MAAM,EAAK,IAAI,OAAO,oBAAoB,EAAK,eAC/C,EAAe,GACZ,aAAa,EAAU,QACvB,MAAM,SACN,QAAO,IAAS,EAAK,MAAM,KAC3B,KAAK,KACV,CAAE,MAAO,GAAI,CACT,IAAiB,EAAa,MAAM,cACtC,EAAe,MAEjB,GAAgB,EAAK,MAClB,KAAI,GAAK,GAAG,WAAW,EAAK,eAC5B,KAAK,MACR,GAAgB,KAChB,GAAG,cAAc,EAAU,GAC3B,QAAQ,MACN,oBACA,EAAK,WACL,2BACA,EAAO,IACP,MACA,EAEJ,CAEA,SAAS,UAAW,GAClB,MAAM,EAAW,eAAe,GAC1B,EAAO,EAAK,OAAS,WAAa,UACxC,IACE,GAAG,SACD,cAAc,6BAAgC,EAAK,cAEvD,CAAE,MAAO,GACP,IAAK,EAAE,QAAQ,MAAM,qBACnB,MAAM,CAEV,CACA,IAAI,EACJ,IACE,EAAY,GAAG,aAAa,EAAU,QAAQ,MAAM,KACtD,CAAE,MAAO,GAAI,CACb,GAAI,EAAW,CACb,IAAI,EAAW,GACf,EAAU,SAAQ,IAChB,MAAM,EAAQ,EAAK,MAAM,iBACpB,GAAS,EAAM,GAAG,SAAW,EAAK,aACrC,GAAY,EAAO,KACrB,IAEF,GAAG,cAAc,EAAU,EAC7B,CACF,CAEA,SAAS,eAAgB,GACvB,IAAI,EACJ,GAAI,EAAK,OAAQ,CACf,IACE,EAAW,GACR,SAAS,2CACT,SAAS,QACT,MACL,CAAE,MAAO,GAAI,CACR,IAED,EADE,QAAQ,IAAI,gBACH,KAAK,KAAK,QAAQ,IAAI,gBAAiB,MAAO,cAE9C,KAAK,KAAK,QAAQ,IAAI,KAAM,UAAW,MAAO,cAG/D,KAAO,CACL,MAAM,EAAS,GACZ,SAAS,0BAA2B,CACnC,SAAU,SAEX,OACH,EAAW,KAAK,KAAK,EAAQ,OAAQ,aACvC,CACA,OAAO,CACT,CAEA,SAAS,MAAO,GACd,QAAQ,MAAM,4BAA6B,EAAK,OAChD,MAAM,EAAM,GAAG,UACb,MACA,CAAC,aAAc,KAAM,EAAK,MAAO,EAAK,MAAO,EAAK,OAClD,CACE,MAAO,CAAC,EAAG,OAAQ,KAGvB,GAAG,cAAc,EAAK,MAAO,EAAI,QACjC,IACE,GAAG,SAAS,EAAK,QAAS,CACxB,MAAO,UACP,IAAK,KAAK,QAAQ,EAAK,QAE3B,CAAE,MAAO,GACP,IAAK,EAAK,OACR,MAAM,EAER,GAAG,cAAc,EAAK,MAAO,GAAG,aAAa,EAAK,QAClD,QAAQ,MACN,iFAEF,QAAQ,MAAM,oDACd,GAAG,SAAS,EAAK,QAAS,CACxB,MAAO,UACP,IAAK,KAAK,QAAQ,EAAK,QAE3B,CACA,GAAG,cAAc,EAAK,MAAO,GAAG,aAAa,EAAK,QAClD,QAAQ,MAAM,oBAAqB,EAAK,MAAO,uBACjD,CAtNI,QAAQ,OAAS,QACnB","file":"/npm/npm-merge-driver@2.3.6/index.js","sourceRoot":"","sourcesContent":["/**\n * Minified by jsDelivr using Terser v5.39.0.\n * Original file: /npm/npm-merge-driver@2.3.6/index.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'use strict'\n\nconst cp = require('child_process')\nconst fs = require('fs')\nconst mkdirp = require('mkdirp')\nconst path = require('path')\nconst yargs = require('yargs')\n\nif (require.main === module) {\n  parseArgs()\n}\n\nfunction parseArgs () {\n  return yargs\n    .command(\n      'install',\n      'Set up the merge driver in the current git repository.',\n    {\n      legacy: {\n        type: 'boolean',\n        default: true,\n        description:\n            'when the merge driver errors, it will retry the command after resolving the merge conflict with --theirs'\n      },\n      global: {\n        type: 'boolean',\n        default: false,\n        description: 'install to your user-level git configuration'\n      },\n      driver: {\n        type: 'string',\n        default: 'npx npm-merge-driver merge %A %O %B %P',\n        description:\n            'string to install as the driver in the git configuration'\n      },\n      'driver-name': {\n        type: 'string',\n        default: 'npm-merge-driver',\n        description:\n            'String to use as the merge driver name in your configuration.'\n      },\n      files: {\n        description: 'Filenames that will trigger this driver.',\n        type: 'array',\n        default: ['npm-shrinkwrap.json', 'package-lock.json']\n      }\n    },\n      install\n    )\n    .command(\n      'uninstall',\n      'Remove a previously configured driver',\n    {\n      global: {\n        type: 'boolean',\n        default: false,\n        description: 'install to your user-level git configuration'\n      },\n      'driver-name': {\n        type: 'string',\n        default: 'npm-merge-driver',\n        description:\n            'String to use as the merge driver name in your configuration.'\n      }\n    },\n      uninstall\n    )\n    .command(\n      'merge <%A> <%O> <%B> <%P>',\n      'Check for lockfile conflicts and correct them if necessary.',\n    {\n      command: {\n        alias: 'c',\n        description: 'Command to execute to resolve conflicts.',\n        type: 'string',\n        default: 'npm install --package-lock-only'\n      },\n      legacy: {\n        type: 'boolean',\n        default: true,\n        description:\n            'If <command> errors, it will be re-run after checking out the --theirs version of the file, with no granular merging.'\n      }\n    },\n      merge\n    )\n    .version(require('./package.json').version)\n    .alias('version', 'v')\n    .help()\n    .alias('help', 'h')\n    .epilogue('For the full documentation, see npm-merge-driver(1)')\n    .demandCommand().argv\n}\n\nfunction install (argv) {\n  const attrFile = findAttributes(argv).replace(\n    /^\\s*~\\//,\n    process.env.HOME + '/'\n  )\n  const opts = argv.global ? '--global' : '--local'\n  cp.execSync(\n    `git config ${opts} merge.\"${argv.driverName}\".name \"automatically merge npm lockfiles\"`\n  )\n  cp.execSync(\n    `git config ${opts} merge.\"${argv.driverName}\".driver \"${argv.driver}${!argv.legacy\n      ? ' --no-legacy'\n      : ''}\"`\n  )\n  mkdirp.sync(path.dirname(attrFile))\n  let attrContents = ''\n  try {\n    const RE = new RegExp(`.* merge\\\\s*=\\\\s*${argv.driverName}$`)\n    attrContents = fs\n      .readFileSync(attrFile, 'utf8')\n      .split(/\\r?\\n/)\n      .filter(line => !line.match(RE))\n      .join('\\n')\n  } catch (e) {}\n  if (attrContents && !attrContents.match(/[\\n\\r]$/g)) {\n    attrContents = '\\n'\n  }\n  attrContents += argv.files\n    .map(f => `${f} merge=${argv.driverName}`)\n    .join('\\n')\n  attrContents += '\\n'\n  fs.writeFileSync(attrFile, attrContents)\n  console.error(\n    'npm-merge-driver:',\n    argv.driverName,\n    'installed to `git config',\n    opts + '`',\n    'and',\n    attrFile\n  )\n}\n\nfunction uninstall (argv) {\n  const attrFile = findAttributes(argv)\n  const opts = argv.global ? '--global' : '--local'\n  try {\n    cp.execSync(\n      `git config ${opts} --remove-section merge.\"${argv.driverName}\"`\n    )\n  } catch (e) {\n    if (!e.message.match(/no such section/gi)) {\n      throw e\n    }\n  }\n  let currAttrs\n  try {\n    currAttrs = fs.readFileSync(attrFile, 'utf8').split('\\n')\n  } catch (e) {}\n  if (currAttrs) {\n    let newAttrs = ''\n    currAttrs.forEach(attr => {\n      const match = attr.match(/ merge=(.*)$/i)\n      if (!match || match[1].trim() !== argv.driverName) {\n        newAttrs += attr + '\\n'\n      }\n    })\n    fs.writeFileSync(attrFile, newAttrs)\n  }\n}\n\nfunction findAttributes (argv) {\n  let attrFile\n  if (argv.global) {\n    try {\n      attrFile = cp\n        .execSync(`git config --global core.attributesfile`)\n        .toString('utf8')\n        .trim()\n    } catch (e) {}\n    if (!attrFile) {\n      if (process.env.XDG_CONFIG_HOME) {\n        attrFile = path.join(process.env.XDG_CONFIG_HOME, 'git', 'attributes')\n      } else {\n        attrFile = path.join(process.env.HOME, '.config', 'git', 'attributes')\n      }\n    }\n  } else {\n    const gitDir = cp\n      .execSync(`git rev-parse --git-dir`, {\n        encoding: 'utf8'\n      })\n      .trim()\n    attrFile = path.join(gitDir, 'info', 'attributes')\n  }\n  return attrFile\n}\n\nfunction merge (argv) {\n  console.error('npm-merge-driver: merging', argv['%P'])\n  const ret = cp.spawnSync(\n    'git',\n    ['merge-file', '-p', argv['%A'], argv['%O'], argv['%B']],\n    {\n      stdio: [0, 'pipe', 2]\n    }\n  )\n  fs.writeFileSync(argv['%P'], ret.stdout)\n  try {\n    cp.execSync(argv.command, {\n      stdio: 'inherit',\n      cwd: path.dirname(argv['%P'])\n    })\n  } catch (e) {\n    if (!argv.legacy) {\n      throw e\n    }\n    fs.writeFileSync(argv['%P'], fs.readFileSync(argv['%B']))\n    console.error(\n      'npm-merge-driver: --legacy enabled. Checking out --theirs and retrying merge.'\n    )\n    console.error('npm-merge-driver: !!!SOME CHANGES MAY BE LOST!!!')\n    cp.execSync(argv.command, {\n      stdio: 'inherit',\n      cwd: path.dirname(argv['%P'])\n    })\n  }\n  fs.writeFileSync(argv['%A'], fs.readFileSync(argv['%P']))\n  console.error('npm-merge-driver:', argv['%P'], 'successfully merged.')\n}\n"]}