@nielspeter/eess-ts 0.2.1 → 0.5.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 +75 -32
- 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 +141 -55
- 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 +385 -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 +182 -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 +177 -39
- 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 +16 -19
- 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 +243 -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 +109 -42
- 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 +8 -3
- package/dist/cli/commands/baseline.d.ts.map +1 -1
- package/dist/cli/commands/baseline.js +111 -7
- 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 +385 -47
- 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 +47 -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 +101 -43
- 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 +25 -32
- package/dist/cli/load-rules.js.map +1 -1
- package/dist/cli/resolve-config.d.ts +0 -8
- package/dist/cli/resolve-config.d.ts.map +1 -1
- package/dist/cli/resolve-config.js +25 -55
- 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 +351 -0
- package/dist/cli/rule-file-findings.js.map +1 -0
- package/dist/cli/watch.d.ts +17 -34
- package/dist/cli/watch.d.ts.map +1 -1
- package/dist/cli/watch.js +14 -129
- 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 +41 -19
- 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 +41 -37
- 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 +20 -6
- 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 +155 -93
- 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 +150 -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 +49 -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 +117 -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 +390 -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 +19 -0
- package/dist/core/exclusion-comments.d.ts.map +1 -0
- package/dist/core/exclusion-comments.js +7 -0
- package/dist/core/exclusion-comments.js.map +1 -0
- package/dist/core/execute-rule.d.ts +158 -0
- package/dist/core/execute-rule.d.ts.map +1 -0
- package/dist/core/execute-rule.js +666 -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/invalidate-on-modify.d.ts +20 -0
- package/dist/core/invalidate-on-modify.d.ts.map +1 -0
- package/dist/core/invalidate-on-modify.js +26 -0
- package/dist/core/invalidate-on-modify.js.map +1 -0
- 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 +227 -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 +593 -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 +224 -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 +22 -0
- package/dist/core/path-universe.d.ts.map +1 -0
- package/dist/core/path-universe.js +45 -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 +29 -4
- package/dist/core/project.js.map +1 -1
- package/dist/core/rule-builder.d.ts +303 -0
- package/dist/core/rule-builder.d.ts.map +1 -0
- package/dist/core/rule-builder.js +463 -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 +88 -0
- package/dist/core/rule-declaration.js.map +1 -0
- package/dist/core/terminal-builder.d.ts +629 -0
- package/dist/core/terminal-builder.d.ts.map +1 -0
- package/dist/core/terminal-builder.js +807 -0
- package/dist/core/terminal-builder.js.map +1 -0
- package/dist/core/terminal-execution.d.ts +39 -0
- package/dist/core/terminal-execution.d.ts.map +1 -0
- package/dist/core/terminal-execution.js +103 -0
- package/dist/core/terminal-execution.js.map +1 -0
- package/dist/core/ts-comment-mask.d.ts +2 -0
- package/dist/core/ts-comment-mask.d.ts.map +1 -0
- package/dist/core/ts-comment-mask.js +102 -0
- package/dist/core/ts-comment-mask.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/graphql-rule-builder.d.ts +95 -0
- package/dist/graphql/graphql-rule-builder.d.ts.map +1 -0
- package/dist/graphql/graphql-rule-builder.js +127 -0
- package/dist/graphql/graphql-rule-builder.js.map +1 -0
- package/dist/graphql/index.d.ts +1 -0
- package/dist/graphql/index.d.ts.map +1 -1
- package/dist/graphql/index.js +2 -1
- package/dist/graphql/index.js.map +1 -1
- package/dist/graphql/resolver-rule-builder.d.ts +44 -23
- package/dist/graphql/resolver-rule-builder.d.ts.map +1 -1
- package/dist/graphql/resolver-rule-builder.js +80 -72
- 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 +82 -12
- package/dist/graphql/schema-loader.js.map +1 -1
- package/dist/graphql/schema-predicates.d.ts.map +1 -1
- package/dist/graphql/schema-predicates.js +17 -12
- package/dist/graphql/schema-predicates.js.map +1 -1
- package/dist/graphql/schema-rule-builder.d.ts +15 -24
- package/dist/graphql/schema-rule-builder.d.ts.map +1 -1
- package/dist/graphql/schema-rule-builder.js +39 -77
- 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 +28 -0
- package/dist/helpers/baseline-generator.d.ts.map +1 -0
- package/dist/helpers/baseline-generator.js +27 -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 +135 -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 +53 -84
- 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 +16 -0
- package/dist/helpers/diff-aware.d.ts.map +1 -0
- package/dist/helpers/diff-aware.js +16 -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 +164 -86
- 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 +55 -19
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +67 -15
- 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 +54 -8
- package/dist/models/arch-function.d.ts.map +1 -1
- package/dist/models/arch-function.js +145 -8
- package/dist/models/arch-function.js.map +1 -1
- package/dist/models/arch-jsx-element.d.ts.map +1 -1
- package/dist/models/arch-jsx-element.js +18 -19
- 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/jsx.d.ts.map +1 -1
- package/dist/predicates/jsx.js +2 -1
- package/dist/predicates/jsx.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 +49 -16
- package/dist/presets/agent-guardrails.d.ts.map +1 -1
- package/dist/presets/agent-guardrails.js +308 -19
- package/dist/presets/agent-guardrails.js.map +1 -1
- package/dist/presets/boundaries.d.ts +46 -3
- 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 +23 -3
- 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 +10 -5
- package/dist/presets/index.d.ts.map +1 -1
- package/dist/presets/index.js +19 -3
- package/dist/presets/index.js.map +1 -1
- package/dist/presets/layered.d.ts +47 -3
- 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 +81 -10
- 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 +267 -2
- package/dist/presets/shared.d.ts.map +1 -1
- package/dist/presets/shared.js +367 -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 +63 -39
- 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 +80 -47
- package/dist/rules/metrics.js.map +1 -1
- package/dist/smells/clusters.d.ts +78 -0
- package/dist/smells/clusters.d.ts.map +1 -0
- package/dist/smells/clusters.js +124 -0
- package/dist/smells/clusters.js.map +1 -0
- package/dist/smells/duplicate-bodies.d.ts +92 -5
- package/dist/smells/duplicate-bodies.d.ts.map +1 -1
- package/dist/smells/duplicate-bodies.js +203 -73
- package/dist/smells/duplicate-bodies.js.map +1 -1
- package/dist/smells/duplicate-report.d.ts +90 -0
- package/dist/smells/duplicate-report.d.ts.map +1 -0
- package/dist/smells/duplicate-report.js +344 -0
- package/dist/smells/duplicate-report.js.map +1 -0
- package/dist/smells/fingerprint.d.ts +20 -1
- package/dist/smells/fingerprint.d.ts.map +1 -1
- package/dist/smells/fingerprint.js +27 -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 +28 -0
- package/dist/smells/similar-pairs.d.ts.map +1 -0
- package/dist/smells/similar-pairs.js +134 -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 +112 -14
- package/dist/smells/smell-builder.js.map +1 -1
- package/dist/smells/variation.d.ts +47 -0
- package/dist/smells/variation.d.ts.map +1 -0
- package/dist/smells/variation.js +90 -0
- package/dist/smells/variation.js.map +1 -0
- 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 +65 -16
- package/dist/tsconfig/tsconfig-builder.js.map +1 -1
- package/package.json +4 -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,5 +1,5 @@
|
|
|
1
1
|
import type { ClassDeclaration } from 'ts-morph';
|
|
2
|
-
import { RuleBuilder } from '
|
|
2
|
+
import { RuleBuilder } from '../core/rule-builder.js';
|
|
3
3
|
import type { ArchProject } from '../core/project.js';
|
|
4
4
|
import type { ExpressionMatcher } from '../helpers/matchers.js';
|
|
5
5
|
import type { TypeMatcher } from '../helpers/type-matchers.js';
|
|
@@ -10,7 +10,7 @@ import type { TypeMatcher } from '../helpers/type-matchers.js';
|
|
|
10
10
|
* predicates and conditions alongside the identity predicates and
|
|
11
11
|
* structural conditions from the foundation plans.
|
|
12
12
|
*/
|
|
13
|
-
export declare class ClassRuleBuilder extends RuleBuilder<ClassDeclaration
|
|
13
|
+
export declare class ClassRuleBuilder extends RuleBuilder<ClassDeclaration> {
|
|
14
14
|
constructor(project: ArchProject);
|
|
15
15
|
protected getElements(): ClassDeclaration[];
|
|
16
16
|
/**
|
|
@@ -18,9 +18,23 @@ export declare class ClassRuleBuilder extends RuleBuilder<ClassDeclaration, Arch
|
|
|
18
18
|
* After `.should()`: assert matched classes have names matching the pattern.
|
|
19
19
|
*/
|
|
20
20
|
haveNameMatching(pattern: RegExp | string): this;
|
|
21
|
-
/**
|
|
21
|
+
/**
|
|
22
|
+
* Narrows the selection to classes that have a name starting with `prefix`.
|
|
23
|
+
*
|
|
24
|
+
* **Predicate only**, unlike the dual-use methods on this builder: it never
|
|
25
|
+
* becomes an assertion. Written after `.should()` it still filters, and the
|
|
26
|
+
* assertion gate reports it as a misplaced predicate rather than letting the
|
|
27
|
+
* rule pass having asserted nothing.
|
|
28
|
+
*/
|
|
22
29
|
haveNameStartingWith(prefix: string): this;
|
|
23
|
-
/**
|
|
30
|
+
/**
|
|
31
|
+
* Narrows the selection to classes that have a name ending with `suffix`.
|
|
32
|
+
*
|
|
33
|
+
* **Predicate only**, unlike the dual-use methods on this builder: it never
|
|
34
|
+
* becomes an assertion. Written after `.should()` it still filters, and the
|
|
35
|
+
* assertion gate reports it as a misplaced predicate rather than letting the
|
|
36
|
+
* rule pass having asserted nothing.
|
|
37
|
+
*/
|
|
24
38
|
haveNameEndingWith(suffix: string): this;
|
|
25
39
|
/**
|
|
26
40
|
* After `.that()`: filter classes that reside in a file matching the glob.
|
|
@@ -32,9 +46,23 @@ export declare class ClassRuleBuilder extends RuleBuilder<ClassDeclaration, Arch
|
|
|
32
46
|
* After `.should()`: assert matched classes reside in a folder matching the glob.
|
|
33
47
|
*/
|
|
34
48
|
resideInFolder(glob: string): this;
|
|
35
|
-
/**
|
|
49
|
+
/**
|
|
50
|
+
* Narrows the selection to classes that are exported.
|
|
51
|
+
*
|
|
52
|
+
* **Predicate only**, unlike the dual-use methods on this builder: it never
|
|
53
|
+
* becomes an assertion. Written after `.should()` it still filters, and the
|
|
54
|
+
* assertion gate reports it as a misplaced predicate rather than letting the
|
|
55
|
+
* rule pass having asserted nothing.
|
|
56
|
+
*/
|
|
36
57
|
areExported(): this;
|
|
37
|
-
/**
|
|
58
|
+
/**
|
|
59
|
+
* Narrows the selection to classes that are not exported.
|
|
60
|
+
*
|
|
61
|
+
* **Predicate only**, unlike the dual-use methods on this builder: it never
|
|
62
|
+
* becomes an assertion. Written after `.should()` it still filters, and the
|
|
63
|
+
* assertion gate reports it as a misplaced predicate rather than letting the
|
|
64
|
+
* rule pass having asserted nothing.
|
|
65
|
+
*/
|
|
38
66
|
areNotExported(): this;
|
|
39
67
|
/**
|
|
40
68
|
* After `.that()`: filter classes that extend the given class.
|
|
@@ -46,28 +74,71 @@ export declare class ClassRuleBuilder extends RuleBuilder<ClassDeclaration, Arch
|
|
|
46
74
|
* After `.should()`: assert matched classes implement the given interface.
|
|
47
75
|
*/
|
|
48
76
|
implement(interfaceName: string): this;
|
|
49
|
-
/**
|
|
77
|
+
/**
|
|
78
|
+
* Narrows the selection to classes that have a decorator `name`.
|
|
79
|
+
*
|
|
80
|
+
* **Predicate only**, unlike the dual-use methods on this builder: it never
|
|
81
|
+
* becomes an assertion. Written after `.should()` it still filters, and the
|
|
82
|
+
* assertion gate reports it as a misplaced predicate rather than letting the
|
|
83
|
+
* rule pass having asserted nothing.
|
|
84
|
+
*/
|
|
50
85
|
haveDecorator(name: string): this;
|
|
51
|
-
/**
|
|
86
|
+
/**
|
|
87
|
+
* Narrows the selection to classes that have a decorator matching `regex`.
|
|
88
|
+
*
|
|
89
|
+
* **Predicate only**, unlike the dual-use methods on this builder: it never
|
|
90
|
+
* becomes an assertion. Written after `.should()` it still filters, and the
|
|
91
|
+
* assertion gate reports it as a misplaced predicate rather than letting the
|
|
92
|
+
* rule pass having asserted nothing.
|
|
93
|
+
*/
|
|
52
94
|
haveDecoratorMatching(regex: RegExp): this;
|
|
53
|
-
/**
|
|
95
|
+
/**
|
|
96
|
+
* Narrows the selection to classes that are abstract.
|
|
97
|
+
*
|
|
98
|
+
* **Predicate only**, unlike the dual-use methods on this builder: it never
|
|
99
|
+
* becomes an assertion. Written after `.should()` it still filters, and the
|
|
100
|
+
* assertion gate reports it as a misplaced predicate rather than letting the
|
|
101
|
+
* rule pass having asserted nothing.
|
|
102
|
+
*/
|
|
54
103
|
areAbstract(): this;
|
|
55
104
|
/**
|
|
56
105
|
* After `.that()`: filter classes that have a method with the given name.
|
|
57
106
|
* After `.should()`: assert matched classes have a method with the given name.
|
|
58
107
|
*/
|
|
59
108
|
haveMethodNamed(name: string): this;
|
|
60
|
-
/**
|
|
109
|
+
/**
|
|
110
|
+
* Narrows the selection to classes that have a method matching `regex`.
|
|
111
|
+
*
|
|
112
|
+
* **Predicate only**, unlike the dual-use methods on this builder: it never
|
|
113
|
+
* becomes an assertion. Written after `.should()` it still filters, and the
|
|
114
|
+
* assertion gate reports it as a misplaced predicate rather than letting the
|
|
115
|
+
* rule pass having asserted nothing.
|
|
116
|
+
*/
|
|
61
117
|
haveMethodMatching(regex: RegExp): this;
|
|
62
|
-
/**
|
|
118
|
+
/**
|
|
119
|
+
* Narrows the selection to classes that have a property named `name`.
|
|
120
|
+
*
|
|
121
|
+
* **Predicate only**, unlike the dual-use methods on this builder: it never
|
|
122
|
+
* becomes an assertion. Written after `.should()` it still filters, and the
|
|
123
|
+
* assertion gate reports it as a misplaced predicate rather than letting the
|
|
124
|
+
* rule pass having asserted nothing.
|
|
125
|
+
*/
|
|
63
126
|
havePropertyNamed(name: string): this;
|
|
64
127
|
/** @deprecated Use `resideInFile()` after `.should()` instead. */
|
|
65
128
|
shouldResideInFile(glob: string): this;
|
|
66
129
|
/** @deprecated Use `resideInFolder()` after `.should()` instead. */
|
|
67
130
|
shouldResideInFolder(glob: string): this;
|
|
68
|
-
/**
|
|
131
|
+
/**
|
|
132
|
+
* Asserts that the selected classes are exported.
|
|
133
|
+
*
|
|
134
|
+
* **Condition only** — this is the assertion, so it belongs after `.should()`.
|
|
135
|
+
*/
|
|
69
136
|
beExported(): this;
|
|
70
|
-
/**
|
|
137
|
+
/**
|
|
138
|
+
* Asserts that the selected classes do not exist.
|
|
139
|
+
*
|
|
140
|
+
* **Condition only** — this is the assertion, so it belongs after `.should()`.
|
|
141
|
+
*/
|
|
71
142
|
notExist(): this;
|
|
72
143
|
/** @deprecated Use `haveNameMatching()` after `.should()` instead. */
|
|
73
144
|
conditionHaveNameMatching(pattern: RegExp): this;
|
|
@@ -77,30 +148,58 @@ export declare class ClassRuleBuilder extends RuleBuilder<ClassDeclaration, Arch
|
|
|
77
148
|
shouldImplement(interfaceName: string): this;
|
|
78
149
|
/** @deprecated Use `haveMethodNamed()` after `.should()` instead. */
|
|
79
150
|
shouldHaveMethodNamed(name: string): this;
|
|
80
|
-
/**
|
|
151
|
+
/**
|
|
152
|
+
* Asserts that the selected classes do not have a method matching `regex`.
|
|
153
|
+
*
|
|
154
|
+
* **Condition only** — this is the assertion, so it belongs after `.should()`.
|
|
155
|
+
*/
|
|
81
156
|
shouldNotHaveMethodMatching(regex: RegExp): this;
|
|
82
|
-
/**
|
|
157
|
+
/**
|
|
158
|
+
* Asserts that the selected classes have a property named by each of `names`.
|
|
159
|
+
*
|
|
160
|
+
* **Condition only** — this is the assertion, so it belongs after `.should()`.
|
|
161
|
+
*/
|
|
83
162
|
shouldHavePropertyNamed(...names: string[]): this;
|
|
84
|
-
/**
|
|
163
|
+
/**
|
|
164
|
+
* Asserts that the selected classes do not have a property named by any of `names`.
|
|
165
|
+
*
|
|
166
|
+
* **Condition only** — this is the assertion, so it belongs after `.should()`.
|
|
167
|
+
*/
|
|
85
168
|
shouldNotHavePropertyNamed(...names: string[]): this;
|
|
86
|
-
/**
|
|
169
|
+
/**
|
|
170
|
+
* Asserts that the selected classes have a property matching `pattern`.
|
|
171
|
+
*
|
|
172
|
+
* **Condition only** — this is the assertion, so it belongs after `.should()`.
|
|
173
|
+
*/
|
|
87
174
|
havePropertyMatching(pattern: RegExp): this;
|
|
88
|
-
/**
|
|
175
|
+
/**
|
|
176
|
+
* Asserts that the selected classes do not have a property matching `pattern`.
|
|
177
|
+
*
|
|
178
|
+
* **Condition only** — this is the assertion, so it belongs after `.should()`.
|
|
179
|
+
*/
|
|
89
180
|
notHavePropertyMatching(pattern: RegExp): this;
|
|
90
|
-
/**
|
|
181
|
+
/**
|
|
182
|
+
* Asserts that the selected classes have only readonly properties.
|
|
183
|
+
*
|
|
184
|
+
* **Condition only** — this is the assertion, so it belongs after `.should()`.
|
|
185
|
+
*/
|
|
91
186
|
haveOnlyReadonlyProperties(): this;
|
|
92
|
-
/**
|
|
187
|
+
/**
|
|
188
|
+
* Asserts that the selected classes have at most `max` properties.
|
|
189
|
+
*
|
|
190
|
+
* **Condition only** — this is the assertion, so it belongs after `.should()`.
|
|
191
|
+
*/
|
|
93
192
|
maxProperties(max: number): this;
|
|
94
193
|
/**
|
|
95
|
-
*
|
|
96
|
-
*
|
|
97
|
-
*
|
|
194
|
+
* Asserts that the selected classes accept a parameter of a type matching `matcher`.
|
|
195
|
+
*
|
|
196
|
+
* **Condition only** — this is the assertion, so it belongs after `.should()`.
|
|
98
197
|
*/
|
|
99
198
|
acceptParameterOfType(matcher: TypeMatcher): this;
|
|
100
199
|
/**
|
|
101
|
-
*
|
|
102
|
-
*
|
|
103
|
-
*
|
|
200
|
+
* Asserts that the selected classes do not accept a parameter of a type matching `matcher`.
|
|
201
|
+
*
|
|
202
|
+
* **Condition only** — this is the assertion, so it belongs after `.should()`.
|
|
104
203
|
*/
|
|
105
204
|
notAcceptParameterOfType(matcher: TypeMatcher): this;
|
|
106
205
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"class-rule-builder.d.ts","sourceRoot":"","sources":["../../src/builders/class-rule-builder.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAA;AAChD,OAAO,EAAE,WAAW,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"class-rule-builder.d.ts","sourceRoot":"","sources":["../../src/builders/class-rule-builder.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { RuleBuilder } from '
|
|
1
|
+
import { RuleBuilder } from '../core/rule-builder.js';
|
|
2
2
|
import { classContain, classNotContain, classUseInsteadOf, classNotHaveEmptyBody, } from '../conditions/body-analysis.js';
|
|
3
3
|
// Identity predicates (plan 0003)
|
|
4
4
|
import { haveNameMatching as identityHaveNameMatching, haveNameStartingWith as identityHaveNameStartingWith, haveNameEndingWith as identityHaveNameEndingWith, resideInFile as predicateResideInFile, resideInFolder as predicateResideInFolder, areExported as identityAreExported, areNotExported as identityAreNotExported, } from '../predicates/identity.js';
|
|
@@ -6,10 +6,13 @@ import { haveNameMatching as identityHaveNameMatching, haveNameStartingWith as i
|
|
|
6
6
|
import { extend as predicateExtend, implement as predicateImplement, haveDecorator as predicateHaveDecorator, haveDecoratorMatching as predicateHaveDecoratorMatching, areAbstract as predicateAreAbstract, haveMethodNamed as predicateHaveMethodNamed, haveMethodMatching as predicateHaveMethodMatching, havePropertyNamed as predicateHavePropertyNamed, } from '../predicates/class.js';
|
|
7
7
|
// Structural conditions (plan 0004)
|
|
8
8
|
import { resideInFile as conditionResideInFile, resideInFolder as conditionResideInFolder, haveNameMatching as conditionHaveNameMatching, beExported as conditionBeExported, notExist as conditionNotExist, } from '../conditions/structural.js';
|
|
9
|
+
import { createElementCache, SOLE_POPULATION } from '../core/element-cache.js';
|
|
9
10
|
// Class-specific conditions (this plan)
|
|
10
11
|
import { shouldExtend as conditionExtend, shouldImplement as conditionImplement, shouldHaveMethodNamed as conditionHaveMethodNamed, shouldNotHaveMethodMatching as conditionNotHaveMethodMatching, acceptParameterOfType as conditionAcceptParameterOfType, notAcceptParameterOfType as conditionNotAcceptParameterOfType, } from '../conditions/class.js';
|
|
11
12
|
// Member property conditions (plan 0030)
|
|
12
13
|
import { havePropertyNamed as memberHavePropertyNamed, notHavePropertyNamed as memberNotHavePropertyNamed, havePropertyMatching as memberHavePropertyMatching, notHavePropertyMatching as memberNotHavePropertyMatching, haveOnlyReadonlyProperties as memberHaveOnlyReadonlyProperties, maxProperties as memberMaxProperties, } from '../conditions/members.js';
|
|
14
|
+
/** One collection per project, shared by every rule built from it (plan 0075). */
|
|
15
|
+
const cache = createElementCache();
|
|
13
16
|
/**
|
|
14
17
|
* Rule builder for ClassDeclaration elements.
|
|
15
18
|
*
|
|
@@ -22,11 +25,13 @@ export class ClassRuleBuilder extends RuleBuilder {
|
|
|
22
25
|
super(project);
|
|
23
26
|
}
|
|
24
27
|
getElements() {
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
28
|
+
return cache.get(this.project, SOLE_POPULATION, () => {
|
|
29
|
+
const classes = [];
|
|
30
|
+
for (const sourceFile of this.project.getSourceFiles()) {
|
|
31
|
+
classes.push(...sourceFile.getClasses());
|
|
32
|
+
}
|
|
33
|
+
return classes;
|
|
34
|
+
});
|
|
30
35
|
}
|
|
31
36
|
// --- Identity predicate methods (plan 0003) ---
|
|
32
37
|
/**
|
|
@@ -34,17 +39,28 @@ export class ClassRuleBuilder extends RuleBuilder {
|
|
|
34
39
|
* After `.should()`: assert matched classes have names matching the pattern.
|
|
35
40
|
*/
|
|
36
41
|
haveNameMatching(pattern) {
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
return this.addCondition(conditionHaveNameMatching(regex));
|
|
40
|
-
}
|
|
41
|
-
return this.addPredicate(identityHaveNameMatching(pattern));
|
|
42
|
+
const regex = typeof pattern === 'string' ? new RegExp(pattern) : pattern;
|
|
43
|
+
return this.dualUse(conditionHaveNameMatching(regex), identityHaveNameMatching(pattern));
|
|
42
44
|
}
|
|
43
|
-
/**
|
|
45
|
+
/**
|
|
46
|
+
* Narrows the selection to classes that have a name starting with `prefix`.
|
|
47
|
+
*
|
|
48
|
+
* **Predicate only**, unlike the dual-use methods on this builder: it never
|
|
49
|
+
* becomes an assertion. Written after `.should()` it still filters, and the
|
|
50
|
+
* assertion gate reports it as a misplaced predicate rather than letting the
|
|
51
|
+
* rule pass having asserted nothing.
|
|
52
|
+
*/
|
|
44
53
|
haveNameStartingWith(prefix) {
|
|
45
54
|
return this.addPredicate(identityHaveNameStartingWith(prefix));
|
|
46
55
|
}
|
|
47
|
-
/**
|
|
56
|
+
/**
|
|
57
|
+
* Narrows the selection to classes that have a name ending with `suffix`.
|
|
58
|
+
*
|
|
59
|
+
* **Predicate only**, unlike the dual-use methods on this builder: it never
|
|
60
|
+
* becomes an assertion. Written after `.should()` it still filters, and the
|
|
61
|
+
* assertion gate reports it as a misplaced predicate rather than letting the
|
|
62
|
+
* rule pass having asserted nothing.
|
|
63
|
+
*/
|
|
48
64
|
haveNameEndingWith(suffix) {
|
|
49
65
|
return this.addPredicate(identityHaveNameEndingWith(suffix));
|
|
50
66
|
}
|
|
@@ -53,26 +69,34 @@ export class ClassRuleBuilder extends RuleBuilder {
|
|
|
53
69
|
* After `.should()`: assert matched classes reside in a file matching the glob.
|
|
54
70
|
*/
|
|
55
71
|
resideInFile(glob) {
|
|
56
|
-
|
|
57
|
-
return this.addCondition(conditionResideInFile(glob));
|
|
58
|
-
}
|
|
59
|
-
return this.addPredicate(predicateResideInFile(glob));
|
|
72
|
+
return this.dualUse(conditionResideInFile(glob), predicateResideInFile(glob));
|
|
60
73
|
}
|
|
61
74
|
/**
|
|
62
75
|
* After `.that()`: filter classes that reside in a folder matching the glob.
|
|
63
76
|
* After `.should()`: assert matched classes reside in a folder matching the glob.
|
|
64
77
|
*/
|
|
65
78
|
resideInFolder(glob) {
|
|
66
|
-
|
|
67
|
-
return this.addCondition(conditionResideInFolder(glob));
|
|
68
|
-
}
|
|
69
|
-
return this.addPredicate(predicateResideInFolder(glob));
|
|
79
|
+
return this.dualUse(conditionResideInFolder(glob), predicateResideInFolder(glob));
|
|
70
80
|
}
|
|
71
|
-
/**
|
|
81
|
+
/**
|
|
82
|
+
* Narrows the selection to classes that are exported.
|
|
83
|
+
*
|
|
84
|
+
* **Predicate only**, unlike the dual-use methods on this builder: it never
|
|
85
|
+
* becomes an assertion. Written after `.should()` it still filters, and the
|
|
86
|
+
* assertion gate reports it as a misplaced predicate rather than letting the
|
|
87
|
+
* rule pass having asserted nothing.
|
|
88
|
+
*/
|
|
72
89
|
areExported() {
|
|
73
90
|
return this.addPredicate(identityAreExported());
|
|
74
91
|
}
|
|
75
|
-
/**
|
|
92
|
+
/**
|
|
93
|
+
* Narrows the selection to classes that are not exported.
|
|
94
|
+
*
|
|
95
|
+
* **Predicate only**, unlike the dual-use methods on this builder: it never
|
|
96
|
+
* becomes an assertion. Written after `.should()` it still filters, and the
|
|
97
|
+
* assertion gate reports it as a misplaced predicate rather than letting the
|
|
98
|
+
* rule pass having asserted nothing.
|
|
99
|
+
*/
|
|
76
100
|
areNotExported() {
|
|
77
101
|
return this.addPredicate(identityAreNotExported());
|
|
78
102
|
}
|
|
@@ -82,30 +106,45 @@ export class ClassRuleBuilder extends RuleBuilder {
|
|
|
82
106
|
* After `.should()`: assert matched classes extend the given class.
|
|
83
107
|
*/
|
|
84
108
|
extend(className) {
|
|
85
|
-
|
|
86
|
-
return this.addCondition(conditionExtend(className));
|
|
87
|
-
}
|
|
88
|
-
return this.addPredicate(predicateExtend(className));
|
|
109
|
+
return this.dualUse(conditionExtend(className), predicateExtend(className));
|
|
89
110
|
}
|
|
90
111
|
/**
|
|
91
112
|
* After `.that()`: filter classes that implement the given interface.
|
|
92
113
|
* After `.should()`: assert matched classes implement the given interface.
|
|
93
114
|
*/
|
|
94
115
|
implement(interfaceName) {
|
|
95
|
-
|
|
96
|
-
return this.addCondition(conditionImplement(interfaceName));
|
|
97
|
-
}
|
|
98
|
-
return this.addPredicate(predicateImplement(interfaceName));
|
|
116
|
+
return this.dualUse(conditionImplement(interfaceName), predicateImplement(interfaceName));
|
|
99
117
|
}
|
|
100
|
-
/**
|
|
118
|
+
/**
|
|
119
|
+
* Narrows the selection to classes that have a decorator `name`.
|
|
120
|
+
*
|
|
121
|
+
* **Predicate only**, unlike the dual-use methods on this builder: it never
|
|
122
|
+
* becomes an assertion. Written after `.should()` it still filters, and the
|
|
123
|
+
* assertion gate reports it as a misplaced predicate rather than letting the
|
|
124
|
+
* rule pass having asserted nothing.
|
|
125
|
+
*/
|
|
101
126
|
haveDecorator(name) {
|
|
102
127
|
return this.addPredicate(predicateHaveDecorator(name));
|
|
103
128
|
}
|
|
104
|
-
/**
|
|
129
|
+
/**
|
|
130
|
+
* Narrows the selection to classes that have a decorator matching `regex`.
|
|
131
|
+
*
|
|
132
|
+
* **Predicate only**, unlike the dual-use methods on this builder: it never
|
|
133
|
+
* becomes an assertion. Written after `.should()` it still filters, and the
|
|
134
|
+
* assertion gate reports it as a misplaced predicate rather than letting the
|
|
135
|
+
* rule pass having asserted nothing.
|
|
136
|
+
*/
|
|
105
137
|
haveDecoratorMatching(regex) {
|
|
106
138
|
return this.addPredicate(predicateHaveDecoratorMatching(regex));
|
|
107
139
|
}
|
|
108
|
-
/**
|
|
140
|
+
/**
|
|
141
|
+
* Narrows the selection to classes that are abstract.
|
|
142
|
+
*
|
|
143
|
+
* **Predicate only**, unlike the dual-use methods on this builder: it never
|
|
144
|
+
* becomes an assertion. Written after `.should()` it still filters, and the
|
|
145
|
+
* assertion gate reports it as a misplaced predicate rather than letting the
|
|
146
|
+
* rule pass having asserted nothing.
|
|
147
|
+
*/
|
|
109
148
|
areAbstract() {
|
|
110
149
|
return this.addPredicate(predicateAreAbstract());
|
|
111
150
|
}
|
|
@@ -114,16 +153,27 @@ export class ClassRuleBuilder extends RuleBuilder {
|
|
|
114
153
|
* After `.should()`: assert matched classes have a method with the given name.
|
|
115
154
|
*/
|
|
116
155
|
haveMethodNamed(name) {
|
|
117
|
-
|
|
118
|
-
return this.addCondition(conditionHaveMethodNamed(name));
|
|
119
|
-
}
|
|
120
|
-
return this.addPredicate(predicateHaveMethodNamed(name));
|
|
156
|
+
return this.dualUse(conditionHaveMethodNamed(name), predicateHaveMethodNamed(name));
|
|
121
157
|
}
|
|
122
|
-
/**
|
|
158
|
+
/**
|
|
159
|
+
* Narrows the selection to classes that have a method matching `regex`.
|
|
160
|
+
*
|
|
161
|
+
* **Predicate only**, unlike the dual-use methods on this builder: it never
|
|
162
|
+
* becomes an assertion. Written after `.should()` it still filters, and the
|
|
163
|
+
* assertion gate reports it as a misplaced predicate rather than letting the
|
|
164
|
+
* rule pass having asserted nothing.
|
|
165
|
+
*/
|
|
123
166
|
haveMethodMatching(regex) {
|
|
124
167
|
return this.addPredicate(predicateHaveMethodMatching(regex));
|
|
125
168
|
}
|
|
126
|
-
/**
|
|
169
|
+
/**
|
|
170
|
+
* Narrows the selection to classes that have a property named `name`.
|
|
171
|
+
*
|
|
172
|
+
* **Predicate only**, unlike the dual-use methods on this builder: it never
|
|
173
|
+
* becomes an assertion. Written after `.should()` it still filters, and the
|
|
174
|
+
* assertion gate reports it as a misplaced predicate rather than letting the
|
|
175
|
+
* rule pass having asserted nothing.
|
|
176
|
+
*/
|
|
127
177
|
havePropertyNamed(name) {
|
|
128
178
|
return this.addPredicate(predicateHavePropertyNamed(name));
|
|
129
179
|
}
|
|
@@ -136,11 +186,19 @@ export class ClassRuleBuilder extends RuleBuilder {
|
|
|
136
186
|
shouldResideInFolder(glob) {
|
|
137
187
|
return this.addCondition(conditionResideInFolder(glob));
|
|
138
188
|
}
|
|
139
|
-
/**
|
|
189
|
+
/**
|
|
190
|
+
* Asserts that the selected classes are exported.
|
|
191
|
+
*
|
|
192
|
+
* **Condition only** — this is the assertion, so it belongs after `.should()`.
|
|
193
|
+
*/
|
|
140
194
|
beExported() {
|
|
141
195
|
return this.addCondition(conditionBeExported());
|
|
142
196
|
}
|
|
143
|
-
/**
|
|
197
|
+
/**
|
|
198
|
+
* Asserts that the selected classes do not exist.
|
|
199
|
+
*
|
|
200
|
+
* **Condition only** — this is the assertion, so it belongs after `.should()`.
|
|
201
|
+
*/
|
|
144
202
|
notExist() {
|
|
145
203
|
return this.addCondition(conditionNotExist());
|
|
146
204
|
}
|
|
@@ -161,50 +219,78 @@ export class ClassRuleBuilder extends RuleBuilder {
|
|
|
161
219
|
shouldHaveMethodNamed(name) {
|
|
162
220
|
return this.addCondition(conditionHaveMethodNamed(name));
|
|
163
221
|
}
|
|
164
|
-
/**
|
|
222
|
+
/**
|
|
223
|
+
* Asserts that the selected classes do not have a method matching `regex`.
|
|
224
|
+
*
|
|
225
|
+
* **Condition only** — this is the assertion, so it belongs after `.should()`.
|
|
226
|
+
*/
|
|
165
227
|
shouldNotHaveMethodMatching(regex) {
|
|
166
228
|
return this.addCondition(conditionNotHaveMethodMatching(regex));
|
|
167
229
|
}
|
|
168
230
|
// --- Member property condition methods (plan 0030) ---
|
|
169
231
|
// "should" prefix: predicate havePropertyNamed(name) exists on this builder
|
|
170
|
-
/**
|
|
232
|
+
/**
|
|
233
|
+
* Asserts that the selected classes have a property named by each of `names`.
|
|
234
|
+
*
|
|
235
|
+
* **Condition only** — this is the assertion, so it belongs after `.should()`.
|
|
236
|
+
*/
|
|
171
237
|
shouldHavePropertyNamed(...names) {
|
|
172
238
|
return this.addCondition(memberHavePropertyNamed(...names));
|
|
173
239
|
}
|
|
174
|
-
/**
|
|
240
|
+
/**
|
|
241
|
+
* Asserts that the selected classes do not have a property named by any of `names`.
|
|
242
|
+
*
|
|
243
|
+
* **Condition only** — this is the assertion, so it belongs after `.should()`.
|
|
244
|
+
*/
|
|
175
245
|
shouldNotHavePropertyNamed(...names) {
|
|
176
246
|
return this.addCondition(memberNotHavePropertyNamed(...names));
|
|
177
247
|
}
|
|
178
248
|
// No "should" prefix: no predicate collision (matches beExported, notExist, contain pattern)
|
|
179
|
-
/**
|
|
249
|
+
/**
|
|
250
|
+
* Asserts that the selected classes have a property matching `pattern`.
|
|
251
|
+
*
|
|
252
|
+
* **Condition only** — this is the assertion, so it belongs after `.should()`.
|
|
253
|
+
*/
|
|
180
254
|
havePropertyMatching(pattern) {
|
|
181
255
|
return this.addCondition(memberHavePropertyMatching(pattern));
|
|
182
256
|
}
|
|
183
|
-
/**
|
|
257
|
+
/**
|
|
258
|
+
* Asserts that the selected classes do not have a property matching `pattern`.
|
|
259
|
+
*
|
|
260
|
+
* **Condition only** — this is the assertion, so it belongs after `.should()`.
|
|
261
|
+
*/
|
|
184
262
|
notHavePropertyMatching(pattern) {
|
|
185
263
|
return this.addCondition(memberNotHavePropertyMatching(pattern));
|
|
186
264
|
}
|
|
187
|
-
/**
|
|
265
|
+
/**
|
|
266
|
+
* Asserts that the selected classes have only readonly properties.
|
|
267
|
+
*
|
|
268
|
+
* **Condition only** — this is the assertion, so it belongs after `.should()`.
|
|
269
|
+
*/
|
|
188
270
|
haveOnlyReadonlyProperties() {
|
|
189
271
|
return this.addCondition(memberHaveOnlyReadonlyProperties());
|
|
190
272
|
}
|
|
191
|
-
/**
|
|
273
|
+
/**
|
|
274
|
+
* Asserts that the selected classes have at most `max` properties.
|
|
275
|
+
*
|
|
276
|
+
* **Condition only** — this is the assertion, so it belongs after `.should()`.
|
|
277
|
+
*/
|
|
192
278
|
maxProperties(max) {
|
|
193
279
|
return this.addCondition(memberMaxProperties(max));
|
|
194
280
|
}
|
|
195
281
|
// --- Parameter type condition methods (plan 0031) ---
|
|
196
282
|
/**
|
|
197
|
-
*
|
|
198
|
-
*
|
|
199
|
-
*
|
|
283
|
+
* Asserts that the selected classes accept a parameter of a type matching `matcher`.
|
|
284
|
+
*
|
|
285
|
+
* **Condition only** — this is the assertion, so it belongs after `.should()`.
|
|
200
286
|
*/
|
|
201
287
|
acceptParameterOfType(matcher) {
|
|
202
288
|
return this.addCondition(conditionAcceptParameterOfType(matcher));
|
|
203
289
|
}
|
|
204
290
|
/**
|
|
205
|
-
*
|
|
206
|
-
*
|
|
207
|
-
*
|
|
291
|
+
* Asserts that the selected classes do not accept a parameter of a type matching `matcher`.
|
|
292
|
+
*
|
|
293
|
+
* **Condition only** — this is the assertion, so it belongs after `.should()`.
|
|
208
294
|
*/
|
|
209
295
|
notAcceptParameterOfType(matcher) {
|
|
210
296
|
return this.addCondition(conditionNotAcceptParameterOfType(matcher));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"class-rule-builder.js","sourceRoot":"","sources":["../../src/builders/class-rule-builder.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"class-rule-builder.js","sourceRoot":"","sources":["../../src/builders/class-rule-builder.ts"],"names":[],"mappings":"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"}
|