@nielspeter/eess-ts 0.2.0 → 0.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +87 -34
- package/dist/builders/call-rule-builder.d.ts +66 -26
- package/dist/builders/call-rule-builder.d.ts.map +1 -1
- package/dist/builders/call-rule-builder.js +73 -31
- package/dist/builders/call-rule-builder.js.map +1 -1
- package/dist/builders/class-rule-builder.d.ts +125 -26
- package/dist/builders/class-rule-builder.d.ts.map +1 -1
- package/dist/builders/class-rule-builder.js +134 -30
- package/dist/builders/class-rule-builder.js.map +1 -1
- package/dist/builders/correspondence-builder.d.ts +287 -0
- package/dist/builders/correspondence-builder.d.ts.map +1 -0
- package/dist/builders/correspondence-builder.js +393 -0
- package/dist/builders/correspondence-builder.js.map +1 -0
- package/dist/builders/correspondence-findings.d.ts +104 -0
- package/dist/builders/correspondence-findings.d.ts.map +1 -0
- package/dist/builders/correspondence-findings.js +301 -0
- package/dist/builders/correspondence-findings.js.map +1 -0
- package/dist/builders/cross-layer-builder.d.ts +99 -16
- package/dist/builders/cross-layer-builder.d.ts.map +1 -1
- package/dist/builders/cross-layer-builder.js +181 -35
- package/dist/builders/cross-layer-builder.js.map +1 -1
- package/dist/builders/function-rule-builder.d.ts +144 -25
- package/dist/builders/function-rule-builder.d.ts.map +1 -1
- package/dist/builders/function-rule-builder.js +173 -26
- package/dist/builders/function-rule-builder.js.map +1 -1
- package/dist/builders/jsx-rule-builder.d.ts +70 -14
- package/dist/builders/jsx-rule-builder.d.ts.map +1 -1
- package/dist/builders/jsx-rule-builder.js +73 -14
- package/dist/builders/jsx-rule-builder.js.map +1 -1
- package/dist/builders/module-rule-builder.d.ts +2 -2
- package/dist/builders/module-rule-builder.d.ts.map +1 -1
- package/dist/builders/module-rule-builder.js +12 -3
- package/dist/builders/module-rule-builder.js.map +1 -1
- package/dist/builders/scoped-function-rule-builder.d.ts +11 -0
- package/dist/builders/scoped-function-rule-builder.d.ts.map +1 -1
- package/dist/builders/scoped-function-rule-builder.js +12 -0
- package/dist/builders/scoped-function-rule-builder.js.map +1 -1
- package/dist/builders/slice-discovery-message.d.ts +36 -0
- package/dist/builders/slice-discovery-message.d.ts.map +1 -0
- package/dist/builders/slice-discovery-message.js +181 -0
- package/dist/builders/slice-discovery-message.js.map +1 -0
- package/dist/builders/slice-rule-builder.d.ts +151 -12
- package/dist/builders/slice-rule-builder.d.ts.map +1 -1
- package/dist/builders/slice-rule-builder.js +242 -35
- package/dist/builders/slice-rule-builder.js.map +1 -1
- package/dist/builders/type-rule-builder.d.ts +95 -24
- package/dist/builders/type-rule-builder.d.ts.map +1 -1
- package/dist/builders/type-rule-builder.js +105 -29
- package/dist/builders/type-rule-builder.js.map +1 -1
- package/dist/{helpers → builders}/within.d.ts +2 -2
- package/dist/builders/within.d.ts.map +1 -0
- package/dist/{helpers → builders}/within.js +1 -1
- package/dist/builders/within.js.map +1 -0
- package/dist/cli/commands/baseline.d.ts +3 -2
- package/dist/cli/commands/baseline.d.ts.map +1 -1
- package/dist/cli/commands/baseline.js +68 -6
- package/dist/cli/commands/baseline.js.map +1 -1
- package/dist/cli/commands/check.d.ts +7 -2
- package/dist/cli/commands/check.d.ts.map +1 -1
- package/dist/cli/commands/check.js +241 -45
- package/dist/cli/commands/check.js.map +1 -1
- package/dist/cli/commands/doctor.d.ts +29 -0
- package/dist/cli/commands/doctor.d.ts.map +1 -0
- package/dist/cli/commands/doctor.js +224 -0
- package/dist/cli/commands/doctor.js.map +1 -0
- package/dist/cli/commands/explain.d.ts +2 -1
- package/dist/cli/commands/explain.d.ts.map +1 -1
- package/dist/cli/commands/explain.js +19 -10
- package/dist/cli/commands/explain.js.map +1 -1
- package/dist/cli/commands/init.d.ts +9 -3
- package/dist/cli/commands/init.d.ts.map +1 -1
- package/dist/cli/commands/init.js +162 -137
- package/dist/cli/commands/init.js.map +1 -1
- package/dist/cli/import-rule-module.d.ts +29 -0
- package/dist/cli/import-rule-module.d.ts.map +1 -0
- package/dist/cli/import-rule-module.js +60 -0
- package/dist/cli/import-rule-module.js.map +1 -0
- package/dist/cli/index.d.ts +2 -2
- package/dist/cli/index.d.ts.map +1 -1
- package/dist/cli/index.js +98 -33
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/load-rules.d.ts +6 -11
- package/dist/cli/load-rules.d.ts.map +1 -1
- package/dist/cli/load-rules.js +21 -29
- package/dist/cli/load-rules.js.map +1 -1
- package/dist/cli/resolve-config.d.ts.map +1 -1
- package/dist/cli/resolve-config.js +24 -14
- package/dist/cli/resolve-config.js.map +1 -1
- package/dist/cli/rule-file-findings.d.ts +178 -0
- package/dist/cli/rule-file-findings.d.ts.map +1 -0
- package/dist/cli/rule-file-findings.js +293 -0
- package/dist/cli/rule-file-findings.js.map +1 -0
- package/dist/cli/watch.d.ts +20 -7
- package/dist/cli/watch.d.ts.map +1 -1
- package/dist/cli/watch.js +39 -14
- package/dist/cli/watch.js.map +1 -1
- package/dist/conditions/body-analysis-function.d.ts.map +1 -1
- package/dist/conditions/body-analysis-function.js +16 -7
- package/dist/conditions/body-analysis-function.js.map +1 -1
- package/dist/conditions/body-analysis-module.d.ts.map +1 -1
- package/dist/conditions/body-analysis-module.js +14 -9
- package/dist/conditions/body-analysis-module.js.map +1 -1
- package/dist/conditions/body-analysis.d.ts.map +1 -1
- package/dist/conditions/body-analysis.js +16 -7
- package/dist/conditions/body-analysis.js.map +1 -1
- package/dist/conditions/call.d.ts.map +1 -1
- package/dist/conditions/call.js +38 -17
- package/dist/conditions/call.js.map +1 -1
- package/dist/conditions/catch-analysis.d.ts +2 -1
- package/dist/conditions/catch-analysis.d.ts.map +1 -1
- package/dist/conditions/catch-analysis.js.map +1 -1
- package/dist/conditions/cross-layer.d.ts +2 -10
- package/dist/conditions/cross-layer.d.ts.map +1 -1
- package/dist/conditions/cross-layer.js +227 -23
- package/dist/conditions/cross-layer.js.map +1 -1
- package/dist/conditions/dependency.d.ts +35 -6
- package/dist/conditions/dependency.d.ts.map +1 -1
- package/dist/conditions/dependency.js +299 -45
- package/dist/conditions/dependency.js.map +1 -1
- package/dist/conditions/exports.d.ts.map +1 -1
- package/dist/conditions/exports.js +10 -0
- package/dist/conditions/exports.js.map +1 -1
- package/dist/conditions/function.d.ts.map +1 -1
- package/dist/conditions/function.js +19 -5
- package/dist/conditions/function.js.map +1 -1
- package/dist/conditions/helpers.d.ts +2 -1
- package/dist/conditions/helpers.d.ts.map +1 -1
- package/dist/conditions/helpers.js +4 -1
- package/dist/conditions/helpers.js.map +1 -1
- package/dist/conditions/jsx.d.ts.map +1 -1
- package/dist/conditions/jsx.js +7 -2
- package/dist/conditions/jsx.js.map +1 -1
- package/dist/conditions/match-identity.d.ts +43 -0
- package/dist/conditions/match-identity.d.ts.map +1 -0
- package/dist/conditions/match-identity.js +43 -0
- package/dist/conditions/match-identity.js.map +1 -0
- package/dist/conditions/members.d.ts.map +1 -1
- package/dist/conditions/members.js +17 -4
- package/dist/conditions/members.js.map +1 -1
- package/dist/conditions/reverse-dependency.d.ts +18 -5
- package/dist/conditions/reverse-dependency.d.ts.map +1 -1
- package/dist/conditions/reverse-dependency.js +109 -92
- package/dist/conditions/reverse-dependency.js.map +1 -1
- package/dist/conditions/slice.d.ts +86 -2
- package/dist/conditions/slice.d.ts.map +1 -1
- package/dist/conditions/slice.js +234 -53
- package/dist/conditions/slice.js.map +1 -1
- package/dist/conditions/structural.d.ts.map +1 -1
- package/dist/conditions/structural.js +16 -4
- package/dist/conditions/structural.js.map +1 -1
- package/dist/core/check-all.d.ts +19 -0
- package/dist/core/check-all.d.ts.map +1 -0
- package/dist/core/check-all.js +96 -0
- package/dist/core/check-all.js.map +1 -0
- package/dist/core/combinators.d.ts +48 -0
- package/dist/core/combinators.d.ts.map +1 -0
- package/dist/core/combinators.js +56 -0
- package/dist/core/combinators.js.map +1 -0
- package/dist/core/descendant-cache.d.ts +36 -0
- package/dist/core/descendant-cache.d.ts.map +1 -0
- package/dist/core/descendant-cache.js +119 -0
- package/dist/core/descendant-cache.js.map +1 -0
- package/dist/core/diagnose.d.ts +234 -0
- package/dist/core/diagnose.d.ts.map +1 -0
- package/dist/core/diagnose.js +382 -0
- package/dist/core/diagnose.js.map +1 -0
- package/dist/core/disk-set.d.ts +48 -0
- package/dist/core/disk-set.d.ts.map +1 -0
- package/dist/core/disk-set.js +218 -0
- package/dist/core/disk-set.js.map +1 -0
- package/dist/core/element-cache.d.ts +75 -0
- package/dist/core/element-cache.d.ts.map +1 -0
- package/dist/core/element-cache.js +32 -0
- package/dist/core/element-cache.js.map +1 -0
- package/dist/core/empty-project-advice.d.ts +75 -0
- package/dist/core/empty-project-advice.d.ts.map +1 -0
- package/dist/core/empty-project-advice.js +61 -0
- package/dist/core/empty-project-advice.js.map +1 -0
- package/dist/core/exclusion-comments.d.ts +54 -0
- package/dist/core/exclusion-comments.d.ts.map +1 -0
- package/dist/core/exclusion-comments.js +310 -0
- package/dist/core/exclusion-comments.js.map +1 -0
- package/dist/core/execute-rule.d.ts +150 -0
- package/dist/core/execute-rule.d.ts.map +1 -0
- package/dist/core/execute-rule.js +580 -0
- package/dist/core/execute-rule.js.map +1 -0
- package/dist/core/glob-diagnosis.d.ts +78 -0
- package/dist/core/glob-diagnosis.d.ts.map +1 -0
- package/dist/core/glob-diagnosis.js +134 -0
- package/dist/core/glob-diagnosis.js.map +1 -0
- package/dist/core/glob-evaluator.d.ts +48 -0
- package/dist/core/glob-evaluator.d.ts.map +1 -0
- package/dist/core/glob-evaluator.js +89 -0
- package/dist/core/glob-evaluator.js.map +1 -0
- package/dist/core/import-candidates.d.ts +60 -0
- package/dist/core/import-candidates.d.ts.map +1 -0
- package/dist/core/import-candidates.js +93 -0
- package/dist/core/import-candidates.js.map +1 -0
- package/dist/core/import-options.d.ts +55 -2
- package/dist/core/import-options.d.ts.map +1 -1
- package/dist/core/import-options.js +64 -0
- package/dist/core/import-options.js.map +1 -1
- package/dist/core/line-index.d.ts +3 -0
- package/dist/core/line-index.d.ts.map +1 -0
- package/dist/core/line-index.js +229 -0
- package/dist/core/line-index.js.map +1 -0
- package/dist/core/metric-violation.d.ts +86 -0
- package/dist/core/metric-violation.d.ts.map +1 -0
- package/dist/core/metric-violation.js +132 -0
- package/dist/core/metric-violation.js.map +1 -0
- package/dist/core/module-edges.d.ts +361 -0
- package/dist/core/module-edges.d.ts.map +1 -0
- package/dist/core/module-edges.js +592 -0
- package/dist/core/module-edges.js.map +1 -0
- package/dist/core/object-literal-functions.d.ts +42 -0
- package/dist/core/object-literal-functions.d.ts.map +1 -0
- package/dist/core/object-literal-functions.js +75 -0
- package/dist/core/object-literal-functions.js.map +1 -0
- package/dist/core/orphan-exclusions.d.ts +44 -0
- package/dist/core/orphan-exclusions.d.ts.map +1 -0
- package/dist/core/orphan-exclusions.js +214 -0
- package/dist/core/orphan-exclusions.js.map +1 -0
- package/dist/core/pair-condition.d.ts +32 -3
- package/dist/core/pair-condition.d.ts.map +1 -1
- package/dist/core/path-universe.d.ts +54 -0
- package/dist/core/path-universe.d.ts.map +1 -0
- package/dist/core/path-universe.js +65 -0
- package/dist/core/path-universe.js.map +1 -0
- package/dist/core/per-root-compiler-options.d.ts +20 -0
- package/dist/core/per-root-compiler-options.d.ts.map +1 -0
- package/dist/core/per-root-compiler-options.js +57 -0
- package/dist/core/per-root-compiler-options.js.map +1 -0
- package/dist/core/project-relative.d.ts +98 -0
- package/dist/core/project-relative.d.ts.map +1 -0
- package/dist/core/project-relative.js +185 -0
- package/dist/core/project-relative.js.map +1 -0
- package/dist/core/project.d.ts +7 -1
- package/dist/core/project.d.ts.map +1 -1
- package/dist/core/project.js +24 -0
- package/dist/core/project.js.map +1 -1
- package/dist/core/rule-builder.d.ts +282 -0
- package/dist/core/rule-builder.d.ts.map +1 -0
- package/dist/core/rule-builder.js +445 -0
- package/dist/core/rule-builder.js.map +1 -0
- package/dist/core/rule-declaration.d.ts +32 -0
- package/dist/core/rule-declaration.d.ts.map +1 -0
- package/dist/core/rule-declaration.js +126 -0
- package/dist/core/rule-declaration.js.map +1 -0
- package/dist/core/terminal-builder.d.ts +625 -0
- package/dist/core/terminal-builder.d.ts.map +1 -0
- package/dist/core/terminal-builder.js +787 -0
- package/dist/core/terminal-builder.js.map +1 -0
- package/dist/core/terminal-execution.d.ts +23 -0
- package/dist/core/terminal-execution.d.ts.map +1 -0
- package/dist/core/terminal-execution.js +71 -0
- package/dist/core/terminal-execution.js.map +1 -0
- package/dist/core/vacuity-diagnosis.d.ts +103 -0
- package/dist/core/vacuity-diagnosis.d.ts.map +1 -0
- package/dist/core/vacuity-diagnosis.js +415 -0
- package/dist/core/vacuity-diagnosis.js.map +1 -0
- package/dist/core/violation.d.ts +16 -11
- package/dist/core/violation.d.ts.map +1 -1
- package/dist/core/violation.js +33 -13
- package/dist/core/violation.js.map +1 -1
- package/dist/graphql/index.js +1 -1
- package/dist/graphql/index.js.map +1 -1
- package/dist/graphql/resolver-rule-builder.d.ts +98 -23
- package/dist/graphql/resolver-rule-builder.d.ts.map +1 -1
- package/dist/graphql/resolver-rule-builder.js +151 -21
- package/dist/graphql/resolver-rule-builder.js.map +1 -1
- package/dist/graphql/schema-loader.d.ts +21 -0
- package/dist/graphql/schema-loader.d.ts.map +1 -1
- package/dist/graphql/schema-loader.js +81 -12
- package/dist/graphql/schema-loader.js.map +1 -1
- package/dist/graphql/schema-rule-builder.d.ts +57 -20
- package/dist/graphql/schema-rule-builder.d.ts.map +1 -1
- package/dist/graphql/schema-rule-builder.js +101 -25
- package/dist/graphql/schema-rule-builder.js.map +1 -1
- package/dist/helpers/baseline-diagnostics.d.ts +45 -0
- package/dist/helpers/baseline-diagnostics.d.ts.map +1 -0
- package/dist/helpers/baseline-diagnostics.js +168 -0
- package/dist/helpers/baseline-diagnostics.js.map +1 -0
- package/dist/helpers/baseline-generator.d.ts +19 -0
- package/dist/helpers/baseline-generator.d.ts.map +1 -0
- package/dist/helpers/baseline-generator.js +18 -0
- package/dist/helpers/baseline-generator.js.map +1 -0
- package/dist/helpers/baseline.d.ts +336 -0
- package/dist/helpers/baseline.d.ts.map +1 -0
- package/dist/helpers/baseline.js +664 -0
- package/dist/helpers/baseline.js.map +1 -0
- package/dist/helpers/body-traversal.d.ts +27 -2
- package/dist/helpers/body-traversal.d.ts.map +1 -1
- package/dist/helpers/body-traversal.js +122 -16
- package/dist/helpers/body-traversal.js.map +1 -1
- package/dist/helpers/callback-extractor.d.ts.map +1 -1
- package/dist/helpers/callback-extractor.js +48 -47
- package/dist/helpers/callback-extractor.js.map +1 -1
- package/dist/helpers/complexity.d.ts +13 -5
- package/dist/helpers/complexity.d.ts.map +1 -1
- package/dist/helpers/complexity.js +15 -6
- package/dist/helpers/complexity.js.map +1 -1
- package/dist/helpers/diff-aware.d.ts +44 -0
- package/dist/helpers/diff-aware.d.ts.map +1 -0
- package/dist/helpers/diff-aware.js +84 -0
- package/dist/helpers/diff-aware.js.map +1 -0
- package/dist/helpers/matchers.d.ts +68 -7
- package/dist/helpers/matchers.d.ts.map +1 -1
- package/dist/helpers/matchers.js +114 -20
- package/dist/helpers/matchers.js.map +1 -1
- package/dist/helpers/slice-graph.d.ts +100 -8
- package/dist/helpers/slice-graph.d.ts.map +1 -1
- package/dist/helpers/slice-graph.js +126 -34
- package/dist/helpers/slice-graph.js.map +1 -1
- package/dist/helpers/tarjan.d.ts +0 -14
- package/dist/helpers/tarjan.d.ts.map +1 -1
- package/dist/helpers/tarjan.js +29 -16
- package/dist/helpers/tarjan.js.map +1 -1
- package/dist/index.d.ts +56 -17
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +57 -13
- package/dist/index.js.map +1 -1
- package/dist/models/arch-call.d.ts +3 -2
- package/dist/models/arch-call.d.ts.map +1 -1
- package/dist/models/arch-call.js.map +1 -1
- package/dist/models/arch-function.d.ts +28 -6
- package/dist/models/arch-function.d.ts.map +1 -1
- package/dist/models/arch-function.js +106 -3
- package/dist/models/arch-function.js.map +1 -1
- package/dist/models/arch-jsx-element.js +2 -2
- package/dist/models/arch-jsx-element.js.map +1 -1
- package/dist/models/slice.d.ts +33 -9
- package/dist/models/slice.d.ts.map +1 -1
- package/dist/models/slice.js +129 -19
- package/dist/models/slice.js.map +1 -1
- package/dist/predicates/call.d.ts.map +1 -1
- package/dist/predicates/call.js +5 -0
- package/dist/predicates/call.js.map +1 -1
- package/dist/predicates/identity.d.ts +21 -0
- package/dist/predicates/identity.d.ts.map +1 -1
- package/dist/predicates/identity.js +75 -3
- package/dist/predicates/identity.js.map +1 -1
- package/dist/predicates/index.d.ts +1 -1
- package/dist/predicates/index.d.ts.map +1 -1
- package/dist/predicates/index.js +1 -1
- package/dist/predicates/index.js.map +1 -1
- package/dist/predicates/metrics.d.ts +4 -2
- package/dist/predicates/metrics.d.ts.map +1 -1
- package/dist/predicates/metrics.js +4 -2
- package/dist/predicates/metrics.js.map +1 -1
- package/dist/predicates/module.d.ts +4 -12
- package/dist/predicates/module.d.ts.map +1 -1
- package/dist/predicates/module.js +57 -37
- package/dist/predicates/module.js.map +1 -1
- package/dist/presets/agent-guardrails.d.ts +22 -15
- package/dist/presets/agent-guardrails.d.ts.map +1 -1
- package/dist/presets/agent-guardrails.js +124 -19
- package/dist/presets/agent-guardrails.js.map +1 -1
- package/dist/presets/boundaries.d.ts +45 -2
- package/dist/presets/boundaries.d.ts.map +1 -1
- package/dist/presets/boundaries.js +132 -23
- package/dist/presets/boundaries.js.map +1 -1
- package/dist/presets/data-layer.d.ts +22 -2
- package/dist/presets/data-layer.d.ts.map +1 -1
- package/dist/presets/data-layer.js +58 -16
- package/dist/presets/data-layer.js.map +1 -1
- package/dist/presets/index.d.ts +7 -5
- package/dist/presets/index.d.ts.map +1 -1
- package/dist/presets/index.js +9 -3
- package/dist/presets/index.js.map +1 -1
- package/dist/presets/layered.d.ts +46 -2
- package/dist/presets/layered.d.ts.map +1 -1
- package/dist/presets/layered.js +66 -29
- package/dist/presets/layered.js.map +1 -1
- package/dist/presets/recommended.d.ts +80 -9
- package/dist/presets/recommended.d.ts.map +1 -1
- package/dist/presets/recommended.js +25 -23
- package/dist/presets/recommended.js.map +1 -1
- package/dist/presets/shared.d.ts +270 -2
- package/dist/presets/shared.d.ts.map +1 -1
- package/dist/presets/shared.js +338 -4
- package/dist/presets/shared.js.map +1 -1
- package/dist/rules/code-quality.d.ts.map +1 -1
- package/dist/rules/code-quality.js +15 -6
- package/dist/rules/code-quality.js.map +1 -1
- package/dist/rules/hygiene.d.ts +1 -1
- package/dist/rules/hygiene.js +1 -1
- package/dist/rules/metrics-function.d.ts +2 -1
- package/dist/rules/metrics-function.d.ts.map +1 -1
- package/dist/rules/metrics-function.js +33 -6
- package/dist/rules/metrics-function.js.map +1 -1
- package/dist/rules/metrics.d.ts +2 -1
- package/dist/rules/metrics.d.ts.map +1 -1
- package/dist/rules/metrics.js +39 -9
- package/dist/rules/metrics.js.map +1 -1
- package/dist/smells/duplicate-bodies.d.ts +58 -5
- package/dist/smells/duplicate-bodies.d.ts.map +1 -1
- package/dist/smells/duplicate-bodies.js +137 -56
- package/dist/smells/duplicate-bodies.js.map +1 -1
- package/dist/smells/fingerprint.d.ts +8 -1
- package/dist/smells/fingerprint.d.ts.map +1 -1
- package/dist/smells/fingerprint.js +21 -3
- package/dist/smells/fingerprint.js.map +1 -1
- package/dist/smells/inconsistent-siblings.d.ts +128 -7
- package/dist/smells/inconsistent-siblings.d.ts.map +1 -1
- package/dist/smells/inconsistent-siblings.js +288 -86
- package/dist/smells/inconsistent-siblings.js.map +1 -1
- package/dist/smells/sibling-files.d.ts +47 -0
- package/dist/smells/sibling-files.d.ts.map +1 -0
- package/dist/smells/sibling-files.js +104 -0
- package/dist/smells/sibling-files.js.map +1 -0
- package/dist/smells/similar-pairs.d.ts +27 -0
- package/dist/smells/similar-pairs.d.ts.map +1 -0
- package/dist/smells/similar-pairs.js +52 -0
- package/dist/smells/similar-pairs.js.map +1 -0
- package/dist/smells/smell-builder.d.ts +57 -12
- package/dist/smells/smell-builder.d.ts.map +1 -1
- package/dist/smells/smell-builder.js +111 -14
- package/dist/smells/smell-builder.js.map +1 -1
- package/dist/tsconfig/index.d.ts +19 -0
- package/dist/tsconfig/index.d.ts.map +1 -0
- package/dist/tsconfig/index.js +20 -0
- package/dist/tsconfig/index.js.map +1 -0
- package/dist/tsconfig/tsconfig-builder.d.ts +42 -9
- package/dist/tsconfig/tsconfig-builder.d.ts.map +1 -1
- package/dist/tsconfig/tsconfig-builder.js +64 -16
- package/dist/tsconfig/tsconfig-builder.js.map +1 -1
- package/package.json +3 -2
- package/dist/core/module-dependencies.d.ts +0 -28
- package/dist/core/module-dependencies.d.ts.map +0 -1
- package/dist/core/module-dependencies.js +0 -35
- package/dist/core/module-dependencies.js.map +0 -1
- package/dist/helpers/within.d.ts.map +0 -1
- package/dist/helpers/within.js.map +0 -1
|
@@ -1,13 +1,23 @@
|
|
|
1
1
|
import picomatch from 'picomatch';
|
|
2
|
-
import {
|
|
2
|
+
import { ownsEmptyDiscovery } from '@nielspeter/eess';
|
|
3
|
+
import { globAnyOf, stampGlobs } from '@nielspeter/eess';
|
|
4
|
+
import { TerminalBuilder } from '../core/terminal-builder.js';
|
|
5
|
+
import { shallowClone } from '@nielspeter/eess';
|
|
6
|
+
import { isProjectRelative, relativeToRoot } from '../core/project-relative.js';
|
|
3
7
|
/**
|
|
4
8
|
* Resolve a layer by matching its glob against the project's source files.
|
|
5
9
|
*/
|
|
6
10
|
function resolveLayer(project, name, pattern) {
|
|
7
11
|
const isMatch = picomatch(pattern);
|
|
12
|
+
const relative = isProjectRelative(pattern);
|
|
8
13
|
const files = [];
|
|
9
14
|
for (const sf of project.getSourceFiles()) {
|
|
10
|
-
|
|
15
|
+
const filePath = sf.getFilePath();
|
|
16
|
+
// Bug 0036: the glob is matched against an ABSOLUTE path, so a
|
|
17
|
+
// project-relative one could never resolve a layer. Same rule as every
|
|
18
|
+
// other path glob — relative means from the project root.
|
|
19
|
+
const fromRoot = relative ? relativeToRoot(sf, filePath, project.tsConfigPath) : undefined;
|
|
20
|
+
if (isMatch(filePath) || (fromRoot !== undefined && isMatch(fromRoot))) {
|
|
11
21
|
files.push(sf);
|
|
12
22
|
}
|
|
13
23
|
}
|
|
@@ -15,19 +25,23 @@ function resolveLayer(project, name, pattern) {
|
|
|
15
25
|
}
|
|
16
26
|
/**
|
|
17
27
|
* Compute matched pairs between two layers using a mapping function.
|
|
18
|
-
*
|
|
19
|
-
* Delegates the matching to the kernel's shared `matchSelections()` engine (the
|
|
20
|
-
* same one `correspondence()` uses), then wraps each pair with its layer names.
|
|
21
|
-
* There is no separate cross-layer matching implementation.
|
|
28
|
+
* Iterates the Cartesian product, keeping only pairs where the mapping returns true.
|
|
22
29
|
*/
|
|
23
30
|
function computePairs(leftLayer, rightLayer, mappingFn) {
|
|
24
|
-
const
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
+
const pairs = [];
|
|
32
|
+
for (const left of leftLayer.files) {
|
|
33
|
+
for (const right of rightLayer.files) {
|
|
34
|
+
if (mappingFn(left, right)) {
|
|
35
|
+
pairs.push({
|
|
36
|
+
left,
|
|
37
|
+
leftLayer: leftLayer.name,
|
|
38
|
+
right,
|
|
39
|
+
rightLayer: rightLayer.name,
|
|
40
|
+
});
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
return pairs;
|
|
31
45
|
}
|
|
32
46
|
/**
|
|
33
47
|
* Builder for cross-layer consistency rules.
|
|
@@ -37,8 +51,8 @@ function computePairs(leftLayer, rightLayer, mappingFn) {
|
|
|
37
51
|
*
|
|
38
52
|
* @example
|
|
39
53
|
* crossLayer(project)
|
|
40
|
-
* .layer('routes', 'src/routes/**')
|
|
41
|
-
* .layer('schemas', 'src/schemas/**')
|
|
54
|
+
* .layer('routes', '**\/src/routes/**')
|
|
55
|
+
* .layer('schemas', '**\/src/schemas/**')
|
|
42
56
|
* .mapping((a, b) => a.getBaseName().replace('Route', '') === b.getBaseName().replace('Schema', ''))
|
|
43
57
|
* .forEachPair()
|
|
44
58
|
* .should(haveMatchingCounterpart())
|
|
@@ -55,8 +69,24 @@ export class CrossLayerBuilder {
|
|
|
55
69
|
* At least two layers must be defined before calling `.mapping()`.
|
|
56
70
|
*/
|
|
57
71
|
layer(name, pattern) {
|
|
58
|
-
this.
|
|
59
|
-
|
|
72
|
+
const next = this.copy();
|
|
73
|
+
next._layerDefs.push({ name, pattern });
|
|
74
|
+
return next;
|
|
75
|
+
}
|
|
76
|
+
/**
|
|
77
|
+
* An independent copy, carrying the layer definitions (bug 0016).
|
|
78
|
+
*
|
|
79
|
+
* This class does not extend {@link TerminalBuilder} — it produces a rule
|
|
80
|
+
* rather than being one — so it does not inherit that class's `copy()`. It
|
|
81
|
+
* still needs copy-on-write for the same reason: a held `crossLayer(p)`
|
|
82
|
+
* accumulated a layer per `.layer()` call across every rule derived from it,
|
|
83
|
+
* and `mapping()` pairs *consecutive* layers, so an extra layer silently
|
|
84
|
+
* changes which pairs a later rule compares.
|
|
85
|
+
*/
|
|
86
|
+
copy() {
|
|
87
|
+
const clone = shallowClone(this);
|
|
88
|
+
clone._layerDefs = [...this._layerDefs];
|
|
89
|
+
return clone;
|
|
60
90
|
}
|
|
61
91
|
/**
|
|
62
92
|
* Provide a mapping function that determines which elements form pairs.
|
|
@@ -78,59 +108,156 @@ export class CrossLayerBuilder {
|
|
|
78
108
|
if (left && right)
|
|
79
109
|
allPairs.push(...computePairs(left, right, fn));
|
|
80
110
|
}
|
|
81
|
-
return new MappedCrossLayerBuilder(layers, allPairs);
|
|
111
|
+
return new MappedCrossLayerBuilder(layers, allPairs, this.project);
|
|
82
112
|
}
|
|
83
113
|
}
|
|
84
114
|
/**
|
|
85
115
|
* Intermediate builder after `.mapping()` has been called.
|
|
86
116
|
* The layers are resolved and pairs computed.
|
|
87
117
|
*/
|
|
88
|
-
//
|
|
118
|
+
// A fluent-chain intermediate: nothing imports it by name, but it is the declared
|
|
119
|
+
// return type of an exported method, and `arch-rules.test.ts` ·
|
|
120
|
+
// `it('builders must be exported')` requires every class under `src/builders/` to be
|
|
121
|
+
// exported — "unexported builders are unreachable". The two rules genuinely disagree
|
|
122
|
+
// here; this resolves toward the explicit, reasoned one. The directive sits LAST because
|
|
123
|
+
// a single-line waiver covers exactly the next line.
|
|
124
|
+
// eess-exclude eess/no-unused-exports: fluent-chain intermediate, exported per the rule above
|
|
89
125
|
export class MappedCrossLayerBuilder {
|
|
90
126
|
layers;
|
|
91
127
|
pairs;
|
|
92
|
-
|
|
128
|
+
project;
|
|
129
|
+
constructor(layers, pairs, project) {
|
|
93
130
|
this.layers = layers;
|
|
94
131
|
this.pairs = pairs;
|
|
132
|
+
this.project = project;
|
|
95
133
|
}
|
|
96
134
|
/**
|
|
97
135
|
* Iterate over each matched pair. Returns a builder for attaching conditions.
|
|
98
136
|
*/
|
|
99
137
|
forEachPair() {
|
|
100
|
-
return new PairConditionBuilder(this.layers, this.pairs);
|
|
138
|
+
return new PairConditionBuilder(this.layers, this.pairs, this.project);
|
|
101
139
|
}
|
|
102
140
|
}
|
|
103
141
|
/**
|
|
104
142
|
* Builder after `.forEachPair()` — attach a pair condition via `.should()`.
|
|
105
143
|
*/
|
|
106
|
-
//
|
|
144
|
+
// A fluent-chain intermediate: nothing imports it by name, but it is the declared
|
|
145
|
+
// return type of an exported method, and `arch-rules.test.ts` ·
|
|
146
|
+
// `it('builders must be exported')` requires every class under `src/builders/` to be
|
|
147
|
+
// exported — "unexported builders are unreachable". The two rules genuinely disagree
|
|
148
|
+
// here; this resolves toward the explicit, reasoned one. The directive sits LAST because
|
|
149
|
+
// a single-line waiver covers exactly the next line.
|
|
150
|
+
// eess-exclude eess/no-unused-exports: fluent-chain intermediate, exported per the rule above
|
|
107
151
|
export class PairConditionBuilder {
|
|
108
152
|
layers;
|
|
109
153
|
pairs;
|
|
110
|
-
|
|
154
|
+
project;
|
|
155
|
+
constructor(layers, pairs, project) {
|
|
111
156
|
this.layers = layers;
|
|
112
157
|
this.pairs = pairs;
|
|
158
|
+
this.project = project;
|
|
113
159
|
}
|
|
114
160
|
/**
|
|
115
161
|
* Attach a pair condition to evaluate against matched pairs.
|
|
116
162
|
*/
|
|
117
163
|
should(condition) {
|
|
118
|
-
return new PairFinalBuilder(this.layers, this.pairs, condition);
|
|
164
|
+
return new PairFinalBuilder(this.layers, this.pairs, condition, this.project);
|
|
119
165
|
}
|
|
120
166
|
}
|
|
121
167
|
/**
|
|
122
168
|
* Terminal builder — call `.check()`, `.warn()`, or `.because()`.
|
|
123
169
|
*/
|
|
124
|
-
//
|
|
170
|
+
// A fluent-chain intermediate: nothing imports it by name, but it is the declared
|
|
171
|
+
// return type of an exported method, and `arch-rules.test.ts` ·
|
|
172
|
+
// `it('builders must be exported')` requires every class under `src/builders/` to be
|
|
173
|
+
// exported — "unexported builders are unreachable". The two rules genuinely disagree
|
|
174
|
+
// here; this resolves toward the explicit, reasoned one. The directive sits LAST because
|
|
175
|
+
// a single-line waiver covers exactly the next line.
|
|
176
|
+
// eess-exclude eess/no-unused-exports: fluent-chain intermediate, exported per the rule above
|
|
125
177
|
export class PairFinalBuilder extends TerminalBuilder {
|
|
126
178
|
layers;
|
|
127
179
|
pairs;
|
|
128
180
|
condition;
|
|
129
|
-
|
|
181
|
+
project;
|
|
182
|
+
/**
|
|
183
|
+
* @param project - Optional so the constructor stays source-compatible; the
|
|
184
|
+
* chain always supplies it. Without it `doctor` cannot check this rule's
|
|
185
|
+
* layer globs and has to report that it could not, which is honest but
|
|
186
|
+
* useless — and used to be silent.
|
|
187
|
+
*/
|
|
188
|
+
constructor(layers, pairs, condition, project) {
|
|
130
189
|
super();
|
|
131
190
|
this.layers = layers;
|
|
132
191
|
this.pairs = pairs;
|
|
133
192
|
this.condition = condition;
|
|
193
|
+
this.project = project;
|
|
194
|
+
}
|
|
195
|
+
/** The project this rule was built against. See `RuleBuilder.getProject`. */
|
|
196
|
+
getProject() {
|
|
197
|
+
return this.project;
|
|
198
|
+
}
|
|
199
|
+
/**
|
|
200
|
+
* The layer globs, one tree each.
|
|
201
|
+
*
|
|
202
|
+
* Per layer rather than one `any` node, for the same reason as
|
|
203
|
+
* `assignedFrom`: a dead glob means that layer is empty, and every pair
|
|
204
|
+
* involving it is silently unchecked. Folding them together would report a
|
|
205
|
+
* fault only when EVERY layer was empty.
|
|
206
|
+
*/
|
|
207
|
+
globs() {
|
|
208
|
+
return this.layers.map((layer) => stampGlobs(globAnyOf([layer.pattern], 'file-path', isProjectRelative(layer.pattern) ? 'normalized' : 'absolute'), 'discovery', (g) => `layer("${layer.name}", "${g.glob}")`));
|
|
209
|
+
}
|
|
210
|
+
/**
|
|
211
|
+
* Does the condition this rule was built with diagnose its own empty layers?
|
|
212
|
+
*
|
|
213
|
+
* **Asked of the condition, not asserted about all of them** (plan 0081). This
|
|
214
|
+
* returned a bare `true` while the docstring here claimed "all three produce a
|
|
215
|
+
* finding naming the layer" — and at v0.45.0 that was false, because
|
|
216
|
+
* `haveMatchingCounterpart` missed a dead FINAL layer. The blanket declaration
|
|
217
|
+
* suppressed the gate for precisely the case its declared owner did not handle,
|
|
218
|
+
* so the reader got silence instead of a generic message
|
|
219
|
+
* ([ts-archunit bug 0040](https://github.com/nielspeter/ts-archunit/blob/main/bugs/fixed/0040-a-crosslayer-rule-reports-nothing-when-its-layer-resolves-nothing.md)).
|
|
220
|
+
*
|
|
221
|
+
* A prose claim about three implementations goes stale when a fourth arrives.
|
|
222
|
+
* A tag read off the condition cannot: an untagged condition is covered by the
|
|
223
|
+
* gate, which is the recoverable direction.
|
|
224
|
+
*
|
|
225
|
+
* The gate is worth standing down for when the tag IS present: it short-circuits
|
|
226
|
+
* before the condition runs, and the condition's finding names the dead layer
|
|
227
|
+
* and points at the `.layer()` call to edit — a remedy corrected three times
|
|
228
|
+
* before it was right (bug 0042).
|
|
229
|
+
*/
|
|
230
|
+
ownsDiscoveryDiagnosis() {
|
|
231
|
+
// A registry lookup, not a property read. The property form — symbol-keyed on
|
|
232
|
+
// the condition — was readable off any shipped condition via
|
|
233
|
+
// `Object.getOwnPropertySymbols` and could be copied onto a user condition that
|
|
234
|
+
// reports nothing, which measured 0 findings on a dead layer. `WeakSet`
|
|
235
|
+
// membership cannot be read off the object, so there is nothing to copy.
|
|
236
|
+
return ownsEmptyDiscovery(this.condition);
|
|
237
|
+
}
|
|
238
|
+
/**
|
|
239
|
+
* Pairs this rule examined — plan 0098. `condition.evaluate` receives exactly
|
|
240
|
+
* this array, so the count cannot drift from what was checked.
|
|
241
|
+
*/
|
|
242
|
+
/**
|
|
243
|
+
* This family counts layer pairs — the pairs of layers it compares.
|
|
244
|
+
*
|
|
245
|
+
* Plan 0099: `CollectResult.examined` is unit-typed per family (ADR-009 part
|
|
246
|
+
* 1), and the zero-examined message prints the noun. Inheriting the base
|
|
247
|
+
* `'subjects'` is a category error in a sentence whose whole job is naming what
|
|
248
|
+
* was and was not looked at.
|
|
249
|
+
*/
|
|
250
|
+
examinedUnitNoun() {
|
|
251
|
+
return 'layer pairs';
|
|
252
|
+
}
|
|
253
|
+
/**
|
|
254
|
+
* How many units this rule actually examined — ADR-010's evidence that a pass
|
|
255
|
+
* was constructed rather than defaulted.
|
|
256
|
+
*
|
|
257
|
+
* The materialized elements of the layer selection.
|
|
258
|
+
*/
|
|
259
|
+
examinedUnits() {
|
|
260
|
+
return this.pairs.length;
|
|
134
261
|
}
|
|
135
262
|
collectViolations() {
|
|
136
263
|
const layerNames = this.layers.map((l) => l.name);
|
|
@@ -140,8 +267,18 @@ export class PairFinalBuilder extends TerminalBuilder {
|
|
|
140
267
|
ruleId: this._metadata?.id,
|
|
141
268
|
suggestion: this._metadata?.suggestion,
|
|
142
269
|
docs: this._metadata?.docs,
|
|
270
|
+
// The builder's OWN resolved layers (bug 0040). A condition that needs
|
|
271
|
+
// them no longer has to be handed a copy the caller assembled — which was
|
|
272
|
+
// impossible to assemble correctly, since `layers` is private here and
|
|
273
|
+
// `resolveLayer` is not exported.
|
|
274
|
+
layers: this.layers,
|
|
275
|
+
};
|
|
276
|
+
// Plan 0098: the pairs ARE the examined set — `evaluate` receives exactly
|
|
277
|
+
// this array, so the count cannot drift from what was checked.
|
|
278
|
+
return {
|
|
279
|
+
violations: this.condition.evaluate(this.pairs, context),
|
|
280
|
+
examined: this.examinedUnits(),
|
|
143
281
|
};
|
|
144
|
-
return this.condition.evaluate(this.pairs, context);
|
|
145
282
|
}
|
|
146
283
|
}
|
|
147
284
|
/**
|
|
@@ -152,19 +289,28 @@ export class PairFinalBuilder extends TerminalBuilder {
|
|
|
152
289
|
*
|
|
153
290
|
* @example
|
|
154
291
|
* crossLayer(project)
|
|
155
|
-
* .layer('routes', 'src/routes/**')
|
|
156
|
-
* .layer('schemas', 'src/schemas/**')
|
|
292
|
+
* .layer('routes', '**\/src/routes/**')
|
|
293
|
+
* .layer('schemas', '**\/src/schemas/**')
|
|
157
294
|
* .mapping((a, b) => a.getBaseName().replace('-route', '') === b.getBaseName().replace('-schema', ''))
|
|
158
295
|
* .forEachPair()
|
|
159
296
|
* .should(haveMatchingCounterpart())
|
|
160
297
|
* .check()
|
|
298
|
+
*/
|
|
299
|
+
/**
|
|
300
|
+
* @deprecated Superseded by `crossProject()` **for pairings that are key equality** —
|
|
301
|
+
* `key(a) === key(b)` with each key derived from its own side. That covers most
|
|
302
|
+
* rules, including `haveConsistentExports` (a key function may return an array, so
|
|
303
|
+
* one file expands into one key per symbol). It is a rewrite, not a rename: the
|
|
304
|
+
* pairing moves from `.mapping(fn)` into the key.
|
|
305
|
+
*
|
|
306
|
+
* KEEP `crossLayer` if your `.mapping(fn)` is not key equality — prefix matching,
|
|
307
|
+
* directory nesting, "imports its schema" — or if you use `satisfyPairCondition`,
|
|
308
|
+
* whose callback builds its own violation (including `measured`/`metricUnit` for the
|
|
309
|
+
* baseline ratchet) and has no `crossProject` equivalent. Chains of 3+ layers become
|
|
310
|
+
* N−1 separate rules.
|
|
161
311
|
*
|
|
162
|
-
*
|
|
163
|
-
*
|
|
164
|
-
* (not just two globs within one project) and is the engine `crossLayer` should
|
|
165
|
-
* have been built on. `crossLayer` continues to work; new rules should prefer
|
|
166
|
-
* `correspondence({ left, right }).should().beComplete(...)`. Full internal
|
|
167
|
-
* delegation onto `correspondence()` is a follow-up (see plan 0059, Phase 3).
|
|
312
|
+
* Migration table and the full list of what changes:
|
|
313
|
+
* https://github.com/nielspeter/eess/blob/main/docs/cross-project.md#migrating-from-crosslayer
|
|
168
314
|
*/
|
|
169
315
|
export function crossLayer(p) {
|
|
170
316
|
return new CrossLayerBuilder(p);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cross-layer-builder.js","sourceRoot":"","sources":["../../src/builders/cross-layer-builder.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,WAAW,CAAA;
|
|
1
|
+
{"version":3,"file":"cross-layer-builder.js","sourceRoot":"","sources":["../../src/builders/cross-layer-builder.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import type { ArchProject } from '../core/project.js';
|
|
2
2
|
import type { Condition } from '@nielspeter/eess';
|
|
3
|
-
import { RuleBuilder } from '
|
|
3
|
+
import { RuleBuilder } from '../core/rule-builder.js';
|
|
4
4
|
import type { ExpressionMatcher } from '../helpers/matchers.js';
|
|
5
5
|
import type { ArchFunction } from '../models/arch-function.js';
|
|
6
|
+
import { type FunctionCollectionOptions } from '../models/arch-function.js';
|
|
6
7
|
import type { ArchPattern } from '../helpers/pattern.js';
|
|
7
8
|
import type { TypeMatcher } from '../helpers/type-matchers.js';
|
|
8
9
|
/**
|
|
@@ -35,16 +36,32 @@ import type { TypeMatcher } from '../helpers/type-matchers.js';
|
|
|
35
36
|
* .check()
|
|
36
37
|
* ```
|
|
37
38
|
*/
|
|
38
|
-
export declare class FunctionRuleBuilder extends RuleBuilder<ArchFunction
|
|
39
|
+
export declare class FunctionRuleBuilder extends RuleBuilder<ArchFunction> {
|
|
40
|
+
private readonly _collectionOptions?;
|
|
41
|
+
constructor(project: ArchProject, _collectionOptions?: FunctionCollectionOptions | undefined);
|
|
39
42
|
protected getElements(): ArchFunction[];
|
|
40
43
|
/**
|
|
41
44
|
* After `.that()`: filter functions whose name matches the pattern.
|
|
42
45
|
* After `.should()`: assert matched functions have names matching the pattern.
|
|
43
46
|
*/
|
|
44
47
|
haveNameMatching(pattern: RegExp | string): this;
|
|
45
|
-
/**
|
|
48
|
+
/**
|
|
49
|
+
* Narrows the selection to functions that have a name starting with `prefix`.
|
|
50
|
+
*
|
|
51
|
+
* **Predicate only**, unlike the dual-use methods on this builder: it never
|
|
52
|
+
* becomes an assertion. Written after `.should()` it still filters, and the
|
|
53
|
+
* assertion gate reports it as a misplaced predicate rather than letting the
|
|
54
|
+
* rule pass having asserted nothing.
|
|
55
|
+
*/
|
|
46
56
|
haveNameStartingWith(prefix: string): this;
|
|
47
|
-
/**
|
|
57
|
+
/**
|
|
58
|
+
* Narrows the selection to functions that have a name ending with `suffix`.
|
|
59
|
+
*
|
|
60
|
+
* **Predicate only**, unlike the dual-use methods on this builder: it never
|
|
61
|
+
* becomes an assertion. Written after `.should()` it still filters, and the
|
|
62
|
+
* assertion gate reports it as a misplaced predicate rather than letting the
|
|
63
|
+
* rule pass having asserted nothing.
|
|
64
|
+
*/
|
|
48
65
|
haveNameEndingWith(suffix: string): this;
|
|
49
66
|
/**
|
|
50
67
|
* After `.that()`: filter functions in a file matching the glob.
|
|
@@ -56,47 +73,149 @@ export declare class FunctionRuleBuilder extends RuleBuilder<ArchFunction, ArchP
|
|
|
56
73
|
* After `.should()`: assert functions reside in a folder matching the glob.
|
|
57
74
|
*/
|
|
58
75
|
resideInFolder(glob: string): this;
|
|
59
|
-
/**
|
|
76
|
+
/**
|
|
77
|
+
* Narrows the selection to functions that are exported.
|
|
78
|
+
*
|
|
79
|
+
* **Predicate only**, unlike the dual-use methods on this builder: it never
|
|
80
|
+
* becomes an assertion. Written after `.should()` it still filters, and the
|
|
81
|
+
* assertion gate reports it as a misplaced predicate rather than letting the
|
|
82
|
+
* rule pass having asserted nothing.
|
|
83
|
+
*/
|
|
60
84
|
areExported(): this;
|
|
61
|
-
/**
|
|
85
|
+
/**
|
|
86
|
+
* Narrows the selection to functions that are not exported.
|
|
87
|
+
*
|
|
88
|
+
* **Predicate only**, unlike the dual-use methods on this builder: it never
|
|
89
|
+
* becomes an assertion. Written after `.should()` it still filters, and the
|
|
90
|
+
* assertion gate reports it as a misplaced predicate rather than letting the
|
|
91
|
+
* rule pass having asserted nothing.
|
|
92
|
+
*/
|
|
62
93
|
areNotExported(): this;
|
|
63
94
|
/**
|
|
64
|
-
*
|
|
65
|
-
*
|
|
95
|
+
* Narrows the selection to functions that are public.
|
|
96
|
+
*
|
|
97
|
+
* **Predicate only**, unlike the dual-use methods on this builder: it never
|
|
98
|
+
* becomes an assertion. Written after `.should()` it still filters, and the
|
|
99
|
+
* assertion gate reports it as a misplaced predicate rather than letting the
|
|
100
|
+
* rule pass having asserted nothing.
|
|
66
101
|
*/
|
|
67
102
|
arePublic(): this;
|
|
68
|
-
/**
|
|
103
|
+
/**
|
|
104
|
+
* Narrows the selection to functions that are protected.
|
|
105
|
+
*
|
|
106
|
+
* **Predicate only**, unlike the dual-use methods on this builder: it never
|
|
107
|
+
* becomes an assertion. Written after `.should()` it still filters, and the
|
|
108
|
+
* assertion gate reports it as a misplaced predicate rather than letting the
|
|
109
|
+
* rule pass having asserted nothing.
|
|
110
|
+
*/
|
|
69
111
|
areProtected(): this;
|
|
70
|
-
/**
|
|
112
|
+
/**
|
|
113
|
+
* Narrows the selection to functions that are private.
|
|
114
|
+
*
|
|
115
|
+
* **Predicate only**, unlike the dual-use methods on this builder: it never
|
|
116
|
+
* becomes an assertion. Written after `.should()` it still filters, and the
|
|
117
|
+
* assertion gate reports it as a misplaced predicate rather than letting the
|
|
118
|
+
* rule pass having asserted nothing.
|
|
119
|
+
*/
|
|
71
120
|
arePrivate(): this;
|
|
72
|
-
/**
|
|
121
|
+
/**
|
|
122
|
+
* Narrows the selection to functions that are async.
|
|
123
|
+
*
|
|
124
|
+
* **Predicate only**, unlike the dual-use methods on this builder: it never
|
|
125
|
+
* becomes an assertion. Written after `.should()` it still filters, and the
|
|
126
|
+
* assertion gate reports it as a misplaced predicate rather than letting the
|
|
127
|
+
* rule pass having asserted nothing.
|
|
128
|
+
*/
|
|
73
129
|
areAsync(): this;
|
|
74
|
-
/**
|
|
130
|
+
/**
|
|
131
|
+
* Narrows the selection to functions that are not async.
|
|
132
|
+
*
|
|
133
|
+
* **Predicate only**, unlike the dual-use methods on this builder: it never
|
|
134
|
+
* becomes an assertion. Written after `.should()` it still filters, and the
|
|
135
|
+
* assertion gate reports it as a misplaced predicate rather than letting the
|
|
136
|
+
* rule pass having asserted nothing.
|
|
137
|
+
*/
|
|
75
138
|
areNotAsync(): this;
|
|
76
|
-
/**
|
|
139
|
+
/**
|
|
140
|
+
* Narrows the selection to functions that have exactly `n` parameters.
|
|
141
|
+
*
|
|
142
|
+
* **Predicate only**, unlike the dual-use methods on this builder: it never
|
|
143
|
+
* becomes an assertion. Written after `.should()` it still filters, and the
|
|
144
|
+
* assertion gate reports it as a misplaced predicate rather than letting the
|
|
145
|
+
* rule pass having asserted nothing.
|
|
146
|
+
*/
|
|
77
147
|
haveParameterCount(n: number): this;
|
|
78
|
-
/**
|
|
148
|
+
/**
|
|
149
|
+
* Narrows the selection to functions that have more than `n` parameters.
|
|
150
|
+
*
|
|
151
|
+
* **Predicate only**, unlike the dual-use methods on this builder: it never
|
|
152
|
+
* becomes an assertion. Written after `.should()` it still filters, and the
|
|
153
|
+
* assertion gate reports it as a misplaced predicate rather than letting the
|
|
154
|
+
* rule pass having asserted nothing.
|
|
155
|
+
*/
|
|
79
156
|
haveParameterCountGreaterThan(n: number): this;
|
|
80
|
-
/**
|
|
157
|
+
/**
|
|
158
|
+
* Narrows the selection to functions that have fewer than `n` parameters.
|
|
159
|
+
*
|
|
160
|
+
* **Predicate only**, unlike the dual-use methods on this builder: it never
|
|
161
|
+
* becomes an assertion. Written after `.should()` it still filters, and the
|
|
162
|
+
* assertion gate reports it as a misplaced predicate rather than letting the
|
|
163
|
+
* rule pass having asserted nothing.
|
|
164
|
+
*/
|
|
81
165
|
haveParameterCountLessThan(n: number): this;
|
|
82
|
-
/**
|
|
166
|
+
/**
|
|
167
|
+
* Narrows the selection to functions that have a parameter named `name`.
|
|
168
|
+
*
|
|
169
|
+
* **Predicate only**, unlike the dual-use methods on this builder: it never
|
|
170
|
+
* becomes an assertion. Written after `.should()` it still filters, and the
|
|
171
|
+
* assertion gate reports it as a misplaced predicate rather than letting the
|
|
172
|
+
* rule pass having asserted nothing.
|
|
173
|
+
*/
|
|
83
174
|
haveParameterNamed(name: string): this;
|
|
84
175
|
/**
|
|
85
|
-
*
|
|
86
|
-
*
|
|
176
|
+
* Narrows the selection to functions that have a return type matching `pattern`.
|
|
177
|
+
*
|
|
178
|
+
* **Predicate only**, unlike the dual-use methods on this builder: it never
|
|
179
|
+
* becomes an assertion. Written after `.should()` it still filters, and the
|
|
180
|
+
* assertion gate reports it as a misplaced predicate rather than letting the
|
|
181
|
+
* rule pass having asserted nothing.
|
|
87
182
|
*/
|
|
88
183
|
haveReturnType(pattern: RegExp | string): this;
|
|
89
|
-
/**
|
|
184
|
+
/**
|
|
185
|
+
* Narrows the selection to functions that have a rest parameter.
|
|
186
|
+
*
|
|
187
|
+
* **Predicate only**, unlike the dual-use methods on this builder: it never
|
|
188
|
+
* becomes an assertion. Written after `.should()` it still filters, and the
|
|
189
|
+
* assertion gate reports it as a misplaced predicate rather than letting the
|
|
190
|
+
* rule pass having asserted nothing.
|
|
191
|
+
*/
|
|
90
192
|
haveRestParameter(): this;
|
|
91
|
-
/**
|
|
193
|
+
/**
|
|
194
|
+
* Narrows the selection to functions that have an optional parameter.
|
|
195
|
+
*
|
|
196
|
+
* **Predicate only**, unlike the dual-use methods on this builder: it never
|
|
197
|
+
* becomes an assertion. Written after `.should()` it still filters, and the
|
|
198
|
+
* assertion gate reports it as a misplaced predicate rather than letting the
|
|
199
|
+
* rule pass having asserted nothing.
|
|
200
|
+
*/
|
|
92
201
|
haveOptionalParameter(): this;
|
|
93
202
|
/**
|
|
94
|
-
*
|
|
95
|
-
*
|
|
96
|
-
*
|
|
203
|
+
* Narrows the selection to functions that have parameter `index` of a type matching `matcher`.
|
|
204
|
+
*
|
|
205
|
+
* **Predicate only**, unlike the dual-use methods on this builder: it never
|
|
206
|
+
* becomes an assertion. Written after `.should()` it still filters, and the
|
|
207
|
+
* assertion gate reports it as a misplaced predicate rather than letting the
|
|
208
|
+
* rule pass having asserted nothing.
|
|
97
209
|
*/
|
|
98
210
|
haveParameterOfType(index: number, matcher: TypeMatcher): this;
|
|
99
|
-
/**
|
|
211
|
+
/**
|
|
212
|
+
* Narrows the selection to functions that have a parameter name matching `pattern`.
|
|
213
|
+
*
|
|
214
|
+
* **Predicate only**, unlike the dual-use methods on this builder: it never
|
|
215
|
+
* becomes an assertion. Written after `.should()` it still filters, and the
|
|
216
|
+
* assertion gate reports it as a misplaced predicate rather than letting the
|
|
217
|
+
* rule pass having asserted nothing.
|
|
218
|
+
*/
|
|
100
219
|
haveParameterNameMatching(pattern: RegExp): this;
|
|
101
220
|
/**
|
|
102
221
|
* Register a condition. Public API for passing standalone conditions
|
|
@@ -194,5 +313,5 @@ export declare class FunctionRuleBuilder extends RuleBuilder<ArchFunction, ArchP
|
|
|
194
313
|
* .check()
|
|
195
314
|
* ```
|
|
196
315
|
*/
|
|
197
|
-
export declare function functions(p: ArchProject): FunctionRuleBuilder;
|
|
316
|
+
export declare function functions(p: ArchProject, options?: FunctionCollectionOptions): FunctionRuleBuilder;
|
|
198
317
|
//# sourceMappingURL=function-rule-builder.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"function-rule-builder.d.ts","sourceRoot":"","sources":["../../src/builders/function-rule-builder.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAA;AACrD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAA;AACjD,OAAO,EAAE,WAAW,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"function-rule-builder.d.ts","sourceRoot":"","sources":["../../src/builders/function-rule-builder.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAA;AACrD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAA;AACjD,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAA;AACrD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAA;AAO/D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAA;AAE9D,OAAO,EAAoB,KAAK,yBAAyB,EAAE,MAAM,4BAA4B,CAAA;AAE7F,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAA;AAqBxD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAA;AAqC9D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,qBAAa,mBAAoB,SAAQ,WAAW,CAAC,YAAY,CAAC;IAG9D,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAC;gBADpC,OAAO,EAAE,WAAW,EACH,kBAAkB,CAAC,EAAE,yBAAyB,YAAA;IAKjE,SAAS,CAAC,WAAW,IAAI,YAAY,EAAE;IAevC;;;OAGG;IACH,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IAQhD;;;;;;;OAOG;IACH,oBAAoB,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAI1C;;;;;;;OAOG;IACH,kBAAkB,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAIxC;;;OAGG;IACH,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAOhC;;;OAGG;IACH,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAOlC;;;;;;;OAOG;IACH,WAAW,IAAI,IAAI;IAInB;;;;;;;OAOG;IACH,cAAc,IAAI,IAAI;IAMtB;;;;;;;OAOG;IACH,SAAS,IAAI,IAAI;IAIjB;;;;;;;OAOG;IACH,YAAY,IAAI,IAAI;IAIpB;;;;;;;OAOG;IACH,UAAU,IAAI,IAAI;IAMlB;;;;;;;OAOG;IACH,QAAQ,IAAI,IAAI;IAIhB;;;;;;;OAOG;IACH,WAAW,IAAI,IAAI;IAInB;;;;;;;OAOG;IACH,kBAAkB,CAAC,CAAC,EAAE,MAAM,GAAG,IAAI;IAInC;;;;;;;OAOG;IACH,6BAA6B,CAAC,CAAC,EAAE,MAAM,GAAG,IAAI;IAI9C;;;;;;;OAOG;IACH,0BAA0B,CAAC,CAAC,EAAE,MAAM,GAAG,IAAI;IAI3C;;;;;;;OAOG;IACH,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAItC;;;;;;;OAOG;IACH,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IAI9C;;;;;;;OAOG;IACH,iBAAiB,IAAI,IAAI;IAIzB;;;;;;;OAOG;IACH,qBAAqB,IAAI,IAAI;IAI7B;;;;;;;OAOG;IACH,mBAAmB,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,GAAG,IAAI;IAI9D;;;;;;;OAOG;IACH,yBAAyB,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAMhD;;;OAGG;IACH,aAAa,CAAC,SAAS,EAAE,SAAS,CAAC,YAAY,CAAC,GAAG,IAAI;IAIvD;;OAEG;IACH,QAAQ,IAAI,IAAI;IAIhB;;OAEG;IACH,UAAU,IAAI,IAAI;IAIlB;;OAEG;IACH,OAAO,IAAI,IAAI;IAIf,sEAAsE;IACtE,yBAAyB,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAMhD;;;;;;OAMG;IACH,qBAAqB,CAAC,OAAO,EAAE,WAAW,GAAG,IAAI;IAIjD;;;;;;;OAOG;IACH,wBAAwB,CAAC,OAAO,EAAE,WAAW,GAAG,IAAI;IAMpD;;;;;;;;;;;OAWG;IACH,sBAAsB,CAAC,OAAO,EAAE,WAAW,GAAG,IAAI;IAMlD;;OAEG;IACH,OAAO,CAAC,OAAO,EAAE,iBAAiB,GAAG,IAAI;IAIzC;;;OAGG;IACH,UAAU,CAAC,OAAO,EAAE,iBAAiB,GAAG,IAAI;IAI5C;;;OAGG;IACH,YAAY,CAAC,GAAG,EAAE,iBAAiB,EAAE,IAAI,EAAE,iBAAiB,GAAG,IAAI;IAInE;;;OAGG;IACH,gBAAgB,IAAI,IAAI;IAIxB;;;;;OAKG;IACH,aAAa,CAAC,OAAO,EAAE,WAAW,GAAG,IAAI;CAG1C;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,SAAS,CACvB,CAAC,EAAE,WAAW,EACd,OAAO,CAAC,EAAE,yBAAyB,GAClC,mBAAmB,CAErB"}
|