callman-core 1.29.0 → 1.31.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 (218) hide show
  1. package/dist/ai/prompts/diagram.d.ts.map +1 -1
  2. package/dist/ai/prompts/diagram.js +24 -7
  3. package/dist/ai/prompts/diagram.js.map +1 -1
  4. package/dist/ai/types.d.ts +1 -1
  5. package/dist/ai/types.d.ts.map +1 -1
  6. package/dist/diagram/componentCatalog.d.ts +3 -0
  7. package/dist/diagram/componentCatalog.d.ts.map +1 -1
  8. package/dist/diagram/componentCatalog.js +5 -1
  9. package/dist/diagram/componentCatalog.js.map +1 -1
  10. package/dist/diagram/database/derive.d.ts +14 -0
  11. package/dist/diagram/database/derive.d.ts.map +1 -0
  12. package/dist/diagram/database/derive.js +114 -0
  13. package/dist/diagram/database/derive.js.map +1 -0
  14. package/dist/diagram/database/diff.d.ts +48 -0
  15. package/dist/diagram/database/diff.d.ts.map +1 -0
  16. package/dist/diagram/database/diff.js +109 -0
  17. package/dist/diagram/database/diff.js.map +1 -0
  18. package/dist/diagram/database/edit.d.ts +113 -0
  19. package/dist/diagram/database/edit.d.ts.map +1 -0
  20. package/dist/diagram/database/edit.js +359 -0
  21. package/dist/diagram/database/edit.js.map +1 -0
  22. package/dist/diagram/database/fromSchema.d.ts +12 -0
  23. package/dist/diagram/database/fromSchema.d.ts.map +1 -0
  24. package/dist/diagram/database/fromSchema.js +182 -0
  25. package/dist/diagram/database/fromSchema.js.map +1 -0
  26. package/dist/diagram/database/index.d.ts +9 -0
  27. package/dist/diagram/database/index.d.ts.map +1 -0
  28. package/dist/diagram/database/index.js +14 -0
  29. package/dist/diagram/database/index.js.map +1 -0
  30. package/dist/diagram/database/model.d.ts +93 -0
  31. package/dist/diagram/database/model.d.ts.map +1 -0
  32. package/dist/diagram/database/model.js +294 -0
  33. package/dist/diagram/database/model.js.map +1 -0
  34. package/dist/diagram/database/patch.d.ts +14 -0
  35. package/dist/diagram/database/patch.d.ts.map +1 -0
  36. package/dist/diagram/database/patch.js +186 -0
  37. package/dist/diagram/database/patch.js.map +1 -0
  38. package/dist/diagram/database/place.d.ts +4 -0
  39. package/dist/diagram/database/place.d.ts.map +1 -0
  40. package/dist/diagram/database/place.js +22 -0
  41. package/dist/diagram/database/place.js.map +1 -0
  42. package/dist/diagram/database/types.d.ts +50 -0
  43. package/dist/diagram/database/types.d.ts.map +1 -0
  44. package/dist/diagram/database/types.js +106 -0
  45. package/dist/diagram/database/types.js.map +1 -0
  46. package/dist/diagram/index.d.ts +1 -0
  47. package/dist/diagram/index.d.ts.map +1 -1
  48. package/dist/diagram/index.js +1 -0
  49. package/dist/diagram/index.js.map +1 -1
  50. package/dist/diagram/layout.d.ts +1 -0
  51. package/dist/diagram/layout.d.ts.map +1 -1
  52. package/dist/diagram/layout.js +2 -1
  53. package/dist/diagram/layout.js.map +1 -1
  54. package/dist/diagram/ops.d.ts +1 -1
  55. package/dist/diagram/ops.d.ts.map +1 -1
  56. package/dist/diagram/ops.js +42 -0
  57. package/dist/diagram/ops.js.map +1 -1
  58. package/dist/diagram/opsReference.d.ts +1 -1
  59. package/dist/diagram/opsReference.d.ts.map +1 -1
  60. package/dist/diagram/opsReference.js +9 -0
  61. package/dist/diagram/opsReference.js.map +1 -1
  62. package/dist/diagram/patchInput.d.ts +65 -1
  63. package/dist/diagram/patchInput.d.ts.map +1 -1
  64. package/dist/diagram/patchInput.js +414 -11
  65. package/dist/diagram/patchInput.js.map +1 -1
  66. package/dist/diagram/schema.d.ts +2 -2
  67. package/dist/diagram/schema.d.ts.map +1 -1
  68. package/dist/diagram/schema.js +3 -3
  69. package/dist/diagram/schema.js.map +1 -1
  70. package/dist/diagram/views.d.ts +13 -0
  71. package/dist/diagram/views.d.ts.map +1 -1
  72. package/dist/diagram/views.js +49 -0
  73. package/dist/diagram/views.js.map +1 -1
  74. package/dist/host/db/introspection/index.d.ts +9 -0
  75. package/dist/host/db/introspection/index.d.ts.map +1 -0
  76. package/dist/host/db/introspection/index.js +35 -0
  77. package/dist/host/db/introspection/index.js.map +1 -0
  78. package/dist/host/db/introspection/mongo.d.ts +7 -0
  79. package/dist/host/db/introspection/mongo.d.ts.map +1 -0
  80. package/dist/host/db/introspection/mongo.js +183 -0
  81. package/dist/host/db/introspection/mongo.js.map +1 -0
  82. package/dist/host/db/introspection/mssql.d.ts +6 -0
  83. package/dist/host/db/introspection/mssql.d.ts.map +1 -0
  84. package/dist/host/db/introspection/mssql.js +211 -0
  85. package/dist/host/db/introspection/mssql.js.map +1 -0
  86. package/dist/host/db/introspection/mysql.d.ts +5 -0
  87. package/dist/host/db/introspection/mysql.d.ts.map +1 -0
  88. package/dist/host/db/introspection/mysql.js +163 -0
  89. package/dist/host/db/introspection/mysql.js.map +1 -0
  90. package/dist/host/db/introspection/oracle.d.ts +12 -0
  91. package/dist/host/db/introspection/oracle.d.ts.map +1 -0
  92. package/dist/host/db/introspection/oracle.js +225 -0
  93. package/dist/host/db/introspection/oracle.js.map +1 -0
  94. package/dist/host/db/introspection/postgres.d.ts +5 -0
  95. package/dist/host/db/introspection/postgres.d.ts.map +1 -0
  96. package/dist/host/db/introspection/postgres.js +172 -0
  97. package/dist/host/db/introspection/postgres.js.map +1 -0
  98. package/dist/host/db/introspection/shared.d.ts +29 -0
  99. package/dist/host/db/introspection/shared.d.ts.map +1 -0
  100. package/dist/host/db/introspection/shared.js +119 -0
  101. package/dist/host/db/introspection/shared.js.map +1 -0
  102. package/dist/host/db/introspection/types.d.ts +58 -0
  103. package/dist/host/db/introspection/types.d.ts.map +1 -0
  104. package/dist/host/db/introspection/types.js +6 -0
  105. package/dist/host/db/introspection/types.js.map +1 -0
  106. package/dist/host/db/mongoAdapter.d.ts +1 -0
  107. package/dist/host/db/mongoAdapter.d.ts.map +1 -1
  108. package/dist/host/db/mongoAdapter.js +13 -0
  109. package/dist/host/db/mongoAdapter.js.map +1 -1
  110. package/dist/host/db/mssqlAdapter.d.ts +1 -0
  111. package/dist/host/db/mssqlAdapter.d.ts.map +1 -1
  112. package/dist/host/db/mssqlAdapter.js +3 -1
  113. package/dist/host/db/mssqlAdapter.js.map +1 -1
  114. package/dist/host/db/mysqlAdapter.d.ts +1 -0
  115. package/dist/host/db/mysqlAdapter.d.ts.map +1 -1
  116. package/dist/host/db/mysqlAdapter.js +11 -0
  117. package/dist/host/db/mysqlAdapter.js.map +1 -1
  118. package/dist/host/db/oracleAdapter.d.ts +1 -0
  119. package/dist/host/db/oracleAdapter.d.ts.map +1 -1
  120. package/dist/host/db/oracleAdapter.js +22 -0
  121. package/dist/host/db/oracleAdapter.js.map +1 -1
  122. package/dist/host/db/postgresAdapter.d.ts +1 -0
  123. package/dist/host/db/postgresAdapter.d.ts.map +1 -1
  124. package/dist/host/db/postgresAdapter.js +13 -0
  125. package/dist/host/db/postgresAdapter.js.map +1 -1
  126. package/dist/host/db/queryExecutor.d.ts +2 -1
  127. package/dist/host/db/queryExecutor.d.ts.map +1 -1
  128. package/dist/host/db/queryExecutor.js +1 -1
  129. package/dist/host/db/queryExecutor.js.map +1 -1
  130. package/dist/host/index.d.ts +7 -0
  131. package/dist/host/index.d.ts.map +1 -1
  132. package/dist/host/index.js +9 -0
  133. package/dist/host/index.js.map +1 -1
  134. package/dist/index.d.ts +2 -0
  135. package/dist/index.d.ts.map +1 -1
  136. package/dist/index.js +2 -0
  137. package/dist/index.js.map +1 -1
  138. package/dist/ui-test/commands.d.ts +54 -0
  139. package/dist/ui-test/commands.d.ts.map +1 -0
  140. package/dist/ui-test/commands.js +436 -0
  141. package/dist/ui-test/commands.js.map +1 -0
  142. package/dist/ui-test/flow-lint.d.ts +43 -0
  143. package/dist/ui-test/flow-lint.d.ts.map +1 -0
  144. package/dist/ui-test/flow-lint.js +229 -0
  145. package/dist/ui-test/flow-lint.js.map +1 -0
  146. package/dist-cjs/ai/prompts/diagram.js +23 -6
  147. package/dist-cjs/ai/prompts/diagram.js.map +1 -1
  148. package/dist-cjs/diagram/componentCatalog.js +5 -1
  149. package/dist-cjs/diagram/componentCatalog.js.map +1 -1
  150. package/dist-cjs/diagram/database/derive.js +119 -0
  151. package/dist-cjs/diagram/database/derive.js.map +1 -0
  152. package/dist-cjs/diagram/database/diff.js +115 -0
  153. package/dist-cjs/diagram/database/diff.js.map +1 -0
  154. package/dist-cjs/diagram/database/edit.js +366 -0
  155. package/dist-cjs/diagram/database/edit.js.map +1 -0
  156. package/dist-cjs/diagram/database/fromSchema.js +188 -0
  157. package/dist-cjs/diagram/database/fromSchema.js.map +1 -0
  158. package/dist-cjs/diagram/database/index.js +32 -0
  159. package/dist-cjs/diagram/database/index.js.map +1 -0
  160. package/dist-cjs/diagram/database/model.js +311 -0
  161. package/dist-cjs/diagram/database/model.js.map +1 -0
  162. package/dist-cjs/diagram/database/patch.js +190 -0
  163. package/dist-cjs/diagram/database/patch.js.map +1 -0
  164. package/dist-cjs/diagram/database/place.js +26 -0
  165. package/dist-cjs/diagram/database/place.js.map +1 -0
  166. package/dist-cjs/diagram/database/types.js +122 -0
  167. package/dist-cjs/diagram/database/types.js.map +1 -0
  168. package/dist-cjs/diagram/index.js +1 -0
  169. package/dist-cjs/diagram/index.js.map +1 -1
  170. package/dist-cjs/diagram/layout.js +3 -2
  171. package/dist-cjs/diagram/layout.js.map +1 -1
  172. package/dist-cjs/diagram/ops.js +42 -0
  173. package/dist-cjs/diagram/ops.js.map +1 -1
  174. package/dist-cjs/diagram/opsReference.js +9 -0
  175. package/dist-cjs/diagram/opsReference.js.map +1 -1
  176. package/dist-cjs/diagram/patchInput.js +414 -11
  177. package/dist-cjs/diagram/patchInput.js.map +1 -1
  178. package/dist-cjs/diagram/schema.js +3 -3
  179. package/dist-cjs/diagram/schema.js.map +1 -1
  180. package/dist-cjs/diagram/views.js +51 -1
  181. package/dist-cjs/diagram/views.js.map +1 -1
  182. package/dist-cjs/host/db/introspection/index.js +59 -0
  183. package/dist-cjs/host/db/introspection/index.js.map +1 -0
  184. package/dist-cjs/host/db/introspection/mongo.js +189 -0
  185. package/dist-cjs/host/db/introspection/mongo.js.map +1 -0
  186. package/dist-cjs/host/db/introspection/mssql.js +216 -0
  187. package/dist-cjs/host/db/introspection/mssql.js.map +1 -0
  188. package/dist-cjs/host/db/introspection/mysql.js +167 -0
  189. package/dist-cjs/host/db/introspection/mysql.js.map +1 -0
  190. package/dist-cjs/host/db/introspection/oracle.js +230 -0
  191. package/dist-cjs/host/db/introspection/oracle.js.map +1 -0
  192. package/dist-cjs/host/db/introspection/postgres.js +176 -0
  193. package/dist-cjs/host/db/introspection/postgres.js.map +1 -0
  194. package/dist-cjs/host/db/introspection/shared.js +133 -0
  195. package/dist-cjs/host/db/introspection/shared.js.map +1 -0
  196. package/dist-cjs/host/db/introspection/types.js +7 -0
  197. package/dist-cjs/host/db/introspection/types.js.map +1 -0
  198. package/dist-cjs/host/db/mongoAdapter.js +15 -1
  199. package/dist-cjs/host/db/mongoAdapter.js.map +1 -1
  200. package/dist-cjs/host/db/mssqlAdapter.js +5 -2
  201. package/dist-cjs/host/db/mssqlAdapter.js.map +1 -1
  202. package/dist-cjs/host/db/mysqlAdapter.js +13 -1
  203. package/dist-cjs/host/db/mysqlAdapter.js.map +1 -1
  204. package/dist-cjs/host/db/oracleAdapter.js +24 -1
  205. package/dist-cjs/host/db/oracleAdapter.js.map +1 -1
  206. package/dist-cjs/host/db/postgresAdapter.js +15 -1
  207. package/dist-cjs/host/db/postgresAdapter.js.map +1 -1
  208. package/dist-cjs/host/db/queryExecutor.js +5 -4
  209. package/dist-cjs/host/db/queryExecutor.js.map +1 -1
  210. package/dist-cjs/host/index.js +24 -1
  211. package/dist-cjs/host/index.js.map +1 -1
  212. package/dist-cjs/index.js +2 -0
  213. package/dist-cjs/index.js.map +1 -1
  214. package/dist-cjs/ui-test/commands.js +441 -0
  215. package/dist-cjs/ui-test/commands.js.map +1 -0
  216. package/dist-cjs/ui-test/flow-lint.js +235 -0
  217. package/dist-cjs/ui-test/flow-lint.js.map +1 -0
  218. package/package.json +3 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"commands.js","sourceRoot":"","sources":["../../src/ui-test/commands.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AA4DH,MAAM,GAAG,GAAqB,CAAC,KAAK,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC;AACxD,MAAM,GAAG,GAAqB,CAAC,KAAK,CAAC,CAAC;AACtC,MAAM,MAAM,GAAqB,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;AAEpD,wEAAwE;AACxE,MAAM,OAAO,GAAoB;IAC/B,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,uDAAuD,EAAE;IACtG,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,uEAAuE,EAAE;IACpH,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,8BAA8B,EAAE;IAC/E,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,qBAAqB,EAAE;IACnE,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,iBAAiB,EAAE;IACjE,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,6BAA6B,EAAE;IAC5E,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,qCAAqC,EAAE;IAC3F,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,4CAA4C,EAAE;CAC7F,CAAC;AAEF,4EAA4E;AAC5E,MAAM,eAAe,GAAoB;IACvC,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,qDAAqD,EAAE;IACxG,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,uCAAuC,EAAE;IAC1F,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,uCAAuC,EAAE;IAC1F,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,wCAAwC,EAAE;IAC5F,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,uDAAuD,EAAE;IACvG,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,uDAAuD,EAAE;IACvG,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,yDAAyD,EAAE;IAC1G,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,0DAA0D,EAAE;IAC5G,EAAE,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,mDAAmD,EAAE;CAC5G,CAAC;AAEF,MAAM,OAAO,GAAkB,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,0BAA0B,EAAE,CAAC;AAC5G,MAAM,QAAQ,GAAkB,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,mDAAmD,EAAE,CAAC;AAExI,SAAS,GAAG,CAAC,IAA0G;IACrH,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,SAAS,CAAC,EAAE,GAAG,IAAI,EAAE,CAAC;AACtD,CAAC;AAED,MAAM,CAAC,MAAM,gBAAgB,GAAiC;IAC5D,6EAA6E;IAC7E,GAAG,CAAC,EAAE,GAAG,EAAE,UAAU,EAAE,QAAQ,EAAE,YAAY,EAAE,SAAS,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,QAAQ,CAAC,EAAE,SAAS,EAAE,KAAK;QAChG,OAAO,EAAE,gCAAgC;QACzC,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,iDAAiD,EAAE,CAAC;QACvH,OAAO,EAAE,6CAA6C,EAAE,CAAC;IAC3D,GAAG,CAAC,EAAE,GAAG,EAAE,UAAU,EAAE,QAAQ,EAAE,YAAY,EAAE,SAAS,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,QAAQ,EAAE,SAAS,CAAC,EAAE,SAAS,EAAE,KAAK;QAC3G,OAAO,EAAE,2CAA2C;QACpD,IAAI,EAAE;YACJ,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,oDAAoD,EAAE;YAClH,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,iCAAiC,EAAE;YACvF,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,8BAA8B,EAAE;YACjF,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,uDAAuD,EAAE;SAC5G;QACD,OAAO,EAAE,yCAAyC,EAAE,CAAC;IACvD,GAAG,CAAC,EAAE,GAAG,EAAE,WAAW,EAAE,QAAQ,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,MAAM,EAAE,SAAS,CAAC;QAC9F,OAAO,EAAE,wEAAwE;QACjF,IAAI,EAAE;YACJ,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,oCAAoC,EAAE;YACpF,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,kCAAkC,EAAE;YACxF,EAAE,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,0CAA0C,EAAE;YACnG,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,+CAA+C,EAAE;SACnG;QACD,OAAO,EAAE,oCAAoC,EAAE,CAAC;IAClD,GAAG,CAAC,EAAE,GAAG,EAAE,cAAc,EAAE,QAAQ,EAAE,YAAY,EAAE,SAAS,EAAE,GAAG;QAC/D,OAAO,EAAE,+BAA+B;QACxC,IAAI,EAAE;YACJ,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,yBAAyB,EAAE;YACzE,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,6CAA6C,EAAE;YAC5F,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,oBAAoB,EAAE;YACjE,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,sBAAsB,EAAE;YACrE,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,8BAA8B,EAAE;YAC5E,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,uBAAuB,EAAE;SACxE;QACD,OAAO,EAAE,4DAA4D,EAAE,CAAC;IAC1E,GAAG,CAAC,EAAE,GAAG,EAAE,SAAS,EAAE,QAAQ,EAAE,YAAY,EAAE,SAAS,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,kBAAkB,EAAE,IAAI,EAAE,EAAE,EAAE,OAAO,EAAE,WAAW,EAAE,CAAC;IAC7I,GAAG,CAAC,EAAE,GAAG,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,YAAY,EAAE,SAAS,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,MAAM,CAAC;QAC7F,OAAO,EAAE,mDAAmD,EAAE,IAAI,EAAE,EAAE,EAAE,OAAO,EAAE,UAAU,EAAE,CAAC;IAChG,GAAG,CAAC,EAAE,GAAG,EAAE,WAAW,EAAE,QAAQ,EAAE,YAAY,EAAE,SAAS,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,kBAAkB,EAAE,IAAI,EAAE,EAAE,EAAE,OAAO,EAAE,aAAa,EAAE,CAAC;IAEjJ,6EAA6E;IAC7E,GAAG,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,OAAO,CAAC,EAAE,QAAQ,EAAE,eAAe,EAAE,SAAS,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,QAAQ,EAAE,SAAS,CAAC,EAAE,SAAS,EAAE,MAAM;QAChI,OAAO,EAAE,yBAAyB;QAClC,IAAI,EAAE,CAAC,GAAG,OAAO,EAAE,GAAG,eAAe;YACnC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,0BAA0B,EAAE;YACzE,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,yBAAyB,EAAE;YACzE,QAAQ,CAAC;QACX,OAAO,EAAE,gDAAgD,EAAE,CAAC;IAC9D,GAAG,CAAC,EAAE,GAAG,EAAE,aAAa,EAAE,OAAO,EAAE,CAAC,aAAa,CAAC,EAAE,QAAQ,EAAE,eAAe,EAAE,SAAS,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,QAAQ,EAAE,SAAS,CAAC,EAAE,SAAS,EAAE,MAAM;QAC5I,OAAO,EAAE,uCAAuC,EAAE,IAAI,EAAE,CAAC,GAAG,OAAO,EAAE,QAAQ,CAAC,EAAE,OAAO,EAAE,wBAAwB,EAAE,CAAC;IACtH,GAAG,CAAC,EAAE,GAAG,EAAE,aAAa,EAAE,OAAO,EAAE,CAAC,YAAY,CAAC,EAAE,QAAQ,EAAE,eAAe,EAAE,SAAS,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,QAAQ,EAAE,SAAS,CAAC,EAAE,SAAS,EAAE,MAAM;QAC3I,OAAO,EAAE,qDAAqD,EAAE,IAAI,EAAE,CAAC,GAAG,OAAO,EAAE,QAAQ,CAAC,EAAE,OAAO,EAAE,0BAA0B,EAAE,CAAC;IACtI,GAAG,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,QAAQ,EAAE,eAAe,EAAE,SAAS,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,QAAQ,EAAE,SAAS,CAAC,EAAE,SAAS,EAAE,MAAM;QAC5G,OAAO,EAAE,iCAAiC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,qBAAqB,EAAE,CAAC;IAE9F,6EAA6E;IAC7E,GAAG,CAAC,EAAE,GAAG,EAAE,WAAW,EAAE,QAAQ,EAAE,iBAAiB,EAAE,SAAS,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,QAAQ,EAAE,SAAS,CAAC,EAAE,SAAS,EAAE,MAAM;QAClH,OAAO,EAAE,wFAAwF;QACjG,IAAI,EAAE;YACJ,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,wEAAwE,EAAE;YACvI,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,6CAA6C,EAAE;YAC9F,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,oCAAoC,EAAE;YACzF,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC;SAC5C;QACD,OAAO,EAAE,wGAAwG,EAAE,CAAC;IACtH,GAAG,CAAC,EAAE,GAAG,EAAE,UAAU,EAAE,QAAQ,EAAE,iBAAiB,EAAE,SAAS,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,QAAQ,CAAC,EAAE,SAAS,EAAE,KAAK;QACrG,OAAO,EAAE,sIAAsI;QAC/I,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,WAAW,EAAE,CAAC,EAAE,OAAO,EAAE,mBAAmB,EAAE,CAAC;IACpH,GAAG,CAAC,EAAE,GAAG,EAAE,WAAW,EAAE,OAAO,EAAE,CAAC,WAAW,CAAC,EAAE,QAAQ,EAAE,iBAAiB,EAAE,SAAS,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,MAAM,EAAE,QAAQ,CAAC,EAAE,SAAS,EAAE,OAAO;QACxI,OAAO,EAAE,2CAA2C;QACpD,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,0CAA0C,EAAE,CAAC,EAAE,OAAO,EAAE,iBAAiB,EAAE,CAAC;IACnI,GAAG,CAAC,EAAE,GAAG,EAAE,cAAc,EAAE,QAAQ,EAAE,iBAAiB,EAAE,SAAS,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,QAAQ,EAAE,SAAS,CAAC,EAAE,SAAS,EAAE,MAAM;QACrH,OAAO,EAAE,kGAAkG;QAC3G,IAAI,EAAE,CAAC,GAAG,OAAO,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,qCAAqC,EAAE,CAAC;QACxG,OAAO,EAAE,8DAA8D,EAAE,CAAC;IAC5E,GAAG,CAAC,EAAE,GAAG,EAAE,WAAW,EAAE,QAAQ,EAAE,iBAAiB,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,6CAA6C,EAAE,IAAI,EAAE,EAAE,EAAE,OAAO,EAAE,aAAa,EAAE,CAAC;IACpL,GAAG,CAAC,EAAE,GAAG,EAAE,cAAc,EAAE,QAAQ,EAAE,iBAAiB,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,QAAQ,CAAC,EAAE,SAAS,EAAE,MAAM;QAC7G,OAAO,EAAE,mCAAmC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,iBAAiB,EAAE,CAAC,EAAE,OAAO,EAAE,yBAAyB,EAAE,CAAC;IAC/K,GAAG,CAAC,EAAE,GAAG,EAAE,iBAAiB,EAAE,QAAQ,EAAE,iBAAiB,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,MAAM,EAAE,SAAS,CAAC,EAAE,OAAO,EAAE,mBAAmB;QACpI,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,SAAS,EAAE,CAAC,EAAE,OAAO,EAAE,mBAAmB,EAAE,CAAC;IACrG,GAAG,CAAC,EAAE,GAAG,EAAE,kBAAkB,EAAE,QAAQ,EAAE,iBAAiB,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,sBAAsB,EAAE,IAAI,EAAE,EAAE,EAAE,OAAO,EAAE,oBAAoB,EAAE,CAAC;IAC3K,GAAG,CAAC,EAAE,GAAG,EAAE,mBAAmB,EAAE,QAAQ,EAAE,iBAAiB,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,MAAM,EAAE,SAAS,CAAC,EAAE,OAAO,EAAE,uBAAuB;QAC1I,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,SAAS,EAAE,CAAC,EAAE,OAAO,EAAE,qCAAqC,EAAE,CAAC;IACvH,GAAG,CAAC,EAAE,GAAG,EAAE,uBAAuB,EAAE,QAAQ,EAAE,iBAAiB,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,4BAA4B,EAAE,IAAI,EAAE,EAAE,EAAE,OAAO,EAAE,yBAAyB,EAAE,CAAC;IAC3L,GAAG,CAAC,EAAE,GAAG,EAAE,cAAc,EAAE,QAAQ,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,8BAA8B,EAAE,IAAI,EAAE,EAAE,EAAE,OAAO,EAAE,gBAAgB,EAAE,CAAC;IAEzK,6EAA6E;IAC7E,GAAG,CAAC,EAAE,GAAG,EAAE,eAAe,EAAE,OAAO,EAAE,CAAC,cAAc,EAAE,YAAY,CAAC,EAAE,QAAQ,EAAE,YAAY,EAAE,SAAS,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,QAAQ,EAAE,SAAS,CAAC,EAAE,SAAS,EAAE,MAAM;QAC1J,OAAO,EAAE,oEAAoE;QAC7E,IAAI,EAAE,CAAC,GAAG,OAAO,EAAE,GAAG,eAAe,EAAE,QAAQ;YAC7C,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,iDAAiD,EAAE;YACjG,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,+BAA+B,EAAE;YAC/E,EAAE,IAAI,EAAE,qBAAqB,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,yCAAyC,EAAE,CAAC;QACxG,OAAO,EAAE,iCAAiC,EAAE,CAAC;IAC/C,GAAG,CAAC,EAAE,GAAG,EAAE,kBAAkB,EAAE,OAAO,EAAE,CAAC,iBAAiB,CAAC,EAAE,QAAQ,EAAE,YAAY,EAAE,SAAS,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,QAAQ,EAAE,SAAS,CAAC,EAAE,SAAS,EAAE,MAAM;QAClJ,OAAO,EAAE,mCAAmC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,6BAA6B,EAAE,CAAC;IACxG,GAAG,CAAC,EAAE,GAAG,EAAE,UAAU,EAAE,OAAO,EAAE,CAAC,WAAW,CAAC,EAAE,QAAQ,EAAE,YAAY,EAAE,SAAS,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,QAAQ,CAAC,EAAE,SAAS,EAAE,KAAK;QACxH,OAAO,EAAE,qCAAqC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,CAAC,EAAE,OAAO,EAAE,wCAAwC,EAAE,CAAC;IAC7L,GAAG,CAAC,EAAE,GAAG,EAAE,kBAAkB,EAAE,OAAO,EAAE,CAAC,mBAAmB,CAAC,EAAE,QAAQ,EAAE,YAAY,EAAE,SAAS,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,QAAQ,CAAC,EAAE,SAAS,EAAE,MAAM;QACzI,OAAO,EAAE,uCAAuC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,YAAY,EAAE,CAAC,EAAE,OAAO,EAAE,kCAAkC,EAAE,CAAC;IACvL,GAAG,CAAC,EAAE,GAAG,EAAE,YAAY,EAAE,OAAO,EAAE,CAAC,aAAa,CAAC,EAAE,QAAQ,EAAE,YAAY,EAAE,SAAS,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,QAAQ,CAAC,EAAE,SAAS,EAAE,OAAO;QAC9H,OAAO,EAAE,uCAAuC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,iBAAiB,EAAE,CAAC,EAAE,OAAO,EAAE,2BAA2B,EAAE,CAAC;IACtL,GAAG,CAAC,EAAE,GAAG,EAAE,oBAAoB,EAAE,OAAO,EAAE,CAAC,qBAAqB,CAAC,EAAE,QAAQ,EAAE,YAAY,EAAE,SAAS,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,QAAQ,CAAC,EAAE,SAAS,EAAE,MAAM;QAC7I,OAAO,EAAE,yCAAyC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,YAAY,EAAE,CAAC,EAAE,OAAO,EAAE,8BAA8B,EAAE,CAAC;IACrL,GAAG,CAAC,EAAE,GAAG,EAAE,iBAAiB,EAAE,OAAO,EAAE,CAAC,kBAAkB,CAAC,EAAE,QAAQ,EAAE,YAAY,EAAE,SAAS,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,QAAQ,EAAE,SAAS,CAAC,EAAE,SAAS,EAAE,OAAO;QACnJ,OAAO,EAAE,0BAA0B,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,iBAAiB,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,WAAW,EAAE,CAAC;QACxL,OAAO,EAAE,2DAA2D,EAAE,CAAC;IACzE,GAAG,CAAC,EAAE,GAAG,EAAE,cAAc,EAAE,OAAO,EAAE,CAAC,eAAe,CAAC,EAAE,QAAQ,EAAE,YAAY,EAAE,SAAS,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,QAAQ,CAAC,EAAE,SAAS,EAAE,MAAM;QACjI,OAAO,EAAE,qCAAqC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,cAAc,EAAE,CAAC,EAAE,OAAO,EAAE,+BAA+B,EAAE,CAAC;IACpL,GAAG,CAAC,EAAE,GAAG,EAAE,gBAAgB,EAAE,OAAO,EAAE,CAAC,iBAAiB,CAAC,EAAE,QAAQ,EAAE,YAAY,EAAE,SAAS,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,QAAQ,CAAC,EAAE,SAAS,EAAE,MAAM;QACrI,OAAO,EAAE,uCAAuC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,cAAc,EAAE,CAAC,EAAE,OAAO,EAAE,gCAAgC,EAAE,CAAC;IACvL,GAAG,CAAC,EAAE,GAAG,EAAE,cAAc,EAAE,OAAO,EAAE,CAAC,eAAe,CAAC,EAAE,QAAQ,EAAE,YAAY,EAAE,SAAS,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,QAAQ,CAAC,EAAE,SAAS,EAAE,MAAM;QACjI,OAAO,EAAE,+BAA+B,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,cAAc,EAAE,CAAC,EAAE,OAAO,EAAE,uBAAuB,EAAE,CAAC;IACtK,GAAG,CAAC,EAAE,GAAG,EAAE,eAAe,EAAE,OAAO,EAAE,CAAC,gBAAgB,CAAC,EAAE,QAAQ,EAAE,YAAY,EAAE,SAAS,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,QAAQ,CAAC,EAAE,SAAS,EAAE,MAAM;QACnI,OAAO,EAAE,gCAAgC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,cAAc,EAAE,CAAC,EAAE,OAAO,EAAE,wBAAwB,EAAE,CAAC;IACxK,GAAG,CAAC,EAAE,GAAG,EAAE,YAAY,EAAE,OAAO,EAAE,CAAC,aAAa,CAAC,EAAE,QAAQ,EAAE,YAAY,EAAE,SAAS,EAAE,GAAG;QACvF,OAAO,EAAE,wCAAwC;QACjD,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,gBAAgB,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,iBAAiB,EAAE,CAAC;QAC1K,OAAO,EAAE,+CAA+C,EAAE,CAAC;IAC7D,GAAG,CAAC,EAAE,GAAG,EAAE,YAAY,EAAE,OAAO,EAAE,CAAC,QAAQ,CAAC,EAAE,QAAQ,EAAE,YAAY,EAAE,SAAS,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,QAAQ,CAAC,EAAE,SAAS,EAAE,YAAY;QAC9H,OAAO,EAAE,iEAAiE;QAC1E,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,gBAAgB,EAAE,CAAC,EAAE,OAAO,EAAE,4DAA4D,EAAE,CAAC;IACzK,GAAG,CAAC,EAAE,GAAG,EAAE,WAAW,EAAE,OAAO,EAAE,CAAC,UAAU,CAAC,EAAE,QAAQ,EAAE,YAAY,EAAE,SAAS,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,QAAQ,EAAE,SAAS,CAAC,EAAE,SAAS,EAAE,aAAa;QAC3I,OAAO,EAAE,kEAAkE;QAC3E,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,qCAAqC,EAAE,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,uBAAuB,EAAE,CAAC;QAC7L,OAAO,EAAE,+DAA+D,EAAE,CAAC;IAC7E,GAAG,CAAC,EAAE,GAAG,EAAE,iBAAiB,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,QAAQ,CAAC,EAAE,SAAS,EAAE,MAAM;QACnG,OAAO,EAAE,6CAA6C,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,gBAAgB,EAAE,CAAC,EAAE,OAAO,EAAE,4BAA4B,EAAE,CAAC;IAE3L,6EAA6E;IAC7E,GAAG,CAAC,EAAE,GAAG,EAAE,QAAQ,EAAE,QAAQ,EAAE,eAAe,EAAE,SAAS,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,MAAM,EAAE,SAAS,CAAC;QACxF,OAAO,EAAE,gCAAgC;QACzC,IAAI,EAAE;YACJ,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,0CAA0C,EAAE;YAC9F,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,iBAAiB,EAAE;YACjE,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,wBAAwB,EAAE;YACrE,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,4BAA4B,EAAE;YAC7E,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,yBAAyB,EAAE;YACvE,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,2BAA2B,EAAE;YAC3E,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,qBAAqB,EAAE;SACtE;QACD,OAAO,EAAE,8CAA8C,EAAE,CAAC;IAC5D,GAAG,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,QAAQ,EAAE,eAAe,EAAE,SAAS,EAAE,GAAG;QAC3D,OAAO,EAAE,gBAAgB;QACzB,IAAI,EAAE;YACJ,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,2BAA2B,EAAE;YAC/E,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,iCAAiC,EAAE;YACjF,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,+BAA+B,EAAE;YAC7E,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,2CAA2C,EAAE;YAC1F,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,sBAAsB,EAAE;YACzE,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,eAAe,EAAE;SAChE;QACD,OAAO,EAAE,+BAA+B,EAAE,CAAC;IAC7C,GAAG,CAAC,EAAE,GAAG,EAAE,oBAAoB,EAAE,QAAQ,EAAE,eAAe,EAAE,SAAS,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,QAAQ,EAAE,SAAS,CAAC,EAAE,SAAS,EAAE,MAAM;QACzH,OAAO,EAAE,0CAA0C;QACnD,IAAI,EAAE;YACJ,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,yCAAyC,EAAE;YACxF,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,6BAA6B,EAAE;YAC/E,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,kCAAkC,EAAE;YACtF,OAAO;YACP,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,8BAA8B,EAAE;SAC/E;QACD,OAAO,EAAE,+EAA+E,EAAE,CAAC;IAC7F,GAAG,CAAC,EAAE,GAAG,EAAE,aAAa,EAAE,QAAQ,EAAE,eAAe,EAAE,SAAS,EAAE,GAAG;QACjE,OAAO,EAAE,mEAAmE;QAC5E,IAAI,EAAE,CAAC,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,QAAiB,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,6BAA6B,EAAE,CAAC,CAAC;QACzJ,OAAO,EAAE,gFAAgF,EAAE,CAAC;IAE9F,6EAA6E;IAC7E,GAAG,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,OAAO,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,QAAQ,CAAC,EAAE,SAAS,EAAE,IAAI;QACzG,OAAO,EAAE,2BAA2B,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,CAAC,EAAE,OAAO,EAAE,eAAe,EAAE,CAAC;IACzJ,GAAG,CAAC,EAAE,GAAG,EAAE,uBAAuB,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,MAAM,EAAE,SAAS,CAAC;QAC9F,OAAO,EAAE,uCAAuC,EAAE,IAAI,EAAE,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,yBAAyB,EAAE,CAAC;IAC1G,GAAG,CAAC,EAAE,GAAG,EAAE,mBAAmB,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,GAAG;QAC9D,OAAO,EAAE,yEAAyE;QAClF,IAAI,EAAE;YACJ,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,eAAe,EAAE,WAAW,EAAE,+BAA+B,EAAE;YACxF,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,eAAe,EAAE,WAAW,EAAE,wCAAwC,EAAE;YACpG,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,qBAAqB,EAAE;YACzE,OAAO;SACR;QACD,OAAO,EAAE,+DAA+D,EAAE,CAAC;IAE7E,6EAA6E;IAC7E,GAAG,CAAC,EAAE,GAAG,EAAE,WAAW,EAAE,QAAQ,EAAE,eAAe,EAAE,SAAS,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,QAAQ,EAAE,SAAS,CAAC,EAAE,SAAS,EAAE,OAAO;QACjH,OAAO,EAAE,oBAAoB,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,WAAW,EAAE,CAAC,EAAE,OAAO,EAAE,iBAAiB,EAAE,CAAC;IAC1M,GAAG,CAAC,EAAE,GAAG,EAAE,kBAAkB,EAAE,OAAO,EAAE,CAAC,mBAAmB,CAAC,EAAE,QAAQ,EAAE,eAAe,EAAE,SAAS,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,QAAQ,EAAE,SAAS,CAAC,EAAE,SAAS,EAAE,OAAO;QACxJ,OAAO,EAAE,6BAA6B;QACtC,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,iBAAiB,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,WAAW,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,gBAAgB,EAAE,CAAC;QACzN,OAAO,EAAE,sDAAsD,EAAE,CAAC;IACpE,GAAG,CAAC,EAAE,GAAG,EAAE,SAAS,EAAE,QAAQ,EAAE,eAAe,EAAE,SAAS,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,QAAQ,EAAE,SAAS,CAAC,EAAE,SAAS,EAAE,OAAO;QAC/G,OAAO,EAAE,mBAAmB,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,aAAa,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,WAAW,EAAE,CAAC,EAAE,OAAO,EAAE,yBAAyB,EAAE,CAAC;IAEtN,6EAA6E;IAC7E,GAAG,CAAC,EAAE,GAAG,EAAE,UAAU,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,wBAAwB,EAAE,IAAI,EAAE,EAAE,EAAE,OAAO,EAAE,YAAY,EAAE,CAAC;IAClJ,GAAG,CAAC,EAAE,GAAG,EAAE,WAAW,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,QAAQ,EAAE,SAAS,CAAC,EAAE,SAAS,EAAE,OAAO;QAC3G,OAAO,EAAE,oCAAoC;QAC7C,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,gBAAgB,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,YAAY,EAAE,CAAC,EAAE,OAAO,EAAE,gBAAgB,EAAE,CAAC;IACtK,GAAG,CAAC,EAAE,GAAG,EAAE,aAAa,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,QAAQ,EAAE,SAAS,CAAC,EAAE,SAAS,EAAE,IAAI;QAC1G,OAAO,EAAE,uCAAuC;QAChD,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,WAAW,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,cAAc,EAAE,CAAC,EAAE,OAAO,EAAE,0BAA0B,EAAE,CAAC;IAC1K,GAAG,CAAC,EAAE,GAAG,EAAE,sBAAsB,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,mBAAmB,EAAE,IAAI,EAAE,EAAE,EAAE,OAAO,EAAE,wBAAwB,EAAE,CAAC;IACrK,GAAG,CAAC,EAAE,GAAG,EAAE,WAAW,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,GAAG;QACzD,OAAO,EAAE,eAAe;QACxB,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,SAAS,EAAE,CAAC;QACpN,OAAO,EAAE,qDAAqD,EAAE,CAAC;IACnE,GAAG,CAAC,EAAE,GAAG,EAAE,cAAc,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,MAAM,EAAE,QAAQ,CAAC,EAAE,SAAS,EAAE,MAAM;QAC1G,OAAO,EAAE,0CAA0C,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,cAAc,EAAE,CAAC,EAAE,OAAO,EAAE,2BAA2B,EAAE,CAAC;IACrK,GAAG,CAAC,EAAE,GAAG,EAAE,aAAa,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,MAAM,EAAE,QAAQ,CAAC,EAAE,SAAS,EAAE,MAAM;QACvG,OAAO,EAAE,iEAAiE,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,cAAc,EAAE,CAAC,EAAE,OAAO,EAAE,eAAe,EAAE,CAAC;IAChL,GAAG,CAAC,EAAE,GAAG,EAAE,cAAc,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,kCAAkC,EAAE,IAAI,EAAE,EAAE,EAAE,OAAO,EAAE,gBAAgB,EAAE,CAAC;IAClK,GAAG,CAAC,EAAE,GAAG,EAAE,eAAe,EAAE,OAAO,EAAE,CAAC,YAAY,EAAE,WAAW,CAAC,EAAE,QAAQ,EAAE,eAAe,EAAE,SAAS,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,QAAQ,EAAE,SAAS,CAAC,EAAE,SAAS,EAAE,QAAQ;QAC5J,OAAO,EAAE,wGAAwG;QACjH,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,YAAY,EAAE,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,WAAW,EAAE,8CAA8C,EAAE,CAAC;QACpL,OAAO,EAAE,2FAA2F,EAAE,CAAC;IAEzG,6EAA6E;IAC7E,GAAG,CAAC,EAAE,GAAG,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,QAAQ,EAAE,SAAS,CAAC,EAAE,SAAS,EAAE,MAAM;QACrG,OAAO,EAAE,gKAAgK;QACzK,IAAI,EAAE;YACJ,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,oBAAoB,EAAE;YACnE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,uCAAuC,EAAE;YACxF,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,gDAAgD,EAAE;YAC/F,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,WAAW,EAAE,mCAAmC,EAAE;SAC/E;QACD,OAAO,EAAE,oBAAoB,EAAE,CAAC;IAClC,GAAG,CAAC,EAAE,GAAG,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,GAAG;QACnD,OAAO,EAAE,kDAAkD;QAC3D,IAAI,EAAE;YACJ,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,aAAa,EAAE;YAC7D,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,kCAAkC,EAAE;YAClF,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,kBAAkB,EAAE;SACpF;QACD,OAAO,EAAE,+DAA+D,EAAE,CAAC;IAC7E,GAAG,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,GAAG;QAClD,OAAO,EAAE,yCAAyC;QAClD,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,YAAY,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,QAAQ,EAAE,CAAC;QACpJ,OAAO,EAAE,sEAAsE,EAAE,CAAC;IAEpF,6EAA6E;IAC7E,GAAG,CAAC,EAAE,GAAG,EAAE,SAAS,EAAE,QAAQ,EAAE,eAAe,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI;QAC3E,OAAO,EAAE,+FAA+F;QACxG,IAAI,EAAE;YACJ,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,kCAAkC,EAAE;YACvG,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,wBAAwB,EAAE;YACxF,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,WAAW,EAAE,8BAA8B,EAAE;YAC7E,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,WAAW,EAAE,uIAAuI,EAAE;SAC3L;QACD,OAAO,EAAE,qMAAqM,EAAE,CAAC;IACnN,GAAG,CAAC,EAAE,GAAG,EAAE,SAAS,EAAE,QAAQ,EAAE,eAAe,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI;QAC3E,OAAO,EAAE,8EAA8E;QACvF,IAAI,EAAE;YACJ,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,kDAAkD,EAAE;YACnG,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE;YACpE,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE;YACzD,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,eAAe,EAAE,WAAW,EAAE,6BAA6B,EAAE;YACnF,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,WAAW,EAAE,yBAAyB,EAAE;YACxE,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,qBAAqB,EAAE;SACvE;QACD,OAAO,EAAE,sIAAsI,EAAE,CAAC;IACpJ,GAAG,CAAC,EAAE,GAAG,EAAE,cAAc,EAAE,QAAQ,EAAE,eAAe,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI;QAChF,OAAO,EAAE,yDAAyD;QAClE,IAAI,EAAE;YACJ,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,8BAA8B,EAAE;YACnG,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,QAAQ,EAAE;YACxE,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,cAAc,EAAE;YAC5D,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,eAAe,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,sCAAsC,EAAE;YAC7G,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,WAAW,EAAE,kBAAkB,EAAE;YACjE,OAAO;SACR;QACD,OAAO,EAAE,qGAAqG,EAAE,CAAC;IACnH,GAAG,CAAC,EAAE,GAAG,EAAE,YAAY,EAAE,QAAQ,EAAE,eAAe,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI;QAC9E,OAAO,EAAE,6DAA6D;QACtE,IAAI,EAAE;YACJ,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,8BAA8B,EAAE;YACnG,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,QAAQ,EAAE;YACxE,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,eAAe,EAAE,WAAW,EAAE,6BAA6B,EAAE;YACrF,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,WAAW,EAAE,gBAAgB,EAAE;YAC/D,OAAO;SACR;QACD,OAAO,EAAE,kGAAkG,EAAE,CAAC;IAChH,GAAG,CAAC,EAAE,GAAG,EAAE,YAAY,EAAE,QAAQ,EAAE,eAAe,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI;QAC9E,OAAO,EAAE,uCAAuC;QAChD,IAAI,EAAE;YACJ,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,8BAA8B,EAAE;YACnG,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE;YACpE,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,WAAW,EAAE,gBAAgB,EAAE;YAC/D,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,WAAW,EAAE,kBAAkB,EAAE;SACjE;QACD,OAAO,EAAE,wGAAwG,EAAE,CAAC;IACtH,GAAG,CAAC,EAAE,GAAG,EAAE,WAAW,EAAE,QAAQ,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,QAAQ,CAAC,EAAE,SAAS,EAAE,MAAM;QACxG,OAAO,EAAE,uCAAuC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,cAAc,EAAE,CAAC,EAAE,OAAO,EAAE,yBAAyB,EAAE,CAAC;IAEhL,6EAA6E;IAC7E,GAAG,CAAC,EAAE,GAAG,EAAE,gBAAgB,EAAE,OAAO,EAAE,CAAC,YAAY,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,MAAM,EAAE,QAAQ,CAAC,EAAE,SAAS,EAAE,MAAM;QACnI,OAAO,EAAE,sEAAsE;QAC/E,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,YAAY,EAAE,CAAC,EAAE,OAAO,EAAE,kBAAkB;QAChG,WAAW,EAAE,qGAAqG,EAAE,CAAC;IACvH,GAAG,CAAC,EAAE,GAAG,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,SAAS,EAAE,QAAQ,CAAC,EAAE,SAAS,EAAE,OAAO;QAC3G,OAAO,EAAE,yCAAyC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,aAAa,EAAE,CAAC,EAAE,OAAO,EAAE,gCAAgC,EAAE,CAAC;IACvL,GAAG,CAAC,EAAE,GAAG,EAAE,kBAAkB,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,QAAQ,CAAC,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,uCAAuC;QACzJ,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,WAAW,EAAE,CAAC,EAAE,OAAO,EAAE,4BAA4B,EAAE,WAAW,EAAE,wCAAwC,EAAE,CAAC;IACrL,GAAG,CAAC,EAAE,GAAG,EAAE,gBAAgB,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,QAAQ,CAAC,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,yBAAyB;QACzI,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,yBAAyB,EAAE,WAAW,EAAE,uCAAuC,EAAE,CAAC;IAC7J,GAAG,CAAC,EAAE,GAAG,EAAE,eAAe,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,wBAAwB,EAAE,IAAI,EAAE,EAAE,EAAE,OAAO,EAAE,iBAAiB,EAAE,WAAW,EAAE,uCAAuC,EAAE,CAAC;IAEnN,6EAA6E;IAC7E,GAAG,CAAC,EAAE,GAAG,EAAE,SAAS,EAAE,QAAQ,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,MAAM,EAAE,QAAQ,CAAC,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,EAAE,eAAe;QACzI,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,gCAAgC,EAAE,CAAC,EAAE,OAAO,EAAE,WAAW,EAAE,CAAC;IACnH,GAAG,CAAC,EAAE,GAAG,EAAE,SAAS,EAAE,QAAQ,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,MAAM,EAAE,QAAQ,CAAC,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,EAAE,uBAAuB;QACjJ,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,SAAS,EAAE,CAAC,EAAE,OAAO,EAAE,WAAW,EAAE,CAAC;IAC5F,GAAG,CAAC,EAAE,GAAG,EAAE,YAAY,EAAE,QAAQ,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,MAAM,EAAE,QAAQ,CAAC,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,EAAE,iBAAiB;QAC9I,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,SAAS,EAAE,CAAC,EAAE,OAAO,EAAE,cAAc,EAAE,CAAC;IAC/F,GAAG,CAAC,EAAE,GAAG,EAAE,eAAe,EAAE,QAAQ,EAAE,eAAe,EAAE,SAAS,EAAE,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,yBAAyB,EAAE,IAAI,EAAE,EAAE,EAAE,OAAO,EAAE,iBAAiB,EAAE,CAAC;IACvK,GAAG,CAAC,EAAE,GAAG,EAAE,aAAa,EAAE,QAAQ,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,oBAAoB;QACnG,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,WAAW,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,YAAY,EAAE,CAAC;QACxK,OAAO,EAAE,+DAA+D,EAAE,CAAC;IAC7E,GAAG,CAAC,EAAE,GAAG,EAAE,QAAQ,EAAE,QAAQ,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,wCAAwC;QAClH,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,mBAAmB,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,YAAY,EAAE,CAAC;QAC3J,OAAO,EAAE,wFAAwF,EAAE,CAAC;IACtG,GAAG,CAAC,EAAE,GAAG,EAAE,gBAAgB,EAAE,QAAQ,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,QAAQ,CAAC,EAAE,SAAS,EAAE,aAAa;QACpH,OAAO,EAAE,4DAA4D,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,cAAc,EAAE,CAAC,EAAE,OAAO,EAAE,kCAAkC,EAAE,CAAC;IACrN,GAAG,CAAC,EAAE,GAAG,EAAE,iBAAiB,EAAE,QAAQ,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,QAAQ,CAAC,EAAE,SAAS,EAAE,OAAO;QAC/G,OAAO,EAAE,qBAAqB,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,qBAAqB,EAAE,CAAC,EAAE,OAAO,EAAE,4BAA4B,EAAE,CAAC;IACzK,GAAG,CAAC,EAAE,GAAG,EAAE,oBAAoB,EAAE,QAAQ,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,uBAAuB,EAAE,IAAI,EAAE,EAAE,EAAE,OAAO,EAAE,sBAAsB,EAAE,CAAC;IAC9K,GAAG,CAAC,EAAE,GAAG,EAAE,gBAAgB,EAAE,QAAQ,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,6BAA6B;QAC/G,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,gDAAgD,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,SAAS,EAAE,CAAC;QACtL,OAAO,EAAE,0DAA0D,EAAE,CAAC;IAExE,6EAA6E;IAC7E,GAAI,CAAC,cAAc,EAAE,uBAAuB,EAAE,mBAAmB,CAAW,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CACvF,GAAG,CAAC,EAAE,GAAG,EAAE,QAAQ,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,QAAQ,EAAE,SAAS,CAAC,EAAE,SAAS,EAAE,WAAW;QAChG,OAAO,EAAE,gCAAgC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,cAAc,EAAE,CAAC;QACrH,OAAO,EAAE,KAAK,GAAG,4BAA4B,EAAE,WAAW,EAAE,iCAAiC,EAAE,CAAC,CAAC;CACtG,CAAC;AAEF,MAAM,MAAM,GAAG,IAAI,GAAG,EAA6B,CAAC;AACpD,KAAK,MAAM,CAAC,IAAI,gBAAgB,EAAE,CAAC;IACjC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;IACrB,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC,OAAO;QAAE,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAC9C,CAAC;AAED,kDAAkD;AAClD,MAAM,UAAU,iBAAiB,CAAC,GAAW;IAC3C,OAAO,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AACzB,CAAC;AAED,gEAAgE;AAChE,MAAM,CAAC,MAAM,mBAAmB,GAAiF;IAC/G,EAAE,GAAG,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,EAAE,WAAW,EAAE,qEAAqE,EAAE;IAClH,EAAE,GAAG,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,WAAW,EAAE,sDAAsD,EAAE;IACxG,EAAE,GAAG,EAAE,aAAa,EAAE,SAAS,EAAE,CAAC,SAAS,CAAC,EAAE,WAAW,EAAE,sCAAsC,EAAE;IACnG,EAAE,GAAG,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,EAAE,WAAW,EAAE,mCAAmC,EAAE;IAC1F,EAAE,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,GAAG,EAAE,WAAW,EAAE,+BAA+B,EAAE;IAC7E,EAAE,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,GAAG,EAAE,WAAW,EAAE,iBAAiB,EAAE;IAC/D,EAAE,GAAG,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,EAAE,WAAW,EAAE,yCAAyC,EAAE;IACtF,EAAE,GAAG,EAAE,kBAAkB,EAAE,SAAS,EAAE,GAAG,EAAE,WAAW,EAAE,cAAc,EAAE;IACxE,EAAE,GAAG,EAAE,aAAa,EAAE,SAAS,EAAE,GAAG,EAAE,WAAW,EAAE,4CAA4C,EAAE;IACjG,EAAE,GAAG,EAAE,gBAAgB,EAAE,SAAS,EAAE,GAAG,EAAE,WAAW,EAAE,2CAA2C,EAAE;CACpG,CAAC;AAEF,6DAA6D;AAC7D,MAAM,UAAU,4BAA4B;IAC1C,MAAM,KAAK,GAAa;QACtB,iBAAiB;QACjB,EAAE;QACF,mGAAmG;QACnG,kIAAkI;QAClI,iJAAiJ;QACjJ,EAAE;QACF,gJAAgJ;QAChJ,wGAAwG;QACxG,EAAE;QACF,gBAAgB;QAChB,EAAE;QACF,+BAA+B;QAC/B,eAAe;QACf,GAAG,mBAAmB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,WAAW,IAAI,CAAC;QACpG,EAAE;KACH,CAAC;IACF,MAAM,KAAK,GAAG,IAAI,GAAG,EAA+B,CAAC;IACrD,KAAK,MAAM,CAAC,IAAI,gBAAgB,EAAE,CAAC;QACjC,MAAM,IAAI,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;QACzC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACb,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;IAC9B,CAAC;IACD,KAAK,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,KAAK,EAAE,CAAC;QAChC,KAAK,CAAC,IAAI,CAAC,MAAM,GAAG,EAAE,EAAE,EAAE,CAAC,CAAC;QAC5B,KAAK,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC;YACrB,MAAM,KAAK,GAAG,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;YACnG,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,GAAG,KAAK,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC;YAC3C,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,OAAO,eAAe,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YACxG,IAAI,CAAC,CAAC,WAAW;gBAAE,KAAK,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC;YACtE,MAAM,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,QAAQ,IAAI,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC/G,KAAK,CAAC,IAAI,CAAC,UAAU,KAAK,GAAG,CAAC,CAAC;YAC/B,IAAI,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;gBAClB,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,oCAAoC,EAAE,mBAAmB,CAAC,CAAC;gBAC1E,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI;oBAAE,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,QAAQ,CAAC,CAAC,IAAI,MAAM,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,WAAW,IAAI,CAAC,CAAC;YACtH,CAAC;YACD,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,SAAS,EAAE,CAAC,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC;QAClD,CAAC;IACH,CAAC;IACD,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC"}
@@ -0,0 +1,43 @@
1
+ /**
2
+ * UI-test flow linter — checks a flow's YAML the way the engines will read it
3
+ * and reports what would silently go wrong at run time: unknown steps (the
4
+ * engines skip them), missing required arguments, steps the flow's platform
5
+ * cannot run, unresolved `runFlow` references, unknown connections and
6
+ * placeholders nothing fills.
7
+ *
8
+ * Reads the document exactly like the flow parsers do (dedent, then
9
+ * `loadAll`: document 0 = header, document 1 = steps; a single list document
10
+ * = steps only). Never throws.
11
+ */
12
+ import { type UiTestPlatform } from "./commands.js";
13
+ export interface UiTestLintIssue {
14
+ code: string;
15
+ message: string;
16
+ /** 1-based top-level step number (nested steps: "3.2"). */
17
+ step?: string;
18
+ }
19
+ export interface UiTestLintOptions {
20
+ platform: UiTestPlatform;
21
+ /** Names of the flows in the library — enables the runFlow check. */
22
+ knownFlowNames?: string[];
23
+ /** Names/ids of the workspace connections — enables the connection check. */
24
+ knownConnections?: string[];
25
+ /** Dataset keys of the flow — enables the placeholder check. */
26
+ datasetKeys?: string[];
27
+ }
28
+ export interface UiTestLintStep {
29
+ step: string;
30
+ key: string;
31
+ command?: string;
32
+ label?: string;
33
+ }
34
+ export interface UiTestLintResult {
35
+ ok: boolean;
36
+ errors: UiTestLintIssue[];
37
+ warnings: UiTestLintIssue[];
38
+ header: Record<string, unknown>;
39
+ steps: UiTestLintStep[];
40
+ preconditions: string[];
41
+ }
42
+ export declare function lintUiTestFlow(content: string, options: UiTestLintOptions): UiTestLintResult;
43
+ //# sourceMappingURL=flow-lint.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"flow-lint.d.ts","sourceRoot":"","sources":["../../src/ui-test/flow-lint.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAGH,OAAO,EAAkE,KAAK,cAAc,EAAE,MAAM,eAAe,CAAC;AAGpH,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,2DAA2D;IAC3D,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,iBAAiB;IAChC,QAAQ,EAAE,cAAc,CAAC;IACzB,qEAAqE;IACrE,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B,6EAA6E;IAC7E,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC5B,gEAAgE;IAChE,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;CACxB;AAED,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,gBAAgB;IAC/B,EAAE,EAAE,OAAO,CAAC;IACZ,MAAM,EAAE,eAAe,EAAE,CAAC;IAC1B,QAAQ,EAAE,eAAe,EAAE,CAAC;IAC5B,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAChC,KAAK,EAAE,cAAc,EAAE,CAAC;IACxB,aAAa,EAAE,MAAM,EAAE,CAAC;CACzB;AA2BD,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,iBAAiB,GAAG,gBAAgB,CAsL5F"}
@@ -0,0 +1,229 @@
1
+ /**
2
+ * UI-test flow linter — checks a flow's YAML the way the engines will read it
3
+ * and reports what would silently go wrong at run time: unknown steps (the
4
+ * engines skip them), missing required arguments, steps the flow's platform
5
+ * cannot run, unresolved `runFlow` references, unknown connections and
6
+ * placeholders nothing fills.
7
+ *
8
+ * Reads the document exactly like the flow parsers do (dedent, then
9
+ * `loadAll`: document 0 = header, document 1 = steps; a single list document
10
+ * = steps only). Never throws.
11
+ */
12
+ import yaml from "js-yaml";
13
+ import { findUiTestCommand, UI_TEST_HEADER_KEYS } from "./commands.js";
14
+ import { extractPreconditions } from "./compose.js";
15
+ const ARG_SYNONYMS = {
16
+ url: ["url", "link"],
17
+ text: ["text", "value", "element"],
18
+ urlContains: ["urlContains", "url"],
19
+ name: ["name", "commands", "file", "path"],
20
+ };
21
+ /** Keys any step mapping may carry beyond its own args. */
22
+ const COMMON_STEP_KEYS = new Set(["label", "optional", "timeout", "when", "retryTapIfNoChange", "waitToSettleTimeoutMs"]);
23
+ const EXAMPLE_URL_RE = /^https?:\/\/(www\.)?example\.com\/?$/i;
24
+ const PLACEHOLDER_RE = /\{\{\s*([A-Za-z_][\w.-]*)\s*\}\}/g;
25
+ function dedent(text) {
26
+ const lines = text.split("\n");
27
+ const nonEmpty = lines.filter((l) => l.trim().length > 0);
28
+ if (nonEmpty.length === 0)
29
+ return text;
30
+ const min = Math.min(...nonEmpty.map((l) => l.match(/^(\s*)/)?.[1].length ?? 0));
31
+ return lines.map((l) => l.slice(min)).join("\n");
32
+ }
33
+ function isRecord(v) {
34
+ return !!v && typeof v === "object" && !Array.isArray(v);
35
+ }
36
+ export function lintUiTestFlow(content, options) {
37
+ const errors = [];
38
+ const warnings = [];
39
+ const steps = [];
40
+ let header = {};
41
+ let rawSteps = [];
42
+ const docs = [];
43
+ try {
44
+ yaml.loadAll(dedent(content ?? ""), (d) => docs.push(d));
45
+ }
46
+ catch (err) {
47
+ const e = err;
48
+ const where = e.mark?.line != null ? ` (line ${e.mark.line + 1}, column ${(e.mark.column ?? 0) + 1})` : "";
49
+ errors.push({ code: "YAML_SYNTAX", message: `YAML syntax error: ${e.reason ?? e.message ?? String(err)}${where}` });
50
+ return { ok: false, errors, warnings, header, steps, preconditions: [] };
51
+ }
52
+ const nonEmpty = docs.filter((d) => d !== null && d !== undefined);
53
+ if (docs.length >= 2) {
54
+ if (docs[0] != null && !isRecord(docs[0]))
55
+ errors.push({ code: "HEADER_NOT_MAPPING", message: "The header (before `---`) must be a mapping like `url: https://…`." });
56
+ header = isRecord(docs[0]) ? docs[0] : {};
57
+ if (docs[1] != null && !Array.isArray(docs[1]))
58
+ errors.push({ code: "STEPS_NOT_LIST", message: "The steps (after `---`) must be a YAML list: each step starts with `- `." });
59
+ rawSteps = Array.isArray(docs[1]) ? docs[1] : [];
60
+ if (docs.length > 2 && docs.slice(2).some((d) => d != null))
61
+ warnings.push({ code: "EXTRA_DOCUMENTS", message: "Only the first two YAML documents (header, steps) are read; the rest is ignored." });
62
+ }
63
+ else if (nonEmpty.length === 1) {
64
+ if (Array.isArray(nonEmpty[0]))
65
+ rawSteps = nonEmpty[0];
66
+ else if (isRecord(nonEmpty[0]))
67
+ header = nonEmpty[0];
68
+ }
69
+ // ── Header ────────────────────────────────────────────────────────────────
70
+ const { platform } = options;
71
+ const knownHeader = new Set(UI_TEST_HEADER_KEYS.map((h) => h.key));
72
+ for (const key of Object.keys(header)) {
73
+ if (!knownHeader.has(key))
74
+ warnings.push({ code: "HEADER_UNKNOWN_KEY", message: `Header key \`${key}\` is not used by the engines.` });
75
+ }
76
+ const preconditions = extractPreconditions(content ?? "").names;
77
+ if (platform === "web") {
78
+ const url = typeof header.url === "string" ? header.url.trim() : "";
79
+ if (!url && preconditions.length === 0) {
80
+ warnings.push({ code: "HEADER_URL_MISSING", message: "Web flow has no `url:` header — the browser starts on a blank page unless a step navigates." });
81
+ }
82
+ else if (EXAMPLE_URL_RE.test(url) && preconditions.length === 0) {
83
+ warnings.push({ code: "HEADER_URL_PLACEHOLDER", message: "`url:` is still the example.com placeholder." });
84
+ }
85
+ if (header.appId !== undefined)
86
+ warnings.push({ code: "HEADER_PLATFORM", message: "`appId` is a mobile header; it is ignored on web." });
87
+ }
88
+ else {
89
+ const appId = typeof header.appId === "string" ? header.appId.trim() : "";
90
+ if (!appId)
91
+ warnings.push({ code: "HEADER_APPID_MISSING", message: "Mobile flow has no `appId:` header — `launchApp` needs it." });
92
+ else if (appId === "com.example.app")
93
+ warnings.push({ code: "HEADER_APPID_PLACEHOLDER", message: "`appId:` is still the com.example.app placeholder." });
94
+ if (header.url !== undefined)
95
+ warnings.push({ code: "HEADER_PLATFORM", message: "`url` is a web header; use `openLink` for deep links on mobile." });
96
+ }
97
+ // ── Steps ─────────────────────────────────────────────────────────────────
98
+ if (rawSteps.length === 0)
99
+ warnings.push({ code: "NO_STEPS", message: "The flow has no steps." });
100
+ const knownFlows = options.knownFlowNames ? new Set(options.knownFlowNames.map((n) => n.trim())) : null;
101
+ const knownConns = options.knownConnections ? new Set(options.knownConnections.map((n) => n.trim().toLowerCase())) : null;
102
+ const produced = new Set(["copiedText"]);
103
+ const walk = (items, prefix) => {
104
+ items.forEach((item, i) => {
105
+ const step = prefix ? `${prefix}.${i + 1}` : String(i + 1);
106
+ checkStep(item, step);
107
+ });
108
+ };
109
+ const checkStep = (item, step) => {
110
+ let key;
111
+ let value;
112
+ let label;
113
+ if (typeof item === "string") {
114
+ key = item.trim();
115
+ value = null;
116
+ }
117
+ else if (isRecord(item)) {
118
+ const keys = Object.keys(item).filter((k) => k !== "label");
119
+ if (typeof item.label === "string")
120
+ label = item.label;
121
+ if (keys.length === 0) {
122
+ errors.push({ code: "STEP_EMPTY", message: "Step has no command.", step });
123
+ return;
124
+ }
125
+ if (keys.length > 1) {
126
+ errors.push({ code: "STEP_MULTIPLE_KEYS", message: `Step has several commands (${keys.join(", ")}); put each on its own \`- \` line.`, step });
127
+ }
128
+ key = keys[0];
129
+ value = item[key];
130
+ }
131
+ else {
132
+ errors.push({ code: "STEP_INVALID", message: `Step must be a command (e.g. \`- tapOn: "Login"\`), got ${JSON.stringify(item)}.`, step });
133
+ return;
134
+ }
135
+ const spec = findUiTestCommand(key);
136
+ if (isRecord(value) && typeof value.label === "string")
137
+ label = value.label;
138
+ steps.push({ step, key, command: spec?.key, ...(label ? { label } : {}) });
139
+ if (!spec) {
140
+ errors.push({ code: "STEP_UNKNOWN", message: `Unknown step \`${key}\` — the engine would skip it. See callman://docs/ui-test-steps.`, step });
141
+ return;
142
+ }
143
+ if (!spec.platforms.includes(platform)) {
144
+ warnings.push({ code: "STEP_PLATFORM", message: `\`${key}\` does not run on ${platform} (${spec.platforms.join("/")} only) — it will be skipped.`, step });
145
+ }
146
+ if (spec.unavailable)
147
+ warnings.push({ code: "STEP_UNAVAILABLE", message: `\`${key}\`: ${spec.unavailable}`, step });
148
+ checkArgs(spec, key, value, step);
149
+ if (isRecord(value)) {
150
+ const extract = value.extract;
151
+ if (isRecord(extract))
152
+ Object.keys(extract).forEach((k) => produced.add(k));
153
+ if (spec.key === "copyTextFrom" && typeof value.into === "string")
154
+ produced.add(value.into);
155
+ if (Array.isArray(value.commands))
156
+ walk(value.commands, step);
157
+ }
158
+ if (spec.key === "runFlow") {
159
+ const name = typeof value === "string" ? value : isRecord(value) && typeof value.name === "string" ? value.name : null;
160
+ if (name && knownFlows && !knownFlows.has(name.trim())) {
161
+ errors.push({ code: "RUNFLOW_UNRESOLVED", message: `runFlow "${name}" does not match any flow in the library (names are exact).`, step });
162
+ }
163
+ }
164
+ if (spec.hybrid && isRecord(value) && typeof value.connection === "string" && knownConns) {
165
+ if (!knownConns.has(value.connection.trim().toLowerCase())) {
166
+ warnings.push({ code: "CONNECTION_UNKNOWN", message: `Connection "${value.connection}" is not a workspace connection name or id.`, step });
167
+ }
168
+ }
169
+ };
170
+ const checkArgs = (spec, key, value, step) => {
171
+ const isBare = value === null || value === undefined;
172
+ const isScalar = !isBare && (typeof value === "string" || typeof value === "number" || typeof value === "boolean");
173
+ const isMapping = isRecord(value);
174
+ const isList = Array.isArray(value);
175
+ if (isBare && !spec.forms.includes("bare")) {
176
+ const needs = spec.args.filter((a) => a.required).map((a) => a.name);
177
+ errors.push({ code: "STEP_ARGS_MISSING", message: `\`${key}\` needs a value${needs.length ? ` (${needs.join(", ")})` : ""}.`, step });
178
+ return;
179
+ }
180
+ if (isScalar && !spec.forms.includes("scalar")) {
181
+ errors.push({ code: "STEP_FORM", message: `\`${key}\` takes a mapping, not a single value. Example:\n${spec.example}`, step });
182
+ return;
183
+ }
184
+ if (isList && spec.key !== "addMedia") {
185
+ errors.push({ code: "STEP_FORM", message: `\`${key}\` value must not be a list. Example:\n${spec.example}`, step });
186
+ return;
187
+ }
188
+ if (!isMapping)
189
+ return;
190
+ if (!spec.forms.includes("mapping")) {
191
+ errors.push({ code: "STEP_FORM", message: `\`${key}\` takes a single value, not a mapping. Example:\n${spec.example}`, step });
192
+ return;
193
+ }
194
+ for (const arg of spec.args) {
195
+ if (!arg.required)
196
+ continue;
197
+ const names = ARG_SYNONYMS[arg.name] ?? [arg.name];
198
+ if (!names.some((n) => value[n] !== undefined && value[n] !== null && value[n] !== "")) {
199
+ // Locator steps: any locator satisfies a missing `text`.
200
+ if (arg.name === "text" && ["id", "testId", "css", "xpath", "name", "placeholder"].some((n) => value[n] != null))
201
+ continue;
202
+ errors.push({ code: "STEP_ARG_REQUIRED", message: `\`${key}\` is missing \`${arg.name}\`.`, step });
203
+ }
204
+ }
205
+ const allowed = new Set([...spec.args.map((a) => a.name), ...Object.values(ARG_SYNONYMS).flat()]);
206
+ for (const k of Object.keys(value)) {
207
+ if (!allowed.has(k) && !COMMON_STEP_KEYS.has(k)) {
208
+ warnings.push({ code: "STEP_ARG_UNKNOWN", message: `\`${key}\` does not use \`${k}\` — it is ignored.`, step });
209
+ }
210
+ }
211
+ };
212
+ walk(rawSteps, "");
213
+ // ── Placeholders ──────────────────────────────────────────────────────────
214
+ if (options.datasetKeys) {
215
+ const known = new Set([...options.datasetKeys, ...produced]);
216
+ const env = isRecord(header.env) ? header.env : isRecord(header.defineAttributes) ? header.defineAttributes : {};
217
+ Object.keys(env).forEach((k) => known.add(k));
218
+ const missing = new Set();
219
+ for (const m of (content ?? "").matchAll(PLACEHOLDER_RE)) {
220
+ if (!known.has(m[1]))
221
+ missing.add(m[1]);
222
+ }
223
+ for (const name of missing) {
224
+ warnings.push({ code: "PLACEHOLDER_UNRESOLVED", message: `{{${name}}} is not a dataset key, header env value or extracted variable — it will stay literal.` });
225
+ }
226
+ }
227
+ return { ok: errors.length === 0, errors, warnings, header, steps, preconditions };
228
+ }
229
+ //# sourceMappingURL=flow-lint.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"flow-lint.js","sourceRoot":"","sources":["../../src/ui-test/flow-lint.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,IAAI,MAAM,SAAS,CAAC;AAC3B,OAAO,EAAE,iBAAiB,EAAE,mBAAmB,EAA+C,MAAM,eAAe,CAAC;AACpH,OAAO,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AAmCpD,MAAM,YAAY,GAA6B;IAC7C,GAAG,EAAE,CAAC,KAAK,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,SAAS,CAAC;IAClC,WAAW,EAAE,CAAC,aAAa,EAAE,KAAK,CAAC;IACnC,IAAI,EAAE,CAAC,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,CAAC;CAC3C,CAAC;AAEF,2DAA2D;AAC3D,MAAM,gBAAgB,GAAG,IAAI,GAAG,CAAC,CAAC,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,EAAE,oBAAoB,EAAE,uBAAuB,CAAC,CAAC,CAAC;AAE1H,MAAM,cAAc,GAAG,uCAAuC,CAAC;AAC/D,MAAM,cAAc,GAAG,mCAAmC,CAAC;AAE3D,SAAS,MAAM,CAAC,IAAY;IAC1B,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC/B,MAAM,QAAQ,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAC1D,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IACvC,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC,CAAC;IACjF,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACnD,CAAC;AAED,SAAS,QAAQ,CAAC,CAAU;IAC1B,OAAO,CAAC,CAAC,CAAC,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;AAC3D,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,OAAe,EAAE,OAA0B;IACxE,MAAM,MAAM,GAAsB,EAAE,CAAC;IACrC,MAAM,QAAQ,GAAsB,EAAE,CAAC;IACvC,MAAM,KAAK,GAAqB,EAAE,CAAC;IACnC,IAAI,MAAM,GAA4B,EAAE,CAAC;IACzC,IAAI,QAAQ,GAAc,EAAE,CAAC;IAE7B,MAAM,IAAI,GAAc,EAAE,CAAC;IAC3B,IAAI,CAAC;QACH,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;IAC3D,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,CAAC,GAAG,GAAuF,CAAC;QAClG,MAAM,KAAK,GAAG,CAAC,CAAC,IAAI,EAAE,IAAI,IAAI,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;QAC3G,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,OAAO,EAAE,sBAAsB,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,OAAO,IAAI,MAAM,CAAC,GAAG,CAAC,GAAG,KAAK,EAAE,EAAE,CAAC,CAAC;QACpH,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,aAAa,EAAE,EAAE,EAAE,CAAC;IAC3E,CAAC;IAED,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,SAAS,CAAC,CAAC;IACnE,IAAI,IAAI,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;QACrB,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAAE,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,oBAAoB,EAAE,OAAO,EAAE,oEAAoE,EAAE,CAAC,CAAC;QACtK,MAAM,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAC1C,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAAE,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,0EAA0E,EAAE,CAAC,CAAC;QAC7K,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACjD,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,IAAI,CAAC;YAAE,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,iBAAiB,EAAE,OAAO,EAAE,kFAAkF,EAAE,CAAC,CAAC;IACvM,CAAC;SAAM,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACjC,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;YAAE,QAAQ,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;aAClD,IAAI,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;YAAE,MAAM,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;IACvD,CAAC;IAED,6EAA6E;IAC7E,MAAM,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC;IAC7B,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IACnE,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;QACtC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC;YAAE,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,oBAAoB,EAAE,OAAO,EAAE,gBAAgB,GAAG,gCAAgC,EAAE,CAAC,CAAC;IACzI,CAAC;IACD,MAAM,aAAa,GAAG,oBAAoB,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC;IAChE,IAAI,QAAQ,KAAK,KAAK,EAAE,CAAC;QACvB,MAAM,GAAG,GAAG,OAAO,MAAM,CAAC,GAAG,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACpE,IAAI,CAAC,GAAG,IAAI,aAAa,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACvC,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,oBAAoB,EAAE,OAAO,EAAE,6FAA6F,EAAE,CAAC,CAAC;QACxJ,CAAC;aAAM,IAAI,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,aAAa,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAClE,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,wBAAwB,EAAE,OAAO,EAAE,8CAA8C,EAAE,CAAC,CAAC;QAC7G,CAAC;QACD,IAAI,MAAM,CAAC,KAAK,KAAK,SAAS;YAAE,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,iBAAiB,EAAE,OAAO,EAAE,mDAAmD,EAAE,CAAC,CAAC;IAC3I,CAAC;SAAM,CAAC;QACN,MAAM,KAAK,GAAG,OAAO,MAAM,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC1E,IAAI,CAAC,KAAK;YAAE,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,sBAAsB,EAAE,OAAO,EAAE,4DAA4D,EAAE,CAAC,CAAC;aAC9H,IAAI,KAAK,KAAK,iBAAiB;YAAE,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,0BAA0B,EAAE,OAAO,EAAE,oDAAoD,EAAE,CAAC,CAAC;QACzJ,IAAI,MAAM,CAAC,GAAG,KAAK,SAAS;YAAE,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,iBAAiB,EAAE,OAAO,EAAE,iEAAiE,EAAE,CAAC,CAAC;IACvJ,CAAC;IAED,6EAA6E;IAC7E,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;QAAE,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,wBAAwB,EAAE,CAAC,CAAC;IAElG,MAAM,UAAU,GAAG,OAAO,CAAC,cAAc,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,OAAO,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IACxG,MAAM,UAAU,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,OAAO,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAC1H,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAS,CAAC,YAAY,CAAC,CAAC,CAAC;IAEjD,MAAM,IAAI,GAAG,CAAC,KAAgB,EAAE,MAAc,EAAQ,EAAE;QACtD,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE;YACxB,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;YAC3D,SAAS,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QACxB,CAAC,CAAC,CAAC;IACL,CAAC,CAAC;IAEF,MAAM,SAAS,GAAG,CAAC,IAAa,EAAE,IAAY,EAAQ,EAAE;QACtD,IAAI,GAAW,CAAC;QAChB,IAAI,KAAc,CAAC;QACnB,IAAI,KAAyB,CAAC;QAC9B,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;YAC7B,GAAG,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;YAClB,KAAK,GAAG,IAAI,CAAC;QACf,CAAC;aAAM,IAAI,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;YAC1B,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,OAAO,CAAC,CAAC;YAC5D,IAAI,OAAO,IAAI,CAAC,KAAK,KAAK,QAAQ;gBAAE,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;YACvD,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACtB,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,sBAAsB,EAAE,IAAI,EAAE,CAAC,CAAC;gBAC3E,OAAO;YACT,CAAC;YACD,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACpB,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,oBAAoB,EAAE,OAAO,EAAE,8BAA8B,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,qCAAqC,EAAE,IAAI,EAAE,CAAC,CAAC;YACjJ,CAAC;YACD,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;YACd,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC;QACpB,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,cAAc,EAAE,OAAO,EAAE,2DAA2D,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC;YACzI,OAAO;QACT,CAAC;QAED,MAAM,IAAI,GAAG,iBAAiB,CAAC,GAAG,CAAC,CAAC;QACpC,IAAI,QAAQ,CAAC,KAAK,CAAC,IAAI,OAAO,KAAK,CAAC,KAAK,KAAK,QAAQ;YAAE,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC;QAC5E,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;QAE3E,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,cAAc,EAAE,OAAO,EAAE,kBAAkB,GAAG,kEAAkE,EAAE,IAAI,EAAE,CAAC,CAAC;YAC9I,OAAO;QACT,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;YACvC,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,eAAe,EAAE,OAAO,EAAE,KAAK,GAAG,sBAAsB,QAAQ,KAAK,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,8BAA8B,EAAE,IAAI,EAAE,CAAC,CAAC;QAC7J,CAAC;QACD,IAAI,IAAI,CAAC,WAAW;YAAE,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,kBAAkB,EAAE,OAAO,EAAE,KAAK,GAAG,OAAO,IAAI,CAAC,WAAW,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC;QAEpH,SAAS,CAAC,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;QAElC,IAAI,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;YACpB,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC;YAC9B,IAAI,QAAQ,CAAC,OAAO,CAAC;gBAAE,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;YAC5E,IAAI,IAAI,CAAC,GAAG,KAAK,cAAc,IAAI,OAAO,KAAK,CAAC,IAAI,KAAK,QAAQ;gBAAE,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAC5F,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC;gBAAE,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;QAChE,CAAC;QAED,IAAI,IAAI,CAAC,GAAG,KAAK,SAAS,EAAE,CAAC;YAC3B,MAAM,IAAI,GAAG,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,OAAO,KAAK,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;YACvH,IAAI,IAAI,IAAI,UAAU,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC;gBACvD,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,oBAAoB,EAAE,OAAO,EAAE,YAAY,IAAI,6DAA6D,EAAE,IAAI,EAAE,CAAC,CAAC;YAC5I,CAAC;QACH,CAAC;QACD,IAAI,IAAI,CAAC,MAAM,IAAI,QAAQ,CAAC,KAAK,CAAC,IAAI,OAAO,KAAK,CAAC,UAAU,KAAK,QAAQ,IAAI,UAAU,EAAE,CAAC;YACzF,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,EAAE,CAAC;gBAC3D,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,oBAAoB,EAAE,OAAO,EAAE,eAAe,KAAK,CAAC,UAAU,6CAA6C,EAAE,IAAI,EAAE,CAAC,CAAC;YAC7I,CAAC;QACH,CAAC;IACH,CAAC,CAAC;IAEF,MAAM,SAAS,GAAG,CAAC,IAAuB,EAAE,GAAW,EAAE,KAAc,EAAE,IAAY,EAAQ,EAAE;QAC7F,MAAM,MAAM,GAAG,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,CAAC;QACrD,MAAM,QAAQ,GAAG,CAAC,MAAM,IAAI,CAAC,OAAO,KAAK,KAAK,QAAQ,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,OAAO,KAAK,KAAK,SAAS,CAAC,CAAC;QACnH,MAAM,SAAS,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;QAClC,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QAEpC,IAAI,MAAM,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;YAC3C,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;YACrE,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,mBAAmB,EAAE,OAAO,EAAE,KAAK,GAAG,mBAAmB,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC;YACtI,OAAO;QACT,CAAC;QACD,IAAI,QAAQ,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC/C,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,KAAK,GAAG,qDAAqD,IAAI,CAAC,OAAO,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC;YAC/H,OAAO;QACT,CAAC;QACD,IAAI,MAAM,IAAI,IAAI,CAAC,GAAG,KAAK,UAAU,EAAE,CAAC;YACtC,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,KAAK,GAAG,0CAA0C,IAAI,CAAC,OAAO,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC;YACpH,OAAO;QACT,CAAC;QACD,IAAI,CAAC,SAAS;YAAE,OAAO;QACvB,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;YACpC,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,KAAK,GAAG,qDAAqD,IAAI,CAAC,OAAO,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC;YAC/H,OAAO;QACT,CAAC;QACD,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;YAC5B,IAAI,CAAC,GAAG,CAAC,QAAQ;gBAAE,SAAS;YAC5B,MAAM,KAAK,GAAG,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YACnD,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,SAAS,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,IAAI,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,EAAE,CAAC;gBACvF,yDAAyD;gBACzD,IAAI,GAAG,CAAC,IAAI,KAAK,MAAM,IAAI,CAAC,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,aAAa,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC;oBAAE,SAAS;gBAC3H,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,mBAAmB,EAAE,OAAO,EAAE,KAAK,GAAG,mBAAmB,GAAG,CAAC,IAAI,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;YACtG,CAAC;QACH,CAAC;QACD,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,GAAG,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;QAClG,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;YACnC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;gBAChD,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,kBAAkB,EAAE,OAAO,EAAE,KAAK,GAAG,qBAAqB,CAAC,qBAAqB,EAAE,IAAI,EAAE,CAAC,CAAC;YAClH,CAAC;QACH,CAAC;IACH,CAAC,CAAC;IAEF,IAAI,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;IAEnB,6EAA6E;IAC7E,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC;QACxB,MAAM,KAAK,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,OAAO,CAAC,WAAW,EAAE,GAAG,QAAQ,CAAC,CAAC,CAAC;QAC7D,MAAM,GAAG,GAAG,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC,CAAC,EAAE,CAAC;QACjH,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QAC9C,MAAM,OAAO,GAAG,IAAI,GAAG,EAAU,CAAC;QAClC,KAAK,MAAM,CAAC,IAAI,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,cAAc,CAAC,EAAE,CAAC;YACzD,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBAAE,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC1C,CAAC;QACD,KAAK,MAAM,IAAI,IAAI,OAAO,EAAE,CAAC;YAC3B,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,wBAAwB,EAAE,OAAO,EAAE,KAAK,IAAI,yFAAyF,EAAE,CAAC,CAAC;QACjK,CAAC;IACH,CAAC;IAED,OAAO,EAAE,EAAE,EAAE,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,aAAa,EAAE,CAAC;AACrF,CAAC"}
@@ -27,6 +27,20 @@ const BPMN_SECTION = () => [
27
27
  " 100x80, gateways 50x50, a 60px gap, one row per branch) — the app writes the BPMN XML.",
28
28
  "- EDIT mode: emit ops; new nodes need no position (the app places them after their predecessor).",
29
29
  ];
30
+ const DATABASE_SECTION = () => [
31
+ "",
32
+ "THIS IS A DATABASE DIAGRAM (an entity-relationship diagram of a database schema, not an architecture diagram):",
33
+ "- Node `type` MUST be db.table, db.view or db.collection (MongoDB). Never use catalog types here.",
34
+ "- CREATE mode: each node's `label` is the table name and `data.db` holds the schema facts:",
35
+ ' {"db": {"schema"?: "public", "columns": [{"name": "id", "dataType": "uuid", "primaryKey": true}, {"name": "email", "dataType": "varchar(255)", "unique": true}, {"name": "created_at", "dataType": "timestamp", "nullable": false}], "comment"?: "…"}}.',
36
+ " Use the database's own type names. Mark primary keys, unique columns, nullable columns, defaults and foreign-key columns (name them <parent>_id).",
37
+ "- Edges are RELATIONSHIPS: `source` is the child (foreign-key) table, `target` the parent; `data.db` names the columns and the cardinality:",
38
+ ' {"db": {"sourceColumns": ["user_id"], "targetColumns": ["id"], "cardinality": "N:1"}} (also "1:1", "1:N", "N:M"). No markers/routing needed.',
39
+ "- Sizes/positions are optional (the app sizes tables from their columns and lays the diagram out).",
40
+ "- EDIT mode: use the DATABASE OPS (addTable, addColumn, alterColumn, addRelationship, …) — they edit the schema by meaning.",
41
+ " The CURRENT DIAGRAM block is the schema view: tables with columns and keys, relationships as table.column pairs, hidden tables.",
42
+ "- Model what a real database of this domain has: keys, timestamps, status columns, junction tables for N:M, sensible types.",
43
+ ];
30
44
  const EDIT_AS_OPS_SECTION = (kind) => [
31
45
  "",
32
46
  "EDIT MODE OUTPUT (this session): do NOT re-emit the document. Respond with",
@@ -35,7 +49,7 @@ const EDIT_AS_OPS_SECTION = (kind) => [
35
49
  "without geometry — positions are the app's business. CREATE mode is unchanged: emit the",
36
50
  "whole document under `diagram` and leave `ops` null.",
37
51
  "",
38
- (0, opsReference_js_1.renderDiagramOpsReference)(kind === "bpmn" ? "bpmn" : "canvas"),
52
+ (0, opsReference_js_1.renderDiagramOpsReference)(kind === "bpmn" ? "bpmn" : kind === "database" ? "database" : "canvas"),
39
53
  ];
40
54
  const buildDiagramSystemPrompt = (options = {}) => [
41
55
  "You are a STAFF-level software/systems architect and domain expert embedded in a visual",
@@ -137,6 +151,7 @@ const buildDiagramSystemPrompt = (options = {}) => [
137
151
  " try to hand-pack children into a box; let the layout do it.",
138
152
  "- Edges may connect a child to a node outside its container, or to the container itself.",
139
153
  ...(options.diagramKind === "bpmn" ? BPMN_SECTION() : []),
154
+ ...(options.diagramKind === "database" ? DATABASE_SECTION() : []),
140
155
  ...(options.editOutput === "ops" ? EDIT_AS_OPS_SECTION(options.diagramKind) : []),
141
156
  ].join("\n");
142
157
  exports.buildDiagramSystemPrompt = buildDiagramSystemPrompt;
@@ -147,22 +162,24 @@ const buildDiagramUserPrompt = ({ instruction, mode, document, components = [],
147
162
  // Ops mode: the model sees the graph (ids, types, labels, containers,
148
163
  // connections) and never the geometry — ~70% smaller and nothing to scramble.
149
164
  const documentBlock = mode === "edit" && document
150
- ? editOutput === "ops"
151
- ? JSON.stringify((0, views_js_1.diagramGraphView)(document))
152
- : JSON.stringify(document)
165
+ ? diagramKind === "database"
166
+ ? JSON.stringify((0, views_js_1.databaseSchemaView)(document))
167
+ : editOutput === "ops"
168
+ ? JSON.stringify((0, views_js_1.diagramGraphView)(document))
169
+ : JSON.stringify(document)
153
170
  : "(none — creating a new diagram)";
154
171
  const canvasLine = canvas && (canvas.width || canvas.height)
155
172
  ? `CANVAS SIZE: ${Math.round(canvas.width ?? 0)} x ${Math.round(canvas.height ?? 0)}`
156
173
  : null;
157
174
  return [
158
175
  `MODE: ${mode}`,
159
- diagramKind === "bpmn" ? "DIAGRAM KIND: bpmn (BPMN 2.0 process; use bpmn.* types only)" : null,
176
+ diagramKind === "bpmn" ? "DIAGRAM KIND: bpmn (BPMN 2.0 process; use bpmn.* types only)" : diagramKind === "database" ? "DIAGRAM KIND: database (entity-relationship diagram; db.table / db.view / db.collection with data.db columns; relationships as edges)" : null,
160
177
  canvasLine,
161
178
  "",
162
179
  "AVAILABLE COMPONENT TYPES (type — label (category)):",
163
180
  componentLines,
164
181
  "",
165
- editOutput === "ops" ? "CURRENT DIAGRAM (edit mode; graph view — ids, types, labels, containers, connections):" : "CURRENT DIAGRAM (edit mode; full document JSON):",
182
+ diagramKind === "database" ? "CURRENT DIAGRAM (edit mode; schema view — tables, columns, keys, relationships, hidden tables):" : editOutput === "ops" ? "CURRENT DIAGRAM (edit mode; graph view — ids, types, labels, containers, connections):" : "CURRENT DIAGRAM (edit mode; full document JSON):",
166
183
  documentBlock,
167
184
  "",
168
185
  `SELECTED CELL IDS: ${selection.length ? selection.join(", ") : "(none)"}`,
@@ -1 +1 @@
1
- {"version":3,"file":"diagram.js","sourceRoot":"","sources":["../../../src/ai/prompts/diagram.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"diagram.js","sourceRoot":"","sources":["../../../src/ai/prompts/diagram.ts"],"names":[],"mappings":"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"}
@@ -64,11 +64,15 @@ const searchDiagramComponents = (query) => {
64
64
  };
65
65
  exports.searchDiagramComponents = searchDiagramComponents;
66
66
  // Unknown `type`s in a document (each reported once, in first-seen order).
67
+ // A source-backed diagram brings its own vocabulary: bpmn.* on a BPMN
68
+ // diagram, db.* on a database diagram (neither lives in the catalog).
67
69
  const validateComponentTypes = (doc) => {
68
70
  const unknown = [];
69
71
  const seen = new Set();
72
+ const format = doc.source?.format;
73
+ const ownVocabulary = (type) => (format === "bpmn" && type.startsWith("bpmn.")) || (format === "database" && (type === "db.table" || type === "db.view" || type === "db.collection"));
70
74
  for (const node of doc.nodes) {
71
- if (byType.has(node.type) || seen.has(node.type))
75
+ if (byType.has(node.type) || ownVocabulary(node.type) || seen.has(node.type))
72
76
  continue;
73
77
  seen.add(node.type);
74
78
  unknown.push(node.type);
@@ -1 +1 @@
1
- {"version":3,"file":"componentCatalog.js","sourceRoot":"","sources":["../../src/diagram/componentCatalog.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"componentCatalog.js","sourceRoot":"","sources":["../../src/diagram/componentCatalog.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,119 @@
1
+ "use strict";
2
+ // Model → diagram: the nodes and edges a database model implies, as ops
3
+ // against the current document (mirror of bpmn/derive: what is missing is
4
+ // added, what is gone is removed, what changed is updated — positions are
5
+ // never touched except for brand-new tables, which the host lays out).
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ exports.syncOpsFromDatabase = exports.parseDatabaseSource = void 0;
8
+ const model_js_1 = require("./model.js");
9
+ const types_js_1 = require("./types.js");
10
+ const parseDatabaseSource = (text) => (0, model_js_1.parseDatabaseModel)(text);
11
+ exports.parseDatabaseSource = parseDatabaseSource;
12
+ const sameJson = (a, b) => JSON.stringify(a ?? null) === JSON.stringify(b ?? null);
13
+ const syncOpsFromDatabase = (doc, model) => {
14
+ const ops = [];
15
+ const addedNodeIds = [];
16
+ const removedNodeIds = [];
17
+ const unpositionedNodeIds = [];
18
+ const existingNodes = new Map(doc.nodes.map((node) => [node.id, node]));
19
+ const existingEdges = new Map(doc.edges.map((edge) => [edge.id, edge]));
20
+ const wantedEntities = new Map(model.entities.map((entity) => [entity.id, entity]));
21
+ const wantedRelationships = new Map(model.relationships.map((relationship) => [relationship.id, relationship]));
22
+ // Edges of relationships that are gone (only the diagram's own database edges).
23
+ for (const edge of doc.edges) {
24
+ if (!wantedRelationships.has(edge.id) && (0, types_js_1.dbEdgeData)(edge.data))
25
+ ops.push({ op: "removeEdge", id: edge.id });
26
+ }
27
+ // Tables that are gone.
28
+ for (const node of doc.nodes) {
29
+ if ((0, types_js_1.isDatabaseType)(node.type) && !wantedEntities.has(node.id)) {
30
+ ops.push({ op: "removeNode", id: node.id, children: "lift" });
31
+ removedNodeIds.push(node.id);
32
+ }
33
+ }
34
+ for (const entity of model.entities) {
35
+ const existing = existingNodes.get(entity.id);
36
+ const type = (0, types_js_1.databaseTypeForKind)(entity.kind);
37
+ const data = { name: entity.name, ...(entity.schema ? { schema: entity.schema } : {}), kind: entity.kind, columns: entity.columns.length };
38
+ const label = (0, model_js_1.entityQualifiedName)(entity);
39
+ if (!existing) {
40
+ const node = {
41
+ id: entity.id,
42
+ type,
43
+ position: { x: 0, y: 0 },
44
+ size: (0, types_js_1.databaseEntitySize)(entity),
45
+ label,
46
+ data: { db: data },
47
+ };
48
+ ops.push({ op: "addNode", node });
49
+ addedNodeIds.push(entity.id);
50
+ unpositionedNodeIds.push(entity.id);
51
+ continue;
52
+ }
53
+ const changes = {};
54
+ if (existing.type !== type)
55
+ changes.type = type;
56
+ if ((existing.label ?? null) !== label)
57
+ changes.label = label;
58
+ const previousData = (0, types_js_1.dbNodeData)(existing.data);
59
+ if (!sameJson(previousData, data) || existing.data?.db !== undefined && existing.data.db.columnInputs !== undefined)
60
+ changes.data = { db: data };
61
+ if (Object.keys(changes).length > 0)
62
+ ops.push({ op: "updateNode", id: entity.id, changes });
63
+ // Height follows the column count; the width is the user's (only widened
64
+ // when a new column no longer fits a never-resized box).
65
+ const previousCount = previousData?.columns ?? entity.columns.length;
66
+ if (previousCount !== entity.columns.length || !previousData) {
67
+ const auto = (0, types_js_1.databaseEntitySize)(entity, Boolean(existing.collapsed));
68
+ const height = (0, types_js_1.databaseNodeHeight)(entity.columns.length, Boolean(existing.collapsed));
69
+ const width = Math.max(existing.size.width, previousData ? 0 : auto.width);
70
+ if (Math.abs(height - existing.size.height) >= 0.5 || Math.abs(width - existing.size.width) >= 0.5) {
71
+ ops.push({ op: "resizeNode", id: entity.id, size: { width, height } });
72
+ }
73
+ }
74
+ }
75
+ for (const relationship of model.relationships) {
76
+ if (!wantedEntities.has(relationship.source.entityId) || !wantedEntities.has(relationship.target.entityId))
77
+ continue;
78
+ const existing = existingEdges.get(relationship.id);
79
+ const data = {
80
+ cardinality: relationship.cardinality,
81
+ kind: relationship.kind,
82
+ sourceColumns: [...relationship.source.columnIds],
83
+ targetColumns: [...relationship.target.columnIds],
84
+ ...(relationship.name ? { name: relationship.name } : {}),
85
+ };
86
+ const markers = (0, types_js_1.markersForRelationship)(model, relationship);
87
+ if (!existing) {
88
+ const edge = {
89
+ id: relationship.id,
90
+ source: relationship.source.entityId,
91
+ target: relationship.target.entityId,
92
+ ...(relationship.label ? { label: relationship.label } : {}),
93
+ markerStart: markers.markerStart,
94
+ markerEnd: markers.markerEnd,
95
+ data: { db: data },
96
+ };
97
+ ops.push({ op: "addEdge", edge });
98
+ continue;
99
+ }
100
+ const changes = {};
101
+ if (existing.source !== relationship.source.entityId)
102
+ changes.source = relationship.source.entityId;
103
+ if (existing.target !== relationship.target.entityId)
104
+ changes.target = relationship.target.entityId;
105
+ if ((relationship.label ?? null) !== (existing.label ?? null))
106
+ changes.label = relationship.label ?? null;
107
+ if ((existing.markerStart ?? null) !== markers.markerStart)
108
+ changes.markerStart = markers.markerStart;
109
+ if ((existing.markerEnd ?? null) !== markers.markerEnd)
110
+ changes.markerEnd = markers.markerEnd;
111
+ if (!sameJson((0, types_js_1.dbEdgeData)(existing.data), data))
112
+ changes.data = { db: data };
113
+ if (Object.keys(changes).length > 0)
114
+ ops.push({ op: "updateEdge", id: relationship.id, changes });
115
+ }
116
+ return { ops, addedNodeIds, removedNodeIds, unpositionedNodeIds };
117
+ };
118
+ exports.syncOpsFromDatabase = syncOpsFromDatabase;
119
+ //# sourceMappingURL=derive.js.map