react-doctor 0.6.1-dev.f07ee37 → 0.6.1

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]="eb5a21fd-fd10-5eb2-9ce3-11e38406dc1d")}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]="a28b8f59-6a38-551a-b87f-c7af571b4588")}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";
@@ -40273,31 +40273,32 @@ const createSecurityScanSession = (rootDirectory, options) => {
40273
40273
  }
40274
40274
  return status === true;
40275
40275
  };
40276
- const scanFileByRule = function* (file) {
40277
- for (const { entry, scan, committedFilesOnly } of enabledScanRules) {
40278
- for (const finding of scan(file)) {
40279
- if (committedFilesOnly && isFileGitIgnored(file)) continue;
40280
- const diagnostic = buildSecurityScanDiagnostic(finding, entry, file.relativePath);
40281
- const key = `${diagnostic.rule}:${diagnostic.filePath}:${diagnostic.line}:${diagnostic.column}:${diagnostic.message}`;
40282
- if (seen.has(key)) continue;
40283
- seen.add(key);
40284
- diagnostics.push(diagnostic);
40285
- }
40286
- yield;
40276
+ const scanFile = (file) => {
40277
+ for (const { entry, scan, committedFilesOnly } of enabledScanRules) for (const finding of scan(file)) {
40278
+ if (committedFilesOnly && isFileGitIgnored(file)) continue;
40279
+ const diagnostic = buildSecurityScanDiagnostic(finding, entry, file.relativePath);
40280
+ const key = `${diagnostic.rule}:${diagnostic.filePath}:${diagnostic.line}:${diagnostic.column}:${diagnostic.message}`;
40281
+ if (seen.has(key)) continue;
40282
+ seen.add(key);
40283
+ diagnostics.push(diagnostic);
40287
40284
  }
40288
40285
  };
40289
40286
  return {
40290
- scanFileByRule,
40287
+ scanFile,
40291
40288
  diagnostics
40292
40289
  };
40293
40290
  };
40294
40291
  const checkSecurityScanCooperative = async (rootDirectory, options = {}) => {
40295
40292
  const session = createSecurityScanSession(rootDirectory, options);
40296
40293
  if (session === null) return [];
40297
- let sliceStartedAt = performance.now();
40298
- for (const file of collectSecurityScanFiles(rootDirectory)) for (const _ruleStep of session.scanFileByRule(file)) if (performance.now() - sliceStartedAt >= 12) {
40299
- await yieldToEventLoop();
40300
- sliceStartedAt = performance.now();
40294
+ let filesSinceYield = 0;
40295
+ for (const file of collectSecurityScanFiles(rootDirectory)) {
40296
+ session.scanFile(file);
40297
+ filesSinceYield += 1;
40298
+ if (filesSinceYield >= 16) {
40299
+ filesSinceYield = 0;
40300
+ await yieldToEventLoop();
40301
+ }
40301
40302
  }
40302
40303
  return session.diagnostics;
40303
40304
  };
@@ -43278,23 +43279,21 @@ const runOxlint = async (options) => {
43278
43279
  else replayedDiagnostics.push(...cachedDiagnostics);
43279
43280
  }
43280
43281
  const cacheHitFileCount = candidateFiles.length - missFiles.length;
43281
- const fullResult = await runConfigOverFiles((overrides) => buildConfig({
43282
+ const cacheableResult = await runConfigOverFiles((overrides) => buildConfig({
43282
43283
  extendsPaths: [],
43284
+ ruleSelection: "cacheable",
43283
43285
  disableReactHooksJsPlugin: overrides.disableReactHooksJsPlugin
43284
- }), "oxlintrc.full.json", missFiles, options.onFileProgress && ((scannedFileCount) => options.onFileProgress?.(scannedFileCount, candidateFiles.length)));
43285
- const missFileSet = new Set(missFiles);
43286
+ }), "oxlintrc.cacheable.json", missFiles, void 0);
43286
43287
  const sidecarResult = await runConfigOverFiles(() => buildConfig({
43287
43288
  extendsPaths: [],
43288
43289
  ruleSelection: "sidecar"
43289
- }), "oxlintrc.sidecar.json", candidateFiles.filter((candidateFile) => !missFileSet.has(candidateFile)), options.onFileProgress && ((scannedFileCount) => options.onFileProgress?.(missFiles.length + scannedFileCount, candidateFiles.length)));
43290
- const freshCacheableDiagnostics = [];
43291
- for (const diagnostic of fullResult.diagnostics) if (!CROSS_FILE_RULE_IDS.has(diagnostic.rule)) freshCacheableDiagnostics.push(diagnostic);
43290
+ }), "oxlintrc.sidecar.json", candidateFiles, options.onFileProgress);
43292
43291
  onCacheStats?.(cacheHitFileCount, candidateFiles.length);
43293
43292
  const missFileByNormalizedPath = /* @__PURE__ */ new Map();
43294
43293
  for (const missFile of missFiles) missFileByNormalizedPath.set(missFile.replaceAll("\\", "/"), missFile);
43295
43294
  const freshDiagnosticsByFile = /* @__PURE__ */ new Map();
43296
43295
  let isAttributionSound = true;
43297
- for (const diagnostic of freshCacheableDiagnostics) {
43296
+ for (const diagnostic of cacheableResult.diagnostics) {
43298
43297
  const missFile = missFileByNormalizedPath.get(diagnostic.filePath);
43299
43298
  if (missFile === void 0) {
43300
43299
  isAttributionSound = false;
@@ -43304,7 +43303,7 @@ const runOxlint = async (options) => {
43304
43303
  fileDiagnostics.push(diagnostic);
43305
43304
  freshDiagnosticsByFile.set(missFile, fileDiagnostics);
43306
43305
  }
43307
- if (!fullResult.didDropReactHooksJsPlugin && !fullResult.hadPartialFailure && isAttributionSound) {
43306
+ if (!cacheableResult.didDropReactHooksJsPlugin && !cacheableResult.hadPartialFailure && isAttributionSound) {
43308
43307
  for (const missFile of missFiles) {
43309
43308
  const cacheKey = cacheKeyByFile.get(missFile);
43310
43309
  if (cacheKey !== void 0) cache.store(cacheKey, freshDiagnosticsByFile.get(missFile) ?? []);
@@ -43313,7 +43312,7 @@ const runOxlint = async (options) => {
43313
43312
  }
43314
43313
  return dedupeDiagnostics([
43315
43314
  ...replayedDiagnostics,
43316
- ...fullResult.diagnostics,
43315
+ ...cacheableResult.diagnostics,
43317
43316
  ...sidecarResult.diagnostics
43318
43317
  ]);
43319
43318
  }
@@ -45233,7 +45232,7 @@ const makeNoopConsole = () => ({
45233
45232
  });
45234
45233
  //#endregion
45235
45234
  //#region src/cli/utils/version.ts
45236
- const VERSION = "0.6.1-dev.f07ee37";
45235
+ const VERSION = "0.6.1";
45237
45236
  //#endregion
45238
45237
  //#region src/cli/utils/json-mode.ts
45239
45238
  let context = null;
@@ -45602,13 +45601,13 @@ const isDevVersion = (version) => version === "0.0.0" || version.includes("-");
45602
45601
  * uploads source-map artifacts under, so stack frames symbolicate. Honors the
45603
45602
  * standard `SENTRY_RELEASE` override.
45604
45603
  */
45605
- const resolveSentryRelease = () => process.env.SENTRY_RELEASE || `react-doctor@0.6.1-dev.f07ee37`;
45604
+ const resolveSentryRelease = () => process.env.SENTRY_RELEASE || `react-doctor@0.6.1`;
45606
45605
  /**
45607
45606
  * Deployment environment shown in Sentry's environment filter. Defaults to
45608
45607
  * `production` for tagged releases and `development` for dev/unbuilt versions,
45609
45608
  * overridable via the standard `SENTRY_ENVIRONMENT` env var.
45610
45609
  */
45611
- const resolveSentryEnvironment = () => process.env.SENTRY_ENVIRONMENT || (isDevVersion("0.6.1-dev.f07ee37") ? "development" : "production");
45610
+ const resolveSentryEnvironment = () => process.env.SENTRY_ENVIRONMENT || (isDevVersion("0.6.1") ? "development" : "production");
45612
45611
  /**
45613
45612
  * Performance-tracing sample rate in `[0, 1]`. Reads `SENTRY_TRACES_SAMPLE_RATE`
45614
45613
  * (set to `0` to disable tracing) and falls back to
@@ -63591,4 +63590,4 @@ Promise.resolve().then(() => assertNoRemovedFlags(process.argv)).then(() => prog
63591
63590
  export {};
63592
63591
 
63593
63592
  //# sourceMappingURL=cli.js.map
63594
- //# debugId=eb5a21fd-fd10-5eb2-9ce3-11e38406dc1d
63593
+ //# debugId=a28b8f59-6a38-551a-b87f-c7af571b4588
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]="be2212ec-649e-55f5-a360-fc2eea17659d")}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]="62cf4740-7938-5db0-8b80-dc81b60af36a")}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";
@@ -37046,31 +37046,32 @@ const createSecurityScanSession = (rootDirectory, options) => {
37046
37046
  }
37047
37047
  return status === true;
37048
37048
  };
37049
- const scanFileByRule = function* (file) {
37050
- for (const { entry, scan, committedFilesOnly } of enabledScanRules) {
37051
- for (const finding of scan(file)) {
37052
- if (committedFilesOnly && isFileGitIgnored(file)) continue;
37053
- const diagnostic = buildSecurityScanDiagnostic(finding, entry, file.relativePath);
37054
- const key = `${diagnostic.rule}:${diagnostic.filePath}:${diagnostic.line}:${diagnostic.column}:${diagnostic.message}`;
37055
- if (seen.has(key)) continue;
37056
- seen.add(key);
37057
- diagnostics.push(diagnostic);
37058
- }
37059
- yield;
37049
+ const scanFile = (file) => {
37050
+ for (const { entry, scan, committedFilesOnly } of enabledScanRules) for (const finding of scan(file)) {
37051
+ if (committedFilesOnly && isFileGitIgnored(file)) continue;
37052
+ const diagnostic = buildSecurityScanDiagnostic(finding, entry, file.relativePath);
37053
+ const key = `${diagnostic.rule}:${diagnostic.filePath}:${diagnostic.line}:${diagnostic.column}:${diagnostic.message}`;
37054
+ if (seen.has(key)) continue;
37055
+ seen.add(key);
37056
+ diagnostics.push(diagnostic);
37060
37057
  }
37061
37058
  };
37062
37059
  return {
37063
- scanFileByRule,
37060
+ scanFile,
37064
37061
  diagnostics
37065
37062
  };
37066
37063
  };
37067
37064
  const checkSecurityScanCooperative = async (rootDirectory, options = {}) => {
37068
37065
  const session = createSecurityScanSession(rootDirectory, options);
37069
37066
  if (session === null) return [];
37070
- let sliceStartedAt = performance.now();
37071
- for (const file of collectSecurityScanFiles(rootDirectory)) for (const _ruleStep of session.scanFileByRule(file)) if (performance.now() - sliceStartedAt >= 12) {
37072
- await yieldToEventLoop();
37073
- sliceStartedAt = performance.now();
37067
+ let filesSinceYield = 0;
37068
+ for (const file of collectSecurityScanFiles(rootDirectory)) {
37069
+ session.scanFile(file);
37070
+ filesSinceYield += 1;
37071
+ if (filesSinceYield >= 16) {
37072
+ filesSinceYield = 0;
37073
+ await yieldToEventLoop();
37074
+ }
37074
37075
  }
37075
37076
  return session.diagnostics;
37076
37077
  };
@@ -40035,23 +40036,21 @@ const runOxlint = async (options) => {
40035
40036
  else replayedDiagnostics.push(...cachedDiagnostics);
40036
40037
  }
40037
40038
  const cacheHitFileCount = candidateFiles.length - missFiles.length;
40038
- const fullResult = await runConfigOverFiles((overrides) => buildConfig({
40039
+ const cacheableResult = await runConfigOverFiles((overrides) => buildConfig({
40039
40040
  extendsPaths: [],
40041
+ ruleSelection: "cacheable",
40040
40042
  disableReactHooksJsPlugin: overrides.disableReactHooksJsPlugin
40041
- }), "oxlintrc.full.json", missFiles, options.onFileProgress && ((scannedFileCount) => options.onFileProgress?.(scannedFileCount, candidateFiles.length)));
40042
- const missFileSet = new Set(missFiles);
40043
+ }), "oxlintrc.cacheable.json", missFiles, void 0);
40043
40044
  const sidecarResult = await runConfigOverFiles(() => buildConfig({
40044
40045
  extendsPaths: [],
40045
40046
  ruleSelection: "sidecar"
40046
- }), "oxlintrc.sidecar.json", candidateFiles.filter((candidateFile) => !missFileSet.has(candidateFile)), options.onFileProgress && ((scannedFileCount) => options.onFileProgress?.(missFiles.length + scannedFileCount, candidateFiles.length)));
40047
- const freshCacheableDiagnostics = [];
40048
- for (const diagnostic of fullResult.diagnostics) if (!CROSS_FILE_RULE_IDS.has(diagnostic.rule)) freshCacheableDiagnostics.push(diagnostic);
40047
+ }), "oxlintrc.sidecar.json", candidateFiles, options.onFileProgress);
40049
40048
  onCacheStats?.(cacheHitFileCount, candidateFiles.length);
40050
40049
  const missFileByNormalizedPath = /* @__PURE__ */ new Map();
40051
40050
  for (const missFile of missFiles) missFileByNormalizedPath.set(missFile.replaceAll("\\", "/"), missFile);
40052
40051
  const freshDiagnosticsByFile = /* @__PURE__ */ new Map();
40053
40052
  let isAttributionSound = true;
40054
- for (const diagnostic of freshCacheableDiagnostics) {
40053
+ for (const diagnostic of cacheableResult.diagnostics) {
40055
40054
  const missFile = missFileByNormalizedPath.get(diagnostic.filePath);
40056
40055
  if (missFile === void 0) {
40057
40056
  isAttributionSound = false;
@@ -40061,7 +40060,7 @@ const runOxlint = async (options) => {
40061
40060
  fileDiagnostics.push(diagnostic);
40062
40061
  freshDiagnosticsByFile.set(missFile, fileDiagnostics);
40063
40062
  }
40064
- if (!fullResult.didDropReactHooksJsPlugin && !fullResult.hadPartialFailure && isAttributionSound) {
40063
+ if (!cacheableResult.didDropReactHooksJsPlugin && !cacheableResult.hadPartialFailure && isAttributionSound) {
40065
40064
  for (const missFile of missFiles) {
40066
40065
  const cacheKey = cacheKeyByFile.get(missFile);
40067
40066
  if (cacheKey !== void 0) cache.store(cacheKey, freshDiagnosticsByFile.get(missFile) ?? []);
@@ -40070,7 +40069,7 @@ const runOxlint = async (options) => {
40070
40069
  }
40071
40070
  return dedupeDiagnostics([
40072
40071
  ...replayedDiagnostics,
40073
- ...fullResult.diagnostics,
40072
+ ...cacheableResult.diagnostics,
40074
40073
  ...sidecarResult.diagnostics
40075
40074
  ]);
40076
40075
  }
@@ -41759,4 +41758,4 @@ const toJsonReport = (result, options) => buildJsonReport({
41759
41758
  export { AmbiguousProjectError, NoReactDependencyError, NotADirectoryError, PackageJsonNotFoundError, ProjectNotFoundError, ReactDoctorError, buildJsonReport, buildJsonReportError, clearCaches, defineConfig, diagnose, filterSourceFiles, getDiffInfo, isProjectDiscoveryError, isReactDoctorError, summarizeDiagnostics, toJsonReport };
41760
41759
 
41761
41760
  //# sourceMappingURL=index.js.map
41762
- //# debugId=be2212ec-649e-55f5-a360-fc2eea17659d
41761
+ //# debugId=62cf4740-7938-5db0-8b80-dc81b60af36a
package/dist/lsp.js CHANGED
@@ -37031,31 +37031,32 @@ const createSecurityScanSession = (rootDirectory, options) => {
37031
37031
  }
37032
37032
  return status === true;
37033
37033
  };
37034
- const scanFileByRule = function* (file) {
37035
- for (const { entry, scan, committedFilesOnly } of enabledScanRules) {
37036
- for (const finding of scan(file)) {
37037
- if (committedFilesOnly && isFileGitIgnored(file)) continue;
37038
- const diagnostic = buildSecurityScanDiagnostic(finding, entry, file.relativePath);
37039
- const key = `${diagnostic.rule}:${diagnostic.filePath}:${diagnostic.line}:${diagnostic.column}:${diagnostic.message}`;
37040
- if (seen.has(key)) continue;
37041
- seen.add(key);
37042
- diagnostics.push(diagnostic);
37043
- }
37044
- yield;
37034
+ const scanFile = (file) => {
37035
+ for (const { entry, scan, committedFilesOnly } of enabledScanRules) for (const finding of scan(file)) {
37036
+ if (committedFilesOnly && isFileGitIgnored(file)) continue;
37037
+ const diagnostic = buildSecurityScanDiagnostic(finding, entry, file.relativePath);
37038
+ const key = `${diagnostic.rule}:${diagnostic.filePath}:${diagnostic.line}:${diagnostic.column}:${diagnostic.message}`;
37039
+ if (seen.has(key)) continue;
37040
+ seen.add(key);
37041
+ diagnostics.push(diagnostic);
37045
37042
  }
37046
37043
  };
37047
37044
  return {
37048
- scanFileByRule,
37045
+ scanFile,
37049
37046
  diagnostics
37050
37047
  };
37051
37048
  };
37052
37049
  const checkSecurityScanCooperative = async (rootDirectory, options = {}) => {
37053
37050
  const session = createSecurityScanSession(rootDirectory, options);
37054
37051
  if (session === null) return [];
37055
- let sliceStartedAt = performance.now();
37056
- for (const file of collectSecurityScanFiles(rootDirectory)) for (const _ruleStep of session.scanFileByRule(file)) if (performance.now() - sliceStartedAt >= 12) {
37057
- await yieldToEventLoop();
37058
- sliceStartedAt = performance.now();
37052
+ let filesSinceYield = 0;
37053
+ for (const file of collectSecurityScanFiles(rootDirectory)) {
37054
+ session.scanFile(file);
37055
+ filesSinceYield += 1;
37056
+ if (filesSinceYield >= 16) {
37057
+ filesSinceYield = 0;
37058
+ await yieldToEventLoop();
37059
+ }
37059
37060
  }
37060
37061
  return session.diagnostics;
37061
37062
  };
@@ -40020,23 +40021,21 @@ const runOxlint = async (options) => {
40020
40021
  else replayedDiagnostics.push(...cachedDiagnostics);
40021
40022
  }
40022
40023
  const cacheHitFileCount = candidateFiles.length - missFiles.length;
40023
- const fullResult = await runConfigOverFiles((overrides) => buildConfig({
40024
+ const cacheableResult = await runConfigOverFiles((overrides) => buildConfig({
40024
40025
  extendsPaths: [],
40026
+ ruleSelection: "cacheable",
40025
40027
  disableReactHooksJsPlugin: overrides.disableReactHooksJsPlugin
40026
- }), "oxlintrc.full.json", missFiles, options.onFileProgress && ((scannedFileCount) => options.onFileProgress?.(scannedFileCount, candidateFiles.length)));
40027
- const missFileSet = new Set(missFiles);
40028
+ }), "oxlintrc.cacheable.json", missFiles, void 0);
40028
40029
  const sidecarResult = await runConfigOverFiles(() => buildConfig({
40029
40030
  extendsPaths: [],
40030
40031
  ruleSelection: "sidecar"
40031
- }), "oxlintrc.sidecar.json", candidateFiles.filter((candidateFile) => !missFileSet.has(candidateFile)), options.onFileProgress && ((scannedFileCount) => options.onFileProgress?.(missFiles.length + scannedFileCount, candidateFiles.length)));
40032
- const freshCacheableDiagnostics = [];
40033
- for (const diagnostic of fullResult.diagnostics) if (!CROSS_FILE_RULE_IDS.has(diagnostic.rule)) freshCacheableDiagnostics.push(diagnostic);
40032
+ }), "oxlintrc.sidecar.json", candidateFiles, options.onFileProgress);
40034
40033
  onCacheStats?.(cacheHitFileCount, candidateFiles.length);
40035
40034
  const missFileByNormalizedPath = /* @__PURE__ */ new Map();
40036
40035
  for (const missFile of missFiles) missFileByNormalizedPath.set(missFile.replaceAll("\\", "/"), missFile);
40037
40036
  const freshDiagnosticsByFile = /* @__PURE__ */ new Map();
40038
40037
  let isAttributionSound = true;
40039
- for (const diagnostic of freshCacheableDiagnostics) {
40038
+ for (const diagnostic of cacheableResult.diagnostics) {
40040
40039
  const missFile = missFileByNormalizedPath.get(diagnostic.filePath);
40041
40040
  if (missFile === void 0) {
40042
40041
  isAttributionSound = false;
@@ -40046,7 +40045,7 @@ const runOxlint = async (options) => {
40046
40045
  fileDiagnostics.push(diagnostic);
40047
40046
  freshDiagnosticsByFile.set(missFile, fileDiagnostics);
40048
40047
  }
40049
- if (!fullResult.didDropReactHooksJsPlugin && !fullResult.hadPartialFailure && isAttributionSound) {
40048
+ if (!cacheableResult.didDropReactHooksJsPlugin && !cacheableResult.hadPartialFailure && isAttributionSound) {
40050
40049
  for (const missFile of missFiles) {
40051
40050
  const cacheKey = cacheKeyByFile.get(missFile);
40052
40051
  if (cacheKey !== void 0) cache.store(cacheKey, freshDiagnosticsByFile.get(missFile) ?? []);
@@ -40055,7 +40054,7 @@ const runOxlint = async (options) => {
40055
40054
  }
40056
40055
  return dedupeDiagnostics([
40057
40056
  ...replayedDiagnostics,
40058
- ...fullResult.diagnostics,
40057
+ ...cacheableResult.diagnostics,
40059
40058
  ...sidecarResult.diagnostics
40060
40059
  ]);
40061
40060
  }
@@ -43483,5 +43482,5 @@ const startLanguageServer = () => {
43483
43482
  };
43484
43483
  //#endregion
43485
43484
  export { startLanguageServer };
43486
- !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]="f9461e00-d48c-5243-af4c-5196054ec1bc")}catch(e){}}();
43487
- //# debugId=f9461e00-d48c-5243-af4c-5196054ec1bc
43485
+ !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]="8f8aecec-ef3d-52f9-9f55-e02e7e4631ba")}catch(e){}}();
43486
+ //# debugId=8f8aecec-ef3d-52f9-9f55-e02e7e4631ba
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "react-doctor",
3
- "version": "0.6.1-dev.f07ee37",
3
+ "version": "0.6.1",
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.6.1",
69
- "oxlint-plugin-react-doctor": "0.6.1-dev.f07ee37"
69
+ "oxlint-plugin-react-doctor": "0.6.1"
70
70
  },
71
71
  "devDependencies": {
72
72
  "@types/babel__code-frame": "^7.27.0",