@specverse/engine-realize 3.5.3

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 (420) hide show
  1. package/assets/examples/09-api/ai-spec.yaml +194 -0
  2. package/assets/examples/09-api/converted.yaml +95 -0
  3. package/assets/examples/09-api/diagram-architecture.mmd +10 -0
  4. package/assets/examples/09-api/diagram-er.mmd +10 -0
  5. package/assets/examples/09-api/documentation.html +104 -0
  6. package/assets/examples/09-api/documentation.md +95 -0
  7. package/assets/examples/09-api/inferred-spec.yaml +420 -0
  8. package/assets/examples/09-api/openapi.json +61 -0
  9. package/assets/examples/10-api/README.md +216 -0
  10. package/assets/examples/10-api/ai-spec.yaml +194 -0
  11. package/assets/examples/10-api/converted.yaml +96 -0
  12. package/assets/examples/10-api/diagram-architecture.mmd +10 -0
  13. package/assets/examples/10-api/diagram-er.mmd +10 -0
  14. package/assets/examples/10-api/documentation.html +104 -0
  15. package/assets/examples/10-api/documentation.md +95 -0
  16. package/assets/examples/10-api/inferred-spec.yaml +7 -0
  17. package/assets/examples/10-api/metadata.yaml +89 -0
  18. package/assets/examples/10-api/openapi.json +61 -0
  19. package/assets/examples/10-api/package-integration-test.js +177 -0
  20. package/assets/examples/10-api/usage-example.js +323 -0
  21. package/assets/examples/10-api/usage-example.ts +363 -0
  22. package/assets/examples/10-api/workflow-test.js +113 -0
  23. package/assets/examples/manifests/01-simple-default-mappings.yaml +36 -0
  24. package/assets/examples/manifests/02-capability-mappings.yaml +55 -0
  25. package/assets/examples/manifests/03-hybrid-mappings.yaml +109 -0
  26. package/assets/examples/manifests/README.md +245 -0
  27. package/assets/examples/manifests/backend-only.yaml +43 -0
  28. package/assets/examples/manifests/blog-api.md +78 -0
  29. package/assets/examples/manifests/blog-api.specly +79 -0
  30. package/assets/examples/manifests/frontend-only.yaml +27 -0
  31. package/assets/examples/manifests/fullstack-app.yaml +44 -0
  32. package/assets/examples/manifests/fullstack-monorepo.yaml +62 -0
  33. package/assets/examples/validate-examples-with-expected-failures.cjs +328 -0
  34. package/assets/examples/validate-examples.cjs +225 -0
  35. package/assets/examples-decomposed/cloud-native-manifest.example.yaml +8 -0
  36. package/assets/examples-decomposed/cloud-native-manifest.md +379 -0
  37. package/assets/examples-decomposed/cloud-native-manifest.specly +60 -0
  38. package/assets/examples-decomposed/docker-compose-manifest.example.yaml +8 -0
  39. package/assets/examples-decomposed/docker-compose-manifest.md +326 -0
  40. package/assets/examples-decomposed/docker-compose-manifest.specly +40 -0
  41. package/assets/examples-decomposed/kubernetes-deployment-manifest.example.yaml +8 -0
  42. package/assets/examples-decomposed/kubernetes-deployment-manifest.md +237 -0
  43. package/assets/examples-decomposed/kubernetes-deployment-manifest.specly +41 -0
  44. package/assets/templates/README.md +559 -0
  45. package/assets/templates/TEMPLATE-ENHANCEMENTS-V33.md +462 -0
  46. package/assets/templates/backend-only/CLAUDE.md +73 -0
  47. package/assets/templates/backend-only/README.md +197 -0
  48. package/assets/templates/backend-only/deployments/README.md +149 -0
  49. package/assets/templates/backend-only/deployments/development.specly +53 -0
  50. package/assets/templates/backend-only/deployments/production.specly +87 -0
  51. package/assets/templates/backend-only/docs/README.md +50 -0
  52. package/assets/templates/backend-only/docs/api/README.md +7 -0
  53. package/assets/templates/backend-only/docs/diagrams/README.md +85 -0
  54. package/assets/templates/backend-only/docs/example-documentation-template.md +269 -0
  55. package/assets/templates/backend-only/docs/guides/README.md +15 -0
  56. package/assets/templates/backend-only/dot.env.example +18 -0
  57. package/assets/templates/backend-only/generated/README.md +56 -0
  58. package/assets/templates/backend-only/generated/code/integration-test.template.js +320 -0
  59. package/assets/templates/backend-only/generated/code/package.json.template +34 -0
  60. package/assets/templates/backend-only/generated/docs/README.md +49 -0
  61. package/assets/templates/backend-only/gitignore +54 -0
  62. package/assets/templates/backend-only/manifests/README.md +72 -0
  63. package/assets/templates/backend-only/manifests/docker-compose.specly +91 -0
  64. package/assets/templates/backend-only/manifests/implementation.yaml +100 -0
  65. package/assets/templates/backend-only/manifests/kubernetes.specly +140 -0
  66. package/assets/templates/backend-only/package.json +59 -0
  67. package/assets/templates/backend-only/scripts/test-all.sh +160 -0
  68. package/assets/templates/backend-only/scripts/test-generated-code.sh +165 -0
  69. package/assets/templates/backend-only/specs/main.specly +67 -0
  70. package/assets/templates/default/CLAUDE.md +141 -0
  71. package/assets/templates/default/README.md +404 -0
  72. package/assets/templates/default/deployments/README.md +149 -0
  73. package/assets/templates/default/deployments/development.specly +53 -0
  74. package/assets/templates/default/deployments/production.specly +87 -0
  75. package/assets/templates/default/docs/README.md +50 -0
  76. package/assets/templates/default/docs/api/README.md +7 -0
  77. package/assets/templates/default/docs/diagrams/README.md +85 -0
  78. package/assets/templates/default/docs/example-documentation-template.md +269 -0
  79. package/assets/templates/default/docs/guides/README.md +15 -0
  80. package/assets/templates/default/dot.env.example +18 -0
  81. package/assets/templates/default/generated/README.md +56 -0
  82. package/assets/templates/default/generated/code/integration-test.template.js +320 -0
  83. package/assets/templates/default/generated/code/package.json.template +34 -0
  84. package/assets/templates/default/generated/docs/README.md +49 -0
  85. package/assets/templates/default/gitignore +54 -0
  86. package/assets/templates/default/manifests/README.md +72 -0
  87. package/assets/templates/default/manifests/docker-compose.specly +91 -0
  88. package/assets/templates/default/manifests/implementation.yaml +176 -0
  89. package/assets/templates/default/manifests/kubernetes.specly +140 -0
  90. package/assets/templates/default/package.json +61 -0
  91. package/assets/templates/default/scripts/test-all.sh +160 -0
  92. package/assets/templates/default/scripts/test-generated-code.sh +165 -0
  93. package/assets/templates/default/specs/main.specly +67 -0
  94. package/assets/templates/frontend-only/CLAUDE.md +75 -0
  95. package/assets/templates/frontend-only/README.md +231 -0
  96. package/assets/templates/frontend-only/deployments/README.md +149 -0
  97. package/assets/templates/frontend-only/deployments/development.specly +53 -0
  98. package/assets/templates/frontend-only/deployments/production.specly +87 -0
  99. package/assets/templates/frontend-only/docs/README.md +50 -0
  100. package/assets/templates/frontend-only/docs/api/README.md +7 -0
  101. package/assets/templates/frontend-only/docs/diagrams/README.md +85 -0
  102. package/assets/templates/frontend-only/docs/example-documentation-template.md +269 -0
  103. package/assets/templates/frontend-only/docs/guides/README.md +15 -0
  104. package/assets/templates/frontend-only/dot.env.example +18 -0
  105. package/assets/templates/frontend-only/generated/README.md +56 -0
  106. package/assets/templates/frontend-only/generated/code/integration-test.template.js +320 -0
  107. package/assets/templates/frontend-only/generated/code/package.json.template +34 -0
  108. package/assets/templates/frontend-only/generated/docs/README.md +49 -0
  109. package/assets/templates/frontend-only/gitignore +54 -0
  110. package/assets/templates/frontend-only/manifests/README.md +72 -0
  111. package/assets/templates/frontend-only/manifests/docker-compose.specly +91 -0
  112. package/assets/templates/frontend-only/manifests/implementation.yaml +58 -0
  113. package/assets/templates/frontend-only/manifests/kubernetes.specly +140 -0
  114. package/assets/templates/frontend-only/package.json +59 -0
  115. package/assets/templates/frontend-only/scripts/test-all.sh +160 -0
  116. package/assets/templates/frontend-only/scripts/test-generated-code.sh +165 -0
  117. package/assets/templates/frontend-only/specs/main.specly +57 -0
  118. package/assets/templates/full-stack/AI-GUIDE.md +60 -0
  119. package/assets/templates/full-stack/CLAUDE.md +141 -0
  120. package/assets/templates/full-stack/README.md +382 -0
  121. package/assets/templates/full-stack/archive/AI-GUIDE-legacy.md +392 -0
  122. package/assets/templates/full-stack/deployments/README.md +149 -0
  123. package/assets/templates/full-stack/deployments/development.specly +53 -0
  124. package/assets/templates/full-stack/deployments/production.specly +87 -0
  125. package/assets/templates/full-stack/docs/README.md +51 -0
  126. package/assets/templates/full-stack/docs/api/README.md +7 -0
  127. package/assets/templates/full-stack/docs/diagrams/README.md +85 -0
  128. package/assets/templates/full-stack/docs/example-documentation-template.md +269 -0
  129. package/assets/templates/full-stack/docs/guides/README.md +15 -0
  130. package/assets/templates/full-stack/generated/README.md +56 -0
  131. package/assets/templates/full-stack/generated/code/integration-test.template.js +320 -0
  132. package/assets/templates/full-stack/generated/code/package.json.template +34 -0
  133. package/assets/templates/full-stack/generated/docs/README.md +49 -0
  134. package/assets/templates/full-stack/gitignore +54 -0
  135. package/assets/templates/full-stack/manifests/README.md +72 -0
  136. package/assets/templates/full-stack/manifests/docker-compose.specly +91 -0
  137. package/assets/templates/full-stack/manifests/implementation.yaml +155 -0
  138. package/assets/templates/full-stack/manifests/kubernetes.specly +140 -0
  139. package/assets/templates/full-stack/package.json +45 -0
  140. package/assets/templates/full-stack/scripts/test-all.sh +160 -0
  141. package/assets/templates/full-stack/scripts/test-generated-code.sh +165 -0
  142. package/assets/templates/full-stack/specs/example-v33.specly +297 -0
  143. package/assets/templates/full-stack/specs/main-simple.specly +73 -0
  144. package/assets/templates/full-stack/specs/main.specly +408 -0
  145. package/dist/engines/code-generator.d.ts +86 -0
  146. package/dist/engines/code-generator.d.ts.map +1 -0
  147. package/dist/engines/code-generator.js +159 -0
  148. package/dist/engines/code-generator.js.map +1 -0
  149. package/dist/engines/engine-registry.d.ts +94 -0
  150. package/dist/engines/engine-registry.d.ts.map +1 -0
  151. package/dist/engines/engine-registry.js +163 -0
  152. package/dist/engines/engine-registry.js.map +1 -0
  153. package/dist/engines/index.d.ts +10 -0
  154. package/dist/engines/index.d.ts.map +1 -0
  155. package/dist/engines/index.js +12 -0
  156. package/dist/engines/index.js.map +1 -0
  157. package/dist/engines/typescript-engine.d.ts +74 -0
  158. package/dist/engines/typescript-engine.d.ts.map +1 -0
  159. package/dist/engines/typescript-engine.js +288 -0
  160. package/dist/engines/typescript-engine.js.map +1 -0
  161. package/dist/generators/index.d.ts +11 -0
  162. package/dist/generators/index.d.ts.map +1 -0
  163. package/dist/generators/index.js +11 -0
  164. package/dist/generators/index.js.map +1 -0
  165. package/dist/index.d.ts +48 -0
  166. package/dist/index.d.ts.map +1 -0
  167. package/dist/index.js +434 -0
  168. package/dist/index.js.map +1 -0
  169. package/dist/library/index.d.ts +12 -0
  170. package/dist/library/index.d.ts.map +1 -0
  171. package/dist/library/index.js +15 -0
  172. package/dist/library/index.js.map +1 -0
  173. package/dist/library/library.d.ts +132 -0
  174. package/dist/library/library.d.ts.map +1 -0
  175. package/dist/library/library.js +343 -0
  176. package/dist/library/library.js.map +1 -0
  177. package/dist/library/loader.d.ts +73 -0
  178. package/dist/library/loader.d.ts.map +1 -0
  179. package/dist/library/loader.js +150 -0
  180. package/dist/library/loader.js.map +1 -0
  181. package/dist/library/resolver.d.ts +104 -0
  182. package/dist/library/resolver.d.ts.map +1 -0
  183. package/dist/library/resolver.js +299 -0
  184. package/dist/library/resolver.js.map +1 -0
  185. package/dist/library/validator.d.ts +65 -0
  186. package/dist/library/validator.d.ts.map +1 -0
  187. package/dist/library/validator.js +203 -0
  188. package/dist/library/validator.js.map +1 -0
  189. package/dist/types/index.d.ts +7 -0
  190. package/dist/types/index.d.ts.map +1 -0
  191. package/dist/types/index.js +7 -0
  192. package/dist/types/index.js.map +1 -0
  193. package/dist/types/instance-factory.d.ts +289 -0
  194. package/dist/types/instance-factory.d.ts.map +1 -0
  195. package/dist/types/instance-factory.js +8 -0
  196. package/dist/types/instance-factory.js.map +1 -0
  197. package/dist/types/unified-mappings.d.ts +163 -0
  198. package/dist/types/unified-mappings.d.ts.map +1 -0
  199. package/dist/types/unified-mappings.js +110 -0
  200. package/dist/types/unified-mappings.js.map +1 -0
  201. package/dist/utils/ai-spec-loader.d.ts +77 -0
  202. package/dist/utils/ai-spec-loader.d.ts.map +1 -0
  203. package/dist/utils/ai-spec-loader.js +138 -0
  204. package/dist/utils/ai-spec-loader.js.map +1 -0
  205. package/dist/utils/index.d.ts +9 -0
  206. package/dist/utils/index.d.ts.map +1 -0
  207. package/dist/utils/index.js +9 -0
  208. package/dist/utils/index.js.map +1 -0
  209. package/dist/utils/manifest-loader.d.ts +107 -0
  210. package/dist/utils/manifest-loader.d.ts.map +1 -0
  211. package/dist/utils/manifest-loader.js +168 -0
  212. package/dist/utils/manifest-loader.js.map +1 -0
  213. package/dist/utils/mapping-migration.d.ts +53 -0
  214. package/dist/utils/mapping-migration.d.ts.map +1 -0
  215. package/dist/utils/mapping-migration.js +194 -0
  216. package/dist/utils/mapping-migration.js.map +1 -0
  217. package/libs/instance-factories/CURVED-INTERFACE.md +278 -0
  218. package/libs/instance-factories/README.md +433 -0
  219. package/libs/instance-factories/applications/generic-app.yaml +52 -0
  220. package/libs/instance-factories/applications/react-app.yaml +186 -0
  221. package/libs/instance-factories/applications/templates/generic/backend-env-generator.ts +31 -0
  222. package/libs/instance-factories/applications/templates/generic/backend-package-json-generator.ts +80 -0
  223. package/libs/instance-factories/applications/templates/generic/backend-tsconfig-generator.ts +69 -0
  224. package/libs/instance-factories/applications/templates/generic/main-generator.ts +308 -0
  225. package/libs/instance-factories/applications/templates/react/_view-components-source.ts +555 -0
  226. package/libs/instance-factories/applications/templates/react/api-client-generator.ts +436 -0
  227. package/libs/instance-factories/applications/templates/react/api-types-generator.ts +153 -0
  228. package/libs/instance-factories/applications/templates/react/app-tsx-generator.ts +94 -0
  229. package/libs/instance-factories/applications/templates/react/env-example-generator.ts +24 -0
  230. package/libs/instance-factories/applications/templates/react/field-helpers-generator.ts +106 -0
  231. package/libs/instance-factories/applications/templates/react/gitignore-generator.ts +38 -0
  232. package/libs/instance-factories/applications/templates/react/index-css-generator.ts +85 -0
  233. package/libs/instance-factories/applications/templates/react/index-html-generator.ts +30 -0
  234. package/libs/instance-factories/applications/templates/react/main-tsx-generator.ts +34 -0
  235. package/libs/instance-factories/applications/templates/react/package-json-generator.ts +54 -0
  236. package/libs/instance-factories/applications/templates/react/pattern-adapter-generator.ts +179 -0
  237. package/libs/instance-factories/applications/templates/react/react-pattern-adapter.tsx +1347 -0
  238. package/libs/instance-factories/applications/templates/react/relationship-field-generator.ts +150 -0
  239. package/libs/instance-factories/applications/templates/react/tailwind-adapter-generator.ts +704 -0
  240. package/libs/instance-factories/applications/templates/react/tailwind-adapter-wrapper-generator.ts +84 -0
  241. package/libs/instance-factories/applications/templates/react/tsconfig-generator.ts +35 -0
  242. package/libs/instance-factories/applications/templates/react/use-api-hooks-generator.ts +121 -0
  243. package/libs/instance-factories/applications/templates/react/view-dashboard-generator.ts +150 -0
  244. package/libs/instance-factories/applications/templates/react/view-detail-generator.ts +150 -0
  245. package/libs/instance-factories/applications/templates/react/view-form-generator.ts +362 -0
  246. package/libs/instance-factories/applications/templates/react/view-list-generator.ts +98 -0
  247. package/libs/instance-factories/applications/templates/react/view-router-generator.ts +89 -0
  248. package/libs/instance-factories/applications/templates/react/vite-config-generator.ts +49 -0
  249. package/libs/instance-factories/archived/fastify-prisma.yaml +104 -0
  250. package/libs/instance-factories/cli/commander-js.yaml +55 -0
  251. package/libs/instance-factories/cli/templates/commander/cli-entry-generator.d.ts +12 -0
  252. package/libs/instance-factories/cli/templates/commander/cli-entry-generator.d.ts.map +1 -0
  253. package/libs/instance-factories/cli/templates/commander/cli-entry-generator.js +115 -0
  254. package/libs/instance-factories/cli/templates/commander/cli-entry-generator.js.map +1 -0
  255. package/libs/instance-factories/cli/templates/commander/cli-entry-generator.ts +145 -0
  256. package/libs/instance-factories/cli/templates/commander/command-generator.d.ts +14 -0
  257. package/libs/instance-factories/cli/templates/commander/command-generator.d.ts.map +1 -0
  258. package/libs/instance-factories/cli/templates/commander/command-generator.js +182 -0
  259. package/libs/instance-factories/cli/templates/commander/command-generator.js.map +1 -0
  260. package/libs/instance-factories/cli/templates/commander/command-generator.ts +992 -0
  261. package/libs/instance-factories/communication/event-emitter.yaml +56 -0
  262. package/libs/instance-factories/communication/rabbitmq-events.yaml +87 -0
  263. package/libs/instance-factories/communication/templates/eventemitter/bus-generator.ts +93 -0
  264. package/libs/instance-factories/communication/templates/eventemitter/publisher-generator.ts +117 -0
  265. package/libs/instance-factories/communication/templates/eventemitter/subscriber-generator.ts +101 -0
  266. package/libs/instance-factories/controllers/fastify.yaml +127 -0
  267. package/libs/instance-factories/controllers/templates/fastify/meta-routes-generator.ts +103 -0
  268. package/libs/instance-factories/controllers/templates/fastify/routes-generator.ts +389 -0
  269. package/libs/instance-factories/controllers/templates/fastify/server-generator.ts +76 -0
  270. package/libs/instance-factories/infrastructure/docker-k8s.yaml +61 -0
  271. package/libs/instance-factories/infrastructure/templates/docker-k8s/infrastructure-generator.ts +46 -0
  272. package/libs/instance-factories/orms/prisma.yaml +89 -0
  273. package/libs/instance-factories/orms/templates/prisma/schema-generator.ts +563 -0
  274. package/libs/instance-factories/orms/templates/prisma/services-generator.ts +408 -0
  275. package/libs/instance-factories/scaffolding/generic-scaffold.yaml +65 -0
  276. package/libs/instance-factories/scaffolding/templates/generic/env-example-generator.ts +73 -0
  277. package/libs/instance-factories/scaffolding/templates/generic/env-generator.ts +85 -0
  278. package/libs/instance-factories/scaffolding/templates/generic/gitignore-generator.ts +69 -0
  279. package/libs/instance-factories/scaffolding/templates/generic/package-json-generator.ts +176 -0
  280. package/libs/instance-factories/scaffolding/templates/generic/readme-generator.ts +207 -0
  281. package/libs/instance-factories/scaffolding/templates/generic/tsconfig-generator.ts +78 -0
  282. package/libs/instance-factories/scaffolding/templates/generic/tsconfig-react-generator.ts +41 -0
  283. package/libs/instance-factories/sdks/python-sdk.yaml +66 -0
  284. package/libs/instance-factories/sdks/templates/python/sdk-generator.ts +50 -0
  285. package/libs/instance-factories/sdks/templates/typescript/sdk-generator.ts +49 -0
  286. package/libs/instance-factories/sdks/typescript-sdk.yaml +59 -0
  287. package/libs/instance-factories/services/prisma-services.yaml +71 -0
  288. package/libs/instance-factories/services/templates/prisma/behavior-generator.ts +303 -0
  289. package/libs/instance-factories/services/templates/prisma/controller-generator.ts +532 -0
  290. package/libs/instance-factories/services/templates/prisma/service-generator.ts +315 -0
  291. package/libs/instance-factories/shared/path-resolver.ts +111 -0
  292. package/libs/instance-factories/storage/mongodb.yaml +79 -0
  293. package/libs/instance-factories/storage/postgresql.yaml +75 -0
  294. package/libs/instance-factories/storage/redis.yaml +79 -0
  295. package/libs/instance-factories/storage/templates/mongodb/config-generator.ts +15 -0
  296. package/libs/instance-factories/storage/templates/mongodb/docker-generator.ts +18 -0
  297. package/libs/instance-factories/storage/templates/postgresql/config-generator.ts +54 -0
  298. package/libs/instance-factories/storage/templates/postgresql/docker-generator.ts +55 -0
  299. package/libs/instance-factories/storage/templates/redis/config-generator.ts +16 -0
  300. package/libs/instance-factories/storage/templates/redis/docker-generator.ts +18 -0
  301. package/libs/instance-factories/test-generation.ts +192 -0
  302. package/libs/instance-factories/testing/templates/vitest/tests-generator.ts +51 -0
  303. package/libs/instance-factories/testing/vitest-tests.yaml +63 -0
  304. package/libs/instance-factories/tools/templates/mcp/mcp-server-generator.ts +136 -0
  305. package/libs/instance-factories/tools/templates/mcp/static/docs/DEPLOYMENT_GUIDE.md +630 -0
  306. package/libs/instance-factories/tools/templates/mcp/static/docs/HYBRID_RESOURCE_SYSTEM.md +330 -0
  307. package/libs/instance-factories/tools/templates/mcp/static/docs/deployments/EXTENSION_DEPLOYMENT.md +552 -0
  308. package/libs/instance-factories/tools/templates/mcp/static/docs/deployments/LOCAL_DEPLOYMENT.md +164 -0
  309. package/libs/instance-factories/tools/templates/mcp/static/docs/deployments/WEB_DEPLOYMENT.md +247 -0
  310. package/libs/instance-factories/tools/templates/mcp/static/package.json +92 -0
  311. package/libs/instance-factories/tools/templates/mcp/static/scripts/build-enterprise.js +284 -0
  312. package/libs/instance-factories/tools/templates/mcp/static/scripts/build-extension.js +139 -0
  313. package/libs/instance-factories/tools/templates/mcp/static/scripts/build-local.js +74 -0
  314. package/libs/instance-factories/tools/templates/mcp/static/scripts/build-web.js +156 -0
  315. package/libs/instance-factories/tools/templates/mcp/static/scripts/copy-canonical-files.js +41 -0
  316. package/libs/instance-factories/tools/templates/mcp/static/scripts/test-deployments.js +259 -0
  317. package/libs/instance-factories/tools/templates/mcp/static/scripts/test-hybrid-resources.js +231 -0
  318. package/libs/instance-factories/tools/templates/mcp/static/scripts/test-hybrid-simple.js +196 -0
  319. package/libs/instance-factories/tools/templates/mcp/static/src/controllers/MCPServerController.ts +293 -0
  320. package/libs/instance-factories/tools/templates/mcp/static/src/events/EventEmitter.ts +90 -0
  321. package/libs/instance-factories/tools/templates/mcp/static/src/index.ts +24 -0
  322. package/libs/instance-factories/tools/templates/mcp/static/src/interfaces/ResourceProvider.ts +15 -0
  323. package/libs/instance-factories/tools/templates/mcp/static/src/models/LibrarySuggestion.ts +106 -0
  324. package/libs/instance-factories/tools/templates/mcp/static/src/models/SpecVerseResource.ts +75 -0
  325. package/libs/instance-factories/tools/templates/mcp/static/src/server/mcp-server.ts +239 -0
  326. package/libs/instance-factories/tools/templates/mcp/static/src/services/CLIProxyService.ts +1501 -0
  327. package/libs/instance-factories/tools/templates/mcp/static/src/services/EmbeddedResourcesAdapter.ts +211 -0
  328. package/libs/instance-factories/tools/templates/mcp/static/src/services/EntityModuleService.ts +308 -0
  329. package/libs/instance-factories/tools/templates/mcp/static/src/services/HybridResourcesProvider.ts +210 -0
  330. package/libs/instance-factories/tools/templates/mcp/static/src/services/LibraryToolsService.ts +356 -0
  331. package/libs/instance-factories/tools/templates/mcp/static/src/services/OrchestratorBridge.ts +524 -0
  332. package/libs/instance-factories/tools/templates/mcp/static/src/services/OrchestratorToolsService.ts +530 -0
  333. package/libs/instance-factories/tools/templates/mcp/static/src/services/PromptToolsService.ts +594 -0
  334. package/libs/instance-factories/tools/templates/mcp/static/src/services/ResourcesProviderService.ts +170 -0
  335. package/libs/instance-factories/tools/templates/mcp/static/src/tests/unit/CLIProxyService.init.test.ts +544 -0
  336. package/libs/instance-factories/tools/templates/mcp/static/src/tests/unit/CLIProxyService.test.ts +189 -0
  337. package/libs/instance-factories/tools/templates/mcp/static/src/tests/unit/ResourcesProviderService.test.ts +89 -0
  338. package/libs/instance-factories/tools/templates/mcp/static/src/types/index.ts +110 -0
  339. package/libs/instance-factories/tools/templates/mcp/static/tsconfig.json +28 -0
  340. package/libs/instance-factories/tools/templates/vscode/static/extension.ts +1195 -0
  341. package/libs/instance-factories/tools/templates/vscode/static/language-configuration.json +34 -0
  342. package/libs/instance-factories/tools/templates/vscode/static/schemas/specverse-v3-schema.json +4279 -0
  343. package/libs/instance-factories/tools/templates/vscode/static/syntaxes/specverse.tmLanguage.json +138 -0
  344. package/libs/instance-factories/tools/templates/vscode/static/themes/README.md +74 -0
  345. package/libs/instance-factories/tools/templates/vscode/static/themes/complete-specverse-colors.json +122 -0
  346. package/libs/instance-factories/tools/templates/vscode/static/themes/specverse-basic-theme.json +65 -0
  347. package/libs/instance-factories/tools/templates/vscode/static/themes/specverse-complete-theme.json +123 -0
  348. package/libs/instance-factories/tools/templates/vscode/static/themes/specverse-theme-colors.json +64 -0
  349. package/libs/instance-factories/tools/templates/vscode/vscode-extension-generator.ts +214 -0
  350. package/libs/instance-factories/validation/templates/zod/validation-generator.ts +46 -0
  351. package/libs/instance-factories/validation/zod.yaml +56 -0
  352. package/libs/instance-factories/views/index.d.ts +13 -0
  353. package/libs/instance-factories/views/index.d.ts.map +1 -0
  354. package/libs/instance-factories/views/index.js +18 -0
  355. package/libs/instance-factories/views/index.js.map +1 -0
  356. package/libs/instance-factories/views/index.ts +45 -0
  357. package/libs/instance-factories/views/react-components.yaml +129 -0
  358. package/libs/instance-factories/views/templates/ARCHITECTURE.md +198 -0
  359. package/libs/instance-factories/views/templates/react/adapters/antd-adapter.ts +869 -0
  360. package/libs/instance-factories/views/templates/react/adapters/mui-adapter.ts +953 -0
  361. package/libs/instance-factories/views/templates/react/adapters/shadcn-adapter.ts +806 -0
  362. package/libs/instance-factories/views/templates/react/app-generator.ts +55 -0
  363. package/libs/instance-factories/views/templates/react/components-generator.ts +391 -0
  364. package/libs/instance-factories/views/templates/react/forms-generator.ts +343 -0
  365. package/libs/instance-factories/views/templates/react/frontend-package-json-generator.ts +54 -0
  366. package/libs/instance-factories/views/templates/react/hooks-generator.ts +122 -0
  367. package/libs/instance-factories/views/templates/react/index-css-generator.ts +209 -0
  368. package/libs/instance-factories/views/templates/react/index-html-generator.ts +34 -0
  369. package/libs/instance-factories/views/templates/react/main-tsx-generator.ts +29 -0
  370. package/libs/instance-factories/views/templates/react/react-component-generator.d.ts +152 -0
  371. package/libs/instance-factories/views/templates/react/react-component-generator.d.ts.map +1 -0
  372. package/libs/instance-factories/views/templates/react/react-component-generator.js +398 -0
  373. package/libs/instance-factories/views/templates/react/react-component-generator.js.map +1 -0
  374. package/libs/instance-factories/views/templates/react/react-component-generator.ts +533 -0
  375. package/libs/instance-factories/views/templates/react/router-generator.ts +197 -0
  376. package/libs/instance-factories/views/templates/react/router-generic-generator.ts +103 -0
  377. package/libs/instance-factories/views/templates/react/spec-json-generator.ts +17 -0
  378. package/libs/instance-factories/views/templates/react/types-generator.ts +76 -0
  379. package/libs/instance-factories/views/templates/react/views-metadata-generator.ts +42 -0
  380. package/libs/instance-factories/views/templates/react/vite-config-generator.ts +38 -0
  381. package/libs/instance-factories/views/templates/runtime/runtime-view-renderer.d.ts.map +1 -0
  382. package/libs/instance-factories/views/templates/runtime/runtime-view-renderer.js.map +1 -0
  383. package/libs/instance-factories/views/templates/runtime/runtime-view-renderer.ts +474 -0
  384. package/libs/instance-factories/views/templates/shared/__tests__/composite-patterns.test.ts +242 -0
  385. package/libs/instance-factories/views/templates/shared/adapter-types.d.ts +77 -0
  386. package/libs/instance-factories/views/templates/shared/adapter-types.d.ts.map +1 -0
  387. package/libs/instance-factories/views/templates/shared/adapter-types.js +47 -0
  388. package/libs/instance-factories/views/templates/shared/adapter-types.js.map +1 -0
  389. package/libs/instance-factories/views/templates/shared/adapter-types.ts +142 -0
  390. package/libs/instance-factories/views/templates/shared/atomic-components-registry.d.ts +63 -0
  391. package/libs/instance-factories/views/templates/shared/atomic-components-registry.d.ts.map +1 -0
  392. package/libs/instance-factories/views/templates/shared/atomic-components-registry.js +822 -0
  393. package/libs/instance-factories/views/templates/shared/atomic-components-registry.js.map +1 -0
  394. package/libs/instance-factories/views/templates/shared/atomic-components-registry.ts +908 -0
  395. package/libs/instance-factories/views/templates/shared/base-generator.d.ts +247 -0
  396. package/libs/instance-factories/views/templates/shared/base-generator.d.ts.map +1 -0
  397. package/libs/instance-factories/views/templates/shared/base-generator.js +363 -0
  398. package/libs/instance-factories/views/templates/shared/base-generator.js.map +1 -0
  399. package/libs/instance-factories/views/templates/shared/base-generator.ts +608 -0
  400. package/libs/instance-factories/views/templates/shared/component-metadata.d.ts +254 -0
  401. package/libs/instance-factories/views/templates/shared/component-metadata.d.ts.map +1 -0
  402. package/libs/instance-factories/views/templates/shared/component-metadata.js +602 -0
  403. package/libs/instance-factories/views/templates/shared/component-metadata.js.map +1 -0
  404. package/libs/instance-factories/views/templates/shared/component-metadata.ts +803 -0
  405. package/libs/instance-factories/views/templates/shared/composite-pattern-types.ts +250 -0
  406. package/libs/instance-factories/views/templates/shared/composite-patterns.ts +535 -0
  407. package/libs/instance-factories/views/templates/shared/index.ts +68 -0
  408. package/libs/instance-factories/views/templates/shared/pattern-validator.ts +279 -0
  409. package/libs/instance-factories/views/templates/shared/property-mapper.d.ts +149 -0
  410. package/libs/instance-factories/views/templates/shared/property-mapper.d.ts.map +1 -0
  411. package/libs/instance-factories/views/templates/shared/property-mapper.js +580 -0
  412. package/libs/instance-factories/views/templates/shared/property-mapper.js.map +1 -0
  413. package/libs/instance-factories/views/templates/shared/property-mapper.ts +700 -0
  414. package/libs/instance-factories/views/templates/shared/syntax-mapper.d.ts +143 -0
  415. package/libs/instance-factories/views/templates/shared/syntax-mapper.d.ts.map +1 -0
  416. package/libs/instance-factories/views/templates/shared/syntax-mapper.js +420 -0
  417. package/libs/instance-factories/views/templates/shared/syntax-mapper.js.map +1 -0
  418. package/libs/instance-factories/views/templates/shared/syntax-mapper.ts +539 -0
  419. package/package.json +42 -0
  420. package/schema/SPECVERSE-SCHEMA.json +4274 -0
@@ -0,0 +1,94 @@
1
+ /**
2
+ * Template Engine Registry
3
+ *
4
+ * Manages multiple template engines and provides a unified
5
+ * interface for rendering templates.
6
+ */
7
+ import type { TemplateEngine, CodeTemplate, TemplateContext } from '../types/index.js';
8
+ /**
9
+ * Engine registry configuration
10
+ */
11
+ export interface EngineRegistryConfig {
12
+ /** Base directory for resolving template paths */
13
+ baseDir?: string;
14
+ /** Enable caching of loaded modules */
15
+ enableCache?: boolean;
16
+ /** Custom engine implementations */
17
+ customEngines?: Map<string, TemplateEngine>;
18
+ }
19
+ /**
20
+ * Engine not found error
21
+ */
22
+ export declare class EngineNotFoundError extends Error {
23
+ engineType: string;
24
+ constructor(engineType: string);
25
+ }
26
+ /**
27
+ * Template engine registry
28
+ */
29
+ export declare class TemplateEngineRegistry {
30
+ private engines;
31
+ private config;
32
+ constructor(config?: EngineRegistryConfig);
33
+ /**
34
+ * Register default built-in engines
35
+ */
36
+ private registerDefaultEngines;
37
+ /**
38
+ * Register a template engine
39
+ */
40
+ register(type: string, engine: TemplateEngine): void;
41
+ /**
42
+ * Get a template engine by type
43
+ */
44
+ get(type: string): TemplateEngine;
45
+ /**
46
+ * Check if an engine type is registered
47
+ */
48
+ has(type: string): boolean;
49
+ /**
50
+ * Get all registered engine types
51
+ */
52
+ getRegisteredTypes(): string[];
53
+ /**
54
+ * Render a template using the appropriate engine
55
+ */
56
+ render(template: CodeTemplate, context: TemplateContext, options?: {
57
+ basePath?: string;
58
+ }): Promise<string>;
59
+ /**
60
+ * Render multiple templates in parallel
61
+ */
62
+ renderMany(templates: Array<{
63
+ template: CodeTemplate;
64
+ context: TemplateContext;
65
+ }>): Promise<string[]>;
66
+ /**
67
+ * Clear all engine caches
68
+ */
69
+ clearCaches(): void;
70
+ /**
71
+ * Get statistics about registered engines
72
+ */
73
+ getStats(): {
74
+ registeredEngines: string[];
75
+ engineStats: Record<string, any>;
76
+ };
77
+ }
78
+ /**
79
+ * Create a default template engine registry
80
+ */
81
+ export declare function createDefaultRegistry(config?: EngineRegistryConfig): TemplateEngineRegistry;
82
+ /**
83
+ * Get the global template engine registry
84
+ */
85
+ export declare function getGlobalRegistry(): TemplateEngineRegistry;
86
+ /**
87
+ * Set the global template engine registry
88
+ */
89
+ export declare function setGlobalRegistry(registry: TemplateEngineRegistry): void;
90
+ /**
91
+ * Reset the global registry to null
92
+ */
93
+ export declare function resetGlobalRegistry(): void;
94
+ //# sourceMappingURL=engine-registry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"engine-registry.d.ts","sourceRoot":"","sources":["../../src/engines/engine-registry.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,KAAK,EACV,cAAc,EACd,YAAY,EACZ,eAAe,EAChB,MAAM,mBAAmB,CAAC;AAE3B;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,kDAAkD;IAClD,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB,uCAAuC;IACvC,WAAW,CAAC,EAAE,OAAO,CAAC;IAEtB,oCAAoC;IACpC,aAAa,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;CAC7C;AAED;;GAEG;AACH,qBAAa,mBAAoB,SAAQ,KAAK;IACzB,UAAU,EAAE,MAAM;gBAAlB,UAAU,EAAE,MAAM;CAItC;AAED;;GAEG;AACH,qBAAa,sBAAsB;IACjC,OAAO,CAAC,OAAO,CAA0C;IACzD,OAAO,CAAC,MAAM,CAAuB;gBAEzB,MAAM,GAAE,oBAAyB;IAc7C;;OAEG;IACH,OAAO,CAAC,sBAAsB;IAa9B;;OAEG;IACH,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,cAAc,GAAG,IAAI;IAIpD;;OAEG;IACH,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,cAAc;IAQjC;;OAEG;IACH,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAI1B;;OAEG;IACH,kBAAkB,IAAI,MAAM,EAAE;IAI9B;;OAEG;IACG,MAAM,CACV,QAAQ,EAAE,YAAY,EACtB,OAAO,EAAE,eAAe,EACxB,OAAO,CAAC,EAAE;QAAE,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,GAC9B,OAAO,CAAC,MAAM,CAAC;IAiBlB;;OAEG;IACG,UAAU,CACd,SAAS,EAAE,KAAK,CAAC;QAAE,QAAQ,EAAE,YAAY,CAAC;QAAC,OAAO,EAAE,eAAe,CAAA;KAAE,CAAC,GACrE,OAAO,CAAC,MAAM,EAAE,CAAC;IAOpB;;OAEG;IACH,WAAW,IAAI,IAAI;IAQnB;;OAEG;IACH,QAAQ,IAAI;QACV,iBAAiB,EAAE,MAAM,EAAE,CAAC;QAC5B,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;KAClC;CAgBF;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,CAAC,EAAE,oBAAoB,GAAG,sBAAsB,CAE3F;AAOD;;GAEG;AACH,wBAAgB,iBAAiB,IAAI,sBAAsB,CAK1D;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,sBAAsB,GAAG,IAAI,CAExE;AAED;;GAEG;AACH,wBAAgB,mBAAmB,IAAI,IAAI,CAE1C"}
@@ -0,0 +1,163 @@
1
+ /**
2
+ * Template Engine Registry
3
+ *
4
+ * Manages multiple template engines and provides a unified
5
+ * interface for rendering templates.
6
+ */
7
+ import { TypeScriptTemplateEngine } from './typescript-engine.js';
8
+ /**
9
+ * Engine not found error
10
+ */
11
+ export class EngineNotFoundError extends Error {
12
+ engineType;
13
+ constructor(engineType) {
14
+ super(`Template engine "${engineType}" not found in registry`);
15
+ this.engineType = engineType;
16
+ this.name = 'EngineNotFoundError';
17
+ }
18
+ }
19
+ /**
20
+ * Template engine registry
21
+ */
22
+ export class TemplateEngineRegistry {
23
+ engines = new Map();
24
+ config;
25
+ constructor(config = {}) {
26
+ this.config = config;
27
+ // Register built-in engines
28
+ this.registerDefaultEngines();
29
+ // Register custom engines if provided
30
+ if (config.customEngines) {
31
+ for (const [type, engine] of config.customEngines.entries()) {
32
+ this.register(type, engine);
33
+ }
34
+ }
35
+ }
36
+ /**
37
+ * Register default built-in engines
38
+ */
39
+ registerDefaultEngines() {
40
+ // Register TypeScript engine
41
+ const tsEngine = new TypeScriptTemplateEngine({
42
+ baseDir: this.config.baseDir,
43
+ enableCache: this.config.enableCache
44
+ });
45
+ this.register('typescript', tsEngine);
46
+ // Handlebars and AI engines will be registered in future phases
47
+ // this.register('handlebars', new HandlebarsTemplateEngine(...));
48
+ // this.register('ai', new AITemplateEngine(...));
49
+ }
50
+ /**
51
+ * Register a template engine
52
+ */
53
+ register(type, engine) {
54
+ this.engines.set(type, engine);
55
+ }
56
+ /**
57
+ * Get a template engine by type
58
+ */
59
+ get(type) {
60
+ const engine = this.engines.get(type);
61
+ if (!engine) {
62
+ throw new EngineNotFoundError(type);
63
+ }
64
+ return engine;
65
+ }
66
+ /**
67
+ * Check if an engine type is registered
68
+ */
69
+ has(type) {
70
+ return this.engines.has(type);
71
+ }
72
+ /**
73
+ * Get all registered engine types
74
+ */
75
+ getRegisteredTypes() {
76
+ return Array.from(this.engines.keys());
77
+ }
78
+ /**
79
+ * Render a template using the appropriate engine
80
+ */
81
+ async render(template, context, options) {
82
+ const engine = this.get(template.engine);
83
+ // If basePath is provided and engine is TypeScript, temporarily override baseDir
84
+ if (options?.basePath && 'baseDir' in engine) {
85
+ const originalBaseDir = engine.baseDir;
86
+ engine.baseDir = options.basePath;
87
+ try {
88
+ return await engine.render(template, context);
89
+ }
90
+ finally {
91
+ engine.baseDir = originalBaseDir;
92
+ }
93
+ }
94
+ return await engine.render(template, context);
95
+ }
96
+ /**
97
+ * Render multiple templates in parallel
98
+ */
99
+ async renderMany(templates) {
100
+ const promises = templates.map(({ template, context }) => this.render(template, context));
101
+ return await Promise.all(promises);
102
+ }
103
+ /**
104
+ * Clear all engine caches
105
+ */
106
+ clearCaches() {
107
+ for (const engine of this.engines.values()) {
108
+ if ('clearCache' in engine && typeof engine.clearCache === 'function') {
109
+ engine.clearCache();
110
+ }
111
+ }
112
+ }
113
+ /**
114
+ * Get statistics about registered engines
115
+ */
116
+ getStats() {
117
+ const engineStats = {};
118
+ for (const [type, engine] of this.engines.entries()) {
119
+ if ('getCacheStats' in engine && typeof engine.getCacheStats === 'function') {
120
+ engineStats[type] = engine.getCacheStats();
121
+ }
122
+ else {
123
+ engineStats[type] = { cached: false };
124
+ }
125
+ }
126
+ return {
127
+ registeredEngines: this.getRegisteredTypes(),
128
+ engineStats
129
+ };
130
+ }
131
+ }
132
+ /**
133
+ * Create a default template engine registry
134
+ */
135
+ export function createDefaultRegistry(config) {
136
+ return new TemplateEngineRegistry(config);
137
+ }
138
+ /**
139
+ * Global singleton registry (lazy-initialized)
140
+ */
141
+ let globalRegistry = null;
142
+ /**
143
+ * Get the global template engine registry
144
+ */
145
+ export function getGlobalRegistry() {
146
+ if (!globalRegistry) {
147
+ globalRegistry = createDefaultRegistry();
148
+ }
149
+ return globalRegistry;
150
+ }
151
+ /**
152
+ * Set the global template engine registry
153
+ */
154
+ export function setGlobalRegistry(registry) {
155
+ globalRegistry = registry;
156
+ }
157
+ /**
158
+ * Reset the global registry to null
159
+ */
160
+ export function resetGlobalRegistry() {
161
+ globalRegistry = null;
162
+ }
163
+ //# sourceMappingURL=engine-registry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"engine-registry.js","sourceRoot":"","sources":["../../src/engines/engine-registry.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * SpecVerse Template Engines
3
+ *
4
+ * Template engines for generating code from implementation types.
5
+ */
6
+ export { TypeScriptTemplateEngine, TemplateEngineError, type GeneratorFunction, type ValidatorFunction, type PostProcessorFunction } from './typescript-engine.js';
7
+ export { TemplateEngineRegistry, EngineNotFoundError, createDefaultRegistry, getGlobalRegistry, setGlobalRegistry, resetGlobalRegistry, type EngineRegistryConfig } from './engine-registry.js';
8
+ export { CodeGenerator, createCodeGenerator, type GeneratedOutput, type CodeGenerationOptions } from './code-generator.js';
9
+ export type { TemplateEngine, CodeTemplate, TemplateContext, ValidationResult } from '../types/index.js';
10
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/engines/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EACL,wBAAwB,EACxB,mBAAmB,EACnB,KAAK,iBAAiB,EACtB,KAAK,iBAAiB,EACtB,KAAK,qBAAqB,EAC3B,MAAM,wBAAwB,CAAC;AAGhC,OAAO,EACL,sBAAsB,EACtB,mBAAmB,EACnB,qBAAqB,EACrB,iBAAiB,EACjB,iBAAiB,EACjB,mBAAmB,EACnB,KAAK,oBAAoB,EAC1B,MAAM,sBAAsB,CAAC;AAG9B,OAAO,EACL,aAAa,EACb,mBAAmB,EACnB,KAAK,eAAe,EACpB,KAAK,qBAAqB,EAC3B,MAAM,qBAAqB,CAAC;AAG7B,YAAY,EACV,cAAc,EACd,YAAY,EACZ,eAAe,EACf,gBAAgB,EACjB,MAAM,mBAAmB,CAAC"}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * SpecVerse Template Engines
3
+ *
4
+ * Template engines for generating code from implementation types.
5
+ */
6
+ // TypeScript template engine
7
+ export { TypeScriptTemplateEngine, TemplateEngineError } from './typescript-engine.js';
8
+ // Engine registry
9
+ export { TemplateEngineRegistry, EngineNotFoundError, createDefaultRegistry, getGlobalRegistry, setGlobalRegistry, resetGlobalRegistry } from './engine-registry.js';
10
+ // Code generator
11
+ export { CodeGenerator, createCodeGenerator } from './code-generator.js';
12
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/engines/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,6BAA6B;AAC7B,OAAO,EACL,wBAAwB,EACxB,mBAAmB,EAIpB,MAAM,wBAAwB,CAAC;AAEhC,kBAAkB;AAClB,OAAO,EACL,sBAAsB,EACtB,mBAAmB,EACnB,qBAAqB,EACrB,iBAAiB,EACjB,iBAAiB,EACjB,mBAAmB,EAEpB,MAAM,sBAAsB,CAAC;AAE9B,iBAAiB;AACjB,OAAO,EACL,aAAa,EACb,mBAAmB,EAGpB,MAAM,qBAAqB,CAAC"}
@@ -0,0 +1,74 @@
1
+ /**
2
+ * TypeScript Template Engine
3
+ *
4
+ * Executes TypeScript generator functions to produce code.
5
+ * This is the primary template engine for Phase 1.
6
+ */
7
+ import type { TemplateEngine, CodeTemplate, TemplateContext, ValidationResult } from '../types/index.js';
8
+ /**
9
+ * Generator function signature
10
+ */
11
+ export type GeneratorFunction = (context: TemplateContext) => string | Promise<string>;
12
+ /**
13
+ * Validator function signature
14
+ */
15
+ export type ValidatorFunction = (code: string, context: TemplateContext) => ValidationResult | Promise<ValidationResult>;
16
+ /**
17
+ * Post-processor function signature
18
+ */
19
+ export type PostProcessorFunction = (code: string, context: TemplateContext) => string | Promise<string>;
20
+ /**
21
+ * Template engine error
22
+ */
23
+ export declare class TemplateEngineError extends Error {
24
+ templateName?: string | undefined;
25
+ cause?: Error | undefined;
26
+ constructor(message: string, templateName?: string | undefined, cause?: Error | undefined);
27
+ }
28
+ /**
29
+ * TypeScript template engine implementation
30
+ */
31
+ export declare class TypeScriptTemplateEngine implements TemplateEngine {
32
+ private generatorCache;
33
+ private validatorCache;
34
+ private postProcessorCache;
35
+ private baseDir;
36
+ private tsxRegistered;
37
+ constructor(options?: {
38
+ baseDir?: string;
39
+ enableCache?: boolean;
40
+ });
41
+ /**
42
+ * Register tsx to enable TypeScript imports (lazy-loaded)
43
+ */
44
+ private ensureTsxRegistered;
45
+ /**
46
+ * Render a template with the given context
47
+ */
48
+ render(template: CodeTemplate, context: TemplateContext): Promise<string>;
49
+ /**
50
+ * Load a generator function from a file path
51
+ */
52
+ private loadGenerator;
53
+ /**
54
+ * Load a validator function from a file path
55
+ */
56
+ private loadValidator;
57
+ /**
58
+ * Load a post-processor function from a file path
59
+ */
60
+ private loadPostProcessor;
61
+ /**
62
+ * Clear all caches
63
+ */
64
+ clearCache(): void;
65
+ /**
66
+ * Get cache statistics
67
+ */
68
+ getCacheStats(): {
69
+ generators: number;
70
+ validators: number;
71
+ postProcessors: number;
72
+ };
73
+ }
74
+ //# sourceMappingURL=typescript-engine.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"typescript-engine.d.ts","sourceRoot":"","sources":["../../src/engines/typescript-engine.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAKH,OAAO,KAAK,EACV,cAAc,EACd,YAAY,EACZ,eAAe,EACf,gBAAgB,EACjB,MAAM,mBAAmB,CAAC;AAE3B;;GAEG;AACH,MAAM,MAAM,iBAAiB,GAAG,CAAC,OAAO,EAAE,eAAe,KAAK,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;AAEvF;;GAEG;AACH,MAAM,MAAM,iBAAiB,GAAG,CAC9B,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,eAAe,KACrB,gBAAgB,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAAC;AAElD;;GAEG;AACH,MAAM,MAAM,qBAAqB,GAAG,CAClC,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,eAAe,KACrB,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;AAE9B;;GAEG;AACH,qBAAa,mBAAoB,SAAQ,KAAK;IAGnC,YAAY,CAAC,EAAE,MAAM;IACrB,KAAK,CAAC,EAAE,KAAK;gBAFpB,OAAO,EAAE,MAAM,EACR,YAAY,CAAC,EAAE,MAAM,YAAA,EACrB,KAAK,CAAC,EAAE,KAAK,YAAA;CAKvB;AAED;;GAEG;AACH,qBAAa,wBAAyB,YAAW,cAAc;IAC7D,OAAO,CAAC,cAAc,CAA6C;IACnE,OAAO,CAAC,cAAc,CAA6C;IACnE,OAAO,CAAC,kBAAkB,CAAiD;IAC3E,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,aAAa,CAAkB;gBAE3B,OAAO,GAAE;QAAE,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE,OAAO,CAAA;KAAO;IAIrE;;OAEG;YACW,mBAAmB;IA0CjC;;OAEG;IACG,MAAM,CAAC,QAAQ,EAAE,YAAY,EAAE,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,MAAM,CAAC;IA6D/E;;OAEG;YACW,aAAa;IA0F3B;;OAEG;YACW,aAAa;IAsC3B;;OAEG;YACW,iBAAiB;IAsC/B;;OAEG;IACH,UAAU,IAAI,IAAI;IAMlB;;OAEG;IACH,aAAa,IAAI;QACf,UAAU,EAAE,MAAM,CAAC;QACnB,UAAU,EAAE,MAAM,CAAC;QACnB,cAAc,EAAE,MAAM,CAAC;KACxB;CAOF"}
@@ -0,0 +1,288 @@
1
+ /**
2
+ * TypeScript Template Engine
3
+ *
4
+ * Executes TypeScript generator functions to produce code.
5
+ * This is the primary template engine for Phase 1.
6
+ */
7
+ import { pathToFileURL, fileURLToPath } from 'url';
8
+ import path from 'path';
9
+ import { existsSync } from 'fs';
10
+ /**
11
+ * Template engine error
12
+ */
13
+ export class TemplateEngineError extends Error {
14
+ templateName;
15
+ cause;
16
+ constructor(message, templateName, cause) {
17
+ super(message);
18
+ this.templateName = templateName;
19
+ this.cause = cause;
20
+ this.name = 'TemplateEngineError';
21
+ }
22
+ }
23
+ /**
24
+ * TypeScript template engine implementation
25
+ */
26
+ export class TypeScriptTemplateEngine {
27
+ generatorCache = new Map();
28
+ validatorCache = new Map();
29
+ postProcessorCache = new Map();
30
+ baseDir;
31
+ tsxRegistered = false;
32
+ constructor(options = {}) {
33
+ this.baseDir = options.baseDir || process.cwd();
34
+ }
35
+ /**
36
+ * Register tsx to enable TypeScript imports (lazy-loaded)
37
+ */
38
+ async ensureTsxRegistered() {
39
+ if (!this.tsxRegistered) {
40
+ try {
41
+ // Find tsx — search multiple locations
42
+ const __filename = fileURLToPath(import.meta.url);
43
+ const __dirname = path.dirname(__filename);
44
+ const tsxSubpath = 'tsx/dist/esm/api/index.mjs';
45
+ const candidates = [
46
+ path.resolve(__dirname, '../../..', 'node_modules', tsxSubpath), // Package root
47
+ path.resolve(__dirname, '../../../..', 'node_modules', tsxSubpath), // Workspace root
48
+ path.resolve(__dirname, '../../../../..', 'node_modules', tsxSubpath), // Parent workspace
49
+ path.join(process.cwd(), 'node_modules', tsxSubpath), // CWD
50
+ ];
51
+ // Also try global npm location
52
+ try {
53
+ const { execSync } = await import('child_process');
54
+ const globalPrefix = execSync('npm prefix -g', { encoding: 'utf8' }).trim();
55
+ candidates.push(path.join(globalPrefix, 'lib/node_modules', tsxSubpath));
56
+ }
57
+ catch { /* no global npm */ }
58
+ let tsxPath = null;
59
+ const { existsSync } = await import('fs');
60
+ for (const candidate of candidates) {
61
+ if (existsSync(candidate)) {
62
+ tsxPath = candidate;
63
+ break;
64
+ }
65
+ }
66
+ if (!tsxPath)
67
+ throw new Error('tsx not found in any location');
68
+ const tsx = await import(pathToFileURL(tsxPath).href);
69
+ // Register tsx with options to allow node_modules processing
70
+ tsx.register({
71
+ namespace: Math.random().toString(),
72
+ onImport: () => { }
73
+ });
74
+ this.tsxRegistered = true;
75
+ }
76
+ catch (error) {
77
+ // tsx not available, .ts imports will fail
78
+ console.warn('tsx not available, TypeScript template files may not load');
79
+ }
80
+ }
81
+ }
82
+ /**
83
+ * Render a template with the given context
84
+ */
85
+ async render(template, context) {
86
+ // Validate template
87
+ if (template.engine !== 'typescript') {
88
+ throw new TemplateEngineError(`TypeScript engine cannot render template with engine type "${template.engine}"`);
89
+ }
90
+ if (!template.generator) {
91
+ throw new TemplateEngineError('TypeScript template requires "generator" path to be specified');
92
+ }
93
+ try {
94
+ // Load and execute generator
95
+ const generator = await this.loadGenerator(template.generator);
96
+ let code = await generator(context);
97
+ // Run validators if specified
98
+ if (template.validators && template.validators.length > 0) {
99
+ for (const validatorPath of template.validators) {
100
+ const validator = await this.loadValidator(validatorPath);
101
+ const result = await validator(code, context);
102
+ if (!result.valid) {
103
+ throw new TemplateEngineError(`Validation failed:\n${(result.errors || []).map(e => ` - ${e}`).join('\n')}`, template.generator);
104
+ }
105
+ // Log warnings if any
106
+ if (result.warnings && result.warnings.length > 0) {
107
+ console.warn(`Validation warnings:\n${result.warnings.map(w => ` - ${w}`).join('\n')}`);
108
+ }
109
+ }
110
+ }
111
+ // Run post-processors if specified
112
+ if (template.postProcessors && template.postProcessors.length > 0) {
113
+ for (const processorPath of template.postProcessors) {
114
+ const processor = await this.loadPostProcessor(processorPath);
115
+ code = await processor(code, context);
116
+ }
117
+ }
118
+ return code;
119
+ }
120
+ catch (error) {
121
+ if (error instanceof TemplateEngineError) {
122
+ throw error;
123
+ }
124
+ throw new TemplateEngineError(`Failed to render template: ${error instanceof Error ? error.message : String(error)}`, template.generator, error instanceof Error ? error : undefined);
125
+ }
126
+ }
127
+ /**
128
+ * Load a generator function from a file path
129
+ */
130
+ async loadGenerator(generatorPath) {
131
+ // Check cache
132
+ if (this.generatorCache.has(generatorPath)) {
133
+ return this.generatorCache.get(generatorPath);
134
+ }
135
+ try {
136
+ // Resolve path
137
+ let fullPath = path.isAbsolute(generatorPath)
138
+ ? generatorPath
139
+ : path.join(this.baseDir, generatorPath);
140
+ const DEBUG = process.env.SPECVERSE_DEBUG === 'true';
141
+ if (DEBUG) {
142
+ console.log(`[typescript-engine] Loading generator:`);
143
+ console.log(` generatorPath: ${generatorPath}`);
144
+ console.log(` baseDir: ${this.baseDir}`);
145
+ console.log(` fullPath: ${fullPath}`);
146
+ }
147
+ let module;
148
+ // If path is a TypeScript file in libs/, try to load compiled JS from dist/libs/ first
149
+ if (fullPath.includes('/libs/') && (fullPath.endsWith('.ts') || fullPath.endsWith('.tsx'))) {
150
+ const jsPath = fullPath.replace('/libs/', '/dist/libs/').replace(/\.tsx?$/, '.js');
151
+ if (DEBUG)
152
+ console.log(`[typescript-engine] Checking for compiled JS: ${jsPath}`);
153
+ if (existsSync(jsPath)) {
154
+ if (DEBUG)
155
+ console.log(`[typescript-engine] ✅ Using compiled JS instead of TS`);
156
+ fullPath = jsPath;
157
+ }
158
+ else {
159
+ if (DEBUG)
160
+ console.log(`[typescript-engine] ❌ Compiled JS not found, will use TS (may fail in node_modules)`);
161
+ }
162
+ }
163
+ else {
164
+ if (DEBUG)
165
+ console.log(`[typescript-engine] Skipping JS check (not a libs/ TypeScript file)`);
166
+ }
167
+ // Try using tsx.tsImport for TypeScript files (bypasses node_modules restriction)
168
+ if (fullPath.endsWith('.ts') || fullPath.endsWith('.tsx')) {
169
+ try {
170
+ const __filename = fileURLToPath(import.meta.url);
171
+ const __dirname = path.dirname(__filename);
172
+ const packageRoot = path.resolve(__dirname, '../../..');
173
+ const tsxPath = path.join(packageRoot, 'node_modules/tsx/dist/esm/api/index.mjs');
174
+ const tsx = await import(pathToFileURL(tsxPath).href);
175
+ // Use tsImport to load TypeScript files from node_modules
176
+ if (tsx.tsImport) {
177
+ module = await tsx.tsImport(fullPath, import.meta.url);
178
+ }
179
+ else {
180
+ // Fallback to regular import for tsx versions without tsImport
181
+ await this.ensureTsxRegistered();
182
+ const fileUrl = pathToFileURL(fullPath).href;
183
+ module = await import(fileUrl);
184
+ }
185
+ }
186
+ catch (tsxError) {
187
+ // If tsx fails, try regular import
188
+ await this.ensureTsxRegistered();
189
+ const fileUrl = pathToFileURL(fullPath).href;
190
+ module = await import(fileUrl);
191
+ }
192
+ }
193
+ else {
194
+ // Regular JavaScript file
195
+ const fileUrl = pathToFileURL(fullPath).href;
196
+ module = await import(fileUrl);
197
+ }
198
+ // Get the generator function (default export or named export)
199
+ const generator = module.default || module.generate || module.generator;
200
+ if (typeof generator !== 'function') {
201
+ throw new Error(`Generator module must export a function as default export or named "generate" or "generator"`);
202
+ }
203
+ // Cache it
204
+ this.generatorCache.set(generatorPath, generator);
205
+ return generator;
206
+ }
207
+ catch (error) {
208
+ throw new TemplateEngineError(`Failed to load generator from "${generatorPath}": ${error instanceof Error ? error.message : String(error)}`, generatorPath, error instanceof Error ? error : undefined);
209
+ }
210
+ }
211
+ /**
212
+ * Load a validator function from a file path
213
+ */
214
+ async loadValidator(validatorPath) {
215
+ // Check cache
216
+ if (this.validatorCache.has(validatorPath)) {
217
+ return this.validatorCache.get(validatorPath);
218
+ }
219
+ try {
220
+ // Resolve path
221
+ const fullPath = path.isAbsolute(validatorPath)
222
+ ? validatorPath
223
+ : path.join(this.baseDir, validatorPath);
224
+ // Import the module
225
+ const fileUrl = pathToFileURL(fullPath).href;
226
+ const module = await import(fileUrl);
227
+ // Get the validator function
228
+ const validator = module.default || module.validate || module.validator;
229
+ if (typeof validator !== 'function') {
230
+ throw new Error(`Validator module must export a function as default export or named "validate" or "validator"`);
231
+ }
232
+ // Cache it
233
+ this.validatorCache.set(validatorPath, validator);
234
+ return validator;
235
+ }
236
+ catch (error) {
237
+ throw new TemplateEngineError(`Failed to load validator from "${validatorPath}": ${error instanceof Error ? error.message : String(error)}`, validatorPath, error instanceof Error ? error : undefined);
238
+ }
239
+ }
240
+ /**
241
+ * Load a post-processor function from a file path
242
+ */
243
+ async loadPostProcessor(processorPath) {
244
+ // Check cache
245
+ if (this.postProcessorCache.has(processorPath)) {
246
+ return this.postProcessorCache.get(processorPath);
247
+ }
248
+ try {
249
+ // Resolve path
250
+ const fullPath = path.isAbsolute(processorPath)
251
+ ? processorPath
252
+ : path.join(this.baseDir, processorPath);
253
+ // Import the module
254
+ const fileUrl = pathToFileURL(fullPath).href;
255
+ const module = await import(fileUrl);
256
+ // Get the processor function
257
+ const processor = module.default || module.process || module.postProcess;
258
+ if (typeof processor !== 'function') {
259
+ throw new Error(`Post-processor module must export a function as default export or named "process" or "postProcess"`);
260
+ }
261
+ // Cache it
262
+ this.postProcessorCache.set(processorPath, processor);
263
+ return processor;
264
+ }
265
+ catch (error) {
266
+ throw new TemplateEngineError(`Failed to load post-processor from "${processorPath}": ${error instanceof Error ? error.message : String(error)}`, processorPath, error instanceof Error ? error : undefined);
267
+ }
268
+ }
269
+ /**
270
+ * Clear all caches
271
+ */
272
+ clearCache() {
273
+ this.generatorCache.clear();
274
+ this.validatorCache.clear();
275
+ this.postProcessorCache.clear();
276
+ }
277
+ /**
278
+ * Get cache statistics
279
+ */
280
+ getCacheStats() {
281
+ return {
282
+ generators: this.generatorCache.size,
283
+ validators: this.validatorCache.size,
284
+ postProcessors: this.postProcessorCache.size
285
+ };
286
+ }
287
+ }
288
+ //# sourceMappingURL=typescript-engine.js.map