{"version":3,"sources":["/Users/kevin/Dev/OpenSource/node-version/node-exec-path/src/satisfiesSemverSync.ts"],"sourcesContent":["import fs from 'fs';\nimport path from 'path';\nimport url from 'url';\nimport envPathKey from 'env-path-key';\nimport semver from 'semver';\n\nconst isWindows = process.platform === 'win32' || /^(msys|cygwin)$/.test(process.env.OSTYPE);\nconst pathDelimiter = path.delimiter ? path.delimiter : isWindows ? ';' : ':';\nconst NODE = isWindows ? 'node.exe' : 'node';\n\nconst existsSync = (test) => {\n  try {\n    (fs.accessSync || fs.statSync)(test);\n    return true;\n  } catch (_) {\n    return false;\n  }\n};\n\nconst __dirname = path.dirname(typeof __filename === 'undefined' ? url.fileURLToPath(import.meta.url) : __filename);\nconst processVersion = path.join(__dirname, 'workers', 'processVersion.cjs');\n\nexport type satisfiesSemverSyncOptions = {\n  env?: object;\n};\n\nlet functionExec = null; // break dependencies\nexport default function satisfiesSemverSync(versionString: string, options: satisfiesSemverSyncOptions = {}): string | null {\n  if (!functionExec) functionExec = require('function-exec-sync'); // break dependencies\n\n  const env = options.env || process.env;\n  const pathKey = envPathKey(env);\n  const envPaths = env[pathKey].split(pathDelimiter);\n\n  for (let i = 0; i < envPaths.length; i++) {\n    const envPath = envPaths[i];\n    const execPath = path.join(envPath, NODE);\n    if (!existsSync(execPath)) continue;\n    const version = functionExec({ execPath }, processVersion);\n    if (semver.satisfies(version, versionString)) return execPath;\n  }\n\n  return null;\n}\n"],"names":["satisfiesSemverSync","isWindows","process","platform","test","env","OSTYPE","pathDelimiter","path","delimiter","NODE","existsSync","fs","accessSync","statSync","_","__dirname","dirname","__filename","url","fileURLToPath","processVersion","join","functionExec","versionString","options","require","pathKey","envPathKey","envPaths","split","i","length","envPath","execPath","version","semver","satisfies"],"mappings":";;;;+BA2BA;;;eAAwBA;;;yDA3BT;2DACE;0DACD;iEACO;6DACJ;;;;;;AAEnB,IAAMC,YAAYC,QAAQC,QAAQ,KAAK,WAAW,kBAAkBC,IAAI,CAACF,QAAQG,GAAG,CAACC,MAAM;AAC3F,IAAMC,gBAAgBC,aAAI,CAACC,SAAS,GAAGD,aAAI,CAACC,SAAS,GAAGR,YAAY,MAAM;AAC1E,IAAMS,OAAOT,YAAY,aAAa;AAEtC,IAAMU,aAAa,SAACP;IAClB,IAAI;QACDQ,CAAAA,WAAE,CAACC,UAAU,IAAID,WAAE,CAACE,QAAQ,AAAD,EAAGV;QAC/B,OAAO;IACT,EAAE,OAAOW,GAAG;QACV,OAAO;IACT;AACF;AAEA,IAAMC,YAAYR,aAAI,CAACS,OAAO,CAAC,OAAOC,eAAe,cAAcC,YAAG,CAACC,aAAa,CAAC,uDAAmBF;AACxG,IAAMG,iBAAiBb,aAAI,CAACc,IAAI,CAACN,WAAW,WAAW;AAMvD,IAAIO,eAAe,MAAM,qBAAqB;AAC/B,SAASvB,oBAAoBwB,aAAqB;QAAEC,UAAAA,iEAAsC,CAAC;IACxG,IAAI,CAACF,cAAcA,eAAeG,QAAQ,uBAAuB,qBAAqB;IAEtF,IAAMrB,MAAMoB,QAAQpB,GAAG,IAAIH,QAAQG,GAAG;IACtC,IAAMsB,UAAUC,IAAAA,mBAAU,EAACvB;IAC3B,IAAMwB,WAAWxB,GAAG,CAACsB,QAAQ,CAACG,KAAK,CAACvB;IAEpC,IAAK,IAAIwB,IAAI,GAAGA,IAAIF,SAASG,MAAM,EAAED,IAAK;QACxC,IAAME,UAAUJ,QAAQ,CAACE,EAAE;QAC3B,IAAMG,WAAW1B,aAAI,CAACc,IAAI,CAACW,SAASvB;QACpC,IAAI,CAACC,WAAWuB,WAAW;QAC3B,IAAMC,UAAUZ,aAAa;YAAEW,UAAAA;QAAS,GAAGb;QAC3C,IAAIe,eAAM,CAACC,SAAS,CAACF,SAASX,gBAAgB,OAAOU;IACvD;IAEA,OAAO;AACT"}