docviz-builder 0.1.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 (233) hide show
  1. package/AGENTS.md +371 -0
  2. package/LICENSE +21 -0
  3. package/README.md +837 -0
  4. package/bin/docviz-mcp.mjs +10 -0
  5. package/bin/docviz.mjs +11 -0
  6. package/dist/build/builder.d.ts +62 -0
  7. package/dist/build/builder.d.ts.map +1 -0
  8. package/dist/build/builder.js +337 -0
  9. package/dist/build/builder.js.map +1 -0
  10. package/dist/build/diff.d.ts +64 -0
  11. package/dist/build/diff.d.ts.map +1 -0
  12. package/dist/build/diff.js +156 -0
  13. package/dist/build/diff.js.map +1 -0
  14. package/dist/build/doctor.d.ts +39 -0
  15. package/dist/build/doctor.d.ts.map +1 -0
  16. package/dist/build/doctor.js +190 -0
  17. package/dist/build/doctor.js.map +1 -0
  18. package/dist/build/init.d.ts +28 -0
  19. package/dist/build/init.d.ts.map +1 -0
  20. package/dist/build/init.js +274 -0
  21. package/dist/build/init.js.map +1 -0
  22. package/dist/build/preview.d.ts +13 -0
  23. package/dist/build/preview.d.ts.map +1 -0
  24. package/dist/build/preview.js +277 -0
  25. package/dist/build/preview.js.map +1 -0
  26. package/dist/build/skill.d.ts +41 -0
  27. package/dist/build/skill.d.ts.map +1 -0
  28. package/dist/build/skill.js +63 -0
  29. package/dist/build/skill.js.map +1 -0
  30. package/dist/build/verify.d.ts +26 -0
  31. package/dist/build/verify.d.ts.map +1 -0
  32. package/dist/build/verify.js +99 -0
  33. package/dist/build/verify.js.map +1 -0
  34. package/dist/cli.d.ts +20 -0
  35. package/dist/cli.d.ts.map +1 -0
  36. package/dist/cli.js +427 -0
  37. package/dist/cli.js.map +1 -0
  38. package/dist/config/load.d.ts +32 -0
  39. package/dist/config/load.d.ts.map +1 -0
  40. package/dist/config/load.js +279 -0
  41. package/dist/config/load.js.map +1 -0
  42. package/dist/config/types.d.ts +89 -0
  43. package/dist/config/types.d.ts.map +1 -0
  44. package/dist/config/types.js +5 -0
  45. package/dist/config/types.js.map +1 -0
  46. package/dist/core/cache.d.ts +32 -0
  47. package/dist/core/cache.d.ts.map +1 -0
  48. package/dist/core/cache.js +69 -0
  49. package/dist/core/cache.js.map +1 -0
  50. package/dist/core/errors.d.ts +115 -0
  51. package/dist/core/errors.d.ts.map +1 -0
  52. package/dist/core/errors.js +164 -0
  53. package/dist/core/errors.js.map +1 -0
  54. package/dist/core/hash.d.ts +57 -0
  55. package/dist/core/hash.d.ts.map +1 -0
  56. package/dist/core/hash.js +0 -0
  57. package/dist/core/hash.js.map +1 -0
  58. package/dist/core/package-version.d.ts +9 -0
  59. package/dist/core/package-version.d.ts.map +1 -0
  60. package/dist/core/package-version.js +44 -0
  61. package/dist/core/package-version.js.map +1 -0
  62. package/dist/core/paths.d.ts +46 -0
  63. package/dist/core/paths.d.ts.map +1 -0
  64. package/dist/core/paths.js +105 -0
  65. package/dist/core/paths.js.map +1 -0
  66. package/dist/core/registry.d.ts +24 -0
  67. package/dist/core/registry.d.ts.map +1 -0
  68. package/dist/core/registry.js +72 -0
  69. package/dist/core/registry.js.map +1 -0
  70. package/dist/core/types.d.ts +78 -0
  71. package/dist/core/types.d.ts.map +1 -0
  72. package/dist/core/types.js +11 -0
  73. package/dist/core/types.js.map +1 -0
  74. package/dist/dsl/architecture.d.ts +15 -0
  75. package/dist/dsl/architecture.d.ts.map +1 -0
  76. package/dist/dsl/architecture.js +242 -0
  77. package/dist/dsl/architecture.js.map +1 -0
  78. package/dist/dsl/catalog.d.ts +62 -0
  79. package/dist/dsl/catalog.d.ts.map +1 -0
  80. package/dist/dsl/catalog.en.d.ts +18 -0
  81. package/dist/dsl/catalog.en.d.ts.map +1 -0
  82. package/dist/dsl/catalog.en.js +299 -0
  83. package/dist/dsl/catalog.en.js.map +1 -0
  84. package/dist/dsl/catalog.js +1082 -0
  85. package/dist/dsl/catalog.js.map +1 -0
  86. package/dist/dsl/chart.d.ts +14 -0
  87. package/dist/dsl/chart.d.ts.map +1 -0
  88. package/dist/dsl/chart.js +435 -0
  89. package/dist/dsl/chart.js.map +1 -0
  90. package/dist/dsl/compile.d.ts +31 -0
  91. package/dist/dsl/compile.d.ts.map +1 -0
  92. package/dist/dsl/compile.js +120 -0
  93. package/dist/dsl/compile.js.map +1 -0
  94. package/dist/dsl/diagram-bpmn.d.ts +13 -0
  95. package/dist/dsl/diagram-bpmn.d.ts.map +1 -0
  96. package/dist/dsl/diagram-bpmn.js +215 -0
  97. package/dist/dsl/diagram-bpmn.js.map +1 -0
  98. package/dist/dsl/diagram-product.d.ts +15 -0
  99. package/dist/dsl/diagram-product.d.ts.map +1 -0
  100. package/dist/dsl/diagram-product.js +291 -0
  101. package/dist/dsl/diagram-product.js.map +1 -0
  102. package/dist/dsl/diagram-technical.d.ts +28 -0
  103. package/dist/dsl/diagram-technical.d.ts.map +1 -0
  104. package/dist/dsl/diagram-technical.js +365 -0
  105. package/dist/dsl/diagram-technical.js.map +1 -0
  106. package/dist/dsl/diagram.d.ts +22 -0
  107. package/dist/dsl/diagram.d.ts.map +1 -0
  108. package/dist/dsl/diagram.js +542 -0
  109. package/dist/dsl/diagram.js.map +1 -0
  110. package/dist/dsl/fallbacks-d2.d.ts +27 -0
  111. package/dist/dsl/fallbacks-d2.d.ts.map +1 -0
  112. package/dist/dsl/fallbacks-d2.js +265 -0
  113. package/dist/dsl/fallbacks-d2.js.map +1 -0
  114. package/dist/dsl/fallbacks.d.ts +25 -0
  115. package/dist/dsl/fallbacks.d.ts.map +1 -0
  116. package/dist/dsl/fallbacks.js +264 -0
  117. package/dist/dsl/fallbacks.js.map +1 -0
  118. package/dist/dsl/fields.d.ts +93 -0
  119. package/dist/dsl/fields.d.ts.map +1 -0
  120. package/dist/dsl/fields.js +233 -0
  121. package/dist/dsl/fields.js.map +1 -0
  122. package/dist/dsl/index.d.ts +50 -0
  123. package/dist/dsl/index.d.ts.map +1 -0
  124. package/dist/dsl/index.js +114 -0
  125. package/dist/dsl/index.js.map +1 -0
  126. package/dist/dsl/util.d.ts +105 -0
  127. package/dist/dsl/util.d.ts.map +1 -0
  128. package/dist/dsl/util.js +261 -0
  129. package/dist/dsl/util.js.map +1 -0
  130. package/dist/index.d.ts +27 -0
  131. package/dist/index.d.ts.map +1 -0
  132. package/dist/index.js +21 -0
  133. package/dist/index.js.map +1 -0
  134. package/dist/markdown/scan.d.ts +73 -0
  135. package/dist/markdown/scan.d.ts.map +1 -0
  136. package/dist/markdown/scan.js +150 -0
  137. package/dist/markdown/scan.js.map +1 -0
  138. package/dist/markdown/transform.d.ts +28 -0
  139. package/dist/markdown/transform.d.ts.map +1 -0
  140. package/dist/markdown/transform.js +38 -0
  141. package/dist/markdown/transform.js.map +1 -0
  142. package/dist/mcp/server.d.ts +18 -0
  143. package/dist/mcp/server.d.ts.map +1 -0
  144. package/dist/mcp/server.js +118 -0
  145. package/dist/mcp/server.js.map +1 -0
  146. package/dist/mcp/tools.d.ts +118 -0
  147. package/dist/mcp/tools.d.ts.map +1 -0
  148. package/dist/mcp/tools.js +573 -0
  149. package/dist/mcp/tools.js.map +1 -0
  150. package/dist/renderers/base.d.ts +18 -0
  151. package/dist/renderers/base.d.ts.map +1 -0
  152. package/dist/renderers/base.js +59 -0
  153. package/dist/renderers/base.js.map +1 -0
  154. package/dist/renderers/bpmn.d.ts +68 -0
  155. package/dist/renderers/bpmn.d.ts.map +1 -0
  156. package/dist/renderers/bpmn.js +158 -0
  157. package/dist/renderers/bpmn.js.map +1 -0
  158. package/dist/renderers/browser.d.ts +30 -0
  159. package/dist/renderers/browser.d.ts.map +1 -0
  160. package/dist/renderers/browser.js +143 -0
  161. package/dist/renderers/browser.js.map +1 -0
  162. package/dist/renderers/color-scheme.d.ts +40 -0
  163. package/dist/renderers/color-scheme.d.ts.map +1 -0
  164. package/dist/renderers/color-scheme.js +122 -0
  165. package/dist/renderers/color-scheme.js.map +1 -0
  166. package/dist/renderers/d2.d.ts +37 -0
  167. package/dist/renderers/d2.d.ts.map +1 -0
  168. package/dist/renderers/d2.js +108 -0
  169. package/dist/renderers/d2.js.map +1 -0
  170. package/dist/renderers/graphviz.d.ts +33 -0
  171. package/dist/renderers/graphviz.d.ts.map +1 -0
  172. package/dist/renderers/graphviz.js +88 -0
  173. package/dist/renderers/graphviz.js.map +1 -0
  174. package/dist/renderers/in-page.d.ts +33 -0
  175. package/dist/renderers/in-page.d.ts.map +1 -0
  176. package/dist/renderers/in-page.js +76 -0
  177. package/dist/renderers/in-page.js.map +1 -0
  178. package/dist/renderers/index.d.ts +20 -0
  179. package/dist/renderers/index.d.ts.map +1 -0
  180. package/dist/renderers/index.js +94 -0
  181. package/dist/renderers/index.js.map +1 -0
  182. package/dist/renderers/kroki.d.ts +38 -0
  183. package/dist/renderers/kroki.d.ts.map +1 -0
  184. package/dist/renderers/kroki.js +151 -0
  185. package/dist/renderers/kroki.js.map +1 -0
  186. package/dist/renderers/likec4-svg.d.ts +82 -0
  187. package/dist/renderers/likec4-svg.d.ts.map +1 -0
  188. package/dist/renderers/likec4-svg.js +435 -0
  189. package/dist/renderers/likec4-svg.js.map +1 -0
  190. package/dist/renderers/likec4.d.ts +22 -0
  191. package/dist/renderers/likec4.d.ts.map +1 -0
  192. package/dist/renderers/likec4.js +77 -0
  193. package/dist/renderers/likec4.js.map +1 -0
  194. package/dist/renderers/mermaid.d.ts +64 -0
  195. package/dist/renderers/mermaid.d.ts.map +1 -0
  196. package/dist/renderers/mermaid.js +196 -0
  197. package/dist/renderers/mermaid.js.map +1 -0
  198. package/dist/renderers/plantuml.d.ts +56 -0
  199. package/dist/renderers/plantuml.d.ts.map +1 -0
  200. package/dist/renderers/plantuml.js +195 -0
  201. package/dist/renderers/plantuml.js.map +1 -0
  202. package/dist/renderers/svg-utils.d.ts +46 -0
  203. package/dist/renderers/svg-utils.d.ts.map +1 -0
  204. package/dist/renderers/svg-utils.js +439 -0
  205. package/dist/renderers/svg-utils.js.map +1 -0
  206. package/dist/renderers/svgbob.d.ts +26 -0
  207. package/dist/renderers/svgbob.d.ts.map +1 -0
  208. package/dist/renderers/svgbob.js +70 -0
  209. package/dist/renderers/svgbob.js.map +1 -0
  210. package/dist/renderers/vega-lite.d.ts +18 -0
  211. package/dist/renderers/vega-lite.d.ts.map +1 -0
  212. package/dist/renderers/vega-lite.js +94 -0
  213. package/dist/renderers/vega-lite.js.map +1 -0
  214. package/dist/themes/index.d.ts +17 -0
  215. package/dist/themes/index.d.ts.map +1 -0
  216. package/dist/themes/index.js +419 -0
  217. package/dist/themes/index.js.map +1 -0
  218. package/dist/themes/types.d.ts +99 -0
  219. package/dist/themes/types.d.ts.map +1 -0
  220. package/dist/themes/types.js +9 -0
  221. package/dist/themes/types.js.map +1 -0
  222. package/eval/casos.json +513 -0
  223. package/package.json +114 -0
  224. package/scripts/capture-preview.mjs +101 -0
  225. package/scripts/check-github.mjs +128 -0
  226. package/scripts/eval.d.mts +8 -0
  227. package/scripts/eval.mjs +284 -0
  228. package/scripts/fetch-plantuml.mjs +122 -0
  229. package/scripts/generate-catalog-doc.mjs +106 -0
  230. package/scripts/rasterize.mjs +68 -0
  231. package/scripts/sync-docs.mjs +158 -0
  232. package/skills/docviz/SKILL.md +111 -0
  233. package/vendor/.gitkeep +0 -0
@@ -0,0 +1,365 @@
1
+ /**
2
+ * Tipos tecnicos que se dibujan con PlantUML: modelo de datos, casos de uso,
3
+ * componentes, despliegue, bocetos de interfaz, estructuras de datos y
4
+ * descomposicion del trabajo.
5
+ *
6
+ * Todos comparten el mismo principio que el resto del DSL: el autor declara
7
+ * nombres y relaciones, y el compilador se encarga de la sintaxis del motor.
8
+ */
9
+ import { fail } from './util.js';
10
+ import { asNamedRecord, asRecord, IdFactory, nameOf, oneOf, optionalArray, optionalString, plantUmlText, requireArray, requireString, toEdge, } from './util.js';
11
+ /** Cardinalidades admitidas y su notacion en PlantUML. */
12
+ const CARDINALITY = {
13
+ 'one-to-one': '||--||',
14
+ 'one-to-many': '||--o{',
15
+ 'many-to-one': '}o--||',
16
+ 'many-to-many': '}o--o{',
17
+ 'zero-or-one-to-many': '|o--o{',
18
+ 'uno-a-uno': '||--||',
19
+ 'uno-a-muchos': '||--o{',
20
+ 'muchos-a-uno': '}o--||',
21
+ 'muchos-a-muchos': '}o--o{',
22
+ };
23
+ export function entityRelationship(doc) {
24
+ const entities = requireArray(doc['entities'] ?? doc['entidades'], 'diagram.entities');
25
+ const relations = optionalArray(doc['relations'], 'diagram.relations');
26
+ const declared = new Set();
27
+ const lines = ['@startuml', 'hide circle', 'skinparam linetype ortho'];
28
+ for (const raw of entities) {
29
+ const record = asNamedRecord(raw, 'diagram.entities', 'name');
30
+ const name = requireString(record, 'name', 'diagram.entities');
31
+ declared.add(name);
32
+ const fields = optionalArray(record['fields'] ?? record['campos'], 'diagram.entities[].fields');
33
+ if (fields.length === 0) {
34
+ lines.push(`entity "${plantUmlText(name)}" as ${quoteId(name)}`);
35
+ continue;
36
+ }
37
+ lines.push(`entity "${plantUmlText(name)}" as ${quoteId(name)} {`);
38
+ // Las claves van arriba, separadas del resto: es como se lee un modelo de datos.
39
+ const keys = fields.filter((f) => isKey(f));
40
+ const rest = fields.filter((f) => !isKey(f));
41
+ for (const field of keys)
42
+ lines.push(` * ${fieldLine(field)}`);
43
+ if (keys.length > 0 && rest.length > 0)
44
+ lines.push(' --');
45
+ for (const field of rest)
46
+ lines.push(` ${fieldLine(field)}`);
47
+ lines.push('}');
48
+ }
49
+ for (const raw of relations) {
50
+ const record = typeof raw === 'string' ? undefined : asRecord(raw, 'diagram.relations');
51
+ const edge = toEdge(raw, 'diagram.relations');
52
+ for (const endpoint of [edge.from, edge.to]) {
53
+ if (!declared.has(endpoint)) {
54
+ fail(`"${endpoint}" no esta declarado en entities`, `entidades declaradas: ${[...declared].join(', ')}`);
55
+ }
56
+ }
57
+ const kind = record !== undefined ? (optionalString(record, 'cardinality') ?? 'one-to-many') : 'one-to-many';
58
+ const arrow = CARDINALITY[kind.toLowerCase()];
59
+ if (arrow === undefined) {
60
+ fail(`la cardinalidad "${kind}" no existe`, `cardinalidades validas: ${[...new Set(Object.keys(CARDINALITY))].join(', ')}`);
61
+ }
62
+ lines.push(`${quoteId(edge.from)} ${arrow} ${quoteId(edge.to)}${edge.label !== undefined ? ` : ${plantUmlText(edge.label)}` : ''}`);
63
+ }
64
+ lines.push('@enduml');
65
+ return lines.join('\n');
66
+ }
67
+ function isKey(field) {
68
+ if (typeof field === 'string')
69
+ return false;
70
+ const record = asRecord(field, 'diagram.entities[].fields');
71
+ return record['key'] === true || record['pk'] === true;
72
+ }
73
+ function fieldLine(field) {
74
+ if (typeof field === 'string')
75
+ return plantUmlText(field.trim());
76
+ const record = asRecord(field, 'diagram.entities[].fields');
77
+ const name = requireString(record, 'name', 'diagram.entities[].fields');
78
+ const type = optionalString(record, 'type');
79
+ return plantUmlText(type !== undefined ? `${name} : ${type}` : name);
80
+ }
81
+ /** Identificador seguro para PlantUML derivado de un nombre libre. */
82
+ function quoteId(name) {
83
+ return `E_${name.normalize('NFD').replace(/[̀-ͯ]/g, '').replace(/[^A-Za-z0-9]/g, '_')}`;
84
+ }
85
+ // --------------------------------------------------------------------------
86
+ export function useCase(doc) {
87
+ const actors = requireArray(doc['actors'] ?? doc['actores'], 'diagram.actors');
88
+ const useCases = requireArray(doc['useCases'] ?? doc['casos'], 'diagram.useCases');
89
+ const system = optionalString(doc, 'system');
90
+ const actorIds = new IdFactory('A');
91
+ const caseIds = new IdFactory('U');
92
+ const lines = ['@startuml', 'left to right direction', 'skinparam packageStyle rectangle'];
93
+ for (const raw of actors) {
94
+ const name = nameOf(raw, 'diagram.actors');
95
+ lines.push(`actor "${plantUmlText(name)}" as ${actorIds.id(name)}`);
96
+ }
97
+ const body = [];
98
+ for (const raw of useCases) {
99
+ const record = asNamedRecord(raw, 'diagram.useCases', 'name');
100
+ const name = requireString(record, 'name', 'diagram.useCases');
101
+ body.push(` usecase "${plantUmlText(name)}" as ${caseIds.id(name)}`);
102
+ }
103
+ if (system !== undefined) {
104
+ lines.push(`rectangle "${plantUmlText(system)}" {`, ...body, '}');
105
+ }
106
+ else {
107
+ lines.push(...body.map((l) => l.trim()));
108
+ }
109
+ for (const raw of useCases) {
110
+ const record = asNamedRecord(raw, 'diagram.useCases', 'name');
111
+ const name = requireString(record, 'name', 'diagram.useCases');
112
+ for (const rawActor of optionalArray(record['actors'], 'diagram.useCases[].actors')) {
113
+ const actor = nameOf(rawActor, 'diagram.useCases[].actors');
114
+ const id = actorIds.get(actor);
115
+ if (id === undefined) {
116
+ fail(`el actor "${actor}" no esta declarado`, `actores declarados: ${actorIds.keys().join(', ')}`);
117
+ }
118
+ lines.push(`${id} --> ${caseIds.id(name)}`);
119
+ }
120
+ }
121
+ lines.push('@enduml');
122
+ return lines.join('\n');
123
+ }
124
+ // --------------------------------------------------------------------------
125
+ export function componentDiagram(doc) {
126
+ const groups = optionalArray(doc['groups'] ?? doc['grupos'], 'diagram.groups');
127
+ const loose = optionalArray(doc['components'] ?? doc['componentes'], 'diagram.components');
128
+ const relations = optionalArray(doc['relations'] ?? doc['flow'], 'diagram.relations');
129
+ if (groups.length === 0 && loose.length === 0) {
130
+ fail('diagram.components o diagram.groups debe declarar al menos un componente');
131
+ }
132
+ const ids = new IdFactory('C');
133
+ const lines = ['@startuml', 'skinparam componentStyle rectangle'];
134
+ const declare = (name, indent) => {
135
+ lines.push(`${indent}component "${plantUmlText(name)}" as ${ids.id(name)}`);
136
+ };
137
+ for (const raw of groups) {
138
+ const group = asRecord(raw, 'diagram.groups');
139
+ const name = requireString(group, 'name', 'diagram.groups');
140
+ lines.push(`package "${plantUmlText(name)}" {`);
141
+ for (const item of requireArray(group['components'] ?? group['items'], 'diagram.groups[].components')) {
142
+ declare(nameOf(item, 'diagram.groups[].components'), ' ');
143
+ }
144
+ lines.push('}');
145
+ }
146
+ for (const item of loose)
147
+ declare(nameOf(item, 'diagram.components'), '');
148
+ for (const raw of relations) {
149
+ const edge = toEdge(raw, 'diagram.relations');
150
+ for (const endpoint of [edge.from, edge.to]) {
151
+ if (!ids.has(endpoint)) {
152
+ fail(`"${endpoint}" no esta declarado como componente`, `componentes declarados: ${ids.keys().join(', ')}`);
153
+ }
154
+ }
155
+ const arrow = edge.dashed ? '..>' : '-->';
156
+ lines.push(`${ids.get(edge.from)} ${arrow} ${ids.get(edge.to)}${edge.label !== undefined ? ` : ${plantUmlText(edge.label)}` : ''}`);
157
+ }
158
+ lines.push('@enduml');
159
+ return lines.join('\n');
160
+ }
161
+ // --------------------------------------------------------------------------
162
+ const NODE_KINDS = ['node', 'database', 'cloud', 'queue', 'storage', 'component', 'folder'];
163
+ export function deployment(doc) {
164
+ const nodes = requireArray(doc['nodes'] ?? doc['nodos'], 'diagram.nodes');
165
+ const relations = optionalArray(doc['relations'] ?? doc['flow'], 'diagram.relations');
166
+ const ids = new IdFactory('N');
167
+ const lines = ['@startuml'];
168
+ for (const raw of nodes) {
169
+ const record = asNamedRecord(raw, 'diagram.nodes', 'name');
170
+ const name = requireString(record, 'name', 'diagram.nodes');
171
+ const kind = oneOf(optionalString(record, 'kind'), NODE_KINDS, 'diagram.nodes[].kind', 'node');
172
+ const contains = optionalArray(record['contains'] ?? record['artifacts'], 'diagram.nodes[].contains');
173
+ const id = ids.id(name);
174
+ if (contains.length === 0) {
175
+ lines.push(`${kind} "${plantUmlText(name)}" as ${id}`);
176
+ continue;
177
+ }
178
+ lines.push(`${kind} "${plantUmlText(name)}" as ${id} {`);
179
+ for (const item of contains) {
180
+ const artifact = nameOf(item, 'diagram.nodes[].contains');
181
+ lines.push(` artifact "${plantUmlText(artifact)}" as ${ids.id(`${name}/${artifact}`)}`);
182
+ }
183
+ lines.push('}');
184
+ }
185
+ for (const raw of relations) {
186
+ const edge = toEdge(raw, 'diagram.relations');
187
+ for (const endpoint of [edge.from, edge.to]) {
188
+ if (!ids.has(endpoint)) {
189
+ fail(`"${endpoint}" no esta declarado en nodes`, `nodos declarados: ${ids.keys().join(', ')}`);
190
+ }
191
+ }
192
+ lines.push(`${ids.get(edge.from)} --> ${ids.get(edge.to)}${edge.label !== undefined ? ` : ${plantUmlText(edge.label)}` : ''}`);
193
+ }
194
+ lines.push('@enduml');
195
+ return lines.join('\n');
196
+ }
197
+ // --------------------------------------------------------------------------
198
+ const INPUT_KINDS = {
199
+ text: (v) => `"${v ?? ' '}"`,
200
+ password: () => '"**** "',
201
+ area: (v) => `"${v ?? ' '}"`,
202
+ checkbox: (v) => `[${v === 'checked' ? 'X' : ' '}]`,
203
+ radio: (v) => `(${v === 'selected' ? 'X' : ' '})`,
204
+ select: (v) => `^${v ?? 'Seleccione'}^`,
205
+ label: (v) => v ?? '',
206
+ };
207
+ /**
208
+ * Boceto de interfaz con Salt, la notacion de mockups de PlantUML.
209
+ *
210
+ * Salt maquetea por columnas separadas con `|`, asi que cada fila del DSL se
211
+ * traduce a una fila de la rejilla.
212
+ */
213
+ export function wireframe(doc) {
214
+ const rows = requireArray(doc['rows'] ?? doc['filas'], 'diagram.rows');
215
+ const lines = ['@startsalt', '{'];
216
+ for (const raw of rows) {
217
+ const row = asRecord(raw, 'diagram.rows');
218
+ const cells = [];
219
+ for (const rawField of optionalArray(row['fields'] ?? row['campos'], 'diagram.rows[].fields')) {
220
+ const field = asNamedRecord(rawField, 'diagram.rows[].fields', 'label');
221
+ const label = optionalString(field, 'label');
222
+ const kind = optionalString(field, 'input');
223
+ if (label !== undefined)
224
+ cells.push(saltText(label));
225
+ if (kind !== undefined) {
226
+ const build = INPUT_KINDS[kind.toLowerCase()];
227
+ if (build === undefined) {
228
+ fail(`el tipo de campo "${kind}" no existe`, `tipos validos: ${Object.keys(INPUT_KINDS).join(', ')}`);
229
+ }
230
+ cells.push(build(optionalString(field, 'value')));
231
+ }
232
+ }
233
+ for (const rawButton of optionalArray(row['buttons'] ?? row['botones'], 'diagram.rows[].buttons')) {
234
+ cells.push(`[ ${saltText(nameOf(rawButton, 'diagram.rows[].buttons'))} ]`);
235
+ }
236
+ const text = optionalString(row, 'text');
237
+ if (text !== undefined)
238
+ cells.push(saltText(text));
239
+ if (row['separator'] === true || row['separador'] === true) {
240
+ lines.push(' ..');
241
+ continue;
242
+ }
243
+ if (cells.length === 0)
244
+ fail('cada fila de diagram.rows necesita fields, buttons o text');
245
+ lines.push(` ${cells.join(' | ')}`);
246
+ }
247
+ lines.push('}', '@endsalt');
248
+ return lines.join('\n');
249
+ }
250
+ /** Salt usa `|`, `{`, `}` y `[` como sintaxis: se neutralizan en el texto. */
251
+ function saltText(text) {
252
+ return text.replace(/[|{}[\]^"]/g, ' ').replace(/\s+/g, ' ').trim();
253
+ }
254
+ // --------------------------------------------------------------------------
255
+ export function jsonTree(doc) {
256
+ const data = doc['data'] ?? doc['datos'];
257
+ if (data === undefined)
258
+ fail('diagram.data debe contener la estructura a dibujar');
259
+ return `@startjson\n${JSON.stringify(data, null, 2)}\n@endjson`;
260
+ }
261
+ export function yamlTree(doc) {
262
+ const data = doc['data'] ?? doc['datos'];
263
+ if (data === undefined)
264
+ fail('diagram.data debe contener la estructura a dibujar');
265
+ return `@startyaml\n${toYaml(data, 0)}\n@endyaml`;
266
+ }
267
+ /** Serializador YAML minimo: el DSL ya vino de YAML, solo hay que devolverlo. */
268
+ function toYaml(value, depth) {
269
+ const pad = ' '.repeat(depth);
270
+ if (Array.isArray(value)) {
271
+ if (value.length === 0)
272
+ return `${pad}[]`;
273
+ return value
274
+ .map((item) => item !== null && typeof item === 'object'
275
+ ? `${pad}-\n${toYaml(item, depth + 1)}`
276
+ : `${pad}- ${scalar(item)}`)
277
+ .join('\n');
278
+ }
279
+ if (value !== null && typeof value === 'object') {
280
+ const entries = Object.entries(value);
281
+ if (entries.length === 0)
282
+ return `${pad}{}`;
283
+ return entries
284
+ .map(([key, v]) => v !== null && typeof v === 'object'
285
+ ? `${pad}${key}:\n${toYaml(v, depth + 1)}`
286
+ : `${pad}${key}: ${scalar(v)}`)
287
+ .join('\n');
288
+ }
289
+ return `${pad}${scalar(value)}`;
290
+ }
291
+ function scalar(value) {
292
+ if (value === null || value === undefined)
293
+ return 'null';
294
+ const text = String(value);
295
+ return /^[\w .,\-/]*$/.test(text) && text.trim() !== '' ? text : JSON.stringify(text);
296
+ }
297
+ function toBranch(raw, field) {
298
+ if (typeof raw === 'string')
299
+ return { name: raw.trim(), children: [] };
300
+ const record = asRecord(raw, field);
301
+ const name = requireString(record, 'name', field);
302
+ const rawChildren = record['children'] ?? record['items'] ?? record['branches'];
303
+ return {
304
+ name,
305
+ children: optionalArray(rawChildren, `${field}.children`).map((c) => toBranch(c, `${field}.children`)),
306
+ };
307
+ }
308
+ /** Descomposicion del trabajo: arbol jerarquico con la notacion de PlantUML. */
309
+ export function workBreakdown(doc) {
310
+ const root = requireString(doc, 'root', 'diagram.root');
311
+ const branches = requireArray(doc['branches'] ?? doc['items'], 'diagram.branches');
312
+ const lines = ['@startwbs', `* ${plantUmlText(root)}`];
313
+ const walk = (branch, depth) => {
314
+ lines.push(`${'*'.repeat(depth)} ${plantUmlText(branch.name)}`);
315
+ for (const child of branch.children)
316
+ walk(child, depth + 1);
317
+ };
318
+ for (const raw of branches)
319
+ walk(toBranch(raw, 'diagram.branches'), 2);
320
+ lines.push('@endwbs');
321
+ return lines.join('\n');
322
+ }
323
+ /** Mapa mental con PlantUML; es el respaldo de la version de Mermaid. */
324
+ export function plantUmlMindmap(doc) {
325
+ const root = requireString(doc, 'root', 'diagram.root');
326
+ const branches = requireArray(doc['branches'] ?? doc['items'], 'diagram.branches');
327
+ const lines = ['@startmindmap', `* ${plantUmlText(root)}`];
328
+ const walk = (branch, depth) => {
329
+ lines.push(`${'*'.repeat(depth)} ${plantUmlText(branch.name)}`);
330
+ for (const child of branch.children)
331
+ walk(child, depth + 1);
332
+ };
333
+ for (const raw of branches)
334
+ walk(toBranch(raw, 'diagram.branches'), 2);
335
+ lines.push('@endmindmap');
336
+ return lines.join('\n');
337
+ }
338
+ /** Cronograma con PlantUML; es el respaldo de la version de Mermaid. */
339
+ export function plantUmlGantt(doc) {
340
+ const sections = requireArray(doc['sections'], 'diagram.sections');
341
+ const lines = ['@startgantt'];
342
+ const start = optionalString(doc, 'start');
343
+ if (start !== undefined)
344
+ lines.push(`Project starts ${start}`);
345
+ const seen = new Set();
346
+ for (const rawSection of sections) {
347
+ const section = asRecord(rawSection, 'diagram.sections');
348
+ for (const rawTask of requireArray(section['tasks'], 'diagram.sections[].tasks')) {
349
+ const task = asNamedRecord(rawTask, 'diagram.sections[].tasks', 'name');
350
+ const name = requireString(task, 'name', 'diagram.sections[].tasks');
351
+ const label = plantUmlText(name).replace(/[[\]]/g, ' ');
352
+ const duration = optionalString(task, 'duration');
353
+ const days = duration !== undefined ? Number.parseInt(duration, 10) : 1;
354
+ lines.push(`[${label}] lasts ${Number.isFinite(days) && days > 0 ? days : 1} days`);
355
+ const after = optionalString(task, 'after');
356
+ if (after !== undefined && seen.has(after)) {
357
+ lines.push(`[${label}] starts at [${plantUmlText(after).replace(/[[\]]/g, ' ')}]s end`);
358
+ }
359
+ seen.add(name);
360
+ }
361
+ }
362
+ lines.push('@endgantt');
363
+ return lines.join('\n');
364
+ }
365
+ //# sourceMappingURL=diagram-technical.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"diagram-technical.js","sourceRoot":"","sources":["../../src/dsl/diagram-technical.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,22 @@
1
+ /**
2
+ * Compiladores de los tipos originales de `diagram`.
3
+ *
4
+ * Que tipo atiende cada uno lo decide el catalogo (`catalog.ts`) y lo despacha
5
+ * `compile.ts`; aqui solo esta la traduccion al lenguaje de cada motor.
6
+ */
7
+ export declare function sequence(doc: Record<string, unknown>): string;
8
+ export declare function classDiagram(doc: Record<string, unknown>): string;
9
+ export declare function stateDiagram(doc: Record<string, unknown>): string;
10
+ export declare function activityDiagram(doc: Record<string, unknown>): string;
11
+ export declare function flowchart(doc: Record<string, unknown>): string;
12
+ export declare function gantt(doc: Record<string, unknown>): string;
13
+ export declare function tree(doc: Record<string, unknown>): string;
14
+ export declare function pillars(doc: Record<string, unknown>): string;
15
+ export declare function capabilityMap(doc: Record<string, unknown>): string;
16
+ export declare function operatingModel(doc: Record<string, unknown>): string;
17
+ export declare function valueChain(doc: Record<string, unknown>): string;
18
+ export declare function beforeAfter(doc: Record<string, unknown>): string;
19
+ export declare function matrix2x2(doc: Record<string, unknown>): string;
20
+ export declare function roadmap(doc: Record<string, unknown>): string;
21
+ export declare function dependencyGraph(doc: Record<string, unknown>): string;
22
+ //# sourceMappingURL=diagram.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"diagram.d.ts","sourceRoot":"","sources":["../../src/dsl/diagram.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAmCH,wBAAgB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAoC7D;AAwBD,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CA6DjE;AAED,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CA+BjE;AAUD,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAMpE;AAsDD,wBAAgB,SAAS,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAsD9D;AAQD,wBAAgB,KAAK,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAiD1D;AAyBD,wBAAgB,IAAI,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAqBzD;AAED,wBAAgB,OAAO,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAoB5D;AAED,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAsBlE;AAED,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAwBnE;AAED,wBAAgB,UAAU,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAY/D;AAED,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAuBhE;AAED,wBAAgB,SAAS,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CA4B9D;AAED,wBAAgB,OAAO,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAyB5D;AAMD,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAyBpE"}