uawdijnntqw1x1x1
IP : 216.73.216.110
Hostname : 6.87.74.97.host.secureserver.net
Kernel : Linux 6.87.74.97.host.secureserver.net 4.18.0-553.83.1.el8_10.x86_64 #1 SMP Mon Nov 10 04:22:44 EST 2025 x86_64
Disable Function : None :)
OS : Linux
PATH:
/
home
/
emeraadmin
/
www
/
Service
/
..
/
node_modules
/
debug
/
..
/
..
/
wp-admin
/
..
/
4d695
/
foreground-child.zip
/
/
PK�\�\��Z�f f package.jsonnu�[���{ "_id": "foreground-child@3.1.1", "_inBundle": true, "_location": "/npm/foreground-child", "_phantomChildren": {}, "_requiredBy": [ "/npm/glob" ], "author": { "name": "Isaac Z. Schlueter", "email": "i@izs.me", "url": "http://blog.izs.me/" }, "bugs": { "url": "https://github.com/tapjs/foreground-child/issues" }, "dependencies": { "cross-spawn": "^7.0.0", "signal-exit": "^4.0.1" }, "description": "Run a child as if it's the foreground process. Give it stdio. Exit when it exits.", "devDependencies": { "@types/cross-spawn": "^6.0.2", "@types/node": "^18.15.11", "@types/tap": "^15.0.8", "c8": "^7.13.0", "prettier": "^2.8.6", "tap": "^16.3.4", "ts-node": "^10.9.1", "typedoc": "^0.24.2", "typescript": "^5.0.2" }, "engines": { "node": ">=14" }, "exports": { ".": { "import": { "types": "./dist/mjs/index.d.ts", "default": "./dist/mjs/index.js" }, "require": { "types": "./dist/cjs/index.d.ts", "default": "./dist/cjs/index.js" } } }, "files": [ "dist" ], "funding": { "url": "https://github.com/sponsors/isaacs" }, "homepage": "https://github.com/tapjs/foreground-child#readme", "license": "ISC", "main": "./dist/cjs/index.js", "module": "./dist/mjs/index.js", "name": "foreground-child", "prettier": { "semi": false, "printWidth": 75, "tabWidth": 2, "useTabs": false, "singleQuote": true, "jsxSingleQuote": false, "bracketSameLine": true, "arrowParens": "avoid", "endOfLine": "lf" }, "repository": { "type": "git", "url": "git+https://github.com/tapjs/foreground-child.git" }, "scripts": { "format": "prettier --write . --loglevel warn", "postversion": "npm publish", "prepare": "tsc -p tsconfig.json && tsc -p tsconfig-esm.json && bash ./scripts/fixup.sh", "prepublishOnly": "git push origin --follow-tags", "presnap": "npm run prepare", "pretest": "npm run prepare", "preversion": "npm test", "snap": "c8 tap", "test": "c8 tap", "typedoc": "typedoc --tsconfig tsconfig-esm.json ./src/*.ts" }, "tap": { "coverage": false, "jobs": 1, "node-arg": [ "--no-warnings", "--loader", "ts-node/esm" ], "ts": false }, "types": "./dist/mjs/index.d.ts", "version": "3.1.1" } PK�\�\���LICENSEnu�[���The ISC License Copyright (c) 2015-2023 Isaac Z. Schlueter and Contributors Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies. THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. PK�\�\�x�dist/mjs/package.jsonnu�[���{ "type": "module" } PK�\�\����dist/mjs/all-signals.jsnu�[���import constants from 'node:constants'; export const allSignals = // this is the full list of signals that Node will let us do anything with Object.keys(constants).filter(k => k.startsWith('SIG') && // https://github.com/tapjs/signal-exit/issues/21 k !== 'SIGPROF' && // no sense trying to listen for SIGKILL, it's impossible k !== 'SIGKILL'); // These are some obscure signals that are reported by kill -l // on macOS, Linux, or Windows, but which don't have any mapping // in Node.js. No sense trying if they're just going to throw // every time on every platform. // // 'SIGEMT', // 'SIGLOST', // 'SIGPOLL', // 'SIGRTMAX', // 'SIGRTMAX-1', // 'SIGRTMAX-10', // 'SIGRTMAX-11', // 'SIGRTMAX-12', // 'SIGRTMAX-13', // 'SIGRTMAX-14', // 'SIGRTMAX-15', // 'SIGRTMAX-2', // 'SIGRTMAX-3', // 'SIGRTMAX-4', // 'SIGRTMAX-5', // 'SIGRTMAX-6', // 'SIGRTMAX-7', // 'SIGRTMAX-8', // 'SIGRTMAX-9', // 'SIGRTMIN', // 'SIGRTMIN+1', // 'SIGRTMIN+10', // 'SIGRTMIN+11', // 'SIGRTMIN+12', // 'SIGRTMIN+13', // 'SIGRTMIN+14', // 'SIGRTMIN+15', // 'SIGRTMIN+16', // 'SIGRTMIN+2', // 'SIGRTMIN+3', // 'SIGRTMIN+4', // 'SIGRTMIN+5', // 'SIGRTMIN+6', // 'SIGRTMIN+7', // 'SIGRTMIN+8', // 'SIGRTMIN+9', // 'SIGSTKFLT', // 'SIGUNUSED', //# sourceMappingURL=all-signals.js.mapPK�\�\Ү*��dist/mjs/index.jsnu�[���import { spawn as nodeSpawn, } from 'child_process'; import crossSpawn from 'cross-spawn'; import { onExit } from 'signal-exit'; import { allSignals } from './all-signals.js'; import { watchdog } from './watchdog.js'; /* c8 ignore start */ const spawn = process?.platform === 'win32' ? crossSpawn : nodeSpawn; /** * Normalizes the arguments passed to `foregroundChild`. * * Exposed for testing. * * @internal */ export const normalizeFgArgs = (fgArgs) => { let [program, args = [], spawnOpts = {}, cleanup = () => { }] = fgArgs; if (typeof args === 'function') { cleanup = args; spawnOpts = {}; args = []; } else if (!!args && typeof args === 'object' && !Array.isArray(args)) { if (typeof spawnOpts === 'function') cleanup = spawnOpts; spawnOpts = args; args = []; } else if (typeof spawnOpts === 'function') { cleanup = spawnOpts; spawnOpts = {}; } if (Array.isArray(program)) { const [pp, ...pa] = program; program = pp; args = pa; } return [program, args, { ...spawnOpts }, cleanup]; }; export function foregroundChild(...fgArgs) { const [program, args, spawnOpts, cleanup] = normalizeFgArgs(fgArgs); spawnOpts.stdio = [0, 1, 2]; if (process.send) { spawnOpts.stdio.push('ipc'); } const child = spawn(program, args, spawnOpts); const unproxySignals = proxySignals(child); const childHangup = () => { try { child.kill('SIGHUP'); /* c8 ignore start */ } catch (_) { // SIGHUP is weird on windows child.kill('SIGTERM'); } /* c8 ignore stop */ }; const removeOnExit = onExit(childHangup); const dog = watchdog(child); let done = false; child.on('close', async (code, signal) => { dog.kill('SIGKILL'); /* c8 ignore start */ if (done) { return; } /* c8 ignore stop */ done = true; const result = cleanup(code, signal); const res = isPromise(result) ? await result : result; removeOnExit(); unproxySignals(); if (res === false) return; else if (typeof res === 'string') { signal = res; code = null; } else if (typeof res === 'number') { code = res; signal = null; } if (signal) { // If there is nothing else keeping the event loop alive, // then there's a race between a graceful exit and getting // the signal to this process. Put this timeout here to // make sure we're still alive to get the signal, and thus // exit with the intended signal code. /* istanbul ignore next */ setTimeout(() => { }, 2000); try { process.kill(process.pid, signal); /* c8 ignore start */ } catch (_) { process.kill(process.pid, 'SIGTERM'); } /* c8 ignore stop */ } else { process.exit(code || 0); } }); if (process.send) { process.removeAllListeners('message'); child.on('message', (message, sendHandle) => { process.send?.(message, sendHandle); }); process.on('message', (message, sendHandle) => { child.send(message, sendHandle); }); } return child; } /** * Starts forwarding signals to `child` through `parent`. */ const proxySignals = (child) => { const listeners = new Map(); for (const sig of allSignals) { const listener = () => { // some signals can only be received, not sent try { child.kill(sig); /* c8 ignore start */ } catch (_) { } /* c8 ignore stop */ }; try { // if it's a signal this system doesn't recognize, skip it process.on(sig, listener); listeners.set(sig, listener); /* c8 ignore start */ } catch (_) { } /* c8 ignore stop */ } return () => { for (const [sig, listener] of listeners) { process.removeListener(sig, listener); } }; }; const isPromise = (o) => !!o && typeof o === 'object' && typeof o.then === 'function'; //# sourceMappingURL=index.js.mapPK�\�\5qڂ�dist/mjs/watchdog.jsnu�[���// this spawns a child process that listens for SIGHUP when the // parent process exits, and after 200ms, sends a SIGKILL to the // child, in case it did not terminate. import { spawn } from 'child_process'; const watchdogCode = String.raw ` const pid = parseInt(process.argv[1], 10) process.title = 'node (foreground-child watchdog pid=' + pid + ')' if (!isNaN(pid)) { let barked = false // keepalive const interval = setInterval(() => {}, 60000) const bark = () => { clearInterval(interval) if (barked) return barked = true process.removeListener('SIGHUP', bark) setTimeout(() => { try { process.kill(pid, 'SIGKILL') setTimeout(() => process.exit(), 200) } catch (_) {} }, 500) }) process.on('SIGHUP', bark) } `; export const watchdog = (child) => { let dogExited = false; const dog = spawn(process.execPath, ['-e', watchdogCode, String(child.pid)], { stdio: 'ignore', }); dog.on('exit', () => (dogExited = true)); child.on('exit', () => { if (!dogExited) dog.kill('SIGTERM'); }); return dog; }; //# sourceMappingURL=watchdog.js.mapPK�\�\�>�dist/cjs/package.jsonnu�[���{ "type": "commonjs" } PK�\�\��dist/cjs/all-signals.jsnu�[���"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.allSignals = void 0; const node_constants_1 = __importDefault(require("node:constants")); exports.allSignals = // this is the full list of signals that Node will let us do anything with Object.keys(node_constants_1.default).filter(k => k.startsWith('SIG') && // https://github.com/tapjs/signal-exit/issues/21 k !== 'SIGPROF' && // no sense trying to listen for SIGKILL, it's impossible k !== 'SIGKILL'); // These are some obscure signals that are reported by kill -l // on macOS, Linux, or Windows, but which don't have any mapping // in Node.js. No sense trying if they're just going to throw // every time on every platform. // // 'SIGEMT', // 'SIGLOST', // 'SIGPOLL', // 'SIGRTMAX', // 'SIGRTMAX-1', // 'SIGRTMAX-10', // 'SIGRTMAX-11', // 'SIGRTMAX-12', // 'SIGRTMAX-13', // 'SIGRTMAX-14', // 'SIGRTMAX-15', // 'SIGRTMAX-2', // 'SIGRTMAX-3', // 'SIGRTMAX-4', // 'SIGRTMAX-5', // 'SIGRTMAX-6', // 'SIGRTMAX-7', // 'SIGRTMAX-8', // 'SIGRTMAX-9', // 'SIGRTMIN', // 'SIGRTMIN+1', // 'SIGRTMIN+10', // 'SIGRTMIN+11', // 'SIGRTMIN+12', // 'SIGRTMIN+13', // 'SIGRTMIN+14', // 'SIGRTMIN+15', // 'SIGRTMIN+16', // 'SIGRTMIN+2', // 'SIGRTMIN+3', // 'SIGRTMIN+4', // 'SIGRTMIN+5', // 'SIGRTMIN+6', // 'SIGRTMIN+7', // 'SIGRTMIN+8', // 'SIGRTMIN+9', // 'SIGSTKFLT', // 'SIGUNUSED', //# sourceMappingURL=all-signals.js.mapPK�\�\Q��ppdist/cjs/index.jsnu�[���"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.foregroundChild = exports.normalizeFgArgs = void 0; const child_process_1 = require("child_process"); const cross_spawn_1 = __importDefault(require("cross-spawn")); const signal_exit_1 = require("signal-exit"); const all_signals_js_1 = require("./all-signals.js"); const watchdog_js_1 = require("./watchdog.js"); /* c8 ignore start */ const spawn = process?.platform === 'win32' ? cross_spawn_1.default : child_process_1.spawn; /** * Normalizes the arguments passed to `foregroundChild`. * * Exposed for testing. * * @internal */ const normalizeFgArgs = (fgArgs) => { let [program, args = [], spawnOpts = {}, cleanup = () => { }] = fgArgs; if (typeof args === 'function') { cleanup = args; spawnOpts = {}; args = []; } else if (!!args && typeof args === 'object' && !Array.isArray(args)) { if (typeof spawnOpts === 'function') cleanup = spawnOpts; spawnOpts = args; args = []; } else if (typeof spawnOpts === 'function') { cleanup = spawnOpts; spawnOpts = {}; } if (Array.isArray(program)) { const [pp, ...pa] = program; program = pp; args = pa; } return [program, args, { ...spawnOpts }, cleanup]; }; exports.normalizeFgArgs = normalizeFgArgs; function foregroundChild(...fgArgs) { const [program, args, spawnOpts, cleanup] = (0, exports.normalizeFgArgs)(fgArgs); spawnOpts.stdio = [0, 1, 2]; if (process.send) { spawnOpts.stdio.push('ipc'); } const child = spawn(program, args, spawnOpts); const unproxySignals = proxySignals(child); const childHangup = () => { try { child.kill('SIGHUP'); /* c8 ignore start */ } catch (_) { // SIGHUP is weird on windows child.kill('SIGTERM'); } /* c8 ignore stop */ }; const removeOnExit = (0, signal_exit_1.onExit)(childHangup); const dog = (0, watchdog_js_1.watchdog)(child); let done = false; child.on('close', async (code, signal) => { dog.kill('SIGKILL'); /* c8 ignore start */ if (done) { return; } /* c8 ignore stop */ done = true; const result = cleanup(code, signal); const res = isPromise(result) ? await result : result; removeOnExit(); unproxySignals(); if (res === false) return; else if (typeof res === 'string') { signal = res; code = null; } else if (typeof res === 'number') { code = res; signal = null; } if (signal) { // If there is nothing else keeping the event loop alive, // then there's a race between a graceful exit and getting // the signal to this process. Put this timeout here to // make sure we're still alive to get the signal, and thus // exit with the intended signal code. /* istanbul ignore next */ setTimeout(() => { }, 2000); try { process.kill(process.pid, signal); /* c8 ignore start */ } catch (_) { process.kill(process.pid, 'SIGTERM'); } /* c8 ignore stop */ } else { process.exit(code || 0); } }); if (process.send) { process.removeAllListeners('message'); child.on('message', (message, sendHandle) => { process.send?.(message, sendHandle); }); process.on('message', (message, sendHandle) => { child.send(message, sendHandle); }); } return child; } exports.foregroundChild = foregroundChild; /** * Starts forwarding signals to `child` through `parent`. */ const proxySignals = (child) => { const listeners = new Map(); for (const sig of all_signals_js_1.allSignals) { const listener = () => { // some signals can only be received, not sent try { child.kill(sig); /* c8 ignore start */ } catch (_) { } /* c8 ignore stop */ }; try { // if it's a signal this system doesn't recognize, skip it process.on(sig, listener); listeners.set(sig, listener); /* c8 ignore start */ } catch (_) { } /* c8 ignore stop */ } return () => { for (const [sig, listener] of listeners) { process.removeListener(sig, listener); } }; }; const isPromise = (o) => !!o && typeof o === 'object' && typeof o.then === 'function'; //# sourceMappingURL=index.js.mapPK�\�\�>�� dist/cjs/watchdog.jsnu�[���"use strict"; // this spawns a child process that listens for SIGHUP when the // parent process exits, and after 200ms, sends a SIGKILL to the // child, in case it did not terminate. Object.defineProperty(exports, "__esModule", { value: true }); exports.watchdog = void 0; const child_process_1 = require("child_process"); const watchdogCode = String.raw ` const pid = parseInt(process.argv[1], 10) process.title = 'node (foreground-child watchdog pid=' + pid + ')' if (!isNaN(pid)) { let barked = false // keepalive const interval = setInterval(() => {}, 60000) const bark = () => { clearInterval(interval) if (barked) return barked = true process.removeListener('SIGHUP', bark) setTimeout(() => { try { process.kill(pid, 'SIGKILL') setTimeout(() => process.exit(), 200) } catch (_) {} }, 500) }) process.on('SIGHUP', bark) } `; const watchdog = (child) => { let dogExited = false; const dog = (0, child_process_1.spawn)(process.execPath, ['-e', watchdogCode, String(child.pid)], { stdio: 'ignore', }); dog.on('exit', () => (dogExited = true)); child.on('exit', () => { if (!dogExited) dog.kill('SIGTERM'); }); return dog; }; exports.watchdog = watchdog; //# sourceMappingURL=watchdog.js.mapPK�\�\��Z�f f package.jsonnu�[���PK�\�\���� LICENSEnu�[���PK�\�\�x��dist/mjs/package.jsonnu�[���PK�\�\����< dist/mjs/all-signals.jsnu�[���PK�\�\Ү*��xdist/mjs/index.jsnu�[���PK�\�\5qڂ�G$dist/mjs/watchdog.jsnu�[���PK�\�\�>� )dist/cjs/package.jsonnu�[���PK�\�\��k)dist/cjs/all-signals.jsnu�[���PK�\�\Q��pp�/dist/cjs/index.jsnu�[���PK�\�\�>�� tCdist/cjs/watchdog.jsnu�[���PK 5�H
/home/emeraadmin/www/Service/../node_modules/debug/../../wp-admin/../4d695/foreground-child.zip