wabachi 0.2.1 → 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (50) hide show
  1. package/.codex-plugin/plugin.json +1 -1
  2. package/README.md +5 -0
  3. package/dist/architecture/cli.js +47 -32
  4. package/dist/architecture/cli.js.map +1 -1
  5. package/dist/architecture/documentation/react-flow.d.ts +23 -0
  6. package/dist/architecture/documentation/react-flow.js +436 -0
  7. package/dist/architecture/documentation/react-flow.js.map +1 -0
  8. package/dist/architecture/documentation/site.d.ts +10 -13
  9. package/dist/architecture/documentation/site.js +58 -24
  10. package/dist/architecture/documentation/site.js.map +1 -1
  11. package/dist/architecture/projection/react-flow.d.ts +96 -0
  12. package/dist/architecture/projection/react-flow.js +388 -0
  13. package/dist/architecture/projection/react-flow.js.map +1 -0
  14. package/dist/cli.js +1 -1
  15. package/dist/command-contract.d.ts +3 -2
  16. package/dist/command-contract.js +6 -5
  17. package/dist/command-contract.js.map +1 -1
  18. package/dist/index.d.ts +1 -1
  19. package/dist/index.js +1 -0
  20. package/dist/index.js.map +1 -1
  21. package/dist/runtime/repository.d.ts +3 -0
  22. package/dist/runtime/repository.js +140 -16
  23. package/dist/runtime/repository.js.map +1 -1
  24. package/dist/runtime/run.js +3 -1
  25. package/dist/runtime/run.js.map +1 -1
  26. package/dist/working-set/codec.d.ts +7 -0
  27. package/dist/working-set/codec.js +53 -0
  28. package/dist/working-set/codec.js.map +1 -0
  29. package/dist/working-set/conflicts.d.ts +46 -0
  30. package/dist/working-set/conflicts.js +97 -0
  31. package/dist/working-set/conflicts.js.map +1 -0
  32. package/dist/working-set/derive.d.ts +34 -0
  33. package/dist/working-set/derive.js +634 -0
  34. package/dist/working-set/derive.js.map +1 -0
  35. package/dist/working-set/index.d.ts +3 -0
  36. package/dist/working-set/index.js +3 -0
  37. package/dist/working-set/index.js.map +1 -0
  38. package/dist/working-set/model.d.ts +93 -0
  39. package/dist/working-set/model.js +204 -0
  40. package/dist/working-set/model.js.map +1 -0
  41. package/dist/working-set/quality.d.ts +201 -0
  42. package/dist/working-set/quality.js +447 -0
  43. package/dist/working-set/quality.js.map +1 -0
  44. package/dist/working-set/seeds.d.ts +135 -0
  45. package/dist/working-set/seeds.js +433 -0
  46. package/dist/working-set/seeds.js.map +1 -0
  47. package/docs/USAGE.md +30 -22
  48. package/docs/examples/minimal-canon.json +24 -0
  49. package/package.json +10 -3
  50. package/skills/wabachi/SKILL.md +10 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"react-flow.js","sourceRoot":"","sources":["../../../src/architecture/documentation/react-flow.ts"],"names":[],"mappings":"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"}
@@ -1,43 +1,40 @@
1
1
  import type { DocumentationModel } from "./model.js";
2
- import { type StructurizrLauncher, type StructurizrStaticExportRequest, type StructurizrStaticExportResult } from "../projection/structurizr-export.js";
3
- import type { ProjectionLoss, StructurizrProjection } from "../projection/structurizr.js";
2
+ import type { ReactFlowProjection, ReactFlowProjectionLoss } from "../projection/react-flow.js";
4
3
  export declare const ARCHITECTURE_SITE_LAYOUT: Readonly<{
5
4
  indexHtml: "index.html";
6
- workspaceDsl: "workspace.dsl";
7
5
  projectionLosses: "projection-losses.json";
8
6
  diagramsDirectory: "diagrams";
7
+ diagramsIndexHtml: "diagrams/index.html";
8
+ diagramsStylesheet: "diagrams/wabachi-react-flow.css";
9
9
  }>;
10
- export type StructurizrStaticExportAdapter = (request: StructurizrStaticExportRequest) => Promise<StructurizrStaticExportResult>;
11
10
  export interface ArchitectureSiteRequest {
12
11
  /** An absolute, caller-owned directory for all site artifacts. */
13
12
  readonly outputRoot: string;
14
13
  readonly documentation: DocumentationModel;
15
- readonly structurizr: StructurizrProjection;
16
- readonly launcher: StructurizrLauncher;
17
- readonly exportAdapter?: StructurizrStaticExportAdapter;
14
+ readonly reactFlow: ReactFlowProjection;
18
15
  }
19
16
  export interface ArchitectureSiteArtifacts {
20
17
  readonly root: string;
21
18
  readonly indexHtml: string;
22
- readonly workspaceDsl: string;
23
19
  readonly projectionLosses: string;
24
20
  readonly diagramsDirectory: string;
21
+ readonly diagramsIndexHtml: string;
22
+ readonly diagramsStylesheet: string;
25
23
  }
26
24
  export interface ArchitectureSiteResult {
27
- readonly status: "ok" | "export-failed";
28
- readonly complete: boolean;
25
+ readonly status: "ok";
26
+ readonly complete: true;
29
27
  readonly outputRoot: string;
30
28
  readonly canonVersion: DocumentationModel["canonVersion"];
31
29
  readonly documentId: DocumentationModel["documentId"];
32
- readonly losses: readonly ProjectionLoss[];
30
+ readonly losses: readonly ReactFlowProjectionLoss[];
33
31
  readonly artifacts: ArchitectureSiteArtifacts;
34
- readonly export: StructurizrStaticExportResult;
35
32
  }
36
33
  export type ArchitectureSiteErrorCode = "invalid-input" | "generation-mismatch" | "unsafe-path" | "unsafe-overwrite";
37
34
  export declare class ArchitectureSiteError extends Error {
38
35
  readonly code: ArchitectureSiteErrorCode;
39
36
  constructor(code: ArchitectureSiteErrorCode, message: string);
40
37
  }
41
- /** Assemble the independent documentation and Structurizr projections at one filesystem edge. */
38
+ /** Assemble documentation and the first-party React Flow projection at one filesystem edge. */
42
39
  export declare function buildArchitectureSite(request: ArchitectureSiteRequest): Promise<ArchitectureSiteResult>;
43
40
  export declare const assembleArchitectureSite: typeof buildArchitectureSite;
@@ -1,12 +1,24 @@
1
1
  import { lstat, mkdir, writeFile } from "node:fs/promises";
2
2
  import path from "node:path";
3
3
  import { renderDocumentationHtml } from "./html.js";
4
- import { runStructurizrStaticExport, } from "../projection/structurizr-export.js";
4
+ import { renderReactFlowStatic } from "./react-flow.js";
5
+ const HTML_ESCAPE_PATTERN = /[&<>"']/g;
6
+ const HTML_ESCAPES = {
7
+ "&": "&amp;",
8
+ "<": "&lt;",
9
+ ">": "&gt;",
10
+ '"': "&quot;",
11
+ "'": "&#39;",
12
+ };
13
+ function escapeHtml(value) {
14
+ return value.replace(HTML_ESCAPE_PATTERN, (character) => HTML_ESCAPES[character] ?? character);
15
+ }
5
16
  export const ARCHITECTURE_SITE_LAYOUT = Object.freeze({
6
17
  indexHtml: "index.html",
7
- workspaceDsl: "workspace.dsl",
8
18
  projectionLosses: "projection-losses.json",
9
19
  diagramsDirectory: "diagrams",
20
+ diagramsIndexHtml: "diagrams/index.html",
21
+ diagramsStylesheet: "diagrams/wabachi-react-flow.css",
10
22
  });
11
23
  export class ArchitectureSiteError extends Error {
12
24
  code;
@@ -45,9 +57,10 @@ function artifactPaths(outputRoot) {
45
57
  return Object.freeze({
46
58
  root: outputRoot,
47
59
  indexHtml: assertInsideRoot(outputRoot, ARCHITECTURE_SITE_LAYOUT.indexHtml),
48
- workspaceDsl: assertInsideRoot(outputRoot, ARCHITECTURE_SITE_LAYOUT.workspaceDsl),
49
60
  projectionLosses: assertInsideRoot(outputRoot, ARCHITECTURE_SITE_LAYOUT.projectionLosses),
50
61
  diagramsDirectory: assertInsideRoot(outputRoot, ARCHITECTURE_SITE_LAYOUT.diagramsDirectory),
62
+ diagramsIndexHtml: assertInsideRoot(outputRoot, ARCHITECTURE_SITE_LAYOUT.diagramsIndexHtml),
63
+ diagramsStylesheet: assertInsideRoot(outputRoot, ARCHITECTURE_SITE_LAYOUT.diagramsStylesheet),
51
64
  });
52
65
  }
53
66
  async function prepareOutput(artifacts) {
@@ -64,7 +77,12 @@ async function prepareOutput(artifacts) {
64
77
  if (verifiedRootKind !== "directory") {
65
78
  throw new ArchitectureSiteError("unsafe-path", "site output root is not a stable directory");
66
79
  }
67
- for (const target of [artifacts.indexHtml, artifacts.workspaceDsl, artifacts.projectionLosses]) {
80
+ for (const target of [
81
+ artifacts.indexHtml,
82
+ artifacts.projectionLosses,
83
+ artifacts.diagramsIndexHtml,
84
+ artifacts.diagramsStylesheet,
85
+ ]) {
68
86
  const kind = await entryKind(target);
69
87
  if (kind !== "missing") {
70
88
  throw new ArchitectureSiteError("unsafe-overwrite", `refusing to overwrite existing site artifact: ${target}`);
@@ -76,9 +94,9 @@ async function prepareOutput(artifacts) {
76
94
  }
77
95
  await mkdir(artifacts.diagramsDirectory);
78
96
  }
79
- function assertCompatibleGeneration(documentation, structurizr) {
80
- if (documentation.canonVersion !== structurizr.canonVersion || documentation.documentId !== structurizr.documentId) {
81
- throw new ArchitectureSiteError("generation-mismatch", "documentation and Structurizr projections must originate from the same Canon generation");
97
+ function assertCompatibleGeneration(documentation, reactFlow) {
98
+ if (documentation.canonVersion !== reactFlow.canonVersion || documentation.documentId !== reactFlow.documentId) {
99
+ throw new ArchitectureSiteError("generation-mismatch", "documentation and React Flow projections must originate from the same Canon generation");
82
100
  }
83
101
  }
84
102
  function siteNavigation(lossCount) {
@@ -86,7 +104,7 @@ function siteNavigation(lossCount) {
86
104
  <h2>Wabachi architecture site</h2>
87
105
  <nav aria-label="architecture-site"><ul>
88
106
  <li><a href="index.html">Documentation</a></li>
89
- <li><a href="diagrams/index.html">Structurizr diagrams</a></li>
107
+ <li><a href="diagrams/index.html">React Flow diagrams</a></li>
90
108
  <li><a href="projection-losses.json">Projection losses (${String(lossCount)})</a></li>
91
109
  </ul></nav>
92
110
  </aside>`;
@@ -100,6 +118,20 @@ function composeIndex(documentation, losses) {
100
118
  }
101
119
  return `${rendered.slice(0, insertionPoint)}${siteNavigation(losses.length)}\n${rendered.slice(insertionPoint)}`;
102
120
  }
121
+ function composeDiagrams(documentId, rendered) {
122
+ return `<!doctype html>
123
+ <html lang="en">
124
+ <head>
125
+ <meta charset="utf-8">
126
+ <meta name="viewport" content="width=device-width, initial-scale=1">
127
+ <title>${escapeHtml(documentId)} React Flow diagrams</title>
128
+ <link rel="stylesheet" href="wabachi-react-flow.css">
129
+ </head>
130
+ <body>
131
+ ${rendered.markup}
132
+ </body>
133
+ </html>`;
134
+ }
103
135
  function projectionLossReport(projection) {
104
136
  return `${JSON.stringify({
105
137
  canonVersion: projection.canonVersion,
@@ -107,40 +139,42 @@ function projectionLossReport(projection) {
107
139
  losses: projection.losses,
108
140
  }, null, 2)}\n`;
109
141
  }
110
- /** Assemble the independent documentation and Structurizr projections at one filesystem edge. */
142
+ /** Assemble documentation and the first-party React Flow projection at one filesystem edge. */
111
143
  export async function buildArchitectureSite(request) {
112
144
  if (!path.isAbsolute(request.outputRoot) || request.outputRoot.length === 0) {
113
145
  throw new ArchitectureSiteError("invalid-input", "site output root must be a non-empty absolute path");
114
146
  }
115
- assertCompatibleGeneration(request.documentation, request.structurizr);
147
+ assertCompatibleGeneration(request.documentation, request.reactFlow);
148
+ const rendered = renderReactFlowStatic(request.reactFlow);
116
149
  const outputRoot = path.resolve(request.outputRoot);
117
150
  const artifacts = artifactPaths(outputRoot);
118
151
  await prepareOutput(artifacts);
119
- await writeFile(artifacts.indexHtml, composeIndex(request.documentation, request.structurizr.losses), {
152
+ await writeFile(artifacts.indexHtml, composeIndex(request.documentation, request.reactFlow.losses), {
153
+ encoding: "utf8",
154
+ flag: "wx",
155
+ });
156
+ await writeFile(artifacts.projectionLosses, projectionLossReport(request.reactFlow), {
120
157
  encoding: "utf8",
121
158
  flag: "wx",
122
159
  });
123
- await writeFile(artifacts.workspaceDsl, request.structurizr.dsl, { encoding: "utf8", flag: "wx" });
124
- await writeFile(artifacts.projectionLosses, projectionLossReport(request.structurizr), {
160
+ await writeFile(artifacts.diagramsIndexHtml, composeDiagrams(request.reactFlow.documentId, rendered), {
125
161
  encoding: "utf8",
126
162
  flag: "wx",
127
163
  });
128
- const exportRequest = {
129
- launcher: request.launcher,
130
- workspacePath: artifacts.workspaceDsl,
131
- outputDirectory: artifacts.diagramsDirectory,
132
- };
133
- const exportResult = await (request.exportAdapter ?? runStructurizrStaticExport)(exportRequest);
134
- const complete = exportResult.status === "ok";
164
+ for (const asset of rendered.assets) {
165
+ await writeFile(assertInsideRoot(artifacts.diagramsDirectory, asset.path), asset.content, {
166
+ encoding: "utf8",
167
+ flag: "wx",
168
+ });
169
+ }
135
170
  return Object.freeze({
136
- status: complete ? "ok" : "export-failed",
137
- complete,
171
+ status: "ok",
172
+ complete: true,
138
173
  outputRoot,
139
174
  canonVersion: request.documentation.canonVersion,
140
175
  documentId: request.documentation.documentId,
141
- losses: request.structurizr.losses,
176
+ losses: request.reactFlow.losses,
142
177
  artifacts,
143
- export: exportResult,
144
178
  });
145
179
  }
146
180
  export const assembleArchitectureSite = buildArchitectureSite;
@@ -1 +1 @@
1
- {"version":3,"file":"site.js","sourceRoot":"","sources":["../../../src/architecture/documentation/site.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"site.js","sourceRoot":"","sources":["../../../src/architecture/documentation/site.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,96 @@
1
+ import type { ArchitectureDocumentV1 } from "../canon/document.js";
2
+ import type { ElementKind } from "../canon/elements.js";
3
+ import type { RelationshipKind } from "../canon/relationships.js";
4
+ import type { ViewSpec } from "../canon/views.js";
5
+ export declare const REACT_FLOW_PROJECTION_LOSS_CODES: readonly ["unsupported-view-kind", "unsupported-view-reference", "unsupported-view-exclusion", "unsupported-view-root", "unsupported-presentation", "unsupported-containment", "unsupported-relationship"];
6
+ export type ReactFlowProjectionLossCode = (typeof REACT_FLOW_PROJECTION_LOSS_CODES)[number];
7
+ export interface ReactFlowProjectionLoss {
8
+ readonly code: ReactFlowProjectionLossCode;
9
+ readonly path: string;
10
+ readonly canonIds: readonly string[];
11
+ readonly message: string;
12
+ }
13
+ export interface ReactFlowPosition {
14
+ readonly x: number;
15
+ readonly y: number;
16
+ }
17
+ export interface ReactFlowNodeData {
18
+ readonly canonId: string;
19
+ readonly viewKey: string;
20
+ readonly kind: ElementKind;
21
+ readonly label: string;
22
+ }
23
+ /** The renderer-neutral subset of a React Flow node emitted by this projection. */
24
+ export interface ReactFlowNode {
25
+ readonly id: string;
26
+ readonly type: "architecture";
27
+ readonly data: ReactFlowNodeData;
28
+ readonly position: ReactFlowPosition;
29
+ readonly width: number;
30
+ readonly height: number;
31
+ readonly parentId?: string;
32
+ readonly extent?: "parent";
33
+ }
34
+ export interface ReactFlowEdgePoint extends ReactFlowPosition {
35
+ }
36
+ export interface ReactFlowEdgeSection {
37
+ readonly startPoint: ReactFlowEdgePoint;
38
+ readonly endPoint: ReactFlowEdgePoint;
39
+ readonly bendPoints: readonly ReactFlowEdgePoint[];
40
+ }
41
+ export interface ReactFlowEdgeData {
42
+ readonly viewKey: string;
43
+ readonly canonSourceId: string;
44
+ readonly canonTargetId: string;
45
+ readonly canonRelationshipId?: string;
46
+ readonly kind: RelationshipKind;
47
+ readonly interfaceId?: string;
48
+ readonly sections: readonly ReactFlowEdgeSection[];
49
+ }
50
+ /** The renderer-neutral subset of a React Flow edge emitted by this projection. */
51
+ export interface ReactFlowEdge {
52
+ readonly id: string;
53
+ readonly type: "default";
54
+ readonly source: string;
55
+ readonly target: string;
56
+ readonly label: string;
57
+ readonly data: ReactFlowEdgeData;
58
+ }
59
+ export type ReactFlowLayoutDirection = "RIGHT" | "LEFT" | "DOWN" | "UP";
60
+ export interface ReactFlowLayoutSummary {
61
+ readonly algorithm: "layered";
62
+ readonly direction: ReactFlowLayoutDirection;
63
+ readonly nodeWidth: number;
64
+ readonly nodeHeight: number;
65
+ }
66
+ export interface ReactFlowViewProjection {
67
+ readonly key: string;
68
+ readonly kind: ViewSpec["kind"];
69
+ readonly title?: string;
70
+ readonly description?: string;
71
+ readonly layout: ReactFlowLayoutSummary;
72
+ readonly nodes: readonly ReactFlowNode[];
73
+ readonly edges: readonly ReactFlowEdge[];
74
+ readonly losses: readonly ReactFlowProjectionLoss[];
75
+ }
76
+ export interface ReactFlowProjection {
77
+ readonly canonVersion: ArchitectureDocumentV1["canonVersion"];
78
+ readonly documentId: ArchitectureDocumentV1["documentId"];
79
+ readonly nodes: readonly ReactFlowNode[];
80
+ readonly edges: readonly ReactFlowEdge[];
81
+ readonly views: readonly ReactFlowViewProjection[];
82
+ readonly losses: readonly ReactFlowProjectionLoss[];
83
+ }
84
+ export interface ReactFlowProjectionOptions {
85
+ /** Project one declared view; when omitted, all declared views are projected. */
86
+ readonly viewKey?: string;
87
+ readonly nodeWidth?: number;
88
+ readonly nodeHeight?: number;
89
+ readonly layerSpacing?: number;
90
+ readonly nodeSpacing?: number;
91
+ }
92
+ /** Project validated Architecture Canon views into deterministic React Flow + ELK data. */
93
+ export declare function projectArchitectureDocumentToReactFlow(document: ArchitectureDocumentV1, options?: ReactFlowProjectionOptions): Promise<ReactFlowProjection>;
94
+ /** Project one declared Architecture Canon view for renderers that select views individually. */
95
+ export declare function projectArchitectureViewToReactFlow(document: ArchitectureDocumentV1, viewKey: string, options?: Omit<ReactFlowProjectionOptions, "viewKey">): Promise<ReactFlowViewProjection>;
96
+ export declare const projectArchitectureToReactFlow: typeof projectArchitectureDocumentToReactFlow;