{"version":3,"file":"isMusl.mjs","sources":["../../src/node/isMusl.ts"],"sourcesContent":["import { readFileSync } from 'fs';\nimport { execSync } from 'child_process';\nimport path from 'path';\nexport const isMusl = () => {\n    let musl: boolean | null = false;\n    if (process.platform === 'linux') {\n        musl = isMuslFromFilesystem();\n        if (musl === null) {\n            musl = isMuslFromReport();\n        }\n        if (musl === null) {\n            musl = isMuslFromChildProcess();\n        }\n    }\n    return !!musl;\n};\n\nexport const isMuslFromFilesystem = () => {\n    try {\n        return readFileSync('/usr/bin/ldd', 'utf-8').includes('musl');\n    } catch {\n        return null;\n    }\n};\n\nexport const isMuslFromReport = () => {\n    const report: any =\n        typeof process.report.getReport === 'function'\n            ? process.report.getReport()\n            : null;\n    if (!report) {\n        return null;\n    }\n    if (report.header && report.header.glibcVersionRuntime) {\n        return false;\n    }\n    if (Array.isArray(report.sharedObjects)) {\n        if (\n            report.sharedObjects.some(\n                (f: string) =>\n                    f.includes('libc.musl-') || f.includes('ld-musl-'),\n            )\n        ) {\n            return true;\n        }\n    }\n    return false;\n};\n\nexport const isMuslFromChildProcess = () => {\n    try {\n        return execSync('ldd --version', { encoding: 'utf8' }).includes('musl');\n    } catch (e) {\n        // If we reach this case, we don't know if the system is musl or not, so is better to just fallback to false\n        return false;\n    }\n};\n"],"names":["isMusl","musl","isMuslFromFilesystem","isMuslFromReport","isMuslFromChildProcess","readFileSync","report","f","execSync"],"mappings":";;AAGO,MAAMA,IAAS,MAAM;AACxB,MAAIC,IAAuB;AACvB,SAAA,QAAQ,aAAa,YACrBA,IAAOC,EAAqB,GACxBD,MAAS,SACTA,IAAOE,EAAiB,IAExBF,MAAS,SACTA,IAAOG,EAAuB,KAG/B,CAAC,CAACH;AACb,GAEaC,IAAuB,MAAM;AAClC,MAAA;AACA,WAAOG,EAAa,gBAAgB,OAAO,EAAE,SAAS,MAAM;AAAA,EAAA,QACxD;AACG,WAAA;AAAA,EAAA;AAEf,GAEaF,IAAmB,MAAM;AAC5B,QAAAG,IACF,OAAO,QAAQ,OAAO,aAAc,aAC9B,QAAQ,OAAO,UAAA,IACf;AACV,SAAKA,IAGDA,EAAO,UAAUA,EAAO,OAAO,sBACxB,KAEP,SAAM,QAAQA,EAAO,aAAa,KAE9BA,EAAO,cAAc;AAAA,IACjB,CAACC,MACGA,EAAE,SAAS,YAAY,KAAKA,EAAE,SAAS,UAAU;AAAA,EAAA,KATtD;AAgBf,GAEaH,IAAyB,MAAM;AACpC,MAAA;AACO,WAAAI,EAAS,iBAAiB,EAAE,UAAU,QAAQ,EAAE,SAAS,MAAM;AAAA,UAC9D;AAED,WAAA;AAAA,EAAA;AAEf;"}