{
  "version": 3,
  "sources": ["../../../../../src/packages/default-reporter/reporterForClient/reportUpdateCheck.ts"],
  "sourcesContent": ["import type { UpdateCheckLog } from '../../core-loggers/index.ts';\nimport {\n  detectIfCurrentPkgIsExecutable,\n  isExecutedByCorepack,\n} from '../../cli-meta/index.ts';\nimport boxen from '@zkochan/boxen';\nimport chalk from 'chalk';\nimport * as Rx from 'rxjs';\nimport { filter, map, take } from 'rxjs/operators';\nimport semver from 'semver';\n\nexport function reportUpdateCheck(\n  log$: Rx.Observable<UpdateCheckLog>,\n  opts: {\n    env: NodeJS.ProcessEnv;\n    process: NodeJS.Process;\n  }\n): Rx.Observable<Rx.Observable<{ msg: string }>> {\n  return log$.pipe(\n    take(1),\n    filter((log: UpdateCheckLog): boolean => {\n      return semver.gt(log.latestVersion, log.currentVersion);\n    }),\n    map((log: UpdateCheckLog): Rx.Observable<{ msg: string }> => {\n      const updateMessage = renderUpdateMessage({\n        currentPkgIsExecutable: detectIfCurrentPkgIsExecutable(opts.process),\n        latestVersion: log.latestVersion,\n        env: opts.env,\n      });\n\n      return Rx.of({\n        msg: boxen(\n          `\\\nUpdate available! ${chalk.red(log.currentVersion)} \u2192 ${chalk.green(log.latestVersion)}.\n${chalk.magenta('Changelog:')} https://github.com/pnpm/pnpm/releases/tag/v${log.latestVersion}\n${updateMessage}`,\n          {\n            padding: 1,\n            margin: 1,\n            align: 'center',\n            borderColor: 'yellow',\n            borderStyle: 'round',\n          }\n        ),\n      });\n    })\n  );\n}\n\ninterface UpdateMessageOptions {\n  currentPkgIsExecutable: boolean;\n  env: NodeJS.ProcessEnv;\n  latestVersion: string;\n}\n\nfunction renderUpdateMessage(opts: UpdateMessageOptions): string {\n  const updateCommand = renderUpdateCommand(opts);\n  return `Run \"${chalk.magenta(updateCommand)}\" to update.`;\n}\n\nfunction renderUpdateCommand(opts: UpdateMessageOptions): string {\n  if (isExecutedByCorepack(opts.env)) {\n    return `corepack use pnpm@${opts.latestVersion}`;\n  }\n\n  if (typeof opts.env.PNPM_HOME === 'string') {\n    return 'pnpm self-update';\n  }\n\n  const pkgName = opts.currentPkgIsExecutable ? '@pnpm/exe' : 'pnpm';\n  return `pnpm add -g ${pkgName}`;\n}\n"],
  "mappings": "AACA;AAAA,EACE;AAAA,EACA;AAAA,OACK;AACP,OAAO,WAAW;AAClB,OAAO,WAAW;AAClB,YAAY,QAAQ;AACpB,SAAS,QAAQ,KAAK,YAAY;AAClC,OAAO,YAAY;AAEZ,SAAS,kBACd,MACA,MAI+C;AAC/C,SAAO,KAAK;AAAA,IACV,KAAK,CAAC;AAAA,IACN,OAAO,CAAC,QAAiC;AACvC,aAAO,OAAO,GAAG,IAAI,eAAe,IAAI,cAAc;AAAA,IACxD,CAAC;AAAA,IACD,IAAI,CAAC,QAAwD;AAC3D,YAAM,gBAAgB,oBAAoB;AAAA,QACxC,wBAAwB,+BAA+B,KAAK,OAAO;AAAA,QACnE,eAAe,IAAI;AAAA,QACnB,KAAK,KAAK;AAAA,MACZ,CAAC;AAED,aAAO,GAAG,GAAG;AAAA,QACX,KAAK;AAAA,UACH,qBACU,MAAM,IAAI,IAAI,cAAc,CAAC,WAAM,MAAM,MAAM,IAAI,aAAa,CAAC;AAAA,EACnF,MAAM,QAAQ,YAAY,CAAC,+CAA+C,IAAI,aAAa;AAAA,EAC3F,aAAa;AAAA,UACL;AAAA,YACE,SAAS;AAAA,YACT,QAAQ;AAAA,YACR,OAAO;AAAA,YACP,aAAa;AAAA,YACb,aAAa;AAAA,UACf;AAAA,QACF;AAAA,MACF,CAAC;AAAA,IACH,CAAC;AAAA,EACH;AACF;AAQA,SAAS,oBAAoB,MAAoC;AAC/D,QAAM,gBAAgB,oBAAoB,IAAI;AAC9C,SAAO,QAAQ,MAAM,QAAQ,aAAa,CAAC;AAC7C;AAEA,SAAS,oBAAoB,MAAoC;AAC/D,MAAI,qBAAqB,KAAK,GAAG,GAAG;AAClC,WAAO,qBAAqB,KAAK,aAAa;AAAA,EAChD;AAEA,MAAI,OAAO,KAAK,IAAI,cAAc,UAAU;AAC1C,WAAO;AAAA,EACT;AAEA,QAAM,UAAU,KAAK,yBAAyB,cAAc;AAC5D,SAAO,eAAe,OAAO;AAC/B;",
  "names": []
}
