@nielspeter/eess-ts 0.2.1 → 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 +61 -35
- 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 -24
- 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
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { edgesOf, FORWARD_EDGE_KINDS } from '../core/module-edges.js';
|
|
2
2
|
/**
|
|
3
3
|
* Build a reverse lookup map: file path -> slice name.
|
|
4
4
|
* Shared by buildSliceDependencyGraph and findSliceDependencyDetails.
|
|
@@ -13,25 +13,115 @@ export function buildFileToSliceMap(slices) {
|
|
|
13
13
|
return fileToSlice;
|
|
14
14
|
}
|
|
15
15
|
/**
|
|
16
|
-
*
|
|
16
|
+
* The edge kinds a **cycle** question counts: the eager static ones.
|
|
17
17
|
*
|
|
18
|
-
*
|
|
19
|
-
*
|
|
20
|
-
*
|
|
18
|
+
* A cycle question asks "what does this slice depend on when the program starts", which
|
|
19
|
+
* is what makes a cycle a cycle. Of `module-edges.ts`' five kinds, two qualify — and
|
|
20
|
+
* each exclusion is a decision with a reason, not an omission:
|
|
21
21
|
*
|
|
22
|
-
*
|
|
23
|
-
*
|
|
24
|
-
*
|
|
22
|
+
* - `import` and `reexport` — **counted.** Both are eager: `export { x } from './b.js'`
|
|
23
|
+
* emits an import of `./b.js`, so that module is evaluated whether or not anything
|
|
24
|
+
* reads `x`. A barrel file is built out of re-exports, and `a → barrel → a` is the
|
|
25
|
+
* cycle real codebases actually have
|
|
26
|
+
* ([ts-archunit plan 0085](https://github.com/nielspeter/ts-archunit/blob/main/plans/completed/0085-the-slice-graph-cannot-see-a-re-export.md)).
|
|
27
|
+
* - `dynamic` — **not counted.** `import('./b.js')` is lazy, so it cannot deadlock
|
|
28
|
+
* module initialization, and it is most often the *deliberate* fix for a cycle.
|
|
29
|
+
* Reporting it as one would fail the rule for applying its own remedy.
|
|
30
|
+
* - `require` — **not counted.** CJS, and this is an ESM-only package (ADR-004). Named
|
|
31
|
+
* here rather than left implicit, so the next reader knows it was considered. The
|
|
32
|
+
* surviving gap is `require` in an `allowJs` project: recorded, not fixed.
|
|
33
|
+
* - `type-expression` — **not counted**, and excluded by *kind* rather than by
|
|
34
|
+
* `typeOnly`. `type X = import('./b.js').Y` is erased, so it must stay out even
|
|
35
|
+
* under `ignoreTypeImports: false` — filtering it on the flag alone would make that
|
|
36
|
+
* option add a class of edge this graph has never had.
|
|
37
|
+
*
|
|
38
|
+
* **This set is the cycle question's answer and nothing else's.** It governed all three
|
|
39
|
+
* slice conditions until [ts-archunit bug 0059](https://github.com/nielspeter/ts-archunit/blob/main/bugs/fixed/0059-slice-conditions-and-module-conditions-disagree-about-a-dependency.md),
|
|
40
|
+
* which is how the cycle rationale came to justify a false negative on two conditions
|
|
41
|
+
* that are not about cycles: `slices(p).should().notDependOn('legacy')` reported **0**
|
|
42
|
+
* while `modules(p).should().notImportFromCondition('**\/legacy/**')` reported **1**, on
|
|
43
|
+
* the same file, the same edge and the same run. See `kindsFor` below.
|
|
25
44
|
*/
|
|
45
|
+
const EAGER_STATIC_KINDS = new Set([
|
|
46
|
+
'import',
|
|
47
|
+
'reexport',
|
|
48
|
+
]);
|
|
26
49
|
/**
|
|
27
|
-
*
|
|
50
|
+
* The edges leaving one file, as a slice graph counts them.
|
|
51
|
+
*
|
|
52
|
+
* Reads `edgesOf()` — the one definition of a module edge (plan 0071, from bug 0022,
|
|
53
|
+
* where five sites collecting `getImportDeclarations()` disagreed with the reverse
|
|
54
|
+
* graph about re-exports). The slice graph was the call site that never adopted it, so
|
|
55
|
+
* `export { x } from './banned.js'` was a dependency to `notImportFrom` and invisible
|
|
56
|
+
* to `beFreeOfCycles` **in the same run**. `edgesOf()` is cached per file and
|
|
57
|
+
* invalidated on modification, so this also replaces a per-call resolution walk.
|
|
58
|
+
*
|
|
59
|
+
* `ignoreTypeImports` drops the erased edges. A type-only import or re-export creates
|
|
60
|
+
* no runtime dependency, so counting it invents cycles that cannot exist at runtime —
|
|
61
|
+
*
|
|
62
|
+
* Which erasure the filter reads depends on the `question`: `'module-request'` reads
|
|
63
|
+
* `erasesModuleRequest`, `'type-bindings'` reads `typeOnly`. Those differ for two
|
|
64
|
+
* spellings under `verbatimModuleSyntax: true` — `import { type X } from 's'` emits
|
|
65
|
+
* `import {} from 's'`, so the specifiers are erased and the module request is not
|
|
66
|
+
* ([ts-archunit plan 0087](https://github.com/nielspeter/ts-archunit/blob/main/plans/completed/0087-an-inline-type-import-still-requests-the-module.md),
|
|
67
|
+
* shipped in v0.49.0; this paragraph described it as unshipped until v0.49.1).
|
|
68
|
+
*
|
|
69
|
+
* [ts-archunit plan 0084](https://github.com/nielspeter/ts-archunit/blob/main/plans/completed/0084-cycle-detection-that-ignores-type-only-imports.md),
|
|
70
|
+
* which is worth remembering for what it cost: this repo's own `arch/no-cycles` rule
|
|
71
|
+
* sat at `.warn()` for months with a comment saying "switch to .check() when
|
|
72
|
+
* beFreeOfCycles ignores import type", and while it could not fail it let a new cycle
|
|
73
|
+
* in overnight.
|
|
74
|
+
*/
|
|
75
|
+
function sliceEdgesOf(file, options, question) {
|
|
76
|
+
const ignoreErased = options?.ignoreTypeImports === true;
|
|
77
|
+
const { counts, erased } = QUESTIONS[question];
|
|
78
|
+
return edgesOf(file).filter((edge) => counts(edge.kind) && !(ignoreErased && erased(edge)));
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* Which edge kinds the question counts — the fix for
|
|
82
|
+
* [ts-archunit bug 0059](https://github.com/nielspeter/ts-archunit/blob/main/bugs/fixed/0059-slice-conditions-and-module-conditions-disagree-about-a-dependency.md).
|
|
83
|
+
*
|
|
84
|
+
* The erasure predicate was already a function of the question
|
|
85
|
+
* ([ts-archunit plan 0087](https://github.com/nielspeter/ts-archunit/blob/main/plans/completed/0087-an-inline-type-import-still-requests-the-module.md));
|
|
86
|
+
* the KIND set was not, so one answer — the cycle one — was serving both questions.
|
|
87
|
+
*
|
|
88
|
+
* - `'module-request'` → the eager static kinds above. A cycle is a deadlock in
|
|
89
|
+
* initialization order, and `import('./b.js')` is lazy: it cannot deadlock, and it is
|
|
90
|
+
* most often the deliberate *fix* for a cycle. Reporting it would fail the rule for
|
|
91
|
+
* applying its own remedy.
|
|
92
|
+
* - `'type-bindings'` → whatever `FORWARD_EDGE_KINDS` says, which is the constant
|
|
93
|
+
* `notImportFrom` and `dependOn` already read. A lazy import of `legacy` is still a
|
|
94
|
+
* forbidden dependency: it is coupling, it breaks when `legacy` is deleted, and nobody
|
|
95
|
+
* is applying a remedy by writing it.
|
|
96
|
+
*
|
|
97
|
+
* **Reusing `FORWARD_EDGE_KINDS` rather than writing a second list is the point.** It is
|
|
98
|
+
* what makes the two families agree *by construction* instead of by two lists someone
|
|
99
|
+
* must keep in step — which is exactly how
|
|
100
|
+
* [ts-archunit bug 0022](https://github.com/nielspeter/ts-archunit/blob/main/bugs/fixed/0022-forward-import-conditions-are-blind-to-reexports-and-dynamic-imports.md)
|
|
101
|
+
* happened one layer down, and how this bug re-opened it one layer up. That constant is
|
|
102
|
+
* a total `Record<ModuleEdgeKind, boolean>`, so a sixth edge kind is a compile error
|
|
103
|
+
* there rather than a silent omission here.
|
|
28
104
|
*/
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
105
|
+
const QUESTIONS = {
|
|
106
|
+
'module-request': {
|
|
107
|
+
counts: (kind) => EAGER_STATIC_KINDS.has(kind),
|
|
108
|
+
erased: (edge) => edge.erasesModuleRequest,
|
|
109
|
+
},
|
|
110
|
+
'type-bindings': {
|
|
111
|
+
counts: (kind) => FORWARD_EDGE_KINDS[kind],
|
|
112
|
+
erased: (edge) => edge.typeOnly,
|
|
113
|
+
},
|
|
114
|
+
};
|
|
115
|
+
/**
|
|
116
|
+
* Collect unique slice edges from a single file's dependencies.
|
|
117
|
+
*/
|
|
118
|
+
function collectEdgesFromFile(file, sliceName, fileToSlice, edgeSet, edges, options, question) {
|
|
119
|
+
for (const edge of sliceEdgesOf(file, options, question)) {
|
|
120
|
+
// A local `export { x }` with no `from` has no specifier, and a specifier the
|
|
121
|
+
// compiler could not resolve points outside the program.
|
|
122
|
+
if (edge.resolvedPath === undefined)
|
|
33
123
|
continue;
|
|
34
|
-
const targetSlice = fileToSlice.get(
|
|
124
|
+
const targetSlice = fileToSlice.get(edge.resolvedPath);
|
|
35
125
|
if (targetSlice && targetSlice !== sliceName) {
|
|
36
126
|
const edgeKey = `${sliceName}->${targetSlice}`;
|
|
37
127
|
if (!edgeSet.has(edgeKey)) {
|
|
@@ -41,45 +131,47 @@ function collectEdgesFromFile(file, sliceName, fileToSlice, edgeSet, edges) {
|
|
|
41
131
|
}
|
|
42
132
|
}
|
|
43
133
|
}
|
|
44
|
-
|
|
134
|
+
/**
|
|
135
|
+
* Build the graph, and bind the details walk to the same question and options.
|
|
136
|
+
*
|
|
137
|
+
* Prefer this over the two loose functions; they remain exported because
|
|
138
|
+
* `tests/` and the reverse-graph work call them directly with an explicit question.
|
|
139
|
+
*/
|
|
140
|
+
export function sliceGraph(slices, fileToSlice, options, question) {
|
|
141
|
+
const map = fileToSlice ?? buildFileToSliceMap(slices);
|
|
142
|
+
return {
|
|
143
|
+
edges: buildSliceDependencyGraph(slices, map, options, question),
|
|
144
|
+
detailsFor: (from, to) => findSliceDependencyDetails(slices, from, to, map, options, question),
|
|
145
|
+
};
|
|
146
|
+
}
|
|
147
|
+
function buildSliceDependencyGraph(slices, fileToSlice, options, question) {
|
|
45
148
|
const map = fileToSlice ?? buildFileToSliceMap(slices);
|
|
46
149
|
// Collect unique edges
|
|
47
150
|
const edgeSet = new Set();
|
|
48
151
|
const edges = [];
|
|
49
152
|
for (const slice of slices) {
|
|
50
153
|
for (const file of slice.files) {
|
|
51
|
-
collectEdgesFromFile(file, slice.name, map, edgeSet, edges);
|
|
154
|
+
collectEdgesFromFile(file, slice.name, map, edgeSet, edges, options, question);
|
|
52
155
|
}
|
|
53
156
|
}
|
|
54
157
|
return edges;
|
|
55
158
|
}
|
|
56
|
-
|
|
57
|
-
* Find which specific files cause a dependency from one slice to another.
|
|
58
|
-
* Used for detailed violation messages.
|
|
59
|
-
*
|
|
60
|
-
* @param slices - The resolved slices
|
|
61
|
-
* @param fromSliceName - Source slice name
|
|
62
|
-
* @param toSliceName - Target slice name
|
|
63
|
-
* @param fileToSlice - Pre-built file-to-slice map (optional, built internally if not provided)
|
|
64
|
-
* @returns Array of { sourceFile, importPath, importLine }
|
|
65
|
-
*/
|
|
66
|
-
export function findSliceDependencyDetails(slices, fromSliceName, toSliceName, fileToSlice) {
|
|
159
|
+
function findSliceDependencyDetails(slices, fromSliceName, toSliceName, fileToSlice, options, question) {
|
|
67
160
|
const map = fileToSlice ?? buildFileToSliceMap(slices);
|
|
68
161
|
const fromSlice = slices.find((s) => s.name === fromSliceName);
|
|
69
162
|
if (!fromSlice)
|
|
70
163
|
return [];
|
|
71
164
|
const details = [];
|
|
72
165
|
for (const file of fromSlice.files) {
|
|
73
|
-
for (const
|
|
74
|
-
|
|
75
|
-
if (!resolved)
|
|
166
|
+
for (const edge of sliceEdgesOf(file, options, question)) {
|
|
167
|
+
if (edge.resolvedPath === undefined)
|
|
76
168
|
continue;
|
|
77
|
-
|
|
78
|
-
if (targetSlice === toSliceName) {
|
|
169
|
+
if (map.get(edge.resolvedPath) === toSliceName) {
|
|
79
170
|
details.push({
|
|
80
171
|
sourceFile: file,
|
|
81
|
-
importPath:
|
|
82
|
-
importLine:
|
|
172
|
+
importPath: edge.resolvedPath,
|
|
173
|
+
importLine: edge.line,
|
|
174
|
+
edge,
|
|
83
175
|
});
|
|
84
176
|
}
|
|
85
177
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"slice-graph.js","sourceRoot":"","sources":["../../src/helpers/slice-graph.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"slice-graph.js","sourceRoot":"","sources":["../../src/helpers/slice-graph.ts"],"names":[],"mappings":"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"}
|
package/dist/helpers/tarjan.d.ts
CHANGED
|
@@ -3,19 +3,5 @@
|
|
|
3
3
|
* Keys are node indices, values are arrays of neighbor indices.
|
|
4
4
|
*/
|
|
5
5
|
export type AdjacencyList = Map<number, number[]>;
|
|
6
|
-
/**
|
|
7
|
-
* Find all strongly connected components in a directed graph
|
|
8
|
-
* using Tarjan's algorithm.
|
|
9
|
-
*
|
|
10
|
-
* Returns only components with size > 1 (i.e., actual cycles).
|
|
11
|
-
* Each component is an array of node indices forming a cycle.
|
|
12
|
-
*
|
|
13
|
-
* Time complexity: O(V + E)
|
|
14
|
-
* Space complexity: O(V)
|
|
15
|
-
*
|
|
16
|
-
* @param nodeCount - Total number of nodes (0-indexed)
|
|
17
|
-
* @param edges - Adjacency list: node index -> list of neighbor indices
|
|
18
|
-
* @returns Array of strongly connected components (size > 1)
|
|
19
|
-
*/
|
|
20
6
|
export declare function tarjanSCC(nodeCount: number, edges: AdjacencyList): number[][];
|
|
21
7
|
//# sourceMappingURL=tarjan.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tarjan.d.ts","sourceRoot":"","sources":["../../src/helpers/tarjan.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,MAAM,aAAa,GAAG,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAA;
|
|
1
|
+
{"version":3,"file":"tarjan.d.ts","sourceRoot":"","sources":["../../src/helpers/tarjan.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,MAAM,aAAa,GAAG,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAA;AAsCjD,wBAAgB,SAAS,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,aAAa,GAAG,MAAM,EAAE,EAAE,CAqD7E"}
|
package/dist/helpers/tarjan.js
CHANGED
|
@@ -12,6 +12,25 @@
|
|
|
12
12
|
* @param edges - Adjacency list: node index -> list of neighbor indices
|
|
13
13
|
* @returns Array of strongly connected components (size > 1)
|
|
14
14
|
*/
|
|
15
|
+
/**
|
|
16
|
+
* Read an index that the algorithm guarantees is in range.
|
|
17
|
+
*
|
|
18
|
+
* `noUncheckedIndexedAccess` types every element access as `T | undefined`, and
|
|
19
|
+
* the original code answered that with `!` — which ADR-005 bars, and which turns
|
|
20
|
+
* a genuinely impossible state into silence if it ever stops being impossible.
|
|
21
|
+
* A named accessor narrows for real and fails LOUDLY instead: every index here
|
|
22
|
+
* comes from `edges`, so an out-of-range one means the caller's adjacency list
|
|
23
|
+
* disagrees with `nodeCount`, which is worth an error rather than a `-1` that
|
|
24
|
+
* reads as "unvisited" and quietly changes the result.
|
|
25
|
+
*/
|
|
26
|
+
function at(values, i, what) {
|
|
27
|
+
const value = values[i];
|
|
28
|
+
if (value === undefined) {
|
|
29
|
+
throw new RangeError(`tarjanSCC: ${what}[${String(i)}] is outside the graph (${String(values.length)} nodes) — ` +
|
|
30
|
+
'the adjacency list names a node that nodeCount does not cover.');
|
|
31
|
+
}
|
|
32
|
+
return value;
|
|
33
|
+
}
|
|
15
34
|
export function tarjanSCC(nodeCount, edges) {
|
|
16
35
|
const index = new Array(nodeCount).fill(-1);
|
|
17
36
|
const lowlink = new Array(nodeCount).fill(-1);
|
|
@@ -27,34 +46,28 @@ export function tarjanSCC(nodeCount, edges) {
|
|
|
27
46
|
onStack[v] = true;
|
|
28
47
|
const neighbors = edges.get(v) ?? [];
|
|
29
48
|
for (const w of neighbors) {
|
|
30
|
-
// lv/lw/iw are always defined here (v and w are bounded indices into
|
|
31
|
-
// pre-filled arrays); the guards satisfy noUncheckedIndexedAccess.
|
|
32
|
-
const lv = lowlink[v];
|
|
33
49
|
if (index[w] === -1) {
|
|
34
50
|
// w has not been visited
|
|
35
51
|
strongConnect(w);
|
|
36
|
-
|
|
37
|
-
if (lv !== undefined && lw !== undefined)
|
|
38
|
-
lowlink[v] = Math.min(lv, lw);
|
|
52
|
+
lowlink[v] = Math.min(at(lowlink, v, 'lowlink'), at(lowlink, w, 'lowlink'));
|
|
39
53
|
}
|
|
40
54
|
else if (onStack[w]) {
|
|
41
55
|
// w is on the stack, so it's in the current SCC
|
|
42
|
-
|
|
43
|
-
if (lv !== undefined && iw !== undefined)
|
|
44
|
-
lowlink[v] = Math.min(lv, iw);
|
|
56
|
+
lowlink[v] = Math.min(at(lowlink, v, 'lowlink'), at(index, w, 'index'));
|
|
45
57
|
}
|
|
46
58
|
}
|
|
47
59
|
// If v is a root node, pop the SCC
|
|
48
60
|
if (lowlink[v] === index[v]) {
|
|
49
61
|
const scc = [];
|
|
50
|
-
let
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
if (popped === v)
|
|
62
|
+
let w;
|
|
63
|
+
do {
|
|
64
|
+
const popped = stack.pop();
|
|
65
|
+
if (popped === undefined)
|
|
55
66
|
break;
|
|
56
|
-
|
|
57
|
-
|
|
67
|
+
w = popped;
|
|
68
|
+
onStack[w] = false;
|
|
69
|
+
scc.push(w);
|
|
70
|
+
} while (w !== v);
|
|
58
71
|
// Only report cycles (size > 1)
|
|
59
72
|
if (scc.length > 1) {
|
|
60
73
|
sccs.push(scc);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tarjan.js","sourceRoot":"","sources":["../../src/helpers/tarjan.ts"],"names":[],"mappings":"AAMA;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,SAAS,CAAC,SAAiB,EAAE,KAAoB;IAC/D,MAAM,KAAK,GAAG,IAAI,KAAK,CAAS,SAAS,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAA;IACnD,MAAM,OAAO,GAAG,IAAI,KAAK,CAAS,SAAS,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAA;IACrD,MAAM,OAAO,GAAG,IAAI,KAAK,CAAU,SAAS,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;IACzD,MAAM,KAAK,GAAa,EAAE,CAAA;IAC1B,IAAI,YAAY,GAAG,CAAC,CAAA;IACpB,MAAM,IAAI,GAAe,EAAE,CAAA;IAE3B,SAAS,aAAa,CAAC,CAAS;QAC9B,KAAK,CAAC,CAAC,CAAC,GAAG,YAAY,CAAA;QACvB,OAAO,CAAC,CAAC,CAAC,GAAG,YAAY,CAAA;QACzB,YAAY,EAAE,CAAA;QACd,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QACb,OAAO,CAAC,CAAC,CAAC,GAAG,IAAI,CAAA;QAEjB,MAAM,SAAS,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAA;QACpC,KAAK,MAAM,CAAC,IAAI,SAAS,EAAE,CAAC;YAC1B,
|
|
1
|
+
{"version":3,"file":"tarjan.js","sourceRoot":"","sources":["../../src/helpers/tarjan.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,24 +1,32 @@
|
|
|
1
1
|
export { project, workspace, resetProjectCache } from './core/project.js';
|
|
2
|
+
export { checkAll } from './core/check-all.js';
|
|
2
3
|
export type { ArchProject } from './core/project.js';
|
|
3
4
|
export type { Predicate } from '@nielspeter/eess';
|
|
4
|
-
export { not, and, or } from '
|
|
5
|
+
export { not, and, or } from './core/combinators.js';
|
|
5
6
|
export type { Condition, ConditionContext } from '@nielspeter/eess';
|
|
6
|
-
export type { ArchViolation } from '
|
|
7
|
+
export type { ArchViolation } from '@nielspeter/eess';
|
|
8
|
+
export { severityFor } from '@nielspeter/eess';
|
|
7
9
|
export { createViolation, getElementName, getElementFile, getElementLine, } from './core/violation.js';
|
|
8
|
-
export {
|
|
9
|
-
export {
|
|
10
|
+
export { remedyRepeatsMessage } from '@nielspeter/eess';
|
|
11
|
+
export { RuleBuilder } from './core/rule-builder.js';
|
|
12
|
+
export { TerminalBuilder } from './core/terminal-builder.js';
|
|
10
13
|
export { ArchRuleError } from '@nielspeter/eess';
|
|
11
14
|
export type { RuleMetadata } from '@nielspeter/eess';
|
|
12
15
|
export type { RuleDescription } from '@nielspeter/eess';
|
|
16
|
+
export type { PathUniverse } from '@nielspeter/eess';
|
|
13
17
|
export { generateCodeFrame } from '@nielspeter/eess';
|
|
14
18
|
export type { CodeFrameOptions } from '@nielspeter/eess';
|
|
15
19
|
export { formatViolations, formatViolationsPlain } from '@nielspeter/eess';
|
|
16
20
|
export type { FormatOptions } from '@nielspeter/eess';
|
|
17
21
|
export { definePredicate, defineCondition } from '@nielspeter/eess';
|
|
22
|
+
export type { DeclaredGlob, DeclaredGlobs, GlobBase, GlobKind, GlobNode, GlobPosition, GlobSite, GlobTree, OpaqueGlob, } from '@nielspeter/eess';
|
|
23
|
+
export { combineGlobs, globAnyOf, globNode, negateGlobs, stampGlobs } from '@nielspeter/eess';
|
|
24
|
+
export type { DiagnosableRule, DiagnosticFinding } from './core/diagnose.js';
|
|
25
|
+
export { diagnose } from './core/diagnose.js';
|
|
18
26
|
export type { Named, Located, Exportable } from './predicates/index.js';
|
|
19
|
-
export { haveNameMatching, haveNameStartingWith, haveNameEndingWith, resideInFile, resideInFolder, areExported, areNotExported, } from './predicates/index.js';
|
|
27
|
+
export { haveNameMatching, haveNameStartingWith, haveNameEndingWith, resideInFile, resideInFolder, havePathMatching, areExported, areNotExported, } from './predicates/index.js';
|
|
20
28
|
export { resideInFile as conditionResideInFile, resideInFolder as conditionResideInFolder, haveNameMatching as conditionHaveNameMatching, beExported, notExist, } from './conditions/structural.js';
|
|
21
|
-
export { importFrom, notImportFrom as predicateNotImportFrom, exportSymbolNamed,
|
|
29
|
+
export { importFrom, notImportFrom as predicateNotImportFrom, exportSymbolNamed, } from './predicates/module.js';
|
|
22
30
|
export type { ImportOptions } from './core/import-options.js';
|
|
23
31
|
export { isTypeOnlyImport } from './core/import-options.js';
|
|
24
32
|
export { onlyImportFrom, notImportFrom as conditionNotImportFrom, onlyHaveTypeImportsFrom, notHaveAliasedImports, dependOn, } from './conditions/dependency.js';
|
|
@@ -28,7 +36,10 @@ export { extend, implement, haveDecorator, haveDecoratorMatching, areAbstract, h
|
|
|
28
36
|
export { shouldExtend, shouldImplement, shouldHaveMethodNamed, shouldNotHaveMethodMatching, acceptParameterOfType as classAcceptParameterOfType, notAcceptParameterOfType as classNotAcceptParameterOfType, } from './conditions/class.js';
|
|
29
37
|
export { functions, FunctionRuleBuilder } from './builders/function-rule-builder.js';
|
|
30
38
|
export type { ArchFunction } from './models/arch-function.js';
|
|
31
|
-
export { collectFunctions, fromFunctionDeclaration, fromArrowVariableDeclaration, fromMethodDeclaration, } from './models/arch-function.js';
|
|
39
|
+
export { collectFunctions, fromFunctionDeclaration, fromArrowVariableDeclaration, fromMethodDeclaration, fromObjectLiteralFunction, } from './models/arch-function.js';
|
|
40
|
+
export type { FunctionCollectionOptions } from './models/arch-function.js';
|
|
41
|
+
export { collectObjectLiteralFunctions } from './core/object-literal-functions.js';
|
|
42
|
+
export type { ObjectLiteralFunction } from './core/object-literal-functions.js';
|
|
32
43
|
export { arePublic, areProtected, arePrivate, areAsync, areNotAsync, haveParameterCount, haveParameterCountGreaterThan, haveParameterCountLessThan, haveParameterNamed, haveReturnType, haveRestParameter, haveOptionalParameter, haveParameterOfType, haveParameterNameMatching, } from './predicates/function.js';
|
|
33
44
|
export { notExist as functionNotExist, beExported as functionBeExported, beAsync as functionBeAsync, haveNameMatching as functionHaveNameMatching, acceptParameterOfType as functionAcceptParameterOfType, notAcceptParameterOfType as functionNotAcceptParameterOfType, haveReturnTypeMatching as functionHaveReturnTypeMatching, } from './conditions/function.js';
|
|
34
45
|
export { types, TypeRuleBuilder } from './builders/type-rule-builder.js';
|
|
@@ -52,23 +63,25 @@ export { beFreeOfCycles, respectLayerOrder, notDependOn } from './conditions/sli
|
|
|
52
63
|
export { slices, SliceRuleBuilder } from './builders/slice-rule-builder.js';
|
|
53
64
|
export type { CheckOptions, OutputFormat } from '@nielspeter/eess';
|
|
54
65
|
export { formatViolationsJson } from '@nielspeter/eess';
|
|
66
|
+
export type { ArchJsonReport, ArchJsonViolation, ArchJsonSuppression, ArchJsonUntestedAllowlist, } from '@nielspeter/eess';
|
|
55
67
|
export { formatViolationsGitHub } from '@nielspeter/eess';
|
|
56
68
|
export { detectFormat, isCI } from '@nielspeter/eess';
|
|
57
|
-
export { withBaseline, generateBaseline, Baseline } from '
|
|
58
|
-
export type {
|
|
59
|
-
export {
|
|
60
|
-
export {
|
|
61
|
-
export
|
|
69
|
+
export { withBaseline, generateBaseline, Baseline } from './helpers/baseline.js';
|
|
70
|
+
export type { BaselineDelta } from './helpers/baseline.js';
|
|
71
|
+
export type { BaselineEntry, BaselineFile, BaselineOptions } from './helpers/baseline.js';
|
|
72
|
+
export { diffAware, DiffFilter } from './helpers/diff-aware.js';
|
|
73
|
+
export { parseExclusionComments, isExcludedByComment } from './core/exclusion-comments.js';
|
|
74
|
+
export type { ExclusionComment, ExclusionWarning, ParseResult } from './core/exclusion-comments.js';
|
|
62
75
|
export { silent } from '@nielspeter/eess';
|
|
63
76
|
export type { SilentExclusion } from '@nielspeter/eess';
|
|
64
|
-
export { collectViolations } from '
|
|
77
|
+
export { collectViolations } from './helpers/baseline-generator.js';
|
|
65
78
|
export { calls, CallRuleBuilder } from './builders/call-rule-builder.js';
|
|
66
79
|
export type { ArchCall } from './models/arch-call.js';
|
|
67
80
|
export { collectCalls, fromCallExpression } from './models/arch-call.js';
|
|
68
81
|
export { onObject, withMethod, withArgMatching, withStringArg } from './predicates/call.js';
|
|
69
82
|
export { haveCallbackContaining as callHaveCallbackContaining, notHaveCallbackContaining as callNotHaveCallbackContaining, notExist as callNotExist, haveArgumentWithProperty, notHaveArgumentWithProperty, haveArgumentContaining as callHaveArgumentContaining, notHaveArgumentContaining as callNotHaveArgumentContaining, } from './conditions/call.js';
|
|
70
|
-
export { within } from './
|
|
71
|
-
export type { ScopedContext } from './
|
|
83
|
+
export { within } from './builders/within.js';
|
|
84
|
+
export type { ScopedContext } from './builders/within.js';
|
|
72
85
|
export { ScopedFunctionRuleBuilder } from './builders/scoped-function-rule-builder.js';
|
|
73
86
|
export { extractCallbacks } from './helpers/callback-extractor.js';
|
|
74
87
|
export type { ExtractedCallback } from './helpers/callback-extractor.js';
|
|
@@ -77,8 +90,8 @@ export type { ArchPattern, PropertyConstraint } from './helpers/pattern.js';
|
|
|
77
90
|
export { followPattern } from './conditions/pattern.js';
|
|
78
91
|
export { smells } from './smells/index.js';
|
|
79
92
|
export { SmellBuilder } from './smells/smell-builder.js';
|
|
80
|
-
export { tsconfig
|
|
81
|
-
export {
|
|
93
|
+
export { tsconfig } from './tsconfig/index.js';
|
|
94
|
+
export { TsconfigBuilder } from './tsconfig/tsconfig-builder.js';
|
|
82
95
|
export { DuplicateBodiesBuilder } from './smells/duplicate-bodies.js';
|
|
83
96
|
export { InconsistentSiblingsBuilder } from './smells/inconsistent-siblings.js';
|
|
84
97
|
export type { Fingerprint } from './smells/fingerprint.js';
|
|
@@ -87,6 +100,10 @@ export type { Layer, LayerPair } from './models/cross-layer.js';
|
|
|
87
100
|
export type { PairCondition } from './core/pair-condition.js';
|
|
88
101
|
export { crossLayer, CrossLayerBuilder } from './builders/cross-layer-builder.js';
|
|
89
102
|
export { haveMatchingCounterpart, haveConsistentExports, satisfyPairCondition, } from './conditions/cross-layer.js';
|
|
103
|
+
export { crossProject, CrossProjectBuilder, byName, byArg, byPropertyNames, } from './builders/correspondence-builder.js';
|
|
104
|
+
export type { KeyFn, KeysSource } from './builders/correspondence-builder.js';
|
|
105
|
+
export { setCorrespondence } from '@nielspeter/eess';
|
|
106
|
+
export type { CorrespondenceResult } from '@nielspeter/eess';
|
|
90
107
|
export { haveCyclomaticComplexity, haveMoreLinesThan, haveMoreMethodsThan, haveComplexity, haveMoreFunctionLinesThan, } from './predicates/metrics.js';
|
|
91
108
|
export { cyclomaticComplexity, linesOfCode } from './helpers/complexity.js';
|
|
92
109
|
export { noEval, noFunctionConstructor, noProcessEnv, noConsoleLog, noConsole, noJsonParse, functionNoEval, functionNoFunctionConstructor, functionNoProcessEnv, functionNoConsoleLog, functionNoConsole, functionNoJsonParse, moduleNoEval, moduleNoProcessEnv, moduleNoConsoleLog, } from './rules/security.js';
|
|
@@ -100,4 +117,26 @@ export { areHtmlElements, areComponents, withAttribute as jsxWithAttribute, with
|
|
|
100
117
|
export { notExist as jsxNotExist, haveAttribute as jsxHaveAttribute, notHaveAttribute as jsxNotHaveAttribute, haveAttributeMatching as jsxHaveAttributeMatching, notHaveAttributeMatching as jsxNotHaveAttributeMatching, } from './conditions/jsx.js';
|
|
101
118
|
export { defineConfig } from './cli/config.js';
|
|
102
119
|
export type { CliConfig } from './cli/config.js';
|
|
120
|
+
export { orphanExclusions } from './core/orphan-exclusions.js';
|
|
121
|
+
export type { OrphanExclusion } from './core/orphan-exclusions.js';
|
|
122
|
+
export type { Selection, ElementInfo, RuleBuilderLike, EdgeCoverage, GlobLeaf, ReportMode, } from '@nielspeter/eess';
|
|
123
|
+
export { registerProjectRoots, rootFromTsConfigPath, rootOf, relativeToRoot, } from './core/project-relative.js';
|
|
124
|
+
export { registerRootCompilerOptions, verbatimModuleSyntaxFor, } from './core/per-root-compiler-options.js';
|
|
125
|
+
export { syntacticFault, diagnoseGlob, FAULT_ADVICE, ON_DISK_ADVICE, } from './core/glob-diagnosis.js';
|
|
126
|
+
export { isStrictFamily, resolveFlag, STRICT_FAMILY_SIZE } from './tsconfig/strict-family.js';
|
|
127
|
+
export { isFaultPosition, countDeclaredGlobs, isGlobNode, isOpaqueGlob, resetCommentSuppression, recordCommentSuppression, commentSuppressions, commentSuppressionNotice, dispatchRule, throwIfViolations, presetConstructsNothingViolation, finishPreset, byCodepoint, assertionLessViolation, recordEdgeCoverage, untestedRules, edgeCoverageNotice, resetEdgeCoverage, } from '@nielspeter/eess';
|
|
128
|
+
export type { RuleSeverity, PresetBaseOptions, PresetReportOptions, ReportOptions, } from '@nielspeter/eess';
|
|
129
|
+
export { UNSUPPRESSABLE, activeNotice, assertsCardinality, dedupeConfigFindings, discoverIdentityRoot, isAnchored, isNullaryCallable, isProjectRelative, isRecord, marksAssertsCardinality, normalizeIdentityText, reportViolations, resetDiffDisclosureForTests, shallowClone, suppressionNotice, viewsFor, } from '@nielspeter/eess';
|
|
130
|
+
export type { BaselineFilter, DiffFilterLike, Matcher, UntestedReason } from '@nielspeter/eess';
|
|
131
|
+
export type { CollectResult } from './core/terminal-builder.js';
|
|
132
|
+
export type { DiskSet, OnDisk } from './core/disk-set.js';
|
|
133
|
+
export { buildDiskSet, diskSet } from './core/disk-set.js';
|
|
134
|
+
export type { GlobFault } from './core/glob-diagnosis.js';
|
|
135
|
+
export { pathUniverse } from './core/path-universe.js';
|
|
136
|
+
export { globSitesOf, isDeadGlobTree, isDeadSite } from './core/glob-evaluator.js';
|
|
137
|
+
export { isTypeOnlyReExport, splitGlobArgs } from './core/import-options.js';
|
|
138
|
+
export { emptyProjectAdvice, loadedNothing } from './core/empty-project-advice.js';
|
|
139
|
+
export { validateOverrides } from './presets/shared.js';
|
|
140
|
+
export type { StrictFamilyFlag } from './tsconfig/strict-family.js';
|
|
141
|
+
export type { PresetDelivery } from './presets/shared.js';
|
|
103
142
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAA;AACzE,YAAY,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAGpD,YAAY,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAA;AACjD,OAAO,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|