legend-doctor 0.1.0 → 0.1.2

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 CHANGED
@@ -80,7 +80,7 @@ jobs:
80
80
  - uses: actions/checkout@fbc6f3992d24b796d5a048ff273f7fcc4a7b6c09 # v5
81
81
  with:
82
82
  fetch-depth: 0
83
- - uses: Genie-sa/legend-doctor@v1
83
+ - uses: Genie-sa/legend-doctor@v0.1.1
84
84
  with:
85
85
  directory: src
86
86
  ```
@@ -115,10 +115,10 @@ Put `legend-doctor.config.json` at the repository root, or anywhere above the fo
115
115
  }
116
116
  ```
117
117
 
118
- | Key | Values | Effect |
119
- | --------------- | ------------------------------------------ | --------------------------------------------------------- |
120
- | `ignoreActions` | Action names from [ACTIONS.md](ACTIONS.md) | Hide those findings. They count under `hidden`. |
121
- | `materiality` | `broad` or `compact` | Minimum component size for a render cut, 12 or 8 elements |
118
+ | Key | Values | Effect |
119
+ | --------------- | ------------------------------------------ | ------------------------------------------------------- |
120
+ | `ignoreActions` | Action names from [ACTIONS.md](ACTIONS.md) | Hide those findings. They count under `hidden`. |
121
+ | `materiality` | `broad` or `compact` | Minimum owner size for a size-gated render cut, 12 or 8 |
122
122
 
123
123
  Flags override the file. `--ignore-action a,b` adds to the list and `--materiality` replaces the tier. An unknown key
124
124
  or action name fails the scan with exit code 2, so a typo never silently hides findings.
@@ -192,8 +192,9 @@ legend-doctor <root> --actionable --staged # staged files
192
192
  legend-doctor <root> --actionable --since origin/main # this branch
193
193
  ```
194
194
 
195
- By default it reports a render cut only in components with 12 or more JSX elements. `--materiality compact` lowers
196
- that to 8. Run `--help` for every flag and exit code.
195
+ By default a render cut proven by owner size needs a component with 12 or more JSX elements. `--materiality compact`
196
+ lowers that to 8. Cuts proven another way — a transported read reaching a child that subscribes, or a custom hook
197
+ owner — do not depend on the tier. Run `--help` for every flag and exit code.
197
198
 
198
199
  ## Safety rules
199
200
 
@@ -2,5 +2,7 @@ import type { EffectCandidate, StateCandidate } from "./model.js";
2
2
  import type { HookImports } from "../core/imports.js";
3
3
  import ts from "typescript";
4
4
  export declare function stateCandidate(call: ts.CallExpression): StateCandidate | null;
5
+ /** `const [, setTick] = useState(0)` binds no value, so the setter exists only to force a render. */
6
+ export declare function omittedValueSetterName(call: ts.CallExpression): string | null;
5
7
  export declare function effectCandidate(call: ts.CallExpression, imports: HookImports): EffectCandidate;
6
8
  //# sourceMappingURL=candidates.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"candidates.d.ts","sourceRoot":"","sources":["../../../src/analysis/candidates.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAIlE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAItD,OAAO,EAAE,MAAM,YAAY,CAAC;AAG5B,wBAAgB,cAAc,CAAC,IAAI,EAAE,EAAE,CAAC,cAAc,GAAG,cAAc,GAAG,IAAI,CAyB7E;AASD,wBAAgB,eAAe,CAAC,IAAI,EAAE,EAAE,CAAC,cAAc,EAAE,OAAO,EAAE,WAAW,GAAG,eAAe,CAU9F"}
1
+ {"version":3,"file":"candidates.d.ts","sourceRoot":"","sources":["../../../src/analysis/candidates.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAIlE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAItD,OAAO,EAAE,MAAM,YAAY,CAAC;AAG5B,wBAAgB,cAAc,CAAC,IAAI,EAAE,EAAE,CAAC,cAAc,GAAG,cAAc,GAAG,IAAI,CAyB7E;AASD,qGAAqG;AACrG,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,EAAE,CAAC,cAAc,GAAG,MAAM,GAAG,IAAI,CAO7E;AAED,wBAAgB,eAAe,CAAC,IAAI,EAAE,EAAE,CAAC,cAAc,EAAE,OAAO,EAAE,WAAW,GAAG,eAAe,CAU9F"}
@@ -35,6 +35,15 @@ function bindingElementName(element) {
35
35
  }
36
36
  return element.name.text;
37
37
  }
38
+ /** `const [, setTick] = useState(0)` binds no value, so the setter exists only to force a render. */
39
+ export function omittedValueSetterName(call) {
40
+ const declaration = call.parent;
41
+ if (!ts.isVariableDeclaration(declaration) || !ts.isArrayBindingPattern(declaration.name)) {
42
+ return null;
43
+ }
44
+ const [value, setter] = declaration.name.elements;
45
+ return value && ts.isOmittedExpression(value) ? bindingElementName(setter) : null;
46
+ }
38
47
  export function effectCandidate(call, imports) {
39
48
  const [callbackArg, dependenciesArg] = call.arguments;
40
49
  const owner = findAncestor(call, isRuntimeFunctionLike);
@@ -1 +1 @@
1
- {"version":3,"file":"candidates.js","sourceRoot":"","sources":["../../../src/analysis/candidates.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"candidates.js","sourceRoot":"","sources":["../../../src/analysis/candidates.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"findings.d.ts","sourceRoot":"","sources":["../../../src/analysis/findings.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAkB,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAcjF,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAUpD,wBAAgB,aAAa,CAAC,MAAM,EAAE,mBAAmB,GAAG,WAAW,EAAE,CAqBxE"}
1
+ {"version":3,"file":"findings.d.ts","sourceRoot":"","sources":["../../../src/analysis/findings.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAkB,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAcjF,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAWpD,wBAAgB,aAAa,CAAC,MAAM,EAAE,mBAAmB,GAAG,WAAW,EAAE,CAqBxE"}
@@ -5,6 +5,7 @@ import { EMPTY_RUNTIME_FUNCTIONS } from "./constants.js";
5
5
  import { classifyState } from "./verdicts/classify-state.js";
6
6
  import { effectFindingFor } from "./effect-findings.js";
7
7
  import { hasLazyStateInitializer } from "../rules/effect-drafts/effect-drafts.js";
8
+ import { omittedValueSetterName } from "./candidates.js";
8
9
  import { resolveStateClassification } from "./assumptions/review-assumptions.js";
9
10
  import { verificationFor } from "./assumptions/verification.js";
10
11
  export function buildFindings(result) {
@@ -163,11 +164,14 @@ function withAssumption(finding, { analysis, resolved, state }) {
163
164
  }
164
165
  }
165
166
  function unmatchedStateFinding(call, analysis) {
167
+ const forcedRenderSetter = omittedValueSetterName(call);
166
168
  return findingFor(call, {
167
169
  action: "review-state",
168
170
  abstentionReason: "binding-shape-unsupported",
169
171
  confidence: "probable",
170
- message: "Review this React state; its binding shape is not a standard `[value, setter]` tuple.",
172
+ message: forcedRenderSetter
173
+ ? `Review this forced-render state; \`${forcedRenderSetter}\` has no value binding, so nothing reads it and every call re-renders the whole owner. Confirm which rendered values that re-render refreshes, then subscribe those leaves to an observable instead.`
174
+ : "Review this React state; its binding shape is not a standard `[value, setter]` tuple.",
171
175
  }, { fileName: analysis.fileName, hook: "useState", name: null, sourceFile: analysis.sourceFile });
172
176
  }
173
177
  function harnessStateClassification(state, nonProductionHarness) {
@@ -1 +1 @@
1
- {"version":3,"file":"findings.js","sourceRoot":"","sources":["../../../src/analysis/findings.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"findings.js","sourceRoot":"","sources":["../../../src/analysis/findings.ts"],"names":[],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- export declare const HELP = "legend-doctor \u2014 read-only React hook and Legend State triage for coding agents\n\nUsage\n legend-doctor [<target>] [flags]\n\nExamples\n legend-doctor src --actionable\n Scan before editing: one JSON entry per edit, keep findings hidden\n legend-doctor src --disposition change\n Proven edits only, ready to apply mechanically\n legend-doctor src --disposition candidate\n Opportunities that need the agent to read the named source first\n legend-doctor src --fail-on change\n CI gate: exit 3 when any shown finding still has a proven edit\n legend-doctor src --coverage\n Add parsed files, functions, diagnostics, and skipped stages\n legend-doctor src --actionable --changed\n Report only files with uncommitted work; proofs still see the whole root\n legend-doctor src --since origin/main\n Report only files touched on this branch, including uncommitted work\n\nTarget\n <target> File or directory to scan (default: current directory)\n Scan the smallest complete root that contains the relevant\n components, hooks, imports, re-exports, and observables; a\n single-file scan can hide the proof a safe finding needs.\n Files must be .ts, .tsx, .js, .jsx, .mts, .cts, .mjs, or .cjs.\n Directories named .git, .next, .turbo, build, coverage, dist,\n node_modules, and vendor are skipped. Stdin is not read.\n\nFlags\n --actionable Hide keep findings and secondary members of\n finding groups, leaving one entry per edit\n --disposition <value> Show only findings with this disposition\n (candidate | change | keep | style)\n --fail-on <value,...> Exit 3 when any shown finding or practice has one\n of these dispositions; applied after filters\n --ignore-action <a,...> Hide findings and practices with these action names\n (for example use-ref,toggle-observable); hidden\n counts include them; repeatable. Project defaults\n live in the nearest legend-doctor.config.json at or\n above the target: { \"ignoreActions\": [...],\n \"materiality\": \"broad\" | \"compact\" }; flags win\n --materiality <tier> broad (default) proves cuts only in owners with\n 12+ JSX elements; compact lowers the bar to 8 and\n tags those findings with materiality: compact\n --changed Analyze only files with uncommitted changes (staged,\n unstaged, or untracked) relative to HEAD\n --staged Analyze only files in the git index, at their\n working-tree content\n --since <ref> Analyze only files changed since the merge base\n with <ref>, plus uncommitted work\n Scope flags need a directory target inside a git\n work tree, and at most one may be set. Every file\n under the target still loads, so cross-file proofs\n for the selected files stay complete.\n --answer <id>=<yes|no> Record an answer to an open review question with\n its current fingerprint, then report the scan that\n honours it; repeatable\n --note <text> Justification stored with every --answer this run\n --confirm <file> Honour answered review questions from a JSON file;\n without it, <root>/.legend-doctor/confirmations.json\n is used when present\n --coverage Add coverage and diagnostics to the JSON report\n -h, --help Show this help\n -v, --version Print the version\n\nOutput\n Stdout is one JSON document, on success and on failure alike, and nothing\n is written to stderr.\n\nJSON contract (schemaVersion 3)\n A completed scan is the report object with:\n status \"ok\"\n root directory every location.file is relative to\n analyzer { version, build }; build digests the compiled analyzer,\n so two reports compare only when it matches\n files, hooks scan size; under a scope flag, files counts the analyzed\n subset and scope { mode, ref?, contextFiles } names the\n flag and how many files loaded for cross-file proofs\n capabilities { legendState, reactCompiler, disabledRules }: the\n installed @legendapp/state (version, useValue export, and\n sync export) or null, whether the root enables the React\n Compiler, and the rules those facts switched off, each\n with a stable reason and the number of files that skipped\n it\n findings useState and useEffect findings; every review-state and\n review-effect finding carries one stable, kebab-case\n abstentionReason naming its primary blocker or constraint.\n A review-state finding whose blocker is one confirmable\n fact (or two, listed in facts) also carries assumption\n { id, facts, fingerprint, question, ifConfirmed, research,\n renderCost, updateSites, status }:\n read every research step (file, line, check), answer the\n yes/no question, and a confirmed id turns the finding into\n ifConfirmed\n A review-effect finding whose verdict waits on a state\n lists that state's question ids in waitsOn instead\n A finding a confirmation converted carries verification\n { harness, steps, expect }: the jsdom recipe that checks it\n questions open review questions ranked by expected render saving\n (renderCost \u00D7 update sites), each with id, file, line\n confirmations { applied, rejected, stale, unmatched, source } when\n answers were read\n practices Legend State practice findings\n hidden { findings, practices } removed by --actionable or\n --disposition, so an empty list is not a clean scan\n gate { failOn, matched } when --fail-on is set\n coverage, present only with --coverage\n diagnostics\n A failure is { status: \"error\", reason, message, next? } where reason is:\n invalid_usage bad flag or value; nothing was scanned exit 2\n unsupported_target file target is not a scannable source file exit 2\n target_not_found the target path does not exist exit 1\n scope_unavailable a scope flag ran outside a git work tree,\n without git, or with an unknown --since ref exit 1\n scan_failed analysis could not complete exit 1\n\nDispositions\n change Apply the instruction; structural proof is complete\n candidate Inspect the named source; resolve the missing timing,\n ownership, or type fact before editing\n keep Preserve the current React or lifecycle boundary\n style Apply only when the installed Legend State API supports the form\n\nAgent loop\n 1. Scan before editing: legend-doctor <root> --actionable\n 2. Apply one group of change findings; inspect candidates against source\n 3. Run the application's formatter, typecheck, and relevant tests\n 4. Scan the same root again and report the finding delta, including zero\n\nConfirmations\n Write answers as { \"confirmations\": [{ \"id\", \"answer\": \"yes\" | \"no\",\n \"fingerprint\", \"note\"? }] } to <root>/.legend-doctor/confirmations.json, or\n pass any file with --confirm. Ids are stable across line shifts (file,\n owner, state name, blocker). Copy the fingerprint from the question: when\n the owner changes, the answer is reported stale and the question is asked\n again instead of silently applied. \"yes\" converts the finding with the\n assumption recorded in its evidence; \"no\" keeps it under review and stops\n the question. Work through report.questions in rank order.\n\nSuppression\n Precede a deliberate React effect with `// legend-doctor keep-react-effect`\n to suppress its review-effect finding.\n\nExit codes\n 0 scan completed; the report may contain zero or more findings\n 1 the scan failed (missing target, analysis error)\n 2 invalid usage; nothing was scanned\n 3 scan completed and a shown finding matched --fail-on\n";
1
+ export declare const HELP = "legend-doctor \u2014 read-only React hook and Legend State triage for coding agents\n\nUsage\n legend-doctor [<target>] [flags]\n\nExamples\n legend-doctor src --actionable\n Scan before editing: one JSON entry per edit, keep findings hidden\n legend-doctor src --disposition change\n Proven edits only, ready to apply mechanically\n legend-doctor src --disposition candidate\n Opportunities that need the agent to read the named source first\n legend-doctor src --fail-on change\n CI gate: exit 3 when any shown finding still has a proven edit\n legend-doctor src --coverage\n Add parsed files, functions, diagnostics, and skipped stages\n legend-doctor src --actionable --changed\n Report only files with uncommitted work; proofs still see the whole root\n legend-doctor src --since origin/main\n Report only files touched on this branch, including uncommitted work\n\nTarget\n <target> File or directory to scan (default: current directory)\n Scan the smallest complete root that contains the relevant\n components, hooks, imports, re-exports, and observables; a\n single-file scan can hide the proof a safe finding needs.\n Files must be .ts, .tsx, .js, .jsx, .mts, .cts, .mjs, or .cjs.\n Directories named .git, .next, .turbo, build, coverage, dist,\n node_modules, and vendor are skipped. Stdin is not read.\n\nFlags\n --actionable Hide keep findings and secondary members of\n finding groups, leaving one entry per edit\n --disposition <value> Show only findings with this disposition\n (candidate | change | keep | style)\n --fail-on <value,...> Exit 3 when any shown finding or practice has one\n of these dispositions; applied after filters\n --ignore-action <a,...> Hide findings and practices with these action names\n (for example use-ref,toggle-observable); hidden\n counts include them; repeatable. Project defaults\n live in the nearest legend-doctor.config.json at or\n above the target: { \"ignoreActions\": [...],\n \"materiality\": \"broad\" | \"compact\" }; flags win\n --materiality <tier> broad (default) needs 12+ JSX elements for a cut\n proven by owner size; compact lowers that to 8 and\n tags those findings with materiality: compact. Cuts\n proven by a transported read or a hook owner ignore\n the tier\n --changed Analyze only files with uncommitted changes (staged,\n unstaged, or untracked) relative to HEAD\n --staged Analyze only files in the git index, at their\n working-tree content\n --since <ref> Analyze only files changed since the merge base\n with <ref>, plus uncommitted work\n Scope flags need a directory target inside a git\n work tree, and at most one may be set. Every file\n under the target still loads, so cross-file proofs\n for the selected files stay complete.\n --answer <id>=<yes|no> Record an answer to an open review question with\n its current fingerprint, then report the scan that\n honours it; repeatable\n --note <text> Justification stored with every --answer this run\n --confirm <file> Honour answered review questions from a JSON file;\n without it, <root>/.legend-doctor/confirmations.json\n is used when present\n --coverage Add coverage and diagnostics to the JSON report\n -h, --help Show this help\n -v, --version Print the version\n\nOutput\n Stdout is one JSON document, on success and on failure alike, and nothing\n is written to stderr.\n\nJSON contract (schemaVersion 3)\n A completed scan is the report object with:\n status \"ok\"\n root directory every location.file is relative to\n analyzer { version, build }; build digests the compiled analyzer,\n so two reports compare only when it matches\n files, hooks scan size; under a scope flag, files counts the analyzed\n subset and scope { mode, ref?, contextFiles } names the\n flag and how many files loaded for cross-file proofs\n capabilities { legendState, reactCompiler, disabledRules }: the\n installed @legendapp/state (version, useValue export, and\n sync export) or null, whether the root enables the React\n Compiler, and the rules those facts switched off, each\n with a stable reason and the number of files that skipped\n it\n findings useState and useEffect findings; every review-state and\n review-effect finding carries one stable, kebab-case\n abstentionReason naming its primary blocker or constraint.\n A review-state finding whose blocker is one confirmable\n fact (or two, listed in facts) also carries assumption\n { id, facts, fingerprint, question, ifConfirmed, research,\n renderCost, updateSites, status }:\n read every research step (file, line, check), answer the\n yes/no question, and a confirmed id turns the finding into\n ifConfirmed\n A review-effect finding whose verdict waits on a state\n lists that state's question ids in waitsOn instead\n A finding a confirmation converted carries verification\n { harness, steps, expect }: the jsdom recipe that checks it\n questions open review questions ranked by expected render saving\n (renderCost \u00D7 update sites), each with id, file, line\n confirmations { applied, rejected, stale, unmatched, source } when\n answers were read\n practices Legend State practice findings\n hidden { findings, practices } removed by --actionable or\n --disposition, so an empty list is not a clean scan\n gate { failOn, matched } when --fail-on is set\n coverage, present only with --coverage\n diagnostics\n A failure is { status: \"error\", reason, message, next? } where reason is:\n invalid_usage bad flag or value; nothing was scanned exit 2\n unsupported_target file target is not a scannable source file exit 2\n target_not_found the target path does not exist exit 1\n scope_unavailable a scope flag ran outside a git work tree,\n without git, or with an unknown --since ref exit 1\n scan_failed analysis could not complete exit 1\n\nDispositions\n change Apply the instruction; structural proof is complete\n candidate Inspect the named source; resolve the missing timing,\n ownership, or type fact before editing\n keep Preserve the current React or lifecycle boundary\n style Apply only when the installed Legend State API supports the form\n\nAgent loop\n 1. Scan before editing: legend-doctor <root> --actionable\n 2. Apply one group of change findings; inspect candidates against source\n 3. Run the application's formatter, typecheck, and relevant tests\n 4. Scan the same root again and report the finding delta, including zero\n\nConfirmations\n Write answers as { \"confirmations\": [{ \"id\", \"answer\": \"yes\" | \"no\",\n \"fingerprint\", \"note\"? }] } to <root>/.legend-doctor/confirmations.json, or\n pass any file with --confirm. Ids are stable across line shifts (file,\n owner, state name, blocker). Copy the fingerprint from the question: when\n the owner changes, the answer is reported stale and the question is asked\n again instead of silently applied. \"yes\" converts the finding with the\n assumption recorded in its evidence; \"no\" keeps it under review and stops\n the question. Work through report.questions in rank order.\n\nSuppression\n Precede a deliberate React effect with `// legend-doctor keep-react-effect`\n to suppress its review-effect finding.\n\nExit codes\n 0 scan completed; the report may contain zero or more findings\n 1 the scan failed (missing target, analysis error)\n 2 invalid usage; nothing was scanned\n 3 scan completed and a shown finding matched --fail-on\n";
2
2
  //# sourceMappingURL=help.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"help.d.ts","sourceRoot":"","sources":["../../../src/cli/help.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,IAAI,mnRAsJhB,CAAC"}
1
+ {"version":3,"file":"help.d.ts","sourceRoot":"","sources":["../../../src/cli/help.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,IAAI,kvRAwJhB,CAAC"}
@@ -41,9 +41,11 @@ Flags
41
41
  live in the nearest legend-doctor.config.json at or
42
42
  above the target: { "ignoreActions": [...],
43
43
  "materiality": "broad" | "compact" }; flags win
44
- --materiality <tier> broad (default) proves cuts only in owners with
45
- 12+ JSX elements; compact lowers the bar to 8 and
46
- tags those findings with materiality: compact
44
+ --materiality <tier> broad (default) needs 12+ JSX elements for a cut
45
+ proven by owner size; compact lowers that to 8 and
46
+ tags those findings with materiality: compact. Cuts
47
+ proven by a transported read or a hook owner ignore
48
+ the tier
47
49
  --changed Analyze only files with uncommitted changes (staged,
48
50
  unstaged, or untracked) relative to HEAD
49
51
  --staged Analyze only files in the git index, at their
@@ -1 +1 @@
1
- {"version":3,"file":"help.js","sourceRoot":"","sources":["../../../src/cli/help.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,IAAI,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAsJnB,CAAC"}
1
+ {"version":3,"file":"help.js","sourceRoot":"","sources":["../../../src/cli/help.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,IAAI,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAwJnB,CAAC"}
package/dist/src/cli.d.ts CHANGED
@@ -1,2 +1,3 @@
1
+ #!/usr/bin/env node
1
2
  export {};
2
3
  //# sourceMappingURL=cli.d.ts.map
package/dist/src/cli.js CHANGED
@@ -1,3 +1,4 @@
1
+ #!/usr/bin/env node
1
2
  import { CliError, EXIT_GATE_FAILED, EXIT_SCAN_FAILED } from "./cli/failures.js";
2
3
  import { GitScopeError, resolveScopedFiles } from "./project/git-scope.js";
3
4
  import { analyzePath, analyzePathDetailed } from "./project/analyze-path/analyze-path.js";
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../../src/cli.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../../src/cli.ts"],"names":[],"mappings":"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"}
@@ -20,8 +20,10 @@ export interface EffectStateDependencies {
20
20
  /**
21
21
  * Resolves the local React state, Legend binding, or unresolvable owner binding that a dependency
22
22
  * effect's schedule (its dependency array) and body reach, following owner `const` initializers and
23
- * local functions transitively. A `null` schedule proves React props and external values alone decide
24
- * when the effect runs; a `null` body proves no state migration inside the owner changes its inputs.
23
+ * local functions transitively. A state with no setter binding can never be written, so it counts as a
24
+ * component-lifetime constant rather than a dependency. A `null` schedule proves React props, external
25
+ * values, and those constants alone decide when the effect runs; a `null` body proves no state
26
+ * migration inside the owner changes its inputs.
25
27
  */
26
28
  export declare function analyzeEffectStateDependencies(effect: EffectCandidate, callback: ts.ArrowFunction | ts.FunctionExpression, context: EffectClassificationContext): EffectStateDependencies;
27
29
  //# sourceMappingURL=state-independent-effects.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"state-independent-effects.d.ts","sourceRoot":"","sources":["../../../../src/rules/effects/state-independent-effects.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAS/E,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,YAAY,CAAC;AAE9D,OAAO,EAAE,MAAM,YAAY,CAAC;AAE5B,MAAM,MAAM,qBAAqB,GAC7B;IAAE,QAAQ,CAAC,IAAI,EAAE,QAAQ,GAAG,YAAY,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GACjE;IAAE,QAAQ,CAAC,IAAI,EAAE,QAAQ,GAAG,OAAO,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,cAAc,CAAA;CAAE,CAAC;AAqBjG,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,IAAI,EAAE,qBAAqB,GAAG,IAAI,CAAC;IAC5C,qFAAqF;IACrF,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IACzB,QAAQ,CAAC,QAAQ,EAAE,qBAAqB,GAAG,IAAI,CAAC;IAChD,4EAA4E;IAC5E,QAAQ,CAAC,MAAM,EAAE,SAAS,cAAc,EAAE,CAAC;CAC5C;AAUD;;;;;GAKG;AACH,wBAAgB,8BAA8B,CAC5C,MAAM,EAAE,eAAe,EACvB,QAAQ,EAAE,EAAE,CAAC,aAAa,GAAG,EAAE,CAAC,kBAAkB,EAClD,OAAO,EAAE,2BAA2B,GACnC,uBAAuB,CAyBzB"}
1
+ {"version":3,"file":"state-independent-effects.d.ts","sourceRoot":"","sources":["../../../../src/rules/effects/state-independent-effects.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAS/E,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,YAAY,CAAC;AAE9D,OAAO,EAAE,MAAM,YAAY,CAAC;AAE5B,MAAM,MAAM,qBAAqB,GAC7B;IAAE,QAAQ,CAAC,IAAI,EAAE,QAAQ,GAAG,YAAY,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GACjE;IAAE,QAAQ,CAAC,IAAI,EAAE,QAAQ,GAAG,OAAO,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,cAAc,CAAA;CAAE,CAAC;AAqBjG,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,IAAI,EAAE,qBAAqB,GAAG,IAAI,CAAC;IAC5C,qFAAqF;IACrF,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IACzB,QAAQ,CAAC,QAAQ,EAAE,qBAAqB,GAAG,IAAI,CAAC;IAChD,4EAA4E;IAC5E,QAAQ,CAAC,MAAM,EAAE,SAAS,cAAc,EAAE,CAAC;CAC5C;AAUD;;;;;;;GAOG;AACH,wBAAgB,8BAA8B,CAC5C,MAAM,EAAE,eAAe,EACvB,QAAQ,EAAE,EAAE,CAAC,aAAa,GAAG,EAAE,CAAC,kBAAkB,EAClD,OAAO,EAAE,2BAA2B,GACnC,uBAAuB,CAyBzB"}
@@ -20,8 +20,10 @@ const DEPENDENCY_SEVERITY = {
20
20
  /**
21
21
  * Resolves the local React state, Legend binding, or unresolvable owner binding that a dependency
22
22
  * effect's schedule (its dependency array) and body reach, following owner `const` initializers and
23
- * local functions transitively. A `null` schedule proves React props and external values alone decide
24
- * when the effect runs; a `null` body proves no state migration inside the owner changes its inputs.
23
+ * local functions transitively. A state with no setter binding can never be written, so it counts as a
24
+ * component-lifetime constant rather than a dependency. A `null` schedule proves React props, external
25
+ * values, and those constants alone decide when the effect runs; a `null` body proves no state
26
+ * migration inside the owner changes its inputs.
25
27
  */
26
28
  export function analyzeEffectStateDependencies(effect, callback, context) {
27
29
  if (!effect.owner || !effect.dependencies) {
@@ -70,10 +72,16 @@ function dependenciesOfNode(node, scope) {
70
72
  function dependenciesOfReference(name, declaredWithin, scope) {
71
73
  const local = localStateDependency(name, scope.context);
72
74
  if (local) {
73
- return declaredWithin.has(name) ? [{ kind: "unresolved", name }] : [local];
75
+ if (declaredWithin.has(name)) {
76
+ return [{ kind: "unresolved", name }];
77
+ }
78
+ return isConstantState(local) ? [] : [local];
74
79
  }
75
80
  return declaredWithin.has(name) ? [] : resolveOwnerBinding(name, scope);
76
81
  }
82
+ function isConstantState(dependency) {
83
+ return dependency.kind === "value" && dependency.state.setterName === null;
84
+ }
77
85
  function localStateDependency(name, context) {
78
86
  const setterState = context.stateBySetter.get(name);
79
87
  if (setterState) {
@@ -1 +1 @@
1
- {"version":3,"file":"state-independent-effects.js","sourceRoot":"","sources":["../../../../src/rules/effects/state-independent-effects.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"state-independent-effects.js","sourceRoot":"","sources":["../../../../src/rules/effects/state-independent-effects.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "legend-doctor",
3
- "version": "0.1.0",
3
+ "version": "0.1.2",
4
4
  "description": "Read-only React analyzer that proves which useState and useEffect hooks waste renders, and the exact Legend State edit that cuts them.",
5
5
  "keywords": [
6
6
  "cli",