You're Invited:Meet the Socket Team at RSAC and BSidesSF 2026, March 23–26.RSVP
Socket
Book a DemoSign in
Socket

function-exec-sync

Package Overview
Dependencies
Maintainers
1
Versions
90
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

function-exec-sync - npm Package Compare versions

Comparing version
1.3.4
to
1.4.0
+0
-1
dist/cjs/index.d.cts

@@ -1,2 +0,1 @@

import './polyfills.cjs';
import type { ExecWorkerOptions } from './types.ts';

@@ -3,0 +2,0 @@ export type * from './types.ts';

@@ -1,2 +0,1 @@

import './polyfills.cjs';
import type { ExecWorkerOptions } from './types.ts';

@@ -3,0 +2,0 @@ export type * from './types.ts';

@@ -11,3 +11,2 @@ "use strict";

});
require("./polyfills.cjs");
var _child_process = /*#__PURE__*/ _interop_require_default(require("child_process"));

@@ -14,0 +13,0 @@ var _fs = /*#__PURE__*/ _interop_require_default(require("fs"));

+1
-1

@@ -1,1 +0,1 @@

{"version":3,"sources":["/Users/kevin/Dev/OpenSource/node-version/function-exec-sync/src/index.ts"],"sourcesContent":["import './polyfills.cjs';\nimport cp from 'child_process';\nimport fs from 'fs';\nimport mkdirp from 'mkdirp-classic';\nimport os from 'os';\nimport osShim from 'os-shim';\nimport path from 'path';\nimport serialize from 'serialize-javascript';\nimport shortHash from 'short-hash';\nimport suffix from 'temp-suffix';\nimport sleep from 'thread-sleep-compat';\nimport url from 'url';\n\nconst tmpdir = os.tmpdir || osShim.tmpdir;\n\nconst DEFAULT_SLEEP_MS = 100;\nconst NODES = ['node', 'node.exe', 'node.cmd'];\nconst isWindows = process.platform === 'win32' || /^(msys|cygwin)$/.test(process.env.OSTYPE);\nconst __dirname = path.dirname(typeof __filename === 'undefined' ? url.fileURLToPath(import.meta.url) : __filename);\nconst worker = path.join(__dirname, 'workers', 'runFunction.cjs');\n\nimport unlinkSafe from './unlinkSafe.ts';\n\nconst existsSync = (test: string): boolean => {\n try {\n (fs.accessSync || fs.statSync)(test);\n return true;\n } catch (_) {\n return false;\n }\n};\n\nimport type { ExecWorkerOptions } from './types.ts';\n\ninterface NodeJSEnv extends NodeJS.ProcessEnv {\n NODE_OPTIONS: string;\n}\n\nexport type * from './types.ts';\nexport default function functionExecSync(filePath: string, ...args: unknown[]);\nexport default function functionExecSync(options: ExecWorkerOptions, filePath: string, ...args: unknown[]);\nexport default function functionExecSync(options: ExecWorkerOptions | string, filePath?: string | unknown[], ...args: unknown[]): unknown {\n if (typeof options === 'string') {\n args.unshift(filePath);\n filePath = options;\n options = null;\n }\n if (!filePath) throw new Error('function-exec-sync missing file');\n options = (options || {}) as ExecWorkerOptions;\n\n const env = { ...(options.env || process.env) } as NodeJSEnv;\n delete env.NODE_OPTIONS;\n const workerData = {\n filePath,\n args,\n callbacks: options.callbacks === undefined ? false : options.callbacks,\n env,\n cwd: options.cwd === undefined ? process.cwd() : options.cwd,\n };\n\n const name = options.name === undefined ? 'function-exec-sync' : options.name;\n const temp = path.join(tmpdir(), name, shortHash(workerData.cwd));\n const input = path.join(temp, suffix('input'));\n const output = path.join(temp, suffix('output'));\n const done = path.join(temp, suffix('done'));\n\n // store data to a file\n mkdirp.sync(path.dirname(input));\n fs.writeFileSync(input, serialize(workerData), 'utf8');\n unlinkSafe(output);\n\n // call the function\n const execPath = options.execPath || process.execPath;\n\n // only node\n if (NODES.indexOf(path.basename(execPath).toLowerCase()) < 0) throw new Error(`Expecting node executable. Received: ${path.basename(execPath)}`);\n\n // exec and start polling\n if (!cp.execFileSync) {\n const sleepMS = options.sleep === undefined ? DEFAULT_SLEEP_MS : options.sleep;\n let cmd = `\"${execPath}\" \"${worker}\" \"${input}\" \"${output}\"`;\n cmd += `${isWindows ? '&' : ';'} echo \"done\" > ${done}`;\n cp.exec(cmd, { env });\n while (!existsSync(done)) {\n sleep(sleepMS);\n }\n } else {\n cp.execFileSync(execPath, [worker, input, output], { env });\n }\n unlinkSafe(input);\n unlinkSafe(done);\n\n // get data and clean up\n let res: { error?: Error; value: unknown };\n try {\n // biome-ignore lint/security/noGlobalEval: Serialize\n res = eval(`(${fs.readFileSync(output, 'utf8')})`);\n unlinkSafe(output);\n } catch (err) {\n throw new Error(`function-exec-sync: Error: ${err.message}. Function: ${filePath}. Exec path: ${execPath}`);\n }\n\n // throw error from the worker\n if (res.error) {\n const error = new Error(res.error.message);\n for (const key in res.error) error[key] = res.error[key];\n throw error;\n }\n // return the result\n return res.value;\n}\n"],"names":["functionExecSync","tmpdir","os","osShim","DEFAULT_SLEEP_MS","NODES","isWindows","process","platform","test","env","OSTYPE","__dirname","path","dirname","__filename","url","fileURLToPath","worker","join","existsSync","fs","accessSync","statSync","_","options","filePath","args","unshift","Error","NODE_OPTIONS","workerData","callbacks","undefined","cwd","name","temp","shortHash","input","suffix","output","done","mkdirp","sync","writeFileSync","serialize","unlinkSafe","execPath","indexOf","basename","toLowerCase","cp","execFileSync","sleepMS","sleep","cmd","exec","res","eval","readFileSync","err","message","error","key","value"],"mappings":"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"}
{"version":3,"sources":["/Users/kevin/Dev/OpenSource/node-version/function-exec-sync/src/index.ts"],"sourcesContent":["import cp from 'child_process';\nimport fs from 'fs';\nimport mkdirp from 'mkdirp-classic';\nimport os from 'os';\nimport osShim from 'os-shim';\nimport path from 'path';\nimport serialize from 'serialize-javascript';\nimport shortHash from 'short-hash';\nimport suffix from 'temp-suffix';\nimport sleep from 'thread-sleep-compat';\nimport url from 'url';\n\nconst tmpdir = os.tmpdir || osShim.tmpdir;\n\nconst DEFAULT_SLEEP_MS = 100;\nconst NODES = ['node', 'node.exe', 'node.cmd'];\nconst isWindows = process.platform === 'win32' || /^(msys|cygwin)$/.test(process.env.OSTYPE);\nconst __dirname = path.dirname(typeof __filename === 'undefined' ? url.fileURLToPath(import.meta.url) : __filename);\nconst worker = path.join(__dirname, 'workers', 'runFunction.cjs');\n\nimport unlinkSafe from './unlinkSafe.ts';\n\nconst existsSync = (test: string): boolean => {\n try {\n (fs.accessSync || fs.statSync)(test);\n return true;\n } catch (_) {\n return false;\n }\n};\n\nimport type { ExecWorkerOptions } from './types.ts';\n\ninterface NodeJSEnv extends NodeJS.ProcessEnv {\n NODE_OPTIONS: string;\n}\n\nexport type * from './types.ts';\nexport default function functionExecSync(filePath: string, ...args: unknown[]);\nexport default function functionExecSync(options: ExecWorkerOptions, filePath: string, ...args: unknown[]);\nexport default function functionExecSync(options: ExecWorkerOptions | string, filePath?: string | unknown[], ...args: unknown[]): unknown {\n if (typeof options === 'string') {\n args.unshift(filePath);\n filePath = options;\n options = null;\n }\n if (!filePath) throw new Error('function-exec-sync missing file');\n options = (options || {}) as ExecWorkerOptions;\n\n const env = { ...(options.env || process.env) } as NodeJSEnv;\n delete env.NODE_OPTIONS;\n const workerData = {\n filePath,\n args,\n callbacks: options.callbacks === undefined ? false : options.callbacks,\n env,\n cwd: options.cwd === undefined ? process.cwd() : options.cwd,\n };\n\n const name = options.name === undefined ? 'function-exec-sync' : options.name;\n const temp = path.join(tmpdir(), name, shortHash(workerData.cwd));\n const input = path.join(temp, suffix('input'));\n const output = path.join(temp, suffix('output'));\n const done = path.join(temp, suffix('done'));\n\n // store data to a file\n mkdirp.sync(path.dirname(input));\n fs.writeFileSync(input, serialize(workerData), 'utf8');\n unlinkSafe(output);\n\n // call the function\n const execPath = options.execPath || process.execPath;\n\n // only node\n if (NODES.indexOf(path.basename(execPath).toLowerCase()) < 0) throw new Error(`Expecting node executable. Received: ${path.basename(execPath)}`);\n\n // exec and start polling\n if (!cp.execFileSync) {\n const sleepMS = options.sleep === undefined ? DEFAULT_SLEEP_MS : options.sleep;\n let cmd = `\"${execPath}\" \"${worker}\" \"${input}\" \"${output}\"`;\n cmd += `${isWindows ? '&' : ';'} echo \"done\" > ${done}`;\n cp.exec(cmd, { env });\n while (!existsSync(done)) {\n sleep(sleepMS);\n }\n } else {\n cp.execFileSync(execPath, [worker, input, output], { env });\n }\n unlinkSafe(input);\n unlinkSafe(done);\n\n // get data and clean up\n let res: { error?: Error; value: unknown };\n try {\n // biome-ignore lint/security/noGlobalEval: Serialize\n res = eval(`(${fs.readFileSync(output, 'utf8')})`);\n unlinkSafe(output);\n } catch (err) {\n throw new Error(`function-exec-sync: Error: ${err.message}. Function: ${filePath}. Exec path: ${execPath}`);\n }\n\n // throw error from the worker\n if (res.error) {\n const error = new Error(res.error.message);\n for (const key in res.error) error[key] = res.error[key];\n throw error;\n }\n // return the result\n return res.value;\n}\n"],"names":["functionExecSync","tmpdir","os","osShim","DEFAULT_SLEEP_MS","NODES","isWindows","process","platform","test","env","OSTYPE","__dirname","path","dirname","__filename","url","fileURLToPath","worker","join","existsSync","fs","accessSync","statSync","_","options","filePath","args","unshift","Error","NODE_OPTIONS","workerData","callbacks","undefined","cwd","name","temp","shortHash","input","suffix","output","done","mkdirp","sync","writeFileSync","serialize","unlinkSafe","execPath","indexOf","basename","toLowerCase","cp","execFileSync","sleepMS","sleep","cmd","exec","res","eval","readFileSync","err","message","error","key","value"],"mappings":";;;;+BAwCA;;;eAAwBA;;;oEAxCT;yDACA;oEACI;yDACJ;6DACI;2DACF;0EACK;gEACA;iEACH;wEACD;0DACF;mEAUO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AARvB,IAAMC,SAASC,WAAE,CAACD,MAAM,IAAIE,eAAM,CAACF,MAAM;AAEzC,IAAMG,mBAAmB;AACzB,IAAMC,QAAQ;IAAC;IAAQ;IAAY;CAAW;AAC9C,IAAMC,YAAYC,QAAQC,QAAQ,KAAK,WAAW,kBAAkBC,IAAI,CAACF,QAAQG,GAAG,CAACC,MAAM;AAC3F,IAAMC,YAAYC,aAAI,CAACC,OAAO,CAAC,OAAOC,eAAe,cAAcC,YAAG,CAACC,aAAa,CAAC,uDAAmBF;AACxG,IAAMG,SAASL,aAAI,CAACM,IAAI,CAACP,WAAW,WAAW;AAI/C,IAAMQ,aAAa,SAACX;IAClB,IAAI;QACDY,CAAAA,WAAE,CAACC,UAAU,IAAID,WAAE,CAACE,QAAQ,AAAD,EAAGd;QAC/B,OAAO;IACT,EAAE,OAAOe,GAAG;QACV,OAAO;IACT;AACF;AAWe,SAASxB,iBAAiByB,OAAmC,EAAEC,QAA6B;IAAE,IAAA,IAAA,OAAA,UAAA,QAAA,AAAGC,OAAH,UAAA,OAAA,IAAA,OAAA,QAAA,OAAA,GAAA,OAAA,MAAA;QAAGA,KAAH,OAAA,KAAA,SAAA,CAAA,KAAkB;;IAC7H,IAAI,OAAOF,YAAY,UAAU;QAC/BE,KAAKC,OAAO,CAACF;QACbA,WAAWD;QACXA,UAAU;IACZ;IACA,IAAI,CAACC,UAAU,MAAM,IAAIG,MAAM;IAC/BJ,UAAWA,WAAW,CAAC;IAEvB,IAAMf,MAAM,mBAAMe,QAAQf,GAAG,IAAIH,QAAQG,GAAG;IAC5C,OAAOA,IAAIoB,YAAY;IACvB,IAAMC,aAAa;QACjBL,UAAAA;QACAC,MAAAA;QACAK,WAAWP,QAAQO,SAAS,KAAKC,YAAY,QAAQR,QAAQO,SAAS;QACtEtB,KAAAA;QACAwB,KAAKT,QAAQS,GAAG,KAAKD,YAAY1B,QAAQ2B,GAAG,KAAKT,QAAQS,GAAG;IAC9D;IAEA,IAAMC,OAAOV,QAAQU,IAAI,KAAKF,YAAY,uBAAuBR,QAAQU,IAAI;IAC7E,IAAMC,OAAOvB,aAAI,CAACM,IAAI,CAAClB,UAAUkC,MAAME,IAAAA,kBAAS,EAACN,WAAWG,GAAG;IAC/D,IAAMI,QAAQzB,aAAI,CAACM,IAAI,CAACiB,MAAMG,IAAAA,mBAAM,EAAC;IACrC,IAAMC,SAAS3B,aAAI,CAACM,IAAI,CAACiB,MAAMG,IAAAA,mBAAM,EAAC;IACtC,IAAME,OAAO5B,aAAI,CAACM,IAAI,CAACiB,MAAMG,IAAAA,mBAAM,EAAC;IAEpC,uBAAuB;IACvBG,sBAAM,CAACC,IAAI,CAAC9B,aAAI,CAACC,OAAO,CAACwB;IACzBjB,WAAE,CAACuB,aAAa,CAACN,OAAOO,IAAAA,4BAAS,EAACd,aAAa;IAC/Ce,IAAAA,qBAAU,EAACN;IAEX,oBAAoB;IACpB,IAAMO,WAAWtB,QAAQsB,QAAQ,IAAIxC,QAAQwC,QAAQ;IAErD,YAAY;IACZ,IAAI1C,MAAM2C,OAAO,CAACnC,aAAI,CAACoC,QAAQ,CAACF,UAAUG,WAAW,MAAM,GAAG,MAAM,IAAIrB,MAAM,AAAC,wCAA+D,OAAxBhB,aAAI,CAACoC,QAAQ,CAACF;IAEpI,yBAAyB;IACzB,IAAI,CAACI,sBAAE,CAACC,YAAY,EAAE;QACpB,IAAMC,UAAU5B,QAAQ6B,KAAK,KAAKrB,YAAY7B,mBAAmBqB,QAAQ6B,KAAK;QAC9E,IAAIC,MAAM,AAAC,IAAiBrC,OAAd6B,UAAS,OAAiBT,OAAZpB,QAAO,OAAgBsB,OAAXF,OAAM,OAAY,OAAPE,QAAO;QAC1De,OAAO,AAAC,GAAyCd,OAAvCnC,YAAY,MAAM,KAAI,mBAAsB,OAALmC;QACjDU,sBAAE,CAACK,IAAI,CAACD,KAAK;YAAE7C,KAAAA;QAAI;QACnB,MAAO,CAACU,WAAWqB,MAAO;YACxBa,IAAAA,0BAAK,EAACD;QACR;IACF,OAAO;QACLF,sBAAE,CAACC,YAAY,CAACL,UAAU;YAAC7B;YAAQoB;YAAOE;SAAO,EAAE;YAAE9B,KAAAA;QAAI;IAC3D;IACAoC,IAAAA,qBAAU,EAACR;IACXQ,IAAAA,qBAAU,EAACL;IAEX,wBAAwB;IACxB,IAAIgB;IACJ,IAAI;QACF,qDAAqD;QACrDA,MAAMC,KAAK,AAAC,IAAmC,OAAhCrC,WAAE,CAACsC,YAAY,CAACnB,QAAQ,SAAQ;QAC/CM,IAAAA,qBAAU,EAACN;IACb,EAAE,OAAOoB,KAAK;QACZ,MAAM,IAAI/B,MAAM,AAAC,8BAAuDH,OAA1BkC,IAAIC,OAAO,EAAC,gBAAsCd,OAAxBrB,UAAS,iBAAwB,OAATqB;IAClG;IAEA,8BAA8B;IAC9B,IAAIU,IAAIK,KAAK,EAAE;QACb,IAAMA,QAAQ,IAAIjC,MAAM4B,IAAIK,KAAK,CAACD,OAAO;QACzC,IAAK,IAAME,OAAON,IAAIK,KAAK,CAAEA,KAAK,CAACC,IAAI,GAAGN,IAAIK,KAAK,CAACC,IAAI;QACxD,MAAMD;IACR;IACA,oBAAoB;IACpB,OAAOL,IAAIO,KAAK;AAClB"}
"use strict";
require('../polyfills.cjs');
var fs = require('fs');

@@ -4,0 +3,0 @@ var serialize = require('serialize-javascript');

@@ -1,1 +0,1 @@

{"version":3,"sources":["/Users/kevin/Dev/OpenSource/node-version/function-exec-sync/src/workers/runFunction.cjs"],"sourcesContent":["require('../polyfills.cjs');\nconst fs = require('fs');\nconst serialize = require('serialize-javascript');\nconst compat = require('async-compat');\n\nconst input = process.argv[2];\nconst output = process.argv[3];\n\nfunction writeResult(result) {\n fs.writeFile(output, serialize(result), 'utf8', () => {\n process.exit(0);\n });\n}\n\nfunction writeError(error) {\n const result = { error: { message: error.message, stack: error.stack } };\n for (const key in error) result.error[key] = error[key];\n writeResult(result);\n}\n\n// get data\ntry {\n // biome-ignore lint/security/noGlobalEval: Serialize\n const workerData = eval(`(${fs.readFileSync(input, 'utf8')})`);\n\n // set up env\n if (process.cwd() !== workerData.cwd) process.chdir(workerData.cwd);\n for (const key in workerData.env) process.env[key] = workerData.env[key];\n\n // call function\n const fn = require(workerData.filePath);\n if (typeof fn !== 'function') {\n writeResult({ value: fn });\n } else {\n const args = [fn, workerData.callbacks].concat(workerData.args);\n args.push((err, value) => {\n err ? writeError(err) : writeResult({ value });\n });\n compat.asyncFunction.apply(null, args);\n }\n} catch (err) {\n writeError(err);\n}\n"],"names":["require","fs","serialize","compat","input","process","argv","output","writeResult","result","writeFile","exit","writeError","error","message","stack","key","workerData","eval","readFileSync","cwd","chdir","env","fn","filePath","value","args","callbacks","concat","push","err","asyncFunction","apply"],"mappings":";AAAAA,QAAQ;AACR,IAAMC,KAAKD,QAAQ;AACnB,IAAME,YAAYF,QAAQ;AAC1B,IAAMG,SAASH,QAAQ;AAEvB,IAAMI,QAAQC,QAAQC,IAAI,CAAC,EAAE;AAC7B,IAAMC,SAASF,QAAQC,IAAI,CAAC,EAAE;AAE9B,SAASE,YAAYC,MAAM;IACzBR,GAAGS,SAAS,CAACH,QAAQL,UAAUO,SAAS,QAAQ;QAC9CJ,QAAQM,IAAI,CAAC;IACf;AACF;AAEA,SAASC,WAAWC,KAAK;IACvB,IAAMJ,SAAS;QAAEI,OAAO;YAAEC,SAASD,MAAMC,OAAO;YAAEC,OAAOF,MAAME,KAAK;QAAC;IAAE;IACvE,IAAK,IAAMC,OAAOH,MAAOJ,OAAOI,KAAK,CAACG,IAAI,GAAGH,KAAK,CAACG,IAAI;IACvDR,YAAYC;AACd;AAEA,WAAW;AACX,IAAI;IACF,qDAAqD;IACrD,IAAMQ,aAAaC,KAAK,AAAC,IAAkC,OAA/BjB,GAAGkB,YAAY,CAACf,OAAO,SAAQ;IAE3D,aAAa;IACb,IAAIC,QAAQe,GAAG,OAAOH,WAAWG,GAAG,EAAEf,QAAQgB,KAAK,CAACJ,WAAWG,GAAG;IAClE,IAAK,IAAMJ,OAAOC,WAAWK,GAAG,CAAEjB,QAAQiB,GAAG,CAACN,IAAI,GAAGC,WAAWK,GAAG,CAACN,IAAI;IAExE,gBAAgB;IAChB,IAAMO,KAAKvB,QAAQiB,WAAWO,QAAQ;IACtC,IAAI,OAAOD,OAAO,YAAY;QAC5Bf,YAAY;YAAEiB,OAAOF;QAAG;IAC1B,OAAO;QACL,IAAMG,OAAO;YAACH;YAAIN,WAAWU,SAAS;SAAC,CAACC,MAAM,CAACX,WAAWS,IAAI;QAC9DA,KAAKG,IAAI,CAAC,SAACC,KAAKL;YACdK,MAAMlB,WAAWkB,OAAOtB,YAAY;gBAAEiB,OAAAA;YAAM;QAC9C;QACAtB,OAAO4B,aAAa,CAACC,KAAK,CAAC,MAAMN;IACnC;AACF,EAAE,OAAOI,KAAK;IACZlB,WAAWkB;AACb"}
{"version":3,"sources":["/Users/kevin/Dev/OpenSource/node-version/function-exec-sync/src/workers/runFunction.cjs"],"sourcesContent":["const fs = require('fs');\nconst serialize = require('serialize-javascript');\nconst compat = require('async-compat');\n\nconst input = process.argv[2];\nconst output = process.argv[3];\n\nfunction writeResult(result) {\n fs.writeFile(output, serialize(result), 'utf8', () => {\n process.exit(0);\n });\n}\n\nfunction writeError(error) {\n const result = { error: { message: error.message, stack: error.stack } };\n for (const key in error) result.error[key] = error[key];\n writeResult(result);\n}\n\n// get data\ntry {\n // biome-ignore lint/security/noGlobalEval: Serialize\n const workerData = eval(`(${fs.readFileSync(input, 'utf8')})`);\n\n // set up env\n if (process.cwd() !== workerData.cwd) process.chdir(workerData.cwd);\n for (const key in workerData.env) process.env[key] = workerData.env[key];\n\n // call function\n const fn = require(workerData.filePath);\n if (typeof fn !== 'function') {\n writeResult({ value: fn });\n } else {\n const args = [fn, workerData.callbacks].concat(workerData.args);\n args.push((err, value) => {\n err ? writeError(err) : writeResult({ value });\n });\n compat.asyncFunction.apply(null, args);\n }\n} catch (err) {\n writeError(err);\n}\n"],"names":["fs","require","serialize","compat","input","process","argv","output","writeResult","result","writeFile","exit","writeError","error","message","stack","key","workerData","eval","readFileSync","cwd","chdir","env","fn","filePath","value","args","callbacks","concat","push","err","asyncFunction","apply"],"mappings":";AAAA,IAAMA,KAAKC,QAAQ;AACnB,IAAMC,YAAYD,QAAQ;AAC1B,IAAME,SAASF,QAAQ;AAEvB,IAAMG,QAAQC,QAAQC,IAAI,CAAC,EAAE;AAC7B,IAAMC,SAASF,QAAQC,IAAI,CAAC,EAAE;AAE9B,SAASE,YAAYC,MAAM;IACzBT,GAAGU,SAAS,CAACH,QAAQL,UAAUO,SAAS,QAAQ;QAC9CJ,QAAQM,IAAI,CAAC;IACf;AACF;AAEA,SAASC,WAAWC,KAAK;IACvB,IAAMJ,SAAS;QAAEI,OAAO;YAAEC,SAASD,MAAMC,OAAO;YAAEC,OAAOF,MAAME,KAAK;QAAC;IAAE;IACvE,IAAK,IAAMC,OAAOH,MAAOJ,OAAOI,KAAK,CAACG,IAAI,GAAGH,KAAK,CAACG,IAAI;IACvDR,YAAYC;AACd;AAEA,WAAW;AACX,IAAI;IACF,qDAAqD;IACrD,IAAMQ,aAAaC,KAAK,AAAC,IAAkC,OAA/BlB,GAAGmB,YAAY,CAACf,OAAO,SAAQ;IAE3D,aAAa;IACb,IAAIC,QAAQe,GAAG,OAAOH,WAAWG,GAAG,EAAEf,QAAQgB,KAAK,CAACJ,WAAWG,GAAG;IAClE,IAAK,IAAMJ,OAAOC,WAAWK,GAAG,CAAEjB,QAAQiB,GAAG,CAACN,IAAI,GAAGC,WAAWK,GAAG,CAACN,IAAI;IAExE,gBAAgB;IAChB,IAAMO,KAAKtB,QAAQgB,WAAWO,QAAQ;IACtC,IAAI,OAAOD,OAAO,YAAY;QAC5Bf,YAAY;YAAEiB,OAAOF;QAAG;IAC1B,OAAO;QACL,IAAMG,OAAO;YAACH;YAAIN,WAAWU,SAAS;SAAC,CAACC,MAAM,CAACX,WAAWS,IAAI;QAC9DA,KAAKG,IAAI,CAAC,SAACC,KAAKL;YACdK,MAAMlB,WAAWkB,OAAOtB,YAAY;gBAAEiB,OAAAA;YAAM;QAC9C;QACAtB,OAAO4B,aAAa,CAACC,KAAK,CAAC,MAAMN;IACnC;AACF,EAAE,OAAOI,KAAK;IACZlB,WAAWkB;AACb"}

@@ -1,2 +0,1 @@

import './polyfills.cjs';
import type { ExecWorkerOptions } from './types.ts';

@@ -3,0 +2,0 @@ export type * from './types.ts';

@@ -1,2 +0,1 @@

import './polyfills.cjs';
import cp from 'child_process';

@@ -3,0 +2,0 @@ import fs from 'fs';

@@ -1,1 +0,1 @@

{"version":3,"sources":["/Users/kevin/Dev/OpenSource/node-version/function-exec-sync/src/index.ts"],"sourcesContent":["import './polyfills.cjs';\nimport cp from 'child_process';\nimport fs from 'fs';\nimport mkdirp from 'mkdirp-classic';\nimport os from 'os';\nimport osShim from 'os-shim';\nimport path from 'path';\nimport serialize from 'serialize-javascript';\nimport shortHash from 'short-hash';\nimport suffix from 'temp-suffix';\nimport sleep from 'thread-sleep-compat';\nimport url from 'url';\n\nconst tmpdir = os.tmpdir || osShim.tmpdir;\n\nconst DEFAULT_SLEEP_MS = 100;\nconst NODES = ['node', 'node.exe', 'node.cmd'];\nconst isWindows = process.platform === 'win32' || /^(msys|cygwin)$/.test(process.env.OSTYPE);\nconst __dirname = path.dirname(typeof __filename === 'undefined' ? url.fileURLToPath(import.meta.url) : __filename);\nconst worker = path.join(__dirname, 'workers', 'runFunction.cjs');\n\nimport unlinkSafe from './unlinkSafe.ts';\n\nconst existsSync = (test: string): boolean => {\n try {\n (fs.accessSync || fs.statSync)(test);\n return true;\n } catch (_) {\n return false;\n }\n};\n\nimport type { ExecWorkerOptions } from './types.ts';\n\ninterface NodeJSEnv extends NodeJS.ProcessEnv {\n NODE_OPTIONS: string;\n}\n\nexport type * from './types.ts';\nexport default function functionExecSync(filePath: string, ...args: unknown[]);\nexport default function functionExecSync(options: ExecWorkerOptions, filePath: string, ...args: unknown[]);\nexport default function functionExecSync(options: ExecWorkerOptions | string, filePath?: string | unknown[], ...args: unknown[]): unknown {\n if (typeof options === 'string') {\n args.unshift(filePath);\n filePath = options;\n options = null;\n }\n if (!filePath) throw new Error('function-exec-sync missing file');\n options = (options || {}) as ExecWorkerOptions;\n\n const env = { ...(options.env || process.env) } as NodeJSEnv;\n delete env.NODE_OPTIONS;\n const workerData = {\n filePath,\n args,\n callbacks: options.callbacks === undefined ? false : options.callbacks,\n env,\n cwd: options.cwd === undefined ? process.cwd() : options.cwd,\n };\n\n const name = options.name === undefined ? 'function-exec-sync' : options.name;\n const temp = path.join(tmpdir(), name, shortHash(workerData.cwd));\n const input = path.join(temp, suffix('input'));\n const output = path.join(temp, suffix('output'));\n const done = path.join(temp, suffix('done'));\n\n // store data to a file\n mkdirp.sync(path.dirname(input));\n fs.writeFileSync(input, serialize(workerData), 'utf8');\n unlinkSafe(output);\n\n // call the function\n const execPath = options.execPath || process.execPath;\n\n // only node\n if (NODES.indexOf(path.basename(execPath).toLowerCase()) < 0) throw new Error(`Expecting node executable. Received: ${path.basename(execPath)}`);\n\n // exec and start polling\n if (!cp.execFileSync) {\n const sleepMS = options.sleep === undefined ? DEFAULT_SLEEP_MS : options.sleep;\n let cmd = `\"${execPath}\" \"${worker}\" \"${input}\" \"${output}\"`;\n cmd += `${isWindows ? '&' : ';'} echo \"done\" > ${done}`;\n cp.exec(cmd, { env });\n while (!existsSync(done)) {\n sleep(sleepMS);\n }\n } else {\n cp.execFileSync(execPath, [worker, input, output], { env });\n }\n unlinkSafe(input);\n unlinkSafe(done);\n\n // get data and clean up\n let res: { error?: Error; value: unknown };\n try {\n // biome-ignore lint/security/noGlobalEval: Serialize\n res = eval(`(${fs.readFileSync(output, 'utf8')})`);\n unlinkSafe(output);\n } catch (err) {\n throw new Error(`function-exec-sync: Error: ${err.message}. Function: ${filePath}. Exec path: ${execPath}`);\n }\n\n // throw error from the worker\n if (res.error) {\n const error = new Error(res.error.message);\n for (const key in res.error) error[key] = res.error[key];\n throw error;\n }\n // return the result\n return res.value;\n}\n"],"names":["cp","fs","mkdirp","os","osShim","path","serialize","shortHash","suffix","sleep","url","tmpdir","DEFAULT_SLEEP_MS","NODES","isWindows","process","platform","test","env","OSTYPE","__dirname","dirname","__filename","fileURLToPath","worker","join","unlinkSafe","existsSync","accessSync","statSync","_","functionExecSync","options","filePath","args","unshift","Error","NODE_OPTIONS","workerData","callbacks","undefined","cwd","name","temp","input","output","done","sync","writeFileSync","execPath","indexOf","basename","toLowerCase","execFileSync","sleepMS","cmd","exec","res","eval","readFileSync","err","message","error","key","value"],"mappings":"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"}
{"version":3,"sources":["/Users/kevin/Dev/OpenSource/node-version/function-exec-sync/src/index.ts"],"sourcesContent":["import cp from 'child_process';\nimport fs from 'fs';\nimport mkdirp from 'mkdirp-classic';\nimport os from 'os';\nimport osShim from 'os-shim';\nimport path from 'path';\nimport serialize from 'serialize-javascript';\nimport shortHash from 'short-hash';\nimport suffix from 'temp-suffix';\nimport sleep from 'thread-sleep-compat';\nimport url from 'url';\n\nconst tmpdir = os.tmpdir || osShim.tmpdir;\n\nconst DEFAULT_SLEEP_MS = 100;\nconst NODES = ['node', 'node.exe', 'node.cmd'];\nconst isWindows = process.platform === 'win32' || /^(msys|cygwin)$/.test(process.env.OSTYPE);\nconst __dirname = path.dirname(typeof __filename === 'undefined' ? url.fileURLToPath(import.meta.url) : __filename);\nconst worker = path.join(__dirname, 'workers', 'runFunction.cjs');\n\nimport unlinkSafe from './unlinkSafe.ts';\n\nconst existsSync = (test: string): boolean => {\n try {\n (fs.accessSync || fs.statSync)(test);\n return true;\n } catch (_) {\n return false;\n }\n};\n\nimport type { ExecWorkerOptions } from './types.ts';\n\ninterface NodeJSEnv extends NodeJS.ProcessEnv {\n NODE_OPTIONS: string;\n}\n\nexport type * from './types.ts';\nexport default function functionExecSync(filePath: string, ...args: unknown[]);\nexport default function functionExecSync(options: ExecWorkerOptions, filePath: string, ...args: unknown[]);\nexport default function functionExecSync(options: ExecWorkerOptions | string, filePath?: string | unknown[], ...args: unknown[]): unknown {\n if (typeof options === 'string') {\n args.unshift(filePath);\n filePath = options;\n options = null;\n }\n if (!filePath) throw new Error('function-exec-sync missing file');\n options = (options || {}) as ExecWorkerOptions;\n\n const env = { ...(options.env || process.env) } as NodeJSEnv;\n delete env.NODE_OPTIONS;\n const workerData = {\n filePath,\n args,\n callbacks: options.callbacks === undefined ? false : options.callbacks,\n env,\n cwd: options.cwd === undefined ? process.cwd() : options.cwd,\n };\n\n const name = options.name === undefined ? 'function-exec-sync' : options.name;\n const temp = path.join(tmpdir(), name, shortHash(workerData.cwd));\n const input = path.join(temp, suffix('input'));\n const output = path.join(temp, suffix('output'));\n const done = path.join(temp, suffix('done'));\n\n // store data to a file\n mkdirp.sync(path.dirname(input));\n fs.writeFileSync(input, serialize(workerData), 'utf8');\n unlinkSafe(output);\n\n // call the function\n const execPath = options.execPath || process.execPath;\n\n // only node\n if (NODES.indexOf(path.basename(execPath).toLowerCase()) < 0) throw new Error(`Expecting node executable. Received: ${path.basename(execPath)}`);\n\n // exec and start polling\n if (!cp.execFileSync) {\n const sleepMS = options.sleep === undefined ? DEFAULT_SLEEP_MS : options.sleep;\n let cmd = `\"${execPath}\" \"${worker}\" \"${input}\" \"${output}\"`;\n cmd += `${isWindows ? '&' : ';'} echo \"done\" > ${done}`;\n cp.exec(cmd, { env });\n while (!existsSync(done)) {\n sleep(sleepMS);\n }\n } else {\n cp.execFileSync(execPath, [worker, input, output], { env });\n }\n unlinkSafe(input);\n unlinkSafe(done);\n\n // get data and clean up\n let res: { error?: Error; value: unknown };\n try {\n // biome-ignore lint/security/noGlobalEval: Serialize\n res = eval(`(${fs.readFileSync(output, 'utf8')})`);\n unlinkSafe(output);\n } catch (err) {\n throw new Error(`function-exec-sync: Error: ${err.message}. Function: ${filePath}. Exec path: ${execPath}`);\n }\n\n // throw error from the worker\n if (res.error) {\n const error = new Error(res.error.message);\n for (const key in res.error) error[key] = res.error[key];\n throw error;\n }\n // return the result\n return res.value;\n}\n"],"names":["cp","fs","mkdirp","os","osShim","path","serialize","shortHash","suffix","sleep","url","tmpdir","DEFAULT_SLEEP_MS","NODES","isWindows","process","platform","test","env","OSTYPE","__dirname","dirname","__filename","fileURLToPath","worker","join","unlinkSafe","existsSync","accessSync","statSync","_","functionExecSync","options","filePath","args","unshift","Error","NODE_OPTIONS","workerData","callbacks","undefined","cwd","name","temp","input","output","done","sync","writeFileSync","execPath","indexOf","basename","toLowerCase","execFileSync","sleepMS","cmd","exec","res","eval","readFileSync","err","message","error","key","value"],"mappings":"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"}

@@ -1,2 +0,1 @@

require('../polyfills.cjs');
const fs = require('fs');

@@ -3,0 +2,0 @@ const serialize = require('serialize-javascript');

@@ -1,1 +0,1 @@

{"version":3,"sources":["/Users/kevin/Dev/OpenSource/node-version/function-exec-sync/src/workers/runFunction.cjs"],"sourcesContent":["require('../polyfills.cjs');\nconst fs = require('fs');\nconst serialize = require('serialize-javascript');\nconst compat = require('async-compat');\n\nconst input = process.argv[2];\nconst output = process.argv[3];\n\nfunction writeResult(result) {\n fs.writeFile(output, serialize(result), 'utf8', () => {\n process.exit(0);\n });\n}\n\nfunction writeError(error) {\n const result = { error: { message: error.message, stack: error.stack } };\n for (const key in error) result.error[key] = error[key];\n writeResult(result);\n}\n\n// get data\ntry {\n // biome-ignore lint/security/noGlobalEval: Serialize\n const workerData = eval(`(${fs.readFileSync(input, 'utf8')})`);\n\n // set up env\n if (process.cwd() !== workerData.cwd) process.chdir(workerData.cwd);\n for (const key in workerData.env) process.env[key] = workerData.env[key];\n\n // call function\n const fn = require(workerData.filePath);\n if (typeof fn !== 'function') {\n writeResult({ value: fn });\n } else {\n const args = [fn, workerData.callbacks].concat(workerData.args);\n args.push((err, value) => {\n err ? writeError(err) : writeResult({ value });\n });\n compat.asyncFunction.apply(null, args);\n }\n} catch (err) {\n writeError(err);\n}\n"],"names":["require","fs","serialize","compat","input","process","argv","output","writeResult","result","writeFile","exit","writeError","error","message","stack","key","workerData","eval","readFileSync","cwd","chdir","env","fn","filePath","value","args","callbacks","concat","push","err","asyncFunction","apply"],"mappings":"AAAAA,QAAQ;AACR,MAAMC,KAAKD,QAAQ;AACnB,MAAME,YAAYF,QAAQ;AAC1B,MAAMG,SAASH,QAAQ;AAEvB,MAAMI,QAAQC,QAAQC,IAAI,CAAC,EAAE;AAC7B,MAAMC,SAASF,QAAQC,IAAI,CAAC,EAAE;AAE9B,SAASE,YAAYC,MAAM;IACzBR,GAAGS,SAAS,CAACH,QAAQL,UAAUO,SAAS,QAAQ;QAC9CJ,QAAQM,IAAI,CAAC;IACf;AACF;AAEA,SAASC,WAAWC,KAAK;IACvB,MAAMJ,SAAS;QAAEI,OAAO;YAAEC,SAASD,MAAMC,OAAO;YAAEC,OAAOF,MAAME,KAAK;QAAC;IAAE;IACvE,IAAK,MAAMC,OAAOH,MAAOJ,OAAOI,KAAK,CAACG,IAAI,GAAGH,KAAK,CAACG,IAAI;IACvDR,YAAYC;AACd;AAEA,WAAW;AACX,IAAI;IACF,qDAAqD;IACrD,MAAMQ,aAAaC,KAAK,CAAC,CAAC,EAAEjB,GAAGkB,YAAY,CAACf,OAAO,QAAQ,CAAC,CAAC;IAE7D,aAAa;IACb,IAAIC,QAAQe,GAAG,OAAOH,WAAWG,GAAG,EAAEf,QAAQgB,KAAK,CAACJ,WAAWG,GAAG;IAClE,IAAK,MAAMJ,OAAOC,WAAWK,GAAG,CAAEjB,QAAQiB,GAAG,CAACN,IAAI,GAAGC,WAAWK,GAAG,CAACN,IAAI;IAExE,gBAAgB;IAChB,MAAMO,KAAKvB,QAAQiB,WAAWO,QAAQ;IACtC,IAAI,OAAOD,OAAO,YAAY;QAC5Bf,YAAY;YAAEiB,OAAOF;QAAG;IAC1B,OAAO;QACL,MAAMG,OAAO;YAACH;YAAIN,WAAWU,SAAS;SAAC,CAACC,MAAM,CAACX,WAAWS,IAAI;QAC9DA,KAAKG,IAAI,CAAC,CAACC,KAAKL;YACdK,MAAMlB,WAAWkB,OAAOtB,YAAY;gBAAEiB;YAAM;QAC9C;QACAtB,OAAO4B,aAAa,CAACC,KAAK,CAAC,MAAMN;IACnC;AACF,EAAE,OAAOI,KAAK;IACZlB,WAAWkB;AACb"}
{"version":3,"sources":["/Users/kevin/Dev/OpenSource/node-version/function-exec-sync/src/workers/runFunction.cjs"],"sourcesContent":["const fs = require('fs');\nconst serialize = require('serialize-javascript');\nconst compat = require('async-compat');\n\nconst input = process.argv[2];\nconst output = process.argv[3];\n\nfunction writeResult(result) {\n fs.writeFile(output, serialize(result), 'utf8', () => {\n process.exit(0);\n });\n}\n\nfunction writeError(error) {\n const result = { error: { message: error.message, stack: error.stack } };\n for (const key in error) result.error[key] = error[key];\n writeResult(result);\n}\n\n// get data\ntry {\n // biome-ignore lint/security/noGlobalEval: Serialize\n const workerData = eval(`(${fs.readFileSync(input, 'utf8')})`);\n\n // set up env\n if (process.cwd() !== workerData.cwd) process.chdir(workerData.cwd);\n for (const key in workerData.env) process.env[key] = workerData.env[key];\n\n // call function\n const fn = require(workerData.filePath);\n if (typeof fn !== 'function') {\n writeResult({ value: fn });\n } else {\n const args = [fn, workerData.callbacks].concat(workerData.args);\n args.push((err, value) => {\n err ? writeError(err) : writeResult({ value });\n });\n compat.asyncFunction.apply(null, args);\n }\n} catch (err) {\n writeError(err);\n}\n"],"names":["fs","require","serialize","compat","input","process","argv","output","writeResult","result","writeFile","exit","writeError","error","message","stack","key","workerData","eval","readFileSync","cwd","chdir","env","fn","filePath","value","args","callbacks","concat","push","err","asyncFunction","apply"],"mappings":"AAAA,MAAMA,KAAKC,QAAQ;AACnB,MAAMC,YAAYD,QAAQ;AAC1B,MAAME,SAASF,QAAQ;AAEvB,MAAMG,QAAQC,QAAQC,IAAI,CAAC,EAAE;AAC7B,MAAMC,SAASF,QAAQC,IAAI,CAAC,EAAE;AAE9B,SAASE,YAAYC,MAAM;IACzBT,GAAGU,SAAS,CAACH,QAAQL,UAAUO,SAAS,QAAQ;QAC9CJ,QAAQM,IAAI,CAAC;IACf;AACF;AAEA,SAASC,WAAWC,KAAK;IACvB,MAAMJ,SAAS;QAAEI,OAAO;YAAEC,SAASD,MAAMC,OAAO;YAAEC,OAAOF,MAAME,KAAK;QAAC;IAAE;IACvE,IAAK,MAAMC,OAAOH,MAAOJ,OAAOI,KAAK,CAACG,IAAI,GAAGH,KAAK,CAACG,IAAI;IACvDR,YAAYC;AACd;AAEA,WAAW;AACX,IAAI;IACF,qDAAqD;IACrD,MAAMQ,aAAaC,KAAK,CAAC,CAAC,EAAElB,GAAGmB,YAAY,CAACf,OAAO,QAAQ,CAAC,CAAC;IAE7D,aAAa;IACb,IAAIC,QAAQe,GAAG,OAAOH,WAAWG,GAAG,EAAEf,QAAQgB,KAAK,CAACJ,WAAWG,GAAG;IAClE,IAAK,MAAMJ,OAAOC,WAAWK,GAAG,CAAEjB,QAAQiB,GAAG,CAACN,IAAI,GAAGC,WAAWK,GAAG,CAACN,IAAI;IAExE,gBAAgB;IAChB,MAAMO,KAAKtB,QAAQgB,WAAWO,QAAQ;IACtC,IAAI,OAAOD,OAAO,YAAY;QAC5Bf,YAAY;YAAEiB,OAAOF;QAAG;IAC1B,OAAO;QACL,MAAMG,OAAO;YAACH;YAAIN,WAAWU,SAAS;SAAC,CAACC,MAAM,CAACX,WAAWS,IAAI;QAC9DA,KAAKG,IAAI,CAAC,CAACC,KAAKL;YACdK,MAAMlB,WAAWkB,OAAOtB,YAAY;gBAAEiB;YAAM;QAC9C;QACAtB,OAAO4B,aAAa,CAACC,KAAK,CAAC,MAAMN;IACnC;AACF,EAAE,OAAOI,KAAK;IACZlB,WAAWkB;AACb"}
{
"name": "function-exec-sync",
"version": "1.3.4",
"version": "1.4.0",
"description": "Run a function in a node process",

@@ -42,2 +42,3 @@ "keywords": [

"format": "biome check --write --unsafe",
"postinstall": "patch-package",
"test": "mocha --no-timeouts test/**/*.test.*",

@@ -49,5 +50,5 @@ "test:engines": "nvu engines tsds test:node --no-timeouts",

"async-compat": "^1.6.16",
"core-js": "^3.43.0",
"mkdirp-classic": "^0.5.3",
"os-shim": "^0.1.3",
"patch-package": "^8.0.0",
"serialize-javascript": "6.0.2",

@@ -54,0 +55,0 @@ "short-hash": "^1.0.0",

"use strict";
require('core-js/actual/array/from');
require('core-js/actual/map');
require('core-js/actual/set');
if (!global.URL) global.URL = require('core-js/web/url');
// @ts-ignore
if (!global.BigInt) global.BigInt = function(v) {
return v;
}; // not supported
/* CJS INTEROP */ if (exports.__esModule && exports.default) { try { Object.defineProperty(exports.default, '__esModule', { value: true }); for (var key in exports) { exports.default[key] = exports[key]; } } catch (_) {}; module.exports = exports.default; }
{"version":3,"sources":["/Users/kevin/Dev/OpenSource/node-version/function-exec-sync/src/polyfills.cjs"],"sourcesContent":["require('core-js/actual/array/from');\nrequire('core-js/actual/map');\nrequire('core-js/actual/set');\nif (!global.URL) global.URL = require('core-js/web/url');\n// @ts-ignore\nif (!global.BigInt) global.BigInt = (v) => v; // not supported\n"],"names":["require","global","URL","BigInt","v"],"mappings":";AAAAA,QAAQ;AACRA,QAAQ;AACRA,QAAQ;AACR,IAAI,CAACC,OAAOC,GAAG,EAAED,OAAOC,GAAG,GAAGF,QAAQ;AACtC,aAAa;AACb,IAAI,CAACC,OAAOE,MAAM,EAAEF,OAAOE,MAAM,GAAG,SAACC;WAAMA;GAAG,gBAAgB"}
require('core-js/actual/array/from');
require('core-js/actual/map');
require('core-js/actual/set');
if (!global.URL) global.URL = require('core-js/web/url');
// @ts-ignore
if (!global.BigInt) global.BigInt = (v)=>v; // not supported
{"version":3,"sources":["/Users/kevin/Dev/OpenSource/node-version/function-exec-sync/src/polyfills.cjs"],"sourcesContent":["require('core-js/actual/array/from');\nrequire('core-js/actual/map');\nrequire('core-js/actual/set');\nif (!global.URL) global.URL = require('core-js/web/url');\n// @ts-ignore\nif (!global.BigInt) global.BigInt = (v) => v; // not supported\n"],"names":["require","global","URL","BigInt","v"],"mappings":"AAAAA,QAAQ;AACRA,QAAQ;AACRA,QAAQ;AACR,IAAI,CAACC,OAAOC,GAAG,EAAED,OAAOC,GAAG,GAAGF,QAAQ;AACtC,aAAa;AACb,IAAI,CAACC,OAAOE,MAAM,EAAEF,OAAOE,MAAM,GAAG,CAACC,IAAMA,GAAG,gBAAgB"}