laymos 0.0.1 → 0.0.2
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 +137 -710
- package/bin/laymos.mjs +2 -0
- package/dist/architecture/analyze-project/analyze-project.d.ts +9 -0
- package/dist/architecture/analyze-project/analyze-project.d.ts.map +1 -0
- package/dist/architecture/analyze-project/analyze-project.js +47 -0
- package/dist/architecture/analyze-project/index.d.ts +3 -0
- package/dist/architecture/analyze-project/index.d.ts.map +1 -0
- package/dist/architecture/analyze-project/index.js +1 -0
- package/dist/architecture/build-report/build-report.d.ts +7 -0
- package/dist/architecture/build-report/build-report.d.ts.map +1 -0
- package/dist/{engine/4-emit/emit.js → architecture/build-report/build-report.js} +12 -9
- package/dist/architecture/build-report/index.d.ts +2 -0
- package/dist/architecture/build-report/index.d.ts.map +1 -0
- package/dist/architecture/build-report/index.js +1 -0
- package/dist/architecture/errors.d.ts +11 -0
- package/dist/architecture/errors.d.ts.map +1 -0
- package/dist/{engine → architecture}/errors.js +0 -2
- package/dist/{engine/1-extract/extract.d.ts → architecture/extract-dependencies/extract-dependencies.d.ts} +1 -1
- package/dist/architecture/extract-dependencies/extract-dependencies.d.ts.map +1 -0
- package/dist/{engine/1-extract/extract.js → architecture/extract-dependencies/extract-dependencies.js} +13 -11
- package/dist/architecture/extract-dependencies/index.d.ts +3 -0
- package/dist/architecture/extract-dependencies/index.d.ts.map +1 -0
- package/dist/architecture/extract-dependencies/index.js +1 -0
- package/dist/architecture/resolve-architecture/index.d.ts +3 -0
- package/dist/architecture/resolve-architecture/index.d.ts.map +1 -0
- package/dist/architecture/resolve-architecture/index.js +1 -0
- package/dist/{engine/2-resolve/resolve.d.ts → architecture/resolve-architecture/resolve-architecture.d.ts} +2 -2
- package/dist/architecture/resolve-architecture/resolve-architecture.d.ts.map +1 -0
- package/dist/{engine/2-resolve/resolve.js → architecture/resolve-architecture/resolve-architecture.js} +1 -1
- package/dist/architecture/validate-rules/index.d.ts +3 -0
- package/dist/architecture/validate-rules/index.d.ts.map +1 -0
- package/dist/architecture/validate-rules/index.js +1 -0
- package/dist/{engine/3-evaluate/evaluate.d.ts → architecture/validate-rules/validate-rules.d.ts} +4 -4
- package/dist/architecture/validate-rules/validate-rules.d.ts.map +1 -0
- package/dist/{engine/3-evaluate/evaluate.js → architecture/validate-rules/validate-rules.js} +2 -2
- package/dist/architecture-analysis-schema/architecture-analysis-schema.d.ts +109 -0
- package/dist/architecture-analysis-schema/architecture-analysis-schema.d.ts.map +1 -0
- package/dist/architecture-analysis-schema/architecture-analysis-schema.js +10 -0
- package/dist/architecture-analysis-schema/index.d.ts +7 -0
- package/dist/architecture-analysis-schema/index.d.ts.map +1 -0
- package/dist/architecture-analysis-schema/index.js +3 -0
- package/dist/architecture-analysis-schema/layer-analysis-schema.d.ts +27 -0
- package/dist/architecture-analysis-schema/layer-analysis-schema.d.ts.map +1 -0
- package/dist/architecture-analysis-schema/layer-analysis-schema.js +18 -0
- package/dist/architecture-analysis-schema/module-analysis-schema.d.ts +150 -0
- package/dist/architecture-analysis-schema/module-analysis-schema.d.ts.map +1 -0
- package/dist/architecture-analysis-schema/module-analysis-schema.js +96 -0
- package/dist/architecture-analysis-schema/module-source-schema.d.ts +16 -0
- package/dist/architecture-analysis-schema/module-source-schema.d.ts.map +1 -0
- package/dist/architecture-analysis-schema/module-source-schema.js +10 -0
- package/dist/architecture-analysis-schema/project-config-schema.d.ts +51 -0
- package/dist/architecture-analysis-schema/project-config-schema.d.ts.map +1 -0
- package/dist/architecture-analysis-schema/project-config-schema.js +110 -0
- package/dist/change-set-schema/change-set-schema.d.ts +55 -0
- package/dist/change-set-schema/change-set-schema.d.ts.map +1 -0
- package/dist/change-set-schema/change-set-schema.js +43 -0
- package/dist/change-set-schema/index.d.ts +3 -0
- package/dist/change-set-schema/index.d.ts.map +1 -0
- package/dist/change-set-schema/index.js +2 -0
- package/dist/cli/cli.js +6 -1
- package/dist/cli/deps/dependency-tree.d.ts +3 -0
- package/dist/cli/deps/dependency-tree.d.ts.map +1 -0
- package/dist/cli/deps/dependency-tree.js +39 -0
- package/dist/cli/deps/deps.d.ts +7 -0
- package/dist/cli/deps/deps.d.ts.map +1 -0
- package/dist/cli/deps/deps.js +26 -0
- package/dist/cli/deps/index.d.ts +2 -0
- package/dist/cli/deps/index.d.ts.map +1 -0
- package/dist/cli/deps/index.js +2 -0
- package/dist/cli/errors.d.ts +2 -0
- package/dist/cli/errors.d.ts.map +1 -0
- package/dist/cli/errors.js +34 -0
- package/dist/cli/inspect/file/file.d.ts +8 -0
- package/dist/cli/inspect/file/file.d.ts.map +1 -0
- package/dist/cli/inspect/file/file.js +16 -0
- package/dist/cli/inspect/file/index.d.ts +2 -0
- package/dist/cli/inspect/file/index.d.ts.map +1 -0
- package/dist/cli/inspect/file/index.js +1 -0
- package/dist/cli/inspect/file/report.d.ts +3 -0
- package/dist/cli/inspect/file/report.d.ts.map +1 -0
- package/dist/cli/inspect/file/report.js +26 -0
- package/dist/cli/inspect/index.d.ts +2 -0
- package/dist/cli/inspect/index.d.ts.map +1 -0
- package/dist/cli/inspect/index.js +1 -0
- package/dist/cli/inspect/inspect.d.ts +4 -0
- package/dist/cli/inspect/inspect.d.ts.map +1 -0
- package/dist/cli/inspect/inspect.js +14 -0
- package/dist/cli/inspect/json.d.ts +4 -0
- package/dist/cli/inspect/json.d.ts.map +1 -0
- package/dist/cli/inspect/json.js +5 -0
- package/dist/cli/inspect/layer/index.d.ts +2 -0
- package/dist/cli/inspect/layer/index.d.ts.map +1 -0
- package/dist/cli/inspect/layer/index.js +1 -0
- package/dist/cli/inspect/layer/layer.d.ts +7 -0
- package/dist/cli/inspect/layer/layer.d.ts.map +1 -0
- package/dist/cli/inspect/layer/layer.js +13 -0
- package/dist/cli/inspect/layer/report.d.ts +3 -0
- package/dist/cli/inspect/layer/report.d.ts.map +1 -0
- package/dist/cli/inspect/layer/report.js +21 -0
- package/dist/cli/inspect/module/index.d.ts +2 -0
- package/dist/cli/inspect/module/index.d.ts.map +1 -0
- package/dist/cli/inspect/module/index.js +1 -0
- package/dist/cli/inspect/module/module.d.ts +7 -0
- package/dist/cli/inspect/module/module.d.ts.map +1 -0
- package/dist/cli/inspect/module/module.js +15 -0
- package/dist/cli/inspect/module/report.d.ts +3 -0
- package/dist/cli/inspect/module/report.d.ts.map +1 -0
- package/dist/cli/inspect/module/report.js +38 -0
- package/dist/cli/inspect/path-tree.d.ts +7 -0
- package/dist/cli/inspect/path-tree.d.ts.map +1 -0
- package/dist/cli/inspect/path-tree.js +62 -0
- package/dist/cli/inspect/path.d.ts +5 -0
- package/dist/cli/inspect/path.d.ts.map +1 -0
- package/dist/cli/inspect/path.js +10 -0
- package/dist/cli/inspect/project/index.d.ts +2 -0
- package/dist/cli/inspect/project/index.d.ts.map +1 -0
- package/dist/cli/inspect/project/index.js +1 -0
- package/dist/cli/inspect/project/project.d.ts +8 -0
- package/dist/cli/inspect/project/project.d.ts.map +1 -0
- package/dist/cli/inspect/project/project.js +19 -0
- package/dist/cli/inspect/project/report.d.ts +3 -0
- package/dist/cli/inspect/project/report.d.ts.map +1 -0
- package/dist/cli/inspect/project/report.js +16 -0
- package/dist/cli/lint/index.d.ts +2 -0
- package/dist/cli/lint/index.d.ts.map +1 -0
- package/dist/cli/lint/index.js +2 -0
- package/dist/cli/lint/layers/index.d.ts +3 -0
- package/dist/cli/lint/layers/index.d.ts.map +1 -0
- package/dist/cli/lint/layers/index.js +4 -0
- package/dist/cli/lint/layers/layers.d.ts +5 -0
- package/dist/cli/lint/layers/layers.d.ts.map +1 -0
- package/dist/cli/lint/layers/layers.js +18 -0
- package/dist/cli/lint/layers/report.d.ts +5 -0
- package/dist/cli/lint/layers/report.d.ts.map +1 -0
- package/dist/cli/lint/layers/report.js +60 -0
- package/dist/cli/lint/lint.d.ts +4 -0
- package/dist/cli/lint/lint.d.ts.map +1 -0
- package/dist/cli/lint/lint.js +26 -0
- package/dist/cli/lint/modules/index.d.ts +5 -0
- package/dist/cli/lint/modules/index.d.ts.map +1 -0
- package/dist/cli/lint/modules/index.js +4 -0
- package/dist/cli/lint/modules/modules.d.ts +5 -0
- package/dist/cli/lint/modules/modules.d.ts.map +1 -0
- package/dist/cli/lint/modules/modules.js +15 -0
- package/dist/cli/lint/modules/report.d.ts +5 -0
- package/dist/cli/lint/modules/report.d.ts.map +1 -0
- package/dist/cli/lint/modules/report.js +69 -0
- package/dist/cli/run.d.ts +1 -8
- package/dist/cli/run.d.ts.map +1 -1
- package/dist/cli/run.js +14 -242
- package/dist/cli/stories/index.d.ts +2 -0
- package/dist/cli/stories/index.d.ts.map +1 -0
- package/dist/cli/stories/index.js +1 -0
- package/dist/cli/stories/progress.d.ts +7 -0
- package/dist/cli/stories/progress.d.ts.map +1 -0
- package/dist/cli/stories/progress.js +45 -0
- package/dist/cli/stories/report.d.ts +9 -0
- package/dist/cli/stories/report.d.ts.map +1 -0
- package/dist/cli/stories/report.js +63 -0
- package/dist/cli/stories/stories.d.ts +6 -0
- package/dist/cli/stories/stories.d.ts.map +1 -0
- package/dist/cli/stories/stories.js +30 -0
- package/dist/config/define-config.d.ts +5 -0
- package/dist/config/define-config.d.ts.map +1 -1
- package/dist/config/define-config.js +152 -7
- package/dist/config/index.d.ts +6 -0
- package/dist/config/index.d.ts.map +1 -1
- package/dist/config/index.js +2 -0
- package/dist/config/layer-graph.d.ts +2 -2
- package/dist/config/layer-graph.d.ts.map +1 -1
- package/dist/config/layer-graph.js +2 -29
- package/dist/config/layer.d.ts +2 -2
- package/dist/config/layer.d.ts.map +1 -1
- package/dist/config/layer.js +2 -15
- package/dist/config/load-config/index.d.ts +2 -0
- package/dist/config/load-config/index.d.ts.map +1 -0
- package/dist/config/load-config/index.js +1 -0
- package/dist/config/load-config/load-config.d.ts +34 -0
- package/dist/config/load-config/load-config.d.ts.map +1 -0
- package/dist/config/load-config/load-config.js +127 -0
- package/dist/config/module.d.ts +4 -2
- package/dist/config/module.d.ts.map +1 -1
- package/dist/config/module.js +5 -12
- package/dist/config/project-narrative.d.ts +15 -0
- package/dist/config/project-narrative.d.ts.map +1 -0
- package/dist/config/project-narrative.js +11 -0
- package/dist/config/types.d.ts +5 -3
- package/dist/config/types.d.ts.map +1 -1
- package/dist/domain/architecture-analysis/architecture-analysis.d.ts +4 -0
- package/dist/domain/architecture-analysis/architecture-analysis.d.ts.map +1 -0
- package/dist/domain/architecture-analysis/architecture-analysis.js +13 -0
- package/dist/domain/architecture-analysis/index.d.ts +3 -0
- package/dist/domain/architecture-analysis/index.d.ts.map +1 -0
- package/dist/domain/architecture-analysis/index.js +2 -0
- package/dist/domain/architecture-analysis/layer-rules.d.ts +3 -0
- package/dist/domain/architecture-analysis/layer-rules.d.ts.map +1 -0
- package/dist/domain/architecture-analysis/layer-rules.js +15 -0
- package/dist/domain/architecture-analysis/layers/allowed-dependencies.d.ts +3 -0
- package/dist/domain/architecture-analysis/layers/allowed-dependencies.d.ts.map +1 -0
- package/dist/domain/architecture-analysis/layers/allowed-dependencies.js +20 -0
- package/dist/domain/architecture-analysis/layers/coverage-violations.d.ts +2 -0
- package/dist/domain/architecture-analysis/layers/coverage-violations.d.ts.map +1 -0
- package/dist/domain/architecture-analysis/layers/coverage-violations.js +5 -0
- package/dist/domain/architecture-analysis/layers/dependency-violations.d.ts +5 -0
- package/dist/domain/architecture-analysis/layers/dependency-violations.d.ts.map +1 -0
- package/dist/domain/architecture-analysis/layers/dependency-violations.js +18 -0
- package/dist/domain/architecture-analysis/layers/index.d.ts +9 -0
- package/dist/domain/architecture-analysis/layers/index.d.ts.map +1 -0
- package/dist/domain/architecture-analysis/layers/index.js +4 -0
- package/dist/domain/architecture-analysis/layers/layer-membership.d.ts +3 -0
- package/dist/domain/architecture-analysis/layers/layer-membership.d.ts.map +1 -0
- package/dist/domain/architecture-analysis/layers/layer-membership.js +13 -0
- package/dist/domain/architecture-analysis/layers/layers.d.ts +11 -0
- package/dist/domain/architecture-analysis/layers/layers.d.ts.map +1 -0
- package/dist/domain/architecture-analysis/layers/layers.js +22 -0
- package/dist/domain/architecture-analysis/layers/module-coverage-violations.d.ts +4 -0
- package/dist/domain/architecture-analysis/layers/module-coverage-violations.d.ts.map +1 -0
- package/dist/domain/architecture-analysis/layers/module-coverage-violations.js +9 -0
- package/dist/domain/architecture-analysis/modules/dependency-graph.d.ts +2 -0
- package/dist/domain/architecture-analysis/modules/dependency-graph.d.ts.map +1 -0
- package/dist/domain/architecture-analysis/modules/dependency-graph.js +45 -0
- package/dist/domain/architecture-analysis/modules/dependency-permissions.d.ts +4 -0
- package/dist/domain/architecture-analysis/modules/dependency-permissions.d.ts.map +1 -0
- package/dist/domain/architecture-analysis/modules/dependency-permissions.js +35 -0
- package/dist/domain/architecture-analysis/modules/index.d.ts +12 -0
- package/dist/domain/architecture-analysis/modules/index.d.ts.map +1 -0
- package/dist/domain/architecture-analysis/modules/index.js +3 -0
- package/dist/domain/architecture-analysis/modules/module-descriptors.d.ts +5 -0
- package/dist/domain/architecture-analysis/modules/module-descriptors.d.ts.map +1 -0
- package/dist/domain/architecture-analysis/modules/module-descriptors.js +37 -0
- package/dist/domain/architecture-analysis/modules/module-membership.d.ts +3 -0
- package/dist/domain/architecture-analysis/modules/module-membership.d.ts.map +1 -0
- package/dist/domain/architecture-analysis/modules/module-membership.js +12 -0
- package/dist/domain/architecture-analysis/modules/modules.d.ts +16 -0
- package/dist/domain/architecture-analysis/modules/modules.d.ts.map +1 -0
- package/dist/domain/architecture-analysis/modules/modules.js +35 -0
- package/dist/domain/architecture-analysis/modules/public-entry-points.d.ts +3 -0
- package/dist/domain/architecture-analysis/modules/public-entry-points.d.ts.map +1 -0
- package/dist/domain/architecture-analysis/modules/public-entry-points.js +11 -0
- package/dist/domain/architecture-analysis/modules/unexposed-modules.d.ts +3 -0
- package/dist/domain/architecture-analysis/modules/unexposed-modules.d.ts.map +1 -0
- package/dist/domain/architecture-analysis/modules/unexposed-modules.js +10 -0
- package/dist/domain/architecture-analysis/modules/violations/boundaries.d.ts +8 -0
- package/dist/domain/architecture-analysis/modules/violations/boundaries.d.ts.map +1 -0
- package/dist/domain/architecture-analysis/modules/violations/boundaries.js +47 -0
- package/dist/domain/architecture-analysis/modules/violations/coverage.d.ts +3 -0
- package/dist/domain/architecture-analysis/modules/violations/coverage.d.ts.map +1 -0
- package/dist/domain/architecture-analysis/modules/violations/coverage.js +7 -0
- package/dist/domain/architecture-analysis/modules/violations/cycles.d.ts +3 -0
- package/dist/domain/architecture-analysis/modules/violations/cycles.d.ts.map +1 -0
- package/dist/domain/architecture-analysis/modules/violations/cycles.js +7 -0
- package/dist/domain/architecture-analysis/modules/violations/dead-modules.d.ts +3 -0
- package/dist/domain/architecture-analysis/modules/violations/dead-modules.d.ts.map +1 -0
- package/dist/domain/architecture-analysis/modules/violations/dead-modules.js +23 -0
- package/dist/domain/architecture-analysis/modules/violations/dependencies.d.ts +4 -0
- package/dist/domain/architecture-analysis/modules/violations/dependencies.d.ts.map +1 -0
- package/dist/domain/architecture-analysis/modules/violations/dependencies.js +7 -0
- package/dist/domain/architecture-analysis/modules/violations/entry-points.d.ts +3 -0
- package/dist/domain/architecture-analysis/modules/violations/entry-points.d.ts.map +1 -0
- package/dist/domain/architecture-analysis/modules/violations/entry-points.js +17 -0
- package/dist/domain/architecture-analysis/modules/violations/graph-coverage.d.ts +3 -0
- package/dist/domain/architecture-analysis/modules/violations/graph-coverage.d.ts.map +1 -0
- package/dist/domain/architecture-analysis/modules/violations/graph-coverage.js +16 -0
- package/dist/domain/architecture-analysis/modules/violations/index.d.ts +3 -0
- package/dist/domain/architecture-analysis/modules/violations/index.d.ts.map +1 -0
- package/dist/domain/architecture-analysis/modules/violations/index.js +2 -0
- package/dist/domain/architecture-analysis/modules/violations/unused-shared.d.ts +3 -0
- package/dist/domain/architecture-analysis/modules/violations/unused-shared.d.ts.map +1 -0
- package/dist/domain/architecture-analysis/modules/violations/unused-shared.js +9 -0
- package/dist/domain/architecture-analysis/modules/violations/violations.d.ts +9 -0
- package/dist/domain/architecture-analysis/modules/violations/violations.d.ts.map +1 -0
- package/dist/domain/architecture-analysis/modules/violations/violations.js +22 -0
- package/dist/domain/file-graph/file-graph.d.ts +10 -0
- package/dist/domain/file-graph/file-graph.d.ts.map +1 -0
- package/dist/domain/file-graph/file-graph.js +37 -0
- package/dist/domain/file-graph/index.d.ts +4 -0
- package/dist/domain/file-graph/index.d.ts.map +1 -0
- package/dist/domain/file-graph/index.js +1 -0
- package/dist/domain/project-config/index.d.ts +10 -0
- package/dist/domain/project-config/index.d.ts.map +1 -0
- package/dist/domain/project-config/index.js +12 -0
- package/dist/domain/project-config/project-config.d.ts +52 -0
- package/dist/domain/project-config/project-config.d.ts.map +1 -0
- package/dist/domain/project-config/project-config.js +39 -0
- package/dist/domain/project-config/resolve.d.ts +8 -0
- package/dist/domain/project-config/resolve.d.ts.map +1 -0
- package/dist/domain/project-config/resolve.js +29 -0
- package/dist/domain/project-config/validation/containment.d.ts +4 -0
- package/dist/domain/project-config/validation/containment.d.ts.map +1 -0
- package/dist/domain/project-config/validation/containment.js +21 -0
- package/dist/domain/project-config/validation/index.d.ts +3 -0
- package/dist/domain/project-config/validation/index.d.ts.map +1 -0
- package/dist/domain/project-config/validation/index.js +2 -0
- package/dist/domain/project-config/validation/layers/cycles.d.ts +3 -0
- package/dist/domain/project-config/validation/layers/cycles.d.ts.map +1 -0
- package/dist/domain/project-config/validation/layers/cycles.js +64 -0
- package/dist/domain/project-config/validation/layers/index.d.ts +3 -0
- package/dist/domain/project-config/validation/layers/index.d.ts.map +1 -0
- package/dist/domain/project-config/validation/layers/index.js +2 -0
- package/dist/domain/project-config/validation/layers/layers.d.ts +3 -0
- package/dist/domain/project-config/validation/layers/layers.d.ts.map +1 -0
- package/dist/domain/project-config/validation/layers/layers.js +9 -0
- package/dist/domain/project-config/validation/layers/overlaps.d.ts +3 -0
- package/dist/domain/project-config/validation/layers/overlaps.d.ts.map +1 -0
- package/dist/domain/project-config/validation/layers/overlaps.js +26 -0
- package/dist/domain/project-config/validation/layers/references.d.ts +3 -0
- package/dist/domain/project-config/validation/layers/references.d.ts.map +1 -0
- package/dist/domain/project-config/validation/layers/references.js +21 -0
- package/dist/domain/project-config/validation/modules/containment.d.ts +3 -0
- package/dist/domain/project-config/validation/modules/containment.d.ts.map +1 -0
- package/dist/domain/project-config/validation/modules/containment.js +24 -0
- package/dist/domain/project-config/validation/modules/graphs.d.ts +4 -0
- package/dist/domain/project-config/validation/modules/graphs.d.ts.map +1 -0
- package/dist/domain/project-config/validation/modules/graphs.js +96 -0
- package/dist/domain/project-config/validation/modules/index.d.ts +3 -0
- package/dist/domain/project-config/validation/modules/index.d.ts.map +1 -0
- package/dist/domain/project-config/validation/modules/index.js +2 -0
- package/dist/domain/project-config/validation/modules/kinds.d.ts +3 -0
- package/dist/domain/project-config/validation/modules/kinds.d.ts.map +1 -0
- package/dist/domain/project-config/validation/modules/kinds.js +18 -0
- package/dist/domain/project-config/validation/modules/modules.d.ts +3 -0
- package/dist/domain/project-config/validation/modules/modules.d.ts.map +1 -0
- package/dist/domain/project-config/validation/modules/modules.js +16 -0
- package/dist/domain/project-config/validation/modules/nested.d.ts +3 -0
- package/dist/domain/project-config/validation/modules/nested.d.ts.map +1 -0
- package/dist/domain/project-config/validation/modules/nested.js +34 -0
- package/dist/domain/project-config/validation/modules/overlaps.d.ts +4 -0
- package/dist/domain/project-config/validation/modules/overlaps.d.ts.map +1 -0
- package/dist/domain/project-config/validation/modules/overlaps.js +43 -0
- package/dist/domain/project-config/validation/modules/paths.d.ts +3 -0
- package/dist/domain/project-config/validation/modules/paths.d.ts.map +1 -0
- package/dist/domain/project-config/validation/modules/paths.js +27 -0
- package/dist/domain/project-config/validation/modules/scopes.d.ts +4 -0
- package/dist/domain/project-config/validation/modules/scopes.d.ts.map +1 -0
- package/dist/domain/project-config/validation/modules/scopes.js +28 -0
- package/dist/domain/project-config/validation/modules/subpaths.d.ts +3 -0
- package/dist/domain/project-config/validation/modules/subpaths.d.ts.map +1 -0
- package/dist/domain/project-config/validation/modules/subpaths.js +40 -0
- package/dist/domain/project-config/validation/paths.d.ts +3 -0
- package/dist/domain/project-config/validation/paths.d.ts.map +1 -0
- package/dist/domain/project-config/validation/paths.js +39 -0
- package/dist/domain/project-config/validation/validation.d.ts +3 -0
- package/dist/domain/project-config/validation/validation.d.ts.map +1 -0
- package/dist/domain/project-config/validation/validation.js +12 -0
- package/dist/entrypoints/cli/cli.d.ts +3 -0
- package/dist/entrypoints/cli/cli.d.ts.map +1 -0
- package/dist/entrypoints/cli/cli.js +6 -0
- package/dist/entrypoints/cli/run.d.ts +13 -0
- package/dist/entrypoints/cli/run.d.ts.map +1 -0
- package/dist/entrypoints/cli/run.js +155 -0
- package/dist/entrypoints/cli/test-output.d.ts +17 -0
- package/dist/entrypoints/cli/test-output.d.ts.map +1 -0
- package/dist/entrypoints/cli/test-output.js +244 -0
- package/dist/entrypoints/node/index.d.ts +24 -0
- package/dist/entrypoints/node/index.d.ts.map +1 -0
- package/dist/entrypoints/node/index.js +27 -0
- package/dist/entrypoints/report/index.d.ts +2 -0
- package/dist/entrypoints/report/index.d.ts.map +1 -0
- package/dist/entrypoints/report/index.js +1 -0
- package/dist/index.d.ts +17 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +22 -1
- package/dist/markdown/index.d.ts +3 -0
- package/dist/markdown/index.d.ts.map +1 -0
- package/dist/markdown/index.js +1 -0
- package/dist/markdown/markdown.d.ts +7 -0
- package/dist/markdown/markdown.d.ts.map +1 -0
- package/dist/markdown/markdown.js +13 -0
- package/dist/orchestrator/analyze-project/analyze-project.d.ts +119 -0
- package/dist/orchestrator/analyze-project/analyze-project.d.ts.map +1 -0
- package/dist/orchestrator/analyze-project/analyze-project.js +9 -0
- package/dist/orchestrator/analyze-project/index.d.ts +2 -0
- package/dist/orchestrator/analyze-project/index.d.ts.map +1 -0
- package/dist/orchestrator/analyze-project/index.js +2 -0
- package/dist/orchestrator/inspect/index.d.ts +4 -0
- package/dist/orchestrator/inspect/index.d.ts.map +1 -0
- package/dist/orchestrator/inspect/index.js +1 -0
- package/dist/orchestrator/inspect/inspect.d.ts +269 -0
- package/dist/orchestrator/inspect/inspect.d.ts.map +1 -0
- package/dist/orchestrator/inspect/inspect.js +147 -0
- package/dist/orchestrator/load-changes/index.d.ts +2 -0
- package/dist/orchestrator/load-changes/index.d.ts.map +1 -0
- package/dist/orchestrator/load-changes/index.js +2 -0
- package/dist/orchestrator/load-changes/load-changes.d.ts +6 -0
- package/dist/orchestrator/load-changes/load-changes.d.ts.map +1 -0
- package/dist/orchestrator/load-changes/load-changes.js +18 -0
- package/dist/orchestrator/load-module-source/errors.d.ts +17 -0
- package/dist/orchestrator/load-module-source/errors.d.ts.map +1 -0
- package/dist/orchestrator/load-module-source/errors.js +5 -0
- package/dist/orchestrator/load-module-source/index.d.ts +2 -0
- package/dist/orchestrator/load-module-source/index.d.ts.map +1 -0
- package/dist/orchestrator/load-module-source/index.js +1 -0
- package/dist/orchestrator/load-module-source/load-module-source.d.ts +12 -0
- package/dist/orchestrator/load-module-source/load-module-source.d.ts.map +1 -0
- package/dist/orchestrator/load-module-source/load-module-source.js +39 -0
- package/dist/orchestrator/load-project/index.d.ts +3 -0
- package/dist/orchestrator/load-project/index.d.ts.map +1 -0
- package/dist/orchestrator/load-project/index.js +2 -0
- package/dist/orchestrator/load-project/load-project.d.ts +54 -0
- package/dist/orchestrator/load-project/load-project.d.ts.map +1 -0
- package/dist/orchestrator/load-project/load-project.js +30 -0
- package/dist/orchestrator/query-dependencies/index.d.ts +3 -0
- package/dist/orchestrator/query-dependencies/index.d.ts.map +1 -0
- package/dist/orchestrator/query-dependencies/index.js +4 -0
- package/dist/orchestrator/query-dependencies/query-dependencies.d.ts +12 -0
- package/dist/orchestrator/query-dependencies/query-dependencies.d.ts.map +1 -0
- package/dist/orchestrator/query-dependencies/query-dependencies.js +20 -0
- package/dist/orchestrator/run-stories/errors.d.ts +11 -0
- package/dist/orchestrator/run-stories/errors.d.ts.map +1 -0
- package/dist/orchestrator/run-stories/errors.js +3 -0
- package/dist/orchestrator/run-stories/extract-snippets.d.ts +12 -0
- package/dist/orchestrator/run-stories/extract-snippets.d.ts.map +1 -0
- package/dist/orchestrator/run-stories/extract-snippets.js +181 -0
- package/dist/orchestrator/run-stories/index.d.ts +3 -0
- package/dist/orchestrator/run-stories/index.d.ts.map +1 -0
- package/dist/orchestrator/run-stories/index.js +3 -0
- package/dist/orchestrator/run-stories/run-stories.d.ts +16 -0
- package/dist/orchestrator/run-stories/run-stories.d.ts.map +1 -0
- package/dist/orchestrator/run-stories/run-stories.js +290 -0
- package/dist/report/architecture.d.ts +1 -1
- package/dist/report/architecture.d.ts.map +1 -1
- package/dist/report/index.d.ts +2 -1
- package/dist/report/index.d.ts.map +1 -1
- package/dist/report/index.js +1 -1
- package/dist/report/tests.d.ts +411 -0
- package/dist/report/tests.d.ts.map +1 -0
- package/dist/report/tests.js +102 -0
- package/dist/services/config/config.d.ts +12 -0
- package/dist/services/config/config.d.ts.map +1 -0
- package/dist/services/config/config.js +46 -0
- package/dist/services/config/errors.d.ts +13 -0
- package/dist/services/config/errors.d.ts.map +1 -0
- package/dist/services/config/errors.js +3 -0
- package/dist/services/config/index.d.ts +4 -0
- package/dist/services/config/index.d.ts.map +1 -0
- package/dist/services/config/index.js +7 -0
- package/dist/services/file-cruiser/errors.d.ts +10 -0
- package/dist/services/file-cruiser/errors.d.ts.map +1 -0
- package/dist/services/file-cruiser/errors.js +3 -0
- package/dist/services/file-cruiser/file-cruiser.d.ts +11 -0
- package/dist/services/file-cruiser/file-cruiser.d.ts.map +1 -0
- package/dist/services/file-cruiser/file-cruiser.js +7 -0
- package/dist/services/file-cruiser/index.d.ts +4 -0
- package/dist/services/file-cruiser/index.d.ts.map +1 -0
- package/dist/services/file-cruiser/index.js +6 -0
- package/dist/services/file-cruiser/oxc/file-scanner.d.ts +5 -0
- package/dist/services/file-cruiser/oxc/file-scanner.d.ts.map +1 -0
- package/dist/services/file-cruiser/oxc/file-scanner.js +54 -0
- package/dist/services/file-cruiser/oxc/import-resolver.d.ts +5 -0
- package/dist/services/file-cruiser/oxc/import-resolver.d.ts.map +1 -0
- package/dist/services/file-cruiser/oxc/import-resolver.js +44 -0
- package/dist/services/file-cruiser/oxc/index.d.ts +2 -0
- package/dist/services/file-cruiser/oxc/index.d.ts.map +1 -0
- package/dist/services/file-cruiser/oxc/index.js +2 -0
- package/dist/services/file-cruiser/oxc/oxc.d.ts +5 -0
- package/dist/services/file-cruiser/oxc/oxc.d.ts.map +1 -0
- package/dist/services/file-cruiser/oxc/oxc.js +29 -0
- package/dist/services/git/changed-paths.d.ts +4 -0
- package/dist/services/git/changed-paths.d.ts.map +1 -0
- package/dist/services/git/changed-paths.js +85 -0
- package/dist/services/git/errors.d.ts +11 -0
- package/dist/services/git/errors.d.ts.map +1 -0
- package/dist/services/git/errors.js +3 -0
- package/dist/services/git/git.d.ts +12 -0
- package/dist/services/git/git.d.ts.map +1 -0
- package/dist/services/git/git.js +23 -0
- package/dist/services/git/index.d.ts +4 -0
- package/dist/services/git/index.d.ts.map +1 -0
- package/dist/services/git/index.js +6 -0
- package/dist/services/git/parse-patch.d.ts +3 -0
- package/dist/services/git/parse-patch.d.ts.map +1 -0
- package/dist/services/git/parse-patch.js +53 -0
- package/dist/services/git/run-git.d.ts +9 -0
- package/dist/services/git/run-git.d.ts.map +1 -0
- package/dist/services/git/run-git.js +22 -0
- package/dist/story/index.d.ts +3 -0
- package/dist/story/index.d.ts.map +1 -0
- package/dist/story/index.js +2 -0
- package/dist/story/schema/index.d.ts +6 -0
- package/dist/story/schema/index.d.ts.map +1 -0
- package/dist/story/schema/index.js +4 -0
- package/dist/story/schema/slug.d.ts +2 -0
- package/dist/story/schema/slug.d.ts.map +1 -0
- package/dist/story/schema/slug.js +6 -0
- package/dist/story/schema/story-report-schema.d.ts +408 -0
- package/dist/story/schema/story-report-schema.d.ts.map +1 -0
- package/dist/story/schema/story-report-schema.js +94 -0
- package/dist/story/schema/story-tree-schema.d.ts +42 -0
- package/dist/story/schema/story-tree-schema.d.ts.map +1 -0
- package/dist/story/schema/story-tree-schema.js +40 -0
- package/dist/story/story.d.ts +38 -0
- package/dist/story/story.d.ts.map +1 -0
- package/dist/story/story.js +56 -0
- package/dist/tests/authoring/index.d.ts +72 -0
- package/dist/tests/authoring/index.d.ts.map +1 -0
- package/dist/tests/authoring/index.js +312 -0
- package/dist/tests/run-tests/index.d.ts +3 -0
- package/dist/tests/run-tests/index.d.ts.map +1 -0
- package/dist/tests/run-tests/index.js +1 -0
- package/dist/tests/run-tests/run-tests.d.ts +26 -0
- package/dist/tests/run-tests/run-tests.d.ts.map +1 -0
- package/dist/tests/run-tests/run-tests.js +284 -0
- package/package.json +36 -24
- package/schema.json +212 -0
- package/dist/cli/index.d.ts +0 -2
- package/dist/cli/index.d.ts.map +0 -1
- package/dist/cli/index.js +0 -1
- package/dist/engine/1-extract/extract.d.ts.map +0 -1
- package/dist/engine/1-extract/index.d.ts +0 -3
- package/dist/engine/1-extract/index.d.ts.map +0 -1
- package/dist/engine/1-extract/index.js +0 -1
- package/dist/engine/2-resolve/index.d.ts +0 -3
- package/dist/engine/2-resolve/index.d.ts.map +0 -1
- package/dist/engine/2-resolve/index.js +0 -1
- package/dist/engine/2-resolve/resolve.d.ts.map +0 -1
- package/dist/engine/3-evaluate/evaluate.d.ts.map +0 -1
- package/dist/engine/3-evaluate/index.d.ts +0 -3
- package/dist/engine/3-evaluate/index.d.ts.map +0 -1
- package/dist/engine/3-evaluate/index.js +0 -1
- package/dist/engine/4-emit/emit.d.ts +0 -7
- package/dist/engine/4-emit/emit.d.ts.map +0 -1
- package/dist/engine/4-emit/index.d.ts +0 -2
- package/dist/engine/4-emit/index.d.ts.map +0 -1
- package/dist/engine/4-emit/index.js +0 -1
- package/dist/engine/errors.d.ts +0 -19
- package/dist/engine/errors.d.ts.map +0 -1
- package/dist/node.d.ts +0 -24
- package/dist/node.d.ts.map +0 -1
- package/dist/node.js +0 -139
- package/dist/report/stories.d.ts +0 -22
- package/dist/report/stories.d.ts.map +0 -1
- package/dist/report/stories.js +0 -1
- package/dist/story/artifact/artifact.d.ts +0 -57
- package/dist/story/artifact/artifact.d.ts.map +0 -1
- package/dist/story/artifact/artifact.js +0 -234
- package/dist/story/artifact/index.d.ts +0 -2
- package/dist/story/artifact/index.d.ts.map +0 -1
- package/dist/story/artifact/index.js +0 -1
- package/dist/story/artifact/storage.d.ts +0 -10
- package/dist/story/artifact/storage.d.ts.map +0 -1
- package/dist/story/artifact/storage.js +0 -162
- package/dist/story/artifact/types.d.ts +0 -74
- package/dist/story/artifact/types.d.ts.map +0 -1
- package/dist/story/artifact/types.js +0 -1
- package/dist/story/core/blocks.d.ts +0 -20
- package/dist/story/core/blocks.d.ts.map +0 -1
- package/dist/story/core/blocks.js +0 -104
- package/dist/story/core/declare.d.ts +0 -63
- package/dist/story/core/declare.d.ts.map +0 -1
- package/dist/story/core/declare.js +0 -62
- package/dist/story/core/index.d.ts +0 -4
- package/dist/story/core/index.d.ts.map +0 -1
- package/dist/story/core/index.js +0 -1
- package/dist/story/core/recorder.d.ts +0 -38
- package/dist/story/core/recorder.d.ts.map +0 -1
- package/dist/story/core/recorder.js +0 -28
- package/dist/story/core/runtime-context.d.ts +0 -14
- package/dist/story/core/runtime-context.d.ts.map +0 -1
- package/dist/story/core/runtime-context.js +0 -19
- package/dist/story/core/types.d.ts +0 -21
- package/dist/story/core/types.d.ts.map +0 -1
- package/dist/story/core/types.js +0 -1
- package/dist/story/effect/effect.d.ts +0 -52
- package/dist/story/effect/effect.d.ts.map +0 -1
- package/dist/story/effect/effect.js +0 -99
- package/dist/story/effect/index.d.ts +0 -3
- package/dist/story/effect/index.d.ts.map +0 -1
- package/dist/story/effect/index.js +0 -1
- package/dist/story/runner/index.d.ts +0 -3
- package/dist/story/runner/index.d.ts.map +0 -1
- package/dist/story/runner/index.js +0 -1
- package/dist/story/runner/runner.d.ts +0 -44
- package/dist/story/runner/runner.d.ts.map +0 -1
- package/dist/story/runner/runner.js +0 -476
- package/dist/story/story-runtime/index.d.ts +0 -2
- package/dist/story/story-runtime/index.d.ts.map +0 -1
- package/dist/story/story-runtime/index.js +0 -1
- package/dist/story/story-runtime/story-runtime.d.ts +0 -52
- package/dist/story/story-runtime/story-runtime.d.ts.map +0 -1
- package/dist/story/story-runtime/story-runtime.js +0 -194
- package/dist/story/vanilla/index.d.ts +0 -29
- package/dist/story/vanilla/index.d.ts.map +0 -1
- package/dist/story/vanilla/index.js +0 -78
package/bin/laymos.mjs
ADDED
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { Effect } from 'effect';
|
|
2
|
+
import type { LaymosReport } from '../../report/index.js';
|
|
3
|
+
import type { LaymosError } from '../errors.js';
|
|
4
|
+
export interface AnalyzeProjectRequest {
|
|
5
|
+
readonly projectDir: string;
|
|
6
|
+
}
|
|
7
|
+
/** Analyzes one project's declared and actual static architecture. */
|
|
8
|
+
export declare const analyzeProject: ({ projectDir, }: AnalyzeProjectRequest) => Effect.Effect<LaymosReport, LaymosError>;
|
|
9
|
+
//# sourceMappingURL=analyze-project.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"analyze-project.d.ts","sourceRoot":"","sources":["../../../src/architecture/analyze-project/analyze-project.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAGhC,OAAO,KAAK,EAAmB,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAG3E,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAMhD,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;CAC7B;AAED,sEAAsE;AACtE,eAAO,MAAM,cAAc,oBAExB,qBAAqB,KAAG,MAAM,CAAC,MAAM,CAAC,YAAY,EAAE,WAAW,CAYrB,CAAC"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { existsSync } from 'node:fs';
|
|
2
|
+
import { resolve } from 'node:path';
|
|
3
|
+
import { Effect } from 'effect';
|
|
4
|
+
import { buildReport } from '../build-report/index.js';
|
|
5
|
+
import { extractFileGraph } from '../extract-dependencies/index.js';
|
|
6
|
+
import { loadConfig } from '../../config/load-config/index.js';
|
|
7
|
+
import { resolveProject } from '../resolve-architecture/index.js';
|
|
8
|
+
import { validateRules } from '../validate-rules/index.js';
|
|
9
|
+
/** Analyzes one project's declared and actual static architecture. */
|
|
10
|
+
export const analyzeProject = ({ projectDir, }) => Effect.gen(function* () {
|
|
11
|
+
const config = yield* loadConfig({ projectDir });
|
|
12
|
+
const warnings = findMissingPathWarnings(projectDir, config);
|
|
13
|
+
const fileGraph = yield* extractFileGraph(projectDir, config.sourceRoots, config.ignore ?? []);
|
|
14
|
+
const resolved = yield* resolveProject(config, fileGraph);
|
|
15
|
+
const validation = yield* validateRules(resolved);
|
|
16
|
+
return yield* buildReport(resolved, validation, warnings);
|
|
17
|
+
}).pipe(Effect.withSpan('project.analyze'));
|
|
18
|
+
function findMissingPathWarnings(projectDir, config) {
|
|
19
|
+
const warnings = [];
|
|
20
|
+
for (const path of config.sourceRoots) {
|
|
21
|
+
if (!existsSync(resolve(projectDir, path))) {
|
|
22
|
+
warnings.push({ kind: 'missing-source-root', path });
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
const layers = new Set(config.graphs.flatMap((graph) => [...graph.layers]));
|
|
26
|
+
for (const layer of layers) {
|
|
27
|
+
for (const path of layer.paths) {
|
|
28
|
+
if (!existsSync(resolve(projectDir, path))) {
|
|
29
|
+
warnings.push({
|
|
30
|
+
kind: 'missing-layer-path',
|
|
31
|
+
layer: layer.name,
|
|
32
|
+
path,
|
|
33
|
+
});
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
for (const module of config.modules ?? []) {
|
|
38
|
+
if (!existsSync(resolve(projectDir, module.path))) {
|
|
39
|
+
warnings.push({
|
|
40
|
+
kind: 'missing-module-path',
|
|
41
|
+
module: module.path,
|
|
42
|
+
path: module.path,
|
|
43
|
+
});
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
return warnings;
|
|
47
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/architecture/analyze-project/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,YAAY,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { analyzeProject } from './analyze-project.js';
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { Effect } from 'effect';
|
|
2
|
+
import type { AnalysisWarning, LaymosReport } from '../../report/index.js';
|
|
3
|
+
import type { ResolvedProject } from '../resolve-architecture/index.js';
|
|
4
|
+
import type { RuleValidation } from '../validate-rules/index.js';
|
|
5
|
+
/** Emits the canonical, serializable result of Laymos analysis. */
|
|
6
|
+
export declare function buildReport(resolved: ResolvedProject, validation: RuleValidation, warnings?: readonly AnalysisWarning[]): Effect.Effect<LaymosReport>;
|
|
7
|
+
//# sourceMappingURL=build-report.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"build-report.d.ts","sourceRoot":"","sources":["../../../src/architecture/build-report/build-report.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAGhC,OAAO,KAAK,EACV,eAAe,EACf,YAAY,EAKb,MAAM,uBAAuB,CAAC;AAC/B,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AACxE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AA2EjE,mEAAmE;AACnE,wBAAgB,WAAW,CACzB,QAAQ,EAAE,eAAe,EACzB,UAAU,EAAE,cAAc,EAC1B,QAAQ,GAAE,SAAS,eAAe,EAAO,GACxC,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,CAQ7B"}
|
|
@@ -13,10 +13,14 @@ function emitArchitecture(config) {
|
|
|
13
13
|
}
|
|
14
14
|
const modules = {};
|
|
15
15
|
for (const module of config.modules ?? []) {
|
|
16
|
-
modules[module.path] =
|
|
17
|
-
module.description
|
|
18
|
-
? {
|
|
19
|
-
: {}
|
|
16
|
+
modules[module.path] = {
|
|
17
|
+
...(module.description === undefined
|
|
18
|
+
? {}
|
|
19
|
+
: { description: module.description }),
|
|
20
|
+
...(module.documentation === undefined
|
|
21
|
+
? {}
|
|
22
|
+
: { documentation: module.documentation.content }),
|
|
23
|
+
};
|
|
20
24
|
}
|
|
21
25
|
return {
|
|
22
26
|
sourceRoots: config.sourceRoots,
|
|
@@ -65,13 +69,12 @@ function emitFiles(resolved) {
|
|
|
65
69
|
return files;
|
|
66
70
|
}
|
|
67
71
|
/** Emits the canonical, serializable result of Laymos analysis. */
|
|
68
|
-
export function
|
|
72
|
+
export function buildReport(resolved, validation, warnings = []) {
|
|
69
73
|
return Effect.succeed({
|
|
70
|
-
schemaVersion: 2,
|
|
71
74
|
architecture: emitArchitecture(resolved.config),
|
|
72
75
|
files: emitFiles(resolved),
|
|
73
|
-
violations:
|
|
74
|
-
coverage:
|
|
76
|
+
violations: validation.violations,
|
|
77
|
+
coverage: validation.coverage,
|
|
75
78
|
warnings,
|
|
76
|
-
});
|
|
79
|
+
}).pipe(Effect.withSpan('report.build'));
|
|
77
80
|
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/architecture/build-report/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { buildReport } from './build-report.js';
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
declare const ExtractError_base: new <A extends Record<string, any> = {}>(args: import("effect/Types").VoidIfEmpty<{ readonly [P in keyof A as P extends "_tag" ? never : P]: A[P]; }>) => import("effect/Cause").YieldableError & {
|
|
2
|
+
readonly _tag: "ExtractError";
|
|
3
|
+
} & Readonly<A>;
|
|
4
|
+
export declare class ExtractError extends ExtractError_base<{
|
|
5
|
+
readonly baseDir: string;
|
|
6
|
+
readonly cause: unknown;
|
|
7
|
+
}> {
|
|
8
|
+
}
|
|
9
|
+
export type LaymosError = import('../config/load-config/index.js').LoadConfigError | ExtractError;
|
|
10
|
+
export {};
|
|
11
|
+
//# sourceMappingURL=errors.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/architecture/errors.ts"],"names":[],"mappings":";;;AAEA,qBAAa,YAAa,SAAQ,kBAAiC;IACjE,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;CACzB,CAAC;CAAG;AAEL,MAAM,MAAM,WAAW,GACnB,OAAO,gCAAgC,EAAE,eAAe,GACxD,YAAY,CAAC"}
|
|
@@ -9,4 +9,4 @@ export interface FileGraph {
|
|
|
9
9
|
}
|
|
10
10
|
/** Extracts configured source roots with skott and type-only tracking enabled. */
|
|
11
11
|
export declare function extractFileGraph(baseDir: string, sourceRoots: readonly string[], ignoredPaths?: readonly string[]): Effect.Effect<FileGraph, ExtractError>;
|
|
12
|
-
//# sourceMappingURL=extract.d.ts.map
|
|
12
|
+
//# sourceMappingURL=extract-dependencies.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"extract-dependencies.d.ts","sourceRoot":"","sources":["../../../src/architecture/extract-dependencies/extract-dependencies.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,MAAM,EAAU,MAAM,QAAQ,CAAC;AAIxC,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAM5C,MAAM,WAAW,QAAQ;IACvB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;CACrC;AAED,MAAM,WAAW,SAAS;IACxB,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC;CACpD;AAED,kFAAkF;AAClF,wBAAgB,gBAAgB,CAC9B,OAAO,EAAE,MAAM,EACf,WAAW,EAAE,SAAS,MAAM,EAAE,EAC9B,YAAY,GAAE,SAAS,MAAM,EAAO,GACnC,MAAM,CAAC,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,CAgExC"}
|
|
@@ -1,17 +1,20 @@
|
|
|
1
1
|
import { readdir, stat } from 'node:fs/promises';
|
|
2
2
|
import { dirname, isAbsolute, join, relative, resolve, sep } from 'node:path';
|
|
3
|
-
import { Effect } from 'effect';
|
|
3
|
+
import { Effect, Schema } from 'effect';
|
|
4
4
|
import skott from 'skott';
|
|
5
5
|
import { pathContains } from '../../config/path.js';
|
|
6
6
|
import { ExtractError } from '../errors.js';
|
|
7
|
+
const MissingFileErrorSchema = Schema.Struct({
|
|
8
|
+
code: Schema.Literal('ENOENT'),
|
|
9
|
+
});
|
|
7
10
|
/** Extracts configured source roots with skott and type-only tracking enabled. */
|
|
8
11
|
export function extractFileGraph(baseDir, sourceRoots, ignoredPaths = []) {
|
|
9
12
|
return Effect.tryPromise({
|
|
10
13
|
try: async () => {
|
|
11
|
-
const
|
|
12
|
-
const eligibleFiles =
|
|
14
|
+
const architectureFiles = await listSourceFiles(baseDir, sourceRoots);
|
|
15
|
+
const eligibleFiles = architectureFiles.filter((path) => !ignoredPaths.some((ignored) => pathContains(ignored, path)));
|
|
13
16
|
const eligible = new Set(eligibleFiles);
|
|
14
|
-
const imports = new Map(
|
|
17
|
+
const imports = new Map(architectureFiles.map((path) => [path, new Set()]));
|
|
15
18
|
const extracted = new Set();
|
|
16
19
|
for (const sourceRoot of sourceRoots) {
|
|
17
20
|
const absolute = resolve(baseDir, sourceRoot);
|
|
@@ -56,14 +59,14 @@ export function extractFileGraph(baseDir, sourceRoots, ignoredPaths = []) {
|
|
|
56
59
|
});
|
|
57
60
|
}
|
|
58
61
|
return {
|
|
59
|
-
files: Object.fromEntries(
|
|
62
|
+
files: Object.fromEntries(architectureFiles.map((path) => [
|
|
60
63
|
path,
|
|
61
64
|
{ path, imports: [...imports.get(path)].sort() },
|
|
62
65
|
])),
|
|
63
66
|
};
|
|
64
67
|
},
|
|
65
68
|
catch: (cause) => new ExtractError({ baseDir, cause }),
|
|
66
|
-
});
|
|
69
|
+
}).pipe(Effect.withSpan('dependencies.extract'));
|
|
67
70
|
}
|
|
68
71
|
async function runSkott({ baseDir, ignoredPaths, entrypoint, cwd, }) {
|
|
69
72
|
const { getStructure } = await skott({
|
|
@@ -92,8 +95,9 @@ function collectExtractedGraph({ baseDir, eligible, graph, imports, resolutionBa
|
|
|
92
95
|
extracted.add(from);
|
|
93
96
|
for (const adjacent of node.adjacentTo) {
|
|
94
97
|
const to = findEligiblePath(baseDir, adjacent, eligible, resolutionBase);
|
|
95
|
-
if (to !== undefined)
|
|
98
|
+
if (to !== undefined) {
|
|
96
99
|
imports.get(from).add(to);
|
|
100
|
+
}
|
|
97
101
|
}
|
|
98
102
|
}
|
|
99
103
|
return extracted;
|
|
@@ -128,10 +132,7 @@ async function statOrUndefined(path) {
|
|
|
128
132
|
return await stat(path);
|
|
129
133
|
}
|
|
130
134
|
catch (cause) {
|
|
131
|
-
if (
|
|
132
|
-
cause !== null &&
|
|
133
|
-
'code' in cause &&
|
|
134
|
-
cause.code === 'ENOENT') {
|
|
135
|
+
if (Schema.is(MissingFileErrorSchema)(cause)) {
|
|
135
136
|
return undefined;
|
|
136
137
|
}
|
|
137
138
|
throw cause;
|
|
@@ -140,6 +141,7 @@ async function statOrUndefined(path) {
|
|
|
140
141
|
function isSupportedSourceFile(path) {
|
|
141
142
|
return (sourceExtensions.some((extension) => path.endsWith(extension)) &&
|
|
142
143
|
!path.endsWith('.d.ts') &&
|
|
144
|
+
!/\.(?:test|spec)\.[cm]?[jt]sx?$/.test(path) &&
|
|
143
145
|
!/\.min\.(?:[cm]?js|jsx)$/.test(path));
|
|
144
146
|
}
|
|
145
147
|
function findEligiblePath(baseDir, path, eligible, resolutionBase) {
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/architecture/extract-dependencies/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAC7D,YAAY,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { extractFileGraph } from './extract-dependencies.js';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/architecture/resolve-architecture/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAC3D,YAAY,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { resolveProject } from './resolve-architecture.js';
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Effect } from 'effect';
|
|
2
2
|
import type { LaymosConfig } from '../../config/types.js';
|
|
3
|
-
import type { FileGraph } from '../
|
|
3
|
+
import type { FileGraph } from '../extract-dependencies/index.js';
|
|
4
4
|
export type ResolvedFile = {
|
|
5
5
|
readonly kind: 'ignored';
|
|
6
6
|
readonly path: string;
|
|
@@ -21,4 +21,4 @@ export interface ResolvedProject {
|
|
|
21
21
|
}
|
|
22
22
|
/** Assigns files to layers and modules; validation happens in defineConfig. */
|
|
23
23
|
export declare function resolveProject(config: LaymosConfig, fileGraph: FileGraph): Effect.Effect<ResolvedProject>;
|
|
24
|
-
//# sourceMappingURL=resolve.d.ts.map
|
|
24
|
+
//# sourceMappingURL=resolve-architecture.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resolve-architecture.d.ts","sourceRoot":"","sources":["../../../src/architecture/resolve-architecture/resolve-architecture.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAEhC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAE1D,OAAO,KAAK,EAAE,SAAS,EAAY,MAAM,kCAAkC,CAAC;AAE5E,MAAM,MAAM,YAAY,GACpB;IAAE,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GACnD;IAAE,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GACrD;IACE,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;IACzB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;CAC1B,CAAC;AAEN,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAC;IAC9B,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAC;IAC9B,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC,CAAC;IACvD,QAAQ,CAAC,YAAY,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC,CAAC,CAAC;CACpE;AAED,+EAA+E;AAC/E,wBAAgB,cAAc,CAC5B,MAAM,EAAE,YAAY,EACpB,SAAS,EAAE,SAAS,GACnB,MAAM,CAAC,MAAM,CAAC,eAAe,CAAC,CA4DhC"}
|
|
@@ -44,7 +44,7 @@ export function resolveProject(config, fileGraph) {
|
|
|
44
44
|
fileGraph: visibleFileGraph,
|
|
45
45
|
files,
|
|
46
46
|
reachability: buildReachability(config),
|
|
47
|
-
});
|
|
47
|
+
}).pipe(Effect.withSpan('architecture.resolve'));
|
|
48
48
|
}
|
|
49
49
|
function buildReachability(config) {
|
|
50
50
|
const adjacency = new Map();
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/architecture/validate-rules/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,YAAY,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { validateRules } from './validate-rules.js';
|
package/dist/{engine/3-evaluate/evaluate.d.ts → architecture/validate-rules/validate-rules.d.ts}
RENAMED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { Effect } from 'effect';
|
|
2
2
|
import type { Coverage, LayerCoverage, LayerViolation, ModuleCoverage, ModuleViolation, Violation } from '../../report/index.js';
|
|
3
|
-
import type { ResolvedProject } from '../
|
|
3
|
+
import type { ResolvedProject } from '../resolve-architecture/index.js';
|
|
4
4
|
export type { Coverage, LayerCoverage, LayerViolation, ModuleCoverage, ModuleViolation, Violation, };
|
|
5
|
-
export interface
|
|
5
|
+
export interface RuleValidation {
|
|
6
6
|
readonly violations: readonly Violation[];
|
|
7
7
|
readonly coverage: Coverage;
|
|
8
8
|
}
|
|
9
|
-
export declare function
|
|
10
|
-
//# sourceMappingURL=
|
|
9
|
+
export declare function validateRules(resolved: ResolvedProject): Effect.Effect<RuleValidation>;
|
|
10
|
+
//# sourceMappingURL=validate-rules.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validate-rules.d.ts","sourceRoot":"","sources":["../../../src/architecture/validate-rules/validate-rules.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAEhC,OAAO,KAAK,EACV,QAAQ,EACR,aAAa,EACb,cAAc,EACd,cAAc,EACd,eAAe,EACf,SAAS,EACV,MAAM,uBAAuB,CAAC;AAC/B,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AAExE,YAAY,EACV,QAAQ,EACR,aAAa,EACb,cAAc,EACd,cAAc,EACd,eAAe,EACf,SAAS,GACV,CAAC;AAEF,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,UAAU,EAAE,SAAS,SAAS,EAAE,CAAC;IAC1C,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC;CAC7B;AAED,wBAAgB,aAAa,CAC3B,QAAQ,EAAE,eAAe,GACxB,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC,CAoG/B"}
|
package/dist/{engine/3-evaluate/evaluate.js → architecture/validate-rules/validate-rules.js}
RENAMED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Effect } from 'effect';
|
|
2
|
-
export function
|
|
2
|
+
export function validateRules(resolved) {
|
|
3
3
|
const violations = [];
|
|
4
4
|
const rules = new Map((resolved.config.moduleRules ?? []).map((rule) => [rule.module.path, rule]));
|
|
5
5
|
for (const fromPath of Object.keys(resolved.fileGraph.files).sort()) {
|
|
@@ -76,5 +76,5 @@ export function evaluateRules(resolved) {
|
|
|
76
76
|
};
|
|
77
77
|
}),
|
|
78
78
|
},
|
|
79
|
-
});
|
|
79
|
+
}).pipe(Effect.withSpan('architecture.validate'));
|
|
80
80
|
}
|
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
import { Schema } from 'effect';
|
|
2
|
+
import { LayerAnalysisSchema, type ForbiddenImport, type LayerAnalysis, type LayerDefinition } from './layer-analysis-schema.js';
|
|
3
|
+
import { ModuleAnalysisSchema, type AnalyzedModule, type AnalyzedModuleGraph, type ModuleAnalysis, type ModuleDefinition, type ModuleDependency, type ModuleGraphDefinition, type ModuleShape, type ModuleViolation, type ObservedModuleKind } from './module-analysis-schema.js';
|
|
4
|
+
import { ConfigValidationIssueSchema, ProjectConfigSchema, type Config, type ConfigValidationIssue, type ModuleConfig, type ModuleGraphConfig } from './project-config-schema.js';
|
|
5
|
+
export declare const ArchitectureAnalysisSchema: Schema.Struct<{
|
|
6
|
+
readonly config: Schema.Struct<{
|
|
7
|
+
readonly $schema: Schema.optional<Schema.String>;
|
|
8
|
+
readonly sourceRoots: Schema.$Array<Schema.String>;
|
|
9
|
+
readonly ignoredPaths: Schema.withDecodingDefaultKey<Schema.$Array<Schema.String>, never>;
|
|
10
|
+
readonly storiesPath: Schema.optional<Schema.String>;
|
|
11
|
+
readonly layers: Schema.$Record<Schema.String, Schema.Struct<{
|
|
12
|
+
readonly paths: Schema.$Array<Schema.String>;
|
|
13
|
+
readonly description: Schema.optional<Schema.String>;
|
|
14
|
+
readonly modules: Schema.withDecodingDefaultKey<Schema.$Record<Schema.String, Schema.Struct<{
|
|
15
|
+
readonly shared: Schema.withDecodingDefaultKey<Schema.Boolean, never>;
|
|
16
|
+
readonly exposed: Schema.withDecodingDefaultKey<Schema.Boolean, never>;
|
|
17
|
+
}>>, never>;
|
|
18
|
+
readonly moduleGraphs: Schema.withDecodingDefaultKey<Schema.$Record<Schema.String, Schema.Struct<{
|
|
19
|
+
readonly description: Schema.optional<Schema.String>;
|
|
20
|
+
readonly path: Schema.String;
|
|
21
|
+
readonly modules: Schema.$Record<Schema.String, Schema.Struct<{
|
|
22
|
+
readonly shared: Schema.withDecodingDefaultKey<Schema.Boolean, never>;
|
|
23
|
+
readonly exposed: Schema.withDecodingDefaultKey<Schema.Boolean, never>;
|
|
24
|
+
}>>;
|
|
25
|
+
readonly rules: Schema.withDecodingDefaultKey<Schema.$Record<Schema.String, Schema.$Array<Schema.String>>, never>;
|
|
26
|
+
}>>, never>;
|
|
27
|
+
}>>;
|
|
28
|
+
readonly layerGraphs: Schema.$Record<Schema.String, Schema.Struct<{
|
|
29
|
+
readonly description: Schema.optional<Schema.String>;
|
|
30
|
+
readonly rules: Schema.$Record<Schema.String, Schema.$Array<Schema.String>>;
|
|
31
|
+
}>>;
|
|
32
|
+
}>;
|
|
33
|
+
readonly layerAnalysis: Schema.Struct<{
|
|
34
|
+
readonly membership: Schema.$ReadonlyMap<Schema.String, Schema.String>;
|
|
35
|
+
readonly allowedDependencies: Schema.$ReadonlyMap<Schema.String, Schema.$ReadonlySet<Schema.String>>;
|
|
36
|
+
readonly unassignedFiles: Schema.$Array<Schema.String>;
|
|
37
|
+
readonly forbiddenImports: Schema.$Array<Schema.Struct<{
|
|
38
|
+
readonly fromFile: Schema.String;
|
|
39
|
+
readonly fromLayer: Schema.String;
|
|
40
|
+
readonly toFile: Schema.String;
|
|
41
|
+
readonly toLayer: Schema.String;
|
|
42
|
+
}>>;
|
|
43
|
+
readonly layersWithoutModules: Schema.$Array<Schema.String>;
|
|
44
|
+
}>;
|
|
45
|
+
readonly moduleAnalysis: Schema.Struct<{
|
|
46
|
+
readonly modules: Schema.$Array<Schema.Struct<{
|
|
47
|
+
readonly path: Schema.String;
|
|
48
|
+
readonly layer: Schema.String;
|
|
49
|
+
readonly shared: Schema.Boolean;
|
|
50
|
+
readonly exposed: Schema.Boolean;
|
|
51
|
+
readonly shape: Schema.Literals<readonly ["file", "directory"]>;
|
|
52
|
+
readonly observedKind: Schema.Literals<readonly ["regular", "root", "terminal", "isolated"]>;
|
|
53
|
+
readonly graph: Schema.optional<Schema.String>;
|
|
54
|
+
readonly member: Schema.optional<Schema.String>;
|
|
55
|
+
}>>;
|
|
56
|
+
readonly graphs: Schema.$Array<Schema.Struct<{
|
|
57
|
+
readonly id: Schema.String;
|
|
58
|
+
readonly layer: Schema.String;
|
|
59
|
+
readonly path: Schema.String;
|
|
60
|
+
readonly members: Schema.$Array<Schema.String>;
|
|
61
|
+
readonly rules: Schema.$Record<Schema.String, Schema.$Array<Schema.String>>;
|
|
62
|
+
}>>;
|
|
63
|
+
readonly membership: Schema.$ReadonlyMap<Schema.String, Schema.String>;
|
|
64
|
+
readonly entryPoints: Schema.$ReadonlySet<Schema.String>;
|
|
65
|
+
readonly dependencies: Schema.$Array<Schema.Struct<{
|
|
66
|
+
readonly fromModule: Schema.String;
|
|
67
|
+
readonly toModule: Schema.String;
|
|
68
|
+
readonly toEntryPoint: Schema.optional<Schema.String>;
|
|
69
|
+
readonly permitted: Schema.Boolean;
|
|
70
|
+
}>>;
|
|
71
|
+
readonly violations: Schema.$Array<Schema.Union<readonly [Schema.Struct<{
|
|
72
|
+
readonly kind: Schema.Literal<"coverage">;
|
|
73
|
+
readonly file: Schema.String;
|
|
74
|
+
}>, Schema.Struct<{
|
|
75
|
+
readonly kind: Schema.Literal<"graph-coverage">;
|
|
76
|
+
readonly graph: Schema.String;
|
|
77
|
+
readonly file: Schema.String;
|
|
78
|
+
}>, Schema.Struct<{
|
|
79
|
+
readonly kind: Schema.Literal<"missing-entry-point">;
|
|
80
|
+
readonly module: Schema.String;
|
|
81
|
+
readonly path: Schema.String;
|
|
82
|
+
}>, Schema.Struct<{
|
|
83
|
+
readonly fromFile: Schema.String;
|
|
84
|
+
readonly fromModule: Schema.String;
|
|
85
|
+
readonly toFile: Schema.String;
|
|
86
|
+
readonly toModule: Schema.String;
|
|
87
|
+
readonly kind: Schema.Literal<"dependency">;
|
|
88
|
+
}>, Schema.Struct<{
|
|
89
|
+
readonly fromFile: Schema.String;
|
|
90
|
+
readonly fromModule: Schema.String;
|
|
91
|
+
readonly toFile: Schema.String;
|
|
92
|
+
readonly toModule: Schema.String;
|
|
93
|
+
readonly kind: Schema.Literal<"boundary">;
|
|
94
|
+
}>, Schema.Struct<{
|
|
95
|
+
readonly kind: Schema.Literal<"cycle">;
|
|
96
|
+
readonly modules: Schema.$Array<Schema.String>;
|
|
97
|
+
}>, Schema.Struct<{
|
|
98
|
+
readonly kind: Schema.Literal<"unused-shared">;
|
|
99
|
+
readonly module: Schema.String;
|
|
100
|
+
}>, Schema.Struct<{
|
|
101
|
+
readonly kind: Schema.Literal<"dead-module">;
|
|
102
|
+
readonly module: Schema.String;
|
|
103
|
+
}>]>>;
|
|
104
|
+
}>;
|
|
105
|
+
}>;
|
|
106
|
+
export type ArchitectureAnalysis = typeof ArchitectureAnalysisSchema.Type;
|
|
107
|
+
export { ConfigValidationIssueSchema, LayerAnalysisSchema, ModuleAnalysisSchema, ProjectConfigSchema, };
|
|
108
|
+
export type { AnalyzedModule, AnalyzedModuleGraph, Config, ConfigValidationIssue, ForbiddenImport, LayerAnalysis, LayerDefinition, ModuleAnalysis, ModuleConfig, ModuleDefinition, ModuleDependency, ModuleGraphConfig, ModuleGraphDefinition, ModuleShape, ModuleViolation, ObservedModuleKind, };
|
|
109
|
+
//# sourceMappingURL=architecture-analysis-schema.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"architecture-analysis-schema.d.ts","sourceRoot":"","sources":["../../src/architecture-analysis-schema/architecture-analysis-schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAEhC,OAAO,EACL,mBAAmB,EACnB,KAAK,eAAe,EACpB,KAAK,aAAa,EAClB,KAAK,eAAe,EACrB,MAAM,4BAA4B,CAAC;AACpC,OAAO,EACL,oBAAoB,EACpB,KAAK,cAAc,EACnB,KAAK,mBAAmB,EACxB,KAAK,cAAc,EACnB,KAAK,gBAAgB,EACrB,KAAK,gBAAgB,EACrB,KAAK,qBAAqB,EAC1B,KAAK,WAAW,EAChB,KAAK,eAAe,EACpB,KAAK,kBAAkB,EACxB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EACL,2BAA2B,EAC3B,mBAAmB,EACnB,KAAK,MAAM,EACX,KAAK,qBAAqB,EAC1B,KAAK,YAAY,EACjB,KAAK,iBAAiB,EACvB,MAAM,4BAA4B,CAAC;AAEpC,eAAO,MAAM,0BAA0B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAIrC,CAAC;AAEH,MAAM,MAAM,oBAAoB,GAAG,OAAO,0BAA0B,CAAC,IAAI,CAAC;AAE1E,OAAO,EACL,2BAA2B,EAC3B,mBAAmB,EACnB,oBAAoB,EACpB,mBAAmB,GACpB,CAAC;AACF,YAAY,EACV,cAAc,EACd,mBAAmB,EACnB,MAAM,EACN,qBAAqB,EACrB,eAAe,EACf,aAAa,EACb,eAAe,EACf,cAAc,EACd,YAAY,EACZ,gBAAgB,EAChB,gBAAgB,EAChB,iBAAiB,EACjB,qBAAqB,EACrB,WAAW,EACX,eAAe,EACf,kBAAkB,GACnB,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { Schema } from 'effect';
|
|
2
|
+
import { LayerAnalysisSchema, } from './layer-analysis-schema.js';
|
|
3
|
+
import { ModuleAnalysisSchema, } from './module-analysis-schema.js';
|
|
4
|
+
import { ConfigValidationIssueSchema, ProjectConfigSchema, } from './project-config-schema.js';
|
|
5
|
+
export const ArchitectureAnalysisSchema = Schema.Struct({
|
|
6
|
+
config: ProjectConfigSchema,
|
|
7
|
+
layerAnalysis: LayerAnalysisSchema,
|
|
8
|
+
moduleAnalysis: ModuleAnalysisSchema,
|
|
9
|
+
});
|
|
10
|
+
export { ConfigValidationIssueSchema, LayerAnalysisSchema, ModuleAnalysisSchema, ProjectConfigSchema, };
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/** Browser and RPC consumers use this canonical Architecture Analysis contract. */
|
|
2
|
+
export { ArchitectureAnalysisSchema, ConfigValidationIssueSchema, LayerAnalysisSchema, ModuleAnalysisSchema, ProjectConfigSchema, } from './architecture-analysis-schema.js';
|
|
3
|
+
/** Renderers and analyzers share these browser-safe data shapes. */
|
|
4
|
+
export type { AnalyzedModule, AnalyzedModuleGraph, ArchitectureAnalysis, Config, ConfigValidationIssue, ForbiddenImport, LayerAnalysis, LayerDefinition, ModuleAnalysis, ModuleConfig, ModuleDefinition, ModuleDependency, ModuleGraphConfig, ModuleGraphDefinition, ModuleShape, ModuleViolation, ObservedModuleKind, } from './architecture-analysis-schema.js';
|
|
5
|
+
export { ModuleSourceFileSchema, ModuleSourceSnapshotSchema, } from './module-source-schema.js';
|
|
6
|
+
export type { ModuleSourceFile, ModuleSourceSnapshot, } from './module-source-schema.js';
|
|
7
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/architecture-analysis-schema/index.ts"],"names":[],"mappings":"AAAA,mFAAmF;AACnF,OAAO,EACL,0BAA0B,EAC1B,2BAA2B,EAC3B,mBAAmB,EACnB,oBAAoB,EACpB,mBAAmB,GACpB,MAAM,mCAAmC,CAAC;AAC3C,oEAAoE;AACpE,YAAY,EACV,cAAc,EACd,mBAAmB,EACnB,oBAAoB,EACpB,MAAM,EACN,qBAAqB,EACrB,eAAe,EACf,aAAa,EACb,eAAe,EACf,cAAc,EACd,YAAY,EACZ,gBAAgB,EAChB,gBAAgB,EAChB,iBAAiB,EACjB,qBAAqB,EACrB,WAAW,EACX,eAAe,EACf,kBAAkB,GACnB,MAAM,mCAAmC,CAAC;AAC3C,OAAO,EACL,sBAAsB,EACtB,0BAA0B,GAC3B,MAAM,2BAA2B,CAAC;AACnC,YAAY,EACV,gBAAgB,EAChB,oBAAoB,GACrB,MAAM,2BAA2B,CAAC"}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
/** Browser and RPC consumers use this canonical Architecture Analysis contract. */
|
|
2
|
+
export { ArchitectureAnalysisSchema, ConfigValidationIssueSchema, LayerAnalysisSchema, ModuleAnalysisSchema, ProjectConfigSchema, } from './architecture-analysis-schema.js';
|
|
3
|
+
export { ModuleSourceFileSchema, ModuleSourceSnapshotSchema, } from './module-source-schema.js';
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { Schema } from 'effect';
|
|
2
|
+
export declare const LayerDefinitionSchema: Schema.Struct<{
|
|
3
|
+
readonly paths: Schema.$Array<Schema.String>;
|
|
4
|
+
readonly description: Schema.optional<Schema.String>;
|
|
5
|
+
}>;
|
|
6
|
+
export type LayerDefinition = typeof LayerDefinitionSchema.Type;
|
|
7
|
+
export declare const ForbiddenImportSchema: Schema.Struct<{
|
|
8
|
+
readonly fromFile: Schema.String;
|
|
9
|
+
readonly fromLayer: Schema.String;
|
|
10
|
+
readonly toFile: Schema.String;
|
|
11
|
+
readonly toLayer: Schema.String;
|
|
12
|
+
}>;
|
|
13
|
+
export type ForbiddenImport = typeof ForbiddenImportSchema.Type;
|
|
14
|
+
export declare const LayerAnalysisSchema: Schema.Struct<{
|
|
15
|
+
readonly membership: Schema.$ReadonlyMap<Schema.String, Schema.String>;
|
|
16
|
+
readonly allowedDependencies: Schema.$ReadonlyMap<Schema.String, Schema.$ReadonlySet<Schema.String>>;
|
|
17
|
+
readonly unassignedFiles: Schema.$Array<Schema.String>;
|
|
18
|
+
readonly forbiddenImports: Schema.$Array<Schema.Struct<{
|
|
19
|
+
readonly fromFile: Schema.String;
|
|
20
|
+
readonly fromLayer: Schema.String;
|
|
21
|
+
readonly toFile: Schema.String;
|
|
22
|
+
readonly toLayer: Schema.String;
|
|
23
|
+
}>>;
|
|
24
|
+
readonly layersWithoutModules: Schema.$Array<Schema.String>;
|
|
25
|
+
}>;
|
|
26
|
+
export type LayerAnalysis = typeof LayerAnalysisSchema.Type;
|
|
27
|
+
//# sourceMappingURL=layer-analysis-schema.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"layer-analysis-schema.d.ts","sourceRoot":"","sources":["../../src/architecture-analysis-schema/layer-analysis-schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAEhC,eAAO,MAAM,qBAAqB;;;EAGhC,CAAC;AAEH,MAAM,MAAM,eAAe,GAAG,OAAO,qBAAqB,CAAC,IAAI,CAAC;AAEhE,eAAO,MAAM,qBAAqB;;;;;EAKhC,CAAC;AAEH,MAAM,MAAM,eAAe,GAAG,OAAO,qBAAqB,CAAC,IAAI,CAAC;AAEhE,eAAO,MAAM,mBAAmB;;;;;;;;;;;EAS9B,CAAC;AAEH,MAAM,MAAM,aAAa,GAAG,OAAO,mBAAmB,CAAC,IAAI,CAAC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { Schema } from 'effect';
|
|
2
|
+
export const LayerDefinitionSchema = Schema.Struct({
|
|
3
|
+
paths: Schema.Array(Schema.String),
|
|
4
|
+
description: Schema.optional(Schema.String),
|
|
5
|
+
});
|
|
6
|
+
export const ForbiddenImportSchema = Schema.Struct({
|
|
7
|
+
fromFile: Schema.String,
|
|
8
|
+
fromLayer: Schema.String,
|
|
9
|
+
toFile: Schema.String,
|
|
10
|
+
toLayer: Schema.String,
|
|
11
|
+
});
|
|
12
|
+
export const LayerAnalysisSchema = Schema.Struct({
|
|
13
|
+
membership: Schema.ReadonlyMap(Schema.String, Schema.String),
|
|
14
|
+
allowedDependencies: Schema.ReadonlyMap(Schema.String, Schema.ReadonlySet(Schema.String)),
|
|
15
|
+
unassignedFiles: Schema.Array(Schema.String),
|
|
16
|
+
forbiddenImports: Schema.Array(ForbiddenImportSchema),
|
|
17
|
+
layersWithoutModules: Schema.Array(Schema.String),
|
|
18
|
+
});
|