@nielspeter/eess-ts 0.2.0 → 0.4.0
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 +87 -34
- package/dist/builders/call-rule-builder.d.ts +66 -26
- package/dist/builders/call-rule-builder.d.ts.map +1 -1
- package/dist/builders/call-rule-builder.js +73 -31
- package/dist/builders/call-rule-builder.js.map +1 -1
- package/dist/builders/class-rule-builder.d.ts +125 -26
- package/dist/builders/class-rule-builder.d.ts.map +1 -1
- package/dist/builders/class-rule-builder.js +134 -30
- package/dist/builders/class-rule-builder.js.map +1 -1
- package/dist/builders/correspondence-builder.d.ts +287 -0
- package/dist/builders/correspondence-builder.d.ts.map +1 -0
- package/dist/builders/correspondence-builder.js +393 -0
- package/dist/builders/correspondence-builder.js.map +1 -0
- package/dist/builders/correspondence-findings.d.ts +104 -0
- package/dist/builders/correspondence-findings.d.ts.map +1 -0
- package/dist/builders/correspondence-findings.js +301 -0
- package/dist/builders/correspondence-findings.js.map +1 -0
- package/dist/builders/cross-layer-builder.d.ts +99 -16
- package/dist/builders/cross-layer-builder.d.ts.map +1 -1
- package/dist/builders/cross-layer-builder.js +181 -35
- package/dist/builders/cross-layer-builder.js.map +1 -1
- package/dist/builders/function-rule-builder.d.ts +144 -25
- package/dist/builders/function-rule-builder.d.ts.map +1 -1
- package/dist/builders/function-rule-builder.js +173 -26
- package/dist/builders/function-rule-builder.js.map +1 -1
- package/dist/builders/jsx-rule-builder.d.ts +70 -14
- package/dist/builders/jsx-rule-builder.d.ts.map +1 -1
- package/dist/builders/jsx-rule-builder.js +73 -14
- package/dist/builders/jsx-rule-builder.js.map +1 -1
- package/dist/builders/module-rule-builder.d.ts +2 -2
- package/dist/builders/module-rule-builder.d.ts.map +1 -1
- package/dist/builders/module-rule-builder.js +12 -3
- package/dist/builders/module-rule-builder.js.map +1 -1
- package/dist/builders/scoped-function-rule-builder.d.ts +11 -0
- package/dist/builders/scoped-function-rule-builder.d.ts.map +1 -1
- package/dist/builders/scoped-function-rule-builder.js +12 -0
- package/dist/builders/scoped-function-rule-builder.js.map +1 -1
- package/dist/builders/slice-discovery-message.d.ts +36 -0
- package/dist/builders/slice-discovery-message.d.ts.map +1 -0
- package/dist/builders/slice-discovery-message.js +181 -0
- package/dist/builders/slice-discovery-message.js.map +1 -0
- package/dist/builders/slice-rule-builder.d.ts +151 -12
- package/dist/builders/slice-rule-builder.d.ts.map +1 -1
- package/dist/builders/slice-rule-builder.js +242 -35
- package/dist/builders/slice-rule-builder.js.map +1 -1
- package/dist/builders/type-rule-builder.d.ts +95 -24
- package/dist/builders/type-rule-builder.d.ts.map +1 -1
- package/dist/builders/type-rule-builder.js +105 -29
- package/dist/builders/type-rule-builder.js.map +1 -1
- package/dist/{helpers → builders}/within.d.ts +2 -2
- package/dist/builders/within.d.ts.map +1 -0
- package/dist/{helpers → builders}/within.js +1 -1
- package/dist/builders/within.js.map +1 -0
- package/dist/cli/commands/baseline.d.ts +3 -2
- package/dist/cli/commands/baseline.d.ts.map +1 -1
- package/dist/cli/commands/baseline.js +68 -6
- package/dist/cli/commands/baseline.js.map +1 -1
- package/dist/cli/commands/check.d.ts +7 -2
- package/dist/cli/commands/check.d.ts.map +1 -1
- package/dist/cli/commands/check.js +241 -45
- package/dist/cli/commands/check.js.map +1 -1
- package/dist/cli/commands/doctor.d.ts +29 -0
- package/dist/cli/commands/doctor.d.ts.map +1 -0
- package/dist/cli/commands/doctor.js +224 -0
- package/dist/cli/commands/doctor.js.map +1 -0
- package/dist/cli/commands/explain.d.ts +2 -1
- package/dist/cli/commands/explain.d.ts.map +1 -1
- package/dist/cli/commands/explain.js +19 -10
- package/dist/cli/commands/explain.js.map +1 -1
- package/dist/cli/commands/init.d.ts +9 -3
- package/dist/cli/commands/init.d.ts.map +1 -1
- package/dist/cli/commands/init.js +162 -137
- package/dist/cli/commands/init.js.map +1 -1
- package/dist/cli/import-rule-module.d.ts +29 -0
- package/dist/cli/import-rule-module.d.ts.map +1 -0
- package/dist/cli/import-rule-module.js +60 -0
- package/dist/cli/import-rule-module.js.map +1 -0
- package/dist/cli/index.d.ts +2 -2
- package/dist/cli/index.d.ts.map +1 -1
- package/dist/cli/index.js +98 -33
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/load-rules.d.ts +6 -11
- package/dist/cli/load-rules.d.ts.map +1 -1
- package/dist/cli/load-rules.js +21 -29
- package/dist/cli/load-rules.js.map +1 -1
- package/dist/cli/resolve-config.d.ts.map +1 -1
- package/dist/cli/resolve-config.js +24 -14
- package/dist/cli/resolve-config.js.map +1 -1
- package/dist/cli/rule-file-findings.d.ts +178 -0
- package/dist/cli/rule-file-findings.d.ts.map +1 -0
- package/dist/cli/rule-file-findings.js +293 -0
- package/dist/cli/rule-file-findings.js.map +1 -0
- package/dist/cli/watch.d.ts +20 -7
- package/dist/cli/watch.d.ts.map +1 -1
- package/dist/cli/watch.js +39 -14
- package/dist/cli/watch.js.map +1 -1
- package/dist/conditions/body-analysis-function.d.ts.map +1 -1
- package/dist/conditions/body-analysis-function.js +16 -7
- package/dist/conditions/body-analysis-function.js.map +1 -1
- package/dist/conditions/body-analysis-module.d.ts.map +1 -1
- package/dist/conditions/body-analysis-module.js +14 -9
- package/dist/conditions/body-analysis-module.js.map +1 -1
- package/dist/conditions/body-analysis.d.ts.map +1 -1
- package/dist/conditions/body-analysis.js +16 -7
- package/dist/conditions/body-analysis.js.map +1 -1
- package/dist/conditions/call.d.ts.map +1 -1
- package/dist/conditions/call.js +38 -17
- package/dist/conditions/call.js.map +1 -1
- package/dist/conditions/catch-analysis.d.ts +2 -1
- package/dist/conditions/catch-analysis.d.ts.map +1 -1
- package/dist/conditions/catch-analysis.js.map +1 -1
- package/dist/conditions/cross-layer.d.ts +2 -10
- package/dist/conditions/cross-layer.d.ts.map +1 -1
- package/dist/conditions/cross-layer.js +227 -23
- package/dist/conditions/cross-layer.js.map +1 -1
- package/dist/conditions/dependency.d.ts +35 -6
- package/dist/conditions/dependency.d.ts.map +1 -1
- package/dist/conditions/dependency.js +299 -45
- package/dist/conditions/dependency.js.map +1 -1
- package/dist/conditions/exports.d.ts.map +1 -1
- package/dist/conditions/exports.js +10 -0
- package/dist/conditions/exports.js.map +1 -1
- package/dist/conditions/function.d.ts.map +1 -1
- package/dist/conditions/function.js +19 -5
- package/dist/conditions/function.js.map +1 -1
- package/dist/conditions/helpers.d.ts +2 -1
- package/dist/conditions/helpers.d.ts.map +1 -1
- package/dist/conditions/helpers.js +4 -1
- package/dist/conditions/helpers.js.map +1 -1
- package/dist/conditions/jsx.d.ts.map +1 -1
- package/dist/conditions/jsx.js +7 -2
- package/dist/conditions/jsx.js.map +1 -1
- package/dist/conditions/match-identity.d.ts +43 -0
- package/dist/conditions/match-identity.d.ts.map +1 -0
- package/dist/conditions/match-identity.js +43 -0
- package/dist/conditions/match-identity.js.map +1 -0
- package/dist/conditions/members.d.ts.map +1 -1
- package/dist/conditions/members.js +17 -4
- package/dist/conditions/members.js.map +1 -1
- package/dist/conditions/reverse-dependency.d.ts +18 -5
- package/dist/conditions/reverse-dependency.d.ts.map +1 -1
- package/dist/conditions/reverse-dependency.js +109 -92
- package/dist/conditions/reverse-dependency.js.map +1 -1
- package/dist/conditions/slice.d.ts +86 -2
- package/dist/conditions/slice.d.ts.map +1 -1
- package/dist/conditions/slice.js +234 -53
- package/dist/conditions/slice.js.map +1 -1
- package/dist/conditions/structural.d.ts.map +1 -1
- package/dist/conditions/structural.js +16 -4
- package/dist/conditions/structural.js.map +1 -1
- package/dist/core/check-all.d.ts +19 -0
- package/dist/core/check-all.d.ts.map +1 -0
- package/dist/core/check-all.js +96 -0
- package/dist/core/check-all.js.map +1 -0
- package/dist/core/combinators.d.ts +48 -0
- package/dist/core/combinators.d.ts.map +1 -0
- package/dist/core/combinators.js +56 -0
- package/dist/core/combinators.js.map +1 -0
- package/dist/core/descendant-cache.d.ts +36 -0
- package/dist/core/descendant-cache.d.ts.map +1 -0
- package/dist/core/descendant-cache.js +119 -0
- package/dist/core/descendant-cache.js.map +1 -0
- package/dist/core/diagnose.d.ts +234 -0
- package/dist/core/diagnose.d.ts.map +1 -0
- package/dist/core/diagnose.js +382 -0
- package/dist/core/diagnose.js.map +1 -0
- package/dist/core/disk-set.d.ts +48 -0
- package/dist/core/disk-set.d.ts.map +1 -0
- package/dist/core/disk-set.js +218 -0
- package/dist/core/disk-set.js.map +1 -0
- package/dist/core/element-cache.d.ts +75 -0
- package/dist/core/element-cache.d.ts.map +1 -0
- package/dist/core/element-cache.js +32 -0
- package/dist/core/element-cache.js.map +1 -0
- package/dist/core/empty-project-advice.d.ts +75 -0
- package/dist/core/empty-project-advice.d.ts.map +1 -0
- package/dist/core/empty-project-advice.js +61 -0
- package/dist/core/empty-project-advice.js.map +1 -0
- package/dist/core/exclusion-comments.d.ts +54 -0
- package/dist/core/exclusion-comments.d.ts.map +1 -0
- package/dist/core/exclusion-comments.js +310 -0
- package/dist/core/exclusion-comments.js.map +1 -0
- package/dist/core/execute-rule.d.ts +150 -0
- package/dist/core/execute-rule.d.ts.map +1 -0
- package/dist/core/execute-rule.js +580 -0
- package/dist/core/execute-rule.js.map +1 -0
- package/dist/core/glob-diagnosis.d.ts +78 -0
- package/dist/core/glob-diagnosis.d.ts.map +1 -0
- package/dist/core/glob-diagnosis.js +134 -0
- package/dist/core/glob-diagnosis.js.map +1 -0
- package/dist/core/glob-evaluator.d.ts +48 -0
- package/dist/core/glob-evaluator.d.ts.map +1 -0
- package/dist/core/glob-evaluator.js +89 -0
- package/dist/core/glob-evaluator.js.map +1 -0
- package/dist/core/import-candidates.d.ts +60 -0
- package/dist/core/import-candidates.d.ts.map +1 -0
- package/dist/core/import-candidates.js +93 -0
- package/dist/core/import-candidates.js.map +1 -0
- package/dist/core/import-options.d.ts +55 -2
- package/dist/core/import-options.d.ts.map +1 -1
- package/dist/core/import-options.js +64 -0
- package/dist/core/import-options.js.map +1 -1
- package/dist/core/line-index.d.ts +3 -0
- package/dist/core/line-index.d.ts.map +1 -0
- package/dist/core/line-index.js +229 -0
- package/dist/core/line-index.js.map +1 -0
- package/dist/core/metric-violation.d.ts +86 -0
- package/dist/core/metric-violation.d.ts.map +1 -0
- package/dist/core/metric-violation.js +132 -0
- package/dist/core/metric-violation.js.map +1 -0
- package/dist/core/module-edges.d.ts +361 -0
- package/dist/core/module-edges.d.ts.map +1 -0
- package/dist/core/module-edges.js +592 -0
- package/dist/core/module-edges.js.map +1 -0
- package/dist/core/object-literal-functions.d.ts +42 -0
- package/dist/core/object-literal-functions.d.ts.map +1 -0
- package/dist/core/object-literal-functions.js +75 -0
- package/dist/core/object-literal-functions.js.map +1 -0
- package/dist/core/orphan-exclusions.d.ts +44 -0
- package/dist/core/orphan-exclusions.d.ts.map +1 -0
- package/dist/core/orphan-exclusions.js +214 -0
- package/dist/core/orphan-exclusions.js.map +1 -0
- package/dist/core/pair-condition.d.ts +32 -3
- package/dist/core/pair-condition.d.ts.map +1 -1
- package/dist/core/path-universe.d.ts +54 -0
- package/dist/core/path-universe.d.ts.map +1 -0
- package/dist/core/path-universe.js +65 -0
- package/dist/core/path-universe.js.map +1 -0
- package/dist/core/per-root-compiler-options.d.ts +20 -0
- package/dist/core/per-root-compiler-options.d.ts.map +1 -0
- package/dist/core/per-root-compiler-options.js +57 -0
- package/dist/core/per-root-compiler-options.js.map +1 -0
- package/dist/core/project-relative.d.ts +98 -0
- package/dist/core/project-relative.d.ts.map +1 -0
- package/dist/core/project-relative.js +185 -0
- package/dist/core/project-relative.js.map +1 -0
- package/dist/core/project.d.ts +7 -1
- package/dist/core/project.d.ts.map +1 -1
- package/dist/core/project.js +24 -0
- package/dist/core/project.js.map +1 -1
- package/dist/core/rule-builder.d.ts +282 -0
- package/dist/core/rule-builder.d.ts.map +1 -0
- package/dist/core/rule-builder.js +445 -0
- package/dist/core/rule-builder.js.map +1 -0
- package/dist/core/rule-declaration.d.ts +32 -0
- package/dist/core/rule-declaration.d.ts.map +1 -0
- package/dist/core/rule-declaration.js +126 -0
- package/dist/core/rule-declaration.js.map +1 -0
- package/dist/core/terminal-builder.d.ts +625 -0
- package/dist/core/terminal-builder.d.ts.map +1 -0
- package/dist/core/terminal-builder.js +787 -0
- package/dist/core/terminal-builder.js.map +1 -0
- package/dist/core/terminal-execution.d.ts +23 -0
- package/dist/core/terminal-execution.d.ts.map +1 -0
- package/dist/core/terminal-execution.js +71 -0
- package/dist/core/terminal-execution.js.map +1 -0
- package/dist/core/vacuity-diagnosis.d.ts +103 -0
- package/dist/core/vacuity-diagnosis.d.ts.map +1 -0
- package/dist/core/vacuity-diagnosis.js +415 -0
- package/dist/core/vacuity-diagnosis.js.map +1 -0
- package/dist/core/violation.d.ts +16 -11
- package/dist/core/violation.d.ts.map +1 -1
- package/dist/core/violation.js +33 -13
- package/dist/core/violation.js.map +1 -1
- package/dist/graphql/index.js +1 -1
- package/dist/graphql/index.js.map +1 -1
- package/dist/graphql/resolver-rule-builder.d.ts +98 -23
- package/dist/graphql/resolver-rule-builder.d.ts.map +1 -1
- package/dist/graphql/resolver-rule-builder.js +151 -21
- package/dist/graphql/resolver-rule-builder.js.map +1 -1
- package/dist/graphql/schema-loader.d.ts +21 -0
- package/dist/graphql/schema-loader.d.ts.map +1 -1
- package/dist/graphql/schema-loader.js +81 -12
- package/dist/graphql/schema-loader.js.map +1 -1
- package/dist/graphql/schema-rule-builder.d.ts +57 -20
- package/dist/graphql/schema-rule-builder.d.ts.map +1 -1
- package/dist/graphql/schema-rule-builder.js +101 -25
- package/dist/graphql/schema-rule-builder.js.map +1 -1
- package/dist/helpers/baseline-diagnostics.d.ts +45 -0
- package/dist/helpers/baseline-diagnostics.d.ts.map +1 -0
- package/dist/helpers/baseline-diagnostics.js +168 -0
- package/dist/helpers/baseline-diagnostics.js.map +1 -0
- package/dist/helpers/baseline-generator.d.ts +19 -0
- package/dist/helpers/baseline-generator.d.ts.map +1 -0
- package/dist/helpers/baseline-generator.js +18 -0
- package/dist/helpers/baseline-generator.js.map +1 -0
- package/dist/helpers/baseline.d.ts +336 -0
- package/dist/helpers/baseline.d.ts.map +1 -0
- package/dist/helpers/baseline.js +664 -0
- package/dist/helpers/baseline.js.map +1 -0
- package/dist/helpers/body-traversal.d.ts +27 -2
- package/dist/helpers/body-traversal.d.ts.map +1 -1
- package/dist/helpers/body-traversal.js +122 -16
- package/dist/helpers/body-traversal.js.map +1 -1
- package/dist/helpers/callback-extractor.d.ts.map +1 -1
- package/dist/helpers/callback-extractor.js +48 -47
- package/dist/helpers/callback-extractor.js.map +1 -1
- package/dist/helpers/complexity.d.ts +13 -5
- package/dist/helpers/complexity.d.ts.map +1 -1
- package/dist/helpers/complexity.js +15 -6
- package/dist/helpers/complexity.js.map +1 -1
- package/dist/helpers/diff-aware.d.ts +44 -0
- package/dist/helpers/diff-aware.d.ts.map +1 -0
- package/dist/helpers/diff-aware.js +84 -0
- package/dist/helpers/diff-aware.js.map +1 -0
- package/dist/helpers/matchers.d.ts +68 -7
- package/dist/helpers/matchers.d.ts.map +1 -1
- package/dist/helpers/matchers.js +114 -20
- package/dist/helpers/matchers.js.map +1 -1
- package/dist/helpers/slice-graph.d.ts +100 -8
- package/dist/helpers/slice-graph.d.ts.map +1 -1
- package/dist/helpers/slice-graph.js +126 -34
- package/dist/helpers/slice-graph.js.map +1 -1
- package/dist/helpers/tarjan.d.ts +0 -14
- package/dist/helpers/tarjan.d.ts.map +1 -1
- package/dist/helpers/tarjan.js +29 -16
- package/dist/helpers/tarjan.js.map +1 -1
- package/dist/index.d.ts +56 -17
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +57 -13
- package/dist/index.js.map +1 -1
- package/dist/models/arch-call.d.ts +3 -2
- package/dist/models/arch-call.d.ts.map +1 -1
- package/dist/models/arch-call.js.map +1 -1
- package/dist/models/arch-function.d.ts +28 -6
- package/dist/models/arch-function.d.ts.map +1 -1
- package/dist/models/arch-function.js +106 -3
- package/dist/models/arch-function.js.map +1 -1
- package/dist/models/arch-jsx-element.js +2 -2
- package/dist/models/arch-jsx-element.js.map +1 -1
- package/dist/models/slice.d.ts +33 -9
- package/dist/models/slice.d.ts.map +1 -1
- package/dist/models/slice.js +129 -19
- package/dist/models/slice.js.map +1 -1
- package/dist/predicates/call.d.ts.map +1 -1
- package/dist/predicates/call.js +5 -0
- package/dist/predicates/call.js.map +1 -1
- package/dist/predicates/identity.d.ts +21 -0
- package/dist/predicates/identity.d.ts.map +1 -1
- package/dist/predicates/identity.js +75 -3
- package/dist/predicates/identity.js.map +1 -1
- package/dist/predicates/index.d.ts +1 -1
- package/dist/predicates/index.d.ts.map +1 -1
- package/dist/predicates/index.js +1 -1
- package/dist/predicates/index.js.map +1 -1
- package/dist/predicates/metrics.d.ts +4 -2
- package/dist/predicates/metrics.d.ts.map +1 -1
- package/dist/predicates/metrics.js +4 -2
- package/dist/predicates/metrics.js.map +1 -1
- package/dist/predicates/module.d.ts +4 -12
- package/dist/predicates/module.d.ts.map +1 -1
- package/dist/predicates/module.js +57 -37
- package/dist/predicates/module.js.map +1 -1
- package/dist/presets/agent-guardrails.d.ts +22 -15
- package/dist/presets/agent-guardrails.d.ts.map +1 -1
- package/dist/presets/agent-guardrails.js +124 -19
- package/dist/presets/agent-guardrails.js.map +1 -1
- package/dist/presets/boundaries.d.ts +45 -2
- package/dist/presets/boundaries.d.ts.map +1 -1
- package/dist/presets/boundaries.js +132 -23
- package/dist/presets/boundaries.js.map +1 -1
- package/dist/presets/data-layer.d.ts +22 -2
- package/dist/presets/data-layer.d.ts.map +1 -1
- package/dist/presets/data-layer.js +58 -16
- package/dist/presets/data-layer.js.map +1 -1
- package/dist/presets/index.d.ts +7 -5
- package/dist/presets/index.d.ts.map +1 -1
- package/dist/presets/index.js +9 -3
- package/dist/presets/index.js.map +1 -1
- package/dist/presets/layered.d.ts +46 -2
- package/dist/presets/layered.d.ts.map +1 -1
- package/dist/presets/layered.js +66 -29
- package/dist/presets/layered.js.map +1 -1
- package/dist/presets/recommended.d.ts +80 -9
- package/dist/presets/recommended.d.ts.map +1 -1
- package/dist/presets/recommended.js +25 -23
- package/dist/presets/recommended.js.map +1 -1
- package/dist/presets/shared.d.ts +270 -2
- package/dist/presets/shared.d.ts.map +1 -1
- package/dist/presets/shared.js +338 -4
- package/dist/presets/shared.js.map +1 -1
- package/dist/rules/code-quality.d.ts.map +1 -1
- package/dist/rules/code-quality.js +15 -6
- package/dist/rules/code-quality.js.map +1 -1
- package/dist/rules/hygiene.d.ts +1 -1
- package/dist/rules/hygiene.js +1 -1
- package/dist/rules/metrics-function.d.ts +2 -1
- package/dist/rules/metrics-function.d.ts.map +1 -1
- package/dist/rules/metrics-function.js +33 -6
- package/dist/rules/metrics-function.js.map +1 -1
- package/dist/rules/metrics.d.ts +2 -1
- package/dist/rules/metrics.d.ts.map +1 -1
- package/dist/rules/metrics.js +39 -9
- package/dist/rules/metrics.js.map +1 -1
- package/dist/smells/duplicate-bodies.d.ts +58 -5
- package/dist/smells/duplicate-bodies.d.ts.map +1 -1
- package/dist/smells/duplicate-bodies.js +137 -56
- package/dist/smells/duplicate-bodies.js.map +1 -1
- package/dist/smells/fingerprint.d.ts +8 -1
- package/dist/smells/fingerprint.d.ts.map +1 -1
- package/dist/smells/fingerprint.js +21 -3
- package/dist/smells/fingerprint.js.map +1 -1
- package/dist/smells/inconsistent-siblings.d.ts +128 -7
- package/dist/smells/inconsistent-siblings.d.ts.map +1 -1
- package/dist/smells/inconsistent-siblings.js +288 -86
- package/dist/smells/inconsistent-siblings.js.map +1 -1
- package/dist/smells/sibling-files.d.ts +47 -0
- package/dist/smells/sibling-files.d.ts.map +1 -0
- package/dist/smells/sibling-files.js +104 -0
- package/dist/smells/sibling-files.js.map +1 -0
- package/dist/smells/similar-pairs.d.ts +27 -0
- package/dist/smells/similar-pairs.d.ts.map +1 -0
- package/dist/smells/similar-pairs.js +52 -0
- package/dist/smells/similar-pairs.js.map +1 -0
- package/dist/smells/smell-builder.d.ts +57 -12
- package/dist/smells/smell-builder.d.ts.map +1 -1
- package/dist/smells/smell-builder.js +111 -14
- package/dist/smells/smell-builder.js.map +1 -1
- package/dist/tsconfig/index.d.ts +19 -0
- package/dist/tsconfig/index.d.ts.map +1 -0
- package/dist/tsconfig/index.js +20 -0
- package/dist/tsconfig/index.js.map +1 -0
- package/dist/tsconfig/tsconfig-builder.d.ts +42 -9
- package/dist/tsconfig/tsconfig-builder.d.ts.map +1 -1
- package/dist/tsconfig/tsconfig-builder.js +64 -16
- package/dist/tsconfig/tsconfig-builder.js.map +1 -1
- package/package.json +3 -2
- package/dist/core/module-dependencies.d.ts +0 -28
- package/dist/core/module-dependencies.d.ts.map +0 -1
- package/dist/core/module-dependencies.js +0 -35
- package/dist/core/module-dependencies.js.map +0 -1
- package/dist/helpers/within.d.ts.map +0 -1
- package/dist/helpers/within.js.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"baseline.js","sourceRoot":"","sources":["../../src/helpers/baseline.ts"],"names":[],"mappings":"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"}
|
|
@@ -15,12 +15,36 @@ export interface ModuleBodyOptions {
|
|
|
15
15
|
/**
|
|
16
16
|
* Result of searching a body for matcher hits.
|
|
17
17
|
*/
|
|
18
|
-
|
|
18
|
+
interface MatchResult {
|
|
19
19
|
/** Whether at least one match was found */
|
|
20
20
|
found: boolean;
|
|
21
21
|
/** The matching nodes (for violation reporting: file, line, text) */
|
|
22
22
|
matchingNodes: Node[];
|
|
23
|
+
/**
|
|
24
|
+
* Parallel to {@link matchingNodes}: which comment each match is about, for
|
|
25
|
+
* trivia matchers. `undefined` entries mean the node itself is the match.
|
|
26
|
+
*
|
|
27
|
+
* Bug 0034. One node can carry several matching comments, so the node alone
|
|
28
|
+
* cannot identify a finding — four stacked `// TODO` lines lead one
|
|
29
|
+
* statement and are four findings, not one.
|
|
30
|
+
*/
|
|
31
|
+
triviaPositions: (number | undefined)[];
|
|
32
|
+
}
|
|
33
|
+
/** One match: the node to report on, and which comment it is about. */
|
|
34
|
+
interface Match {
|
|
35
|
+
readonly node: Node;
|
|
36
|
+
readonly triviaPos?: number;
|
|
23
37
|
}
|
|
38
|
+
/**
|
|
39
|
+
* The line a finding about `node` should name.
|
|
40
|
+
*
|
|
41
|
+
* For a trivia matcher that is the **comment's** line, not the node's — the
|
|
42
|
+
* position comes from `MatchResult.triviaPositions`, alongside the node. One
|
|
43
|
+
* accessor rather than ten open-coded `node.getStartLineNumber()` calls,
|
|
44
|
+
* because the `notContain` family computes the line twice per finding (the
|
|
45
|
+
* `line` field and the message text) and the two must not disagree.
|
|
46
|
+
*/
|
|
47
|
+
export declare function reportedLine(node: Node, triviaPos: number | undefined): number;
|
|
24
48
|
/**
|
|
25
49
|
* Find all nodes in a subtree that match the given matcher.
|
|
26
50
|
*
|
|
@@ -28,7 +52,7 @@ export interface MatchResult {
|
|
|
28
52
|
* (efficient — only walks nodes of that kind). Falls back to
|
|
29
53
|
* getDescendants() for matchers without syntaxKinds (expression()).
|
|
30
54
|
*/
|
|
31
|
-
export declare function findMatchesInNode(node: Node, matcher: ExpressionMatcher):
|
|
55
|
+
export declare function findMatchesInNode(node: Node, matcher: ExpressionMatcher): Match[];
|
|
32
56
|
/**
|
|
33
57
|
* Search all method bodies in a class for matches.
|
|
34
58
|
*
|
|
@@ -55,4 +79,5 @@ export declare function searchFunctionBody(fn: ArchFunction, matcher: Expression
|
|
|
55
79
|
*/
|
|
56
80
|
export declare function getFunctionBody(node: Node): Node | undefined;
|
|
57
81
|
export declare function searchModuleBody(sourceFile: SourceFile, matcher: ExpressionMatcher, options?: ModuleBodyOptions): MatchResult;
|
|
82
|
+
export {};
|
|
58
83
|
//# sourceMappingURL=body-traversal.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"body-traversal.d.ts","sourceRoot":"","sources":["../../src/helpers/body-traversal.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"body-traversal.d.ts","sourceRoot":"","sources":["../../src/helpers/body-traversal.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,IAAI,EACT,KAAK,gBAAgB,EACrB,KAAK,UAAU,EAGhB,MAAM,UAAU,CAAA;AACjB,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAA;AACtD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAA;AAG9D;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC;;;;OAIG;IACH,aAAa,CAAC,EAAE,OAAO,CAAA;CACxB;AAED;;GAEG;AACH,UAAU,WAAW;IACnB,2CAA2C;IAC3C,KAAK,EAAE,OAAO,CAAA;IACd,qEAAqE;IACrE,aAAa,EAAE,IAAI,EAAE,CAAA;IACrB;;;;;;;OAOG;IACH,eAAe,EAAE,CAAC,MAAM,GAAG,SAAS,CAAC,EAAE,CAAA;CACxC;AAED,uEAAuE;AACvE,UAAU,KAAK;IACb,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAA;IACnB,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAC5B;AA6BD;;;;;;;;GAQG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,CAG9E;AA8BD;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,iBAAiB,GAAG,KAAK,EAAE,CAYjF;AAiCD;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,gBAAgB,EAAE,OAAO,EAAE,iBAAiB,GAAG,WAAW,CAkC9F;AAuBD;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAAC,EAAE,EAAE,YAAY,EAAE,OAAO,EAAE,iBAAiB,GAAG,WAAW,CAgC5F;AAED;;;;;;;;GAQG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI,GAAG,SAAS,CAQ5D;AAiCD,wBAAgB,gBAAgB,CAC9B,UAAU,EAAE,UAAU,EACtB,OAAO,EAAE,iBAAiB,EAC1B,OAAO,CAAC,EAAE,iBAAiB,GAC1B,WAAW,CA4Bb"}
|
|
@@ -1,18 +1,44 @@
|
|
|
1
|
-
import { Node as NodeUtils } from 'ts-morph';
|
|
1
|
+
import { Node as NodeUtils, SyntaxKind, } from 'ts-morph';
|
|
2
|
+
import { allDescendants, descendantsOfKind } from '../core/descendant-cache.js';
|
|
3
|
+
/** Split matches into the parallel arrays `MatchResult` carries. */
|
|
4
|
+
function toResult(matches) {
|
|
5
|
+
return {
|
|
6
|
+
found: matches.length > 0,
|
|
7
|
+
matchingNodes: matches.map((m) => m.node),
|
|
8
|
+
triviaPositions: matches.map((m) => m.triviaPos),
|
|
9
|
+
};
|
|
10
|
+
}
|
|
2
11
|
/**
|
|
3
12
|
* Targeted traversal: only check nodes of the specified syntax kinds.
|
|
4
13
|
*/
|
|
5
14
|
function findMatchesByKind(node, matcher) {
|
|
6
15
|
const matches = [];
|
|
7
16
|
for (const kind of matcher.syntaxKinds ?? []) {
|
|
8
|
-
|
|
17
|
+
// Cached: the walk is a function of (node, kind) and only the matcher's
|
|
18
|
+
// filter differs, so N matchers over one body did N identical traversals.
|
|
19
|
+
// `agentGuardrails` emits one rule per banned API and paid exactly that.
|
|
20
|
+
for (const descendant of descendantsOfKind(node, kind)) {
|
|
9
21
|
if (matcher.matches(descendant)) {
|
|
10
|
-
matches.push(descendant);
|
|
22
|
+
matches.push({ node: descendant });
|
|
11
23
|
}
|
|
12
24
|
}
|
|
13
25
|
}
|
|
14
26
|
return matches;
|
|
15
27
|
}
|
|
28
|
+
/**
|
|
29
|
+
* The line a finding about `node` should name.
|
|
30
|
+
*
|
|
31
|
+
* For a trivia matcher that is the **comment's** line, not the node's — the
|
|
32
|
+
* position comes from `MatchResult.triviaPositions`, alongside the node. One
|
|
33
|
+
* accessor rather than ten open-coded `node.getStartLineNumber()` calls,
|
|
34
|
+
* because the `notContain` family computes the line twice per finding (the
|
|
35
|
+
* `line` field and the message text) and the two must not disagree.
|
|
36
|
+
*/
|
|
37
|
+
export function reportedLine(node, triviaPos) {
|
|
38
|
+
if (triviaPos === undefined)
|
|
39
|
+
return node.getStartLineNumber();
|
|
40
|
+
return node.getSourceFile().getLineAndColumnAtPos(triviaPos).line;
|
|
41
|
+
}
|
|
16
42
|
/**
|
|
17
43
|
* Broad traversal: check every descendant, then deduplicate.
|
|
18
44
|
*
|
|
@@ -22,12 +48,17 @@ function findMatchesByKind(node, matcher) {
|
|
|
22
48
|
*/
|
|
23
49
|
function findMatchesBroad(node, matcher) {
|
|
24
50
|
const matches = [];
|
|
25
|
-
|
|
51
|
+
// Cached: the walk is kind-independent and identical across matchers, and
|
|
52
|
+
// measured it is ~three quarters of a broad matcher's cost. Only the filter
|
|
53
|
+
// below is per-matcher.
|
|
54
|
+
for (const descendant of allDescendants(node)) {
|
|
26
55
|
if (matcher.matches(descendant)) {
|
|
27
56
|
matches.push(descendant);
|
|
28
57
|
}
|
|
29
58
|
}
|
|
30
|
-
return matches
|
|
59
|
+
return matches
|
|
60
|
+
.filter((m) => !matches.some((other) => other !== m && other.getStart() >= m.getStart() && other.getEnd() <= m.getEnd()))
|
|
61
|
+
.map((n) => ({ node: n }));
|
|
31
62
|
}
|
|
32
63
|
/**
|
|
33
64
|
* Find all nodes in a subtree that match the given matcher.
|
|
@@ -37,11 +68,48 @@ function findMatchesBroad(node, matcher) {
|
|
|
37
68
|
* getDescendants() for matchers without syntaxKinds (expression()).
|
|
38
69
|
*/
|
|
39
70
|
export function findMatchesInNode(node, matcher) {
|
|
71
|
+
// TRIVIA first, and at the dispatcher rather than inside the broad walk.
|
|
72
|
+
// A trivia matcher may also narrow by `syntaxKinds` for speed — plan 0047's
|
|
73
|
+
// `tsDirective()` wants exactly that — and with the branch one level down it
|
|
74
|
+
// took the by-kind path and got no expansion at all.
|
|
75
|
+
if (matcher.matchedTriviaPositions !== undefined) {
|
|
76
|
+
return triviaMatches(node, matcher);
|
|
77
|
+
}
|
|
40
78
|
if (matcher.syntaxKinds && matcher.syntaxKinds.length > 0) {
|
|
41
79
|
return findMatchesByKind(node, matcher);
|
|
42
80
|
}
|
|
43
81
|
return findMatchesBroad(node, matcher);
|
|
44
82
|
}
|
|
83
|
+
/**
|
|
84
|
+
* One match per distinct COMMENT, not per node.
|
|
85
|
+
*
|
|
86
|
+
* The deepest-node filter is skipped deliberately: it exists because
|
|
87
|
+
* `expression()` matches at every ancestor level, and a comment's node is where
|
|
88
|
+
* it is **attached** rather than something containing it. Applying it made two
|
|
89
|
+
* nodes with identical spans each remove the other — measured at zero findings
|
|
90
|
+
* for three comments.
|
|
91
|
+
*
|
|
92
|
+
* The same comment is trivia of several nested nodes, so positions are
|
|
93
|
+
* deduplicated globally and the first node to name one wins.
|
|
94
|
+
*/
|
|
95
|
+
function triviaMatches(node, matcher) {
|
|
96
|
+
const seen = new Set();
|
|
97
|
+
const out = [];
|
|
98
|
+
const candidates = matcher.syntaxKinds && matcher.syntaxKinds.length > 0
|
|
99
|
+
? matcher.syntaxKinds.flatMap((kind) => [...descendantsOfKind(node, kind)])
|
|
100
|
+
: allDescendants(node);
|
|
101
|
+
for (const descendant of [node, ...candidates]) {
|
|
102
|
+
for (const pos of matcher.matchedTriviaPositions?.(descendant) ?? []) {
|
|
103
|
+
if (seen.has(pos))
|
|
104
|
+
continue;
|
|
105
|
+
seen.add(pos);
|
|
106
|
+
out.push({ node: descendant, triviaPos: pos });
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
// Source order. Pre-order visits an enclosing node's TRAILING range before
|
|
110
|
+
// the statements it spans, so raw order is not the reader's.
|
|
111
|
+
return out.sort((a, b) => (a.triviaPos ?? 0) - (b.triviaPos ?? 0));
|
|
112
|
+
}
|
|
45
113
|
/**
|
|
46
114
|
* Search all method bodies in a class for matches.
|
|
47
115
|
*
|
|
@@ -78,10 +146,28 @@ export function searchClassBody(cls, matcher) {
|
|
|
78
146
|
matchingNodes.push(...findMatchesInNode(body, matcher));
|
|
79
147
|
}
|
|
80
148
|
}
|
|
81
|
-
return
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
149
|
+
return toResult(matchingNodes);
|
|
150
|
+
}
|
|
151
|
+
/**
|
|
152
|
+
* The node a function's own docstring is attached to.
|
|
153
|
+
*
|
|
154
|
+
* For a `function` declaration that is the declaration itself. For an arrow or
|
|
155
|
+
* function expression assigned to a `const`, `ArchFunction.getNode()` returns the
|
|
156
|
+
* **VariableDeclaration**, and the comment attaches two levels up on the
|
|
157
|
+
* `VariableStatement` — measured: `nodeLeading: 0`, `parentLeading: 0`,
|
|
158
|
+
* `grandparentLeading: 1`. So the first version of bug 0052's fix repaired
|
|
159
|
+
* `function f()` and left `const f = () => …` broken, which is half the codebases
|
|
160
|
+
* that would use the rule.
|
|
161
|
+
*
|
|
162
|
+
* `getFirstAncestorByKind` finds the NEAREST enclosing statement, so a nested
|
|
163
|
+
* arrow inside a function does not reach out to the outer function's docstring —
|
|
164
|
+
* pinned by a control, because that over-reach is the obvious way to fix this
|
|
165
|
+
* wrongly.
|
|
166
|
+
*/
|
|
167
|
+
function triviaRoot(node) {
|
|
168
|
+
if (!NodeUtils.isVariableDeclaration(node))
|
|
169
|
+
return node;
|
|
170
|
+
return node.getFirstAncestorByKind(SyntaxKind.VariableStatement) ?? node;
|
|
85
171
|
}
|
|
86
172
|
/**
|
|
87
173
|
* Search a function body for matches.
|
|
@@ -91,15 +177,35 @@ export function searchClassBody(cls, matcher) {
|
|
|
91
177
|
* still works — it walks the expression subtree.
|
|
92
178
|
*/
|
|
93
179
|
export function searchFunctionBody(fn, matcher) {
|
|
180
|
+
// A TRIVIA matcher searches from the DECLARATION; everything else from the body.
|
|
181
|
+
//
|
|
182
|
+
// [ts-archunit Bug 0052](https://github.com/nielspeter/ts-archunit/blob/main/bugs/fixed/0052-nostubcomments-cannot-see-a-functions-own-docstring.md):
|
|
183
|
+
// a function's own leading comment attaches to the declaration, not to anything
|
|
184
|
+
// inside the body — so `noStubComments()` saw a `TODO` inside a body and trailing
|
|
185
|
+
// a function, and missed both `// TODO` and `/** TODO */` **above** it, which are
|
|
186
|
+
// the two placements anyone actually writes. Measured 1/1/0/0 across those four.
|
|
187
|
+
// `comment()` reads leading ranges perfectly well; the traversal never offered it
|
|
188
|
+
// the declaration.
|
|
189
|
+
//
|
|
190
|
+
// Searching from the declaration rather than *also* searching it: `triviaMatches`
|
|
191
|
+
// visits `[node, ...allDescendants(node)]` and deduplicates by comment position,
|
|
192
|
+
// so the body is still covered and no comment can be reported twice. Testing the
|
|
193
|
+
// declaration separately would have needed its own dedup against the body's.
|
|
194
|
+
//
|
|
195
|
+
// Only for trivia matchers, and that discrimination is the point rather than a
|
|
196
|
+
// shortcut: `functionNotContain` is general-purpose, and handing the declaration
|
|
197
|
+
// node to `expression(/…/)` would match the function's entire source text —
|
|
198
|
+
// turning every body-analysis rule into a whole-declaration one. A matcher that
|
|
199
|
+
// reads trivia is exactly the set that needs the attachment point.
|
|
200
|
+
if (matcher.matchedTriviaPositions !== undefined) {
|
|
201
|
+
return toResult(findMatchesInNode(triviaRoot(fn.getNode()), matcher));
|
|
202
|
+
}
|
|
94
203
|
const body = fn.getBody();
|
|
95
204
|
if (!body) {
|
|
96
|
-
return
|
|
205
|
+
return toResult([]);
|
|
97
206
|
}
|
|
98
207
|
const matchingNodes = findMatchesInNode(body, matcher);
|
|
99
|
-
return
|
|
100
|
-
found: matchingNodes.length > 0,
|
|
101
|
-
matchingNodes,
|
|
102
|
-
};
|
|
208
|
+
return toResult(matchingNodes);
|
|
103
209
|
}
|
|
104
210
|
/**
|
|
105
211
|
* Extract the body from a function-like argument node.
|
|
@@ -155,7 +261,7 @@ export function searchModuleBody(sourceFile, matcher, options) {
|
|
|
155
261
|
if (!options?.scopeToModule) {
|
|
156
262
|
// Full file traversal — walk all descendants
|
|
157
263
|
const matchingNodes = findMatchesInNode(sourceFile, matcher);
|
|
158
|
-
return
|
|
264
|
+
return toResult(matchingNodes);
|
|
159
265
|
}
|
|
160
266
|
// Module-scope only — walk each top-level statement but skip class/function internals
|
|
161
267
|
const matchingNodes = [];
|
|
@@ -175,6 +281,6 @@ export function searchModuleBody(sourceFile, matcher, options) {
|
|
|
175
281
|
// All other statements: walk their descendants
|
|
176
282
|
matchingNodes.push(...findMatchesInNode(statement, matcher));
|
|
177
283
|
}
|
|
178
|
-
return
|
|
284
|
+
return toResult(matchingNodes);
|
|
179
285
|
}
|
|
180
286
|
//# sourceMappingURL=body-traversal.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"body-traversal.js","sourceRoot":"","sources":["../../src/helpers/body-traversal.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"body-traversal.js","sourceRoot":"","sources":["../../src/helpers/body-traversal.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"callback-extractor.d.ts","sourceRoot":"","sources":["../../src/helpers/callback-extractor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,cAAc,
|
|
1
|
+
{"version":3,"file":"callback-extractor.d.ts","sourceRoot":"","sources":["../../src/helpers/callback-extractor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,cAAc,EAAoB,MAAM,UAAU,CAAA;AAChE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAA;AAI9D;;;GAGG;AACH,MAAM,WAAW,iBAAiB;IAChC,8CAA8C;IAC9C,EAAE,EAAE,YAAY,CAAA;IAChB,4DAA4D;IAC5D,QAAQ,EAAE,cAAc,CAAA;IACxB,2DAA2D;IAC3D,QAAQ,EAAE,MAAM,CAAA;CACjB;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,cAAc,GAAG,iBAAiB,EAAE,CAiB9E"}
|
|
@@ -1,4 +1,6 @@
|
|
|
1
|
-
import { Node
|
|
1
|
+
import { Node, SyntaxKind } from 'ts-morph';
|
|
2
|
+
import { fromObjectLiteralFunction } from '../models/arch-function.js';
|
|
3
|
+
import { collectObjectLiteralFunctions } from '../core/object-literal-functions.js';
|
|
2
4
|
/**
|
|
3
5
|
* Extract all inline function arguments from a call expression.
|
|
4
6
|
*
|
|
@@ -24,58 +26,57 @@ export function extractCallbacks(callExpr) {
|
|
|
24
26
|
}
|
|
25
27
|
else {
|
|
26
28
|
// Search object literal arguments for function-valued properties
|
|
27
|
-
callbacks.push(...extractFromObjectLiteral(arg, callExpr, i
|
|
29
|
+
callbacks.push(...extractFromObjectLiteral(arg, callExpr, i));
|
|
28
30
|
}
|
|
29
31
|
}
|
|
30
32
|
return callbacks;
|
|
31
33
|
}
|
|
32
34
|
/**
|
|
33
|
-
*
|
|
34
|
-
*
|
|
35
|
+
* Extract function-valued properties from an object-literal argument as
|
|
36
|
+
* callbacks, using the shared object-literal traversal (F3). Handles arrows,
|
|
37
|
+
* function expressions, method shorthand, and nested object literals
|
|
38
|
+
* (depth-limited). F3 supplies the traversal AND, since plan 0082, the naming:
|
|
39
|
+
* `keyPath` reaches `fromObjectLiteralFunction`, so a property callback carries its
|
|
40
|
+
* property name. (This said "names stay context-derived, arrows anonymous, exactly
|
|
41
|
+
* as before" for one release after that stopped being true — directly contradicted
|
|
42
|
+
* by the code six lines below it.) **Positional** callbacks are still anonymous and
|
|
43
|
+
* identified by `argIndex`.
|
|
35
44
|
*/
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
//
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
if (direct) {
|
|
72
|
-
results.push(direct);
|
|
73
|
-
continue;
|
|
74
|
-
}
|
|
75
|
-
// Recurse into nested object literals (depth-limited)
|
|
76
|
-
results.push(...extractFromObjectLiteral(init, callSite, argIndex, depth + 1));
|
|
77
|
-
}
|
|
78
|
-
return results;
|
|
45
|
+
function extractFromObjectLiteral(arg, callSite, argIndex) {
|
|
46
|
+
// `olf.keyPath` used to be dropped here, one line from where it is produced —
|
|
47
|
+
// [ts-archunit plan 0082](https://github.com/nielspeter/ts-archunit/blob/main/plans/completed/0082-an-object-literal-callback-keeps-its-name.md).
|
|
48
|
+
// `callbackArchFunction` routes an arrow to `fromArrowExpression`, which hardcodes
|
|
49
|
+
// `getName: () => undefined`, so both callbacks on `{ preHandler, handler }` came
|
|
50
|
+
// back anonymous AND shared an `argIndex` (the object's). Nothing in the shape
|
|
51
|
+
// told them apart, so a rule about the `handler` callback was writable and
|
|
52
|
+
// selected nothing — expressible, plausible, and empty.
|
|
53
|
+
//
|
|
54
|
+
// `fromObjectLiteralFunction` already existed, already exported, already
|
|
55
|
+
// computing the name from exactly this `keyPath`. The gap was one call.
|
|
56
|
+
return collectObjectLiteralFunctions(arg).map((olf) => ({
|
|
57
|
+
// Falls back rather than dropping: `fromObjectLiteralFunction` returns
|
|
58
|
+
// `undefined` for a node shape it does not recognise, and filtering those out
|
|
59
|
+
// would turn an unnamed callback into a MISSING one — a silent under-report,
|
|
60
|
+
// which is worse than the anonymity this change removes.
|
|
61
|
+
//
|
|
62
|
+
// **Unreachable today, and recorded rather than claimed load-bearing.**
|
|
63
|
+
// `collectObjectLiteralFunctions` emits only arrows, function expressions and
|
|
64
|
+
// method declarations — exactly the three kinds `fromObjectLiteralFunction`
|
|
65
|
+
// accepts — so no runtime test covers this branch and none can while the
|
|
66
|
+
// collector stays closed over those kinds. What guards it is the type: removing
|
|
67
|
+
// the `??` is a compile error (TS2322), and CI runs `typecheck` before `test`.
|
|
68
|
+
fn: fromObjectLiteralFunction(olf.node, olf.keyPath) ?? callbackArchFunction(olf.node),
|
|
69
|
+
callSite,
|
|
70
|
+
argIndex,
|
|
71
|
+
}));
|
|
72
|
+
}
|
|
73
|
+
/** Wrap an object-literal function node as an ArchFunction for the callback path. */
|
|
74
|
+
function callbackArchFunction(node) {
|
|
75
|
+
if (Node.isArrowFunction(node))
|
|
76
|
+
return fromArrowExpression(node);
|
|
77
|
+
if (Node.isFunctionExpression(node))
|
|
78
|
+
return fromFunctionExpression(node);
|
|
79
|
+
return fromMethodDeclaration(node);
|
|
79
80
|
}
|
|
80
81
|
/**
|
|
81
82
|
* Try to extract an ArchFunction from a single argument node.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"callback-extractor.js","sourceRoot":"","sources":["../../src/helpers/callback-extractor.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"callback-extractor.js","sourceRoot":"","sources":["../../src/helpers/callback-extractor.ts"],"names":[],"mappings":"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"}
|
|
@@ -11,12 +11,20 @@ import type { ClassDeclaration } from 'ts-morph';
|
|
|
11
11
|
*/
|
|
12
12
|
export declare function cyclomaticComplexity(body: Node | undefined): number;
|
|
13
13
|
/**
|
|
14
|
-
* Count lines
|
|
14
|
+
* Count the lines of a node that actually carry code.
|
|
15
15
|
*
|
|
16
|
-
*
|
|
17
|
-
*
|
|
18
|
-
*
|
|
19
|
-
*
|
|
16
|
+
* Physical source lines, excluding comments and blank lines. A line holding only
|
|
17
|
+
* `}` still counts — it is a source line; this is not a statement count.
|
|
18
|
+
*
|
|
19
|
+
* **Why not the span.**
|
|
20
|
+
* [Bug 0170](../../../../work/bugs/0170-linesofcode-counts-comments-so-documentation-reads-as-size.md):
|
|
21
|
+
* this was `end - start + 1`, which measures documentation as size. In this repo
|
|
22
|
+
* that put two rules in direct conflict — `eess/jsdoc-on-public-methods` requires
|
|
23
|
+
* a doc block on every public method, and `eess/max-class-lines` then counted
|
|
24
|
+
* those blocks, so satisfying the first rule broke the second.
|
|
25
|
+
*
|
|
26
|
+
* The index that answers this lives in `core/line-index.ts`, with the rest of
|
|
27
|
+
* the AST caches and their invalidation — see there for why it is not here.
|
|
20
28
|
*/
|
|
21
29
|
export declare function linesOfCode(node: Node): number;
|
|
22
30
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"complexity.d.ts","sourceRoot":"","sources":["../../src/helpers/complexity.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,IAAI,EAAE,MAAM,UAAU,CAAA;
|
|
1
|
+
{"version":3,"file":"complexity.d.ts","sourceRoot":"","sources":["../../src/helpers/complexity.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,IAAI,EAAE,MAAM,UAAU,CAAA;AAE3C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAA;AAsBhD;;;;;;;;GAQG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,IAAI,GAAG,SAAS,GAAG,MAAM,CAoBnE;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,IAAI,GAAG,MAAM,CAE9C;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,GAAG,EAAE,gBAAgB,GAAG,MAAM,CAEzD"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { SyntaxKind, Node } from 'ts-morph';
|
|
2
|
+
import { countCodeLines } from '../core/line-index.js';
|
|
2
3
|
/** Decision-point SyntaxKinds that increment cyclomatic complexity */
|
|
3
4
|
const DECISION_KINDS = new Set([
|
|
4
5
|
SyntaxKind.IfStatement,
|
|
@@ -45,15 +46,23 @@ export function cyclomaticComplexity(body) {
|
|
|
45
46
|
return complexity;
|
|
46
47
|
}
|
|
47
48
|
/**
|
|
48
|
-
* Count lines
|
|
49
|
+
* Count the lines of a node that actually carry code.
|
|
49
50
|
*
|
|
50
|
-
*
|
|
51
|
-
*
|
|
52
|
-
*
|
|
53
|
-
*
|
|
51
|
+
* Physical source lines, excluding comments and blank lines. A line holding only
|
|
52
|
+
* `}` still counts — it is a source line; this is not a statement count.
|
|
53
|
+
*
|
|
54
|
+
* **Why not the span.**
|
|
55
|
+
* [Bug 0170](../../../../work/bugs/0170-linesofcode-counts-comments-so-documentation-reads-as-size.md):
|
|
56
|
+
* this was `end - start + 1`, which measures documentation as size. In this repo
|
|
57
|
+
* that put two rules in direct conflict — `eess/jsdoc-on-public-methods` requires
|
|
58
|
+
* a doc block on every public method, and `eess/max-class-lines` then counted
|
|
59
|
+
* those blocks, so satisfying the first rule broke the second.
|
|
60
|
+
*
|
|
61
|
+
* The index that answers this lives in `core/line-index.ts`, with the rest of
|
|
62
|
+
* the AST caches and their invalidation — see there for why it is not here.
|
|
54
63
|
*/
|
|
55
64
|
export function linesOfCode(node) {
|
|
56
|
-
return
|
|
65
|
+
return countCodeLines(node);
|
|
57
66
|
}
|
|
58
67
|
/**
|
|
59
68
|
* Count the number of methods on a class.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"complexity.js","sourceRoot":"","sources":["../../src/helpers/complexity.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,UAAU,CAAA;
|
|
1
|
+
{"version":3,"file":"complexity.js","sourceRoot":"","sources":["../../src/helpers/complexity.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,UAAU,CAAA;AAC3C,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAA;AAGtD,sEAAsE;AACtE,MAAM,cAAc,GAAG,IAAI,GAAG,CAAC;IAC7B,UAAU,CAAC,WAAW;IACtB,UAAU,CAAC,qBAAqB;IAChC,UAAU,CAAC,YAAY;IACvB,UAAU,CAAC,cAAc;IACzB,UAAU,CAAC,cAAc;IACzB,UAAU,CAAC,cAAc;IACzB,UAAU,CAAC,WAAW;IACtB,UAAU,CAAC,WAAW;IACtB,UAAU,CAAC,UAAU;CACtB,CAAC,CAAA;AAEF,iDAAiD;AACjD,MAAM,iBAAiB,GAAG,IAAI,GAAG,CAAC;IAChC,UAAU,CAAC,uBAAuB,EAAE,KAAK;IACzC,UAAU,CAAC,WAAW,EAAE,KAAK;IAC7B,UAAU,CAAC,qBAAqB,EAAE,KAAK;CACxC,CAAC,CAAA;AAEF;;;;;;;;GAQG;AACH,MAAM,UAAU,oBAAoB,CAAC,IAAsB;IACzD,IAAI,CAAC,IAAI;QAAE,OAAO,CAAC,CAAA;IAEnB,IAAI,UAAU,GAAG,CAAC,CAAA;IAElB,KAAK,MAAM,UAAU,IAAI,IAAI,CAAC,cAAc,EAAE,EAAE,CAAC;QAC/C,IAAI,cAAc,CAAC,GAAG,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC;YAC7C,UAAU,EAAE,CAAA;QACd,CAAC;QAED,gDAAgD;QAChD,IAAI,IAAI,CAAC,kBAAkB,CAAC,UAAU,CAAC,EAAE,CAAC;YACxC,MAAM,MAAM,GAAG,UAAU,CAAC,gBAAgB,EAAE,CAAC,OAAO,EAAE,CAAA;YACtD,IAAI,iBAAiB,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;gBAClC,UAAU,EAAE,CAAA;YACd,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,UAAU,CAAA;AACnB,CAAC;AAED;;;;;;;;;;;;;;;GAeG;AACH,MAAM,UAAU,WAAW,CAAC,IAAU;IACpC,OAAO,cAAc,CAAC,IAAI,CAAC,CAAA;AAC7B,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,WAAW,CAAC,GAAqB;IAC/C,OAAO,GAAG,CAAC,UAAU,EAAE,CAAC,MAAM,CAAA;AAChC,CAAC"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import type { ArchViolation } from '@nielspeter/eess';
|
|
2
|
+
/**
|
|
3
|
+
* A diff filter that restricts violation reporting to files
|
|
4
|
+
* changed since a base branch.
|
|
5
|
+
*
|
|
6
|
+
* IMPORTANT: Rules evaluate the FULL project (needed for cross-file
|
|
7
|
+
* rules like cycles and layer ordering). Only the REPORTING is filtered
|
|
8
|
+
* to changed files. This ensures correctness — a new file that creates
|
|
9
|
+
* a cycle is detected even though the cycle involves unchanged files.
|
|
10
|
+
*/
|
|
11
|
+
export declare class DiffFilter {
|
|
12
|
+
private readonly changedFiles;
|
|
13
|
+
/**
|
|
14
|
+
* The branch this filter diffed against, for the suppression notice plan
|
|
15
|
+
* 0071 added. Defaulted rather than required: the constructor is public API
|
|
16
|
+
* (`src/index.ts` exports `DiffFilter`), so an existing
|
|
17
|
+
* `new DiffFilter(files)` must keep compiling.
|
|
18
|
+
*/
|
|
19
|
+
readonly baseBranch: string;
|
|
20
|
+
constructor(changedFiles: Set<string> | null, baseBranch?: string);
|
|
21
|
+
/**
|
|
22
|
+
* Filter violations to only those in changed files.
|
|
23
|
+
* If changedFiles is null (git error), returns all violations unfiltered.
|
|
24
|
+
*/
|
|
25
|
+
filterToChanged(violations: ArchViolation[]): ArchViolation[];
|
|
26
|
+
/** Number of changed files detected, or -1 if diff unavailable */
|
|
27
|
+
get size(): number;
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Create a diff filter from git, comparing HEAD against a base branch.
|
|
31
|
+
*
|
|
32
|
+
* Uses `git diff --name-only <base>...HEAD` to find changed files.
|
|
33
|
+
* Resolves relative paths to absolute paths for matching against
|
|
34
|
+
* violation file paths (which are always absolute).
|
|
35
|
+
*
|
|
36
|
+
* @param baseBranch - The base branch to diff against (default: 'main')
|
|
37
|
+
* @returns A DiffFilter for use with check(\{ diff \})
|
|
38
|
+
*
|
|
39
|
+
* @example
|
|
40
|
+
* // Only report violations in files changed since main
|
|
41
|
+
* classes(p).should().notContain(call('eval')).check(\{ diff: diffAware('main') \})
|
|
42
|
+
*/
|
|
43
|
+
export declare function diffAware(baseBranch?: string): DiffFilter;
|
|
44
|
+
//# sourceMappingURL=diff-aware.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"diff-aware.d.ts","sourceRoot":"","sources":["../../src/helpers/diff-aware.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAA;AAGrD;;;;;;;;GAQG;AACH,qBAAa,UAAU;IACrB,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAoB;IAEjD;;;;;OAKG;IACH,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;gBAEf,YAAY,EAAE,GAAG,CAAC,MAAM,CAAC,GAAG,IAAI,EAAE,UAAU,GAAE,MAA0B;IAKpF;;;OAGG;IACH,eAAe,CAAC,UAAU,EAAE,aAAa,EAAE,GAAG,aAAa,EAAE;IAQ7D,kEAAkE;IAClE,IAAI,IAAI,IAAI,MAAM,CAEjB;CACF;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,SAAS,CAAC,UAAU,GAAE,MAAe,GAAG,UAAU,CAiCjE"}
|