@nielspeter/eess-ts 0.2.1 → 0.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +61 -35
- package/dist/builders/call-rule-builder.d.ts +66 -26
- package/dist/builders/call-rule-builder.d.ts.map +1 -1
- package/dist/builders/call-rule-builder.js +73 -31
- package/dist/builders/call-rule-builder.js.map +1 -1
- package/dist/builders/class-rule-builder.d.ts +125 -26
- package/dist/builders/class-rule-builder.d.ts.map +1 -1
- package/dist/builders/class-rule-builder.js +134 -30
- package/dist/builders/class-rule-builder.js.map +1 -1
- package/dist/builders/correspondence-builder.d.ts +287 -0
- package/dist/builders/correspondence-builder.d.ts.map +1 -0
- package/dist/builders/correspondence-builder.js +393 -0
- package/dist/builders/correspondence-builder.js.map +1 -0
- package/dist/builders/correspondence-findings.d.ts +104 -0
- package/dist/builders/correspondence-findings.d.ts.map +1 -0
- package/dist/builders/correspondence-findings.js +301 -0
- package/dist/builders/correspondence-findings.js.map +1 -0
- package/dist/builders/cross-layer-builder.d.ts +99 -16
- package/dist/builders/cross-layer-builder.d.ts.map +1 -1
- package/dist/builders/cross-layer-builder.js +181 -35
- package/dist/builders/cross-layer-builder.js.map +1 -1
- package/dist/builders/function-rule-builder.d.ts +144 -25
- package/dist/builders/function-rule-builder.d.ts.map +1 -1
- package/dist/builders/function-rule-builder.js +173 -26
- package/dist/builders/function-rule-builder.js.map +1 -1
- package/dist/builders/jsx-rule-builder.d.ts +70 -14
- package/dist/builders/jsx-rule-builder.d.ts.map +1 -1
- package/dist/builders/jsx-rule-builder.js +73 -14
- package/dist/builders/jsx-rule-builder.js.map +1 -1
- package/dist/builders/module-rule-builder.d.ts +2 -2
- package/dist/builders/module-rule-builder.d.ts.map +1 -1
- package/dist/builders/module-rule-builder.js +12 -3
- package/dist/builders/module-rule-builder.js.map +1 -1
- package/dist/builders/scoped-function-rule-builder.d.ts +11 -0
- package/dist/builders/scoped-function-rule-builder.d.ts.map +1 -1
- package/dist/builders/scoped-function-rule-builder.js +12 -0
- package/dist/builders/scoped-function-rule-builder.js.map +1 -1
- package/dist/builders/slice-discovery-message.d.ts +36 -0
- package/dist/builders/slice-discovery-message.d.ts.map +1 -0
- package/dist/builders/slice-discovery-message.js +181 -0
- package/dist/builders/slice-discovery-message.js.map +1 -0
- package/dist/builders/slice-rule-builder.d.ts +151 -12
- package/dist/builders/slice-rule-builder.d.ts.map +1 -1
- package/dist/builders/slice-rule-builder.js +242 -35
- package/dist/builders/slice-rule-builder.js.map +1 -1
- package/dist/builders/type-rule-builder.d.ts +95 -24
- package/dist/builders/type-rule-builder.d.ts.map +1 -1
- package/dist/builders/type-rule-builder.js +105 -29
- package/dist/builders/type-rule-builder.js.map +1 -1
- package/dist/{helpers → builders}/within.d.ts +2 -2
- package/dist/builders/within.d.ts.map +1 -0
- package/dist/{helpers → builders}/within.js +1 -1
- package/dist/builders/within.js.map +1 -0
- package/dist/cli/commands/baseline.d.ts +3 -2
- package/dist/cli/commands/baseline.d.ts.map +1 -1
- package/dist/cli/commands/baseline.js +68 -6
- package/dist/cli/commands/baseline.js.map +1 -1
- package/dist/cli/commands/check.d.ts +7 -2
- package/dist/cli/commands/check.d.ts.map +1 -1
- package/dist/cli/commands/check.js +241 -45
- package/dist/cli/commands/check.js.map +1 -1
- package/dist/cli/commands/doctor.d.ts +29 -0
- package/dist/cli/commands/doctor.d.ts.map +1 -0
- package/dist/cli/commands/doctor.js +224 -0
- package/dist/cli/commands/doctor.js.map +1 -0
- package/dist/cli/commands/explain.d.ts +2 -1
- package/dist/cli/commands/explain.d.ts.map +1 -1
- package/dist/cli/commands/explain.js +19 -10
- package/dist/cli/commands/explain.js.map +1 -1
- package/dist/cli/commands/init.d.ts +9 -3
- package/dist/cli/commands/init.d.ts.map +1 -1
- package/dist/cli/commands/init.js +162 -137
- package/dist/cli/commands/init.js.map +1 -1
- package/dist/cli/import-rule-module.d.ts +29 -0
- package/dist/cli/import-rule-module.d.ts.map +1 -0
- package/dist/cli/import-rule-module.js +60 -0
- package/dist/cli/import-rule-module.js.map +1 -0
- package/dist/cli/index.d.ts +2 -2
- package/dist/cli/index.d.ts.map +1 -1
- package/dist/cli/index.js +98 -33
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/load-rules.d.ts +6 -11
- package/dist/cli/load-rules.d.ts.map +1 -1
- package/dist/cli/load-rules.js +21 -29
- package/dist/cli/load-rules.js.map +1 -1
- package/dist/cli/resolve-config.d.ts.map +1 -1
- package/dist/cli/resolve-config.js +24 -24
- package/dist/cli/resolve-config.js.map +1 -1
- package/dist/cli/rule-file-findings.d.ts +178 -0
- package/dist/cli/rule-file-findings.d.ts.map +1 -0
- package/dist/cli/rule-file-findings.js +293 -0
- package/dist/cli/rule-file-findings.js.map +1 -0
- package/dist/cli/watch.d.ts +20 -7
- package/dist/cli/watch.d.ts.map +1 -1
- package/dist/cli/watch.js +39 -14
- package/dist/cli/watch.js.map +1 -1
- package/dist/conditions/body-analysis-function.d.ts.map +1 -1
- package/dist/conditions/body-analysis-function.js +16 -7
- package/dist/conditions/body-analysis-function.js.map +1 -1
- package/dist/conditions/body-analysis-module.d.ts.map +1 -1
- package/dist/conditions/body-analysis-module.js +14 -9
- package/dist/conditions/body-analysis-module.js.map +1 -1
- package/dist/conditions/body-analysis.d.ts.map +1 -1
- package/dist/conditions/body-analysis.js +16 -7
- package/dist/conditions/body-analysis.js.map +1 -1
- package/dist/conditions/call.d.ts.map +1 -1
- package/dist/conditions/call.js +38 -17
- package/dist/conditions/call.js.map +1 -1
- package/dist/conditions/catch-analysis.d.ts +2 -1
- package/dist/conditions/catch-analysis.d.ts.map +1 -1
- package/dist/conditions/catch-analysis.js.map +1 -1
- package/dist/conditions/cross-layer.d.ts +2 -10
- package/dist/conditions/cross-layer.d.ts.map +1 -1
- package/dist/conditions/cross-layer.js +227 -23
- package/dist/conditions/cross-layer.js.map +1 -1
- package/dist/conditions/dependency.d.ts +35 -6
- package/dist/conditions/dependency.d.ts.map +1 -1
- package/dist/conditions/dependency.js +299 -45
- package/dist/conditions/dependency.js.map +1 -1
- package/dist/conditions/exports.d.ts.map +1 -1
- package/dist/conditions/exports.js +10 -0
- package/dist/conditions/exports.js.map +1 -1
- package/dist/conditions/function.d.ts.map +1 -1
- package/dist/conditions/function.js +19 -5
- package/dist/conditions/function.js.map +1 -1
- package/dist/conditions/helpers.d.ts +2 -1
- package/dist/conditions/helpers.d.ts.map +1 -1
- package/dist/conditions/helpers.js +4 -1
- package/dist/conditions/helpers.js.map +1 -1
- package/dist/conditions/jsx.d.ts.map +1 -1
- package/dist/conditions/jsx.js +7 -2
- package/dist/conditions/jsx.js.map +1 -1
- package/dist/conditions/match-identity.d.ts +43 -0
- package/dist/conditions/match-identity.d.ts.map +1 -0
- package/dist/conditions/match-identity.js +43 -0
- package/dist/conditions/match-identity.js.map +1 -0
- package/dist/conditions/members.d.ts.map +1 -1
- package/dist/conditions/members.js +17 -4
- package/dist/conditions/members.js.map +1 -1
- package/dist/conditions/reverse-dependency.d.ts +18 -5
- package/dist/conditions/reverse-dependency.d.ts.map +1 -1
- package/dist/conditions/reverse-dependency.js +109 -92
- package/dist/conditions/reverse-dependency.js.map +1 -1
- package/dist/conditions/slice.d.ts +86 -2
- package/dist/conditions/slice.d.ts.map +1 -1
- package/dist/conditions/slice.js +234 -53
- package/dist/conditions/slice.js.map +1 -1
- package/dist/conditions/structural.d.ts.map +1 -1
- package/dist/conditions/structural.js +16 -4
- package/dist/conditions/structural.js.map +1 -1
- package/dist/core/check-all.d.ts +19 -0
- package/dist/core/check-all.d.ts.map +1 -0
- package/dist/core/check-all.js +96 -0
- package/dist/core/check-all.js.map +1 -0
- package/dist/core/combinators.d.ts +48 -0
- package/dist/core/combinators.d.ts.map +1 -0
- package/dist/core/combinators.js +56 -0
- package/dist/core/combinators.js.map +1 -0
- package/dist/core/descendant-cache.d.ts +36 -0
- package/dist/core/descendant-cache.d.ts.map +1 -0
- package/dist/core/descendant-cache.js +119 -0
- package/dist/core/descendant-cache.js.map +1 -0
- package/dist/core/diagnose.d.ts +234 -0
- package/dist/core/diagnose.d.ts.map +1 -0
- package/dist/core/diagnose.js +382 -0
- package/dist/core/diagnose.js.map +1 -0
- package/dist/core/disk-set.d.ts +48 -0
- package/dist/core/disk-set.d.ts.map +1 -0
- package/dist/core/disk-set.js +218 -0
- package/dist/core/disk-set.js.map +1 -0
- package/dist/core/element-cache.d.ts +75 -0
- package/dist/core/element-cache.d.ts.map +1 -0
- package/dist/core/element-cache.js +32 -0
- package/dist/core/element-cache.js.map +1 -0
- package/dist/core/empty-project-advice.d.ts +75 -0
- package/dist/core/empty-project-advice.d.ts.map +1 -0
- package/dist/core/empty-project-advice.js +61 -0
- package/dist/core/empty-project-advice.js.map +1 -0
- package/dist/core/exclusion-comments.d.ts +54 -0
- package/dist/core/exclusion-comments.d.ts.map +1 -0
- package/dist/core/exclusion-comments.js +310 -0
- package/dist/core/exclusion-comments.js.map +1 -0
- package/dist/core/execute-rule.d.ts +150 -0
- package/dist/core/execute-rule.d.ts.map +1 -0
- package/dist/core/execute-rule.js +580 -0
- package/dist/core/execute-rule.js.map +1 -0
- package/dist/core/glob-diagnosis.d.ts +78 -0
- package/dist/core/glob-diagnosis.d.ts.map +1 -0
- package/dist/core/glob-diagnosis.js +134 -0
- package/dist/core/glob-diagnosis.js.map +1 -0
- package/dist/core/glob-evaluator.d.ts +48 -0
- package/dist/core/glob-evaluator.d.ts.map +1 -0
- package/dist/core/glob-evaluator.js +89 -0
- package/dist/core/glob-evaluator.js.map +1 -0
- package/dist/core/import-candidates.d.ts +60 -0
- package/dist/core/import-candidates.d.ts.map +1 -0
- package/dist/core/import-candidates.js +93 -0
- package/dist/core/import-candidates.js.map +1 -0
- package/dist/core/import-options.d.ts +55 -2
- package/dist/core/import-options.d.ts.map +1 -1
- package/dist/core/import-options.js +64 -0
- package/dist/core/import-options.js.map +1 -1
- package/dist/core/line-index.d.ts +3 -0
- package/dist/core/line-index.d.ts.map +1 -0
- package/dist/core/line-index.js +229 -0
- package/dist/core/line-index.js.map +1 -0
- package/dist/core/metric-violation.d.ts +86 -0
- package/dist/core/metric-violation.d.ts.map +1 -0
- package/dist/core/metric-violation.js +132 -0
- package/dist/core/metric-violation.js.map +1 -0
- package/dist/core/module-edges.d.ts +361 -0
- package/dist/core/module-edges.d.ts.map +1 -0
- package/dist/core/module-edges.js +592 -0
- package/dist/core/module-edges.js.map +1 -0
- package/dist/core/object-literal-functions.d.ts +42 -0
- package/dist/core/object-literal-functions.d.ts.map +1 -0
- package/dist/core/object-literal-functions.js +75 -0
- package/dist/core/object-literal-functions.js.map +1 -0
- package/dist/core/orphan-exclusions.d.ts +44 -0
- package/dist/core/orphan-exclusions.d.ts.map +1 -0
- package/dist/core/orphan-exclusions.js +214 -0
- package/dist/core/orphan-exclusions.js.map +1 -0
- package/dist/core/pair-condition.d.ts +32 -3
- package/dist/core/pair-condition.d.ts.map +1 -1
- package/dist/core/path-universe.d.ts +54 -0
- package/dist/core/path-universe.d.ts.map +1 -0
- package/dist/core/path-universe.js +65 -0
- package/dist/core/path-universe.js.map +1 -0
- package/dist/core/per-root-compiler-options.d.ts +20 -0
- package/dist/core/per-root-compiler-options.d.ts.map +1 -0
- package/dist/core/per-root-compiler-options.js +57 -0
- package/dist/core/per-root-compiler-options.js.map +1 -0
- package/dist/core/project-relative.d.ts +98 -0
- package/dist/core/project-relative.d.ts.map +1 -0
- package/dist/core/project-relative.js +185 -0
- package/dist/core/project-relative.js.map +1 -0
- package/dist/core/project.d.ts +7 -1
- package/dist/core/project.d.ts.map +1 -1
- package/dist/core/project.js +24 -0
- package/dist/core/project.js.map +1 -1
- package/dist/core/rule-builder.d.ts +282 -0
- package/dist/core/rule-builder.d.ts.map +1 -0
- package/dist/core/rule-builder.js +445 -0
- package/dist/core/rule-builder.js.map +1 -0
- package/dist/core/rule-declaration.d.ts +32 -0
- package/dist/core/rule-declaration.d.ts.map +1 -0
- package/dist/core/rule-declaration.js +126 -0
- package/dist/core/rule-declaration.js.map +1 -0
- package/dist/core/terminal-builder.d.ts +625 -0
- package/dist/core/terminal-builder.d.ts.map +1 -0
- package/dist/core/terminal-builder.js +787 -0
- package/dist/core/terminal-builder.js.map +1 -0
- package/dist/core/terminal-execution.d.ts +23 -0
- package/dist/core/terminal-execution.d.ts.map +1 -0
- package/dist/core/terminal-execution.js +71 -0
- package/dist/core/terminal-execution.js.map +1 -0
- package/dist/core/vacuity-diagnosis.d.ts +103 -0
- package/dist/core/vacuity-diagnosis.d.ts.map +1 -0
- package/dist/core/vacuity-diagnosis.js +415 -0
- package/dist/core/vacuity-diagnosis.js.map +1 -0
- package/dist/core/violation.d.ts +16 -11
- package/dist/core/violation.d.ts.map +1 -1
- package/dist/core/violation.js +33 -13
- package/dist/core/violation.js.map +1 -1
- package/dist/graphql/index.js +1 -1
- package/dist/graphql/index.js.map +1 -1
- package/dist/graphql/resolver-rule-builder.d.ts +98 -23
- package/dist/graphql/resolver-rule-builder.d.ts.map +1 -1
- package/dist/graphql/resolver-rule-builder.js +151 -21
- package/dist/graphql/resolver-rule-builder.js.map +1 -1
- package/dist/graphql/schema-loader.d.ts +21 -0
- package/dist/graphql/schema-loader.d.ts.map +1 -1
- package/dist/graphql/schema-loader.js +81 -12
- package/dist/graphql/schema-loader.js.map +1 -1
- package/dist/graphql/schema-rule-builder.d.ts +57 -20
- package/dist/graphql/schema-rule-builder.d.ts.map +1 -1
- package/dist/graphql/schema-rule-builder.js +101 -25
- package/dist/graphql/schema-rule-builder.js.map +1 -1
- package/dist/helpers/baseline-diagnostics.d.ts +45 -0
- package/dist/helpers/baseline-diagnostics.d.ts.map +1 -0
- package/dist/helpers/baseline-diagnostics.js +168 -0
- package/dist/helpers/baseline-diagnostics.js.map +1 -0
- package/dist/helpers/baseline-generator.d.ts +19 -0
- package/dist/helpers/baseline-generator.d.ts.map +1 -0
- package/dist/helpers/baseline-generator.js +18 -0
- package/dist/helpers/baseline-generator.js.map +1 -0
- package/dist/helpers/baseline.d.ts +336 -0
- package/dist/helpers/baseline.d.ts.map +1 -0
- package/dist/helpers/baseline.js +664 -0
- package/dist/helpers/baseline.js.map +1 -0
- package/dist/helpers/body-traversal.d.ts +27 -2
- package/dist/helpers/body-traversal.d.ts.map +1 -1
- package/dist/helpers/body-traversal.js +122 -16
- package/dist/helpers/body-traversal.js.map +1 -1
- package/dist/helpers/callback-extractor.d.ts.map +1 -1
- package/dist/helpers/callback-extractor.js +48 -47
- package/dist/helpers/callback-extractor.js.map +1 -1
- package/dist/helpers/complexity.d.ts +13 -5
- package/dist/helpers/complexity.d.ts.map +1 -1
- package/dist/helpers/complexity.js +15 -6
- package/dist/helpers/complexity.js.map +1 -1
- package/dist/helpers/diff-aware.d.ts +44 -0
- package/dist/helpers/diff-aware.d.ts.map +1 -0
- package/dist/helpers/diff-aware.js +84 -0
- package/dist/helpers/diff-aware.js.map +1 -0
- package/dist/helpers/matchers.d.ts +68 -7
- package/dist/helpers/matchers.d.ts.map +1 -1
- package/dist/helpers/matchers.js +114 -20
- package/dist/helpers/matchers.js.map +1 -1
- package/dist/helpers/slice-graph.d.ts +100 -8
- package/dist/helpers/slice-graph.d.ts.map +1 -1
- package/dist/helpers/slice-graph.js +126 -34
- package/dist/helpers/slice-graph.js.map +1 -1
- package/dist/helpers/tarjan.d.ts +0 -14
- package/dist/helpers/tarjan.d.ts.map +1 -1
- package/dist/helpers/tarjan.js +29 -16
- package/dist/helpers/tarjan.js.map +1 -1
- package/dist/index.d.ts +56 -17
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +57 -13
- package/dist/index.js.map +1 -1
- package/dist/models/arch-call.d.ts +3 -2
- package/dist/models/arch-call.d.ts.map +1 -1
- package/dist/models/arch-call.js.map +1 -1
- package/dist/models/arch-function.d.ts +28 -6
- package/dist/models/arch-function.d.ts.map +1 -1
- package/dist/models/arch-function.js +106 -3
- package/dist/models/arch-function.js.map +1 -1
- package/dist/models/arch-jsx-element.js +2 -2
- package/dist/models/arch-jsx-element.js.map +1 -1
- package/dist/models/slice.d.ts +33 -9
- package/dist/models/slice.d.ts.map +1 -1
- package/dist/models/slice.js +129 -19
- package/dist/models/slice.js.map +1 -1
- package/dist/predicates/call.d.ts.map +1 -1
- package/dist/predicates/call.js +5 -0
- package/dist/predicates/call.js.map +1 -1
- package/dist/predicates/identity.d.ts +21 -0
- package/dist/predicates/identity.d.ts.map +1 -1
- package/dist/predicates/identity.js +75 -3
- package/dist/predicates/identity.js.map +1 -1
- package/dist/predicates/index.d.ts +1 -1
- package/dist/predicates/index.d.ts.map +1 -1
- package/dist/predicates/index.js +1 -1
- package/dist/predicates/index.js.map +1 -1
- package/dist/predicates/metrics.d.ts +4 -2
- package/dist/predicates/metrics.d.ts.map +1 -1
- package/dist/predicates/metrics.js +4 -2
- package/dist/predicates/metrics.js.map +1 -1
- package/dist/predicates/module.d.ts +4 -12
- package/dist/predicates/module.d.ts.map +1 -1
- package/dist/predicates/module.js +57 -37
- package/dist/predicates/module.js.map +1 -1
- package/dist/presets/agent-guardrails.d.ts +22 -15
- package/dist/presets/agent-guardrails.d.ts.map +1 -1
- package/dist/presets/agent-guardrails.js +124 -19
- package/dist/presets/agent-guardrails.js.map +1 -1
- package/dist/presets/boundaries.d.ts +45 -2
- package/dist/presets/boundaries.d.ts.map +1 -1
- package/dist/presets/boundaries.js +132 -23
- package/dist/presets/boundaries.js.map +1 -1
- package/dist/presets/data-layer.d.ts +22 -2
- package/dist/presets/data-layer.d.ts.map +1 -1
- package/dist/presets/data-layer.js +58 -16
- package/dist/presets/data-layer.js.map +1 -1
- package/dist/presets/index.d.ts +7 -5
- package/dist/presets/index.d.ts.map +1 -1
- package/dist/presets/index.js +9 -3
- package/dist/presets/index.js.map +1 -1
- package/dist/presets/layered.d.ts +46 -2
- package/dist/presets/layered.d.ts.map +1 -1
- package/dist/presets/layered.js +66 -29
- package/dist/presets/layered.js.map +1 -1
- package/dist/presets/recommended.d.ts +80 -9
- package/dist/presets/recommended.d.ts.map +1 -1
- package/dist/presets/recommended.js +25 -23
- package/dist/presets/recommended.js.map +1 -1
- package/dist/presets/shared.d.ts +270 -2
- package/dist/presets/shared.d.ts.map +1 -1
- package/dist/presets/shared.js +338 -4
- package/dist/presets/shared.js.map +1 -1
- package/dist/rules/code-quality.d.ts.map +1 -1
- package/dist/rules/code-quality.js +15 -6
- package/dist/rules/code-quality.js.map +1 -1
- package/dist/rules/hygiene.d.ts +1 -1
- package/dist/rules/hygiene.js +1 -1
- package/dist/rules/metrics-function.d.ts +2 -1
- package/dist/rules/metrics-function.d.ts.map +1 -1
- package/dist/rules/metrics-function.js +33 -6
- package/dist/rules/metrics-function.js.map +1 -1
- package/dist/rules/metrics.d.ts +2 -1
- package/dist/rules/metrics.d.ts.map +1 -1
- package/dist/rules/metrics.js +39 -9
- package/dist/rules/metrics.js.map +1 -1
- package/dist/smells/duplicate-bodies.d.ts +58 -5
- package/dist/smells/duplicate-bodies.d.ts.map +1 -1
- package/dist/smells/duplicate-bodies.js +137 -56
- package/dist/smells/duplicate-bodies.js.map +1 -1
- package/dist/smells/fingerprint.d.ts +8 -1
- package/dist/smells/fingerprint.d.ts.map +1 -1
- package/dist/smells/fingerprint.js +21 -3
- package/dist/smells/fingerprint.js.map +1 -1
- package/dist/smells/inconsistent-siblings.d.ts +128 -7
- package/dist/smells/inconsistent-siblings.d.ts.map +1 -1
- package/dist/smells/inconsistent-siblings.js +288 -86
- package/dist/smells/inconsistent-siblings.js.map +1 -1
- package/dist/smells/sibling-files.d.ts +47 -0
- package/dist/smells/sibling-files.d.ts.map +1 -0
- package/dist/smells/sibling-files.js +104 -0
- package/dist/smells/sibling-files.js.map +1 -0
- package/dist/smells/similar-pairs.d.ts +27 -0
- package/dist/smells/similar-pairs.d.ts.map +1 -0
- package/dist/smells/similar-pairs.js +52 -0
- package/dist/smells/similar-pairs.js.map +1 -0
- package/dist/smells/smell-builder.d.ts +57 -12
- package/dist/smells/smell-builder.d.ts.map +1 -1
- package/dist/smells/smell-builder.js +111 -14
- package/dist/smells/smell-builder.js.map +1 -1
- package/dist/tsconfig/index.d.ts +19 -0
- package/dist/tsconfig/index.d.ts.map +1 -0
- package/dist/tsconfig/index.js +20 -0
- package/dist/tsconfig/index.js.map +1 -0
- package/dist/tsconfig/tsconfig-builder.d.ts +42 -9
- package/dist/tsconfig/tsconfig-builder.d.ts.map +1 -1
- package/dist/tsconfig/tsconfig-builder.js +64 -16
- package/dist/tsconfig/tsconfig-builder.js.map +1 -1
- package/package.json +3 -2
- package/dist/core/module-dependencies.d.ts +0 -28
- package/dist/core/module-dependencies.d.ts.map +0 -1
- package/dist/core/module-dependencies.js +0 -35
- package/dist/core/module-dependencies.js.map +0 -1
- package/dist/helpers/within.d.ts.map +0 -1
- package/dist/helpers/within.js.map +0 -1
|
@@ -1,9 +1,12 @@
|
|
|
1
|
-
import { RuleBuilder } from '
|
|
1
|
+
import { RuleBuilder } from '../core/rule-builder.js';
|
|
2
2
|
import { areInterfaces, areTypeAliases, haveProperty, havePropertyOfType, extendType, } from '../predicates/type.js';
|
|
3
3
|
import { havePropertyType } from '../conditions/type-level.js';
|
|
4
4
|
import { havePropertyNamed as memberHavePropertyNamed, notHavePropertyNamed as memberNotHavePropertyNamed, havePropertyMatching as memberHavePropertyMatching, notHavePropertyMatching as memberNotHavePropertyMatching, haveOnlyReadonlyProperties as memberHaveOnlyReadonlyProperties, maxProperties as memberMaxProperties, } from '../conditions/members.js';
|
|
5
5
|
import { beExported as conditionBeExported, notExist as conditionNotExist, haveNameMatching as conditionHaveNameMatching, resideInFile as conditionResideInFile, resideInFolder as conditionResideInFolder, } from '../conditions/structural.js';
|
|
6
|
+
import { createElementCache, SOLE_POPULATION } from '../core/element-cache.js';
|
|
6
7
|
import { haveNameMatching as identityHaveNameMatching, resideInFile as identityResideInFile, resideInFolder as identityResideInFolder, areExported as identityAreExported, areNotExported as identityAreNotExported, } from '../predicates/identity.js';
|
|
8
|
+
/** One collection per project, shared by every rule built from it (plan 0075). */
|
|
9
|
+
const cache = createElementCache();
|
|
7
10
|
/**
|
|
8
11
|
* Rule builder for interface and type alias declarations.
|
|
9
12
|
*
|
|
@@ -26,58 +29,93 @@ export class TypeRuleBuilder extends RuleBuilder {
|
|
|
26
29
|
* from all source files in the project.
|
|
27
30
|
*/
|
|
28
31
|
getElements() {
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
32
|
+
return cache.get(this.project, SOLE_POPULATION, () => {
|
|
33
|
+
const elements = [];
|
|
34
|
+
for (const sf of this.project.getSourceFiles()) {
|
|
35
|
+
elements.push(...sf.getInterfaces());
|
|
36
|
+
elements.push(...sf.getTypeAliases());
|
|
37
|
+
}
|
|
38
|
+
return elements;
|
|
39
|
+
});
|
|
35
40
|
}
|
|
36
41
|
// --- Type-specific predicates ---
|
|
37
|
-
/**
|
|
42
|
+
/**
|
|
43
|
+
* Narrows the selection to types that are interfaces.
|
|
44
|
+
*
|
|
45
|
+
* **Predicate only**, unlike the dual-use methods on this builder: it never
|
|
46
|
+
* becomes an assertion. Written after `.should()` it still filters, and the
|
|
47
|
+
* assertion gate reports it as a misplaced predicate rather than letting the
|
|
48
|
+
* rule pass having asserted nothing.
|
|
49
|
+
*/
|
|
38
50
|
areInterfaces() {
|
|
39
51
|
return this.addPredicate(areInterfaces());
|
|
40
52
|
}
|
|
41
|
-
/**
|
|
53
|
+
/**
|
|
54
|
+
* Narrows the selection to types that are type aliases.
|
|
55
|
+
*
|
|
56
|
+
* **Predicate only**, unlike the dual-use methods on this builder: it never
|
|
57
|
+
* becomes an assertion. Written after `.should()` it still filters, and the
|
|
58
|
+
* assertion gate reports it as a misplaced predicate rather than letting the
|
|
59
|
+
* rule pass having asserted nothing.
|
|
60
|
+
*/
|
|
42
61
|
areTypeAliases() {
|
|
43
62
|
return this.addPredicate(areTypeAliases());
|
|
44
63
|
}
|
|
45
64
|
/**
|
|
46
|
-
*
|
|
47
|
-
*
|
|
65
|
+
* Narrows the selection to types that have a property named `name`.
|
|
66
|
+
*
|
|
67
|
+
* **Predicate only**, unlike the dual-use methods on this builder: it never
|
|
68
|
+
* becomes an assertion. Written after `.should()` it still filters, and the
|
|
69
|
+
* assertion gate reports it as a misplaced predicate rather than letting the
|
|
70
|
+
* rule pass having asserted nothing.
|
|
48
71
|
*/
|
|
49
72
|
haveProperty(name) {
|
|
50
73
|
return this.addPredicate(haveProperty(name));
|
|
51
74
|
}
|
|
52
75
|
/**
|
|
53
|
-
*
|
|
54
|
-
*
|
|
76
|
+
* Narrows the selection to types that have property `name` of a type matching `matcher`.
|
|
77
|
+
*
|
|
78
|
+
* **Predicate only**, unlike the dual-use methods on this builder: it never
|
|
79
|
+
* becomes an assertion. Written after `.should()` it still filters, and the
|
|
80
|
+
* assertion gate reports it as a misplaced predicate rather than letting the
|
|
81
|
+
* rule pass having asserted nothing.
|
|
55
82
|
*/
|
|
56
83
|
havePropertyOfType(name, matcher) {
|
|
57
84
|
return this.addPredicate(havePropertyOfType(name, matcher));
|
|
58
85
|
}
|
|
59
86
|
/**
|
|
60
|
-
*
|
|
61
|
-
*
|
|
62
|
-
*
|
|
87
|
+
* Narrows the selection to types that extend the type `name`.
|
|
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.
|
|
63
93
|
*/
|
|
64
94
|
extendType(name) {
|
|
65
95
|
return this.addPredicate(extendType(name));
|
|
66
96
|
}
|
|
67
97
|
// --- Type-specific conditions ---
|
|
68
98
|
/**
|
|
69
|
-
*
|
|
70
|
-
*
|
|
71
|
-
*
|
|
99
|
+
* Asserts that the selected types have property `name` of a type matching `matcher`.
|
|
100
|
+
*
|
|
101
|
+
* **Condition only** — this is the assertion, so it belongs after `.should()`.
|
|
72
102
|
*/
|
|
73
103
|
havePropertyType(name, matcher) {
|
|
74
104
|
return this.addCondition(havePropertyType(name, matcher));
|
|
75
105
|
}
|
|
76
|
-
/**
|
|
106
|
+
/**
|
|
107
|
+
* Asserts that the selected types are exported.
|
|
108
|
+
*
|
|
109
|
+
* **Condition only** — this is the assertion, so it belongs after `.should()`.
|
|
110
|
+
*/
|
|
77
111
|
beExported() {
|
|
78
112
|
return this.addCondition(conditionBeExported());
|
|
79
113
|
}
|
|
80
|
-
/**
|
|
114
|
+
/**
|
|
115
|
+
* Asserts that the selected types do not exist.
|
|
116
|
+
*
|
|
117
|
+
* **Condition only** — this is the assertion, so it belongs after `.should()`.
|
|
118
|
+
*/
|
|
81
119
|
notExist() {
|
|
82
120
|
return this.addCondition(conditionNotExist());
|
|
83
121
|
}
|
|
@@ -86,27 +124,51 @@ export class TypeRuleBuilder extends RuleBuilder {
|
|
|
86
124
|
return this.addCondition(conditionHaveNameMatching(pattern));
|
|
87
125
|
}
|
|
88
126
|
// --- Member property conditions (plan 0030) ---
|
|
89
|
-
/**
|
|
127
|
+
/**
|
|
128
|
+
* Asserts that the selected types have a property named by each of `names`.
|
|
129
|
+
*
|
|
130
|
+
* **Condition only** — this is the assertion, so it belongs after `.should()`.
|
|
131
|
+
*/
|
|
90
132
|
havePropertyNamed(...names) {
|
|
91
133
|
return this.addCondition(memberHavePropertyNamed(...names));
|
|
92
134
|
}
|
|
93
|
-
/**
|
|
135
|
+
/**
|
|
136
|
+
* Asserts that the selected types do not have a property named by any of `names`.
|
|
137
|
+
*
|
|
138
|
+
* **Condition only** — this is the assertion, so it belongs after `.should()`.
|
|
139
|
+
*/
|
|
94
140
|
notHavePropertyNamed(...names) {
|
|
95
141
|
return this.addCondition(memberNotHavePropertyNamed(...names));
|
|
96
142
|
}
|
|
97
|
-
/**
|
|
143
|
+
/**
|
|
144
|
+
* Asserts that the selected types have a property matching `pattern`.
|
|
145
|
+
*
|
|
146
|
+
* **Condition only** — this is the assertion, so it belongs after `.should()`.
|
|
147
|
+
*/
|
|
98
148
|
havePropertyMatching(pattern) {
|
|
99
149
|
return this.addCondition(memberHavePropertyMatching(pattern));
|
|
100
150
|
}
|
|
101
|
-
/**
|
|
151
|
+
/**
|
|
152
|
+
* Asserts that the selected types do not have a property matching `pattern`.
|
|
153
|
+
*
|
|
154
|
+
* **Condition only** — this is the assertion, so it belongs after `.should()`.
|
|
155
|
+
*/
|
|
102
156
|
notHavePropertyMatching(pattern) {
|
|
103
157
|
return this.addCondition(memberNotHavePropertyMatching(pattern));
|
|
104
158
|
}
|
|
105
|
-
/**
|
|
159
|
+
/**
|
|
160
|
+
* Asserts that the selected types have only readonly properties.
|
|
161
|
+
*
|
|
162
|
+
* **Condition only** — this is the assertion, so it belongs after `.should()`.
|
|
163
|
+
*/
|
|
106
164
|
haveOnlyReadonlyProperties() {
|
|
107
165
|
return this.addCondition(memberHaveOnlyReadonlyProperties());
|
|
108
166
|
}
|
|
109
|
-
/**
|
|
167
|
+
/**
|
|
168
|
+
* Asserts that the selected types have at most `max` properties.
|
|
169
|
+
*
|
|
170
|
+
* **Condition only** — this is the assertion, so it belongs after `.should()`.
|
|
171
|
+
*/
|
|
110
172
|
maxProperties(max) {
|
|
111
173
|
return this.addCondition(memberMaxProperties(max));
|
|
112
174
|
}
|
|
@@ -122,11 +184,25 @@ export class TypeRuleBuilder extends RuleBuilder {
|
|
|
122
184
|
}
|
|
123
185
|
return this.addPredicate(identityHaveNameMatching(pattern));
|
|
124
186
|
}
|
|
125
|
-
/**
|
|
187
|
+
/**
|
|
188
|
+
* Narrows the selection to types that are exported.
|
|
189
|
+
*
|
|
190
|
+
* **Predicate only**, unlike the dual-use methods on this builder: it never
|
|
191
|
+
* becomes an assertion. Written after `.should()` it still filters, and the
|
|
192
|
+
* assertion gate reports it as a misplaced predicate rather than letting the
|
|
193
|
+
* rule pass having asserted nothing.
|
|
194
|
+
*/
|
|
126
195
|
areExported() {
|
|
127
196
|
return this.addPredicate(identityAreExported());
|
|
128
197
|
}
|
|
129
|
-
/**
|
|
198
|
+
/**
|
|
199
|
+
* Narrows the selection to types that are not exported.
|
|
200
|
+
*
|
|
201
|
+
* **Predicate only**, unlike the dual-use methods on this builder: it never
|
|
202
|
+
* becomes an assertion. Written after `.should()` it still filters, and the
|
|
203
|
+
* assertion gate reports it as a misplaced predicate rather than letting the
|
|
204
|
+
* rule pass having asserted nothing.
|
|
205
|
+
*/
|
|
130
206
|
areNotExported() {
|
|
131
207
|
return this.addPredicate(identityAreNotExported());
|
|
132
208
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"type-rule-builder.js","sourceRoot":"","sources":["../../src/builders/type-rule-builder.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"type-rule-builder.js","sourceRoot":"","sources":["../../src/builders/type-rule-builder.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import type { CallRuleBuilder } from '
|
|
2
|
-
import { ScopedFunctionRuleBuilder } from '
|
|
1
|
+
import type { CallRuleBuilder } from './call-rule-builder.js';
|
|
2
|
+
import { ScopedFunctionRuleBuilder } from './scoped-function-rule-builder.js';
|
|
3
3
|
/**
|
|
4
4
|
* A scoped context that restricts entry points to elements found
|
|
5
5
|
* inside the callback arguments of matched call expressions.
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"within.d.ts","sourceRoot":"","sources":["../../src/builders/within.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAA;AAC7D,OAAO,EAAE,yBAAyB,EAAE,MAAM,mCAAmC,CAAA;AAE7E;;;;;;GAMG;AACH,MAAM,WAAW,aAAa;IAC5B;;;OAGG;IACH,SAAS,IAAI,yBAAyB,CAAA;CACvC;AAED;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,MAAM,CAAC,SAAS,EAAE,eAAe,GAAG,aAAa,CAMhE"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"within.js","sourceRoot":"","sources":["../../src/builders/within.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,yBAAyB,EAAE,MAAM,mCAAmC,CAAA;AAiB7E;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,MAAM,UAAU,MAAM,CAAC,SAA0B;IAC/C,OAAO;QACL,SAAS;YACP,OAAO,IAAI,yBAAyB,CAAC,SAAS,CAAC,CAAA;QACjD,CAAC;KACF,CAAA;AACH,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
|
|
1
|
+
interface BaselineArgs {
|
|
2
2
|
ruleFiles: string[];
|
|
3
3
|
output: string;
|
|
4
4
|
}
|
|
@@ -7,5 +7,6 @@ export interface BaselineArgs {
|
|
|
7
7
|
*
|
|
8
8
|
* Wraps existing APIs: collectViolations + generateBaseline.
|
|
9
9
|
*/
|
|
10
|
-
export declare function runBaseline(args: BaselineArgs): Promise<
|
|
10
|
+
export declare function runBaseline(args: BaselineArgs): Promise<number>;
|
|
11
|
+
export {};
|
|
11
12
|
//# sourceMappingURL=baseline.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"baseline.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/baseline.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"baseline.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/baseline.ts"],"names":[],"mappings":"AAMA,UAAU,YAAY;IACpB,SAAS,EAAE,MAAM,EAAE,CAAA;IACnB,MAAM,EAAE,MAAM,CAAA;CACf;AAED;;;;GAIG;AACH,wBAAsB,WAAW,CAAC,IAAI,EAAE,YAAY,GAAG,OAAO,CAAC,MAAM,CAAC,CAwErE"}
|
|
@@ -1,16 +1,78 @@
|
|
|
1
|
-
import { collectViolations } from '
|
|
2
|
-
import { generateBaseline } from '
|
|
1
|
+
import { collectViolations } from '../../helpers/baseline-generator.js';
|
|
2
|
+
import { formatBaselineDelta, generateBaseline } from '../../helpers/baseline.js';
|
|
3
3
|
import { loadRuleFiles } from '../load-rules.js';
|
|
4
|
+
import { attributeToRuleFile, failureOrViolations } from '../rule-file-findings.js';
|
|
4
5
|
/**
|
|
5
6
|
* Generate a baseline file from current rule violations.
|
|
6
7
|
*
|
|
7
8
|
* Wraps existing APIs: collectViolations + generateBaseline.
|
|
8
9
|
*/
|
|
9
10
|
export async function runBaseline(args) {
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
11
|
+
// Per-file parity with runCheck: a user rule file that self-executes a
|
|
12
|
+
// throwing `.check()` at import surfaces its own violations without discarding
|
|
13
|
+
// the other files' rules. (Presets no longer throw at import — returning form.)
|
|
14
|
+
const violations = [];
|
|
15
|
+
const total = args.ruleFiles.length;
|
|
16
|
+
for (const file of args.ruleFiles) {
|
|
17
|
+
// Same two boundaries as `runCheck`, for the same reason (bug 0025). Here it
|
|
18
|
+
// matters twice over: a rethrow left NO baseline file at all, so one
|
|
19
|
+
// malformed rule made the whole command unusable rather than producing a
|
|
20
|
+
// partial baseline the user could finish.
|
|
21
|
+
let builders;
|
|
22
|
+
try {
|
|
23
|
+
builders = await loadRuleFiles([file]);
|
|
24
|
+
}
|
|
25
|
+
catch (error) {
|
|
26
|
+
violations.push(...failureOrViolations(file, error, total));
|
|
27
|
+
continue;
|
|
28
|
+
}
|
|
29
|
+
for (const builder of builders) {
|
|
30
|
+
try {
|
|
31
|
+
// Same attribution as `runCheck` (bug 0026): the findings this command
|
|
32
|
+
// REFUSES to baseline are printed for the user to fix, and "which rule
|
|
33
|
+
// file" is the first thing they need.
|
|
34
|
+
violations.push(...attributeToRuleFile(collectViolations(builder), file));
|
|
35
|
+
}
|
|
36
|
+
catch (error) {
|
|
37
|
+
violations.push(...failureOrViolations(file, error, total));
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
const delta = generateBaseline(violations, args.output);
|
|
42
|
+
// Report what was actually WRITTEN, not what was collected. Config-level findings
|
|
43
|
+
// are deliberately not baselineable (they report that a rule enforces nothing), so
|
|
44
|
+
// printing the pre-filter count told users they had accepted findings that CI would
|
|
45
|
+
// still fail on, with no hint why.
|
|
46
|
+
const refused = violations.filter((v) => v.bypassFilters === true);
|
|
47
|
+
// The delta first: it is the number the 0.28.0 upgrade recipe depends on, and a
|
|
48
|
+
// reader who stops after one line should have read the one that matters (plan
|
|
49
|
+
// 0071). The count comes from `delta`, not recomputed here: this used to be
|
|
50
|
+
// `violations.length - refused.length`, which is the same number derived a
|
|
51
|
+
// second way, and two derivations of one fact in two files drift. The
|
|
52
|
+
// cross-check lives in the test instead, against the entry count of the file
|
|
53
|
+
// that was actually written.
|
|
54
|
+
process.stdout.write(`${formatBaselineDelta(delta)}\n`);
|
|
14
55
|
process.stdout.write(`Written to: ${args.output}\n`);
|
|
56
|
+
if (refused.length > 0) {
|
|
57
|
+
process.stdout.write(`\n${String(refused.length)} finding(s) could NOT be baselined — each reports a rule ` +
|
|
58
|
+
`that currently enforces nothing, so accepting it would hide the gap. Fix these:\n`);
|
|
59
|
+
for (const violation of refused) {
|
|
60
|
+
// The rule file first when there is one. Attributing the finding
|
|
61
|
+
// (bug 0026) is pointless if the command that prints it drops the field:
|
|
62
|
+
// "which rule file" is the first thing the reader needs, and with two
|
|
63
|
+
// files holding the same vacuous rule the description alone is the same
|
|
64
|
+
// sentence twice.
|
|
65
|
+
const where = violation.file === '' ? '' : `${violation.file}: `;
|
|
66
|
+
process.stdout.write(` - ${where}${violation.rule}: ${violation.message}\n`);
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
// Non-zero when something could not be baselined, for the same reason
|
|
70
|
+
// `doctor` exits non-zero: an agent reads `exit 0` as "nothing to do", and
|
|
71
|
+
// this command sits on the documented 0.23.0 upgrade path. Exiting 0 here
|
|
72
|
+
// meant `npm run arch:baseline` reported the blocker, succeeded, got
|
|
73
|
+
// committed, and the next `arch` job failed on findings the baseline was
|
|
74
|
+
// supposed to have covered. The file is still written — the findings that
|
|
75
|
+
// COULD be baselined are recorded, so re-running after the fix is cheap.
|
|
76
|
+
return refused.length > 0 ? 1 : 0;
|
|
15
77
|
}
|
|
16
78
|
//# sourceMappingURL=baseline.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"baseline.js","sourceRoot":"","sources":["../../../src/cli/commands/baseline.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"baseline.js","sourceRoot":"","sources":["../../../src/cli/commands/baseline.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { OutputFormat } from '@nielspeter/eess';
|
|
2
|
-
|
|
2
|
+
interface CheckArgs {
|
|
3
3
|
ruleFiles: string[];
|
|
4
4
|
baseline?: string;
|
|
5
5
|
changed: boolean;
|
|
@@ -15,7 +15,12 @@ export interface CheckArgs {
|
|
|
15
15
|
/**
|
|
16
16
|
* Run architecture rules from the specified rule files.
|
|
17
17
|
*
|
|
18
|
-
*
|
|
18
|
+
* Unified pipeline (plan 0060): collect `.violations()` across every builder
|
|
19
|
+
* (each stamped with its severity), apply baseline/diff, report ONCE, and set
|
|
20
|
+
* the exit code from the error-severity count. Warns are reported but do not
|
|
21
|
+
* fail. A rule file that throws `ArchRuleError` on import (a bare self-executing
|
|
22
|
+
* preset call) is handled by a best-effort catch — error-severity only.
|
|
19
23
|
*/
|
|
20
24
|
export declare function runCheck(args: CheckArgs): Promise<number>;
|
|
25
|
+
export {};
|
|
21
26
|
//# sourceMappingURL=check.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"check.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/check.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"check.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/check.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAA;AAkBpD,UAAU,SAAS;IACjB,SAAS,EAAE,MAAM,EAAE,CAAA;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,OAAO,EAAE,OAAO,CAAA;IAChB,IAAI,EAAE,MAAM,CAAA;IACZ,MAAM,EAAE,YAAY,GAAG,MAAM,CAAA;IAC7B,wDAAwD;IACxD,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,uEAAuE;IACvE,GAAG,CAAC,EAAE,OAAO,CAAA;IACb,8DAA8D;IAC9D,KAAK,CAAC,EAAE,OAAO,CAAA;CAChB;AAED;;;;;;;;GAQG;AACH,wBAAsB,QAAQ,CAAC,IAAI,EAAE,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC,CA4B/D"}
|