{"version":3,"sources":["meteor://💻app/packages/tmeasday:check-npm-versions/check-npm-versions.js"],"names":["module1","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":";;;;;;;;;;;;;;;;;;;AAAAA,SAAO,CAACC,MAAR,CAAe;AAACC,oBAAgB,EAAC,MAAIA;AAAtB,GAAf;AAAwD,MAAIC,MAAJ;AAAWH,SAAO,CAACI,IAAR,CAAa,QAAb,EAAsB;AAACC,WAAO,CAACC,CAAD,EAAG;AAACH,YAAM,GAACG,CAAP;AAAS;;AAArB,GAAtB,EAA6C,CAA7C;;AAEnE;AACA;AACA;AACA;AACA,QAAMC,4BAA4B,GAAG,CAACC,IAAD,EAAOC,KAAP,KAAiB;AACpD,QAAI;AACF,YAAMC,gBAAgB,GAAGC,OAAO,WAAIH,IAAJ,mBAAP,CAAgCI,OAAzD;;AACA,UAAIT,MAAM,CAACU,SAAP,CAAiBH,gBAAjB,EAAmCD,KAAnC,CAAJ,EAA+C;AAC7C,eAAO,IAAP;AACD,OAFD,MAEO;AACL,eAAOC,gBAAP;AACD;AACF,KAPD,CAOE,OAAOI,CAAP,EAAU;AACV;AACA,YAAMC,OAAO,GAAGD,CAAC,CAACE,QAAF,EAAhB,CAFU,CAGV;;AACA,UAAID,OAAO,CAACE,KAAR,CAAc,oBAAd,KAAuCF,OAAO,CAACE,KAAR,CAAc,uBAAd,CAA3C,EAAmF;AACjF,eAAO,KAAP;AACD,OAFD,MAEO;AACL,cAAMH,CAAN;AACD;AACF;AACF,GAlBD;;AAoBO,QAAMZ,gBAAgB,GAAG,CAACgB,QAAD,EAAWC,WAAX,KAA2B;AACzD,UAAMC,QAAQ,GAAG,EAAjB;AAEAC,UAAM,CAACC,IAAP,CAAYJ,QAAZ,EAAsBK,OAAtB,CAA+Bf,IAAD,IAAU;AACtC,YAAMC,KAAK,GAAGS,QAAQ,CAACV,IAAD,CAAtB;AACA,YAAMgB,OAAO,GAAGjB,4BAA4B,CAACC,IAAD,EAAOC,KAAP,CAA5C;;AAEA,UAAIe,OAAO,KAAK,IAAhB,EAAsB;AACpBJ,gBAAQ,CAACZ,IAAD,CAAR,GAAiBgB,OAAjB;AACD;AACF,KAPD;;AASA,QAAIH,MAAM,CAACC,IAAP,CAAYF,QAAZ,EAAsBK,MAAtB,KAAiC,CAArC,EAAwC;AACtC,aAAO,IAAP;AACD;;AAED,UAAMC,MAAM,GAAG,EAAf;AAEAL,UAAM,CAACC,IAAP,CAAYF,QAAZ,EAAsBG,OAAtB,CAA+Bf,IAAD,IAAU;AACtC,YAAMmB,SAAS,GAAGP,QAAQ,CAACZ,IAAD,CAA1B;AACA,YAAMoB,WAAW,aAAMpB,IAAN,cAAcU,QAAQ,CAACV,IAAD,CAAtB,CAAjB;;AAEA,UAAImB,SAAJ,EAAe;AACbD,cAAM,CAACG,IAAP,cAAkBrB,IAAlB,cAA0BmB,SAA1B,yBAAkDC,WAAlD;AACD,OAFD,MAEO;AACLF,cAAM,CAACG,IAAP,cAAkBrB,IAAlB,cAA0BU,QAAQ,CAACV,IAAD,CAAlC;AACD;AACF,KATD;AAWA,UAAMsB,SAAS,GAAGX,WAAW,kBAAWA,WAAX,UAA6B,EAA1D;AACAY,WAAO,CAACC,IAAR,0CAA+CF,SAA/C,6BACAJ,MAAM,CAACO,IAAP,CAAY,IAAZ,CADA;AAMD,GApCM","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"]}