{"version":3,"file":"ps.cjs","names":["os"],"sources":["../../../../src/utils/runParallel/ps.ts"],"sourcesContent":["import * as os from 'node:os';\nimport { run } from './bin';\n\ntype ProcessList = [number, number][]; // [PPID, PID][]\ntype ProcessListCallback = (err: Error | null, list?: ProcessList) => void;\n\n/**\n * Gets the list of all the pids of the system through the ps command.\n * @param callback Callback function with error and process list.\n */\nexport const ps = (callback: ProcessListCallback): void => {\n  const args = ['-A', '-o', 'ppid,pid'];\n\n  run('ps', args, (err, stdout, code) => {\n    if (err) {\n      callback(err);\n      return;\n    }\n    if (code !== 0) {\n      callback(new Error(`pidtree ps command exited with code ${code}`));\n      return;\n    }\n\n    // Example of stdout\n    //\n    // PPID   PID\n    //    1   430\n    //  430   432\n    //    1   727\n    //    1  7166\n\n    if (!stdout) {\n      callback(new Error('No stdout received from ps command'));\n      return;\n    }\n\n    try {\n      const lines = stdout.split(os.EOL);\n\n      const list: ProcessList = [];\n      for (let i = 1; i < lines.length; i++) {\n        const trimmed = lines[i].trim();\n        if (!trimmed) continue;\n        const parts = trimmed.split(/\\s+/);\n        const ppid = parseInt(parts[0], 10); // PPID\n        const pid = parseInt(parts[1], 10); // PID\n        if (!Number.isNaN(ppid) && !Number.isNaN(pid)) {\n          list.push([ppid, pid]);\n        }\n      }\n\n      callback(null, list);\n    } catch (error) {\n      callback(error instanceof Error ? error : new Error(String(error)));\n    }\n  });\n};\n"],"mappings":";;;;;;;;;;;AAUA,MAAa,MAAM,aAAwC;AAGzD,mCAAI,MAAM;EAFI;EAAM;EAAM;EAEZ,GAAG,KAAK,QAAQ,SAAS;AACrC,MAAI,KAAK;AACP,YAAS,IAAI;AACb;;AAEF,MAAI,SAAS,GAAG;AACd,4BAAS,IAAI,MAAM,uCAAuC,OAAO,CAAC;AAClE;;AAWF,MAAI,CAAC,QAAQ;AACX,4BAAS,IAAI,MAAM,qCAAqC,CAAC;AACzD;;AAGF,MAAI;GACF,MAAM,QAAQ,OAAO,MAAMA,QAAG,IAAI;GAElC,MAAM,OAAoB,EAAE;AAC5B,QAAK,IAAI,IAAI,GAAG,IAAI,MAAM,QAAQ,KAAK;IACrC,MAAM,UAAU,MAAM,GAAG,MAAM;AAC/B,QAAI,CAAC,QAAS;IACd,MAAM,QAAQ,QAAQ,MAAM,MAAM;IAClC,MAAM,OAAO,SAAS,MAAM,IAAI,GAAG;IACnC,MAAM,MAAM,SAAS,MAAM,IAAI,GAAG;AAClC,QAAI,CAAC,OAAO,MAAM,KAAK,IAAI,CAAC,OAAO,MAAM,IAAI,CAC3C,MAAK,KAAK,CAAC,MAAM,IAAI,CAAC;;AAI1B,YAAS,MAAM,KAAK;WACb,OAAO;AACd,YAAS,iBAAiB,QAAQ,QAAQ,IAAI,MAAM,OAAO,MAAM,CAAC,CAAC;;GAErE"}