@nielspeter/eess-ts 0.2.1 → 0.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +61 -35
- package/dist/builders/call-rule-builder.d.ts +66 -26
- package/dist/builders/call-rule-builder.d.ts.map +1 -1
- package/dist/builders/call-rule-builder.js +75 -32
- package/dist/builders/call-rule-builder.js.map +1 -1
- package/dist/builders/class-rule-builder.d.ts +125 -26
- package/dist/builders/class-rule-builder.d.ts.map +1 -1
- package/dist/builders/class-rule-builder.js +141 -55
- package/dist/builders/class-rule-builder.js.map +1 -1
- package/dist/builders/correspondence-builder.d.ts +287 -0
- package/dist/builders/correspondence-builder.d.ts.map +1 -0
- package/dist/builders/correspondence-builder.js +385 -0
- package/dist/builders/correspondence-builder.js.map +1 -0
- package/dist/builders/correspondence-findings.d.ts +104 -0
- package/dist/builders/correspondence-findings.d.ts.map +1 -0
- package/dist/builders/correspondence-findings.js +301 -0
- package/dist/builders/correspondence-findings.js.map +1 -0
- package/dist/builders/cross-layer-builder.d.ts +99 -16
- package/dist/builders/cross-layer-builder.d.ts.map +1 -1
- package/dist/builders/cross-layer-builder.js +182 -35
- package/dist/builders/cross-layer-builder.js.map +1 -1
- package/dist/builders/function-rule-builder.d.ts +144 -25
- package/dist/builders/function-rule-builder.d.ts.map +1 -1
- package/dist/builders/function-rule-builder.js +177 -39
- package/dist/builders/function-rule-builder.js.map +1 -1
- package/dist/builders/jsx-rule-builder.d.ts +70 -14
- package/dist/builders/jsx-rule-builder.d.ts.map +1 -1
- package/dist/builders/jsx-rule-builder.js +73 -14
- package/dist/builders/jsx-rule-builder.js.map +1 -1
- package/dist/builders/module-rule-builder.d.ts +2 -2
- package/dist/builders/module-rule-builder.d.ts.map +1 -1
- package/dist/builders/module-rule-builder.js +16 -19
- package/dist/builders/module-rule-builder.js.map +1 -1
- package/dist/builders/scoped-function-rule-builder.d.ts +11 -0
- package/dist/builders/scoped-function-rule-builder.d.ts.map +1 -1
- package/dist/builders/scoped-function-rule-builder.js +12 -0
- package/dist/builders/scoped-function-rule-builder.js.map +1 -1
- package/dist/builders/slice-discovery-message.d.ts +36 -0
- package/dist/builders/slice-discovery-message.d.ts.map +1 -0
- package/dist/builders/slice-discovery-message.js +181 -0
- package/dist/builders/slice-discovery-message.js.map +1 -0
- package/dist/builders/slice-rule-builder.d.ts +151 -12
- package/dist/builders/slice-rule-builder.d.ts.map +1 -1
- package/dist/builders/slice-rule-builder.js +243 -35
- package/dist/builders/slice-rule-builder.js.map +1 -1
- package/dist/builders/type-rule-builder.d.ts +95 -24
- package/dist/builders/type-rule-builder.d.ts.map +1 -1
- package/dist/builders/type-rule-builder.js +109 -42
- package/dist/builders/type-rule-builder.js.map +1 -1
- package/dist/{helpers → builders}/within.d.ts +2 -2
- package/dist/builders/within.d.ts.map +1 -0
- package/dist/{helpers → builders}/within.js +1 -1
- package/dist/builders/within.js.map +1 -0
- package/dist/cli/commands/baseline.d.ts +8 -3
- package/dist/cli/commands/baseline.d.ts.map +1 -1
- package/dist/cli/commands/baseline.js +111 -7
- package/dist/cli/commands/baseline.js.map +1 -1
- package/dist/cli/commands/check.d.ts +7 -2
- package/dist/cli/commands/check.d.ts.map +1 -1
- package/dist/cli/commands/check.js +385 -47
- package/dist/cli/commands/check.js.map +1 -1
- package/dist/cli/commands/doctor.d.ts +29 -0
- package/dist/cli/commands/doctor.d.ts.map +1 -0
- package/dist/cli/commands/doctor.js +224 -0
- package/dist/cli/commands/doctor.js.map +1 -0
- package/dist/cli/commands/explain.d.ts +2 -1
- package/dist/cli/commands/explain.d.ts.map +1 -1
- package/dist/cli/commands/explain.js +19 -10
- package/dist/cli/commands/explain.js.map +1 -1
- package/dist/cli/commands/init.d.ts +9 -3
- package/dist/cli/commands/init.d.ts.map +1 -1
- package/dist/cli/commands/init.js +162 -137
- package/dist/cli/commands/init.js.map +1 -1
- package/dist/cli/import-rule-module.d.ts +29 -0
- package/dist/cli/import-rule-module.d.ts.map +1 -0
- package/dist/cli/import-rule-module.js +47 -0
- package/dist/cli/import-rule-module.js.map +1 -0
- package/dist/cli/index.d.ts +2 -2
- package/dist/cli/index.d.ts.map +1 -1
- package/dist/cli/index.js +101 -43
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/load-rules.d.ts +6 -11
- package/dist/cli/load-rules.d.ts.map +1 -1
- package/dist/cli/load-rules.js +25 -32
- package/dist/cli/load-rules.js.map +1 -1
- package/dist/cli/resolve-config.d.ts +0 -8
- package/dist/cli/resolve-config.d.ts.map +1 -1
- package/dist/cli/resolve-config.js +25 -55
- package/dist/cli/resolve-config.js.map +1 -1
- package/dist/cli/rule-file-findings.d.ts +178 -0
- package/dist/cli/rule-file-findings.d.ts.map +1 -0
- package/dist/cli/rule-file-findings.js +351 -0
- package/dist/cli/rule-file-findings.js.map +1 -0
- package/dist/cli/watch.d.ts +17 -34
- package/dist/cli/watch.d.ts.map +1 -1
- package/dist/cli/watch.js +14 -129
- package/dist/cli/watch.js.map +1 -1
- package/dist/conditions/body-analysis-function.d.ts.map +1 -1
- package/dist/conditions/body-analysis-function.js +16 -7
- package/dist/conditions/body-analysis-function.js.map +1 -1
- package/dist/conditions/body-analysis-module.d.ts.map +1 -1
- package/dist/conditions/body-analysis-module.js +14 -9
- package/dist/conditions/body-analysis-module.js.map +1 -1
- package/dist/conditions/body-analysis.d.ts.map +1 -1
- package/dist/conditions/body-analysis.js +16 -7
- package/dist/conditions/body-analysis.js.map +1 -1
- package/dist/conditions/call.d.ts.map +1 -1
- package/dist/conditions/call.js +41 -19
- package/dist/conditions/call.js.map +1 -1
- package/dist/conditions/catch-analysis.d.ts +2 -1
- package/dist/conditions/catch-analysis.d.ts.map +1 -1
- package/dist/conditions/catch-analysis.js.map +1 -1
- package/dist/conditions/cross-layer.d.ts +2 -10
- package/dist/conditions/cross-layer.d.ts.map +1 -1
- package/dist/conditions/cross-layer.js +227 -23
- package/dist/conditions/cross-layer.js.map +1 -1
- package/dist/conditions/dependency.d.ts +35 -6
- package/dist/conditions/dependency.d.ts.map +1 -1
- package/dist/conditions/dependency.js +299 -45
- package/dist/conditions/dependency.js.map +1 -1
- package/dist/conditions/exports.d.ts.map +1 -1
- package/dist/conditions/exports.js +41 -37
- package/dist/conditions/exports.js.map +1 -1
- package/dist/conditions/function.d.ts.map +1 -1
- package/dist/conditions/function.js +19 -5
- package/dist/conditions/function.js.map +1 -1
- package/dist/conditions/helpers.d.ts +2 -1
- package/dist/conditions/helpers.d.ts.map +1 -1
- package/dist/conditions/helpers.js +4 -1
- package/dist/conditions/helpers.js.map +1 -1
- package/dist/conditions/jsx.d.ts.map +1 -1
- package/dist/conditions/jsx.js +7 -2
- package/dist/conditions/jsx.js.map +1 -1
- package/dist/conditions/match-identity.d.ts +43 -0
- package/dist/conditions/match-identity.d.ts.map +1 -0
- package/dist/conditions/match-identity.js +43 -0
- package/dist/conditions/match-identity.js.map +1 -0
- package/dist/conditions/members.d.ts.map +1 -1
- package/dist/conditions/members.js +20 -6
- package/dist/conditions/members.js.map +1 -1
- package/dist/conditions/reverse-dependency.d.ts +18 -5
- package/dist/conditions/reverse-dependency.d.ts.map +1 -1
- package/dist/conditions/reverse-dependency.js +155 -93
- package/dist/conditions/reverse-dependency.js.map +1 -1
- package/dist/conditions/slice.d.ts +86 -2
- package/dist/conditions/slice.d.ts.map +1 -1
- package/dist/conditions/slice.js +234 -53
- package/dist/conditions/slice.js.map +1 -1
- package/dist/conditions/structural.d.ts.map +1 -1
- package/dist/conditions/structural.js +16 -4
- package/dist/conditions/structural.js.map +1 -1
- package/dist/core/check-all.d.ts +19 -0
- package/dist/core/check-all.d.ts.map +1 -0
- package/dist/core/check-all.js +150 -0
- package/dist/core/check-all.js.map +1 -0
- package/dist/core/combinators.d.ts +48 -0
- package/dist/core/combinators.d.ts.map +1 -0
- package/dist/core/combinators.js +49 -0
- package/dist/core/combinators.js.map +1 -0
- package/dist/core/descendant-cache.d.ts +36 -0
- package/dist/core/descendant-cache.d.ts.map +1 -0
- package/dist/core/descendant-cache.js +117 -0
- package/dist/core/descendant-cache.js.map +1 -0
- package/dist/core/diagnose.d.ts +234 -0
- package/dist/core/diagnose.d.ts.map +1 -0
- package/dist/core/diagnose.js +390 -0
- package/dist/core/diagnose.js.map +1 -0
- package/dist/core/disk-set.d.ts +48 -0
- package/dist/core/disk-set.d.ts.map +1 -0
- package/dist/core/disk-set.js +218 -0
- package/dist/core/disk-set.js.map +1 -0
- package/dist/core/element-cache.d.ts +75 -0
- package/dist/core/element-cache.d.ts.map +1 -0
- package/dist/core/element-cache.js +32 -0
- package/dist/core/element-cache.js.map +1 -0
- package/dist/core/empty-project-advice.d.ts +75 -0
- package/dist/core/empty-project-advice.d.ts.map +1 -0
- package/dist/core/empty-project-advice.js +61 -0
- package/dist/core/empty-project-advice.js.map +1 -0
- package/dist/core/exclusion-comments.d.ts +19 -0
- package/dist/core/exclusion-comments.d.ts.map +1 -0
- package/dist/core/exclusion-comments.js +7 -0
- package/dist/core/exclusion-comments.js.map +1 -0
- package/dist/core/execute-rule.d.ts +158 -0
- package/dist/core/execute-rule.d.ts.map +1 -0
- package/dist/core/execute-rule.js +666 -0
- package/dist/core/execute-rule.js.map +1 -0
- package/dist/core/glob-diagnosis.d.ts +78 -0
- package/dist/core/glob-diagnosis.d.ts.map +1 -0
- package/dist/core/glob-diagnosis.js +134 -0
- package/dist/core/glob-diagnosis.js.map +1 -0
- package/dist/core/glob-evaluator.d.ts +48 -0
- package/dist/core/glob-evaluator.d.ts.map +1 -0
- package/dist/core/glob-evaluator.js +89 -0
- package/dist/core/glob-evaluator.js.map +1 -0
- package/dist/core/import-candidates.d.ts +60 -0
- package/dist/core/import-candidates.d.ts.map +1 -0
- package/dist/core/import-candidates.js +93 -0
- package/dist/core/import-candidates.js.map +1 -0
- package/dist/core/import-options.d.ts +55 -2
- package/dist/core/import-options.d.ts.map +1 -1
- package/dist/core/import-options.js +64 -0
- package/dist/core/import-options.js.map +1 -1
- package/dist/core/invalidate-on-modify.d.ts +20 -0
- package/dist/core/invalidate-on-modify.d.ts.map +1 -0
- package/dist/core/invalidate-on-modify.js +26 -0
- package/dist/core/invalidate-on-modify.js.map +1 -0
- package/dist/core/line-index.d.ts +3 -0
- package/dist/core/line-index.d.ts.map +1 -0
- package/dist/core/line-index.js +227 -0
- package/dist/core/line-index.js.map +1 -0
- package/dist/core/metric-violation.d.ts +86 -0
- package/dist/core/metric-violation.d.ts.map +1 -0
- package/dist/core/metric-violation.js +132 -0
- package/dist/core/metric-violation.js.map +1 -0
- package/dist/core/module-edges.d.ts +361 -0
- package/dist/core/module-edges.d.ts.map +1 -0
- package/dist/core/module-edges.js +593 -0
- package/dist/core/module-edges.js.map +1 -0
- package/dist/core/object-literal-functions.d.ts +42 -0
- package/dist/core/object-literal-functions.d.ts.map +1 -0
- package/dist/core/object-literal-functions.js +75 -0
- package/dist/core/object-literal-functions.js.map +1 -0
- package/dist/core/orphan-exclusions.d.ts +44 -0
- package/dist/core/orphan-exclusions.d.ts.map +1 -0
- package/dist/core/orphan-exclusions.js +224 -0
- package/dist/core/orphan-exclusions.js.map +1 -0
- package/dist/core/pair-condition.d.ts +32 -3
- package/dist/core/pair-condition.d.ts.map +1 -1
- package/dist/core/path-universe.d.ts +22 -0
- package/dist/core/path-universe.d.ts.map +1 -0
- package/dist/core/path-universe.js +45 -0
- package/dist/core/path-universe.js.map +1 -0
- package/dist/core/per-root-compiler-options.d.ts +20 -0
- package/dist/core/per-root-compiler-options.d.ts.map +1 -0
- package/dist/core/per-root-compiler-options.js +57 -0
- package/dist/core/per-root-compiler-options.js.map +1 -0
- package/dist/core/project-relative.d.ts +98 -0
- package/dist/core/project-relative.d.ts.map +1 -0
- package/dist/core/project-relative.js +185 -0
- package/dist/core/project-relative.js.map +1 -0
- package/dist/core/project.d.ts +7 -1
- package/dist/core/project.d.ts.map +1 -1
- package/dist/core/project.js +29 -4
- package/dist/core/project.js.map +1 -1
- package/dist/core/rule-builder.d.ts +303 -0
- package/dist/core/rule-builder.d.ts.map +1 -0
- package/dist/core/rule-builder.js +463 -0
- package/dist/core/rule-builder.js.map +1 -0
- package/dist/core/rule-declaration.d.ts +32 -0
- package/dist/core/rule-declaration.d.ts.map +1 -0
- package/dist/core/rule-declaration.js +88 -0
- package/dist/core/rule-declaration.js.map +1 -0
- package/dist/core/terminal-builder.d.ts +629 -0
- package/dist/core/terminal-builder.d.ts.map +1 -0
- package/dist/core/terminal-builder.js +807 -0
- package/dist/core/terminal-builder.js.map +1 -0
- package/dist/core/terminal-execution.d.ts +39 -0
- package/dist/core/terminal-execution.d.ts.map +1 -0
- package/dist/core/terminal-execution.js +103 -0
- package/dist/core/terminal-execution.js.map +1 -0
- package/dist/core/ts-comment-mask.d.ts +2 -0
- package/dist/core/ts-comment-mask.d.ts.map +1 -0
- package/dist/core/ts-comment-mask.js +102 -0
- package/dist/core/ts-comment-mask.js.map +1 -0
- package/dist/core/vacuity-diagnosis.d.ts +103 -0
- package/dist/core/vacuity-diagnosis.d.ts.map +1 -0
- package/dist/core/vacuity-diagnosis.js +415 -0
- package/dist/core/vacuity-diagnosis.js.map +1 -0
- package/dist/core/violation.d.ts +16 -11
- package/dist/core/violation.d.ts.map +1 -1
- package/dist/core/violation.js +33 -13
- package/dist/core/violation.js.map +1 -1
- package/dist/graphql/graphql-rule-builder.d.ts +95 -0
- package/dist/graphql/graphql-rule-builder.d.ts.map +1 -0
- package/dist/graphql/graphql-rule-builder.js +127 -0
- package/dist/graphql/graphql-rule-builder.js.map +1 -0
- package/dist/graphql/index.d.ts +1 -0
- package/dist/graphql/index.d.ts.map +1 -1
- package/dist/graphql/index.js +2 -1
- package/dist/graphql/index.js.map +1 -1
- package/dist/graphql/resolver-rule-builder.d.ts +44 -23
- package/dist/graphql/resolver-rule-builder.d.ts.map +1 -1
- package/dist/graphql/resolver-rule-builder.js +80 -72
- package/dist/graphql/resolver-rule-builder.js.map +1 -1
- package/dist/graphql/schema-loader.d.ts +21 -0
- package/dist/graphql/schema-loader.d.ts.map +1 -1
- package/dist/graphql/schema-loader.js +82 -12
- package/dist/graphql/schema-loader.js.map +1 -1
- package/dist/graphql/schema-predicates.d.ts.map +1 -1
- package/dist/graphql/schema-predicates.js +17 -12
- package/dist/graphql/schema-predicates.js.map +1 -1
- package/dist/graphql/schema-rule-builder.d.ts +15 -24
- package/dist/graphql/schema-rule-builder.d.ts.map +1 -1
- package/dist/graphql/schema-rule-builder.js +39 -77
- package/dist/graphql/schema-rule-builder.js.map +1 -1
- package/dist/helpers/baseline-diagnostics.d.ts +45 -0
- package/dist/helpers/baseline-diagnostics.d.ts.map +1 -0
- package/dist/helpers/baseline-diagnostics.js +168 -0
- package/dist/helpers/baseline-diagnostics.js.map +1 -0
- package/dist/helpers/baseline-generator.d.ts +28 -0
- package/dist/helpers/baseline-generator.d.ts.map +1 -0
- package/dist/helpers/baseline-generator.js +27 -0
- package/dist/helpers/baseline-generator.js.map +1 -0
- package/dist/helpers/baseline.d.ts +336 -0
- package/dist/helpers/baseline.d.ts.map +1 -0
- package/dist/helpers/baseline.js +664 -0
- package/dist/helpers/baseline.js.map +1 -0
- package/dist/helpers/body-traversal.d.ts +27 -2
- package/dist/helpers/body-traversal.d.ts.map +1 -1
- package/dist/helpers/body-traversal.js +135 -16
- package/dist/helpers/body-traversal.js.map +1 -1
- package/dist/helpers/callback-extractor.d.ts.map +1 -1
- package/dist/helpers/callback-extractor.js +53 -84
- package/dist/helpers/callback-extractor.js.map +1 -1
- package/dist/helpers/complexity.d.ts +13 -5
- package/dist/helpers/complexity.d.ts.map +1 -1
- package/dist/helpers/complexity.js +15 -6
- package/dist/helpers/complexity.js.map +1 -1
- package/dist/helpers/diff-aware.d.ts +16 -0
- package/dist/helpers/diff-aware.d.ts.map +1 -0
- package/dist/helpers/diff-aware.js +16 -0
- package/dist/helpers/diff-aware.js.map +1 -0
- package/dist/helpers/matchers.d.ts +68 -7
- package/dist/helpers/matchers.d.ts.map +1 -1
- package/dist/helpers/matchers.js +164 -86
- package/dist/helpers/matchers.js.map +1 -1
- package/dist/helpers/slice-graph.d.ts +100 -8
- package/dist/helpers/slice-graph.d.ts.map +1 -1
- package/dist/helpers/slice-graph.js +126 -34
- package/dist/helpers/slice-graph.js.map +1 -1
- package/dist/helpers/tarjan.d.ts +0 -14
- package/dist/helpers/tarjan.d.ts.map +1 -1
- package/dist/helpers/tarjan.js +29 -16
- package/dist/helpers/tarjan.js.map +1 -1
- package/dist/index.d.ts +55 -19
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +67 -15
- package/dist/index.js.map +1 -1
- package/dist/models/arch-call.d.ts +3 -2
- package/dist/models/arch-call.d.ts.map +1 -1
- package/dist/models/arch-call.js.map +1 -1
- package/dist/models/arch-function.d.ts +54 -8
- package/dist/models/arch-function.d.ts.map +1 -1
- package/dist/models/arch-function.js +145 -8
- package/dist/models/arch-function.js.map +1 -1
- package/dist/models/arch-jsx-element.d.ts.map +1 -1
- package/dist/models/arch-jsx-element.js +18 -19
- package/dist/models/arch-jsx-element.js.map +1 -1
- package/dist/models/slice.d.ts +33 -9
- package/dist/models/slice.d.ts.map +1 -1
- package/dist/models/slice.js +129 -19
- package/dist/models/slice.js.map +1 -1
- package/dist/predicates/call.d.ts.map +1 -1
- package/dist/predicates/call.js +5 -0
- package/dist/predicates/call.js.map +1 -1
- package/dist/predicates/identity.d.ts +21 -0
- package/dist/predicates/identity.d.ts.map +1 -1
- package/dist/predicates/identity.js +75 -3
- package/dist/predicates/identity.js.map +1 -1
- package/dist/predicates/index.d.ts +1 -1
- package/dist/predicates/index.d.ts.map +1 -1
- package/dist/predicates/index.js +1 -1
- package/dist/predicates/index.js.map +1 -1
- package/dist/predicates/jsx.d.ts.map +1 -1
- package/dist/predicates/jsx.js +2 -1
- package/dist/predicates/jsx.js.map +1 -1
- package/dist/predicates/metrics.d.ts +4 -2
- package/dist/predicates/metrics.d.ts.map +1 -1
- package/dist/predicates/metrics.js +4 -2
- package/dist/predicates/metrics.js.map +1 -1
- package/dist/predicates/module.d.ts +4 -12
- package/dist/predicates/module.d.ts.map +1 -1
- package/dist/predicates/module.js +57 -37
- package/dist/predicates/module.js.map +1 -1
- package/dist/presets/agent-guardrails.d.ts +49 -16
- package/dist/presets/agent-guardrails.d.ts.map +1 -1
- package/dist/presets/agent-guardrails.js +308 -19
- package/dist/presets/agent-guardrails.js.map +1 -1
- package/dist/presets/boundaries.d.ts +46 -3
- package/dist/presets/boundaries.d.ts.map +1 -1
- package/dist/presets/boundaries.js +132 -23
- package/dist/presets/boundaries.js.map +1 -1
- package/dist/presets/data-layer.d.ts +23 -3
- package/dist/presets/data-layer.d.ts.map +1 -1
- package/dist/presets/data-layer.js +58 -16
- package/dist/presets/data-layer.js.map +1 -1
- package/dist/presets/index.d.ts +10 -5
- package/dist/presets/index.d.ts.map +1 -1
- package/dist/presets/index.js +19 -3
- package/dist/presets/index.js.map +1 -1
- package/dist/presets/layered.d.ts +47 -3
- package/dist/presets/layered.d.ts.map +1 -1
- package/dist/presets/layered.js +66 -29
- package/dist/presets/layered.js.map +1 -1
- package/dist/presets/recommended.d.ts +81 -10
- package/dist/presets/recommended.d.ts.map +1 -1
- package/dist/presets/recommended.js +25 -23
- package/dist/presets/recommended.js.map +1 -1
- package/dist/presets/shared.d.ts +267 -2
- package/dist/presets/shared.d.ts.map +1 -1
- package/dist/presets/shared.js +367 -4
- package/dist/presets/shared.js.map +1 -1
- package/dist/rules/code-quality.d.ts.map +1 -1
- package/dist/rules/code-quality.js +15 -6
- package/dist/rules/code-quality.js.map +1 -1
- package/dist/rules/hygiene.d.ts +1 -1
- package/dist/rules/hygiene.js +1 -1
- package/dist/rules/metrics-function.d.ts +2 -1
- package/dist/rules/metrics-function.d.ts.map +1 -1
- package/dist/rules/metrics-function.js +63 -39
- package/dist/rules/metrics-function.js.map +1 -1
- package/dist/rules/metrics.d.ts +2 -1
- package/dist/rules/metrics.d.ts.map +1 -1
- package/dist/rules/metrics.js +80 -47
- package/dist/rules/metrics.js.map +1 -1
- package/dist/smells/clusters.d.ts +78 -0
- package/dist/smells/clusters.d.ts.map +1 -0
- package/dist/smells/clusters.js +124 -0
- package/dist/smells/clusters.js.map +1 -0
- package/dist/smells/duplicate-bodies.d.ts +92 -5
- package/dist/smells/duplicate-bodies.d.ts.map +1 -1
- package/dist/smells/duplicate-bodies.js +203 -73
- package/dist/smells/duplicate-bodies.js.map +1 -1
- package/dist/smells/duplicate-report.d.ts +90 -0
- package/dist/smells/duplicate-report.d.ts.map +1 -0
- package/dist/smells/duplicate-report.js +344 -0
- package/dist/smells/duplicate-report.js.map +1 -0
- package/dist/smells/fingerprint.d.ts +20 -1
- package/dist/smells/fingerprint.d.ts.map +1 -1
- package/dist/smells/fingerprint.js +27 -3
- package/dist/smells/fingerprint.js.map +1 -1
- package/dist/smells/inconsistent-siblings.d.ts +128 -7
- package/dist/smells/inconsistent-siblings.d.ts.map +1 -1
- package/dist/smells/inconsistent-siblings.js +288 -86
- package/dist/smells/inconsistent-siblings.js.map +1 -1
- package/dist/smells/sibling-files.d.ts +47 -0
- package/dist/smells/sibling-files.d.ts.map +1 -0
- package/dist/smells/sibling-files.js +104 -0
- package/dist/smells/sibling-files.js.map +1 -0
- package/dist/smells/similar-pairs.d.ts +28 -0
- package/dist/smells/similar-pairs.d.ts.map +1 -0
- package/dist/smells/similar-pairs.js +134 -0
- package/dist/smells/similar-pairs.js.map +1 -0
- package/dist/smells/smell-builder.d.ts +57 -12
- package/dist/smells/smell-builder.d.ts.map +1 -1
- package/dist/smells/smell-builder.js +112 -14
- package/dist/smells/smell-builder.js.map +1 -1
- package/dist/smells/variation.d.ts +47 -0
- package/dist/smells/variation.d.ts.map +1 -0
- package/dist/smells/variation.js +90 -0
- package/dist/smells/variation.js.map +1 -0
- package/dist/tsconfig/index.d.ts +19 -0
- package/dist/tsconfig/index.d.ts.map +1 -0
- package/dist/tsconfig/index.js +20 -0
- package/dist/tsconfig/index.js.map +1 -0
- package/dist/tsconfig/tsconfig-builder.d.ts +42 -9
- package/dist/tsconfig/tsconfig-builder.d.ts.map +1 -1
- package/dist/tsconfig/tsconfig-builder.js +65 -16
- package/dist/tsconfig/tsconfig-builder.js.map +1 -1
- package/package.json +4 -2
- package/dist/core/module-dependencies.d.ts +0 -28
- package/dist/core/module-dependencies.d.ts.map +0 -1
- package/dist/core/module-dependencies.js +0 -35
- package/dist/core/module-dependencies.js.map +0 -1
- package/dist/helpers/within.d.ts.map +0 -1
- package/dist/helpers/within.js.map +0 -1
|
@@ -1,21 +1,20 @@
|
|
|
1
1
|
import fs from 'node:fs';
|
|
2
|
+
import { isRecord } from '@nielspeter/eess/internal';
|
|
2
3
|
import path from 'node:path';
|
|
3
|
-
/**
|
|
4
|
-
* "Floor" presets — a universal rule set scoped to your source glob. eess only
|
|
5
|
-
* scaffolds the floor presets: unlike ts-archunit, eess presets return eager
|
|
6
|
-
* `ArchViolation[]` (ADR-008), which a CLI rule file cannot spread. So `init`
|
|
7
|
-
* emits the floor rules **expanded as builders** (CLI-loadable, editable), and
|
|
8
|
-
* leaves the shape presets (layered / boundaries / data-layer) to test-file use.
|
|
9
|
-
*/
|
|
4
|
+
/** "Floor" presets — a universal rule set scoped to your source glob. */
|
|
10
5
|
const FLOOR_PRESETS = ['recommended', 'agent-guardrails'];
|
|
11
|
-
|
|
6
|
+
/** "Shape" presets — architecture patterns; scaffolded with fill-in folder globs. */
|
|
7
|
+
const SHAPE_PRESETS = ['layered', 'strict-boundaries', 'data-layer'];
|
|
8
|
+
/** Every preset `init` can scaffold — all are returning-form (spreadable). */
|
|
9
|
+
const VALID_PRESETS = [...FLOOR_PRESETS, ...SHAPE_PRESETS];
|
|
12
10
|
const VALID_PRESET_SET = new Set(VALID_PRESETS);
|
|
13
11
|
/**
|
|
14
12
|
* Scaffold a working eess-ts setup in `cwd`. Returns the process exit code
|
|
15
13
|
* (0 success, 1 on a recoverable error — bad `--preset`, missing tsconfig, a
|
|
16
14
|
* file conflict without `--force`, or a write failure). All reads, parses, and
|
|
17
15
|
* conflict checks run before any file is written, so a validation failure never
|
|
18
|
-
* leaves a partial scaffold; a raw I/O failure mid-write is caught and reported
|
|
16
|
+
* leaves a partial scaffold; a raw I/O failure mid-write is caught and reported
|
|
17
|
+
* (writes are ordered, not transactional).
|
|
19
18
|
*/
|
|
20
19
|
export function runInit(args) {
|
|
21
20
|
const cwd = args.cwd ?? process.cwd();
|
|
@@ -34,7 +33,7 @@ export function runInit(args) {
|
|
|
34
33
|
const writeBaseline = args.noBaseline !== true;
|
|
35
34
|
// Stage the generated files in memory (no writes yet).
|
|
36
35
|
const staged = [
|
|
37
|
-
stage(cwd, 'eess-ts.config.ts', configTemplate(writeBaseline)),
|
|
36
|
+
stage(cwd, 'eess-ts.config.ts', configTemplate(tsconfig, writeBaseline)),
|
|
38
37
|
stage(cwd, 'arch.rules.ts', rulesTemplate(preset, tsconfig, sourceRoot)),
|
|
39
38
|
];
|
|
40
39
|
if (writeBaseline) {
|
|
@@ -72,134 +71,177 @@ export function runInit(args) {
|
|
|
72
71
|
console.error(`Error: could not write files — ${err instanceof Error ? err.message : String(err)}`);
|
|
73
72
|
return 1;
|
|
74
73
|
}
|
|
75
|
-
printClosing(staged, pkgPlan, cwd, sourceRoot);
|
|
74
|
+
printClosing(staged, pkgPlan, cwd, sourceRoot, preset);
|
|
76
75
|
return 0;
|
|
77
76
|
}
|
|
78
77
|
function isValidPreset(value) {
|
|
79
78
|
return VALID_PRESET_SET.has(value);
|
|
80
79
|
}
|
|
80
|
+
function isFloorPreset(preset) {
|
|
81
|
+
return preset === 'recommended' || preset === 'agent-guardrails';
|
|
82
|
+
}
|
|
81
83
|
function stage(cwd, name, content) {
|
|
82
84
|
return { path: path.join(cwd, name), name, content };
|
|
83
85
|
}
|
|
84
86
|
// --- Templates ---------------------------------------------------------------
|
|
85
|
-
function configTemplate(writeBaseline) {
|
|
87
|
+
function configTemplate(tsconfig, writeBaseline) {
|
|
86
88
|
const baselineLine = writeBaseline ? `\n baseline: 'arch-baseline.json',` : '';
|
|
87
89
|
return `import { defineConfig } from '@nielspeter/eess-ts'
|
|
88
90
|
|
|
89
91
|
export default defineConfig({
|
|
90
|
-
// The active tsconfig is set in arch.rules.ts via project('
|
|
92
|
+
// The active tsconfig is set in arch.rules.ts via project('${tsconfig}').
|
|
91
93
|
rules: ['arch.rules.ts'],${baselineLine}
|
|
92
94
|
format: 'auto',
|
|
93
95
|
})
|
|
94
96
|
`;
|
|
95
97
|
}
|
|
96
|
-
/** The source-file glob for the floor rules, sourceRoot-aware. */
|
|
97
|
-
function includeGlob(sourceRoot) {
|
|
98
|
-
return `**/${sourceRoot}/**`;
|
|
99
|
-
}
|
|
100
98
|
function rulesTemplate(preset, tsconfig, sourceRoot) {
|
|
101
|
-
return preset
|
|
102
|
-
?
|
|
103
|
-
:
|
|
99
|
+
return isFloorPreset(preset)
|
|
100
|
+
? floorRulesTemplate(preset, tsconfig, sourceRoot)
|
|
101
|
+
: shapeRulesTemplate(preset, tsconfig, sourceRoot);
|
|
104
102
|
}
|
|
103
|
+
/** The `recommended` include option, sourceRoot-aware (bare when root is `src`). */
|
|
105
104
|
/**
|
|
106
|
-
*
|
|
107
|
-
*
|
|
108
|
-
*
|
|
105
|
+
* **Every scaffolded preset call carries `report: 'builders'`, and must.**
|
|
106
|
+
*
|
|
107
|
+
* A rule FILE spreads its presets into `export default [...]`, so it needs the
|
|
108
|
+
* builders, not the result of running them. Omitting `report` runs the rules and
|
|
109
|
+
* throws during module evaluation — which in a rule file means the spread splats
|
|
110
|
+
* violations into the array, the CLI loads **zero rules**, and `check` reports
|
|
111
|
+
* `0 rules across 1 file` and exits 0.
|
|
112
|
+
*
|
|
113
|
+
* That is the alarm value the summary line exists to surface, produced by the
|
|
114
|
+
* tool's own scaffold. It happened: the preset default was corrected to enforce
|
|
115
|
+
* (PR #72 review) and this template was not updated with it. `tsc --noEmit`
|
|
116
|
+
* passes on the generated file — a spread of the wrong array type is not a type
|
|
117
|
+
* error — so nothing but running it catches this. `init-scaffold-loads-rules.test.ts`
|
|
118
|
+
* runs the generated template through `runCheck` and asserts a non-zero rule
|
|
119
|
+
* count, which is the check that was missing.
|
|
109
120
|
*/
|
|
110
|
-
function
|
|
111
|
-
return
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
// (recommended / agentGuardrails) return violations for a test harness; a CLI
|
|
115
|
-
// rule file is an array of builders, so the rules are inlined below — edit,
|
|
116
|
-
// remove, or add freely. \`eess-ts explain --format agent\` turns the imperative
|
|
117
|
-
// metadata into a rules block for an AI agent's system prompt.
|
|
118
|
-
|
|
119
|
-
const p = project('${tsconfig}')`;
|
|
121
|
+
function recommendedCallFor(sourceRoot) {
|
|
122
|
+
return sourceRoot === 'src'
|
|
123
|
+
? "recommended(p, { report: 'builders' })"
|
|
124
|
+
: `recommended(p, { include: '**/${sourceRoot}/**', report: 'builders' })`;
|
|
120
125
|
}
|
|
121
|
-
function
|
|
122
|
-
const
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
126
|
+
function floorRulesTemplate(preset, tsconfig, sourceRoot) {
|
|
127
|
+
const recommendedCall = recommendedCallFor(sourceRoot);
|
|
128
|
+
const agentCall = `agentGuardrails(p, {
|
|
129
|
+
src: '**/${sourceRoot}/**',
|
|
130
|
+
noGenericErrors: true,
|
|
131
|
+
noStubs: true,
|
|
132
|
+
noEmptyBodies: true,
|
|
133
|
+
noCopyPaste: true,
|
|
134
|
+
report: 'builders',
|
|
135
|
+
})`;
|
|
136
|
+
const presetImport = preset === 'recommended' ? 'recommended' : 'agentGuardrails';
|
|
137
|
+
// Lead with the chosen preset; the other is offered in a comment block.
|
|
138
|
+
const leadBlock = preset === 'recommended'
|
|
139
|
+
? ` // Thin universal safety floor.
|
|
140
|
+
...${recommendedCall},`
|
|
141
|
+
: ` // Guardrails for the mistakes AI coding agents make most.
|
|
142
|
+
...${agentCall},`;
|
|
143
|
+
const alternateBlock = preset === 'recommended'
|
|
144
|
+
? ` // Using an AI coding agent? Add agentGuardrails — it targets the mistakes
|
|
145
|
+
// agents make most (inline logic, generic errors, stubs, empty bodies,
|
|
146
|
+
// copy-paste), and \`npx eess-ts explain --format agent\` emits an
|
|
147
|
+
// imperative rules block for the agent's system prompt.
|
|
148
|
+
// See https://github.com/nielspeter/eess/blob/main/docs/agent-integration.md Then, with
|
|
149
|
+
// { agentGuardrails } imported from '@nielspeter/eess-ts/presets':
|
|
150
|
+
// ...agentGuardrails(p, { src: '**/${sourceRoot}/**', noGenericErrors: true, report: 'builders' })`
|
|
151
|
+
: ` // Thin universal safety floor (eval, Function constructor, silent catches,
|
|
152
|
+
// empty bodies). Import { recommended } from '@nielspeter/eess-ts/presets':
|
|
153
|
+
// ...${recommendedCall},`;
|
|
154
|
+
return `import { project } from '@nielspeter/eess-ts'
|
|
155
|
+
import { ${presetImport} } from '@nielspeter/eess-ts/presets'
|
|
156
|
+
// Uncomment the imports you need for the examples below:
|
|
157
|
+
// import { classes, slices, call } from '@nielspeter/eess-ts'
|
|
127
158
|
|
|
128
|
-
${
|
|
129
|
-
const include = '${include}'
|
|
159
|
+
const p = project('${tsconfig}')
|
|
130
160
|
|
|
131
|
-
//
|
|
161
|
+
// Rules are collected into the default export; \`eess-ts check\` runs them.
|
|
132
162
|
export default [
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
suggestion: 'remove eval(); parse or dispatch explicitly',
|
|
137
|
-
imperative: 'Do NOT call eval()',
|
|
138
|
-
}),
|
|
139
|
-
functions(p).that().resideInFile(include).should().satisfy(functionNoFunctionConstructor()).rule({
|
|
140
|
-
id: 'preset/recommended/no-function-constructor',
|
|
141
|
-
because: 'the Function constructor is eval() in disguise',
|
|
142
|
-
suggestion: 'define the function directly instead of building it from a string',
|
|
143
|
-
imperative: 'Do NOT use the Function constructor',
|
|
144
|
-
}),
|
|
145
|
-
functions(p).that().resideInFile(include).should().satisfy(functionNoSilentCatch()).rule({
|
|
146
|
-
id: 'preset/recommended/no-silent-catch',
|
|
147
|
-
because: 'a silent catch hides failures',
|
|
148
|
-
suggestion: 'handle or rethrow the caught error (reference it in the catch)',
|
|
149
|
-
imperative: 'Do NOT swallow errors in an empty catch',
|
|
150
|
-
}),
|
|
151
|
-
functions(p).that().resideInFile(include).should().satisfy(noEmptyBodies()).rule({
|
|
152
|
-
id: 'preset/recommended/no-empty-bodies',
|
|
153
|
-
because: 'an empty function body is usually an unfinished stub',
|
|
154
|
-
suggestion: 'implement the body or remove the function',
|
|
155
|
-
imperative: 'Do NOT leave a function body empty',
|
|
156
|
-
}),
|
|
163
|
+
${leadBlock}
|
|
164
|
+
|
|
165
|
+
${alternateBlock}
|
|
157
166
|
|
|
158
167
|
// Add project-specific rules below — builders, no .check().
|
|
159
|
-
//
|
|
160
|
-
//
|
|
168
|
+
// (Builders default to error; append .asSeverity('warn') to warn, not fail.)
|
|
169
|
+
// classes(p).that().resideInFolder('**/${sourceRoot}/services/**')
|
|
170
|
+
// .should().notContain(call('parseInt')),
|
|
171
|
+
// slices(p).matching('${sourceRoot}/features/*/').should().beFreeOfCycles(),
|
|
161
172
|
]
|
|
162
173
|
`;
|
|
163
174
|
}
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
175
|
+
/** import name, one-line description, and the fill-in call for a shape preset. */
|
|
176
|
+
function shapePresetSpec(preset, root) {
|
|
177
|
+
switch (preset) {
|
|
178
|
+
case 'layered':
|
|
179
|
+
return {
|
|
180
|
+
importName: 'layeredArchitecture',
|
|
181
|
+
describe: 'Layered architecture: dependencies flow downward, layers stay cycle-free.',
|
|
182
|
+
call: `layeredArchitecture(p, {
|
|
183
|
+
// Example globs — point these at your real layer folders (top to bottom).
|
|
184
|
+
layers: {
|
|
185
|
+
routes: '**/${root}/routes/**',
|
|
186
|
+
services: '**/${root}/services/**',
|
|
187
|
+
repositories: '**/${root}/repositories/**',
|
|
188
|
+
},
|
|
189
|
+
shared: ['**/${root}/shared/**'],
|
|
190
|
+
report: 'builders',
|
|
191
|
+
})`,
|
|
192
|
+
};
|
|
193
|
+
case 'strict-boundaries':
|
|
194
|
+
return {
|
|
195
|
+
importName: 'strictBoundaries',
|
|
196
|
+
describe: 'Feature boundaries: each folder imports only from itself and shared.',
|
|
197
|
+
call: `strictBoundaries(p, {
|
|
198
|
+
// Example glob — point this at your real feature folders.
|
|
199
|
+
folders: '**/${root}/features/*',
|
|
200
|
+
shared: ['**/${root}/shared/**'],
|
|
201
|
+
report: 'builders',
|
|
202
|
+
})`,
|
|
203
|
+
};
|
|
204
|
+
case 'data-layer':
|
|
205
|
+
return {
|
|
206
|
+
importName: 'dataLayerIsolation',
|
|
207
|
+
describe: 'Repository pattern: repositories extend a base class and throw typed errors.',
|
|
208
|
+
call: `dataLayerIsolation(p, {
|
|
209
|
+
// Example values — point at your repository folder and its real base class.
|
|
210
|
+
repositories: '**/${root}/repositories/**',
|
|
211
|
+
baseClass: 'BaseRepository',
|
|
212
|
+
requireTypedErrors: true,
|
|
213
|
+
report: 'builders',
|
|
214
|
+
})`,
|
|
215
|
+
};
|
|
216
|
+
}
|
|
217
|
+
// No default: the switch is exhaustive over ShapePreset. Adding a preset to
|
|
218
|
+
// SHAPE_PRESETS without a case here is a compile error (missing return).
|
|
219
|
+
}
|
|
220
|
+
function shapeRulesTemplate(preset, tsconfig, sourceRoot) {
|
|
221
|
+
const { importName, describe, call } = shapePresetSpec(preset, sourceRoot);
|
|
222
|
+
const recommendedCall = recommendedCallFor(sourceRoot);
|
|
223
|
+
return `import { project } from '@nielspeter/eess-ts'
|
|
224
|
+
import { recommended, ${importName} } from '@nielspeter/eess-ts/presets'
|
|
225
|
+
// Uncomment the imports you need for the examples below:
|
|
226
|
+
// import { classes, slices, call } from '@nielspeter/eess-ts'
|
|
169
227
|
|
|
170
|
-
${
|
|
171
|
-
const include = '${include}'
|
|
228
|
+
const p = project('${tsconfig}')
|
|
172
229
|
|
|
173
|
-
//
|
|
230
|
+
// Rules are collected into the default export; \`eess-ts check\` runs them.
|
|
174
231
|
export default [
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
because: 'stub comments (TODO/FIXME/"not implemented") ship unfinished work',
|
|
184
|
-
suggestion: 'implement the body or remove the stub before committing',
|
|
185
|
-
imperative: 'Do NOT leave stub comments in a function body',
|
|
186
|
-
}),
|
|
187
|
-
functions(p).that().resideInFile(include).should().satisfy(noEmptyBodies()).rule({
|
|
188
|
-
id: 'preset/agent/no-empty-bodies',
|
|
189
|
-
because: 'an empty function body is almost always an unfinished stub',
|
|
190
|
-
suggestion: 'implement the body — every function must have at least one statement',
|
|
191
|
-
imperative: 'Do NOT leave a function body empty',
|
|
192
|
-
}),
|
|
193
|
-
smells.duplicateBodies(p).withMinSimilarity(0.9).rule({
|
|
194
|
-
id: 'preset/agent/no-copy-paste',
|
|
195
|
-
because: 'near-identical bodies are copy-paste instead of reuse',
|
|
196
|
-
suggestion: 'extract the shared logic into one function',
|
|
197
|
-
imperative: 'Do NOT duplicate a function body — extract the shared logic',
|
|
198
|
-
}),
|
|
232
|
+
// The recommended safety floor ships alongside the shape rules below.
|
|
233
|
+
...${recommendedCall},
|
|
234
|
+
|
|
235
|
+
// ${describe}
|
|
236
|
+
// IMPORTANT: the globs below are examples. A glob that matches no files
|
|
237
|
+
// enforces NOTHING (a green run that checks nothing). Point them at your
|
|
238
|
+
// real folders before you trust the result.
|
|
239
|
+
...${call},
|
|
199
240
|
|
|
200
|
-
//
|
|
201
|
-
//
|
|
202
|
-
//
|
|
241
|
+
// Add project-specific rules below — builders, no .check().
|
|
242
|
+
// (Builders default to error; append .asSeverity('warn') to warn, not fail.)
|
|
243
|
+
// classes(p).that().resideInFolder('**/${sourceRoot}/services/**')
|
|
244
|
+
// .should().notContain(call('parseInt')),
|
|
203
245
|
]
|
|
204
246
|
`;
|
|
205
247
|
}
|
|
@@ -236,24 +278,10 @@ function detectSourceRoot(cwd, tsconfig) {
|
|
|
236
278
|
}
|
|
237
279
|
return 'src';
|
|
238
280
|
}
|
|
239
|
-
/**
|
|
240
|
-
* The first path segment of a glob, if it is a plausible literal source
|
|
241
|
-
* directory. Rejects wildcards, `.`/`..`, and file-like segments (a dotted
|
|
242
|
-
* extension, e.g. `vite.config.ts`) — a common `include` lists config files
|
|
243
|
-
* before the source glob (`["vite.config.ts", "src/**\/*.ts"]`), and picking
|
|
244
|
-
* the file would scaffold a glob that matches nothing (a silently vacuous rule
|
|
245
|
-
* set — exactly what eess exists to prevent). Callers keep scanning past an
|
|
246
|
-
* `undefined` to the next entry.
|
|
247
|
-
*/
|
|
281
|
+
/** The first path segment of a glob, if it is a literal directory (no wildcard). */
|
|
248
282
|
function leadingDir(glob) {
|
|
249
283
|
const first = glob.replace(/^\.\//, '').split('/')[0];
|
|
250
|
-
if (first === undefined ||
|
|
251
|
-
first === '' ||
|
|
252
|
-
first === '.' ||
|
|
253
|
-
first === '..' ||
|
|
254
|
-
first.includes('*') ||
|
|
255
|
-
/\.[a-z0-9]+$/i.test(first) // looks like a file (has an extension), not a dir
|
|
256
|
-
) {
|
|
284
|
+
if (first === undefined || first === '' || first === '.' || first.includes('*')) {
|
|
257
285
|
return undefined;
|
|
258
286
|
}
|
|
259
287
|
return first;
|
|
@@ -293,11 +321,12 @@ function planPackageJson(cwd) {
|
|
|
293
321
|
try {
|
|
294
322
|
parsed = JSON.parse(raw);
|
|
295
323
|
}
|
|
296
|
-
catch (
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
324
|
+
catch (error) {
|
|
325
|
+
return {
|
|
326
|
+
action: 'skip',
|
|
327
|
+
reason: 'package.json is not valid JSON — skipped script entry ' +
|
|
328
|
+
`(${error instanceof Error ? error.message : String(error)})`,
|
|
329
|
+
};
|
|
301
330
|
}
|
|
302
331
|
if (!isRecord(parsed)) {
|
|
303
332
|
return { action: 'skip', reason: 'package.json is not an object — skipped script entry' };
|
|
@@ -320,15 +349,8 @@ function planPackageJson(cwd) {
|
|
|
320
349
|
content += eol;
|
|
321
350
|
return { action: 'write', path: pkgPath, content };
|
|
322
351
|
}
|
|
323
|
-
/**
|
|
324
|
-
* Detect the indentation (a tab or N spaces) of an existing JSON file. A
|
|
325
|
-
* minified single-line file (no newline) returns `''` so it stays compact
|
|
326
|
-
* rather than being re-expanded to 2-space — keeping the write to the two added
|
|
327
|
-
* scripts. Multi-line files default to 2 spaces when no indent is detected.
|
|
328
|
-
*/
|
|
352
|
+
/** Detect the indentation (a tab or N spaces) of an existing JSON file; default 2 spaces. */
|
|
329
353
|
function detectIndent(raw) {
|
|
330
|
-
if (!raw.includes('\n'))
|
|
331
|
-
return '';
|
|
332
354
|
const match = raw.match(/\n(\t+|[ ]+)"/);
|
|
333
355
|
return match?.[1] ?? ' ';
|
|
334
356
|
}
|
|
@@ -350,7 +372,7 @@ function printDryRun(staged, pkg, cwd, sourceRoot) {
|
|
|
350
372
|
`build, warnings don't. Run \`eess-ts baseline\` before gating CI on \`arch\`.\n`);
|
|
351
373
|
}
|
|
352
374
|
}
|
|
353
|
-
function printClosing(staged, pkg, cwd, sourceRoot) {
|
|
375
|
+
function printClosing(staged, pkg, cwd, sourceRoot, preset) {
|
|
354
376
|
const scriptsAdded = pkg.action === 'write';
|
|
355
377
|
const runCmd = scriptsAdded ? 'npm run arch' : 'npx eess-ts check';
|
|
356
378
|
const baselineCmd = scriptsAdded ? 'npm run arch:baseline' : 'npx eess-ts baseline';
|
|
@@ -358,9 +380,15 @@ function printClosing(staged, pkg, cwd, sourceRoot) {
|
|
|
358
380
|
if (!scriptsAdded && pkg.action === 'skip') {
|
|
359
381
|
process.stdout.write(`Note: package.json script entry skipped — ${pkg.reason}.\n`);
|
|
360
382
|
}
|
|
383
|
+
if (!isFloorPreset(preset)) {
|
|
384
|
+
process.stdout.write(`\n⚠ arch.rules.ts contains EXAMPLE folder globs for the '${preset}' preset. ` +
|
|
385
|
+
`Edit them to your real folders before trusting a green run — a glob that ` +
|
|
386
|
+
`matches no files enforces nothing.\n`);
|
|
387
|
+
}
|
|
361
388
|
if (hasSource(cwd, sourceRoot)) {
|
|
362
389
|
process.stdout.write(`\nThis codebase already has source under ${sourceRoot}/. Errors fail the build; ` +
|
|
363
|
-
`warnings are advisory and never fail CI
|
|
390
|
+
`warnings are advisory and never fail CI, except a finding that a rule\n` +
|
|
391
|
+
`enforces nothing.\n` +
|
|
364
392
|
`To accept current violations as tracked legacy debt before gating CI, run ` +
|
|
365
393
|
`\`${baselineCmd}\` and commit the result, then: \`${runCmd}\`.\n`);
|
|
366
394
|
}
|
|
@@ -381,7 +409,4 @@ function hasSource(cwd, sourceRoot) {
|
|
|
381
409
|
return false;
|
|
382
410
|
}
|
|
383
411
|
}
|
|
384
|
-
function isRecord(value) {
|
|
385
|
-
return value !== null && typeof value === 'object' && !Array.isArray(value);
|
|
386
|
-
}
|
|
387
412
|
//# sourceMappingURL=init.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../../src/cli/commands/init.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,SAAS,CAAA;AACxB,OAAO,IAAI,MAAM,WAAW,CAAA;AAE5B;;;;;;GAMG;AACH,MAAM,aAAa,GAAG,CAAC,aAAa,EAAE,kBAAkB,CAAU,CAAA;AAClE,MAAM,aAAa,GAAG,CAAC,GAAG,aAAa,CAAU,CAAA;AAIjD,MAAM,gBAAgB,GAAwB,IAAI,GAAG,CAAC,aAAa,CAAC,CAAA;AA0BpE;;;;;;GAMG;AACH,MAAM,UAAU,OAAO,CAAC,IAAc;IACpC,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,EAAE,CAAA;IACrC,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,IAAI,eAAe,CAAA;IAEjD,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,IAAI,aAAa,CAAA;IAC3C,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,EAAE,CAAC;QAC3B,OAAO,CAAC,KAAK,CACX,4BAA4B,MAAM,qBAAqB,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CACnF,CAAA;QACD,OAAO,CAAC,CAAA;IACV,CAAC;IAED,mEAAmE;IACnE,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC,EAAE,CAAC;QAC7C,OAAO,CAAC,KAAK,CACX,0BAA0B,QAAQ,wDAAwD,CAC3F,CAAA;QACD,OAAO,CAAC,CAAA;IACV,CAAC;IAED,MAAM,UAAU,GAAG,gBAAgB,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAA;IAClD,MAAM,aAAa,GAAG,IAAI,CAAC,UAAU,KAAK,IAAI,CAAA;IAE9C,uDAAuD;IACvD,MAAM,MAAM,GAAiB;QAC3B,KAAK,CAAC,GAAG,EAAE,mBAAmB,EAAE,cAAc,CAAC,aAAa,CAAC,CAAC;QAC9D,KAAK,CAAC,GAAG,EAAE,eAAe,EAAE,aAAa,CAAC,MAAM,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC;KACzE,CAAA;IACD,IAAI,aAAa,EAAE,CAAC;QAClB,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,CAAC,CAAC,CAAA;IACnE,CAAC;IAED,iFAAiF;IACjF,MAAM,OAAO,GAAG,eAAe,CAAC,GAAG,CAAC,CAAA;IAEpC,yEAAyE;IACzE,IAAI,IAAI,CAAC,MAAM,KAAK,IAAI,EAAE,CAAC;QACzB,WAAW,CAAC,MAAM,EAAE,OAAO,EAAE,GAAG,EAAE,UAAU,CAAC,CAAA;QAC7C,OAAO,CAAC,CAAA;IACV,CAAC;IAED,yCAAyC;IACzC,IAAI,IAAI,CAAC,KAAK,KAAK,IAAI,EAAE,CAAC;QACxB,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAA;QAChF,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACzB,OAAO,CAAC,KAAK,CACX,kDAAkD,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK;gBACzE,2DAA2D,CAC9D,CAAA;YACD,OAAO,CAAC,CAAA;QACV,CAAC;IACH,CAAC;IAED,4EAA4E;IAC5E,4EAA4E;IAC5E,8EAA8E;IAC9E,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAA;IAClD,IAAI,CAAC;QACH,KAAK,MAAM,IAAI,IAAI,MAAM,EAAE,CAAC;YAC1B,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,OAAO,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAA;QAChE,CAAC;QACD,IAAI,OAAO,CAAC,MAAM,KAAK,OAAO,EAAE,CAAC;YAC/B,EAAE,CAAC,aAAa,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,OAAO,CAAC,CAAA;QACjD,CAAC;IACH,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,CAAC,KAAK,CACX,kCAAkC,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CACrF,CAAA;QACD,OAAO,CAAC,CAAA;IACV,CAAC;IAED,YAAY,CAAC,MAAM,EAAE,OAAO,EAAE,GAAG,EAAE,UAAU,CAAC,CAAA;IAC9C,OAAO,CAAC,CAAA;AACV,CAAC;AAED,SAAS,aAAa,CAAC,KAAa;IAClC,OAAO,gBAAgB,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;AACpC,CAAC;AAED,SAAS,KAAK,CAAC,GAAW,EAAE,IAAY,EAAE,OAAe;IACvD,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAA;AACtD,CAAC;AAED,gFAAgF;AAEhF,SAAS,cAAc,CAAC,aAAsB;IAC5C,MAAM,YAAY,GAAG,aAAa,CAAC,CAAC,CAAC,qCAAqC,CAAC,CAAC,CAAC,EAAE,CAAA;IAC/E,OAAO;;;;6BAIoB,YAAY;;;CAGxC,CAAA;AACD,CAAC;AAED,kEAAkE;AAClE,SAAS,WAAW,CAAC,UAAkB;IACrC,OAAO,MAAM,UAAU,KAAK,CAAA;AAC9B,CAAC;AAED,SAAS,aAAa,CAAC,MAAkB,EAAE,QAAgB,EAAE,UAAkB;IAC7E,OAAO,MAAM,KAAK,aAAa;QAC7B,CAAC,CAAC,wBAAwB,CAAC,QAAQ,EAAE,UAAU,CAAC;QAChD,CAAC,CAAC,4BAA4B,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAA;AACxD,CAAC;AAED;;;;GAIG;AACH,SAAS,WAAW,CAAC,QAAgB;IACnC,OAAO;;;;;;;;qBAQY,QAAQ,IAAI,CAAA;AACjC,CAAC;AAED,SAAS,wBAAwB,CAAC,QAAgB,EAAE,UAAkB;IACpE,MAAM,OAAO,GAAG,WAAW,CAAC,UAAU,CAAC,CAAA;IACvC,OAAO;;;;;EAKP,WAAW,CAAC,QAAQ,CAAC;mBACJ,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2CA8BiB,UAAU;oCACjB,UAAU;;CAE7C,CAAA;AACD,CAAC;AAED,SAAS,4BAA4B,CAAC,QAAgB,EAAE,UAAkB;IACxE,MAAM,OAAO,GAAG,WAAW,CAAC,UAAU,CAAC,CAAA;IACvC,OAAO;;;;EAIP,WAAW,CAAC,QAAQ,CAAC;mBACJ,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAiCzB,CAAA;AACD,CAAC;AAED,SAAS,gBAAgB;IACvB,4EAA4E;IAC5E,wEAAwE;IACxE,OAAO,IAAI,CAAC,SAAS,CAAC,EAAE,WAAW,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE,UAAU,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,CAAA;AACxF,CAAC;AAED,gFAAgF;AAEhF;;;;GAIG;AACH,SAAS,gBAAgB,CAAC,GAAW,EAAE,QAAgB;IACrD,MAAM,MAAM,GAAG,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC,CAAA;IAClD,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;QAAE,OAAO,KAAK,CAAA;IAEnC,MAAM,OAAO,GAAG,MAAM,CAAC,SAAS,CAAC,CAAA;IACjC,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;QAC3B,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;YAC5B,IAAI,OAAO,KAAK,KAAK,QAAQ;gBAAE,SAAQ;YACvC,MAAM,IAAI,GAAG,UAAU,CAAC,KAAK,CAAC,CAAA;YAC9B,IAAI,IAAI,KAAK,SAAS;gBAAE,OAAO,IAAI,CAAA;QACrC,CAAC;IACH,CAAC;IAED,MAAM,eAAe,GAAG,MAAM,CAAC,iBAAiB,CAAC,CAAA;IACjD,IAAI,QAAQ,CAAC,eAAe,CAAC,IAAI,OAAO,eAAe,CAAC,SAAS,CAAC,KAAK,QAAQ,EAAE,CAAC;QAChF,MAAM,IAAI,GAAG,UAAU,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC,CAAA;QACnD,IAAI,IAAI,KAAK,SAAS;YAAE,OAAO,IAAI,CAAA;IACrC,CAAC;IAED,OAAO,KAAK,CAAA;AACd,CAAC;AAED;;;;;;;;GAQG;AACH,SAAS,UAAU,CAAC,IAAY;IAC9B,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA;IACrD,IACE,KAAK,KAAK,SAAS;QACnB,KAAK,KAAK,EAAE;QACZ,KAAK,KAAK,GAAG;QACb,KAAK,KAAK,IAAI;QACd,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC;QACnB,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,kDAAkD;MAC9E,CAAC;QACD,OAAO,SAAS,CAAA;IAClB,CAAC;IACD,OAAO,KAAK,CAAA;AACd,CAAC;AAED,SAAS,SAAS,CAAC,QAAgB;IACjC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC;QAAE,OAAO,SAAS,CAAA;IAC9C,MAAM,GAAG,GAAG,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAA;IAC9C,6EAA6E;IAC7E,MAAM,QAAQ,GAAG,GAAG;SACjB,OAAO,CAAC,mBAAmB,EAAE,EAAE,CAAC;SAChC,OAAO,CAAC,mBAAmB,EAAE,IAAI,CAAC;SAClC,OAAO,CAAC,cAAc,EAAE,IAAI,CAAC,CAAA;IAChC,IAAI,CAAC;QACH,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAA;IAC7B,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,yEAAyE;QACzE,4EAA4E;QAC5E,KAAK,GAAG,CAAA;QACR,OAAO,SAAS,CAAA;IAClB,CAAC;AACH,CAAC;AAQD;;;;;GAKG;AACH,SAAS,eAAe,CAAC,GAAW;IAClC,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,cAAc,CAAC,CAAA;IAC9C,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;QAC5B,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,oDAAoD,EAAE,CAAA;IACzF,CAAC;IAED,MAAM,GAAG,GAAG,EAAE,CAAC,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;IAC7C,IAAI,MAAe,CAAA;IACnB,IAAI,CAAC;QACH,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;IAC1B,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,2EAA2E;QAC3E,qEAAqE;QACrE,KAAK,GAAG,CAAA;QACR,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,uDAAuD,EAAE,CAAA;IAC5F,CAAC;IACD,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;QACtB,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,sDAAsD,EAAE,CAAA;IAC3F,CAAC;IAED,MAAM,eAAe,GAAG,MAAM,CAAC,SAAS,CAAC,CAAA;IACzC,MAAM,OAAO,GAA4B,QAAQ,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,eAAe,EAAE,CAAC,CAAC,CAAC,EAAE,CAAA;IAChG,IAAI,OAAO,CAAC,MAAM,CAAC,KAAK,SAAS,IAAI,OAAO,CAAC,eAAe,CAAC,KAAK,SAAS,EAAE,CAAC;QAC5E,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,oDAAoD,EAAE,CAAA;IACzF,CAAC;IAED,OAAO,CAAC,MAAM,CAAC,GAAG,eAAe,CAAA;IACjC,OAAO,CAAC,eAAe,CAAC,GAAG,kBAAkB,CAAA;IAC7C,MAAM,CAAC,SAAS,CAAC,GAAG,OAAO,CAAA;IAE3B,MAAM,MAAM,GAAG,YAAY,CAAC,GAAG,CAAC,CAAA;IAChC,MAAM,GAAG,GAAG,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAA;IAChD,MAAM,eAAe,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;IACvC,IAAI,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,CAAA;IAClD,IAAI,GAAG,KAAK,MAAM;QAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,CAAA;IAC5D,IAAI,eAAe;QAAE,OAAO,IAAI,GAAG,CAAA;IAEnC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,CAAA;AACpD,CAAC;AAED;;;;;GAKG;AACH,SAAS,YAAY,CAAC,GAAW;IAC/B,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC;QAAE,OAAO,EAAE,CAAA;IAClC,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,eAAe,CAAC,CAAA;IACxC,OAAO,KAAK,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,CAAA;AAC3B,CAAC;AAED,gFAAgF;AAEhF,SAAS,WAAW,CAClB,MAAoB,EACpB,GAAoB,EACpB,GAAW,EACX,UAAkB;IAElB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,2BAA2B,CAAC,CAAA;IACjD,KAAK,MAAM,IAAI,IAAI,MAAM,EAAE,CAAC;QAC1B,MAAM,MAAM,GAAG,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,2BAA2B,CAAC,CAAC,CAAC,EAAE,CAAA;QAC1E,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,IAAI,CAAC,IAAI,GAAG,MAAM,IAAI,CAAC,CAAA;IACnD,CAAC;IACD,IAAI,GAAG,CAAC,MAAM,KAAK,OAAO,EAAE,CAAC;QAC3B,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,yDAAyD,CAAC,CAAA;IACjF,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,0CAA0C,GAAG,CAAC,MAAM,KAAK,CAAC,CAAA;IACjF,CAAC;IACD,IAAI,SAAS,CAAC,GAAG,EAAE,UAAU,CAAC,EAAE,CAAC;QAC/B,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,kDAAkD,UAAU,sBAAsB;YAChF,iFAAiF,CACpF,CAAA;IACH,CAAC;AACH,CAAC;AAED,SAAS,YAAY,CACnB,MAAoB,EACpB,GAAoB,EACpB,GAAW,EACX,UAAkB;IAElB,MAAM,YAAY,GAAG,GAAG,CAAC,MAAM,KAAK,OAAO,CAAA;IAC3C,MAAM,MAAM,GAAG,YAAY,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,mBAAmB,CAAA;IAClE,MAAM,WAAW,GAAG,YAAY,CAAC,CAAC,CAAC,uBAAuB,CAAC,CAAC,CAAC,sBAAsB,CAAA;IAEnF,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,WAAW,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,CAAA;IACnE,IAAI,CAAC,YAAY,IAAI,GAAG,CAAC,MAAM,KAAK,MAAM,EAAE,CAAC;QAC3C,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,6CAA6C,GAAG,CAAC,MAAM,KAAK,CAAC,CAAA;IACpF,CAAC;IAED,IAAI,SAAS,CAAC,GAAG,EAAE,UAAU,CAAC,EAAE,CAAC;QAC/B,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,4CAA4C,UAAU,4BAA4B;YAChF,4CAA4C;YAC5C,4EAA4E;YAC5E,KAAK,WAAW,qCAAqC,MAAM,OAAO,CACrE,CAAA;IACH,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,aAAa,MAAM,OAAO,CAAC,CAAA;IAClD,CAAC;AACH,CAAC;AAED,2EAA2E;AAC3E,SAAS,SAAS,CAAC,GAAW,EAAE,UAAkB;IAChD,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,UAAU,CAAC,CAAA;IACtC,IAAI,CAAC;QACH,OAAO,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE,IAAI,EAAE,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,MAAM,GAAG,CAAC,CAAA;IACzE,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,0EAA0E;QAC1E,yDAAyD;QACzD,KAAK,GAAG,CAAA;QACR,OAAO,KAAK,CAAA;IACd,CAAC;AACH,CAAC;AAED,SAAS,QAAQ,CAAC,KAAc;IAC9B,OAAO,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;AAC7E,CAAC"}
|
|
1
|
+
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../../src/cli/commands/init.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Load a rule file or config module — natively when Node can, via jiti when it cannot.
|
|
3
|
+
*
|
|
4
|
+
* **Native first, and that ordering is the whole design.** A rule file loaded
|
|
5
|
+
* through jiti gets jiti's own module registry, so the copy of eess-ts it imports
|
|
6
|
+
* is a DIFFERENT instance from the CLI's. Two things break silently when that
|
|
7
|
+
* happens, both measured (plan 0165):
|
|
8
|
+
*
|
|
9
|
+
* - `instanceof ArchRuleError` is false for an error that is one, so
|
|
10
|
+
* `check.ts` skipped `ruleFileTruncated()` and a truncated run said nothing
|
|
11
|
+
* about the rules that never ran — bug 0029 reopened by the loader.
|
|
12
|
+
* (`isArchRuleError` in `core/errors.ts` fixes that half structurally, and it
|
|
13
|
+
* is worth keeping regardless: a consumer with two copies of eess-ts on disk
|
|
14
|
+
* hits it with no jiti involved.)
|
|
15
|
+
* - `execute-rule.ts`'s module-level `callerAggregatesReports` flag is set on
|
|
16
|
+
* the CLI's copy and read on the rule file's, so every configuration finding
|
|
17
|
+
* was written twice — once by the rule file and once by the CLI re-reporting
|
|
18
|
+
* the thrown error. That half CANNOT be fixed structurally: module state has
|
|
19
|
+
* no cross-registry identity to compare.
|
|
20
|
+
*
|
|
21
|
+
* So jiti is the fallback, not the default, and it is entered on exactly one
|
|
22
|
+
* condition: Node refused the file because the CONSUMER project is
|
|
23
|
+
* `"type": "commonjs"` and the file uses ESM syntax — bug 0074, what
|
|
24
|
+
* `npm init -y` writes. Everything else rethrows, including an `ArchRuleError`
|
|
25
|
+
* thrown by a self-executing rule file, which must never be retried (a second
|
|
26
|
+
* execution would print its findings twice).
|
|
27
|
+
*/
|
|
28
|
+
export declare function importRuleModule(file: string, fresh: boolean): Promise<unknown>;
|
|
29
|
+
//# sourceMappingURL=import-rule-module.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"import-rule-module.d.ts","sourceRoot":"","sources":["../../src/cli/import-rule-module.ts"],"names":[],"mappings":"AAIA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,wBAAsB,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAarF"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { createJiti } from 'jiti';
|
|
2
|
+
import { importFresh } from './watch.js';
|
|
3
|
+
import { isModuleFormatRefusal } from '@nielspeter/eess/internal';
|
|
4
|
+
/**
|
|
5
|
+
* Load a rule file or config module — natively when Node can, via jiti when it cannot.
|
|
6
|
+
*
|
|
7
|
+
* **Native first, and that ordering is the whole design.** A rule file loaded
|
|
8
|
+
* through jiti gets jiti's own module registry, so the copy of eess-ts it imports
|
|
9
|
+
* is a DIFFERENT instance from the CLI's. Two things break silently when that
|
|
10
|
+
* happens, both measured (plan 0165):
|
|
11
|
+
*
|
|
12
|
+
* - `instanceof ArchRuleError` is false for an error that is one, so
|
|
13
|
+
* `check.ts` skipped `ruleFileTruncated()` and a truncated run said nothing
|
|
14
|
+
* about the rules that never ran — bug 0029 reopened by the loader.
|
|
15
|
+
* (`isArchRuleError` in `core/errors.ts` fixes that half structurally, and it
|
|
16
|
+
* is worth keeping regardless: a consumer with two copies of eess-ts on disk
|
|
17
|
+
* hits it with no jiti involved.)
|
|
18
|
+
* - `execute-rule.ts`'s module-level `callerAggregatesReports` flag is set on
|
|
19
|
+
* the CLI's copy and read on the rule file's, so every configuration finding
|
|
20
|
+
* was written twice — once by the rule file and once by the CLI re-reporting
|
|
21
|
+
* the thrown error. That half CANNOT be fixed structurally: module state has
|
|
22
|
+
* no cross-registry identity to compare.
|
|
23
|
+
*
|
|
24
|
+
* So jiti is the fallback, not the default, and it is entered on exactly one
|
|
25
|
+
* condition: Node refused the file because the CONSUMER project is
|
|
26
|
+
* `"type": "commonjs"` and the file uses ESM syntax — bug 0074, what
|
|
27
|
+
* `npm init -y` writes. Everything else rethrows, including an `ArchRuleError`
|
|
28
|
+
* thrown by a self-executing rule file, which must never be retried (a second
|
|
29
|
+
* execution would print its findings twice).
|
|
30
|
+
*/
|
|
31
|
+
export async function importRuleModule(file, fresh) {
|
|
32
|
+
try {
|
|
33
|
+
return fresh ? await importFresh(file) : await import(file);
|
|
34
|
+
}
|
|
35
|
+
catch (error) {
|
|
36
|
+
if (!isModuleFormatRefusal(error))
|
|
37
|
+
throw error;
|
|
38
|
+
// jiti transpiles to CJS, so the host's `"type": "commonjs"` stops mattering.
|
|
39
|
+
// `fsCache`/`moduleCache` off when fresh, for the same reason `importFresh`
|
|
40
|
+
// exists: watch mode must re-execute an edited file.
|
|
41
|
+
const jiti = fresh
|
|
42
|
+
? createJiti(import.meta.url, { fsCache: false, moduleCache: false })
|
|
43
|
+
: createJiti(import.meta.url);
|
|
44
|
+
return jiti.import(file);
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
//# sourceMappingURL=import-rule-module.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"import-rule-module.js","sourceRoot":"","sources":["../../src/cli/import-rule-module.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,MAAM,CAAA;AACjC,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AACxC,OAAO,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAA;AAEjE;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,IAAY,EAAE,KAAc;IACjE,IAAI,CAAC;QACH,OAAO,KAAK,CAAC,CAAC,CAAC,MAAM,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,MAAM,CAAC,IAAI,CAAC,CAAA;IAC7D,CAAC;IAAC,OAAO,KAAc,EAAE,CAAC;QACxB,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC;YAAE,MAAM,KAAK,CAAA;QAC9C,8EAA8E;QAC9E,4EAA4E;QAC5E,qDAAqD;QACrD,MAAM,IAAI,GAAG,KAAK;YAChB,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE,CAAC;YACrE,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;QAC/B,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;IAC1B,CAAC;AACH,CAAC"}
|
package/dist/cli/index.d.ts
CHANGED
|
@@ -10,13 +10,13 @@ interface ParsedArgs {
|
|
|
10
10
|
version?: boolean;
|
|
11
11
|
watch?: boolean;
|
|
12
12
|
markdown?: boolean;
|
|
13
|
-
fix?: boolean;
|
|
14
|
-
apply?: boolean;
|
|
15
13
|
preset?: string;
|
|
16
14
|
tsconfig?: string;
|
|
17
15
|
force?: boolean;
|
|
18
16
|
'dry-run'?: boolean;
|
|
19
17
|
'no-baseline'?: boolean;
|
|
18
|
+
fix?: boolean;
|
|
19
|
+
apply?: boolean;
|
|
20
20
|
};
|
|
21
21
|
positionals: string[];
|
|
22
22
|
}
|
package/dist/cli/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"AA2DA,UAAU,UAAU;IAClB,MAAM,EAAE;QACN,QAAQ,CAAC,EAAE,MAAM,CAAA;QACjB,MAAM,CAAC,EAAE,MAAM,CAAA;QACf,OAAO,CAAC,EAAE,OAAO,CAAA;QACjB,IAAI,CAAC,EAAE,MAAM,CAAA;QACb,MAAM,CAAC,EAAE,MAAM,CAAA;QACf,MAAM,CAAC,EAAE,MAAM,CAAA;QACf,IAAI,CAAC,EAAE,OAAO,CAAA;QACd,OAAO,CAAC,EAAE,OAAO,CAAA;QACjB,KAAK,CAAC,EAAE,OAAO,CAAA;QACf,QAAQ,CAAC,EAAE,OAAO,CAAA;QAClB,MAAM,CAAC,EAAE,MAAM,CAAA;QACf,QAAQ,CAAC,EAAE,MAAM,CAAA;QACjB,KAAK,CAAC,EAAE,OAAO,CAAA;QACf,SAAS,CAAC,EAAE,OAAO,CAAA;QACnB,aAAa,CAAC,EAAE,OAAO,CAAA;QACvB,GAAG,CAAC,EAAE,OAAO,CAAA;QACb,KAAK,CAAC,EAAE,OAAO,CAAA;KAChB,CAAA;IACD,WAAW,EAAE,MAAM,EAAE,CAAA;CACtB;AAGD,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,UAAU,CAyBvD;AA6FD,wBAAsB,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAmGvD"}
|