{"version":3,"sources":["jsdelivr-header.js","/npm/run-with-hardhat-node@0.4.3/index.js"],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA,ACNA,MAAM,MAAE,MAAK,SAAE,UAAa,QAAQ,iBAC9B,OAAS,QAAQ,eAUvB,eAAe,mBAAkB,IAAC,EAAG,KAAE,EAAI,QAAE,EAAO,QAAE,IAClD,IAAI,EAKA,EAJJ,GAAkB,iBAAP,EAAiB,MAAM,IAAI,MAAM,6BAC5C,GAAsB,iBAAX,EAAqB,MAAM,IAAI,MAAM,iCAChD,GAAI,IAAS,MAAM,QAAQ,GAAO,MAAM,IAAI,MAAM,8BA2ClD,aAvCM,IAAI,SAAQ,CAAC,EAAS,KACxB,MAAM,EAAe,GACD,WAAb,EAAI,KACI,EAAO,IAAI,MAAM,kBAAkB,MAC9B,WAAb,EAAI,KACI,EAAO,IAAI,MAAM,8BAA8B,MACnD,EAAO,GAGlB,IACI,EAAU,MAAM,EAAK,EACzB,CAAE,MAAM,GACJ,OAAO,EAAY,EACvB,CAEA,EAAQ,OAAO,GAAG,QAAS,IACvB,MAAM,EAAe,EAAK,WAAW,QAAQ,OAAO,IAChD,GAAW,GAAgB,GAC3B,QAAQ,OAAO,MAAM,GAEzB,EAAW,EACR,EAAK,SAAS,IACb,EAAQ,EACZ,IAGJ,IAAI,EAAQ,GAEZ,EAAQ,OAAO,GAAG,QAAS,IACnB,GAAW,QAAQ,OAAO,MAAM,GACpC,GAAS,KAGb,EAAQ,GAAG,QAAS,GAEpB,EAAQ,GAAG,SAAU,GACjB,EAAO,IAAI,MAAM,GAAG,4BAA8B,OACtD,IAEG,CACX,CAUA,eAAe,YAAW,IAAE,EAAG,KAAE,EAAI,QAAE,EAAO,SAAE,EAAQ,QAAE,IAEtD,IAAI,EAGJ,QAAO,KACC,GACA,EAAQ,MACZ,IAGJ,IACI,QAAgB,kBAAkB,CAAC,MAAK,OAAM,UAAS,YACvD,SAAS,EAAU,CAAE,MAAO,WAChC,CAAE,QACK,IACC,EAAQ,OACX,EAAU,KAEf,CACJ,CAEA,OAAO,QAAU,CAAE,oCAAmB","file":"/npm/run-with-hardhat-node@0.4.3/index.js","sourceRoot":"","sourcesContent":["/**\n * Minified by jsDelivr using Terser v5.39.0.\n * Original file: /npm/run-with-hardhat-node@0.4.3/index.js\n *\n * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files\n */\n","const { spawn, execSync } = require('child_process');\nconst onExit = require('signal-exit')\n\n/**\n * launch command, and wait for it to start.\n * @param cmd\n * @param args\n * @param waitFor\n * @param verbose\n * @returns the started ChildProcess\n */\nasync function waitForCmdToStart({cmd, args, waitFor, verbose}) {\n    let testrpc\n    if (typeof cmd != 'string') throw new Error('missing {cmd:\"...\"} param')\n    if (typeof waitFor != 'string') throw new Error('missing {waitFor:\"...\"} param')\n    if (args && !Array.isArray(args)) throw new Error('args param is not an array')\n\n    let lastData\n\n    await new Promise((resolve, reject) => {\n        const handleError = (err) => {\n            if(err.code === 'ENOENT')\n                return reject(new Error(`Could not find ${cmd}`))\n            if(err.code === 'EACCES')\n                return reject(new Error(`Need permission to execute ${cmd}`))\n            return reject(err)\n        }\n\n        try {\n            testrpc = spawn(cmd, args)\n        } catch(err) {\n            return handleError(err)\n        }\n\n        testrpc.stdout.on('data', (data) => {\n            const dataFiltered = data.toString().replace(/\\d+/g,'')\n            if (verbose && dataFiltered != lastData) {\n                process.stdout.write(data)\n            }\n            lastData = dataFiltered\n            if(data.includes(waitFor)) {\n                resolve(testrpc)\n            }\n        })\n\n        let error = ''\n\n        testrpc.stderr.on('data', (data) => {\n            if (verbose) { process.stderr.write(data) }\n            error += data\n        })\n\n        testrpc.on('error', handleError)\n\n        testrpc.on('close', (code) =>\n            reject(new Error(`${cmd} exited early with code ${code}`))\n        )\n    })\n    return testrpc\n}\n/**\n * \n * @param cmd external command to run.\n * @param args parameters for external command\n * @param waitFor wait for this output string of command, before launching innerCmd\n * @param innerCmd inner command to launch, once cmd had reached the \"waitFor\" output string\n * @param verbose true to dump cmd's output. false to hide extenral cmd output\n *              note that innerCmd's output is always dumped to output\n */\nasync function runWithCmd({ cmd, args, waitFor, innerCmd, verbose }) {\n\n    let testrpc\n\n    //catch process abort with signals (which bypasses the \"finally\", below)\n    onExit(()=>{\n        if (testrpc) {\n            testrpc.kill()\n        }\n    })\n\n    try {\n        testrpc = await waitForCmdToStart({cmd, args, waitFor, verbose})\n        execSync(innerCmd, { stdio: 'inherit' })\n    } finally {\n        if(testrpc) {\n            testrpc.kill()\n    \t    testrpc = null\n        }\n    }\n}\n\nmodule.exports = { waitForCmdToStart, runWithCmd }\n"]}