@nielspeter/eess-ts 0.2.1 → 0.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +61 -35
- package/dist/builders/call-rule-builder.d.ts +66 -26
- package/dist/builders/call-rule-builder.d.ts.map +1 -1
- package/dist/builders/call-rule-builder.js +73 -31
- package/dist/builders/call-rule-builder.js.map +1 -1
- package/dist/builders/class-rule-builder.d.ts +125 -26
- package/dist/builders/class-rule-builder.d.ts.map +1 -1
- package/dist/builders/class-rule-builder.js +134 -30
- package/dist/builders/class-rule-builder.js.map +1 -1
- package/dist/builders/correspondence-builder.d.ts +287 -0
- package/dist/builders/correspondence-builder.d.ts.map +1 -0
- package/dist/builders/correspondence-builder.js +393 -0
- package/dist/builders/correspondence-builder.js.map +1 -0
- package/dist/builders/correspondence-findings.d.ts +104 -0
- package/dist/builders/correspondence-findings.d.ts.map +1 -0
- package/dist/builders/correspondence-findings.js +301 -0
- package/dist/builders/correspondence-findings.js.map +1 -0
- package/dist/builders/cross-layer-builder.d.ts +99 -16
- package/dist/builders/cross-layer-builder.d.ts.map +1 -1
- package/dist/builders/cross-layer-builder.js +181 -35
- package/dist/builders/cross-layer-builder.js.map +1 -1
- package/dist/builders/function-rule-builder.d.ts +144 -25
- package/dist/builders/function-rule-builder.d.ts.map +1 -1
- package/dist/builders/function-rule-builder.js +173 -26
- package/dist/builders/function-rule-builder.js.map +1 -1
- package/dist/builders/jsx-rule-builder.d.ts +70 -14
- package/dist/builders/jsx-rule-builder.d.ts.map +1 -1
- package/dist/builders/jsx-rule-builder.js +73 -14
- package/dist/builders/jsx-rule-builder.js.map +1 -1
- package/dist/builders/module-rule-builder.d.ts +2 -2
- package/dist/builders/module-rule-builder.d.ts.map +1 -1
- package/dist/builders/module-rule-builder.js +12 -3
- package/dist/builders/module-rule-builder.js.map +1 -1
- package/dist/builders/scoped-function-rule-builder.d.ts +11 -0
- package/dist/builders/scoped-function-rule-builder.d.ts.map +1 -1
- package/dist/builders/scoped-function-rule-builder.js +12 -0
- package/dist/builders/scoped-function-rule-builder.js.map +1 -1
- package/dist/builders/slice-discovery-message.d.ts +36 -0
- package/dist/builders/slice-discovery-message.d.ts.map +1 -0
- package/dist/builders/slice-discovery-message.js +181 -0
- package/dist/builders/slice-discovery-message.js.map +1 -0
- package/dist/builders/slice-rule-builder.d.ts +151 -12
- package/dist/builders/slice-rule-builder.d.ts.map +1 -1
- package/dist/builders/slice-rule-builder.js +242 -35
- package/dist/builders/slice-rule-builder.js.map +1 -1
- package/dist/builders/type-rule-builder.d.ts +95 -24
- package/dist/builders/type-rule-builder.d.ts.map +1 -1
- package/dist/builders/type-rule-builder.js +105 -29
- package/dist/builders/type-rule-builder.js.map +1 -1
- package/dist/{helpers → builders}/within.d.ts +2 -2
- package/dist/builders/within.d.ts.map +1 -0
- package/dist/{helpers → builders}/within.js +1 -1
- package/dist/builders/within.js.map +1 -0
- package/dist/cli/commands/baseline.d.ts +3 -2
- package/dist/cli/commands/baseline.d.ts.map +1 -1
- package/dist/cli/commands/baseline.js +68 -6
- package/dist/cli/commands/baseline.js.map +1 -1
- package/dist/cli/commands/check.d.ts +7 -2
- package/dist/cli/commands/check.d.ts.map +1 -1
- package/dist/cli/commands/check.js +241 -45
- package/dist/cli/commands/check.js.map +1 -1
- package/dist/cli/commands/doctor.d.ts +29 -0
- package/dist/cli/commands/doctor.d.ts.map +1 -0
- package/dist/cli/commands/doctor.js +224 -0
- package/dist/cli/commands/doctor.js.map +1 -0
- package/dist/cli/commands/explain.d.ts +2 -1
- package/dist/cli/commands/explain.d.ts.map +1 -1
- package/dist/cli/commands/explain.js +19 -10
- package/dist/cli/commands/explain.js.map +1 -1
- package/dist/cli/commands/init.d.ts +9 -3
- package/dist/cli/commands/init.d.ts.map +1 -1
- package/dist/cli/commands/init.js +162 -137
- package/dist/cli/commands/init.js.map +1 -1
- package/dist/cli/import-rule-module.d.ts +29 -0
- package/dist/cli/import-rule-module.d.ts.map +1 -0
- package/dist/cli/import-rule-module.js +60 -0
- package/dist/cli/import-rule-module.js.map +1 -0
- package/dist/cli/index.d.ts +2 -2
- package/dist/cli/index.d.ts.map +1 -1
- package/dist/cli/index.js +98 -33
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/load-rules.d.ts +6 -11
- package/dist/cli/load-rules.d.ts.map +1 -1
- package/dist/cli/load-rules.js +21 -29
- package/dist/cli/load-rules.js.map +1 -1
- package/dist/cli/resolve-config.d.ts.map +1 -1
- package/dist/cli/resolve-config.js +24 -24
- package/dist/cli/resolve-config.js.map +1 -1
- package/dist/cli/rule-file-findings.d.ts +178 -0
- package/dist/cli/rule-file-findings.d.ts.map +1 -0
- package/dist/cli/rule-file-findings.js +293 -0
- package/dist/cli/rule-file-findings.js.map +1 -0
- package/dist/cli/watch.d.ts +20 -7
- package/dist/cli/watch.d.ts.map +1 -1
- package/dist/cli/watch.js +39 -14
- package/dist/cli/watch.js.map +1 -1
- package/dist/conditions/body-analysis-function.d.ts.map +1 -1
- package/dist/conditions/body-analysis-function.js +16 -7
- package/dist/conditions/body-analysis-function.js.map +1 -1
- package/dist/conditions/body-analysis-module.d.ts.map +1 -1
- package/dist/conditions/body-analysis-module.js +14 -9
- package/dist/conditions/body-analysis-module.js.map +1 -1
- package/dist/conditions/body-analysis.d.ts.map +1 -1
- package/dist/conditions/body-analysis.js +16 -7
- package/dist/conditions/body-analysis.js.map +1 -1
- package/dist/conditions/call.d.ts.map +1 -1
- package/dist/conditions/call.js +38 -17
- package/dist/conditions/call.js.map +1 -1
- package/dist/conditions/catch-analysis.d.ts +2 -1
- package/dist/conditions/catch-analysis.d.ts.map +1 -1
- package/dist/conditions/catch-analysis.js.map +1 -1
- package/dist/conditions/cross-layer.d.ts +2 -10
- package/dist/conditions/cross-layer.d.ts.map +1 -1
- package/dist/conditions/cross-layer.js +227 -23
- package/dist/conditions/cross-layer.js.map +1 -1
- package/dist/conditions/dependency.d.ts +35 -6
- package/dist/conditions/dependency.d.ts.map +1 -1
- package/dist/conditions/dependency.js +299 -45
- package/dist/conditions/dependency.js.map +1 -1
- package/dist/conditions/exports.d.ts.map +1 -1
- package/dist/conditions/exports.js +10 -0
- package/dist/conditions/exports.js.map +1 -1
- package/dist/conditions/function.d.ts.map +1 -1
- package/dist/conditions/function.js +19 -5
- package/dist/conditions/function.js.map +1 -1
- package/dist/conditions/helpers.d.ts +2 -1
- package/dist/conditions/helpers.d.ts.map +1 -1
- package/dist/conditions/helpers.js +4 -1
- package/dist/conditions/helpers.js.map +1 -1
- package/dist/conditions/jsx.d.ts.map +1 -1
- package/dist/conditions/jsx.js +7 -2
- package/dist/conditions/jsx.js.map +1 -1
- package/dist/conditions/match-identity.d.ts +43 -0
- package/dist/conditions/match-identity.d.ts.map +1 -0
- package/dist/conditions/match-identity.js +43 -0
- package/dist/conditions/match-identity.js.map +1 -0
- package/dist/conditions/members.d.ts.map +1 -1
- package/dist/conditions/members.js +17 -4
- package/dist/conditions/members.js.map +1 -1
- package/dist/conditions/reverse-dependency.d.ts +18 -5
- package/dist/conditions/reverse-dependency.d.ts.map +1 -1
- package/dist/conditions/reverse-dependency.js +109 -92
- package/dist/conditions/reverse-dependency.js.map +1 -1
- package/dist/conditions/slice.d.ts +86 -2
- package/dist/conditions/slice.d.ts.map +1 -1
- package/dist/conditions/slice.js +234 -53
- package/dist/conditions/slice.js.map +1 -1
- package/dist/conditions/structural.d.ts.map +1 -1
- package/dist/conditions/structural.js +16 -4
- package/dist/conditions/structural.js.map +1 -1
- package/dist/core/check-all.d.ts +19 -0
- package/dist/core/check-all.d.ts.map +1 -0
- package/dist/core/check-all.js +96 -0
- package/dist/core/check-all.js.map +1 -0
- package/dist/core/combinators.d.ts +48 -0
- package/dist/core/combinators.d.ts.map +1 -0
- package/dist/core/combinators.js +56 -0
- package/dist/core/combinators.js.map +1 -0
- package/dist/core/descendant-cache.d.ts +36 -0
- package/dist/core/descendant-cache.d.ts.map +1 -0
- package/dist/core/descendant-cache.js +119 -0
- package/dist/core/descendant-cache.js.map +1 -0
- package/dist/core/diagnose.d.ts +234 -0
- package/dist/core/diagnose.d.ts.map +1 -0
- package/dist/core/diagnose.js +382 -0
- package/dist/core/diagnose.js.map +1 -0
- package/dist/core/disk-set.d.ts +48 -0
- package/dist/core/disk-set.d.ts.map +1 -0
- package/dist/core/disk-set.js +218 -0
- package/dist/core/disk-set.js.map +1 -0
- package/dist/core/element-cache.d.ts +75 -0
- package/dist/core/element-cache.d.ts.map +1 -0
- package/dist/core/element-cache.js +32 -0
- package/dist/core/element-cache.js.map +1 -0
- package/dist/core/empty-project-advice.d.ts +75 -0
- package/dist/core/empty-project-advice.d.ts.map +1 -0
- package/dist/core/empty-project-advice.js +61 -0
- package/dist/core/empty-project-advice.js.map +1 -0
- package/dist/core/exclusion-comments.d.ts +54 -0
- package/dist/core/exclusion-comments.d.ts.map +1 -0
- package/dist/core/exclusion-comments.js +310 -0
- package/dist/core/exclusion-comments.js.map +1 -0
- package/dist/core/execute-rule.d.ts +150 -0
- package/dist/core/execute-rule.d.ts.map +1 -0
- package/dist/core/execute-rule.js +580 -0
- package/dist/core/execute-rule.js.map +1 -0
- package/dist/core/glob-diagnosis.d.ts +78 -0
- package/dist/core/glob-diagnosis.d.ts.map +1 -0
- package/dist/core/glob-diagnosis.js +134 -0
- package/dist/core/glob-diagnosis.js.map +1 -0
- package/dist/core/glob-evaluator.d.ts +48 -0
- package/dist/core/glob-evaluator.d.ts.map +1 -0
- package/dist/core/glob-evaluator.js +89 -0
- package/dist/core/glob-evaluator.js.map +1 -0
- package/dist/core/import-candidates.d.ts +60 -0
- package/dist/core/import-candidates.d.ts.map +1 -0
- package/dist/core/import-candidates.js +93 -0
- package/dist/core/import-candidates.js.map +1 -0
- package/dist/core/import-options.d.ts +55 -2
- package/dist/core/import-options.d.ts.map +1 -1
- package/dist/core/import-options.js +64 -0
- package/dist/core/import-options.js.map +1 -1
- package/dist/core/line-index.d.ts +3 -0
- package/dist/core/line-index.d.ts.map +1 -0
- package/dist/core/line-index.js +229 -0
- package/dist/core/line-index.js.map +1 -0
- package/dist/core/metric-violation.d.ts +86 -0
- package/dist/core/metric-violation.d.ts.map +1 -0
- package/dist/core/metric-violation.js +132 -0
- package/dist/core/metric-violation.js.map +1 -0
- package/dist/core/module-edges.d.ts +361 -0
- package/dist/core/module-edges.d.ts.map +1 -0
- package/dist/core/module-edges.js +592 -0
- package/dist/core/module-edges.js.map +1 -0
- package/dist/core/object-literal-functions.d.ts +42 -0
- package/dist/core/object-literal-functions.d.ts.map +1 -0
- package/dist/core/object-literal-functions.js +75 -0
- package/dist/core/object-literal-functions.js.map +1 -0
- package/dist/core/orphan-exclusions.d.ts +44 -0
- package/dist/core/orphan-exclusions.d.ts.map +1 -0
- package/dist/core/orphan-exclusions.js +214 -0
- package/dist/core/orphan-exclusions.js.map +1 -0
- package/dist/core/pair-condition.d.ts +32 -3
- package/dist/core/pair-condition.d.ts.map +1 -1
- package/dist/core/path-universe.d.ts +54 -0
- package/dist/core/path-universe.d.ts.map +1 -0
- package/dist/core/path-universe.js +65 -0
- package/dist/core/path-universe.js.map +1 -0
- package/dist/core/per-root-compiler-options.d.ts +20 -0
- package/dist/core/per-root-compiler-options.d.ts.map +1 -0
- package/dist/core/per-root-compiler-options.js +57 -0
- package/dist/core/per-root-compiler-options.js.map +1 -0
- package/dist/core/project-relative.d.ts +98 -0
- package/dist/core/project-relative.d.ts.map +1 -0
- package/dist/core/project-relative.js +185 -0
- package/dist/core/project-relative.js.map +1 -0
- package/dist/core/project.d.ts +7 -1
- package/dist/core/project.d.ts.map +1 -1
- package/dist/core/project.js +24 -0
- package/dist/core/project.js.map +1 -1
- package/dist/core/rule-builder.d.ts +282 -0
- package/dist/core/rule-builder.d.ts.map +1 -0
- package/dist/core/rule-builder.js +445 -0
- package/dist/core/rule-builder.js.map +1 -0
- package/dist/core/rule-declaration.d.ts +32 -0
- package/dist/core/rule-declaration.d.ts.map +1 -0
- package/dist/core/rule-declaration.js +126 -0
- package/dist/core/rule-declaration.js.map +1 -0
- package/dist/core/terminal-builder.d.ts +625 -0
- package/dist/core/terminal-builder.d.ts.map +1 -0
- package/dist/core/terminal-builder.js +787 -0
- package/dist/core/terminal-builder.js.map +1 -0
- package/dist/core/terminal-execution.d.ts +23 -0
- package/dist/core/terminal-execution.d.ts.map +1 -0
- package/dist/core/terminal-execution.js +71 -0
- package/dist/core/terminal-execution.js.map +1 -0
- package/dist/core/vacuity-diagnosis.d.ts +103 -0
- package/dist/core/vacuity-diagnosis.d.ts.map +1 -0
- package/dist/core/vacuity-diagnosis.js +415 -0
- package/dist/core/vacuity-diagnosis.js.map +1 -0
- package/dist/core/violation.d.ts +16 -11
- package/dist/core/violation.d.ts.map +1 -1
- package/dist/core/violation.js +33 -13
- package/dist/core/violation.js.map +1 -1
- package/dist/graphql/index.js +1 -1
- package/dist/graphql/index.js.map +1 -1
- package/dist/graphql/resolver-rule-builder.d.ts +98 -23
- package/dist/graphql/resolver-rule-builder.d.ts.map +1 -1
- package/dist/graphql/resolver-rule-builder.js +151 -21
- package/dist/graphql/resolver-rule-builder.js.map +1 -1
- package/dist/graphql/schema-loader.d.ts +21 -0
- package/dist/graphql/schema-loader.d.ts.map +1 -1
- package/dist/graphql/schema-loader.js +81 -12
- package/dist/graphql/schema-loader.js.map +1 -1
- package/dist/graphql/schema-rule-builder.d.ts +57 -20
- package/dist/graphql/schema-rule-builder.d.ts.map +1 -1
- package/dist/graphql/schema-rule-builder.js +101 -25
- package/dist/graphql/schema-rule-builder.js.map +1 -1
- package/dist/helpers/baseline-diagnostics.d.ts +45 -0
- package/dist/helpers/baseline-diagnostics.d.ts.map +1 -0
- package/dist/helpers/baseline-diagnostics.js +168 -0
- package/dist/helpers/baseline-diagnostics.js.map +1 -0
- package/dist/helpers/baseline-generator.d.ts +19 -0
- package/dist/helpers/baseline-generator.d.ts.map +1 -0
- package/dist/helpers/baseline-generator.js +18 -0
- package/dist/helpers/baseline-generator.js.map +1 -0
- package/dist/helpers/baseline.d.ts +336 -0
- package/dist/helpers/baseline.d.ts.map +1 -0
- package/dist/helpers/baseline.js +664 -0
- package/dist/helpers/baseline.js.map +1 -0
- package/dist/helpers/body-traversal.d.ts +27 -2
- package/dist/helpers/body-traversal.d.ts.map +1 -1
- package/dist/helpers/body-traversal.js +122 -16
- package/dist/helpers/body-traversal.js.map +1 -1
- package/dist/helpers/callback-extractor.d.ts.map +1 -1
- package/dist/helpers/callback-extractor.js +48 -47
- package/dist/helpers/callback-extractor.js.map +1 -1
- package/dist/helpers/complexity.d.ts +13 -5
- package/dist/helpers/complexity.d.ts.map +1 -1
- package/dist/helpers/complexity.js +15 -6
- package/dist/helpers/complexity.js.map +1 -1
- package/dist/helpers/diff-aware.d.ts +44 -0
- package/dist/helpers/diff-aware.d.ts.map +1 -0
- package/dist/helpers/diff-aware.js +84 -0
- package/dist/helpers/diff-aware.js.map +1 -0
- package/dist/helpers/matchers.d.ts +68 -7
- package/dist/helpers/matchers.d.ts.map +1 -1
- package/dist/helpers/matchers.js +114 -20
- package/dist/helpers/matchers.js.map +1 -1
- package/dist/helpers/slice-graph.d.ts +100 -8
- package/dist/helpers/slice-graph.d.ts.map +1 -1
- package/dist/helpers/slice-graph.js +126 -34
- package/dist/helpers/slice-graph.js.map +1 -1
- package/dist/helpers/tarjan.d.ts +0 -14
- package/dist/helpers/tarjan.d.ts.map +1 -1
- package/dist/helpers/tarjan.js +29 -16
- package/dist/helpers/tarjan.js.map +1 -1
- package/dist/index.d.ts +56 -17
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +57 -13
- package/dist/index.js.map +1 -1
- package/dist/models/arch-call.d.ts +3 -2
- package/dist/models/arch-call.d.ts.map +1 -1
- package/dist/models/arch-call.js.map +1 -1
- package/dist/models/arch-function.d.ts +28 -6
- package/dist/models/arch-function.d.ts.map +1 -1
- package/dist/models/arch-function.js +106 -3
- package/dist/models/arch-function.js.map +1 -1
- package/dist/models/arch-jsx-element.js +2 -2
- package/dist/models/arch-jsx-element.js.map +1 -1
- package/dist/models/slice.d.ts +33 -9
- package/dist/models/slice.d.ts.map +1 -1
- package/dist/models/slice.js +129 -19
- package/dist/models/slice.js.map +1 -1
- package/dist/predicates/call.d.ts.map +1 -1
- package/dist/predicates/call.js +5 -0
- package/dist/predicates/call.js.map +1 -1
- package/dist/predicates/identity.d.ts +21 -0
- package/dist/predicates/identity.d.ts.map +1 -1
- package/dist/predicates/identity.js +75 -3
- package/dist/predicates/identity.js.map +1 -1
- package/dist/predicates/index.d.ts +1 -1
- package/dist/predicates/index.d.ts.map +1 -1
- package/dist/predicates/index.js +1 -1
- package/dist/predicates/index.js.map +1 -1
- package/dist/predicates/metrics.d.ts +4 -2
- package/dist/predicates/metrics.d.ts.map +1 -1
- package/dist/predicates/metrics.js +4 -2
- package/dist/predicates/metrics.js.map +1 -1
- package/dist/predicates/module.d.ts +4 -12
- package/dist/predicates/module.d.ts.map +1 -1
- package/dist/predicates/module.js +57 -37
- package/dist/predicates/module.js.map +1 -1
- package/dist/presets/agent-guardrails.d.ts +22 -15
- package/dist/presets/agent-guardrails.d.ts.map +1 -1
- package/dist/presets/agent-guardrails.js +124 -19
- package/dist/presets/agent-guardrails.js.map +1 -1
- package/dist/presets/boundaries.d.ts +45 -2
- package/dist/presets/boundaries.d.ts.map +1 -1
- package/dist/presets/boundaries.js +132 -23
- package/dist/presets/boundaries.js.map +1 -1
- package/dist/presets/data-layer.d.ts +22 -2
- package/dist/presets/data-layer.d.ts.map +1 -1
- package/dist/presets/data-layer.js +58 -16
- package/dist/presets/data-layer.js.map +1 -1
- package/dist/presets/index.d.ts +7 -5
- package/dist/presets/index.d.ts.map +1 -1
- package/dist/presets/index.js +9 -3
- package/dist/presets/index.js.map +1 -1
- package/dist/presets/layered.d.ts +46 -2
- package/dist/presets/layered.d.ts.map +1 -1
- package/dist/presets/layered.js +66 -29
- package/dist/presets/layered.js.map +1 -1
- package/dist/presets/recommended.d.ts +80 -9
- package/dist/presets/recommended.d.ts.map +1 -1
- package/dist/presets/recommended.js +25 -23
- package/dist/presets/recommended.js.map +1 -1
- package/dist/presets/shared.d.ts +270 -2
- package/dist/presets/shared.d.ts.map +1 -1
- package/dist/presets/shared.js +338 -4
- package/dist/presets/shared.js.map +1 -1
- package/dist/rules/code-quality.d.ts.map +1 -1
- package/dist/rules/code-quality.js +15 -6
- package/dist/rules/code-quality.js.map +1 -1
- package/dist/rules/hygiene.d.ts +1 -1
- package/dist/rules/hygiene.js +1 -1
- package/dist/rules/metrics-function.d.ts +2 -1
- package/dist/rules/metrics-function.d.ts.map +1 -1
- package/dist/rules/metrics-function.js +33 -6
- package/dist/rules/metrics-function.js.map +1 -1
- package/dist/rules/metrics.d.ts +2 -1
- package/dist/rules/metrics.d.ts.map +1 -1
- package/dist/rules/metrics.js +39 -9
- package/dist/rules/metrics.js.map +1 -1
- package/dist/smells/duplicate-bodies.d.ts +58 -5
- package/dist/smells/duplicate-bodies.d.ts.map +1 -1
- package/dist/smells/duplicate-bodies.js +137 -56
- package/dist/smells/duplicate-bodies.js.map +1 -1
- package/dist/smells/fingerprint.d.ts +8 -1
- package/dist/smells/fingerprint.d.ts.map +1 -1
- package/dist/smells/fingerprint.js +21 -3
- package/dist/smells/fingerprint.js.map +1 -1
- package/dist/smells/inconsistent-siblings.d.ts +128 -7
- package/dist/smells/inconsistent-siblings.d.ts.map +1 -1
- package/dist/smells/inconsistent-siblings.js +288 -86
- package/dist/smells/inconsistent-siblings.js.map +1 -1
- package/dist/smells/sibling-files.d.ts +47 -0
- package/dist/smells/sibling-files.d.ts.map +1 -0
- package/dist/smells/sibling-files.js +104 -0
- package/dist/smells/sibling-files.js.map +1 -0
- package/dist/smells/similar-pairs.d.ts +27 -0
- package/dist/smells/similar-pairs.d.ts.map +1 -0
- package/dist/smells/similar-pairs.js +52 -0
- package/dist/smells/similar-pairs.js.map +1 -0
- package/dist/smells/smell-builder.d.ts +57 -12
- package/dist/smells/smell-builder.d.ts.map +1 -1
- package/dist/smells/smell-builder.js +111 -14
- package/dist/smells/smell-builder.js.map +1 -1
- package/dist/tsconfig/index.d.ts +19 -0
- package/dist/tsconfig/index.d.ts.map +1 -0
- package/dist/tsconfig/index.js +20 -0
- package/dist/tsconfig/index.js.map +1 -0
- package/dist/tsconfig/tsconfig-builder.d.ts +42 -9
- package/dist/tsconfig/tsconfig-builder.d.ts.map +1 -1
- package/dist/tsconfig/tsconfig-builder.js +64 -16
- package/dist/tsconfig/tsconfig-builder.js.map +1 -1
- package/package.json +3 -2
- package/dist/core/module-dependencies.d.ts +0 -28
- package/dist/core/module-dependencies.d.ts.map +0 -1
- package/dist/core/module-dependencies.js +0 -35
- package/dist/core/module-dependencies.js.map +0 -1
- package/dist/helpers/within.d.ts.map +0 -1
- package/dist/helpers/within.js.map +0 -1
|
@@ -0,0 +1,287 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* **The exports here are `crossProject` / `CrossProjectBuilder`; the FILE is still
|
|
3
|
+
* `correspondence-builder.ts`, on purpose.**
|
|
4
|
+
*
|
|
5
|
+
* The symbols were renamed because `correspondence` collided: the kernel exports
|
|
6
|
+
* a different `correspondence({ left, right })` that `eess-md` re-exports and
|
|
7
|
+
* `docs/markdown.md` teaches, so one word named two incompatible APIs inside one
|
|
8
|
+
* family — and `family.rules.ts`'s allowlist, written to mean "eess-ts has no
|
|
9
|
+
* correspondence", silently permitted "eess-ts has a different one". Found by the
|
|
10
|
+
* product and architect reviews of PR #72.
|
|
11
|
+
*
|
|
12
|
+
* The filename did not follow because nine `path:line` pointers in CLOSED records
|
|
13
|
+
* (plans 0147 and 0150) cite it. Renaming the file would either break them or
|
|
14
|
+
* require rewriting finished history to describe a name that never existed at the
|
|
15
|
+
* time. The collision was in the published API, and that is what was fixed;
|
|
16
|
+
* tidying the filename is not worth falsifying a record.
|
|
17
|
+
*/
|
|
18
|
+
import type { ViolationMeta } from './correspondence-findings.js';
|
|
19
|
+
import type { RuleDescription } from '@nielspeter/eess';
|
|
20
|
+
import type { CollectResult } from '../core/terminal-builder.js';
|
|
21
|
+
import type { ArchProject } from '../core/project.js';
|
|
22
|
+
import { RuleBuilder } from '../core/rule-builder.js';
|
|
23
|
+
import { TerminalBuilder } from '../core/terminal-builder.js';
|
|
24
|
+
import type { CorrespondenceResult } from '@nielspeter/eess';
|
|
25
|
+
/**
|
|
26
|
+
* Map a selection subject to one or more comparison keys.
|
|
27
|
+
*
|
|
28
|
+
* This is the acknowledged raw-node seam (ADR-007): `subject` is the builder's
|
|
29
|
+
* element type (a ts-morph node for `classes()`/`types()`, an `ArchCall` /
|
|
30
|
+
* `ArchFunction` wrapper otherwise). Prefer the `byName` / `byArg` /
|
|
31
|
+
* `byPropertyNames` vocabulary below for the common cases.
|
|
32
|
+
*/
|
|
33
|
+
export type KeyFn<T> = (subject: T) => string | readonly string[];
|
|
34
|
+
/** A plain, already-derived key set. Normalize keys before passing them. */
|
|
35
|
+
export type KeysSource = readonly string[] | ReadonlySet<string>;
|
|
36
|
+
/**
|
|
37
|
+
* The materialized state of one crossProject check, threaded to the phase
|
|
38
|
+
* helpers as ONE object.
|
|
39
|
+
*
|
|
40
|
+
* Six values travel together — two sides, their keyed maps, the set result and
|
|
41
|
+
* the violation metadata — and passing them positionally would put every helper
|
|
42
|
+
* over the four-parameter cap while inviting the transposition that cap exists
|
|
43
|
+
* to prevent (`aKeyed`/`bKeyed` are the same type).
|
|
44
|
+
*/
|
|
45
|
+
export interface Pairing {
|
|
46
|
+
readonly sideA: Side;
|
|
47
|
+
readonly sideB: Side;
|
|
48
|
+
readonly aKeyed: Map<string, unknown[]>;
|
|
49
|
+
readonly bKeyed: Map<string, unknown[]>;
|
|
50
|
+
readonly result: CorrespondenceResult;
|
|
51
|
+
readonly meta: ViolationMeta;
|
|
52
|
+
/** What the rule DECLARED — the fields the findings functions read. */
|
|
53
|
+
readonly declared: Declared;
|
|
54
|
+
}
|
|
55
|
+
/** The assertions a crossProject rule made about its two sides. */
|
|
56
|
+
export interface Declared {
|
|
57
|
+
readonly sides: readonly Side[];
|
|
58
|
+
readonly distinctKeys: ReadonlySet<string>;
|
|
59
|
+
readonly expectEmptySides: ReadonlySet<string>;
|
|
60
|
+
readonly checkComplete: boolean;
|
|
61
|
+
readonly checkNoOrphans: boolean;
|
|
62
|
+
readonly metadata: {
|
|
63
|
+
id?: string;
|
|
64
|
+
suggestion?: string;
|
|
65
|
+
docs?: string;
|
|
66
|
+
} | undefined;
|
|
67
|
+
readonly reason: string | undefined;
|
|
68
|
+
}
|
|
69
|
+
export interface Side {
|
|
70
|
+
readonly name: string;
|
|
71
|
+
/** Lazily build key → subjects (subjects is empty for a literal side). */
|
|
72
|
+
readonly materialize: () => Map<string, unknown[]>;
|
|
73
|
+
}
|
|
74
|
+
/**
|
|
75
|
+
* Assert a correspondence between two independently-derived key sets:
|
|
76
|
+
* "every X has a matching Y" (and/or the reverse). This is ADR-008 Rule 5 as a
|
|
77
|
+
* primitive — two derivations plus a disagreement test — so identity-not-count
|
|
78
|
+
* and non-vacuity are impossible to get wrong.
|
|
79
|
+
*
|
|
80
|
+
* The chain: `.side()` twice → `.beComplete()` / `.haveNoOrphans()` /
|
|
81
|
+
* `.beBijective()` → `.check()`.
|
|
82
|
+
*
|
|
83
|
+
* @example
|
|
84
|
+
* crossProject(p)
|
|
85
|
+
* .side('routes', calls(p).that().onObject('app'), byArg(0))
|
|
86
|
+
* .side('matrix', Object.keys(ROUTE_PERMISSIONS))
|
|
87
|
+
* .should()
|
|
88
|
+
* .beComplete()
|
|
89
|
+
* .rule({ id: 'auth/route-matrix', suggestion: 'Add the route to ROUTE_PERMISSIONS.' })
|
|
90
|
+
* .check()
|
|
91
|
+
*/
|
|
92
|
+
export declare const sidesOf: (owner: object, compute: () => Map<string, unknown[]>[]) => Map<string, unknown[]>[];
|
|
93
|
+
/**
|
|
94
|
+
* The two-sided join: bind two artifacts by key and fail on the difference.
|
|
95
|
+
*
|
|
96
|
+
* Where every other builder selects subjects and asserts something about each,
|
|
97
|
+
* this one declares two (or more) named SIDES, derives a key set from each, and
|
|
98
|
+
* reports the set difference. It is the kernel's answer to "these two things must
|
|
99
|
+
* agree" — a route table against its permission map, a diagram against the code,
|
|
100
|
+
* a README table against the workspace.
|
|
101
|
+
*
|
|
102
|
+
* ```ts
|
|
103
|
+
* crossProject(project)
|
|
104
|
+
* .side('routes', classes(project).that().haveDecorator('Controller'), routeKey)
|
|
105
|
+
* .side('matrix', Object.keys(ROUTE_PERMISSIONS))
|
|
106
|
+
* .should()
|
|
107
|
+
* .beComplete()
|
|
108
|
+
* .check()
|
|
109
|
+
* ```
|
|
110
|
+
*
|
|
111
|
+
* `beComplete()` reports keys the second side is missing, `haveNoOrphans()` the
|
|
112
|
+
* reverse, and `beBijective()` both. A builder with fewer than two sides has
|
|
113
|
+
* compared nothing, and `examinedUnits()` reports that as zero rather than
|
|
114
|
+
* letting it pass vacuously (ADR-010).
|
|
115
|
+
*/
|
|
116
|
+
export declare class CrossProjectBuilder extends TerminalBuilder {
|
|
117
|
+
private _sides;
|
|
118
|
+
private _checkComplete;
|
|
119
|
+
private _checkNoOrphans;
|
|
120
|
+
private _expectEmptySides;
|
|
121
|
+
private _distinctKeys;
|
|
122
|
+
constructor(_project: ArchProject);
|
|
123
|
+
/** Add a side from a selection, keyed by `keyFn`. */
|
|
124
|
+
side<T>(name: string, source: RuleBuilder<T>, keyFn: KeyFn<T>): this;
|
|
125
|
+
/** Add a side from an already-derived key set (pre-normalized). */
|
|
126
|
+
side(name: string, keys: KeysSource): this;
|
|
127
|
+
/**
|
|
128
|
+
* An independent copy, carrying the sides and both opt-out sets.
|
|
129
|
+
*
|
|
130
|
+
* `collectViolations` throws unless there are exactly two sides, so a leaked
|
|
131
|
+
* `_sides` push does not fail silently here — but a leaked declaration does:
|
|
132
|
+
* it is what stands between a vacuous side and a finding, and inheriting it
|
|
133
|
+
* turns a later rule's empty side green.
|
|
134
|
+
*/
|
|
135
|
+
protected copy(): this;
|
|
136
|
+
/** Optional readability markers — the assertion terminals may be called directly. */
|
|
137
|
+
should(): this;
|
|
138
|
+
/**
|
|
139
|
+
* Reads as English between two conditions (`.beComplete().andShould()…`) and
|
|
140
|
+
* changes nothing — the builder is already in its condition phase.
|
|
141
|
+
*/
|
|
142
|
+
andShould(): this;
|
|
143
|
+
/** Every key of the first side must have a match in the second (A ⊆ B). */
|
|
144
|
+
beComplete(): this;
|
|
145
|
+
/** Every key of the second side must have a source in the first (B ⊆ A). */
|
|
146
|
+
haveNoOrphans(): this;
|
|
147
|
+
/** Both directions — the two key sets must be identical. */
|
|
148
|
+
beBijective(): this;
|
|
149
|
+
/**
|
|
150
|
+
* Declare that a NAMED side is empty — plan 0097, replacing `allowEmpty()`.
|
|
151
|
+
*
|
|
152
|
+
* The difference is the whole point, and it is not a rename. `allowEmpty()`
|
|
153
|
+
* PERMITTED a side to be empty and never spoke again: a permanent, silent
|
|
154
|
+
* opt-out that stayed green the day the side filled up and the rule started
|
|
155
|
+
* certifying nothing about it. This ASSERTS the side is empty, and fails the
|
|
156
|
+
* day it stops being — an intent that expires and reports itself, which is
|
|
157
|
+
* the property ADR-010 part 3 requires of every declaration. Plan 0069's
|
|
158
|
+
* appendix rejected the permanent form for the rule family with receipts; a
|
|
159
|
+
* sibling family had it shipped and documented.
|
|
160
|
+
*
|
|
161
|
+
* **The zero-argument form throws here**, and that is the correction of a
|
|
162
|
+
* defect this method shipped with. The parameter has to be optional — a
|
|
163
|
+
* required one is not a valid override of `TerminalBuilder`'s zero-arg
|
|
164
|
+
* `expectEmpty()` — but the OVERRIDE VALIDITY argument justifies the
|
|
165
|
+
* signature, not the semantics. Inheriting the base meaning gave
|
|
166
|
+
* `crossProject().expectEmpty()` a whole-rule flag that suppressed the
|
|
167
|
+
* empty-side finding for BOTH sides and that the expiry branch never read:
|
|
168
|
+
* `allowEmpty` restored, permanent and silent, in fewer characters than
|
|
169
|
+
* before, on the release that deleted it. Measured green over two populated
|
|
170
|
+
* sides, forever.
|
|
171
|
+
*
|
|
172
|
+
* A crossProject compares two named sides, so "this rule is empty" has no
|
|
173
|
+
* meaning that is not per-side. Refusing at build time is the same answer
|
|
174
|
+
* this class already gives a contradiction, and it is loud where the
|
|
175
|
+
* inherited semantics were silent.
|
|
176
|
+
*/
|
|
177
|
+
expectEmpty(side?: string): this;
|
|
178
|
+
/**
|
|
179
|
+
* Units this rule examined — plan 0096: the keys of both sides, summed.
|
|
180
|
+
*
|
|
181
|
+
* Zero means the comparison had nothing to compare, which for this family is
|
|
182
|
+
* two empty sides. One empty side is already its own finding and is not this
|
|
183
|
+
* question.
|
|
184
|
+
*/
|
|
185
|
+
/**
|
|
186
|
+
* This family counts keys — the keys of both sides, summed.
|
|
187
|
+
*
|
|
188
|
+
* Plan 0099: `CollectResult.examined` is unit-typed per family (ADR-009 part
|
|
189
|
+
* 1), and the zero-examined message prints the noun. Inheriting the base
|
|
190
|
+
* `'subjects'` is a category error in a sentence whose whole job is naming what
|
|
191
|
+
* was and was not looked at.
|
|
192
|
+
*/
|
|
193
|
+
protected examinedUnitNoun(): string;
|
|
194
|
+
/**
|
|
195
|
+
* How many units this rule actually examined — ADR-010's evidence that a pass
|
|
196
|
+
* was constructed rather than defaulted.
|
|
197
|
+
*
|
|
198
|
+
* Both materialized sides, summed — zero until two sides are declared, which is itself the evidence that nothing was compared.
|
|
199
|
+
*/
|
|
200
|
+
examinedUnits(): number;
|
|
201
|
+
/**
|
|
202
|
+
* Declared when EVERY side is — plan 0097.
|
|
203
|
+
*
|
|
204
|
+
* The base implementation reads the whole-rule flag, which this class refuses
|
|
205
|
+
* to let anyone set. Without this override, 0098's floor would red a rule
|
|
206
|
+
* whose every side the author declared, with a finding telling them to
|
|
207
|
+
* declare. The per-side loop in `collectViolations` does not need this — its
|
|
208
|
+
* membership test covers each side directly — which is exactly why the
|
|
209
|
+
* previous private version was dead code and was removed. This one is for
|
|
210
|
+
* the root, which asks the question about the rule rather than about a side.
|
|
211
|
+
*
|
|
212
|
+
* **This was recorded as unobservable-until-0098, and that equivalence EXPIRED**
|
|
213
|
+
* the moment plan 0096 made `diagnose()` its first reader. Reverting this
|
|
214
|
+
* override to the base body — which for this class can never be true, since the
|
|
215
|
+
* zero-arg `expectEmpty()` throws — makes a rule whose every side is declared
|
|
216
|
+
* report `zero-subjects` again, telling the author to declare what they
|
|
217
|
+
* declared. A recorded equivalence is a claim with a lifetime, and this one's
|
|
218
|
+
* ended one commit after it was written; it is guarded now.
|
|
219
|
+
*/
|
|
220
|
+
emptyDeclarationAdvice(): string;
|
|
221
|
+
/**
|
|
222
|
+
* Whether the author declared this rule's empty result intentional.
|
|
223
|
+
*
|
|
224
|
+
* Overrides `TerminalBuilder`'s `.expectEmpty()` reading, because this builder
|
|
225
|
+
* has more than one side and each can be declared empty independently.
|
|
226
|
+
*/
|
|
227
|
+
declaresEmpty(): boolean;
|
|
228
|
+
/** Fail if a side maps two distinct subjects to one key (over-normalization guard). */
|
|
229
|
+
distinctKeysOn(sideName: string): this;
|
|
230
|
+
/**
|
|
231
|
+
* Wrong arity counts as asserting nothing, **whatever assertion was chosen**.
|
|
232
|
+
*
|
|
233
|
+
* `.beComplete()` on a one-sided crossProject cannot assert anything: there
|
|
234
|
+
* is no second side to compare against, so the call is a claim about a
|
|
235
|
+
* comparison that does not exist. Reading only the assertion flags let that
|
|
236
|
+
* pair through the gate and into `collectViolations()`, where the arity check
|
|
237
|
+
* throws a `RangeError` — and until bug 0025 that error escaped the CLI and
|
|
238
|
+
* dropped every remaining rule file's findings.
|
|
239
|
+
*
|
|
240
|
+
* So the same fault now reports the same way whether or not an assertion was
|
|
241
|
+
* chosen, and `assertionAdvice()` below already names the right remedy for it
|
|
242
|
+
* (another `.side(...)`, never `.beComplete()`). The arity throw stays as an
|
|
243
|
+
* invariant on `collectViolations()`, unreachable through the terminals.
|
|
244
|
+
*/
|
|
245
|
+
assertsSomething(): boolean;
|
|
246
|
+
/**
|
|
247
|
+
* The remedy for this builder's assertion-less state, as one string.
|
|
248
|
+
*
|
|
249
|
+
* One channel, so `diagnose()`'s advice and the finding's own message cannot
|
|
250
|
+
* disagree. Overrides `TerminalBuilder`'s generic text with wording specific to
|
|
251
|
+
* what this builder is missing.
|
|
252
|
+
*/
|
|
253
|
+
assertionAdvice(): string;
|
|
254
|
+
/** Named by id or by its sides, not 'unnamed' (plan 0070 §4). */
|
|
255
|
+
describeRule(): RuleDescription;
|
|
256
|
+
/** What this rule declared, as a value the findings functions can read. */
|
|
257
|
+
private declared;
|
|
258
|
+
/** Materialize both sides and pair their keys — the input every finding reads. */
|
|
259
|
+
private pairingFor;
|
|
260
|
+
protected collectViolations(): CollectResult;
|
|
261
|
+
}
|
|
262
|
+
/**
|
|
263
|
+
* Entry point: assert a correspondence between two independently-derived key
|
|
264
|
+
* sets. Call `.side(...)` twice, then an assertion terminal.
|
|
265
|
+
*/
|
|
266
|
+
export declare function crossProject(p: ArchProject): CrossProjectBuilder;
|
|
267
|
+
/** Key a subject by its name (`getName()`); anonymous subjects fall back to `<anonymous>`. */
|
|
268
|
+
export declare function byName<T extends {
|
|
269
|
+
getName(): string | undefined;
|
|
270
|
+
}>(): KeyFn<T>;
|
|
271
|
+
/**
|
|
272
|
+
* Key a call-like subject by its argument at `index`. String/template literal
|
|
273
|
+
* arguments are unquoted so keys match plain sides (e.g. `Object.keys(map)`) —
|
|
274
|
+
* `app.get("/x", …)` keys as `/x`, not `"/x"`. Non-literal args key by raw text.
|
|
275
|
+
*/
|
|
276
|
+
export declare function byArg<T extends {
|
|
277
|
+
getArguments(): {
|
|
278
|
+
getText(): string;
|
|
279
|
+
}[];
|
|
280
|
+
}>(index: number): KeyFn<T>;
|
|
281
|
+
/** Key a type-like subject by each of its property names (one subject → many keys). */
|
|
282
|
+
export declare function byPropertyNames<T extends {
|
|
283
|
+
getProperties(): {
|
|
284
|
+
getName(): string;
|
|
285
|
+
}[];
|
|
286
|
+
}>(): KeyFn<T>;
|
|
287
|
+
//# sourceMappingURL=correspondence-builder.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"correspondence-builder.d.ts","sourceRoot":"","sources":["../../src/builders/correspondence-builder.ts"],"names":[],"mappings":"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"}
|