{"version":3,"file":"sake-outdated.mjs","sources":["../src/npmfix.coffee","../src/replacements.coffee","../src/utils.coffee","../src/update.coffee","../src/index.coffee"],"sourcesContent":["import fs from 'fs'\nimport {join, dirname} from 'path'\n\nexport default ->\n  new Promise (resolve, reject) ->\n    try\n      require 'npm'\n      resolve(true)\n    catch err\n      if /log.gauge.isEnabled/.test err.stack.toString()\n        console.log 'Attempting to fix npm...'\n        npmPath = join (dirname require.resolve 'npm'), '../'\n        npmLog  = join npmPath, 'node_modules', 'npmlog'\n\n        fs.exists npmLog, (exists) ->\n          if exists\n            cmd = \"rm -rf #{npmLog}\"\n            console.log cmd\n            exec cmd\n              .then  resolve\n              .catch reject\n          else\n            reject 'Unable to apply npmfix'\n","export default [\n  from: 'Run ncu with -u to upgrade package.json'\n  to:   \"Run 'sake outdated:update' to update your package.json\"\n,\n  from: 'The following dependencies are satisfied by their declared version range, but the installed versions are behind. You can install the latest versions without modifying your package file by using npm update. If you want to update the dependencies in your package file anyway, run ncu -a.'\n  to:   \"\"\"\n        The following dependencies are satisfied by their declared version ranges. Run\n        'sake outdated:all' to update your package.json to the latest versions.\n        \"\"\"\n,\n  from: 'The following dependency is satisfied by its declared version range, but the installed version is behind. You can install the latest version without modifying your package file by using npm update. If you want to update the dependency in your package file anyway, run ncu -a.'\n  to:   \"\"\"\n        The following dependency is satisfied by its declared version range. Run 'sake\n        outdated:all' to update your package.json to the latest version instead.\n        \"\"\"\n,\n  from: 'All dependencies match the latest package versions :)'\n  to:   'All dependencies up to date'\n,\n  from: 'Upgraded /'\n  to:   '\\nUpdated /'\n]\n","import replacements from './replacements'\n\n# Log helper to replace messages with our defaults\nexport log = (stdout, stderr) ->\n  stdout = stdout.trim()\n  stderr = stderr.trim()\n\n  for {from, to} in replacements\n    stdout = stdout.replace from, to\n\n  console.log   stdout if stdout\n  console.error stderr if stderr\n\n# Checks whether the local git directory exists\nexport gitExists = ->\n  new Promise (resolve, reject) ->\n    exec.quiet 'git rev-parse --git-dir'\n      .then ({stderr}) ->\n        if /fatal: Not a git repository/.test stderr\n          resolve false\n        else\n          resolve true\n\n# Checks whether the local git working directory is clean or not\nexport gitOk = ->\n  new Promise (resolve, reject) ->\n    gitExists().then (exists) ->\n      return resolve true unless exists\n\n      exec.quiet 'git status --porcelain'\n        .then ({stderr, stdout}) ->\n          if stderr or stdout\n            console.error stdout+stderr\n            reject new Error 'Git working directory not clean'\n          else\n            resolve true\n\n# Split stdout lines, skipping header/footer text\nexport splitLines = (stdout) ->\n  lines = stdout.trim().split '\\n'\n\n  # Trim header/footer\n  lines = lines.slice 1, -1\n\n  # Clear any trailing newlines\n  lines = lines.join('\\n').trim().split '\\n'\n\n  # Normalize spacing\n  for line, i in lines\n    lines[i] = '  ' + line.trim()\n\n  # Trim satisfied but behind message\n  for line, i in lines\n    if /The following dependenc/.test line\n      return lines.slice 0, i\n\n  lines\n\n# Reads updated deps from output of command\nexport parseDeps = (lines) ->\n  for dep in lines\n    dep = (dep.trim().split ' ').shift()\n    continue if dep == ''\n    dep\n\n# Check stdout to see if we need to commit changes\nexport needsUpdate = (stdout) ->\n  /Upgraded .*package\\.json/.test stdout\n\n# Strip ncu -a message\nexport stripNcu = (stdout) ->\n  messages = [\n    '\\nThe following dependencies are satisfied by their declared version range, but the installed versions are behind. You can install the latest versions without modifying your package file by using npm update. If you want to update the dependencies in your package file anyway, run ncu -a.\\n'\n    '\\nThe following dependency is satisfied by its declared version range, but the installed version is behind. You can install the latest version without modifying your package file by using npm update. If you want to update the dependency in your package file anyway, run ncu -a.\\n'\n  ]\n  for msg in messages\n    stdout = stdout.replace msg, ''\n  stdout\n","import fs  from 'fs'\nimport tmp from 'tmp'\n\nimport {gitExists, parseDeps, splitLines} from './utils'\n\nwrite = (data) ->\n  new Promise (resolve, reject) ->\n    tmp.file (err, path, fd) ->\n      return reject err if err?\n\n      fs.writeFile fd, data, (err) ->\n        if err?\n          reject err\n        else\n          resolve path\n\n# Commit changes + run npm or yarn update\nexport default (stdout) ->\n  new Promise (resolve, reject) ->\n    gitExists().then (exists) ->\n      if exists\n        lines   = splitLines stdout\n        deps    = parseDeps lines\n        message = \"\"\"\n          Update #{deps.join ', '}\n\n          #{lines.join '\\n'}\n          \"\"\"\n\n        path = null\n\n        cmds = [\n          'echo'\n          'git add .'\n          -> (write message).then (v) -> path = v\n          -> \"git commit -F #{path}\"\n        ]\n\n      else\n        cmds = []\n\n      if tasks.has 'yarn:upgrade'\n        # Ensure yarn runs first so yarn.lock file is committed\n        cmds.unshift 'yarn upgrade'\n        cmds.unshift 'echo'\n      else\n        # Otherwise run npm update last\n        cmds.push 'echo'\n        cmds.push 'npm update'\n\n      exec.quiet cmds\n        .then (res) ->\n          # Execute adds an extra newline, so we trim that here but preserve\n          # stderr (in case it exists)\n          console.log '\\n' + res.stdout.trim()\n          console.log res.stderr if res.stderr != ''\n          resolve true\n        .catch reject\n","import path from 'path'\n\nimport npmFix from './npmfix'\nimport update from './update'\nimport {gitOk, log, needsUpdate, stripNcu} from './utils'\n\n\nexport default (opts = {}) ->\n  opts.commit ?= true\n\n  if Array.isArray opts.ignore\n    opts.ignore = opts.ignore.join ','\n  else\n    opts.ignore ?= null\n\n  # Find path to node-check-updates binary\n  # TODO: Figure out why npm does not correctly symlink it's binary\n  ncuPath = path.dirname (require.resolve 'npm-check-updates-lite')\n  ncuBin  = path.join ncuPath, '../bin/ncu'\n  ncu     = if opts.ignore? then \"#{ncuBin} -x #{opts.ignore}\" else ncuBin\n\n  task 'outdated', 'show outdated packages', ->\n    return unless yield npmFix()\n\n    {stdout, stderr, status} = yield exec.quiet ncu\n    log stdout, stderr\n    process.exit status if status != 0\n\n  task 'outdated:update', 'update outdated packages', ->\n    return unless yield npmFix()\n    return unless yield gitOk()\n\n    {stdout, stderr, status} = yield exec.quiet ncu + ' -u'\n    log stdout, stderr\n    process.exit status if status != 0\n\n    if needsUpdate stdout\n      yield update stdout if opts.commit\n\n  task 'outdated:all', 'update all outdated packages', ->\n    return unless yield npmFix()\n    return unless yield gitOk()\n\n    {stdout, stderr, status} = yield exec.quiet ncu + ' -u -a'\n\n    # ncu erroneously logs message to use -a even when you use -a, strip that\n    stdout = stripNcu stdout\n\n    log stdout, stderr\n    process.exit status if status != 0\n\n    if needsUpdate stdout\n      yield update stdout if opts.commit\n"],"names":["path"],"mappings":"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"}