react-doctor 0.8.3-dev.3d7ea66 → 0.8.3-dev.416fdcc

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/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]="cf84418d-5713-5c93-95cf-6a6747b9f247")}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]="ef9143d9-5b2e-5eca-adb3-89fde61aafe8")}catch(e){}}();
3
3
  import { i as __toESM$1, r as __require, t as __commonJSMin$1 } from "./chunk-ChKA3wi6.js";
4
4
  import { createRequire } from "node:module";
5
5
  import reactDoctorPlugin, { 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_RULES, classifySecurityScanFile, collectCrossFileDependencyProbes, resetManifestCaches, shouldReadSecurityScanContent } from "oxlint-plugin-react-doctor";
@@ -61762,6 +61762,13 @@ const DIAGNOSTIC_CATEGORY_BUCKETS = [
61762
61762
  "Maintainability"
61763
61763
  ];
61764
61764
  const OCCURRENCE_MATCHED_CATEGORIES = new Set(["Accessibility"]);
61765
+ new Map(Object.entries({
61766
+ Security: "An attacker can read user data, act as your users, or run code you never shipped.",
61767
+ Bugs: "Real users hit crashes, wrong output, or state that silently corrupts.",
61768
+ Performance: "Users feel extra latency and wasted renders on every interaction.",
61769
+ Accessibility: "Users on screen readers, keyboards, or assistive tech get locked out.",
61770
+ Maintainability: "Every future change gets slower and riskier to make."
61771
+ }));
61765
61772
  const APP_ONLY_RULE_KEYS = new Set([
61766
61773
  "react-hooks-js/static-components",
61767
61774
  "react-doctor/no-render-prop-children",
@@ -62511,18 +62518,20 @@ const getReactCompilerFlagState = (expression, analysis) => {
62511
62518
  }
62512
62519
  return null;
62513
62520
  };
62514
- const getSelectedObjectProperty = (expression, propertyName, analysis) => {
62521
+ const getSelectedObjectProperty = (expression, propertyName, analysis, visitedExpressions = /* @__PURE__ */ new Set()) => {
62515
62522
  let resolvedExpression = expression;
62516
62523
  while (ts.isParenthesizedExpression(resolvedExpression) || ts.isAsExpression(resolvedExpression) || ts.isTypeAssertionExpression(resolvedExpression) || ts.isSatisfiesExpression(resolvedExpression) || ts.isNonNullExpression(resolvedExpression)) resolvedExpression = resolvedExpression.expression;
62524
+ if (visitedExpressions.has(resolvedExpression)) return null;
62525
+ visitedExpressions.add(resolvedExpression);
62517
62526
  if (ts.isIdentifier(resolvedExpression)) {
62518
62527
  if (analysis.localBindings.has(resolvedExpression.text)) {
62519
62528
  const localInitializer = analysis.localBindings.get(resolvedExpression.text);
62520
- return localInitializer ? getSelectedObjectProperty(localInitializer, propertyName, analysis) : null;
62529
+ return localInitializer ? getSelectedObjectProperty(localInitializer, propertyName, analysis, visitedExpressions) : null;
62521
62530
  }
62522
62531
  const scopedBinding = getScopedConfigBinding(resolvedExpression);
62523
- if (scopedBinding.wasFound) return scopedBinding.initializer ? getSelectedObjectProperty(scopedBinding.initializer, propertyName, analysis) : null;
62532
+ if (scopedBinding.wasFound) return scopedBinding.initializer ? getSelectedObjectProperty(scopedBinding.initializer, propertyName, analysis, visitedExpressions) : null;
62524
62533
  const topLevelBinding = getTopLevelBinding(analysis.sourceFile, resolvedExpression.text);
62525
- return topLevelBinding && ts.isExpression(topLevelBinding) ? getSelectedObjectProperty(topLevelBinding, propertyName, analysis) : null;
62534
+ return topLevelBinding && ts.isExpression(topLevelBinding) ? getSelectedObjectProperty(topLevelBinding, propertyName, analysis, visitedExpressions) : null;
62526
62535
  }
62527
62536
  if (!ts.isObjectLiteralExpression(resolvedExpression)) return null;
62528
62537
  for (const property of [...resolvedExpression.properties].reverse()) {
@@ -62530,7 +62539,7 @@ const getSelectedObjectProperty = (expression, propertyName, analysis) => {
62530
62539
  if (ts.isMethodDeclaration(property) && getStaticPropertyName$1(property.name) === propertyName) return property;
62531
62540
  if (ts.isShorthandPropertyAssignment(property) && property.name.text === propertyName) return property.name;
62532
62541
  if (ts.isSpreadAssignment(property)) {
62533
- const spreadProperty = getSelectedObjectProperty(property.expression, propertyName, analysis);
62542
+ const spreadProperty = getSelectedObjectProperty(property.expression, propertyName, analysis, visitedExpressions);
62534
62543
  if (spreadProperty) return spreadProperty;
62535
62544
  }
62536
62545
  }
@@ -73874,4 +73883,4 @@ const toJsonReport = (result, options) => buildJsonReport({
73874
73883
  export { AmbiguousProjectError, NoReactDependencyError, NotADirectoryError, PackageJsonNotFoundError, ProjectNotFoundError, ReactDoctorError, buildJsonReport, buildJsonReportError, clearCaches, defineConfig, diagnose, filterSourceFiles, getDiffInfo, hasReactRuntime, isProjectDiscoveryError, isReactDoctorError, summarizeDiagnostics, toJsonReport };
73875
73884
 
73876
73885
  //# sourceMappingURL=index.js.map
73877
- //# debugId=cf84418d-5713-5c93-95cf-6a6747b9f247
73886
+ //# debugId=ef9143d9-5b2e-5eca-adb3-89fde61aafe8
package/dist/lsp.js CHANGED
@@ -61815,6 +61815,13 @@ const DIAGNOSTIC_CATEGORY_BUCKETS = [
61815
61815
  "Maintainability"
61816
61816
  ];
61817
61817
  const OCCURRENCE_MATCHED_CATEGORIES = new Set(["Accessibility"]);
61818
+ new Map(Object.entries({
61819
+ Security: "An attacker can read user data, act as your users, or run code you never shipped.",
61820
+ Bugs: "Real users hit crashes, wrong output, or state that silently corrupts.",
61821
+ Performance: "Users feel extra latency and wasted renders on every interaction.",
61822
+ Accessibility: "Users on screen readers, keyboards, or assistive tech get locked out.",
61823
+ Maintainability: "Every future change gets slower and riskier to make."
61824
+ }));
61818
61825
  const APP_ONLY_RULE_KEYS = new Set([
61819
61826
  "react-hooks-js/static-components",
61820
61827
  "react-doctor/no-render-prop-children",
@@ -62564,18 +62571,20 @@ const getReactCompilerFlagState = (expression, analysis) => {
62564
62571
  }
62565
62572
  return null;
62566
62573
  };
62567
- const getSelectedObjectProperty = (expression, propertyName, analysis) => {
62574
+ const getSelectedObjectProperty = (expression, propertyName, analysis, visitedExpressions = /* @__PURE__ */ new Set()) => {
62568
62575
  let resolvedExpression = expression;
62569
62576
  while (ts.isParenthesizedExpression(resolvedExpression) || ts.isAsExpression(resolvedExpression) || ts.isTypeAssertionExpression(resolvedExpression) || ts.isSatisfiesExpression(resolvedExpression) || ts.isNonNullExpression(resolvedExpression)) resolvedExpression = resolvedExpression.expression;
62577
+ if (visitedExpressions.has(resolvedExpression)) return null;
62578
+ visitedExpressions.add(resolvedExpression);
62570
62579
  if (ts.isIdentifier(resolvedExpression)) {
62571
62580
  if (analysis.localBindings.has(resolvedExpression.text)) {
62572
62581
  const localInitializer = analysis.localBindings.get(resolvedExpression.text);
62573
- return localInitializer ? getSelectedObjectProperty(localInitializer, propertyName, analysis) : null;
62582
+ return localInitializer ? getSelectedObjectProperty(localInitializer, propertyName, analysis, visitedExpressions) : null;
62574
62583
  }
62575
62584
  const scopedBinding = getScopedConfigBinding(resolvedExpression);
62576
- if (scopedBinding.wasFound) return scopedBinding.initializer ? getSelectedObjectProperty(scopedBinding.initializer, propertyName, analysis) : null;
62585
+ if (scopedBinding.wasFound) return scopedBinding.initializer ? getSelectedObjectProperty(scopedBinding.initializer, propertyName, analysis, visitedExpressions) : null;
62577
62586
  const topLevelBinding = getTopLevelBinding(analysis.sourceFile, resolvedExpression.text);
62578
- return topLevelBinding && ts.isExpression(topLevelBinding) ? getSelectedObjectProperty(topLevelBinding, propertyName, analysis) : null;
62587
+ return topLevelBinding && ts.isExpression(topLevelBinding) ? getSelectedObjectProperty(topLevelBinding, propertyName, analysis, visitedExpressions) : null;
62579
62588
  }
62580
62589
  if (!ts.isObjectLiteralExpression(resolvedExpression)) return null;
62581
62590
  for (const property of [...resolvedExpression.properties].reverse()) {
@@ -62583,7 +62592,7 @@ const getSelectedObjectProperty = (expression, propertyName, analysis) => {
62583
62592
  if (ts.isMethodDeclaration(property) && getStaticPropertyName$1(property.name) === propertyName) return property;
62584
62593
  if (ts.isShorthandPropertyAssignment(property) && property.name.text === propertyName) return property.name;
62585
62594
  if (ts.isSpreadAssignment(property)) {
62586
- const spreadProperty = getSelectedObjectProperty(property.expression, propertyName, analysis);
62595
+ const spreadProperty = getSelectedObjectProperty(property.expression, propertyName, analysis, visitedExpressions);
62587
62596
  if (spreadProperty) return spreadProperty;
62588
62597
  }
62589
62598
  }
@@ -75495,5 +75504,5 @@ const startLanguageServer = () => {
75495
75504
  };
75496
75505
  //#endregion
75497
75506
  export { startLanguageServer };
75498
- !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]="97b31424-577f-5b74-ac26-46212d2f1aaf")}catch(e){}}();
75499
- //# debugId=97b31424-577f-5b74-ac26-46212d2f1aaf
75507
+ !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]="a35abfab-9805-5633-9c17-c7012a9dc0b3")}catch(e){}}();
75508
+ //# debugId=a35abfab-9805-5633-9c17-c7012a9dc0b3