@thinkwise/testwise 0.2.67 → 0.2.99

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 (434) hide show
  1. package/Testwise.ts +35 -0
  2. package/artifact-builder/ArtifactManager.ts +25 -2
  3. package/artifact-builder/ComponentClassModelBuilder.ts +148 -0
  4. package/artifact-builder/InterfaceGenerator.ts +31 -33
  5. package/artifact-builder/ModelDataBuilder.ts +18 -20
  6. package/artifact-builder/ModelDataRefiner.ts +23 -3
  7. package/artifact-builder/SchemaGenerator.ts +45 -35
  8. package/artifact-builder/ScreenInterfaceRefiner.ts +25 -10
  9. package/artifact-builder/SelectorBuilder.ts +30 -24
  10. package/artifact-builder/SubjectClassModelBuilder.ts +209 -0
  11. package/artifact-builder/SubjectComponentGenerator.ts +67 -246
  12. package/artifact-builder/SubjectGenerator.ts +117 -230
  13. package/artifact-builder/SubjectRegistration.ts +41 -32
  14. package/artifact-builder/TsFileModel.ts +94 -0
  15. package/artifact-builder/TsFileSerializer.ts +247 -0
  16. package/artifact-builder/helpers/DataRetriever.ts +64 -27
  17. package/artifact-builder/helpers/NamingHandler.ts +23 -78
  18. package/artifact-builder/helpers/PipelinePaths.ts +123 -0
  19. package/artifact-builder/helpers/Stopwatch.ts +10 -0
  20. package/artifact-builder/helpers/index.ts +1 -0
  21. package/artifact-builder/index.ts +4 -0
  22. package/components/BaseComponentObjects.ts +17 -0
  23. package/components/action-bar/ActionBar.ts +35 -47
  24. package/components/action-bar/ActionBarObjects.ts +2 -0
  25. package/components/action-bar/CustomActionBar.ts +6 -0
  26. package/components/cardlist/Cardlist.ts +6 -0
  27. package/components/chart/Chart.ts +6 -0
  28. package/components/combined-filter/CombinedFilter.ts +9 -0
  29. package/components/cube-view-bar/CubeViewBar.ts +6 -0
  30. package/components/export/ExportComponent.ts +12 -0
  31. package/components/filter/ExcelStyleFilterPopup.ts +35 -2
  32. package/components/filter/FilterForm.ts +10 -0
  33. package/components/filter/FilterPopup.ts +30 -9
  34. package/components/filter/FilterPopupObjects.ts +10 -3
  35. package/components/filter/FindForm.ts +7 -0
  36. package/components/filter/ManagePrefilterPopup.ts +11 -0
  37. package/components/form/Form.ts +16 -0
  38. package/components/grid/Grid.ts +18 -1
  39. package/components/maps/Maps.ts +6 -0
  40. package/components/menu/ListBarMenuComponent.ts +10 -0
  41. package/components/pivot-grid/PivotGrid.ts +6 -0
  42. package/components/pivot-grid/PivotGridFieldList.ts +7 -0
  43. package/components/pop-up/AllRowsPopUp.ts +12 -0
  44. package/components/pop-up/PopUpComponent.ts +11 -0
  45. package/components/prefilter-list/PrefilterList.ts +9 -0
  46. package/components/preview/Preview.ts +6 -0
  47. package/components/report-bar/ReportBar.ts +6 -0
  48. package/components/report-tiles/ReportTiles.ts +6 -0
  49. package/components/scheduler/Scheduler.ts +6 -0
  50. package/components/snackbar/SnackBar.ts +12 -0
  51. package/components/splitter/Splitter.ts +6 -0
  52. package/components/tab/BaseTab.ts +5 -0
  53. package/components/tab/DetailTabPage.ts +11 -0
  54. package/components/tab/Tab.ts +10 -0
  55. package/components/task/TaskBar.ts +13 -3
  56. package/components/task/TaskTiles.ts +12 -3
  57. package/components/topbar/TopBar.ts +10 -0
  58. package/components/tree-view/TreeView.ts +9 -0
  59. package/controls/DateControl.ts +40 -1
  60. package/controls/FormComboBox.ts +30 -0
  61. package/controls/GridColumnControl.ts +34 -3
  62. package/controls/InputFieldControl.ts +49 -0
  63. package/controls/LookupDropdown.ts +29 -0
  64. package/dist/Testwise.js +35 -0
  65. package/dist/Testwise.js.map +1 -1
  66. package/dist/artifact-builder/ArtifactManager.d.ts +18 -1
  67. package/dist/artifact-builder/ArtifactManager.js +24 -2
  68. package/dist/artifact-builder/ArtifactManager.js.map +1 -1
  69. package/dist/artifact-builder/ComponentClassModelBuilder.d.ts +22 -0
  70. package/dist/artifact-builder/ComponentClassModelBuilder.js +115 -0
  71. package/dist/artifact-builder/ComponentClassModelBuilder.js.map +1 -0
  72. package/dist/artifact-builder/InterfaceGenerator.d.ts +15 -6
  73. package/dist/artifact-builder/InterfaceGenerator.js +27 -26
  74. package/dist/artifact-builder/InterfaceGenerator.js.map +1 -1
  75. package/dist/artifact-builder/ModelDataBuilder.d.ts +7 -0
  76. package/dist/artifact-builder/ModelDataBuilder.js +13 -5
  77. package/dist/artifact-builder/ModelDataBuilder.js.map +1 -1
  78. package/dist/artifact-builder/ModelDataRefiner.d.ts +18 -1
  79. package/dist/artifact-builder/ModelDataRefiner.js +18 -3
  80. package/dist/artifact-builder/ModelDataRefiner.js.map +1 -1
  81. package/dist/artifact-builder/SchemaGenerator.d.ts +21 -5
  82. package/dist/artifact-builder/SchemaGenerator.js +38 -26
  83. package/dist/artifact-builder/SchemaGenerator.js.map +1 -1
  84. package/dist/artifact-builder/ScreenInterfaceRefiner.d.ts +18 -1
  85. package/dist/artifact-builder/ScreenInterfaceRefiner.js +23 -9
  86. package/dist/artifact-builder/ScreenInterfaceRefiner.js.map +1 -1
  87. package/dist/artifact-builder/SelectorBuilder.d.ts +18 -5
  88. package/dist/artifact-builder/SelectorBuilder.js +29 -14
  89. package/dist/artifact-builder/SelectorBuilder.js.map +1 -1
  90. package/dist/artifact-builder/SubjectClassModelBuilder.d.ts +38 -0
  91. package/dist/artifact-builder/SubjectClassModelBuilder.js +158 -0
  92. package/dist/artifact-builder/SubjectClassModelBuilder.js.map +1 -0
  93. package/dist/artifact-builder/SubjectComponentGenerator.d.ts +25 -14
  94. package/dist/artifact-builder/SubjectComponentGenerator.js +65 -189
  95. package/dist/artifact-builder/SubjectComponentGenerator.js.map +1 -1
  96. package/dist/artifact-builder/SubjectGenerator.d.ts +32 -13
  97. package/dist/artifact-builder/SubjectGenerator.js +81 -165
  98. package/dist/artifact-builder/SubjectGenerator.js.map +1 -1
  99. package/dist/artifact-builder/SubjectRegistration.d.ts +22 -8
  100. package/dist/artifact-builder/SubjectRegistration.js +29 -14
  101. package/dist/artifact-builder/SubjectRegistration.js.map +1 -1
  102. package/dist/artifact-builder/TsFileModel.d.ts +86 -0
  103. package/dist/artifact-builder/TsFileModel.js +2 -0
  104. package/dist/artifact-builder/TsFileModel.js.map +1 -0
  105. package/dist/artifact-builder/TsFileSerializer.d.ts +19 -0
  106. package/dist/artifact-builder/TsFileSerializer.js +225 -0
  107. package/dist/artifact-builder/TsFileSerializer.js.map +1 -0
  108. package/dist/artifact-builder/helpers/DataRetriever.d.ts +22 -3
  109. package/dist/artifact-builder/helpers/DataRetriever.js +56 -26
  110. package/dist/artifact-builder/helpers/DataRetriever.js.map +1 -1
  111. package/dist/artifact-builder/helpers/NamingHandler.d.ts +18 -6
  112. package/dist/artifact-builder/helpers/NamingHandler.js +20 -61
  113. package/dist/artifact-builder/helpers/NamingHandler.js.map +1 -1
  114. package/dist/artifact-builder/helpers/PipelinePaths.d.ts +52 -0
  115. package/dist/artifact-builder/helpers/PipelinePaths.js +99 -0
  116. package/dist/artifact-builder/helpers/PipelinePaths.js.map +1 -0
  117. package/dist/artifact-builder/helpers/Stopwatch.d.ts +10 -0
  118. package/dist/artifact-builder/helpers/Stopwatch.js +10 -0
  119. package/dist/artifact-builder/helpers/Stopwatch.js.map +1 -1
  120. package/dist/artifact-builder/helpers/index.d.ts +1 -0
  121. package/dist/artifact-builder/helpers/index.js +1 -0
  122. package/dist/artifact-builder/helpers/index.js.map +1 -1
  123. package/dist/artifact-builder/index.d.ts +4 -0
  124. package/dist/artifact-builder/index.js +4 -0
  125. package/dist/artifact-builder/index.js.map +1 -1
  126. package/dist/components/BaseComponentObjects.d.ts +17 -0
  127. package/dist/components/BaseComponentObjects.js +17 -0
  128. package/dist/components/BaseComponentObjects.js.map +1 -1
  129. package/dist/components/action-bar/ActionBar.d.ts +21 -24
  130. package/dist/components/action-bar/ActionBar.js +31 -24
  131. package/dist/components/action-bar/ActionBar.js.map +1 -1
  132. package/dist/components/action-bar/ActionBarObjects.d.ts +1 -0
  133. package/dist/components/action-bar/ActionBarObjects.js +1 -0
  134. package/dist/components/action-bar/ActionBarObjects.js.map +1 -1
  135. package/dist/components/action-bar/CustomActionBar.d.ts +6 -0
  136. package/dist/components/action-bar/CustomActionBar.js +6 -0
  137. package/dist/components/action-bar/CustomActionBar.js.map +1 -1
  138. package/dist/components/cardlist/Cardlist.d.ts +6 -0
  139. package/dist/components/cardlist/Cardlist.js +6 -0
  140. package/dist/components/cardlist/Cardlist.js.map +1 -1
  141. package/dist/components/chart/Chart.d.ts +6 -0
  142. package/dist/components/chart/Chart.js +6 -0
  143. package/dist/components/chart/Chart.js.map +1 -1
  144. package/dist/components/combined-filter/CombinedFilter.d.ts +9 -0
  145. package/dist/components/combined-filter/CombinedFilter.js +9 -0
  146. package/dist/components/combined-filter/CombinedFilter.js.map +1 -1
  147. package/dist/components/cube-view-bar/CubeViewBar.d.ts +6 -0
  148. package/dist/components/cube-view-bar/CubeViewBar.js +6 -0
  149. package/dist/components/cube-view-bar/CubeViewBar.js.map +1 -1
  150. package/dist/components/export/ExportComponent.d.ts +12 -0
  151. package/dist/components/export/ExportComponent.js +12 -0
  152. package/dist/components/export/ExportComponent.js.map +1 -1
  153. package/dist/components/filter/ExcelStyleFilterPopup.d.ts +17 -4
  154. package/dist/components/filter/ExcelStyleFilterPopup.js +35 -23
  155. package/dist/components/filter/ExcelStyleFilterPopup.js.map +1 -1
  156. package/dist/components/filter/ExcelStyleFilterPopupObjects.d.ts +1 -1
  157. package/dist/components/filter/ExcelStyleFilterPopupObjects.js +2 -2
  158. package/dist/components/filter/ExcelStyleFilterPopupObjects.js.map +1 -1
  159. package/dist/components/filter/FilterForm.d.ts +10 -0
  160. package/dist/components/filter/FilterForm.js +10 -0
  161. package/dist/components/filter/FilterForm.js.map +1 -1
  162. package/dist/components/filter/FilterPopup.d.ts +22 -4
  163. package/dist/components/filter/FilterPopup.js +17 -9
  164. package/dist/components/filter/FilterPopup.js.map +1 -1
  165. package/dist/components/filter/FilterPopupObjects.d.ts +5 -2
  166. package/dist/components/filter/FilterPopupObjects.js +5 -2
  167. package/dist/components/filter/FilterPopupObjects.js.map +1 -1
  168. package/dist/components/filter/FindForm.d.ts +7 -0
  169. package/dist/components/filter/FindForm.js +7 -0
  170. package/dist/components/filter/FindForm.js.map +1 -1
  171. package/dist/components/filter/ManagePrefilterPopup.d.ts +11 -0
  172. package/dist/components/filter/ManagePrefilterPopup.js +11 -0
  173. package/dist/components/filter/ManagePrefilterPopup.js.map +1 -1
  174. package/dist/components/form/Form.d.ts +16 -0
  175. package/dist/components/form/Form.js +16 -0
  176. package/dist/components/form/Form.js.map +1 -1
  177. package/dist/components/grid/Grid.d.ts +17 -0
  178. package/dist/components/grid/Grid.js +18 -1
  179. package/dist/components/grid/Grid.js.map +1 -1
  180. package/dist/components/maps/Maps.d.ts +6 -0
  181. package/dist/components/maps/Maps.js +6 -0
  182. package/dist/components/maps/Maps.js.map +1 -1
  183. package/dist/components/menu/ListBarMenuComponent.d.ts +10 -0
  184. package/dist/components/menu/ListBarMenuComponent.js +10 -0
  185. package/dist/components/menu/ListBarMenuComponent.js.map +1 -1
  186. package/dist/components/pivot-grid/PivotGrid.d.ts +6 -0
  187. package/dist/components/pivot-grid/PivotGrid.js +6 -0
  188. package/dist/components/pivot-grid/PivotGrid.js.map +1 -1
  189. package/dist/components/pivot-grid/PivotGridFieldList.d.ts +7 -0
  190. package/dist/components/pivot-grid/PivotGridFieldList.js +7 -0
  191. package/dist/components/pivot-grid/PivotGridFieldList.js.map +1 -1
  192. package/dist/components/pop-up/AllRowsPopUp.d.ts +12 -0
  193. package/dist/components/pop-up/AllRowsPopUp.js +12 -0
  194. package/dist/components/pop-up/AllRowsPopUp.js.map +1 -1
  195. package/dist/components/pop-up/PopUpComponent.d.ts +11 -0
  196. package/dist/components/pop-up/PopUpComponent.js +11 -0
  197. package/dist/components/pop-up/PopUpComponent.js.map +1 -1
  198. package/dist/components/prefilter-list/PrefilterList.d.ts +9 -0
  199. package/dist/components/prefilter-list/PrefilterList.js +9 -0
  200. package/dist/components/prefilter-list/PrefilterList.js.map +1 -1
  201. package/dist/components/preview/Preview.d.ts +6 -0
  202. package/dist/components/preview/Preview.js +6 -0
  203. package/dist/components/preview/Preview.js.map +1 -1
  204. package/dist/components/report-bar/ReportBar.d.ts +6 -0
  205. package/dist/components/report-bar/ReportBar.js +6 -0
  206. package/dist/components/report-bar/ReportBar.js.map +1 -1
  207. package/dist/components/report-tiles/ReportTiles.d.ts +6 -0
  208. package/dist/components/report-tiles/ReportTiles.js +6 -0
  209. package/dist/components/report-tiles/ReportTiles.js.map +1 -1
  210. package/dist/components/scheduler/Scheduler.d.ts +6 -0
  211. package/dist/components/scheduler/Scheduler.js +6 -0
  212. package/dist/components/scheduler/Scheduler.js.map +1 -1
  213. package/dist/components/snackbar/SnackBar.d.ts +12 -0
  214. package/dist/components/snackbar/SnackBar.js +12 -0
  215. package/dist/components/snackbar/SnackBar.js.map +1 -1
  216. package/dist/components/splitter/Splitter.d.ts +6 -0
  217. package/dist/components/splitter/Splitter.js +6 -0
  218. package/dist/components/splitter/Splitter.js.map +1 -1
  219. package/dist/components/tab/BaseTab.d.ts +5 -0
  220. package/dist/components/tab/BaseTab.js +5 -0
  221. package/dist/components/tab/BaseTab.js.map +1 -1
  222. package/dist/components/tab/DetailTabPage.d.ts +11 -0
  223. package/dist/components/tab/DetailTabPage.js +11 -0
  224. package/dist/components/tab/DetailTabPage.js.map +1 -1
  225. package/dist/components/tab/Tab.d.ts +10 -0
  226. package/dist/components/tab/Tab.js +10 -0
  227. package/dist/components/tab/Tab.js.map +1 -1
  228. package/dist/components/task/TaskBar.d.ts +12 -2
  229. package/dist/components/task/TaskBar.js +13 -3
  230. package/dist/components/task/TaskBar.js.map +1 -1
  231. package/dist/components/task/TaskTiles.d.ts +11 -2
  232. package/dist/components/task/TaskTiles.js +12 -3
  233. package/dist/components/task/TaskTiles.js.map +1 -1
  234. package/dist/components/topbar/TopBar.d.ts +10 -0
  235. package/dist/components/topbar/TopBar.js +10 -0
  236. package/dist/components/topbar/TopBar.js.map +1 -1
  237. package/dist/components/tree-view/TreeView.d.ts +9 -0
  238. package/dist/components/tree-view/TreeView.js +9 -0
  239. package/dist/components/tree-view/TreeView.js.map +1 -1
  240. package/dist/controls/DateControl.d.ts +39 -0
  241. package/dist/controls/DateControl.js +18 -1
  242. package/dist/controls/DateControl.js.map +1 -1
  243. package/dist/controls/FormComboBox.d.ts +30 -0
  244. package/dist/controls/FormComboBox.js +8 -0
  245. package/dist/controls/FormComboBox.js.map +1 -1
  246. package/dist/controls/GridColumnControl.d.ts +30 -0
  247. package/dist/controls/GridColumnControl.js +12 -3
  248. package/dist/controls/GridColumnControl.js.map +1 -1
  249. package/dist/controls/InputFieldControl.d.ts +49 -0
  250. package/dist/controls/InputFieldControl.js +30 -0
  251. package/dist/controls/InputFieldControl.js.map +1 -1
  252. package/dist/controls/LookupDropdown.d.ts +29 -0
  253. package/dist/controls/LookupDropdown.js +8 -0
  254. package/dist/controls/LookupDropdown.js.map +1 -1
  255. package/dist/enums/ElementTypes.d.ts +18 -0
  256. package/dist/enums/ElementTypes.js +18 -0
  257. package/dist/enums/ElementTypes.js.map +1 -1
  258. package/dist/enums/ExportFormat.d.ts +8 -0
  259. package/dist/enums/ExportFormat.js +8 -0
  260. package/dist/enums/ExportFormat.js.map +1 -1
  261. package/dist/enums/LogLevel.d.ts +17 -0
  262. package/dist/enums/LogLevel.js +17 -1
  263. package/dist/enums/LogLevel.js.map +1 -1
  264. package/dist/enums/index.d.ts +1 -0
  265. package/dist/enums/index.js +1 -0
  266. package/dist/enums/index.js.map +1 -1
  267. package/dist/helpers/ConfigChecker.d.ts +13 -0
  268. package/dist/helpers/ConfigChecker.js +13 -0
  269. package/dist/helpers/ConfigChecker.js.map +1 -1
  270. package/dist/helpers/Ensure.d.ts +13 -0
  271. package/dist/helpers/Ensure.js +13 -0
  272. package/dist/helpers/Ensure.js.map +1 -1
  273. package/dist/helpers/FlightTracker.d.ts +13 -3
  274. package/dist/helpers/FlightTracker.js +103 -17
  275. package/dist/helpers/FlightTracker.js.map +1 -1
  276. package/dist/helpers/GlobalWaitEventHandler.d.ts +13 -0
  277. package/dist/helpers/GlobalWaitEventHandler.js +13 -0
  278. package/dist/helpers/GlobalWaitEventHandler.js.map +1 -1
  279. package/dist/helpers/LoginHelper.d.ts +35 -1
  280. package/dist/helpers/LoginHelper.js +46 -11
  281. package/dist/helpers/LoginHelper.js.map +1 -1
  282. package/dist/helpers/PathResolver.d.ts +22 -0
  283. package/dist/helpers/PathResolver.js +22 -0
  284. package/dist/helpers/PathResolver.js.map +1 -1
  285. package/dist/helpers/Poll.d.ts +13 -1
  286. package/dist/helpers/Poll.js +12 -0
  287. package/dist/helpers/Poll.js.map +1 -1
  288. package/dist/helpers/RegexHelper.d.ts +15 -0
  289. package/dist/helpers/RegexHelper.js +15 -3
  290. package/dist/helpers/RegexHelper.js.map +1 -1
  291. package/dist/helpers/SubjectNavigator.d.ts +26 -0
  292. package/dist/helpers/SubjectNavigator.js +51 -0
  293. package/dist/helpers/SubjectNavigator.js.map +1 -0
  294. package/dist/helpers/UserSimulationHelper.d.ts +14 -0
  295. package/dist/helpers/UserSimulationHelper.js +14 -0
  296. package/dist/helpers/UserSimulationHelper.js.map +1 -1
  297. package/dist/helpers/index.d.ts +1 -0
  298. package/dist/helpers/index.js +1 -0
  299. package/dist/helpers/index.js.map +1 -1
  300. package/dist/index.d.ts +6 -20
  301. package/dist/index.js +1 -0
  302. package/dist/index.js.map +1 -1
  303. package/dist/interfaces/IComponentObjects.d.ts +12 -0
  304. package/dist/interfaces/IComponentSchemaMeta.d.ts +15 -0
  305. package/dist/interfaces/IComponentSchemaMeta.js +2 -0
  306. package/dist/interfaces/IComponentSchemaMeta.js.map +1 -0
  307. package/dist/interfaces/IProperty.d.ts +13 -0
  308. package/dist/interfaces/IRegisteredSubjects.d.ts +12 -0
  309. package/dist/interfaces/ISeedSubjectDraft.d.ts +16 -0
  310. package/dist/interfaces/ISeedSubjectDraft.js +2 -0
  311. package/dist/interfaces/ISeedSubjectDraft.js.map +1 -0
  312. package/dist/interfaces/ISubject.d.ts +13 -0
  313. package/dist/interfaces/ISubjectDetail.d.ts +11 -0
  314. package/dist/interfaces/ISubjectDetail.js +2 -0
  315. package/dist/interfaces/ISubjectDetail.js.map +1 -0
  316. package/dist/mcp/ArtifactResolver.d.ts +152 -0
  317. package/dist/mcp/ArtifactResolver.js +232 -0
  318. package/dist/mcp/ArtifactResolver.js.map +1 -0
  319. package/dist/mcp/index.d.ts +2 -0
  320. package/dist/mcp/index.js +2 -0
  321. package/dist/mcp/index.js.map +1 -0
  322. package/dist/page-extensions/GlobalComponents.d.ts +30 -0
  323. package/dist/page-extensions/GlobalComponents.js +30 -0
  324. package/dist/page-extensions/GlobalComponents.js.map +1 -1
  325. package/dist/page-extensions/GoToDeepLink.d.ts +9 -0
  326. package/dist/page-extensions/GoToDeepLink.js +9 -0
  327. package/dist/page-extensions/GoToDeepLink.js.map +1 -1
  328. package/dist/page-extensions/LoginFeatures.d.ts +8 -0
  329. package/dist/page-extensions/LoginFeatures.js +8 -0
  330. package/dist/page-extensions/LoginFeatures.js.map +1 -1
  331. package/dist/page-extensions/SubjectRegistry.d.ts +31 -0
  332. package/dist/page-extensions/SubjectRegistry.js +31 -0
  333. package/dist/page-extensions/SubjectRegistry.js.map +1 -1
  334. package/dist/page-extensions/UserSimulation.d.ts +21 -0
  335. package/dist/page-extensions/UserSimulation.js +21 -0
  336. package/dist/page-extensions/UserSimulation.js.map +1 -1
  337. package/dist/page-extensions/WaitEventHandler.d.ts +20 -0
  338. package/dist/page-extensions/WaitEventHandler.js +20 -0
  339. package/dist/page-extensions/WaitEventHandler.js.map +1 -1
  340. package/dist/page-overrides/ClickOverride.d.ts +23 -2
  341. package/dist/page-overrides/ClickOverride.js +34 -50
  342. package/dist/page-overrides/ClickOverride.js.map +1 -1
  343. package/dist/page-overrides/FillOverride.d.ts +23 -0
  344. package/dist/page-overrides/FillOverride.js +46 -66
  345. package/dist/page-overrides/FillOverride.js.map +1 -1
  346. package/dist/services/ConfigBuilder.d.ts +24 -0
  347. package/dist/services/ConfigBuilder.js +24 -0
  348. package/dist/services/ConfigBuilder.js.map +1 -1
  349. package/dist/services/IndiciumApi.service.d.ts +26 -0
  350. package/dist/services/IndiciumApi.service.js +40 -5
  351. package/dist/services/IndiciumApi.service.js.map +1 -1
  352. package/dist/services/Logger.d.ts +13 -0
  353. package/dist/services/Logger.js +39 -0
  354. package/dist/services/Logger.js.map +1 -1
  355. package/dist/types/Components.d.ts +18 -1
  356. package/dist/types/Components.js +0 -1
  357. package/dist/types/Components.js.map +1 -1
  358. package/dist/types/LocatorType.d.ts +5 -0
  359. package/dist/types/LocatorType.js +2 -0
  360. package/dist/types/LocatorType.js.map +1 -0
  361. package/dist/types/PollTypes.d.ts +8 -0
  362. package/dist/types/Test.d.ts +18 -0
  363. package/dist/types/Universal.d.ts +12 -0
  364. package/dist/types/index.d.ts +2 -0
  365. package/dist/types/index.js +2 -0
  366. package/dist/types/index.js.map +1 -1
  367. package/enums/ElementTypes.ts +18 -0
  368. package/enums/ExportFormat.ts +8 -0
  369. package/enums/LogLevel.ts +17 -1
  370. package/enums/index.ts +1 -0
  371. package/helpers/ConfigChecker.ts +13 -0
  372. package/helpers/Ensure.ts +13 -0
  373. package/helpers/FlightTracker.ts +109 -20
  374. package/helpers/GlobalWaitEventHandler.ts +13 -0
  375. package/helpers/LoginHelper.ts +49 -12
  376. package/helpers/PathResolver.ts +22 -0
  377. package/helpers/Poll.ts +13 -1
  378. package/helpers/RegexHelper.ts +15 -3
  379. package/helpers/SubjectNavigator.ts +57 -0
  380. package/helpers/UserSimulationHelper.ts +14 -0
  381. package/helpers/index.ts +1 -0
  382. package/index.ts +1 -0
  383. package/interfaces/IComponentObjects.ts +12 -0
  384. package/interfaces/IComponentSchemaMeta.ts +17 -0
  385. package/interfaces/IProperty.ts +13 -0
  386. package/interfaces/IRegisteredSubjects.ts +12 -0
  387. package/interfaces/ISeedSubjectDraft.ts +17 -0
  388. package/interfaces/ISubject.ts +13 -0
  389. package/interfaces/ISubjectDetail.ts +12 -0
  390. package/mcp/ArtifactResolver.ts +296 -0
  391. package/mcp/index.ts +2 -0
  392. package/package.json +20 -8
  393. package/page-extensions/GlobalComponents.ts +30 -0
  394. package/page-extensions/GoToDeepLink.ts +9 -0
  395. package/page-extensions/LoginFeatures.ts +8 -0
  396. package/page-extensions/SubjectRegistry.ts +32 -0
  397. package/page-extensions/UserSimulation.ts +21 -0
  398. package/page-extensions/WaitEventHandler.ts +20 -0
  399. package/page-overrides/ClickOverride.ts +36 -55
  400. package/page-overrides/FillOverride.ts +59 -73
  401. package/promptCredentials.js +1 -1
  402. package/scripts/Testwise.template.json +1 -1
  403. package/scripts/diagram.js +2267 -0
  404. package/scripts/main.js +84 -63
  405. package/scripts/postinstall.js +55 -42
  406. package/scripts/setup.js +91 -37
  407. package/scripts/sync.js +767 -748
  408. package/services/ConfigBuilder.ts +24 -0
  409. package/services/IndiciumApi.service.ts +44 -6
  410. package/services/Logger.ts +40 -0
  411. package/templates/copilot-instructions.md +130 -0
  412. package/templates/mcp.json +9 -0
  413. package/templates/testwise-test-expert.agent.md +453 -0
  414. package/tests/tsconfig.json +12 -0
  415. package/tsconfig.json +6 -2
  416. package/types/Components.ts +17 -2
  417. package/types/LocatorType.ts +5 -0
  418. package/types/PollTypes.ts +8 -0
  419. package/types/Test.ts +18 -0
  420. package/types/Universal.ts +12 -0
  421. package/types/index.ts +2 -0
  422. package/dist/interfaces/IStoredTestResults.d.ts +0 -5
  423. package/dist/interfaces/IStoredTestResults.js +0 -2
  424. package/dist/interfaces/IStoredTestResults.js.map +0 -1
  425. package/dist/templates/test-artifacts/SubjectPageBase.d.ts +0 -5
  426. package/dist/templates/test-artifacts/SubjectPageBase.js +0 -6
  427. package/dist/templates/test-artifacts/SubjectPageBase.js.map +0 -1
  428. package/dist/templates/test-artifacts/screens/index.d.ts +0 -1
  429. package/dist/templates/test-artifacts/screens/index.js +0 -2
  430. package/dist/templates/test-artifacts/screens/index.js.map +0 -1
  431. package/dist/templates/test-artifacts/subjects/index.d.ts +0 -1
  432. package/dist/templates/test-artifacts/subjects/index.js +0 -2
  433. package/dist/templates/test-artifacts/subjects/index.js.map +0 -1
  434. package/interfaces/IStoredTestResults.ts +0 -6
@@ -1,8 +1,21 @@
1
1
  import type { IProperty } from './IProperty.js';
2
+ /**
3
+ * Represents a single Thinkwise subject as stored in `seed-data/subjects.json`
4
+ * after the `ModelDataBuilder` pipeline step fetches it from the Indicium API.
5
+ *
6
+ * Each subject maps to one screen variant in the Thinkwise application. The
7
+ * `SubjectClassModelBuilder` reads these records and turns them into generated
8
+ * TypeScript subject classes under `test-artifacts/subjects/`.
9
+ */
2
10
  export interface ISubject {
11
+ /** Internal Thinkwise subject identifier (e.g. `"Employee"`). */
3
12
  subject: string;
13
+ /** Subject variant, used to distinguish multiple configurations of the same subject (e.g. `"Editable1"`). */
4
14
  variant: string;
15
+ /** Human-readable screen context: `"Main"`, `"Popup"`, `"Zoom"`, or `"Detail"`. */
5
16
  screentype_context: string;
17
+ /** Thinkwise screen type identifier used to look up the correct screen schema file. */
6
18
  screentype_id: string;
19
+ /** All field/column properties available on this screen. */
7
20
  properties: IProperty[];
8
21
  }
@@ -0,0 +1,11 @@
1
+ /** Screen context variants produced by the artifact-builder pipeline. */
2
+ export type ScreenContext = 'Main' | 'Popup' | 'Zoom' | 'Detail';
3
+ /**
4
+ * Describes a single generated subject class that the SubjectRegistration
5
+ * step registers in the SubjectRegistry.
6
+ */
7
+ export interface ISubjectDetail {
8
+ subject: string;
9
+ variant?: string;
10
+ screen: ScreenContext;
11
+ }
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=ISubjectDetail.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ISubjectDetail.js","sourceRoot":"","sources":["../../interfaces/ISubjectDetail.ts"],"names":[],"mappings":""}
@@ -0,0 +1,152 @@
1
+ import { PipelinePaths } from '../artifact-builder/helpers/PipelinePaths.js';
2
+ import type { ScreenContext } from '../interfaces/ISubjectDetail.js';
3
+ /** Describes a single generated subject class discovered in the test-artifacts directory. */
4
+ export interface SubjectArtifactInfo {
5
+ /** PascalCase subject folder name (e.g. `"CustomerOrder"`). */
6
+ subject: string;
7
+ /** Exact generated class name (e.g. `"CustomerOrderMain"`). */
8
+ className: string;
9
+ /** Screen context encoded in the class name. */
10
+ screenContext: ScreenContext;
11
+ /**
12
+ * Module specifier that importing code should use, relative to the consumer
13
+ * project root (e.g. `"@thinkwise/testwise/test-artifacts/subjects/CustomerOrder/CustomerOrderMain.js"`).
14
+ */
15
+ importPath: string;
16
+ }
17
+ /** Describes a single field or column on a screen interface. */
18
+ export interface ScreenFieldInfo {
19
+ /** camelCase property name as it appears on the screen interface (e.g. `"customerName"`, `"orderDate"`). */
20
+ propertyName: string;
21
+ /**
22
+ * Testwise control type suffix indicating which control helper to use
23
+ * (e.g. `"Field"`, `"Lookup"`, `"Dropdown"`, `"DatePicker"`, `"Checkbox"`, `"Textarea"`, `"ComboBox"`).
24
+ * Derived from the property name suffix in the generated interface.
25
+ */
26
+ controlType: string;
27
+ /** The component this field belongs to — `"Form"` or `"Grid"`. */
28
+ componentType: 'Form' | 'Grid';
29
+ }
30
+ /** Describes a single typed component property on a generated subject class. */
31
+ export interface ComponentInfo {
32
+ /** camelCase property name as declared on the subject class (e.g. `"grid"`, `"actionBar"`). */
33
+ propertyName: string;
34
+ /** Testwise component class name (e.g. `"Grid"`, `"ActionBar"`, `"Form"`). */
35
+ componentType: string;
36
+ }
37
+ /**
38
+ * Runtime service that reads the generated test-artifact files to answer
39
+ * questions about available subjects, their screen-context variants, and the
40
+ * components exposed on each subject class.
41
+ *
42
+ * Intended to be used by the `@thinkwise/testwise-mcp` server so that AI
43
+ * tooling can discover the correct class names and component properties before
44
+ * generating test code — without having to guess or hallucinate names.
45
+ */
46
+ /**
47
+ * Runtime service that reads the generated test-artifact files to answer
48
+ * questions about available subjects, their screen-context variants, and the
49
+ * components exposed on each subject class.
50
+ *
51
+ * **What it does:** The `@thinkwise/testwise-mcp` MCP server calls these
52
+ * methods to surface information to AI tooling (e.g. GitHub Copilot agents)
53
+ * so the AI can write correct Testwise tests without guessing class names,
54
+ * property names, or field names.
55
+ *
56
+ * **How to use it (as a consumer of the MCP server):** You don't call this
57
+ * class directly — use the MCP tools:
58
+ * - `list_subjects()` — all available subject folder names
59
+ * - `list_artifacts(subject?, screenContext?)` — exact class names + import paths
60
+ * - `get_components(subject, screenContext)` — component properties on a class
61
+ * - `get_screen_interface(subject, screenContext)` — field/column names + control types
62
+ *
63
+ * **For contributors:** This class is intentionally side-effect-free — it
64
+ * only reads files and never writes anything. Do not add browser-interaction
65
+ * logic here.
66
+ *
67
+ * @example
68
+ * // Used internally by the MCP server:
69
+ * const resolver = new ArtifactResolver();
70
+ * const subjects = resolver.listSubjects();
71
+ * const artifacts = resolver.listArtifacts('Employee', 'Main');
72
+ */
73
+ export declare class ArtifactResolver {
74
+ private readonly _paths;
75
+ constructor(paths?: PipelinePaths);
76
+ /**
77
+ * Returns all subject folder names (PascalCase) that have been generated
78
+ * into the test-artifacts directory.
79
+ *
80
+ * @example
81
+ * resolver.listSubjects();
82
+ * // → ["CustomerOrder", "Product", "Employee"]
83
+ */
84
+ listSubjects(): string[];
85
+ /**
86
+ * Returns all artifacts for the given subject, optionally filtered to a
87
+ * specific screen context.
88
+ *
89
+ * When `subject` is omitted every generated artifact is returned.
90
+ *
91
+ * @example
92
+ * // All screen contexts for one subject
93
+ * resolver.listArtifacts('CustomerOrder');
94
+ * // → [{ className: "CustomerOrderMain", screenContext: "Main", ... }, ...]
95
+ *
96
+ * @example
97
+ * // One specific artifact
98
+ * resolver.listArtifacts('CustomerOrder', 'Main');
99
+ * // → [{ className: "CustomerOrderMain", screenContext: "Main", ... }]
100
+ */
101
+ listArtifacts(subject?: string, screenContext?: ScreenContext): SubjectArtifactInfo[];
102
+ /**
103
+ * Returns the typed component properties declared on the generated subject
104
+ * class for the given subject + screen context combination.
105
+ *
106
+ * @example
107
+ * resolver.getComponents('CustomerOrder', 'Main');
108
+ * // → [
109
+ * // { propertyName: "grid", componentType: "Grid" },
110
+ * // { propertyName: "actionBar", componentType: "ActionBar" },
111
+ * // { propertyName: "filterForm",componentType: "FilterForm"},
112
+ * // ]
113
+ */
114
+ getComponents(subject: string, screenContext: ScreenContext): ComponentInfo[];
115
+ /**
116
+ * Returns all fields and columns declared on the generated screen interface
117
+ * for the given subject + screen context combination.
118
+ *
119
+ * The interface lives in `test-artifacts/screens/` and contains every field
120
+ * name, column name, and control type for the screen — enough for an AI to
121
+ * write a complete, accurate test without inspecting a live browser.
122
+ *
123
+ * @example
124
+ * resolver.getScreenInterface('CustomerOrder', 'Main');
125
+ * // → [
126
+ * // { propertyName: "customerName", controlType: "Field", componentType: "Form" },
127
+ * // { propertyName: "orderDate", controlType: "DatePicker", componentType: "Form" },
128
+ * // { propertyName: "status", controlType: "Lookup", componentType: "Form" },
129
+ * // { propertyName: "orderId", controlType: "Column", componentType: "Grid" },
130
+ * // ]
131
+ */
132
+ getScreenInterface(subject: string, screenContext: ScreenContext): ScreenFieldInfo[];
133
+ private inferScreenContext;
134
+ /**
135
+ * Parses component properties from a generated subject class.
136
+ *
137
+ * Generated classes declare properties without `public`:
138
+ * actionBarVXE6V0YT: ActionBar;
139
+ * gridQT3UL7F8: EmployeeGrid;
140
+ */
141
+ private parseComponentProperties;
142
+ /**
143
+ * Parses fields/columns from the Components/ subfolder files for a subject.
144
+ *
145
+ * Generated component files (e.g. EmployeeGrid.ts, EmployeeForm.ts) declare
146
+ * getters like:
147
+ * public get firstNameColumn(): IGridColumnControl { ... }
148
+ * public get firstNameField(): IInputFieldControl { ... }
149
+ */
150
+ private parseScreenInterface;
151
+ private inferControlType;
152
+ }
@@ -0,0 +1,232 @@
1
+ import * as fs from 'node:fs';
2
+ import * as path from 'node:path';
3
+ import { PipelinePaths } from '../artifact-builder/helpers/PipelinePaths.js';
4
+ /** All known screen context suffixes, ordered longest-first to avoid prefix clashes. */
5
+ const screenContexts = ['Detail', 'Popup', 'Main', 'Zoom'];
6
+ /**
7
+ * Runtime service that reads the generated test-artifact files to answer
8
+ * questions about available subjects, their screen-context variants, and the
9
+ * components exposed on each subject class.
10
+ *
11
+ * Intended to be used by the `@thinkwise/testwise-mcp` server so that AI
12
+ * tooling can discover the correct class names and component properties before
13
+ * generating test code — without having to guess or hallucinate names.
14
+ */
15
+ /**
16
+ * Runtime service that reads the generated test-artifact files to answer
17
+ * questions about available subjects, their screen-context variants, and the
18
+ * components exposed on each subject class.
19
+ *
20
+ * **What it does:** The `@thinkwise/testwise-mcp` MCP server calls these
21
+ * methods to surface information to AI tooling (e.g. GitHub Copilot agents)
22
+ * so the AI can write correct Testwise tests without guessing class names,
23
+ * property names, or field names.
24
+ *
25
+ * **How to use it (as a consumer of the MCP server):** You don't call this
26
+ * class directly — use the MCP tools:
27
+ * - `list_subjects()` — all available subject folder names
28
+ * - `list_artifacts(subject?, screenContext?)` — exact class names + import paths
29
+ * - `get_components(subject, screenContext)` — component properties on a class
30
+ * - `get_screen_interface(subject, screenContext)` — field/column names + control types
31
+ *
32
+ * **For contributors:** This class is intentionally side-effect-free — it
33
+ * only reads files and never writes anything. Do not add browser-interaction
34
+ * logic here.
35
+ *
36
+ * @example
37
+ * // Used internally by the MCP server:
38
+ * const resolver = new ArtifactResolver();
39
+ * const subjects = resolver.listSubjects();
40
+ * const artifacts = resolver.listArtifacts('Employee', 'Main');
41
+ */
42
+ export class ArtifactResolver {
43
+ constructor(paths) {
44
+ this._paths = paths ?? new PipelinePaths();
45
+ }
46
+ /**
47
+ * Returns all subject folder names (PascalCase) that have been generated
48
+ * into the test-artifacts directory.
49
+ *
50
+ * @example
51
+ * resolver.listSubjects();
52
+ * // → ["CustomerOrder", "Product", "Employee"]
53
+ */
54
+ listSubjects() {
55
+ const subjectsDir = this._paths.subjects;
56
+ if (!fs.existsSync(subjectsDir))
57
+ return [];
58
+ return fs.readdirSync(subjectsDir).filter((entry) => fs.statSync(path.join(subjectsDir, entry)).isDirectory());
59
+ }
60
+ /**
61
+ * Returns all artifacts for the given subject, optionally filtered to a
62
+ * specific screen context.
63
+ *
64
+ * When `subject` is omitted every generated artifact is returned.
65
+ *
66
+ * @example
67
+ * // All screen contexts for one subject
68
+ * resolver.listArtifacts('CustomerOrder');
69
+ * // → [{ className: "CustomerOrderMain", screenContext: "Main", ... }, ...]
70
+ *
71
+ * @example
72
+ * // One specific artifact
73
+ * resolver.listArtifacts('CustomerOrder', 'Main');
74
+ * // → [{ className: "CustomerOrderMain", screenContext: "Main", ... }]
75
+ */
76
+ listArtifacts(subject, screenContext) {
77
+ const subjects = subject ? [subject] : this.listSubjects();
78
+ const results = [];
79
+ for (const subjectName of subjects) {
80
+ const subjectDir = path.join(this._paths.subjects, subjectName);
81
+ if (!fs.existsSync(subjectDir))
82
+ continue;
83
+ const files = fs.readdirSync(subjectDir).filter((f) => f.endsWith('.ts') && f !== 'index.ts');
84
+ for (const file of files) {
85
+ const className = file.replace('.ts', '');
86
+ const context = this.inferScreenContext(className);
87
+ if (!context)
88
+ continue;
89
+ if (screenContext && context !== screenContext)
90
+ continue;
91
+ results.push({
92
+ subject: subjectName,
93
+ className,
94
+ screenContext: context,
95
+ importPath: `@thinkwise/testwise/test-artifacts/subjects/${subjectName}/${className}.js`
96
+ });
97
+ }
98
+ }
99
+ return results;
100
+ }
101
+ /**
102
+ * Returns the typed component properties declared on the generated subject
103
+ * class for the given subject + screen context combination.
104
+ *
105
+ * @example
106
+ * resolver.getComponents('CustomerOrder', 'Main');
107
+ * // → [
108
+ * // { propertyName: "grid", componentType: "Grid" },
109
+ * // { propertyName: "actionBar", componentType: "ActionBar" },
110
+ * // { propertyName: "filterForm",componentType: "FilterForm"},
111
+ * // ]
112
+ */
113
+ getComponents(subject, screenContext) {
114
+ const artifacts = this.listArtifacts(subject, screenContext);
115
+ if (artifacts.length === 0)
116
+ return [];
117
+ const filePath = path.join(this._paths.subjects, subject, `${artifacts[0].className}.ts`);
118
+ if (!fs.existsSync(filePath))
119
+ return [];
120
+ return this.parseComponentProperties(fs.readFileSync(filePath, 'utf-8'));
121
+ }
122
+ /**
123
+ * Returns all fields and columns declared on the generated screen interface
124
+ * for the given subject + screen context combination.
125
+ *
126
+ * The interface lives in `test-artifacts/screens/` and contains every field
127
+ * name, column name, and control type for the screen — enough for an AI to
128
+ * write a complete, accurate test without inspecting a live browser.
129
+ *
130
+ * @example
131
+ * resolver.getScreenInterface('CustomerOrder', 'Main');
132
+ * // → [
133
+ * // { propertyName: "customerName", controlType: "Field", componentType: "Form" },
134
+ * // { propertyName: "orderDate", controlType: "DatePicker", componentType: "Form" },
135
+ * // { propertyName: "status", controlType: "Lookup", componentType: "Form" },
136
+ * // { propertyName: "orderId", controlType: "Column", componentType: "Grid" },
137
+ * // ]
138
+ */
139
+ getScreenInterface(subject, screenContext) {
140
+ const artifacts = this.listArtifacts(subject, screenContext);
141
+ if (artifacts.length === 0)
142
+ return [];
143
+ // Component files live in Components/ subfolder under the subject folder
144
+ const componentsDir = path.join(this._paths.subjects, subject, 'Components');
145
+ if (!fs.existsSync(componentsDir))
146
+ return [];
147
+ const results = [];
148
+ const componentFiles = fs.readdirSync(componentsDir).filter((f) => f.endsWith('.ts'));
149
+ for (const file of componentFiles) {
150
+ const content = fs.readFileSync(path.join(componentsDir, file), 'utf-8');
151
+ const interfaceName = file.replace('.ts', '');
152
+ const fields = this.parseScreenInterface(content, interfaceName);
153
+ results.push(...fields);
154
+ }
155
+ return results;
156
+ }
157
+ // ── Private helpers ────────────────────────────────────────────────────────
158
+ inferScreenContext(className) {
159
+ for (const ctx of screenContexts) {
160
+ if (className.endsWith(ctx))
161
+ return ctx;
162
+ }
163
+ return undefined;
164
+ }
165
+ /**
166
+ * Parses component properties from a generated subject class.
167
+ *
168
+ * Generated classes declare properties without `public`:
169
+ * actionBarVXE6V0YT: ActionBar;
170
+ * gridQT3UL7F8: EmployeeGrid;
171
+ */
172
+ parseComponentProperties(content) {
173
+ const results = [];
174
+ // Match class-body property declarations: " name: Type;" (no public keyword)
175
+ // Excludes private fields (_name), constructor, and method declarations
176
+ const propertyRegex = /^\s{4}(\w+)\s*:\s*(\w+)\s*;/gm;
177
+ for (let match = propertyRegex.exec(content); match !== null; match = propertyRegex.exec(content)) {
178
+ const propertyName = match[1];
179
+ const componentType = match[2];
180
+ if (propertyName.startsWith('_'))
181
+ continue;
182
+ if (['string', 'number', 'boolean', 'Page', 'Locator'].includes(componentType))
183
+ continue;
184
+ results.push({ propertyName, componentType });
185
+ }
186
+ return results;
187
+ }
188
+ /**
189
+ * Parses fields/columns from the Components/ subfolder files for a subject.
190
+ *
191
+ * Generated component files (e.g. EmployeeGrid.ts, EmployeeForm.ts) declare
192
+ * getters like:
193
+ * public get firstNameColumn(): IGridColumnControl { ... }
194
+ * public get firstNameField(): IInputFieldControl { ... }
195
+ */
196
+ parseScreenInterface(content, interfaceName) {
197
+ const results = [];
198
+ // Match readonly interface members: " readonly bioColumn: IGridColumnControl;"
199
+ const interfaceRegex = /^\s+readonly\s+(\w+)\s*:\s*(I?\w+Control)\s*;/gm;
200
+ for (let match = interfaceRegex.exec(content); match !== null; match = interfaceRegex.exec(content)) {
201
+ const propertyName = match[1];
202
+ const rawType = match[2];
203
+ const controlType = this.inferControlType(rawType, propertyName);
204
+ const componentType = interfaceName.toLowerCase().includes('grid') ? 'Grid' : 'Form';
205
+ results.push({ propertyName, controlType, componentType: componentType });
206
+ }
207
+ return results;
208
+ }
209
+ inferControlType(rawType, propertyName) {
210
+ const typeMap = {
211
+ IGridColumnControl: 'Column',
212
+ GridColumnControl: 'Column',
213
+ IInputFieldControl: 'Field',
214
+ InputFieldControl: 'Field',
215
+ ILookupDropdown: 'Lookup',
216
+ LookupDropdown: 'Lookup',
217
+ IFormComboBox: 'ComboBox',
218
+ FormComboBox: 'ComboBox',
219
+ IDateControl: 'DatePicker',
220
+ DateControl: 'DatePicker',
221
+ ICheckboxControl: 'Checkbox',
222
+ CheckboxControl: 'Checkbox',
223
+ ITextareaControl: 'Textarea',
224
+ TextareaControl: 'Textarea'
225
+ };
226
+ if (typeMap[rawType])
227
+ return typeMap[rawType];
228
+ const suffixMatch = propertyName.match(/(Field|Lookup|Dropdown|DatePicker|Checkbox|Textarea|ComboBox|Column)$/i);
229
+ return suffixMatch ? suffixMatch[1] : rawType;
230
+ }
231
+ }
232
+ //# sourceMappingURL=ArtifactResolver.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ArtifactResolver.js","sourceRoot":"","sources":["../../mcp/ArtifactResolver.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,EAAE,aAAa,EAAE,MAAM,8CAA8C,CAAC;AAG7E,wFAAwF;AACxF,MAAM,cAAc,GAAoB,CAAC,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;AAuC5E;;;;;;;;GAQG;AACH;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,MAAM,OAAO,gBAAgB;IAG3B,YAAY,KAAqB;QAC/B,IAAI,CAAC,MAAM,GAAG,KAAK,IAAI,IAAI,aAAa,EAAE,CAAC;IAC7C,CAAC;IAED;;;;;;;OAOG;IACI,YAAY;QACjB,MAAM,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC;QAEzC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,WAAW,CAAC;YAAE,OAAO,EAAE,CAAC;QAE3C,OAAO,EAAE,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC;IACjH,CAAC;IAED;;;;;;;;;;;;;;;OAeG;IACI,aAAa,CAAC,OAAgB,EAAE,aAA6B;QAClE,MAAM,QAAQ,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC;QAC3D,MAAM,OAAO,GAA0B,EAAE,CAAC;QAE1C,KAAK,MAAM,WAAW,IAAI,QAAQ,EAAE,CAAC;YACnC,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;YAEhE,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC;gBAAE,SAAS;YAEzC,MAAM,KAAK,GAAG,EAAE,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,UAAU,CAAC,CAAC;YAE9F,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;gBACzB,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;gBAC1C,MAAM,OAAO,GAAG,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC,CAAC;gBAEnD,IAAI,CAAC,OAAO;oBAAE,SAAS;gBACvB,IAAI,aAAa,IAAI,OAAO,KAAK,aAAa;oBAAE,SAAS;gBAEzD,OAAO,CAAC,IAAI,CAAC;oBACX,OAAO,EAAE,WAAW;oBACpB,SAAS;oBACT,aAAa,EAAE,OAAO;oBACtB,UAAU,EAAE,+CAA+C,WAAW,IAAI,SAAS,KAAK;iBACzF,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAED,OAAO,OAAO,CAAC;IACjB,CAAC;IAED;;;;;;;;;;;OAWG;IACI,aAAa,CAAC,OAAe,EAAE,aAA4B;QAChE,MAAM,SAAS,GAAG,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC;QAE7D,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,EAAE,CAAC;QAEtC,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,OAAO,EAAE,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,KAAK,CAAC,CAAC;QAE1F,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC;YAAE,OAAO,EAAE,CAAC;QAExC,OAAO,IAAI,CAAC,wBAAwB,CAAC,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC;IAC3E,CAAC;IAED;;;;;;;;;;;;;;;;OAgBG;IACI,kBAAkB,CAAC,OAAe,EAAE,aAA4B;QACrE,MAAM,SAAS,GAAG,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC;QAC7D,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,EAAE,CAAC;QAEtC,yEAAyE;QACzE,MAAM,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,OAAO,EAAE,YAAY,CAAC,CAAC;QAC7E,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,aAAa,CAAC;YAAE,OAAO,EAAE,CAAC;QAE7C,MAAM,OAAO,GAAsB,EAAE,CAAC;QACtC,MAAM,cAAc,GAAG,EAAE,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;QAEtF,KAAK,MAAM,IAAI,IAAI,cAAc,EAAE,CAAC;YAClC,MAAM,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,EAAE,OAAO,CAAC,CAAC;YACzE,MAAM,aAAa,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;YAC9C,MAAM,MAAM,GAAG,IAAI,CAAC,oBAAoB,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC;YACjE,OAAO,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,CAAC;QAC1B,CAAC;QAED,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,8EAA8E;IAEtE,kBAAkB,CAAC,SAAiB;QAC1C,KAAK,MAAM,GAAG,IAAI,cAAc,EAAE,CAAC;YACjC,IAAI,SAAS,CAAC,QAAQ,CAAC,GAAG,CAAC;gBAAE,OAAO,GAAG,CAAC;QAC1C,CAAC;QACD,OAAO,SAAS,CAAC;IACnB,CAAC;IAED;;;;;;OAMG;IACK,wBAAwB,CAAC,OAAe;QAC9C,MAAM,OAAO,GAAoB,EAAE,CAAC;QAEpC,8EAA8E;QAC9E,wEAAwE;QACxE,MAAM,aAAa,GAAG,+BAA+B,CAAC;QAEtD,KAAK,IAAI,KAAK,GAAG,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,KAAK,KAAK,IAAI,EAAE,KAAK,GAAG,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;YAClG,MAAM,YAAY,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;YAC9B,MAAM,aAAa,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;YAE/B,IAAI,YAAY,CAAC,UAAU,CAAC,GAAG,CAAC;gBAAE,SAAS;YAC3C,IAAI,CAAC,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC,QAAQ,CAAC,aAAa,CAAC;gBAAE,SAAS;YAEzF,OAAO,CAAC,IAAI,CAAC,EAAE,YAAY,EAAE,aAAa,EAAE,CAAC,CAAC;QAChD,CAAC;QAED,OAAO,OAAO,CAAC;IACjB,CAAC;IAED;;;;;;;OAOG;IACK,oBAAoB,CAAC,OAAe,EAAE,aAAqB;QACjE,MAAM,OAAO,GAAsB,EAAE,CAAC;QAEtC,gFAAgF;QAChF,MAAM,cAAc,GAAG,iDAAiD,CAAC;QACzE,KAAK,IAAI,KAAK,GAAG,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,KAAK,KAAK,IAAI,EAAE,KAAK,GAAG,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;YACpG,MAAM,YAAY,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;YAC9B,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;YACzB,MAAM,WAAW,GAAG,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;YACjE,MAAM,aAAa,GAAG,aAAa,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC;YACrF,OAAO,CAAC,IAAI,CAAC,EAAE,YAAY,EAAE,WAAW,EAAE,aAAa,EAAE,aAAgC,EAAE,CAAC,CAAC;QAC/F,CAAC;QAED,OAAO,OAAO,CAAC;IACjB,CAAC;IAEO,gBAAgB,CAAC,OAAe,EAAE,YAAoB;QAC5D,MAAM,OAAO,GAA2B;YACtC,kBAAkB,EAAE,QAAQ;YAC5B,iBAAiB,EAAE,QAAQ;YAC3B,kBAAkB,EAAE,OAAO;YAC3B,iBAAiB,EAAE,OAAO;YAC1B,eAAe,EAAE,QAAQ;YACzB,cAAc,EAAE,QAAQ;YACxB,aAAa,EAAE,UAAU;YACzB,YAAY,EAAE,UAAU;YACxB,YAAY,EAAE,YAAY;YAC1B,WAAW,EAAE,YAAY;YACzB,gBAAgB,EAAE,UAAU;YAC5B,eAAe,EAAE,UAAU;YAC3B,gBAAgB,EAAE,UAAU;YAC5B,eAAe,EAAE,UAAU;SAC5B,CAAC;QAEF,IAAI,OAAO,CAAC,OAAO,CAAC;YAAE,OAAO,OAAO,CAAC,OAAO,CAAC,CAAC;QAE9C,MAAM,WAAW,GAAG,YAAY,CAAC,KAAK,CAAC,wEAAwE,CAAC,CAAC;QACjH,OAAO,WAAW,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;IAChD,CAAC;CACF"}
@@ -0,0 +1,2 @@
1
+ export type { ComponentInfo, ScreenFieldInfo, SubjectArtifactInfo } from './ArtifactResolver.js';
2
+ export { ArtifactResolver } from './ArtifactResolver.js';
@@ -0,0 +1,2 @@
1
+ export { ArtifactResolver } from './ArtifactResolver.js';
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../mcp/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC"}
@@ -1,6 +1,27 @@
1
1
  import type { Page } from '@playwright/test';
2
2
  import { ExportComponent, ListBarMenuComponent, ManagePrefilterPopup, PopUpComponent, SnackBarComponent, TopBarComponent } from '../components/index.js';
3
3
  import type { Test } from '../types/Test.js';
4
+ /**
5
+ * Holds pre-constructed instances of the Thinkwise UI components that are
6
+ * present globally across all screens (not tied to any specific subject).
7
+ *
8
+ * Accessed via `page.components` in tests. Available properties:
9
+ * - `popUp` — the main overlay/modal dialog
10
+ * - `export` — the export panel triggered from a grid or list
11
+ * - `snackBar` — the toast notification bar
12
+ * - `topBar` — the application top bar (breadcrumbs, user menu)
13
+ * - `listBarMenu` — the hamburger / list-bar dropdown menu
14
+ * - `managePrefilterPopup` — the "Manage prefilter" popup dialog
15
+ *
16
+ * @example
17
+ * ```ts
18
+ * // Confirm a save popup:
19
+ * await page.components.popUp.confirm();
20
+ *
21
+ * // Check a snackbar message:
22
+ * await expect(page.components.snackBar.message).toHaveText('Saved successfully');
23
+ * ```
24
+ */
4
25
  declare class GlobalComponents {
5
26
  popUp: PopUpComponent;
6
27
  export: ExportComponent;
@@ -17,7 +38,16 @@ declare module '@playwright/test' {
17
38
  }
18
39
  export declare class Components {
19
40
  private _test;
41
+ /**
42
+ * Extends the Playwright `Test` fixture to attach a `GlobalComponents` instance to
43
+ * `page.components` before each test, providing access to shared UI components
44
+ * such as `popUp`, `export`, `snackBar`, `topBar`, `listBarMenu`, and `managePrefilterPopup`.
45
+ * @param test - The Playwright `Test` fixture to extend.
46
+ */
20
47
  constructor(test: Test);
48
+ /**
49
+ * Returns the extended `Test` fixture with `page.components` wired up.
50
+ */
21
51
  get test(): Test;
22
52
  }
23
53
  export {};
@@ -1,4 +1,25 @@
1
1
  import { ExportComponent, ListBarMenuComponent, ManagePrefilterPopup, PopUpComponent, SnackBarComponent, TopBarComponent } from '../components/index.js';
2
+ /**
3
+ * Holds pre-constructed instances of the Thinkwise UI components that are
4
+ * present globally across all screens (not tied to any specific subject).
5
+ *
6
+ * Accessed via `page.components` in tests. Available properties:
7
+ * - `popUp` — the main overlay/modal dialog
8
+ * - `export` — the export panel triggered from a grid or list
9
+ * - `snackBar` — the toast notification bar
10
+ * - `topBar` — the application top bar (breadcrumbs, user menu)
11
+ * - `listBarMenu` — the hamburger / list-bar dropdown menu
12
+ * - `managePrefilterPopup` — the "Manage prefilter" popup dialog
13
+ *
14
+ * @example
15
+ * ```ts
16
+ * // Confirm a save popup:
17
+ * await page.components.popUp.confirm();
18
+ *
19
+ * // Check a snackbar message:
20
+ * await expect(page.components.snackBar.message).toHaveText('Saved successfully');
21
+ * ```
22
+ */
2
23
  class GlobalComponents {
3
24
  constructor(page) {
4
25
  this.popUp = new PopUpComponent(page);
@@ -10,6 +31,12 @@ class GlobalComponents {
10
31
  }
11
32
  }
12
33
  export class Components {
34
+ /**
35
+ * Extends the Playwright `Test` fixture to attach a `GlobalComponents` instance to
36
+ * `page.components` before each test, providing access to shared UI components
37
+ * such as `popUp`, `export`, `snackBar`, `topBar`, `listBarMenu`, and `managePrefilterPopup`.
38
+ * @param test - The Playwright `Test` fixture to extend.
39
+ */
13
40
  constructor(test) {
14
41
  this._test = test.extend({
15
42
  page: async ({ page }, use) => {
@@ -18,6 +45,9 @@ export class Components {
18
45
  }
19
46
  });
20
47
  }
48
+ /**
49
+ * Returns the extended `Test` fixture with `page.components` wired up.
50
+ */
21
51
  get test() {
22
52
  return this._test;
23
53
  }
@@ -1 +1 @@
1
- {"version":3,"file":"GlobalComponents.js","sourceRoot":"","sources":["../../page-extensions/GlobalComponents.ts"],"names":[],"mappings":"AACA,OAAO,EACL,eAAe,EACf,oBAAoB,EACpB,oBAAoB,EACpB,cAAc,EACd,iBAAiB,EACjB,eAAe,EAChB,MAAM,wBAAwB,CAAC;AAGhC,MAAM,gBAAgB;IAQpB,YAAY,IAAU;QACpB,IAAI,CAAC,KAAK,GAAG,IAAI,cAAc,CAAC,IAAI,CAAC,CAAC;QACtC,IAAI,CAAC,MAAM,GAAG,IAAI,eAAe,CAAC,IAAI,CAAC,CAAC;QACxC,IAAI,CAAC,QAAQ,GAAG,IAAI,iBAAiB,CAAC,IAAI,CAAC,CAAC;QAC5C,IAAI,CAAC,MAAM,GAAG,IAAI,eAAe,CAAC,IAAI,CAAC,CAAC;QACxC,IAAI,CAAC,WAAW,GAAG,IAAI,oBAAoB,CAAC,IAAI,CAAC,CAAC;QAClD,IAAI,CAAC,oBAAoB,GAAG,IAAI,oBAAoB,CAAC,IAAI,CAAC,CAAC;IAC7D,CAAC;CACF;AAQD,MAAM,OAAO,UAAU;IAGrB,YAAY,IAAU;QACpB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC;YACvB,IAAI,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,EAAE;gBAC5B,IAAI,CAAC,UAAU,GAAG,IAAI,gBAAgB,CAAC,IAAI,CAAC,CAAC;gBAE7C,MAAM,GAAG,CAAC,IAAI,CAAC,CAAC;YAClB,CAAC;SACF,CAAC,CAAC;IACL,CAAC;IAED,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC;CACF"}
1
+ {"version":3,"file":"GlobalComponents.js","sourceRoot":"","sources":["../../page-extensions/GlobalComponents.ts"],"names":[],"mappings":"AACA,OAAO,EACL,eAAe,EACf,oBAAoB,EACpB,oBAAoB,EACpB,cAAc,EACd,iBAAiB,EACjB,eAAe,EAChB,MAAM,wBAAwB,CAAC;AAGhC;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,gBAAgB;IAQpB,YAAY,IAAU;QACpB,IAAI,CAAC,KAAK,GAAG,IAAI,cAAc,CAAC,IAAI,CAAC,CAAC;QACtC,IAAI,CAAC,MAAM,GAAG,IAAI,eAAe,CAAC,IAAI,CAAC,CAAC;QACxC,IAAI,CAAC,QAAQ,GAAG,IAAI,iBAAiB,CAAC,IAAI,CAAC,CAAC;QAC5C,IAAI,CAAC,MAAM,GAAG,IAAI,eAAe,CAAC,IAAI,CAAC,CAAC;QACxC,IAAI,CAAC,WAAW,GAAG,IAAI,oBAAoB,CAAC,IAAI,CAAC,CAAC;QAClD,IAAI,CAAC,oBAAoB,GAAG,IAAI,oBAAoB,CAAC,IAAI,CAAC,CAAC;IAC7D,CAAC;CACF;AAQD,MAAM,OAAO,UAAU;IAGrB;;;;;OAKG;IACH,YAAY,IAAU;QACpB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC;YACvB,IAAI,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,EAAE;gBAC5B,IAAI,CAAC,UAAU,GAAG,IAAI,gBAAgB,CAAC,IAAI,CAAC,CAAC;gBAE7C,MAAM,GAAG,CAAC,IAAI,CAAC,CAAC;YAClB,CAAC;SACF,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACH,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC;CACF"}
@@ -6,6 +6,15 @@ declare module '@playwright/test' {
6
6
  }
7
7
  export declare class GoToDeepLink {
8
8
  private _test;
9
+ /**
10
+ * Extends the Playwright `Test` fixture to add a `page.goToDeepLink(deepLink)` method.
11
+ * The method preserves the current `#application=` hash segment and appends the given
12
+ * deep link path before navigating to the resulting URL.
13
+ * @param test - The Playwright `Test` fixture to extend.
14
+ */
9
15
  constructor(test: Test);
16
+ /**
17
+ * Returns the extended `Test` fixture with `page.goToDeepLink` wired up.
18
+ */
10
19
  get test(): Test;
11
20
  }
@@ -1,4 +1,10 @@
1
1
  export class GoToDeepLink {
2
+ /**
3
+ * Extends the Playwright `Test` fixture to add a `page.goToDeepLink(deepLink)` method.
4
+ * The method preserves the current `#application=` hash segment and appends the given
5
+ * deep link path before navigating to the resulting URL.
6
+ * @param test - The Playwright `Test` fixture to extend.
7
+ */
2
8
  constructor(test) {
3
9
  this._test = test.extend({
4
10
  page: async ({ page }, use) => {
@@ -24,6 +30,9 @@ export class GoToDeepLink {
24
30
  }
25
31
  });
26
32
  }
33
+ /**
34
+ * Returns the extended `Test` fixture with `page.goToDeepLink` wired up.
35
+ */
27
36
  get test() {
28
37
  return this._test;
29
38
  }
@@ -1 +1 @@
1
- {"version":3,"file":"GoToDeepLink.js","sourceRoot":"","sources":["../../page-extensions/GoToDeepLink.ts"],"names":[],"mappings":"AAQA,MAAM,OAAO,YAAY;IAGvB,YAAY,IAAU;QACpB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC;YACvB,IAAI,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,EAAE;gBAC5B,IAAI,CAAC,YAAY,GAAG,KAAK,EAAE,QAAgB,EAAuD,EAAE;oBAClG,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,MAAM,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;oBACtC,MAAM,gBAAgB,GAAG,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC;oBAE3D,IAAI,gBAAgB,KAAK,CAAC,CAAC,EAAE,CAAC;wBAC5B,MAAM,gBAAgB,GAAG,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,gBAAgB,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;wBACrG,GAAG,CAAC,IAAI,GAAG,gBAAgB,gBAAgB,EAAE,CAAC;oBAChD,CAAC;oBAED,IAAI,QAAQ,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;wBAC7B,QAAQ,GAAG,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;oBACnC,CAAC;oBAED,IAAI,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;wBAC3B,GAAG,CAAC,IAAI,IAAI,QAAQ,CAAC;oBACvB,CAAC;yBAAM,CAAC;wBACN,GAAG,CAAC,IAAI,IAAI,IAAI,QAAQ,EAAE,CAAC;oBAC7B,CAAC;oBAED,OAAO,MAAM,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC;gBACzC,CAAC,CAAC;gBAEF,MAAM,GAAG,CAAC,IAAI,CAAC,CAAC;YAClB,CAAC;SACF,CAAC,CAAC;IACL,CAAC;IAED,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC;CACF"}
1
+ {"version":3,"file":"GoToDeepLink.js","sourceRoot":"","sources":["../../page-extensions/GoToDeepLink.ts"],"names":[],"mappings":"AAQA,MAAM,OAAO,YAAY;IAGvB;;;;;OAKG;IACH,YAAY,IAAU;QACpB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC;YACvB,IAAI,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,EAAE;gBAC5B,IAAI,CAAC,YAAY,GAAG,KAAK,EAAE,QAAgB,EAAuD,EAAE;oBAClG,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,MAAM,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;oBACtC,MAAM,gBAAgB,GAAG,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC;oBAE3D,IAAI,gBAAgB,KAAK,CAAC,CAAC,EAAE,CAAC;wBAC5B,MAAM,gBAAgB,GAAG,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,gBAAgB,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;wBACrG,GAAG,CAAC,IAAI,GAAG,gBAAgB,gBAAgB,EAAE,CAAC;oBAChD,CAAC;oBAED,IAAI,QAAQ,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;wBAC7B,QAAQ,GAAG,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;oBACnC,CAAC;oBAED,IAAI,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;wBAC3B,GAAG,CAAC,IAAI,IAAI,QAAQ,CAAC;oBACvB,CAAC;yBAAM,CAAC;wBACN,GAAG,CAAC,IAAI,IAAI,IAAI,QAAQ,EAAE,CAAC;oBAC7B,CAAC;oBAED,OAAO,MAAM,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC;gBACzC,CAAC,CAAC;gBAEF,MAAM,GAAG,CAAC,IAAI,CAAC,CAAC;YAClB,CAAC;SACF,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACH,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC;CACF"}
@@ -11,7 +11,15 @@ declare module '@playwright/test' {
11
11
  export declare class LoginFeatures {
12
12
  private _loginHelper;
13
13
  private _test;
14
+ /**
15
+ * Extends the Playwright `Test` fixture to attach `logIn`, `logInWithCredentials`,
16
+ * `logInWithOptions`, and `logOut` methods to the page, backed by `LoginHelper`.
17
+ * @param test - The Playwright `Test` fixture to extend.
18
+ */
14
19
  constructor(test: Test);
15
20
  private get loginHelper();
21
+ /**
22
+ * Returns the extended `Test` fixture with login methods wired up on `page`.
23
+ */
16
24
  get test(): Test;
17
25
  }
@@ -1,5 +1,10 @@
1
1
  import { LoginHelper } from '../helpers/LoginHelper.js';
2
2
  export class LoginFeatures {
3
+ /**
4
+ * Extends the Playwright `Test` fixture to attach `logIn`, `logInWithCredentials`,
5
+ * `logInWithOptions`, and `logOut` methods to the page, backed by `LoginHelper`.
6
+ * @param test - The Playwright `Test` fixture to extend.
7
+ */
3
8
  constructor(test) {
4
9
  this._test = test.extend({
5
10
  page: async ({ page }, use) => {
@@ -26,6 +31,9 @@ export class LoginFeatures {
26
31
  }
27
32
  return this._loginHelper;
28
33
  }
34
+ /**
35
+ * Returns the extended `Test` fixture with login methods wired up on `page`.
36
+ */
29
37
  get test() {
30
38
  return this._test;
31
39
  }
@@ -1 +1 @@
1
- {"version":3,"file":"LoginFeatures.js","sourceRoot":"","sources":["../../page-extensions/LoginFeatures.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAaxD,MAAM,OAAO,aAAa;IAIxB,YAAY,IAAU;QACpB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC;YACvB,IAAI,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,EAAE;gBAC5B,IAAI,CAAC,YAAY,GAAG,IAAI,WAAW,CAAC,IAAI,CAAC,CAAC;gBAE1C,IAAI,CAAC,KAAK,GAAG,KAAK,EAAE,aAAsB,EAAE,EAAE;oBAC5C,MAAM,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;gBAC9C,CAAC,CAAC;gBAEF,IAAI,CAAC,oBAAoB,GAAG,KAAK,EAAE,QAAgB,EAAE,QAAgB,EAAE,EAAE;oBACvE,MAAM,IAAI,CAAC,WAAW,CAAC,oBAAoB,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;gBAClE,CAAC,CAAC;gBAEF,IAAI,CAAC,gBAAgB,GAAG,KAAK,EAAE,OAA8B,EAAE,EAAE;oBAC/D,MAAM,IAAI,CAAC,WAAW,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;gBACnD,CAAC,CAAC;gBAEF,IAAI,CAAC,MAAM,GAAG,KAAK,IAAI,EAAE;oBACvB,MAAM,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC;gBAClC,CAAC,CAAC;gBAEF,MAAM,GAAG,CAAC,IAAI,CAAC,CAAC;YAClB,CAAC;SACF,CAAC,CAAC;IACL,CAAC;IAED,IAAY,WAAW;QACrB,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC;YACvB,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;QACpD,CAAC;QAED,OAAO,IAAI,CAAC,YAAY,CAAC;IAC3B,CAAC;IAED,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC;CACF"}
1
+ {"version":3,"file":"LoginFeatures.js","sourceRoot":"","sources":["../../page-extensions/LoginFeatures.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAaxD,MAAM,OAAO,aAAa;IAIxB;;;;OAIG;IACH,YAAY,IAAU;QACpB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC;YACvB,IAAI,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,EAAE;gBAC5B,IAAI,CAAC,YAAY,GAAG,IAAI,WAAW,CAAC,IAAI,CAAC,CAAC;gBAE1C,IAAI,CAAC,KAAK,GAAG,KAAK,EAAE,aAAsB,EAAE,EAAE;oBAC5C,MAAM,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;gBAC9C,CAAC,CAAC;gBAEF,IAAI,CAAC,oBAAoB,GAAG,KAAK,EAAE,QAAgB,EAAE,QAAgB,EAAE,EAAE;oBACvE,MAAM,IAAI,CAAC,WAAW,CAAC,oBAAoB,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;gBAClE,CAAC,CAAC;gBAEF,IAAI,CAAC,gBAAgB,GAAG,KAAK,EAAE,OAA8B,EAAE,EAAE;oBAC/D,MAAM,IAAI,CAAC,WAAW,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;gBACnD,CAAC,CAAC;gBAEF,IAAI,CAAC,MAAM,GAAG,KAAK,IAAI,EAAE;oBACvB,MAAM,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC;gBAClC,CAAC,CAAC;gBAEF,MAAM,GAAG,CAAC,IAAI,CAAC,CAAC;YAClB,CAAC;SACF,CAAC,CAAC;IACL,CAAC;IAED,IAAY,WAAW;QACrB,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC;YACvB,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;QACpD,CAAC;QAED,OAAO,IAAI,CAAC,YAAY,CAAC;IAC3B,CAAC;IAED;;OAEG;IACH,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC;CACF"}