{"version":3,"sources":["jsdelivr-header.js","/npm/madrun@12.1.0/lib/madrun.js"],"names":[],"mappings":"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","file":"/npm/madrun@12.1.0/lib/madrun.js","sourceRoot":"","sourcesContent":["/**\n * Minified by jsDelivr using Terser v5.39.0.\n * Original file: /npm/madrun@12.1.0/lib/madrun.js\n *\n * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files\n */\n","'use strict';\n\nconst {pathToFileURL} = require('node:url');\nconst keys = require('all-object-keys');\nconst jessy = require('jessy');\n\nconst wildcard = require('./wildcard');\nconst check = require('./check');\nconst supported = require('../supported');\nconst maybeArray = (a) => isArray(a) ? a : [a];\nconst isStr = (a) => typeof a === 'string';\nconst {isArray} = Array;\n\nasync function getFindUp() {\n    if (globalThis.MADRUN_FINDUP)\n        return globalThis.MADRUN_FINDUP;\n    \n    const {findUpSync} = await import('find-up');\n    \n    return findUpSync;\n}\n\nasync function getScripts() {\n    const findUp = await getFindUp();\n    const path = findUp(supported);\n    \n    if (!path)\n        throw Error('.madrun.js is missing!');\n    \n    return (await import(pathToFileURL(path))).default;\n}\n\nmodule.exports.cutEnv = async (names, opts = '', env, scripts) => {\n    names = maybeArray(names);\n    scripts = scripts || await getScripts();\n    \n    const isParallel = false;\n    \n    const commands = await run(names, opts, scripts, {\n        env,\n        cutEnv: true,\n        isParallel,\n    });\n    \n    return joinByType(commands, {\n        isParallel,\n    });\n};\n\nmodule.exports.run = async (name, opts = '', env, scripts) => {\n    scripts = scripts || await getScripts();\n    \n    const problems = check(scripts);\n    \n    if (problems)\n        return problems;\n    \n    return await series(name, opts, env, scripts);\n};\n\nmodule.exports.series = series;\n\nasync function series(names, opts = '', env, scripts) {\n    names = maybeArray(names);\n    scripts = scripts || await getScripts();\n    \n    const isParallel = false;\n    \n    const commands = await run(names, opts, scripts, {\n        env,\n        isParallel,\n    });\n    \n    return joinByType(commands, {\n        isParallel,\n    });\n}\n\nmodule.exports.parallel = async (names, opts = '', env, scripts) => {\n    scripts = scripts || await getScripts();\n    names = maybeArray(names);\n    \n    const isParallel = true;\n    \n    const commands = await run(names, opts, scripts, {\n        env,\n        isParallel,\n    });\n    \n    return joinByType(commands, {\n        isParallel,\n    });\n};\n\nfunction joinByType(commands, {isParallel}) {\n    const type = isParallel ? ' & ' : ' && ';\n    return commands.join(type);\n}\n\nasync function run(names, opts, scripts, {env, isParallel, cutEnv}) {\n    const cmds = [];\n    \n    for (const name of names) {\n        const cmd = await parse(name, {\n            scripts,\n            opts,\n            env,\n            isParallel,\n            cutEnv,\n        });\n        \n        cmds.push(cmd);\n    }\n    \n    return cmds;\n}\n\nconst addOpts = (name, opts) => {\n    if (!opts)\n        return name;\n    \n    return `${name} ${opts}`;\n};\n\nconst addEnv = (cmd, env) => {\n    const entries = env && Object.entries(env);\n    \n    if (!env || !entries.length)\n        return cmd;\n    \n    const line = [];\n    \n    for (const [key, value] of entries) {\n        line.push(`${key}=${value}`);\n    }\n    \n    const envLine = line.join(' ');\n    \n    return `${envLine} ${cmd}`;\n};\n\nconst parse = async (name, {scripts, opts, env, isParallel, cutEnv}) => {\n    const result = [];\n    const all = keys(scripts);\n    \n    for (const key of all) {\n        if (!wildcard(`^${name}$`).test(key))\n            continue;\n        \n        const fn = jessy(key, scripts);\n        \n        const {line, lineEnv} = await runScriptFn(fn);\n        \n        const cmd = addOpts(line, opts);\n        \n        const cmdEnv = addEnv(cmd, {\n            ...cutEnv ? {} : lineEnv,\n            ...env,\n        });\n        \n        const processed = await addPrePost(cmdEnv, key, scripts);\n        \n        result.push(processed);\n    }\n    \n    if (!result.length)\n        throw Error(`one of scripts not found: ${name}`);\n    \n    return joinByType(result, {\n        isParallel,\n    });\n};\n\nasync function runScriptFn(fn) {\n    const result = await fn();\n    \n    if (!isArray(result))\n        return {\n            line: result,\n            lineEnv: {},\n        };\n    \n    const [a, b] = result;\n    \n    if (isStr(a))\n        return {\n            line: a,\n            lineEnv: b,\n        };\n    \n    return {\n        line: b,\n        lineEnv: a,\n    };\n}\n\nasync function addPrePost(cmd, key, scripts) {\n    const pre = jessy(`pre${key}`, scripts);\n    const post = jessy(`post${key}`, scripts);\n    \n    if (pre)\n        cmd = `${await pre()} && ${cmd}`;\n    \n    if (post)\n        cmd = `${cmd} && ${await post()}`;\n    \n    return cmd;\n}\n"]}