@prodara/compiler 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 (494) hide show
  1. package/README.md +204 -0
  2. package/dist/agent/agent.d.ts +10 -0
  3. package/dist/agent/agent.d.ts.map +1 -0
  4. package/dist/agent/agent.js +122 -0
  5. package/dist/agent/agent.js.map +1 -0
  6. package/dist/agent/api-client.d.ts +29 -0
  7. package/dist/agent/api-client.d.ts.map +1 -0
  8. package/dist/agent/api-client.js +167 -0
  9. package/dist/agent/api-client.js.map +1 -0
  10. package/dist/agent/index.d.ts +5 -0
  11. package/dist/agent/index.d.ts.map +1 -0
  12. package/dist/agent/index.js +3 -0
  13. package/dist/agent/index.js.map +1 -0
  14. package/dist/agent/party.d.ts +48 -0
  15. package/dist/agent/party.d.ts.map +1 -0
  16. package/dist/agent/party.js +79 -0
  17. package/dist/agent/party.js.map +1 -0
  18. package/dist/agent/types.d.ts +35 -0
  19. package/dist/agent/types.d.ts.map +1 -0
  20. package/dist/agent/types.js +5 -0
  21. package/dist/agent/types.js.map +1 -0
  22. package/dist/audit/audit.d.ts +32 -0
  23. package/dist/audit/audit.d.ts.map +1 -0
  24. package/dist/audit/audit.js +120 -0
  25. package/dist/audit/audit.js.map +1 -0
  26. package/dist/audit/index.d.ts +3 -0
  27. package/dist/audit/index.d.ts.map +1 -0
  28. package/dist/audit/index.js +2 -0
  29. package/dist/audit/index.js.map +1 -0
  30. package/dist/audit/types.d.ts +25 -0
  31. package/dist/audit/types.d.ts.map +1 -0
  32. package/dist/audit/types.js +5 -0
  33. package/dist/audit/types.js.map +1 -0
  34. package/dist/binder/binder.d.ts +34 -0
  35. package/dist/binder/binder.d.ts.map +1 -0
  36. package/dist/binder/binder.js +202 -0
  37. package/dist/binder/binder.js.map +1 -0
  38. package/dist/binder/index.d.ts +3 -0
  39. package/dist/binder/index.d.ts.map +1 -0
  40. package/dist/binder/index.js +2 -0
  41. package/dist/binder/index.js.map +1 -0
  42. package/dist/build-state/build-state.d.ts +40 -0
  43. package/dist/build-state/build-state.d.ts.map +1 -0
  44. package/dist/build-state/build-state.js +180 -0
  45. package/dist/build-state/build-state.js.map +1 -0
  46. package/dist/build-state/index.d.ts +3 -0
  47. package/dist/build-state/index.d.ts.map +1 -0
  48. package/dist/build-state/index.js +2 -0
  49. package/dist/build-state/index.js.map +1 -0
  50. package/dist/checker/index.d.ts +5 -0
  51. package/dist/checker/index.d.ts.map +1 -0
  52. package/dist/checker/index.js +3 -0
  53. package/dist/checker/index.js.map +1 -0
  54. package/dist/checker/type-checker.d.ts +8 -0
  55. package/dist/checker/type-checker.d.ts.map +1 -0
  56. package/dist/checker/type-checker.js +136 -0
  57. package/dist/checker/type-checker.js.map +1 -0
  58. package/dist/checker/validator.d.ts +8 -0
  59. package/dist/checker/validator.d.ts.map +1 -0
  60. package/dist/checker/validator.js +251 -0
  61. package/dist/checker/validator.js.map +1 -0
  62. package/dist/cli/agent-setup.d.ts +27 -0
  63. package/dist/cli/agent-setup.d.ts.map +1 -0
  64. package/dist/cli/agent-setup.js +829 -0
  65. package/dist/cli/agent-setup.js.map +1 -0
  66. package/dist/cli/analyze.d.ts +28 -0
  67. package/dist/cli/analyze.d.ts.map +1 -0
  68. package/dist/cli/analyze.js +188 -0
  69. package/dist/cli/analyze.js.map +1 -0
  70. package/dist/cli/checklist.d.ts +27 -0
  71. package/dist/cli/checklist.d.ts.map +1 -0
  72. package/dist/cli/checklist.js +153 -0
  73. package/dist/cli/checklist.js.map +1 -0
  74. package/dist/cli/compile.d.ts +26 -0
  75. package/dist/cli/compile.d.ts.map +1 -0
  76. package/dist/cli/compile.js +112 -0
  77. package/dist/cli/compile.js.map +1 -0
  78. package/dist/cli/dashboard.d.ts +19 -0
  79. package/dist/cli/dashboard.d.ts.map +1 -0
  80. package/dist/cli/dashboard.js +73 -0
  81. package/dist/cli/dashboard.js.map +1 -0
  82. package/dist/cli/explain.d.ts +23 -0
  83. package/dist/cli/explain.d.ts.map +1 -0
  84. package/dist/cli/explain.js +144 -0
  85. package/dist/cli/explain.js.map +1 -0
  86. package/dist/cli/git.d.ts +14 -0
  87. package/dist/cli/git.d.ts.map +1 -0
  88. package/dist/cli/git.js +44 -0
  89. package/dist/cli/git.js.map +1 -0
  90. package/dist/cli/lifecycle.d.ts +28 -0
  91. package/dist/cli/lifecycle.d.ts.map +1 -0
  92. package/dist/cli/lifecycle.js +82 -0
  93. package/dist/cli/lifecycle.js.map +1 -0
  94. package/dist/cli/main.d.ts +10 -0
  95. package/dist/cli/main.d.ts.map +1 -0
  96. package/dist/cli/main.js +1072 -0
  97. package/dist/cli/main.js.map +1 -0
  98. package/dist/cli/notify.d.ts +13 -0
  99. package/dist/cli/notify.d.ts.map +1 -0
  100. package/dist/cli/notify.js +36 -0
  101. package/dist/cli/notify.js.map +1 -0
  102. package/dist/cli/starters.d.ts +12 -0
  103. package/dist/cli/starters.d.ts.map +1 -0
  104. package/dist/cli/starters.js +439 -0
  105. package/dist/cli/starters.js.map +1 -0
  106. package/dist/config/config.d.ts +194 -0
  107. package/dist/config/config.d.ts.map +1 -0
  108. package/dist/config/config.js +434 -0
  109. package/dist/config/config.js.map +1 -0
  110. package/dist/config/index.d.ts +3 -0
  111. package/dist/config/index.d.ts.map +1 -0
  112. package/dist/config/index.js +5 -0
  113. package/dist/config/index.js.map +1 -0
  114. package/dist/diagnostics/diagnostic.d.ts +44 -0
  115. package/dist/diagnostics/diagnostic.d.ts.map +1 -0
  116. package/dist/diagnostics/diagnostic.js +44 -0
  117. package/dist/diagnostics/diagnostic.js.map +1 -0
  118. package/dist/diagnostics/index.d.ts +4 -0
  119. package/dist/diagnostics/index.d.ts.map +1 -0
  120. package/dist/diagnostics/index.js +3 -0
  121. package/dist/diagnostics/index.js.map +1 -0
  122. package/dist/diagnostics/reporter.d.ts +43 -0
  123. package/dist/diagnostics/reporter.d.ts.map +1 -0
  124. package/dist/diagnostics/reporter.js +74 -0
  125. package/dist/diagnostics/reporter.js.map +1 -0
  126. package/dist/discovery/discovery.d.ts +6 -0
  127. package/dist/discovery/discovery.d.ts.map +1 -0
  128. package/dist/discovery/discovery.js +66 -0
  129. package/dist/discovery/discovery.js.map +1 -0
  130. package/dist/discovery/index.d.ts +2 -0
  131. package/dist/discovery/index.d.ts.map +1 -0
  132. package/dist/discovery/index.js +2 -0
  133. package/dist/discovery/index.js.map +1 -0
  134. package/dist/doc-gen/doc-gen-types.d.ts +174 -0
  135. package/dist/doc-gen/doc-gen-types.d.ts.map +1 -0
  136. package/dist/doc-gen/doc-gen-types.js +7 -0
  137. package/dist/doc-gen/doc-gen-types.js.map +1 -0
  138. package/dist/doc-gen/doc-renderer.d.ts +17 -0
  139. package/dist/doc-gen/doc-renderer.d.ts.map +1 -0
  140. package/dist/doc-gen/doc-renderer.js +65 -0
  141. package/dist/doc-gen/doc-renderer.js.map +1 -0
  142. package/dist/doc-gen/format-helpers.d.ts +18 -0
  143. package/dist/doc-gen/format-helpers.d.ts.map +1 -0
  144. package/dist/doc-gen/format-helpers.js +92 -0
  145. package/dist/doc-gen/format-helpers.js.map +1 -0
  146. package/dist/doc-gen/index.d.ts +5 -0
  147. package/dist/doc-gen/index.d.ts.map +1 -0
  148. package/dist/doc-gen/index.js +5 -0
  149. package/dist/doc-gen/index.js.map +1 -0
  150. package/dist/doc-gen/link-resolver.d.ts +10 -0
  151. package/dist/doc-gen/link-resolver.d.ts.map +1 -0
  152. package/dist/doc-gen/link-resolver.js +87 -0
  153. package/dist/doc-gen/link-resolver.js.map +1 -0
  154. package/dist/doc-gen/mermaid-renderers.d.ts +12 -0
  155. package/dist/doc-gen/mermaid-renderers.d.ts.map +1 -0
  156. package/dist/doc-gen/mermaid-renderers.js +197 -0
  157. package/dist/doc-gen/mermaid-renderers.js.map +1 -0
  158. package/dist/doc-gen/module-renderer.d.ts +6 -0
  159. package/dist/doc-gen/module-renderer.d.ts.map +1 -0
  160. package/dist/doc-gen/module-renderer.js +54 -0
  161. package/dist/doc-gen/module-renderer.js.map +1 -0
  162. package/dist/doc-gen/product-renderer.d.ts +6 -0
  163. package/dist/doc-gen/product-renderer.d.ts.map +1 -0
  164. package/dist/doc-gen/product-renderer.js +101 -0
  165. package/dist/doc-gen/product-renderer.js.map +1 -0
  166. package/dist/doc-gen/section-renderers.d.ts +20 -0
  167. package/dist/doc-gen/section-renderers.d.ts.map +1 -0
  168. package/dist/doc-gen/section-renderers.js +357 -0
  169. package/dist/doc-gen/section-renderers.js.map +1 -0
  170. package/dist/doc-gen/string-resolver.d.ts +8 -0
  171. package/dist/doc-gen/string-resolver.d.ts.map +1 -0
  172. package/dist/doc-gen/string-resolver.js +47 -0
  173. package/dist/doc-gen/string-resolver.js.map +1 -0
  174. package/dist/doc-gen/surface-ascii.d.ts +7 -0
  175. package/dist/doc-gen/surface-ascii.d.ts.map +1 -0
  176. package/dist/doc-gen/surface-ascii.js +87 -0
  177. package/dist/doc-gen/surface-ascii.js.map +1 -0
  178. package/dist/drift/drift.d.ts +16 -0
  179. package/dist/drift/drift.d.ts.map +1 -0
  180. package/dist/drift/drift.js +149 -0
  181. package/dist/drift/drift.js.map +1 -0
  182. package/dist/drift/index.d.ts +3 -0
  183. package/dist/drift/index.d.ts.map +1 -0
  184. package/dist/drift/index.js +2 -0
  185. package/dist/drift/index.js.map +1 -0
  186. package/dist/extensions/index.d.ts +6 -0
  187. package/dist/extensions/index.d.ts.map +1 -0
  188. package/dist/extensions/index.js +7 -0
  189. package/dist/extensions/index.js.map +1 -0
  190. package/dist/extensions/loader.d.ts +21 -0
  191. package/dist/extensions/loader.d.ts.map +1 -0
  192. package/dist/extensions/loader.js +101 -0
  193. package/dist/extensions/loader.js.map +1 -0
  194. package/dist/extensions/marketplace.d.ts +22 -0
  195. package/dist/extensions/marketplace.d.ts.map +1 -0
  196. package/dist/extensions/marketplace.js +40 -0
  197. package/dist/extensions/marketplace.js.map +1 -0
  198. package/dist/extensions/registry.d.ts +45 -0
  199. package/dist/extensions/registry.d.ts.map +1 -0
  200. package/dist/extensions/registry.js +82 -0
  201. package/dist/extensions/registry.js.map +1 -0
  202. package/dist/extensions/types.d.ts +41 -0
  203. package/dist/extensions/types.d.ts.map +1 -0
  204. package/dist/extensions/types.js +5 -0
  205. package/dist/extensions/types.js.map +1 -0
  206. package/dist/generator/contracts.d.ts +67 -0
  207. package/dist/generator/contracts.d.ts.map +1 -0
  208. package/dist/generator/contracts.js +94 -0
  209. package/dist/generator/contracts.js.map +1 -0
  210. package/dist/generator/index.d.ts +3 -0
  211. package/dist/generator/index.d.ts.map +1 -0
  212. package/dist/generator/index.js +2 -0
  213. package/dist/generator/index.js.map +1 -0
  214. package/dist/governance/governance.d.ts +24 -0
  215. package/dist/governance/governance.d.ts.map +1 -0
  216. package/dist/governance/governance.js +238 -0
  217. package/dist/governance/governance.js.map +1 -0
  218. package/dist/governance/index.d.ts +3 -0
  219. package/dist/governance/index.d.ts.map +1 -0
  220. package/dist/governance/index.js +2 -0
  221. package/dist/governance/index.js.map +1 -0
  222. package/dist/governance/types.d.ts +14 -0
  223. package/dist/governance/types.d.ts.map +1 -0
  224. package/dist/governance/types.js +5 -0
  225. package/dist/governance/types.js.map +1 -0
  226. package/dist/graph/builder.d.ts +10 -0
  227. package/dist/graph/builder.d.ts.map +1 -0
  228. package/dist/graph/builder.js +573 -0
  229. package/dist/graph/builder.js.map +1 -0
  230. package/dist/graph/graph-types.d.ts +64 -0
  231. package/dist/graph/graph-types.d.ts.map +1 -0
  232. package/dist/graph/graph-types.js +29 -0
  233. package/dist/graph/graph-types.js.map +1 -0
  234. package/dist/graph/index.d.ts +8 -0
  235. package/dist/graph/index.d.ts.map +1 -0
  236. package/dist/graph/index.js +5 -0
  237. package/dist/graph/index.js.map +1 -0
  238. package/dist/graph/serializer.d.ts +9 -0
  239. package/dist/graph/serializer.d.ts.map +1 -0
  240. package/dist/graph/serializer.js +31 -0
  241. package/dist/graph/serializer.js.map +1 -0
  242. package/dist/graph/validator.d.ts +14 -0
  243. package/dist/graph/validator.d.ts.map +1 -0
  244. package/dist/graph/validator.js +96 -0
  245. package/dist/graph/validator.js.map +1 -0
  246. package/dist/implement/implement.d.ts +30 -0
  247. package/dist/implement/implement.d.ts.map +1 -0
  248. package/dist/implement/implement.js +299 -0
  249. package/dist/implement/implement.js.map +1 -0
  250. package/dist/implement/index.d.ts +3 -0
  251. package/dist/implement/index.d.ts.map +1 -0
  252. package/dist/implement/index.js +2 -0
  253. package/dist/implement/index.js.map +1 -0
  254. package/dist/implement/types.d.ts +41 -0
  255. package/dist/implement/types.d.ts.map +1 -0
  256. package/dist/implement/types.js +5 -0
  257. package/dist/implement/types.js.map +1 -0
  258. package/dist/incremental/incremental-spec.d.ts +12 -0
  259. package/dist/incremental/incremental-spec.d.ts.map +1 -0
  260. package/dist/incremental/incremental-spec.js +100 -0
  261. package/dist/incremental/incremental-spec.js.map +1 -0
  262. package/dist/incremental/index.d.ts +3 -0
  263. package/dist/incremental/index.d.ts.map +1 -0
  264. package/dist/incremental/index.js +5 -0
  265. package/dist/incremental/index.js.map +1 -0
  266. package/dist/incremental/types.d.ts +28 -0
  267. package/dist/incremental/types.d.ts.map +1 -0
  268. package/dist/incremental/types.js +7 -0
  269. package/dist/incremental/types.js.map +1 -0
  270. package/dist/index.d.ts +106 -0
  271. package/dist/index.d.ts.map +1 -0
  272. package/dist/index.js +106 -0
  273. package/dist/index.js.map +1 -0
  274. package/dist/lexer/index.d.ts +6 -0
  275. package/dist/lexer/index.d.ts.map +1 -0
  276. package/dist/lexer/index.js +5 -0
  277. package/dist/lexer/index.js.map +1 -0
  278. package/dist/lexer/keywords.d.ts +3 -0
  279. package/dist/lexer/keywords.d.ts.map +1 -0
  280. package/dist/lexer/keywords.js +142 -0
  281. package/dist/lexer/keywords.js.map +1 -0
  282. package/dist/lexer/lexer.d.ts +19 -0
  283. package/dist/lexer/lexer.d.ts.map +1 -0
  284. package/dist/lexer/lexer.js +286 -0
  285. package/dist/lexer/lexer.js.map +1 -0
  286. package/dist/lexer/source.d.ts +13 -0
  287. package/dist/lexer/source.d.ts.map +1 -0
  288. package/dist/lexer/source.js +59 -0
  289. package/dist/lexer/source.js.map +1 -0
  290. package/dist/lexer/tokens.d.ts +157 -0
  291. package/dist/lexer/tokens.d.ts.map +1 -0
  292. package/dist/lexer/tokens.js +173 -0
  293. package/dist/lexer/tokens.js.map +1 -0
  294. package/dist/orchestrator/index.d.ts +5 -0
  295. package/dist/orchestrator/index.d.ts.map +1 -0
  296. package/dist/orchestrator/index.js +3 -0
  297. package/dist/orchestrator/index.js.map +1 -0
  298. package/dist/orchestrator/orchestrator.d.ts +14 -0
  299. package/dist/orchestrator/orchestrator.d.ts.map +1 -0
  300. package/dist/orchestrator/orchestrator.js +129 -0
  301. package/dist/orchestrator/orchestrator.js.map +1 -0
  302. package/dist/orchestrator/pipeline.d.ts +31 -0
  303. package/dist/orchestrator/pipeline.d.ts.map +1 -0
  304. package/dist/orchestrator/pipeline.js +290 -0
  305. package/dist/orchestrator/pipeline.js.map +1 -0
  306. package/dist/orchestrator/types.d.ts +60 -0
  307. package/dist/orchestrator/types.d.ts.map +1 -0
  308. package/dist/orchestrator/types.js +8 -0
  309. package/dist/orchestrator/types.js.map +1 -0
  310. package/dist/parser/ast.d.ts +502 -0
  311. package/dist/parser/ast.d.ts.map +1 -0
  312. package/dist/parser/ast.js +7 -0
  313. package/dist/parser/ast.js.map +1 -0
  314. package/dist/parser/expressions.d.ts +18 -0
  315. package/dist/parser/expressions.d.ts.map +1 -0
  316. package/dist/parser/expressions.js +230 -0
  317. package/dist/parser/expressions.js.map +1 -0
  318. package/dist/parser/index.d.ts +4 -0
  319. package/dist/parser/index.d.ts.map +1 -0
  320. package/dist/parser/index.js +2 -0
  321. package/dist/parser/index.js.map +1 -0
  322. package/dist/parser/parser.d.ts +83 -0
  323. package/dist/parser/parser.d.ts.map +1 -0
  324. package/dist/parser/parser.js +2149 -0
  325. package/dist/parser/parser.js.map +1 -0
  326. package/dist/planner/differ.d.ts +4 -0
  327. package/dist/planner/differ.d.ts.map +1 -0
  328. package/dist/planner/differ.js +96 -0
  329. package/dist/planner/differ.js.map +1 -0
  330. package/dist/planner/index.d.ts +7 -0
  331. package/dist/planner/index.d.ts.map +1 -0
  332. package/dist/planner/index.js +5 -0
  333. package/dist/planner/index.js.map +1 -0
  334. package/dist/planner/plan-types.d.ts +26 -0
  335. package/dist/planner/plan-types.d.ts.map +1 -0
  336. package/dist/planner/plan-types.js +5 -0
  337. package/dist/planner/plan-types.js.map +1 -0
  338. package/dist/planner/planner.d.ts +8 -0
  339. package/dist/planner/planner.d.ts.map +1 -0
  340. package/dist/planner/planner.js +83 -0
  341. package/dist/planner/planner.js.map +1 -0
  342. package/dist/planner/propagator.d.ts +4 -0
  343. package/dist/planner/propagator.d.ts.map +1 -0
  344. package/dist/planner/propagator.js +45 -0
  345. package/dist/planner/propagator.js.map +1 -0
  346. package/dist/planner/semantic-diff.d.ts +27 -0
  347. package/dist/planner/semantic-diff.d.ts.map +1 -0
  348. package/dist/planner/semantic-diff.js +253 -0
  349. package/dist/planner/semantic-diff.js.map +1 -0
  350. package/dist/presets/index.d.ts +3 -0
  351. package/dist/presets/index.d.ts.map +1 -0
  352. package/dist/presets/index.js +5 -0
  353. package/dist/presets/index.js.map +1 -0
  354. package/dist/presets/loader.d.ts +28 -0
  355. package/dist/presets/loader.d.ts.map +1 -0
  356. package/dist/presets/loader.js +99 -0
  357. package/dist/presets/loader.js.map +1 -0
  358. package/dist/presets/types.d.ts +21 -0
  359. package/dist/presets/types.d.ts.map +1 -0
  360. package/dist/presets/types.js +5 -0
  361. package/dist/presets/types.js.map +1 -0
  362. package/dist/proposal/index.d.ts +3 -0
  363. package/dist/proposal/index.d.ts.map +1 -0
  364. package/dist/proposal/index.js +7 -0
  365. package/dist/proposal/index.js.map +1 -0
  366. package/dist/proposal/proposal.d.ts +9 -0
  367. package/dist/proposal/proposal.d.ts.map +1 -0
  368. package/dist/proposal/proposal.js +169 -0
  369. package/dist/proposal/proposal.js.map +1 -0
  370. package/dist/proposal/types.d.ts +15 -0
  371. package/dist/proposal/types.d.ts.map +1 -0
  372. package/dist/proposal/types.js +5 -0
  373. package/dist/proposal/types.js.map +1 -0
  374. package/dist/registry/index.d.ts +3 -0
  375. package/dist/registry/index.d.ts.map +1 -0
  376. package/dist/registry/index.js +2 -0
  377. package/dist/registry/index.js.map +1 -0
  378. package/dist/registry/resolution.d.ts +39 -0
  379. package/dist/registry/resolution.d.ts.map +1 -0
  380. package/dist/registry/resolution.js +70 -0
  381. package/dist/registry/resolution.js.map +1 -0
  382. package/dist/reviewers/adversarial.d.ts +3 -0
  383. package/dist/reviewers/adversarial.d.ts.map +1 -0
  384. package/dist/reviewers/adversarial.js +111 -0
  385. package/dist/reviewers/adversarial.js.map +1 -0
  386. package/dist/reviewers/architecture.d.ts +3 -0
  387. package/dist/reviewers/architecture.d.ts.map +1 -0
  388. package/dist/reviewers/architecture.js +71 -0
  389. package/dist/reviewers/architecture.js.map +1 -0
  390. package/dist/reviewers/code-quality.d.ts +3 -0
  391. package/dist/reviewers/code-quality.d.ts.map +1 -0
  392. package/dist/reviewers/code-quality.js +72 -0
  393. package/dist/reviewers/code-quality.js.map +1 -0
  394. package/dist/reviewers/edge-case.d.ts +3 -0
  395. package/dist/reviewers/edge-case.d.ts.map +1 -0
  396. package/dist/reviewers/edge-case.js +107 -0
  397. package/dist/reviewers/edge-case.js.map +1 -0
  398. package/dist/reviewers/index.d.ts +21 -0
  399. package/dist/reviewers/index.d.ts.map +1 -0
  400. package/dist/reviewers/index.js +39 -0
  401. package/dist/reviewers/index.js.map +1 -0
  402. package/dist/reviewers/prompt-loader.d.ts +24 -0
  403. package/dist/reviewers/prompt-loader.d.ts.map +1 -0
  404. package/dist/reviewers/prompt-loader.js +67 -0
  405. package/dist/reviewers/prompt-loader.js.map +1 -0
  406. package/dist/reviewers/quality.d.ts +3 -0
  407. package/dist/reviewers/quality.d.ts.map +1 -0
  408. package/dist/reviewers/quality.js +76 -0
  409. package/dist/reviewers/quality.js.map +1 -0
  410. package/dist/reviewers/reviewer.d.ts +39 -0
  411. package/dist/reviewers/reviewer.d.ts.map +1 -0
  412. package/dist/reviewers/reviewer.js +149 -0
  413. package/dist/reviewers/reviewer.js.map +1 -0
  414. package/dist/reviewers/security.d.ts +3 -0
  415. package/dist/reviewers/security.d.ts.map +1 -0
  416. package/dist/reviewers/security.js +87 -0
  417. package/dist/reviewers/security.js.map +1 -0
  418. package/dist/reviewers/specification.d.ts +3 -0
  419. package/dist/reviewers/specification.d.ts.map +1 -0
  420. package/dist/reviewers/specification.js +79 -0
  421. package/dist/reviewers/specification.js.map +1 -0
  422. package/dist/reviewers/test-quality.d.ts +3 -0
  423. package/dist/reviewers/test-quality.d.ts.map +1 -0
  424. package/dist/reviewers/test-quality.js +88 -0
  425. package/dist/reviewers/test-quality.js.map +1 -0
  426. package/dist/reviewers/types.d.ts +32 -0
  427. package/dist/reviewers/types.d.ts.map +1 -0
  428. package/dist/reviewers/types.js +5 -0
  429. package/dist/reviewers/types.js.map +1 -0
  430. package/dist/reviewers/ux.d.ts +3 -0
  431. package/dist/reviewers/ux.d.ts.map +1 -0
  432. package/dist/reviewers/ux.js +94 -0
  433. package/dist/reviewers/ux.js.map +1 -0
  434. package/dist/runtime/index.d.ts +3 -0
  435. package/dist/runtime/index.d.ts.map +1 -0
  436. package/dist/runtime/index.js +2 -0
  437. package/dist/runtime/index.js.map +1 -0
  438. package/dist/runtime/resolution.d.ts +30 -0
  439. package/dist/runtime/resolution.d.ts.map +1 -0
  440. package/dist/runtime/resolution.js +59 -0
  441. package/dist/runtime/resolution.js.map +1 -0
  442. package/dist/testing/index.d.ts +3 -0
  443. package/dist/testing/index.d.ts.map +1 -0
  444. package/dist/testing/index.js +2 -0
  445. package/dist/testing/index.js.map +1 -0
  446. package/dist/testing/test-runner.d.ts +18 -0
  447. package/dist/testing/test-runner.d.ts.map +1 -0
  448. package/dist/testing/test-runner.js +131 -0
  449. package/dist/testing/test-runner.js.map +1 -0
  450. package/dist/types.d.ts +36 -0
  451. package/dist/types.d.ts.map +1 -0
  452. package/dist/types.js +127 -0
  453. package/dist/types.js.map +1 -0
  454. package/dist/validation/index.d.ts +3 -0
  455. package/dist/validation/index.d.ts.map +1 -0
  456. package/dist/validation/index.js +2 -0
  457. package/dist/validation/index.js.map +1 -0
  458. package/dist/validation/types.d.ts +16 -0
  459. package/dist/validation/types.d.ts.map +1 -0
  460. package/dist/validation/types.js +5 -0
  461. package/dist/validation/types.js.map +1 -0
  462. package/dist/validation/validation.d.ts +8 -0
  463. package/dist/validation/validation.d.ts.map +1 -0
  464. package/dist/validation/validation.js +101 -0
  465. package/dist/validation/validation.js.map +1 -0
  466. package/dist/verification/index.d.ts +3 -0
  467. package/dist/verification/index.d.ts.map +1 -0
  468. package/dist/verification/index.js +5 -0
  469. package/dist/verification/index.js.map +1 -0
  470. package/dist/verification/types.d.ts +14 -0
  471. package/dist/verification/types.d.ts.map +1 -0
  472. package/dist/verification/types.js +5 -0
  473. package/dist/verification/types.js.map +1 -0
  474. package/dist/verification/verify.d.ts +7 -0
  475. package/dist/verification/verify.d.ts.map +1 -0
  476. package/dist/verification/verify.js +127 -0
  477. package/dist/verification/verify.js.map +1 -0
  478. package/dist/workflow/clarify.d.ts +7 -0
  479. package/dist/workflow/clarify.d.ts.map +1 -0
  480. package/dist/workflow/clarify.js +165 -0
  481. package/dist/workflow/clarify.js.map +1 -0
  482. package/dist/workflow/engine.d.ts +19 -0
  483. package/dist/workflow/engine.d.ts.map +1 -0
  484. package/dist/workflow/engine.js +265 -0
  485. package/dist/workflow/engine.js.map +1 -0
  486. package/dist/workflow/index.d.ts +6 -0
  487. package/dist/workflow/index.d.ts.map +1 -0
  488. package/dist/workflow/index.js +7 -0
  489. package/dist/workflow/index.js.map +1 -0
  490. package/dist/workflow/types.d.ts +95 -0
  491. package/dist/workflow/types.d.ts.map +1 -0
  492. package/dist/workflow/types.js +18 -0
  493. package/dist/workflow/types.js.map +1 -0
  494. package/package.json +63 -0
@@ -0,0 +1,65 @@
1
+ // ---------------------------------------------------------------------------
2
+ // Prodara Compiler — Doc-Gen Main Renderer
3
+ // ---------------------------------------------------------------------------
4
+ // Top-level entry point: generates DocFile[] from a ProductGraph.
5
+ // Also handles writing files with atomic writes and stale cleanup.
6
+ import { writeFileSync, mkdirSync, readdirSync, unlinkSync, renameSync } from 'node:fs';
7
+ import { basename, join, resolve } from 'node:path';
8
+ import { randomBytes } from 'node:crypto';
9
+ import { createStringResolver } from './string-resolver.js';
10
+ import { createLinkResolver } from './link-resolver.js';
11
+ import { renderModuleDoc } from './module-renderer.js';
12
+ import { renderProductOverview } from './product-renderer.js';
13
+ // ---------------------------------------------------------------------------
14
+ // Generation
15
+ // ---------------------------------------------------------------------------
16
+ /**
17
+ * Generate human-readable markdown docs from a product graph.
18
+ * Returns the files to write — caller can use `writeDocs()` for I/O.
19
+ */
20
+ export function generateDocs(graph, config, root) {
21
+ const outputDir = resolve(root, config.outputDir);
22
+ const resolveString = createStringResolver(graph);
23
+ const resolveLink = createLinkResolver(graph);
24
+ const files = [];
25
+ // Product overview
26
+ files.push({
27
+ path: join(outputDir, 'README.md'),
28
+ content: renderProductOverview(graph, resolveString),
29
+ });
30
+ // Per-module docs
31
+ for (const mod of graph.modules) {
32
+ files.push({
33
+ path: join(outputDir, `${mod.name}.md`),
34
+ content: renderModuleDoc(mod, graph, resolveString, resolveLink),
35
+ });
36
+ }
37
+ return files;
38
+ }
39
+ // ---------------------------------------------------------------------------
40
+ // File writing
41
+ // ---------------------------------------------------------------------------
42
+ /**
43
+ * Write generated doc files to disk with atomic writes.
44
+ * Cleans up stale .md files that no longer correspond to modules.
45
+ */
46
+ export function writeDocs(files, outputDir, root) {
47
+ const absOutputDir = resolve(root, outputDir);
48
+ mkdirSync(absOutputDir, { recursive: true });
49
+ // Write files atomically (temp + rename)
50
+ const writtenNames = new Set();
51
+ for (const file of files) {
52
+ const tmpPath = file.path + `.tmp_${randomBytes(4).toString('hex')}`;
53
+ writeFileSync(tmpPath, file.content, 'utf-8');
54
+ renameSync(tmpPath, file.path);
55
+ writtenNames.add(basename(file.path));
56
+ }
57
+ // Clean stale .md files that no longer correspond to modules
58
+ const existing = readdirSync(absOutputDir);
59
+ for (const name of existing) {
60
+ if (name.endsWith('.md') && !writtenNames.has(name)) {
61
+ unlinkSync(join(absOutputDir, name));
62
+ }
63
+ }
64
+ }
65
+ //# sourceMappingURL=doc-renderer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"doc-renderer.js","sourceRoot":"","sources":["../../src/doc-gen/doc-renderer.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ import type { GraphTypeRef, ModuleNode } from '../graph/graph-types.js';
2
+ export declare function renderBanner(sourceFile: string): string[];
3
+ export declare function formatTypeRef(ref: GraphTypeRef): string;
4
+ export declare function renderTable(headers: string[], rows: string[][]): string[];
5
+ export declare function humanize(snakeName: string): string;
6
+ export declare function toAnchor(heading: string): string;
7
+ export declare function section(title: string, level?: number): string[];
8
+ /**
9
+ * Safely extract a typed array property from a module node.
10
+ * Returns empty array if the property is missing or not an array.
11
+ */
12
+ export declare function getArrayProp<T>(mod: ModuleNode, key: string): T[];
13
+ /**
14
+ * Extract the last segment of a dot-separated identifier.
15
+ * e.g. `"board.board_strings.title"` → `"title"`
16
+ */
17
+ export declare function shortName(id: string): string;
18
+ //# sourceMappingURL=format-helpers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"format-helpers.d.ts","sourceRoot":"","sources":["../../src/doc-gen/format-helpers.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAMxE,wBAAgB,YAAY,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,EAAE,CAQzD;AAMD,wBAAgB,aAAa,CAAC,GAAG,EAAE,YAAY,GAAG,MAAM,CAcvD;AAMD,wBAAgB,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,GAAG,MAAM,EAAE,CAQzE;AAMD,wBAAgB,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAKlD;AAED,wBAAgB,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAOhD;AAMD,wBAAgB,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,GAAE,MAAU,GAAG,MAAM,EAAE,CAGlE;AAMD;;;GAGG;AACH,wBAAgB,YAAY,CAAC,CAAC,EAAE,GAAG,EAAE,UAAU,EAAE,GAAG,EAAE,MAAM,GAAG,CAAC,EAAE,CAGjE;AAED;;;GAGG;AACH,wBAAgB,SAAS,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,CAI5C"}
@@ -0,0 +1,92 @@
1
+ // ---------------------------------------------------------------------------
2
+ // Prodara Compiler — Doc-Gen Format Helpers
3
+ // ---------------------------------------------------------------------------
4
+ // Shared formatting utilities for human-readable doc generation.
5
+ // ---------------------------------------------------------------------------
6
+ // Auto-generated file banner
7
+ // ---------------------------------------------------------------------------
8
+ export function renderBanner(sourceFile) {
9
+ const now = new Date().toISOString();
10
+ return [
11
+ `<!-- ⚠️ AUTO-GENERATED FROM .prd FILES — DO NOT EDIT -->`,
12
+ `<!-- Source: ${sourceFile} | Compiled: ${now} -->`,
13
+ `<!-- Edit the .prd source files and recompile to update. -->`,
14
+ '',
15
+ ];
16
+ }
17
+ // ---------------------------------------------------------------------------
18
+ // Type display
19
+ // ---------------------------------------------------------------------------
20
+ export function formatTypeRef(ref) {
21
+ if (typeof ref === 'string')
22
+ return ref;
23
+ if ('ref' in ref) {
24
+ const parts = ref.ref.split('.');
25
+ /* v8 ignore next -- split always returns ≥1 element */
26
+ return parts[parts.length - 1] ?? ref.ref;
27
+ }
28
+ /* v8 ignore next 3 -- exhaustive: false branch of this if is unreachable */
29
+ if ('generic' in ref) {
30
+ return `${ref.generic}<${formatTypeRef(ref.arg)}>`;
31
+ }
32
+ /* v8 ignore next 3 -- exhaustive check */
33
+ const _exhaustive = ref;
34
+ return String(_exhaustive);
35
+ }
36
+ // ---------------------------------------------------------------------------
37
+ // Markdown table helpers
38
+ // ---------------------------------------------------------------------------
39
+ export function renderTable(headers, rows) {
40
+ const lines = [];
41
+ lines.push(`| ${headers.join(' | ')} |`);
42
+ lines.push(`| ${headers.map(() => '---').join(' | ')} |`);
43
+ for (const row of rows) {
44
+ lines.push(`| ${row.join(' | ')} |`);
45
+ }
46
+ return lines;
47
+ }
48
+ // ---------------------------------------------------------------------------
49
+ // Name formatting
50
+ // ---------------------------------------------------------------------------
51
+ export function humanize(snakeName) {
52
+ return snakeName
53
+ .replace(/_/g, ' ')
54
+ .trim()
55
+ .replace(/\b\w/g, c => c.toUpperCase());
56
+ }
57
+ export function toAnchor(heading) {
58
+ return heading
59
+ .toLowerCase()
60
+ .trim()
61
+ .replace(/[^a-z0-9 -]/g, '')
62
+ .replace(/\s+/g, '-')
63
+ .replace(/^-+|-+$/g, '');
64
+ }
65
+ // ---------------------------------------------------------------------------
66
+ // Section helpers
67
+ // ---------------------------------------------------------------------------
68
+ export function section(title, level = 2) {
69
+ const prefix = '#'.repeat(level);
70
+ return ['', `${prefix} ${title}`, ''];
71
+ }
72
+ // ---------------------------------------------------------------------------
73
+ // Graph node helpers — shared across all doc-gen renderers
74
+ // ---------------------------------------------------------------------------
75
+ /**
76
+ * Safely extract a typed array property from a module node.
77
+ * Returns empty array if the property is missing or not an array.
78
+ */
79
+ export function getArrayProp(mod, key) {
80
+ const val = mod[key];
81
+ return Array.isArray(val) ? val : [];
82
+ }
83
+ /**
84
+ * Extract the last segment of a dot-separated identifier.
85
+ * e.g. `"board.board_strings.title"` → `"title"`
86
+ */
87
+ export function shortName(id) {
88
+ const parts = id.split('.');
89
+ /* v8 ignore next -- split always returns ≥1 element */
90
+ return parts[parts.length - 1] ?? id;
91
+ }
92
+ //# sourceMappingURL=format-helpers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"format-helpers.js","sourceRoot":"","sources":["../../src/doc-gen/format-helpers.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ export { generateDocs, writeDocs } from './doc-renderer.js';
2
+ export type { DocFile } from './doc-renderer.js';
3
+ export type { SectionContext } from './section-renderers.js';
4
+ export type { ActorNode, CapabilityNode, EntityNode, ValueNode, EnumNode, RuleNode, WorkflowNode, ActionNode, EventNode, ScheduleNode, SurfaceNode, RenderingNode, TokensNode, StorageNode, SecurityNode, PrivacyNode, TestNode, StringsNode, FieldRef, StepNode, } from './doc-gen-types.js';
5
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/doc-gen/index.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAC5D,YAAY,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AACjD,YAAY,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAC7D,YAAY,EACV,SAAS,EAAE,cAAc,EAAE,UAAU,EAAE,SAAS,EAAE,QAAQ,EAC1D,QAAQ,EAAE,YAAY,EAAE,UAAU,EAAE,SAAS,EAAE,YAAY,EAC3D,WAAW,EAAE,aAAa,EAAE,UAAU,EAAE,WAAW,EACnD,YAAY,EAAE,WAAW,EAAE,QAAQ,EAAE,WAAW,EAAE,QAAQ,EAAE,QAAQ,GACrE,MAAM,oBAAoB,CAAC"}
@@ -0,0 +1,5 @@
1
+ // ---------------------------------------------------------------------------
2
+ // Prodara Compiler — Doc-Gen Barrel Exports
3
+ // ---------------------------------------------------------------------------
4
+ export { generateDocs, writeDocs } from './doc-renderer.js';
5
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/doc-gen/index.ts"],"names":[],"mappings":"AAAA,8EAA8E;AAC9E,4CAA4C;AAC5C,8EAA8E;AAE9E,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC"}
@@ -0,0 +1,10 @@
1
+ import type { ProductGraph } from '../graph/graph-types.js';
2
+ /**
3
+ * Create a link resolver for cross-module and same-module references.
4
+ *
5
+ * @param graph The product graph (used to look up which module a node belongs to)
6
+ * @returns A function that given a node id and the current module name,
7
+ * returns a markdown link string
8
+ */
9
+ export declare function createLinkResolver(graph: ProductGraph): (nodeId: string, fromModule: string) => string;
10
+ //# sourceMappingURL=link-resolver.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"link-resolver.d.ts","sourceRoot":"","sources":["../../src/doc-gen/link-resolver.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAsC5D;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,YAAY,GAClB,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,KAAK,MAAM,CA0ChD"}
@@ -0,0 +1,87 @@
1
+ // ---------------------------------------------------------------------------
2
+ // Prodara Compiler — Doc-Gen Link Resolver
3
+ // ---------------------------------------------------------------------------
4
+ // Generates cross-module markdown links and same-module anchor links.
5
+ import { toAnchor, humanize } from './format-helpers.js';
6
+ /**
7
+ * Section heading anchors keyed by node kind.
8
+ * Used to link to the correct section within a module doc.
9
+ */
10
+ const KIND_TO_SECTION = {
11
+ entity: 'Domain Model',
12
+ value: 'Domain Model',
13
+ enum: 'Domain Model',
14
+ rule: 'Business Rules',
15
+ actor: 'Actors & Capabilities',
16
+ capability: 'Actors & Capabilities',
17
+ workflow: 'Workflows',
18
+ action: 'Actions',
19
+ event: 'Events',
20
+ schedule: 'Schedules',
21
+ surface: 'Surfaces',
22
+ rendering: 'Surfaces',
23
+ tokens: 'Design System',
24
+ theme: 'Design System',
25
+ strings: 'Design System',
26
+ storage: 'Storage',
27
+ integration: 'Platform',
28
+ transport: 'Platform',
29
+ execution: 'Platform',
30
+ extension: 'Platform',
31
+ security: 'Governance',
32
+ privacy: 'Governance',
33
+ validation: 'Governance',
34
+ constitution: 'Governance',
35
+ secret: 'Runtime',
36
+ environment: 'Runtime',
37
+ deployment: 'Runtime',
38
+ test: 'Tests',
39
+ };
40
+ /**
41
+ * Create a link resolver for cross-module and same-module references.
42
+ *
43
+ * @param graph The product graph (used to look up which module a node belongs to)
44
+ * @returns A function that given a node id and the current module name,
45
+ * returns a markdown link string
46
+ */
47
+ export function createLinkResolver(graph) {
48
+ // Build a map from node id → { moduleName, kind, name }
49
+ const nodeIndex = new Map();
50
+ for (const mod of graph.modules) {
51
+ for (const [key, value] of Object.entries(mod)) {
52
+ if (key === 'id' || key === 'kind' || key === 'name' || key === 'imports')
53
+ continue;
54
+ /* v8 ignore next -- all graph module properties past id/kind/name/imports are arrays */
55
+ if (!Array.isArray(value))
56
+ continue;
57
+ for (const item of value) {
58
+ if (item && typeof item === 'object' && 'id' in item && 'kind' in item && 'name' in item) {
59
+ nodeIndex.set(item.id, {
60
+ moduleName: mod.name,
61
+ kind: item.kind,
62
+ name: item.name,
63
+ });
64
+ }
65
+ }
66
+ }
67
+ }
68
+ return (nodeId, fromModule) => {
69
+ const node = nodeIndex.get(nodeId);
70
+ if (!node) {
71
+ // Can't resolve — just return the last segment as plain text
72
+ const parts = nodeId.split('.');
73
+ /* v8 ignore next -- split always returns ≥1 element */
74
+ return parts[parts.length - 1] ?? nodeId;
75
+ }
76
+ /* v8 ignore next -- all known kinds are in KIND_TO_SECTION */
77
+ const sectionTitle = KIND_TO_SECTION[node.kind] ?? humanize(node.kind);
78
+ const anchor = `#${toAnchor(sectionTitle)}`;
79
+ if (node.moduleName === fromModule) {
80
+ // Same-module anchor link
81
+ return `[${node.name}](${anchor})`;
82
+ }
83
+ // Cross-module link
84
+ return `[${node.name}](${node.moduleName}.md${anchor})`;
85
+ };
86
+ }
87
+ //# sourceMappingURL=link-resolver.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"link-resolver.js","sourceRoot":"","sources":["../../src/doc-gen/link-resolver.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ import type { ModuleNode, GraphEdge } from '../graph/graph-types.js';
2
+ import type { WorkflowNode } from './doc-gen-types.js';
3
+ /**
4
+ * Render a Mermaid erDiagram block for all entities/enums/values in a module.
5
+ * Returns empty array if the module has no domain objects.
6
+ */
7
+ export declare function renderEntityErDiagram(mod: ModuleNode, edges: readonly GraphEdge[]): string[];
8
+ /**
9
+ * Render a Mermaid flowchart for a single workflow.
10
+ */
11
+ export declare function renderWorkflowFlowchart(workflow: WorkflowNode): string[];
12
+ //# sourceMappingURL=mermaid-renderers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mermaid-renderers.d.ts","sourceRoot":"","sources":["../../src/doc-gen/mermaid-renderers.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,UAAU,EAAE,SAAS,EAAgB,MAAM,yBAAyB,CAAC;AAEnF,OAAO,KAAK,EAAmC,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAcxF;;;GAGG;AACH,wBAAgB,qBAAqB,CACnC,GAAG,EAAE,UAAU,EACf,KAAK,EAAE,SAAS,SAAS,EAAE,GAC1B,MAAM,EAAE,CA2EV;AAqDD;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,QAAQ,EAAE,YAAY,GAAG,MAAM,EAAE,CA0DxE"}
@@ -0,0 +1,197 @@
1
+ // ---------------------------------------------------------------------------
2
+ // Prodara Compiler — Doc-Gen Mermaid Renderers
3
+ // ---------------------------------------------------------------------------
4
+ // Generates Mermaid ER diagrams for entities and flowcharts for workflows.
5
+ import { formatTypeRef, getArrayProp } from './format-helpers.js';
6
+ // ---------------------------------------------------------------------------
7
+ // Shared helpers
8
+ // ---------------------------------------------------------------------------
9
+ function mermaidId(name) {
10
+ return name.replace(/[^a-zA-Z0-9_]/g, '_');
11
+ }
12
+ // ---------------------------------------------------------------------------
13
+ // Entity-Relationship Diagram
14
+ // ---------------------------------------------------------------------------
15
+ /**
16
+ * Render a Mermaid erDiagram block for all entities/enums/values in a module.
17
+ * Returns empty array if the module has no domain objects.
18
+ */
19
+ export function renderEntityErDiagram(mod, edges) {
20
+ const entities = getArrayProp(mod, 'entities');
21
+ const enums = getArrayProp(mod, 'enums');
22
+ const values = getArrayProp(mod, 'values');
23
+ if (entities.length === 0 && enums.length === 0 && values.length === 0)
24
+ return [];
25
+ const lines = [];
26
+ lines.push('```mermaid');
27
+ lines.push('erDiagram');
28
+ // Render entities
29
+ for (const entity of entities) {
30
+ const eid = mermaidId(entity.name).toUpperCase();
31
+ lines.push(` ${eid} {`);
32
+ for (const field of entity.fields) {
33
+ const typeName = formatTypeRef(field.type);
34
+ const pk = field.name.endsWith('_id') || field.name === 'id' ? ' PK' : '';
35
+ lines.push(` ${typeName} ${field.name}${pk}`);
36
+ }
37
+ lines.push(' }');
38
+ }
39
+ // Render value objects
40
+ for (const value of values) {
41
+ const vid = mermaidId(value.name).toUpperCase();
42
+ lines.push(` ${vid} {`);
43
+ for (const field of value.fields) {
44
+ const typeName = formatTypeRef(field.type);
45
+ lines.push(` ${typeName} ${field.name}`);
46
+ }
47
+ lines.push(' }');
48
+ }
49
+ // Render enums as entities with members
50
+ for (const en of enums) {
51
+ const eid = mermaidId(en.name).toUpperCase();
52
+ lines.push(` ${eid} {`);
53
+ for (const member of en.members) {
54
+ lines.push(` enum ${member.name}`);
55
+ }
56
+ lines.push(' }');
57
+ }
58
+ // Render relationships from field_type edges within this module
59
+ const modulePrefix = mod.id + '.';
60
+ const fieldTypeEdges = edges.filter(e => e.kind === 'field_type' && e.from.startsWith(modulePrefix));
61
+ // Build name lookup once to avoid O(n²) scanning
62
+ const nameById = new Map();
63
+ for (const e of entities)
64
+ nameById.set(e.id, e.name);
65
+ for (const v of values)
66
+ nameById.set(v.id, v.name);
67
+ for (const en of enums)
68
+ nameById.set(en.id, en.name);
69
+ const rendered = new Set();
70
+ for (const edge of fieldTypeEdges) {
71
+ /* v8 ignore next -- field_type edges always reference known entities */
72
+ const fromNode = nameById.get(edge.from) ?? null;
73
+ const toNode = nameById.get(edge.to) ?? null;
74
+ if (!fromNode || !toNode)
75
+ continue;
76
+ const fromId = mermaidId(fromNode).toUpperCase();
77
+ const toId = mermaidId(toNode).toUpperCase();
78
+ const key = `${fromId}-${toId}`;
79
+ if (rendered.has(key))
80
+ continue;
81
+ rendered.add(key);
82
+ const cardinality = inferCardinality(entities, values, edge.from, edge.to);
83
+ lines.push(` ${fromId} ${cardinality} ${toId} : "references"`);
84
+ }
85
+ lines.push('```');
86
+ return lines;
87
+ }
88
+ function inferCardinality(entities, values, fromId, toId) {
89
+ // Look at the from entity's fields to find the field referencing toId
90
+ const allFieldContainers = [...entities, ...values];
91
+ for (const container of allFieldContainers) {
92
+ if (!fromId.startsWith(container.id))
93
+ continue;
94
+ for (const field of container.fields) {
95
+ if (refPointsTo(field.type, toId)) {
96
+ return getCardinalitySymbol(field.type);
97
+ }
98
+ }
99
+ }
100
+ return '||--||';
101
+ }
102
+ function refPointsTo(type, targetId) {
103
+ if (typeof type === 'string')
104
+ return false;
105
+ if ('ref' in type)
106
+ return type.ref === targetId || targetId.endsWith(`.${extractName(type.ref)}`);
107
+ /* v8 ignore next 2 -- exhaustive: type is always string | ref | generic */
108
+ if ('generic' in type)
109
+ return refPointsTo(type.arg, targetId);
110
+ /* v8 ignore next 2 -- exhaustive: type is always string | ref | generic */
111
+ return false;
112
+ }
113
+ function extractName(ref) {
114
+ const parts = ref.split('.');
115
+ /* v8 ignore next -- split always returns ≥1 element */
116
+ return parts[parts.length - 1] ?? ref;
117
+ }
118
+ function getCardinalitySymbol(type) {
119
+ /* v8 ignore next -- only called with ref or generic types */
120
+ if (typeof type === 'string')
121
+ return '||--||';
122
+ if ('ref' in type)
123
+ return '||--||';
124
+ /* v8 ignore next 4 -- all known generics handled above */
125
+ if ('generic' in type) {
126
+ if (type.generic === 'optional')
127
+ return '||--o|';
128
+ if (type.generic === 'list')
129
+ return '||--o{';
130
+ }
131
+ /* v8 ignore next 2 -- only optional and list generics are used */
132
+ return '||--||';
133
+ }
134
+ // ---------------------------------------------------------------------------
135
+ // Workflow Flowchart
136
+ // ---------------------------------------------------------------------------
137
+ /**
138
+ * Render a Mermaid flowchart for a single workflow.
139
+ */
140
+ export function renderWorkflowFlowchart(workflow) {
141
+ if (!workflow.steps || workflow.steps.length === 0)
142
+ return [];
143
+ const lines = [];
144
+ lines.push('```mermaid');
145
+ lines.push('flowchart TD');
146
+ const wfId = mermaidId(workflow.name);
147
+ lines.push(` START([${workflow.name}]) --> S0`);
148
+ let idx = 0;
149
+ for (const step of workflow.steps) {
150
+ const nodeId = `S${idx}`;
151
+ const nextId = idx + 1 < workflow.steps.length ? `S${idx + 1}` : null;
152
+ if ('call' in step) {
153
+ lines.push(` ${nodeId}[${step.call}]`);
154
+ if (nextId) {
155
+ lines.push(` ${nodeId} --> ${nextId}`);
156
+ }
157
+ }
158
+ else if ('fail' in step) {
159
+ lines.push(` ${nodeId}{{${step.fail}}}`);
160
+ }
161
+ else if ('decide' in step) {
162
+ lines.push(` ${nodeId}{${step.decide}?}`);
163
+ for (const branch of step.branches) {
164
+ const branchId = `${nodeId}_${mermaidId(branch.when)}`;
165
+ if (branch.action.call) {
166
+ lines.push(` ${nodeId} -->|${branch.when}| ${branchId}[${branch.action.call}]`);
167
+ if (nextId) {
168
+ lines.push(` ${branchId} --> ${nextId}`);
169
+ }
170
+ }
171
+ else if (branch.action.fail) {
172
+ lines.push(` ${nodeId} -->|${branch.when}| ${branchId}{{${branch.action.fail}}}`);
173
+ }
174
+ }
175
+ // Default branch to next step
176
+ if (nextId) {
177
+ lines.push(` ${nodeId} -->|other| ${nextId}`);
178
+ }
179
+ }
180
+ idx++;
181
+ }
182
+ // Effects
183
+ const lastStepId = `S${workflow.steps.length - 1}`;
184
+ if (workflow.effects) {
185
+ let effIdx = 0;
186
+ for (const effect of workflow.effects) {
187
+ const effId = `EFF${effIdx}`;
188
+ /* v8 ignore next -- effect always has entries */
189
+ const [kind, value] = Object.entries(effect)[0] ?? ['effect', 'unknown'];
190
+ lines.push(` ${lastStepId} --> ${effId}>${kind}: ${value}]`);
191
+ effIdx++;
192
+ }
193
+ }
194
+ lines.push('```');
195
+ return lines;
196
+ }
197
+ //# sourceMappingURL=mermaid-renderers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mermaid-renderers.js","sourceRoot":"","sources":["../../src/doc-gen/mermaid-renderers.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ import type { ModuleNode, ProductGraph } from '../graph/graph-types.js';
2
+ /**
3
+ * Render a complete human-readable markdown document for one module.
4
+ */
5
+ export declare function renderModuleDoc(mod: ModuleNode, graph: ProductGraph, resolveString: (ref: string | null) => string | null, resolveLink: (nodeId: string, fromModule: string) => string): string;
6
+ //# sourceMappingURL=module-renderer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"module-renderer.d.ts","sourceRoot":"","sources":["../../src/doc-gen/module-renderer.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAkBxE;;GAEG;AACH,wBAAgB,eAAe,CAC7B,GAAG,EAAE,UAAU,EACf,KAAK,EAAE,YAAY,EACnB,aAAa,EAAE,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,KAAK,MAAM,GAAG,IAAI,EACpD,WAAW,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,KAAK,MAAM,GAC1D,MAAM,CAiDR"}
@@ -0,0 +1,54 @@
1
+ // ---------------------------------------------------------------------------
2
+ // Prodara Compiler — Doc-Gen Module Renderer
3
+ // ---------------------------------------------------------------------------
4
+ // Orchestrates all section renderers to produce a complete module doc.
5
+ import { renderBanner, humanize } from './format-helpers.js';
6
+ import { renderActorsSection, renderDomainSection, renderRulesSection, renderWorkflowsSection, renderActionsSection, renderEventsSection, renderSchedulesSection, renderSurfacesSection, renderDesignSection, renderStorageSection, renderGovernanceSection, renderTestsSection, } from './section-renderers.js';
7
+ /**
8
+ * Render a complete human-readable markdown document for one module.
9
+ */
10
+ export function renderModuleDoc(mod, graph, resolveString, resolveLink) {
11
+ const lines = [];
12
+ // Source file hint — use the module name as the source reference
13
+ lines.push(...renderBanner(`${mod.name}.prd`));
14
+ lines.push(`# ${humanize(mod.name)}`);
15
+ lines.push('');
16
+ // Imports
17
+ if (mod.imports.length > 0) {
18
+ lines.push('**Imports:**');
19
+ for (const imp of mod.imports) {
20
+ lines.push(`- \`${imp.symbol}\` from \`${imp.from}\`${imp.alias ? ` (as \`${imp.alias}\`)` : ''}`);
21
+ }
22
+ lines.push('');
23
+ }
24
+ // Build section context
25
+ const ctx = {
26
+ mod,
27
+ edges: graph.edges,
28
+ resolveString,
29
+ resolveLink,
30
+ };
31
+ // Render all sections in order
32
+ const sectionRenderers = [
33
+ renderActorsSection,
34
+ renderDomainSection,
35
+ renderRulesSection,
36
+ renderWorkflowsSection,
37
+ renderActionsSection,
38
+ renderEventsSection,
39
+ renderSchedulesSection,
40
+ renderSurfacesSection,
41
+ renderDesignSection,
42
+ renderStorageSection,
43
+ renderGovernanceSection,
44
+ renderTestsSection,
45
+ ];
46
+ for (const renderer of sectionRenderers) {
47
+ const sectionLines = renderer(ctx);
48
+ if (sectionLines.length > 0) {
49
+ lines.push(...sectionLines);
50
+ }
51
+ }
52
+ return lines.join('\n');
53
+ }
54
+ //# sourceMappingURL=module-renderer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"module-renderer.js","sourceRoot":"","sources":["../../src/doc-gen/module-renderer.ts"],"names":[],"mappings":"AAAA,8EAA8E;AAC9E,6CAA6C;AAC7C,8EAA8E;AAC9E,uEAAuE;AAGvE,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAE7D,OAAO,EACL,mBAAmB,EACnB,mBAAmB,EACnB,kBAAkB,EAClB,sBAAsB,EACtB,oBAAoB,EACpB,mBAAmB,EACnB,sBAAsB,EACtB,qBAAqB,EACrB,mBAAmB,EACnB,oBAAoB,EACpB,uBAAuB,EACvB,kBAAkB,GACnB,MAAM,wBAAwB,CAAC;AAEhC;;GAEG;AACH,MAAM,UAAU,eAAe,CAC7B,GAAe,EACf,KAAmB,EACnB,aAAoD,EACpD,WAA2D;IAE3D,MAAM,KAAK,GAAa,EAAE,CAAC;IAE3B,iEAAiE;IACjE,KAAK,CAAC,IAAI,CAAC,GAAG,YAAY,CAAC,GAAG,GAAG,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC;IAC/C,KAAK,CAAC,IAAI,CAAC,KAAK,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACtC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAEf,UAAU;IACV,IAAI,GAAG,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC3B,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QAC3B,KAAK,MAAM,GAAG,IAAI,GAAG,CAAC,OAAO,EAAE,CAAC;YAC9B,KAAK,CAAC,IAAI,CAAC,OAAO,GAAG,CAAC,MAAM,aAAa,GAAG,CAAC,IAAI,KAAK,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,UAAU,GAAG,CAAC,KAAK,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QACrG,CAAC;QACD,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACjB,CAAC;IAED,wBAAwB;IACxB,MAAM,GAAG,GAAmB;QAC1B,GAAG;QACH,KAAK,EAAE,KAAK,CAAC,KAAK;QAClB,aAAa;QACb,WAAW;KACZ,CAAC;IAEF,+BAA+B;IAC/B,MAAM,gBAAgB,GAAG;QACvB,mBAAmB;QACnB,mBAAmB;QACnB,kBAAkB;QAClB,sBAAsB;QACtB,oBAAoB;QACpB,mBAAmB;QACnB,sBAAsB;QACtB,qBAAqB;QACrB,mBAAmB;QACnB,oBAAoB;QACpB,uBAAuB;QACvB,kBAAkB;KACnB,CAAC;IAEF,KAAK,MAAM,QAAQ,IAAI,gBAAgB,EAAE,CAAC;QACxC,MAAM,YAAY,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC;QACnC,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC5B,KAAK,CAAC,IAAI,CAAC,GAAG,YAAY,CAAC,CAAC;QAC9B,CAAC;IACH,CAAC;IAED,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC"}
@@ -0,0 +1,6 @@
1
+ import type { ProductGraph } from '../graph/graph-types.js';
2
+ /**
3
+ * Render the product-level README.md overview document.
4
+ */
5
+ export declare function renderProductOverview(graph: ProductGraph, resolveString: (ref: string | null) => string | null): string;
6
+ //# sourceMappingURL=product-renderer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"product-renderer.d.ts","sourceRoot":"","sources":["../../src/doc-gen/product-renderer.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,YAAY,EAAc,MAAM,yBAAyB,CAAC;AAQxE;;GAEG;AACH,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,YAAY,EACnB,aAAa,EAAE,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,KAAK,MAAM,GAAG,IAAI,GACnD,MAAM,CAqFR"}