@specverse/engines 4.1.30 → 4.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (226) hide show
  1. package/assets/examples/manifests/frontend-only.yaml +3 -6
  2. package/assets/examples/manifests/fullstack-app.yaml +5 -7
  3. package/assets/examples/manifests/fullstack-monorepo.yaml +3 -6
  4. package/dist/inference/comprehensive-engine.d.ts.map +1 -1
  5. package/dist/inference/comprehensive-engine.js +3 -19
  6. package/dist/inference/comprehensive-engine.js.map +1 -1
  7. package/dist/inference/core/rule-engine.d.ts +31 -0
  8. package/dist/inference/core/rule-engine.d.ts.map +1 -1
  9. package/dist/inference/core/rule-engine.js +117 -33
  10. package/dist/inference/core/rule-engine.js.map +1 -1
  11. package/dist/inference/core/rule-file-types.d.ts +0 -2
  12. package/dist/inference/core/rule-file-types.d.ts.map +1 -1
  13. package/dist/inference/core/rule-file-types.js +3 -6
  14. package/dist/inference/core/rule-file-types.js.map +1 -1
  15. package/dist/inference/core/rule-loader.d.ts +5 -15
  16. package/dist/inference/core/rule-loader.d.ts.map +1 -1
  17. package/dist/inference/core/rule-loader.js +43 -132
  18. package/dist/inference/core/rule-loader.js.map +1 -1
  19. package/dist/inference/core/types.d.ts +0 -6
  20. package/dist/inference/core/types.d.ts.map +1 -1
  21. package/dist/inference/core/types.js +0 -4
  22. package/dist/inference/core/types.js.map +1 -1
  23. package/dist/inference/logical/generators/component-type-resolver.d.ts +0 -26
  24. package/dist/inference/logical/generators/component-type-resolver.d.ts.map +1 -1
  25. package/dist/inference/logical/generators/component-type-resolver.js +0 -19
  26. package/dist/inference/logical/generators/component-type-resolver.js.map +1 -1
  27. package/dist/inference/logical/generators/specialist-view-expander.d.ts +1 -17
  28. package/dist/inference/logical/generators/specialist-view-expander.d.ts.map +1 -1
  29. package/dist/inference/logical/generators/specialist-view-expander.js +0 -15
  30. package/dist/inference/logical/generators/specialist-view-expander.js.map +1 -1
  31. package/dist/inference/logical/generators/view-generator.d.ts +4 -14
  32. package/dist/inference/logical/generators/view-generator.d.ts.map +1 -1
  33. package/dist/inference/logical/generators/view-generator.js +6 -26
  34. package/dist/inference/logical/generators/view-generator.js.map +1 -1
  35. package/dist/inference/logical/index.d.ts +2 -2
  36. package/dist/inference/logical/index.d.ts.map +1 -1
  37. package/dist/inference/logical/logical-engine.d.ts.map +1 -1
  38. package/dist/inference/logical/logical-engine.js +17 -80
  39. package/dist/inference/logical/logical-engine.js.map +1 -1
  40. package/dist/inference/quint-transpiler.d.ts +5 -3
  41. package/dist/inference/quint-transpiler.d.ts.map +1 -1
  42. package/dist/inference/quint-transpiler.js +11 -6
  43. package/dist/inference/quint-transpiler.js.map +1 -1
  44. package/dist/libs/instance-factories/applications/templates/react-starter/app-tsx-generator.js +110 -0
  45. package/dist/libs/instance-factories/applications/templates/react-starter/dashboard-body-composer.js +121 -0
  46. package/dist/libs/instance-factories/applications/templates/react-starter/detail-body-composer.js +78 -0
  47. package/dist/libs/instance-factories/applications/templates/react-starter/form-body-composer.js +190 -0
  48. package/dist/libs/instance-factories/applications/templates/react-starter/helpers-emitter.js +45 -0
  49. package/dist/libs/instance-factories/applications/templates/react-starter/html-to-jsx.js +192 -0
  50. package/dist/libs/instance-factories/applications/templates/react-starter/list-body-composer.js +46 -0
  51. package/dist/libs/instance-factories/applications/templates/react-starter/orchestrator.js +30 -0
  52. package/dist/libs/instance-factories/applications/templates/react-starter/package-json-generator.js +38 -0
  53. package/dist/libs/instance-factories/applications/templates/react-starter/regen-safety.js +89 -0
  54. package/dist/libs/instance-factories/applications/templates/react-starter/view-emitter.js +56 -0
  55. package/dist/libs/instance-factories/applications/templates/react-starter/views-generator.js +66 -0
  56. package/dist/libs/instance-factories/cli/templates/commander/command-generator.js +14 -11
  57. package/dist/realize/index.d.ts.map +1 -1
  58. package/dist/realize/index.js +15 -22
  59. package/dist/realize/index.js.map +1 -1
  60. package/dist/registry/utils/manifest-adapter.d.ts +8 -1
  61. package/dist/registry/utils/manifest-adapter.d.ts.map +1 -1
  62. package/dist/registry/utils/manifest-adapter.js +8 -1
  63. package/dist/registry/utils/manifest-adapter.js.map +1 -1
  64. package/libs/instance-factories/applications/react-app-starter.yaml +150 -0
  65. package/libs/instance-factories/applications/templates/react-starter/README.md +211 -0
  66. package/libs/instance-factories/applications/templates/react-starter/__tests__/dashboard-body-composer.test.ts +153 -0
  67. package/libs/instance-factories/applications/templates/react-starter/__tests__/detail-body-composer.test.ts +145 -0
  68. package/libs/instance-factories/applications/templates/react-starter/__tests__/form-body-composer.test.ts +175 -0
  69. package/libs/instance-factories/applications/templates/react-starter/__tests__/helpers-emitter.test.ts +55 -0
  70. package/libs/instance-factories/applications/templates/react-starter/__tests__/html-to-jsx.test.ts +140 -0
  71. package/libs/instance-factories/applications/templates/react-starter/__tests__/list-body-composer.test.ts +146 -0
  72. package/libs/instance-factories/applications/templates/react-starter/__tests__/orchestrator.test.ts +163 -0
  73. package/libs/instance-factories/applications/templates/react-starter/__tests__/parity-p2-factory-imports.test.ts +116 -0
  74. package/libs/instance-factories/applications/templates/react-starter/__tests__/parity-p3-rendered-output.test.ts +183 -0
  75. package/libs/instance-factories/applications/templates/react-starter/__tests__/regen-safety.test.ts +144 -0
  76. package/libs/instance-factories/applications/templates/react-starter/__tests__/starter-generators.test.ts +114 -0
  77. package/libs/instance-factories/applications/templates/react-starter/__tests__/view-emitter.test.ts +107 -0
  78. package/libs/instance-factories/applications/templates/react-starter/__tests__/views-generator.test.ts +139 -0
  79. package/libs/instance-factories/applications/templates/react-starter/app-tsx-generator.ts +141 -0
  80. package/libs/instance-factories/applications/templates/react-starter/dashboard-body-composer.ts +174 -0
  81. package/libs/instance-factories/applications/templates/react-starter/detail-body-composer.ts +135 -0
  82. package/libs/instance-factories/applications/templates/react-starter/form-body-composer.ts +306 -0
  83. package/libs/instance-factories/applications/templates/react-starter/helpers-emitter.ts +60 -0
  84. package/libs/instance-factories/applications/templates/react-starter/html-to-jsx.ts +334 -0
  85. package/libs/instance-factories/applications/templates/react-starter/list-body-composer.ts +120 -0
  86. package/libs/instance-factories/applications/templates/react-starter/orchestrator.ts +80 -0
  87. package/libs/instance-factories/applications/templates/react-starter/package-json-generator.ts +57 -0
  88. package/libs/instance-factories/applications/templates/react-starter/regen-safety.ts +157 -0
  89. package/libs/instance-factories/applications/templates/react-starter/skeletons/dashboard.tsx.template +47 -0
  90. package/libs/instance-factories/applications/templates/react-starter/skeletons/detail.tsx.template +94 -0
  91. package/libs/instance-factories/applications/templates/react-starter/skeletons/form.tsx.template +114 -0
  92. package/libs/instance-factories/applications/templates/react-starter/skeletons/list.tsx.template +72 -0
  93. package/libs/instance-factories/applications/templates/react-starter/view-emitter.ts +151 -0
  94. package/libs/instance-factories/applications/templates/react-starter/views-generator.ts +137 -0
  95. package/libs/instance-factories/cli/templates/commander/command-generator.ts +14 -11
  96. package/package.json +3 -3
  97. package/dist/libs/instance-factories/applications/templates/react/_view-components-source.js +0 -530
  98. package/dist/libs/instance-factories/applications/templates/react/app-tsx-generator.js +0 -73
  99. package/dist/libs/instance-factories/applications/templates/react/field-helpers-generator.js +0 -99
  100. package/dist/libs/instance-factories/applications/templates/react/package-json-generator.js +0 -49
  101. package/dist/libs/instance-factories/applications/templates/react/pattern-adapter-generator.js +0 -156
  102. package/dist/libs/instance-factories/applications/templates/react/react-pattern-adapter.js +0 -935
  103. package/dist/libs/instance-factories/applications/templates/react/relationship-field-generator.js +0 -143
  104. package/dist/libs/instance-factories/applications/templates/react/tailwind-adapter-generator.js +0 -646
  105. package/dist/libs/instance-factories/applications/templates/react/tailwind-adapter-wrapper-generator.js +0 -65
  106. package/dist/libs/instance-factories/applications/templates/react/view-dashboard-generator.js +0 -143
  107. package/dist/libs/instance-factories/applications/templates/react/view-detail-generator.js +0 -143
  108. package/dist/libs/instance-factories/applications/templates/react/view-form-generator.js +0 -355
  109. package/dist/libs/instance-factories/applications/templates/react/view-list-generator.js +0 -91
  110. package/dist/libs/instance-factories/applications/templates/react/view-router-generator.js +0 -79
  111. package/dist/libs/instance-factories/views/index.js +0 -48
  112. package/dist/libs/instance-factories/views/templates/react/adapters/antd-adapter.js +0 -742
  113. package/dist/libs/instance-factories/views/templates/react/adapters/mui-adapter.js +0 -824
  114. package/dist/libs/instance-factories/views/templates/react/adapters/shadcn-adapter.js +0 -719
  115. package/dist/libs/instance-factories/views/templates/react/app-generator.js +0 -45
  116. package/dist/libs/instance-factories/views/templates/react/components-generator.js +0 -820
  117. package/dist/libs/instance-factories/views/templates/react/forms-generator.js +0 -275
  118. package/dist/libs/instance-factories/views/templates/react/frontend-package-json-generator.js +0 -46
  119. package/dist/libs/instance-factories/views/templates/react/hooks-generator.js +0 -81
  120. package/dist/libs/instance-factories/views/templates/react/index-css-generator.js +0 -9
  121. package/dist/libs/instance-factories/views/templates/react/index-html-generator.js +0 -23
  122. package/dist/libs/instance-factories/views/templates/react/main-tsx-generator.js +0 -21
  123. package/dist/libs/instance-factories/views/templates/react/react-component-generator.js +0 -299
  124. package/dist/libs/instance-factories/views/templates/react/router-generator.js +0 -136
  125. package/dist/libs/instance-factories/views/templates/react/router-generic-generator.js +0 -107
  126. package/dist/libs/instance-factories/views/templates/react/shared-utils-generator.js +0 -187
  127. package/dist/libs/instance-factories/views/templates/react/spec-json-generator.js +0 -7
  128. package/dist/libs/instance-factories/views/templates/react/types-generator.js +0 -56
  129. package/dist/libs/instance-factories/views/templates/react/views-metadata-generator.js +0 -27
  130. package/dist/libs/instance-factories/views/templates/react/vite-config-generator.js +0 -29
  131. package/dist/libs/instance-factories/views/templates/runtime/runtime-view-renderer.js +0 -261
  132. package/dist/libs/instance-factories/views/templates/shared/adapter-types.js +0 -34
  133. package/dist/libs/instance-factories/views/templates/shared/atomic-components-registry.js +0 -800
  134. package/dist/libs/instance-factories/views/templates/shared/base-generator.js +0 -305
  135. package/dist/libs/instance-factories/views/templates/shared/component-metadata.js +0 -517
  136. package/dist/libs/instance-factories/views/templates/shared/composite-pattern-types.js +0 -0
  137. package/dist/libs/instance-factories/views/templates/shared/composite-patterns.js +0 -445
  138. package/dist/libs/instance-factories/views/templates/shared/index.js +0 -80
  139. package/dist/libs/instance-factories/views/templates/shared/pattern-validator.js +0 -210
  140. package/dist/libs/instance-factories/views/templates/shared/property-mapper.js +0 -492
  141. package/dist/libs/instance-factories/views/templates/shared/syntax-mapper.js +0 -321
  142. package/dist/realize/index.js.bak +0 -758
  143. package/libs/instance-factories/applications/react-app.yaml +0 -186
  144. package/libs/instance-factories/applications/templates/react/_view-components-source.ts +0 -555
  145. package/libs/instance-factories/applications/templates/react/app-tsx-generator.ts +0 -94
  146. package/libs/instance-factories/applications/templates/react/field-helpers-generator.ts +0 -106
  147. package/libs/instance-factories/applications/templates/react/package-json-generator.ts +0 -57
  148. package/libs/instance-factories/applications/templates/react/pattern-adapter-generator.ts +0 -179
  149. package/libs/instance-factories/applications/templates/react/react-pattern-adapter.tsx +0 -1347
  150. package/libs/instance-factories/applications/templates/react/relationship-field-generator.ts +0 -150
  151. package/libs/instance-factories/applications/templates/react/tailwind-adapter-generator.ts +0 -704
  152. package/libs/instance-factories/applications/templates/react/tailwind-adapter-wrapper-generator.ts +0 -84
  153. package/libs/instance-factories/applications/templates/react/view-dashboard-generator.ts +0 -150
  154. package/libs/instance-factories/applications/templates/react/view-detail-generator.ts +0 -150
  155. package/libs/instance-factories/applications/templates/react/view-form-generator.ts +0 -362
  156. package/libs/instance-factories/applications/templates/react/view-list-generator.ts +0 -98
  157. package/libs/instance-factories/applications/templates/react/view-router-generator.ts +0 -89
  158. package/libs/instance-factories/views/README.md +0 -62
  159. package/libs/instance-factories/views/index.d.ts +0 -13
  160. package/libs/instance-factories/views/index.d.ts.map +0 -1
  161. package/libs/instance-factories/views/index.js +0 -18
  162. package/libs/instance-factories/views/index.js.map +0 -1
  163. package/libs/instance-factories/views/index.ts +0 -45
  164. package/libs/instance-factories/views/react-components.yaml +0 -129
  165. package/libs/instance-factories/views/templates/ARCHITECTURE.md +0 -198
  166. package/libs/instance-factories/views/templates/react/adapters/antd-adapter.ts +0 -869
  167. package/libs/instance-factories/views/templates/react/adapters/mui-adapter.ts +0 -953
  168. package/libs/instance-factories/views/templates/react/adapters/shadcn-adapter.ts +0 -806
  169. package/libs/instance-factories/views/templates/react/app-generator.ts +0 -55
  170. package/libs/instance-factories/views/templates/react/components-generator.ts +0 -938
  171. package/libs/instance-factories/views/templates/react/forms-generator.ts +0 -325
  172. package/libs/instance-factories/views/templates/react/frontend-package-json-generator.ts +0 -57
  173. package/libs/instance-factories/views/templates/react/hooks-generator.ts +0 -106
  174. package/libs/instance-factories/views/templates/react/index-css-generator.ts +0 -14
  175. package/libs/instance-factories/views/templates/react/index-html-generator.ts +0 -34
  176. package/libs/instance-factories/views/templates/react/main-tsx-generator.ts +0 -29
  177. package/libs/instance-factories/views/templates/react/react-component-generator.d.ts +0 -152
  178. package/libs/instance-factories/views/templates/react/react-component-generator.d.ts.map +0 -1
  179. package/libs/instance-factories/views/templates/react/react-component-generator.js +0 -398
  180. package/libs/instance-factories/views/templates/react/react-component-generator.js.map +0 -1
  181. package/libs/instance-factories/views/templates/react/react-component-generator.ts +0 -533
  182. package/libs/instance-factories/views/templates/react/router-generator.ts +0 -197
  183. package/libs/instance-factories/views/templates/react/router-generic-generator.ts +0 -132
  184. package/libs/instance-factories/views/templates/react/shared-utils-generator.ts +0 -196
  185. package/libs/instance-factories/views/templates/react/spec-json-generator.ts +0 -17
  186. package/libs/instance-factories/views/templates/react/types-generator.ts +0 -76
  187. package/libs/instance-factories/views/templates/react/views-metadata-generator.ts +0 -42
  188. package/libs/instance-factories/views/templates/react/vite-config-generator.ts +0 -38
  189. package/libs/instance-factories/views/templates/runtime/runtime-view-renderer.d.ts.map +0 -1
  190. package/libs/instance-factories/views/templates/runtime/runtime-view-renderer.js.map +0 -1
  191. package/libs/instance-factories/views/templates/runtime/runtime-view-renderer.ts +0 -474
  192. package/libs/instance-factories/views/templates/shared/__tests__/composite-patterns.test.ts +0 -242
  193. package/libs/instance-factories/views/templates/shared/adapter-types.d.ts +0 -77
  194. package/libs/instance-factories/views/templates/shared/adapter-types.d.ts.map +0 -1
  195. package/libs/instance-factories/views/templates/shared/adapter-types.js +0 -47
  196. package/libs/instance-factories/views/templates/shared/adapter-types.js.map +0 -1
  197. package/libs/instance-factories/views/templates/shared/adapter-types.ts +0 -142
  198. package/libs/instance-factories/views/templates/shared/atomic-components-registry.d.ts +0 -63
  199. package/libs/instance-factories/views/templates/shared/atomic-components-registry.d.ts.map +0 -1
  200. package/libs/instance-factories/views/templates/shared/atomic-components-registry.js +0 -822
  201. package/libs/instance-factories/views/templates/shared/atomic-components-registry.js.map +0 -1
  202. package/libs/instance-factories/views/templates/shared/atomic-components-registry.ts +0 -908
  203. package/libs/instance-factories/views/templates/shared/base-generator.d.ts +0 -247
  204. package/libs/instance-factories/views/templates/shared/base-generator.d.ts.map +0 -1
  205. package/libs/instance-factories/views/templates/shared/base-generator.js +0 -363
  206. package/libs/instance-factories/views/templates/shared/base-generator.js.map +0 -1
  207. package/libs/instance-factories/views/templates/shared/base-generator.ts +0 -608
  208. package/libs/instance-factories/views/templates/shared/component-metadata.d.ts +0 -254
  209. package/libs/instance-factories/views/templates/shared/component-metadata.d.ts.map +0 -1
  210. package/libs/instance-factories/views/templates/shared/component-metadata.js +0 -602
  211. package/libs/instance-factories/views/templates/shared/component-metadata.js.map +0 -1
  212. package/libs/instance-factories/views/templates/shared/component-metadata.ts +0 -803
  213. package/libs/instance-factories/views/templates/shared/composite-pattern-types.ts +0 -250
  214. package/libs/instance-factories/views/templates/shared/composite-patterns.ts +0 -535
  215. package/libs/instance-factories/views/templates/shared/index.ts +0 -68
  216. package/libs/instance-factories/views/templates/shared/pattern-validator.ts +0 -279
  217. package/libs/instance-factories/views/templates/shared/property-mapper.d.ts +0 -149
  218. package/libs/instance-factories/views/templates/shared/property-mapper.d.ts.map +0 -1
  219. package/libs/instance-factories/views/templates/shared/property-mapper.js +0 -580
  220. package/libs/instance-factories/views/templates/shared/property-mapper.js.map +0 -1
  221. package/libs/instance-factories/views/templates/shared/property-mapper.ts +0 -700
  222. package/libs/instance-factories/views/templates/shared/syntax-mapper.d.ts +0 -143
  223. package/libs/instance-factories/views/templates/shared/syntax-mapper.d.ts.map +0 -1
  224. package/libs/instance-factories/views/templates/shared/syntax-mapper.js +0 -420
  225. package/libs/instance-factories/views/templates/shared/syntax-mapper.js.map +0 -1
  226. package/libs/instance-factories/views/templates/shared/syntax-mapper.ts +0 -539
@@ -47,10 +47,12 @@ export declare function transpileQuintFile(content: string, entity: string, file
47
47
  * Generate a TypeScript guards module from transpiled guards.
48
48
  *
49
49
  * `stateVars` is the list of Quint module-level `var` declarations the
50
- * guards reference. When omitted, falls back to a minimal hard-coded
51
- * set but callers should pass the real list from `extractStateVariables`.
50
+ * guards reference. Callers must supply it usually via
51
+ * `extractStateVariables(entitiesDir)`. Passing an empty list is an
52
+ * error: if no state vars exist, there's nothing for the transpiled
53
+ * guards to read from, and the resulting module is pointless.
52
54
  */
53
- export declare function generateGuardsModule(guards: TranspiledGuard[], stateVars?: string[]): string;
55
+ export declare function generateGuardsModule(guards: TranspiledGuard[], stateVars: string[]): string;
54
56
  export interface TranspiledAction {
55
57
  name: string;
56
58
  params: string;
@@ -1 +1 @@
1
- {"version":3,"file":"quint-transpiler.d.ts","sourceRoot":"","sources":["../../src/inference/quint-transpiler.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAKH,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,UAAU,GAAG,WAAW,CAAC;IAC/B,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf;;;;;OAKG;IACH,YAAY,EAAE,MAAM,EAAE,CAAC;CACxB;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,WAAW,EAAE,MAAM,GAAG,eAAe,EAAE,CAqB5E;AAED;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,EAAE,CA2BnE;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,eAAe,EAAE,CAoFvG;AAqBD;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,eAAe,EAAE,EACzB,SAAS,CAAC,EAAE,MAAM,EAAE,GACnB,MAAM,CA4FR;AAID,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,gBAAgB,EAAE,CA8BtG;AA+HD;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,gBAAgB,EAAE,GAAG,MAAM,CAiBzE"}
1
+ {"version":3,"file":"quint-transpiler.d.ts","sourceRoot":"","sources":["../../src/inference/quint-transpiler.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAKH,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,UAAU,GAAG,WAAW,CAAC;IAC/B,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf;;;;;OAKG;IACH,YAAY,EAAE,MAAM,EAAE,CAAC;CACxB;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,WAAW,EAAE,MAAM,GAAG,eAAe,EAAE,CAqB5E;AAED;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,EAAE,CA2BnE;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,eAAe,EAAE,CAoFvG;AAqBD;;;;;;;;GAQG;AACH,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,eAAe,EAAE,EACzB,SAAS,EAAE,MAAM,EAAE,GAClB,MAAM,CAiGR;AAID,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,gBAAgB,EAAE,CA8BtG;AA+HD;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,gBAAgB,EAAE,GAAG,MAAM,CAiBzE"}
@@ -177,12 +177,20 @@ function extractGuardDependencies(body, fileStateVars) {
177
177
  * Generate a TypeScript guards module from transpiled guards.
178
178
  *
179
179
  * `stateVars` is the list of Quint module-level `var` declarations the
180
- * guards reference. When omitted, falls back to a minimal hard-coded
181
- * set but callers should pass the real list from `extractStateVariables`.
180
+ * guards reference. Callers must supply it usually via
181
+ * `extractStateVariables(entitiesDir)`. Passing an empty list is an
182
+ * error: if no state vars exist, there's nothing for the transpiled
183
+ * guards to read from, and the resulting module is pointless.
182
184
  */
183
185
  export function generateGuardsModule(guards, stateVars) {
184
186
  if (guards.length === 0)
185
187
  return '// No guards generated\nexport {};\n';
188
+ if (!stateVars || stateVars.length === 0) {
189
+ throw new Error('generateGuardsModule requires a non-empty stateVars list. ' +
190
+ 'Call extractStateVariables(entitiesDir) and pass the result. ' +
191
+ 'An empty list means no Quint module declares any `var`, which ' +
192
+ 'would make the generated guards module unable to read any state.');
193
+ }
186
194
  // Deduplicate by name — multiple modules may define the same invariant
187
195
  // (e.g. invariants.qnt and rules.qnt). First occurrence wins.
188
196
  const seen = new Set();
@@ -195,16 +203,13 @@ export function generateGuardsModule(guards, stateVars) {
195
203
  });
196
204
  const functions = guards.filter(g => g.kind === 'function');
197
205
  const invariants = guards.filter(g => g.kind === 'invariant');
198
- const candidateStateVars = stateVars && stateVars.length > 0
199
- ? stateVars
200
- : ['models', 'controllers', 'services', 'views', 'events', 'deployments', 'commands', 'conventions', 'measures'];
201
206
  // Only declare state vars the surviving guards actually reference —
202
207
  // otherwise `noUnusedLocals` flags declarations for vars whose only
203
208
  // consumer was a deduplicated guard. Exclude dot-prefixed matches
204
209
  // (`d.channels` is a field access on a lambda parameter, not the
205
210
  // module-level `channels` state variable).
206
211
  const guardBodies = guards.map(g => g.typescript).join('\n');
207
- const resolvedStateVars = candidateStateVars.filter(v => new RegExp(`(?<![\\w.])${v}\\b`).test(guardBodies));
212
+ const resolvedStateVars = stateVars.filter(v => new RegExp(`(?<![\\w.])${v}\\b`).test(guardBodies));
208
213
  const declarations = resolvedStateVars.map(v => `let ${v}: any[] = [];`);
209
214
  const assignments = resolvedStateVars.map(v => ` ${v} = snapshot?.${v} ?? [];`);
210
215
  const lines = [
@@ -1 +1 @@
1
- {"version":3,"file":"quint-transpiler.js","sourceRoot":"","sources":["../../src/inference/quint-transpiler.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"quint-transpiler.js","sourceRoot":"","sources":["../../src/inference/quint-transpiler.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,110 @@
1
+ async function generate(context) {
2
+ const models = Object.keys(context.spec.models ?? {});
3
+ const imports = buildImports(models);
4
+ const navEntries = buildNavEntries(models);
5
+ const viewSwitch = buildViewSwitch(models);
6
+ return `/**
7
+ * App.tsx \u2014 generated by @specverse/realize (ReactAppStarter)
8
+ *
9
+ * Safe to edit. Edits are preserved across regeneration via content
10
+ * hashing. This is a minimal shell: a sidebar listing every
11
+ * (model, view-type) plus a main area that renders the selection.
12
+ * Swap in react-router or your preferred routing library when the
13
+ * app needs URL-driven navigation.
14
+ */
15
+ import { useState } from 'react';
16
+ import { QueryClient, QueryClientProvider } from '@tanstack/react-query';
17
+ ${imports}
18
+
19
+ const queryClient = new QueryClient({
20
+ defaultOptions: {
21
+ queries: { staleTime: 5 * 60 * 1000, retry: 1 },
22
+ },
23
+ });
24
+
25
+ type Selection = {
26
+ model: string;
27
+ view: 'list' | 'detail' | 'form' | 'dashboard';
28
+ entityId?: string | number;
29
+ };
30
+
31
+ function Inner() {
32
+ const [selection, setSelection] = useState<Selection>(${models.length > 0 ? `{ model: '${models[0]}', view: 'list' }` : `{ model: '', view: 'list' }`});
33
+
34
+ const select = (model: string, view: Selection['view']) =>
35
+ setSelection({ model, view });
36
+
37
+ return (
38
+ <div className="min-h-screen flex bg-gray-50 dark:bg-gray-950">
39
+ <aside className="w-64 shrink-0 border-r border-gray-200 dark:border-gray-800 bg-white dark:bg-gray-900">
40
+ <div className="p-4 border-b border-gray-200 dark:border-gray-800">
41
+ <h1 className="text-lg font-semibold text-gray-900 dark:text-gray-100">App</h1>
42
+ </div>
43
+ <nav className="p-2 space-y-4">
44
+ ${navEntries}
45
+ </nav>
46
+ </aside>
47
+
48
+ <main className="flex-1 overflow-auto">
49
+ ${viewSwitch}
50
+ </main>
51
+ </div>
52
+ );
53
+ }
54
+
55
+ export default function App() {
56
+ return (
57
+ <QueryClientProvider client={queryClient}>
58
+ <Inner />
59
+ </QueryClientProvider>
60
+ );
61
+ }
62
+ `;
63
+ }
64
+ function buildImports(models) {
65
+ return models.flatMap((m) => [
66
+ `import { ${m}ListView } from './views/${m}ListView';`,
67
+ `import { ${m}DetailView } from './views/${m}DetailView';`,
68
+ `import { ${m}FormView } from './views/${m}FormView';`,
69
+ `import { ${m}DashboardView } from './views/${m}DashboardView';`
70
+ ]).join("\n");
71
+ }
72
+ function buildNavEntries(models) {
73
+ if (models.length === 0) {
74
+ return ' <p className="text-sm text-gray-400 px-2">No models in this spec.</p>';
75
+ }
76
+ return models.map((m) => ` <div>
77
+ <div className="px-2 pb-1 text-xs font-semibold uppercase tracking-wider text-gray-500 dark:text-gray-400">
78
+ ${m}
79
+ </div>
80
+ <button type="button" onClick={() => select('${m}', 'list')} className="${navButtonCls("list")}">List</button>
81
+ <button type="button" onClick={() => select('${m}', 'dashboard')} className="${navButtonCls("dashboard")}">Dashboard</button>
82
+ <button type="button" onClick={() => select('${m}', 'form')} className="${navButtonCls("form")}">New</button>
83
+ </div>`).join("\n");
84
+ }
85
+ function navButtonCls(_view) {
86
+ return "block w-full text-left rounded px-2 py-1 text-sm text-gray-700 hover:bg-gray-100 dark:text-gray-300 dark:hover:bg-gray-800";
87
+ }
88
+ function buildViewSwitch(models) {
89
+ if (models.length === 0) {
90
+ return ' <p className="p-6 text-sm text-gray-400">No models \u2014 add one to your .specly file and run <code>spv realize</code>.</p>';
91
+ }
92
+ const branches = models.flatMap((m) => [
93
+ ` {selection.model === '${m}' && selection.view === 'list' && (
94
+ <${m}ListView onSelect={item => setSelection({ model: '${m}', view: 'detail', entityId: (item as any).id })} onCreate={() => setSelection({ model: '${m}', view: 'form' })} />
95
+ )}`,
96
+ ` {selection.model === '${m}' && selection.view === 'detail' && selection.entityId !== undefined && (
97
+ <${m}DetailView entityId={selection.entityId} onEdit={item => setSelection({ model: '${m}', view: 'form', entityId: (item as any).id })} onBack={() => setSelection({ model: '${m}', view: 'list' })} onDeleted={() => setSelection({ model: '${m}', view: 'list' })} />
98
+ )}`,
99
+ ` {selection.model === '${m}' && selection.view === 'form' && (
100
+ <${m}FormView mode={selection.entityId ? 'update' : 'create'} entityId={selection.entityId} onSuccess={() => setSelection({ model: '${m}', view: 'list' })} onCancel={() => setSelection({ model: '${m}', view: 'list' })} />
101
+ )}`,
102
+ ` {selection.model === '${m}' && selection.view === 'dashboard' && (
103
+ <${m}DashboardView onSelect={item => setSelection({ model: '${m}', view: 'detail', entityId: (item as any).id })} />
104
+ )}`
105
+ ]);
106
+ return branches.join("\n");
107
+ }
108
+ export {
109
+ generate
110
+ };
@@ -0,0 +1,121 @@
1
+ import { METADATA_FIELDS } from "@specverse/runtime/views/core";
2
+ const METADATA_FIELD_NAMES = new Set(METADATA_FIELDS);
3
+ function composeDashboardBody(context) {
4
+ const modelName = context.model.name;
5
+ const previewColumns = inferPreviewColumns(context.model);
6
+ const enumFields = inferEnumFields(context.model);
7
+ const lines = [];
8
+ lines.push('<div className="grid grid-cols-1 gap-4 sm:grid-cols-2 lg:grid-cols-4">');
9
+ lines.push(...renderTotalCard(modelName));
10
+ for (const enumField of enumFields) {
11
+ lines.push(...renderEnumBreakdownCard(enumField));
12
+ }
13
+ if (enumFields.length === 0) {
14
+ lines.push(...renderPlaceholderCard());
15
+ }
16
+ lines.push("</div>");
17
+ lines.push("");
18
+ lines.push("{/* TODO: add aggregation metrics (averages / sums / time series)");
19
+ lines.push(" by adding backend endpoints and per-metric hooks. Wire them in");
20
+ lines.push(" alongside the count cards above. */}");
21
+ lines.push("");
22
+ lines.push('<div className="rounded-lg border border-gray-200 bg-white dark:border-gray-700 dark:bg-gray-900">');
23
+ lines.push(' <div className="border-b border-gray-200 dark:border-gray-700 px-6 py-3">');
24
+ lines.push(' <h3 className="text-sm font-semibold text-gray-700 dark:text-gray-200 uppercase tracking-wider">');
25
+ lines.push(` Recent ${humanize(modelName)}s`);
26
+ lines.push(" </h3>");
27
+ lines.push(" </div>");
28
+ if (previewColumns.length === 0) {
29
+ lines.push(' <div className="px-6 py-4 text-sm text-gray-400">No displayable fields.</div>');
30
+ } else {
31
+ lines.push(' <table className="min-w-full divide-y divide-gray-200 dark:divide-gray-700">');
32
+ lines.push(" <thead>");
33
+ lines.push(" <tr>");
34
+ for (const col of previewColumns) {
35
+ lines.push(
36
+ ` <th className="px-6 py-3 text-left text-xs font-medium text-gray-500 dark:text-gray-400 uppercase tracking-wider">` + humanize(col) + `</th>`
37
+ );
38
+ }
39
+ lines.push(" </tr>");
40
+ lines.push(" </thead>");
41
+ lines.push(' <tbody className="divide-y divide-gray-200 dark:divide-gray-700">');
42
+ lines.push(" {preview.map((item, idx) => (");
43
+ lines.push(" <tr");
44
+ lines.push(" key={idx}");
45
+ lines.push(" onClick={() => onSelect?.(item)}");
46
+ lines.push(' className="hover:bg-gray-50 dark:hover:bg-gray-800 cursor-pointer"');
47
+ lines.push(" >");
48
+ for (const col of previewColumns) {
49
+ lines.push(
50
+ ` <td className="px-6 py-4 text-sm text-gray-700 dark:text-gray-300">{String((item as any).${col} ?? '')}</td>`
51
+ );
52
+ }
53
+ lines.push(" </tr>");
54
+ lines.push(" ))}");
55
+ lines.push(" {preview.length === 0 && (");
56
+ lines.push(` <tr><td colSpan={${previewColumns.length}} className="px-6 py-4 text-sm text-gray-400">No records yet.</td></tr>`);
57
+ lines.push(" )}");
58
+ lines.push(" </tbody>");
59
+ lines.push(" </table>");
60
+ }
61
+ lines.push("</div>");
62
+ return lines.join("\n");
63
+ }
64
+ function renderTotalCard(modelName) {
65
+ const pluralLower = humanize(modelName).toLowerCase() + "s";
66
+ return [
67
+ ' <div className="rounded-lg border border-gray-200 bg-white p-6 shadow-sm dark:border-gray-700 dark:bg-gray-900">',
68
+ ' <p className="text-xs font-medium uppercase tracking-wide text-gray-500 dark:text-gray-400">',
69
+ ` Total ${pluralLower}`,
70
+ " </p>",
71
+ ' <p className="mt-2 text-3xl font-semibold text-gray-900 dark:text-gray-100">',
72
+ " {items.length}",
73
+ " </p>",
74
+ " </div>"
75
+ ];
76
+ }
77
+ function renderEnumBreakdownCard(field) {
78
+ const cards = [];
79
+ for (const value of field.values) {
80
+ cards.push(
81
+ ' <div className="rounded-lg border border-gray-200 bg-white p-6 shadow-sm dark:border-gray-700 dark:bg-gray-900">',
82
+ ' <p className="text-xs font-medium uppercase tracking-wide text-gray-500 dark:text-gray-400">',
83
+ ` ${humanize(field.name)}: ${humanize(value)}`,
84
+ " </p>",
85
+ ' <p className="mt-2 text-3xl font-semibold text-gray-900 dark:text-gray-100">',
86
+ ` {items.filter((i: any) => i.${field.name} === ${JSON.stringify(value)}).length}`,
87
+ " </p>",
88
+ " </div>"
89
+ );
90
+ }
91
+ return cards;
92
+ }
93
+ function renderPlaceholderCard() {
94
+ return [
95
+ ' <div className="rounded-lg border border-dashed border-gray-300 p-6 text-sm text-gray-400 dark:border-gray-600">',
96
+ " Add a metric here \u2014 e.g. a sum, average, or time-windowed count.",
97
+ " </div>"
98
+ ];
99
+ }
100
+ function inferEnumFields(model) {
101
+ const out = [];
102
+ const attrs = model.attributes ?? {};
103
+ for (const [name, rawDef] of Object.entries(attrs)) {
104
+ const def = rawDef;
105
+ const values = def?.values;
106
+ if (Array.isArray(values) && values.length > 0 && values.length <= 6) {
107
+ out.push({ name, values });
108
+ }
109
+ }
110
+ return out.slice(0, 1);
111
+ }
112
+ function inferPreviewColumns(model) {
113
+ const attrs = model.attributes ?? {};
114
+ return Object.keys(attrs).filter((n) => !METADATA_FIELD_NAMES.has(n)).slice(0, 4);
115
+ }
116
+ function humanize(name) {
117
+ return name.replace(/([A-Z])/g, " $1").replace(/^./, (c) => c.toUpperCase()).trim();
118
+ }
119
+ export {
120
+ composeDashboardBody
121
+ };
@@ -0,0 +1,78 @@
1
+ import { METADATA_FIELDS } from "@specverse/runtime/views/core";
2
+ const METADATA_FIELD_NAMES = new Set(METADATA_FIELDS);
3
+ function composeDetailBody(context) {
4
+ const { business, metadata } = partitionFields(context.model);
5
+ const belongsTo = extractBelongsTo(context.model);
6
+ const lines = [];
7
+ lines.push('<div className="rounded-lg border border-gray-200 bg-white p-6 dark:border-gray-700 dark:bg-gray-900">');
8
+ if (business.length > 0) {
9
+ lines.push(' <dl className="grid grid-cols-1 gap-4 sm:grid-cols-2">');
10
+ for (const field of business) {
11
+ lines.push(...renderField(field, { muted: false }));
12
+ }
13
+ lines.push(" </dl>");
14
+ } else {
15
+ lines.push(' <p className="text-sm text-gray-400">No business fields defined for this model.</p>');
16
+ }
17
+ if (belongsTo.length > 0) {
18
+ lines.push("");
19
+ lines.push(" {/* TODO: resolve FK ids \u2192 related entity display names.");
20
+ lines.push(" See @specverse/runtime/views/core/entity-display for the");
21
+ lines.push(" canonical resolver, or load the related record in a hook. */}");
22
+ lines.push(' <dl className="mt-6 grid grid-cols-1 gap-4 sm:grid-cols-2 border-t border-gray-200 dark:border-gray-700 pt-4">');
23
+ for (const rel of belongsTo) {
24
+ lines.push(...renderField({ name: `${rel}Id`, label: humanize(rel) }, { muted: false }));
25
+ }
26
+ lines.push(" </dl>");
27
+ }
28
+ if (metadata.length > 0) {
29
+ lines.push("");
30
+ lines.push(' <dl className="mt-6 grid grid-cols-1 gap-2 sm:grid-cols-2 border-t border-gray-200 dark:border-gray-700 pt-4 text-xs text-gray-500 dark:text-gray-400">');
31
+ for (const field of metadata) {
32
+ lines.push(...renderField(field, { muted: true }));
33
+ }
34
+ lines.push(" </dl>");
35
+ }
36
+ lines.push("</div>");
37
+ return lines.join("\n");
38
+ }
39
+ function partitionFields(model) {
40
+ const attrs = Object.keys(model.attributes ?? {});
41
+ const business = [];
42
+ const metadata = [];
43
+ for (const name of attrs) {
44
+ const field = { name, label: humanize(name) };
45
+ if (METADATA_FIELD_NAMES.has(name)) {
46
+ metadata.push(field);
47
+ } else {
48
+ business.push(field);
49
+ }
50
+ }
51
+ return { business, metadata };
52
+ }
53
+ function extractBelongsTo(model) {
54
+ const rels = model.relationships ?? {};
55
+ const out = [];
56
+ for (const [name, def] of Object.entries(rels)) {
57
+ const d = def;
58
+ if (d?.type === "belongsTo") out.push(name);
59
+ }
60
+ return out;
61
+ }
62
+ function renderField(field, opts) {
63
+ const label = field.label ?? humanize(field.name);
64
+ const labelCls = opts.muted ? "font-medium uppercase tracking-wide text-gray-400 dark:text-gray-500" : "text-sm font-medium text-gray-500 dark:text-gray-400";
65
+ const valueCls = opts.muted ? "text-gray-500 dark:text-gray-400" : "mt-1 text-sm text-gray-900 dark:text-gray-100 break-words";
66
+ return [
67
+ " <div>",
68
+ ` <dt className="${labelCls}">${label}</dt>`,
69
+ ` <dd className="${valueCls}">{String((item as any).${field.name} ?? '')}</dd>`,
70
+ " </div>"
71
+ ];
72
+ }
73
+ function humanize(name) {
74
+ return name.replace(/([A-Z])/g, " $1").replace(/^./, (c) => c.toUpperCase()).trim();
75
+ }
76
+ export {
77
+ composeDetailBody
78
+ };