laymos 0.0.6 → 0.0.8
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/dist/architecture-analysis-schema/architecture-analysis-schema.d.ts +4 -0
- package/dist/architecture-analysis-schema/architecture-analysis-schema.d.ts.map +1 -1
- package/dist/architecture-analysis-schema/documentation-schema.d.ts +36 -0
- package/dist/architecture-analysis-schema/documentation-schema.d.ts.map +1 -0
- package/dist/architecture-analysis-schema/documentation-schema.js +19 -0
- package/dist/architecture-analysis-schema/index.d.ts +2 -0
- package/dist/architecture-analysis-schema/index.d.ts.map +1 -1
- package/dist/architecture-analysis-schema/index.js +1 -0
- package/dist/architecture-analysis-schema/project-config-schema.d.ts +9 -0
- package/dist/architecture-analysis-schema/project-config-schema.d.ts.map +1 -1
- package/dist/architecture-analysis-schema/project-config-schema.js +13 -0
- package/dist/change-set-schema/change-set-schema.d.ts +6 -0
- package/dist/change-set-schema/change-set-schema.d.ts.map +1 -1
- package/dist/change-set-schema/change-set-schema.js +8 -0
- package/dist/change-set-schema/index.d.ts +2 -2
- package/dist/change-set-schema/index.d.ts.map +1 -1
- package/dist/change-set-schema/index.js +1 -1
- package/dist/cli/lint/lint.d.ts.map +1 -1
- package/dist/cli/lint/lint.js +11 -1
- package/dist/cli/lint/stories/index.d.ts +2 -0
- package/dist/cli/lint/stories/index.d.ts.map +1 -0
- package/dist/cli/lint/stories/index.js +2 -0
- package/dist/cli/lint/stories/report.d.ts +4 -0
- package/dist/cli/lint/stories/report.d.ts.map +1 -0
- package/dist/cli/lint/stories/report.js +24 -0
- package/dist/domain/project-config/project-config.d.ts +4 -0
- package/dist/domain/project-config/project-config.d.ts.map +1 -1
- package/dist/domain/project-config/validation/paths.js +20 -4
- package/dist/index.d.ts +7 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +7 -2
- package/dist/orchestrator/analyze-project/analyze-project.d.ts +4 -0
- package/dist/orchestrator/analyze-project/analyze-project.d.ts.map +1 -1
- package/dist/orchestrator/inspect/inspect.d.ts +6 -0
- package/dist/orchestrator/inspect/inspect.d.ts.map +1 -1
- package/dist/orchestrator/load-changes/index.d.ts +1 -1
- package/dist/orchestrator/load-changes/index.d.ts.map +1 -1
- package/dist/orchestrator/load-changes/index.js +1 -1
- package/dist/orchestrator/load-changes/load-changes.d.ts +2 -1
- package/dist/orchestrator/load-changes/load-changes.d.ts.map +1 -1
- package/dist/orchestrator/load-changes/load-changes.js +6 -0
- package/dist/orchestrator/load-documentation/errors.d.ts +18 -0
- package/dist/orchestrator/load-documentation/errors.d.ts.map +1 -0
- package/dist/orchestrator/load-documentation/errors.js +5 -0
- package/dist/orchestrator/load-documentation/index.d.ts +2 -0
- package/dist/orchestrator/load-documentation/index.d.ts.map +1 -0
- package/dist/orchestrator/load-documentation/index.js +1 -0
- package/dist/orchestrator/load-documentation/load-documentation.d.ts +23 -0
- package/dist/orchestrator/load-documentation/load-documentation.d.ts.map +1 -0
- package/dist/orchestrator/load-documentation/load-documentation.js +66 -0
- package/dist/orchestrator/load-project/load-project.d.ts +4 -0
- package/dist/orchestrator/load-project/load-project.d.ts.map +1 -1
- package/dist/orchestrator/load-source-files/errors.d.ts +10 -0
- package/dist/orchestrator/load-source-files/errors.d.ts.map +1 -0
- package/dist/orchestrator/load-source-files/errors.js +3 -0
- package/dist/orchestrator/load-source-files/index.d.ts +2 -0
- package/dist/orchestrator/load-source-files/index.d.ts.map +1 -0
- package/dist/orchestrator/load-source-files/index.js +1 -0
- package/dist/orchestrator/load-source-files/load-source-files.d.ts +16 -0
- package/dist/orchestrator/load-source-files/load-source-files.d.ts.map +1 -0
- package/dist/orchestrator/load-source-files/load-source-files.js +30 -0
- package/dist/orchestrator/run-stories/errors.d.ts +1 -1
- package/dist/orchestrator/run-stories/errors.d.ts.map +1 -1
- package/dist/orchestrator/run-stories/run-stories.d.ts.map +1 -1
- package/dist/orchestrator/run-stories/run-stories.js +128 -13
- package/dist/services/git/changed-paths.d.ts +2 -1
- package/dist/services/git/changed-paths.d.ts.map +1 -1
- package/dist/services/git/changed-paths.js +16 -1
- package/dist/services/git/git.d.ts +2 -1
- package/dist/services/git/git.d.ts.map +1 -1
- package/dist/services/git/git.js +5 -1
- package/dist/story/schema/index.d.ts +2 -2
- package/dist/story/schema/index.d.ts.map +1 -1
- package/dist/story/schema/index.js +1 -1
- package/dist/story/schema/story-report-schema.d.ts +0 -30
- package/dist/story/schema/story-report-schema.d.ts.map +1 -1
- package/dist/story/schema/story-tree-schema.d.ts +13 -0
- package/dist/story/schema/story-tree-schema.d.ts.map +1 -1
- package/dist/story/schema/story-tree-schema.js +14 -2
- package/dist/story/story.d.ts +12 -3
- package/dist/story/story.d.ts.map +1 -1
- package/dist/story/story.js +8 -4
- package/package.json +2 -2
- package/schema.json +31 -0
|
@@ -8,9 +8,11 @@ export declare const ArchitectureAnalysisSchema: Schema.Struct<{
|
|
|
8
8
|
readonly sourceRoots: Schema.$Array<Schema.String>;
|
|
9
9
|
readonly ignoredPaths: Schema.$Array<Schema.String>;
|
|
10
10
|
readonly storiesPath: Schema.optional<Schema.String>;
|
|
11
|
+
readonly storyTimeout: Schema.optional<Schema.String>;
|
|
11
12
|
readonly layers: Schema.$Record<Schema.String, Schema.Struct<{
|
|
12
13
|
readonly paths: Schema.$Array<Schema.String>;
|
|
13
14
|
readonly description: Schema.optional<Schema.String>;
|
|
15
|
+
readonly docsPath: Schema.optional<Schema.String>;
|
|
14
16
|
readonly modules: Schema.$Record<Schema.String, Schema.Struct<{
|
|
15
17
|
readonly shared: Schema.Boolean;
|
|
16
18
|
readonly exposed: Schema.Boolean;
|
|
@@ -18,6 +20,7 @@ export declare const ArchitectureAnalysisSchema: Schema.Struct<{
|
|
|
18
20
|
readonly moduleGraphs: Schema.$Record<Schema.String, Schema.Struct<{
|
|
19
21
|
readonly description: Schema.optional<Schema.String>;
|
|
20
22
|
readonly path: Schema.String;
|
|
23
|
+
readonly docsPath: Schema.optional<Schema.String>;
|
|
21
24
|
readonly modules: Schema.$Record<Schema.String, Schema.Struct<{
|
|
22
25
|
readonly shared: Schema.Boolean;
|
|
23
26
|
readonly exposed: Schema.Boolean;
|
|
@@ -27,6 +30,7 @@ export declare const ArchitectureAnalysisSchema: Schema.Struct<{
|
|
|
27
30
|
}>>;
|
|
28
31
|
readonly layerGraphs: Schema.$Record<Schema.String, Schema.Struct<{
|
|
29
32
|
readonly description: Schema.optional<Schema.String>;
|
|
33
|
+
readonly docsPath: Schema.optional<Schema.String>;
|
|
30
34
|
readonly rules: Schema.$Record<Schema.String, Schema.$Array<Schema.String>>;
|
|
31
35
|
}>>;
|
|
32
36
|
}>;
|
|
@@ -1 +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,wBAAwB,EACxB,mBAAmB,EACnB,KAAK,MAAM,EACX,KAAK,qBAAqB,EAC1B,KAAK,YAAY,EACjB,KAAK,iBAAiB,EACvB,MAAM,4BAA4B,CAAC;AAEpC,eAAO,MAAM,0BAA0B
|
|
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,wBAAwB,EACxB,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,wBAAwB,EACxB,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,36 @@
|
|
|
1
|
+
import { Schema } from 'effect';
|
|
2
|
+
export declare const DocumentationScopeSchema: Schema.Union<readonly [Schema.Struct<{
|
|
3
|
+
readonly kind: Schema.Literal<"module">;
|
|
4
|
+
readonly modulePath: Schema.String;
|
|
5
|
+
}>, Schema.Struct<{
|
|
6
|
+
readonly kind: Schema.Literal<"module-graph">;
|
|
7
|
+
readonly layerId: Schema.String;
|
|
8
|
+
readonly graphId: Schema.String;
|
|
9
|
+
}>, Schema.Struct<{
|
|
10
|
+
readonly kind: Schema.Literal<"layer">;
|
|
11
|
+
readonly layerId: Schema.String;
|
|
12
|
+
}>, Schema.Struct<{
|
|
13
|
+
readonly kind: Schema.Literal<"layer-graph">;
|
|
14
|
+
readonly graphId: Schema.String;
|
|
15
|
+
}>]>;
|
|
16
|
+
export type DocumentationScope = typeof DocumentationScopeSchema.Type;
|
|
17
|
+
export declare const DocumentationSchema: Schema.Struct<{
|
|
18
|
+
readonly scope: Schema.Union<readonly [Schema.Struct<{
|
|
19
|
+
readonly kind: Schema.Literal<"module">;
|
|
20
|
+
readonly modulePath: Schema.String;
|
|
21
|
+
}>, Schema.Struct<{
|
|
22
|
+
readonly kind: Schema.Literal<"module-graph">;
|
|
23
|
+
readonly layerId: Schema.String;
|
|
24
|
+
readonly graphId: Schema.String;
|
|
25
|
+
}>, Schema.Struct<{
|
|
26
|
+
readonly kind: Schema.Literal<"layer">;
|
|
27
|
+
readonly layerId: Schema.String;
|
|
28
|
+
}>, Schema.Struct<{
|
|
29
|
+
readonly kind: Schema.Literal<"layer-graph">;
|
|
30
|
+
readonly graphId: Schema.String;
|
|
31
|
+
}>]>;
|
|
32
|
+
readonly path: Schema.optional<Schema.String>;
|
|
33
|
+
readonly content: Schema.optional<Schema.String>;
|
|
34
|
+
}>;
|
|
35
|
+
export type Documentation = typeof DocumentationSchema.Type;
|
|
36
|
+
//# sourceMappingURL=documentation-schema.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"documentation-schema.d.ts","sourceRoot":"","sources":["../../src/architecture-analysis-schema/documentation-schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAEhC,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;IAYnC,CAAC;AAEH,MAAM,MAAM,kBAAkB,GAAG,OAAO,wBAAwB,CAAC,IAAI,CAAC;AAEtE,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;EAI9B,CAAC;AAEH,MAAM,MAAM,aAAa,GAAG,OAAO,mBAAmB,CAAC,IAAI,CAAC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { Schema } from 'effect';
|
|
2
|
+
export const DocumentationScopeSchema = Schema.Union([
|
|
3
|
+
Schema.Struct({ kind: Schema.Literal('module'), modulePath: Schema.String }),
|
|
4
|
+
Schema.Struct({
|
|
5
|
+
kind: Schema.Literal('module-graph'),
|
|
6
|
+
layerId: Schema.String,
|
|
7
|
+
graphId: Schema.String,
|
|
8
|
+
}),
|
|
9
|
+
Schema.Struct({ kind: Schema.Literal('layer'), layerId: Schema.String }),
|
|
10
|
+
Schema.Struct({
|
|
11
|
+
kind: Schema.Literal('layer-graph'),
|
|
12
|
+
graphId: Schema.String,
|
|
13
|
+
}),
|
|
14
|
+
]);
|
|
15
|
+
export const DocumentationSchema = Schema.Struct({
|
|
16
|
+
scope: DocumentationScopeSchema,
|
|
17
|
+
path: Schema.optional(Schema.String),
|
|
18
|
+
content: Schema.optional(Schema.String),
|
|
19
|
+
});
|
|
@@ -4,4 +4,6 @@ export { ArchitectureAnalysisSchema, ConfigValidationIssueSchema, LayerAnalysisS
|
|
|
4
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
5
|
export { ModuleSourceFileSchema, ModuleSourceSnapshotSchema, } from './module-source-schema.js';
|
|
6
6
|
export type { ModuleSourceFile, ModuleSourceSnapshot, } from './module-source-schema.js';
|
|
7
|
+
export { DocumentationScopeSchema, DocumentationSchema, } from './documentation-schema.js';
|
|
8
|
+
export type { Documentation, DocumentationScope, } from './documentation-schema.js';
|
|
7
9
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +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,wBAAwB,EACxB,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"}
|
|
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,wBAAwB,EACxB,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;AACnC,OAAO,EACL,wBAAwB,EACxB,mBAAmB,GACpB,MAAM,2BAA2B,CAAC;AACnC,YAAY,EACV,aAAa,EACb,kBAAkB,GACnB,MAAM,2BAA2B,CAAC"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
1
|
/** Browser and RPC consumers use this canonical Architecture Analysis contract. */
|
|
2
2
|
export { ArchitectureAnalysisSchema, ConfigValidationIssueSchema, LayerAnalysisSchema, ModuleAnalysisSchema, ProjectConfigInputSchema, ProjectConfigSchema, } from './architecture-analysis-schema.js';
|
|
3
3
|
export { ModuleSourceFileSchema, ModuleSourceSnapshotSchema, } from './module-source-schema.js';
|
|
4
|
+
export { DocumentationScopeSchema, DocumentationSchema, } from './documentation-schema.js';
|
|
@@ -6,6 +6,7 @@ declare const ModuleSchema: Schema.Struct<{
|
|
|
6
6
|
declare const ModuleGraphSchema: Schema.Struct<{
|
|
7
7
|
readonly description: Schema.optional<Schema.String>;
|
|
8
8
|
readonly path: Schema.String;
|
|
9
|
+
readonly docsPath: Schema.optional<Schema.String>;
|
|
9
10
|
readonly modules: Schema.$Record<Schema.String, Schema.Struct<{
|
|
10
11
|
readonly shared: Schema.Boolean;
|
|
11
12
|
readonly exposed: Schema.Boolean;
|
|
@@ -22,9 +23,11 @@ export declare const ProjectConfigSchema: Schema.Struct<{
|
|
|
22
23
|
readonly sourceRoots: Schema.$Array<Schema.String>;
|
|
23
24
|
readonly ignoredPaths: Schema.$Array<Schema.String>;
|
|
24
25
|
readonly storiesPath: Schema.optional<Schema.String>;
|
|
26
|
+
readonly storyTimeout: Schema.optional<Schema.String>;
|
|
25
27
|
readonly layers: Schema.$Record<Schema.String, Schema.Struct<{
|
|
26
28
|
readonly paths: Schema.$Array<Schema.String>;
|
|
27
29
|
readonly description: Schema.optional<Schema.String>;
|
|
30
|
+
readonly docsPath: Schema.optional<Schema.String>;
|
|
28
31
|
readonly modules: Schema.$Record<Schema.String, Schema.Struct<{
|
|
29
32
|
readonly shared: Schema.Boolean;
|
|
30
33
|
readonly exposed: Schema.Boolean;
|
|
@@ -32,6 +35,7 @@ export declare const ProjectConfigSchema: Schema.Struct<{
|
|
|
32
35
|
readonly moduleGraphs: Schema.$Record<Schema.String, Schema.Struct<{
|
|
33
36
|
readonly description: Schema.optional<Schema.String>;
|
|
34
37
|
readonly path: Schema.String;
|
|
38
|
+
readonly docsPath: Schema.optional<Schema.String>;
|
|
35
39
|
readonly modules: Schema.$Record<Schema.String, Schema.Struct<{
|
|
36
40
|
readonly shared: Schema.Boolean;
|
|
37
41
|
readonly exposed: Schema.Boolean;
|
|
@@ -41,6 +45,7 @@ export declare const ProjectConfigSchema: Schema.Struct<{
|
|
|
41
45
|
}>>;
|
|
42
46
|
readonly layerGraphs: Schema.$Record<Schema.String, Schema.Struct<{
|
|
43
47
|
readonly description: Schema.optional<Schema.String>;
|
|
48
|
+
readonly docsPath: Schema.optional<Schema.String>;
|
|
44
49
|
readonly rules: Schema.$Record<Schema.String, Schema.$Array<Schema.String>>;
|
|
45
50
|
}>>;
|
|
46
51
|
}>;
|
|
@@ -54,9 +59,11 @@ export declare const ProjectConfigInputSchema: Schema.Struct<{
|
|
|
54
59
|
readonly sourceRoots: Schema.$Array<Schema.String>;
|
|
55
60
|
readonly ignoredPaths: Schema.withDecodingDefaultKey<Schema.$Array<Schema.String>, never>;
|
|
56
61
|
readonly storiesPath: Schema.optional<Schema.String>;
|
|
62
|
+
readonly storyTimeout: Schema.optional<Schema.String>;
|
|
57
63
|
readonly layers: Schema.$Record<Schema.String, Schema.Struct<{
|
|
58
64
|
readonly paths: Schema.$Array<Schema.String>;
|
|
59
65
|
readonly description: Schema.optional<Schema.String>;
|
|
66
|
+
readonly docsPath: Schema.optional<Schema.String>;
|
|
60
67
|
readonly modules: Schema.withDecodingDefaultKey<Schema.$Record<Schema.String, Schema.Struct<{
|
|
61
68
|
readonly shared: Schema.withDecodingDefaultKey<Schema.Boolean, never>;
|
|
62
69
|
readonly exposed: Schema.withDecodingDefaultKey<Schema.Boolean, never>;
|
|
@@ -64,6 +71,7 @@ export declare const ProjectConfigInputSchema: Schema.Struct<{
|
|
|
64
71
|
readonly moduleGraphs: Schema.withDecodingDefaultKey<Schema.$Record<Schema.String, Schema.Struct<{
|
|
65
72
|
readonly description: Schema.optional<Schema.String>;
|
|
66
73
|
readonly path: Schema.String;
|
|
74
|
+
readonly docsPath: Schema.optional<Schema.String>;
|
|
67
75
|
readonly modules: Schema.$Record<Schema.String, Schema.Struct<{
|
|
68
76
|
readonly shared: Schema.withDecodingDefaultKey<Schema.Boolean, never>;
|
|
69
77
|
readonly exposed: Schema.withDecodingDefaultKey<Schema.Boolean, never>;
|
|
@@ -73,6 +81,7 @@ export declare const ProjectConfigInputSchema: Schema.Struct<{
|
|
|
73
81
|
}>>;
|
|
74
82
|
readonly layerGraphs: Schema.$Record<Schema.String, Schema.Struct<{
|
|
75
83
|
readonly description: Schema.optional<Schema.String>;
|
|
84
|
+
readonly docsPath: Schema.optional<Schema.String>;
|
|
76
85
|
readonly rules: Schema.$Record<Schema.String, Schema.$Array<Schema.String>>;
|
|
77
86
|
}>>;
|
|
78
87
|
}>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"project-config-schema.d.ts","sourceRoot":"","sources":["../../src/architecture-analysis-schema/project-config-schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAU,MAAM,EAAE,MAAM,QAAQ,CAAC;AAiBxC,QAAA,MAAM,YAAY;;;EAGY,CAAC;
|
|
1
|
+
{"version":3,"file":"project-config-schema.d.ts","sourceRoot":"","sources":["../../src/architecture-analysis-schema/project-config-schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAU,MAAM,EAAE,MAAM,QAAQ,CAAC;AAiBxC,QAAA,MAAM,YAAY;;;EAGY,CAAC;AA0C/B,QAAA,MAAM,iBAAiB;;;;;;;;;EAQY,CAAC;AAoIpC;;;;GAIG;AACH,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAUK,CAAC;AAEtC;;;;GAIG;AACH,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAYA,CAAC;AAEtC,MAAM,MAAM,MAAM,GAAG,OAAO,mBAAmB,CAAC,IAAI,CAAC;AAErD,MAAM,MAAM,YAAY,GAAG,OAAO,YAAY,CAAC,IAAI,CAAC;AAEpD,MAAM,MAAM,iBAAiB,GAAG,OAAO,iBAAiB,CAAC,IAAI,CAAC;AAE9D,eAAO,MAAM,2BAA2B;;;EAatC,CAAC;AAEH,MAAM,MAAM,qBAAqB,GAAG,OAAO,2BAA2B,CAAC,IAAI,CAAC"}
|
|
@@ -27,12 +27,16 @@ const graphDescriptionField = Schema.optional(Schema.String).annotate({
|
|
|
27
27
|
const graphPathField = Schema.String.annotate({
|
|
28
28
|
description: 'Canonical project-relative directory rooting this Module Graph. Every member lives below it and every file below it must belong to a member.',
|
|
29
29
|
});
|
|
30
|
+
const docsPathField = Schema.optional(Schema.String).annotate({
|
|
31
|
+
description: 'Canonical project-relative path to a markdown file documenting this entity. Read-only: Laymos never writes to it.',
|
|
32
|
+
});
|
|
30
33
|
const graphModulesDescription = 'Every member of this Module Graph, keyed relative to its path. At least two members, at least one exposed, and no member may be Shared.';
|
|
31
34
|
const graphRulesDescription = 'Maps a member key to the member keys it may directly depend on. Rules are default-deny and, unlike LayerGraph Rules, are NOT transitive: only declared edges are permitted. They must be acyclic within this Module Graph.';
|
|
32
35
|
const GraphRulesSchema = Schema.Record(Schema.String, Schema.Array(Schema.String)).annotate({ description: graphRulesDescription });
|
|
33
36
|
const ModuleGraphSchema = Schema.Struct({
|
|
34
37
|
description: graphDescriptionField,
|
|
35
38
|
path: graphPathField,
|
|
39
|
+
docsPath: docsPathField,
|
|
36
40
|
modules: Schema.Record(Schema.String, ModuleSchema)
|
|
37
41
|
.annotate({ description: graphModulesDescription })
|
|
38
42
|
.pipe(Schema.check(Schema.isMinProperties(2))),
|
|
@@ -41,6 +45,7 @@ const ModuleGraphSchema = Schema.Struct({
|
|
|
41
45
|
const ModuleGraphInputSchema = Schema.Struct({
|
|
42
46
|
description: graphDescriptionField,
|
|
43
47
|
path: graphPathField,
|
|
48
|
+
docsPath: docsPathField,
|
|
44
49
|
modules: Schema.Record(Schema.String, ModuleInputSchema)
|
|
45
50
|
.annotate({ description: graphModulesDescription })
|
|
46
51
|
.pipe(Schema.check(Schema.isMinProperties(2))),
|
|
@@ -63,6 +68,7 @@ const layerModuleGraphsDescription = 'Every Module Graph in this Layer, keyed by
|
|
|
63
68
|
const LayerSchema = Schema.Struct({
|
|
64
69
|
paths: layerPathsField,
|
|
65
70
|
description: layerDescriptionField,
|
|
71
|
+
docsPath: docsPathField,
|
|
66
72
|
modules: Schema.Record(Schema.String, ModuleSchema).annotate({
|
|
67
73
|
description: layerModulesDescription,
|
|
68
74
|
}),
|
|
@@ -73,6 +79,7 @@ const LayerSchema = Schema.Struct({
|
|
|
73
79
|
const LayerInputSchema = Schema.Struct({
|
|
74
80
|
paths: layerPathsField,
|
|
75
81
|
description: layerDescriptionField,
|
|
82
|
+
docsPath: docsPathField,
|
|
76
83
|
modules: Schema.Record(Schema.String, ModuleInputSchema)
|
|
77
84
|
.annotate({ description: layerModulesDescription })
|
|
78
85
|
.pipe(Schema.withDecodingDefaultKey(Effect.succeed({}))),
|
|
@@ -84,6 +91,7 @@ const LayerGraphSchema = Schema.Struct({
|
|
|
84
91
|
description: Schema.optional(Schema.String).annotate({
|
|
85
92
|
description: 'Human-readable summary of this LayerGraph.',
|
|
86
93
|
}),
|
|
94
|
+
docsPath: docsPathField,
|
|
87
95
|
rules: Schema.Record(Schema.String, Schema.Array(Schema.String)).annotate({
|
|
88
96
|
description: 'Maps a Layer id to the Layer ids it may directly depend on. Rules are default-deny and transitive: a dependency between two Layers with no declared path between them, direct or transitive, is a violation. A Layer with no outgoing rule is a valid, intentional leaf.',
|
|
89
97
|
}),
|
|
@@ -109,6 +117,9 @@ const IgnoredPathsSchema = Schema.Array(Schema.String).annotate({
|
|
|
109
117
|
const storiesPathField = Schema.optional(Schema.String).annotate({
|
|
110
118
|
description: 'Canonical project-relative folder holding every Story file and the index.ts entry point exposing the Story Collection. Implicitly an Ignored path.',
|
|
111
119
|
});
|
|
120
|
+
const storyTimeoutField = Schema.optional(Schema.String).annotate({
|
|
121
|
+
description: 'How long one Story may run before it is failed as timed out, as an Effect Duration string (e.g. "10 seconds"). Defaults to 10 seconds; a Story may override it with its own timeout.',
|
|
122
|
+
});
|
|
112
123
|
const layersDescription = 'Every Layer in the project, keyed by id, each owning its Modules and Module Graphs.';
|
|
113
124
|
const layerGraphsField = Schema.Record(Schema.String, LayerGraphSchema).annotate({
|
|
114
125
|
description: 'Every LayerGraph in the project, keyed by id. An empty set denies every cross-Layer dependency.',
|
|
@@ -123,6 +134,7 @@ export const ProjectConfigSchema = Schema.Struct({
|
|
|
123
134
|
sourceRoots: sourceRootsField,
|
|
124
135
|
ignoredPaths: IgnoredPathsSchema,
|
|
125
136
|
storiesPath: storiesPathField,
|
|
137
|
+
storyTimeout: storyTimeoutField,
|
|
126
138
|
layers: Schema.Record(Schema.String, LayerSchema)
|
|
127
139
|
.annotate({ description: layersDescription })
|
|
128
140
|
.pipe(Schema.check(Schema.isMinProperties(1))),
|
|
@@ -138,6 +150,7 @@ export const ProjectConfigInputSchema = Schema.Struct({
|
|
|
138
150
|
sourceRoots: sourceRootsField,
|
|
139
151
|
ignoredPaths: IgnoredPathsSchema.pipe(Schema.withDecodingDefaultKey(Effect.succeed([]))),
|
|
140
152
|
storiesPath: storiesPathField,
|
|
153
|
+
storyTimeout: storyTimeoutField,
|
|
141
154
|
layers: Schema.Record(Schema.String, LayerInputSchema)
|
|
142
155
|
.annotate({ description: layersDescription })
|
|
143
156
|
.pipe(Schema.check(Schema.isMinProperties(1))),
|
|
@@ -52,4 +52,10 @@ export declare const FileDiffSchema: Schema.Struct<{
|
|
|
52
52
|
}>>;
|
|
53
53
|
}>;
|
|
54
54
|
export type FileDiff = typeof FileDiffSchema.Type;
|
|
55
|
+
export declare const BranchSchema: Schema.Struct<{
|
|
56
|
+
readonly name: Schema.String;
|
|
57
|
+
readonly remote: Schema.Boolean;
|
|
58
|
+
readonly current: Schema.Boolean;
|
|
59
|
+
}>;
|
|
60
|
+
export type Branch = typeof BranchSchema.Type;
|
|
55
61
|
//# sourceMappingURL=change-set-schema.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"change-set-schema.d.ts","sourceRoot":"","sources":["../../src/change-set-schema/change-set-schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAEhC,eAAO,MAAM,kBAAkB,iDAAyC,CAAC;AAEzE,MAAM,MAAM,YAAY,GAAG,OAAO,kBAAkB,CAAC,IAAI,CAAC;AAE1D,eAAO,MAAM,iBAAiB;;;;;EAS5B,CAAC;AAEH,MAAM,MAAM,WAAW,GAAG,OAAO,iBAAiB,CAAC,IAAI,CAAC;AAExD,eAAO,MAAM,eAAe;;;;;;;;EAO1B,CAAC;AAEH,MAAM,MAAM,SAAS,GAAG,OAAO,eAAe,CAAC,IAAI,CAAC;AAEpD,eAAO,MAAM,cAAc;;;;;EASzB,CAAC;AAEH,MAAM,MAAM,QAAQ,GAAG,OAAO,cAAc,CAAC,IAAI,CAAC;AAElD,eAAO,MAAM,cAAc;;;;;;;;;;EAQzB,CAAC;AAEH,MAAM,MAAM,QAAQ,GAAG,OAAO,cAAc,CAAC,IAAI,CAAC;AAElD,eAAO,MAAM,cAAc;;;;;;;;;;;;;EAOzB,CAAC;AAEH,MAAM,MAAM,QAAQ,GAAG,OAAO,cAAc,CAAC,IAAI,CAAC"}
|
|
1
|
+
{"version":3,"file":"change-set-schema.d.ts","sourceRoot":"","sources":["../../src/change-set-schema/change-set-schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAEhC,eAAO,MAAM,kBAAkB,iDAAyC,CAAC;AAEzE,MAAM,MAAM,YAAY,GAAG,OAAO,kBAAkB,CAAC,IAAI,CAAC;AAE1D,eAAO,MAAM,iBAAiB;;;;;EAS5B,CAAC;AAEH,MAAM,MAAM,WAAW,GAAG,OAAO,iBAAiB,CAAC,IAAI,CAAC;AAExD,eAAO,MAAM,eAAe;;;;;;;;EAO1B,CAAC;AAEH,MAAM,MAAM,SAAS,GAAG,OAAO,eAAe,CAAC,IAAI,CAAC;AAEpD,eAAO,MAAM,cAAc;;;;;EASzB,CAAC;AAEH,MAAM,MAAM,QAAQ,GAAG,OAAO,cAAc,CAAC,IAAI,CAAC;AAElD,eAAO,MAAM,cAAc;;;;;;;;;;EAQzB,CAAC;AAEH,MAAM,MAAM,QAAQ,GAAG,OAAO,cAAc,CAAC,IAAI,CAAC;AAElD,eAAO,MAAM,cAAc;;;;;;;;;;;;;EAOzB,CAAC;AAEH,MAAM,MAAM,QAAQ,GAAG,OAAO,cAAc,CAAC,IAAI,CAAC;AAElD,eAAO,MAAM,YAAY;;;;EAQvB,CAAC;AAEH,MAAM,MAAM,MAAM,GAAG,OAAO,YAAY,CAAC,IAAI,CAAC"}
|
|
@@ -41,3 +41,11 @@ export const FileDiffSchema = Schema.Struct({
|
|
|
41
41
|
title: 'File Diff',
|
|
42
42
|
description: 'The changed regions of one modified path between a Base ref and the working tree, parsed into hunks and numbered lines.',
|
|
43
43
|
});
|
|
44
|
+
export const BranchSchema = Schema.Struct({
|
|
45
|
+
name: Schema.String,
|
|
46
|
+
remote: Schema.Boolean,
|
|
47
|
+
current: Schema.Boolean,
|
|
48
|
+
}).annotate({
|
|
49
|
+
title: 'Branch',
|
|
50
|
+
description: "One local or remote-tracking branch a Change set's Base ref may name. `current` marks the branch HEAD is on.",
|
|
51
|
+
});
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
export { ChangedPathSchema, ChangeSetSchema, ChangeStatusSchema, DiffHunkSchema, DiffLineSchema, FileDiffSchema, } from './change-set-schema.js';
|
|
2
|
-
export type { ChangedPath, ChangeSet, ChangeStatus, DiffHunk, DiffLine, FileDiff, } from './change-set-schema.js';
|
|
1
|
+
export { BranchSchema, ChangedPathSchema, ChangeSetSchema, ChangeStatusSchema, DiffHunkSchema, DiffLineSchema, FileDiffSchema, } from './change-set-schema.js';
|
|
2
|
+
export type { Branch, ChangedPath, ChangeSet, ChangeStatus, DiffHunk, DiffLine, FileDiff, } from './change-set-schema.js';
|
|
3
3
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/change-set-schema/index.ts"],"names":[],"mappings":"AACA,OAAO,EACL,iBAAiB,EACjB,eAAe,EACf,kBAAkB,EAClB,cAAc,EACd,cAAc,EACd,cAAc,GACf,MAAM,wBAAwB,CAAC;AAEhC,YAAY,EACV,WAAW,EACX,SAAS,EACT,YAAY,EACZ,QAAQ,EACR,QAAQ,EACR,QAAQ,GACT,MAAM,wBAAwB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/change-set-schema/index.ts"],"names":[],"mappings":"AACA,OAAO,EACL,YAAY,EACZ,iBAAiB,EACjB,eAAe,EACf,kBAAkB,EAClB,cAAc,EACd,cAAc,EACd,cAAc,GACf,MAAM,wBAAwB,CAAC;AAEhC,YAAY,EACV,MAAM,EACN,WAAW,EACX,SAAS,EACT,YAAY,EACZ,QAAQ,EACR,QAAQ,EACR,QAAQ,GACT,MAAM,wBAAwB,CAAC"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
// RPC transports use this browser-safe runtime contract for Change sets.
|
|
2
|
-
export { ChangedPathSchema, ChangeSetSchema, ChangeStatusSchema, DiffHunkSchema, DiffLineSchema, FileDiffSchema, } from './change-set-schema.js';
|
|
2
|
+
export { BranchSchema, ChangedPathSchema, ChangeSetSchema, ChangeStatusSchema, DiffHunkSchema, DiffLineSchema, FileDiffSchema, } from './change-set-schema.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lint.d.ts","sourceRoot":"","sources":["../../../src/cli/lint/lint.ts"],"names":[],"mappings":"AAAA,OAAO,EAAW,MAAM,EAAE,MAAM,QAAQ,CAAC;AACzC,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"lint.d.ts","sourceRoot":"","sources":["../../../src/cli/lint/lint.ts"],"names":[],"mappings":"AAAA,OAAO,EAAW,MAAM,EAAE,MAAM,QAAQ,CAAC;AACzC,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAa9C,wBAAgB,eAAe,CAAC,CAAC,EAC/B,UAAU,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC,+QAW5C"}
|
package/dist/cli/lint/lint.js
CHANGED
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
import { Console, Effect } from 'effect';
|
|
2
2
|
import { Command } from 'effect/unstable/cli';
|
|
3
3
|
import { analyzeProject } from '../../orchestrator/analyze-project/index.js';
|
|
4
|
+
import { getStoryTree } from '../../orchestrator/run-stories/index.js';
|
|
4
5
|
import { makeLayersCommand } from './layers/index.js';
|
|
5
6
|
import { renderLayerReport } from './layers/report.js';
|
|
6
7
|
import { makeModulesCommand } from './modules/index.js';
|
|
7
8
|
import { renderModuleReport } from './modules/report.js';
|
|
9
|
+
import { countGroupsWithoutPage, renderStoriesReport, } from './stories/index.js';
|
|
8
10
|
export function makeLintCommand(configPath) {
|
|
9
11
|
return Command.make('lint', {}, () => configPath.pipe(Effect.flatMap(runLint))).pipe(Command.withDescription('Check every configured architectural rule.'), Command.withSubcommands([
|
|
10
12
|
makeLayersCommand(configPath),
|
|
@@ -16,11 +18,19 @@ function runLint(configPath) {
|
|
|
16
18
|
const result = yield* analyzeProject(configPath);
|
|
17
19
|
yield* Console.log(renderLayerReport(result.layerAnalysis));
|
|
18
20
|
yield* Console.log(renderModuleReport(result.moduleAnalysis));
|
|
21
|
+
const missingPages = yield* lintStories(configPath);
|
|
19
22
|
if (result.layerAnalysis.unassignedFiles.length > 0 ||
|
|
20
23
|
result.layerAnalysis.forbiddenImports.length > 0 ||
|
|
21
24
|
result.layerAnalysis.layersWithoutModules.length > 0 ||
|
|
22
|
-
result.moduleAnalysis.violations.length > 0
|
|
25
|
+
result.moduleAnalysis.violations.length > 0 ||
|
|
26
|
+
missingPages > 0) {
|
|
23
27
|
process.exitCode = 1;
|
|
24
28
|
}
|
|
25
29
|
});
|
|
26
30
|
}
|
|
31
|
+
// A project without a Stories path has no Story Groups to lint.
|
|
32
|
+
function lintStories(configPath) {
|
|
33
|
+
return getStoryTree(configPath).pipe(Effect.flatMap((tree) => Console.log(renderStoriesReport(tree)).pipe(Effect.as(countGroupsWithoutPage(tree)))), Effect.catchTag('StoriesError', (error) => error.reason === 'no-stories-path'
|
|
34
|
+
? Effect.succeed(0)
|
|
35
|
+
: Effect.die(error)));
|
|
36
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/cli/lint/stories/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,sBAAsB,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"report.d.ts","sourceRoot":"","sources":["../../../../src/cli/lint/stories/report.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAkB,MAAM,gCAAgC,CAAC;AAEhF,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,SAAS,GAAG,MAAM,CAY3D;AAED,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,SAAS,GAAG,MAAM,CAE9D"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import * as colors from 'yoctocolors';
|
|
2
|
+
export function renderStoriesReport(tree) {
|
|
3
|
+
const missing = groupsWithoutPage(tree, []);
|
|
4
|
+
if (missing.length === 0) {
|
|
5
|
+
return colors.green('✓ Every Story Group has a page');
|
|
6
|
+
}
|
|
7
|
+
return [
|
|
8
|
+
colors.red('Story Groups without a page'),
|
|
9
|
+
'',
|
|
10
|
+
...missing.map((id) => ` ${colors.yellow('✕')} ${id}`),
|
|
11
|
+
'',
|
|
12
|
+
`${missing.length} ${missing.length === 1 ? 'group' : 'groups'}`,
|
|
13
|
+
].join('\n');
|
|
14
|
+
}
|
|
15
|
+
export function countGroupsWithoutPage(tree) {
|
|
16
|
+
return groupsWithoutPage(tree, []).length;
|
|
17
|
+
}
|
|
18
|
+
function groupsWithoutPage(group, path) {
|
|
19
|
+
const id = [...path, group.title];
|
|
20
|
+
return [
|
|
21
|
+
...(group.page === null ? [id.join('/')] : []),
|
|
22
|
+
...group.groups.flatMap((child) => groupsWithoutPage(child, id)),
|
|
23
|
+
];
|
|
24
|
+
}
|
|
@@ -10,10 +10,12 @@ export declare function decodeProjectConfig(input: unknown): import("effect/Effe
|
|
|
10
10
|
readonly sourceRoots: readonly string[];
|
|
11
11
|
readonly ignoredPaths: readonly string[];
|
|
12
12
|
readonly storiesPath?: string | undefined;
|
|
13
|
+
readonly storyTimeout?: string | undefined;
|
|
13
14
|
readonly layers: {
|
|
14
15
|
readonly [x: string]: {
|
|
15
16
|
readonly paths: readonly string[];
|
|
16
17
|
readonly description?: string | undefined;
|
|
18
|
+
readonly docsPath?: string | undefined;
|
|
17
19
|
readonly modules: {
|
|
18
20
|
readonly [x: string]: {
|
|
19
21
|
readonly shared: boolean;
|
|
@@ -24,6 +26,7 @@ export declare function decodeProjectConfig(input: unknown): import("effect/Effe
|
|
|
24
26
|
readonly [x: string]: {
|
|
25
27
|
readonly description?: string | undefined;
|
|
26
28
|
readonly path: string;
|
|
29
|
+
readonly docsPath?: string | undefined;
|
|
27
30
|
readonly modules: {
|
|
28
31
|
readonly [x: string]: {
|
|
29
32
|
readonly shared: boolean;
|
|
@@ -40,6 +43,7 @@ export declare function decodeProjectConfig(input: unknown): import("effect/Effe
|
|
|
40
43
|
readonly layerGraphs: {
|
|
41
44
|
readonly [x: string]: {
|
|
42
45
|
readonly description?: string | undefined;
|
|
46
|
+
readonly docsPath?: string | undefined;
|
|
43
47
|
readonly rules: {
|
|
44
48
|
readonly [x: string]: readonly string[];
|
|
45
49
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"project-config.d.ts","sourceRoot":"","sources":["../../../src/domain/project-config/project-config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAEhC,OAAO,EACL,wBAAwB,EACxB,mBAAmB,EACnB,KAAK,MAAM,EACX,KAAK,qBAAqB,EAC3B,MAAM,6CAA6C,CAAC;AACrD,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAG7C,OAAO,EAAE,wBAAwB,EAAE,mBAAmB,EAAE,CAAC;AACzD,OAAO,EAAE,aAAa,EAAE,CAAC;AACzB,YAAY,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AACnD,YAAY,EAAE,MAAM,EAAE,qBAAqB,EAAE,CAAC;AAE9C,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,OAAO
|
|
1
|
+
{"version":3,"file":"project-config.d.ts","sourceRoot":"","sources":["../../../src/domain/project-config/project-config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAEhC,OAAO,EACL,wBAAwB,EACxB,mBAAmB,EACnB,KAAK,MAAM,EACX,KAAK,qBAAqB,EAC3B,MAAM,6CAA6C,CAAC;AACrD,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAG7C,OAAO,EAAE,wBAAwB,EAAE,mBAAmB,EAAE,CAAC;AACzD,OAAO,EAAE,aAAa,EAAE,CAAC;AACzB,YAAY,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AACnD,YAAY,EAAE,MAAM,EAAE,qBAAqB,EAAE,CAAC;AAE9C,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8BAEjD;AAED,wBAAgB,cAAc,CAC5B,MAAM,EAAE,MAAM,GACb,SAAS,qBAAqB,EAAE,CAElC;AAED,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,GACtB,SAAS,qBAAqB,EAAE,CAoBlC;AAED,wBAAgB,uBAAuB,IAAI,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAM3E"}
|
|
@@ -17,10 +17,26 @@ function configPaths(config) {
|
|
|
17
17
|
location: `ignoredPaths[${index}]`,
|
|
18
18
|
path,
|
|
19
19
|
})),
|
|
20
|
-
...Object.entries(config.layers).flatMap(([layer, value]) =>
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
20
|
+
...Object.entries(config.layers).flatMap(([layer, value]) => [
|
|
21
|
+
...value.paths.map((path, index) => ({
|
|
22
|
+
location: `layers.${layer}.paths[${index}]`,
|
|
23
|
+
path,
|
|
24
|
+
})),
|
|
25
|
+
...(value.docsPath === undefined
|
|
26
|
+
? []
|
|
27
|
+
: [{ location: `layers.${layer}.docsPath`, path: value.docsPath }]),
|
|
28
|
+
...Object.entries(value.moduleGraphs).flatMap(([graph, graphValue]) => graphValue.docsPath === undefined
|
|
29
|
+
? []
|
|
30
|
+
: [
|
|
31
|
+
{
|
|
32
|
+
location: `layers.${layer}.moduleGraphs.${graph}.docsPath`,
|
|
33
|
+
path: graphValue.docsPath,
|
|
34
|
+
},
|
|
35
|
+
]),
|
|
36
|
+
]),
|
|
37
|
+
...Object.entries(config.layerGraphs).flatMap(([graph, value]) => value.docsPath === undefined
|
|
38
|
+
? []
|
|
39
|
+
: [{ location: `layerGraphs.${graph}.docsPath`, path: value.docsPath }]),
|
|
24
40
|
];
|
|
25
41
|
}
|
|
26
42
|
function isCanonicalProjectPath(path) {
|
package/dist/index.d.ts
CHANGED
|
@@ -1,9 +1,13 @@
|
|
|
1
1
|
export { analyzeProject } from './orchestrator/analyze-project/index.js';
|
|
2
2
|
export { loadModuleSource, ModuleSourceNotFound, ModuleSourceReadError, } from './orchestrator/load-module-source/index.js';
|
|
3
|
+
export { loadDocumentation, DocumentationReadError, DocumentationScopeNotFound, } from './orchestrator/load-documentation/index.js';
|
|
4
|
+
export { loadSourceFiles, SourceFileReadError, } from './orchestrator/load-source-files/index.js';
|
|
3
5
|
export { ArchitectureAnalysisSchema } from './architecture-analysis-schema/index.js';
|
|
4
6
|
export type { ArchitectureAnalysis } from './architecture-analysis-schema/index.js';
|
|
5
7
|
export { ModuleSourceSnapshotSchema } from './architecture-analysis-schema/index.js';
|
|
6
8
|
export type { ModuleSourceFile, ModuleSourceSnapshot, } from './architecture-analysis-schema/index.js';
|
|
9
|
+
export { DocumentationScopeSchema, DocumentationSchema, } from './architecture-analysis-schema/index.js';
|
|
10
|
+
export type { Documentation, DocumentationScope, } from './architecture-analysis-schema/index.js';
|
|
7
11
|
export { InspectionTargetNotFound, ModuleInspectionCycle, inspectFile, inspectLayer, inspectModule, inspectProject, } from './orchestrator/inspect/index.js';
|
|
8
12
|
export type { FileInspection, FileInspectionOptions, LayerInspection, ModuleInspection, ProjectInspection, } from './orchestrator/inspect/index.js';
|
|
9
13
|
export { ConfigError } from './services/config/index.js';
|
|
@@ -11,8 +15,8 @@ export { CruiseError } from './services/file-cruiser/index.js';
|
|
|
11
15
|
export { getStoryTree, planStories, runStories, StoriesError, } from './orchestrator/run-stories/index.js';
|
|
12
16
|
export { StoryReportSchema, StoryTreeSchema } from './story/schema/index.js';
|
|
13
17
|
export type { StoryReport, StoryTree } from './story/schema/index.js';
|
|
14
|
-
export { loadChangeSet, loadFileDiff, } from './orchestrator/load-changes/index.js';
|
|
18
|
+
export { loadBranches, loadChangeSet, loadFileDiff, } from './orchestrator/load-changes/index.js';
|
|
15
19
|
export { GitError } from './services/git/index.js';
|
|
16
|
-
export { ChangedPathSchema, ChangeSetSchema, ChangeStatusSchema, DiffHunkSchema, DiffLineSchema, FileDiffSchema, } from './change-set-schema/index.js';
|
|
17
|
-
export type { ChangedPath, ChangeSet, ChangeStatus, DiffHunk, DiffLine, FileDiff, } from './change-set-schema/index.js';
|
|
20
|
+
export { BranchSchema, ChangedPathSchema, ChangeSetSchema, ChangeStatusSchema, DiffHunkSchema, DiffLineSchema, FileDiffSchema, } from './change-set-schema/index.js';
|
|
21
|
+
export type { Branch, ChangedPath, ChangeSet, ChangeStatus, DiffHunk, DiffLine, FileDiff, } from './change-set-schema/index.js';
|
|
18
22
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,yCAAyC,CAAC;AAEzE,OAAO,EACL,gBAAgB,EAChB,oBAAoB,EACpB,qBAAqB,GACtB,MAAM,4CAA4C,CAAC;AAEpD,OAAO,EAAE,0BAA0B,EAAE,MAAM,yCAAyC,CAAC;AAErF,YAAY,EAAE,oBAAoB,EAAE,MAAM,yCAAyC,CAAC;AACpF,OAAO,EAAE,0BAA0B,EAAE,MAAM,yCAAyC,CAAC;AACrF,YAAY,EACV,gBAAgB,EAChB,oBAAoB,GACrB,MAAM,yCAAyC,CAAC;AACjD,OAAO,EACL,wBAAwB,EACxB,qBAAqB,EACrB,WAAW,EACX,YAAY,EACZ,aAAa,EACb,cAAc,GACf,MAAM,iCAAiC,CAAC;AACzC,YAAY,EACV,cAAc,EACd,qBAAqB,EACrB,eAAe,EACf,gBAAgB,EAChB,iBAAiB,GAClB,MAAM,iCAAiC,CAAC;AAEzC,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAEzD,OAAO,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAC;AAE/D,OAAO,EACL,YAAY,EACZ,WAAW,EACX,UAAU,EACV,YAAY,GACb,MAAM,qCAAqC,CAAC;AAE7C,OAAO,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC7E,YAAY,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAEtE,OAAO,EACL,aAAa,EACb,YAAY,GACb,MAAM,sCAAsC,CAAC;AAE9C,OAAO,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAEnD,OAAO,EACL,iBAAiB,EACjB,eAAe,EACf,kBAAkB,EAClB,cAAc,EACd,cAAc,EACd,cAAc,GACf,MAAM,8BAA8B,CAAC;AAEtC,YAAY,EACV,WAAW,EACX,SAAS,EACT,YAAY,EACZ,QAAQ,EACR,QAAQ,EACR,QAAQ,GACT,MAAM,8BAA8B,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,yCAAyC,CAAC;AAEzE,OAAO,EACL,gBAAgB,EAChB,oBAAoB,EACpB,qBAAqB,GACtB,MAAM,4CAA4C,CAAC;AAEpD,OAAO,EACL,iBAAiB,EACjB,sBAAsB,EACtB,0BAA0B,GAC3B,MAAM,4CAA4C,CAAC;AAEpD,OAAO,EACL,eAAe,EACf,mBAAmB,GACpB,MAAM,2CAA2C,CAAC;AAEnD,OAAO,EAAE,0BAA0B,EAAE,MAAM,yCAAyC,CAAC;AAErF,YAAY,EAAE,oBAAoB,EAAE,MAAM,yCAAyC,CAAC;AACpF,OAAO,EAAE,0BAA0B,EAAE,MAAM,yCAAyC,CAAC;AACrF,YAAY,EACV,gBAAgB,EAChB,oBAAoB,GACrB,MAAM,yCAAyC,CAAC;AACjD,OAAO,EACL,wBAAwB,EACxB,mBAAmB,GACpB,MAAM,yCAAyC,CAAC;AACjD,YAAY,EACV,aAAa,EACb,kBAAkB,GACnB,MAAM,yCAAyC,CAAC;AACjD,OAAO,EACL,wBAAwB,EACxB,qBAAqB,EACrB,WAAW,EACX,YAAY,EACZ,aAAa,EACb,cAAc,GACf,MAAM,iCAAiC,CAAC;AACzC,YAAY,EACV,cAAc,EACd,qBAAqB,EACrB,eAAe,EACf,gBAAgB,EAChB,iBAAiB,GAClB,MAAM,iCAAiC,CAAC;AAEzC,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAEzD,OAAO,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAC;AAE/D,OAAO,EACL,YAAY,EACZ,WAAW,EACX,UAAU,EACV,YAAY,GACb,MAAM,qCAAqC,CAAC;AAE7C,OAAO,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC7E,YAAY,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAEtE,OAAO,EACL,YAAY,EACZ,aAAa,EACb,YAAY,GACb,MAAM,sCAAsC,CAAC;AAE9C,OAAO,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAEnD,OAAO,EACL,YAAY,EACZ,iBAAiB,EACjB,eAAe,EACf,kBAAkB,EAClB,cAAc,EACd,cAAc,EACd,cAAc,GACf,MAAM,8BAA8B,CAAC;AAEtC,YAAY,EACV,MAAM,EACN,WAAW,EACX,SAAS,EACT,YAAY,EACZ,QAAQ,EACR,QAAQ,EACR,QAAQ,GACT,MAAM,8BAA8B,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -2,9 +2,14 @@
|
|
|
2
2
|
export { analyzeProject } from './orchestrator/analyze-project/index.js';
|
|
3
3
|
// Node consumers use this high-level capability to inspect one Configured Module.
|
|
4
4
|
export { loadModuleSource, ModuleSourceNotFound, ModuleSourceReadError, } from './orchestrator/load-module-source/index.js';
|
|
5
|
+
// Node consumers use this high-level capability to read documentation at any scope.
|
|
6
|
+
export { loadDocumentation, DocumentationReadError, DocumentationScopeNotFound, } from './orchestrator/load-documentation/index.js';
|
|
7
|
+
// Node consumers use this high-level capability to read arbitrary source files by path.
|
|
8
|
+
export { loadSourceFiles, SourceFileReadError, } from './orchestrator/load-source-files/index.js';
|
|
5
9
|
// RPC transports use this browser-safe runtime contract for Architecture Analysis.
|
|
6
10
|
export { ArchitectureAnalysisSchema } from './architecture-analysis-schema/index.js';
|
|
7
11
|
export { ModuleSourceSnapshotSchema } from './architecture-analysis-schema/index.js';
|
|
12
|
+
export { DocumentationScopeSchema, DocumentationSchema, } from './architecture-analysis-schema/index.js';
|
|
8
13
|
export { InspectionTargetNotFound, ModuleInspectionCycle, inspectFile, inspectLayer, inspectModule, inspectProject, } from './orchestrator/inspect/index.js';
|
|
9
14
|
// Analysis callers distinguish Config loading and validation failures.
|
|
10
15
|
export { ConfigError } from './services/config/index.js';
|
|
@@ -15,8 +20,8 @@ export { getStoryTree, planStories, runStories, StoriesError, } from './orchestr
|
|
|
15
20
|
// RPC transports use this browser-safe runtime contract for Story reports.
|
|
16
21
|
export { StoryReportSchema, StoryTreeSchema } from './story/schema/index.js';
|
|
17
22
|
// Node consumers use this high-level capability to report what a Base ref changed.
|
|
18
|
-
export { loadChangeSet, loadFileDiff, } from './orchestrator/load-changes/index.js';
|
|
23
|
+
export { loadBranches, loadChangeSet, loadFileDiff, } from './orchestrator/load-changes/index.js';
|
|
19
24
|
// Change set callers distinguish a missing repository from a failed git command.
|
|
20
25
|
export { GitError } from './services/git/index.js';
|
|
21
26
|
// RPC transports use this browser-safe runtime contract for Change sets.
|
|
22
|
-
export { ChangedPathSchema, ChangeSetSchema, ChangeStatusSchema, DiffHunkSchema, DiffLineSchema, FileDiffSchema, } from './change-set-schema/index.js';
|
|
27
|
+
export { BranchSchema, ChangedPathSchema, ChangeSetSchema, ChangeStatusSchema, DiffHunkSchema, DiffLineSchema, FileDiffSchema, } from './change-set-schema/index.js';
|
|
@@ -5,10 +5,12 @@ export declare function analyzeProject(configPath: string): Effect.Effect<{
|
|
|
5
5
|
readonly sourceRoots: readonly string[];
|
|
6
6
|
readonly ignoredPaths: readonly string[];
|
|
7
7
|
readonly storiesPath?: string | undefined;
|
|
8
|
+
readonly storyTimeout?: string | undefined;
|
|
8
9
|
readonly layers: {
|
|
9
10
|
readonly [x: string]: {
|
|
10
11
|
readonly paths: readonly string[];
|
|
11
12
|
readonly description?: string | undefined;
|
|
13
|
+
readonly docsPath?: string | undefined;
|
|
12
14
|
readonly modules: {
|
|
13
15
|
readonly [x: string]: {
|
|
14
16
|
readonly shared: boolean;
|
|
@@ -19,6 +21,7 @@ export declare function analyzeProject(configPath: string): Effect.Effect<{
|
|
|
19
21
|
readonly [x: string]: {
|
|
20
22
|
readonly description?: string | undefined;
|
|
21
23
|
readonly path: string;
|
|
24
|
+
readonly docsPath?: string | undefined;
|
|
22
25
|
readonly modules: {
|
|
23
26
|
readonly [x: string]: {
|
|
24
27
|
readonly shared: boolean;
|
|
@@ -35,6 +38,7 @@ export declare function analyzeProject(configPath: string): Effect.Effect<{
|
|
|
35
38
|
readonly layerGraphs: {
|
|
36
39
|
readonly [x: string]: {
|
|
37
40
|
readonly description?: string | undefined;
|
|
41
|
+
readonly docsPath?: string | undefined;
|
|
38
42
|
readonly rules: {
|
|
39
43
|
readonly [x: string]: readonly string[];
|
|
40
44
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"analyze-project.d.ts","sourceRoot":"","sources":["../../../src/orchestrator/analyze-project/analyze-project.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAQhC,wBAAgB,cAAc,CAAC,UAAU,EAAE,MAAM
|
|
1
|
+
{"version":3,"file":"analyze-project.d.ts","sourceRoot":"","sources":["../../../src/orchestrator/analyze-project/analyze-project.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAQhC,wBAAgB,cAAc,CAAC,UAAU,EAAE,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+HAShD"}
|
|
@@ -53,10 +53,12 @@ export declare function inspectProject(configPath: string): Effect.Effect<{
|
|
|
53
53
|
readonly sourceRoots: readonly string[];
|
|
54
54
|
readonly ignoredPaths: readonly string[];
|
|
55
55
|
readonly storiesPath?: string | undefined;
|
|
56
|
+
readonly storyTimeout?: string | undefined;
|
|
56
57
|
readonly layers: {
|
|
57
58
|
readonly [x: string]: {
|
|
58
59
|
readonly paths: readonly string[];
|
|
59
60
|
readonly description?: string | undefined;
|
|
61
|
+
readonly docsPath?: string | undefined;
|
|
60
62
|
readonly modules: {
|
|
61
63
|
readonly [x: string]: {
|
|
62
64
|
readonly shared: boolean;
|
|
@@ -67,6 +69,7 @@ export declare function inspectProject(configPath: string): Effect.Effect<{
|
|
|
67
69
|
readonly [x: string]: {
|
|
68
70
|
readonly description?: string | undefined;
|
|
69
71
|
readonly path: string;
|
|
72
|
+
readonly docsPath?: string | undefined;
|
|
70
73
|
readonly modules: {
|
|
71
74
|
readonly [x: string]: {
|
|
72
75
|
readonly shared: boolean;
|
|
@@ -83,6 +86,7 @@ export declare function inspectProject(configPath: string): Effect.Effect<{
|
|
|
83
86
|
readonly layerGraphs: {
|
|
84
87
|
readonly [x: string]: {
|
|
85
88
|
readonly description?: string | undefined;
|
|
89
|
+
readonly docsPath?: string | undefined;
|
|
86
90
|
readonly rules: {
|
|
87
91
|
readonly [x: string]: readonly string[];
|
|
88
92
|
};
|
|
@@ -169,6 +173,7 @@ export declare function inspectLayer(configPath: string, target: string): Effect
|
|
|
169
173
|
definition: {
|
|
170
174
|
readonly paths: readonly string[];
|
|
171
175
|
readonly description?: string | undefined;
|
|
176
|
+
readonly docsPath?: string | undefined;
|
|
172
177
|
readonly modules: {
|
|
173
178
|
readonly [x: string]: {
|
|
174
179
|
readonly shared: boolean;
|
|
@@ -179,6 +184,7 @@ export declare function inspectLayer(configPath: string, target: string): Effect
|
|
|
179
184
|
readonly [x: string]: {
|
|
180
185
|
readonly description?: string | undefined;
|
|
181
186
|
readonly path: string;
|
|
187
|
+
readonly docsPath?: string | undefined;
|
|
182
188
|
readonly modules: {
|
|
183
189
|
readonly [x: string]: {
|
|
184
190
|
readonly shared: boolean;
|