react-doctor 0.9.12-dev.ffc2d14 → 0.9.13-dev.fd23edc
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-CUtO-gXD.js} +8 -22
- package/dist/{ci-DVVsf25h.js → ci-DjilJaw4.js} +12 -11
- package/dist/cli.js +116 -35
- package/dist/{design-Y1pcA2uj.js → design-CXLKbARh.js} +4 -4
- package/dist/{devtools-D8NTVj81.js → devtools-CC2PAZ85.js} +3 -3
- package/dist/{exit-gracefully-DnXGONjj.js → exit-gracefully-DTLgxZZ5.js} +15 -9
- package/dist/get-east-asian-width-Bv2TD3Xj.js +444 -0
- package/dist/{report-error-MGKyeIns.js → handle-error-BqaqFvmc.js} +18 -68
- package/dist/index.d.ts +32 -0
- package/dist/index.js +585 -286
- package/dist/{inspect-g3_lzs3l.js → inspect-BIfnzKGq.js} +38 -28
- package/dist/{install-doctor-script-DmEWQpVJ.js → install-doctor-script-B1U08lUD.js} +7 -449
- package/dist/{install-github-workflow-Dx6Pl9Wl.js → install-github-workflow-CkOl0wCn.js} +10 -6
- package/dist/{install-02Lq6wKC.js → install-nhJ65X-y.js} +9 -8
- package/dist/{install-react-doctor-CMCXgenA.js → install-react-doctor-Dm35Egex.js} +8 -8
- package/dist/{run-scan-app-CDDu7P32.js → jsx-runtime-C1t3eR6p.js} +280 -2774
- package/dist/path-format-DnHpmJwG.js +9 -0
- package/dist/{print-branded-header-kbvWYuGv.js → print-branded-header-qOJiGkuW.js} +4 -4
- package/dist/project-analysis-worker.js +54 -53
- package/dist/prompt-runtime-scan-url-m88LMtMP.js +240 -0
- package/dist/{read-object-file-Cwhr9OIi.js → read-object-file-Cv41FpZo.js} +4 -4
- package/dist/{record-metric-CFfsgcVs.js → record-metric-u8youmM2.js} +548 -235
- package/dist/report-error-CkFgxJTQ.js +64 -0
- package/dist/{report-workflow-result-DGg9xopH.js → report-workflow-result-Wh1SQuOu.js} +5 -5
- package/dist/{resolve-scope-CXS-5jLR.js → resolve-scope-CHCpJtks.js} +8 -10
- package/dist/{rules-CThlosPx.js → rules-C30QFptP.js} +6 -6
- package/dist/run-scan-app-yTBDucJ3.js +2511 -0
- package/dist/runtime-scan/browser-probe.iife.js +855 -0
- package/dist/runtime-scan-VH25Yf8H.js +770 -0
- package/dist/sanitize-runtime-url-crVHbQlW.js +76 -0
- package/dist/scan-CNSRWEtJ.js +47 -0
- package/dist/{should-fail-scan-gate-C0Bo5Gqy.js → should-fail-scan-gate-Cw6KeoRT.js} +20 -112
- package/dist/{should-skip-prompts-BqrtVX4G.js → should-skip-prompts-B5zkkkKR.js} +4 -4
- package/dist/should-use-tui-S9255AG_.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-B2rpGWMl.js} +55 -25
- package/dist/unref-stdin-SK3WfwxS.js +12 -0
- package/dist/{version-S-8vvWFi.js → version-KQbGQSGN.js} +4 -4
- package/dist/{why-DXfx0oL9.js → why-B-l2qTCV.js} +4 -4
- package/dist/with-run-span-Dk1M8cnH.js +110 -0
- package/package.json +9 -6
- package/dist/scan-4I1mvxBO.js +0 -53
|
@@ -0,0 +1,444 @@
|
|
|
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]="db817079-8f8f-50ee-bae1-5d0182c74255")}catch(e){}}();
|
|
3
|
+
import process from "node:process";
|
|
4
|
+
import os from "node:os";
|
|
5
|
+
import tty from "node:tty";
|
|
6
|
+
//#region ../../node_modules/.pnpm/chalk@5.6.2/node_modules/chalk/source/vendor/ansi-styles/index.js
|
|
7
|
+
const ANSI_BACKGROUND_OFFSET = 10;
|
|
8
|
+
const wrapAnsi16 = (offset = 0) => (code) => `\u001B[${code + offset}m`;
|
|
9
|
+
const wrapAnsi256 = (offset = 0) => (code) => `\u001B[${38 + offset};5;${code}m`;
|
|
10
|
+
const wrapAnsi16m = (offset = 0) => (red, green, blue) => `\u001B[${38 + offset};2;${red};${green};${blue}m`;
|
|
11
|
+
const styles$1 = {
|
|
12
|
+
modifier: {
|
|
13
|
+
reset: [0, 0],
|
|
14
|
+
bold: [1, 22],
|
|
15
|
+
dim: [2, 22],
|
|
16
|
+
italic: [3, 23],
|
|
17
|
+
underline: [4, 24],
|
|
18
|
+
overline: [53, 55],
|
|
19
|
+
inverse: [7, 27],
|
|
20
|
+
hidden: [8, 28],
|
|
21
|
+
strikethrough: [9, 29]
|
|
22
|
+
},
|
|
23
|
+
color: {
|
|
24
|
+
black: [30, 39],
|
|
25
|
+
red: [31, 39],
|
|
26
|
+
green: [32, 39],
|
|
27
|
+
yellow: [33, 39],
|
|
28
|
+
blue: [34, 39],
|
|
29
|
+
magenta: [35, 39],
|
|
30
|
+
cyan: [36, 39],
|
|
31
|
+
white: [37, 39],
|
|
32
|
+
blackBright: [90, 39],
|
|
33
|
+
gray: [90, 39],
|
|
34
|
+
grey: [90, 39],
|
|
35
|
+
redBright: [91, 39],
|
|
36
|
+
greenBright: [92, 39],
|
|
37
|
+
yellowBright: [93, 39],
|
|
38
|
+
blueBright: [94, 39],
|
|
39
|
+
magentaBright: [95, 39],
|
|
40
|
+
cyanBright: [96, 39],
|
|
41
|
+
whiteBright: [97, 39]
|
|
42
|
+
},
|
|
43
|
+
bgColor: {
|
|
44
|
+
bgBlack: [40, 49],
|
|
45
|
+
bgRed: [41, 49],
|
|
46
|
+
bgGreen: [42, 49],
|
|
47
|
+
bgYellow: [43, 49],
|
|
48
|
+
bgBlue: [44, 49],
|
|
49
|
+
bgMagenta: [45, 49],
|
|
50
|
+
bgCyan: [46, 49],
|
|
51
|
+
bgWhite: [47, 49],
|
|
52
|
+
bgBlackBright: [100, 49],
|
|
53
|
+
bgGray: [100, 49],
|
|
54
|
+
bgGrey: [100, 49],
|
|
55
|
+
bgRedBright: [101, 49],
|
|
56
|
+
bgGreenBright: [102, 49],
|
|
57
|
+
bgYellowBright: [103, 49],
|
|
58
|
+
bgBlueBright: [104, 49],
|
|
59
|
+
bgMagentaBright: [105, 49],
|
|
60
|
+
bgCyanBright: [106, 49],
|
|
61
|
+
bgWhiteBright: [107, 49]
|
|
62
|
+
}
|
|
63
|
+
};
|
|
64
|
+
Object.keys(styles$1.modifier);
|
|
65
|
+
const foregroundColorNames = Object.keys(styles$1.color);
|
|
66
|
+
const backgroundColorNames = Object.keys(styles$1.bgColor);
|
|
67
|
+
[...foregroundColorNames, ...backgroundColorNames];
|
|
68
|
+
function assembleStyles() {
|
|
69
|
+
const codes = /* @__PURE__ */ new Map();
|
|
70
|
+
for (const [groupName, group] of Object.entries(styles$1)) {
|
|
71
|
+
for (const [styleName, style] of Object.entries(group)) {
|
|
72
|
+
styles$1[styleName] = {
|
|
73
|
+
open: `\u001B[${style[0]}m`,
|
|
74
|
+
close: `\u001B[${style[1]}m`
|
|
75
|
+
};
|
|
76
|
+
group[styleName] = styles$1[styleName];
|
|
77
|
+
codes.set(style[0], style[1]);
|
|
78
|
+
}
|
|
79
|
+
Object.defineProperty(styles$1, groupName, {
|
|
80
|
+
value: group,
|
|
81
|
+
enumerable: false
|
|
82
|
+
});
|
|
83
|
+
}
|
|
84
|
+
Object.defineProperty(styles$1, "codes", {
|
|
85
|
+
value: codes,
|
|
86
|
+
enumerable: false
|
|
87
|
+
});
|
|
88
|
+
styles$1.color.close = "\x1B[39m";
|
|
89
|
+
styles$1.bgColor.close = "\x1B[49m";
|
|
90
|
+
styles$1.color.ansi = wrapAnsi16();
|
|
91
|
+
styles$1.color.ansi256 = wrapAnsi256();
|
|
92
|
+
styles$1.color.ansi16m = wrapAnsi16m();
|
|
93
|
+
styles$1.bgColor.ansi = wrapAnsi16(ANSI_BACKGROUND_OFFSET);
|
|
94
|
+
styles$1.bgColor.ansi256 = wrapAnsi256(ANSI_BACKGROUND_OFFSET);
|
|
95
|
+
styles$1.bgColor.ansi16m = wrapAnsi16m(ANSI_BACKGROUND_OFFSET);
|
|
96
|
+
Object.defineProperties(styles$1, {
|
|
97
|
+
rgbToAnsi256: {
|
|
98
|
+
value(red, green, blue) {
|
|
99
|
+
if (red === green && green === blue) {
|
|
100
|
+
if (red < 8) return 16;
|
|
101
|
+
if (red > 248) return 231;
|
|
102
|
+
return Math.round((red - 8) / 247 * 24) + 232;
|
|
103
|
+
}
|
|
104
|
+
return 16 + 36 * Math.round(red / 255 * 5) + 6 * Math.round(green / 255 * 5) + Math.round(blue / 255 * 5);
|
|
105
|
+
},
|
|
106
|
+
enumerable: false
|
|
107
|
+
},
|
|
108
|
+
hexToRgb: {
|
|
109
|
+
value(hex) {
|
|
110
|
+
const matches = /[a-f\d]{6}|[a-f\d]{3}/i.exec(hex.toString(16));
|
|
111
|
+
if (!matches) return [
|
|
112
|
+
0,
|
|
113
|
+
0,
|
|
114
|
+
0
|
|
115
|
+
];
|
|
116
|
+
let [colorString] = matches;
|
|
117
|
+
if (colorString.length === 3) colorString = [...colorString].map((character) => character + character).join("");
|
|
118
|
+
const integer = Number.parseInt(colorString, 16);
|
|
119
|
+
return [
|
|
120
|
+
integer >> 16 & 255,
|
|
121
|
+
integer >> 8 & 255,
|
|
122
|
+
integer & 255
|
|
123
|
+
];
|
|
124
|
+
},
|
|
125
|
+
enumerable: false
|
|
126
|
+
},
|
|
127
|
+
hexToAnsi256: {
|
|
128
|
+
value: (hex) => styles$1.rgbToAnsi256(...styles$1.hexToRgb(hex)),
|
|
129
|
+
enumerable: false
|
|
130
|
+
},
|
|
131
|
+
ansi256ToAnsi: {
|
|
132
|
+
value(code) {
|
|
133
|
+
if (code < 8) return 30 + code;
|
|
134
|
+
if (code < 16) return 90 + (code - 8);
|
|
135
|
+
let red;
|
|
136
|
+
let green;
|
|
137
|
+
let blue;
|
|
138
|
+
if (code >= 232) {
|
|
139
|
+
red = ((code - 232) * 10 + 8) / 255;
|
|
140
|
+
green = red;
|
|
141
|
+
blue = red;
|
|
142
|
+
} else {
|
|
143
|
+
code -= 16;
|
|
144
|
+
const remainder = code % 36;
|
|
145
|
+
red = Math.floor(code / 36) / 5;
|
|
146
|
+
green = Math.floor(remainder / 6) / 5;
|
|
147
|
+
blue = remainder % 6 / 5;
|
|
148
|
+
}
|
|
149
|
+
const value = Math.max(red, green, blue) * 2;
|
|
150
|
+
if (value === 0) return 30;
|
|
151
|
+
let result = 30 + (Math.round(blue) << 2 | Math.round(green) << 1 | Math.round(red));
|
|
152
|
+
if (value === 2) result += 60;
|
|
153
|
+
return result;
|
|
154
|
+
},
|
|
155
|
+
enumerable: false
|
|
156
|
+
},
|
|
157
|
+
rgbToAnsi: {
|
|
158
|
+
value: (red, green, blue) => styles$1.ansi256ToAnsi(styles$1.rgbToAnsi256(red, green, blue)),
|
|
159
|
+
enumerable: false
|
|
160
|
+
},
|
|
161
|
+
hexToAnsi: {
|
|
162
|
+
value: (hex) => styles$1.ansi256ToAnsi(styles$1.hexToAnsi256(hex)),
|
|
163
|
+
enumerable: false
|
|
164
|
+
}
|
|
165
|
+
});
|
|
166
|
+
return styles$1;
|
|
167
|
+
}
|
|
168
|
+
const ansiStyles = assembleStyles();
|
|
169
|
+
//#endregion
|
|
170
|
+
//#region ../../node_modules/.pnpm/chalk@5.6.2/node_modules/chalk/source/vendor/supports-color/index.js
|
|
171
|
+
function hasFlag(flag, argv = globalThis.Deno ? globalThis.Deno.args : process.argv) {
|
|
172
|
+
const prefix = flag.startsWith("-") ? "" : flag.length === 1 ? "-" : "--";
|
|
173
|
+
const position = argv.indexOf(prefix + flag);
|
|
174
|
+
const terminatorPosition = argv.indexOf("--");
|
|
175
|
+
return position !== -1 && (terminatorPosition === -1 || position < terminatorPosition);
|
|
176
|
+
}
|
|
177
|
+
const { env: env$1 } = process;
|
|
178
|
+
let flagForceColor;
|
|
179
|
+
if (hasFlag("no-color") || hasFlag("no-colors") || hasFlag("color=false") || hasFlag("color=never")) flagForceColor = 0;
|
|
180
|
+
else if (hasFlag("color") || hasFlag("colors") || hasFlag("color=true") || hasFlag("color=always")) flagForceColor = 1;
|
|
181
|
+
function envForceColor() {
|
|
182
|
+
if ("FORCE_COLOR" in env$1) {
|
|
183
|
+
if (env$1.FORCE_COLOR === "true") return 1;
|
|
184
|
+
if (env$1.FORCE_COLOR === "false") return 0;
|
|
185
|
+
return env$1.FORCE_COLOR.length === 0 ? 1 : Math.min(Number.parseInt(env$1.FORCE_COLOR, 10), 3);
|
|
186
|
+
}
|
|
187
|
+
}
|
|
188
|
+
function translateLevel(level) {
|
|
189
|
+
if (level === 0) return false;
|
|
190
|
+
return {
|
|
191
|
+
level,
|
|
192
|
+
hasBasic: true,
|
|
193
|
+
has256: level >= 2,
|
|
194
|
+
has16m: level >= 3
|
|
195
|
+
};
|
|
196
|
+
}
|
|
197
|
+
function _supportsColor(haveStream, { streamIsTTY, sniffFlags = true } = {}) {
|
|
198
|
+
const noFlagForceColor = envForceColor();
|
|
199
|
+
if (noFlagForceColor !== void 0) flagForceColor = noFlagForceColor;
|
|
200
|
+
const forceColor = sniffFlags ? flagForceColor : noFlagForceColor;
|
|
201
|
+
if (forceColor === 0) return 0;
|
|
202
|
+
if (sniffFlags) {
|
|
203
|
+
if (hasFlag("color=16m") || hasFlag("color=full") || hasFlag("color=truecolor")) return 3;
|
|
204
|
+
if (hasFlag("color=256")) return 2;
|
|
205
|
+
}
|
|
206
|
+
if ("TF_BUILD" in env$1 && "AGENT_NAME" in env$1) return 1;
|
|
207
|
+
if (haveStream && !streamIsTTY && forceColor === void 0) return 0;
|
|
208
|
+
const min = forceColor || 0;
|
|
209
|
+
if (env$1.TERM === "dumb") return min;
|
|
210
|
+
if (process.platform === "win32") {
|
|
211
|
+
const osRelease = os.release().split(".");
|
|
212
|
+
if (Number(osRelease[0]) >= 10 && Number(osRelease[2]) >= 10586) return Number(osRelease[2]) >= 14931 ? 3 : 2;
|
|
213
|
+
return 1;
|
|
214
|
+
}
|
|
215
|
+
if ("CI" in env$1) {
|
|
216
|
+
if ([
|
|
217
|
+
"GITHUB_ACTIONS",
|
|
218
|
+
"GITEA_ACTIONS",
|
|
219
|
+
"CIRCLECI"
|
|
220
|
+
].some((key) => key in env$1)) return 3;
|
|
221
|
+
if ([
|
|
222
|
+
"TRAVIS",
|
|
223
|
+
"APPVEYOR",
|
|
224
|
+
"GITLAB_CI",
|
|
225
|
+
"BUILDKITE",
|
|
226
|
+
"DRONE"
|
|
227
|
+
].some((sign) => sign in env$1) || env$1.CI_NAME === "codeship") return 1;
|
|
228
|
+
return min;
|
|
229
|
+
}
|
|
230
|
+
if ("TEAMCITY_VERSION" in env$1) return /^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.test(env$1.TEAMCITY_VERSION) ? 1 : 0;
|
|
231
|
+
if (env$1.COLORTERM === "truecolor") return 3;
|
|
232
|
+
if (env$1.TERM === "xterm-kitty") return 3;
|
|
233
|
+
if (env$1.TERM === "xterm-ghostty") return 3;
|
|
234
|
+
if (env$1.TERM === "wezterm") return 3;
|
|
235
|
+
if ("TERM_PROGRAM" in env$1) {
|
|
236
|
+
const version = Number.parseInt((env$1.TERM_PROGRAM_VERSION || "").split(".")[0], 10);
|
|
237
|
+
switch (env$1.TERM_PROGRAM) {
|
|
238
|
+
case "iTerm.app": return version >= 3 ? 3 : 2;
|
|
239
|
+
case "Apple_Terminal": return 2;
|
|
240
|
+
}
|
|
241
|
+
}
|
|
242
|
+
if (/-256(color)?$/i.test(env$1.TERM)) return 2;
|
|
243
|
+
if (/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(env$1.TERM)) return 1;
|
|
244
|
+
if ("COLORTERM" in env$1) return 1;
|
|
245
|
+
return min;
|
|
246
|
+
}
|
|
247
|
+
function createSupportsColor(stream, options = {}) {
|
|
248
|
+
return translateLevel(_supportsColor(stream, {
|
|
249
|
+
streamIsTTY: stream && stream.isTTY,
|
|
250
|
+
...options
|
|
251
|
+
}));
|
|
252
|
+
}
|
|
253
|
+
const supportsColor = {
|
|
254
|
+
stdout: createSupportsColor({ isTTY: tty.isatty(1) }),
|
|
255
|
+
stderr: createSupportsColor({ isTTY: tty.isatty(2) })
|
|
256
|
+
};
|
|
257
|
+
//#endregion
|
|
258
|
+
//#region ../../node_modules/.pnpm/chalk@5.6.2/node_modules/chalk/source/utilities.js
|
|
259
|
+
function stringReplaceAll(string, substring, replacer) {
|
|
260
|
+
let index = string.indexOf(substring);
|
|
261
|
+
if (index === -1) return string;
|
|
262
|
+
const substringLength = substring.length;
|
|
263
|
+
let endIndex = 0;
|
|
264
|
+
let returnValue = "";
|
|
265
|
+
do {
|
|
266
|
+
returnValue += string.slice(endIndex, index) + substring + replacer;
|
|
267
|
+
endIndex = index + substringLength;
|
|
268
|
+
index = string.indexOf(substring, endIndex);
|
|
269
|
+
} while (index !== -1);
|
|
270
|
+
returnValue += string.slice(endIndex);
|
|
271
|
+
return returnValue;
|
|
272
|
+
}
|
|
273
|
+
function stringEncaseCRLFWithFirstIndex(string, prefix, postfix, index) {
|
|
274
|
+
let endIndex = 0;
|
|
275
|
+
let returnValue = "";
|
|
276
|
+
do {
|
|
277
|
+
const gotCR = string[index - 1] === "\r";
|
|
278
|
+
returnValue += string.slice(endIndex, gotCR ? index - 1 : index) + prefix + (gotCR ? "\r\n" : "\n") + postfix;
|
|
279
|
+
endIndex = index + 1;
|
|
280
|
+
index = string.indexOf("\n", endIndex);
|
|
281
|
+
} while (index !== -1);
|
|
282
|
+
returnValue += string.slice(endIndex);
|
|
283
|
+
return returnValue;
|
|
284
|
+
}
|
|
285
|
+
//#endregion
|
|
286
|
+
//#region ../../node_modules/.pnpm/chalk@5.6.2/node_modules/chalk/source/index.js
|
|
287
|
+
const { stdout: stdoutColor, stderr: stderrColor } = supportsColor;
|
|
288
|
+
const GENERATOR = Symbol("GENERATOR");
|
|
289
|
+
const STYLER = Symbol("STYLER");
|
|
290
|
+
const IS_EMPTY = Symbol("IS_EMPTY");
|
|
291
|
+
const levelMapping = [
|
|
292
|
+
"ansi",
|
|
293
|
+
"ansi",
|
|
294
|
+
"ansi256",
|
|
295
|
+
"ansi16m"
|
|
296
|
+
];
|
|
297
|
+
const styles = Object.create(null);
|
|
298
|
+
const applyOptions = (object, options = {}) => {
|
|
299
|
+
if (options.level && !(Number.isInteger(options.level) && options.level >= 0 && options.level <= 3)) throw new Error("The `level` option should be an integer from 0 to 3");
|
|
300
|
+
const colorLevel = stdoutColor ? stdoutColor.level : 0;
|
|
301
|
+
object.level = options.level === void 0 ? colorLevel : options.level;
|
|
302
|
+
};
|
|
303
|
+
const chalkFactory = (options) => {
|
|
304
|
+
const chalk = (...strings) => strings.join(" ");
|
|
305
|
+
applyOptions(chalk, options);
|
|
306
|
+
Object.setPrototypeOf(chalk, createChalk.prototype);
|
|
307
|
+
return chalk;
|
|
308
|
+
};
|
|
309
|
+
function createChalk(options) {
|
|
310
|
+
return chalkFactory(options);
|
|
311
|
+
}
|
|
312
|
+
Object.setPrototypeOf(createChalk.prototype, Function.prototype);
|
|
313
|
+
for (const [styleName, style] of Object.entries(ansiStyles)) styles[styleName] = { get() {
|
|
314
|
+
const builder = createBuilder(this, createStyler(style.open, style.close, this[STYLER]), this[IS_EMPTY]);
|
|
315
|
+
Object.defineProperty(this, styleName, { value: builder });
|
|
316
|
+
return builder;
|
|
317
|
+
} };
|
|
318
|
+
styles.visible = { get() {
|
|
319
|
+
const builder = createBuilder(this, this[STYLER], true);
|
|
320
|
+
Object.defineProperty(this, "visible", { value: builder });
|
|
321
|
+
return builder;
|
|
322
|
+
} };
|
|
323
|
+
const getModelAnsi = (model, level, type, ...arguments_) => {
|
|
324
|
+
if (model === "rgb") {
|
|
325
|
+
if (level === "ansi16m") return ansiStyles[type].ansi16m(...arguments_);
|
|
326
|
+
if (level === "ansi256") return ansiStyles[type].ansi256(ansiStyles.rgbToAnsi256(...arguments_));
|
|
327
|
+
return ansiStyles[type].ansi(ansiStyles.rgbToAnsi(...arguments_));
|
|
328
|
+
}
|
|
329
|
+
if (model === "hex") return getModelAnsi("rgb", level, type, ...ansiStyles.hexToRgb(...arguments_));
|
|
330
|
+
return ansiStyles[type][model](...arguments_);
|
|
331
|
+
};
|
|
332
|
+
for (const model of [
|
|
333
|
+
"rgb",
|
|
334
|
+
"hex",
|
|
335
|
+
"ansi256"
|
|
336
|
+
]) {
|
|
337
|
+
styles[model] = { get() {
|
|
338
|
+
const { level } = this;
|
|
339
|
+
return function(...arguments_) {
|
|
340
|
+
const styler = createStyler(getModelAnsi(model, levelMapping[level], "color", ...arguments_), ansiStyles.color.close, this[STYLER]);
|
|
341
|
+
return createBuilder(this, styler, this[IS_EMPTY]);
|
|
342
|
+
};
|
|
343
|
+
} };
|
|
344
|
+
const bgModel = "bg" + model[0].toUpperCase() + model.slice(1);
|
|
345
|
+
styles[bgModel] = { get() {
|
|
346
|
+
const { level } = this;
|
|
347
|
+
return function(...arguments_) {
|
|
348
|
+
const styler = createStyler(getModelAnsi(model, levelMapping[level], "bgColor", ...arguments_), ansiStyles.bgColor.close, this[STYLER]);
|
|
349
|
+
return createBuilder(this, styler, this[IS_EMPTY]);
|
|
350
|
+
};
|
|
351
|
+
} };
|
|
352
|
+
}
|
|
353
|
+
const proto = Object.defineProperties(() => {}, {
|
|
354
|
+
...styles,
|
|
355
|
+
level: {
|
|
356
|
+
enumerable: true,
|
|
357
|
+
get() {
|
|
358
|
+
return this[GENERATOR].level;
|
|
359
|
+
},
|
|
360
|
+
set(level) {
|
|
361
|
+
this[GENERATOR].level = level;
|
|
362
|
+
}
|
|
363
|
+
}
|
|
364
|
+
});
|
|
365
|
+
const createStyler = (open, close, parent) => {
|
|
366
|
+
let openAll;
|
|
367
|
+
let closeAll;
|
|
368
|
+
if (parent === void 0) {
|
|
369
|
+
openAll = open;
|
|
370
|
+
closeAll = close;
|
|
371
|
+
} else {
|
|
372
|
+
openAll = parent.openAll + open;
|
|
373
|
+
closeAll = close + parent.closeAll;
|
|
374
|
+
}
|
|
375
|
+
return {
|
|
376
|
+
open,
|
|
377
|
+
close,
|
|
378
|
+
openAll,
|
|
379
|
+
closeAll,
|
|
380
|
+
parent
|
|
381
|
+
};
|
|
382
|
+
};
|
|
383
|
+
const createBuilder = (self, _styler, _isEmpty) => {
|
|
384
|
+
const builder = (...arguments_) => applyStyle(builder, arguments_.length === 1 ? "" + arguments_[0] : arguments_.join(" "));
|
|
385
|
+
Object.setPrototypeOf(builder, proto);
|
|
386
|
+
builder[GENERATOR] = self;
|
|
387
|
+
builder[STYLER] = _styler;
|
|
388
|
+
builder[IS_EMPTY] = _isEmpty;
|
|
389
|
+
return builder;
|
|
390
|
+
};
|
|
391
|
+
const applyStyle = (self, string) => {
|
|
392
|
+
if (self.level <= 0 || !string) return self[IS_EMPTY] ? "" : string;
|
|
393
|
+
let styler = self[STYLER];
|
|
394
|
+
if (styler === void 0) return string;
|
|
395
|
+
const { openAll, closeAll } = styler;
|
|
396
|
+
if (string.includes("\x1B")) while (styler !== void 0) {
|
|
397
|
+
string = stringReplaceAll(string, styler.close, styler.open);
|
|
398
|
+
styler = styler.parent;
|
|
399
|
+
}
|
|
400
|
+
const lfIndex = string.indexOf("\n");
|
|
401
|
+
if (lfIndex !== -1) string = stringEncaseCRLFWithFirstIndex(string, closeAll, openAll, lfIndex);
|
|
402
|
+
return openAll + string + closeAll;
|
|
403
|
+
};
|
|
404
|
+
Object.defineProperties(createChalk.prototype, styles);
|
|
405
|
+
const chalk = createChalk();
|
|
406
|
+
createChalk({ level: stderrColor ? stderrColor.level : 0 });
|
|
407
|
+
//#endregion
|
|
408
|
+
//#region ../../node_modules/.pnpm/ansi-regex@6.2.2/node_modules/ansi-regex/index.js
|
|
409
|
+
function ansiRegex({ onlyFirst = false } = {}) {
|
|
410
|
+
return new RegExp(`(?:\\u001B\\][\\s\\S]*?(?:\\u0007|\\u001B\\u005C|\\u009C))|[\\u001B\\u009B][[\\]()#;?]*(?:\\d{1,4}(?:[;:]\\d{0,4})*)?[\\dA-PR-TZcf-nq-uy=><~]`, onlyFirst ? void 0 : "g");
|
|
411
|
+
}
|
|
412
|
+
//#endregion
|
|
413
|
+
//#region ../../node_modules/.pnpm/strip-ansi@7.1.2/node_modules/strip-ansi/index.js
|
|
414
|
+
const regex = ansiRegex();
|
|
415
|
+
function stripAnsi(string) {
|
|
416
|
+
if (typeof string !== "string") throw new TypeError(`Expected a \`string\`, got \`${typeof string}\``);
|
|
417
|
+
return string.replace(regex, "");
|
|
418
|
+
}
|
|
419
|
+
//#endregion
|
|
420
|
+
//#region ../../node_modules/.pnpm/get-east-asian-width@1.4.0/node_modules/get-east-asian-width/lookup.js
|
|
421
|
+
function isAmbiguous(x) {
|
|
422
|
+
return x === 161 || x === 164 || x === 167 || x === 168 || x === 170 || x === 173 || x === 174 || x >= 176 && x <= 180 || x >= 182 && x <= 186 || x >= 188 && x <= 191 || x === 198 || x === 208 || x === 215 || x === 216 || x >= 222 && x <= 225 || x === 230 || x >= 232 && x <= 234 || x === 236 || x === 237 || x === 240 || x === 242 || x === 243 || x >= 247 && x <= 250 || x === 252 || x === 254 || x === 257 || x === 273 || x === 275 || x === 283 || x === 294 || x === 295 || x === 299 || x >= 305 && x <= 307 || x === 312 || x >= 319 && x <= 322 || x === 324 || x >= 328 && x <= 331 || x === 333 || x === 338 || x === 339 || x === 358 || x === 359 || x === 363 || x === 462 || x === 464 || x === 466 || x === 468 || x === 470 || x === 472 || x === 474 || x === 476 || x === 593 || x === 609 || x === 708 || x === 711 || x >= 713 && x <= 715 || x === 717 || x === 720 || x >= 728 && x <= 731 || x === 733 || x === 735 || x >= 768 && x <= 879 || x >= 913 && x <= 929 || x >= 931 && x <= 937 || x >= 945 && x <= 961 || x >= 963 && x <= 969 || x === 1025 || x >= 1040 && x <= 1103 || x === 1105 || x === 8208 || x >= 8211 && x <= 8214 || x === 8216 || x === 8217 || x === 8220 || x === 8221 || x >= 8224 && x <= 8226 || x >= 8228 && x <= 8231 || x === 8240 || x === 8242 || x === 8243 || x === 8245 || x === 8251 || x === 8254 || x === 8308 || x === 8319 || x >= 8321 && x <= 8324 || x === 8364 || x === 8451 || x === 8453 || x === 8457 || x === 8467 || x === 8470 || x === 8481 || x === 8482 || x === 8486 || x === 8491 || x === 8531 || x === 8532 || x >= 8539 && x <= 8542 || x >= 8544 && x <= 8555 || x >= 8560 && x <= 8569 || x === 8585 || x >= 8592 && x <= 8601 || x === 8632 || x === 8633 || x === 8658 || x === 8660 || x === 8679 || x === 8704 || x === 8706 || x === 8707 || x === 8711 || x === 8712 || x === 8715 || x === 8719 || x === 8721 || x === 8725 || x === 8730 || x >= 8733 && x <= 8736 || x === 8739 || x === 8741 || x >= 8743 && x <= 8748 || x === 8750 || x >= 8756 && x <= 8759 || x === 8764 || x === 8765 || x === 8776 || x === 8780 || x === 8786 || x === 8800 || x === 8801 || x >= 8804 && x <= 8807 || x === 8810 || x === 8811 || x === 8814 || x === 8815 || x === 8834 || x === 8835 || x === 8838 || x === 8839 || x === 8853 || x === 8857 || x === 8869 || x === 8895 || x === 8978 || x >= 9312 && x <= 9449 || x >= 9451 && x <= 9547 || x >= 9552 && x <= 9587 || x >= 9600 && x <= 9615 || x >= 9618 && x <= 9621 || x === 9632 || x === 9633 || x >= 9635 && x <= 9641 || x === 9650 || x === 9651 || x === 9654 || x === 9655 || x === 9660 || x === 9661 || x === 9664 || x === 9665 || x >= 9670 && x <= 9672 || x === 9675 || x >= 9678 && x <= 9681 || x >= 9698 && x <= 9701 || x === 9711 || x === 9733 || x === 9734 || x === 9737 || x === 9742 || x === 9743 || x === 9756 || x === 9758 || x === 9792 || x === 9794 || x === 9824 || x === 9825 || x >= 9827 && x <= 9829 || x >= 9831 && x <= 9834 || x === 9836 || x === 9837 || x === 9839 || x === 9886 || x === 9887 || x === 9919 || x >= 9926 && x <= 9933 || x >= 9935 && x <= 9939 || x >= 9941 && x <= 9953 || x === 9955 || x === 9960 || x === 9961 || x >= 9963 && x <= 9969 || x === 9972 || x >= 9974 && x <= 9977 || x === 9979 || x === 9980 || x === 9982 || x === 9983 || x === 10045 || x >= 10102 && x <= 10111 || x >= 11094 && x <= 11097 || x >= 12872 && x <= 12879 || x >= 57344 && x <= 63743 || x >= 65024 && x <= 65039 || x === 65533 || x >= 127232 && x <= 127242 || x >= 127248 && x <= 127277 || x >= 127280 && x <= 127337 || x >= 127344 && x <= 127373 || x === 127375 || x === 127376 || x >= 127387 && x <= 127404 || x >= 917760 && x <= 917999 || x >= 983040 && x <= 1048573 || x >= 1048576 && x <= 1114109;
|
|
423
|
+
}
|
|
424
|
+
function isFullWidth(x) {
|
|
425
|
+
return x === 12288 || x >= 65281 && x <= 65376 || x >= 65504 && x <= 65510;
|
|
426
|
+
}
|
|
427
|
+
function isWide(x) {
|
|
428
|
+
return x >= 4352 && x <= 4447 || x === 8986 || x === 8987 || x === 9001 || x === 9002 || x >= 9193 && x <= 9196 || x === 9200 || x === 9203 || x === 9725 || x === 9726 || x === 9748 || x === 9749 || x >= 9776 && x <= 9783 || x >= 9800 && x <= 9811 || x === 9855 || x >= 9866 && x <= 9871 || x === 9875 || x === 9889 || x === 9898 || x === 9899 || x === 9917 || x === 9918 || x === 9924 || x === 9925 || x === 9934 || x === 9940 || x === 9962 || x === 9970 || x === 9971 || x === 9973 || x === 9978 || x === 9981 || x === 9989 || x === 9994 || x === 9995 || x === 10024 || x === 10060 || x === 10062 || x >= 10067 && x <= 10069 || x === 10071 || x >= 10133 && x <= 10135 || x === 10160 || x === 10175 || x === 11035 || x === 11036 || x === 11088 || x === 11093 || x >= 11904 && x <= 11929 || x >= 11931 && x <= 12019 || x >= 12032 && x <= 12245 || x >= 12272 && x <= 12287 || x >= 12289 && x <= 12350 || x >= 12353 && x <= 12438 || x >= 12441 && x <= 12543 || x >= 12549 && x <= 12591 || x >= 12593 && x <= 12686 || x >= 12688 && x <= 12773 || x >= 12783 && x <= 12830 || x >= 12832 && x <= 12871 || x >= 12880 && x <= 42124 || x >= 42128 && x <= 42182 || x >= 43360 && x <= 43388 || x >= 44032 && x <= 55203 || x >= 63744 && x <= 64255 || x >= 65040 && x <= 65049 || x >= 65072 && x <= 65106 || x >= 65108 && x <= 65126 || x >= 65128 && x <= 65131 || x >= 94176 && x <= 94180 || x >= 94192 && x <= 94198 || x >= 94208 && x <= 101589 || x >= 101631 && x <= 101662 || x >= 101760 && x <= 101874 || x >= 110576 && x <= 110579 || x >= 110581 && x <= 110587 || x === 110589 || x === 110590 || x >= 110592 && x <= 110882 || x === 110898 || x >= 110928 && x <= 110930 || x === 110933 || x >= 110948 && x <= 110951 || x >= 110960 && x <= 111355 || x >= 119552 && x <= 119638 || x >= 119648 && x <= 119670 || x === 126980 || x === 127183 || x === 127374 || x >= 127377 && x <= 127386 || x >= 127488 && x <= 127490 || x >= 127504 && x <= 127547 || x >= 127552 && x <= 127560 || x === 127568 || x === 127569 || x >= 127584 && x <= 127589 || x >= 127744 && x <= 127776 || x >= 127789 && x <= 127797 || x >= 127799 && x <= 127868 || x >= 127870 && x <= 127891 || x >= 127904 && x <= 127946 || x >= 127951 && x <= 127955 || x >= 127968 && x <= 127984 || x === 127988 || x >= 127992 && x <= 128062 || x === 128064 || x >= 128066 && x <= 128252 || x >= 128255 && x <= 128317 || x >= 128331 && x <= 128334 || x >= 128336 && x <= 128359 || x === 128378 || x === 128405 || x === 128406 || x === 128420 || x >= 128507 && x <= 128591 || x >= 128640 && x <= 128709 || x === 128716 || x >= 128720 && x <= 128722 || x >= 128725 && x <= 128728 || x >= 128732 && x <= 128735 || x === 128747 || x === 128748 || x >= 128756 && x <= 128764 || x >= 128992 && x <= 129003 || x === 129008 || x >= 129292 && x <= 129338 || x >= 129340 && x <= 129349 || x >= 129351 && x <= 129535 || x >= 129648 && x <= 129660 || x >= 129664 && x <= 129674 || x >= 129678 && x <= 129734 || x === 129736 || x >= 129741 && x <= 129756 || x >= 129759 && x <= 129770 || x >= 129775 && x <= 129784 || x >= 131072 && x <= 196605 || x >= 196608 && x <= 262141;
|
|
429
|
+
}
|
|
430
|
+
//#endregion
|
|
431
|
+
//#region ../../node_modules/.pnpm/get-east-asian-width@1.4.0/node_modules/get-east-asian-width/index.js
|
|
432
|
+
function validate(codePoint) {
|
|
433
|
+
if (!Number.isSafeInteger(codePoint)) throw new TypeError(`Expected a code point, got \`${typeof codePoint}\`.`);
|
|
434
|
+
}
|
|
435
|
+
function eastAsianWidth(codePoint, { ambiguousAsWide = false } = {}) {
|
|
436
|
+
validate(codePoint);
|
|
437
|
+
if (isFullWidth(codePoint) || isWide(codePoint) || ambiguousAsWide && isAmbiguous(codePoint)) return 2;
|
|
438
|
+
return 1;
|
|
439
|
+
}
|
|
440
|
+
//#endregion
|
|
441
|
+
export { chalk as a, stripAnsi as i, isFullWidth as n, isWide as r, eastAsianWidth as t };
|
|
442
|
+
|
|
443
|
+
//# sourceMappingURL=get-east-asian-width-Bv2TD3Xj.js.map
|
|
444
|
+
//# debugId=db817079-8f8f-50ee-bae1-5d0182c74255
|
|
@@ -1,8 +1,7 @@
|
|
|
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 { $n as
|
|
4
|
-
import {
|
|
5
|
-
import * as Sentry from "@sentry/node";
|
|
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]="5915d35c-02a8-5e33-8c31-74d9ddd09127")}catch(e){}}();
|
|
3
|
+
import { $n as CANONICAL_DISCORD_URL, An as gen, Cn as error, Ft as formatErrorChain, It as formatReactDoctorError, Kt as highlighter, T as METRIC, Xt as isReactDoctorError, _ as VERSION, br as isErrnoException, er as CANONICAL_GITHUB_URL, t as recordCount, zn as runSync } from "./record-metric-u8youmM2.js";
|
|
4
|
+
import { a as isNpmCacheCorruptionError, i as formatNpmCacheCorruptionError, o as formatEnvironmentError, s as isEnvironmentError } from "./telemetry-runtime-B2rpGWMl.js";
|
|
6
5
|
//#region src/cli/utils/handle-error.ts
|
|
7
6
|
const OTLP_ENDPOINT_ENVIRONMENT_VARIABLE = "REACT_DOCTOR_OTLP_ENDPOINT";
|
|
8
7
|
const OTLP_AUTH_HEADER_ENVIRONMENT_VARIABLE = "REACT_DOCTOR_OTLP_AUTH_HEADER";
|
|
@@ -86,15 +85,20 @@ const handleError = (error, options = {}) => {
|
|
|
86
85
|
};
|
|
87
86
|
/**
|
|
88
87
|
* Renderer for expected, user-actionable failures — a bad `--diff` value,
|
|
89
|
-
* a base branch that isn't fetched,
|
|
90
|
-
* permission-denied. Prints just the (already
|
|
91
|
-
* "Something went wrong", prefilled issue,
|
|
92
|
-
* — because there is no bug to report.
|
|
88
|
+
* a base branch that isn't fetched, environment errors like disk-full or
|
|
89
|
+
* permission-denied, or npm cache corruption. Prints just the (already
|
|
90
|
+
* human-readable) message — no "Something went wrong", prefilled issue,
|
|
91
|
+
* Discord link, or Sentry reference — because there is no bug to report.
|
|
93
92
|
*/
|
|
94
93
|
const handleUserError = (error$1, options = {}) => {
|
|
95
|
-
|
|
96
|
-
if (
|
|
97
|
-
|
|
94
|
+
let message = formatErrorForReport(error$1);
|
|
95
|
+
if (isNpmCacheCorruptionError(error$1)) {
|
|
96
|
+
recordCount(METRIC.cliEnvironmentError, 1, { code: "NPX_CACHE_CORRUPTION" });
|
|
97
|
+
message = formatNpmCacheCorruptionError(error$1);
|
|
98
|
+
} else if (isEnvironmentError(error$1)) {
|
|
99
|
+
recordCount(METRIC.cliEnvironmentError, 1, { code: (isErrnoException(error$1) ? error$1.code : void 0) ?? "unknown" });
|
|
100
|
+
message = formatEnvironmentError(error$1);
|
|
101
|
+
}
|
|
98
102
|
runSync(gen(function* () {
|
|
99
103
|
yield* error("");
|
|
100
104
|
yield* error(highlighter.error(message));
|
|
@@ -104,61 +108,7 @@ const handleUserError = (error$1, options = {}) => {
|
|
|
104
108
|
process.exitCode = 1;
|
|
105
109
|
};
|
|
106
110
|
//#endregion
|
|
107
|
-
|
|
108
|
-
/**
|
|
109
|
-
* Sends an error to Sentry — enriched with a fresh snapshot of the current run
|
|
110
|
-
* (version, platform, CI/agent, invocation, scanned project) and, when a run
|
|
111
|
-
* transaction is in flight, linked to its trace via the scope's propagation
|
|
112
|
-
* context so the crash and its transaction share a `trace_id` — then waits for
|
|
113
|
-
* delivery before the caller exits. The CLI tears down synchronously after
|
|
114
|
-
* rendering an error, so the awaited `flush` is what actually gets the event
|
|
115
|
-
* (and any in-flight transaction) off the machine.
|
|
116
|
-
*
|
|
117
|
-
* Returns the Sentry event id so the caller can surface it as a reference the
|
|
118
|
-
* user can quote when reporting the bug; returns `undefined` when Sentry was
|
|
119
|
-
* never initialized (`--no-score`, tests, or a missing DSN) or delivery failed.
|
|
120
|
-
* Swallows any transport failure so telemetry can never mask the user's
|
|
121
|
-
* original error.
|
|
122
|
-
*/
|
|
123
|
-
const reportErrorToSentry = async (error) => {
|
|
124
|
-
if (!Sentry.isInitialized()) return void 0;
|
|
125
|
-
if (isExpectedUserError(error)) return void 0;
|
|
126
|
-
try {
|
|
127
|
-
const { tags, contexts } = buildSentryScope();
|
|
128
|
-
let reason = "unknown";
|
|
129
|
-
if (isReactDoctorError(error)) reason = error.reason._tag;
|
|
130
|
-
else if (error instanceof Error) reason = error.name;
|
|
131
|
-
recordCount(METRIC.cliError, 1, {
|
|
132
|
-
command: typeof tags.command === "string" ? tags.command : void 0,
|
|
133
|
-
reason
|
|
134
|
-
});
|
|
135
|
-
const runTrace = getActiveRunTrace();
|
|
136
|
-
const eventId = Sentry.withScope((scope) => {
|
|
137
|
-
for (const [name, context] of Object.entries(contexts)) scope.setContext(name, context);
|
|
138
|
-
scope.setTags(tags);
|
|
139
|
-
if (runTrace) {
|
|
140
|
-
scope.setContext("axiom", {
|
|
141
|
-
traceId: runTrace.traceId,
|
|
142
|
-
runId: getRunId()
|
|
143
|
-
});
|
|
144
|
-
scope.setPropagationContext({
|
|
145
|
-
traceId: runTrace.traceId,
|
|
146
|
-
parentSpanId: runTrace.spanId,
|
|
147
|
-
sampled: runTrace.sampled,
|
|
148
|
-
sampleRand: Math.random()
|
|
149
|
-
});
|
|
150
|
-
}
|
|
151
|
-
recordRunTraceId(scope.getPropagationContext().traceId);
|
|
152
|
-
return Sentry.captureException(error);
|
|
153
|
-
});
|
|
154
|
-
await Promise.all([Sentry.flush(SENTRY_FLUSH_TIMEOUT_MS), shutdownTelemetry()]);
|
|
155
|
-
return eventId;
|
|
156
|
-
} catch {
|
|
157
|
-
return;
|
|
158
|
-
}
|
|
159
|
-
};
|
|
160
|
-
//#endregion
|
|
161
|
-
export { handleError as n, handleUserError as r, reportErrorToSentry as t };
|
|
111
|
+
export { handleUserError as n, handleError as t };
|
|
162
112
|
|
|
163
|
-
//# sourceMappingURL=
|
|
164
|
-
//# debugId=
|
|
113
|
+
//# sourceMappingURL=handle-error-BqaqFvmc.js.map
|
|
114
|
+
//# debugId=5915d35c-02a8-5e33-8c31-74d9ddd09127
|
package/dist/index.d.ts
CHANGED
|
@@ -10190,6 +10190,28 @@ interface ProjectInfo {
|
|
|
10190
10190
|
remotionVersion?: string | null;
|
|
10191
10191
|
remotionMajorVersion?: number | null;
|
|
10192
10192
|
hasI18nLibrary?: boolean;
|
|
10193
|
+
/**
|
|
10194
|
+
* `true` when the project (or a workspace package) declares the unified
|
|
10195
|
+
* `radix-ui` package or any `@radix-ui/react-*` primitive (icons excluded).
|
|
10196
|
+
* Drives the `radix-ui` capability, which gates the `radix-*` composition
|
|
10197
|
+
* rules for apps that assemble Radix parts directly.
|
|
10198
|
+
*/
|
|
10199
|
+
hasRadixUi?: boolean;
|
|
10200
|
+
/**
|
|
10201
|
+
* `true` when the project (or a workspace package) declares Base UI
|
|
10202
|
+
* (`@base-ui-components/react` or its 1.0 rename `@base-ui/react`).
|
|
10203
|
+
* Drives the `base-ui` capability, which gates the `base-ui-*`
|
|
10204
|
+
* composition rules.
|
|
10205
|
+
*/
|
|
10206
|
+
hasBaseUi?: boolean;
|
|
10207
|
+
/** `true` when `react-aria-components` is declared. Drives the `react-aria` capability. */
|
|
10208
|
+
hasReactAriaComponents?: boolean;
|
|
10209
|
+
/** `true` when `@tanstack/react-table` is declared. Drives the `tanstack-table` capability. */
|
|
10210
|
+
hasTanstackTable?: boolean;
|
|
10211
|
+
/** `true` when `@tanstack/react-virtual` is declared. Drives the `tanstack-virtual` capability. */
|
|
10212
|
+
hasTanstackVirtual?: boolean;
|
|
10213
|
+
/** `true` when `@tanstack/react-form` is declared. Drives the `tanstack-form` capability. */
|
|
10214
|
+
hasTanstackForm?: boolean;
|
|
10193
10215
|
tanstackQueryVersion?: string | null;
|
|
10194
10216
|
styledComponentsVersion?: string | null;
|
|
10195
10217
|
/** Whether the project or one of its workspaces declares Three.js, Fiber, or Drei. */
|
|
@@ -10289,6 +10311,16 @@ interface ProjectInfo {
|
|
|
10289
10311
|
* recommend them to projects pinned below that.
|
|
10290
10312
|
*/
|
|
10291
10313
|
reanimatedVersion: string | null;
|
|
10314
|
+
/**
|
|
10315
|
+
* `true` when the project (or an ancestor up to the repository boundary)
|
|
10316
|
+
* carries a shadcn `components.json` config. Drives the `shadcn`
|
|
10317
|
+
* capability, which gates the `shadcn-*` component-composition rules —
|
|
10318
|
+
* their part names (`DialogTitle`, `InputGroupInput`, `TabsList`, …) only
|
|
10319
|
+
* carry shadcn's contract in a project that actually generated those
|
|
10320
|
+
* files. Optional so existing `ProjectInfo` consumers remain
|
|
10321
|
+
* source-compatible.
|
|
10322
|
+
*/
|
|
10323
|
+
hasShadcnUi?: boolean;
|
|
10292
10324
|
/**
|
|
10293
10325
|
* `true` when the project's `tsconfig.json` `compilerOptions.target` or
|
|
10294
10326
|
* `compilerOptions.lib` indicates the output environment predates ES2023
|