var process$1 = require('process'); var path = require('path'); var url = require('url'); function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; } var process__default = /*#__PURE__*/_interopDefault(process$1); var path__default = /*#__PURE__*/_interopDefault(path); var url__default = /*#__PURE__*/_interopDefault(url); function pathKey(options = {}) { const { env = process.env, platform = process.platform } = options; if (platform !== 'win32') { return 'PATH'; } return Object.keys(env).reverse().find(key => key.toUpperCase() === 'PATH') || 'Path'; } function npmRunPath(options = {}) { const { cwd = process__default.default.cwd(), path: path_ = process__default.default.env[pathKey()], execPath = process__default.default.execPath, } = options; let previous; const cwdString = cwd instanceof URL ? url__default.default.fileURLToPath(cwd) : cwd; let cwdPath = path__default.default.resolve(cwdString); const result = []; while (previous !== cwdPath) { result.push(path__default.default.join(cwdPath, 'node_modules/.bin')); previous = cwdPath; cwdPath = path__default.default.resolve(cwdPath, '..'); } // Ensure the running `node` binary is used. result.push(path__default.default.resolve(cwdString, execPath, '..')); return [...result, path_].join(path__default.default.delimiter); } function npmRunPathEnv({env = process__default.default.env, ...options} = {}) { env = {...env}; const path = pathKey({env}); options.path = env[path]; env[path] = npmRunPath(options); return env; } exports.npmRunPath = npmRunPath; exports.npmRunPathEnv = npmRunPathEnv;