react-doctor 0.9.12-dev.ffc2d14 → 0.9.13-dev.d030b11
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +33 -0
- package/dist/active-run-trace-dlIZeEvb.js +18 -0
- package/dist/active-scan-abort-registry-DwG6tSPy.js +28 -0
- package/dist/{build-section-divider-BuOtLrzK.js → build-section-divider-Dhl7C8kp.js} +8 -22
- package/dist/{ci-DVVsf25h.js → ci-CPJtbXo4.js} +12 -11
- package/dist/cli.js +116 -35
- package/dist/{design-Y1pcA2uj.js → design-CI6oM-NB.js} +4 -4
- package/dist/{devtools-D8NTVj81.js → devtools-CC2PAZ85.js} +3 -3
- package/dist/{exit-gracefully-DnXGONjj.js → exit-gracefully-Zhbpfy2i.js} +15 -9
- package/dist/get-east-asian-width-Bv2TD3Xj.js +444 -0
- package/dist/{report-error-MGKyeIns.js → handle-error-LYTGcmFr.js} +18 -68
- package/dist/index.d.ts +32 -0
- package/dist/index.js +593 -286
- package/dist/{inspect-g3_lzs3l.js → inspect-BZ-i49rK.js} +38 -28
- package/dist/{install-02Lq6wKC.js → install-Cf-tjrbB.js} +9 -8
- package/dist/{install-doctor-script-DmEWQpVJ.js → install-doctor-script-BGdm_niA.js} +7 -449
- package/dist/{install-github-workflow-Dx6Pl9Wl.js → install-github-workflow-CwcDLQCy.js} +10 -6
- package/dist/{install-react-doctor-CMCXgenA.js → install-react-doctor-DcJ90NzQ.js} +8 -8
- package/dist/{run-scan-app-CDDu7P32.js → jsx-runtime-Cq-_Fvkx.js} +280 -2774
- package/dist/path-format-DnHpmJwG.js +9 -0
- package/dist/{print-branded-header-kbvWYuGv.js → print-branded-header-DM0JRJnn.js} +4 -4
- package/dist/project-analysis-worker.js +59 -54
- package/dist/prompt-runtime-scan-url-BpHApg0d.js +240 -0
- package/dist/{read-object-file-Cwhr9OIi.js → read-object-file-DMUSluLA.js} +4 -4
- package/dist/{record-metric-CFfsgcVs.js → record-metric-BRc98SXW.js} +556 -235
- package/dist/report-error-BpWTkd5U.js +64 -0
- package/dist/{report-workflow-result-DGg9xopH.js → report-workflow-result-DXSpYstq.js} +5 -5
- package/dist/{resolve-scope-CXS-5jLR.js → resolve-scope-CJXv5ePP.js} +8 -10
- package/dist/{rules-CThlosPx.js → rules-CZk5ywQe.js} +6 -6
- package/dist/run-scan-app-BtY0jXpd.js +2511 -0
- package/dist/runtime-scan/browser-probe.iife.js +855 -0
- package/dist/runtime-scan-iztAEKV3.js +770 -0
- package/dist/sanitize-runtime-url-DbrHDuC1.js +76 -0
- package/dist/scan-GPvogJT-.js +47 -0
- package/dist/{should-fail-scan-gate-C0Bo5Gqy.js → should-fail-scan-gate-Uk7rJiMQ.js} +20 -112
- package/dist/{should-skip-prompts-BqrtVX4G.js → should-skip-prompts-DzpvkZcL.js} +4 -4
- package/dist/should-use-tui-CH5oI2Vu.js +25 -0
- package/dist/skills/improve-threejs/SKILL.md +102 -0
- package/dist/skills/performance/SKILL.md +113 -0
- package/dist/skills/react-doctor/SKILL.md +6 -0
- package/dist/{unref-stdin-BxyvqsOy.js → telemetry-runtime-hAsPFFEx.js} +55 -25
- package/dist/unref-stdin-SK3WfwxS.js +12 -0
- package/dist/{version-S-8vvWFi.js → version-BiWDQQgs.js} +4 -4
- package/dist/{why-DXfx0oL9.js → why-B8sLOroq.js} +4 -4
- package/dist/with-run-span-BWmpgEhA.js +110 -0
- package/package.json +9 -6
- package/dist/scan-4I1mvxBO.js +0 -53
package/dist/index.js
CHANGED
|
@@ -1,14 +1,15 @@
|
|
|
1
1
|
|
|
2
|
-
!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="
|
|
3
|
-
import { i as __toESM
|
|
2
|
+
!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="5453bc11-5691-5788-ba63-d87c0b7a6bff")}catch(e){}}();
|
|
3
|
+
import { i as __toESM, r as __require, t as __commonJSMin } from "./chunk-ChKA3wi6.js";
|
|
4
4
|
import { createRequire } from "node:module";
|
|
5
5
|
import * as path$1$1 from "node:path";
|
|
6
|
-
import path from "node:path";
|
|
6
|
+
import path, { join, posix } from "node:path";
|
|
7
7
|
import * as fs$1$3 from "node:fs";
|
|
8
|
-
import fs from "node:fs";
|
|
8
|
+
import fs, { existsSync } from "node:fs";
|
|
9
9
|
import * as NodeChildProcess from "node:child_process";
|
|
10
10
|
import { execFile, execFileSync, spawn, spawnSync } from "node:child_process";
|
|
11
11
|
import ts from "typescript";
|
|
12
|
+
import { parseSync } from "oxc-parser";
|
|
12
13
|
import { ALL_REACT_DOCTOR_RULE_KEYS, CROSS_FILE_DEPENDENCY_COLLECTORS, CROSS_FILE_RULE_IDS, FRAMEWORK_SPECIFIC_RULE_KEYS, FRAMEWORK_TOKENS, MOTION_LIBRARY_PACKAGES, REACT_COMPILER_RULES, REACT_DOCTOR_OPT_IN_PROJECT_RULE_IDS, REACT_DOCTOR_PROJECT_RULES, REACT_DOCTOR_RULES, REACT_DOCTOR_RULE_REGISTRY, REACT_DOCTOR_SCAN_RULES, classifySecurityScanFile, collectCrossFileDependencyProbes, resetManifestCaches, shouldReadSecurityScanContent } from "oxlint-plugin-react-doctor/core";
|
|
13
14
|
import * as Crypto from "node:crypto";
|
|
14
15
|
import crypto, { createHash, randomUUID } from "node:crypto";
|
|
@@ -18,14 +19,14 @@ import { fileURLToPath } from "node:url";
|
|
|
18
19
|
import * as OS from "node:os";
|
|
19
20
|
import os from "node:os";
|
|
20
21
|
import { createJiti } from "jiti";
|
|
21
|
-
import { parseJSON5 } from "confbox";
|
|
22
|
+
import { parseJSON5, parseJSONC } from "confbox";
|
|
22
23
|
import * as fs$1 from "node:fs/promises";
|
|
23
24
|
import { PassThrough } from "node:stream";
|
|
24
25
|
import { convertToTSX } from "@astrojs/compiler/sync";
|
|
25
26
|
import { STATUS_CODES } from "node:http";
|
|
26
27
|
import { gzipSync } from "node:zlib";
|
|
27
28
|
//#region ../../node_modules/.pnpm/picomatch@4.0.4/node_modules/picomatch/lib/constants.js
|
|
28
|
-
var require_constants$1 = /* @__PURE__ */ __commonJSMin
|
|
29
|
+
var require_constants$1 = /* @__PURE__ */ __commonJSMin(((exports, module) => {
|
|
29
30
|
const WIN_SLASH = "\\\\/";
|
|
30
31
|
const WIN_NO_SLASH = `[^${WIN_SLASH}]`;
|
|
31
32
|
const DEFAULT_MAX_EXTGLOB_RECURSION = 0;
|
|
@@ -194,7 +195,7 @@ var require_constants$1 = /* @__PURE__ */ __commonJSMin$1(((exports, module) =>
|
|
|
194
195
|
}));
|
|
195
196
|
//#endregion
|
|
196
197
|
//#region ../../node_modules/.pnpm/picomatch@4.0.4/node_modules/picomatch/lib/utils.js
|
|
197
|
-
var require_utils = /* @__PURE__ */ __commonJSMin
|
|
198
|
+
var require_utils = /* @__PURE__ */ __commonJSMin(((exports) => {
|
|
198
199
|
const { REGEX_BACKSLASH, REGEX_REMOVE_BACKSLASH, REGEX_SPECIAL_CHARS, REGEX_SPECIAL_CHARS_GLOBAL } = require_constants$1();
|
|
199
200
|
exports.isObject = (val) => val !== null && typeof val === "object" && !Array.isArray(val);
|
|
200
201
|
exports.hasRegexChars = (str) => REGEX_SPECIAL_CHARS.test(str);
|
|
@@ -242,7 +243,7 @@ var require_utils = /* @__PURE__ */ __commonJSMin$1(((exports) => {
|
|
|
242
243
|
}));
|
|
243
244
|
//#endregion
|
|
244
245
|
//#region ../../node_modules/.pnpm/picomatch@4.0.4/node_modules/picomatch/lib/scan.js
|
|
245
|
-
var require_scan = /* @__PURE__ */ __commonJSMin
|
|
246
|
+
var require_scan = /* @__PURE__ */ __commonJSMin(((exports, module) => {
|
|
246
247
|
const utils = require_utils();
|
|
247
248
|
const { CHAR_ASTERISK, CHAR_AT, CHAR_BACKWARD_SLASH, CHAR_COMMA, CHAR_DOT, CHAR_EXCLAMATION_MARK, CHAR_FORWARD_SLASH, CHAR_LEFT_CURLY_BRACE, CHAR_LEFT_PARENTHESES, CHAR_LEFT_SQUARE_BRACKET, CHAR_PLUS, CHAR_QUESTION_MARK, CHAR_RIGHT_CURLY_BRACE, CHAR_RIGHT_PARENTHESES, CHAR_RIGHT_SQUARE_BRACKET } = require_constants$1();
|
|
248
249
|
const isPathSeparator = (code) => {
|
|
@@ -529,7 +530,7 @@ var require_scan = /* @__PURE__ */ __commonJSMin$1(((exports, module) => {
|
|
|
529
530
|
}));
|
|
530
531
|
//#endregion
|
|
531
532
|
//#region ../../node_modules/.pnpm/picomatch@4.0.4/node_modules/picomatch/lib/parse.js
|
|
532
|
-
var require_parse$2 = /* @__PURE__ */ __commonJSMin
|
|
533
|
+
var require_parse$2 = /* @__PURE__ */ __commonJSMin(((exports, module) => {
|
|
533
534
|
const constants = require_constants$1();
|
|
534
535
|
const utils = require_utils();
|
|
535
536
|
/**
|
|
@@ -1584,7 +1585,7 @@ var require_parse$2 = /* @__PURE__ */ __commonJSMin$1(((exports, module) => {
|
|
|
1584
1585
|
}));
|
|
1585
1586
|
//#endregion
|
|
1586
1587
|
//#region ../../node_modules/.pnpm/picomatch@4.0.4/node_modules/picomatch/lib/picomatch.js
|
|
1587
|
-
var require_picomatch$1 = /* @__PURE__ */ __commonJSMin
|
|
1588
|
+
var require_picomatch$1 = /* @__PURE__ */ __commonJSMin(((exports, module) => {
|
|
1588
1589
|
const scan = require_scan();
|
|
1589
1590
|
const parse = require_parse$2();
|
|
1590
1591
|
const utils = require_utils();
|
|
@@ -1883,8 +1884,8 @@ var require_picomatch$1 = /* @__PURE__ */ __commonJSMin$1(((exports, module) =>
|
|
|
1883
1884
|
module.exports = picomatch;
|
|
1884
1885
|
}));
|
|
1885
1886
|
//#endregion
|
|
1886
|
-
//#region ../core/dist/collect-unplugin-auto-import-global-scopes-
|
|
1887
|
-
var import_picomatch = /* @__PURE__ */ __toESM
|
|
1887
|
+
//#region ../core/dist/collect-unplugin-auto-import-global-scopes-Dwzr_czq.js
|
|
1888
|
+
var import_picomatch = /* @__PURE__ */ __toESM((/* @__PURE__ */ __commonJSMin(((exports, module) => {
|
|
1888
1889
|
const pico = require_picomatch$1();
|
|
1889
1890
|
const utils = require_utils();
|
|
1890
1891
|
function picomatch(glob, options, returnState = false) {
|
|
@@ -2164,6 +2165,7 @@ const ES_TARGET_YEAR_BY_NAME = {
|
|
|
2164
2165
|
* compiler options — the root config first, then a monorepo base config.
|
|
2165
2166
|
*/
|
|
2166
2167
|
const TSCONFIG_FILENAMES = ["tsconfig.json", "tsconfig.base.json"];
|
|
2168
|
+
const DISABLE_DIRECTIVE_BACKUP_DIRECTORY_SEGMENTS = [".react-doctor", "audit-backups"];
|
|
2167
2169
|
/**
|
|
2168
2170
|
* Project-config files that `StagedFiles.materialize` copies into
|
|
2169
2171
|
* the temp directory alongside staged sources so oxlint resolves
|
|
@@ -2396,6 +2398,74 @@ const compileGlobPatternsLenient = (patterns, onInvalid) => {
|
|
|
2396
2398
|
}
|
|
2397
2399
|
return compiled;
|
|
2398
2400
|
};
|
|
2401
|
+
const isOxcAstNode = (value) => Boolean(value) && typeof value === "object" && typeof value.type === "string";
|
|
2402
|
+
const getStaticModuleSpecifier = (value) => {
|
|
2403
|
+
if (!isOxcAstNode(value)) return void 0;
|
|
2404
|
+
if (typeof value.value === "string") return value.value;
|
|
2405
|
+
if (value.type === "TemplateLiteral" && Array.isArray(value.expressions) && value.expressions.length === 0 && Array.isArray(value.quasis) && isOxcAstNode(value.quasis[0]) && value.quasis[0].value && typeof value.quasis[0].value === "object" && "cooked" in value.quasis[0].value && typeof value.quasis[0].value.cooked === "string") return value.quasis[0].value.cooked;
|
|
2406
|
+
};
|
|
2407
|
+
const collectStaticModuleSpecifiers = (sourceText, options = {}) => {
|
|
2408
|
+
const { filePath = "module.tsx", includeTypeOnly = true } = options;
|
|
2409
|
+
const parsedModule = parseSync(filePath, sourceText, { sourceType: "unambiguous" });
|
|
2410
|
+
const moduleSpecifiers = /* @__PURE__ */ new Set();
|
|
2411
|
+
const addSpecifier = (value) => {
|
|
2412
|
+
const moduleSpecifier = getStaticModuleSpecifier(value);
|
|
2413
|
+
if (moduleSpecifier) moduleSpecifiers.add(moduleSpecifier);
|
|
2414
|
+
};
|
|
2415
|
+
const visitNode = (value) => {
|
|
2416
|
+
if (Array.isArray(value)) {
|
|
2417
|
+
for (const child of value) visitNode(child);
|
|
2418
|
+
return;
|
|
2419
|
+
}
|
|
2420
|
+
if (!isOxcAstNode(value)) return;
|
|
2421
|
+
if (value.type === "ImportDeclaration") {
|
|
2422
|
+
const specifiers = Array.isArray(value.specifiers) ? value.specifiers : [];
|
|
2423
|
+
const hasRuntimeSpecifier = specifiers.some((specifier) => !isOxcAstNode(specifier) || specifier.importKind !== "type");
|
|
2424
|
+
if (includeTypeOnly || value.importKind !== "type" && (specifiers.length === 0 || hasRuntimeSpecifier)) addSpecifier(value.source);
|
|
2425
|
+
} else if (value.type === "ExportNamedDeclaration") {
|
|
2426
|
+
const specifiers = Array.isArray(value.specifiers) ? value.specifiers : [];
|
|
2427
|
+
const hasRuntimeSpecifier = specifiers.some((specifier) => !isOxcAstNode(specifier) || specifier.exportKind !== "type");
|
|
2428
|
+
if (includeTypeOnly || value.exportKind !== "type" && (specifiers.length === 0 || hasRuntimeSpecifier)) addSpecifier(value.source);
|
|
2429
|
+
} else if (value.type === "ExportAllDeclaration" || value.type === "ImportExpression") {
|
|
2430
|
+
if (includeTypeOnly || value.exportKind !== "type") addSpecifier(value.source);
|
|
2431
|
+
} else if (value.type === "TSImportType") {
|
|
2432
|
+
if (includeTypeOnly) addSpecifier(value.source);
|
|
2433
|
+
} else if (value.type === "TSExternalModuleReference") addSpecifier(value.expression);
|
|
2434
|
+
else if (value.type === "CallExpression" && isOxcAstNode(value.callee) && value.callee.type === "Identifier" && value.callee.name === "require" && Array.isArray(value.arguments) && value.arguments.length > 0) addSpecifier(value.arguments[0]);
|
|
2435
|
+
for (const child of Object.values(value)) visitNode(child);
|
|
2436
|
+
};
|
|
2437
|
+
visitNode(parsedModule.program);
|
|
2438
|
+
return moduleSpecifiers;
|
|
2439
|
+
};
|
|
2440
|
+
const toPosixPath = (filePath) => filePath.replace(/\\/g, "/");
|
|
2441
|
+
const isPathInsideDirectoryOrEqual = (candidatePath, directoryPath) => {
|
|
2442
|
+
const normalizedCandidatePath = posix.normalize(toPosixPath(candidatePath));
|
|
2443
|
+
const normalizedDirectoryPath = posix.normalize(toPosixPath(directoryPath));
|
|
2444
|
+
const relativePath = posix.relative(normalizedDirectoryPath, normalizedCandidatePath);
|
|
2445
|
+
return relativePath === "" || relativePath !== ".." && !relativePath.startsWith("../") && !posix.isAbsolute(relativePath);
|
|
2446
|
+
};
|
|
2447
|
+
const RESOLVABLE_EXTENSIONS = [
|
|
2448
|
+
".ts",
|
|
2449
|
+
".tsx",
|
|
2450
|
+
".js",
|
|
2451
|
+
".jsx",
|
|
2452
|
+
".mjs",
|
|
2453
|
+
".mts",
|
|
2454
|
+
".cjs",
|
|
2455
|
+
".cts",
|
|
2456
|
+
".es6"
|
|
2457
|
+
];
|
|
2458
|
+
const resolveEntryWithExtensions = (basePath) => {
|
|
2459
|
+
if (existsSync(basePath)) return basePath;
|
|
2460
|
+
for (const extension of RESOLVABLE_EXTENSIONS) {
|
|
2461
|
+
const withExtension = basePath + extension;
|
|
2462
|
+
if (existsSync(withExtension)) return withExtension;
|
|
2463
|
+
}
|
|
2464
|
+
for (const extension of RESOLVABLE_EXTENSIONS) {
|
|
2465
|
+
const indexCandidate = join(basePath, `index${extension}`);
|
|
2466
|
+
if (existsSync(indexCandidate)) return indexCandidate;
|
|
2467
|
+
}
|
|
2468
|
+
};
|
|
2399
2469
|
/**
|
|
2400
2470
|
* Resolves a path to its canonical, symlink-free form, falling back to
|
|
2401
2471
|
* the input when it cannot be realpath'd (broken symlink, permission
|
|
@@ -23377,7 +23447,7 @@ Union([
|
|
|
23377
23447
|
]);
|
|
23378
23448
|
//#endregion
|
|
23379
23449
|
//#region ../../node_modules/.pnpm/semver@7.7.4/node_modules/semver/internal/constants.js
|
|
23380
|
-
var require_constants = /* @__PURE__ */ __commonJSMin
|
|
23450
|
+
var require_constants = /* @__PURE__ */ __commonJSMin(((exports, module) => {
|
|
23381
23451
|
const SEMVER_SPEC_VERSION = "2.0.0";
|
|
23382
23452
|
const MAX_LENGTH = 256;
|
|
23383
23453
|
const MAX_SAFE_INTEGER = Number.MAX_SAFE_INTEGER || 9007199254740991;
|
|
@@ -23402,12 +23472,12 @@ var require_constants = /* @__PURE__ */ __commonJSMin$1(((exports, module) => {
|
|
|
23402
23472
|
}));
|
|
23403
23473
|
//#endregion
|
|
23404
23474
|
//#region ../../node_modules/.pnpm/semver@7.7.4/node_modules/semver/internal/debug.js
|
|
23405
|
-
var require_debug = /* @__PURE__ */ __commonJSMin
|
|
23475
|
+
var require_debug = /* @__PURE__ */ __commonJSMin(((exports, module) => {
|
|
23406
23476
|
module.exports = typeof process === "object" && process.env && process.env.NODE_DEBUG && /\bsemver\b/i.test(process.env.NODE_DEBUG) ? (...args) => console.error("SEMVER", ...args) : () => {};
|
|
23407
23477
|
}));
|
|
23408
23478
|
//#endregion
|
|
23409
23479
|
//#region ../../node_modules/.pnpm/semver@7.7.4/node_modules/semver/internal/re.js
|
|
23410
|
-
var require_re = /* @__PURE__ */ __commonJSMin
|
|
23480
|
+
var require_re = /* @__PURE__ */ __commonJSMin(((exports, module) => {
|
|
23411
23481
|
const { MAX_SAFE_COMPONENT_LENGTH, MAX_SAFE_BUILD_LENGTH, MAX_LENGTH } = require_constants();
|
|
23412
23482
|
const debug = require_debug();
|
|
23413
23483
|
exports = module.exports = {};
|
|
@@ -23486,7 +23556,7 @@ var require_re = /* @__PURE__ */ __commonJSMin$1(((exports, module) => {
|
|
|
23486
23556
|
}));
|
|
23487
23557
|
//#endregion
|
|
23488
23558
|
//#region ../../node_modules/.pnpm/semver@7.7.4/node_modules/semver/internal/parse-options.js
|
|
23489
|
-
var require_parse_options = /* @__PURE__ */ __commonJSMin
|
|
23559
|
+
var require_parse_options = /* @__PURE__ */ __commonJSMin(((exports, module) => {
|
|
23490
23560
|
const looseOption = Object.freeze({ loose: true });
|
|
23491
23561
|
const emptyOpts = Object.freeze({});
|
|
23492
23562
|
const parseOptions = (options) => {
|
|
@@ -23498,7 +23568,7 @@ var require_parse_options = /* @__PURE__ */ __commonJSMin$1(((exports, module) =
|
|
|
23498
23568
|
}));
|
|
23499
23569
|
//#endregion
|
|
23500
23570
|
//#region ../../node_modules/.pnpm/semver@7.7.4/node_modules/semver/internal/identifiers.js
|
|
23501
|
-
var require_identifiers = /* @__PURE__ */ __commonJSMin
|
|
23571
|
+
var require_identifiers = /* @__PURE__ */ __commonJSMin(((exports, module) => {
|
|
23502
23572
|
const numeric = /^[0-9]+$/;
|
|
23503
23573
|
const compareIdentifiers = (a, b) => {
|
|
23504
23574
|
if (typeof a === "number" && typeof b === "number") return a === b ? 0 : a < b ? -1 : 1;
|
|
@@ -23518,7 +23588,7 @@ var require_identifiers = /* @__PURE__ */ __commonJSMin$1(((exports, module) =>
|
|
|
23518
23588
|
}));
|
|
23519
23589
|
//#endregion
|
|
23520
23590
|
//#region ../../node_modules/.pnpm/semver@7.7.4/node_modules/semver/classes/semver.js
|
|
23521
|
-
var require_semver$1 = /* @__PURE__ */ __commonJSMin
|
|
23591
|
+
var require_semver$1 = /* @__PURE__ */ __commonJSMin(((exports, module) => {
|
|
23522
23592
|
const debug = require_debug();
|
|
23523
23593
|
const { MAX_LENGTH, MAX_SAFE_INTEGER } = require_constants();
|
|
23524
23594
|
const { safeRe: re, t } = require_re();
|
|
@@ -23696,7 +23766,7 @@ var require_semver$1 = /* @__PURE__ */ __commonJSMin$1(((exports, module) => {
|
|
|
23696
23766
|
}));
|
|
23697
23767
|
//#endregion
|
|
23698
23768
|
//#region ../../node_modules/.pnpm/semver@7.7.4/node_modules/semver/functions/parse.js
|
|
23699
|
-
var require_parse$1 = /* @__PURE__ */ __commonJSMin
|
|
23769
|
+
var require_parse$1 = /* @__PURE__ */ __commonJSMin(((exports, module) => {
|
|
23700
23770
|
const SemVer = require_semver$1();
|
|
23701
23771
|
const parse = (version, options, throwErrors = false) => {
|
|
23702
23772
|
if (version instanceof SemVer) return version;
|
|
@@ -23711,7 +23781,7 @@ var require_parse$1 = /* @__PURE__ */ __commonJSMin$1(((exports, module) => {
|
|
|
23711
23781
|
}));
|
|
23712
23782
|
//#endregion
|
|
23713
23783
|
//#region ../../node_modules/.pnpm/semver@7.7.4/node_modules/semver/functions/valid.js
|
|
23714
|
-
var require_valid$1 = /* @__PURE__ */ __commonJSMin
|
|
23784
|
+
var require_valid$1 = /* @__PURE__ */ __commonJSMin(((exports, module) => {
|
|
23715
23785
|
const parse = require_parse$1();
|
|
23716
23786
|
const valid = (version, options) => {
|
|
23717
23787
|
const v = parse(version, options);
|
|
@@ -23721,7 +23791,7 @@ var require_valid$1 = /* @__PURE__ */ __commonJSMin$1(((exports, module) => {
|
|
|
23721
23791
|
}));
|
|
23722
23792
|
//#endregion
|
|
23723
23793
|
//#region ../../node_modules/.pnpm/semver@7.7.4/node_modules/semver/functions/clean.js
|
|
23724
|
-
var require_clean = /* @__PURE__ */ __commonJSMin
|
|
23794
|
+
var require_clean = /* @__PURE__ */ __commonJSMin(((exports, module) => {
|
|
23725
23795
|
const parse = require_parse$1();
|
|
23726
23796
|
const clean = (version, options) => {
|
|
23727
23797
|
const s = parse(version.trim().replace(/^[=v]+/, ""), options);
|
|
@@ -23731,7 +23801,7 @@ var require_clean = /* @__PURE__ */ __commonJSMin$1(((exports, module) => {
|
|
|
23731
23801
|
}));
|
|
23732
23802
|
//#endregion
|
|
23733
23803
|
//#region ../../node_modules/.pnpm/semver@7.7.4/node_modules/semver/functions/inc.js
|
|
23734
|
-
var require_inc = /* @__PURE__ */ __commonJSMin
|
|
23804
|
+
var require_inc = /* @__PURE__ */ __commonJSMin(((exports, module) => {
|
|
23735
23805
|
const SemVer = require_semver$1();
|
|
23736
23806
|
const inc = (version, release, options, identifier, identifierBase) => {
|
|
23737
23807
|
if (typeof options === "string") {
|
|
@@ -23749,7 +23819,7 @@ var require_inc = /* @__PURE__ */ __commonJSMin$1(((exports, module) => {
|
|
|
23749
23819
|
}));
|
|
23750
23820
|
//#endregion
|
|
23751
23821
|
//#region ../../node_modules/.pnpm/semver@7.7.4/node_modules/semver/functions/diff.js
|
|
23752
|
-
var require_diff = /* @__PURE__ */ __commonJSMin
|
|
23822
|
+
var require_diff = /* @__PURE__ */ __commonJSMin(((exports, module) => {
|
|
23753
23823
|
const parse = require_parse$1();
|
|
23754
23824
|
const diff = (version1, version2) => {
|
|
23755
23825
|
const v1 = parse(version1, null, true);
|
|
@@ -23777,28 +23847,28 @@ var require_diff = /* @__PURE__ */ __commonJSMin$1(((exports, module) => {
|
|
|
23777
23847
|
}));
|
|
23778
23848
|
//#endregion
|
|
23779
23849
|
//#region ../../node_modules/.pnpm/semver@7.7.4/node_modules/semver/functions/major.js
|
|
23780
|
-
var require_major = /* @__PURE__ */ __commonJSMin
|
|
23850
|
+
var require_major = /* @__PURE__ */ __commonJSMin(((exports, module) => {
|
|
23781
23851
|
const SemVer = require_semver$1();
|
|
23782
23852
|
const major = (a, loose) => new SemVer(a, loose).major;
|
|
23783
23853
|
module.exports = major;
|
|
23784
23854
|
}));
|
|
23785
23855
|
//#endregion
|
|
23786
23856
|
//#region ../../node_modules/.pnpm/semver@7.7.4/node_modules/semver/functions/minor.js
|
|
23787
|
-
var require_minor = /* @__PURE__ */ __commonJSMin
|
|
23857
|
+
var require_minor = /* @__PURE__ */ __commonJSMin(((exports, module) => {
|
|
23788
23858
|
const SemVer = require_semver$1();
|
|
23789
23859
|
const minor = (a, loose) => new SemVer(a, loose).minor;
|
|
23790
23860
|
module.exports = minor;
|
|
23791
23861
|
}));
|
|
23792
23862
|
//#endregion
|
|
23793
23863
|
//#region ../../node_modules/.pnpm/semver@7.7.4/node_modules/semver/functions/patch.js
|
|
23794
|
-
var require_patch = /* @__PURE__ */ __commonJSMin
|
|
23864
|
+
var require_patch = /* @__PURE__ */ __commonJSMin(((exports, module) => {
|
|
23795
23865
|
const SemVer = require_semver$1();
|
|
23796
23866
|
const patch = (a, loose) => new SemVer(a, loose).patch;
|
|
23797
23867
|
module.exports = patch;
|
|
23798
23868
|
}));
|
|
23799
23869
|
//#endregion
|
|
23800
23870
|
//#region ../../node_modules/.pnpm/semver@7.7.4/node_modules/semver/functions/prerelease.js
|
|
23801
|
-
var require_prerelease = /* @__PURE__ */ __commonJSMin
|
|
23871
|
+
var require_prerelease = /* @__PURE__ */ __commonJSMin(((exports, module) => {
|
|
23802
23872
|
const parse = require_parse$1();
|
|
23803
23873
|
const prerelease = (version, options) => {
|
|
23804
23874
|
const parsed = parse(version, options);
|
|
@@ -23808,28 +23878,28 @@ var require_prerelease = /* @__PURE__ */ __commonJSMin$1(((exports, module) => {
|
|
|
23808
23878
|
}));
|
|
23809
23879
|
//#endregion
|
|
23810
23880
|
//#region ../../node_modules/.pnpm/semver@7.7.4/node_modules/semver/functions/compare.js
|
|
23811
|
-
var require_compare = /* @__PURE__ */ __commonJSMin
|
|
23881
|
+
var require_compare = /* @__PURE__ */ __commonJSMin(((exports, module) => {
|
|
23812
23882
|
const SemVer = require_semver$1();
|
|
23813
23883
|
const compare = (a, b, loose) => new SemVer(a, loose).compare(new SemVer(b, loose));
|
|
23814
23884
|
module.exports = compare;
|
|
23815
23885
|
}));
|
|
23816
23886
|
//#endregion
|
|
23817
23887
|
//#region ../../node_modules/.pnpm/semver@7.7.4/node_modules/semver/functions/rcompare.js
|
|
23818
|
-
var require_rcompare = /* @__PURE__ */ __commonJSMin
|
|
23888
|
+
var require_rcompare = /* @__PURE__ */ __commonJSMin(((exports, module) => {
|
|
23819
23889
|
const compare = require_compare();
|
|
23820
23890
|
const rcompare = (a, b, loose) => compare(b, a, loose);
|
|
23821
23891
|
module.exports = rcompare;
|
|
23822
23892
|
}));
|
|
23823
23893
|
//#endregion
|
|
23824
23894
|
//#region ../../node_modules/.pnpm/semver@7.7.4/node_modules/semver/functions/compare-loose.js
|
|
23825
|
-
var require_compare_loose = /* @__PURE__ */ __commonJSMin
|
|
23895
|
+
var require_compare_loose = /* @__PURE__ */ __commonJSMin(((exports, module) => {
|
|
23826
23896
|
const compare = require_compare();
|
|
23827
23897
|
const compareLoose = (a, b) => compare(a, b, true);
|
|
23828
23898
|
module.exports = compareLoose;
|
|
23829
23899
|
}));
|
|
23830
23900
|
//#endregion
|
|
23831
23901
|
//#region ../../node_modules/.pnpm/semver@7.7.4/node_modules/semver/functions/compare-build.js
|
|
23832
|
-
var require_compare_build = /* @__PURE__ */ __commonJSMin
|
|
23902
|
+
var require_compare_build = /* @__PURE__ */ __commonJSMin(((exports, module) => {
|
|
23833
23903
|
const SemVer = require_semver$1();
|
|
23834
23904
|
const compareBuild = (a, b, loose) => {
|
|
23835
23905
|
const versionA = new SemVer(a, loose);
|
|
@@ -23840,63 +23910,63 @@ var require_compare_build = /* @__PURE__ */ __commonJSMin$1(((exports, module) =
|
|
|
23840
23910
|
}));
|
|
23841
23911
|
//#endregion
|
|
23842
23912
|
//#region ../../node_modules/.pnpm/semver@7.7.4/node_modules/semver/functions/sort.js
|
|
23843
|
-
var require_sort = /* @__PURE__ */ __commonJSMin
|
|
23913
|
+
var require_sort = /* @__PURE__ */ __commonJSMin(((exports, module) => {
|
|
23844
23914
|
const compareBuild = require_compare_build();
|
|
23845
23915
|
const sort = (list, loose) => list.sort((a, b) => compareBuild(a, b, loose));
|
|
23846
23916
|
module.exports = sort;
|
|
23847
23917
|
}));
|
|
23848
23918
|
//#endregion
|
|
23849
23919
|
//#region ../../node_modules/.pnpm/semver@7.7.4/node_modules/semver/functions/rsort.js
|
|
23850
|
-
var require_rsort = /* @__PURE__ */ __commonJSMin
|
|
23920
|
+
var require_rsort = /* @__PURE__ */ __commonJSMin(((exports, module) => {
|
|
23851
23921
|
const compareBuild = require_compare_build();
|
|
23852
23922
|
const rsort = (list, loose) => list.sort((a, b) => compareBuild(b, a, loose));
|
|
23853
23923
|
module.exports = rsort;
|
|
23854
23924
|
}));
|
|
23855
23925
|
//#endregion
|
|
23856
23926
|
//#region ../../node_modules/.pnpm/semver@7.7.4/node_modules/semver/functions/gt.js
|
|
23857
|
-
var require_gt = /* @__PURE__ */ __commonJSMin
|
|
23927
|
+
var require_gt = /* @__PURE__ */ __commonJSMin(((exports, module) => {
|
|
23858
23928
|
const compare = require_compare();
|
|
23859
23929
|
const gt = (a, b, loose) => compare(a, b, loose) > 0;
|
|
23860
23930
|
module.exports = gt;
|
|
23861
23931
|
}));
|
|
23862
23932
|
//#endregion
|
|
23863
23933
|
//#region ../../node_modules/.pnpm/semver@7.7.4/node_modules/semver/functions/lt.js
|
|
23864
|
-
var require_lt = /* @__PURE__ */ __commonJSMin
|
|
23934
|
+
var require_lt = /* @__PURE__ */ __commonJSMin(((exports, module) => {
|
|
23865
23935
|
const compare = require_compare();
|
|
23866
23936
|
const lt = (a, b, loose) => compare(a, b, loose) < 0;
|
|
23867
23937
|
module.exports = lt;
|
|
23868
23938
|
}));
|
|
23869
23939
|
//#endregion
|
|
23870
23940
|
//#region ../../node_modules/.pnpm/semver@7.7.4/node_modules/semver/functions/eq.js
|
|
23871
|
-
var require_eq = /* @__PURE__ */ __commonJSMin
|
|
23941
|
+
var require_eq = /* @__PURE__ */ __commonJSMin(((exports, module) => {
|
|
23872
23942
|
const compare = require_compare();
|
|
23873
23943
|
const eq = (a, b, loose) => compare(a, b, loose) === 0;
|
|
23874
23944
|
module.exports = eq;
|
|
23875
23945
|
}));
|
|
23876
23946
|
//#endregion
|
|
23877
23947
|
//#region ../../node_modules/.pnpm/semver@7.7.4/node_modules/semver/functions/neq.js
|
|
23878
|
-
var require_neq = /* @__PURE__ */ __commonJSMin
|
|
23948
|
+
var require_neq = /* @__PURE__ */ __commonJSMin(((exports, module) => {
|
|
23879
23949
|
const compare = require_compare();
|
|
23880
23950
|
const neq = (a, b, loose) => compare(a, b, loose) !== 0;
|
|
23881
23951
|
module.exports = neq;
|
|
23882
23952
|
}));
|
|
23883
23953
|
//#endregion
|
|
23884
23954
|
//#region ../../node_modules/.pnpm/semver@7.7.4/node_modules/semver/functions/gte.js
|
|
23885
|
-
var require_gte = /* @__PURE__ */ __commonJSMin
|
|
23955
|
+
var require_gte = /* @__PURE__ */ __commonJSMin(((exports, module) => {
|
|
23886
23956
|
const compare = require_compare();
|
|
23887
23957
|
const gte = (a, b, loose) => compare(a, b, loose) >= 0;
|
|
23888
23958
|
module.exports = gte;
|
|
23889
23959
|
}));
|
|
23890
23960
|
//#endregion
|
|
23891
23961
|
//#region ../../node_modules/.pnpm/semver@7.7.4/node_modules/semver/functions/lte.js
|
|
23892
|
-
var require_lte = /* @__PURE__ */ __commonJSMin
|
|
23962
|
+
var require_lte = /* @__PURE__ */ __commonJSMin(((exports, module) => {
|
|
23893
23963
|
const compare = require_compare();
|
|
23894
23964
|
const lte = (a, b, loose) => compare(a, b, loose) <= 0;
|
|
23895
23965
|
module.exports = lte;
|
|
23896
23966
|
}));
|
|
23897
23967
|
//#endregion
|
|
23898
23968
|
//#region ../../node_modules/.pnpm/semver@7.7.4/node_modules/semver/functions/cmp.js
|
|
23899
|
-
var require_cmp = /* @__PURE__ */ __commonJSMin
|
|
23969
|
+
var require_cmp = /* @__PURE__ */ __commonJSMin(((exports, module) => {
|
|
23900
23970
|
const eq = require_eq();
|
|
23901
23971
|
const neq = require_neq();
|
|
23902
23972
|
const gt = require_gt();
|
|
@@ -23928,7 +23998,7 @@ var require_cmp = /* @__PURE__ */ __commonJSMin$1(((exports, module) => {
|
|
|
23928
23998
|
}));
|
|
23929
23999
|
//#endregion
|
|
23930
24000
|
//#region ../../node_modules/.pnpm/semver@7.7.4/node_modules/semver/functions/coerce.js
|
|
23931
|
-
var require_coerce = /* @__PURE__ */ __commonJSMin
|
|
24001
|
+
var require_coerce = /* @__PURE__ */ __commonJSMin(((exports, module) => {
|
|
23932
24002
|
const SemVer = require_semver$1();
|
|
23933
24003
|
const parse = require_parse$1();
|
|
23934
24004
|
const { safeRe: re, t } = require_re();
|
|
@@ -23956,7 +24026,7 @@ var require_coerce = /* @__PURE__ */ __commonJSMin$1(((exports, module) => {
|
|
|
23956
24026
|
}));
|
|
23957
24027
|
//#endregion
|
|
23958
24028
|
//#region ../../node_modules/.pnpm/semver@7.7.4/node_modules/semver/internal/lrucache.js
|
|
23959
|
-
var require_lrucache = /* @__PURE__ */ __commonJSMin
|
|
24029
|
+
var require_lrucache = /* @__PURE__ */ __commonJSMin(((exports, module) => {
|
|
23960
24030
|
var LRUCache = class {
|
|
23961
24031
|
constructor() {
|
|
23962
24032
|
this.max = 1e3;
|
|
@@ -23989,7 +24059,7 @@ var require_lrucache = /* @__PURE__ */ __commonJSMin$1(((exports, module) => {
|
|
|
23989
24059
|
}));
|
|
23990
24060
|
//#endregion
|
|
23991
24061
|
//#region ../../node_modules/.pnpm/semver@7.7.4/node_modules/semver/classes/range.js
|
|
23992
|
-
var require_range = /* @__PURE__ */ __commonJSMin
|
|
24062
|
+
var require_range = /* @__PURE__ */ __commonJSMin(((exports, module) => {
|
|
23993
24063
|
const SPACE_CHARACTERS = /\s+/g;
|
|
23994
24064
|
module.exports = class Range {
|
|
23995
24065
|
constructor(range, options) {
|
|
@@ -24261,7 +24331,7 @@ var require_range = /* @__PURE__ */ __commonJSMin$1(((exports, module) => {
|
|
|
24261
24331
|
}));
|
|
24262
24332
|
//#endregion
|
|
24263
24333
|
//#region ../../node_modules/.pnpm/semver@7.7.4/node_modules/semver/classes/comparator.js
|
|
24264
|
-
var require_comparator = /* @__PURE__ */ __commonJSMin
|
|
24334
|
+
var require_comparator = /* @__PURE__ */ __commonJSMin(((exports, module) => {
|
|
24265
24335
|
const ANY = Symbol("SemVer ANY");
|
|
24266
24336
|
module.exports = class Comparator {
|
|
24267
24337
|
static get ANY() {
|
|
@@ -24331,7 +24401,7 @@ var require_comparator = /* @__PURE__ */ __commonJSMin$1(((exports, module) => {
|
|
|
24331
24401
|
}));
|
|
24332
24402
|
//#endregion
|
|
24333
24403
|
//#region ../../node_modules/.pnpm/semver@7.7.4/node_modules/semver/functions/satisfies.js
|
|
24334
|
-
var require_satisfies = /* @__PURE__ */ __commonJSMin
|
|
24404
|
+
var require_satisfies = /* @__PURE__ */ __commonJSMin(((exports, module) => {
|
|
24335
24405
|
const Range = require_range();
|
|
24336
24406
|
const satisfies = (version, range, options) => {
|
|
24337
24407
|
try {
|
|
@@ -24345,14 +24415,14 @@ var require_satisfies = /* @__PURE__ */ __commonJSMin$1(((exports, module) => {
|
|
|
24345
24415
|
}));
|
|
24346
24416
|
//#endregion
|
|
24347
24417
|
//#region ../../node_modules/.pnpm/semver@7.7.4/node_modules/semver/ranges/to-comparators.js
|
|
24348
|
-
var require_to_comparators = /* @__PURE__ */ __commonJSMin
|
|
24418
|
+
var require_to_comparators = /* @__PURE__ */ __commonJSMin(((exports, module) => {
|
|
24349
24419
|
const Range = require_range();
|
|
24350
24420
|
const toComparators = (range, options) => new Range(range, options).set.map((comp) => comp.map((c) => c.value).join(" ").trim().split(" "));
|
|
24351
24421
|
module.exports = toComparators;
|
|
24352
24422
|
}));
|
|
24353
24423
|
//#endregion
|
|
24354
24424
|
//#region ../../node_modules/.pnpm/semver@7.7.4/node_modules/semver/ranges/max-satisfying.js
|
|
24355
|
-
var require_max_satisfying = /* @__PURE__ */ __commonJSMin
|
|
24425
|
+
var require_max_satisfying = /* @__PURE__ */ __commonJSMin(((exports, module) => {
|
|
24356
24426
|
const SemVer = require_semver$1();
|
|
24357
24427
|
const Range = require_range();
|
|
24358
24428
|
const maxSatisfying = (versions, range, options) => {
|
|
@@ -24378,7 +24448,7 @@ var require_max_satisfying = /* @__PURE__ */ __commonJSMin$1(((exports, module)
|
|
|
24378
24448
|
}));
|
|
24379
24449
|
//#endregion
|
|
24380
24450
|
//#region ../../node_modules/.pnpm/semver@7.7.4/node_modules/semver/ranges/min-satisfying.js
|
|
24381
|
-
var require_min_satisfying = /* @__PURE__ */ __commonJSMin
|
|
24451
|
+
var require_min_satisfying = /* @__PURE__ */ __commonJSMin(((exports, module) => {
|
|
24382
24452
|
const SemVer = require_semver$1();
|
|
24383
24453
|
const Range = require_range();
|
|
24384
24454
|
const minSatisfying = (versions, range, options) => {
|
|
@@ -24404,7 +24474,7 @@ var require_min_satisfying = /* @__PURE__ */ __commonJSMin$1(((exports, module)
|
|
|
24404
24474
|
}));
|
|
24405
24475
|
//#endregion
|
|
24406
24476
|
//#region ../../node_modules/.pnpm/semver@7.7.4/node_modules/semver/ranges/min-version.js
|
|
24407
|
-
var require_min_version = /* @__PURE__ */ __commonJSMin
|
|
24477
|
+
var require_min_version = /* @__PURE__ */ __commonJSMin(((exports, module) => {
|
|
24408
24478
|
const SemVer = require_semver$1();
|
|
24409
24479
|
const Range = require_range();
|
|
24410
24480
|
const gt = require_gt();
|
|
@@ -24444,7 +24514,7 @@ var require_min_version = /* @__PURE__ */ __commonJSMin$1(((exports, module) =>
|
|
|
24444
24514
|
}));
|
|
24445
24515
|
//#endregion
|
|
24446
24516
|
//#region ../../node_modules/.pnpm/semver@7.7.4/node_modules/semver/ranges/valid.js
|
|
24447
|
-
var require_valid = /* @__PURE__ */ __commonJSMin
|
|
24517
|
+
var require_valid = /* @__PURE__ */ __commonJSMin(((exports, module) => {
|
|
24448
24518
|
const Range = require_range();
|
|
24449
24519
|
const validRange = (range, options) => {
|
|
24450
24520
|
try {
|
|
@@ -24457,7 +24527,7 @@ var require_valid = /* @__PURE__ */ __commonJSMin$1(((exports, module) => {
|
|
|
24457
24527
|
}));
|
|
24458
24528
|
//#endregion
|
|
24459
24529
|
//#region ../../node_modules/.pnpm/semver@7.7.4/node_modules/semver/ranges/outside.js
|
|
24460
|
-
var require_outside = /* @__PURE__ */ __commonJSMin
|
|
24530
|
+
var require_outside = /* @__PURE__ */ __commonJSMin(((exports, module) => {
|
|
24461
24531
|
const SemVer = require_semver$1();
|
|
24462
24532
|
const Comparator = require_comparator();
|
|
24463
24533
|
const { ANY } = Comparator;
|
|
@@ -24510,21 +24580,21 @@ var require_outside = /* @__PURE__ */ __commonJSMin$1(((exports, module) => {
|
|
|
24510
24580
|
}));
|
|
24511
24581
|
//#endregion
|
|
24512
24582
|
//#region ../../node_modules/.pnpm/semver@7.7.4/node_modules/semver/ranges/gtr.js
|
|
24513
|
-
var require_gtr = /* @__PURE__ */ __commonJSMin
|
|
24583
|
+
var require_gtr = /* @__PURE__ */ __commonJSMin(((exports, module) => {
|
|
24514
24584
|
const outside = require_outside();
|
|
24515
24585
|
const gtr = (version, range, options) => outside(version, range, ">", options);
|
|
24516
24586
|
module.exports = gtr;
|
|
24517
24587
|
}));
|
|
24518
24588
|
//#endregion
|
|
24519
24589
|
//#region ../../node_modules/.pnpm/semver@7.7.4/node_modules/semver/ranges/ltr.js
|
|
24520
|
-
var require_ltr = /* @__PURE__ */ __commonJSMin
|
|
24590
|
+
var require_ltr = /* @__PURE__ */ __commonJSMin(((exports, module) => {
|
|
24521
24591
|
const outside = require_outside();
|
|
24522
24592
|
const ltr = (version, range, options) => outside(version, range, "<", options);
|
|
24523
24593
|
module.exports = ltr;
|
|
24524
24594
|
}));
|
|
24525
24595
|
//#endregion
|
|
24526
24596
|
//#region ../../node_modules/.pnpm/semver@7.7.4/node_modules/semver/ranges/intersects.js
|
|
24527
|
-
var require_intersects = /* @__PURE__ */ __commonJSMin
|
|
24597
|
+
var require_intersects = /* @__PURE__ */ __commonJSMin(((exports, module) => {
|
|
24528
24598
|
const Range = require_range();
|
|
24529
24599
|
const intersects = (r1, r2, options) => {
|
|
24530
24600
|
r1 = new Range(r1, options);
|
|
@@ -24535,7 +24605,7 @@ var require_intersects = /* @__PURE__ */ __commonJSMin$1(((exports, module) => {
|
|
|
24535
24605
|
}));
|
|
24536
24606
|
//#endregion
|
|
24537
24607
|
//#region ../../node_modules/.pnpm/semver@7.7.4/node_modules/semver/ranges/simplify.js
|
|
24538
|
-
var require_simplify = /* @__PURE__ */ __commonJSMin
|
|
24608
|
+
var require_simplify = /* @__PURE__ */ __commonJSMin(((exports, module) => {
|
|
24539
24609
|
const satisfies = require_satisfies();
|
|
24540
24610
|
const compare = require_compare();
|
|
24541
24611
|
module.exports = (versions, range, options) => {
|
|
@@ -24565,7 +24635,7 @@ var require_simplify = /* @__PURE__ */ __commonJSMin$1(((exports, module) => {
|
|
|
24565
24635
|
}));
|
|
24566
24636
|
//#endregion
|
|
24567
24637
|
//#region ../../node_modules/.pnpm/semver@7.7.4/node_modules/semver/ranges/subset.js
|
|
24568
|
-
var require_subset = /* @__PURE__ */ __commonJSMin
|
|
24638
|
+
var require_subset = /* @__PURE__ */ __commonJSMin(((exports, module) => {
|
|
24569
24639
|
const Range = require_range();
|
|
24570
24640
|
const Comparator = require_comparator();
|
|
24571
24641
|
const { ANY } = Comparator;
|
|
@@ -24660,7 +24730,7 @@ var require_subset = /* @__PURE__ */ __commonJSMin$1(((exports, module) => {
|
|
|
24660
24730
|
}));
|
|
24661
24731
|
//#endregion
|
|
24662
24732
|
//#region ../../node_modules/.pnpm/semver@7.7.4/node_modules/semver/index.js
|
|
24663
|
-
var require_semver = /* @__PURE__ */ __commonJSMin
|
|
24733
|
+
var require_semver = /* @__PURE__ */ __commonJSMin(((exports, module) => {
|
|
24664
24734
|
const internalRe = require_re();
|
|
24665
24735
|
const constants = require_constants();
|
|
24666
24736
|
const SemVer = require_semver$1();
|
|
@@ -24715,7 +24785,7 @@ var require_semver = /* @__PURE__ */ __commonJSMin$1(((exports, module) => {
|
|
|
24715
24785
|
}));
|
|
24716
24786
|
//#endregion
|
|
24717
24787
|
//#region ../../node_modules/.pnpm/baseline-browser-mapping@2.9.19/node_modules/baseline-browser-mapping/dist/index.cjs
|
|
24718
|
-
var require_dist = /* @__PURE__ */ __commonJSMin
|
|
24788
|
+
var require_dist = /* @__PURE__ */ __commonJSMin(((exports) => {
|
|
24719
24789
|
const s = {
|
|
24720
24790
|
chrome: { releases: [
|
|
24721
24791
|
[
|
|
@@ -43965,7 +44035,7 @@ var require_dist = /* @__PURE__ */ __commonJSMin$1(((exports) => {
|
|
|
43965
44035
|
}));
|
|
43966
44036
|
//#endregion
|
|
43967
44037
|
//#region ../../node_modules/.pnpm/node-releases@2.0.27/node_modules/node-releases/data/processed/envs.json
|
|
43968
|
-
var require_envs = /* @__PURE__ */ __commonJSMin
|
|
44038
|
+
var require_envs = /* @__PURE__ */ __commonJSMin(((exports, module) => {
|
|
43969
44039
|
module.exports = [
|
|
43970
44040
|
{
|
|
43971
44041
|
"name": "nodejs",
|
|
@@ -46747,7 +46817,7 @@ var require_envs = /* @__PURE__ */ __commonJSMin$1(((exports, module) => {
|
|
|
46747
46817
|
}));
|
|
46748
46818
|
//#endregion
|
|
46749
46819
|
//#region ../../node_modules/.pnpm/caniuse-lite@1.0.30001769/node_modules/caniuse-lite/data/browsers.js
|
|
46750
|
-
var require_browsers$1 = /* @__PURE__ */ __commonJSMin
|
|
46820
|
+
var require_browsers$1 = /* @__PURE__ */ __commonJSMin(((exports, module) => {
|
|
46751
46821
|
module.exports = {
|
|
46752
46822
|
A: "ie",
|
|
46753
46823
|
B: "edge",
|
|
@@ -46772,12 +46842,12 @@ var require_browsers$1 = /* @__PURE__ */ __commonJSMin$1(((exports, module) => {
|
|
|
46772
46842
|
}));
|
|
46773
46843
|
//#endregion
|
|
46774
46844
|
//#region ../../node_modules/.pnpm/caniuse-lite@1.0.30001769/node_modules/caniuse-lite/dist/unpacker/browsers.js
|
|
46775
|
-
var require_browsers = /* @__PURE__ */ __commonJSMin
|
|
46845
|
+
var require_browsers = /* @__PURE__ */ __commonJSMin(((exports, module) => {
|
|
46776
46846
|
module.exports.browsers = require_browsers$1();
|
|
46777
46847
|
}));
|
|
46778
46848
|
//#endregion
|
|
46779
46849
|
//#region ../../node_modules/.pnpm/caniuse-lite@1.0.30001769/node_modules/caniuse-lite/data/browserVersions.js
|
|
46780
|
-
var require_browserVersions$1 = /* @__PURE__ */ __commonJSMin
|
|
46850
|
+
var require_browserVersions$1 = /* @__PURE__ */ __commonJSMin(((exports, module) => {
|
|
46781
46851
|
module.exports = {
|
|
46782
46852
|
"0": "117",
|
|
46783
46853
|
"1": "118",
|
|
@@ -47029,12 +47099,12 @@ var require_browserVersions$1 = /* @__PURE__ */ __commonJSMin$1(((exports, modul
|
|
|
47029
47099
|
}));
|
|
47030
47100
|
//#endregion
|
|
47031
47101
|
//#region ../../node_modules/.pnpm/caniuse-lite@1.0.30001769/node_modules/caniuse-lite/dist/unpacker/browserVersions.js
|
|
47032
|
-
var require_browserVersions = /* @__PURE__ */ __commonJSMin
|
|
47102
|
+
var require_browserVersions = /* @__PURE__ */ __commonJSMin(((exports, module) => {
|
|
47033
47103
|
module.exports.browserVersions = require_browserVersions$1();
|
|
47034
47104
|
}));
|
|
47035
47105
|
//#endregion
|
|
47036
47106
|
//#region ../../node_modules/.pnpm/caniuse-lite@1.0.30001769/node_modules/caniuse-lite/data/agents.js
|
|
47037
|
-
var require_agents$1 = /* @__PURE__ */ __commonJSMin
|
|
47107
|
+
var require_agents$1 = /* @__PURE__ */ __commonJSMin(((exports, module) => {
|
|
47038
47108
|
module.exports = {
|
|
47039
47109
|
A: {
|
|
47040
47110
|
A: {
|
|
@@ -51403,7 +51473,7 @@ var require_agents$1 = /* @__PURE__ */ __commonJSMin$1(((exports, module) => {
|
|
|
51403
51473
|
}));
|
|
51404
51474
|
//#endregion
|
|
51405
51475
|
//#region ../../node_modules/.pnpm/caniuse-lite@1.0.30001769/node_modules/caniuse-lite/dist/unpacker/agents.js
|
|
51406
|
-
var require_agents = /* @__PURE__ */ __commonJSMin
|
|
51476
|
+
var require_agents = /* @__PURE__ */ __commonJSMin(((exports, module) => {
|
|
51407
51477
|
const browsers = require_browsers().browsers;
|
|
51408
51478
|
const versions = require_browserVersions().browserVersions;
|
|
51409
51479
|
const agentsData = require_agents$1();
|
|
@@ -51436,7 +51506,7 @@ var require_agents = /* @__PURE__ */ __commonJSMin$1(((exports, module) => {
|
|
|
51436
51506
|
}));
|
|
51437
51507
|
//#endregion
|
|
51438
51508
|
//#region ../../node_modules/.pnpm/electron-to-chromium@1.5.286/node_modules/electron-to-chromium/versions.js
|
|
51439
|
-
var require_versions = /* @__PURE__ */ __commonJSMin
|
|
51509
|
+
var require_versions = /* @__PURE__ */ __commonJSMin(((exports, module) => {
|
|
51440
51510
|
module.exports = {
|
|
51441
51511
|
"0.20": "39",
|
|
51442
51512
|
"0.21": "41",
|
|
@@ -51670,7 +51740,7 @@ var require_versions = /* @__PURE__ */ __commonJSMin$1(((exports, module) => {
|
|
|
51670
51740
|
}));
|
|
51671
51741
|
//#endregion
|
|
51672
51742
|
//#region ../../node_modules/.pnpm/node-releases@2.0.27/node_modules/node-releases/data/release-schedule/release-schedule.json
|
|
51673
|
-
var require_release_schedule = /* @__PURE__ */ __commonJSMin
|
|
51743
|
+
var require_release_schedule = /* @__PURE__ */ __commonJSMin(((exports, module) => {
|
|
51674
51744
|
module.exports = {
|
|
51675
51745
|
"v0.8": {
|
|
51676
51746
|
"start": "2012-06-25",
|
|
@@ -51827,7 +51897,7 @@ var require_release_schedule = /* @__PURE__ */ __commonJSMin$1(((exports, module
|
|
|
51827
51897
|
}));
|
|
51828
51898
|
//#endregion
|
|
51829
51899
|
//#region ../../node_modules/.pnpm/browserslist@4.28.1/node_modules/browserslist/error.js
|
|
51830
|
-
var require_error = /* @__PURE__ */ __commonJSMin
|
|
51900
|
+
var require_error = /* @__PURE__ */ __commonJSMin(((exports, module) => {
|
|
51831
51901
|
function BrowserslistError(message) {
|
|
51832
51902
|
this.name = "BrowserslistError";
|
|
51833
51903
|
this.message = message;
|
|
@@ -51839,7 +51909,7 @@ var require_error = /* @__PURE__ */ __commonJSMin$1(((exports, module) => {
|
|
|
51839
51909
|
}));
|
|
51840
51910
|
//#endregion
|
|
51841
51911
|
//#region ../../node_modules/.pnpm/caniuse-lite@1.0.30001769/node_modules/caniuse-lite/dist/lib/statuses.js
|
|
51842
|
-
var require_statuses = /* @__PURE__ */ __commonJSMin
|
|
51912
|
+
var require_statuses = /* @__PURE__ */ __commonJSMin(((exports, module) => {
|
|
51843
51913
|
module.exports = {
|
|
51844
51914
|
1: "ls",
|
|
51845
51915
|
2: "rec",
|
|
@@ -51852,7 +51922,7 @@ var require_statuses = /* @__PURE__ */ __commonJSMin$1(((exports, module) => {
|
|
|
51852
51922
|
}));
|
|
51853
51923
|
//#endregion
|
|
51854
51924
|
//#region ../../node_modules/.pnpm/caniuse-lite@1.0.30001769/node_modules/caniuse-lite/dist/lib/supported.js
|
|
51855
|
-
var require_supported = /* @__PURE__ */ __commonJSMin
|
|
51925
|
+
var require_supported = /* @__PURE__ */ __commonJSMin(((exports, module) => {
|
|
51856
51926
|
module.exports = {
|
|
51857
51927
|
y: 1,
|
|
51858
51928
|
n: 2,
|
|
@@ -51865,7 +51935,7 @@ var require_supported = /* @__PURE__ */ __commonJSMin$1(((exports, module) => {
|
|
|
51865
51935
|
}));
|
|
51866
51936
|
//#endregion
|
|
51867
51937
|
//#region ../../node_modules/.pnpm/caniuse-lite@1.0.30001769/node_modules/caniuse-lite/dist/unpacker/feature.js
|
|
51868
|
-
var require_feature = /* @__PURE__ */ __commonJSMin
|
|
51938
|
+
var require_feature = /* @__PURE__ */ __commonJSMin(((exports, module) => {
|
|
51869
51939
|
const statuses = require_statuses();
|
|
51870
51940
|
const supported = require_supported();
|
|
51871
51941
|
const browsers = require_browsers().browsers;
|
|
@@ -51908,7 +51978,7 @@ var require_feature = /* @__PURE__ */ __commonJSMin$1(((exports, module) => {
|
|
|
51908
51978
|
}));
|
|
51909
51979
|
//#endregion
|
|
51910
51980
|
//#region ../../node_modules/.pnpm/caniuse-lite@1.0.30001769/node_modules/caniuse-lite/dist/unpacker/region.js
|
|
51911
|
-
var require_region = /* @__PURE__ */ __commonJSMin
|
|
51981
|
+
var require_region = /* @__PURE__ */ __commonJSMin(((exports, module) => {
|
|
51912
51982
|
const browsers = require_browsers().browsers;
|
|
51913
51983
|
function unpackRegion(packed) {
|
|
51914
51984
|
return Object.keys(packed).reduce((list, browser) => {
|
|
@@ -51927,7 +51997,7 @@ var require_region = /* @__PURE__ */ __commonJSMin$1(((exports, module) => {
|
|
|
51927
51997
|
}));
|
|
51928
51998
|
//#endregion
|
|
51929
51999
|
//#region ../../node_modules/.pnpm/browserslist@4.28.1/node_modules/browserslist/node.js
|
|
51930
|
-
var require_node = /* @__PURE__ */ __commonJSMin
|
|
52000
|
+
var require_node = /* @__PURE__ */ __commonJSMin(((exports, module) => {
|
|
51931
52001
|
var feature = require_feature().default;
|
|
51932
52002
|
var region = require_region().default;
|
|
51933
52003
|
var fs$2 = __require("fs");
|
|
@@ -52220,7 +52290,7 @@ var require_node = /* @__PURE__ */ __commonJSMin$1(((exports, module) => {
|
|
|
52220
52290
|
}));
|
|
52221
52291
|
//#endregion
|
|
52222
52292
|
//#region ../../node_modules/.pnpm/browserslist@4.28.1/node_modules/browserslist/parse.js
|
|
52223
|
-
var require_parse = /* @__PURE__ */ __commonJSMin
|
|
52293
|
+
var require_parse = /* @__PURE__ */ __commonJSMin(((exports, module) => {
|
|
52224
52294
|
var AND_REGEXP = /^\s+and\s+(.*)/i;
|
|
52225
52295
|
var OR_REGEXP = /^(?:,\s*|\s+or\s+)(.*)/i;
|
|
52226
52296
|
function flatten(array) {
|
|
@@ -52286,7 +52356,7 @@ var require_parse = /* @__PURE__ */ __commonJSMin$1(((exports, module) => {
|
|
|
52286
52356
|
}));
|
|
52287
52357
|
//#endregion
|
|
52288
52358
|
//#region ../../node_modules/.pnpm/browserslist@4.28.1/node_modules/browserslist/index.js
|
|
52289
|
-
var require_browserslist = /* @__PURE__ */ __commonJSMin
|
|
52359
|
+
var require_browserslist = /* @__PURE__ */ __commonJSMin(((exports, module) => {
|
|
52290
52360
|
var bbm = require_dist();
|
|
52291
52361
|
var jsReleases = require_envs();
|
|
52292
52362
|
var agents = require_agents().agents;
|
|
@@ -53308,8 +53378,8 @@ var require_browserslist = /* @__PURE__ */ __commonJSMin$1(((exports, module) =>
|
|
|
53308
53378
|
}));
|
|
53309
53379
|
//#endregion
|
|
53310
53380
|
//#region ../../node_modules/.pnpm/effect@4.0.0-beta.102/node_modules/effect/dist/Brand.js
|
|
53311
|
-
var import_semver = /* @__PURE__ */ __toESM
|
|
53312
|
-
var import_browserslist = /* @__PURE__ */ __toESM
|
|
53381
|
+
var import_semver = /* @__PURE__ */ __toESM(require_semver(), 1);
|
|
53382
|
+
var import_browserslist = /* @__PURE__ */ __toESM(require_browserslist(), 1);
|
|
53313
53383
|
/**
|
|
53314
53384
|
* Returns a `Constructor` that **does not apply any runtime checks** and just
|
|
53315
53385
|
* returns the provided value.
|
|
@@ -53516,7 +53586,7 @@ const await_ = fiberAwait;
|
|
|
53516
53586
|
* @category combinators
|
|
53517
53587
|
* @since 2.0.0
|
|
53518
53588
|
*/
|
|
53519
|
-
const join = fiberJoin;
|
|
53589
|
+
const join$1 = fiberJoin;
|
|
53520
53590
|
/**
|
|
53521
53591
|
* Interrupts a fiber, causing it to stop executing and clean up any
|
|
53522
53592
|
* acquired resources.
|
|
@@ -55513,7 +55583,7 @@ const mapEffectConcurrent = (self, f, options) => fromTransformBracket(fnUntrace
|
|
|
55513
55583
|
const fiber = runFork(f(value, i++));
|
|
55514
55584
|
trackFiber(fiber);
|
|
55515
55585
|
fiber.addObserver(onExit);
|
|
55516
|
-
return offer(effects, join(fiber));
|
|
55586
|
+
return offer(effects, join$1(fiber));
|
|
55517
55587
|
}), forever({ disableYield: true }), catchCause$1((cause) => offer(effects, failCause$3(cause)).pipe(andThen(failCause$1(effects, cause)))), forkIn(forkedScope));
|
|
55518
55588
|
}
|
|
55519
55589
|
return take(queue);
|
|
@@ -55839,9 +55909,9 @@ const mergeAll = /* @__PURE__ */ dual(2, (channels, { bufferSize = 16, concurren
|
|
|
55839
55909
|
if (semaphore) if (fibers.size < concurrencyN) yield* semaphore.take(1);
|
|
55840
55910
|
else {
|
|
55841
55911
|
pullFiber = yield* forkChild(pull);
|
|
55842
|
-
yield* raceFirst(semaphore.take(1), andThen(join(pullFiber), never));
|
|
55912
|
+
yield* raceFirst(semaphore.take(1), andThen(join$1(pullFiber), never));
|
|
55843
55913
|
}
|
|
55844
|
-
const channel = pullFiber === void 0 ? yield* pull : yield* join(pullFiber);
|
|
55914
|
+
const channel = pullFiber === void 0 ? yield* pull : yield* join$1(pullFiber);
|
|
55845
55915
|
const childScope = forkUnsafe(forkedScope);
|
|
55846
55916
|
const childPull = yield* toTransform(channel)(upstream, childScope);
|
|
55847
55917
|
while (fibers.size >= concurrencyN) {
|
|
@@ -62294,6 +62364,72 @@ const warn$1 = (...args) => consoleWith((console) => sync$2(() => {
|
|
|
62294
62364
|
}));
|
|
62295
62365
|
//#endregion
|
|
62296
62366
|
//#region ../../node_modules/.pnpm/effect@4.0.0-beta.102/node_modules/effect/dist/Cache.js
|
|
62367
|
+
var import_picocolors = /* @__PURE__ */ __toESM((/* @__PURE__ */ __commonJSMin(((exports, module) => {
|
|
62368
|
+
let p = process || {}, argv = p.argv || [], env = p.env || {};
|
|
62369
|
+
let isColorSupported = !(!!env.NO_COLOR || argv.includes("--no-color")) && (!!env.FORCE_COLOR || argv.includes("--color") || p.platform === "win32" || (p.stdout || {}).isTTY && env.TERM !== "dumb" || !!env.CI);
|
|
62370
|
+
let formatter = (open, close, replace = open) => (input) => {
|
|
62371
|
+
let string = "" + input, index = string.indexOf(close, open.length);
|
|
62372
|
+
return ~index ? open + replaceClose(string, close, replace, index) + close : open + string + close;
|
|
62373
|
+
};
|
|
62374
|
+
let replaceClose = (string, close, replace, index) => {
|
|
62375
|
+
let result = "", cursor = 0;
|
|
62376
|
+
do {
|
|
62377
|
+
result += string.substring(cursor, index) + replace;
|
|
62378
|
+
cursor = index + close.length;
|
|
62379
|
+
index = string.indexOf(close, cursor);
|
|
62380
|
+
} while (~index);
|
|
62381
|
+
return result + string.substring(cursor);
|
|
62382
|
+
};
|
|
62383
|
+
let createColors = (enabled = isColorSupported) => {
|
|
62384
|
+
let f = enabled ? formatter : () => String;
|
|
62385
|
+
return {
|
|
62386
|
+
isColorSupported: enabled,
|
|
62387
|
+
reset: f("\x1B[0m", "\x1B[0m"),
|
|
62388
|
+
bold: f("\x1B[1m", "\x1B[22m", "\x1B[22m\x1B[1m"),
|
|
62389
|
+
dim: f("\x1B[2m", "\x1B[22m", "\x1B[22m\x1B[2m"),
|
|
62390
|
+
italic: f("\x1B[3m", "\x1B[23m"),
|
|
62391
|
+
underline: f("\x1B[4m", "\x1B[24m"),
|
|
62392
|
+
inverse: f("\x1B[7m", "\x1B[27m"),
|
|
62393
|
+
hidden: f("\x1B[8m", "\x1B[28m"),
|
|
62394
|
+
strikethrough: f("\x1B[9m", "\x1B[29m"),
|
|
62395
|
+
black: f("\x1B[30m", "\x1B[39m"),
|
|
62396
|
+
red: f("\x1B[31m", "\x1B[39m"),
|
|
62397
|
+
green: f("\x1B[32m", "\x1B[39m"),
|
|
62398
|
+
yellow: f("\x1B[33m", "\x1B[39m"),
|
|
62399
|
+
blue: f("\x1B[34m", "\x1B[39m"),
|
|
62400
|
+
magenta: f("\x1B[35m", "\x1B[39m"),
|
|
62401
|
+
cyan: f("\x1B[36m", "\x1B[39m"),
|
|
62402
|
+
white: f("\x1B[37m", "\x1B[39m"),
|
|
62403
|
+
gray: f("\x1B[90m", "\x1B[39m"),
|
|
62404
|
+
bgBlack: f("\x1B[40m", "\x1B[49m"),
|
|
62405
|
+
bgRed: f("\x1B[41m", "\x1B[49m"),
|
|
62406
|
+
bgGreen: f("\x1B[42m", "\x1B[49m"),
|
|
62407
|
+
bgYellow: f("\x1B[43m", "\x1B[49m"),
|
|
62408
|
+
bgBlue: f("\x1B[44m", "\x1B[49m"),
|
|
62409
|
+
bgMagenta: f("\x1B[45m", "\x1B[49m"),
|
|
62410
|
+
bgCyan: f("\x1B[46m", "\x1B[49m"),
|
|
62411
|
+
bgWhite: f("\x1B[47m", "\x1B[49m"),
|
|
62412
|
+
blackBright: f("\x1B[90m", "\x1B[39m"),
|
|
62413
|
+
redBright: f("\x1B[91m", "\x1B[39m"),
|
|
62414
|
+
greenBright: f("\x1B[92m", "\x1B[39m"),
|
|
62415
|
+
yellowBright: f("\x1B[93m", "\x1B[39m"),
|
|
62416
|
+
blueBright: f("\x1B[94m", "\x1B[39m"),
|
|
62417
|
+
magentaBright: f("\x1B[95m", "\x1B[39m"),
|
|
62418
|
+
cyanBright: f("\x1B[96m", "\x1B[39m"),
|
|
62419
|
+
whiteBright: f("\x1B[97m", "\x1B[39m"),
|
|
62420
|
+
bgBlackBright: f("\x1B[100m", "\x1B[49m"),
|
|
62421
|
+
bgRedBright: f("\x1B[101m", "\x1B[49m"),
|
|
62422
|
+
bgGreenBright: f("\x1B[102m", "\x1B[49m"),
|
|
62423
|
+
bgYellowBright: f("\x1B[103m", "\x1B[49m"),
|
|
62424
|
+
bgBlueBright: f("\x1B[104m", "\x1B[49m"),
|
|
62425
|
+
bgMagentaBright: f("\x1B[105m", "\x1B[49m"),
|
|
62426
|
+
bgCyanBright: f("\x1B[106m", "\x1B[49m"),
|
|
62427
|
+
bgWhiteBright: f("\x1B[107m", "\x1B[49m")
|
|
62428
|
+
};
|
|
62429
|
+
};
|
|
62430
|
+
module.exports = createColors();
|
|
62431
|
+
module.exports.createColors = createColors;
|
|
62432
|
+
})))(), 1);
|
|
62297
62433
|
/**
|
|
62298
62434
|
* Caches values loaded by an Effect lookup function.
|
|
62299
62435
|
*
|
|
@@ -64263,27 +64399,6 @@ function traceSegmentInternal(segments, memo, line, column, bias) {
|
|
|
64263
64399
|
}
|
|
64264
64400
|
//#endregion
|
|
64265
64401
|
//#region ../core/dist/index.js
|
|
64266
|
-
var __create = Object.create;
|
|
64267
|
-
var __defProp = Object.defineProperty;
|
|
64268
|
-
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
64269
|
-
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
64270
|
-
var __getProtoOf = Object.getPrototypeOf;
|
|
64271
|
-
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
64272
|
-
var __commonJSMin = (cb, mod) => () => (mod || (cb((mod = { exports: {} }).exports, mod), cb = null), mod.exports);
|
|
64273
|
-
var __copyProps = (to, from, except, desc) => {
|
|
64274
|
-
if (from && typeof from === "object" || typeof from === "function") for (var keys = __getOwnPropNames(from), i = 0, n = keys.length, key; i < n; i++) {
|
|
64275
|
-
key = keys[i];
|
|
64276
|
-
if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {
|
|
64277
|
-
get: ((k) => from[k]).bind(null, key),
|
|
64278
|
-
enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
|
|
64279
|
-
});
|
|
64280
|
-
}
|
|
64281
|
-
return to;
|
|
64282
|
-
};
|
|
64283
|
-
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", {
|
|
64284
|
-
value: mod,
|
|
64285
|
-
enumerable: true
|
|
64286
|
-
}) : target, mod));
|
|
64287
64402
|
var ProjectNotFoundError = class extends Error {
|
|
64288
64403
|
name = "ProjectNotFoundError";
|
|
64289
64404
|
directory;
|
|
@@ -65293,6 +65408,11 @@ const analyzeConfigIdentifier = (identifier, analysis, allowCompilerTransform, i
|
|
|
65293
65408
|
const topLevelBinding = getTopLevelBinding(analysis.sourceFile, identifier.text);
|
|
65294
65409
|
return Boolean(topLevelBinding && analyzeConfigNode(topLevelBinding, analysis, allowCompilerTransform, isCompilerTransformCollection, overriddenPropertyNames));
|
|
65295
65410
|
};
|
|
65411
|
+
const hasReactCompilerConfigInSentryWrapperArgument = (callExpression, analysis, moduleSpecifier, exportName) => {
|
|
65412
|
+
if (moduleSpecifier !== "@sentry/nextjs" || exportName !== "withSentryConfig") return false;
|
|
65413
|
+
const [configArgument] = callExpression.arguments;
|
|
65414
|
+
return Boolean(configArgument && analyzeConfigNode(configArgument, analysis, false));
|
|
65415
|
+
};
|
|
65296
65416
|
const analyzeConfigCallTarget = (callExpression, analysis, allowCompilerTransform) => {
|
|
65297
65417
|
const target = callExpression.expression;
|
|
65298
65418
|
const callableRequiredModuleSpecifier = getRequireModuleSpecifier(target);
|
|
@@ -65316,6 +65436,7 @@ const analyzeConfigCallTarget = (callExpression, analysis, allowCompilerTransfor
|
|
|
65316
65436
|
if (requiredModuleSpecifier !== null) {
|
|
65317
65437
|
if (ts.isCallExpression(target.expression) && ts.isIdentifier(target.expression.expression) && (analysis.localBindings.has(target.expression.expression.text) || getScopedConfigBinding(target.expression.expression).wasFound || hasTopLevelValueBinding(analysis.sourceFile, "require"))) return false;
|
|
65318
65438
|
if (allowCompilerTransform && isCompilerTransformModule(requiredModuleSpecifier, propertyName)) return true;
|
|
65439
|
+
if (hasReactCompilerConfigInSentryWrapperArgument(callExpression, analysis, requiredModuleSpecifier, propertyName)) return true;
|
|
65319
65440
|
const hasCompilerTransform = analyzeImportedConfig({
|
|
65320
65441
|
analysis,
|
|
65321
65442
|
moduleSpecifier: requiredModuleSpecifier,
|
|
@@ -65330,6 +65451,7 @@ const analyzeConfigCallTarget = (callExpression, analysis, allowCompilerTransfor
|
|
|
65330
65451
|
const importBinding = analysis.localBindings.has(target.expression.text) || getScopedConfigBinding(target.expression).wasFound ? null : getImportBinding(analysis.sourceFile, target.expression.text);
|
|
65331
65452
|
if (importBinding?.isNamespace) {
|
|
65332
65453
|
if (allowCompilerTransform && isCompilerTransformModule(importBinding.moduleSpecifier, propertyName)) return true;
|
|
65454
|
+
if (hasReactCompilerConfigInSentryWrapperArgument(callExpression, analysis, importBinding.moduleSpecifier, propertyName)) return true;
|
|
65333
65455
|
const hasCompilerTransform = analyzeImportedConfig({
|
|
65334
65456
|
analysis,
|
|
65335
65457
|
moduleSpecifier: importBinding.moduleSpecifier,
|
|
@@ -65431,6 +65553,7 @@ const analyzeConfigNode = (node, analysis, allowCompilerTransform, isCompilerTra
|
|
|
65431
65553
|
const importBinding = getImportBinding(analysis.sourceFile, node.expression.text);
|
|
65432
65554
|
if (importBinding) {
|
|
65433
65555
|
if (allowCompilerTransform && isCompilerTransformModule(importBinding.moduleSpecifier, importBinding.exportName)) return true;
|
|
65556
|
+
if (hasReactCompilerConfigInSentryWrapperArgument(node, analysis, importBinding.moduleSpecifier, importBinding.exportName)) return true;
|
|
65434
65557
|
if (allowCompilerTransform && importBinding.moduleSpecifier === "@rolldown/plugin-babel" && importBinding.exportName === "default" && node.arguments.some((argument) => analyzeConfigNode(argument, analysis, false))) return true;
|
|
65435
65558
|
const hasCompilerTransform = analyzeImportedConfig({
|
|
65436
65559
|
analysis,
|
|
@@ -65664,6 +65787,18 @@ const detectPreES2023Target = (directory) => {
|
|
|
65664
65787
|
}
|
|
65665
65788
|
return false;
|
|
65666
65789
|
};
|
|
65790
|
+
const SHADCN_CONFIG_FILE_NAME = "components.json";
|
|
65791
|
+
const detectShadcnUi = (directory) => {
|
|
65792
|
+
if (isFile(path$1$1.join(directory, SHADCN_CONFIG_FILE_NAME))) return true;
|
|
65793
|
+
if (isProjectBoundary(directory)) return false;
|
|
65794
|
+
let ancestorDirectory = path$1$1.dirname(directory);
|
|
65795
|
+
while (ancestorDirectory !== path$1$1.dirname(ancestorDirectory)) {
|
|
65796
|
+
if (isFile(path$1$1.join(ancestorDirectory, SHADCN_CONFIG_FILE_NAME))) return true;
|
|
65797
|
+
if (isProjectBoundary(ancestorDirectory)) return false;
|
|
65798
|
+
ancestorDirectory = path$1$1.dirname(ancestorDirectory);
|
|
65799
|
+
}
|
|
65800
|
+
return false;
|
|
65801
|
+
};
|
|
65667
65802
|
const FRAMEWORK_PACKAGES = {
|
|
65668
65803
|
next: "nextjs",
|
|
65669
65804
|
"@tanstack/react-start": "tanstack-start",
|
|
@@ -66429,6 +66564,29 @@ const getTanStackQueryVersion = (packageJson) => {
|
|
|
66429
66564
|
packageNames: TANSTACK_REACT_QUERY_PACKAGES
|
|
66430
66565
|
});
|
|
66431
66566
|
};
|
|
66567
|
+
const hasAnyDependency = (packageJson, packageNames) => {
|
|
66568
|
+
const allDependencies = {
|
|
66569
|
+
...packageJson.peerDependencies,
|
|
66570
|
+
...packageJson.dependencies,
|
|
66571
|
+
...packageJson.devDependencies,
|
|
66572
|
+
...packageJson.optionalDependencies
|
|
66573
|
+
};
|
|
66574
|
+
return packageNames.some((packageName) => allDependencies[packageName] !== void 0);
|
|
66575
|
+
};
|
|
66576
|
+
const BASE_UI_PACKAGES = ["@base-ui-components/react", "@base-ui/react"];
|
|
66577
|
+
const hasBaseUiDependency = (packageJson) => hasAnyDependency(packageJson, BASE_UI_PACKAGES);
|
|
66578
|
+
const RADIX_UNIFIED_PACKAGE = "radix-ui";
|
|
66579
|
+
const RADIX_PRIMITIVE_PACKAGE_PREFIX = "@radix-ui/react-";
|
|
66580
|
+
const RADIX_NON_PRIMITIVE_PACKAGES = new Set(["@radix-ui/react-icons"]);
|
|
66581
|
+
const hasRadixUiDependency = (packageJson) => {
|
|
66582
|
+
const allDependencies = {
|
|
66583
|
+
...packageJson.peerDependencies,
|
|
66584
|
+
...packageJson.dependencies,
|
|
66585
|
+
...packageJson.devDependencies,
|
|
66586
|
+
...packageJson.optionalDependencies
|
|
66587
|
+
};
|
|
66588
|
+
return Object.keys(allDependencies).some((packageName) => packageName === RADIX_UNIFIED_PACKAGE || packageName.startsWith(RADIX_PRIMITIVE_PACKAGE_PREFIX) && !RADIX_NON_PRIMITIVE_PACKAGES.has(packageName));
|
|
66589
|
+
};
|
|
66432
66590
|
const STYLED_COMPONENTS_PACKAGES = ["styled-components"];
|
|
66433
66591
|
const getStyledComponentsVersion = (packageJson) => {
|
|
66434
66592
|
return getPreferredDependencyVersion({
|
|
@@ -66459,6 +66617,10 @@ const hasI18nDependency = (packageJson) => {
|
|
|
66459
66617
|
};
|
|
66460
66618
|
return I18N_PACKAGES.some((packageName) => allDependencies[packageName] !== void 0);
|
|
66461
66619
|
};
|
|
66620
|
+
const REACT_ARIA_COMPONENT_PACKAGES = ["react-aria-components"];
|
|
66621
|
+
const TANSTACK_TABLE_PACKAGES = ["@tanstack/react-table"];
|
|
66622
|
+
const TANSTACK_VIRTUAL_PACKAGES = ["@tanstack/react-virtual"];
|
|
66623
|
+
const TANSTACK_FORM_PACKAGES = ["@tanstack/react-form"];
|
|
66462
66624
|
const REANIMATED_DEPENDENCY_NAME = "react-native-reanimated";
|
|
66463
66625
|
const MOBX_REACT_PACKAGE_NAME = "mobx-react";
|
|
66464
66626
|
const MOBX_REACT_LITE_PACKAGE_NAME = "mobx-react-lite";
|
|
@@ -66649,6 +66811,13 @@ const evaluateManifestFacts = (facts, packageJson, directory, rootDirectory, roo
|
|
|
66649
66811
|
});
|
|
66650
66812
|
if (styledComponentsVersion && shouldReplaceStyledComponentsVersion(facts.styledComponentsVersion, styledComponentsVersion)) facts.styledComponentsVersion = styledComponentsVersion;
|
|
66651
66813
|
facts.hasI18nLibrary = facts.hasI18nLibrary || hasI18nDependency(packageJson);
|
|
66814
|
+
facts.hasShadcnUi = facts.hasShadcnUi || detectShadcnUi(directory);
|
|
66815
|
+
facts.hasRadixUi = facts.hasRadixUi || hasRadixUiDependency(packageJson);
|
|
66816
|
+
facts.hasBaseUi = facts.hasBaseUi || hasBaseUiDependency(packageJson);
|
|
66817
|
+
facts.hasReactAriaComponents = facts.hasReactAriaComponents || hasAnyDependency(packageJson, REACT_ARIA_COMPONENT_PACKAGES);
|
|
66818
|
+
facts.hasTanstackTable = facts.hasTanstackTable || hasAnyDependency(packageJson, TANSTACK_TABLE_PACKAGES);
|
|
66819
|
+
facts.hasTanstackVirtual = facts.hasTanstackVirtual || hasAnyDependency(packageJson, TANSTACK_VIRTUAL_PACKAGES);
|
|
66820
|
+
facts.hasTanstackForm = facts.hasTanstackForm || hasAnyDependency(packageJson, TANSTACK_FORM_PACKAGES);
|
|
66652
66821
|
for (const packageName of REACT_THREE_FIBER_DEPENDENCY_NAMES) {
|
|
66653
66822
|
const version = resolveCatalogBackedDependencyVersion({
|
|
66654
66823
|
rootDirectory,
|
|
@@ -66751,6 +66920,13 @@ const collectWorkspaceFacts = (rootDirectory, rootPackageJson, { collectReactGro
|
|
|
66751
66920
|
tanstackQueryVersion: null,
|
|
66752
66921
|
styledComponentsVersion: null,
|
|
66753
66922
|
hasI18nLibrary: false,
|
|
66923
|
+
hasShadcnUi: false,
|
|
66924
|
+
hasRadixUi: false,
|
|
66925
|
+
hasBaseUi: false,
|
|
66926
|
+
hasReactAriaComponents: false,
|
|
66927
|
+
hasTanstackTable: false,
|
|
66928
|
+
hasTanstackVirtual: false,
|
|
66929
|
+
hasTanstackForm: false,
|
|
66754
66930
|
hasReactNativeAwarePackage: false,
|
|
66755
66931
|
hasReanimatedAwarePackage: false,
|
|
66756
66932
|
hasSsrDependency: false,
|
|
@@ -67102,6 +67278,12 @@ const discoverProjectWithoutPackageJson = (directory, options) => {
|
|
|
67102
67278
|
remotionVersion: null,
|
|
67103
67279
|
remotionMajorVersion: null,
|
|
67104
67280
|
hasI18nLibrary: false,
|
|
67281
|
+
hasRadixUi: false,
|
|
67282
|
+
hasBaseUi: false,
|
|
67283
|
+
hasReactAriaComponents: false,
|
|
67284
|
+
hasTanstackTable: false,
|
|
67285
|
+
hasTanstackVirtual: false,
|
|
67286
|
+
hasTanstackForm: false,
|
|
67105
67287
|
tanstackQueryVersion: null,
|
|
67106
67288
|
styledComponentsVersion: null,
|
|
67107
67289
|
hasThree: false,
|
|
@@ -67123,6 +67305,7 @@ const discoverProjectWithoutPackageJson = (directory, options) => {
|
|
|
67123
67305
|
shopifyFlashListMajorVersion: null,
|
|
67124
67306
|
hasReanimated: false,
|
|
67125
67307
|
reanimatedVersion: null,
|
|
67308
|
+
hasShadcnUi: detectShadcnUi(directory),
|
|
67126
67309
|
isPreES2023Target: hasOwnTsConfig && detectPreES2023Target(directory),
|
|
67127
67310
|
isStaticExport: false,
|
|
67128
67311
|
sourceFileCount
|
|
@@ -67285,6 +67468,12 @@ const discoverProject = (directory, options = {}) => {
|
|
|
67285
67468
|
hasReactCompilerLintPlugin: detectReactCompilerLintPlugin(directory, packageJson),
|
|
67286
67469
|
hasTanStackQuery: tanstackQueryVersion !== null,
|
|
67287
67470
|
hasI18nLibrary: workspaceFacts.hasI18nLibrary,
|
|
67471
|
+
hasRadixUi: workspaceFacts.hasRadixUi,
|
|
67472
|
+
hasBaseUi: workspaceFacts.hasBaseUi,
|
|
67473
|
+
hasReactAriaComponents: workspaceFacts.hasReactAriaComponents,
|
|
67474
|
+
hasTanstackTable: workspaceFacts.hasTanstackTable,
|
|
67475
|
+
hasTanstackVirtual: workspaceFacts.hasTanstackVirtual,
|
|
67476
|
+
hasTanstackForm: workspaceFacts.hasTanstackForm,
|
|
67288
67477
|
tanstackQueryVersion,
|
|
67289
67478
|
styledComponentsVersion: workspaceFacts.styledComponentsVersion,
|
|
67290
67479
|
valtioVersion,
|
|
@@ -67311,6 +67500,7 @@ const discoverProject = (directory, options = {}) => {
|
|
|
67311
67500
|
shopifyFlashListMajorVersion: shopifyFlashListVersion === null ? null : getLowestDependencyMajor(shopifyFlashListVersion),
|
|
67312
67501
|
hasReanimated,
|
|
67313
67502
|
reanimatedVersion,
|
|
67503
|
+
hasShadcnUi: workspaceFacts.hasShadcnUi,
|
|
67314
67504
|
isPreES2023Target,
|
|
67315
67505
|
isStaticExport: framework === "nextjs" && detectNextjsStaticExport(workspaceFacts.next.sourceDirectory ?? directory),
|
|
67316
67506
|
sourceFileCount
|
|
@@ -67487,12 +67677,26 @@ const getEquivalentRuleKeys = (ruleKey) => {
|
|
|
67487
67677
|
const nativeRuleKey = canonicalizeRuleKey(ruleKey);
|
|
67488
67678
|
return [nativeRuleKey, ...getLegacyRuleKeysForNative(nativeRuleKey)];
|
|
67489
67679
|
};
|
|
67490
|
-
|
|
67491
|
-
|
|
67492
|
-
|
|
67493
|
-
|
|
67494
|
-
|
|
67680
|
+
/**
|
|
67681
|
+
* Resolves the absolute path to read for a diagnostic's `filePath`,
|
|
67682
|
+
* accounting for the various shapes oxlint emits:
|
|
67683
|
+
*
|
|
67684
|
+
* - `file://` URL — decode to an absolute filesystem path.
|
|
67685
|
+
* - Absolute POSIX (`/abs/path/file.tsx`) — pass through.
|
|
67686
|
+
* - Absolute Windows (`C:/...` or `C:\...`) — pass through.
|
|
67687
|
+
* - `./relative` or bare relative — join against `rootDirectory`.
|
|
67688
|
+
*
|
|
67689
|
+
* Shared between the streaming diagnostic pipeline and the legacy
|
|
67690
|
+
* array-shaped `mergeAndFilterDiagnostics` wrapper so file-line lookups
|
|
67691
|
+
* use one canonical resolution path.
|
|
67692
|
+
*/
|
|
67693
|
+
const resolveCandidateReadPath = (rootDirectory, filePath) => {
|
|
67694
|
+
if (filePath.startsWith("file://")) return fileURLToPath(filePath);
|
|
67695
|
+
const normalizedFile = filePath.replace(/\\/g, "/");
|
|
67696
|
+
if (normalizedFile.startsWith("/") || /^[a-zA-Z]:\//.test(normalizedFile) || /^[a-zA-Z]:\\/.test(filePath)) return filePath;
|
|
67697
|
+
return `${rootDirectory.replace(/\\/g, "/").replace(/\/$/, "")}/${normalizedFile.replace(/^\.\//, "")}`;
|
|
67495
67698
|
};
|
|
67699
|
+
const toNormalizedRelativePath = (filePath, rootDirectory) => path$1$1.relative(path$1$1.resolve(rootDirectory), path$1$1.resolve(resolveCandidateReadPath(rootDirectory, filePath))).replaceAll("\\", "/") || ".";
|
|
67496
67700
|
const warnConfigIssue = (message) => {
|
|
67497
67701
|
process.stderr.write(`[react-doctor] ${message}\n`);
|
|
67498
67702
|
};
|
|
@@ -67541,7 +67745,7 @@ const compileIgnoreOverrides = (userConfig) => {
|
|
|
67541
67745
|
};
|
|
67542
67746
|
const isDiagnosticIgnoredByOverrides = (diagnostic, rootDirectory, overrides) => {
|
|
67543
67747
|
if (overrides.length === 0) return false;
|
|
67544
|
-
const relativeFilePath =
|
|
67748
|
+
const relativeFilePath = toNormalizedRelativePath(diagnostic.filePath, rootDirectory);
|
|
67545
67749
|
const ruleIdentifier = `${diagnostic.plugin}/${diagnostic.rule}`;
|
|
67546
67750
|
return overrides.some((override) => override.filePatterns.some((pattern) => pattern.test(relativeFilePath)) && hasMatchingRuleOverride(override.ruleIds, ruleIdentifier));
|
|
67547
67751
|
};
|
|
@@ -67881,7 +68085,7 @@ const compileIgnoredFilePatterns = (userConfig) => {
|
|
|
67881
68085
|
};
|
|
67882
68086
|
const isFileIgnoredByPatterns = (filePath, rootDirectory, patterns) => {
|
|
67883
68087
|
if (patterns.length === 0) return false;
|
|
67884
|
-
const relativePath =
|
|
68088
|
+
const relativePath = toNormalizedRelativePath(filePath, rootDirectory);
|
|
67885
68089
|
return patterns.some((pattern) => pattern.test(relativePath));
|
|
67886
68090
|
};
|
|
67887
68091
|
const SCRIPT_EXTENSION_FRAGMENT = "[cm]?[jt]sx?";
|
|
@@ -68009,25 +68213,6 @@ const classifyPackageRole = (filename) => {
|
|
|
68009
68213
|
return result;
|
|
68010
68214
|
};
|
|
68011
68215
|
/**
|
|
68012
|
-
* Resolves the absolute path to read for a diagnostic's `filePath`,
|
|
68013
|
-
* accounting for the various shapes oxlint emits:
|
|
68014
|
-
*
|
|
68015
|
-
* - `file://` URL — decode to an absolute filesystem path.
|
|
68016
|
-
* - Absolute POSIX (`/abs/path/file.tsx`) — pass through.
|
|
68017
|
-
* - Absolute Windows (`C:/...` or `C:\...`) — pass through.
|
|
68018
|
-
* - `./relative` or bare relative — join against `rootDirectory`.
|
|
68019
|
-
*
|
|
68020
|
-
* Shared between the streaming diagnostic pipeline and the legacy
|
|
68021
|
-
* array-shaped `mergeAndFilterDiagnostics` wrapper so file-line lookups
|
|
68022
|
-
* use one canonical resolution path.
|
|
68023
|
-
*/
|
|
68024
|
-
const resolveCandidateReadPath = (rootDirectory, filePath) => {
|
|
68025
|
-
if (filePath.startsWith("file://")) return fileURLToPath(filePath);
|
|
68026
|
-
const normalizedFile = filePath.replace(/\\/g, "/");
|
|
68027
|
-
if (normalizedFile.startsWith("/") || /^[a-zA-Z]:\//.test(normalizedFile) || /^[a-zA-Z]:\\/.test(filePath)) return filePath;
|
|
68028
|
-
return `${rootDirectory.replace(/\\/g, "/").replace(/\/$/, "")}/${normalizedFile.replace(/^\.\//, "")}`;
|
|
68029
|
-
};
|
|
68030
|
-
/**
|
|
68031
68216
|
* Shared raw-line scanners that detect whether a diagnostic site is
|
|
68032
68217
|
* enclosed by a configured `textComponents` entry or a
|
|
68033
68218
|
* `rawTextWrapperComponents` entry. Both checks are used by the
|
|
@@ -69462,6 +69647,28 @@ const checkExpoEnvLocalFiles = (context) => {
|
|
|
69462
69647
|
help: `Add \`.env*.local\` to your .gitignore. If already committed, untrack with \`git rm --cached ${committedEnvFiles.join(" ")}\``
|
|
69463
69648
|
})];
|
|
69464
69649
|
};
|
|
69650
|
+
const JAVASCRIPT_MODULE_FILE_PATTERN = /\.[cm]?[jt]sx?$/;
|
|
69651
|
+
const hasStaticModuleSubpath = (rootDirectory, packageName) => {
|
|
69652
|
+
const packageSubpathPrefix = `${packageName}/`;
|
|
69653
|
+
for (const { absolutePath, name } of walkSourceTreeFiles(rootDirectory)) {
|
|
69654
|
+
if (!JAVASCRIPT_MODULE_FILE_PATTERN.test(name)) continue;
|
|
69655
|
+
let sourceText;
|
|
69656
|
+
try {
|
|
69657
|
+
sourceText = fs$1$3.readFileSync(absolutePath, "utf-8");
|
|
69658
|
+
} catch {
|
|
69659
|
+
continue;
|
|
69660
|
+
}
|
|
69661
|
+
if (!sourceText.includes(packageSubpathPrefix)) continue;
|
|
69662
|
+
let moduleSpecifiers;
|
|
69663
|
+
try {
|
|
69664
|
+
moduleSpecifiers = collectStaticModuleSpecifiers(sourceText, { filePath: absolutePath });
|
|
69665
|
+
} catch {
|
|
69666
|
+
continue;
|
|
69667
|
+
}
|
|
69668
|
+
for (const moduleSpecifier of moduleSpecifiers) if (moduleSpecifier.startsWith(packageSubpathPrefix)) return true;
|
|
69669
|
+
}
|
|
69670
|
+
return false;
|
|
69671
|
+
};
|
|
69465
69672
|
const isExpoSdkAtLeast = (expoSdkMajor, minMajor) => expoSdkMajor !== null && expoSdkMajor >= minMajor;
|
|
69466
69673
|
const UNIMODULES_HELP = "Remove every `@unimodules/*` and `react-native-unimodules` package — their functionality now lives in `expo-modules-core`. See https://expo.fyi/r/sdk-44-remove-unimodules";
|
|
69467
69674
|
const FIREBASE_HELP = "Use the Firebase JS SDK or React Native Firebase directly. See https://expo.fyi/firebase-migration-guide";
|
|
@@ -69515,7 +69722,8 @@ const FLAGGED_DEPENDENCIES = [
|
|
|
69515
69722
|
packageName: "@expo/metro-config",
|
|
69516
69723
|
rule: "expo-no-redundant-dependency",
|
|
69517
69724
|
message: "\"@expo/metro-config\" should not be a direct dependency. Expo pins the compatible Metro config, and a direct entry can drift to a version that breaks bundling",
|
|
69518
|
-
help: "Remove `@expo/metro-config` and import `expo/metro-config` in your metro.config.js"
|
|
69725
|
+
help: "Remove `@expo/metro-config` and import `expo/metro-config` in your metro.config.js",
|
|
69726
|
+
skipWhenSubpathImported: true
|
|
69519
69727
|
},
|
|
69520
69728
|
{
|
|
69521
69729
|
packageName: "@types/react-native",
|
|
@@ -69576,8 +69784,9 @@ const FLAGGED_DEPENDENCIES = [
|
|
|
69576
69784
|
];
|
|
69577
69785
|
const checkExpoFlaggedDependencies = (context) => FLAGGED_DEPENDENCIES.filter((flaggedDependency) => {
|
|
69578
69786
|
if (!context.directDependencyNames.has(flaggedDependency.packageName)) return false;
|
|
69579
|
-
if (flaggedDependency.minSdkMajor
|
|
69580
|
-
|
|
69787
|
+
if (flaggedDependency.minSdkMajor !== void 0 && !isExpoSdkAtLeast(context.expoSdkMajor, flaggedDependency.minSdkMajor)) return false;
|
|
69788
|
+
if (flaggedDependency.skipWhenSubpathImported && hasStaticModuleSubpath(context.rootDirectory, flaggedDependency.packageName)) return false;
|
|
69789
|
+
return true;
|
|
69581
69790
|
}).map((flaggedDependency) => buildExpoDiagnostic({
|
|
69582
69791
|
rule: flaggedDependency.rule,
|
|
69583
69792
|
message: flaggedDependency.message,
|
|
@@ -69646,18 +69855,58 @@ const METRO_CONFIG_FILE_NAMES = [
|
|
|
69646
69855
|
const EXPO_METRO_CONFIG_EXTEND_SIGNALS = [
|
|
69647
69856
|
"expo/metro-config",
|
|
69648
69857
|
"@sentry/react-native/metro",
|
|
69649
|
-
"getSentryExpoConfig"
|
|
69858
|
+
"getSentryExpoConfig",
|
|
69859
|
+
"posthog-react-native/metro",
|
|
69860
|
+
"getPostHogExpoConfig"
|
|
69650
69861
|
];
|
|
69862
|
+
const resolveLocalMetroConfigModule = (moduleSpecifier, importingFilePath, rootDirectory) => {
|
|
69863
|
+
if (!moduleSpecifier.startsWith(".")) return void 0;
|
|
69864
|
+
const importedPath = path$1$1.resolve(path$1$1.dirname(importingFilePath), moduleSpecifier);
|
|
69865
|
+
const candidateBasePaths = [
|
|
69866
|
+
importedPath,
|
|
69867
|
+
importedPath.replace(/\.[cm]?js$/, ""),
|
|
69868
|
+
path$1$1.join(importedPath, "index")
|
|
69869
|
+
];
|
|
69870
|
+
for (const candidateBasePath of candidateBasePaths) {
|
|
69871
|
+
const resolvedPath = resolveEntryWithExtensions(candidateBasePath);
|
|
69872
|
+
if (resolvedPath !== void 0 && isFile(resolvedPath) && isPathInsideDirectoryOrEqual(resolvedPath, rootDirectory)) return resolvedPath;
|
|
69873
|
+
}
|
|
69874
|
+
};
|
|
69875
|
+
const hasExpoMetroConfigSignal = (metroConfigPath, rootDirectory) => {
|
|
69876
|
+
const pendingFilePaths = [metroConfigPath];
|
|
69877
|
+
const visitedFilePaths = /* @__PURE__ */ new Set();
|
|
69878
|
+
while (pendingFilePaths.length > 0) {
|
|
69879
|
+
const currentFilePath = pendingFilePaths.pop();
|
|
69880
|
+
if (currentFilePath === void 0 || visitedFilePaths.has(currentFilePath)) continue;
|
|
69881
|
+
if (visitedFilePaths.size >= 100) return true;
|
|
69882
|
+
visitedFilePaths.add(currentFilePath);
|
|
69883
|
+
let contents;
|
|
69884
|
+
try {
|
|
69885
|
+
contents = fs$1$3.readFileSync(currentFilePath, "utf-8");
|
|
69886
|
+
} catch {
|
|
69887
|
+
return true;
|
|
69888
|
+
}
|
|
69889
|
+
if (EXPO_METRO_CONFIG_EXTEND_SIGNALS.some((signal) => contents.includes(signal))) return true;
|
|
69890
|
+
let moduleSpecifiers;
|
|
69891
|
+
try {
|
|
69892
|
+
moduleSpecifiers = collectStaticModuleSpecifiers(contents, {
|
|
69893
|
+
filePath: currentFilePath,
|
|
69894
|
+
includeTypeOnly: false
|
|
69895
|
+
});
|
|
69896
|
+
} catch {
|
|
69897
|
+
continue;
|
|
69898
|
+
}
|
|
69899
|
+
for (const moduleSpecifier of moduleSpecifiers) {
|
|
69900
|
+
const localModulePath = resolveLocalMetroConfigModule(moduleSpecifier, currentFilePath, rootDirectory);
|
|
69901
|
+
if (localModulePath !== void 0 && !visitedFilePaths.has(localModulePath)) pendingFilePaths.push(localModulePath);
|
|
69902
|
+
}
|
|
69903
|
+
}
|
|
69904
|
+
return false;
|
|
69905
|
+
};
|
|
69651
69906
|
const checkExpoMetroConfig = (context) => {
|
|
69652
69907
|
const metroConfigPath = METRO_CONFIG_FILE_NAMES.map((fileName) => path$1$1.join(context.rootDirectory, fileName)).find((candidatePath) => isFile(candidatePath));
|
|
69653
69908
|
if (metroConfigPath === void 0) return [];
|
|
69654
|
-
|
|
69655
|
-
try {
|
|
69656
|
-
contents = fs$1$3.readFileSync(metroConfigPath, "utf-8");
|
|
69657
|
-
} catch {
|
|
69658
|
-
return [];
|
|
69659
|
-
}
|
|
69660
|
-
if (EXPO_METRO_CONFIG_EXTEND_SIGNALS.some((signal) => contents.includes(signal))) return [];
|
|
69909
|
+
if (hasExpoMetroConfigSignal(metroConfigPath, context.rootDirectory)) return [];
|
|
69661
69910
|
return [buildExpoDiagnostic({
|
|
69662
69911
|
rule: "expo-metro-config",
|
|
69663
69912
|
filePath: path$1$1.basename(metroConfigPath),
|
|
@@ -71059,6 +71308,13 @@ const buildCapabilities = (project) => {
|
|
|
71059
71308
|
minor: 0
|
|
71060
71309
|
})) capabilities.add("tailwind:4");
|
|
71061
71310
|
}
|
|
71311
|
+
if (project.hasShadcnUi === true) capabilities.add("shadcn");
|
|
71312
|
+
if (project.hasRadixUi === true) capabilities.add("radix-ui");
|
|
71313
|
+
if (project.hasBaseUi === true) capabilities.add("base-ui");
|
|
71314
|
+
if (project.hasReactAriaComponents === true) capabilities.add("react-aria");
|
|
71315
|
+
if (project.hasTanstackTable === true) capabilities.add("tanstack-table");
|
|
71316
|
+
if (project.hasTanstackVirtual === true) capabilities.add("tanstack-virtual");
|
|
71317
|
+
if (project.hasTanstackForm === true) capabilities.add("tanstack-form");
|
|
71062
71318
|
if (project.zodVersion !== null) capabilities.add("zod");
|
|
71063
71319
|
if (project.zodMajorVersion !== null && project.zodMajorVersion >= 4) capabilities.add("zod:4");
|
|
71064
71320
|
if (project.mobxVersion !== void 0 && project.mobxVersion !== null || project.hasMobxReact === true || project.hasMobxReactLite === true || project.hasMobxStateTree === true || project.hasMobxReactObserver === true) capabilities.add("mobx");
|
|
@@ -71236,72 +71492,6 @@ const checkSecurityScanCooperative = async (rootDirectory, options = {}) => {
|
|
|
71236
71492
|
}
|
|
71237
71493
|
return session.diagnostics;
|
|
71238
71494
|
};
|
|
71239
|
-
var import_picocolors = /* @__PURE__ */ __toESM((/* @__PURE__ */ __commonJSMin(((exports, module) => {
|
|
71240
|
-
let p = process || {}, argv = p.argv || [], env = p.env || {};
|
|
71241
|
-
let isColorSupported = !(!!env.NO_COLOR || argv.includes("--no-color")) && (!!env.FORCE_COLOR || argv.includes("--color") || p.platform === "win32" || (p.stdout || {}).isTTY && env.TERM !== "dumb" || !!env.CI);
|
|
71242
|
-
let formatter = (open, close, replace = open) => (input) => {
|
|
71243
|
-
let string = "" + input, index = string.indexOf(close, open.length);
|
|
71244
|
-
return ~index ? open + replaceClose(string, close, replace, index) + close : open + string + close;
|
|
71245
|
-
};
|
|
71246
|
-
let replaceClose = (string, close, replace, index) => {
|
|
71247
|
-
let result = "", cursor = 0;
|
|
71248
|
-
do {
|
|
71249
|
-
result += string.substring(cursor, index) + replace;
|
|
71250
|
-
cursor = index + close.length;
|
|
71251
|
-
index = string.indexOf(close, cursor);
|
|
71252
|
-
} while (~index);
|
|
71253
|
-
return result + string.substring(cursor);
|
|
71254
|
-
};
|
|
71255
|
-
let createColors = (enabled = isColorSupported) => {
|
|
71256
|
-
let f = enabled ? formatter : () => String;
|
|
71257
|
-
return {
|
|
71258
|
-
isColorSupported: enabled,
|
|
71259
|
-
reset: f("\x1B[0m", "\x1B[0m"),
|
|
71260
|
-
bold: f("\x1B[1m", "\x1B[22m", "\x1B[22m\x1B[1m"),
|
|
71261
|
-
dim: f("\x1B[2m", "\x1B[22m", "\x1B[22m\x1B[2m"),
|
|
71262
|
-
italic: f("\x1B[3m", "\x1B[23m"),
|
|
71263
|
-
underline: f("\x1B[4m", "\x1B[24m"),
|
|
71264
|
-
inverse: f("\x1B[7m", "\x1B[27m"),
|
|
71265
|
-
hidden: f("\x1B[8m", "\x1B[28m"),
|
|
71266
|
-
strikethrough: f("\x1B[9m", "\x1B[29m"),
|
|
71267
|
-
black: f("\x1B[30m", "\x1B[39m"),
|
|
71268
|
-
red: f("\x1B[31m", "\x1B[39m"),
|
|
71269
|
-
green: f("\x1B[32m", "\x1B[39m"),
|
|
71270
|
-
yellow: f("\x1B[33m", "\x1B[39m"),
|
|
71271
|
-
blue: f("\x1B[34m", "\x1B[39m"),
|
|
71272
|
-
magenta: f("\x1B[35m", "\x1B[39m"),
|
|
71273
|
-
cyan: f("\x1B[36m", "\x1B[39m"),
|
|
71274
|
-
white: f("\x1B[37m", "\x1B[39m"),
|
|
71275
|
-
gray: f("\x1B[90m", "\x1B[39m"),
|
|
71276
|
-
bgBlack: f("\x1B[40m", "\x1B[49m"),
|
|
71277
|
-
bgRed: f("\x1B[41m", "\x1B[49m"),
|
|
71278
|
-
bgGreen: f("\x1B[42m", "\x1B[49m"),
|
|
71279
|
-
bgYellow: f("\x1B[43m", "\x1B[49m"),
|
|
71280
|
-
bgBlue: f("\x1B[44m", "\x1B[49m"),
|
|
71281
|
-
bgMagenta: f("\x1B[45m", "\x1B[49m"),
|
|
71282
|
-
bgCyan: f("\x1B[46m", "\x1B[49m"),
|
|
71283
|
-
bgWhite: f("\x1B[47m", "\x1B[49m"),
|
|
71284
|
-
blackBright: f("\x1B[90m", "\x1B[39m"),
|
|
71285
|
-
redBright: f("\x1B[91m", "\x1B[39m"),
|
|
71286
|
-
greenBright: f("\x1B[92m", "\x1B[39m"),
|
|
71287
|
-
yellowBright: f("\x1B[93m", "\x1B[39m"),
|
|
71288
|
-
blueBright: f("\x1B[94m", "\x1B[39m"),
|
|
71289
|
-
magentaBright: f("\x1B[95m", "\x1B[39m"),
|
|
71290
|
-
cyanBright: f("\x1B[96m", "\x1B[39m"),
|
|
71291
|
-
whiteBright: f("\x1B[97m", "\x1B[39m"),
|
|
71292
|
-
bgBlackBright: f("\x1B[100m", "\x1B[49m"),
|
|
71293
|
-
bgRedBright: f("\x1B[101m", "\x1B[49m"),
|
|
71294
|
-
bgGreenBright: f("\x1B[102m", "\x1B[49m"),
|
|
71295
|
-
bgYellowBright: f("\x1B[103m", "\x1B[49m"),
|
|
71296
|
-
bgBlueBright: f("\x1B[104m", "\x1B[49m"),
|
|
71297
|
-
bgMagentaBright: f("\x1B[105m", "\x1B[49m"),
|
|
71298
|
-
bgCyanBright: f("\x1B[106m", "\x1B[49m"),
|
|
71299
|
-
bgWhiteBright: f("\x1B[107m", "\x1B[49m")
|
|
71300
|
-
};
|
|
71301
|
-
};
|
|
71302
|
-
module.exports = createColors();
|
|
71303
|
-
module.exports.createColors = createColors;
|
|
71304
|
-
})))(), 1);
|
|
71305
71495
|
const highlighter = {
|
|
71306
71496
|
error: import_picocolors.default.red,
|
|
71307
71497
|
warn: import_picocolors.default.yellow,
|
|
@@ -71458,6 +71648,12 @@ const withProjectAnalysisWorkerSlot = async (task, abortSignal) => {
|
|
|
71458
71648
|
});
|
|
71459
71649
|
return projectAnalysisWorkerSlots.run(task, abortSignal);
|
|
71460
71650
|
};
|
|
71651
|
+
const toRelativePath = (filePath, rootDirectory) => {
|
|
71652
|
+
const normalizedFilePath = filePath.replace(/\\/g, "/");
|
|
71653
|
+
const normalizedRoot = rootDirectory.replace(/\\/g, "/").replace(/\/$/, "") + "/";
|
|
71654
|
+
if (normalizedFilePath.startsWith(normalizedRoot)) return normalizedFilePath.slice(normalizedRoot.length);
|
|
71655
|
+
return normalizedFilePath.replace(/^\.\//, "");
|
|
71656
|
+
};
|
|
71461
71657
|
const REACT_DOCTOR_TOOLCHAIN_PACKAGES = new Set([
|
|
71462
71658
|
"react-doctor",
|
|
71463
71659
|
"eslint-plugin-react-doctor",
|
|
@@ -72207,7 +72403,6 @@ const readTextFileUpToCharacterLimit = async (input) => {
|
|
|
72207
72403
|
input.signal?.throwIfAborted();
|
|
72208
72404
|
return buffer.subarray(0, readOffset).toString("utf-8");
|
|
72209
72405
|
};
|
|
72210
|
-
const toNormalizedRelativePath = (filePath, rootDirectory) => path$1$1.relative(path$1$1.resolve(rootDirectory), path$1$1.resolve(rootDirectory, filePath)).replaceAll("\\", "/") || ".";
|
|
72211
72406
|
const buildJsxSourceReader = async (input) => {
|
|
72212
72407
|
const ignoredFilePatterns = compileGlobPatternsLenient(input.ignorePatterns ?? [], (error) => warnConfigIssue(`ignore.files: ${error.message}`));
|
|
72213
72408
|
const sourceFiles = (await listSourceFilesWithSizeCooperative(input.rootDirectory, input.signal)).filter((sourceFile) => JSX_DUPLICATION_SOURCE_FILE_PATTERN.test(sourceFile.path) && classifyFileContext(sourceFile.path) === "production" && !isFileIgnoredByPatterns(sourceFile.path, input.rootDirectory, ignoredFilePatterns));
|
|
@@ -72619,7 +72814,11 @@ var Git = class Git extends Service()("react-doctor/Git") {
|
|
|
72619
72814
|
const symref = yield* runGit(directory, ["symbolic-ref", "refs/remotes/origin/HEAD"]);
|
|
72620
72815
|
if (symref.status === 0) {
|
|
72621
72816
|
const trimmed = trimOrNull(symref.stdout);
|
|
72622
|
-
if (trimmed !== null)
|
|
72817
|
+
if (trimmed !== null) {
|
|
72818
|
+
const branchName = trimmed.replace("refs/remotes/origin/", "");
|
|
72819
|
+
const remoteBranch = `origin/${branchName}`;
|
|
72820
|
+
return (yield* branchExists(directory, remoteBranch)) ? remoteBranch : branchName;
|
|
72821
|
+
}
|
|
72623
72822
|
}
|
|
72624
72823
|
const candidates = yield* runGit(directory, [
|
|
72625
72824
|
"for-each-ref",
|
|
@@ -72627,7 +72826,10 @@ var Git = class Git extends Service()("react-doctor/Git") {
|
|
|
72627
72826
|
...DEFAULT_BRANCH_CANDIDATES.map((candidate) => `refs/heads/${candidate}`)
|
|
72628
72827
|
]);
|
|
72629
72828
|
if (candidates.status !== 0) return null;
|
|
72630
|
-
|
|
72829
|
+
const localBranch = trimOrNull(candidates.stdout.split("\n")[0] ?? "");
|
|
72830
|
+
if (localBranch === null) return null;
|
|
72831
|
+
const remoteBranch = `origin/${localBranch}`;
|
|
72832
|
+
return (yield* branchExists(directory, remoteBranch)) ? remoteBranch : localBranch;
|
|
72631
72833
|
}).pipe(withSpan("Git.defaultBranch"));
|
|
72632
72834
|
const branchExists = (directory, branch) => runGit(directory, [
|
|
72633
72835
|
"rev-parse",
|
|
@@ -72964,59 +73166,11 @@ const isLocalPathExtend = (entry) => {
|
|
|
72964
73166
|
for (const prefix of EXTENDS_LOCAL_PATH_PREFIXES) if (entry.startsWith(prefix)) return true;
|
|
72965
73167
|
return false;
|
|
72966
73168
|
};
|
|
72967
|
-
const stripJsoncComments = (raw) => {
|
|
72968
|
-
let result = "";
|
|
72969
|
-
let cursor = 0;
|
|
72970
|
-
let inString = false;
|
|
72971
|
-
let stringQuote = "";
|
|
72972
|
-
while (cursor < raw.length) {
|
|
72973
|
-
const character = raw[cursor];
|
|
72974
|
-
const nextCharacter = raw[cursor + 1];
|
|
72975
|
-
if (inString) {
|
|
72976
|
-
result += character;
|
|
72977
|
-
if (character === "\\" && cursor + 1 < raw.length) {
|
|
72978
|
-
result += nextCharacter;
|
|
72979
|
-
cursor += 2;
|
|
72980
|
-
continue;
|
|
72981
|
-
}
|
|
72982
|
-
if (character === stringQuote) inString = false;
|
|
72983
|
-
cursor += 1;
|
|
72984
|
-
continue;
|
|
72985
|
-
}
|
|
72986
|
-
if (character === "\"" || character === "'") {
|
|
72987
|
-
inString = true;
|
|
72988
|
-
stringQuote = character;
|
|
72989
|
-
result += character;
|
|
72990
|
-
cursor += 1;
|
|
72991
|
-
continue;
|
|
72992
|
-
}
|
|
72993
|
-
if (character === "/" && nextCharacter === "/") {
|
|
72994
|
-
const lineEndIndex = raw.indexOf("\n", cursor);
|
|
72995
|
-
cursor = lineEndIndex === -1 ? raw.length : lineEndIndex;
|
|
72996
|
-
continue;
|
|
72997
|
-
}
|
|
72998
|
-
if (character === "/" && nextCharacter === "*") {
|
|
72999
|
-
const blockEndIndex = raw.indexOf("*/", cursor + 2);
|
|
73000
|
-
cursor = blockEndIndex === -1 ? raw.length : blockEndIndex + 2;
|
|
73001
|
-
continue;
|
|
73002
|
-
}
|
|
73003
|
-
result += character;
|
|
73004
|
-
cursor += 1;
|
|
73005
|
-
}
|
|
73006
|
-
return result;
|
|
73007
|
-
};
|
|
73008
|
-
const parseJsonOrJsonc = (raw) => {
|
|
73009
|
-
try {
|
|
73010
|
-
return JSON.parse(raw);
|
|
73011
|
-
} catch {
|
|
73012
|
-
return JSON.parse(stripJsoncComments(raw));
|
|
73013
|
-
}
|
|
73014
|
-
};
|
|
73015
73169
|
const canOxlintExtendConfig = (configPath) => {
|
|
73016
73170
|
if (!configPath.endsWith(".eslintrc.json")) return true;
|
|
73017
73171
|
let parsed;
|
|
73018
73172
|
try {
|
|
73019
|
-
parsed =
|
|
73173
|
+
parsed = parseJSONC(fs$1$3.readFileSync(configPath, "utf-8"), { allowTrailingComma: true });
|
|
73020
73174
|
} catch {
|
|
73021
73175
|
return true;
|
|
73022
73176
|
}
|
|
@@ -73128,7 +73282,39 @@ const detectUserLintConfigPaths = (rootDirectory) => {
|
|
|
73128
73282
|
}
|
|
73129
73283
|
return [];
|
|
73130
73284
|
};
|
|
73285
|
+
const readAdoptedLintConfigSettings = (configPaths) => {
|
|
73286
|
+
const mergedSettings = /* @__PURE__ */ new Map();
|
|
73287
|
+
for (const configPath of configPaths) {
|
|
73288
|
+
let parsed;
|
|
73289
|
+
try {
|
|
73290
|
+
parsed = parseJSONC(fs$1$3.readFileSync(configPath, "utf-8"), { allowTrailingComma: true });
|
|
73291
|
+
} catch {
|
|
73292
|
+
continue;
|
|
73293
|
+
}
|
|
73294
|
+
if (!isPlainObject(parsed)) continue;
|
|
73295
|
+
const settings = parsed.settings;
|
|
73296
|
+
if (!isPlainObject(settings)) continue;
|
|
73297
|
+
for (const [pluginName, pluginSettings] of Object.entries(settings)) {
|
|
73298
|
+
if (pluginName === "react-doctor") continue;
|
|
73299
|
+
mergedSettings.set(pluginName, pluginSettings);
|
|
73300
|
+
}
|
|
73301
|
+
}
|
|
73302
|
+
return Object.fromEntries(mergedSettings);
|
|
73303
|
+
};
|
|
73131
73304
|
const DISABLE_DIRECTIVE_PATTERN = /(eslint|oxlint)-disable/;
|
|
73305
|
+
const getBackupRootDirectory = (rootDirectory) => path$1$1.join(rootDirectory, ...DISABLE_DIRECTIVE_BACKUP_DIRECTORY_SEGMENTS);
|
|
73306
|
+
const getBackupPath = (rootDirectory, absolutePath) => {
|
|
73307
|
+
if (!isPathInsideDirectory(absolutePath, rootDirectory)) return null;
|
|
73308
|
+
return path$1$1.join(getBackupRootDirectory(rootDirectory), path$1$1.relative(rootDirectory, absolutePath));
|
|
73309
|
+
};
|
|
73310
|
+
const removeBackupRootIfEmpty = (rootDirectory) => {
|
|
73311
|
+
const backupRootDirectory = getBackupRootDirectory(rootDirectory);
|
|
73312
|
+
if (!walkSourceTreeFiles(backupRootDirectory).next().done) return;
|
|
73313
|
+
fs$1$3.rmSync(backupRootDirectory, {
|
|
73314
|
+
recursive: true,
|
|
73315
|
+
force: true
|
|
73316
|
+
});
|
|
73317
|
+
};
|
|
73132
73318
|
const neutralizedFileLeases = /* @__PURE__ */ new Map();
|
|
73133
73319
|
const activeNeutralizationInitializations = /* @__PURE__ */ new Set();
|
|
73134
73320
|
const directoriesOverlap = (left, right) => {
|
|
@@ -73220,8 +73406,50 @@ const collectNeutralizationCandidatePaths = (rootDirectory, discoveredRelativePa
|
|
|
73220
73406
|
}
|
|
73221
73407
|
return candidatePaths;
|
|
73222
73408
|
};
|
|
73409
|
+
const recoverOrphanedBackups = (rootDirectory) => {
|
|
73410
|
+
const blockedPaths = /* @__PURE__ */ new Set();
|
|
73411
|
+
const backupRootDirectory = getBackupRootDirectory(rootDirectory);
|
|
73412
|
+
for (const { absolutePath: backupPath } of walkSourceTreeFiles(backupRootDirectory)) {
|
|
73413
|
+
const originalPath = path$1$1.join(rootDirectory, path$1$1.relative(backupRootDirectory, backupPath));
|
|
73414
|
+
if (neutralizedFileLeases.has(originalPath)) continue;
|
|
73415
|
+
let backupContent;
|
|
73416
|
+
let currentContent;
|
|
73417
|
+
try {
|
|
73418
|
+
backupContent = fs$1$3.readFileSync(backupPath, "utf-8");
|
|
73419
|
+
currentContent = fs$1$3.readFileSync(originalPath, "utf-8");
|
|
73420
|
+
} catch (error) {
|
|
73421
|
+
process.stderr.write(`[react-doctor] Could not recover ${originalPath}: ${messageFromUnknown(error)}. The backup remains at ${backupPath}.\n`);
|
|
73422
|
+
blockedPaths.add(originalPath);
|
|
73423
|
+
continue;
|
|
73424
|
+
}
|
|
73425
|
+
if (currentContent === backupContent) {
|
|
73426
|
+
try {
|
|
73427
|
+
fs$1$3.rmSync(backupPath);
|
|
73428
|
+
} catch (error) {
|
|
73429
|
+
process.stderr.write(`[react-doctor] Failed to delete stale backup ${backupPath}: ${messageFromUnknown(error)}\n`);
|
|
73430
|
+
blockedPaths.add(originalPath);
|
|
73431
|
+
}
|
|
73432
|
+
continue;
|
|
73433
|
+
}
|
|
73434
|
+
if (currentContent !== neutralizeContent(backupContent)) {
|
|
73435
|
+
process.stderr.write(`[react-doctor] Did not overwrite changed file ${originalPath}. Recover it manually from ${backupPath}.\n`);
|
|
73436
|
+
blockedPaths.add(originalPath);
|
|
73437
|
+
continue;
|
|
73438
|
+
}
|
|
73439
|
+
try {
|
|
73440
|
+
fs$1$3.writeFileSync(originalPath, backupContent);
|
|
73441
|
+
fs$1$3.rmSync(backupPath);
|
|
73442
|
+
} catch (error) {
|
|
73443
|
+
process.stderr.write(`[react-doctor] Failed to restore ${originalPath} from backup: ${messageFromUnknown(error)}\n`);
|
|
73444
|
+
blockedPaths.add(originalPath);
|
|
73445
|
+
}
|
|
73446
|
+
}
|
|
73447
|
+
removeBackupRootIfEmpty(rootDirectory);
|
|
73448
|
+
return blockedPaths;
|
|
73449
|
+
};
|
|
73223
73450
|
const neutralizeDisableDirectives = async (rootDirectory, includePaths, options = {}) => {
|
|
73224
73451
|
const resolvedRootDirectory = fs$1$3.realpathSync(rootDirectory);
|
|
73452
|
+
const blockedPaths = /* @__PURE__ */ new Set();
|
|
73225
73453
|
const leasedPaths = /* @__PURE__ */ new Set();
|
|
73226
73454
|
let isRestored = false;
|
|
73227
73455
|
const restore = () => {
|
|
@@ -73234,16 +73462,24 @@ const neutralizeDisableDirectives = async (rootDirectory, includePaths, options
|
|
|
73234
73462
|
if (lease.referenceCount > 0) continue;
|
|
73235
73463
|
neutralizedFileLeases.delete(absolutePath);
|
|
73236
73464
|
try {
|
|
73237
|
-
fs$1$3.
|
|
73465
|
+
const currentContent = fs$1$3.readFileSync(absolutePath, "utf-8");
|
|
73466
|
+
if (currentContent !== lease.neutralizedContent && currentContent !== lease.originalContent) {
|
|
73467
|
+
process.stderr.write(`[react-doctor] Did not overwrite changed file ${absolutePath}. Recover it manually from ${lease.backupPath}.\n`);
|
|
73468
|
+
continue;
|
|
73469
|
+
}
|
|
73470
|
+
if (currentContent === lease.neutralizedContent) fs$1$3.writeFileSync(absolutePath, lease.originalContent);
|
|
73471
|
+
fs$1$3.rmSync(lease.backupPath, { force: true });
|
|
73238
73472
|
} catch (error) {
|
|
73239
|
-
process.stderr.write(`[react-doctor] Failed to restore inline disable directives in ${absolutePath}: ${messageFromUnknown(error)}
|
|
73473
|
+
process.stderr.write(`[react-doctor] Failed to restore inline disable directives in ${absolutePath}: ${messageFromUnknown(error)}. The backup remains at ${lease.backupPath}.\n`);
|
|
73240
73474
|
}
|
|
73241
73475
|
}
|
|
73476
|
+
removeBackupRootIfEmpty(resolvedRootDirectory);
|
|
73242
73477
|
};
|
|
73243
73478
|
const onExit = () => restore();
|
|
73244
73479
|
process.once("exit", onExit);
|
|
73245
73480
|
const leaseCandidatePath = (absolutePath) => {
|
|
73246
73481
|
if (leasedPaths.has(absolutePath)) return;
|
|
73482
|
+
if (blockedPaths.has(absolutePath)) return;
|
|
73247
73483
|
const existingLease = neutralizedFileLeases.get(absolutePath);
|
|
73248
73484
|
if (existingLease) {
|
|
73249
73485
|
existingLease.referenceCount += 1;
|
|
@@ -73258,9 +73494,20 @@ const neutralizeDisableDirectives = async (rootDirectory, includePaths, options
|
|
|
73258
73494
|
}
|
|
73259
73495
|
const neutralizedContent = neutralizeContent(originalContent);
|
|
73260
73496
|
if (neutralizedContent !== originalContent) {
|
|
73497
|
+
const backupPath = getBackupPath(resolvedRootDirectory, absolutePath);
|
|
73498
|
+
if (backupPath === null) return;
|
|
73499
|
+
try {
|
|
73500
|
+
fs$1$3.mkdirSync(path$1$1.dirname(backupPath), { recursive: true });
|
|
73501
|
+
fs$1$3.writeFileSync(backupPath, originalContent, { flag: "wx" });
|
|
73502
|
+
} catch (error) {
|
|
73503
|
+
process.stderr.write(`[react-doctor] Did not modify ${absolutePath}: ${messageFromUnknown(error)}. Check ${backupPath}.\n`);
|
|
73504
|
+
return;
|
|
73505
|
+
}
|
|
73261
73506
|
fs$1$3.writeFileSync(absolutePath, neutralizedContent);
|
|
73262
73507
|
neutralizedFileLeases.set(absolutePath, {
|
|
73508
|
+
backupPath,
|
|
73263
73509
|
originalContent,
|
|
73510
|
+
neutralizedContent,
|
|
73264
73511
|
referenceCount: 1
|
|
73265
73512
|
});
|
|
73266
73513
|
leasedPaths.add(absolutePath);
|
|
@@ -73268,6 +73515,8 @@ const neutralizeDisableDirectives = async (rootDirectory, includePaths, options
|
|
|
73268
73515
|
};
|
|
73269
73516
|
try {
|
|
73270
73517
|
await withOverlappingInitializationLock(resolvedRootDirectory, async () => {
|
|
73518
|
+
for (const blockedPath of recoverOrphanedBackups(resolvedRootDirectory)) blockedPaths.add(blockedPath);
|
|
73519
|
+
if (options.recoverOnly) return;
|
|
73271
73520
|
for (const absolutePath of collectNeutralizationCandidatePaths(resolvedRootDirectory, [], includePaths)) if (neutralizedFileLeases.has(absolutePath)) leaseCandidatePath(absolutePath);
|
|
73272
73521
|
const discoveredRelativePaths = await (options.findFiles ?? findFilesWithDisableDirectives)(resolvedRootDirectory, includePaths);
|
|
73273
73522
|
for (const absolutePath of collectNeutralizationCandidatePaths(resolvedRootDirectory, discoveredRelativePaths, includePaths)) leaseCandidatePath(absolutePath);
|
|
@@ -73448,7 +73697,7 @@ const buildUserPluginRules = (userPlugin, severityControls) => {
|
|
|
73448
73697
|
}
|
|
73449
73698
|
return enabled;
|
|
73450
73699
|
};
|
|
73451
|
-
const createOxlintConfig = ({ pluginPath, project, customRulesOnly = false, extendsPaths = [], ignoredTags = /* @__PURE__ */ new Set(), includedTags = /* @__PURE__ */ new Set(), includeTagDefaults = false, runtimeGlobals, unpluginAutoImportGlobalScopes, serverAuthFunctionNames, projectIndexModuleSources, severityControls, userPlugins = [], disableReactHooksJsPlugin = false, ruleSelection, sidecarRuleIdFilter }) => {
|
|
73700
|
+
const createOxlintConfig = ({ pluginPath, project, customRulesOnly = false, extendsPaths = [], ignoredTags = /* @__PURE__ */ new Set(), includedTags = /* @__PURE__ */ new Set(), includeTagDefaults = false, runtimeGlobals, unpluginAutoImportGlobalScopes, serverAuthFunctionNames, projectIndexModuleSources, severityControls, adoptedSettings = {}, userPlugins = [], disableReactHooksJsPlugin = false, ruleSelection, sidecarRuleIdFilter }) => {
|
|
73452
73701
|
const hasIncludedTags = includedTags.size > 0;
|
|
73453
73702
|
const reactHooksJsPlugin = disableReactHooksJsPlugin || ruleSelection === "sidecar" || hasIncludedTags ? null : resolveReactHooksJsPlugin(project.hasReactCompiler || project.hasReactCompilerLintPlugin === true, customRulesOnly);
|
|
73454
73703
|
const reactCompilerRules = reactHooksJsPlugin ? applyRuleSeverityControls(filterRulesToAvailable(REACT_COMPILER_RULES, "react-hooks-js", reactHooksJsPlugin.availableRuleNames), severityControls) : {};
|
|
@@ -73503,23 +73752,26 @@ const createOxlintConfig = ({ pluginPath, project, customRulesOnly = false, exte
|
|
|
73503
73752
|
},
|
|
73504
73753
|
plugins: [],
|
|
73505
73754
|
jsPlugins: [...jsPlugins, pluginPath],
|
|
73506
|
-
settings: {
|
|
73507
|
-
|
|
73508
|
-
|
|
73509
|
-
|
|
73510
|
-
|
|
73511
|
-
|
|
73512
|
-
|
|
73513
|
-
|
|
73514
|
-
unpluginAutoImportGlobalScopes
|
|
73515
|
-
|
|
73516
|
-
|
|
73517
|
-
|
|
73518
|
-
|
|
73519
|
-
|
|
73520
|
-
|
|
73521
|
-
|
|
73522
|
-
|
|
73755
|
+
settings: {
|
|
73756
|
+
...adoptedSettings,
|
|
73757
|
+
"react-doctor": {
|
|
73758
|
+
portedRuleMode: "curated",
|
|
73759
|
+
framework: project.framework,
|
|
73760
|
+
rootDirectory: settingsRootDirectory,
|
|
73761
|
+
capabilities: [...capabilities].sort(),
|
|
73762
|
+
...runtimeGlobals && runtimeGlobals.length > 0 ? { runtimeGlobals: [...runtimeGlobals] } : {},
|
|
73763
|
+
...unpluginAutoImportGlobalScopes && unpluginAutoImportGlobalScopes.length > 0 ? {
|
|
73764
|
+
unpluginAutoImportRootDirectories: [...new Set([settingsRootDirectory, project.rootDirectory])],
|
|
73765
|
+
unpluginAutoImportGlobalScopes: unpluginAutoImportGlobalScopes.map((scope) => ({
|
|
73766
|
+
directory: scope.directory,
|
|
73767
|
+
names: [...scope.names]
|
|
73768
|
+
}))
|
|
73769
|
+
} : {},
|
|
73770
|
+
...project.shopifyFlashListMajorVersion !== null ? { shopifyFlashListMajorVersion: project.shopifyFlashListMajorVersion } : {},
|
|
73771
|
+
...serverAuthFunctionNames && serverAuthFunctionNames.length > 0 ? { serverAuthFunctionNames: [...serverAuthFunctionNames] } : {},
|
|
73772
|
+
...projectIndexModuleSources !== void 0 ? { projectIndexModuleSources: [...projectIndexModuleSources] } : {}
|
|
73773
|
+
}
|
|
73774
|
+
},
|
|
73523
73775
|
rules: {
|
|
73524
73776
|
...reactCompilerRules,
|
|
73525
73777
|
...enabledReactDoctorRules,
|
|
@@ -74653,6 +74905,46 @@ const buildProfiledNodeArguments = (input) => [
|
|
|
74653
74905
|
...input.heapProfileDirectory ? ["--heap-prof", `--heap-prof-dir=${input.heapProfileDirectory}`] : [],
|
|
74654
74906
|
...input.argumentsList
|
|
74655
74907
|
];
|
|
74908
|
+
const buildOxlintTimingArguments = (argumentsList) => {
|
|
74909
|
+
const timingArguments = [...argumentsList];
|
|
74910
|
+
const formatFlagIndex = timingArguments.indexOf("--format");
|
|
74911
|
+
if (formatFlagIndex === -1 || formatFlagIndex + 1 >= timingArguments.length) throw new Error("Oxlint timing arguments require a --format value");
|
|
74912
|
+
timingArguments[formatFlagIndex + 1] = "default";
|
|
74913
|
+
timingArguments.push("--debug", "timings", "--quiet");
|
|
74914
|
+
return timingArguments;
|
|
74915
|
+
};
|
|
74916
|
+
const captureOxlintRuleTimings = (input) => new Promise((resolve, reject) => {
|
|
74917
|
+
const timingEnvironment = { ...input.environment };
|
|
74918
|
+
timingEnvironment.REACT_DOCTOR_RULE_TIMINGS_DIR = void 0;
|
|
74919
|
+
const timingChild = spawn(input.nodeBinaryPath, buildOxlintTimingArguments(input.argumentsList), {
|
|
74920
|
+
cwd: input.rootDirectory,
|
|
74921
|
+
env: timingEnvironment,
|
|
74922
|
+
stdio: [
|
|
74923
|
+
"ignore",
|
|
74924
|
+
"pipe",
|
|
74925
|
+
"pipe"
|
|
74926
|
+
]
|
|
74927
|
+
});
|
|
74928
|
+
const stdoutBuffers = [];
|
|
74929
|
+
const stderrBuffers = [];
|
|
74930
|
+
timingChild.stdout.on("data", (buffer) => stdoutBuffers.push(buffer));
|
|
74931
|
+
timingChild.stderr.on("data", (buffer) => stderrBuffers.push(buffer));
|
|
74932
|
+
timingChild.on("error", reject);
|
|
74933
|
+
timingChild.on("close", (_code, signal) => {
|
|
74934
|
+
if (signal) {
|
|
74935
|
+
reject(/* @__PURE__ */ new Error(`Oxlint timing pass was killed by ${signal}`));
|
|
74936
|
+
return;
|
|
74937
|
+
}
|
|
74938
|
+
const timingOutput = `${Buffer.concat(stdoutBuffers).toString("utf8")}\n${Buffer.concat(stderrBuffers).toString("utf8")}`;
|
|
74939
|
+
if (!timingOutput.includes("Rule timings:")) {
|
|
74940
|
+
resolve();
|
|
74941
|
+
return;
|
|
74942
|
+
}
|
|
74943
|
+
fs$1$3.mkdirSync(input.timingDirectory, { recursive: true });
|
|
74944
|
+
fs$1$3.writeFileSync(path$1$1.join(input.timingDirectory, `oxlint-${timingChild.pid ?? process.pid}.timings.txt`), timingOutput);
|
|
74945
|
+
resolve();
|
|
74946
|
+
});
|
|
74947
|
+
});
|
|
74656
74948
|
const lowerChildProcessPriority = (processId) => {
|
|
74657
74949
|
if (processId === void 0) return;
|
|
74658
74950
|
try {
|
|
@@ -74774,7 +75066,18 @@ const spawnOxlint = (args, rootDirectory, nodeBinaryPath, spawnTimeoutMs = OXLIN
|
|
|
74774
75066
|
return;
|
|
74775
75067
|
}
|
|
74776
75068
|
}
|
|
74777
|
-
|
|
75069
|
+
const timingDirectory = SANITIZED_ENV.REACT_DOCTOR_OXLINT_TIMINGS_DIR;
|
|
75070
|
+
if (timingDirectory === void 0) {
|
|
75071
|
+
resolve(output);
|
|
75072
|
+
return;
|
|
75073
|
+
}
|
|
75074
|
+
captureOxlintRuleTimings({
|
|
75075
|
+
argumentsList: args,
|
|
75076
|
+
environment: SANITIZED_ENV,
|
|
75077
|
+
nodeBinaryPath,
|
|
75078
|
+
rootDirectory,
|
|
75079
|
+
timingDirectory
|
|
75080
|
+
}).then(() => resolve(output), reject);
|
|
74778
75081
|
});
|
|
74779
75082
|
});
|
|
74780
75083
|
const PARALLELISM_EXHAUSTION_ERROR_CODES = new Set([
|
|
@@ -75577,9 +75880,11 @@ const runOxlint = async (options) => {
|
|
|
75577
75880
|
return [];
|
|
75578
75881
|
}
|
|
75579
75882
|
const pluginPath = resolvePluginPath();
|
|
75580
|
-
const
|
|
75883
|
+
const detectedConfigPaths = adoptExistingLintConfig && !customRulesOnly ? detectUserLintConfigPaths(rootDirectory) : [];
|
|
75884
|
+
const extendsPaths = detectedConfigPaths.filter(canOxlintExtendConfig);
|
|
75885
|
+
const adoptedSettings = detectedConfigPaths.length > 0 ? readAdoptedLintConfigSettings(detectedConfigPaths) : {};
|
|
75581
75886
|
const userPlugins = includedTags.size > 0 ? [] : resolveUserPlugins(userConfig?.plugins, configSourceDirectory);
|
|
75582
|
-
const restoreDisableDirectives =
|
|
75887
|
+
const restoreDisableDirectives = await neutralizeDisableDirectives(rootDirectory, includePaths ?? options.precomputedSourceFiles?.map((sourceFile) => sourceFile.path), { recoverOnly: respectInlineDisables });
|
|
75583
75888
|
const configDirectory = fs$1$3.mkdtempSync(path$1$1.join(os.tmpdir(), "react-doctor-oxlintrc-"));
|
|
75584
75889
|
const configPath = path$1$1.join(configDirectory, "oxlintrc.json");
|
|
75585
75890
|
try {
|
|
@@ -75639,6 +75944,7 @@ const runOxlint = async (options) => {
|
|
|
75639
75944
|
serverAuthFunctionNames,
|
|
75640
75945
|
projectIndexModuleSources,
|
|
75641
75946
|
severityControls,
|
|
75947
|
+
adoptedSettings,
|
|
75642
75948
|
userPlugins,
|
|
75643
75949
|
disableReactHooksJsPlugin: overrides.disableReactHooksJsPlugin,
|
|
75644
75950
|
ruleSelection: overrides.ruleSelection,
|
|
@@ -77021,9 +77327,9 @@ const runInspect = (input, hooks = {}) => gen(function* () {
|
|
|
77021
77327
|
if (!lintFailureState.didFail) if (maintainabilityFailureState.didFail) yield* scanProgress.fail(MAINTAINABILITY_FAIL_TEXT);
|
|
77022
77328
|
else if (input.suppressScanSummary) yield* scanProgress.stop();
|
|
77023
77329
|
else yield* scanProgress.succeed(`Scanned ${scannedFilesLabel} in ${scanElapsedSeconds}s${workerCountSuffix}`);
|
|
77024
|
-
const supplyChainResult = yield* join(supplyChainFiber);
|
|
77330
|
+
const supplyChainResult = yield* join$1(supplyChainFiber);
|
|
77025
77331
|
const supplyChainCollected = supplyChainResult.diagnostics;
|
|
77026
|
-
const securityScanCollected = yield* join(securityScanFiber);
|
|
77332
|
+
const securityScanCollected = yield* join$1(securityScanFiber);
|
|
77027
77333
|
yield* reporterService.finalize;
|
|
77028
77334
|
const finalDiagnostics = sortDiagnosticsStable(assignFixGroups([
|
|
77029
77335
|
...envCollected,
|
|
@@ -77032,7 +77338,7 @@ const runInspect = (input, hooks = {}) => gen(function* () {
|
|
|
77032
77338
|
...lintCollected,
|
|
77033
77339
|
...maintainabilityCollected
|
|
77034
77340
|
]));
|
|
77035
|
-
const githubViewerPermission = yield* join(githubViewerPermissionFiber);
|
|
77341
|
+
const githubViewerPermission = yield* join$1(githubViewerPermissionFiber);
|
|
77036
77342
|
const scoreMetadata = {
|
|
77037
77343
|
...repo !== null ? { repo } : {},
|
|
77038
77344
|
...sha !== null ? { sha } : {},
|
|
@@ -77398,8 +77704,9 @@ const findWorstScoredProject = (projects) => {
|
|
|
77398
77704
|
return worst;
|
|
77399
77705
|
};
|
|
77400
77706
|
const toJsonReportDiagnostic = (diagnostic, projectRoot, reportRoot) => {
|
|
77401
|
-
const
|
|
77402
|
-
const
|
|
77707
|
+
const resolvedFilePath = resolveCandidateReadPath(projectRoot, diagnostic.filePath);
|
|
77708
|
+
const normalizedFilePath = toNormalizedRelativePath(resolvedFilePath, projectRoot);
|
|
77709
|
+
const reportRelativeFilePath = toNormalizedRelativePath(resolvedFilePath, reportRoot);
|
|
77403
77710
|
const ruleIdentity = getDiagnosticRuleIdentity(diagnostic);
|
|
77404
77711
|
return {
|
|
77405
77712
|
...diagnostic,
|
|
@@ -77882,4 +78189,4 @@ const toJsonReport = (result, options) => buildJsonReport({
|
|
|
77882
78189
|
export { AmbiguousProjectError, NoReactDependencyError, NotADirectoryError, PackageJsonNotFoundError, ProjectNotFoundError, ReactDoctorError, buildJsonReport, buildJsonReportError, clearCaches, defineConfig, diagnose, filterSourceFiles, getDiffInfo, hasReactRuntime, isProjectDiscoveryError, isReactDoctorError, summarizeDiagnostics, toJsonReport };
|
|
77883
78190
|
|
|
77884
78191
|
//# sourceMappingURL=index.js.map
|
|
77885
|
-
//# debugId=
|
|
78192
|
+
//# debugId=5453bc11-5691-5788-ba63-d87c0b7a6bff
|