{"version":3,"sources":["meteor://💻app/packages/tmeasday:check-npm-versions/check-npm-versions.js"],"names":["module1","module","export","checkNpmVersions","semver","link","default","v","compatibleVersionIsInstalled","name","range","installedVersion","require","version","satisfies","e","message","toString","match","packages","packageName","failures","Object","keys","forEach","failure","length","errors","installed","requirement","push","qualifier","console","warn","join"],"mappings":";;;;;;;;;;;;;;;;;;;AAAA,MAAMA,OAAO,GAACC,MAAd;AAAqBD,OAAO,CAACE,MAAR,CAAe;AAACC,kBAAgB,EAAC,MAAIA;AAAtB,CAAf;AAAwD,IAAIC,MAAJ;AAAWJ,OAAO,CAACK,IAAR,CAAa,QAAb,EAAsB;AAACC,SAAO,CAACC,CAAD,EAAG;AAACH,UAAM,GAACG,CAAP;AAAS;;AAArB,CAAtB,EAA6C,CAA7C;;AAExF;AACA;AACA;AACA;AACA,MAAMC,4BAA4B,GAAG,CAACC,IAAD,EAAOC,KAAP,KAAiB;AACpD,MAAI;AACF,UAAMC,gBAAgB,GAAGC,OAAO,CAAE,GAAEH,IAAK,eAAT,CAAP,CAAgCI,OAAzD;;AACA,QAAIT,MAAM,CAACU,SAAP,CAAiBH,gBAAjB,EAAmCD,KAAnC,CAAJ,EAA+C;AAC7C,aAAO,IAAP;AACD,KAFD,MAEO;AACL,aAAOC,gBAAP;AACD;AACF,GAPD,CAOE,OAAOI,CAAP,EAAU;AACV;AACA,UAAMC,OAAO,GAAGD,CAAC,CAACE,QAAF,EAAhB,CAFU,CAGV;;AACA,QAAID,OAAO,CAACE,KAAR,CAAc,oBAAd,KAAuCF,OAAO,CAACE,KAAR,CAAc,uBAAd,CAA3C,EAAmF;AACjF,aAAO,KAAP;AACD,KAFD,MAEO;AACL,YAAMH,CAAN;AACD;AACF;AACF,CAlBD;;AAoBO,MAAMZ,gBAAgB,GAAG,CAACgB,QAAD,EAAWC,WAAX,KAA2B;AACzD,QAAMC,QAAQ,GAAG,EAAjB;AAEAC,QAAM,CAACC,IAAP,CAAYJ,QAAZ,EAAsBK,OAAtB,CAA+Bf,IAAD,IAAU;AACtC,UAAMC,KAAK,GAAGS,QAAQ,CAACV,IAAD,CAAtB;AACA,UAAMgB,OAAO,GAAGjB,4BAA4B,CAACC,IAAD,EAAOC,KAAP,CAA5C;;AAEA,QAAIe,OAAO,KAAK,IAAhB,EAAsB;AACpBJ,cAAQ,CAACZ,IAAD,CAAR,GAAiBgB,OAAjB;AACD;AACF,GAPD;;AASA,MAAIH,MAAM,CAACC,IAAP,CAAYF,QAAZ,EAAsBK,MAAtB,KAAiC,CAArC,EAAwC;AACtC,WAAO,IAAP;AACD;;AAED,QAAMC,MAAM,GAAG,EAAf;AAEAL,QAAM,CAACC,IAAP,CAAYF,QAAZ,EAAsBG,OAAtB,CAA+Bf,IAAD,IAAU;AACtC,UAAMmB,SAAS,GAAGP,QAAQ,CAACZ,IAAD,CAA1B;AACA,UAAMoB,WAAW,GAAI,GAAEpB,IAAK,IAAGU,QAAQ,CAACV,IAAD,CAAO,EAA9C;;AAEA,QAAImB,SAAJ,EAAe;AACbD,YAAM,CAACG,IAAP,CAAa,MAAKrB,IAAK,IAAGmB,SAAU,eAAcC,WAAY,SAA9D;AACD,KAFD,MAEO;AACLF,YAAM,CAACG,IAAP,CAAa,MAAKrB,IAAK,IAAGU,QAAQ,CAACV,IAAD,CAAO,iBAAzC;AACD;AACF,GATD;AAWA,QAAMsB,SAAS,GAAGX,WAAW,GAAI,QAAOA,WAAY,IAAvB,GAA6B,EAA1D;AACAY,SAAO,CAACC,IAAR,CAAc,kCAAiCF,SAAU;EACzDJ,MAAM,CAACO,IAAP,CAAY,IAAZ,CAAkB;;;;CADlB;AAMD,CApCM,C","file":"/packages/tmeasday_check-npm-versions.js","sourcesContent":["import semver from 'semver';\n\n// Returns:\n// - true if a version of the package in the range is installed\n// - false if no version is installed\n// - version# if incompatible version is installed\nconst compatibleVersionIsInstalled = (name, range) => {\n try {\n const installedVersion = require(`${name}/package.json`).version;\n if (semver.satisfies(installedVersion, range)) {\n return true;\n } else {\n return installedVersion;\n }\n } catch (e) {\n // XXX add something to the tool to make this more reliable\n const message = e.toString();\n // One message comes out of the install npm package the other from npm directly\n if (message.match(\"Cannot find module\") || message.match(\"Can't find npm module\")) {\n return false;\n } else {\n throw e;\n }\n }\n};\n\nexport const checkNpmVersions = (packages, packageName) => {\n const failures = {};\n\n Object.keys(packages).forEach((name) => {\n const range = packages[name];\n const failure = compatibleVersionIsInstalled(name, range);\n\n if (failure !== true) {\n failures[name] = failure;\n }\n });\n\n if (Object.keys(failures).length === 0) {\n return true;\n }\n\n const errors = [];\n\n Object.keys(failures).forEach((name) => {\n const installed = failures[name];\n const requirement = `${name}@${packages[name]}`;\n\n if (installed) {\n errors.push(` - ${name}@${installed} installed, ${requirement} needed`);\n } else {\n errors.push(` - ${name}@${packages[name]} not installed.`);\n }\n });\n\n const qualifier = packageName ? `(for ${packageName}) ` : '';\n console.warn(`WARNING: npm peer requirements ${qualifier}not installed:\n${errors.join('\\n')}\n\nRead more about installing npm peer dependencies:\n http://guide.meteor.com/using-packages.html#peer-npm-dependencies\n`);\n};\n"]}