@simway/spica 0.0.0-stage → 0.1.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.
Files changed (40) hide show
  1. package/LICENSE +190 -0
  2. package/dist/admValidator.d.ts +28 -0
  3. package/dist/admValidator.d.ts.map +1 -0
  4. package/dist/admValidator.js +233 -0
  5. package/dist/admValidator.js.map +1 -0
  6. package/dist/contractProjector.d.ts +23 -0
  7. package/dist/contractProjector.d.ts.map +1 -0
  8. package/dist/contractProjector.js +269 -0
  9. package/dist/contractProjector.js.map +1 -0
  10. package/dist/dddCrewParser.d.ts +11 -0
  11. package/dist/dddCrewParser.d.ts.map +1 -0
  12. package/dist/dddCrewParser.js +519 -0
  13. package/dist/dddCrewParser.js.map +1 -0
  14. package/dist/dddCrewProjector.d.ts +16 -0
  15. package/dist/dddCrewProjector.d.ts.map +1 -0
  16. package/dist/dddCrewProjector.js +227 -0
  17. package/dist/dddCrewProjector.js.map +1 -0
  18. package/dist/defaultTemplate.d.ts +3 -0
  19. package/dist/defaultTemplate.d.ts.map +1 -0
  20. package/dist/defaultTemplate.js +1442 -0
  21. package/dist/defaultTemplate.js.map +1 -0
  22. package/dist/excalidrawProjector.d.ts +56 -0
  23. package/dist/excalidrawProjector.d.ts.map +1 -0
  24. package/dist/excalidrawProjector.js +235 -0
  25. package/dist/excalidrawProjector.js.map +1 -0
  26. package/dist/index.d.ts +8 -0
  27. package/dist/index.d.ts.map +1 -0
  28. package/dist/index.js +8 -0
  29. package/dist/index.js.map +1 -0
  30. package/dist/openApiProjector.d.ts +17 -0
  31. package/dist/openApiProjector.d.ts.map +1 -0
  32. package/dist/openApiProjector.js +298 -0
  33. package/dist/openApiProjector.js.map +1 -0
  34. package/dist/schema.d.ts +670 -0
  35. package/dist/schema.d.ts.map +1 -0
  36. package/dist/schema.js +296 -0
  37. package/dist/schema.js.map +1 -0
  38. package/dist/templates/aggregate-design-canvas-v1.1.excalidraw.json +1441 -0
  39. package/package.json +24 -3
  40. package/README.md +0 -3
@@ -0,0 +1,227 @@
1
+ function escapeTableCell(str) {
2
+ if (str === undefined || str === null)
3
+ return "";
4
+ return String(str).replace(/\|/g, "\\|").replace(/\n/g, " ");
5
+ }
6
+ /**
7
+ * Derives a clean stateDiagram-v2 Mermaid block from an aggregate's states and commands.
8
+ */
9
+ function generateStateDiagram(agg) {
10
+ const lines = ["```mermaid", "stateDiagram-v2"];
11
+ const states = agg.states || [];
12
+ // Transitions from explicit transitions list if present
13
+ const explicitTransitions = agg.transitions ?? [];
14
+ if (explicitTransitions && explicitTransitions.length > 0) {
15
+ for (const t of explicitTransitions) {
16
+ const from = t.fromState === "[*]" ? "[*]" : t.fromState;
17
+ const to = t.toState;
18
+ const guard = t.guardCondition ? ` [${t.guardCondition}]` : "";
19
+ lines.push(` ${from} --> ${to}: ${t.trigger}${guard}`);
20
+ }
21
+ }
22
+ else {
23
+ // Derive from commands
24
+ for (const cmd of agg.commands ?? []) {
25
+ if (cmd.isCreation && cmd.targetState) {
26
+ lines.push(` [*] --> ${cmd.targetState}: ${cmd.name}`);
27
+ }
28
+ else if (cmd.requiredState && cmd.targetState) {
29
+ lines.push(` ${cmd.requiredState} --> ${cmd.targetState}: ${cmd.name}`);
30
+ }
31
+ }
32
+ }
33
+ // If no transitions could be derived, list states
34
+ if (lines.length === 2 && states.length > 0) {
35
+ for (const state of states) {
36
+ lines.push(` [*] --> ${state}`);
37
+ }
38
+ }
39
+ lines.push("```");
40
+ return lines.join("\n");
41
+ }
42
+ /**
43
+ * Projects a validated AstRoot into the canonical DDD Crew Aggregate Design Canvas Markdown format (v1.1).
44
+ * Follows the official 9-box structure:
45
+ * 1. Name
46
+ * 2. Description
47
+ * 3. State Transitions (with Mermaid state diagram)
48
+ * 4. Enforced Invariants
49
+ * 5. Corrective Policies
50
+ * 6. Handled Commands
51
+ * 7. Created Events
52
+ * 8. Throughput
53
+ * 9. Size
54
+ */
55
+ export function projectDddCrewMarkdown(model) {
56
+ const lines = [];
57
+ // Title & Macro Context
58
+ lines.push(`# Aggregate Design Canvas: ${model.domainName}`);
59
+ lines.push("");
60
+ lines.push("## Context & Metadata");
61
+ lines.push(`- **Domain:** ${model.domainName}`);
62
+ if (model.systemName) {
63
+ lines.push(`- **System Name:** ${model.systemName}`);
64
+ }
65
+ if (model.systemDescription) {
66
+ lines.push(`- **System Description:** ${model.systemDescription}`);
67
+ }
68
+ lines.push(`- **Created At:** ${model.createdAt}`);
69
+ lines.push(`- **Virgo Version:** ${model.virgoVersion}`);
70
+ lines.push("");
71
+ // System Actors
72
+ if (model.actors && model.actors.length > 0) {
73
+ lines.push("### System Actors");
74
+ lines.push("| Actor | Description |");
75
+ lines.push("| --- | --- |");
76
+ for (const rawActor of model.actors) {
77
+ const actorName = typeof rawActor === "string" ? rawActor : rawActor?.name || "ActorNode";
78
+ const actorDesc = typeof rawActor === "string" ? "" : rawActor?.description || "";
79
+ lines.push(`| ${escapeTableCell(actorName)} | ${escapeTableCell(actorDesc)} |`);
80
+ }
81
+ lines.push("");
82
+ }
83
+ // External Systems
84
+ if (model.externalSystems && model.externalSystems.length > 0) {
85
+ lines.push("### External Systems");
86
+ lines.push("| System | Description | Relationship | Technology |");
87
+ lines.push("| --- | --- | --- | --- |");
88
+ for (const rawExt of model.externalSystems) {
89
+ const extName = typeof rawExt === "string" ? rawExt : rawExt?.name || "System";
90
+ const extDesc = typeof rawExt === "string" ? "" : rawExt?.description || "";
91
+ const extRel = typeof rawExt === "string" ? "" : rawExt?.relationship || "";
92
+ const extTech = typeof rawExt === "string" ? "" : rawExt?.technology || "";
93
+ lines.push(`| ${escapeTableCell(extName)} | ${escapeTableCell(extDesc)} | ${escapeTableCell(extRel)} | ${escapeTableCell(extTech)} |`);
94
+ }
95
+ lines.push("");
96
+ }
97
+ // Process Each AggregateNode via the Official 9-Box Canvas
98
+ for (let i = 0; i < model.aggregates.length; i++) {
99
+ const agg = model.aggregates[i];
100
+ const states = agg.states || [];
101
+ lines.push("---");
102
+ lines.push("");
103
+ lines.push(`# AggregateNode: ${agg.name}`);
104
+ lines.push("");
105
+ // --- Box 1: Name ---
106
+ lines.push("## 1. Name");
107
+ lines.push(`- **AggregateNode Name:** ${agg.name}`);
108
+ lines.push(`- **Root EntityNode:** ${agg.rootEntity}`);
109
+ lines.push("");
110
+ lines.push("### Entities & Fields");
111
+ lines.push("| Entity | Field | Type | Required | IsList | Description |");
112
+ lines.push("| --- | --- | --- | --- | --- | --- |");
113
+ for (const entity of agg.entities ?? []) {
114
+ for (const field of entity.fields) {
115
+ lines.push(`| ${escapeTableCell(entity.name)} | ${escapeTableCell(field.name)} | ${escapeTableCell(field.type)} | ${field.required ? "Yes" : "No"} | ${field.isList ? "Yes" : "No"} | ${escapeTableCell(field.description || "")} |`);
116
+ }
117
+ }
118
+ lines.push("");
119
+ if (agg.valueObjects && agg.valueObjects.length > 0) {
120
+ lines.push("### Value Objects");
121
+ lines.push("| ValueObject | Field | Type | Required | IsList |");
122
+ lines.push("| --- | --- | --- | --- | --- |");
123
+ for (const vo of agg.valueObjects) {
124
+ if (vo.fields && vo.fields.length > 0) {
125
+ for (const field of vo.fields) {
126
+ lines.push(`| ${escapeTableCell(vo.name)} | ${escapeTableCell(field.name)} | ${escapeTableCell(field.type)} | ${field.required ? "Yes" : "No"} | ${field.isList ? "Yes" : "No"} |`);
127
+ }
128
+ }
129
+ else if (vo.values && vo.values.length > 0) {
130
+ lines.push(`| ${escapeTableCell(vo.name)} | enum | ${escapeTableCell(vo.values.join(", "))} | Yes | No |`);
131
+ }
132
+ }
133
+ lines.push("");
134
+ }
135
+ // --- Box 2: Description ---
136
+ lines.push("## 2. Description");
137
+ const desc = `Consistency boundary for the ${agg.name} aggregate. Enforces invariants and coordinates state transitions for ${agg.rootEntity}.`;
138
+ lines.push(desc);
139
+ lines.push("");
140
+ // --- Box 3: State Transitions ---
141
+ lines.push("## 3. State Transitions");
142
+ lines.push(`- **Lifecycle States:** ${states.length > 0 ? states.join(", ") : "Single State"}`);
143
+ lines.push("");
144
+ lines.push("### State Machine Diagram");
145
+ lines.push(generateStateDiagram(agg));
146
+ lines.push("");
147
+ // Explicit Transitions table
148
+ const explicitTransitions = agg.transitions ?? [];
149
+ if (explicitTransitions && explicitTransitions.length > 0) {
150
+ lines.push("### Transitions");
151
+ lines.push("| Trigger | From State | To State | Guard Condition |");
152
+ lines.push("| --- | --- | --- | --- |");
153
+ for (const t of explicitTransitions) {
154
+ lines.push(`| ${escapeTableCell(t.trigger)} | ${escapeTableCell(t.fromState)} | ${escapeTableCell(t.toState)} | ${escapeTableCell(t.guardCondition || "-")} |`);
155
+ }
156
+ lines.push("");
157
+ }
158
+ // --- Box 4: Enforced Invariants ---
159
+ lines.push("## 4. Enforced Invariants");
160
+ const allPolicies = agg.policies || [];
161
+ if (allPolicies.length > 0) {
162
+ lines.push("| Invariant / Policy | Description | Intent Trace |");
163
+ lines.push("| --- | --- | --- |");
164
+ for (const p of allPolicies) {
165
+ lines.push(`| ${escapeTableCell(p.name)} | ${escapeTableCell(p.description)} | ${escapeTableCell(p.intentTrace || "-")} |`);
166
+ }
167
+ }
168
+ else {
169
+ lines.push(`- Enforces consistency for ${agg.rootEntity} lifecycle and identity invariants.`);
170
+ }
171
+ lines.push("");
172
+ // --- Box 5: Corrective Policies ---
173
+ lines.push("## 5. Corrective Policies");
174
+ if (agg.reducers && agg.reducers.length > 0) {
175
+ lines.push("### State Projection Reducers");
176
+ lines.push("| Command | Target Field | Operation | Source Parameter |");
177
+ lines.push("| --- | --- | --- | --- |");
178
+ for (const r of agg.reducers) {
179
+ lines.push(`| ${escapeTableCell(r.commandName)} | ${escapeTableCell(r.targetField)} | ${escapeTableCell(r.operation)} | ${escapeTableCell(r.sourceParameter)} |`);
180
+ }
181
+ }
182
+ else {
183
+ lines.push(`- No asynchronous corrective policies required; state is strictly verified at command boundary.`);
184
+ }
185
+ lines.push("");
186
+ // --- Box 6: Handled Commands ---
187
+ lines.push("## 6. Handled Commands");
188
+ lines.push("| Command | Actor | Parameters | Required State | Target State | Creation | Emits Event |");
189
+ lines.push("| --- | --- | --- | --- | --- | --- | --- |");
190
+ for (const cmd of agg.commands ?? []) {
191
+ const isCreation = cmd.isCreation ? "Yes" : "No";
192
+ const cmdName = cmd.name || "CommandNode";
193
+ const cmdActor = cmd.actor || "User";
194
+ const params = (cmd.parameters || [])
195
+ .map((p) => `${p.name || "param"}: ${p.type || "string"}${p.required ? "" : "?"}${p.isList ? "[]" : ""}`)
196
+ .join(", ") || "-";
197
+ const emits = cmd.emits || `${cmdName}Emitted`;
198
+ lines.push(`| ${escapeTableCell(cmdName)} | ${escapeTableCell(cmdActor)} | ${escapeTableCell(params)} | ${escapeTableCell(cmd.requiredState || "-")} | ${escapeTableCell(cmd.targetState || "-")} | ${isCreation} | ${escapeTableCell(emits)} |`);
199
+ }
200
+ lines.push("");
201
+ // --- Box 7: Created Events ---
202
+ lines.push("## 7. Created Events");
203
+ lines.push("| Event | Triggering Command | Emitted Data |");
204
+ lines.push("| --- | --- | --- |");
205
+ for (const cmd of agg.commands ?? []) {
206
+ const cmdName = cmd.name || "CommandNode";
207
+ const eventName = cmd.emits || `${cmdName}Emitted`;
208
+ const eventData = (cmd.parameters || []).map((p) => p.name).join(", ") || `${agg.rootEntity || "AggregateNode"} ID`;
209
+ lines.push(`| ${escapeTableCell(eventName)} | ${escapeTableCell(cmdName)} | ${escapeTableCell(eventData)} |`);
210
+ }
211
+ lines.push("");
212
+ // --- Box 8: Throughput ---
213
+ lines.push("## 8. Throughput");
214
+ lines.push("- **CommandNode Handling Rate:** Medium (~10-100 commands / minute)");
215
+ lines.push("- **Total Number of Clients:** Multiple concurrent clients");
216
+ lines.push("- **Concurrency Conflict Chance:** Low (Scoped by AggregateNode Root ID)");
217
+ lines.push("");
218
+ // --- Box 9: Size ---
219
+ lines.push("## 9. Size");
220
+ lines.push("- **Event Growth Rate:** Low-Medium (Appends on command execution)");
221
+ lines.push("- **Lifetime of a Single Instance:** Long-lived aggregate stream");
222
+ lines.push("- **Number of Events Persisted:** < 1000 events per aggregate instance");
223
+ lines.push("");
224
+ }
225
+ return lines.join("\n");
226
+ }
227
+ //# sourceMappingURL=dddCrewProjector.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dddCrewProjector.js","sourceRoot":"","sources":["../src/dddCrewProjector.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import type { ExcalidrawDocument } from "./excalidrawProjector.js";
2
+ export declare const DEFAULT_EXCALIDRAW_TEMPLATE: ExcalidrawDocument;
3
+ //# sourceMappingURL=defaultTemplate.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"defaultTemplate.d.ts","sourceRoot":"","sources":["../src/defaultTemplate.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAEnE,eAAO,MAAM,2BAA2B,EAAE,kBAg6CzC,CAAC"}