@mablhq/playwright-tools 2.49.1

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 (436) hide show
  1. package/Globals.js +69 -0
  2. package/LICENSE.txt +29 -0
  3. package/README.md +219 -0
  4. package/api/ApiError.js +11 -0
  5. package/api/atlassian/bitBucketApiClient.js +81 -0
  6. package/api/atlassian/entities/CodeAnnotation.js +9 -0
  7. package/api/atlassian/entities/CodeReport.js +15 -0
  8. package/api/atlassian/entities/PullRequest.js +2 -0
  9. package/api/basicApiClient.js +293 -0
  10. package/api/entities/Browser.js +11 -0
  11. package/api/entities/Email.js +14 -0
  12. package/api/entities/FindStrategy.js +10 -0
  13. package/api/entities/Label.js +2 -0
  14. package/api/entities/VersionedObject.js +2 -0
  15. package/api/entities/Workspace.js +2 -0
  16. package/api/featureSet.js +44 -0
  17. package/api/mablApiClient.js +1070 -0
  18. package/api/mablApiClientFactory.js +79 -0
  19. package/api/types.js +10 -0
  20. package/auth/AuthClient.js +38 -0
  21. package/auth/OktaClient.js +97 -0
  22. package/browserEngines/browserEngine.js +41 -0
  23. package/browserEngines/browserEngines.js +14 -0
  24. package/browserEngines/chromiumBrowserEngine.js +177 -0
  25. package/browserEngines/firefoxBrowserEngine.js +134 -0
  26. package/browserEngines/unsupportedBrowserEngine.js +29 -0
  27. package/browserEngines/webkitBrowerEngine.js +50 -0
  28. package/browserLauncher/browser.js +2 -0
  29. package/browserLauncher/browserEvent.js +11 -0
  30. package/browserLauncher/browserLauncher.js +17 -0
  31. package/browserLauncher/browserLauncherEventEmitter.js +2 -0
  32. package/browserLauncher/browserLauncherFactory.js +30 -0
  33. package/browserLauncher/elementHandle.js +30 -0
  34. package/browserLauncher/errors.js +26 -0
  35. package/browserLauncher/frame.js +17 -0
  36. package/browserLauncher/frameBase.js +10 -0
  37. package/browserLauncher/httpRequest.js +2 -0
  38. package/browserLauncher/httpResponse.js +2 -0
  39. package/browserLauncher/jsHandle.js +2 -0
  40. package/browserLauncher/page.js +2 -0
  41. package/browserLauncher/pageEvent.js +17 -0
  42. package/browserLauncher/playwrightBrowserLauncher/browserDelegate.js +2 -0
  43. package/browserLauncher/playwrightBrowserLauncher/chromium/chromiumBrowserDelegate.js +61 -0
  44. package/browserLauncher/playwrightBrowserLauncher/chromium/chromiumElementHandleDelegate.js +129 -0
  45. package/browserLauncher/playwrightBrowserLauncher/chromium/chromiumFrameDelegate.js +24 -0
  46. package/browserLauncher/playwrightBrowserLauncher/chromium/chromiumPageDelegate.js +145 -0
  47. package/browserLauncher/playwrightBrowserLauncher/elementHandleDelegate.js +2 -0
  48. package/browserLauncher/playwrightBrowserLauncher/firefox/firefoxBrowserDelegate.js +50 -0
  49. package/browserLauncher/playwrightBrowserLauncher/firefox/firefoxElementHandleDelegate.js +11 -0
  50. package/browserLauncher/playwrightBrowserLauncher/firefox/firefoxFrameDelegate.js +36 -0
  51. package/browserLauncher/playwrightBrowserLauncher/firefox/firefoxPageDelegate.js +15 -0
  52. package/browserLauncher/playwrightBrowserLauncher/frameDelegate.js +2 -0
  53. package/browserLauncher/playwrightBrowserLauncher/internals.js +2 -0
  54. package/browserLauncher/playwrightBrowserLauncher/nonChromium/nonChromiumAbstractBrowserDelegate.js +15 -0
  55. package/browserLauncher/playwrightBrowserLauncher/nonChromium/nonChromiumAbstractElementHandleDelegate.js +73 -0
  56. package/browserLauncher/playwrightBrowserLauncher/nonChromium/nonChromiumAbstractFrameDelegate.js +13 -0
  57. package/browserLauncher/playwrightBrowserLauncher/nonChromium/nonChromiumAbstractPageDelegate.js +81 -0
  58. package/browserLauncher/playwrightBrowserLauncher/pageDelegate.js +2 -0
  59. package/browserLauncher/playwrightBrowserLauncher/playwrightApiResponse.js +18 -0
  60. package/browserLauncher/playwrightBrowserLauncher/playwrightBrowser.js +259 -0
  61. package/browserLauncher/playwrightBrowserLauncher/playwrightBrowserLauncher.js +97 -0
  62. package/browserLauncher/playwrightBrowserLauncher/playwrightDom.js +319 -0
  63. package/browserLauncher/playwrightBrowserLauncher/playwrightFrame.js +265 -0
  64. package/browserLauncher/playwrightBrowserLauncher/playwrightHttpRequest.js +76 -0
  65. package/browserLauncher/playwrightBrowserLauncher/playwrightHttpResponse.js +26 -0
  66. package/browserLauncher/playwrightBrowserLauncher/playwrightPage.js +377 -0
  67. package/browserLauncher/playwrightBrowserLauncher/simplePlaywrightLogger.js +36 -0
  68. package/browserLauncher/playwrightBrowserLauncher/webkit/webkitBrowserDelegate.js +50 -0
  69. package/browserLauncher/playwrightBrowserLauncher/webkit/webkitElementHandleDelegate.js +16 -0
  70. package/browserLauncher/playwrightBrowserLauncher/webkit/webkitFrameDelegate.js +19 -0
  71. package/browserLauncher/playwrightBrowserLauncher/webkit/webkitPageDelegate.js +15 -0
  72. package/browserLauncher/playwrightBrowserLauncher/wrappers.js +25 -0
  73. package/browserLauncher/types.js +28 -0
  74. package/browserLauncher/utils.js +9 -0
  75. package/cli.js +66 -0
  76. package/commands/applications/applications.js +5 -0
  77. package/commands/applications/applications_cmds/describe.js +21 -0
  78. package/commands/applications/applications_cmds/list.js +56 -0
  79. package/commands/auth/auth.js +5 -0
  80. package/commands/auth/auth_cmds/activate-key.js +38 -0
  81. package/commands/auth/auth_cmds/clear.js +10 -0
  82. package/commands/auth/auth_cmds/info.js +10 -0
  83. package/commands/auth/auth_cmds/login.js +10 -0
  84. package/commands/branches/branches.js +5 -0
  85. package/commands/branches/branches_cmds/create.js +56 -0
  86. package/commands/branches/branches_cmds/describe.js +50 -0
  87. package/commands/branches/branches_cmds/list.js +84 -0
  88. package/commands/branches/branches_cmds/merge.js +56 -0
  89. package/commands/browserTypes.js +20 -0
  90. package/commands/commandUtil/awaitCompletion.js +67 -0
  91. package/commands/commandUtil/branches.js +44 -0
  92. package/commands/commandUtil/codeInsights.js +181 -0
  93. package/commands/commandUtil/describe.js +32 -0
  94. package/commands/commandUtil/fileUtil.js +50 -0
  95. package/commands/commandUtil/interfaces.js +4 -0
  96. package/commands/commandUtil/list.js +70 -0
  97. package/commands/commandUtil/util.js +127 -0
  98. package/commands/commandUtil/versionUtil.js +33 -0
  99. package/commands/config/config.js +5 -0
  100. package/commands/config/config_cmds/configKeys.js +28 -0
  101. package/commands/config/config_cmds/delete.js +29 -0
  102. package/commands/config/config_cmds/get.js +52 -0
  103. package/commands/config/config_cmds/install.js +119 -0
  104. package/commands/config/config_cmds/list.js +39 -0
  105. package/commands/config/config_cmds/set.js +80 -0
  106. package/commands/constants.js +160 -0
  107. package/commands/credentials/credentials.js +5 -0
  108. package/commands/credentials/credentials_cmds/list.js +66 -0
  109. package/commands/datatables/datatables.js +5 -0
  110. package/commands/datatables/datatables_cmds/create.js +61 -0
  111. package/commands/datatables/datatables_cmds/describe.js +17 -0
  112. package/commands/datatables/datatables_cmds/export.js +86 -0
  113. package/commands/datatables/datatables_cmds/list.js +18 -0
  114. package/commands/datatables/datatables_cmds/scenarios.js +35 -0
  115. package/commands/datatables/datatables_cmds/update.js +120 -0
  116. package/commands/datatables/utils.js +145 -0
  117. package/commands/deploy/deploy.js +5 -0
  118. package/commands/deploy/deploy_cmds/awaitDeploymentCompletion.js +100 -0
  119. package/commands/deploy/deploy_cmds/create.js +342 -0
  120. package/commands/deploy/deploy_cmds/describe.js +54 -0
  121. package/commands/deploy/deploy_cmds/executionResultPresenter.js +117 -0
  122. package/commands/deploy/deploy_cmds/list.js +74 -0
  123. package/commands/deploy/deploy_cmds/watch.js +44 -0
  124. package/commands/environments/environments.js +5 -0
  125. package/commands/environments/environments_cmds/build-files.js +5 -0
  126. package/commands/environments/environments_cmds/build-files_cmds/add.js +73 -0
  127. package/commands/environments/environments_cmds/build-files_cmds/list.js +54 -0
  128. package/commands/environments/environments_cmds/build-files_cmds/update.js +71 -0
  129. package/commands/environments/environments_cmds/create.js +153 -0
  130. package/commands/environments/environments_cmds/delete.js +32 -0
  131. package/commands/environments/environments_cmds/describe.js +28 -0
  132. package/commands/environments/environments_cmds/list.js +56 -0
  133. package/commands/environments/environments_cmds/update.js +46 -0
  134. package/commands/environments/environments_cmds/urls.js +5 -0
  135. package/commands/environments/environments_cmds/urls_cmds/add.js +91 -0
  136. package/commands/environments/environments_cmds/urls_cmds/list.js +49 -0
  137. package/commands/flows/flows.js +5 -0
  138. package/commands/flows/flows_cmds/export.js +78 -0
  139. package/commands/flows/flows_cmds/list.js +64 -0
  140. package/commands/internal/internal.js +6 -0
  141. package/commands/link-agents/link-agents.js +5 -0
  142. package/commands/link-agents/link-agents_cmds/delete.js +38 -0
  143. package/commands/link-agents/link-agents_cmds/list.js +131 -0
  144. package/commands/link-agents/link-agents_cmds/terminate.js +31 -0
  145. package/commands/mobile-build-files/mobile-build-files.js +5 -0
  146. package/commands/mobile-build-files/mobile-build-files_cmds/delete.js +31 -0
  147. package/commands/mobile-build-files/mobile-build-files_cmds/download.js +50 -0
  148. package/commands/mobile-build-files/mobile-build-files_cmds/list.js +72 -0
  149. package/commands/mobile-build-files/mobile-build-files_cmds/upload.js +101 -0
  150. package/commands/plans/plans.js +5 -0
  151. package/commands/plans/plans_cmds/describe.js +23 -0
  152. package/commands/plans/plans_cmds/list.js +63 -0
  153. package/commands/test-runs/test-runs.js +5 -0
  154. package/commands/test-runs/test-runs_cmds/export.js +62 -0
  155. package/commands/tests/mobileEmulationUtil.js +46 -0
  156. package/commands/tests/tests.js +5 -0
  157. package/commands/tests/testsUtil.js +538 -0
  158. package/commands/tests/tests_cmds/create.js +130 -0
  159. package/commands/tests/tests_cmds/edit.js +111 -0
  160. package/commands/tests/tests_cmds/export.js +145 -0
  161. package/commands/tests/tests_cmds/import.js +5 -0
  162. package/commands/tests/tests_cmds/import_cmds/import_playwright.js +439 -0
  163. package/commands/tests/tests_cmds/import_cmds/import_selenium.js +295 -0
  164. package/commands/tests/tests_cmds/list.js +94 -0
  165. package/commands/tests/tests_cmds/run-cloud.js +314 -0
  166. package/commands/tests/tests_cmds/run-mobile.js +260 -0
  167. package/commands/tests/tests_cmds/run.js +314 -0
  168. package/commands/tests/tests_cmds/runUtils.js +60 -0
  169. package/commands/tests/tests_cmds/trainerUtil.js +12 -0
  170. package/commands/users/users.js +5 -0
  171. package/commands/users/users_cmds/list.js +58 -0
  172. package/commands/workspaces/workspace_cmds/copy.js +108 -0
  173. package/commands/workspaces/workspace_cmds/describe.js +21 -0
  174. package/commands/workspaces/workspace_cmds/list.js +67 -0
  175. package/commands/workspaces/workspaces.js +5 -0
  176. package/core/entityValidation/environmentsValidation.js +7 -0
  177. package/core/entityValidation/stepValidation.js +15 -0
  178. package/core/execution/ApiTestUtils.js +1060 -0
  179. package/core/execution/MailboxConstants.js +4 -0
  180. package/core/execution/PostmanUtils.js +53 -0
  181. package/core/execution/RunConfig.js +2 -0
  182. package/core/execution/TestResult.js +15 -0
  183. package/core/execution/VariableUtils.js +154 -0
  184. package/core/execution/VariablesSummary.js +2 -0
  185. package/core/execution/basic-types.js +2 -0
  186. package/core/execution/newman-types.js +42 -0
  187. package/core/messaging/actions/MobileTrainingActions.js +17 -0
  188. package/core/messaging/actions/pdfActions.js +27 -0
  189. package/core/messaging/actions/runnerActions.js +18 -0
  190. package/core/messaging/actions/trainingSessionActions.js +38 -0
  191. package/core/messaging/logLineMessaging.js +50 -0
  192. package/core/messaging/messaging.js +130 -0
  193. package/core/messaging/pageMessaging.js +9 -0
  194. package/core/trainer/openUtils.js +47 -0
  195. package/core/trainer/trainingSessions-types.js +35 -0
  196. package/core/trainer/trainingSessions.js +151 -0
  197. package/core/util.js +52 -0
  198. package/coreWebVitals/index.js +77 -0
  199. package/domUtil/index.js +1 -0
  200. package/env/defaultEnv.js +17 -0
  201. package/env/dev.js +17 -0
  202. package/env/env.js +76 -0
  203. package/env/local.js +17 -0
  204. package/env/prod.js +17 -0
  205. package/execution/index.js +8 -0
  206. package/execution/index.js.LICENSE.txt +254 -0
  207. package/execution/runAppiumServer.js +145 -0
  208. package/functions/apiTest/utils.js +47 -0
  209. package/functions/types.js +2 -0
  210. package/functions/utils.js +12 -0
  211. package/http/MablHttpAgent.js +73 -0
  212. package/http/RequestFilteringHttpAgent.js +119 -0
  213. package/http/RequestSecurityError.js +13 -0
  214. package/http/axiosProxyConfig.js +101 -0
  215. package/http/httpUtil.js +73 -0
  216. package/http/requestInterceptor.js +206 -0
  217. package/index.d.ts +241 -0
  218. package/index.js +14 -0
  219. package/mablApi/index.js +1 -0
  220. package/mablscript/MablAction.js +102 -0
  221. package/mablscript/MablStep.js +191 -0
  222. package/mablscript/MablStepV2.js +73 -0
  223. package/mablscript/MablSymbol.js +35 -0
  224. package/mablscript/actions/AwaitDownloadAction.js +14 -0
  225. package/mablscript/actions/AwaitPDFDownloadAction.js +19 -0
  226. package/mablscript/actions/ConditionAction.js +123 -0
  227. package/mablscript/actions/CountAction.js +16 -0
  228. package/mablscript/actions/ExtractAction.js +71 -0
  229. package/mablscript/actions/FindAction.js +301 -0
  230. package/mablscript/actions/GenerateEmailAddressAction.js +14 -0
  231. package/mablscript/actions/GenerateRandomStringAction.js +20 -0
  232. package/mablscript/actions/GetUrlAction.js +22 -0
  233. package/mablscript/actions/GetVariableValue.js +31 -0
  234. package/mablscript/actions/GetViewportAction.js +17 -0
  235. package/mablscript/actions/JavaScriptAction.js +219 -0
  236. package/mablscript/diffing/diffingUtil.js +229 -0
  237. package/mablscript/importer.js +576 -0
  238. package/mablscript/mobile/steps/CreateVariableMobileStep.js +53 -0
  239. package/mablscript/mobile/steps/EnterTextStep.js +45 -0
  240. package/mablscript/mobile/steps/HideKeyboardStep.js +20 -0
  241. package/mablscript/mobile/steps/InstallAppStep.js +22 -0
  242. package/mablscript/mobile/steps/NavigateBackStep.js +20 -0
  243. package/mablscript/mobile/steps/NavigateHomeStep.js +21 -0
  244. package/mablscript/mobile/steps/OpenAppStep.js +22 -0
  245. package/mablscript/mobile/steps/OpenLinkStep.js +19 -0
  246. package/mablscript/mobile/steps/PrepareSessionStep.js +19 -0
  247. package/mablscript/mobile/steps/PushFileStep.js +27 -0
  248. package/mablscript/mobile/steps/ScrollStep.js +87 -0
  249. package/mablscript/mobile/steps/SetOrientationStep.js +20 -0
  250. package/mablscript/mobile/steps/TapStep.js +37 -0
  251. package/mablscript/mobile/steps/UninstallAppStep.js +22 -0
  252. package/mablscript/mobile/steps/actions/MobileFindAction.js +23 -0
  253. package/mablscript/mobile/steps/stepUtil.js +113 -0
  254. package/mablscript/mobile/tests/StepTestsUtil.js +20 -0
  255. package/mablscript/mobile/tests/TestMobileFindDescriptors.js +282 -0
  256. package/mablscript/mobile/tests/steps/CreateVariableMobileStep.mobiletest.js +298 -0
  257. package/mablscript/mobile/tests/steps/EnterTextStep.mobiletest.js +79 -0
  258. package/mablscript/mobile/tests/steps/GeneralHumanization.mobiletest.js +304 -0
  259. package/mablscript/mobile/tests/steps/HideKeyboardStep.mobiletest.js +27 -0
  260. package/mablscript/mobile/tests/steps/InstallAppStep.mobiletest.js +20 -0
  261. package/mablscript/mobile/tests/steps/NavigateBackStep.mobiletest.js +27 -0
  262. package/mablscript/mobile/tests/steps/NavigateHomeStep.mobiletest.js +27 -0
  263. package/mablscript/mobile/tests/steps/OpenLinkStep.mobiletest.js +20 -0
  264. package/mablscript/mobile/tests/steps/PushFileStep.mobiletest.js +55 -0
  265. package/mablscript/mobile/tests/steps/ScrollStep.mobiletest.js +386 -0
  266. package/mablscript/mobile/tests/steps/SetOrientationStep.mobiletest.js +32 -0
  267. package/mablscript/mobile/tests/steps/TapStep.mobiletest.js +57 -0
  268. package/mablscript/mobile/tests/steps/UninstallAppStep.mobiletest.js +20 -0
  269. package/mablscript/steps/AbstractAssertionsAndVariablesStep.js +52 -0
  270. package/mablscript/steps/AccessibilityCheck.js +108 -0
  271. package/mablscript/steps/ActionsUtils.js +18 -0
  272. package/mablscript/steps/AssertStep.js +318 -0
  273. package/mablscript/steps/AssertStepOld.js +159 -0
  274. package/mablscript/steps/AwaitTabStep.js +69 -0
  275. package/mablscript/steps/AwaitUploadsStep.js +26 -0
  276. package/mablscript/steps/ClearCookiesStep.js +26 -0
  277. package/mablscript/steps/ClickAndHoldStep.js +76 -0
  278. package/mablscript/steps/ClickStep.js +58 -0
  279. package/mablscript/steps/CookieUtils.js +54 -0
  280. package/mablscript/steps/CreateVariableStep.js +236 -0
  281. package/mablscript/steps/DatabaseQueryStep.js +28 -0
  282. package/mablscript/steps/DoubleClickStep.js +64 -0
  283. package/mablscript/steps/DownloadStep.js +96 -0
  284. package/mablscript/steps/EchoStep.js +34 -0
  285. package/mablscript/steps/ElseIfConditionStep.js +32 -0
  286. package/mablscript/steps/ElseStep.js +27 -0
  287. package/mablscript/steps/EndStep.js +27 -0
  288. package/mablscript/steps/EnterAuthCodeStep.js +59 -0
  289. package/mablscript/steps/EnterTextStep.js +96 -0
  290. package/mablscript/steps/EvaluateFlowStep.js +51 -0
  291. package/mablscript/steps/EvaluateJavaScriptStep.js +50 -0
  292. package/mablscript/steps/HoverStep.js +63 -0
  293. package/mablscript/steps/IfConditionStep.js +191 -0
  294. package/mablscript/steps/NavigateStep.js +30 -0
  295. package/mablscript/steps/OpenEmailStep.js +46 -0
  296. package/mablscript/steps/ReleaseStep.js +76 -0
  297. package/mablscript/steps/RemoveCookieStep.js +36 -0
  298. package/mablscript/steps/RightClickStep.js +58 -0
  299. package/mablscript/steps/SelectStep.js +82 -0
  300. package/mablscript/steps/SendHttpRequestStep.js +48 -0
  301. package/mablscript/steps/SendKeyStep.js +84 -0
  302. package/mablscript/steps/SetCookieStep.js +70 -0
  303. package/mablscript/steps/SetFilesStep.js +71 -0
  304. package/mablscript/steps/SetViewportStep.js +38 -0
  305. package/mablscript/steps/SwitchContextStep.js +122 -0
  306. package/mablscript/steps/SyntheticStep.js +20 -0
  307. package/mablscript/steps/VisitUrlStep.js +68 -0
  308. package/mablscript/steps/WaitStep.js +37 -0
  309. package/mablscript/steps/WaitUntilStep.js +46 -0
  310. package/mablscript/types/AccessibilityCheckStepDescriptor.js +2 -0
  311. package/mablscript/types/AccessibilityCheckTypes.js +9 -0
  312. package/mablscript/types/AssertionsAndVariablesStepDescriptor.js +2 -0
  313. package/mablscript/types/AwaitTabDescriptor.js +2 -0
  314. package/mablscript/types/AwaitUploadStepDescriptor.js +2 -0
  315. package/mablscript/types/ClearCookiesStepDescriptor.js +2 -0
  316. package/mablscript/types/ClickAndHoldStepDescriptor.js +2 -0
  317. package/mablscript/types/ClickStepDescriptor.js +2 -0
  318. package/mablscript/types/ConditionDescriptor.js +133 -0
  319. package/mablscript/types/CountDescriptor.js +2 -0
  320. package/mablscript/types/CreateVariableStepDescriptor.js +12 -0
  321. package/mablscript/types/DownloadStepDescriptor.js +2 -0
  322. package/mablscript/types/EchoStepDescriptor.js +2 -0
  323. package/mablscript/types/EnterTextStepDescriptor.js +2 -0
  324. package/mablscript/types/EvaluateFlowStepDescriptor.js +2 -0
  325. package/mablscript/types/EvaluateJavaScriptStepDescriptor.js +2 -0
  326. package/mablscript/types/ExtractDescriptor.js +21 -0
  327. package/mablscript/types/GetCurrentLocationDescriptor.js +12 -0
  328. package/mablscript/types/GetVariableDescriptor.js +16 -0
  329. package/mablscript/types/GetViewportDescriptor.js +12 -0
  330. package/mablscript/types/HoverStepDescriptor.js +2 -0
  331. package/mablscript/types/NavigateStepDescriptor.js +7 -0
  332. package/mablscript/types/OpenEmailStepDescriptor.js +2 -0
  333. package/mablscript/types/OperatingSystemDescriptor.js +45 -0
  334. package/mablscript/types/ReleaseStepDescriptor.js +7 -0
  335. package/mablscript/types/RemoveCookieStepDescriptor.js +2 -0
  336. package/mablscript/types/SelectStepDescriptor.js +2 -0
  337. package/mablscript/types/SendHttpRequestTypes.js +2 -0
  338. package/mablscript/types/SendKeyStepDescriptor.js +30 -0
  339. package/mablscript/types/SetCookieStepDescriptor.js +2 -0
  340. package/mablscript/types/SetFilesStepDescriptor.js +2 -0
  341. package/mablscript/types/SetViewportStepDescriptor.js +2 -0
  342. package/mablscript/types/SnippetsDescriptor.js +36 -0
  343. package/mablscript/types/StepDescriptor.js +2 -0
  344. package/mablscript/types/SwitchContextStepDescriptor.js +15 -0
  345. package/mablscript/types/VariableNamespace.js +17 -0
  346. package/mablscript/types/VisitUrlStepDescriptor.js +2 -0
  347. package/mablscript/types/WaitStepDescriptor.js +2 -0
  348. package/mablscript/types/WaitUntilStepDescriptor.js +2 -0
  349. package/mablscript/types/mobile/CreateVariableMobileStepDescriptor.js +9 -0
  350. package/mablscript/types/mobile/EnterTextStepDescriptor.js +2 -0
  351. package/mablscript/types/mobile/HideKeyboardStepDescriptor.js +2 -0
  352. package/mablscript/types/mobile/InstallAppStepDescriptor.js +2 -0
  353. package/mablscript/types/mobile/NavigateBackStepDescriptor.js +2 -0
  354. package/mablscript/types/mobile/NavigateHomeStepDescriptor.js +2 -0
  355. package/mablscript/types/mobile/OpenAppStepDescriptor.js +2 -0
  356. package/mablscript/types/mobile/OpenLinkStepDescriptor.js +2 -0
  357. package/mablscript/types/mobile/PrepareSessionStepDescriptor.js +2 -0
  358. package/mablscript/types/mobile/PushFileDescriptor.js +2 -0
  359. package/mablscript/types/mobile/ScrollStepDescriptor.js +32 -0
  360. package/mablscript/types/mobile/SetOrientationStepDescriptor.js +8 -0
  361. package/mablscript/types/mobile/StepWithMobileFindDescriptor.js +8 -0
  362. package/mablscript/types/mobile/TapStepDescriptor.js +8 -0
  363. package/mablscript/types/mobile/UninstallAppStepDescriptor.js +2 -0
  364. package/mablscriptFind/index.js +2 -0
  365. package/mablscriptFind/index.js.LICENSE.txt +25 -0
  366. package/middleware.js +42 -0
  367. package/mobile/index.js +2 -0
  368. package/mobile/types.js +8 -0
  369. package/observers/ObserverBase.js +11 -0
  370. package/observers/mockObserver.js +47 -0
  371. package/package.json +107 -0
  372. package/popupDismissal/candidate.js +2 -0
  373. package/popupDismissal/index.js +255 -0
  374. package/providers/authenticationProvider.js +254 -0
  375. package/providers/cliConfigProvider.js +271 -0
  376. package/providers/exportRequestProvider.js +196 -0
  377. package/providers/logging/loggingProvider.js +90 -0
  378. package/providers/scmContextInterfaces.js +14 -0
  379. package/providers/scmContextProvider.js +335 -0
  380. package/providers/scmContextProviderV2.js +122 -0
  381. package/providers/types.js +9 -0
  382. package/proxy/index.js +2 -0
  383. package/proxy/index.js.LICENSE.txt +12 -0
  384. package/proxy/lib/xpath.js +1 -0
  385. package/reporters/__tests__/resources/sampleData.js +162 -0
  386. package/reporters/mochAwesome/interfaces.js +2 -0
  387. package/reporters/mochAwesome/mochAwesomeReporter.js +227 -0
  388. package/reporters/reporter.js +46 -0
  389. package/resources/actionabilityCheck.js +160 -0
  390. package/resources/coreWebVitals.js +1 -0
  391. package/resources/mablFind.js +2 -0
  392. package/resources/media/mabl_test_audio.wav +0 -0
  393. package/resources/media/mabl_test_pattern.y4m +3 -0
  394. package/resources/pdf-viewer/EmbeddedPdfHandler.js +1 -0
  395. package/resources/pdf-viewer/embeddedPdfDetection.js +225 -0
  396. package/resources/pdf-viewer/index.html +1 -0
  397. package/resources/pdf-viewer/index.js +2 -0
  398. package/resources/pdf-viewer/libEmbeddedPdfHandler.js +279 -0
  399. package/resources/pdf-viewer/libmablPdfViewer.js +21909 -0
  400. package/resources/pdf-viewer/mabl_attention_move.gif +0 -0
  401. package/resources/pdf-viewer/mabl_error_artwork_Unplugged.gif +0 -0
  402. package/resources/pdf-viewer/pdf.worker.9251738a897f697389be.js +2 -0
  403. package/resources/pdf-viewer/pdf.worker.9e2021092643447a5b9f.js +81 -0
  404. package/resources/popupDismissal.js +1 -0
  405. package/resources/webdriver.js +19 -0
  406. package/socketTunnel/index.js +2 -0
  407. package/socketTunnel/index.js.LICENSE.txt +68 -0
  408. package/upload/index.js +2 -0
  409. package/upload/index.js.LICENSE.txt +27 -0
  410. package/util/CloudStorageWriter.js +45 -0
  411. package/util/FileCache.js +180 -0
  412. package/util/IdentifierUtil.js +57 -0
  413. package/util/InternalMetricsTrackingSingleton.js +36 -0
  414. package/util/Lazy.js +90 -0
  415. package/util/MobileAppFileCache.js +103 -0
  416. package/util/RichPromise.js +53 -0
  417. package/util/TestOutputWriter.js +104 -0
  418. package/util/actionabilityUtil.js +165 -0
  419. package/util/analytics-events.js +14 -0
  420. package/util/analytics.js +176 -0
  421. package/util/asyncUtil.js +61 -0
  422. package/util/browserTestUtils.js +17 -0
  423. package/util/clickUtil.js +68 -0
  424. package/util/downloadUtil.js +87 -0
  425. package/util/encodingUtil.js +50 -0
  426. package/util/fileUploadUtil.js +146 -0
  427. package/util/javaScriptStepMigration.js +115 -0
  428. package/util/jestUtil.js +21 -0
  429. package/util/logUtils.js +131 -0
  430. package/util/markdownUtil.js +125 -0
  431. package/util/postInstallMessage.js +14 -0
  432. package/util/pureUtil.js +175 -0
  433. package/util/resourceUtil.js +90 -0
  434. package/util/timeUtil.js +31 -0
  435. package/utilities.js +7 -0
  436. package/webdriver/index.js +44 -0
@@ -0,0 +1,49 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const interfaces_1 = require("../../../commandUtil/interfaces");
4
+ const constants_1 = require("../../../constants");
5
+ const util_1 = require("../../../commandUtil/util");
6
+ const mablApiClientFactory_1 = require("../../../../api/mablApiClientFactory");
7
+ const describe_1 = require("../../../commandUtil/describe");
8
+ exports.command = `list <${constants_1.CommandArgId}>`;
9
+ exports.describe = 'Show URLs associated with an environment';
10
+ exports.builder = (yargs) => {
11
+ yargs
12
+ .positional(constants_1.CommandArgId, {
13
+ describe: 'Environment id to list URL associations for',
14
+ type: 'string',
15
+ })
16
+ .option(constants_1.CommandArgApplicationId, {
17
+ describe: 'Application id to filter URLs by',
18
+ alias: constants_1.CommandArgAliases.ApplicationId,
19
+ nargs: 1,
20
+ type: 'string',
21
+ })
22
+ .option(constants_1.CommandArgLimitOutput, {
23
+ alias: constants_1.CommandArgAliases.LimitOutput,
24
+ describe: `The number of URLs to return'`,
25
+ default: interfaces_1.DEFAULT_LISTING_RESULT_LIMIT,
26
+ nargs: 1,
27
+ type: 'string',
28
+ })
29
+ .option(constants_1.CommandArgOutput, {
30
+ alias: constants_1.CommandArgAliases.OutputType,
31
+ choices: constants_1.DefaultOutputFormatChoices,
32
+ describe: 'Specify result output format',
33
+ nargs: 1,
34
+ });
35
+ };
36
+ exports.handler = (0, util_1.failWrapper)(queryDeployments);
37
+ async function queryDeployments(parsed) {
38
+ var _a;
39
+ const apiClient = await mablApiClientFactory_1.MablApiClientFactory.createApiClient();
40
+ try {
41
+ const environment = await apiClient.getEnvironment(parsed.id);
42
+ const deploymentEntities = await apiClient.queryDeploymentEntities((_a = environment.organization_id) !== null && _a !== void 0 ? _a : '', environment.id, parsed[constants_1.CommandArgApplicationId], parsed.limit);
43
+ (0, describe_1.outputEntity)(deploymentEntities.deployments, parsed.output);
44
+ }
45
+ catch (error) {
46
+ throw new Error(`Error listing urls for environment ${parsed.id}: ${error}`);
47
+ }
48
+ return 'done';
49
+ }
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.command = 'flows <command>';
4
+ exports.describe = 'Manage flows';
5
+ exports.builder = (yargs) => yargs.commandDir('flows_cmds').demandCommand();
@@ -0,0 +1,78 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const mablApiClientFactory_1 = require("../../../api/mablApiClientFactory");
4
+ const util_1 = require("../../commandUtil/util");
5
+ const js_yaml_1 = require("js-yaml");
6
+ const constants_1 = require("../../constants");
7
+ const execution_1 = require("../../../execution");
8
+ const fileUtil_1 = require("../../commandUtil/fileUtil");
9
+ const os = require('os');
10
+ const JSON_REPLACER = null;
11
+ exports.command = `export <${constants_1.CommandArgId}>`;
12
+ exports.describe = 'Export a mabl flow in a specified file format';
13
+ exports.builder = (yargs) => {
14
+ yargs
15
+ .positional(constants_1.CommandArgId, {
16
+ describe: 'flow id to export',
17
+ type: 'string',
18
+ })
19
+ .option(constants_1.CommandArgFormat, {
20
+ alias: 'fmt',
21
+ default: 'yaml',
22
+ describe: `Specify a format for the flow export`,
23
+ choices: [constants_1.OutputFormats.Json, constants_1.OutputFormats.Yaml, constants_1.OutputFormats.Csv],
24
+ })
25
+ .option(constants_1.CommandArgDetailLevel, {
26
+ default: 'simple',
27
+ hidden: true,
28
+ nargs: 1,
29
+ type: 'string',
30
+ })
31
+ .option(constants_1.CommandArgMablBranch, {
32
+ describe: 'Which branch of the flow to export',
33
+ nargs: 1,
34
+ type: 'string',
35
+ });
36
+ };
37
+ exports.handler = (0, util_1.failWrapper)(pullFlow);
38
+ async function pullFlow(parsed) {
39
+ var _a;
40
+ const flowId = parsed.id;
41
+ const format = parsed.format;
42
+ const detailLevel = parsed[constants_1.CommandArgDetailLevel];
43
+ const apiClient = await mablApiClientFactory_1.MablApiClientFactory.createApiClient();
44
+ const branchName = (_a = parsed['mabl-branch']) !== null && _a !== void 0 ? _a : constants_1.DefaultBranchName;
45
+ const flow = await apiClient.getFlow(flowId, branchName);
46
+ switch (format) {
47
+ case constants_1.OutputFormats.Csv:
48
+ dumpToCsv(flow);
49
+ break;
50
+ case constants_1.OutputFormats.Json:
51
+ case constants_1.OutputFormats.Yaml:
52
+ default:
53
+ dumpYamlOrJsonToFile(format, flow, detailLevel);
54
+ break;
55
+ }
56
+ }
57
+ function dumpYamlOrJsonToFile(type, flow, detailLevel) {
58
+ const flowConfig = new execution_1.FlowConfig(flow, false);
59
+ const configGenerated = detailLevel === constants_1.DetailLevelFormats.Full
60
+ ? flowConfig.generateConfigFile()
61
+ : flowConfig.generateSimpleFormat();
62
+ switch (type) {
63
+ case constants_1.OutputFormats.Yaml:
64
+ const yaml = (0, js_yaml_1.dump)(configGenerated, { skipInvalid: false });
65
+ (0, fileUtil_1.writeExportedEntityToFile)(yaml, 'yml', flow.id);
66
+ break;
67
+ case constants_1.OutputFormats.Json:
68
+ (0, fileUtil_1.writeExportedEntityToFile)(JSON.stringify(configGenerated, JSON_REPLACER, 2), 'json', flow.id);
69
+ break;
70
+ default:
71
+ throw new Error(`Invalid Type supplied for exporting flow: ${type}`);
72
+ }
73
+ }
74
+ function dumpToCsv(flow) {
75
+ const flowConfig = new execution_1.FlowConfig(flow, false);
76
+ const output = flowConfig.generateSimpleCsv();
77
+ (0, fileUtil_1.writeExportedEntityToFile)(output.join(os.EOL), 'csv', flow.id);
78
+ }
@@ -0,0 +1,64 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const cli_table3_1 = __importDefault(require("cli-table3"));
7
+ const moment = require("moment");
8
+ const mablApiClientFactory_1 = require("../../../api/mablApiClientFactory");
9
+ const util_1 = require("../../commandUtil/util");
10
+ const constants_1 = require("../../constants");
11
+ const loggingProvider_1 = require("../../../providers/logging/loggingProvider");
12
+ exports.command = 'list';
13
+ exports.describe = 'List flows';
14
+ exports.builder = (yargs) => {
15
+ yargs
16
+ .option(constants_1.CommandArgWorkspaceId, {
17
+ alias: constants_1.CommandArgAliases.WorkspaceId,
18
+ describe: 'Workspace to list flows for',
19
+ nargs: 1,
20
+ type: 'string',
21
+ })
22
+ .option(constants_1.CommandArgLimitOutput, {
23
+ alias: constants_1.CommandArgAliases.LimitOutput,
24
+ describe: 'The number of flows to return',
25
+ default: 10,
26
+ nargs: 1,
27
+ type: 'string',
28
+ });
29
+ };
30
+ exports.handler = (0, util_1.failWrapper)(listFlows);
31
+ async function listFlows(parsed) {
32
+ const limit = parsed.limit;
33
+ const workspaceId = await (0, util_1.getWorkspaceId)(parsed);
34
+ const apiClient = await mablApiClientFactory_1.MablApiClientFactory.createApiClient();
35
+ const flows = await apiClient.getFlows({
36
+ organization_id: workspaceId,
37
+ limit,
38
+ reusable: true,
39
+ });
40
+ printFlows(flows);
41
+ loggingProvider_1.logger.info(`${flows.length} flows returned`);
42
+ if (flows.length === limit) {
43
+ loggingProvider_1.logger.info(`... use the --limit flag to return a larger set`);
44
+ }
45
+ return flows.length;
46
+ }
47
+ function printFlows(flows) {
48
+ const table = new cli_table3_1.default({
49
+ head: ['ID', 'Description', 'Created time'],
50
+ wordWrap: true,
51
+ });
52
+ flows.forEach((flow) => {
53
+ table.push([
54
+ { rowSpan: 1, content: flow.invariant_id, vAlign: 'center' },
55
+ { rowSpan: 1, content: flow.description, vAlign: 'center' },
56
+ {
57
+ rowSpan: 1,
58
+ content: moment.utc(flow.created_time).format(constants_1.ListTimeFormat),
59
+ vAlign: 'center',
60
+ },
61
+ ]);
62
+ });
63
+ loggingProvider_1.logger.info(table.toString());
64
+ }
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.command = 'internal <command>';
4
+ exports.describe =
5
+ 'Internal commands for mabl developers and employees only. Not available in production';
6
+ exports.builder = (yargs) => yargs.commandDir('internal_cmds').demandCommand();
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.command = 'link-agents <command>';
4
+ exports.describe = 'Manage your link agents';
5
+ exports.builder = (yargs) => yargs.commandDir('link-agents_cmds').demandCommand();
@@ -0,0 +1,38 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const mablApiClientFactory_1 = require("../../../api/mablApiClientFactory");
7
+ const constants_1 = require("../../constants");
8
+ const util_1 = require("../../commandUtil/util");
9
+ const chalk_1 = __importDefault(require("chalk"));
10
+ const loggingProvider_1 = require("../../../providers/logging/loggingProvider");
11
+ exports.command = `delete <${constants_1.CommandArgLinkLabel}>`;
12
+ exports.describe =
13
+ 'Delete link agents and infrastructure associate with the link agent label and block new agents with the given label for 15 minutes. Customers dynamically creating link agents must call this when the agent is no longer needed.';
14
+ exports.builder = (yargs) => {
15
+ yargs
16
+ .option(constants_1.CommandArgWorkspaceId, {
17
+ describe: 'workspace id of the link agent',
18
+ type: 'string',
19
+ })
20
+ .positional(constants_1.CommandArgLinkLabel, {
21
+ describe: 'label of the link agent',
22
+ type: 'string',
23
+ });
24
+ };
25
+ exports.handler = (0, util_1.failWrapper)(deleteLinkAgent);
26
+ async function deleteLinkAgent(parsed) {
27
+ try {
28
+ const apiClient = await mablApiClientFactory_1.MablApiClientFactory.createApiClient();
29
+ const linkLabel = parsed[constants_1.CommandArgLinkLabel];
30
+ const workspaceId = await (0, util_1.getWorkspaceId)(parsed);
31
+ await apiClient.deleteLinkLabel(workspaceId, linkLabel);
32
+ loggingProvider_1.logger.info(chalk_1.default.green(`Link agent ${chalk_1.default.bold(linkLabel)} DELETED`));
33
+ return linkLabel;
34
+ }
35
+ catch (error) {
36
+ throw new Error(`Error deleting link agent: ${error}`);
37
+ }
38
+ }
@@ -0,0 +1,131 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const cli_table3_1 = __importDefault(require("cli-table3"));
7
+ const moment = require("moment");
8
+ const mablApiClientFactory_1 = require("../../../api/mablApiClientFactory");
9
+ const util_1 = require("../../commandUtil/util");
10
+ const constants_1 = require("../../constants");
11
+ const loggingProvider_1 = require("../../../providers/logging/loggingProvider");
12
+ const js_yaml_1 = require("js-yaml");
13
+ exports.command = 'list';
14
+ exports.describe = 'List link agents';
15
+ exports.builder = (yargs) => {
16
+ yargs
17
+ .option(constants_1.CommandArgWorkspaceId, {
18
+ alias: constants_1.CommandArgAliases.WorkspaceId,
19
+ describe: 'Workspace for which to list link agents',
20
+ nargs: 1,
21
+ type: 'string',
22
+ })
23
+ .option(constants_1.CommandArgOutput, {
24
+ alias: constants_1.CommandArgAliases.OutputType,
25
+ default: constants_1.OutputFormats.Table,
26
+ describe: 'Specify result output format',
27
+ nargs: 1,
28
+ choices: [...constants_1.DefaultOutputFormatChoices, constants_1.OutputFormats.Table],
29
+ })
30
+ .option(constants_1.CommandArgLimitOutput, {
31
+ alias: constants_1.CommandArgAliases.LimitOutput,
32
+ describe: 'The number of link agents to return',
33
+ default: 10,
34
+ nargs: 1,
35
+ type: 'number',
36
+ })
37
+ .option(constants_1.CommandArgMaxHeartbeatAge, {
38
+ describe: 'Only returns link agents that have sent a heartbeat within this number of seconds',
39
+ default: 300,
40
+ nargs: 1,
41
+ type: 'number',
42
+ });
43
+ };
44
+ exports.handler = (0, util_1.failWrapper)(listLinkAgents);
45
+ async function listLinkAgents(parsed) {
46
+ const limit = parsed.limit;
47
+ const maxHeartbeatAgeSeconds = parsed[constants_1.CommandArgMaxHeartbeatAge];
48
+ const workspaceId = await (0, util_1.getWorkspaceId)(parsed);
49
+ const output = parsed[constants_1.CommandArgOutput];
50
+ const apiClient = await mablApiClientFactory_1.MablApiClientFactory.createApiClient();
51
+ const linkAgents = (await apiClient.getLinkAgentsWithRecentHeartbeats(workspaceId, limit, maxHeartbeatAgeSeconds)).map((linkAgent) => ({
52
+ address: linkAgent.address,
53
+ created_time: linkAgent.created_time,
54
+ hostname: linkAgent.hostname,
55
+ id: linkAgent.id,
56
+ is_connected: linkAgent.is_connected,
57
+ java_version: linkAgent.java_version,
58
+ last_heartbeat_time: linkAgent.last_heartbeat_time,
59
+ name: linkAgent.label,
60
+ operating_system_architecture: linkAgent.operating_system_architecture,
61
+ operating_system_name: linkAgent.operating_system_name,
62
+ operating_system_version: linkAgent.operating_system_version,
63
+ status: linkAgent.status,
64
+ version: linkAgent.version,
65
+ }));
66
+ switch (output) {
67
+ case constants_1.OutputFormats.Json:
68
+ loggingProvider_1.logger.info(JSON.stringify(linkAgents, null, 2));
69
+ break;
70
+ case constants_1.OutputFormats.Yaml:
71
+ loggingProvider_1.logger.info((0, js_yaml_1.dump)(linkAgents));
72
+ break;
73
+ case constants_1.OutputFormats.Table:
74
+ default:
75
+ printLinkAgentsAsTable(linkAgents);
76
+ loggingProvider_1.logger.info(`${linkAgents.length} link agents returned`);
77
+ if (linkAgents.length === limit) {
78
+ loggingProvider_1.logger.info(`... use the --limit flag to return a larger set`);
79
+ }
80
+ break;
81
+ }
82
+ return linkAgents.length;
83
+ }
84
+ function printLinkAgentsAsTable(linkAgents) {
85
+ const table = new cli_table3_1.default({
86
+ head: [
87
+ 'ID',
88
+ 'Name',
89
+ 'Connected',
90
+ 'Status',
91
+ 'Host',
92
+ 'OS',
93
+ 'Java',
94
+ 'Created',
95
+ 'Heartbeat',
96
+ 'Version',
97
+ ],
98
+ wordWrap: true,
99
+ });
100
+ linkAgents.forEach((agent) => {
101
+ table.push([
102
+ { rowSpan: 1, content: agent.id, vAlign: 'center' },
103
+ { rowSpan: 1, content: agent.name, vAlign: 'center' },
104
+ { rowSpan: 1, content: agent.is_connected, vAlign: 'center' },
105
+ { rowSpan: 1, content: agent.status, vAlign: 'center' },
106
+ {
107
+ rowSpan: 1,
108
+ content: `${agent.hostname} (${agent.address})`,
109
+ vAlign: 'center',
110
+ },
111
+ {
112
+ rowSpan: 1,
113
+ content: `${agent.operating_system_name} ${agent.operating_system_version} (${agent.operating_system_architecture})`,
114
+ vAlign: 'center',
115
+ },
116
+ { rowSpan: 1, content: agent.java_version, vAlign: 'center' },
117
+ {
118
+ rowSpan: 1,
119
+ content: moment.utc(agent.created_time).format(constants_1.ListTimeFormat),
120
+ vAlign: 'center',
121
+ },
122
+ {
123
+ rowSpan: 1,
124
+ content: moment.utc(agent.last_heartbeat_time).format(constants_1.ListTimeFormat),
125
+ vAlign: 'center',
126
+ },
127
+ { rowSpan: 1, content: agent.version, vAlign: 'center' },
128
+ ]);
129
+ });
130
+ loggingProvider_1.logger.info(table.toString());
131
+ }
@@ -0,0 +1,31 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const mablApiClientFactory_1 = require("../../../api/mablApiClientFactory");
7
+ const constants_1 = require("../../constants");
8
+ const util_1 = require("../../commandUtil/util");
9
+ const chalk_1 = __importDefault(require("chalk"));
10
+ const loggingProvider_1 = require("../../../providers/logging/loggingProvider");
11
+ exports.command = `terminate <${constants_1.CommandArgId}>`;
12
+ exports.describe = 'Sends a shutdown signal to a specific Link Agent.';
13
+ exports.builder = (yargs) => {
14
+ yargs.positional(constants_1.CommandArgId, {
15
+ describe: 'id of the link agent to terminate',
16
+ type: 'string',
17
+ });
18
+ };
19
+ exports.handler = (0, util_1.failWrapper)(terminateLinkAgent);
20
+ async function terminateLinkAgent(parsed) {
21
+ try {
22
+ const apiClient = await mablApiClientFactory_1.MablApiClientFactory.createApiClient();
23
+ const linkAgentId = parsed[constants_1.CommandArgId];
24
+ await apiClient.terminateLinkAgent(linkAgentId);
25
+ loggingProvider_1.logger.info(chalk_1.default.green(`Link agent ${chalk_1.default.bold(linkAgentId)} terminated`));
26
+ return linkAgentId;
27
+ }
28
+ catch (error) {
29
+ throw new Error(`Error terminating link agent: ${error}`);
30
+ }
31
+ }
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.command = ['mobile-build-files <command>', 'app-files <command>'];
4
+ exports.describe = 'Manage your mobile build files';
5
+ exports.builder = (yargs) => yargs.commandDir('mobile-build-files_cmds').demandCommand();
@@ -0,0 +1,31 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const mablApiClientFactory_1 = require("../../../api/mablApiClientFactory");
7
+ const constants_1 = require("../../constants");
8
+ const util_1 = require("../../commandUtil/util");
9
+ const chalk_1 = __importDefault(require("chalk"));
10
+ const loggingProvider_1 = require("../../../providers/logging/loggingProvider");
11
+ exports.command = `delete <${constants_1.CommandArgId}>`;
12
+ exports.describe = 'Delete a mobile build file.';
13
+ exports.builder = (yargs) => {
14
+ yargs.positional(constants_1.CommandArgId, {
15
+ describe: 'ID of the mobile build file',
16
+ type: 'string',
17
+ });
18
+ };
19
+ exports.handler = (0, util_1.failWrapper)(deleteMobileAppFile);
20
+ async function deleteMobileAppFile(parsed) {
21
+ try {
22
+ const apiClient = await mablApiClientFactory_1.MablApiClientFactory.createApiClient();
23
+ const id = parsed[constants_1.CommandArgId];
24
+ await apiClient.deleteMobileAppFile(id);
25
+ loggingProvider_1.logger.info(chalk_1.default.green(`Mobile build file ${chalk_1.default.bold(id)} DELETED`));
26
+ return id;
27
+ }
28
+ catch (error) {
29
+ throw new Error(`Error deleting mobile build file: ${error}`);
30
+ }
31
+ }
@@ -0,0 +1,50 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const promises_1 = require("fs/promises");
7
+ const path_1 = require("path");
8
+ const chalk_1 = __importDefault(require("chalk"));
9
+ const constants_1 = require("../../constants");
10
+ const util_1 = require("../../commandUtil/util");
11
+ const MobileAppFileCache_1 = require("../../../util/MobileAppFileCache");
12
+ const loggingProvider_1 = require("../../../providers/logging/loggingProvider");
13
+ exports.command = `download <${constants_1.CommandArgId}> <${constants_1.CommandArgDestination}>`;
14
+ exports.describe = 'Download a mobile build file.';
15
+ exports.builder = (yargs) => {
16
+ yargs
17
+ .positional(constants_1.CommandArgId, {
18
+ describe: 'ID of the mobile build file',
19
+ type: 'string',
20
+ })
21
+ .positional(constants_1.CommandArgDestination, {
22
+ describe: 'Relative path to destination directory or file',
23
+ type: 'string',
24
+ });
25
+ };
26
+ exports.handler = (0, util_1.failWrapper)(downloadMobileAppFile);
27
+ async function downloadMobileAppFile(parsed) {
28
+ try {
29
+ const id = parsed[constants_1.CommandArgId];
30
+ const destination = parsed[constants_1.CommandArgDestination];
31
+ const mobileAppFile = await new MobileAppFileCache_1.MobileAppFileCache().getMobileAppFile(id);
32
+ const downloadPath = await resolveDestination(destination, mobileAppFile);
33
+ await (0, promises_1.copyFile)(mobileAppFile.path, downloadPath);
34
+ loggingProvider_1.logger.info(chalk_1.default.green(`Mobile build file downloaded to ${downloadPath}`));
35
+ }
36
+ catch (error) {
37
+ throw new Error(`Error downloading mobile build file: ${error}`);
38
+ }
39
+ }
40
+ async function resolveDestination(destination, mobileAppFile) {
41
+ let path = destination;
42
+ try {
43
+ if ((await (0, promises_1.stat)(destination)).isDirectory()) {
44
+ path = (0, path_1.join)(destination, mobileAppFile.name);
45
+ }
46
+ }
47
+ catch (error) {
48
+ }
49
+ return (0, path_1.resolve)(path);
50
+ }
@@ -0,0 +1,72 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const js_yaml_1 = require("js-yaml");
7
+ const mablApiClientFactory_1 = require("../../../api/mablApiClientFactory");
8
+ const util_1 = require("../../commandUtil/util");
9
+ const cli_table3_1 = __importDefault(require("cli-table3"));
10
+ const moment = require("moment");
11
+ const list_1 = require("../../commandUtil/list");
12
+ const loggingProvider_1 = require("../../../providers/logging/loggingProvider");
13
+ const constants_1 = require("../../constants");
14
+ exports.command = 'list';
15
+ exports.describe = 'List your mobile build files';
16
+ exports.builder = (0, list_1.getListBuilderOptions)('mobile build files');
17
+ exports.handler = (0, util_1.failWrapper)(listMobileAppFiles);
18
+ async function listMobileAppFiles(parsed) {
19
+ const output = parsed.output;
20
+ const workspaceId = await (0, util_1.getWorkspaceId)(parsed);
21
+ const limit = parsed.limit;
22
+ const apiClient = await mablApiClientFactory_1.MablApiClientFactory.createApiClient();
23
+ const mobileAppFiles = await apiClient.getMobileAppFiles(workspaceId, limit);
24
+ printMobileAppFiles(mobileAppFiles, output);
25
+ return mobileAppFiles.length;
26
+ }
27
+ function printMobileAppFiles(mobileAppFiles, output) {
28
+ switch (output) {
29
+ case 'json':
30
+ loggingProvider_1.logger.info(JSON.stringify(mobileAppFiles, undefined, 2));
31
+ break;
32
+ case 'yaml':
33
+ loggingProvider_1.logger.info((0, js_yaml_1.dump)(mobileAppFiles));
34
+ break;
35
+ default:
36
+ const table = new cli_table3_1.default({
37
+ head: [
38
+ 'ID',
39
+ 'Platform',
40
+ 'Name',
41
+ 'Version',
42
+ 'Branch',
43
+ 'Labels',
44
+ 'Created time',
45
+ ],
46
+ wordWrap: true,
47
+ });
48
+ mobileAppFiles.forEach((mobileAppFile) => {
49
+ table.push([
50
+ { rowSpan: 1, content: mobileAppFile.id, vAlign: 'center' },
51
+ { rowSpan: 1, content: mobileAppFile.platform, vAlign: 'center' },
52
+ { rowSpan: 1, content: mobileAppFile.name, vAlign: 'center' },
53
+ { rowSpan: 1, content: mobileAppFile.version, vAlign: 'center' },
54
+ { rowSpan: 1, content: mobileAppFile.branch, vAlign: 'center' },
55
+ {
56
+ rowSpan: 1,
57
+ content: JSON.stringify(mobileAppFile.labels, undefined, 2),
58
+ vAlign: 'center',
59
+ },
60
+ {
61
+ rowSpan: 1,
62
+ content: moment
63
+ .utc(mobileAppFile.created_time)
64
+ .format(constants_1.ListTimeFormat),
65
+ vAlign: 'center',
66
+ },
67
+ ]);
68
+ });
69
+ loggingProvider_1.logger.info(table.toString());
70
+ break;
71
+ }
72
+ }