@sun-asterisk/sungen 1.0.24 → 2.0.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 (362) hide show
  1. package/README.md +198 -74
  2. package/dist/cli/commands/add.d.ts.map +1 -1
  3. package/dist/cli/commands/add.js +5 -3
  4. package/dist/cli/commands/add.js.map +1 -1
  5. package/dist/cli/commands/generate.d.ts.map +1 -1
  6. package/dist/cli/commands/generate.js +110 -35
  7. package/dist/cli/commands/generate.js.map +1 -1
  8. package/dist/cli/index.d.ts +2 -2
  9. package/dist/cli/index.js +5 -16
  10. package/dist/cli/index.js.map +1 -1
  11. package/dist/generators/test-generator/adapters/playwright/templates/steps/actions/frame-enter-action.hbs +1 -0
  12. package/dist/generators/test-generator/adapters/playwright/templates/steps/actions/frame-exit-action.hbs +1 -0
  13. package/dist/generators/test-generator/adapters/playwright/templates/steps/actions/keyboard-global-action.hbs +1 -0
  14. package/dist/generators/test-generator/adapters/playwright/templates/steps/actions/scroll-action.hbs +1 -0
  15. package/dist/generators/test-generator/adapters/playwright/templates/steps/actions/table-action-in-row.hbs +2 -0
  16. package/dist/generators/test-generator/adapters/playwright/templates/steps/assertions/table-cell-by-filter.hbs +3 -0
  17. package/dist/generators/test-generator/adapters/playwright/templates/steps/assertions/table-cell-by-index.hbs +3 -0
  18. package/dist/generators/test-generator/adapters/playwright/templates/steps/assertions/table-column-exists.hbs +2 -0
  19. package/dist/generators/test-generator/adapters/playwright/templates/steps/assertions/table-empty.hbs +2 -0
  20. package/dist/generators/test-generator/adapters/playwright/templates/steps/assertions/table-row-count.hbs +2 -0
  21. package/dist/generators/test-generator/adapters/playwright/templates/steps/assertions/table-row-exists.hbs +2 -0
  22. package/dist/generators/test-generator/adapters/playwright/templates/steps/assertions/table-row-not-exists.hbs +2 -0
  23. package/dist/generators/test-generator/adapters/playwright/templates/steps/assertions/visible-with-value-assertion.hbs +1 -1
  24. package/dist/generators/test-generator/adapters/playwright/templates/steps/partials/locator-base.hbs +11 -2
  25. package/dist/generators/test-generator/adapters/playwright/templates/steps/partials/locator.hbs +11 -2
  26. package/dist/generators/test-generator/code-generator.d.ts +0 -1
  27. package/dist/generators/test-generator/code-generator.d.ts.map +1 -1
  28. package/dist/generators/test-generator/code-generator.js +0 -47
  29. package/dist/generators/test-generator/code-generator.js.map +1 -1
  30. package/dist/generators/test-generator/patterns/assertion-patterns.d.ts.map +1 -1
  31. package/dist/generators/test-generator/patterns/assertion-patterns.js +2 -0
  32. package/dist/generators/test-generator/patterns/assertion-patterns.js.map +1 -1
  33. package/dist/generators/test-generator/patterns/index.d.ts +4 -1
  34. package/dist/generators/test-generator/patterns/index.d.ts.map +1 -1
  35. package/dist/generators/test-generator/patterns/index.js +17 -5
  36. package/dist/generators/test-generator/patterns/index.js.map +1 -1
  37. package/dist/generators/test-generator/patterns/interaction-patterns.js +1 -1
  38. package/dist/generators/test-generator/patterns/interaction-patterns.js.map +1 -1
  39. package/dist/generators/test-generator/patterns/keyboard-patterns.d.ts +7 -0
  40. package/dist/generators/test-generator/patterns/keyboard-patterns.d.ts.map +1 -0
  41. package/dist/generators/test-generator/patterns/keyboard-patterns.js +47 -0
  42. package/dist/generators/test-generator/patterns/keyboard-patterns.js.map +1 -0
  43. package/dist/generators/test-generator/patterns/scope-patterns.d.ts +7 -0
  44. package/dist/generators/test-generator/patterns/scope-patterns.d.ts.map +1 -0
  45. package/dist/generators/test-generator/patterns/scope-patterns.js +36 -0
  46. package/dist/generators/test-generator/patterns/scope-patterns.js.map +1 -0
  47. package/dist/generators/test-generator/patterns/scroll-patterns.d.ts +7 -0
  48. package/dist/generators/test-generator/patterns/scroll-patterns.d.ts.map +1 -0
  49. package/dist/generators/test-generator/patterns/scroll-patterns.js +25 -0
  50. package/dist/generators/test-generator/patterns/scroll-patterns.js.map +1 -0
  51. package/dist/generators/test-generator/patterns/table-patterns.d.ts +7 -0
  52. package/dist/generators/test-generator/patterns/table-patterns.d.ts.map +1 -0
  53. package/dist/generators/test-generator/patterns/table-patterns.js +192 -0
  54. package/dist/generators/test-generator/patterns/table-patterns.js.map +1 -0
  55. package/dist/generators/test-generator/step-mapper.d.ts +1 -3
  56. package/dist/generators/test-generator/step-mapper.d.ts.map +1 -1
  57. package/dist/generators/test-generator/step-mapper.js +30 -27
  58. package/dist/generators/test-generator/step-mapper.js.map +1 -1
  59. package/dist/generators/test-generator/template-engine.d.ts.map +1 -1
  60. package/dist/generators/test-generator/template-engine.js +4 -1
  61. package/dist/generators/test-generator/template-engine.js.map +1 -1
  62. package/dist/generators/test-generator/types.d.ts +7 -24
  63. package/dist/generators/test-generator/types.d.ts.map +1 -1
  64. package/dist/generators/test-generator/types.js +2 -101
  65. package/dist/generators/test-generator/types.js.map +1 -1
  66. package/dist/generators/test-generator/utils/selector-resolver.d.ts +14 -0
  67. package/dist/generators/test-generator/utils/selector-resolver.d.ts.map +1 -1
  68. package/dist/generators/test-generator/utils/selector-resolver.js +37 -11
  69. package/dist/generators/test-generator/utils/selector-resolver.js.map +1 -1
  70. package/dist/orchestrator/project-initializer.d.ts +8 -0
  71. package/dist/orchestrator/project-initializer.d.ts.map +1 -1
  72. package/dist/orchestrator/project-initializer.js +343 -32
  73. package/dist/orchestrator/project-initializer.js.map +1 -1
  74. package/dist/orchestrator/screen-manager.d.ts +1 -32
  75. package/dist/orchestrator/screen-manager.d.ts.map +1 -1
  76. package/dist/orchestrator/screen-manager.js +55 -216
  77. package/dist/orchestrator/screen-manager.js.map +1 -1
  78. package/dist/utils/selector-types.d.ts +1 -1
  79. package/dist/utils/selector-types.d.ts.map +1 -1
  80. package/dist/utils/selector-types.js +3 -0
  81. package/dist/utils/selector-types.js.map +1 -1
  82. package/package.json +2 -2
  83. package/src/cli/commands/add.ts +5 -3
  84. package/src/cli/commands/generate.ts +90 -38
  85. package/src/cli/index.ts +5 -16
  86. package/src/generators/test-generator/adapters/playwright/templates/steps/actions/frame-enter-action.hbs +1 -0
  87. package/src/generators/test-generator/adapters/playwright/templates/steps/actions/frame-exit-action.hbs +1 -0
  88. package/src/generators/test-generator/adapters/playwright/templates/steps/actions/keyboard-global-action.hbs +1 -0
  89. package/src/generators/test-generator/adapters/playwright/templates/steps/actions/scroll-action.hbs +1 -0
  90. package/src/generators/test-generator/adapters/playwright/templates/steps/actions/table-action-in-row.hbs +2 -0
  91. package/src/generators/test-generator/adapters/playwright/templates/steps/assertions/table-cell-by-filter.hbs +3 -0
  92. package/src/generators/test-generator/adapters/playwright/templates/steps/assertions/table-cell-by-index.hbs +3 -0
  93. package/src/generators/test-generator/adapters/playwright/templates/steps/assertions/table-column-exists.hbs +2 -0
  94. package/src/generators/test-generator/adapters/playwright/templates/steps/assertions/table-empty.hbs +2 -0
  95. package/src/generators/test-generator/adapters/playwright/templates/steps/assertions/table-row-count.hbs +2 -0
  96. package/src/generators/test-generator/adapters/playwright/templates/steps/assertions/table-row-exists.hbs +2 -0
  97. package/src/generators/test-generator/adapters/playwright/templates/steps/assertions/table-row-not-exists.hbs +2 -0
  98. package/src/generators/test-generator/adapters/playwright/templates/steps/assertions/visible-with-value-assertion.hbs +1 -1
  99. package/src/generators/test-generator/adapters/playwright/templates/steps/partials/locator-base.hbs +11 -2
  100. package/src/generators/test-generator/adapters/playwright/templates/steps/partials/locator.hbs +11 -2
  101. package/src/generators/test-generator/code-generator.ts +0 -59
  102. package/src/generators/test-generator/patterns/assertion-patterns.ts +2 -0
  103. package/src/generators/test-generator/patterns/index.ts +12 -3
  104. package/src/generators/test-generator/patterns/interaction-patterns.ts +1 -1
  105. package/src/generators/test-generator/patterns/keyboard-patterns.ts +51 -0
  106. package/src/generators/test-generator/patterns/scope-patterns.ts +40 -0
  107. package/src/generators/test-generator/patterns/scroll-patterns.ts +27 -0
  108. package/src/generators/test-generator/patterns/table-patterns.ts +232 -0
  109. package/src/generators/test-generator/step-mapper.ts +33 -27
  110. package/src/generators/test-generator/template-engine.ts +3 -1
  111. package/src/generators/test-generator/types.ts +7 -112
  112. package/src/generators/test-generator/utils/selector-resolver.ts +70 -25
  113. package/src/orchestrator/project-initializer.ts +345 -32
  114. package/src/orchestrator/screen-manager.ts +61 -233
  115. package/src/utils/selector-types.ts +3 -0
  116. package/dist/cli/commands/cache-clear.d.ts +0 -3
  117. package/dist/cli/commands/cache-clear.d.ts.map +0 -1
  118. package/dist/cli/commands/cache-clear.js +0 -24
  119. package/dist/cli/commands/cache-clear.js.map +0 -1
  120. package/dist/cli/commands/full.d.ts +0 -3
  121. package/dist/cli/commands/full.d.ts.map +0 -1
  122. package/dist/cli/commands/full.js +0 -37
  123. package/dist/cli/commands/full.js.map +0 -1
  124. package/dist/cli/commands/live-scan.d.ts +0 -3
  125. package/dist/cli/commands/live-scan.d.ts.map +0 -1
  126. package/dist/cli/commands/live-scan.js +0 -78
  127. package/dist/cli/commands/live-scan.js.map +0 -1
  128. package/dist/cli/commands/map.d.ts +0 -3
  129. package/dist/cli/commands/map.d.ts.map +0 -1
  130. package/dist/cli/commands/map.js +0 -93
  131. package/dist/cli/commands/map.js.map +0 -1
  132. package/dist/cli/commands/validate.d.ts +0 -3
  133. package/dist/cli/commands/validate.d.ts.map +0 -1
  134. package/dist/cli/commands/validate.js +0 -43
  135. package/dist/cli/commands/validate.js.map +0 -1
  136. package/dist/cli/utils.d.ts +0 -6
  137. package/dist/cli/utils.d.ts.map +0 -1
  138. package/dist/cli/utils.js +0 -101
  139. package/dist/cli/utils.js.map +0 -1
  140. package/dist/config/config-loader.d.ts +0 -51
  141. package/dist/config/config-loader.d.ts.map +0 -1
  142. package/dist/config/config-loader.js +0 -216
  143. package/dist/config/config-loader.js.map +0 -1
  144. package/dist/config/config-schema.d.ts +0 -121
  145. package/dist/config/config-schema.d.ts.map +0 -1
  146. package/dist/config/config-schema.js +0 -7
  147. package/dist/config/config-schema.js.map +0 -1
  148. package/dist/core/live-scanner/config-reader.d.ts +0 -10
  149. package/dist/core/live-scanner/config-reader.d.ts.map +0 -1
  150. package/dist/core/live-scanner/config-reader.js +0 -87
  151. package/dist/core/live-scanner/config-reader.js.map +0 -1
  152. package/dist/core/live-scanner/element-finder.d.ts +0 -20
  153. package/dist/core/live-scanner/element-finder.d.ts.map +0 -1
  154. package/dist/core/live-scanner/element-finder.js +0 -481
  155. package/dist/core/live-scanner/element-finder.js.map +0 -1
  156. package/dist/core/live-scanner/index.d.ts +0 -8
  157. package/dist/core/live-scanner/index.d.ts.map +0 -1
  158. package/dist/core/live-scanner/index.js +0 -33
  159. package/dist/core/live-scanner/index.js.map +0 -1
  160. package/dist/core/live-scanner/matrix-reader.d.ts +0 -17
  161. package/dist/core/live-scanner/matrix-reader.d.ts.map +0 -1
  162. package/dist/core/live-scanner/matrix-reader.js +0 -60
  163. package/dist/core/live-scanner/matrix-reader.js.map +0 -1
  164. package/dist/core/live-scanner/matrix-writer.d.ts +0 -7
  165. package/dist/core/live-scanner/matrix-writer.d.ts.map +0 -1
  166. package/dist/core/live-scanner/matrix-writer.js +0 -103
  167. package/dist/core/live-scanner/matrix-writer.js.map +0 -1
  168. package/dist/core/live-scanner/role-fallback.d.ts +0 -15
  169. package/dist/core/live-scanner/role-fallback.d.ts.map +0 -1
  170. package/dist/core/live-scanner/role-fallback.js +0 -46
  171. package/dist/core/live-scanner/role-fallback.js.map +0 -1
  172. package/dist/core/live-scanner/scanner.d.ts +0 -22
  173. package/dist/core/live-scanner/scanner.d.ts.map +0 -1
  174. package/dist/core/live-scanner/scanner.js +0 -303
  175. package/dist/core/live-scanner/scanner.js.map +0 -1
  176. package/dist/core/live-scanner/step-replayer.d.ts +0 -26
  177. package/dist/core/live-scanner/step-replayer.d.ts.map +0 -1
  178. package/dist/core/live-scanner/step-replayer.js +0 -473
  179. package/dist/core/live-scanner/step-replayer.js.map +0 -1
  180. package/dist/core/live-scanner/types.d.ts +0 -52
  181. package/dist/core/live-scanner/types.d.ts.map +0 -1
  182. package/dist/core/live-scanner/types.js +0 -14
  183. package/dist/core/live-scanner/types.js.map +0 -1
  184. package/dist/core/selector-base/annotation-handler.d.ts +0 -45
  185. package/dist/core/selector-base/annotation-handler.d.ts.map +0 -1
  186. package/dist/core/selector-base/annotation-handler.js +0 -102
  187. package/dist/core/selector-base/annotation-handler.js.map +0 -1
  188. package/dist/core/selector-base/base-generator.d.ts +0 -49
  189. package/dist/core/selector-base/base-generator.d.ts.map +0 -1
  190. package/dist/core/selector-base/base-generator.js +0 -214
  191. package/dist/core/selector-base/base-generator.js.map +0 -1
  192. package/dist/core/selector-base/gherkin-parser.d.ts +0 -24
  193. package/dist/core/selector-base/gherkin-parser.d.ts.map +0 -1
  194. package/dist/core/selector-base/gherkin-parser.js +0 -42
  195. package/dist/core/selector-base/gherkin-parser.js.map +0 -1
  196. package/dist/core/selector-mapper/priority-mapper.d.ts +0 -74
  197. package/dist/core/selector-mapper/priority-mapper.d.ts.map +0 -1
  198. package/dist/core/selector-mapper/priority-mapper.js +0 -477
  199. package/dist/core/selector-mapper/priority-mapper.js.map +0 -1
  200. package/dist/core/ui-scanner/heuristics/base-heuristic.d.ts +0 -91
  201. package/dist/core/ui-scanner/heuristics/base-heuristic.d.ts.map +0 -1
  202. package/dist/core/ui-scanner/heuristics/base-heuristic.js +0 -175
  203. package/dist/core/ui-scanner/heuristics/base-heuristic.js.map +0 -1
  204. package/dist/core/ui-scanner/react-scanner.d.ts +0 -32
  205. package/dist/core/ui-scanner/react-scanner.d.ts.map +0 -1
  206. package/dist/core/ui-scanner/react-scanner.js +0 -163
  207. package/dist/core/ui-scanner/react-scanner.js.map +0 -1
  208. package/dist/core/ui-scanner/scanner-interface.d.ts +0 -94
  209. package/dist/core/ui-scanner/scanner-interface.d.ts.map +0 -1
  210. package/dist/core/ui-scanner/scanner-interface.js +0 -33
  211. package/dist/core/ui-scanner/scanner-interface.js.map +0 -1
  212. package/dist/core/ui-scanner/strict-scanner.d.ts +0 -81
  213. package/dist/core/ui-scanner/strict-scanner.d.ts.map +0 -1
  214. package/dist/core/ui-scanner/strict-scanner.js +0 -511
  215. package/dist/core/ui-scanner/strict-scanner.js.map +0 -1
  216. package/dist/core/validator/data-validator.d.ts +0 -38
  217. package/dist/core/validator/data-validator.d.ts.map +0 -1
  218. package/dist/core/validator/data-validator.js +0 -212
  219. package/dist/core/validator/data-validator.js.map +0 -1
  220. package/dist/core/validator/feature-validator.d.ts +0 -27
  221. package/dist/core/validator/feature-validator.d.ts.map +0 -1
  222. package/dist/core/validator/feature-validator.js +0 -182
  223. package/dist/core/validator/feature-validator.js.map +0 -1
  224. package/dist/core/validator/index.d.ts +0 -46
  225. package/dist/core/validator/index.d.ts.map +0 -1
  226. package/dist/core/validator/index.js +0 -17
  227. package/dist/core/validator/index.js.map +0 -1
  228. package/dist/core/validator/screen-validator.d.ts +0 -35
  229. package/dist/core/validator/screen-validator.d.ts.map +0 -1
  230. package/dist/core/validator/screen-validator.js +0 -195
  231. package/dist/core/validator/screen-validator.js.map +0 -1
  232. package/dist/core/validator/selector-validator.d.ts +0 -36
  233. package/dist/core/validator/selector-validator.d.ts.map +0 -1
  234. package/dist/core/validator/selector-validator.js +0 -210
  235. package/dist/core/validator/selector-validator.js.map +0 -1
  236. package/dist/external/ai-provider.d.ts +0 -60
  237. package/dist/external/ai-provider.d.ts.map +0 -1
  238. package/dist/external/ai-provider.js +0 -30
  239. package/dist/external/ai-provider.js.map +0 -1
  240. package/dist/external/anthropic-provider.d.ts +0 -29
  241. package/dist/external/anthropic-provider.d.ts.map +0 -1
  242. package/dist/external/anthropic-provider.js +0 -85
  243. package/dist/external/anthropic-provider.js.map +0 -1
  244. package/dist/generators/cache/cache-manager.d.ts +0 -66
  245. package/dist/generators/cache/cache-manager.d.ts.map +0 -1
  246. package/dist/generators/cache/cache-manager.js +0 -286
  247. package/dist/generators/cache/cache-manager.js.map +0 -1
  248. package/dist/generators/dsl-writer/index.d.ts +0 -33
  249. package/dist/generators/dsl-writer/index.d.ts.map +0 -1
  250. package/dist/generators/dsl-writer/index.js +0 -226
  251. package/dist/generators/dsl-writer/index.js.map +0 -1
  252. package/dist/generators/scaffold-generator/index.d.ts +0 -162
  253. package/dist/generators/scaffold-generator/index.d.ts.map +0 -1
  254. package/dist/generators/scaffold-generator/index.js +0 -877
  255. package/dist/generators/scaffold-generator/index.js.map +0 -1
  256. package/dist/generators/selector-mapper/ai-mapper.d.ts +0 -56
  257. package/dist/generators/selector-mapper/ai-mapper.d.ts.map +0 -1
  258. package/dist/generators/selector-mapper/ai-mapper.js +0 -457
  259. package/dist/generators/selector-mapper/ai-mapper.js.map +0 -1
  260. package/dist/generators/selector-mapper/hybrid-mapper.d.ts +0 -67
  261. package/dist/generators/selector-mapper/hybrid-mapper.d.ts.map +0 -1
  262. package/dist/generators/selector-mapper/hybrid-mapper.js +0 -349
  263. package/dist/generators/selector-mapper/hybrid-mapper.js.map +0 -1
  264. package/dist/generators/selector-mapper/index.d.ts +0 -8
  265. package/dist/generators/selector-mapper/index.d.ts.map +0 -1
  266. package/dist/generators/selector-mapper/index.js +0 -12
  267. package/dist/generators/selector-mapper/index.js.map +0 -1
  268. package/dist/generators/selector-mapper/intelligent-mapper.d.ts +0 -125
  269. package/dist/generators/selector-mapper/intelligent-mapper.d.ts.map +0 -1
  270. package/dist/generators/selector-mapper/intelligent-mapper.js +0 -391
  271. package/dist/generators/selector-mapper/intelligent-mapper.js.map +0 -1
  272. package/dist/generators/test-generator/ai-step-mapper.d.ts +0 -27
  273. package/dist/generators/test-generator/ai-step-mapper.d.ts.map +0 -1
  274. package/dist/generators/test-generator/ai-step-mapper.js +0 -204
  275. package/dist/generators/test-generator/ai-step-mapper.js.map +0 -1
  276. package/dist/generators/test-generator/auth-setup-generator.d.ts +0 -18
  277. package/dist/generators/test-generator/auth-setup-generator.d.ts.map +0 -1
  278. package/dist/generators/test-generator/auth-setup-generator.js +0 -82
  279. package/dist/generators/test-generator/auth-setup-generator.js.map +0 -1
  280. package/dist/generators/test-generator/patterns/legacy-patterns.d.ts +0 -7
  281. package/dist/generators/test-generator/patterns/legacy-patterns.d.ts.map +0 -1
  282. package/dist/generators/test-generator/patterns/legacy-patterns.js +0 -98
  283. package/dist/generators/test-generator/patterns/legacy-patterns.js.map +0 -1
  284. package/dist/generators/test-generator/templates/auth-setup.ts.hbs +0 -36
  285. package/dist/generators/ui-model-builder/deep-scanner.d.ts +0 -121
  286. package/dist/generators/ui-model-builder/deep-scanner.d.ts.map +0 -1
  287. package/dist/generators/ui-model-builder/deep-scanner.js +0 -1113
  288. package/dist/generators/ui-model-builder/deep-scanner.js.map +0 -1
  289. package/dist/generators/ui-model-builder/enhanced-deep-scanner.d.ts +0 -110
  290. package/dist/generators/ui-model-builder/enhanced-deep-scanner.d.ts.map +0 -1
  291. package/dist/generators/ui-model-builder/enhanced-deep-scanner.js +0 -608
  292. package/dist/generators/ui-model-builder/enhanced-deep-scanner.js.map +0 -1
  293. package/dist/generators/ui-model-builder/react-scanner.d.ts +0 -107
  294. package/dist/generators/ui-model-builder/react-scanner.d.ts.map +0 -1
  295. package/dist/generators/ui-model-builder/react-scanner.js +0 -797
  296. package/dist/generators/ui-model-builder/react-scanner.js.map +0 -1
  297. package/dist/orchestrator/cache-manager.d.ts +0 -15
  298. package/dist/orchestrator/cache-manager.d.ts.map +0 -1
  299. package/dist/orchestrator/cache-manager.js +0 -62
  300. package/dist/orchestrator/cache-manager.js.map +0 -1
  301. package/dist/orchestrator/pipeline.d.ts +0 -56
  302. package/dist/orchestrator/pipeline.d.ts.map +0 -1
  303. package/dist/orchestrator/pipeline.js +0 -298
  304. package/dist/orchestrator/pipeline.js.map +0 -1
  305. package/dist/orchestrator/reporter.d.ts +0 -15
  306. package/dist/orchestrator/reporter.d.ts.map +0 -1
  307. package/dist/orchestrator/reporter.js +0 -30
  308. package/dist/orchestrator/reporter.js.map +0 -1
  309. package/src/cli/commands/cache-clear.ts +0 -22
  310. package/src/cli/commands/full.ts +0 -35
  311. package/src/cli/commands/live-scan.ts +0 -82
  312. package/src/cli/commands/map.ts +0 -97
  313. package/src/cli/commands/validate.ts +0 -43
  314. package/src/cli/utils.ts +0 -106
  315. package/src/config/ai-providers.yaml +0 -56
  316. package/src/config/config-loader.ts +0 -248
  317. package/src/config/config-schema.ts +0 -148
  318. package/src/config/default.config.yaml +0 -107
  319. package/src/config/framework.config.yaml +0 -52
  320. package/src/config/routes.yaml +0 -31
  321. package/src/core/live-scanner/config-reader.ts +0 -57
  322. package/src/core/live-scanner/element-finder.ts +0 -534
  323. package/src/core/live-scanner/index.ts +0 -7
  324. package/src/core/live-scanner/matrix-reader.ts +0 -65
  325. package/src/core/live-scanner/matrix-writer.ts +0 -77
  326. package/src/core/live-scanner/role-fallback.ts +0 -44
  327. package/src/core/live-scanner/scanner.ts +0 -321
  328. package/src/core/live-scanner/step-replayer.ts +0 -503
  329. package/src/core/live-scanner/types.ts +0 -58
  330. package/src/core/selector-base/annotation-handler.ts +0 -127
  331. package/src/core/selector-base/base-generator.ts +0 -234
  332. package/src/core/selector-base/gherkin-parser.ts +0 -57
  333. package/src/core/selector-mapper/priority-mapper.ts +0 -607
  334. package/src/core/ui-scanner/heuristics/base-heuristic.ts +0 -216
  335. package/src/core/ui-scanner/react-scanner.ts +0 -156
  336. package/src/core/ui-scanner/scanner-interface.ts +0 -133
  337. package/src/core/ui-scanner/strict-scanner.ts +0 -629
  338. package/src/core/validator/data-validator.ts +0 -202
  339. package/src/core/validator/feature-validator.ts +0 -176
  340. package/src/core/validator/index.ts +0 -57
  341. package/src/core/validator/screen-validator.ts +0 -209
  342. package/src/core/validator/selector-validator.ts +0 -209
  343. package/src/external/ai-provider.ts +0 -90
  344. package/src/external/anthropic-provider.ts +0 -114
  345. package/src/generators/README.md +0 -410
  346. package/src/generators/cache/cache-manager.ts +0 -322
  347. package/src/generators/dsl-writer/index.ts +0 -253
  348. package/src/generators/scaffold-generator/index.ts +0 -1029
  349. package/src/generators/selector-mapper/ai-mapper.ts +0 -528
  350. package/src/generators/selector-mapper/hybrid-mapper.ts +0 -427
  351. package/src/generators/selector-mapper/index.ts +0 -10
  352. package/src/generators/selector-mapper/intelligent-mapper.ts +0 -530
  353. package/src/generators/test-generator/ai-step-mapper.ts +0 -224
  354. package/src/generators/test-generator/auth-setup-generator.ts +0 -59
  355. package/src/generators/test-generator/patterns/legacy-patterns.ts +0 -104
  356. package/src/generators/test-generator/templates/auth-setup.ts.hbs +0 -36
  357. package/src/generators/ui-model-builder/deep-scanner.ts +0 -1244
  358. package/src/generators/ui-model-builder/enhanced-deep-scanner.ts +0 -731
  359. package/src/generators/ui-model-builder/react-scanner.ts +0 -959
  360. package/src/orchestrator/cache-manager.ts +0 -32
  361. package/src/orchestrator/pipeline.ts +0 -354
  362. package/src/orchestrator/reporter.ts +0 -36
@@ -1,175 +0,0 @@
1
- "use strict";
2
- /**
3
- * Base Heuristic Interface
4
- * All element detection heuristics implement this interface
5
- */
6
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
7
- if (k2 === undefined) k2 = k;
8
- var desc = Object.getOwnPropertyDescriptor(m, k);
9
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
10
- desc = { enumerable: true, get: function() { return m[k]; } };
11
- }
12
- Object.defineProperty(o, k2, desc);
13
- }) : (function(o, m, k, k2) {
14
- if (k2 === undefined) k2 = k;
15
- o[k2] = m[k];
16
- }));
17
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
18
- Object.defineProperty(o, "default", { enumerable: true, value: v });
19
- }) : function(o, v) {
20
- o["default"] = v;
21
- });
22
- var __importStar = (this && this.__importStar) || (function () {
23
- var ownKeys = function(o) {
24
- ownKeys = Object.getOwnPropertyNames || function (o) {
25
- var ar = [];
26
- for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
27
- return ar;
28
- };
29
- return ownKeys(o);
30
- };
31
- return function (mod) {
32
- if (mod && mod.__esModule) return mod;
33
- var result = {};
34
- if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
35
- __setModuleDefault(result, mod);
36
- return result;
37
- };
38
- })();
39
- Object.defineProperty(exports, "__esModule", { value: true });
40
- exports.HeuristicHelpers = void 0;
41
- const t = __importStar(require("@babel/types"));
42
- /**
43
- * Helper functions for heuristics
44
- */
45
- class HeuristicHelpers {
46
- /**
47
- * Get JSX element name (e.g., "input", "Button")
48
- */
49
- static getElementName(node) {
50
- const openingElement = node.openingElement;
51
- if (t.isJSXIdentifier(openingElement.name)) {
52
- return openingElement.name.name;
53
- }
54
- if (t.isJSXMemberExpression(openingElement.name)) {
55
- // Handle cases like <Form.Input>
56
- return this.getMemberExpressionName(openingElement.name);
57
- }
58
- return null;
59
- }
60
- /**
61
- * Get member expression name (e.g., "Form.Input" -> "Input")
62
- */
63
- static getMemberExpressionName(expr) {
64
- if (t.isJSXIdentifier(expr.property)) {
65
- return expr.property.name;
66
- }
67
- return '';
68
- }
69
- /**
70
- * Get attribute value from JSX element
71
- */
72
- static getAttributeValue(node, attrName) {
73
- const attr = node.openingElement.attributes.find((a) => t.isJSXAttribute(a) && t.isJSXIdentifier(a.name) && a.name.name === attrName);
74
- if (!attr)
75
- return null;
76
- if (t.isStringLiteral(attr.value)) {
77
- return attr.value.value;
78
- }
79
- if (t.isJSXExpressionContainer(attr.value)) {
80
- const expr = attr.value.expression;
81
- if (t.isStringLiteral(expr)) {
82
- return expr.value;
83
- }
84
- }
85
- return null;
86
- }
87
- /**
88
- * Check if element has attribute
89
- */
90
- static hasAttribute(node, attrName) {
91
- return node.openingElement.attributes.some((a) => t.isJSXAttribute(a) && t.isJSXIdentifier(a.name) && a.name.name === attrName);
92
- }
93
- /**
94
- * Get all attributes as key-value pairs
95
- */
96
- static getAllAttributes(node) {
97
- const attrs = {};
98
- for (const attr of node.openingElement.attributes) {
99
- if (t.isJSXAttribute(attr) && t.isJSXIdentifier(attr.name)) {
100
- const value = this.getAttributeValue(node, attr.name.name);
101
- if (value) {
102
- attrs[attr.name.name] = value;
103
- }
104
- }
105
- }
106
- return attrs;
107
- }
108
- /**
109
- * Generate element ID from attributes
110
- */
111
- static generateElementId(node, counter) {
112
- // Priority: id > data-testid > name > placeholder > generated
113
- const id = this.getAttributeValue(node, 'id');
114
- if (id)
115
- return id;
116
- const testId = this.getAttributeValue(node, 'data-testid');
117
- if (testId)
118
- return testId;
119
- const name = this.getAttributeValue(node, 'name');
120
- if (name)
121
- return name;
122
- const placeholder = this.getAttributeValue(node, 'placeholder');
123
- if (placeholder) {
124
- return placeholder.toLowerCase().replace(/\s+/g, '-');
125
- }
126
- const elementName = this.getElementName(node);
127
- return `${elementName || 'element'}-${counter}`;
128
- }
129
- /**
130
- * Build CSS selector for element
131
- */
132
- static buildSelector(node) {
133
- const elementName = this.getElementName(node);
134
- if (!elementName)
135
- return '';
136
- const selectors = [elementName.toLowerCase()];
137
- // Add attribute selectors
138
- const id = this.getAttributeValue(node, 'id');
139
- if (id) {
140
- selectors.push(`#${id}`);
141
- }
142
- const className = this.getAttributeValue(node, 'className');
143
- if (className) {
144
- const classes = className.split(/\s+/).filter(c => c && !c.includes('${'));
145
- if (classes.length > 0) {
146
- selectors.push(`.${classes.join('.')}`);
147
- }
148
- }
149
- const testId = this.getAttributeValue(node, 'data-testid');
150
- if (testId) {
151
- selectors.push(`[data-testid="${testId}"]`);
152
- }
153
- const placeholder = this.getAttributeValue(node, 'placeholder');
154
- if (placeholder && !placeholder.includes('${')) {
155
- selectors.push(`[placeholder="${placeholder}"]`);
156
- }
157
- return selectors.join('');
158
- }
159
- /**
160
- * Check if element is a form control
161
- */
162
- static isFormControl(elementName) {
163
- const formControls = ['input', 'textarea', 'select', 'button'];
164
- return formControls.includes(elementName.toLowerCase());
165
- }
166
- /**
167
- * Check if element name suggests it's a custom component
168
- */
169
- static isCustomComponent(elementName) {
170
- // Custom components start with uppercase
171
- return /^[A-Z]/.test(elementName);
172
- }
173
- }
174
- exports.HeuristicHelpers = HeuristicHelpers;
175
- //# sourceMappingURL=base-heuristic.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"base-heuristic.js","sourceRoot":"","sources":["../../../../src/core/ui-scanner/heuristics/base-heuristic.ts"],"names":[],"mappings":"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"}
@@ -1,32 +0,0 @@
1
- /**
2
- * React UI Scanner
3
- * Refactored implementation that conforms to UIScanner interface
4
- * Uses DeepScanner for high-quality element detection
5
- */
6
- import { UIScanner, UIModel } from './scanner-interface';
7
- import { RuntimeConfig } from '../../config/config-schema';
8
- export declare class ReactScanner implements UIScanner {
9
- readonly name = "ReactScanner";
10
- readonly framework: "react";
11
- private config;
12
- private deepScanner;
13
- constructor(config: RuntimeConfig);
14
- /**
15
- * Scan a screen and generate UI model
16
- */
17
- scan(screenName: string, config: RuntimeConfig): Promise<UIModel>;
18
- /**
19
- * Validate scanner can run
20
- */
21
- validate(): boolean;
22
- /**
23
- * Find all source files for a screen
24
- * Looks for: app/{screen}/page.tsx, app/{screen}/page.jsx, etc.
25
- */
26
- private findScreenFiles;
27
- /**
28
- * Discover all available screens
29
- */
30
- discoverScreens(): Promise<string[]>;
31
- }
32
- //# sourceMappingURL=react-scanner.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"react-scanner.d.ts","sourceRoot":"","sources":["../../../src/core/ui-scanner/react-scanner.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,SAAS,EAAE,OAAO,EAAwB,MAAM,qBAAqB,CAAC;AAC/E,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAK3D,qBAAa,YAAa,YAAW,SAAS;IAC5C,QAAQ,CAAC,IAAI,kBAAkB;IAC/B,QAAQ,CAAC,SAAS,EAAG,OAAO,CAAU;IAEtC,OAAO,CAAC,MAAM,CAAgB;IAC9B,OAAO,CAAC,WAAW,CAAc;gBAErB,MAAM,EAAE,aAAa;IAYjC;;OAEG;IACG,IAAI,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa,GAAG,OAAO,CAAC,OAAO,CAAC;IAsCvE;;OAEG;IACH,QAAQ,IAAI,OAAO;IAInB;;;OAGG;IACH,OAAO,CAAC,eAAe;IA8BvB;;OAEG;IACG,eAAe,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;CAuC3C"}
@@ -1,163 +0,0 @@
1
- "use strict";
2
- /**
3
- * React UI Scanner
4
- * Refactored implementation that conforms to UIScanner interface
5
- * Uses DeepScanner for high-quality element detection
6
- */
7
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
8
- if (k2 === undefined) k2 = k;
9
- var desc = Object.getOwnPropertyDescriptor(m, k);
10
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
11
- desc = { enumerable: true, get: function() { return m[k]; } };
12
- }
13
- Object.defineProperty(o, k2, desc);
14
- }) : (function(o, m, k, k2) {
15
- if (k2 === undefined) k2 = k;
16
- o[k2] = m[k];
17
- }));
18
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
19
- Object.defineProperty(o, "default", { enumerable: true, value: v });
20
- }) : function(o, v) {
21
- o["default"] = v;
22
- });
23
- var __importStar = (this && this.__importStar) || (function () {
24
- var ownKeys = function(o) {
25
- ownKeys = Object.getOwnPropertyNames || function (o) {
26
- var ar = [];
27
- for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
28
- return ar;
29
- };
30
- return ownKeys(o);
31
- };
32
- return function (mod) {
33
- if (mod && mod.__esModule) return mod;
34
- var result = {};
35
- if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
36
- __setModuleDefault(result, mod);
37
- return result;
38
- };
39
- })();
40
- Object.defineProperty(exports, "__esModule", { value: true });
41
- exports.ReactScanner = void 0;
42
- const deep_scanner_1 = require("../../generators/ui-model-builder/deep-scanner");
43
- const path = __importStar(require("path"));
44
- const fs = __importStar(require("fs"));
45
- class ReactScanner {
46
- constructor(config) {
47
- this.name = 'ReactScanner';
48
- this.framework = 'react';
49
- this.config = config;
50
- // Initialize DeepScanner with config
51
- this.deepScanner = new deep_scanner_1.DeepScanner({
52
- sourceRoot: config.paths.sourceRoot,
53
- projectRoot: process.cwd(),
54
- maxDepth: config.scanner.maxDepth,
55
- verbose: config.verbose
56
- });
57
- }
58
- /**
59
- * Scan a screen and generate UI model
60
- */
61
- async scan(screenName, config) {
62
- const startTime = Date.now();
63
- // Find screen files
64
- const screenFiles = this.findScreenFiles(screenName);
65
- if (config.verbose) {
66
- console.log(` Scanning ${screenFiles.length} file(s) for screen: ${screenName}`);
67
- screenFiles.forEach(f => console.log(` - ${path.relative(process.cwd(), f)}`));
68
- }
69
- // Use DeepScanner to scan files
70
- // @ts-ignore - DeepScanner elements compatible but different type definition
71
- const elements = await this.deepScanner.scanFiles(screenFiles);
72
- if (config.verbose) {
73
- console.log(` Found ${elements.length} elements`);
74
- }
75
- // Build UI model
76
- const uiModel = {
77
- screen: screenName,
78
- timestamp: Date.now(),
79
- framework: this.framework,
80
- sourceFiles: screenFiles.map(f => path.relative(process.cwd(), f)),
81
- elements: elements, // Type cast - DeepScanner elements are compatible
82
- stats: {
83
- totalComponents: 0, // DeepScanner doesn't track this
84
- totalElements: elements.length,
85
- maxDepth: config.scanner.maxDepth,
86
- scanDuration: Date.now() - startTime,
87
- filesScanned: screenFiles.length
88
- }
89
- };
90
- return uiModel;
91
- }
92
- /**
93
- * Validate scanner can run
94
- */
95
- validate() {
96
- return fs.existsSync(this.config.paths.sourceRoot);
97
- }
98
- /**
99
- * Find all source files for a screen
100
- * Looks for: app/{screen}/page.tsx, app/{screen}/page.jsx, etc.
101
- */
102
- findScreenFiles(screenName) {
103
- const files = [];
104
- const sourceRoot = this.config.paths.sourceRoot;
105
- // Convert screen name to possible paths
106
- // auth-login -> auth/login
107
- const screenPath = screenName.replace(/-/g, '/');
108
- // Possible file patterns
109
- const patterns = [
110
- path.join(sourceRoot, screenPath, 'page.tsx'),
111
- path.join(sourceRoot, screenPath, 'page.jsx'),
112
- path.join(sourceRoot, screenPath, 'index.tsx'),
113
- path.join(sourceRoot, screenPath, 'index.jsx'),
114
- path.join(sourceRoot, `${screenName}.tsx`),
115
- path.join(sourceRoot, `${screenName}.jsx`),
116
- path.join(sourceRoot, 'page.tsx'), // Root page for "home"
117
- path.join(sourceRoot, 'layout.tsx') // Always include layout
118
- ];
119
- // Add files that exist
120
- for (const pattern of patterns) {
121
- if (fs.existsSync(pattern) && !files.includes(pattern)) {
122
- files.push(pattern);
123
- }
124
- }
125
- return files;
126
- }
127
- /**
128
- * Discover all available screens
129
- */
130
- async discoverScreens() {
131
- const screens = [];
132
- const sourceRoot = this.config.paths.sourceRoot;
133
- if (!fs.existsSync(sourceRoot)) {
134
- return screens;
135
- }
136
- // Scan sourceRoot for directories with page.tsx/jsx files
137
- const scanDir = (dir, prefix = '') => {
138
- const entries = fs.readdirSync(dir, { withFileTypes: true });
139
- for (const entry of entries) {
140
- if (entry.isDirectory()) {
141
- const fullPath = path.join(dir, entry.name);
142
- const hasPageFile = fs.existsSync(path.join(fullPath, 'page.tsx')) ||
143
- fs.existsSync(path.join(fullPath, 'page.jsx'));
144
- if (hasPageFile) {
145
- const screenName = prefix ? `${prefix}-${entry.name}` : entry.name;
146
- screens.push(screenName);
147
- }
148
- // Recursively scan subdirectories
149
- scanDir(fullPath, prefix ? `${prefix}-${entry.name}` : entry.name);
150
- }
151
- }
152
- };
153
- scanDir(sourceRoot);
154
- // Add "home" if root page exists
155
- if (fs.existsSync(path.join(sourceRoot, 'page.tsx')) ||
156
- fs.existsSync(path.join(sourceRoot, 'page.jsx'))) {
157
- screens.unshift('home');
158
- }
159
- return screens;
160
- }
161
- }
162
- exports.ReactScanner = ReactScanner;
163
- //# sourceMappingURL=react-scanner.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"react-scanner.js","sourceRoot":"","sources":["../../../src/core/ui-scanner/react-scanner.ts"],"names":[],"mappings":"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"}
@@ -1,94 +0,0 @@
1
- /**
2
- * UI Scanner Interface
3
- * Defines the contract for UI scanning implementations
4
- * Supports multiple frameworks: React, Vue, Angular, etc.
5
- */
6
- import { RuntimeConfig } from '../../config/config-schema';
7
- /**
8
- * Main Scanner Interface
9
- */
10
- export interface UIScanner {
11
- /**
12
- * Scanner name/type
13
- */
14
- readonly name: string;
15
- /**
16
- * Supported framework
17
- */
18
- readonly framework: 'react' | 'vue' | 'angular';
19
- /**
20
- * Scan a screen and generate UI model
21
- *
22
- * @param screenName - Screen identifier (e.g., 'chat', 'login')
23
- * @param config - Runtime configuration
24
- * @returns UI Model
25
- */
26
- scan(screenName: string, config: RuntimeConfig): Promise<UIModel>;
27
- /**
28
- * Validate scanner can run in current environment
29
- */
30
- validate(): boolean;
31
- }
32
- /**
33
- * UI Model Structure
34
- * Represents discovered UI elements for a screen
35
- */
36
- export interface UIModel {
37
- screen: string;
38
- timestamp: number;
39
- framework: string;
40
- sourceFiles: string[];
41
- elements: UIElement[];
42
- stats: ScanStats;
43
- }
44
- /**
45
- * UI Element
46
- * Represents a discovered UI element
47
- */
48
- export interface UIElement {
49
- id: string;
50
- type: ElementType;
51
- selector: string;
52
- label?: string;
53
- placeholder?: string;
54
- role?: string;
55
- required?: boolean;
56
- context?: ElementContext;
57
- }
58
- /**
59
- * Element Types
60
- */
61
- export type ElementType = 'input' | 'textarea' | 'select' | 'button' | 'link' | 'checkbox' | 'radio' | 'container' | 'heading' | 'text' | 'image' | 'list' | 'unknown';
62
- /**
63
- * Element Context
64
- * Additional contextual information about an element
65
- */
66
- export interface ElementContext {
67
- component?: string;
68
- parentComponent?: string;
69
- depth?: number;
70
- conditionalRendering?: boolean;
71
- dynamicContent?: boolean;
72
- props?: Record<string, any>;
73
- }
74
- /**
75
- * Scan Statistics
76
- */
77
- export interface ScanStats {
78
- totalComponents: number;
79
- totalElements: number;
80
- maxDepth: number;
81
- scanDuration: number;
82
- filesScanned: number;
83
- }
84
- /**
85
- * Scanner Factory
86
- * Creates appropriate scanner based on framework type
87
- */
88
- export declare class ScannerFactory {
89
- /**
90
- * Create scanner instance for framework
91
- */
92
- static create(framework: 'react' | 'vue' | 'angular', config: RuntimeConfig): UIScanner;
93
- }
94
- //# sourceMappingURL=scanner-interface.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"scanner-interface.d.ts","sourceRoot":"","sources":["../../../src/core/ui-scanner/scanner-interface.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAE3D;;GAEG;AACH,MAAM,WAAW,SAAS;IACxB;;OAEG;IACH,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAEtB;;OAEG;IACH,QAAQ,CAAC,SAAS,EAAE,OAAO,GAAG,KAAK,GAAG,SAAS,CAAC;IAEhD;;;;;;OAMG;IACH,IAAI,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAElE;;OAEG;IACH,QAAQ,IAAI,OAAO,CAAC;CACrB;AAED;;;GAGG;AACH,MAAM,WAAW,OAAO;IACtB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,QAAQ,EAAE,SAAS,EAAE,CAAC;IACtB,KAAK,EAAE,SAAS,CAAC;CAClB;AAED;;;GAGG;AACH,MAAM,WAAW,SAAS;IACxB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,WAAW,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,EAAE,cAAc,CAAC;CAC1B;AAED;;GAEG;AACH,MAAM,MAAM,WAAW,GACnB,OAAO,GACP,UAAU,GACV,QAAQ,GACR,QAAQ,GACR,MAAM,GACN,UAAU,GACV,OAAO,GACP,WAAW,GACX,SAAS,GACT,MAAM,GACN,OAAO,GACP,MAAM,GACN,SAAS,CAAC;AAEd;;;GAGG;AACH,MAAM,WAAW,cAAc;IAC7B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CAC7B;AAED;;GAEG;AACH,MAAM,WAAW,SAAS;IACxB,eAAe,EAAE,MAAM,CAAC;IACxB,aAAa,EAAE,MAAM,CAAC;IACtB,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;CACtB;AAED;;;GAGG;AACH,qBAAa,cAAc;IACzB;;OAEG;IACH,MAAM,CAAC,MAAM,CAAC,SAAS,EAAE,OAAO,GAAG,KAAK,GAAG,SAAS,EAAE,MAAM,EAAE,aAAa,GAAG,SAAS;CAiBxF"}
@@ -1,33 +0,0 @@
1
- "use strict";
2
- /**
3
- * UI Scanner Interface
4
- * Defines the contract for UI scanning implementations
5
- * Supports multiple frameworks: React, Vue, Angular, etc.
6
- */
7
- Object.defineProperty(exports, "__esModule", { value: true });
8
- exports.ScannerFactory = void 0;
9
- /**
10
- * Scanner Factory
11
- * Creates appropriate scanner based on framework type
12
- */
13
- class ScannerFactory {
14
- /**
15
- * Create scanner instance for framework
16
- */
17
- static create(framework, config) {
18
- switch (framework) {
19
- case 'react':
20
- // Dynamic import to avoid loading all scanners
21
- const ReactScanner = require('./react-scanner').ReactScanner;
22
- return new ReactScanner(config);
23
- case 'vue':
24
- throw new Error('Vue scanner not yet implemented');
25
- case 'angular':
26
- throw new Error('Angular scanner not yet implemented');
27
- default:
28
- throw new Error(`Unsupported framework: ${framework}`);
29
- }
30
- }
31
- }
32
- exports.ScannerFactory = ScannerFactory;
33
- //# sourceMappingURL=scanner-interface.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"scanner-interface.js","sourceRoot":"","sources":["../../../src/core/ui-scanner/scanner-interface.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;AAuGH;;;GAGG;AACH,MAAa,cAAc;IACzB;;OAEG;IACH,MAAM,CAAC,MAAM,CAAC,SAAsC,EAAE,MAAqB;QACzE,QAAQ,SAAS,EAAE,CAAC;YAClB,KAAK,OAAO;gBACV,+CAA+C;gBAC/C,MAAM,YAAY,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC,YAAY,CAAC;gBAC7D,OAAO,IAAI,YAAY,CAAC,MAAM,CAAC,CAAC;YAElC,KAAK,KAAK;gBACR,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC;YAErD,KAAK,SAAS;gBACZ,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAC;YAEzD;gBACE,MAAM,IAAI,KAAK,CAAC,0BAA0B,SAAS,EAAE,CAAC,CAAC;QAC3D,CAAC;IACH,CAAC;CACF;AArBD,wCAqBC"}
@@ -1,81 +0,0 @@
1
- /**
2
- * Strict UI Scanner - v3.1
3
- *
4
- * Priority-based, deterministic scanner with strict filtering
5
- *
6
- * Key Principles:
7
- * 1. Only scan INTERACTIVE elements (input, button, a, select, textarea)
8
- * 2. Only include elements with data-testid OR role attributes
9
- * 3. Discard generic containers (div, span) unless they have id
10
- * 4. 80-90% noise reduction vs deep scanner
11
- *
12
- * Philosophy: AI is a fallback, not the primary solution
13
- */
14
- export interface StrictScanConfig {
15
- sourceRoot: string;
16
- projectRoot: string;
17
- strictMode: boolean;
18
- filterRules: {
19
- allowedTags: string[];
20
- requireAttributes: string[];
21
- allowGenericWithId: boolean;
22
- };
23
- verbose?: boolean;
24
- }
25
- export interface StrictUIElement {
26
- logicalName: string;
27
- primaryLocator: string;
28
- fallbackStrategy: string;
29
- tag: string;
30
- elementType: string;
31
- discoveryMethod: 'direct-id' | 'accessibility' | 'heuristic';
32
- confidence: 'high' | 'medium' | 'low';
33
- sourceFile: string;
34
- label?: string;
35
- placeholder?: string;
36
- ariaLabel?: string;
37
- role?: string;
38
- text?: string;
39
- props: Record<string, any>;
40
- }
41
- export interface StrictScanResult {
42
- screen: string;
43
- timestamp: number;
44
- framework: string;
45
- sourceFiles: string[];
46
- elements: StrictUIElement[];
47
- stats: {
48
- totalScanned: number;
49
- totalFiltered: number;
50
- totalIncluded: number;
51
- filterRate: number;
52
- directIdMatches: number;
53
- accessibilityMatches: number;
54
- heuristicMatches: number;
55
- scanDuration: number;
56
- };
57
- }
58
- export declare class StrictScanner {
59
- private config;
60
- private filter;
61
- private nameGenerator;
62
- private locatorGenerator;
63
- private elements;
64
- private scannedFiles;
65
- private stats;
66
- constructor(config: StrictScanConfig);
67
- /**
68
- * Scan a screen and generate strict UI model
69
- */
70
- scan(screenName: string): Promise<StrictScanResult>;
71
- private findEntryFile;
72
- private scanFile;
73
- private processJSXElement;
74
- private extractElementData;
75
- private getTagName;
76
- private getAttributeValue;
77
- private extractTextContent;
78
- private buildStrictElement;
79
- private inferElementType;
80
- }
81
- //# sourceMappingURL=strict-scanner.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"strict-scanner.d.ts","sourceRoot":"","sources":["../../../src/core/ui-scanner/strict-scanner.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAYH,MAAM,WAAW,gBAAgB;IAC/B,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,OAAO,CAAC;IACpB,WAAW,EAAE;QACX,WAAW,EAAE,MAAM,EAAE,CAAC;QACtB,iBAAiB,EAAE,MAAM,EAAE,CAAC;QAC5B,kBAAkB,EAAE,OAAO,CAAC;KAC7B,CAAC;IACF,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,eAAe;IAE9B,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,EAAE,MAAM,CAAC;IACvB,gBAAgB,EAAE,MAAM,CAAC;IAGzB,GAAG,EAAE,MAAM,CAAC;IACZ,WAAW,EAAE,MAAM,CAAC;IAGpB,eAAe,EAAE,WAAW,GAAG,eAAe,GAAG,WAAW,CAAC;IAC7D,UAAU,EAAE,MAAM,GAAG,QAAQ,GAAG,KAAK,CAAC;IAGtC,UAAU,EAAE,MAAM,CAAC;IAGnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IAGd,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CAC5B;AAED,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,QAAQ,EAAE,eAAe,EAAE,CAAC;IAC5B,KAAK,EAAE;QACL,YAAY,EAAE,MAAM,CAAC;QACrB,aAAa,EAAE,MAAM,CAAC;QACtB,aAAa,EAAE,MAAM,CAAC;QACtB,UAAU,EAAE,MAAM,CAAC;QACnB,eAAe,EAAE,MAAM,CAAC;QACxB,oBAAoB,EAAE,MAAM,CAAC;QAC7B,gBAAgB,EAAE,MAAM,CAAC;QACzB,YAAY,EAAE,MAAM,CAAC;KACtB,CAAC;CACH;AA4RD,qBAAa,aAAa;IACxB,OAAO,CAAC,MAAM,CAAmB;IACjC,OAAO,CAAC,MAAM,CAAsB;IACpC,OAAO,CAAC,aAAa,CAAuB;IAC5C,OAAO,CAAC,gBAAgB,CAAmB;IAE3C,OAAO,CAAC,QAAQ,CAAyB;IACzC,OAAO,CAAC,YAAY,CAAqB;IACzC,OAAO,CAAC,KAAK,CAOX;gBAEU,MAAM,EAAE,gBAAgB;IAOpC;;OAEG;IACG,IAAI,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC;IA8BzD,OAAO,CAAC,aAAa;YAwBP,QAAQ;IAyBtB,OAAO,CAAC,iBAAiB;IAuCzB,OAAO,CAAC,kBAAkB;IAqB1B,OAAO,CAAC,UAAU;IAWlB,OAAO,CAAC,iBAAiB;IAiBzB,OAAO,CAAC,kBAAkB;IAkB1B,OAAO,CAAC,kBAAkB;IAkC1B,OAAO,CAAC,gBAAgB;CAkBzB"}