@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,226 +0,0 @@
1
- "use strict";
2
- /**
3
- * DSL Writer and Override Loader
4
- * Writes selector DSL to YAML files and loads with override support
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.writeDSL = writeDSL;
41
- exports.loadDSL = loadDSL;
42
- exports.mergeSelectors = mergeSelectors;
43
- exports.getSelector = getSelector;
44
- exports.listSelectors = listSelectors;
45
- exports.validateDSL = validateDSL;
46
- exports.createOverrideTemplate = createOverrideTemplate;
47
- const fs = __importStar(require("fs"));
48
- const path = __importStar(require("path"));
49
- const yaml = __importStar(require("yaml"));
50
- async function writeDSL(selectors, options) {
51
- const { outputPath, screenId, platform } = options;
52
- // Determine file path
53
- let filePath;
54
- if (platform) {
55
- // Multi-platform: qa/selectors/web/screens/login.yaml
56
- const platformDir = path.join(outputPath, platform, 'screens');
57
- fs.mkdirSync(platformDir, { recursive: true });
58
- filePath = path.join(platformDir, `${screenId}.yaml`);
59
- }
60
- else {
61
- // Single platform: qa/selectors/screens/login.yaml
62
- const screensDir = path.join(outputPath, 'screens');
63
- fs.mkdirSync(screensDir, { recursive: true });
64
- filePath = path.join(screensDir, `${screenId}.yaml`);
65
- }
66
- // Convert to YAML with comments
67
- const yamlContent = generateYAML(selectors, screenId);
68
- // Write file
69
- fs.writeFileSync(filePath, yamlContent, 'utf-8');
70
- return filePath;
71
- }
72
- /**
73
- * Generate YAML content with nice formatting
74
- */
75
- function generateYAML(selectors, screenId) {
76
- const header = `# Selector DSL for screen: ${screenId}
77
- # Auto-generated by AI-assisted selector mapper
78
- # To override selectors, create ${screenId}.override.yaml in the same directory
79
-
80
- `;
81
- const yamlDoc = yaml.stringify(selectors, {
82
- indent: 2,
83
- lineWidth: 100,
84
- defaultKeyType: 'PLAIN',
85
- defaultStringType: 'QUOTE_DOUBLE'
86
- });
87
- return header + yamlDoc;
88
- }
89
- async function loadDSL(options) {
90
- const { selectorPath, screenId, platform } = options;
91
- // Determine base file path
92
- let basePath;
93
- if (platform) {
94
- basePath = path.join(selectorPath, platform, 'screens', `${screenId}.yaml`);
95
- }
96
- else {
97
- basePath = path.join(selectorPath, 'screens', `${screenId}.yaml`);
98
- }
99
- // Check if base file exists
100
- if (!fs.existsSync(basePath)) {
101
- throw new Error(`Selector DSL not found: ${basePath}`);
102
- }
103
- // Load base selectors
104
- const baseContent = fs.readFileSync(basePath, 'utf-8');
105
- const baseSelectors = yaml.parse(baseContent) || {};
106
- // Load override file if exists
107
- const overridePath = basePath.replace('.yaml', '.override.yaml');
108
- if (fs.existsSync(overridePath)) {
109
- const overrideContent = fs.readFileSync(overridePath, 'utf-8');
110
- const overrideSelectors = yaml.parse(overrideContent) || {};
111
- // Merge: override wins
112
- return mergeSelectors(baseSelectors, overrideSelectors);
113
- }
114
- return baseSelectors;
115
- }
116
- /**
117
- * Merge base and override selectors
118
- * Override selectors take precedence
119
- */
120
- function mergeSelectors(base, override) {
121
- const merged = { ...base };
122
- for (const [elementId, entry] of Object.entries(override)) {
123
- // Override completely replaces base
124
- merged[elementId] = {
125
- ...entry,
126
- discoveryMethod: 'manual' // Mark as manually overridden
127
- };
128
- }
129
- return merged;
130
- }
131
- // ============================================================================
132
- // Helper: Get Selector
133
- // ============================================================================
134
- async function getSelector(elementId, options) {
135
- const selectors = await loadDSL(options);
136
- return selectors[elementId] || null;
137
- }
138
- // ============================================================================
139
- // Helper: List All Selectors for Screen
140
- // ============================================================================
141
- async function listSelectors(options) {
142
- const selectors = await loadDSL(options);
143
- return Object.entries(selectors).map(([elementId, entry]) => ({
144
- elementId,
145
- entry
146
- }));
147
- }
148
- // ============================================================================
149
- // Helper: Validate Selector DSL File
150
- // ============================================================================
151
- async function validateDSL(options) {
152
- const errors = [];
153
- try {
154
- const selectors = await loadDSL(options);
155
- // Validate each selector entry
156
- for (const [elementId, entry] of Object.entries(selectors)) {
157
- // Check required fields
158
- if (!entry.selector) {
159
- errors.push(`${elementId}: Missing 'selector' field`);
160
- }
161
- if (!entry.type) {
162
- errors.push(`${elementId}: Missing 'type' field`);
163
- }
164
- if (!entry.description) {
165
- errors.push(`${elementId}: Missing 'description' field`);
166
- }
167
- if (!entry.discoveryMethod) {
168
- errors.push(`${elementId}: Missing 'discoveryMethod' field`);
169
- }
170
- // Validate selector syntax (basic check)
171
- if (entry.selector && entry.locatorType === 'css') {
172
- try {
173
- // Very basic CSS selector validation
174
- if (entry.selector.includes('>>') || entry.selector.includes('//')) {
175
- errors.push(`${elementId}: Invalid CSS selector syntax`);
176
- }
177
- }
178
- catch {
179
- errors.push(`${elementId}: Invalid selector format`);
180
- }
181
- }
182
- }
183
- }
184
- catch (error) {
185
- errors.push(`Failed to load DSL: ${error.message}`);
186
- }
187
- return {
188
- valid: errors.length === 0,
189
- errors
190
- };
191
- }
192
- // ============================================================================
193
- // Helper: Create Override Template
194
- // ============================================================================
195
- async function createOverrideTemplate(options) {
196
- const { selectorPath, screenId, platform } = options;
197
- // Load base selectors
198
- const baseSelectors = await loadDSL(options);
199
- // Generate override template with all elements commented out
200
- let content = `# Override selectors for screen: ${screenId}
201
- # Uncomment and modify the selectors you want to override
202
- # Only include selectors that need to be changed
203
-
204
- `;
205
- for (const [elementId, entry] of Object.entries(baseSelectors)) {
206
- content += `# ${elementId}:\n`;
207
- content += `# selector: "${entry.selector}"\n`;
208
- content += `# type: "${entry.type}"\n`;
209
- content += `# description: "${entry.description}"\n`;
210
- content += `# discoveryMethod: manual\n\n`;
211
- }
212
- // Determine override file path
213
- let overridePath;
214
- if (platform) {
215
- overridePath = path.join(selectorPath, platform, 'screens', `${screenId}.override.yaml`);
216
- }
217
- else {
218
- overridePath = path.join(selectorPath, 'screens', `${screenId}.override.yaml`);
219
- }
220
- // Write template if it doesn't exist
221
- if (!fs.existsSync(overridePath)) {
222
- fs.writeFileSync(overridePath, content, 'utf-8');
223
- }
224
- return overridePath;
225
- }
226
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/generators/dsl-writer/index.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAiBH,4BA2BC;AAgCD,0BA+BC;AAMD,wCAeC;AAMD,kCAMC;AAMD,sCASC;AAMD,kCA6CC;AAMD,wDAqCC;AAvPD,uCAAyB;AACzB,2CAA6B;AAC7B,2CAA6B;AAatB,KAAK,UAAU,QAAQ,CAC5B,SAAsB,EACtB,OAAqB;IAErB,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC;IAEnD,sBAAsB;IACtB,IAAI,QAAgB,CAAC;IACrB,IAAI,QAAQ,EAAE,CAAC;QACb,sDAAsD;QACtD,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC;QAC/D,EAAE,CAAC,SAAS,CAAC,WAAW,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC/C,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,GAAG,QAAQ,OAAO,CAAC,CAAC;IACxD,CAAC;SAAM,CAAC;QACN,mDAAmD;QACnD,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC;QACpD,EAAE,CAAC,SAAS,CAAC,UAAU,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC9C,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,GAAG,QAAQ,OAAO,CAAC,CAAC;IACvD,CAAC;IAED,gCAAgC;IAChC,MAAM,WAAW,GAAG,YAAY,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;IAEtD,aAAa;IACb,EAAE,CAAC,aAAa,CAAC,QAAQ,EAAE,WAAW,EAAE,OAAO,CAAC,CAAC;IAEjD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED;;GAEG;AACH,SAAS,YAAY,CAAC,SAAsB,EAAE,QAAgB;IAC5D,MAAM,MAAM,GAAG,8BAA8B,QAAQ;;kCAErB,QAAQ;;CAEzC,CAAC;IAEA,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,SAAS,EAAE;QACxC,MAAM,EAAE,CAAC;QACT,SAAS,EAAE,GAAG;QACd,cAAc,EAAE,OAAO;QACvB,iBAAiB,EAAE,cAAc;KAClC,CAAC,CAAC;IAEH,OAAO,MAAM,GAAG,OAAO,CAAC;AAC1B,CAAC;AAYM,KAAK,UAAU,OAAO,CAAC,OAAoB;IAChD,MAAM,EAAE,YAAY,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC;IAErD,2BAA2B;IAC3B,IAAI,QAAgB,CAAC;IACrB,IAAI,QAAQ,EAAE,CAAC;QACb,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,QAAQ,EAAE,SAAS,EAAE,GAAG,QAAQ,OAAO,CAAC,CAAC;IAC9E,CAAC;SAAM,CAAC;QACN,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,SAAS,EAAE,GAAG,QAAQ,OAAO,CAAC,CAAC;IACpE,CAAC;IAED,4BAA4B;IAC5B,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC7B,MAAM,IAAI,KAAK,CAAC,2BAA2B,QAAQ,EAAE,CAAC,CAAC;IACzD,CAAC;IAED,sBAAsB;IACtB,MAAM,WAAW,GAAG,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IACvD,MAAM,aAAa,GAAgB,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC;IAEjE,+BAA+B;IAC/B,MAAM,YAAY,GAAG,QAAQ,CAAC,OAAO,CAAC,OAAO,EAAE,gBAAgB,CAAC,CAAC;IACjE,IAAI,EAAE,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;QAChC,MAAM,eAAe,GAAG,EAAE,CAAC,YAAY,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;QAC/D,MAAM,iBAAiB,GAAgB,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,IAAI,EAAE,CAAC;QAEzE,uBAAuB;QACvB,OAAO,cAAc,CAAC,aAAa,EAAE,iBAAiB,CAAC,CAAC;IAC1D,CAAC;IAED,OAAO,aAAa,CAAC;AACvB,CAAC;AAED;;;GAGG;AACH,SAAgB,cAAc,CAC5B,IAAiB,EACjB,QAAqB;IAErB,MAAM,MAAM,GAAgB,EAAE,GAAG,IAAI,EAAE,CAAC;IAExC,KAAK,MAAM,CAAC,SAAS,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC1D,oCAAoC;QACpC,MAAM,CAAC,SAAS,CAAC,GAAG;YAClB,GAAG,KAAK;YACR,eAAe,EAAE,QAAQ,CAAC,8BAA8B;SACzD,CAAC;IACJ,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,+EAA+E;AAC/E,uBAAuB;AACvB,+EAA+E;AAExE,KAAK,UAAU,WAAW,CAC/B,SAAiB,EACjB,OAAoB;IAEpB,MAAM,SAAS,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC;IACzC,OAAO,SAAS,CAAC,SAAS,CAAC,IAAI,IAAI,CAAC;AACtC,CAAC;AAED,+EAA+E;AAC/E,wCAAwC;AACxC,+EAA+E;AAExE,KAAK,UAAU,aAAa,CACjC,OAAoB;IAEpB,MAAM,SAAS,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC;IAEzC,OAAO,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC;QAC5D,SAAS;QACT,KAAK;KACN,CAAC,CAAC,CAAC;AACN,CAAC;AAED,+EAA+E;AAC/E,qCAAqC;AACrC,+EAA+E;AAExE,KAAK,UAAU,WAAW,CAAC,OAAoB;IAIpD,MAAM,MAAM,GAAa,EAAE,CAAC;IAE5B,IAAI,CAAC;QACH,MAAM,SAAS,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC;QAEzC,+BAA+B;QAC/B,KAAK,MAAM,CAAC,SAAS,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC;YAC3D,wBAAwB;YACxB,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;gBACpB,MAAM,CAAC,IAAI,CAAC,GAAG,SAAS,4BAA4B,CAAC,CAAC;YACxD,CAAC;YACD,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;gBAChB,MAAM,CAAC,IAAI,CAAC,GAAG,SAAS,wBAAwB,CAAC,CAAC;YACpD,CAAC;YACD,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC;gBACvB,MAAM,CAAC,IAAI,CAAC,GAAG,SAAS,+BAA+B,CAAC,CAAC;YAC3D,CAAC;YACD,IAAI,CAAC,KAAK,CAAC,eAAe,EAAE,CAAC;gBAC3B,MAAM,CAAC,IAAI,CAAC,GAAG,SAAS,mCAAmC,CAAC,CAAC;YAC/D,CAAC;YAED,yCAAyC;YACzC,IAAI,KAAK,CAAC,QAAQ,IAAI,KAAK,CAAC,WAAW,KAAK,KAAK,EAAE,CAAC;gBAClD,IAAI,CAAC;oBACH,qCAAqC;oBACrC,IAAI,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;wBACnE,MAAM,CAAC,IAAI,CAAC,GAAG,SAAS,+BAA+B,CAAC,CAAC;oBAC3D,CAAC;gBACH,CAAC;gBAAC,MAAM,CAAC;oBACP,MAAM,CAAC,IAAI,CAAC,GAAG,SAAS,2BAA2B,CAAC,CAAC;gBACvD,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,CAAC,IAAI,CAAC,uBAAwB,KAAe,CAAC,OAAO,EAAE,CAAC,CAAC;IACjE,CAAC;IAED,OAAO;QACL,KAAK,EAAE,MAAM,CAAC,MAAM,KAAK,CAAC;QAC1B,MAAM;KACP,CAAC;AACJ,CAAC;AAED,+EAA+E;AAC/E,mCAAmC;AACnC,+EAA+E;AAExE,KAAK,UAAU,sBAAsB,CAC1C,OAAoB;IAEpB,MAAM,EAAE,YAAY,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC;IAErD,sBAAsB;IACtB,MAAM,aAAa,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC;IAE7C,6DAA6D;IAC7D,IAAI,OAAO,GAAG,oCAAoC,QAAQ;;;;CAI3D,CAAC;IAEA,KAAK,MAAM,CAAC,SAAS,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,aAAa,CAAC,EAAE,CAAC;QAC/D,OAAO,IAAI,KAAK,SAAS,KAAK,CAAC;QAC/B,OAAO,IAAI,kBAAkB,KAAK,CAAC,QAAQ,KAAK,CAAC;QACjD,OAAO,IAAI,cAAc,KAAK,CAAC,IAAI,KAAK,CAAC;QACzC,OAAO,IAAI,qBAAqB,KAAK,CAAC,WAAW,KAAK,CAAC;QACvD,OAAO,IAAI,iCAAiC,CAAC;IAC/C,CAAC;IAED,+BAA+B;IAC/B,IAAI,YAAoB,CAAC;IACzB,IAAI,QAAQ,EAAE,CAAC;QACb,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,QAAQ,EAAE,SAAS,EAAE,GAAG,QAAQ,gBAAgB,CAAC,CAAC;IAC3F,CAAC;SAAM,CAAC;QACN,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,SAAS,EAAE,GAAG,QAAQ,gBAAgB,CAAC,CAAC;IACjF,CAAC;IAED,qCAAqC;IACrC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;QACjC,EAAE,CAAC,aAAa,CAAC,YAAY,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;IACnD,CAAC;IAED,OAAO,YAAY,CAAC;AACtB,CAAC"}
@@ -1,162 +0,0 @@
1
- /**
2
- * Scaffold Generator
3
- * Parses Gherkin feature files and generates selector YAML scaffolds
4
- */
5
- import { SelectorType } from '../../utils/selector-types';
6
- export interface ScaffoldElement {
7
- locator: string;
8
- type: SelectorType;
9
- value: string;
10
- name?: string;
11
- nth: number;
12
- exact?: boolean;
13
- inputMethod?: string;
14
- }
15
- export interface ScaffoldResult {
16
- [key: string]: ScaffoldElement;
17
- }
18
- export interface TestDataResult {
19
- [key: string]: string | TestDataResult;
20
- }
21
- export interface MapResult {
22
- featureFile: string;
23
- selectorsPath: string;
24
- testDataPath: string;
25
- elementCount: number;
26
- dataRefCount: number;
27
- selectorsSkipped?: boolean;
28
- testDataMerged?: boolean;
29
- }
30
- export declare class ScaffoldGenerator {
31
- /**
32
- * Generate scaffold YAML from a feature file
33
- */
34
- generateFromFile(featureFilePath: string): ScaffoldResult;
35
- /**
36
- * Generate scaffold YAML from feature content
37
- */
38
- generateFromContent(content: string): ScaffoldResult;
39
- /**
40
- * Extract elements from Gherkin content with their actions
41
- */
42
- private extractElements;
43
- /**
44
- * Extract target type from text after element reference
45
- * e.g., " button" -> "button", " link 1" -> "link", " field with" -> "field"
46
- */
47
- private extractTargetType;
48
- /**
49
- * Extract nth index from text after element reference
50
- * e.g., " field 1 with" -> 1, " button 2" -> 2, " row 1" -> 1, " text" -> 0
51
- */
52
- /**
53
- * Detect the action type from a Gherkin step line
54
- */
55
- private detectAction;
56
- /**
57
- * Extract feature path from Gherkin metadata
58
- * Looks for "Path: <value>" line in the feature file
59
- * e.g., "Path: login-guest?user=inactive" -> "login-guest?user=inactive"
60
- */
61
- private extractFeaturePath;
62
- /**
63
- * Convert element text to YAML key format
64
- * "Email Address" -> "email.address"
65
- * "Your email or password is incorrect!" -> "your.email.or.password.is.incorrect"
66
- */
67
- /**
68
- * Get action priority (higher number = higher priority)
69
- */
70
- private getActionPriority;
71
- /**
72
- * Build scaffold result from extracted elements
73
- */
74
- private buildScaffold;
75
- /**
76
- * Create a scaffold element based on the action type and target type
77
- */
78
- private createScaffoldElement;
79
- /**
80
- * Get ARIA role value from target type (shared across actions)
81
- */
82
- private getRoleValue;
83
- /**
84
- * Get role value for click actions based on target type
85
- */
86
- private getClickRoleValue;
87
- /**
88
- * Get role value for select actions based on target type
89
- */
90
- private getSelectRoleValue;
91
- /**
92
- * Get ARIA role value for fill actions — all fillable inputs use 'textbox'
93
- */
94
- private getFillRoleValue;
95
- /**
96
- * Generate YAML content from scaffold result
97
- */
98
- generateYamlContent(scaffold: ScaffoldResult, screenName?: string): string;
99
- /**
100
- * Write scaffold to file
101
- */
102
- writeScaffold(scaffold: ScaffoldResult, outputPath: string, screenName?: string): void;
103
- /**
104
- * Process a feature file and write scaffold to output
105
- */
106
- processFeatureFile(featureFilePath: string, outputDir: string, forceOverwrite?: boolean): {
107
- outputPath: string;
108
- elementCount: number;
109
- };
110
- /**
111
- * Process all feature files in a directory
112
- */
113
- processAllFeatures(featuresDir: string, outputDir: string): Array<{
114
- file: string;
115
- outputPath: string;
116
- elementCount: number;
117
- }>;
118
- /**
119
- * Enrich scaffold with live-scan data if a .live-scan.yaml file exists.
120
- * Uses the Playwright locator strategy detected by live-scan:
121
- * testid → type: testid, value: <testid>
122
- * role → type: role, value: <aria-role>, name: <accessible-name>
123
- * label → type: label, value: <label-text>
124
- * placeholder → type: placeholder, value: <placeholder-text>
125
- * text → type: text, value: <visible-text>
126
- */
127
- private enrichWithLiveScan;
128
- /**
129
- * Helper to capitalize first letter
130
- */
131
- private capitalizeFirst;
132
- /**
133
- * Process a screen and generate both selectors and test-data YAML
134
- * Folder structure: qa/screens/<screen>/features/, selectors/, test-data/
135
- */
136
- processScreen(screenName: string, screensDir?: string, forceOverwrite?: boolean): MapResult[];
137
- /**
138
- * Extract data references {{...}} from Gherkin content
139
- */
140
- private extractDataRefs;
141
- /**
142
- * Build test data structure from data refs
143
- * Supports nested structure: "valid.login_password" -> { valid: { login_password: '' } }
144
- */
145
- private buildTestData;
146
- /**
147
- * Write selectors YAML file
148
- */
149
- private writeSelectorsYaml;
150
- /**
151
- * Smart-merge test-data objects:
152
- * - Keys present in both: keep the existing value (user may have filled it in)
153
- * - Keys only in fresh (new refs in features): add with empty value
154
- * - Keys only in existing (removed from features): drop them
155
- */
156
- private mergeTestData;
157
- /**
158
- * Write test-data YAML file
159
- */
160
- private writeTestDataYaml;
161
- }
162
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/generators/scaffold-generator/index.ts"],"names":[],"mappings":"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"}