Enforce latest yarn in CI (#161)
* yarn set version stable * WIP * WIP * add packageManager * Add nodelinker * Add engines.node * Remove node-version * WIP * WIP * Clean up
This commit is contained in:
8
.github/workflows/ci.yml
vendored
8
.github/workflows/ci.yml
vendored
@ -20,10 +20,12 @@ jobs:
|
||||
|
||||
- uses: actions/setup-node@v3.6.0
|
||||
with:
|
||||
node-version: '18'
|
||||
cache: 'yarn'
|
||||
cache: 'yarn'
|
||||
|
||||
- run: yarn install
|
||||
- name: Setup yarn
|
||||
run: |
|
||||
yarn set version stable
|
||||
yarn install --immutable
|
||||
|
||||
- run: yarn build
|
||||
|
||||
|
277
.pnp.cjs
generated
277
.pnp.cjs
generated
@ -68,7 +68,7 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) {
|
||||
["styled-components", "virtual:ff5ad3439f8ec237c0c86796b437c422a681ce7f1211bc52c84c467fd5c19025673469e4b3bd047db74cf4144d670522e4013a081fcd63cc449dbcb3b5b92460#npm:5.3.10"],\
|
||||
["three", "npm:0.152.2"],\
|
||||
["three-mesh-bvh", "virtual:ff5ad3439f8ec237c0c86796b437c422a681ce7f1211bc52c84c467fd5c19025673469e4b3bd047db74cf4144d670522e4013a081fcd63cc449dbcb3b5b92460#npm:0.5.23"],\
|
||||
["typescript", "patch:typescript@npm%3A4.9.5#~builtin<compat/typescript>::version=4.9.5&hash=23ec76"],\
|
||||
["typescript", "patch:typescript@npm%3A4.9.5#~builtin<compat/typescript>::version=4.9.5&hash=289587"],\
|
||||
["vite", "virtual:ff5ad3439f8ec237c0c86796b437c422a681ce7f1211bc52c84c467fd5c19025673469e4b3bd047db74cf4144d670522e4013a081fcd63cc449dbcb3b5b92460#npm:4.3.5"],\
|
||||
["vite-plugin-node-polyfills", "virtual:ff5ad3439f8ec237c0c86796b437c422a681ce7f1211bc52c84c467fd5c19025673469e4b3bd047db74cf4144d670522e4013a081fcd63cc449dbcb3b5b92460#npm:0.8.2"],\
|
||||
["vitest", "virtual:ff5ad3439f8ec237c0c86796b437c422a681ce7f1211bc52c84c467fd5c19025673469e4b3bd047db74cf4144d670522e4013a081fcd63cc449dbcb3b5b92460#npm:0.31.0"]\
|
||||
@ -3913,7 +3913,7 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) {
|
||||
["styled-components", "virtual:ff5ad3439f8ec237c0c86796b437c422a681ce7f1211bc52c84c467fd5c19025673469e4b3bd047db74cf4144d670522e4013a081fcd63cc449dbcb3b5b92460#npm:5.3.10"],\
|
||||
["three", "npm:0.152.2"],\
|
||||
["three-mesh-bvh", "virtual:ff5ad3439f8ec237c0c86796b437c422a681ce7f1211bc52c84c467fd5c19025673469e4b3bd047db74cf4144d670522e4013a081fcd63cc449dbcb3b5b92460#npm:0.5.23"],\
|
||||
["typescript", "patch:typescript@npm%3A4.9.5#~builtin<compat/typescript>::version=4.9.5&hash=23ec76"],\
|
||||
["typescript", "patch:typescript@npm%3A4.9.5#~builtin<compat/typescript>::version=4.9.5&hash=289587"],\
|
||||
["vite", "virtual:ff5ad3439f8ec237c0c86796b437c422a681ce7f1211bc52c84c467fd5c19025673469e4b3bd047db74cf4144d670522e4013a081fcd63cc449dbcb3b5b92460#npm:4.3.5"],\
|
||||
["vite-plugin-node-polyfills", "virtual:ff5ad3439f8ec237c0c86796b437c422a681ce7f1211bc52c84c467fd5c19025673469e4b3bd047db74cf4144d670522e4013a081fcd63cc449dbcb3b5b92460#npm:0.8.2"],\
|
||||
["vitest", "virtual:ff5ad3439f8ec237c0c86796b437c422a681ce7f1211bc52c84c467fd5c19025673469e4b3bd047db74cf4144d670522e4013a081fcd63cc449dbcb3b5b92460#npm:0.31.0"]\
|
||||
@ -8553,10 +8553,10 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) {
|
||||
}]\
|
||||
]],\
|
||||
["typescript", [\
|
||||
["patch:typescript@npm%3A4.9.5#~builtin<compat/typescript>::version=4.9.5&hash=23ec76", {\
|
||||
"packageLocation": "./.yarn/cache/typescript-patch-72dc6f164f-ab417a2f39.zip/node_modules/typescript/",\
|
||||
["patch:typescript@npm%3A4.9.5#~builtin<compat/typescript>::version=4.9.5&hash=289587", {\
|
||||
"packageLocation": "./.yarn/cache/typescript-patch-f8edcd7439-1f8f3b6aae.zip/node_modules/typescript/",\
|
||||
"packageDependencies": [\
|
||||
["typescript", "patch:typescript@npm%3A4.9.5#~builtin<compat/typescript>::version=4.9.5&hash=23ec76"]\
|
||||
["typescript", "patch:typescript@npm%3A4.9.5#~builtin<compat/typescript>::version=4.9.5&hash=289587"]\
|
||||
],\
|
||||
"linkType": "HARD"\
|
||||
}]\
|
||||
@ -18303,118 +18303,6 @@ function hydrateRuntimeState(data, { basePath }) {
|
||||
};
|
||||
}
|
||||
|
||||
/**
|
||||
* @param {object} exports
|
||||
* @param {Set<string>} keys
|
||||
*/
|
||||
function loop(exports, keys) {
|
||||
if (typeof exports === 'string') {
|
||||
return exports;
|
||||
}
|
||||
|
||||
if (exports) {
|
||||
let idx, tmp;
|
||||
if (Array.isArray(exports)) {
|
||||
for (idx=0; idx < exports.length; idx++) {
|
||||
if (tmp = loop(exports[idx], keys)) return tmp;
|
||||
}
|
||||
} else {
|
||||
for (idx in exports) {
|
||||
if (keys.has(idx)) {
|
||||
return loop(exports[idx], keys);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @param {string} name The package name
|
||||
* @param {string} entry The target entry, eg "."
|
||||
* @param {number} [condition] Unmatched condition?
|
||||
*/
|
||||
function bail(name, entry, condition) {
|
||||
throw new Error(
|
||||
condition
|
||||
? `No known conditions for "${entry}" entry in "${name}" package`
|
||||
: `Missing "${entry}" export in "${name}" package`
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param {string} name the package name
|
||||
* @param {string} entry the target path/import
|
||||
*/
|
||||
function toName(name, entry) {
|
||||
return entry === name ? '.'
|
||||
: entry[0] === '.' ? entry
|
||||
: entry.replace(new RegExp('^' + name + '\/'), './');
|
||||
}
|
||||
|
||||
/**
|
||||
* @param {object} pkg package.json contents
|
||||
* @param {string} [entry] entry name or import path
|
||||
* @param {object} [options]
|
||||
* @param {boolean} [options.browser]
|
||||
* @param {boolean} [options.require]
|
||||
* @param {string[]} [options.conditions]
|
||||
* @param {boolean} [options.unsafe]
|
||||
*/
|
||||
function resolve(pkg, entry='.', options={}) {
|
||||
let { name, exports } = pkg;
|
||||
|
||||
if (exports) {
|
||||
let { browser, require, unsafe, conditions=[] } = options;
|
||||
|
||||
let target = toName(name, entry);
|
||||
if (target[0] !== '.') target = './' + target;
|
||||
|
||||
if (typeof exports === 'string') {
|
||||
return target === '.' ? exports : bail(name, target);
|
||||
}
|
||||
|
||||
let allows = new Set(['default', ...conditions]);
|
||||
unsafe || allows.add(require ? 'require' : 'import');
|
||||
unsafe || allows.add(browser ? 'browser' : 'node');
|
||||
|
||||
let key, tmp, isSingle=false;
|
||||
|
||||
for (key in exports) {
|
||||
isSingle = key[0] !== '.';
|
||||
break;
|
||||
}
|
||||
|
||||
if (isSingle) {
|
||||
return target === '.'
|
||||
? loop(exports, allows) || bail(name, target, 1)
|
||||
: bail(name, target);
|
||||
}
|
||||
|
||||
if (tmp = exports[target]) {
|
||||
return loop(tmp, allows) || bail(name, target, 1);
|
||||
}
|
||||
|
||||
for (key in exports) {
|
||||
tmp = key[key.length - 1];
|
||||
if (tmp === '/' && target.startsWith(key)) {
|
||||
return (tmp = loop(exports[key], allows))
|
||||
? (tmp + target.substring(key.length))
|
||||
: bail(name, target, 1);
|
||||
}
|
||||
if (tmp === '*' && target.startsWith(key.slice(0, -1))) {
|
||||
// do not trigger if no *content* to inject
|
||||
if (target.substring(key.length - 1).length > 0) {
|
||||
return (tmp = loop(exports[key], allows))
|
||||
? tmp.replace('*', target.substring(key.length - 1))
|
||||
: bail(name, target, 1);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return bail(name, target);
|
||||
}
|
||||
}
|
||||
|
||||
const ArrayIsArray = Array.isArray;
|
||||
const JSONStringify = JSON.stringify;
|
||||
const ObjectGetOwnPropertyNames = Object.getOwnPropertyNames;
|
||||
@ -18475,6 +18363,15 @@ const ERR_INVALID_PACKAGE_CONFIG = createErrorType(
|
||||
},
|
||||
Error
|
||||
);
|
||||
const ERR_PACKAGE_PATH_NOT_EXPORTED = createErrorType(
|
||||
"ERR_PACKAGE_PATH_NOT_EXPORTED",
|
||||
(pkgPath, subpath, base = void 0) => {
|
||||
if (subpath === ".")
|
||||
return `No "exports" main defined in ${pkgPath}package.json${base ? ` imported from ${base}` : ""}`;
|
||||
return `Package subpath '${subpath}' is not defined by "exports" in ${pkgPath}package.json${base ? ` imported from ${base}` : ""}`;
|
||||
},
|
||||
Error
|
||||
);
|
||||
|
||||
function filterOwnProperties(source, keys) {
|
||||
const filtered = /* @__PURE__ */ Object.create(null);
|
||||
@ -18794,12 +18691,121 @@ function patternKeyCompare(a, b) {
|
||||
return 1;
|
||||
return 0;
|
||||
}
|
||||
function packageImportsResolve({
|
||||
name,
|
||||
function isConditionalExportsMainSugar(exports, packageJSONUrl, base) {
|
||||
if (typeof exports === "string" || ArrayIsArray(exports))
|
||||
return true;
|
||||
if (typeof exports !== "object" || exports === null)
|
||||
return false;
|
||||
const keys = ObjectGetOwnPropertyNames(exports);
|
||||
let isConditionalSugar = false;
|
||||
let i = 0;
|
||||
for (let j = 0; j < keys.length; j++) {
|
||||
const key = keys[j];
|
||||
const curIsConditionalSugar = key === "" || key[0] !== ".";
|
||||
if (i++ === 0) {
|
||||
isConditionalSugar = curIsConditionalSugar;
|
||||
} else if (isConditionalSugar !== curIsConditionalSugar) {
|
||||
throw new ERR_INVALID_PACKAGE_CONFIG(
|
||||
url.fileURLToPath(packageJSONUrl),
|
||||
base,
|
||||
`"exports" cannot contain some keys starting with '.' and some not. The exports object must either be an object of package subpath keys or an object of main entry condition name keys only.`
|
||||
);
|
||||
}
|
||||
}
|
||||
return isConditionalSugar;
|
||||
}
|
||||
function throwExportsNotFound(subpath, packageJSONUrl, base) {
|
||||
throw new ERR_PACKAGE_PATH_NOT_EXPORTED(
|
||||
url.fileURLToPath(new URL(".", packageJSONUrl)),
|
||||
subpath,
|
||||
base && url.fileURLToPath(base)
|
||||
);
|
||||
}
|
||||
const emittedPackageWarnings = /* @__PURE__ */ new Set();
|
||||
function emitTrailingSlashPatternDeprecation(match, pjsonUrl, base) {
|
||||
const pjsonPath = url.fileURLToPath(pjsonUrl);
|
||||
if (emittedPackageWarnings.has(pjsonPath + "|" + match))
|
||||
return;
|
||||
emittedPackageWarnings.add(pjsonPath + "|" + match);
|
||||
process.emitWarning(
|
||||
`Use of deprecated trailing slash pattern mapping "${match}" in the "exports" field module resolution of the package at ${pjsonPath}${base ? ` imported from ${url.fileURLToPath(base)}` : ""}. Mapping specifiers ending in "/" is no longer supported.`,
|
||||
"DeprecationWarning",
|
||||
"DEP0155"
|
||||
);
|
||||
}
|
||||
function packageExportsResolve({
|
||||
packageJSONUrl,
|
||||
packageSubpath,
|
||||
exports,
|
||||
base,
|
||||
conditions,
|
||||
readFileSyncFn
|
||||
conditions
|
||||
}) {
|
||||
if (isConditionalExportsMainSugar(exports, packageJSONUrl, base))
|
||||
exports = { ".": exports };
|
||||
if (ObjectPrototypeHasOwnProperty(exports, packageSubpath) && !StringPrototypeIncludes(packageSubpath, "*") && !StringPrototypeEndsWith(packageSubpath, "/")) {
|
||||
const target = exports[packageSubpath];
|
||||
const resolveResult = resolvePackageTarget(
|
||||
packageJSONUrl,
|
||||
target,
|
||||
"",
|
||||
packageSubpath,
|
||||
base,
|
||||
false,
|
||||
false,
|
||||
conditions
|
||||
);
|
||||
if (resolveResult == null) {
|
||||
throwExportsNotFound(packageSubpath, packageJSONUrl, base);
|
||||
}
|
||||
return resolveResult;
|
||||
}
|
||||
let bestMatch = "";
|
||||
let bestMatchSubpath;
|
||||
const keys = ObjectGetOwnPropertyNames(exports);
|
||||
for (let i = 0; i < keys.length; i++) {
|
||||
const key = keys[i];
|
||||
const patternIndex = StringPrototypeIndexOf(key, "*");
|
||||
if (patternIndex !== -1 && StringPrototypeStartsWith(
|
||||
packageSubpath,
|
||||
StringPrototypeSlice(key, 0, patternIndex)
|
||||
)) {
|
||||
if (StringPrototypeEndsWith(packageSubpath, "/"))
|
||||
emitTrailingSlashPatternDeprecation(
|
||||
packageSubpath,
|
||||
packageJSONUrl,
|
||||
base
|
||||
);
|
||||
const patternTrailer = StringPrototypeSlice(key, patternIndex + 1);
|
||||
if (packageSubpath.length >= key.length && StringPrototypeEndsWith(packageSubpath, patternTrailer) && patternKeyCompare(bestMatch, key) === 1 && StringPrototypeLastIndexOf(key, "*") === patternIndex) {
|
||||
bestMatch = key;
|
||||
bestMatchSubpath = StringPrototypeSlice(
|
||||
packageSubpath,
|
||||
patternIndex,
|
||||
packageSubpath.length - patternTrailer.length
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
if (bestMatch) {
|
||||
const target = exports[bestMatch];
|
||||
const resolveResult = resolvePackageTarget(
|
||||
packageJSONUrl,
|
||||
target,
|
||||
bestMatchSubpath,
|
||||
bestMatch,
|
||||
base,
|
||||
true,
|
||||
false,
|
||||
conditions
|
||||
);
|
||||
if (resolveResult == null) {
|
||||
throwExportsNotFound(packageSubpath, packageJSONUrl, base);
|
||||
}
|
||||
return resolveResult;
|
||||
}
|
||||
throwExportsNotFound(packageSubpath, packageJSONUrl, base);
|
||||
}
|
||||
function packageImportsResolve({ name, base, conditions, readFileSyncFn }) {
|
||||
if (name === "#" || StringPrototypeStartsWith(name, "#/") || StringPrototypeEndsWith(name, "/")) {
|
||||
const reason = "is not a valid internal imports specifier name";
|
||||
throw new ERR_INVALID_MODULE_SPECIFIER(name, reason, url.fileURLToPath(base));
|
||||
@ -19267,12 +19273,11 @@ function makeApi(runtimeState, opts) {
|
||||
return false;
|
||||
}
|
||||
const defaultExportsConditions = /* @__PURE__ */ new Set([
|
||||
`default`,
|
||||
`node`,
|
||||
`require`,
|
||||
...getOptionValue(`--conditions`)
|
||||
]);
|
||||
function applyNodeExportsResolution(unqualifiedPath, conditions = defaultExportsConditions) {
|
||||
function applyNodeExportsResolution(unqualifiedPath, conditions = defaultExportsConditions, issuer) {
|
||||
const locator = findPackageLocator(ppath.join(unqualifiedPath, `internal.js`), {
|
||||
resolveIgnored: true,
|
||||
includeDiscardFromLookup: true
|
||||
@ -19288,6 +19293,8 @@ function makeApi(runtimeState, opts) {
|
||||
if (!opts.fakeFs.existsSync(manifestPath))
|
||||
return null;
|
||||
const pkgJson = JSON.parse(opts.fakeFs.readFileSync(manifestPath, `utf8`));
|
||||
if (pkgJson.exports == null)
|
||||
return null;
|
||||
let subpath = ppath.contains(packageLocation, unqualifiedPath);
|
||||
if (subpath === null) {
|
||||
throw makeError(
|
||||
@ -19295,25 +19302,25 @@ function makeApi(runtimeState, opts) {
|
||||
`unqualifiedPath doesn't contain the packageLocation (this is probably an internal error)`
|
||||
);
|
||||
}
|
||||
if (!isRelativeRegexp.test(subpath))
|
||||
if (subpath !== `.` && !isRelativeRegexp.test(subpath))
|
||||
subpath = `./${subpath}`;
|
||||
let resolvedExport;
|
||||
try {
|
||||
resolvedExport = resolve(pkgJson, ppath.normalize(subpath), {
|
||||
conditions,
|
||||
unsafe: true
|
||||
const resolvedExport = packageExportsResolve({
|
||||
packageJSONUrl: url.pathToFileURL(npath.fromPortablePath(manifestPath)),
|
||||
packageSubpath: subpath,
|
||||
exports: pkgJson.exports,
|
||||
base: issuer ? url.pathToFileURL(npath.fromPortablePath(issuer)) : null,
|
||||
conditions
|
||||
});
|
||||
return npath.toPortablePath(url.fileURLToPath(resolvedExport));
|
||||
} catch (error) {
|
||||
throw makeError(
|
||||
ErrorCode.EXPORTS_RESOLUTION_FAILED,
|
||||
error.message,
|
||||
{ unqualifiedPath: getPathForDisplay(unqualifiedPath), locator, pkgJson, subpath: getPathForDisplay(subpath), conditions },
|
||||
`ERR_PACKAGE_PATH_NOT_EXPORTED`
|
||||
error.code
|
||||
);
|
||||
}
|
||||
if (typeof resolvedExport === `string`)
|
||||
return ppath.join(packageLocation, resolvedExport);
|
||||
return null;
|
||||
}
|
||||
function applyNodeExtensionResolution(unqualifiedPath, candidates, { extensions }) {
|
||||
let stat;
|
||||
@ -19690,10 +19697,10 @@ Required by: ${issuerLocator.name}@${issuerLocator.reference} (via ${issuerForDi
|
||||
}
|
||||
return ppath.normalize(unqualifiedPath);
|
||||
}
|
||||
function resolveUnqualifiedExport(request, unqualifiedPath, conditions = defaultExportsConditions) {
|
||||
function resolveUnqualifiedExport(request, unqualifiedPath, conditions = defaultExportsConditions, issuer) {
|
||||
if (isStrictRegExp.test(request))
|
||||
return unqualifiedPath;
|
||||
const unqualifiedExportPath = applyNodeExportsResolution(unqualifiedPath, conditions);
|
||||
const unqualifiedExportPath = applyNodeExportsResolution(unqualifiedPath, conditions, issuer);
|
||||
if (unqualifiedExportPath) {
|
||||
return ppath.normalize(unqualifiedExportPath);
|
||||
} else {
|
||||
@ -19780,7 +19787,7 @@ ${candidates.map((candidate) => `Not found: ${getPathForDisplay(candidate)}
|
||||
if (unqualifiedPath === null)
|
||||
return null;
|
||||
const isIssuerIgnored = () => issuer !== null ? isPathIgnored(issuer) : false;
|
||||
const remappedPath = (!considerBuiltins || !isBuiltinModule(request)) && !isIssuerIgnored() ? resolveUnqualifiedExport(request, unqualifiedPath, conditions) : unqualifiedPath;
|
||||
const remappedPath = (!considerBuiltins || !isBuiltinModule(request)) && !isIssuerIgnored() ? resolveUnqualifiedExport(request, unqualifiedPath, conditions, issuer) : unqualifiedPath;
|
||||
return resolveUnqualified(remappedPath, { extensions });
|
||||
} catch (error) {
|
||||
if (Object.prototype.hasOwnProperty.call(error, `pnpCode`))
|
||||
|
75
.pnp.loader.mjs
generated
75
.pnp.loader.mjs
generated
@ -1333,6 +1333,7 @@ const HAS_CONSOLIDATED_HOOKS = major > 16 || major === 16 && minor >= 12;
|
||||
const HAS_UNFLAGGED_JSON_MODULES = major > 17 || major === 17 && minor >= 5 || major === 16 && minor >= 15;
|
||||
const HAS_JSON_IMPORT_ASSERTION_REQUIREMENT = major > 17 || major === 17 && minor >= 1 || major === 16 && minor > 14;
|
||||
const WATCH_MODE_MESSAGE_USES_ARRAYS = major > 19 || major === 19 && minor >= 2 || major === 18 && minor >= 13;
|
||||
const HAS_LAZY_LOADED_TRANSLATORS = major > 19 || major === 19 && minor >= 3;
|
||||
|
||||
const builtinModules = new Set(Module.builtinModules || Object.keys(process.binding(`natives`)));
|
||||
const isBuiltinModule = (request) => request.startsWith(`node:`) || builtinModules.has(request);
|
||||
@ -1854,12 +1855,7 @@ function patternKeyCompare(a, b) {
|
||||
return 1;
|
||||
return 0;
|
||||
}
|
||||
function packageImportsResolve({
|
||||
name,
|
||||
base,
|
||||
conditions,
|
||||
readFileSyncFn
|
||||
}) {
|
||||
function packageImportsResolve({ name, base, conditions, readFileSyncFn }) {
|
||||
if (name === "#" || StringPrototypeStartsWith(name, "#/") || StringPrototypeEndsWith(name, "/")) {
|
||||
const reason = "is not a valid internal imports specifier name";
|
||||
throw new ERR_INVALID_MODULE_SPECIFIER(name, reason, fileURLToPath(base));
|
||||
@ -1988,10 +1984,17 @@ async function resolve$1(originalSpecifier, context, nextResolve) {
|
||||
}
|
||||
}
|
||||
}
|
||||
const result = pnpapi.resolveRequest(specifier, issuer, {
|
||||
conditions: new Set(conditions),
|
||||
extensions: allowLegacyResolve ? void 0 : []
|
||||
});
|
||||
let result;
|
||||
try {
|
||||
result = pnpapi.resolveRequest(specifier, issuer, {
|
||||
conditions: new Set(conditions),
|
||||
extensions: allowLegacyResolve ? void 0 : []
|
||||
});
|
||||
} catch (err) {
|
||||
if (err instanceof Error && `code` in err && err.code === `MODULE_NOT_FOUND`)
|
||||
err.code = `ERR_MODULE_NOT_FOUND`;
|
||||
throw err;
|
||||
}
|
||||
if (!result)
|
||||
throw new Error(`Resolving '${specifier}' from '${issuer}' failed`);
|
||||
const resultURL = pathToFileURL(result);
|
||||
@ -2007,32 +2010,34 @@ async function resolve$1(originalSpecifier, context, nextResolve) {
|
||||
};
|
||||
}
|
||||
|
||||
const binding = process.binding(`fs`);
|
||||
const originalfstat = binding.fstat;
|
||||
const ZIP_MASK = 4278190080;
|
||||
const ZIP_MAGIC = 704643072;
|
||||
binding.fstat = function(...args) {
|
||||
const [fd, useBigint, req] = args;
|
||||
if ((fd & ZIP_MASK) === ZIP_MAGIC && useBigint === false && req === void 0) {
|
||||
try {
|
||||
const stats = fs.fstatSync(fd);
|
||||
return new Float64Array([
|
||||
stats.dev,
|
||||
stats.mode,
|
||||
stats.nlink,
|
||||
stats.uid,
|
||||
stats.gid,
|
||||
stats.rdev,
|
||||
stats.blksize,
|
||||
stats.ino,
|
||||
stats.size,
|
||||
stats.blocks
|
||||
]);
|
||||
} catch {
|
||||
if (!HAS_LAZY_LOADED_TRANSLATORS) {
|
||||
const binding = process.binding(`fs`);
|
||||
const originalfstat = binding.fstat;
|
||||
const ZIP_MASK = 4278190080;
|
||||
const ZIP_MAGIC = 704643072;
|
||||
binding.fstat = function(...args) {
|
||||
const [fd, useBigint, req] = args;
|
||||
if ((fd & ZIP_MASK) === ZIP_MAGIC && useBigint === false && req === void 0) {
|
||||
try {
|
||||
const stats = fs.fstatSync(fd);
|
||||
return new Float64Array([
|
||||
stats.dev,
|
||||
stats.mode,
|
||||
stats.nlink,
|
||||
stats.uid,
|
||||
stats.gid,
|
||||
stats.rdev,
|
||||
stats.blksize,
|
||||
stats.ino,
|
||||
stats.size,
|
||||
stats.blocks
|
||||
]);
|
||||
} catch {
|
||||
}
|
||||
}
|
||||
}
|
||||
return originalfstat.apply(this, args);
|
||||
};
|
||||
return originalfstat.apply(this, args);
|
||||
};
|
||||
}
|
||||
|
||||
const resolve = resolve$1;
|
||||
const getFormat = HAS_CONSOLIDATED_HOOKS ? void 0 : getFormat$1;
|
||||
|
@ -85,5 +85,9 @@
|
||||
"vite": "^4.3.5",
|
||||
"vite-plugin-node-polyfills": "^0.8.2",
|
||||
"vitest": "^0.31.0"
|
||||
},
|
||||
"packageManager": "yarn@3.5.1",
|
||||
"engines": {
|
||||
"node": ">=18.0.0"
|
||||
}
|
||||
}
|
||||
|
@ -7094,11 +7094,11 @@ __metadata:
|
||||
|
||||
"typescript@patch:typescript@^4.9.5#~builtin<compat/typescript>":
|
||||
version: 4.9.5
|
||||
resolution: "typescript@patch:typescript@npm%3A4.9.5#~builtin<compat/typescript>::version=4.9.5&hash=23ec76"
|
||||
resolution: "typescript@patch:typescript@npm%3A4.9.5#~builtin<compat/typescript>::version=4.9.5&hash=289587"
|
||||
bin:
|
||||
tsc: bin/tsc
|
||||
tsserver: bin/tsserver
|
||||
checksum: ab417a2f398380c90a6cf5a5f74badd17866adf57f1165617d6a551f059c3ba0a3e4da0d147b3ac5681db9ac76a303c5876394b13b3de75fdd5b1eaa06181c9d
|
||||
checksum: 1f8f3b6aaea19f0f67cba79057674ba580438a7db55057eb89cc06950483c5d632115c14077f6663ea76fd09fce3c190e6414bb98582ec80aa5a4eaf345d5b68
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
|
Reference in New Issue
Block a user