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
2.0.2
to
2.1.0
+1
-1
dist/cjs/compat.js.map

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

{"version":3,"sources":["/Users/kevin/Dev/OpenSource/_later/function-exec-sync/src/compat.ts"],"sourcesContent":["/**\n * Compatibility Layer for Node.js 0.8+\n * Local to this package - contains only needed functions.\n */\nimport os from 'os';\n\nexport function tmpdir(): string {\n return typeof os.tmpdir === 'function' ? os.tmpdir() : require('os-shim').tmpdir();\n}\n"],"names":["tmpdir","os","require"],"mappings":"AAAA;;;CAGC;;;;+BAGeA;;;eAAAA;;;yDAFD;;;;;;AAER,SAASA;IACd,OAAO,OAAOC,WAAE,CAACD,MAAM,KAAK,aAAaC,WAAE,CAACD,MAAM,KAAKE,QAAQ,WAAWF,MAAM;AAClF"}
{"version":3,"sources":["/Users/kevin/Dev/OpenSource/node-version/function-exec-sync/src/compat.ts"],"sourcesContent":["/**\n * Compatibility Layer for Node.js 0.8+\n * Local to this package - contains only needed functions.\n */\nimport os from 'os';\n\nexport function tmpdir(): string {\n return typeof os.tmpdir === 'function' ? os.tmpdir() : require('os-shim').tmpdir();\n}\n"],"names":["tmpdir","os","require"],"mappings":"AAAA;;;CAGC;;;;+BAGeA;;;eAAAA;;;yDAFD;;;;;;AAER,SAASA;IACd,OAAO,OAAOC,WAAE,CAACD,MAAM,KAAK,aAAaC,WAAE,CAACD,MAAM,KAAKE,QAAQ,WAAWF,MAAM;AAClF"}

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

{"version":3,"sources":["/Users/kevin/Dev/OpenSource/_later/function-exec-sync/src/index.ts"],"sourcesContent":["import cp from 'child_process';\nimport fs from 'fs';\nimport mkdirp from 'mkdirp-classic';\nimport { supportsESM } from 'module-compat';\nimport path from 'path';\nimport shortHash from 'short-hash';\nimport suffix from 'temp-suffix';\nimport sleep from 'thread-sleep-compat';\nimport url from 'url';\nimport { tmpdir } from './compat.ts';\nimport serialize from './serialize-javascript.ts';\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);\n\n// Worker paths:\n// - ESM worker: can load ESM modules via import() on Node 12+\n// - CJS worker: loads CJS modules only, works on Node 0.8+\nconst esmWorker = path.join(__dirname, '..', 'esm', 'workers', 'runFunction.mjs');\nconst cjsWorker = path.join(__dirname, '..', 'cjs', '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 moduleType: options.moduleType || 'auto',\n interop: options.interop || 'default',\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 // Select worker based on target Node:\n // - Same process (execPath === process.execPath): use ESM worker if current Node supports ESM\n // - Different Node version: use CJS worker for maximum compatibility (target may be old Node)\n const isSameNode = execPath === process.execPath;\n const worker = isSameNode && supportsESM() ? esmWorker : cjsWorker;\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","DEFAULT_SLEEP_MS","NODES","isWindows","process","platform","test","env","OSTYPE","__dirname","path","dirname","__filename","url","fileURLToPath","esmWorker","join","cjsWorker","existsSync","fs","accessSync","statSync","_","options","filePath","args","unshift","Error","NODE_OPTIONS","workerData","callbacks","undefined","cwd","moduleType","interop","name","temp","tmpdir","shortHash","input","suffix","output","done","mkdirp","sync","writeFileSync","serialize","unlinkSafe","execPath","indexOf","basename","toLowerCase","isSameNode","worker","supportsESM","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 { supportsESM } from 'module-compat';\nimport path from 'path';\nimport shortHash from 'short-hash';\nimport suffix from 'temp-suffix';\nimport sleep from 'thread-sleep-compat';\nimport url from 'url';\nimport { tmpdir } from './compat.ts';\nimport serialize from './serialize-javascript.ts';\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);\n\n// Worker paths:\n// - ESM worker: can load ESM modules via import() on Node 12+\n// - CJS worker: loads CJS modules only, works on Node 0.8+\nconst esmWorker = path.join(__dirname, '..', 'esm', 'workers', 'runFunction.mjs');\nconst cjsWorker = path.join(__dirname, '..', 'cjs', '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 moduleType: options.moduleType || 'auto',\n interop: options.interop || 'default',\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 // Select worker based on target Node:\n // - Same process (execPath === process.execPath): use ESM worker if current Node supports ESM\n // - Different Node version: use CJS worker for maximum compatibility (target may be old Node)\n const isSameNode = execPath === process.execPath;\n const worker = isSameNode && supportsESM() ? esmWorker : cjsWorker;\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","DEFAULT_SLEEP_MS","NODES","isWindows","process","platform","test","env","OSTYPE","__dirname","path","dirname","__filename","url","fileURLToPath","esmWorker","join","cjsWorker","existsSync","fs","accessSync","statSync","_","options","filePath","args","unshift","Error","NODE_OPTIONS","workerData","callbacks","undefined","cwd","moduleType","interop","name","temp","tmpdir","shortHash","input","suffix","output","done","mkdirp","sync","writeFileSync","serialize","unlinkSafe","execPath","indexOf","basename","toLowerCase","isSameNode","worker","supportsESM","cp","execFileSync","sleepMS","sleep","cmd","exec","res","eval","readFileSync","err","message","error","key","value"],"mappings":"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"}

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

{"version":3,"sources":["/Users/kevin/Dev/OpenSource/_later/function-exec-sync/src/serialize-javascript.ts"],"sourcesContent":["// Patched for backwards compatiblity from: https://github.com/yahoo/serialize-javascript/blob/main/LICENSE\n\nconst hasMap = typeof Map !== 'undefined';\nconst hasSet = typeof Set !== 'undefined';\nconst hasURL = typeof URL !== 'undefined';\nconst hasBigInt = typeof BigInt !== 'undefined';\nconst isArray = Array.isArray || ((x: unknown) => Object.prototype.toString.call(x) === '[object Array]');\n\n/*\nCopyright (c) 2014, Yahoo! Inc. All rights reserved.\nCopyrights licensed under the New BSD License.\nSee the accompanying LICENSE file for terms.\n*/\n\nimport randomBytes from 'randombytes';\n\n// Generate an internal UID to make the regexp pattern harder to guess.\nconst UID_LENGTH = 16;\nconst UID = generateUID();\nconst PLACE_HOLDER_REGEXP = new RegExp(`(\\\\\\\\)?\"@__(F|R|D|M|S|A|U|I|B|L)-${UID}-(\\\\d+)__@\"`, 'g');\n\nconst IS_NATIVE_CODE_REGEXP = /\\{\\s*\\[native code\\]\\s*\\}/g;\nconst IS_PURE_FUNCTION = /function.*?\\(/;\nconst IS_ARROW_FUNCTION = /.*?=>.*?/;\nconst UNSAFE_CHARS_REGEXP = /[<>/\\u2028\\u2029]/g;\n\nconst RESERVED_SYMBOLS = ['*', 'async'];\n\n// Mapping of unsafe HTML and invalid JavaScript line terminator chars to their\n// Unicode char counterparts which are safe to use in JavaScript strings.\nconst ESCAPED_CHARS: Record<string, string> = {\n '<': '\\\\u003C',\n '>': '\\\\u003E',\n '/': '\\\\u002F',\n '\\u2028': '\\\\u2028',\n '\\u2029': '\\\\u2029',\n};\n\nfunction escapeUnsafeChars(unsafeChar: string): string {\n return ESCAPED_CHARS[unsafeChar];\n}\n\nfunction generateUID(): string {\n const bytes = randomBytes(UID_LENGTH);\n let result = '';\n for (let i = 0; i < UID_LENGTH; ++i) {\n result += bytes[i].toString(16);\n }\n return result;\n}\n\nfunction deleteFunctions(obj: Record<string, unknown>): void {\n const functionKeys: string[] = [];\n for (const key in obj) {\n if (typeof obj[key] === 'function') {\n functionKeys.push(key);\n }\n }\n for (let i = 0; i < functionKeys.length; i++) {\n delete obj[functionKeys[i]];\n }\n}\n\ninterface SerializeOptions {\n space?: number | string;\n isJSON?: boolean;\n unsafe?: boolean;\n ignoreFunction?: boolean;\n}\n\nexport default function serialize(obj: unknown, options?: SerializeOptions | number | string): string {\n let opts: SerializeOptions = {};\n if (options) {\n // Backwards-compatibility for `space` as the second argument.\n if (typeof options === 'number' || typeof options === 'string') {\n opts = { space: options };\n } else {\n opts = options;\n }\n }\n\n const functions: ((...args: unknown[]) => unknown)[] = [];\n const regexps: RegExp[] = [];\n const dates: Date[] = [];\n const maps: Map<unknown, unknown>[] = [];\n const sets: Set<unknown>[] = [];\n const arrays: unknown[][] = [];\n const undefs: undefined[] = [];\n const infinities: number[] = [];\n const bigInts: bigint[] = [];\n const urls: URL[] = [];\n\n // Returns placeholders for functions and regexps (identified by index)\n // which are later replaced by their string representation.\n function replacer(this: Record<string, unknown>, key: string, value: unknown): unknown {\n // For nested function\n if (opts.ignoreFunction) {\n deleteFunctions(value as Record<string, unknown>);\n }\n\n if (hasBigInt && !value && value !== undefined && value !== BigInt(0)) {\n return value;\n }\n\n // If the value is an object w/ a toJSON method, toJSON is called before\n // the replacer runs, so we use this[key] to get the non-toJSONed value.\n const origValue = this[key];\n const type = typeof origValue;\n\n if (type === 'object') {\n if (origValue instanceof RegExp) {\n return `@__R-${UID}-${regexps.push(origValue) - 1}__@`;\n }\n\n if (origValue instanceof Date) {\n return `@__D-${UID}-${dates.push(origValue) - 1}__@`;\n }\n\n if (hasMap && origValue instanceof Map) {\n return `@__M-${UID}-${maps.push(origValue) - 1}__@`;\n }\n\n if (hasSet && origValue instanceof Set) {\n return `@__S-${UID}-${sets.push(origValue) - 1}__@`;\n }\n\n if (isArray(origValue)) {\n const isSparse = (origValue as unknown[]).filter(() => true).length !== (origValue as unknown[]).length;\n if (isSparse) {\n return `@__A-${UID}-${arrays.push(origValue as unknown[]) - 1}__@`;\n }\n }\n\n if (hasURL && origValue instanceof URL) {\n return `@__L-${UID}-${urls.push(origValue) - 1}__@`;\n }\n }\n\n if (type === 'function') {\n return `@__F-${UID}-${functions.push(origValue as (...args: unknown[]) => unknown) - 1}__@`;\n }\n\n if (type === 'undefined') {\n return `@__U-${UID}-${undefs.push(origValue as undefined) - 1}__@`;\n }\n\n if (type === 'number' && !Number.isNaN(origValue as number) && !Number.isFinite(origValue as number)) {\n return `@__I-${UID}-${infinities.push(origValue as number) - 1}__@`;\n }\n\n if (type === 'bigint') {\n return `@__B-${UID}-${bigInts.push(origValue as bigint) - 1}__@`;\n }\n\n return value;\n }\n\n function serializeFunc(fn: (...args: unknown[]) => unknown): string {\n const serializedFn = fn.toString();\n if (IS_NATIVE_CODE_REGEXP.test(serializedFn)) {\n throw new TypeError(`Serializing native function: ${fn.name}`);\n }\n\n // pure functions, example: {key: function() {}}\n if (IS_PURE_FUNCTION.test(serializedFn)) {\n return serializedFn;\n }\n\n // arrow functions, example: arg1 => arg1+5\n if (IS_ARROW_FUNCTION.test(serializedFn)) {\n return serializedFn;\n }\n\n const argsStartsAt = serializedFn.indexOf('(');\n const def = serializedFn\n .substr(0, argsStartsAt)\n .trim()\n .split(' ')\n .filter((val) => val.length > 0);\n\n const nonReservedSymbols = def.filter((val) => RESERVED_SYMBOLS.indexOf(val) === -1);\n\n // enhanced literal objects, example: {key() {}}\n if (nonReservedSymbols.length > 0) {\n return `${def.indexOf('async') > -1 ? 'async ' : ''}function${def.join('').indexOf('*') > -1 ? '*' : ''}${serializedFn.substr(argsStartsAt)}`;\n }\n\n // arrow functions\n return serializedFn;\n }\n\n // Check if the parameter is function\n let objToSerialize = obj;\n if (opts.ignoreFunction && typeof objToSerialize === 'function') {\n objToSerialize = undefined;\n }\n // Protects against `JSON.stringify()` returning `undefined`, by serializing\n // to the literal string: \"undefined\".\n if (objToSerialize === undefined) {\n return String(objToSerialize);\n }\n\n let str: string | undefined;\n\n // Creates a JSON string representation of the value.\n // NOTE: Node 0.12 goes into slow mode with extra JSON.stringify() args.\n if (opts.isJSON && !opts.space) {\n str = JSON.stringify(objToSerialize);\n } else {\n str = JSON.stringify(objToSerialize, opts.isJSON ? null : replacer, opts.space);\n }\n\n // Protects against `JSON.stringify()` returning `undefined`, by serializing\n // to the literal string: \"undefined\".\n if (typeof str !== 'string') {\n return String(str);\n }\n\n // Replace unsafe HTML and invalid JavaScript line terminator chars with\n // their safe Unicode char counterpart. This _must_ happen before the\n // regexps and functions are serialized and added back to the string.\n if (opts.unsafe !== true) {\n str = str.replace(UNSAFE_CHARS_REGEXP, escapeUnsafeChars);\n }\n\n if (functions.length === 0 && regexps.length === 0 && dates.length === 0 && maps.length === 0 && sets.length === 0 && arrays.length === 0 && undefs.length === 0 && infinities.length === 0 && bigInts.length === 0 && urls.length === 0) {\n return str;\n }\n\n // Replaces all occurrences of function, regexp, date, map and set placeholders in the\n // JSON string with their string representations. If the original value can\n // not be found, then `undefined` is used.\n return str.replace(PLACE_HOLDER_REGEXP, (match, backSlash, type, valueIndex) => {\n // The placeholder may not be preceded by a backslash. This is to prevent\n // replacing things like `\"a\\\"@__R-<UID>-0__@\"` and thus outputting\n // invalid JS.\n if (backSlash) {\n return match;\n }\n\n if (type === 'D') {\n return `new Date(\"${dates[valueIndex].toISOString()}\")`;\n }\n\n if (type === 'R') {\n return `new RegExp(${serialize(regexps[valueIndex].source)}, \"${regexps[valueIndex].flags}\")`;\n }\n\n if (type === 'M') {\n return `new Map(${serialize(Array.from(maps[valueIndex].entries()), opts)})`;\n }\n\n if (type === 'S') {\n return `new Set(${serialize(Array.from(sets[valueIndex].values()), opts)})`;\n }\n\n if (type === 'A') {\n return `Array.prototype.slice.call(${serialize(Object.assign({ length: arrays[valueIndex].length }, arrays[valueIndex]), opts)})`;\n }\n\n if (type === 'U') {\n return 'undefined';\n }\n\n if (type === 'I') {\n return String(infinities[valueIndex]);\n }\n\n if (type === 'B') {\n return `BigInt(\"${bigInts[valueIndex]}\")`;\n }\n\n if (type === 'L') {\n return `new URL(${serialize(urls[valueIndex].toString(), opts)})`;\n }\n\n const fn = functions[valueIndex];\n\n return serializeFunc(fn);\n });\n}\n"],"names":["serialize","hasMap","Map","hasSet","Set","hasURL","URL","hasBigInt","BigInt","isArray","Array","x","Object","prototype","toString","call","UID_LENGTH","UID","generateUID","PLACE_HOLDER_REGEXP","RegExp","IS_NATIVE_CODE_REGEXP","IS_PURE_FUNCTION","IS_ARROW_FUNCTION","UNSAFE_CHARS_REGEXP","RESERVED_SYMBOLS","ESCAPED_CHARS","escapeUnsafeChars","unsafeChar","bytes","randomBytes","result","i","deleteFunctions","obj","functionKeys","key","push","length","options","opts","space","functions","regexps","dates","maps","sets","arrays","undefs","infinities","bigInts","urls","replacer","value","ignoreFunction","undefined","origValue","type","Date","isSparse","filter","Number","isNaN","isFinite","serializeFunc","fn","serializedFn","test","TypeError","name","argsStartsAt","indexOf","def","substr","trim","split","val","nonReservedSymbols","join","objToSerialize","String","str","isJSON","JSON","stringify","unsafe","replace","match","backSlash","valueIndex","toISOString","source","flags","from","entries","values","assign"],"mappings":"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"}
{"version":3,"sources":["/Users/kevin/Dev/OpenSource/node-version/function-exec-sync/src/serialize-javascript.ts"],"sourcesContent":["// Patched for backwards compatiblity from: https://github.com/yahoo/serialize-javascript/blob/main/LICENSE\n\nconst hasMap = typeof Map !== 'undefined';\nconst hasSet = typeof Set !== 'undefined';\nconst hasURL = typeof URL !== 'undefined';\nconst hasBigInt = typeof BigInt !== 'undefined';\nconst isArray = Array.isArray || ((x: unknown) => Object.prototype.toString.call(x) === '[object Array]');\n\n/*\nCopyright (c) 2014, Yahoo! Inc. All rights reserved.\nCopyrights licensed under the New BSD License.\nSee the accompanying LICENSE file for terms.\n*/\n\nimport randomBytes from 'randombytes';\n\n// Generate an internal UID to make the regexp pattern harder to guess.\nconst UID_LENGTH = 16;\nconst UID = generateUID();\nconst PLACE_HOLDER_REGEXP = new RegExp(`(\\\\\\\\)?\"@__(F|R|D|M|S|A|U|I|B|L)-${UID}-(\\\\d+)__@\"`, 'g');\n\nconst IS_NATIVE_CODE_REGEXP = /\\{\\s*\\[native code\\]\\s*\\}/g;\nconst IS_PURE_FUNCTION = /function.*?\\(/;\nconst IS_ARROW_FUNCTION = /.*?=>.*?/;\nconst UNSAFE_CHARS_REGEXP = /[<>/\\u2028\\u2029]/g;\n\nconst RESERVED_SYMBOLS = ['*', 'async'];\n\n// Mapping of unsafe HTML and invalid JavaScript line terminator chars to their\n// Unicode char counterparts which are safe to use in JavaScript strings.\nconst ESCAPED_CHARS: Record<string, string> = {\n '<': '\\\\u003C',\n '>': '\\\\u003E',\n '/': '\\\\u002F',\n '\\u2028': '\\\\u2028',\n '\\u2029': '\\\\u2029',\n};\n\nfunction escapeUnsafeChars(unsafeChar: string): string {\n return ESCAPED_CHARS[unsafeChar];\n}\n\nfunction generateUID(): string {\n const bytes = randomBytes(UID_LENGTH);\n let result = '';\n for (let i = 0; i < UID_LENGTH; ++i) {\n result += bytes[i].toString(16);\n }\n return result;\n}\n\nfunction deleteFunctions(obj: Record<string, unknown>): void {\n const functionKeys: string[] = [];\n for (const key in obj) {\n if (typeof obj[key] === 'function') {\n functionKeys.push(key);\n }\n }\n for (let i = 0; i < functionKeys.length; i++) {\n delete obj[functionKeys[i]];\n }\n}\n\ninterface SerializeOptions {\n space?: number | string;\n isJSON?: boolean;\n unsafe?: boolean;\n ignoreFunction?: boolean;\n}\n\nexport default function serialize(obj: unknown, options?: SerializeOptions | number | string): string {\n let opts: SerializeOptions = {};\n if (options) {\n // Backwards-compatibility for `space` as the second argument.\n if (typeof options === 'number' || typeof options === 'string') {\n opts = { space: options };\n } else {\n opts = options;\n }\n }\n\n const functions: ((...args: unknown[]) => unknown)[] = [];\n const regexps: RegExp[] = [];\n const dates: Date[] = [];\n const maps: Map<unknown, unknown>[] = [];\n const sets: Set<unknown>[] = [];\n const arrays: unknown[][] = [];\n const undefs: undefined[] = [];\n const infinities: number[] = [];\n const bigInts: bigint[] = [];\n const urls: URL[] = [];\n\n // Returns placeholders for functions and regexps (identified by index)\n // which are later replaced by their string representation.\n function replacer(this: Record<string, unknown>, key: string, value: unknown): unknown {\n // For nested function\n if (opts.ignoreFunction) {\n deleteFunctions(value as Record<string, unknown>);\n }\n\n if (hasBigInt && !value && value !== undefined && value !== BigInt(0)) {\n return value;\n }\n\n // If the value is an object w/ a toJSON method, toJSON is called before\n // the replacer runs, so we use this[key] to get the non-toJSONed value.\n const origValue = this[key];\n const type = typeof origValue;\n\n if (type === 'object') {\n if (origValue instanceof RegExp) {\n return `@__R-${UID}-${regexps.push(origValue) - 1}__@`;\n }\n\n if (origValue instanceof Date) {\n return `@__D-${UID}-${dates.push(origValue) - 1}__@`;\n }\n\n if (hasMap && origValue instanceof Map) {\n return `@__M-${UID}-${maps.push(origValue) - 1}__@`;\n }\n\n if (hasSet && origValue instanceof Set) {\n return `@__S-${UID}-${sets.push(origValue) - 1}__@`;\n }\n\n if (isArray(origValue)) {\n const isSparse = (origValue as unknown[]).filter(() => true).length !== (origValue as unknown[]).length;\n if (isSparse) {\n return `@__A-${UID}-${arrays.push(origValue as unknown[]) - 1}__@`;\n }\n }\n\n if (hasURL && origValue instanceof URL) {\n return `@__L-${UID}-${urls.push(origValue) - 1}__@`;\n }\n }\n\n if (type === 'function') {\n return `@__F-${UID}-${functions.push(origValue as (...args: unknown[]) => unknown) - 1}__@`;\n }\n\n if (type === 'undefined') {\n return `@__U-${UID}-${undefs.push(origValue as undefined) - 1}__@`;\n }\n\n if (type === 'number' && !Number.isNaN(origValue as number) && !Number.isFinite(origValue as number)) {\n return `@__I-${UID}-${infinities.push(origValue as number) - 1}__@`;\n }\n\n if (type === 'bigint') {\n return `@__B-${UID}-${bigInts.push(origValue as bigint) - 1}__@`;\n }\n\n return value;\n }\n\n function serializeFunc(fn: (...args: unknown[]) => unknown): string {\n const serializedFn = fn.toString();\n if (IS_NATIVE_CODE_REGEXP.test(serializedFn)) {\n throw new TypeError(`Serializing native function: ${fn.name}`);\n }\n\n // pure functions, example: {key: function() {}}\n if (IS_PURE_FUNCTION.test(serializedFn)) {\n return serializedFn;\n }\n\n // arrow functions, example: arg1 => arg1+5\n if (IS_ARROW_FUNCTION.test(serializedFn)) {\n return serializedFn;\n }\n\n const argsStartsAt = serializedFn.indexOf('(');\n const def = serializedFn\n .substr(0, argsStartsAt)\n .trim()\n .split(' ')\n .filter((val) => val.length > 0);\n\n const nonReservedSymbols = def.filter((val) => RESERVED_SYMBOLS.indexOf(val) === -1);\n\n // enhanced literal objects, example: {key() {}}\n if (nonReservedSymbols.length > 0) {\n return `${def.indexOf('async') > -1 ? 'async ' : ''}function${def.join('').indexOf('*') > -1 ? '*' : ''}${serializedFn.substr(argsStartsAt)}`;\n }\n\n // arrow functions\n return serializedFn;\n }\n\n // Check if the parameter is function\n let objToSerialize = obj;\n if (opts.ignoreFunction && typeof objToSerialize === 'function') {\n objToSerialize = undefined;\n }\n // Protects against `JSON.stringify()` returning `undefined`, by serializing\n // to the literal string: \"undefined\".\n if (objToSerialize === undefined) {\n return String(objToSerialize);\n }\n\n let str: string | undefined;\n\n // Creates a JSON string representation of the value.\n // NOTE: Node 0.12 goes into slow mode with extra JSON.stringify() args.\n if (opts.isJSON && !opts.space) {\n str = JSON.stringify(objToSerialize);\n } else {\n str = JSON.stringify(objToSerialize, opts.isJSON ? null : replacer, opts.space);\n }\n\n // Protects against `JSON.stringify()` returning `undefined`, by serializing\n // to the literal string: \"undefined\".\n if (typeof str !== 'string') {\n return String(str);\n }\n\n // Replace unsafe HTML and invalid JavaScript line terminator chars with\n // their safe Unicode char counterpart. This _must_ happen before the\n // regexps and functions are serialized and added back to the string.\n if (opts.unsafe !== true) {\n str = str.replace(UNSAFE_CHARS_REGEXP, escapeUnsafeChars);\n }\n\n if (functions.length === 0 && regexps.length === 0 && dates.length === 0 && maps.length === 0 && sets.length === 0 && arrays.length === 0 && undefs.length === 0 && infinities.length === 0 && bigInts.length === 0 && urls.length === 0) {\n return str;\n }\n\n // Replaces all occurrences of function, regexp, date, map and set placeholders in the\n // JSON string with their string representations. If the original value can\n // not be found, then `undefined` is used.\n return str.replace(PLACE_HOLDER_REGEXP, (match, backSlash, type, valueIndex) => {\n // The placeholder may not be preceded by a backslash. This is to prevent\n // replacing things like `\"a\\\"@__R-<UID>-0__@\"` and thus outputting\n // invalid JS.\n if (backSlash) {\n return match;\n }\n\n if (type === 'D') {\n return `new Date(\"${dates[valueIndex].toISOString()}\")`;\n }\n\n if (type === 'R') {\n return `new RegExp(${serialize(regexps[valueIndex].source)}, \"${regexps[valueIndex].flags}\")`;\n }\n\n if (type === 'M') {\n return `new Map(${serialize(Array.from(maps[valueIndex].entries()), opts)})`;\n }\n\n if (type === 'S') {\n return `new Set(${serialize(Array.from(sets[valueIndex].values()), opts)})`;\n }\n\n if (type === 'A') {\n return `Array.prototype.slice.call(${serialize(Object.assign({ length: arrays[valueIndex].length }, arrays[valueIndex]), opts)})`;\n }\n\n if (type === 'U') {\n return 'undefined';\n }\n\n if (type === 'I') {\n return String(infinities[valueIndex]);\n }\n\n if (type === 'B') {\n return `BigInt(\"${bigInts[valueIndex]}\")`;\n }\n\n if (type === 'L') {\n return `new URL(${serialize(urls[valueIndex].toString(), opts)})`;\n }\n\n const fn = functions[valueIndex];\n\n return serializeFunc(fn);\n });\n}\n"],"names":["serialize","hasMap","Map","hasSet","Set","hasURL","URL","hasBigInt","BigInt","isArray","Array","x","Object","prototype","toString","call","UID_LENGTH","UID","generateUID","PLACE_HOLDER_REGEXP","RegExp","IS_NATIVE_CODE_REGEXP","IS_PURE_FUNCTION","IS_ARROW_FUNCTION","UNSAFE_CHARS_REGEXP","RESERVED_SYMBOLS","ESCAPED_CHARS","escapeUnsafeChars","unsafeChar","bytes","randomBytes","result","i","deleteFunctions","obj","functionKeys","key","push","length","options","opts","space","functions","regexps","dates","maps","sets","arrays","undefs","infinities","bigInts","urls","replacer","value","ignoreFunction","undefined","origValue","type","Date","isSparse","filter","Number","isNaN","isFinite","serializeFunc","fn","serializedFn","test","TypeError","name","argsStartsAt","indexOf","def","substr","trim","split","val","nonReservedSymbols","join","objToSerialize","String","str","isJSON","JSON","stringify","unsafe","replace","match","backSlash","valueIndex","toISOString","source","flags","from","entries","values","assign"],"mappings":"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"}

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

{"version":3,"sources":["/Users/kevin/Dev/OpenSource/_later/function-exec-sync/src/unlinkSafe.ts"],"sourcesContent":["import fs from 'fs';\n\nexport default function unlinkSafe(filename: string): void {\n try {\n fs.unlinkSync(filename);\n } catch {\n // skip\n }\n}\n"],"names":["unlinkSafe","filename","fs","unlinkSync"],"mappings":";;;;+BAEA;;;eAAwBA;;;yDAFT;;;;;;AAEA,SAASA,WAAWC,QAAgB;IACjD,IAAI;QACFC,WAAE,CAACC,UAAU,CAACF;IAChB,EAAE,eAAM;IACN,OAAO;IACT;AACF"}
{"version":3,"sources":["/Users/kevin/Dev/OpenSource/node-version/function-exec-sync/src/unlinkSafe.ts"],"sourcesContent":["import fs from 'fs';\n\nexport default function unlinkSafe(filename: string): void {\n try {\n fs.unlinkSync(filename);\n } catch {\n // skip\n }\n}\n"],"names":["unlinkSafe","filename","fs","unlinkSync"],"mappings":";;;;+BAEA;;;eAAwBA;;;yDAFT;;;;;;AAEA,SAASA,WAAWC,QAAgB;IACjD,IAAI;QACFC,WAAE,CAACC,UAAU,CAACF;IAChB,EAAE,eAAM;IACN,OAAO;IACT;AACF"}

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

{"version":3,"sources":["/Users/kevin/Dev/OpenSource/_later/function-exec-sync/src/workers/runFunction.cts"],"sourcesContent":["// CJS worker - uses CJS build of module-compat\n// Only supports loading CJS modules (or ESM on Node 23+ via require)\n\nimport type { InteropMode, ModuleType } from 'module-compat';\n\nconst compat = require('async-compat');\nconst fs = require('fs');\nconst { loadModule } = require('module-compat');\nconst path = require('path');\n\nconst serialize = require(path.join(__dirname, '..', 'serialize-javascript.js'));\n\nconst input = process.argv[2];\nconst output = process.argv[3];\n\ninterface WorkerData {\n cwd: string;\n env: Record<string, string>;\n filePath: string;\n callbacks: boolean;\n args: unknown[];\n moduleType?: 'auto' | ModuleType;\n interop?: InteropMode;\n}\n\ninterface ResultValue {\n value?: unknown;\n error?: {\n message: string;\n stack?: string;\n [key: string]: unknown;\n };\n}\n\nfunction writeResult(result: ResultValue): void {\n fs.writeFile(output, serialize(result), 'utf8', () => {\n process.exit(0);\n });\n}\n\nfunction writeError(error: Error & Record<string, unknown>): void {\n const errorObj: ResultValue['error'] = { message: error.message, stack: error.stack };\n for (const key in error) errorObj[key] = error[key];\n writeResult({ error: errorObj });\n}\n\n// get data\ntry {\n // biome-ignore lint/security/noGlobalEval: Deserialize worker data\n const workerData: 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 // load and call function\n const loadOptions = {\n moduleType: workerData.moduleType || 'auto',\n interop: workerData.interop || 'default',\n };\n\n loadModule(workerData.filePath, loadOptions, (err: Error | null, fn: unknown) => {\n if (err) {\n writeError(err as Error & Record<string, unknown>);\n return;\n }\n\n if (typeof fn !== 'function') {\n writeResult({ value: fn });\n } else {\n const args: unknown[] = [fn as unknown, workerData.callbacks as unknown].concat(workerData.args);\n args.push((err: Error | null, value: unknown) => {\n err ? writeError(err as Error & Record<string, unknown>) : writeResult({ value });\n });\n compat.asyncFunction.apply(null, args);\n }\n });\n} catch (err) {\n writeError(err as Error & Record<string, unknown>);\n}\n"],"names":["compat","require","fs","loadModule","path","serialize","join","__dirname","input","process","argv","output","writeResult","result","writeFile","exit","writeError","error","errorObj","message","stack","key","workerData","eval","readFileSync","cwd","chdir","env","loadOptions","moduleType","interop","filePath","err","fn","value","args","callbacks","concat","push","asyncFunction","apply"],"mappings":"AAAA,+CAA+C;AAC/C,qEAAqE;;;;;AAIrE,IAAMA,SAASC,QAAQ;AACvB,IAAMC,KAAKD,QAAQ;AACnB,IAAM,AAAEE,aAAeF,QAAQ,iBAAvBE;AACR,IAAMC,OAAOH,QAAQ;AAErB,IAAMI,YAAYJ,QAAQG,KAAKE,IAAI,CAACC,WAAW,MAAM;AAErD,IAAMC,QAAQC,QAAQC,IAAI,CAAC,EAAE;AAC7B,IAAMC,SAASF,QAAQC,IAAI,CAAC,EAAE;AAqB9B,SAASE,YAAYC,MAAmB;IACtCX,GAAGY,SAAS,CAACH,QAAQN,UAAUQ,SAAS,QAAQ;QAC9CJ,QAAQM,IAAI,CAAC;IACf;AACF;AAEA,SAASC,WAAWC,KAAsC;IACxD,IAAMC,WAAiC;QAAEC,SAASF,MAAME,OAAO;QAAEC,OAAOH,MAAMG,KAAK;IAAC;IACpF,IAAK,IAAMC,OAAOJ,MAAOC,QAAQ,CAACG,IAAI,GAAGJ,KAAK,CAACI,IAAI;IACnDT,YAAY;QAAEK,OAAOC;IAAS;AAChC;AAEA,WAAW;AACX,IAAI;IACF,mEAAmE;IACnE,IAAMI,aAAyBC,KAAK,AAAC,IAAkC,OAA/BrB,GAAGsB,YAAY,CAAChB,OAAO,SAAQ;IAEvE,aAAa;IACb,IAAIC,QAAQgB,GAAG,OAAOH,WAAWG,GAAG,EAAEhB,QAAQiB,KAAK,CAACJ,WAAWG,GAAG;IAClE,IAAK,IAAMJ,OAAOC,WAAWK,GAAG,CAAElB,QAAQkB,GAAG,CAACN,IAAI,GAAGC,WAAWK,GAAG,CAACN,IAAI;IAExE,yBAAyB;IACzB,IAAMO,cAAc;QAClBC,YAAYP,WAAWO,UAAU,IAAI;QACrCC,SAASR,WAAWQ,OAAO,IAAI;IACjC;IAEA3B,WAAWmB,WAAWS,QAAQ,EAAEH,aAAa,SAACI,KAAmBC;QAC/D,IAAID,KAAK;YACPhB,WAAWgB;YACX;QACF;QAEA,IAAI,OAAOC,OAAO,YAAY;YAC5BrB,YAAY;gBAAEsB,OAAOD;YAAG;QAC1B,OAAO;YACL,IAAME,OAAkB;gBAACF;gBAAeX,WAAWc,SAAS;aAAY,CAACC,MAAM,CAACf,WAAWa,IAAI;YAC/FA,KAAKG,IAAI,CAAC,SAACN,KAAmBE;gBAC5BF,MAAMhB,WAAWgB,OAA0CpB,YAAY;oBAAEsB,OAAAA;gBAAM;YACjF;YACAlC,OAAOuC,aAAa,CAACC,KAAK,CAAC,MAAML;QACnC;IACF;AACF,EAAE,OAAOH,KAAK;IACZhB,WAAWgB;AACb"}
{"version":3,"sources":["/Users/kevin/Dev/OpenSource/node-version/function-exec-sync/src/workers/runFunction.cts"],"sourcesContent":["// CJS worker - uses CJS build of module-compat\n// Only supports loading CJS modules (or ESM on Node 23+ via require)\n\nimport type { InteropMode, ModuleType } from 'module-compat';\n\nconst compat = require('async-compat');\nconst fs = require('fs');\nconst { loadModule } = require('module-compat');\nconst path = require('path');\n\nconst serialize = require(path.join(__dirname, '..', 'serialize-javascript.js'));\n\nconst input = process.argv[2];\nconst output = process.argv[3];\n\ninterface WorkerData {\n cwd: string;\n env: Record<string, string>;\n filePath: string;\n callbacks: boolean;\n args: unknown[];\n moduleType?: 'auto' | ModuleType;\n interop?: InteropMode;\n}\n\ninterface ResultValue {\n value?: unknown;\n error?: {\n message: string;\n stack?: string;\n [key: string]: unknown;\n };\n}\n\nfunction writeResult(result: ResultValue): void {\n fs.writeFile(output, serialize(result), 'utf8', () => {\n process.exit(0);\n });\n}\n\nfunction writeError(error: Error & Record<string, unknown>): void {\n const errorObj: ResultValue['error'] = { message: error.message, stack: error.stack };\n for (const key in error) errorObj[key] = error[key];\n writeResult({ error: errorObj });\n}\n\n// get data\ntry {\n // biome-ignore lint/security/noGlobalEval: Deserialize worker data\n const workerData: 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 // load and call function\n const loadOptions = {\n moduleType: workerData.moduleType || 'auto',\n interop: workerData.interop || 'default',\n };\n\n loadModule(workerData.filePath, loadOptions, (err: Error | null, fn: unknown) => {\n if (err) {\n writeError(err as Error & Record<string, unknown>);\n return;\n }\n\n if (typeof fn !== 'function') {\n writeResult({ value: fn });\n } else {\n const args: unknown[] = [fn as unknown, workerData.callbacks as unknown].concat(workerData.args);\n args.push((err: Error | null, value: unknown) => {\n err ? writeError(err as Error & Record<string, unknown>) : writeResult({ value });\n });\n compat.asyncFunction.apply(null, args);\n }\n });\n} catch (err) {\n writeError(err as Error & Record<string, unknown>);\n}\n"],"names":["compat","require","fs","loadModule","path","serialize","join","__dirname","input","process","argv","output","writeResult","result","writeFile","exit","writeError","error","errorObj","message","stack","key","workerData","eval","readFileSync","cwd","chdir","env","loadOptions","moduleType","interop","filePath","err","fn","value","args","callbacks","concat","push","asyncFunction","apply"],"mappings":"AAAA,+CAA+C;AAC/C,qEAAqE;;;;;AAIrE,IAAMA,SAASC,QAAQ;AACvB,IAAMC,KAAKD,QAAQ;AACnB,IAAM,AAAEE,aAAeF,QAAQ,iBAAvBE;AACR,IAAMC,OAAOH,QAAQ;AAErB,IAAMI,YAAYJ,QAAQG,KAAKE,IAAI,CAACC,WAAW,MAAM;AAErD,IAAMC,QAAQC,QAAQC,IAAI,CAAC,EAAE;AAC7B,IAAMC,SAASF,QAAQC,IAAI,CAAC,EAAE;AAqB9B,SAASE,YAAYC,MAAmB;IACtCX,GAAGY,SAAS,CAACH,QAAQN,UAAUQ,SAAS,QAAQ;QAC9CJ,QAAQM,IAAI,CAAC;IACf;AACF;AAEA,SAASC,WAAWC,KAAsC;IACxD,IAAMC,WAAiC;QAAEC,SAASF,MAAME,OAAO;QAAEC,OAAOH,MAAMG,KAAK;IAAC;IACpF,IAAK,IAAMC,OAAOJ,MAAOC,QAAQ,CAACG,IAAI,GAAGJ,KAAK,CAACI,IAAI;IACnDT,YAAY;QAAEK,OAAOC;IAAS;AAChC;AAEA,WAAW;AACX,IAAI;IACF,mEAAmE;IACnE,IAAMI,aAAyBC,KAAK,AAAC,IAAkC,OAA/BrB,GAAGsB,YAAY,CAAChB,OAAO,SAAQ;IAEvE,aAAa;IACb,IAAIC,QAAQgB,GAAG,OAAOH,WAAWG,GAAG,EAAEhB,QAAQiB,KAAK,CAACJ,WAAWG,GAAG;IAClE,IAAK,IAAMJ,OAAOC,WAAWK,GAAG,CAAElB,QAAQkB,GAAG,CAACN,IAAI,GAAGC,WAAWK,GAAG,CAACN,IAAI;IAExE,yBAAyB;IACzB,IAAMO,cAAc;QAClBC,YAAYP,WAAWO,UAAU,IAAI;QACrCC,SAASR,WAAWQ,OAAO,IAAI;IACjC;IAEA3B,WAAWmB,WAAWS,QAAQ,EAAEH,aAAa,SAACI,KAAmBC;QAC/D,IAAID,KAAK;YACPhB,WAAWgB;YACX;QACF;QAEA,IAAI,OAAOC,OAAO,YAAY;YAC5BrB,YAAY;gBAAEsB,OAAOD;YAAG;QAC1B,OAAO;YACL,IAAME,OAAkB;gBAACF;gBAAeX,WAAWc,SAAS;aAAY,CAACC,MAAM,CAACf,WAAWa,IAAI;YAC/FA,KAAKG,IAAI,CAAC,SAACN,KAAmBE;gBAC5BF,MAAMhB,WAAWgB,OAA0CpB,YAAY;oBAAEsB,OAAAA;gBAAM;YACjF;YACAlC,OAAOuC,aAAa,CAACC,KAAK,CAAC,MAAML;QACnC;IACF;AACF,EAAE,OAAOH,KAAK;IACZhB,WAAWgB;AACb"}

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

{"version":3,"sources":["/Users/kevin/Dev/OpenSource/_later/function-exec-sync/src/workers/runFunction.mts"],"sourcesContent":["import compat from 'async-compat';\nimport fs from 'fs';\nimport Module from 'module';\nimport type { InteropMode, ModuleType } from 'module-compat';\nimport { loadModule } from 'module-compat';\nimport path from 'path';\nimport url from 'url';\n\n// ESM worker - uses ESM build of module-compat\n// Supports loading both CJS and ESM modules via import()\nconst _require = Module.createRequire(import.meta.url);\nconst __dirname = path.dirname(url.fileURLToPath(import.meta.url));\n\n// Require serialize from CJS dist (ESM dist files can't be required on Node 12-22)\nconst serialize = _require(path.join(__dirname, '..', '..', 'cjs', 'serialize-javascript.js'));\n\nconst input = process.argv[2];\nconst output = process.argv[3];\n\ninterface WorkerData {\n cwd: string;\n env: Record<string, string>;\n filePath: string;\n callbacks: boolean;\n args: unknown[];\n moduleType?: 'auto' | ModuleType;\n interop?: InteropMode;\n}\n\ninterface ResultValue {\n value?: unknown;\n error?: {\n message: string;\n stack?: string;\n [key: string]: unknown;\n };\n}\n\nfunction writeResult(result: ResultValue): void {\n fs.writeFile(output, serialize(result), 'utf8', () => {\n process.exit(0);\n });\n}\n\nfunction writeError(error: Error & Record<string, unknown>): void {\n const errorObj: ResultValue['error'] = { message: error.message, stack: error.stack };\n for (const key in error) errorObj[key] = error[key];\n writeResult({ error: errorObj });\n}\n\n// get data\ntry {\n // biome-ignore lint/security/noGlobalEval: Deserialize worker data\n const workerData: 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 // load and call function\n const loadOptions = {\n moduleType: workerData.moduleType || 'auto',\n interop: workerData.interop || 'default',\n };\n\n loadModule(workerData.filePath, loadOptions, (err, fn) => {\n if (err) {\n writeError(err as Error & Record<string, unknown>);\n return;\n }\n\n if (typeof fn !== 'function') {\n writeResult({ value: fn });\n } else {\n const args: unknown[] = [fn, workerData.callbacks, ...workerData.args];\n args.push((err: Error | null, value: unknown) => {\n err ? writeError(err as Error & Record<string, unknown>) : writeResult({ value });\n });\n compat.asyncFunction.apply(null, args as Parameters<typeof compat.asyncFunction>);\n }\n });\n} catch (err) {\n writeError(err as Error & Record<string, unknown>);\n}\n"],"names":["_require","Module","createRequire","__dirname","path","dirname","url","fileURLToPath","serialize","join","input","process","argv","output","writeResult","result","fs","writeFile","exit","writeError","error","errorObj","message","stack","key","workerData","eval","readFileSync","cwd","chdir","env","loadOptions","moduleType","interop","loadModule","filePath","err","fn","value","args","callbacks","push","compat","asyncFunction","apply"],"mappings":";;;;kEAAmB;yDACJ;6DACI;4BAEQ;2DACV;0DACD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEhB,+CAA+C;AAC/C,yDAAyD;AACzD,IAAMA,WAAWC,eAAM,CAACC,aAAa,CAAC;AACtC,IAAMC,YAAYC,aAAI,CAACC,OAAO,CAACC,YAAG,CAACC,aAAa,CAAC;AAEjD,mFAAmF;AACnF,IAAMC,YAAYR,SAASI,aAAI,CAACK,IAAI,CAACN,WAAW,MAAM,MAAM,OAAO;AAEnE,IAAMO,QAAQC,QAAQC,IAAI,CAAC,EAAE;AAC7B,IAAMC,SAASF,QAAQC,IAAI,CAAC,EAAE;AAqB9B,SAASE,YAAYC,MAAmB;IACtCC,WAAE,CAACC,SAAS,CAACJ,QAAQL,UAAUO,SAAS,QAAQ;QAC9CJ,QAAQO,IAAI,CAAC;IACf;AACF;AAEA,SAASC,WAAWC,KAAsC;IACxD,IAAMC,WAAiC;QAAEC,SAASF,MAAME,OAAO;QAAEC,OAAOH,MAAMG,KAAK;IAAC;IACpF,IAAK,IAAMC,OAAOJ,MAAOC,QAAQ,CAACG,IAAI,GAAGJ,KAAK,CAACI,IAAI;IACnDV,YAAY;QAAEM,OAAOC;IAAS;AAChC;AAEA,WAAW;AACX,IAAI;IACF,mEAAmE;IACnE,IAAMI,aAAyBC,KAAK,AAAC,IAAkC,OAA/BV,WAAE,CAACW,YAAY,CAACjB,OAAO,SAAQ;IAEvE,aAAa;IACb,IAAIC,QAAQiB,GAAG,OAAOH,WAAWG,GAAG,EAAEjB,QAAQkB,KAAK,CAACJ,WAAWG,GAAG;IAClE,IAAK,IAAMJ,OAAOC,WAAWK,GAAG,CAAEnB,QAAQmB,GAAG,CAACN,IAAI,GAAGC,WAAWK,GAAG,CAACN,IAAI;IAExE,yBAAyB;IACzB,IAAMO,cAAc;QAClBC,YAAYP,WAAWO,UAAU,IAAI;QACrCC,SAASR,WAAWQ,OAAO,IAAI;IACjC;IAEAC,IAAAA,wBAAU,EAACT,WAAWU,QAAQ,EAAEJ,aAAa,SAACK,KAAKC;QACjD,IAAID,KAAK;YACPjB,WAAWiB;YACX;QACF;QAEA,IAAI,OAAOC,OAAO,YAAY;YAC5BvB,YAAY;gBAAEwB,OAAOD;YAAG;QAC1B,OAAO;YACL,IAAME,OAAkB;gBAACF;gBAAIZ,WAAWe,SAAS;aAAqB,CAA9C,OAA2B,qBAAGf,WAAWc,IAAI;YACrEA,KAAKE,IAAI,CAAC,SAACL,KAAmBE;gBAC5BF,MAAMjB,WAAWiB,OAA0CtB,YAAY;oBAAEwB,OAAAA;gBAAM;YACjF;YACAI,oBAAM,CAACC,aAAa,CAACC,KAAK,CAAC,MAAML;QACnC;IACF;AACF,EAAE,OAAOH,KAAK;IACZjB,WAAWiB;AACb"}
{"version":3,"sources":["/Users/kevin/Dev/OpenSource/node-version/function-exec-sync/src/workers/runFunction.mts"],"sourcesContent":["import compat from 'async-compat';\nimport fs from 'fs';\nimport Module from 'module';\nimport type { InteropMode, ModuleType } from 'module-compat';\nimport { loadModule } from 'module-compat';\nimport path from 'path';\nimport url from 'url';\n\n// ESM worker - uses ESM build of module-compat\n// Supports loading both CJS and ESM modules via import()\nconst _require = Module.createRequire(import.meta.url);\nconst __dirname = path.dirname(url.fileURLToPath(import.meta.url));\n\n// Require serialize from CJS dist (ESM dist files can't be required on Node 12-22)\nconst serialize = _require(path.join(__dirname, '..', '..', 'cjs', 'serialize-javascript.js'));\n\nconst input = process.argv[2];\nconst output = process.argv[3];\n\ninterface WorkerData {\n cwd: string;\n env: Record<string, string>;\n filePath: string;\n callbacks: boolean;\n args: unknown[];\n moduleType?: 'auto' | ModuleType;\n interop?: InteropMode;\n}\n\ninterface ResultValue {\n value?: unknown;\n error?: {\n message: string;\n stack?: string;\n [key: string]: unknown;\n };\n}\n\nfunction writeResult(result: ResultValue): void {\n fs.writeFile(output, serialize(result), 'utf8', () => {\n process.exit(0);\n });\n}\n\nfunction writeError(error: Error & Record<string, unknown>): void {\n const errorObj: ResultValue['error'] = { message: error.message, stack: error.stack };\n for (const key in error) errorObj[key] = error[key];\n writeResult({ error: errorObj });\n}\n\n// get data\ntry {\n // biome-ignore lint/security/noGlobalEval: Deserialize worker data\n const workerData: 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 // load and call function\n const loadOptions = {\n moduleType: workerData.moduleType || 'auto',\n interop: workerData.interop || 'default',\n };\n\n loadModule(workerData.filePath, loadOptions, (err, fn) => {\n if (err) {\n writeError(err as Error & Record<string, unknown>);\n return;\n }\n\n if (typeof fn !== 'function') {\n writeResult({ value: fn });\n } else {\n const args: unknown[] = [fn, workerData.callbacks, ...workerData.args];\n args.push((err: Error | null, value: unknown) => {\n err ? writeError(err as Error & Record<string, unknown>) : writeResult({ value });\n });\n compat.asyncFunction.apply(null, args as Parameters<typeof compat.asyncFunction>);\n }\n });\n} catch (err) {\n writeError(err as Error & Record<string, unknown>);\n}\n"],"names":["_require","Module","createRequire","__dirname","path","dirname","url","fileURLToPath","serialize","join","input","process","argv","output","writeResult","result","fs","writeFile","exit","writeError","error","errorObj","message","stack","key","workerData","eval","readFileSync","cwd","chdir","env","loadOptions","moduleType","interop","loadModule","filePath","err","fn","value","args","callbacks","push","compat","asyncFunction","apply"],"mappings":";;;;kEAAmB;yDACJ;6DACI;4BAEQ;2DACV;0DACD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEhB,+CAA+C;AAC/C,yDAAyD;AACzD,IAAMA,WAAWC,eAAM,CAACC,aAAa,CAAC;AACtC,IAAMC,YAAYC,aAAI,CAACC,OAAO,CAACC,YAAG,CAACC,aAAa,CAAC;AAEjD,mFAAmF;AACnF,IAAMC,YAAYR,SAASI,aAAI,CAACK,IAAI,CAACN,WAAW,MAAM,MAAM,OAAO;AAEnE,IAAMO,QAAQC,QAAQC,IAAI,CAAC,EAAE;AAC7B,IAAMC,SAASF,QAAQC,IAAI,CAAC,EAAE;AAqB9B,SAASE,YAAYC,MAAmB;IACtCC,WAAE,CAACC,SAAS,CAACJ,QAAQL,UAAUO,SAAS,QAAQ;QAC9CJ,QAAQO,IAAI,CAAC;IACf;AACF;AAEA,SAASC,WAAWC,KAAsC;IACxD,IAAMC,WAAiC;QAAEC,SAASF,MAAME,OAAO;QAAEC,OAAOH,MAAMG,KAAK;IAAC;IACpF,IAAK,IAAMC,OAAOJ,MAAOC,QAAQ,CAACG,IAAI,GAAGJ,KAAK,CAACI,IAAI;IACnDV,YAAY;QAAEM,OAAOC;IAAS;AAChC;AAEA,WAAW;AACX,IAAI;IACF,mEAAmE;IACnE,IAAMI,aAAyBC,KAAK,AAAC,IAAkC,OAA/BV,WAAE,CAACW,YAAY,CAACjB,OAAO,SAAQ;IAEvE,aAAa;IACb,IAAIC,QAAQiB,GAAG,OAAOH,WAAWG,GAAG,EAAEjB,QAAQkB,KAAK,CAACJ,WAAWG,GAAG;IAClE,IAAK,IAAMJ,OAAOC,WAAWK,GAAG,CAAEnB,QAAQmB,GAAG,CAACN,IAAI,GAAGC,WAAWK,GAAG,CAACN,IAAI;IAExE,yBAAyB;IACzB,IAAMO,cAAc;QAClBC,YAAYP,WAAWO,UAAU,IAAI;QACrCC,SAASR,WAAWQ,OAAO,IAAI;IACjC;IAEAC,IAAAA,wBAAU,EAACT,WAAWU,QAAQ,EAAEJ,aAAa,SAACK,KAAKC;QACjD,IAAID,KAAK;YACPjB,WAAWiB;YACX;QACF;QAEA,IAAI,OAAOC,OAAO,YAAY;YAC5BvB,YAAY;gBAAEwB,OAAOD;YAAG;QAC1B,OAAO;YACL,IAAME,OAAkB;gBAACF;gBAAIZ,WAAWe,SAAS;aAAqB,CAA9C,OAA2B,qBAAGf,WAAWc,IAAI;YACrEA,KAAKE,IAAI,CAAC,SAACL,KAAmBE;gBAC5BF,MAAMjB,WAAWiB,OAA0CtB,YAAY;oBAAEwB,OAAAA;gBAAM;YACjF;YACAI,oBAAM,CAACC,aAAa,CAACC,KAAK,CAAC,MAAML;QACnC;IACF;AACF,EAAE,OAAOH,KAAK;IACZjB,WAAWiB;AACb"}

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

{"version":3,"sources":["/Users/kevin/Dev/OpenSource/_later/function-exec-sync/src/compat.ts"],"sourcesContent":["/**\n * Compatibility Layer for Node.js 0.8+\n * Local to this package - contains only needed functions.\n */\nimport os from 'os';\n\nexport function tmpdir(): string {\n return typeof os.tmpdir === 'function' ? os.tmpdir() : require('os-shim').tmpdir();\n}\n"],"names":["os","tmpdir","require"],"mappings":"AAAA;;;CAGC,GACD,OAAOA,QAAQ,KAAK;AAEpB,OAAO,SAASC;IACd,OAAO,OAAOD,GAAGC,MAAM,KAAK,aAAaD,GAAGC,MAAM,KAAKC,QAAQ,WAAWD,MAAM;AAClF"}
{"version":3,"sources":["/Users/kevin/Dev/OpenSource/node-version/function-exec-sync/src/compat.ts"],"sourcesContent":["/**\n * Compatibility Layer for Node.js 0.8+\n * Local to this package - contains only needed functions.\n */\nimport os from 'os';\n\nexport function tmpdir(): string {\n return typeof os.tmpdir === 'function' ? os.tmpdir() : require('os-shim').tmpdir();\n}\n"],"names":["os","tmpdir","require"],"mappings":"AAAA;;;CAGC,GACD,OAAOA,QAAQ,KAAK;AAEpB,OAAO,SAASC;IACd,OAAO,OAAOD,GAAGC,MAAM,KAAK,aAAaD,GAAGC,MAAM,KAAKC,QAAQ,WAAWD,MAAM;AAClF"}

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

{"version":3,"sources":["/Users/kevin/Dev/OpenSource/_later/function-exec-sync/src/index.ts"],"sourcesContent":["import cp from 'child_process';\nimport fs from 'fs';\nimport mkdirp from 'mkdirp-classic';\nimport { supportsESM } from 'module-compat';\nimport path from 'path';\nimport shortHash from 'short-hash';\nimport suffix from 'temp-suffix';\nimport sleep from 'thread-sleep-compat';\nimport url from 'url';\nimport { tmpdir } from './compat.ts';\nimport serialize from './serialize-javascript.ts';\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);\n\n// Worker paths:\n// - ESM worker: can load ESM modules via import() on Node 12+\n// - CJS worker: loads CJS modules only, works on Node 0.8+\nconst esmWorker = path.join(__dirname, '..', 'esm', 'workers', 'runFunction.mjs');\nconst cjsWorker = path.join(__dirname, '..', 'cjs', '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 moduleType: options.moduleType || 'auto',\n interop: options.interop || 'default',\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 // Select worker based on target Node:\n // - Same process (execPath === process.execPath): use ESM worker if current Node supports ESM\n // - Different Node version: use CJS worker for maximum compatibility (target may be old Node)\n const isSameNode = execPath === process.execPath;\n const worker = isSameNode && supportsESM() ? esmWorker : cjsWorker;\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","supportsESM","path","shortHash","suffix","sleep","url","tmpdir","serialize","DEFAULT_SLEEP_MS","NODES","isWindows","process","platform","test","env","OSTYPE","__dirname","dirname","__filename","fileURLToPath","esmWorker","join","cjsWorker","unlinkSafe","existsSync","accessSync","statSync","_","functionExecSync","options","filePath","args","unshift","Error","NODE_OPTIONS","workerData","callbacks","undefined","cwd","moduleType","interop","name","temp","input","output","done","sync","writeFileSync","execPath","indexOf","basename","toLowerCase","isSameNode","worker","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 { supportsESM } from 'module-compat';\nimport path from 'path';\nimport shortHash from 'short-hash';\nimport suffix from 'temp-suffix';\nimport sleep from 'thread-sleep-compat';\nimport url from 'url';\nimport { tmpdir } from './compat.ts';\nimport serialize from './serialize-javascript.ts';\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);\n\n// Worker paths:\n// - ESM worker: can load ESM modules via import() on Node 12+\n// - CJS worker: loads CJS modules only, works on Node 0.8+\nconst esmWorker = path.join(__dirname, '..', 'esm', 'workers', 'runFunction.mjs');\nconst cjsWorker = path.join(__dirname, '..', 'cjs', '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 moduleType: options.moduleType || 'auto',\n interop: options.interop || 'default',\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 // Select worker based on target Node:\n // - Same process (execPath === process.execPath): use ESM worker if current Node supports ESM\n // - Different Node version: use CJS worker for maximum compatibility (target may be old Node)\n const isSameNode = execPath === process.execPath;\n const worker = isSameNode && supportsESM() ? esmWorker : cjsWorker;\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","supportsESM","path","shortHash","suffix","sleep","url","tmpdir","serialize","DEFAULT_SLEEP_MS","NODES","isWindows","process","platform","test","env","OSTYPE","__dirname","dirname","__filename","fileURLToPath","esmWorker","join","cjsWorker","unlinkSafe","existsSync","accessSync","statSync","_","functionExecSync","options","filePath","args","unshift","Error","NODE_OPTIONS","workerData","callbacks","undefined","cwd","moduleType","interop","name","temp","input","output","done","sync","writeFileSync","execPath","indexOf","basename","toLowerCase","isSameNode","worker","execFileSync","sleepMS","cmd","exec","res","eval","readFileSync","err","message","error","key","value"],"mappings":"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"}

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

{"version":3,"sources":["/Users/kevin/Dev/OpenSource/_later/function-exec-sync/src/serialize-javascript.ts"],"sourcesContent":["// Patched for backwards compatiblity from: https://github.com/yahoo/serialize-javascript/blob/main/LICENSE\n\nconst hasMap = typeof Map !== 'undefined';\nconst hasSet = typeof Set !== 'undefined';\nconst hasURL = typeof URL !== 'undefined';\nconst hasBigInt = typeof BigInt !== 'undefined';\nconst isArray = Array.isArray || ((x: unknown) => Object.prototype.toString.call(x) === '[object Array]');\n\n/*\nCopyright (c) 2014, Yahoo! Inc. All rights reserved.\nCopyrights licensed under the New BSD License.\nSee the accompanying LICENSE file for terms.\n*/\n\nimport randomBytes from 'randombytes';\n\n// Generate an internal UID to make the regexp pattern harder to guess.\nconst UID_LENGTH = 16;\nconst UID = generateUID();\nconst PLACE_HOLDER_REGEXP = new RegExp(`(\\\\\\\\)?\"@__(F|R|D|M|S|A|U|I|B|L)-${UID}-(\\\\d+)__@\"`, 'g');\n\nconst IS_NATIVE_CODE_REGEXP = /\\{\\s*\\[native code\\]\\s*\\}/g;\nconst IS_PURE_FUNCTION = /function.*?\\(/;\nconst IS_ARROW_FUNCTION = /.*?=>.*?/;\nconst UNSAFE_CHARS_REGEXP = /[<>/\\u2028\\u2029]/g;\n\nconst RESERVED_SYMBOLS = ['*', 'async'];\n\n// Mapping of unsafe HTML and invalid JavaScript line terminator chars to their\n// Unicode char counterparts which are safe to use in JavaScript strings.\nconst ESCAPED_CHARS: Record<string, string> = {\n '<': '\\\\u003C',\n '>': '\\\\u003E',\n '/': '\\\\u002F',\n '\\u2028': '\\\\u2028',\n '\\u2029': '\\\\u2029',\n};\n\nfunction escapeUnsafeChars(unsafeChar: string): string {\n return ESCAPED_CHARS[unsafeChar];\n}\n\nfunction generateUID(): string {\n const bytes = randomBytes(UID_LENGTH);\n let result = '';\n for (let i = 0; i < UID_LENGTH; ++i) {\n result += bytes[i].toString(16);\n }\n return result;\n}\n\nfunction deleteFunctions(obj: Record<string, unknown>): void {\n const functionKeys: string[] = [];\n for (const key in obj) {\n if (typeof obj[key] === 'function') {\n functionKeys.push(key);\n }\n }\n for (let i = 0; i < functionKeys.length; i++) {\n delete obj[functionKeys[i]];\n }\n}\n\ninterface SerializeOptions {\n space?: number | string;\n isJSON?: boolean;\n unsafe?: boolean;\n ignoreFunction?: boolean;\n}\n\nexport default function serialize(obj: unknown, options?: SerializeOptions | number | string): string {\n let opts: SerializeOptions = {};\n if (options) {\n // Backwards-compatibility for `space` as the second argument.\n if (typeof options === 'number' || typeof options === 'string') {\n opts = { space: options };\n } else {\n opts = options;\n }\n }\n\n const functions: ((...args: unknown[]) => unknown)[] = [];\n const regexps: RegExp[] = [];\n const dates: Date[] = [];\n const maps: Map<unknown, unknown>[] = [];\n const sets: Set<unknown>[] = [];\n const arrays: unknown[][] = [];\n const undefs: undefined[] = [];\n const infinities: number[] = [];\n const bigInts: bigint[] = [];\n const urls: URL[] = [];\n\n // Returns placeholders for functions and regexps (identified by index)\n // which are later replaced by their string representation.\n function replacer(this: Record<string, unknown>, key: string, value: unknown): unknown {\n // For nested function\n if (opts.ignoreFunction) {\n deleteFunctions(value as Record<string, unknown>);\n }\n\n if (hasBigInt && !value && value !== undefined && value !== BigInt(0)) {\n return value;\n }\n\n // If the value is an object w/ a toJSON method, toJSON is called before\n // the replacer runs, so we use this[key] to get the non-toJSONed value.\n const origValue = this[key];\n const type = typeof origValue;\n\n if (type === 'object') {\n if (origValue instanceof RegExp) {\n return `@__R-${UID}-${regexps.push(origValue) - 1}__@`;\n }\n\n if (origValue instanceof Date) {\n return `@__D-${UID}-${dates.push(origValue) - 1}__@`;\n }\n\n if (hasMap && origValue instanceof Map) {\n return `@__M-${UID}-${maps.push(origValue) - 1}__@`;\n }\n\n if (hasSet && origValue instanceof Set) {\n return `@__S-${UID}-${sets.push(origValue) - 1}__@`;\n }\n\n if (isArray(origValue)) {\n const isSparse = (origValue as unknown[]).filter(() => true).length !== (origValue as unknown[]).length;\n if (isSparse) {\n return `@__A-${UID}-${arrays.push(origValue as unknown[]) - 1}__@`;\n }\n }\n\n if (hasURL && origValue instanceof URL) {\n return `@__L-${UID}-${urls.push(origValue) - 1}__@`;\n }\n }\n\n if (type === 'function') {\n return `@__F-${UID}-${functions.push(origValue as (...args: unknown[]) => unknown) - 1}__@`;\n }\n\n if (type === 'undefined') {\n return `@__U-${UID}-${undefs.push(origValue as undefined) - 1}__@`;\n }\n\n if (type === 'number' && !Number.isNaN(origValue as number) && !Number.isFinite(origValue as number)) {\n return `@__I-${UID}-${infinities.push(origValue as number) - 1}__@`;\n }\n\n if (type === 'bigint') {\n return `@__B-${UID}-${bigInts.push(origValue as bigint) - 1}__@`;\n }\n\n return value;\n }\n\n function serializeFunc(fn: (...args: unknown[]) => unknown): string {\n const serializedFn = fn.toString();\n if (IS_NATIVE_CODE_REGEXP.test(serializedFn)) {\n throw new TypeError(`Serializing native function: ${fn.name}`);\n }\n\n // pure functions, example: {key: function() {}}\n if (IS_PURE_FUNCTION.test(serializedFn)) {\n return serializedFn;\n }\n\n // arrow functions, example: arg1 => arg1+5\n if (IS_ARROW_FUNCTION.test(serializedFn)) {\n return serializedFn;\n }\n\n const argsStartsAt = serializedFn.indexOf('(');\n const def = serializedFn\n .substr(0, argsStartsAt)\n .trim()\n .split(' ')\n .filter((val) => val.length > 0);\n\n const nonReservedSymbols = def.filter((val) => RESERVED_SYMBOLS.indexOf(val) === -1);\n\n // enhanced literal objects, example: {key() {}}\n if (nonReservedSymbols.length > 0) {\n return `${def.indexOf('async') > -1 ? 'async ' : ''}function${def.join('').indexOf('*') > -1 ? '*' : ''}${serializedFn.substr(argsStartsAt)}`;\n }\n\n // arrow functions\n return serializedFn;\n }\n\n // Check if the parameter is function\n let objToSerialize = obj;\n if (opts.ignoreFunction && typeof objToSerialize === 'function') {\n objToSerialize = undefined;\n }\n // Protects against `JSON.stringify()` returning `undefined`, by serializing\n // to the literal string: \"undefined\".\n if (objToSerialize === undefined) {\n return String(objToSerialize);\n }\n\n let str: string | undefined;\n\n // Creates a JSON string representation of the value.\n // NOTE: Node 0.12 goes into slow mode with extra JSON.stringify() args.\n if (opts.isJSON && !opts.space) {\n str = JSON.stringify(objToSerialize);\n } else {\n str = JSON.stringify(objToSerialize, opts.isJSON ? null : replacer, opts.space);\n }\n\n // Protects against `JSON.stringify()` returning `undefined`, by serializing\n // to the literal string: \"undefined\".\n if (typeof str !== 'string') {\n return String(str);\n }\n\n // Replace unsafe HTML and invalid JavaScript line terminator chars with\n // their safe Unicode char counterpart. This _must_ happen before the\n // regexps and functions are serialized and added back to the string.\n if (opts.unsafe !== true) {\n str = str.replace(UNSAFE_CHARS_REGEXP, escapeUnsafeChars);\n }\n\n if (functions.length === 0 && regexps.length === 0 && dates.length === 0 && maps.length === 0 && sets.length === 0 && arrays.length === 0 && undefs.length === 0 && infinities.length === 0 && bigInts.length === 0 && urls.length === 0) {\n return str;\n }\n\n // Replaces all occurrences of function, regexp, date, map and set placeholders in the\n // JSON string with their string representations. If the original value can\n // not be found, then `undefined` is used.\n return str.replace(PLACE_HOLDER_REGEXP, (match, backSlash, type, valueIndex) => {\n // The placeholder may not be preceded by a backslash. This is to prevent\n // replacing things like `\"a\\\"@__R-<UID>-0__@\"` and thus outputting\n // invalid JS.\n if (backSlash) {\n return match;\n }\n\n if (type === 'D') {\n return `new Date(\"${dates[valueIndex].toISOString()}\")`;\n }\n\n if (type === 'R') {\n return `new RegExp(${serialize(regexps[valueIndex].source)}, \"${regexps[valueIndex].flags}\")`;\n }\n\n if (type === 'M') {\n return `new Map(${serialize(Array.from(maps[valueIndex].entries()), opts)})`;\n }\n\n if (type === 'S') {\n return `new Set(${serialize(Array.from(sets[valueIndex].values()), opts)})`;\n }\n\n if (type === 'A') {\n return `Array.prototype.slice.call(${serialize(Object.assign({ length: arrays[valueIndex].length }, arrays[valueIndex]), opts)})`;\n }\n\n if (type === 'U') {\n return 'undefined';\n }\n\n if (type === 'I') {\n return String(infinities[valueIndex]);\n }\n\n if (type === 'B') {\n return `BigInt(\"${bigInts[valueIndex]}\")`;\n }\n\n if (type === 'L') {\n return `new URL(${serialize(urls[valueIndex].toString(), opts)})`;\n }\n\n const fn = functions[valueIndex];\n\n return serializeFunc(fn);\n });\n}\n"],"names":["hasMap","Map","hasSet","Set","hasURL","URL","hasBigInt","BigInt","isArray","Array","x","Object","prototype","toString","call","randomBytes","UID_LENGTH","UID","generateUID","PLACE_HOLDER_REGEXP","RegExp","IS_NATIVE_CODE_REGEXP","IS_PURE_FUNCTION","IS_ARROW_FUNCTION","UNSAFE_CHARS_REGEXP","RESERVED_SYMBOLS","ESCAPED_CHARS","escapeUnsafeChars","unsafeChar","bytes","result","i","deleteFunctions","obj","functionKeys","key","push","length","serialize","options","opts","space","functions","regexps","dates","maps","sets","arrays","undefs","infinities","bigInts","urls","replacer","value","ignoreFunction","undefined","origValue","type","Date","isSparse","filter","Number","isNaN","isFinite","serializeFunc","fn","serializedFn","test","TypeError","name","argsStartsAt","indexOf","def","substr","trim","split","val","nonReservedSymbols","join","objToSerialize","String","str","isJSON","JSON","stringify","unsafe","replace","match","backSlash","valueIndex","toISOString","source","flags","from","entries","values","assign"],"mappings":"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"}
{"version":3,"sources":["/Users/kevin/Dev/OpenSource/node-version/function-exec-sync/src/serialize-javascript.ts"],"sourcesContent":["// Patched for backwards compatiblity from: https://github.com/yahoo/serialize-javascript/blob/main/LICENSE\n\nconst hasMap = typeof Map !== 'undefined';\nconst hasSet = typeof Set !== 'undefined';\nconst hasURL = typeof URL !== 'undefined';\nconst hasBigInt = typeof BigInt !== 'undefined';\nconst isArray = Array.isArray || ((x: unknown) => Object.prototype.toString.call(x) === '[object Array]');\n\n/*\nCopyright (c) 2014, Yahoo! Inc. All rights reserved.\nCopyrights licensed under the New BSD License.\nSee the accompanying LICENSE file for terms.\n*/\n\nimport randomBytes from 'randombytes';\n\n// Generate an internal UID to make the regexp pattern harder to guess.\nconst UID_LENGTH = 16;\nconst UID = generateUID();\nconst PLACE_HOLDER_REGEXP = new RegExp(`(\\\\\\\\)?\"@__(F|R|D|M|S|A|U|I|B|L)-${UID}-(\\\\d+)__@\"`, 'g');\n\nconst IS_NATIVE_CODE_REGEXP = /\\{\\s*\\[native code\\]\\s*\\}/g;\nconst IS_PURE_FUNCTION = /function.*?\\(/;\nconst IS_ARROW_FUNCTION = /.*?=>.*?/;\nconst UNSAFE_CHARS_REGEXP = /[<>/\\u2028\\u2029]/g;\n\nconst RESERVED_SYMBOLS = ['*', 'async'];\n\n// Mapping of unsafe HTML and invalid JavaScript line terminator chars to their\n// Unicode char counterparts which are safe to use in JavaScript strings.\nconst ESCAPED_CHARS: Record<string, string> = {\n '<': '\\\\u003C',\n '>': '\\\\u003E',\n '/': '\\\\u002F',\n '\\u2028': '\\\\u2028',\n '\\u2029': '\\\\u2029',\n};\n\nfunction escapeUnsafeChars(unsafeChar: string): string {\n return ESCAPED_CHARS[unsafeChar];\n}\n\nfunction generateUID(): string {\n const bytes = randomBytes(UID_LENGTH);\n let result = '';\n for (let i = 0; i < UID_LENGTH; ++i) {\n result += bytes[i].toString(16);\n }\n return result;\n}\n\nfunction deleteFunctions(obj: Record<string, unknown>): void {\n const functionKeys: string[] = [];\n for (const key in obj) {\n if (typeof obj[key] === 'function') {\n functionKeys.push(key);\n }\n }\n for (let i = 0; i < functionKeys.length; i++) {\n delete obj[functionKeys[i]];\n }\n}\n\ninterface SerializeOptions {\n space?: number | string;\n isJSON?: boolean;\n unsafe?: boolean;\n ignoreFunction?: boolean;\n}\n\nexport default function serialize(obj: unknown, options?: SerializeOptions | number | string): string {\n let opts: SerializeOptions = {};\n if (options) {\n // Backwards-compatibility for `space` as the second argument.\n if (typeof options === 'number' || typeof options === 'string') {\n opts = { space: options };\n } else {\n opts = options;\n }\n }\n\n const functions: ((...args: unknown[]) => unknown)[] = [];\n const regexps: RegExp[] = [];\n const dates: Date[] = [];\n const maps: Map<unknown, unknown>[] = [];\n const sets: Set<unknown>[] = [];\n const arrays: unknown[][] = [];\n const undefs: undefined[] = [];\n const infinities: number[] = [];\n const bigInts: bigint[] = [];\n const urls: URL[] = [];\n\n // Returns placeholders for functions and regexps (identified by index)\n // which are later replaced by their string representation.\n function replacer(this: Record<string, unknown>, key: string, value: unknown): unknown {\n // For nested function\n if (opts.ignoreFunction) {\n deleteFunctions(value as Record<string, unknown>);\n }\n\n if (hasBigInt && !value && value !== undefined && value !== BigInt(0)) {\n return value;\n }\n\n // If the value is an object w/ a toJSON method, toJSON is called before\n // the replacer runs, so we use this[key] to get the non-toJSONed value.\n const origValue = this[key];\n const type = typeof origValue;\n\n if (type === 'object') {\n if (origValue instanceof RegExp) {\n return `@__R-${UID}-${regexps.push(origValue) - 1}__@`;\n }\n\n if (origValue instanceof Date) {\n return `@__D-${UID}-${dates.push(origValue) - 1}__@`;\n }\n\n if (hasMap && origValue instanceof Map) {\n return `@__M-${UID}-${maps.push(origValue) - 1}__@`;\n }\n\n if (hasSet && origValue instanceof Set) {\n return `@__S-${UID}-${sets.push(origValue) - 1}__@`;\n }\n\n if (isArray(origValue)) {\n const isSparse = (origValue as unknown[]).filter(() => true).length !== (origValue as unknown[]).length;\n if (isSparse) {\n return `@__A-${UID}-${arrays.push(origValue as unknown[]) - 1}__@`;\n }\n }\n\n if (hasURL && origValue instanceof URL) {\n return `@__L-${UID}-${urls.push(origValue) - 1}__@`;\n }\n }\n\n if (type === 'function') {\n return `@__F-${UID}-${functions.push(origValue as (...args: unknown[]) => unknown) - 1}__@`;\n }\n\n if (type === 'undefined') {\n return `@__U-${UID}-${undefs.push(origValue as undefined) - 1}__@`;\n }\n\n if (type === 'number' && !Number.isNaN(origValue as number) && !Number.isFinite(origValue as number)) {\n return `@__I-${UID}-${infinities.push(origValue as number) - 1}__@`;\n }\n\n if (type === 'bigint') {\n return `@__B-${UID}-${bigInts.push(origValue as bigint) - 1}__@`;\n }\n\n return value;\n }\n\n function serializeFunc(fn: (...args: unknown[]) => unknown): string {\n const serializedFn = fn.toString();\n if (IS_NATIVE_CODE_REGEXP.test(serializedFn)) {\n throw new TypeError(`Serializing native function: ${fn.name}`);\n }\n\n // pure functions, example: {key: function() {}}\n if (IS_PURE_FUNCTION.test(serializedFn)) {\n return serializedFn;\n }\n\n // arrow functions, example: arg1 => arg1+5\n if (IS_ARROW_FUNCTION.test(serializedFn)) {\n return serializedFn;\n }\n\n const argsStartsAt = serializedFn.indexOf('(');\n const def = serializedFn\n .substr(0, argsStartsAt)\n .trim()\n .split(' ')\n .filter((val) => val.length > 0);\n\n const nonReservedSymbols = def.filter((val) => RESERVED_SYMBOLS.indexOf(val) === -1);\n\n // enhanced literal objects, example: {key() {}}\n if (nonReservedSymbols.length > 0) {\n return `${def.indexOf('async') > -1 ? 'async ' : ''}function${def.join('').indexOf('*') > -1 ? '*' : ''}${serializedFn.substr(argsStartsAt)}`;\n }\n\n // arrow functions\n return serializedFn;\n }\n\n // Check if the parameter is function\n let objToSerialize = obj;\n if (opts.ignoreFunction && typeof objToSerialize === 'function') {\n objToSerialize = undefined;\n }\n // Protects against `JSON.stringify()` returning `undefined`, by serializing\n // to the literal string: \"undefined\".\n if (objToSerialize === undefined) {\n return String(objToSerialize);\n }\n\n let str: string | undefined;\n\n // Creates a JSON string representation of the value.\n // NOTE: Node 0.12 goes into slow mode with extra JSON.stringify() args.\n if (opts.isJSON && !opts.space) {\n str = JSON.stringify(objToSerialize);\n } else {\n str = JSON.stringify(objToSerialize, opts.isJSON ? null : replacer, opts.space);\n }\n\n // Protects against `JSON.stringify()` returning `undefined`, by serializing\n // to the literal string: \"undefined\".\n if (typeof str !== 'string') {\n return String(str);\n }\n\n // Replace unsafe HTML and invalid JavaScript line terminator chars with\n // their safe Unicode char counterpart. This _must_ happen before the\n // regexps and functions are serialized and added back to the string.\n if (opts.unsafe !== true) {\n str = str.replace(UNSAFE_CHARS_REGEXP, escapeUnsafeChars);\n }\n\n if (functions.length === 0 && regexps.length === 0 && dates.length === 0 && maps.length === 0 && sets.length === 0 && arrays.length === 0 && undefs.length === 0 && infinities.length === 0 && bigInts.length === 0 && urls.length === 0) {\n return str;\n }\n\n // Replaces all occurrences of function, regexp, date, map and set placeholders in the\n // JSON string with their string representations. If the original value can\n // not be found, then `undefined` is used.\n return str.replace(PLACE_HOLDER_REGEXP, (match, backSlash, type, valueIndex) => {\n // The placeholder may not be preceded by a backslash. This is to prevent\n // replacing things like `\"a\\\"@__R-<UID>-0__@\"` and thus outputting\n // invalid JS.\n if (backSlash) {\n return match;\n }\n\n if (type === 'D') {\n return `new Date(\"${dates[valueIndex].toISOString()}\")`;\n }\n\n if (type === 'R') {\n return `new RegExp(${serialize(regexps[valueIndex].source)}, \"${regexps[valueIndex].flags}\")`;\n }\n\n if (type === 'M') {\n return `new Map(${serialize(Array.from(maps[valueIndex].entries()), opts)})`;\n }\n\n if (type === 'S') {\n return `new Set(${serialize(Array.from(sets[valueIndex].values()), opts)})`;\n }\n\n if (type === 'A') {\n return `Array.prototype.slice.call(${serialize(Object.assign({ length: arrays[valueIndex].length }, arrays[valueIndex]), opts)})`;\n }\n\n if (type === 'U') {\n return 'undefined';\n }\n\n if (type === 'I') {\n return String(infinities[valueIndex]);\n }\n\n if (type === 'B') {\n return `BigInt(\"${bigInts[valueIndex]}\")`;\n }\n\n if (type === 'L') {\n return `new URL(${serialize(urls[valueIndex].toString(), opts)})`;\n }\n\n const fn = functions[valueIndex];\n\n return serializeFunc(fn);\n });\n}\n"],"names":["hasMap","Map","hasSet","Set","hasURL","URL","hasBigInt","BigInt","isArray","Array","x","Object","prototype","toString","call","randomBytes","UID_LENGTH","UID","generateUID","PLACE_HOLDER_REGEXP","RegExp","IS_NATIVE_CODE_REGEXP","IS_PURE_FUNCTION","IS_ARROW_FUNCTION","UNSAFE_CHARS_REGEXP","RESERVED_SYMBOLS","ESCAPED_CHARS","escapeUnsafeChars","unsafeChar","bytes","result","i","deleteFunctions","obj","functionKeys","key","push","length","serialize","options","opts","space","functions","regexps","dates","maps","sets","arrays","undefs","infinities","bigInts","urls","replacer","value","ignoreFunction","undefined","origValue","type","Date","isSparse","filter","Number","isNaN","isFinite","serializeFunc","fn","serializedFn","test","TypeError","name","argsStartsAt","indexOf","def","substr","trim","split","val","nonReservedSymbols","join","objToSerialize","String","str","isJSON","JSON","stringify","unsafe","replace","match","backSlash","valueIndex","toISOString","source","flags","from","entries","values","assign"],"mappings":"AAAA,2GAA2G;AAE3G,MAAMA,SAAS,OAAOC,QAAQ;AAC9B,MAAMC,SAAS,OAAOC,QAAQ;AAC9B,MAAMC,SAAS,OAAOC,QAAQ;AAC9B,MAAMC,YAAY,OAAOC,WAAW;AACpC,MAAMC,UAAUC,MAAMD,OAAO,IAAK,CAAA,CAACE,IAAeC,OAAOC,SAAS,CAACC,QAAQ,CAACC,IAAI,CAACJ,OAAO,gBAAe;AAEvG;;;;AAIA,GAEA,OAAOK,iBAAiB,cAAc;AAEtC,uEAAuE;AACvE,MAAMC,aAAa;AACnB,MAAMC,MAAMC;AACZ,MAAMC,sBAAsB,IAAIC,OAAO,CAAC,iCAAiC,EAAEH,IAAI,WAAW,CAAC,EAAE;AAE7F,MAAMI,wBAAwB;AAC9B,MAAMC,mBAAmB;AACzB,MAAMC,oBAAoB;AAC1B,MAAMC,sBAAsB;AAE5B,MAAMC,mBAAmB;IAAC;IAAK;CAAQ;AAEvC,+EAA+E;AAC/E,yEAAyE;AACzE,MAAMC,gBAAwC;IAC5C,KAAK;IACL,KAAK;IACL,KAAK;IACL,UAAU;IACV,UAAU;AACZ;AAEA,SAASC,kBAAkBC,UAAkB;IAC3C,OAAOF,aAAa,CAACE,WAAW;AAClC;AAEA,SAASV;IACP,MAAMW,QAAQd,YAAYC;IAC1B,IAAIc,SAAS;IACb,IAAK,IAAIC,IAAI,GAAGA,IAAIf,YAAY,EAAEe,EAAG;QACnCD,UAAUD,KAAK,CAACE,EAAE,CAAClB,QAAQ,CAAC;IAC9B;IACA,OAAOiB;AACT;AAEA,SAASE,gBAAgBC,GAA4B;IACnD,MAAMC,eAAyB,EAAE;IACjC,IAAK,MAAMC,OAAOF,IAAK;QACrB,IAAI,OAAOA,GAAG,CAACE,IAAI,KAAK,YAAY;YAClCD,aAAaE,IAAI,CAACD;QACpB;IACF;IACA,IAAK,IAAIJ,IAAI,GAAGA,IAAIG,aAAaG,MAAM,EAAEN,IAAK;QAC5C,OAAOE,GAAG,CAACC,YAAY,CAACH,EAAE,CAAC;IAC7B;AACF;AASA,eAAe,SAASO,UAAUL,GAAY,EAAEM,OAA4C;IAC1F,IAAIC,OAAyB,CAAC;IAC9B,IAAID,SAAS;QACX,8DAA8D;QAC9D,IAAI,OAAOA,YAAY,YAAY,OAAOA,YAAY,UAAU;YAC9DC,OAAO;gBAAEC,OAAOF;YAAQ;QAC1B,OAAO;YACLC,OAAOD;QACT;IACF;IAEA,MAAMG,YAAiD,EAAE;IACzD,MAAMC,UAAoB,EAAE;IAC5B,MAAMC,QAAgB,EAAE;IACxB,MAAMC,OAAgC,EAAE;IACxC,MAAMC,OAAuB,EAAE;IAC/B,MAAMC,SAAsB,EAAE;IAC9B,MAAMC,SAAsB,EAAE;IAC9B,MAAMC,aAAuB,EAAE;IAC/B,MAAMC,UAAoB,EAAE;IAC5B,MAAMC,OAAc,EAAE;IAEtB,uEAAuE;IACvE,2DAA2D;IAC3D,SAASC,SAAwCjB,GAAW,EAAEkB,KAAc;QAC1E,sBAAsB;QACtB,IAAIb,KAAKc,cAAc,EAAE;YACvBtB,gBAAgBqB;QAClB;QAEA,IAAI/C,aAAa,CAAC+C,SAASA,UAAUE,aAAaF,UAAU9C,OAAO,IAAI;YACrE,OAAO8C;QACT;QAEA,wEAAwE;QACxE,wEAAwE;QACxE,MAAMG,YAAY,IAAI,CAACrB,IAAI;QAC3B,MAAMsB,OAAO,OAAOD;QAEpB,IAAIC,SAAS,UAAU;YACrB,IAAID,qBAAqBpC,QAAQ;gBAC/B,OAAO,CAAC,KAAK,EAAEH,IAAI,CAAC,EAAE0B,QAAQP,IAAI,CAACoB,aAAa,EAAE,GAAG,CAAC;YACxD;YAEA,IAAIA,qBAAqBE,MAAM;gBAC7B,OAAO,CAAC,KAAK,EAAEzC,IAAI,CAAC,EAAE2B,MAAMR,IAAI,CAACoB,aAAa,EAAE,GAAG,CAAC;YACtD;YAEA,IAAIxD,UAAUwD,qBAAqBvD,KAAK;gBACtC,OAAO,CAAC,KAAK,EAAEgB,IAAI,CAAC,EAAE4B,KAAKT,IAAI,CAACoB,aAAa,EAAE,GAAG,CAAC;YACrD;YAEA,IAAItD,UAAUsD,qBAAqBrD,KAAK;gBACtC,OAAO,CAAC,KAAK,EAAEc,IAAI,CAAC,EAAE6B,KAAKV,IAAI,CAACoB,aAAa,EAAE,GAAG,CAAC;YACrD;YAEA,IAAIhD,QAAQgD,YAAY;gBACtB,MAAMG,WAAW,AAACH,UAAwBI,MAAM,CAAC,IAAM,MAAMvB,MAAM,KAAK,AAACmB,UAAwBnB,MAAM;gBACvG,IAAIsB,UAAU;oBACZ,OAAO,CAAC,KAAK,EAAE1C,IAAI,CAAC,EAAE8B,OAAOX,IAAI,CAACoB,aAA0B,EAAE,GAAG,CAAC;gBACpE;YACF;YAEA,IAAIpD,UAAUoD,qBAAqBnD,KAAK;gBACtC,OAAO,CAAC,KAAK,EAAEY,IAAI,CAAC,EAAEkC,KAAKf,IAAI,CAACoB,aAAa,EAAE,GAAG,CAAC;YACrD;QACF;QAEA,IAAIC,SAAS,YAAY;YACvB,OAAO,CAAC,KAAK,EAAExC,IAAI,CAAC,EAAEyB,UAAUN,IAAI,CAACoB,aAAgD,EAAE,GAAG,CAAC;QAC7F;QAEA,IAAIC,SAAS,aAAa;YACxB,OAAO,CAAC,KAAK,EAAExC,IAAI,CAAC,EAAE+B,OAAOZ,IAAI,CAACoB,aAA0B,EAAE,GAAG,CAAC;QACpE;QAEA,IAAIC,SAAS,YAAY,CAACI,OAAOC,KAAK,CAACN,cAAwB,CAACK,OAAOE,QAAQ,CAACP,YAAsB;YACpG,OAAO,CAAC,KAAK,EAAEvC,IAAI,CAAC,EAAEgC,WAAWb,IAAI,CAACoB,aAAuB,EAAE,GAAG,CAAC;QACrE;QAEA,IAAIC,SAAS,UAAU;YACrB,OAAO,CAAC,KAAK,EAAExC,IAAI,CAAC,EAAEiC,QAAQd,IAAI,CAACoB,aAAuB,EAAE,GAAG,CAAC;QAClE;QAEA,OAAOH;IACT;IAEA,SAASW,cAAcC,EAAmC;QACxD,MAAMC,eAAeD,GAAGpD,QAAQ;QAChC,IAAIQ,sBAAsB8C,IAAI,CAACD,eAAe;YAC5C,MAAM,IAAIE,UAAU,CAAC,6BAA6B,EAAEH,GAAGI,IAAI,EAAE;QAC/D;QAEA,gDAAgD;QAChD,IAAI/C,iBAAiB6C,IAAI,CAACD,eAAe;YACvC,OAAOA;QACT;QAEA,2CAA2C;QAC3C,IAAI3C,kBAAkB4C,IAAI,CAACD,eAAe;YACxC,OAAOA;QACT;QAEA,MAAMI,eAAeJ,aAAaK,OAAO,CAAC;QAC1C,MAAMC,MAAMN,aACTO,MAAM,CAAC,GAAGH,cACVI,IAAI,GACJC,KAAK,CAAC,KACNf,MAAM,CAAC,CAACgB,MAAQA,IAAIvC,MAAM,GAAG;QAEhC,MAAMwC,qBAAqBL,IAAIZ,MAAM,CAAC,CAACgB,MAAQnD,iBAAiB8C,OAAO,CAACK,SAAS,CAAC;QAElF,gDAAgD;QAChD,IAAIC,mBAAmBxC,MAAM,GAAG,GAAG;YACjC,OAAO,GAAGmC,IAAID,OAAO,CAAC,WAAW,CAAC,IAAI,WAAW,GAAG,QAAQ,EAAEC,IAAIM,IAAI,CAAC,IAAIP,OAAO,CAAC,OAAO,CAAC,IAAI,MAAM,KAAKL,aAAaO,MAAM,CAACH,eAAe;QAC/I;QAEA,kBAAkB;QAClB,OAAOJ;IACT;IAEA,qCAAqC;IACrC,IAAIa,iBAAiB9C;IACrB,IAAIO,KAAKc,cAAc,IAAI,OAAOyB,mBAAmB,YAAY;QAC/DA,iBAAiBxB;IACnB;IACA,4EAA4E;IAC5E,sCAAsC;IACtC,IAAIwB,mBAAmBxB,WAAW;QAChC,OAAOyB,OAAOD;IAChB;IAEA,IAAIE;IAEJ,qDAAqD;IACrD,wEAAwE;IACxE,IAAIzC,KAAK0C,MAAM,IAAI,CAAC1C,KAAKC,KAAK,EAAE;QAC9BwC,MAAME,KAAKC,SAAS,CAACL;IACvB,OAAO;QACLE,MAAME,KAAKC,SAAS,CAACL,gBAAgBvC,KAAK0C,MAAM,GAAG,OAAO9B,UAAUZ,KAAKC,KAAK;IAChF;IAEA,4EAA4E;IAC5E,sCAAsC;IACtC,IAAI,OAAOwC,QAAQ,UAAU;QAC3B,OAAOD,OAAOC;IAChB;IAEA,wEAAwE;IACxE,qEAAqE;IACrE,qEAAqE;IACrE,IAAIzC,KAAK6C,MAAM,KAAK,MAAM;QACxBJ,MAAMA,IAAIK,OAAO,CAAC9D,qBAAqBG;IACzC;IAEA,IAAIe,UAAUL,MAAM,KAAK,KAAKM,QAAQN,MAAM,KAAK,KAAKO,MAAMP,MAAM,KAAK,KAAKQ,KAAKR,MAAM,KAAK,KAAKS,KAAKT,MAAM,KAAK,KAAKU,OAAOV,MAAM,KAAK,KAAKW,OAAOX,MAAM,KAAK,KAAKY,WAAWZ,MAAM,KAAK,KAAKa,QAAQb,MAAM,KAAK,KAAKc,KAAKd,MAAM,KAAK,GAAG;QACxO,OAAO4C;IACT;IAEA,sFAAsF;IACtF,2EAA2E;IAC3E,0CAA0C;IAC1C,OAAOA,IAAIK,OAAO,CAACnE,qBAAqB,CAACoE,OAAOC,WAAW/B,MAAMgC;QAC/D,yEAAyE;QACzE,mEAAmE;QACnE,cAAc;QACd,IAAID,WAAW;YACb,OAAOD;QACT;QAEA,IAAI9B,SAAS,KAAK;YAChB,OAAO,CAAC,UAAU,EAAEb,KAAK,CAAC6C,WAAW,CAACC,WAAW,GAAG,EAAE,CAAC;QACzD;QAEA,IAAIjC,SAAS,KAAK;YAChB,OAAO,CAAC,WAAW,EAAEnB,UAAUK,OAAO,CAAC8C,WAAW,CAACE,MAAM,EAAE,GAAG,EAAEhD,OAAO,CAAC8C,WAAW,CAACG,KAAK,CAAC,EAAE,CAAC;QAC/F;QAEA,IAAInC,SAAS,KAAK;YAChB,OAAO,CAAC,QAAQ,EAAEnB,UAAU7B,MAAMoF,IAAI,CAAChD,IAAI,CAAC4C,WAAW,CAACK,OAAO,KAAKtD,MAAM,CAAC,CAAC;QAC9E;QAEA,IAAIiB,SAAS,KAAK;YAChB,OAAO,CAAC,QAAQ,EAAEnB,UAAU7B,MAAMoF,IAAI,CAAC/C,IAAI,CAAC2C,WAAW,CAACM,MAAM,KAAKvD,MAAM,CAAC,CAAC;QAC7E;QAEA,IAAIiB,SAAS,KAAK;YAChB,OAAO,CAAC,2BAA2B,EAAEnB,UAAU3B,OAAOqF,MAAM,CAAC;gBAAE3D,QAAQU,MAAM,CAAC0C,WAAW,CAACpD,MAAM;YAAC,GAAGU,MAAM,CAAC0C,WAAW,GAAGjD,MAAM,CAAC,CAAC;QACnI;QAEA,IAAIiB,SAAS,KAAK;YAChB,OAAO;QACT;QAEA,IAAIA,SAAS,KAAK;YAChB,OAAOuB,OAAO/B,UAAU,CAACwC,WAAW;QACtC;QAEA,IAAIhC,SAAS,KAAK;YAChB,OAAO,CAAC,QAAQ,EAAEP,OAAO,CAACuC,WAAW,CAAC,EAAE,CAAC;QAC3C;QAEA,IAAIhC,SAAS,KAAK;YAChB,OAAO,CAAC,QAAQ,EAAEnB,UAAUa,IAAI,CAACsC,WAAW,CAAC5E,QAAQ,IAAI2B,MAAM,CAAC,CAAC;QACnE;QAEA,MAAMyB,KAAKvB,SAAS,CAAC+C,WAAW;QAEhC,OAAOzB,cAAcC;IACvB;AACF"}

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

{"version":3,"sources":["/Users/kevin/Dev/OpenSource/_later/function-exec-sync/src/types.ts"],"sourcesContent":["import type { InteropMode, ModuleType } from 'module-compat';\n\nexport type ExecWorkerOptions = {\n name?: string;\n cwd?: string;\n env?: object;\n callbacks?: boolean;\n execPath?: string;\n sleep?: number;\n /** Module type detection: 'auto' (default), 'module', or 'commonjs' */\n moduleType?: 'auto' | ModuleType;\n /** How to handle ESM default exports: 'default' (default), 'raw', or 'typescript' */\n interop?: InteropMode;\n};\n"],"names":[],"mappings":"AAEA,WAWE"}
{"version":3,"sources":["/Users/kevin/Dev/OpenSource/node-version/function-exec-sync/src/types.ts"],"sourcesContent":["import type { InteropMode, ModuleType } from 'module-compat';\n\nexport type ExecWorkerOptions = {\n name?: string;\n cwd?: string;\n env?: object;\n callbacks?: boolean;\n execPath?: string;\n sleep?: number;\n /** Module type detection: 'auto' (default), 'module', or 'commonjs' */\n moduleType?: 'auto' | ModuleType;\n /** How to handle ESM default exports: 'default' (default), 'raw', or 'typescript' */\n interop?: InteropMode;\n};\n"],"names":[],"mappings":"AAEA,WAWE"}

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

{"version":3,"sources":["/Users/kevin/Dev/OpenSource/_later/function-exec-sync/src/unlinkSafe.ts"],"sourcesContent":["import fs from 'fs';\n\nexport default function unlinkSafe(filename: string): void {\n try {\n fs.unlinkSync(filename);\n } catch {\n // skip\n }\n}\n"],"names":["fs","unlinkSafe","filename","unlinkSync"],"mappings":"AAAA,OAAOA,QAAQ,KAAK;AAEpB,eAAe,SAASC,WAAWC,QAAgB;IACjD,IAAI;QACFF,GAAGG,UAAU,CAACD;IAChB,EAAE,OAAM;IACN,OAAO;IACT;AACF"}
{"version":3,"sources":["/Users/kevin/Dev/OpenSource/node-version/function-exec-sync/src/unlinkSafe.ts"],"sourcesContent":["import fs from 'fs';\n\nexport default function unlinkSafe(filename: string): void {\n try {\n fs.unlinkSync(filename);\n } catch {\n // skip\n }\n}\n"],"names":["fs","unlinkSafe","filename","unlinkSync"],"mappings":"AAAA,OAAOA,QAAQ,KAAK;AAEpB,eAAe,SAASC,WAAWC,QAAgB;IACjD,IAAI;QACFF,GAAGG,UAAU,CAACD;IAChB,EAAE,OAAM;IACN,OAAO;IACT;AACF"}

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

{"version":3,"sources":["/Users/kevin/Dev/OpenSource/_later/function-exec-sync/src/workers/runFunction.cts"],"sourcesContent":["// CJS worker - uses CJS build of module-compat\n// Only supports loading CJS modules (or ESM on Node 23+ via require)\n\nimport type { InteropMode, ModuleType } from 'module-compat';\n\nconst compat = require('async-compat');\nconst fs = require('fs');\nconst { loadModule } = require('module-compat');\nconst path = require('path');\n\nconst serialize = require(path.join(__dirname, '..', 'serialize-javascript.js'));\n\nconst input = process.argv[2];\nconst output = process.argv[3];\n\ninterface WorkerData {\n cwd: string;\n env: Record<string, string>;\n filePath: string;\n callbacks: boolean;\n args: unknown[];\n moduleType?: 'auto' | ModuleType;\n interop?: InteropMode;\n}\n\ninterface ResultValue {\n value?: unknown;\n error?: {\n message: string;\n stack?: string;\n [key: string]: unknown;\n };\n}\n\nfunction writeResult(result: ResultValue): void {\n fs.writeFile(output, serialize(result), 'utf8', () => {\n process.exit(0);\n });\n}\n\nfunction writeError(error: Error & Record<string, unknown>): void {\n const errorObj: ResultValue['error'] = { message: error.message, stack: error.stack };\n for (const key in error) errorObj[key] = error[key];\n writeResult({ error: errorObj });\n}\n\n// get data\ntry {\n // biome-ignore lint/security/noGlobalEval: Deserialize worker data\n const workerData: 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 // load and call function\n const loadOptions = {\n moduleType: workerData.moduleType || 'auto',\n interop: workerData.interop || 'default',\n };\n\n loadModule(workerData.filePath, loadOptions, (err: Error | null, fn: unknown) => {\n if (err) {\n writeError(err as Error & Record<string, unknown>);\n return;\n }\n\n if (typeof fn !== 'function') {\n writeResult({ value: fn });\n } else {\n const args: unknown[] = [fn as unknown, workerData.callbacks as unknown].concat(workerData.args);\n args.push((err: Error | null, value: unknown) => {\n err ? writeError(err as Error & Record<string, unknown>) : writeResult({ value });\n });\n compat.asyncFunction.apply(null, args);\n }\n });\n} catch (err) {\n writeError(err as Error & Record<string, unknown>);\n}\n"],"names":["compat","require","fs","loadModule","path","serialize","join","__dirname","input","process","argv","output","writeResult","result","writeFile","exit","writeError","error","errorObj","message","stack","key","workerData","eval","readFileSync","cwd","chdir","env","loadOptions","moduleType","interop","filePath","err","fn","value","args","callbacks","concat","push","asyncFunction","apply"],"mappings":"AAKA,MAAMA,SAASC,QAAQ;AACvB,MAAMC,KAAKD,QAAQ;AACnB,MAAM,EAAEE,UAAU,EAAE,GAAGF,QAAQ;AAC/B,MAAMG,OAAOH,QAAQ;AAErB,MAAMI,YAAYJ,QAAQG,KAAKE,IAAI,CAACC,WAAW,MAAM;AAErD,MAAMC,QAAQC,QAAQC,IAAI,CAAC,EAAE;AAC7B,MAAMC,SAASF,QAAQC,IAAI,CAAC,EAAE;AAqB9B,SAASE,YAAYC,MAAmB;IACtCX,GAAGY,SAAS,CAACH,QAAQN,UAAUQ,SAAS,QAAQ;QAC9CJ,QAAQM,IAAI,CAAC;IACf;AACF;AAEA,SAASC,WAAWC,KAAsC;IACxD,MAAMC,WAAiC;QAAEC,SAASF,MAAME,OAAO;QAAEC,OAAOH,MAAMG,KAAK;IAAC;IACpF,IAAK,MAAMC,OAAOJ,MAAOC,QAAQ,CAACG,IAAI,GAAGJ,KAAK,CAACI,IAAI;IACnDT,YAAY;QAAEK,OAAOC;IAAS;AAChC;AAEA,WAAW;AACX,IAAI;IACF,mEAAmE;IACnE,MAAMI,aAAyBC,KAAK,CAAC,CAAC,EAAErB,GAAGsB,YAAY,CAAChB,OAAO,QAAQ,CAAC,CAAC;IAEzE,aAAa;IACb,IAAIC,QAAQgB,GAAG,OAAOH,WAAWG,GAAG,EAAEhB,QAAQiB,KAAK,CAACJ,WAAWG,GAAG;IAClE,IAAK,MAAMJ,OAAOC,WAAWK,GAAG,CAAElB,QAAQkB,GAAG,CAACN,IAAI,GAAGC,WAAWK,GAAG,CAACN,IAAI;IAExE,yBAAyB;IACzB,MAAMO,cAAc;QAClBC,YAAYP,WAAWO,UAAU,IAAI;QACrCC,SAASR,WAAWQ,OAAO,IAAI;IACjC;IAEA3B,WAAWmB,WAAWS,QAAQ,EAAEH,aAAa,CAACI,KAAmBC;QAC/D,IAAID,KAAK;YACPhB,WAAWgB;YACX;QACF;QAEA,IAAI,OAAOC,OAAO,YAAY;YAC5BrB,YAAY;gBAAEsB,OAAOD;YAAG;QAC1B,OAAO;YACL,MAAME,OAAkB;gBAACF;gBAAeX,WAAWc,SAAS;aAAY,CAACC,MAAM,CAACf,WAAWa,IAAI;YAC/FA,KAAKG,IAAI,CAAC,CAACN,KAAmBE;gBAC5BF,MAAMhB,WAAWgB,OAA0CpB,YAAY;oBAAEsB;gBAAM;YACjF;YACAlC,OAAOuC,aAAa,CAACC,KAAK,CAAC,MAAML;QACnC;IACF;AACF,EAAE,OAAOH,KAAK;IACZhB,WAAWgB;AACb;AA/EA,+CAA+C;AAC/C,qEAAqE;AAErE,WAA6D"}
{"version":3,"sources":["/Users/kevin/Dev/OpenSource/node-version/function-exec-sync/src/workers/runFunction.cts"],"sourcesContent":["// CJS worker - uses CJS build of module-compat\n// Only supports loading CJS modules (or ESM on Node 23+ via require)\n\nimport type { InteropMode, ModuleType } from 'module-compat';\n\nconst compat = require('async-compat');\nconst fs = require('fs');\nconst { loadModule } = require('module-compat');\nconst path = require('path');\n\nconst serialize = require(path.join(__dirname, '..', 'serialize-javascript.js'));\n\nconst input = process.argv[2];\nconst output = process.argv[3];\n\ninterface WorkerData {\n cwd: string;\n env: Record<string, string>;\n filePath: string;\n callbacks: boolean;\n args: unknown[];\n moduleType?: 'auto' | ModuleType;\n interop?: InteropMode;\n}\n\ninterface ResultValue {\n value?: unknown;\n error?: {\n message: string;\n stack?: string;\n [key: string]: unknown;\n };\n}\n\nfunction writeResult(result: ResultValue): void {\n fs.writeFile(output, serialize(result), 'utf8', () => {\n process.exit(0);\n });\n}\n\nfunction writeError(error: Error & Record<string, unknown>): void {\n const errorObj: ResultValue['error'] = { message: error.message, stack: error.stack };\n for (const key in error) errorObj[key] = error[key];\n writeResult({ error: errorObj });\n}\n\n// get data\ntry {\n // biome-ignore lint/security/noGlobalEval: Deserialize worker data\n const workerData: 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 // load and call function\n const loadOptions = {\n moduleType: workerData.moduleType || 'auto',\n interop: workerData.interop || 'default',\n };\n\n loadModule(workerData.filePath, loadOptions, (err: Error | null, fn: unknown) => {\n if (err) {\n writeError(err as Error & Record<string, unknown>);\n return;\n }\n\n if (typeof fn !== 'function') {\n writeResult({ value: fn });\n } else {\n const args: unknown[] = [fn as unknown, workerData.callbacks as unknown].concat(workerData.args);\n args.push((err: Error | null, value: unknown) => {\n err ? writeError(err as Error & Record<string, unknown>) : writeResult({ value });\n });\n compat.asyncFunction.apply(null, args);\n }\n });\n} catch (err) {\n writeError(err as Error & Record<string, unknown>);\n}\n"],"names":["compat","require","fs","loadModule","path","serialize","join","__dirname","input","process","argv","output","writeResult","result","writeFile","exit","writeError","error","errorObj","message","stack","key","workerData","eval","readFileSync","cwd","chdir","env","loadOptions","moduleType","interop","filePath","err","fn","value","args","callbacks","concat","push","asyncFunction","apply"],"mappings":"AAKA,MAAMA,SAASC,QAAQ;AACvB,MAAMC,KAAKD,QAAQ;AACnB,MAAM,EAAEE,UAAU,EAAE,GAAGF,QAAQ;AAC/B,MAAMG,OAAOH,QAAQ;AAErB,MAAMI,YAAYJ,QAAQG,KAAKE,IAAI,CAACC,WAAW,MAAM;AAErD,MAAMC,QAAQC,QAAQC,IAAI,CAAC,EAAE;AAC7B,MAAMC,SAASF,QAAQC,IAAI,CAAC,EAAE;AAqB9B,SAASE,YAAYC,MAAmB;IACtCX,GAAGY,SAAS,CAACH,QAAQN,UAAUQ,SAAS,QAAQ;QAC9CJ,QAAQM,IAAI,CAAC;IACf;AACF;AAEA,SAASC,WAAWC,KAAsC;IACxD,MAAMC,WAAiC;QAAEC,SAASF,MAAME,OAAO;QAAEC,OAAOH,MAAMG,KAAK;IAAC;IACpF,IAAK,MAAMC,OAAOJ,MAAOC,QAAQ,CAACG,IAAI,GAAGJ,KAAK,CAACI,IAAI;IACnDT,YAAY;QAAEK,OAAOC;IAAS;AAChC;AAEA,WAAW;AACX,IAAI;IACF,mEAAmE;IACnE,MAAMI,aAAyBC,KAAK,CAAC,CAAC,EAAErB,GAAGsB,YAAY,CAAChB,OAAO,QAAQ,CAAC,CAAC;IAEzE,aAAa;IACb,IAAIC,QAAQgB,GAAG,OAAOH,WAAWG,GAAG,EAAEhB,QAAQiB,KAAK,CAACJ,WAAWG,GAAG;IAClE,IAAK,MAAMJ,OAAOC,WAAWK,GAAG,CAAElB,QAAQkB,GAAG,CAACN,IAAI,GAAGC,WAAWK,GAAG,CAACN,IAAI;IAExE,yBAAyB;IACzB,MAAMO,cAAc;QAClBC,YAAYP,WAAWO,UAAU,IAAI;QACrCC,SAASR,WAAWQ,OAAO,IAAI;IACjC;IAEA3B,WAAWmB,WAAWS,QAAQ,EAAEH,aAAa,CAACI,KAAmBC;QAC/D,IAAID,KAAK;YACPhB,WAAWgB;YACX;QACF;QAEA,IAAI,OAAOC,OAAO,YAAY;YAC5BrB,YAAY;gBAAEsB,OAAOD;YAAG;QAC1B,OAAO;YACL,MAAME,OAAkB;gBAACF;gBAAeX,WAAWc,SAAS;aAAY,CAACC,MAAM,CAACf,WAAWa,IAAI;YAC/FA,KAAKG,IAAI,CAAC,CAACN,KAAmBE;gBAC5BF,MAAMhB,WAAWgB,OAA0CpB,YAAY;oBAAEsB;gBAAM;YACjF;YACAlC,OAAOuC,aAAa,CAACC,KAAK,CAAC,MAAML;QACnC;IACF;AACF,EAAE,OAAOH,KAAK;IACZhB,WAAWgB;AACb;AA/EA,+CAA+C;AAC/C,qEAAqE;AAErE,WAA6D"}

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

{"version":3,"sources":["/Users/kevin/Dev/OpenSource/_later/function-exec-sync/src/workers/runFunction.mts"],"sourcesContent":["import compat from 'async-compat';\nimport fs from 'fs';\nimport Module from 'module';\nimport type { InteropMode, ModuleType } from 'module-compat';\nimport { loadModule } from 'module-compat';\nimport path from 'path';\nimport url from 'url';\n\n// ESM worker - uses ESM build of module-compat\n// Supports loading both CJS and ESM modules via import()\nconst _require = Module.createRequire(import.meta.url);\nconst __dirname = path.dirname(url.fileURLToPath(import.meta.url));\n\n// Require serialize from CJS dist (ESM dist files can't be required on Node 12-22)\nconst serialize = _require(path.join(__dirname, '..', '..', 'cjs', 'serialize-javascript.js'));\n\nconst input = process.argv[2];\nconst output = process.argv[3];\n\ninterface WorkerData {\n cwd: string;\n env: Record<string, string>;\n filePath: string;\n callbacks: boolean;\n args: unknown[];\n moduleType?: 'auto' | ModuleType;\n interop?: InteropMode;\n}\n\ninterface ResultValue {\n value?: unknown;\n error?: {\n message: string;\n stack?: string;\n [key: string]: unknown;\n };\n}\n\nfunction writeResult(result: ResultValue): void {\n fs.writeFile(output, serialize(result), 'utf8', () => {\n process.exit(0);\n });\n}\n\nfunction writeError(error: Error & Record<string, unknown>): void {\n const errorObj: ResultValue['error'] = { message: error.message, stack: error.stack };\n for (const key in error) errorObj[key] = error[key];\n writeResult({ error: errorObj });\n}\n\n// get data\ntry {\n // biome-ignore lint/security/noGlobalEval: Deserialize worker data\n const workerData: 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 // load and call function\n const loadOptions = {\n moduleType: workerData.moduleType || 'auto',\n interop: workerData.interop || 'default',\n };\n\n loadModule(workerData.filePath, loadOptions, (err, fn) => {\n if (err) {\n writeError(err as Error & Record<string, unknown>);\n return;\n }\n\n if (typeof fn !== 'function') {\n writeResult({ value: fn });\n } else {\n const args: unknown[] = [fn, workerData.callbacks, ...workerData.args];\n args.push((err: Error | null, value: unknown) => {\n err ? writeError(err as Error & Record<string, unknown>) : writeResult({ value });\n });\n compat.asyncFunction.apply(null, args as Parameters<typeof compat.asyncFunction>);\n }\n });\n} catch (err) {\n writeError(err as Error & Record<string, unknown>);\n}\n"],"names":["compat","fs","Module","loadModule","path","url","_require","createRequire","__dirname","dirname","fileURLToPath","serialize","join","input","process","argv","output","writeResult","result","writeFile","exit","writeError","error","errorObj","message","stack","key","workerData","eval","readFileSync","cwd","chdir","env","loadOptions","moduleType","interop","filePath","err","fn","value","args","callbacks","push","asyncFunction","apply"],"mappings":"AAAA,OAAOA,YAAY,eAAe;AAClC,OAAOC,QAAQ,KAAK;AACpB,OAAOC,YAAY,SAAS;AAE5B,SAASC,UAAU,QAAQ,gBAAgB;AAC3C,OAAOC,UAAU,OAAO;AACxB,OAAOC,SAAS,MAAM;AAEtB,+CAA+C;AAC/C,yDAAyD;AACzD,MAAMC,WAAWJ,OAAOK,aAAa,CAAC,YAAYF,GAAG;AACrD,MAAMG,YAAYJ,KAAKK,OAAO,CAACJ,IAAIK,aAAa,CAAC,YAAYL,GAAG;AAEhE,mFAAmF;AACnF,MAAMM,YAAYL,SAASF,KAAKQ,IAAI,CAACJ,WAAW,MAAM,MAAM,OAAO;AAEnE,MAAMK,QAAQC,QAAQC,IAAI,CAAC,EAAE;AAC7B,MAAMC,SAASF,QAAQC,IAAI,CAAC,EAAE;AAqB9B,SAASE,YAAYC,MAAmB;IACtCjB,GAAGkB,SAAS,CAACH,QAAQL,UAAUO,SAAS,QAAQ;QAC9CJ,QAAQM,IAAI,CAAC;IACf;AACF;AAEA,SAASC,WAAWC,KAAsC;IACxD,MAAMC,WAAiC;QAAEC,SAASF,MAAME,OAAO;QAAEC,OAAOH,MAAMG,KAAK;IAAC;IACpF,IAAK,MAAMC,OAAOJ,MAAOC,QAAQ,CAACG,IAAI,GAAGJ,KAAK,CAACI,IAAI;IACnDT,YAAY;QAAEK,OAAOC;IAAS;AAChC;AAEA,WAAW;AACX,IAAI;IACF,mEAAmE;IACnE,MAAMI,aAAyBC,KAAK,CAAC,CAAC,EAAE3B,GAAG4B,YAAY,CAAChB,OAAO,QAAQ,CAAC,CAAC;IAEzE,aAAa;IACb,IAAIC,QAAQgB,GAAG,OAAOH,WAAWG,GAAG,EAAEhB,QAAQiB,KAAK,CAACJ,WAAWG,GAAG;IAClE,IAAK,MAAMJ,OAAOC,WAAWK,GAAG,CAAElB,QAAQkB,GAAG,CAACN,IAAI,GAAGC,WAAWK,GAAG,CAACN,IAAI;IAExE,yBAAyB;IACzB,MAAMO,cAAc;QAClBC,YAAYP,WAAWO,UAAU,IAAI;QACrCC,SAASR,WAAWQ,OAAO,IAAI;IACjC;IAEAhC,WAAWwB,WAAWS,QAAQ,EAAEH,aAAa,CAACI,KAAKC;QACjD,IAAID,KAAK;YACPhB,WAAWgB;YACX;QACF;QAEA,IAAI,OAAOC,OAAO,YAAY;YAC5BrB,YAAY;gBAAEsB,OAAOD;YAAG;QAC1B,OAAO;YACL,MAAME,OAAkB;gBAACF;gBAAIX,WAAWc,SAAS;mBAAKd,WAAWa,IAAI;aAAC;YACtEA,KAAKE,IAAI,CAAC,CAACL,KAAmBE;gBAC5BF,MAAMhB,WAAWgB,OAA0CpB,YAAY;oBAAEsB;gBAAM;YACjF;YACAvC,OAAO2C,aAAa,CAACC,KAAK,CAAC,MAAMJ;QACnC;IACF;AACF,EAAE,OAAOH,KAAK;IACZhB,WAAWgB;AACb"}
{"version":3,"sources":["/Users/kevin/Dev/OpenSource/node-version/function-exec-sync/src/workers/runFunction.mts"],"sourcesContent":["import compat from 'async-compat';\nimport fs from 'fs';\nimport Module from 'module';\nimport type { InteropMode, ModuleType } from 'module-compat';\nimport { loadModule } from 'module-compat';\nimport path from 'path';\nimport url from 'url';\n\n// ESM worker - uses ESM build of module-compat\n// Supports loading both CJS and ESM modules via import()\nconst _require = Module.createRequire(import.meta.url);\nconst __dirname = path.dirname(url.fileURLToPath(import.meta.url));\n\n// Require serialize from CJS dist (ESM dist files can't be required on Node 12-22)\nconst serialize = _require(path.join(__dirname, '..', '..', 'cjs', 'serialize-javascript.js'));\n\nconst input = process.argv[2];\nconst output = process.argv[3];\n\ninterface WorkerData {\n cwd: string;\n env: Record<string, string>;\n filePath: string;\n callbacks: boolean;\n args: unknown[];\n moduleType?: 'auto' | ModuleType;\n interop?: InteropMode;\n}\n\ninterface ResultValue {\n value?: unknown;\n error?: {\n message: string;\n stack?: string;\n [key: string]: unknown;\n };\n}\n\nfunction writeResult(result: ResultValue): void {\n fs.writeFile(output, serialize(result), 'utf8', () => {\n process.exit(0);\n });\n}\n\nfunction writeError(error: Error & Record<string, unknown>): void {\n const errorObj: ResultValue['error'] = { message: error.message, stack: error.stack };\n for (const key in error) errorObj[key] = error[key];\n writeResult({ error: errorObj });\n}\n\n// get data\ntry {\n // biome-ignore lint/security/noGlobalEval: Deserialize worker data\n const workerData: 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 // load and call function\n const loadOptions = {\n moduleType: workerData.moduleType || 'auto',\n interop: workerData.interop || 'default',\n };\n\n loadModule(workerData.filePath, loadOptions, (err, fn) => {\n if (err) {\n writeError(err as Error & Record<string, unknown>);\n return;\n }\n\n if (typeof fn !== 'function') {\n writeResult({ value: fn });\n } else {\n const args: unknown[] = [fn, workerData.callbacks, ...workerData.args];\n args.push((err: Error | null, value: unknown) => {\n err ? writeError(err as Error & Record<string, unknown>) : writeResult({ value });\n });\n compat.asyncFunction.apply(null, args as Parameters<typeof compat.asyncFunction>);\n }\n });\n} catch (err) {\n writeError(err as Error & Record<string, unknown>);\n}\n"],"names":["compat","fs","Module","loadModule","path","url","_require","createRequire","__dirname","dirname","fileURLToPath","serialize","join","input","process","argv","output","writeResult","result","writeFile","exit","writeError","error","errorObj","message","stack","key","workerData","eval","readFileSync","cwd","chdir","env","loadOptions","moduleType","interop","filePath","err","fn","value","args","callbacks","push","asyncFunction","apply"],"mappings":"AAAA,OAAOA,YAAY,eAAe;AAClC,OAAOC,QAAQ,KAAK;AACpB,OAAOC,YAAY,SAAS;AAE5B,SAASC,UAAU,QAAQ,gBAAgB;AAC3C,OAAOC,UAAU,OAAO;AACxB,OAAOC,SAAS,MAAM;AAEtB,+CAA+C;AAC/C,yDAAyD;AACzD,MAAMC,WAAWJ,OAAOK,aAAa,CAAC,YAAYF,GAAG;AACrD,MAAMG,YAAYJ,KAAKK,OAAO,CAACJ,IAAIK,aAAa,CAAC,YAAYL,GAAG;AAEhE,mFAAmF;AACnF,MAAMM,YAAYL,SAASF,KAAKQ,IAAI,CAACJ,WAAW,MAAM,MAAM,OAAO;AAEnE,MAAMK,QAAQC,QAAQC,IAAI,CAAC,EAAE;AAC7B,MAAMC,SAASF,QAAQC,IAAI,CAAC,EAAE;AAqB9B,SAASE,YAAYC,MAAmB;IACtCjB,GAAGkB,SAAS,CAACH,QAAQL,UAAUO,SAAS,QAAQ;QAC9CJ,QAAQM,IAAI,CAAC;IACf;AACF;AAEA,SAASC,WAAWC,KAAsC;IACxD,MAAMC,WAAiC;QAAEC,SAASF,MAAME,OAAO;QAAEC,OAAOH,MAAMG,KAAK;IAAC;IACpF,IAAK,MAAMC,OAAOJ,MAAOC,QAAQ,CAACG,IAAI,GAAGJ,KAAK,CAACI,IAAI;IACnDT,YAAY;QAAEK,OAAOC;IAAS;AAChC;AAEA,WAAW;AACX,IAAI;IACF,mEAAmE;IACnE,MAAMI,aAAyBC,KAAK,CAAC,CAAC,EAAE3B,GAAG4B,YAAY,CAAChB,OAAO,QAAQ,CAAC,CAAC;IAEzE,aAAa;IACb,IAAIC,QAAQgB,GAAG,OAAOH,WAAWG,GAAG,EAAEhB,QAAQiB,KAAK,CAACJ,WAAWG,GAAG;IAClE,IAAK,MAAMJ,OAAOC,WAAWK,GAAG,CAAElB,QAAQkB,GAAG,CAACN,IAAI,GAAGC,WAAWK,GAAG,CAACN,IAAI;IAExE,yBAAyB;IACzB,MAAMO,cAAc;QAClBC,YAAYP,WAAWO,UAAU,IAAI;QACrCC,SAASR,WAAWQ,OAAO,IAAI;IACjC;IAEAhC,WAAWwB,WAAWS,QAAQ,EAAEH,aAAa,CAACI,KAAKC;QACjD,IAAID,KAAK;YACPhB,WAAWgB;YACX;QACF;QAEA,IAAI,OAAOC,OAAO,YAAY;YAC5BrB,YAAY;gBAAEsB,OAAOD;YAAG;QAC1B,OAAO;YACL,MAAME,OAAkB;gBAACF;gBAAIX,WAAWc,SAAS;mBAAKd,WAAWa,IAAI;aAAC;YACtEA,KAAKE,IAAI,CAAC,CAACL,KAAmBE;gBAC5BF,MAAMhB,WAAWgB,OAA0CpB,YAAY;oBAAEsB;gBAAM;YACjF;YACAvC,OAAO2C,aAAa,CAACC,KAAK,CAAC,MAAMJ;QACnC;IACF;AACF,EAAE,OAAOH,KAAK;IACZhB,WAAWgB;AACb"}
{
"name": "function-exec-sync",
"version": "2.0.2",
"version": "2.1.0",
"description": "Run a function in a node process",

@@ -5,0 +5,0 @@ "keywords": [