{"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;AAC3B,SAAI,QAAQ,aAAa,YACrBA,IAAOC,EAAA,GACHD,MAAS,SACTA,IAAOE,EAAA,IAEPF,MAAS,SACTA,IAAOG,EAAA,KAGR,CAAC,CAACH;AACb,GAEaC,IAAuB,MAAM;AACtC,MAAI;AACA,WAAOG,EAAa,gBAAgB,OAAO,EAAE,SAAS,MAAM;AAAA,EAChE,QAAQ;AACJ,WAAO;AAAA,EACX;AACJ,GAEaF,IAAmB,MAAM;AAClC,QAAMG,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;AACxC,MAAI;AACA,WAAOI,EAAS,iBAAiB,EAAE,UAAU,QAAQ,EAAE,SAAS,MAAM;AAAA,EAC1E,QAAY;AAER,WAAO;AAAA,EACX;AACJ;"}