@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,700 @@
1
+ /**
2
+ * Property Mapper - Multi-Framework Support
3
+ *
4
+ * Maps SpecVerse component properties to framework-specific property values.
5
+ * Supports React (shadcn, MUI, antd), Vue (Vuetify, Element Plus), Svelte (Carbon),
6
+ * Angular (Material), and runtime interpretation.
7
+ *
8
+ * Architecture:
9
+ * - PropertyTarget: All supported frameworks/libraries + semantic layer
10
+ * - COMMON_PROPERTY_MAPPINGS: Universal properties (variant, size, color, position, orientation)
11
+ * - COMPONENT_SPECIFIC_MAPPINGS: Per-component overrides
12
+ * - mapProperty(): Main mapping function with fallback chain
13
+ */
14
+
15
+ // ============================================================================
16
+ // Types
17
+ // ============================================================================
18
+
19
+ /**
20
+ * All supported property mapping targets
21
+ */
22
+ export type PropertyTarget =
23
+ // React libraries
24
+ | 'shadcn'
25
+ | 'mui'
26
+ | 'antd'
27
+ // Vue libraries
28
+ | 'vuetify'
29
+ | 'elementPlus'
30
+ | 'primeVue'
31
+ // Svelte libraries
32
+ | 'carbon'
33
+ | 'svelteui'
34
+ // Angular libraries
35
+ | 'angularMaterial'
36
+ | 'primeNg'
37
+ // Runtime interpretation
38
+ | 'runtime'
39
+ // Universal semantic meaning
40
+ | 'semantic';
41
+
42
+ /**
43
+ * Framework categories for quick target identification
44
+ */
45
+ export type FrameworkCategory = 'react' | 'vue' | 'svelte' | 'angular' | 'runtime';
46
+
47
+ export const FRAMEWORK_TARGETS: Record<FrameworkCategory, PropertyTarget[]> = {
48
+ react: ['shadcn', 'mui', 'antd'],
49
+ vue: ['vuetify', 'elementPlus', 'primeVue'],
50
+ svelte: ['carbon', 'svelteui'],
51
+ angular: ['angularMaterial', 'primeNg'],
52
+ runtime: ['runtime']
53
+ };
54
+
55
+ /**
56
+ * Property value mapping for a specific SpecVerse value
57
+ */
58
+ export interface PropertyValueMapping {
59
+ shadcn?: string | boolean | number;
60
+ mui?: string | boolean | number;
61
+ antd?: string | boolean | number;
62
+ vuetify?: string | boolean | number;
63
+ elementPlus?: string | boolean | number;
64
+ primeVue?: string | boolean | number;
65
+ carbon?: string | boolean | number;
66
+ svelteui?: string | boolean | number;
67
+ angularMaterial?: string | boolean | number;
68
+ primeNg?: string | boolean | number;
69
+ runtime?: string | boolean | number;
70
+ semantic: string; // Always required - universal meaning
71
+ }
72
+
73
+ /**
74
+ * Complete mapping for a property
75
+ */
76
+ export interface PropertyMapping {
77
+ [specverseValue: string]: PropertyValueMapping;
78
+ }
79
+
80
+ /**
81
+ * Component-specific property overrides
82
+ */
83
+ export interface ComponentPropertyMapping {
84
+ [componentType: string]: {
85
+ [propertyName: string]: PropertyMapping;
86
+ };
87
+ }
88
+
89
+ // ============================================================================
90
+ // Common Property Mappings (Universal across all component types)
91
+ // ============================================================================
92
+
93
+ /**
94
+ * Variant mappings - Primary, secondary, destructive actions
95
+ * Consistency: 60-85% across frameworks (HIGH)
96
+ */
97
+ export const VARIANT_MAPPING: PropertyMapping = {
98
+ primary: {
99
+ shadcn: 'default',
100
+ mui: 'contained',
101
+ antd: 'primary',
102
+ vuetify: 'primary',
103
+ elementPlus: 'primary',
104
+ primeVue: 'primary',
105
+ carbon: 'primary',
106
+ svelteui: 'primary',
107
+ angularMaterial: 'primary',
108
+ primeNg: 'primary',
109
+ runtime: 'primary',
110
+ semantic: 'primary-action'
111
+ },
112
+ secondary: {
113
+ shadcn: 'secondary',
114
+ mui: 'outlined',
115
+ antd: 'default',
116
+ vuetify: 'secondary',
117
+ elementPlus: 'default',
118
+ primeVue: 'secondary',
119
+ carbon: 'secondary',
120
+ svelteui: 'secondary',
121
+ angularMaterial: 'accent',
122
+ primeNg: 'secondary',
123
+ runtime: 'secondary',
124
+ semantic: 'secondary-action'
125
+ },
126
+ destructive: {
127
+ shadcn: 'destructive',
128
+ mui: 'error',
129
+ antd: 'danger',
130
+ vuetify: 'error',
131
+ elementPlus: 'danger',
132
+ primeVue: 'danger',
133
+ carbon: 'danger',
134
+ svelteui: 'error',
135
+ angularMaterial: 'warn',
136
+ primeNg: 'danger',
137
+ runtime: 'destructive',
138
+ semantic: 'destructive-action'
139
+ },
140
+ ghost: {
141
+ shadcn: 'ghost',
142
+ mui: 'text',
143
+ antd: 'link',
144
+ vuetify: 'text',
145
+ elementPlus: 'text',
146
+ primeVue: 'text',
147
+ carbon: 'ghost',
148
+ svelteui: 'ghost',
149
+ angularMaterial: 'basic',
150
+ primeNg: 'text',
151
+ runtime: 'ghost',
152
+ semantic: 'minimal-action'
153
+ },
154
+ outline: {
155
+ shadcn: 'outline',
156
+ mui: 'outlined',
157
+ antd: 'default',
158
+ vuetify: 'outlined',
159
+ elementPlus: 'plain',
160
+ primeVue: 'outlined',
161
+ carbon: 'tertiary',
162
+ svelteui: 'outline',
163
+ angularMaterial: 'stroked',
164
+ primeNg: 'outlined',
165
+ runtime: 'outline',
166
+ semantic: 'outlined-action'
167
+ }
168
+ };
169
+
170
+ /**
171
+ * Size mappings - Component dimensions
172
+ * Consistency: 85-90% across frameworks (VERY HIGH)
173
+ */
174
+ export const SIZE_MAPPING: PropertyMapping = {
175
+ small: {
176
+ shadcn: 'sm',
177
+ mui: 'small',
178
+ antd: 'small',
179
+ vuetify: 'small',
180
+ elementPlus: 'small',
181
+ primeVue: 'small',
182
+ carbon: 'sm',
183
+ svelteui: 'sm',
184
+ angularMaterial: 'small',
185
+ primeNg: 'small',
186
+ runtime: 'small',
187
+ semantic: 'compact'
188
+ },
189
+ medium: {
190
+ shadcn: 'default',
191
+ mui: 'medium',
192
+ antd: 'middle',
193
+ vuetify: 'default',
194
+ elementPlus: 'default',
195
+ primeVue: 'default',
196
+ carbon: 'md',
197
+ svelteui: 'md',
198
+ angularMaterial: 'medium',
199
+ primeNg: 'medium',
200
+ runtime: 'medium',
201
+ semantic: 'standard'
202
+ },
203
+ large: {
204
+ shadcn: 'lg',
205
+ mui: 'large',
206
+ antd: 'large',
207
+ vuetify: 'large',
208
+ elementPlus: 'large',
209
+ primeVue: 'large',
210
+ carbon: 'lg',
211
+ svelteui: 'lg',
212
+ angularMaterial: 'large',
213
+ primeNg: 'large',
214
+ runtime: 'large',
215
+ semantic: 'spacious'
216
+ }
217
+ };
218
+
219
+ /**
220
+ * Color mappings - Semantic color values
221
+ * Consistency: 70-80% across frameworks (HIGH)
222
+ */
223
+ export const COLOR_MAPPING: PropertyMapping = {
224
+ primary: {
225
+ shadcn: 'primary',
226
+ mui: 'primary',
227
+ antd: 'primary',
228
+ vuetify: 'primary',
229
+ elementPlus: 'primary',
230
+ primeVue: 'primary',
231
+ carbon: 'blue',
232
+ svelteui: 'primary',
233
+ angularMaterial: 'primary',
234
+ primeNg: 'primary',
235
+ runtime: 'primary',
236
+ semantic: 'primary-color'
237
+ },
238
+ success: {
239
+ shadcn: 'success',
240
+ mui: 'success',
241
+ antd: 'success',
242
+ vuetify: 'success',
243
+ elementPlus: 'success',
244
+ primeVue: 'success',
245
+ carbon: 'green',
246
+ svelteui: 'success',
247
+ angularMaterial: 'success',
248
+ primeNg: 'success',
249
+ runtime: 'success',
250
+ semantic: 'positive-feedback'
251
+ },
252
+ warning: {
253
+ shadcn: 'warning',
254
+ mui: 'warning',
255
+ antd: 'warning',
256
+ vuetify: 'warning',
257
+ elementPlus: 'warning',
258
+ primeVue: 'warning',
259
+ carbon: 'yellow',
260
+ svelteui: 'warning',
261
+ angularMaterial: 'warn',
262
+ primeNg: 'warning',
263
+ runtime: 'warning',
264
+ semantic: 'caution-feedback'
265
+ },
266
+ error: {
267
+ shadcn: 'destructive',
268
+ mui: 'error',
269
+ antd: 'error',
270
+ vuetify: 'error',
271
+ elementPlus: 'error',
272
+ primeVue: 'danger',
273
+ carbon: 'red',
274
+ svelteui: 'error',
275
+ angularMaterial: 'warn',
276
+ primeNg: 'danger',
277
+ runtime: 'error',
278
+ semantic: 'negative-feedback'
279
+ },
280
+ info: {
281
+ shadcn: 'default',
282
+ mui: 'info',
283
+ antd: 'info',
284
+ vuetify: 'info',
285
+ elementPlus: 'info',
286
+ primeVue: 'info',
287
+ carbon: 'cyan',
288
+ svelteui: 'info',
289
+ angularMaterial: 'primary',
290
+ primeNg: 'info',
291
+ runtime: 'info',
292
+ semantic: 'informational-feedback'
293
+ }
294
+ };
295
+
296
+ /**
297
+ * Position mappings - Spatial positioning
298
+ * Consistency: 95-100% across frameworks (UNIVERSAL)
299
+ */
300
+ export const POSITION_MAPPING: PropertyMapping = {
301
+ top: {
302
+ shadcn: 'top',
303
+ mui: 'top',
304
+ antd: 'top',
305
+ vuetify: 'top',
306
+ elementPlus: 'top',
307
+ primeVue: 'top',
308
+ carbon: 'top',
309
+ svelteui: 'top',
310
+ angularMaterial: 'above',
311
+ primeNg: 'top',
312
+ runtime: 'top',
313
+ semantic: 'top-position'
314
+ },
315
+ bottom: {
316
+ shadcn: 'bottom',
317
+ mui: 'bottom',
318
+ antd: 'bottom',
319
+ vuetify: 'bottom',
320
+ elementPlus: 'bottom',
321
+ primeVue: 'bottom',
322
+ carbon: 'bottom',
323
+ svelteui: 'bottom',
324
+ angularMaterial: 'below',
325
+ primeNg: 'bottom',
326
+ runtime: 'bottom',
327
+ semantic: 'bottom-position'
328
+ },
329
+ left: {
330
+ shadcn: 'left',
331
+ mui: 'left',
332
+ antd: 'left',
333
+ vuetify: 'left',
334
+ elementPlus: 'left',
335
+ primeVue: 'left',
336
+ carbon: 'left',
337
+ svelteui: 'left',
338
+ angularMaterial: 'before',
339
+ primeNg: 'left',
340
+ runtime: 'left',
341
+ semantic: 'left-position'
342
+ },
343
+ right: {
344
+ shadcn: 'right',
345
+ mui: 'right',
346
+ antd: 'right',
347
+ vuetify: 'right',
348
+ elementPlus: 'right',
349
+ primeVue: 'right',
350
+ carbon: 'right',
351
+ svelteui: 'right',
352
+ angularMaterial: 'after',
353
+ primeNg: 'right',
354
+ runtime: 'right',
355
+ semantic: 'right-position'
356
+ }
357
+ };
358
+
359
+ /**
360
+ * Orientation mappings - Layout direction
361
+ * Consistency: 90-95% across frameworks (VERY HIGH)
362
+ */
363
+ export const ORIENTATION_MAPPING: PropertyMapping = {
364
+ horizontal: {
365
+ shadcn: 'horizontal',
366
+ mui: 'horizontal',
367
+ antd: 'horizontal',
368
+ vuetify: 'horizontal',
369
+ elementPlus: 'horizontal',
370
+ primeVue: 'horizontal',
371
+ carbon: 'horizontal',
372
+ svelteui: 'horizontal',
373
+ angularMaterial: 'horizontal',
374
+ primeNg: 'horizontal',
375
+ runtime: 'horizontal',
376
+ semantic: 'horizontal-layout'
377
+ },
378
+ vertical: {
379
+ shadcn: 'vertical',
380
+ mui: 'vertical',
381
+ antd: 'vertical',
382
+ vuetify: 'vertical',
383
+ elementPlus: 'vertical',
384
+ primeVue: 'vertical',
385
+ carbon: 'vertical',
386
+ svelteui: 'vertical',
387
+ angularMaterial: 'vertical',
388
+ primeNg: 'vertical',
389
+ runtime: 'vertical',
390
+ semantic: 'vertical-layout'
391
+ }
392
+ };
393
+
394
+ /**
395
+ * All common property mappings
396
+ */
397
+ export const COMMON_PROPERTY_MAPPINGS: Record<string, PropertyMapping> = {
398
+ variant: VARIANT_MAPPING,
399
+ size: SIZE_MAPPING,
400
+ color: COLOR_MAPPING,
401
+ position: POSITION_MAPPING,
402
+ orientation: ORIENTATION_MAPPING
403
+ };
404
+
405
+ // ============================================================================
406
+ // Component-Specific Property Mappings (Overrides)
407
+ // ============================================================================
408
+
409
+ /**
410
+ * Component-specific overrides for properties that differ from common mappings
411
+ *
412
+ * Example: Table pagination size works differently than button size
413
+ */
414
+ export const COMPONENT_SPECIFIC_MAPPINGS: ComponentPropertyMapping = {
415
+ table: {
416
+ size: {
417
+ small: {
418
+ shadcn: 'sm',
419
+ mui: 'small',
420
+ antd: 'small',
421
+ vuetify: 'small',
422
+ elementPlus: 'small',
423
+ primeVue: 'small',
424
+ carbon: 'sm',
425
+ svelteui: 'compact',
426
+ angularMaterial: 'small',
427
+ primeNg: 'small',
428
+ runtime: 'small',
429
+ semantic: 'compact-table'
430
+ },
431
+ medium: {
432
+ shadcn: 'default',
433
+ mui: 'medium',
434
+ antd: 'middle',
435
+ vuetify: 'default',
436
+ elementPlus: 'default',
437
+ primeVue: 'default',
438
+ carbon: 'md',
439
+ svelteui: 'default',
440
+ angularMaterial: 'medium',
441
+ primeNg: 'medium',
442
+ runtime: 'medium',
443
+ semantic: 'standard-table'
444
+ },
445
+ large: {
446
+ shadcn: 'lg',
447
+ mui: 'large',
448
+ antd: 'large',
449
+ vuetify: 'large',
450
+ elementPlus: 'large',
451
+ primeVue: 'large',
452
+ carbon: 'lg',
453
+ svelteui: 'relaxed',
454
+ angularMaterial: 'large',
455
+ primeNg: 'large',
456
+ runtime: 'large',
457
+ semantic: 'spacious-table'
458
+ }
459
+ }
460
+ },
461
+
462
+ input: {
463
+ variant: {
464
+ // Inputs use different variant semantics
465
+ filled: {
466
+ shadcn: 'default',
467
+ mui: 'filled',
468
+ antd: 'filled',
469
+ vuetify: 'filled',
470
+ elementPlus: 'default',
471
+ primeVue: 'filled',
472
+ carbon: 'default',
473
+ svelteui: 'filled',
474
+ angularMaterial: 'fill',
475
+ primeNg: 'filled',
476
+ runtime: 'filled',
477
+ semantic: 'filled-input'
478
+ },
479
+ outlined: {
480
+ shadcn: 'outline',
481
+ mui: 'outlined',
482
+ antd: 'outlined',
483
+ vuetify: 'outlined',
484
+ elementPlus: 'default',
485
+ primeVue: 'outlined',
486
+ carbon: 'outline',
487
+ svelteui: 'outlined',
488
+ angularMaterial: 'outline',
489
+ primeNg: 'outlined',
490
+ runtime: 'outlined',
491
+ semantic: 'outlined-input'
492
+ },
493
+ standard: {
494
+ shadcn: 'default',
495
+ mui: 'standard',
496
+ antd: 'borderless',
497
+ vuetify: 'underlined',
498
+ elementPlus: 'default',
499
+ primeVue: 'standard',
500
+ carbon: 'default',
501
+ svelteui: 'standard',
502
+ angularMaterial: 'standard',
503
+ primeNg: 'standard',
504
+ runtime: 'standard',
505
+ semantic: 'standard-input'
506
+ }
507
+ }
508
+ },
509
+
510
+ badge: {
511
+ variant: {
512
+ // Badges use different variant semantics
513
+ dot: {
514
+ shadcn: 'default',
515
+ mui: 'dot',
516
+ antd: 'default',
517
+ vuetify: 'dot',
518
+ elementPlus: 'default',
519
+ primeVue: 'default',
520
+ carbon: 'default',
521
+ svelteui: 'dot',
522
+ angularMaterial: 'default',
523
+ primeNg: 'default',
524
+ runtime: 'dot',
525
+ semantic: 'notification-indicator'
526
+ },
527
+ standard: {
528
+ shadcn: 'default',
529
+ mui: 'standard',
530
+ antd: 'default',
531
+ vuetify: 'default',
532
+ elementPlus: 'default',
533
+ primeVue: 'default',
534
+ carbon: 'default',
535
+ svelteui: 'default',
536
+ angularMaterial: 'default',
537
+ primeNg: 'default',
538
+ runtime: 'standard',
539
+ semantic: 'count-indicator'
540
+ }
541
+ }
542
+ }
543
+ };
544
+
545
+ // ============================================================================
546
+ // Mapping Functions
547
+ // ============================================================================
548
+
549
+ /**
550
+ * Maps a single property value from SpecVerse to a target framework/library
551
+ *
552
+ * Fallback chain:
553
+ * 1. Component-specific mapping
554
+ * 2. Common property mapping
555
+ * 3. Original value (passthrough)
556
+ *
557
+ * @param componentType - Component type (e.g., 'button', 'table')
558
+ * @param propertyName - Property name (e.g., 'variant', 'size')
559
+ * @param specverseValue - SpecVerse property value (e.g., 'primary', 'large')
560
+ * @param target - Target framework/library
561
+ * @returns Mapped property value for target
562
+ */
563
+ export function mapProperty(
564
+ componentType: string,
565
+ propertyName: string,
566
+ specverseValue: any,
567
+ target: PropertyTarget
568
+ ): any {
569
+ // Handle non-string primitive values (numbers, booleans) - pass through
570
+ if (typeof specverseValue !== 'string') {
571
+ return specverseValue;
572
+ }
573
+
574
+ // 1. Try component-specific mapping
575
+ const componentMapping = COMPONENT_SPECIFIC_MAPPINGS[componentType]?.[propertyName]?.[specverseValue];
576
+ if (componentMapping && target in componentMapping) {
577
+ return componentMapping[target as keyof PropertyValueMapping];
578
+ }
579
+
580
+ // 2. Try common property mapping
581
+ const commonMapping = COMMON_PROPERTY_MAPPINGS[propertyName]?.[specverseValue];
582
+ if (commonMapping && target in commonMapping) {
583
+ return commonMapping[target as keyof PropertyValueMapping];
584
+ }
585
+
586
+ // 3. Fallback: Return original value
587
+ return specverseValue;
588
+ }
589
+
590
+ /**
591
+ * Gets the semantic meaning of a property value (universal across frameworks)
592
+ *
593
+ * @param propertyName - Property name
594
+ * @param specverseValue - SpecVerse property value
595
+ * @returns Semantic meaning string
596
+ */
597
+ export function getSemanticMeaning(
598
+ propertyName: string,
599
+ specverseValue: string
600
+ ): string {
601
+ const commonMapping = COMMON_PROPERTY_MAPPINGS[propertyName]?.[specverseValue];
602
+ if (commonMapping && 'semantic' in commonMapping) {
603
+ return commonMapping.semantic as string;
604
+ }
605
+
606
+ return `${propertyName}-${specverseValue}`;
607
+ }
608
+
609
+ /**
610
+ * Maps all properties of a component to a target framework/library
611
+ *
612
+ * @param componentType - Component type
613
+ * @param properties - Object containing all component properties
614
+ * @param target - Target framework/library
615
+ * @returns Object with all properties mapped to target
616
+ */
617
+ export function mapProperties(
618
+ componentType: string,
619
+ properties: Record<string, any>,
620
+ target: PropertyTarget
621
+ ): Record<string, any> {
622
+ const mappedProperties: Record<string, any> = {};
623
+
624
+ for (const [propName, propValue] of Object.entries(properties)) {
625
+ mappedProperties[propName] = mapProperty(
626
+ componentType,
627
+ propName,
628
+ propValue,
629
+ target
630
+ );
631
+ }
632
+
633
+ return mappedProperties;
634
+ }
635
+
636
+ /**
637
+ * Gets all framework targets for a given framework category
638
+ *
639
+ * @param category - Framework category
640
+ * @returns Array of property targets for that framework
641
+ */
642
+ export function getFrameworkTargets(category: FrameworkCategory): PropertyTarget[] {
643
+ return FRAMEWORK_TARGETS[category];
644
+ }
645
+
646
+ /**
647
+ * Checks if a property value has a mapping for a specific target
648
+ *
649
+ * @param componentType - Component type
650
+ * @param propertyName - Property name
651
+ * @param specverseValue - SpecVerse property value
652
+ * @param target - Target framework/library
653
+ * @returns True if mapping exists, false otherwise
654
+ */
655
+ export function hasMapping(
656
+ componentType: string,
657
+ propertyName: string,
658
+ specverseValue: string,
659
+ target: PropertyTarget
660
+ ): boolean {
661
+ const componentMapping = COMPONENT_SPECIFIC_MAPPINGS[componentType]?.[propertyName]?.[specverseValue];
662
+ if (componentMapping && target in componentMapping) {
663
+ return true;
664
+ }
665
+
666
+ const commonMapping = COMMON_PROPERTY_MAPPINGS[propertyName]?.[specverseValue];
667
+ if (commonMapping && target in commonMapping) {
668
+ return true;
669
+ }
670
+
671
+ return false;
672
+ }
673
+
674
+ /**
675
+ * Gets all available mappings for a property across all frameworks
676
+ *
677
+ * Useful for debugging and documentation generation
678
+ *
679
+ * @param componentType - Component type
680
+ * @param propertyName - Property name
681
+ * @param specverseValue - SpecVerse property value
682
+ * @returns Object with all target mappings
683
+ */
684
+ export function getAllMappings(
685
+ componentType: string,
686
+ propertyName: string,
687
+ specverseValue: string
688
+ ): Partial<PropertyValueMapping> | null {
689
+ const componentMapping = COMPONENT_SPECIFIC_MAPPINGS[componentType]?.[propertyName]?.[specverseValue];
690
+ if (componentMapping) {
691
+ return componentMapping;
692
+ }
693
+
694
+ const commonMapping = COMMON_PROPERTY_MAPPINGS[propertyName]?.[specverseValue];
695
+ if (commonMapping) {
696
+ return commonMapping;
697
+ }
698
+
699
+ return null;
700
+ }