react-doctor 0.7.0-dev.574cba6 → 0.7.0-dev.6b21b70

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/dist/cli.js CHANGED
@@ -1,5 +1,5 @@
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]="a88b7ed4-e1d2-587a-a826-36b16313d032")}catch(e){}}();
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]="e920d892-391e-5c2c-85c7-689bd4fe9775")}catch(e){}}();
3
3
  import { createRequire } from "node:module";
4
4
  import * as NodeChildProcess from "node:child_process";
5
5
  import { execFile, execFileSync, spawn, spawnSync } from "node:child_process";
@@ -22475,6 +22475,16 @@ var JsonReportV1 = class extends Class("JsonReportV1")({
22475
22475
  * successful `baseline` run (`schemaVersion: 2`) and on non-compare scopes.
22476
22476
  */
22477
22477
  baselineDegraded: optional(Boolean$1),
22478
+ /**
22479
+ * Whether any scanned project resolved a React-compatible runtime (React
22480
+ * or Preact). `false` means every React-runtime rule family was gated off,
22481
+ * so an empty `diagnostics` array is vacuous — NOT the same as a clean
22482
+ * React scan. Consumers gating on the report (CI, verifiers, hooks) should
22483
+ * treat `reactDetected === false` as "wrong scan target", not "all clear".
22484
+ * Absent when nothing was scanned (`projects` is empty), on error reports,
22485
+ * and on reports from older CLI versions.
22486
+ */
22487
+ reactDetected: optional(Boolean$1),
22478
22488
  diff: NullOr(JsonReportDiffInfo),
22479
22489
  projects: ArraySchema(JsonReportProjectEntry),
22480
22490
  diagnostics: ArraySchema(Diagnostic),
@@ -22500,6 +22510,8 @@ var JsonReportV2 = class extends Class("JsonReportV2")({
22500
22510
  ok: Boolean$1,
22501
22511
  directory: String$1,
22502
22512
  mode: JsonReportMode,
22513
+ /** See `JsonReportV1.reactDetected`. */
22514
+ reactDetected: optional(Boolean$1),
22503
22515
  diff: NullOr(JsonReportDiffInfo),
22504
22516
  baseline: JsonReportBaseline,
22505
22517
  projects: ArraySchema(JsonReportProjectEntry),
@@ -40237,10 +40249,17 @@ function* collectSecurityScanFiles(rootDirectory) {
40237
40249
  }
40238
40250
  }
40239
40251
  }
40252
+ /**
40253
+ * Whether project discovery resolved a React-compatible runtime (React or
40254
+ * Preact, which ships the same hooks + JSX model). This is the same
40255
+ * predicate that grants the `react` capability, so `false` means every
40256
+ * React-runtime rule family was gated off for the project.
40257
+ */
40258
+ const hasReactRuntime = (project) => project.reactVersion !== null || project.preactVersion !== null;
40240
40259
  const buildCapabilities = (project) => {
40241
40260
  const capabilities = /* @__PURE__ */ new Set();
40242
40261
  capabilities.add(project.framework);
40243
- if (project.reactVersion !== null || project.preactVersion !== null) capabilities.add("react");
40262
+ if (hasReactRuntime(project)) capabilities.add("react");
40244
40263
  if (project.framework === "expo" || project.framework === "react-native" || project.hasReactNativeWorkspace) capabilities.add("react-native");
40245
40264
  if (project.expoVersion !== null) capabilities.add("expo");
40246
40265
  if (project.nextjsMajorVersion !== null && project.nextjsMajorVersion >= 15) capabilities.add("nextjs:15");
@@ -45355,6 +45374,7 @@ const buildJsonReport = (input) => {
45355
45374
  const worstScoredProject = findWorstScoredProject(projects);
45356
45375
  const summary = summarizeDiagnostics(flattenedDiagnostics, worstScoredProject?.score?.score ?? null, worstScoredProject?.score?.label ?? null);
45357
45376
  const shared = {
45377
+ ...input.scans.length > 0 ? { reactDetected: input.scans.some((scan) => hasReactRuntime(scan.result.project)) } : {},
45358
45378
  version: input.version,
45359
45379
  ok: true,
45360
45380
  directory: input.directory,
@@ -45818,6 +45838,7 @@ const METRIC = {
45818
45838
  scanScore: "scan.score",
45819
45839
  scanClean: "scan.clean",
45820
45840
  scanCheckSkipped: "scan.check_skipped",
45841
+ scanNoReactDetected: "scan.no_react_detected",
45821
45842
  baselineDegraded: "baseline.degraded",
45822
45843
  ruleFired: "rule.fired",
45823
45844
  ruleDisabled: "rule.disabled",
@@ -45887,7 +45908,7 @@ const makeNoopConsole = () => ({
45887
45908
  });
45888
45909
  //#endregion
45889
45910
  //#region src/cli/utils/version.ts
45890
- const VERSION = "0.7.0-dev.574cba6";
45911
+ const VERSION = "0.7.0-dev.6b21b70";
45891
45912
  //#endregion
45892
45913
  //#region src/cli/utils/json-mode.ts
45893
45914
  let context = null;
@@ -46256,13 +46277,13 @@ const isDevVersion = (version) => version === "0.0.0" || version.includes("-");
46256
46277
  * uploads source-map artifacts under, so stack frames symbolicate. Honors the
46257
46278
  * standard `SENTRY_RELEASE` override.
46258
46279
  */
46259
- const resolveSentryRelease = () => process.env.SENTRY_RELEASE || `react-doctor@0.7.0-dev.574cba6`;
46280
+ const resolveSentryRelease = () => process.env.SENTRY_RELEASE || `react-doctor@0.7.0-dev.6b21b70`;
46260
46281
  /**
46261
46282
  * Deployment environment shown in Sentry's environment filter. Defaults to
46262
46283
  * `production` for tagged releases and `development` for dev/unbuilt versions,
46263
46284
  * overridable via the standard `SENTRY_ENVIRONMENT` env var.
46264
46285
  */
46265
- const resolveSentryEnvironment = () => process.env.SENTRY_ENVIRONMENT || (isDevVersion("0.7.0-dev.574cba6") ? "development" : "production");
46286
+ const resolveSentryEnvironment = () => process.env.SENTRY_ENVIRONMENT || (isDevVersion("0.7.0-dev.6b21b70") ? "development" : "production");
46266
46287
  /**
46267
46288
  * Performance-tracing sample rate in `[0, 1]`. Reads `SENTRY_TRACES_SAMPLE_RATE`
46268
46289
  * (set to `0` to disable tracing) and falls back to
@@ -62975,6 +62996,11 @@ const finalizeScans = (input) => {
62975
62996
  const baselineComputed = input.completedScans.length > 0 && input.completedScans.every((scan) => scan.result.baselineDelta !== void 0);
62976
62997
  const baselineDegraded = input.baselineIntended && !baselineComputed;
62977
62998
  const mode = baselineDegraded ? "diff" : input.mode;
62999
+ const isReactDetected = input.completedScans.some((scan) => hasReactRuntime(scan.result.project));
63000
+ if (input.completedScans.length > 0 && !isReactDetected) {
63001
+ recordCount(METRIC.scanNoReactDetected, 1);
63002
+ cliLogger.warn(`No React project detected at ${input.resolvedDirectory} — React rules were gated off; this is not the same as a clean scan.`);
63003
+ }
62978
63004
  const jsonCompletedScans = filterCompletedScansByCategories(input.completedScans, input.categoryFilters);
62979
63005
  if (input.isJsonMode) {
62980
63006
  const baseline = baselineComputed && baselineDeltas.length > 0 ? {
@@ -64412,4 +64438,4 @@ Promise.resolve().then(() => assertNoRemovedFlags(process.argv)).then(() => prog
64412
64438
  export {};
64413
64439
 
64414
64440
  //# sourceMappingURL=cli.js.map
64415
- //# debugId=a88b7ed4-e1d2-587a-a826-36b16313d032
64441
+ //# debugId=e920d892-391e-5c2c-85c7-689bd4fe9775
package/dist/index.d.ts CHANGED
@@ -9644,6 +9644,17 @@ interface DiagnoseResult {
9644
9644
  /** See `InspectResult.skippedCheckReasons`. */
9645
9645
  skippedCheckReasons?: Record<string, string>;
9646
9646
  project: ProjectInfo;
9647
+ /**
9648
+ * Whether the scanned project resolved a React-compatible runtime (React
9649
+ * or Preact). `false` means every React-runtime rule family was gated
9650
+ * off, so an empty `diagnostics` array is vacuous — NOT the same as a
9651
+ * clean React scan. Consumers gating on the result should treat
9652
+ * `reactDetected === false` as "wrong scan target", not "all clear".
9653
+ * Mirrors `JsonReport.reactDetected`; same predicate as
9654
+ * `hasReactRuntime(result.project)`. Always set by `diagnose()`;
9655
+ * optional so hand-constructed results keep compiling.
9656
+ */
9657
+ reactDetected?: boolean;
9647
9658
  elapsedMilliseconds: number;
9648
9659
  }
9649
9660
  /**
@@ -9693,6 +9704,13 @@ interface DiagnoseProjectsResult {
9693
9704
  projects: ProjectResult[];
9694
9705
  diagnostics: Diagnostic[];
9695
9706
  score: ScoreResult | null;
9707
+ /**
9708
+ * Whether any successfully scanned project resolved a React-compatible
9709
+ * runtime (React or Preact). Absent when no project scanned successfully.
9710
+ * See `DiagnoseResult.reactDetected` for gating guidance; per-project
9711
+ * detail is on each `ProjectResultOk.reactDetected`.
9712
+ */
9713
+ reactDetected?: boolean;
9696
9714
  elapsedMilliseconds: number;
9697
9715
  } //#endregion
9698
9716
  //#region src/types/handle-error.d.ts
@@ -9888,6 +9906,17 @@ interface JsonReportV1$1 {
9888
9906
  ok: boolean;
9889
9907
  directory: string;
9890
9908
  mode: JsonReportMode;
9909
+ /**
9910
+ * Whether any scanned project resolved a React-compatible runtime (React
9911
+ * or Preact). `false` means every React-runtime rule family was gated off,
9912
+ * so an empty `diagnostics` array is vacuous — NOT the same as a clean
9913
+ * React scan. Consumers gating on the report (CI, verifiers, hooks) should
9914
+ * treat `reactDetected === false` as "wrong scan target", not "all clear"
9915
+ * (per project, `projects[].project.reactVersion` / `preactVersion` say
9916
+ * which roots were non-React). Absent when nothing was scanned (`projects`
9917
+ * is empty), on error reports, and on reports from older CLI versions.
9918
+ */
9919
+ reactDetected?: boolean;
9891
9920
  diff: JsonReportDiffInfo | null;
9892
9921
  projects: JsonReportProjectEntry[];
9893
9922
  /**
@@ -10172,6 +10201,16 @@ declare const summarizeDiagnostics: (diagnostics: Diagnostic[], worstScore?: num
10172
10201
  declare const defineConfig: (config: ReactDoctorConfig) => ReactDoctorConfig; //#endregion
10173
10202
  //#region src/utils/detect-ai-training-environment.d.ts
10174
10203
  //#endregion
10204
+ //#region src/utils/has-react-runtime.d.ts
10205
+ /**
10206
+ * Whether project discovery resolved a React-compatible runtime (React or
10207
+ * Preact, which ships the same hooks + JSX model). This is the same
10208
+ * predicate that grants the `react` capability, so `false` means every
10209
+ * React-runtime rule family was gated off for the project.
10210
+ */
10211
+ declare const hasReactRuntime: (project: ProjectInfo) => boolean; //#endregion
10212
+ //#region src/utils/is-errno-exception.d.ts
10213
+ //#endregion
10175
10214
  //#region ../api/dist/index.d.ts
10176
10215
  //#region src/diagnose.d.ts
10177
10216
  interface Diagnose {
@@ -10198,5 +10237,5 @@ interface ToJsonReportOptions {
10198
10237
  }
10199
10238
  declare const toJsonReport: (result: DiagnoseResult, options: ToJsonReportOptions) => JsonReport;
10200
10239
  //#endregion
10201
- export { AmbiguousProjectError, type DiagnoseOptions, type DiagnoseProjectsInput, type DiagnoseProjectsResult, type DiagnoseResult, type Diagnostic, type DiffInfo, type JsonReport, type JsonReportDiffInfo, type JsonReportError, type JsonReportMode, type JsonReportProjectEntry, type JsonReportSummary, NoReactDependencyError, NotADirectoryError, PackageJsonNotFoundError, type ProjectDefinition, type ProjectInfo, ProjectNotFoundError, type ProjectResult, type ProjectResultError, type ProjectResultOk, type ReactDoctorConfig, ReactDoctorError, type ScoreResult, buildJsonReport, buildJsonReportError, clearCaches, defineConfig, diagnose, filterSourceFiles, getDiffInfo, isProjectDiscoveryError, isReactDoctorError, summarizeDiagnostics, toJsonReport };
10240
+ export { AmbiguousProjectError, type DiagnoseOptions, type DiagnoseProjectsInput, type DiagnoseProjectsResult, type DiagnoseResult, type Diagnostic, type DiffInfo, type JsonReport, type JsonReportDiffInfo, type JsonReportError, type JsonReportMode, type JsonReportProjectEntry, type JsonReportSummary, NoReactDependencyError, NotADirectoryError, PackageJsonNotFoundError, type ProjectDefinition, type ProjectInfo, ProjectNotFoundError, type ProjectResult, type ProjectResultError, type ProjectResultOk, type ReactDoctorConfig, ReactDoctorError, type ScoreResult, buildJsonReport, buildJsonReportError, clearCaches, defineConfig, diagnose, filterSourceFiles, getDiffInfo, hasReactRuntime, isProjectDiscoveryError, isReactDoctorError, summarizeDiagnostics, toJsonReport };
10202
10241
  //# sourceMappingURL=index.d.ts.map
package/dist/index.js CHANGED
@@ -1,5 +1,5 @@
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]="5c52dece-7b5e-5102-9381-7d05fa45734f")}catch(e){}}();
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]="07deeb70-f47f-5572-9930-e743f970f84f")}catch(e){}}();
3
3
  import { r as __toESM$1, t as __commonJSMin$1 } from "./chunk-N93fKeF6.js";
4
4
  import { createRequire } from "node:module";
5
5
  import * as NFS from "node:fs";
@@ -19374,6 +19374,16 @@ var JsonReportV1 = class extends Class("JsonReportV1")({
19374
19374
  * successful `baseline` run (`schemaVersion: 2`) and on non-compare scopes.
19375
19375
  */
19376
19376
  baselineDegraded: optional(Boolean$1),
19377
+ /**
19378
+ * Whether any scanned project resolved a React-compatible runtime (React
19379
+ * or Preact). `false` means every React-runtime rule family was gated off,
19380
+ * so an empty `diagnostics` array is vacuous — NOT the same as a clean
19381
+ * React scan. Consumers gating on the report (CI, verifiers, hooks) should
19382
+ * treat `reactDetected === false` as "wrong scan target", not "all clear".
19383
+ * Absent when nothing was scanned (`projects` is empty), on error reports,
19384
+ * and on reports from older CLI versions.
19385
+ */
19386
+ reactDetected: optional(Boolean$1),
19377
19387
  diff: NullOr(JsonReportDiffInfo),
19378
19388
  projects: ArraySchema(JsonReportProjectEntry),
19379
19389
  diagnostics: ArraySchema(Diagnostic),
@@ -19399,6 +19409,8 @@ var JsonReportV2 = class extends Class("JsonReportV2")({
19399
19409
  ok: Boolean$1,
19400
19410
  directory: String$1,
19401
19411
  mode: JsonReportMode,
19412
+ /** See `JsonReportV1.reactDetected`. */
19413
+ reactDetected: optional(Boolean$1),
19402
19414
  diff: NullOr(JsonReportDiffInfo),
19403
19415
  baseline: JsonReportBaseline,
19404
19416
  projects: ArraySchema(JsonReportProjectEntry),
@@ -37010,10 +37022,17 @@ function* collectSecurityScanFiles(rootDirectory) {
37010
37022
  }
37011
37023
  }
37012
37024
  }
37025
+ /**
37026
+ * Whether project discovery resolved a React-compatible runtime (React or
37027
+ * Preact, which ships the same hooks + JSX model). This is the same
37028
+ * predicate that grants the `react` capability, so `false` means every
37029
+ * React-runtime rule family was gated off for the project.
37030
+ */
37031
+ const hasReactRuntime = (project) => project.reactVersion !== null || project.preactVersion !== null;
37013
37032
  const buildCapabilities = (project) => {
37014
37033
  const capabilities = /* @__PURE__ */ new Set();
37015
37034
  capabilities.add(project.framework);
37016
- if (project.reactVersion !== null || project.preactVersion !== null) capabilities.add("react");
37035
+ if (hasReactRuntime(project)) capabilities.add("react");
37017
37036
  if (project.framework === "expo" || project.framework === "react-native" || project.hasReactNativeWorkspace) capabilities.add("react-native");
37018
37037
  if (project.expoVersion !== null) capabilities.add("expo");
37019
37038
  if (project.nextjsMajorVersion !== null && project.nextjsMajorVersion >= 15) capabilities.add("nextjs:15");
@@ -42088,6 +42107,7 @@ const buildJsonReport = (input) => {
42088
42107
  const worstScoredProject = findWorstScoredProject(projects);
42089
42108
  const summary = summarizeDiagnostics(flattenedDiagnostics, worstScoredProject?.score?.score ?? null, worstScoredProject?.score?.label ?? null);
42090
42109
  const shared = {
42110
+ ...input.scans.length > 0 ? { reactDetected: input.scans.some((scan) => hasReactRuntime(scan.result.project)) } : {},
42091
42111
  version: input.version,
42092
42112
  ok: true,
42093
42113
  directory: input.directory,
@@ -42317,6 +42337,7 @@ const outputToDiagnoseResult = (output, elapsedMilliseconds) => {
42317
42337
  skippedChecks,
42318
42338
  ...Object.keys(skippedCheckReasons).length > 0 ? { skippedCheckReasons } : {},
42319
42339
  project: output.project,
42340
+ reactDetected: hasReactRuntime(output.project),
42320
42341
  elapsedMilliseconds
42321
42342
  };
42322
42343
  };
@@ -42372,10 +42393,12 @@ const diagnoseProjectBatch = async (input) => {
42372
42393
  const startTime = globalThis.performance.now();
42373
42394
  const { projects, concurrency, config: batchConfig, ...baseOptions } = input;
42374
42395
  const projectResults = await mapWithConcurrency(projects, concurrency ?? 4, (projectDefinition) => diagnoseProject(projectDefinition, baseOptions, batchConfig));
42396
+ const succeededProjects = projectResults.filter((projectResult) => projectResult.ok);
42375
42397
  return {
42376
42398
  projects: projectResults,
42377
- diagnostics: projectResults.flatMap((projectResult) => projectResult.ok ? projectResult.diagnostics : []),
42399
+ diagnostics: succeededProjects.flatMap((projectResult) => projectResult.diagnostics),
42378
42400
  score: findWorstScore(projectResults),
42401
+ ...succeededProjects.length > 0 ? { reactDetected: succeededProjects.some((projectResult) => projectResult.reactDetected) } : {},
42379
42402
  elapsedMilliseconds: globalThis.performance.now() - startTime
42380
42403
  };
42381
42404
  };
@@ -42410,7 +42433,7 @@ const toJsonReport = (result, options) => buildJsonReport({
42410
42433
  totalElapsedMilliseconds: result.elapsedMilliseconds
42411
42434
  });
42412
42435
  //#endregion
42413
- export { AmbiguousProjectError, NoReactDependencyError, NotADirectoryError, PackageJsonNotFoundError, ProjectNotFoundError, ReactDoctorError, buildJsonReport, buildJsonReportError, clearCaches, defineConfig, diagnose, filterSourceFiles, getDiffInfo, isProjectDiscoveryError, isReactDoctorError, summarizeDiagnostics, toJsonReport };
42436
+ export { AmbiguousProjectError, NoReactDependencyError, NotADirectoryError, PackageJsonNotFoundError, ProjectNotFoundError, ReactDoctorError, buildJsonReport, buildJsonReportError, clearCaches, defineConfig, diagnose, filterSourceFiles, getDiffInfo, hasReactRuntime, isProjectDiscoveryError, isReactDoctorError, summarizeDiagnostics, toJsonReport };
42414
42437
 
42415
42438
  //# sourceMappingURL=index.js.map
42416
- //# debugId=5c52dece-7b5e-5102-9381-7d05fa45734f
42439
+ //# debugId=07deeb70-f47f-5572-9930-e743f970f84f
package/dist/lsp.js CHANGED
@@ -19410,6 +19410,16 @@ var JsonReportV1 = class extends Class("JsonReportV1")({
19410
19410
  * successful `baseline` run (`schemaVersion: 2`) and on non-compare scopes.
19411
19411
  */
19412
19412
  baselineDegraded: optional(Boolean$1),
19413
+ /**
19414
+ * Whether any scanned project resolved a React-compatible runtime (React
19415
+ * or Preact). `false` means every React-runtime rule family was gated off,
19416
+ * so an empty `diagnostics` array is vacuous — NOT the same as a clean
19417
+ * React scan. Consumers gating on the report (CI, verifiers, hooks) should
19418
+ * treat `reactDetected === false` as "wrong scan target", not "all clear".
19419
+ * Absent when nothing was scanned (`projects` is empty), on error reports,
19420
+ * and on reports from older CLI versions.
19421
+ */
19422
+ reactDetected: optional(Boolean$1),
19413
19423
  diff: NullOr(JsonReportDiffInfo),
19414
19424
  projects: ArraySchema(JsonReportProjectEntry),
19415
19425
  diagnostics: ArraySchema(Diagnostic),
@@ -19435,6 +19445,8 @@ var JsonReportV2 = class extends Class("JsonReportV2")({
19435
19445
  ok: Boolean$1,
19436
19446
  directory: String$1,
19437
19447
  mode: JsonReportMode,
19448
+ /** See `JsonReportV1.reactDetected`. */
19449
+ reactDetected: optional(Boolean$1),
19438
19450
  diff: NullOr(JsonReportDiffInfo),
19439
19451
  baseline: JsonReportBaseline,
19440
19452
  projects: ArraySchema(JsonReportProjectEntry),
@@ -36995,10 +37007,17 @@ function* collectSecurityScanFiles(rootDirectory) {
36995
37007
  }
36996
37008
  }
36997
37009
  }
37010
+ /**
37011
+ * Whether project discovery resolved a React-compatible runtime (React or
37012
+ * Preact, which ships the same hooks + JSX model). This is the same
37013
+ * predicate that grants the `react` capability, so `false` means every
37014
+ * React-runtime rule family was gated off for the project.
37015
+ */
37016
+ const hasReactRuntime = (project) => project.reactVersion !== null || project.preactVersion !== null;
36998
37017
  const buildCapabilities = (project) => {
36999
37018
  const capabilities = /* @__PURE__ */ new Set();
37000
37019
  capabilities.add(project.framework);
37001
- if (project.reactVersion !== null || project.preactVersion !== null) capabilities.add("react");
37020
+ if (hasReactRuntime(project)) capabilities.add("react");
37002
37021
  if (project.framework === "expo" || project.framework === "react-native" || project.hasReactNativeWorkspace) capabilities.add("react-native");
37003
37022
  if (project.expoVersion !== null) capabilities.add("expo");
37004
37023
  if (project.nextjsMajorVersion !== null && project.nextjsMajorVersion >= 15) capabilities.add("nextjs:15");
@@ -43792,6 +43811,7 @@ const METRIC = {
43792
43811
  scanScore: "scan.score",
43793
43812
  scanClean: "scan.clean",
43794
43813
  scanCheckSkipped: "scan.check_skipped",
43814
+ scanNoReactDetected: "scan.no_react_detected",
43795
43815
  baselineDegraded: "baseline.degraded",
43796
43816
  ruleFired: "rule.fired",
43797
43817
  ruleDisabled: "rule.disabled",
@@ -44135,5 +44155,5 @@ const startLanguageServer = () => {
44135
44155
  };
44136
44156
  //#endregion
44137
44157
  export { startLanguageServer };
44138
- !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]="1b40bd68-7ad4-55e0-a6bd-91b6cdcd0ba8")}catch(e){}}();
44139
- //# debugId=1b40bd68-7ad4-55e0-a6bd-91b6cdcd0ba8
44158
+ !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]="1c7dd926-433e-5edb-a6d7-2bb0a9f6df24")}catch(e){}}();
44159
+ //# debugId=1c7dd926-433e-5edb-a6d7-2bb0a9f6df24
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "react-doctor",
3
- "version": "0.7.0-dev.574cba6",
3
+ "version": "0.7.0-dev.6b21b70",
4
4
  "description": "Your agent writes bad React. This catches it",
5
5
  "keywords": [
6
6
  "accessibility",
@@ -66,7 +66,7 @@
66
66
  "vscode-uri": "^3.1.0",
67
67
  "yaml": "^2.9.0",
68
68
  "deslop-js": "0.7.0",
69
- "oxlint-plugin-react-doctor": "0.7.0-dev.574cba6"
69
+ "oxlint-plugin-react-doctor": "0.7.0-dev.6b21b70"
70
70
  },
71
71
  "devDependencies": {
72
72
  "@types/babel__code-frame": "^7.27.0",