Update checked-in dependencies

This commit is contained in:
github-actions[bot] 2024-12-03 18:37:29 +00:00
parent 49f7b34c3d
commit 5261a1223f
1640 changed files with 174830 additions and 182292 deletions

277
node_modules/synckit/lib/index.js generated vendored
View file

@ -1,10 +1,12 @@
import { __awaiter } from "tslib";
import { __awaiter, __rest } from "tslib";
import { createHash } from 'node:crypto';
import fs from 'node:fs';
import { createRequire } from 'node:module';
import module from 'node:module';
import path from 'node:path';
import { pathToFileURL } from 'node:url';
import { MessageChannel, Worker, receiveMessageOnPort, workerData, parentPort, } from 'node:worker_threads';
import { findUp, tryExtensions } from '@pkgr/utils';
import { fileURLToPath, pathToFileURL } from 'node:url';
import { MessageChannel, Worker, parentPort, receiveMessageOnPort, workerData, } from 'node:worker_threads';
import { findUp, isPkgAvailable, tryExtensions } from '@pkgr/core';
const INT32_BYTES = 4;
export * from './types.js';
export const TsRunner = {
TsNode: 'ts-node',
@ -13,17 +15,25 @@ export const TsRunner = {
SWC: 'swc',
TSX: 'tsx',
};
const { SYNCKIT_BUFFER_SIZE, SYNCKIT_TIMEOUT, SYNCKIT_EXEC_ARGV, SYNCKIT_TS_RUNNER, NODE_OPTIONS, } = process.env;
export const DEFAULT_BUFFER_SIZE = SYNCKIT_BUFFER_SIZE
? +SYNCKIT_BUFFER_SIZE
: undefined;
const { NODE_OPTIONS, SYNCKIT_EXEC_ARGV, SYNCKIT_GLOBAL_SHIMS, SYNCKIT_TIMEOUT, SYNCKIT_TS_RUNNER, } = process.env;
const IS_NODE_20 = Number(process.versions.node.split('.')[0]) >= 20;
export const DEFAULT_TIMEOUT = SYNCKIT_TIMEOUT ? +SYNCKIT_TIMEOUT : undefined;
export const DEFAULT_WORKER_BUFFER_SIZE = DEFAULT_BUFFER_SIZE || 1024;
export const DEFAULT_EXEC_ARGV = (SYNCKIT_EXEC_ARGV === null || SYNCKIT_EXEC_ARGV === void 0 ? void 0 : SYNCKIT_EXEC_ARGV.split(',')) || [];
export const DEFAULT_TS_RUNNER = (SYNCKIT_TS_RUNNER ||
TsRunner.TsNode);
export const DEFAULT_TS_RUNNER = SYNCKIT_TS_RUNNER;
export const DEFAULT_GLOBAL_SHIMS = ['1', 'true'].includes(SYNCKIT_GLOBAL_SHIMS);
export const DEFAULT_GLOBAL_SHIMS_PRESET = [
{
moduleName: 'node-fetch',
globalName: 'fetch',
},
{
moduleName: 'node:perf_hooks',
globalName: 'performance',
named: 'performance',
},
];
export const MTS_SUPPORTED_NODE_VERSION = 16;
const syncFnCache = new Map();
let syncFnCache;
export function extractProperties(object) {
if (object && typeof object === 'object') {
const properties = {};
@ -33,29 +43,31 @@ export function extractProperties(object) {
return properties;
}
}
export function createSyncFn(workerPath, bufferSizeOrOptions, timeout) {
if (!path.isAbsolute(workerPath)) {
throw new Error('`workerPath` must be absolute');
}
export function createSyncFn(workerPath, timeoutOrOptions) {
syncFnCache !== null && syncFnCache !== void 0 ? syncFnCache : (syncFnCache = new Map());
const cachedSyncFn = syncFnCache.get(workerPath);
if (cachedSyncFn) {
return cachedSyncFn;
}
const syncFn = startWorkerThread(workerPath, typeof bufferSizeOrOptions === 'number'
? { bufferSize: bufferSizeOrOptions, timeout }
: bufferSizeOrOptions);
if (!path.isAbsolute(workerPath)) {
throw new Error('`workerPath` must be absolute');
}
const syncFn = startWorkerThread(workerPath, typeof timeoutOrOptions === 'number'
? { timeout: timeoutOrOptions }
: timeoutOrOptions);
syncFnCache.set(workerPath, syncFn);
return syncFn;
}
const cjsRequire = typeof require === 'undefined'
? createRequire(import.meta.url)
? module.createRequire(import.meta.url)
: require;
const dataUrl = (code) => new URL(`data:text/javascript,${encodeURIComponent(code)}`);
export const isFile = (path) => {
var _a;
try {
return fs.statSync(path).isFile();
return !!((_a = fs.statSync(path, { throwIfNoEntry: false })) === null || _a === void 0 ? void 0 : _a.isFile());
}
catch (_a) {
catch (_b) {
return false;
}
};
@ -68,15 +80,18 @@ const setupTsRunner = (workerPath, { execArgv, tsRunner }) => {
: workerPath;
let extensions;
switch (ext) {
case '.cjs':
case '.cjs': {
extensions = ['.cts', '.cjs'];
break;
case '.mjs':
}
case '.mjs': {
extensions = ['.mts', '.mjs'];
break;
default:
}
default: {
extensions = ['.ts', '.js'];
break;
}
}
const found = tryExtensions(workPathWithoutExt, extensions);
let differentExt;
@ -88,6 +103,7 @@ const setupTsRunner = (workerPath, { execArgv, tsRunner }) => {
}
}
const isTs = /\.[cm]?ts$/.test(workerPath);
let jsUseEsm = workerPath.endsWith('.mjs');
let tsUseEsm = workerPath.endsWith('.mts');
if (isTs) {
if (!tsUseEsm) {
@ -98,6 +114,9 @@ const setupTsRunner = (workerPath, { execArgv, tsRunner }) => {
'module';
}
}
if (tsRunner == null && isPkgAvailable(TsRunner.TsNode)) {
tsRunner = TsRunner.TsNode;
}
switch (tsRunner) {
case TsRunner.TsNode: {
if (tsUseEsm) {
@ -139,6 +158,14 @@ const setupTsRunner = (workerPath, { execArgv, tsRunner }) => {
}
}
}
else if (!jsUseEsm) {
const pkg = findUp(workerPath);
if (pkg) {
jsUseEsm =
cjsRequire(pkg).type === 'module';
}
}
let resolvedPnpLoaderPath;
if (process.versions.pnp) {
const nodeOptions = NODE_OPTIONS === null || NODE_OPTIONS === void 0 ? void 0 : NODE_OPTIONS.split(/\s+/);
let pnpApiPath;
@ -153,65 +180,159 @@ const setupTsRunner = (workerPath, { execArgv, tsRunner }) => {
execArgv = ['-r', pnpApiPath, ...execArgv];
const pnpLoaderPath = path.resolve(pnpApiPath, '../.pnp.loader.mjs');
if (isFile(pnpLoaderPath)) {
const experimentalLoader = pathToFileURL(pnpLoaderPath).toString();
execArgv = ['--experimental-loader', experimentalLoader, ...execArgv];
resolvedPnpLoaderPath = pathToFileURL(pnpLoaderPath).toString();
if (!IS_NODE_20) {
execArgv = [
'--experimental-loader',
resolvedPnpLoaderPath,
...execArgv,
];
}
}
}
}
return {
ext,
isTs,
jsUseEsm,
tsRunner,
tsUseEsm,
workerPath,
pnpLoaderPath: resolvedPnpLoaderPath,
execArgv,
};
};
function startWorkerThread(workerPath, { bufferSize = DEFAULT_WORKER_BUFFER_SIZE, timeout = DEFAULT_TIMEOUT, execArgv = DEFAULT_EXEC_ARGV, tsRunner = DEFAULT_TS_RUNNER, } = {}) {
const md5Hash = (text) => createHash('md5').update(text).digest('hex');
export const encodeImportModule = (moduleNameOrGlobalShim, type = 'import') => {
const { moduleName, globalName, named, conditional } = typeof moduleNameOrGlobalShim === 'string'
? { moduleName: moduleNameOrGlobalShim }
: moduleNameOrGlobalShim;
const importStatement = type === 'import'
? `import${globalName
? ' ' +
(named === null
? '* as ' + globalName
: (named === null || named === void 0 ? void 0 : named.trim())
? `{${named}}`
: globalName) +
' from'
: ''} '${path.isAbsolute(moduleName)
? String(pathToFileURL(moduleName))
: moduleName}'`
: `${globalName
? 'const ' + ((named === null || named === void 0 ? void 0 : named.trim()) ? `{${named}}` : globalName) + '='
: ''}require('${moduleName
.replace(/\\/g, '\\\\')}')`;
if (!globalName) {
return importStatement;
}
const overrideStatement = `globalThis.${globalName}=${(named === null || named === void 0 ? void 0 : named.trim()) ? named : globalName}`;
return (importStatement +
(conditional === false
? `;${overrideStatement}`
: `;if(!globalThis.${globalName})${overrideStatement}`));
};
export const _generateGlobals = (globalShims, type) => globalShims.reduce((acc, shim) => `${acc}${acc ? ';' : ''}${encodeImportModule(shim, type)}`, '');
let globalsCache;
let tmpdir;
const _dirname = typeof __dirname === 'undefined'
? path.dirname(fileURLToPath(import.meta.url))
: __dirname;
let sharedBuffer;
let sharedBufferView;
export const generateGlobals = (workerPath, globalShims, type = 'import') => {
globalsCache !== null && globalsCache !== void 0 ? globalsCache : (globalsCache = new Map());
const cached = globalsCache.get(workerPath);
if (cached) {
const [content, filepath] = cached;
if ((type === 'require' && !filepath) ||
(type === 'import' && filepath && isFile(filepath))) {
return content;
}
}
const globals = _generateGlobals(globalShims, type);
let content = globals;
let filepath;
if (type === 'import') {
if (!tmpdir) {
tmpdir = path.resolve(findUp(_dirname), '../node_modules/.synckit');
}
fs.mkdirSync(tmpdir, { recursive: true });
filepath = path.resolve(tmpdir, md5Hash(workerPath) + '.mjs');
content = encodeImportModule(filepath);
fs.writeFileSync(filepath, globals);
}
globalsCache.set(workerPath, [content, filepath]);
return content;
};
function startWorkerThread(workerPath, { timeout = DEFAULT_TIMEOUT, execArgv = DEFAULT_EXEC_ARGV, tsRunner = DEFAULT_TS_RUNNER, transferList = [], globalShims = DEFAULT_GLOBAL_SHIMS, } = {}) {
const { port1: mainPort, port2: workerPort } = new MessageChannel();
const { isTs, ext, tsUseEsm, workerPath: finalWorkerPath, execArgv: finalExecArgv, } = setupTsRunner(workerPath, { execArgv, tsRunner });
const { isTs, ext, jsUseEsm, tsUseEsm, tsRunner: finalTsRunner, workerPath: finalWorkerPath, pnpLoaderPath, execArgv: finalExecArgv, } = setupTsRunner(workerPath, { execArgv, tsRunner });
const workerPathUrl = pathToFileURL(finalWorkerPath);
if (/\.[cm]ts$/.test(finalWorkerPath)) {
const isTsxSupported = !tsUseEsm ||
Number.parseFloat(process.versions.node) >= MTS_SUPPORTED_NODE_VERSION;
if ([
if (!finalTsRunner) {
throw new Error('No ts runner specified, ts worker path is not supported');
}
else if ([
TsRunner.EsbuildRegister,
TsRunner.EsbuildRunner,
TsRunner.SWC,
...(isTsxSupported ? [] : [TsRunner.TSX]),
].includes(tsRunner)) {
throw new Error(`${tsRunner} is not supported for ${ext} files yet` +
].includes(finalTsRunner)) {
throw new Error(`${finalTsRunner} is not supported for ${ext} files yet` +
(isTsxSupported
? ', you can try [tsx](https://github.com/esbuild-kit/tsx) instead'
: ''));
}
}
const useEval = isTs && !tsUseEsm;
const worker = new Worker(tsUseEsm && tsRunner === TsRunner.TsNode
? dataUrl(`import '${String(workerPathUrl)}'`)
const finalGlobalShims = (globalShims === true
? DEFAULT_GLOBAL_SHIMS_PRESET
: Array.isArray(globalShims)
? globalShims
: []).filter(({ moduleName }) => isPkgAvailable(moduleName));
sharedBufferView !== null && sharedBufferView !== void 0 ? sharedBufferView : (sharedBufferView = new Int32Array((sharedBuffer !== null && sharedBuffer !== void 0 ? sharedBuffer : (sharedBuffer = new SharedArrayBuffer(INT32_BYTES))), 0, 1));
const useGlobals = finalGlobalShims.length > 0;
const useEval = isTs ? !tsUseEsm : !jsUseEsm && useGlobals;
const worker = new Worker((jsUseEsm && useGlobals) || (tsUseEsm && finalTsRunner === TsRunner.TsNode)
? dataUrl(`${generateGlobals(finalWorkerPath, finalGlobalShims)};import '${String(workerPathUrl)}'`)
: useEval
? `require('${finalWorkerPath.replace(/\\/g, '\\\\')}')`
? `${generateGlobals(finalWorkerPath, finalGlobalShims, 'require')};${encodeImportModule(finalWorkerPath, 'require')}`
: workerPathUrl, {
eval: useEval,
workerData: { workerPort },
transferList: [workerPort],
workerData: { sharedBuffer, workerPort, pnpLoaderPath },
transferList: [workerPort, ...transferList],
execArgv: finalExecArgv,
});
let nextID = 0;
const syncFn = (...args) => {
const id = nextID++;
const sharedBuffer = new SharedArrayBuffer(bufferSize);
const sharedBufferView = new Int32Array(sharedBuffer);
const msg = { sharedBuffer, id, args };
worker.postMessage(msg);
const status = Atomics.wait(sharedBufferView, 0, 0, timeout);
const receiveMessageWithId = (port, expectedId, waitingTimeout) => {
const start = Date.now();
const status = Atomics.wait(sharedBufferView, 0, 0, waitingTimeout);
Atomics.store(sharedBufferView, 0, 0);
if (!['ok', 'not-equal'].includes(status)) {
const abortMsg = {
id: expectedId,
cmd: 'abort',
};
port.postMessage(abortMsg);
throw new Error('Internal error: Atomics.wait() failed: ' + status);
}
const { id: id2, result, error, properties, } = receiveMessageOnPort(mainPort)
.message;
if (id !== id2) {
throw new Error(`Internal error: Expected id ${id} but got id ${id2}`);
const _a = receiveMessageOnPort(mainPort).message, { id } = _a, message = __rest(_a, ["id"]);
if (id < expectedId) {
const waitingTime = Date.now() - start;
return receiveMessageWithId(port, expectedId, waitingTimeout ? waitingTimeout - waitingTime : undefined);
}
if (expectedId !== id) {
throw new Error(`Internal error: Expected id ${expectedId} but got id ${id}`);
}
return Object.assign({ id }, message);
};
const syncFn = (...args) => {
const id = nextID++;
const msg = { id, args };
worker.postMessage(msg);
const { result, error, properties } = receiveMessageWithId(mainPort, id, timeout);
if (error) {
throw Object.assign(error, properties);
}
@ -224,36 +345,36 @@ export function runAsWorker(fn) {
if (!workerData) {
return;
}
const { workerPort } = workerData;
try {
parentPort.on('message', ({ sharedBuffer, id, args }) => {
;
(() => __awaiter(this, void 0, void 0, function* () {
const sharedBufferView = new Int32Array(sharedBuffer);
let msg;
try {
msg = { id, result: yield fn(...args) };
}
catch (error) {
msg = { id, error, properties: extractProperties(error) };
}
workerPort.postMessage(msg);
Atomics.add(sharedBufferView, 0, 1);
Atomics.notify(sharedBufferView, 0);
}))();
});
const { workerPort, sharedBuffer, pnpLoaderPath } = workerData;
if (pnpLoaderPath && IS_NODE_20) {
module.register(pnpLoaderPath);
}
catch (error) {
parentPort.on('message', ({ sharedBuffer, id }) => {
const sharedBufferView = new Int32Array(sharedBuffer);
workerPort.postMessage({
id,
error,
properties: extractProperties(error),
});
const sharedBufferView = new Int32Array(sharedBuffer, 0, 1);
parentPort.on('message', ({ id, args }) => {
;
(() => __awaiter(this, void 0, void 0, function* () {
let isAborted = false;
const handleAbortMessage = (msg) => {
if (msg.id === id && msg.cmd === 'abort') {
isAborted = true;
}
};
workerPort.on('message', handleAbortMessage);
let msg;
try {
msg = { id, result: yield fn(...args) };
}
catch (error) {
msg = { id, error, properties: extractProperties(error) };
}
workerPort.off('message', handleAbortMessage);
if (isAborted) {
return;
}
workerPort.postMessage(msg);
Atomics.add(sharedBufferView, 0, 1);
Atomics.notify(sharedBufferView, 0);
});
}
}))();
});
}
//# sourceMappingURL=index.js.map