PNG  IHDR;IDATxܻn0K )(pA 7LeG{ §㻢|ذaÆ 6lذaÆ 6lذaÆ 6lom$^yذag5bÆ 6lذaÆ 6lذa{ 6lذaÆ `}HFkm,mӪôô! x|'ܢ˟;E:9&ᶒ}{v]n&6 h_tڠ͵-ҫZ;Z$.Pkž)!o>}leQfJTu іچ\X=8Rن4`Vwl>nG^is"ms$ui?wbs[m6K4O.4%/bC%t Mז -lG6mrz2s%9s@-k9=)kB5\+͂Zsٲ Rn~GRC wIcIn7jJhۛNCS|j08yiHKֶۛkɈ+;SzL/F*\Ԕ#"5m2[S=gnaPeғL lذaÆ 6l^ḵaÆ 6lذaÆ 6lذa; _ذaÆ 6lذaÆ 6lذaÆ RIENDB` 'use strict'; const path = require('path'); const fs = require('fs'); const {promisify} = require('util'); const pLocate = require('p-locate'); const fsStat = promisify(fs.stat); const fsLStat = promisify(fs.lstat); const typeMappings = { directory: 'isDirectory', file: 'isFile' }; function checkType({type}) { if (type in typeMappings) { return; } throw new Error(`Invalid type specified: ${type}`); } const matchType = (type, stat) => type === undefined || stat[typeMappings[type]](); module.exports = async (paths, options) => { options = { cwd: process.cwd(), type: 'file', allowSymlinks: true, ...options }; checkType(options); const statFn = options.allowSymlinks ? fsStat : fsLStat; return pLocate(paths, async path_ => { try { const stat = await statFn(path.resolve(options.cwd, path_)); return matchType(options.type, stat); } catch (_) { return false; } }, options); }; module.exports.sync = (paths, options) => { options = { cwd: process.cwd(), allowSymlinks: true, type: 'file', ...options }; checkType(options); const statFn = options.allowSymlinks ? fs.statSync : fs.lstatSync; for (const path_ of paths) { try { const stat = statFn(path.resolve(options.cwd, path_)); if (matchType(options.type, stat)) { return path_; } } catch (_) { } } };