import { run } from "./bin.mjs";
import * as os from "node:os";

//#region ../chokidar/dist/esm/utils/runParallel/wmic.mjs
/**
* Gets the list of all the pids of the system through the wmic command.
* @param callback Callback function with error and process list.
*/
const wmic = (callback) => {
	run("wmic", [
		"PROCESS",
		"get",
		"ParentProcessId,ProcessId"
	], {
		windowsHide: true,
		windowsVerbatimArguments: true
	}, (err, stdout, code) => {
		if (err) {
			callback(err);
			return;
		}
		if (code !== 0) {
			callback(/* @__PURE__ */ new Error(`pidtree wmic command exited with code ${code}`));
			return;
		}
		if (!stdout) {
			callback(/* @__PURE__ */ new Error("No stdout received from wmic command"));
			return;
		}
		try {
			const lines = stdout.split(os.EOL);
			const list = [];
			for (let i = 1; i < lines.length; i++) {
				const trimmed = lines[i].trim();
				if (!trimmed) continue;
				const parts = trimmed.split(/\s+/);
				const ppid = parseInt(parts[0], 10);
				const pid = parseInt(parts[1], 10);
				if (!Number.isNaN(ppid) && !Number.isNaN(pid)) list.push([ppid, pid]);
			}
			callback(null, list);
		} catch (error) {
			callback(error instanceof Error ? error : new Error(String(error)));
		}
	});
};

//#endregion
export { wmic };
//# sourceMappingURL=wmic.mjs.map