@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,73 @@
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
+ exports.createDeploymentForBuildFile = exports.addEnvironmentBuildFilesOptions = void 0;
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
+ const mablApi_1 = require("../../../../mablApi");
12
+ const mablApiClientFactory_1 = require("../../../../api/mablApiClientFactory");
13
+ exports.command = `add <${constants_1.CommandArgId}>`;
14
+ exports.describe = 'Associate mobile build file with an environment';
15
+ exports.builder = (yargs) => {
16
+ addEnvironmentBuildFilesOptions(yargs)
17
+ .positional(constants_1.CommandArgId, {
18
+ describe: 'ID of environment to add mobile build file associations to',
19
+ type: 'string',
20
+ })
21
+ .demandOption(constants_1.CommandArgApplicationId)
22
+ .demandOption(constants_1.CommandArgMobileBuildFileId);
23
+ };
24
+ exports.handler = (0, util_1.failWrapper)(createDeployment);
25
+ function addEnvironmentBuildFilesOptions(yargs) {
26
+ return yargs
27
+ .option(constants_1.CommandArgApplicationId, {
28
+ describe: 'ID of application to associate with this environment',
29
+ nargs: 1,
30
+ type: 'string',
31
+ })
32
+ .option(constants_1.CommandArgMobileBuildFileId, {
33
+ describe: 'mobile build file ID to associate with the application-environment pair',
34
+ nargs: 1,
35
+ type: 'string',
36
+ });
37
+ }
38
+ exports.addEnvironmentBuildFilesOptions = addEnvironmentBuildFilesOptions;
39
+ async function createDeployment(parsed) {
40
+ const apiClient = await mablApiClientFactory_1.MablApiClientFactory.createApiClient();
41
+ const applicationId = parsed[constants_1.CommandArgApplicationId];
42
+ const environmentId = parsed[constants_1.CommandArgId];
43
+ const buildFileId = parsed[constants_1.CommandArgMobileBuildFileId];
44
+ try {
45
+ await apiClient.getApplication(applicationId);
46
+ await apiClient.getMobileAppFile(buildFileId);
47
+ const environment = await apiClient.getEnvironment(environmentId);
48
+ await createDeploymentForBuildFile(apiClient, environment, applicationId, buildFileId);
49
+ return 'done';
50
+ }
51
+ catch (error) {
52
+ throw new Error(`Error adding build file for environment ${parsed.id}: ${error}`);
53
+ }
54
+ }
55
+ async function createDeploymentForBuildFile(apiClient, environment, applicationId, buildFileId) {
56
+ try {
57
+ const deployment = {
58
+ organization_id: environment.organization_id,
59
+ environment_id: environment.id,
60
+ application_id: applicationId,
61
+ mobile_app_file_id: buildFileId,
62
+ deployment_type: mablApi_1.Deployment.DeploymentTypeEnum.MobileApplication,
63
+ };
64
+ await apiClient.createDeployment(deployment);
65
+ loggingProvider_1.logger.info(chalk_1.default.white(`Associated ${buildFileId} with environment ${environment.id} and application ${applicationId}`));
66
+ }
67
+ catch (error) {
68
+ loggingProvider_1.logger.error(error);
69
+ const reRunCommandString = `mabl environments build-files add ${environment.id} --applicationId ${applicationId} --build-file-id ${buildFileId}`;
70
+ loggingProvider_1.logger.info(chalk_1.default.white(`Associating build file with environment failed. You can reattempt this association by running ${chalk_1.default.bold(reRunCommandString)}`));
71
+ }
72
+ }
73
+ exports.createDeploymentForBuildFile = createDeploymentForBuildFile;
@@ -0,0 +1,54 @@
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 build files associated with an environment';
10
+ exports.builder = (yargs) => {
11
+ yargs
12
+ .positional(constants_1.CommandArgId, {
13
+ describe: 'Environment ID to list build file associations for',
14
+ type: 'string',
15
+ })
16
+ .option(constants_1.CommandArgApplicationId, {
17
+ describe: 'Application ID to filter build files 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 build files 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, _b, _c;
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
+ const mobileDeployments = (_c = (_b = deploymentEntities.deployments) === null || _b === void 0 ? void 0 : _b.filter((deployment) => !!deployment.mobile_app_file_id)) !== null && _c !== void 0 ? _c : [];
44
+ const mobileBuildFiles = await Promise.all(mobileDeployments.map((deployment) => apiClient.getMobileAppFile(deployment.mobile_app_file_id)));
45
+ (0, describe_1.outputEntity)(mobileDeployments.map((deployment, index) => ({
46
+ ...deployment,
47
+ mobile_app_file: mobileBuildFiles[index],
48
+ })), parsed.output);
49
+ }
50
+ catch (error) {
51
+ throw new Error(`Error listing build files for environment ${parsed.id}: ${error}`);
52
+ }
53
+ return 'done';
54
+ }
@@ -0,0 +1,71 @@
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
+ exports.updateDeploymentForBuildFile = void 0;
7
+ const constants_1 = require("../../../constants");
8
+ const util_1 = require("../../../commandUtil/util");
9
+ const add_1 = require("./add");
10
+ const mablApiClientFactory_1 = require("../../../../api/mablApiClientFactory");
11
+ const mablApi_1 = require("../../../../mablApi");
12
+ const loggingProvider_1 = require("../../../../providers/logging/loggingProvider");
13
+ const chalk_1 = __importDefault(require("chalk"));
14
+ exports.command = `update <${constants_1.CommandArgId}>`;
15
+ exports.describe =
16
+ 'Update mobile build file associated with an environment or add new association';
17
+ exports.builder = (yargs) => {
18
+ (0, add_1.addEnvironmentBuildFilesOptions)(yargs)
19
+ .positional(constants_1.CommandArgId, {
20
+ describe: 'ID of environment to update mobile build file association',
21
+ type: 'string',
22
+ })
23
+ .demandOption(constants_1.CommandArgApplicationId)
24
+ .demandOption(constants_1.CommandArgMobileBuildFileId);
25
+ };
26
+ exports.handler = (0, util_1.failWrapper)(updateOrCreateDeployment);
27
+ async function updateOrCreateDeployment(parsed) {
28
+ const apiClient = await mablApiClientFactory_1.MablApiClientFactory.createApiClient();
29
+ const applicationId = parsed[constants_1.CommandArgApplicationId];
30
+ const environmentId = parsed[constants_1.CommandArgId];
31
+ const buildFileId = parsed[constants_1.CommandArgMobileBuildFileId];
32
+ try {
33
+ await apiClient.getApplication(applicationId);
34
+ const buildFile = await apiClient.getMobileAppFile(buildFileId);
35
+ const environment = await apiClient.getEnvironment(environmentId);
36
+ await updateDeploymentForBuildFile(apiClient, environment, applicationId, buildFile);
37
+ return 'done';
38
+ }
39
+ catch (error) {
40
+ throw new Error(`Error updating build file for environment ${parsed.id}: ${error}`);
41
+ }
42
+ }
43
+ async function updateDeploymentForBuildFile(apiClient, environment, applicationId, newBuildFile) {
44
+ var _a, _b, _c, _d;
45
+ const deploymentEntities = await apiClient.queryDeploymentEntities((_a = environment.organization_id) !== null && _a !== void 0 ? _a : '', environment.id, applicationId, 1000);
46
+ const candidatesForUpdate = (_d = (_c = (_b = deploymentEntities === null || deploymentEntities === void 0 ? void 0 : deploymentEntities.deployments) === null || _b === void 0 ? void 0 : _b.filter((deployment) => !!deployment.mobile_app_file_id)) === null || _c === void 0 ? void 0 : _c.filter(async (deployment) => {
47
+ const buildFile = await apiClient.getMobileAppFile(deployment.mobile_app_file_id);
48
+ return (deployment.deployment_type ===
49
+ mablApi_1.Deployment.DeploymentTypeEnum.MobileApplication &&
50
+ buildFile.platform === newBuildFile.platform);
51
+ })) !== null && _d !== void 0 ? _d : [];
52
+ if ((candidatesForUpdate === null || candidatesForUpdate === void 0 ? void 0 : candidatesForUpdate.length) === 0) {
53
+ await (0, add_1.createDeploymentForBuildFile)(apiClient, environment, applicationId, newBuildFile.id);
54
+ return;
55
+ }
56
+ else if ((candidatesForUpdate === null || candidatesForUpdate === void 0 ? void 0 : candidatesForUpdate.length) > 1) {
57
+ throw new Error('Multiple deployments with the same mobile platform found. Please remove duplicates or use mabl UI to change the build file association.');
58
+ }
59
+ try {
60
+ const existingDeployment = candidatesForUpdate[0];
61
+ existingDeployment.mobile_app_file_id = newBuildFile.id;
62
+ await apiClient.updateDeployment(existingDeployment.id, existingDeployment);
63
+ loggingProvider_1.logger.info(chalk_1.default.white(`Updated ${newBuildFile.platform} build file associated with environment ${environment.id} and application ${applicationId} to ${newBuildFile.id} `));
64
+ }
65
+ catch (error) {
66
+ loggingProvider_1.logger.error(error);
67
+ const reRunCommandString = `mabl environments build-files update ${environment.id} --applicationId ${applicationId} --build-file-id ${newBuildFile.id}`;
68
+ loggingProvider_1.logger.info(chalk_1.default.white(`Associating build file with environment failed. You can reattempt this association by running ${chalk_1.default.bold(reRunCommandString)}`));
69
+ }
70
+ }
71
+ exports.updateDeploymentForBuildFile = updateDeploymentForBuildFile;
@@ -0,0 +1,153 @@
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
+ exports.addUpdateEnvCommands = void 0;
7
+ const mablApi_1 = require("../../../mablApi");
8
+ const mablApiClientFactory_1 = require("../../../api/mablApiClientFactory");
9
+ const constants_1 = require("../../constants");
10
+ const util_1 = require("../../commandUtil/util");
11
+ const branches_1 = require("../../commandUtil/branches");
12
+ const chalk_1 = __importDefault(require("chalk"));
13
+ const loggingProvider_1 = require("../../../providers/logging/loggingProvider");
14
+ const add_1 = require("./urls_cmds/add");
15
+ const environmentsValidation_1 = require("../../../core/entityValidation/environmentsValidation");
16
+ exports.command = 'create';
17
+ exports.describe = 'Create a new mabl environment';
18
+ exports.builder = (yargs) => {
19
+ addUpdateEnvCommands((0, add_1.addEnvironmentUrlOptions)(yargs), true)
20
+ .option(constants_1.CommandArgWorkspaceId, {
21
+ alias: constants_1.CommandArgAliases.WorkspaceId,
22
+ describe: 'Workspace containing to create environment in',
23
+ nargs: 1,
24
+ type: 'string',
25
+ })
26
+ .option(constants_1.CommandArgApplicationId, {
27
+ describe: 'Id of application to associate with this environment',
28
+ nargs: 1,
29
+ type: 'string',
30
+ })
31
+ .option(constants_1.CommandArgUrlApp, {
32
+ describe: 'Web application URLs to associate with the application-environment pair',
33
+ type: 'array',
34
+ })
35
+ .option(constants_1.CommandArgUrlApi, {
36
+ describe: 'API URLs to associate with the application-environment pair',
37
+ type: 'array',
38
+ });
39
+ };
40
+ exports.handler = (0, util_1.failWrapper)(createEnvironment);
41
+ function addUpdateEnvCommands(argv, isCreate) {
42
+ return argv
43
+ .option(constants_1.CommandArgName, {
44
+ alias: constants_1.CommandArgAliases.Name,
45
+ demandOption: isCreate,
46
+ describe: 'Name of the environment',
47
+ nargs: 1,
48
+ type: 'string',
49
+ })
50
+ .option(constants_1.CommandArgDescription, {
51
+ describe: 'Description of the environment',
52
+ nargs: 1,
53
+ type: 'string',
54
+ })
55
+ .option(constants_1.CommandArgVariables, {
56
+ describe: 'Key-value environment variable pairs of the form var1:value1',
57
+ type: 'array',
58
+ default: [],
59
+ })
60
+ .option(constants_1.CommandArgLinkLabel, {
61
+ describe: 'Name of link agent to use for this environment',
62
+ nargs: 1,
63
+ type: 'string',
64
+ })
65
+ .option(constants_1.CommandArgLinkBypass, {
66
+ describe: 'Set to true to bypass the mabl http proxy. Only supported if running over a link agent.',
67
+ boolean: true,
68
+ hidden: true,
69
+ default: false,
70
+ })
71
+ .option(constants_1.CommandArgMablBranch, {
72
+ describe: 'Name of mabl branch to associated with this environment. Tests run against this environment will use the version on this branch.',
73
+ nargs: 1,
74
+ type: 'string',
75
+ })
76
+ .option(constants_1.CommandArgPreview, {
77
+ describe: 'Set to true to mark this as an preview environment',
78
+ boolean: true,
79
+ default: false,
80
+ })
81
+ .check((argv) => {
82
+ const branchName = argv[constants_1.CommandArgMablBranch];
83
+ if (branchName !== undefined && !(0, branches_1.isValidMablBranchName)(branchName)) {
84
+ throw new Error(`[${branchName}] is not a valid mabl branch name. Please specify a valid name`);
85
+ }
86
+ return true;
87
+ })
88
+ .coerce('variables', (variables) => {
89
+ if (variables.length === 0) {
90
+ return undefined;
91
+ }
92
+ (0, util_1.validateArrayInputs)(variables, 'Variables must be SPACE delimited, e.g. --variables foo:bar baz:qux');
93
+ const validVariables = (0, util_1.validateValuePairInputs)('Variable', variables);
94
+ return validVariables.reduce((variablesObject, item) => {
95
+ const { name, value } = (0, util_1.parseColonJoinedVariablePair)(item);
96
+ variablesObject[name] = value;
97
+ return variablesObject;
98
+ }, {});
99
+ })
100
+ .check((argv) => {
101
+ const variables = argv[constants_1.CommandArgVariables];
102
+ if (!variables) {
103
+ return true;
104
+ }
105
+ const variableNames = Object.keys(variables);
106
+ const invalidVariableNames = variableNames.filter((name) => !(0, environmentsValidation_1.isValidEnvironmentVariableName)(name));
107
+ if (invalidVariableNames.length === 0) {
108
+ return true;
109
+ }
110
+ const maybePlural = invalidVariableNames.length > 1 ? 's' : '';
111
+ throw new Error(`Invalid environment variable name${maybePlural}: ${invalidVariableNames.join(', ')}. Environment variable names must start with a letter or underscore and contain only letters, numbers, and underscores.`);
112
+ });
113
+ }
114
+ exports.addUpdateEnvCommands = addUpdateEnvCommands;
115
+ async function createEnvironment(parsed) {
116
+ var _a;
117
+ let environment;
118
+ try {
119
+ const apiClient = await mablApiClientFactory_1.MablApiClientFactory.createApiClient();
120
+ let workspaceId;
121
+ try {
122
+ workspaceId = await (0, util_1.getWorkspaceId)(parsed);
123
+ }
124
+ catch {
125
+ }
126
+ environment = {
127
+ organization_id: workspaceId,
128
+ name: parsed[constants_1.CommandArgName],
129
+ description: parsed[constants_1.CommandArgDescription],
130
+ preview: parsed[constants_1.CommandArgPreview],
131
+ link_agent_label: parsed[constants_1.CommandArgLinkLabel],
132
+ use_link_agent: !!parsed[constants_1.CommandArgLinkLabel],
133
+ link_bypass_mabl_proxy: parsed[constants_1.CommandArgLinkBypass],
134
+ source_control_tag_target: parsed[constants_1.CommandArgMablBranch],
135
+ use_source_control_tag: !!parsed[constants_1.CommandArgMablBranch],
136
+ variables: parsed[constants_1.CommandArgVariables],
137
+ };
138
+ environment = await apiClient.createEnvironment(environment);
139
+ loggingProvider_1.logger.info(chalk_1.default.green(`Environment ${chalk_1.default.bold((_a = environment.id) !== null && _a !== void 0 ? _a : '')} CREATED`));
140
+ const applicationId = parsed[constants_1.CommandArgApplicationId];
141
+ if (applicationId) {
142
+ loggingProvider_1.logger.info('Associating URLs with environment');
143
+ const createDeploymentsPromises = (parsed[constants_1.CommandArgUrlApp] || [])
144
+ .map((url) => (0, add_1.createDeploymentForUrl)(apiClient, environment, applicationId, url, mablApi_1.Deployment.DeploymentTypeEnum.WebApplication))
145
+ .concat((parsed[constants_1.CommandArgUrlApi] || []).map((url) => (0, add_1.createDeploymentForUrl)(apiClient, environment, applicationId, url, mablApi_1.Deployment.DeploymentTypeEnum.Api)));
146
+ await Promise.all(createDeploymentsPromises);
147
+ }
148
+ }
149
+ catch (error) {
150
+ throw new Error(`Error creating environment: ${error}`);
151
+ }
152
+ return environment.id;
153
+ }
@@ -0,0 +1,32 @@
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 mabl environment';
13
+ exports.builder = (yargs) => {
14
+ yargs.positional(constants_1.CommandArgId, {
15
+ describe: 'Environment id to delete',
16
+ type: 'string',
17
+ });
18
+ };
19
+ exports.handler = (0, util_1.failWrapper)(deleteEnvironment);
20
+ async function deleteEnvironment(parsed) {
21
+ var _a;
22
+ let environment;
23
+ try {
24
+ const apiClient = await mablApiClientFactory_1.MablApiClientFactory.createApiClient();
25
+ environment = await apiClient.deleteEnvironment(parsed.id);
26
+ loggingProvider_1.logger.info(chalk_1.default.green(`Environment ${chalk_1.default.bold((_a = environment.id) !== null && _a !== void 0 ? _a : '')} DELETED`));
27
+ }
28
+ catch (error) {
29
+ throw new Error(`Error deleting environment: ${error}`);
30
+ }
31
+ return environment.id;
32
+ }
@@ -0,0 +1,28 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const mablApiClientFactory_1 = require("../../../api/mablApiClientFactory");
4
+ const describe_1 = require("../../commandUtil/describe");
5
+ const util_1 = require("../../commandUtil/util");
6
+ const constants_1 = require("../../constants");
7
+ exports.command = 'describe <id>';
8
+ exports.describe = (0, util_1.getDescribeDescriptions)('environment');
9
+ exports.builder = {
10
+ [constants_1.CommandArgDecrypt]: {
11
+ describe: `Set to decrypt and return environment variables as part of the payload`,
12
+ boolean: true,
13
+ },
14
+ ...(0, describe_1.getDescribeBuilderOptions)(),
15
+ };
16
+ exports.handler = (0, util_1.failWrapper)(getEnvironment);
17
+ async function getEnvironment(parsed) {
18
+ try {
19
+ const environmentId = parsed.id;
20
+ const apiClient = await mablApiClientFactory_1.MablApiClientFactory.createApiClient();
21
+ const environment = await apiClient.getEnvironment(environmentId, parsed.decrypt);
22
+ (0, describe_1.outputEntity)(environment, parsed.output);
23
+ return environment.id;
24
+ }
25
+ catch (error) {
26
+ throw new Error(`Error getting environment: ${error}`);
27
+ }
28
+ }
@@ -0,0 +1,56 @@
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 environments';
16
+ exports.builder = (0, list_1.getListBuilderOptions)('environments');
17
+ exports.handler = (0, util_1.failWrapper)(listEnvironments);
18
+ async function listEnvironments(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 environments = await apiClient.getEnvironments(workspaceId, limit);
24
+ printEnvironments(environments, output);
25
+ return environments.length;
26
+ }
27
+ function printEnvironments(environments, output) {
28
+ switch (output) {
29
+ case 'json':
30
+ loggingProvider_1.logger.info(JSON.stringify(environments, null, 2));
31
+ break;
32
+ case 'yaml':
33
+ loggingProvider_1.logger.info((0, js_yaml_1.dump)(environments));
34
+ break;
35
+ default:
36
+ const table = new cli_table3_1.default({
37
+ head: ['ID', 'Name', 'Created time'],
38
+ wordWrap: true,
39
+ });
40
+ environments.forEach((environment) => {
41
+ table.push([
42
+ { rowSpan: 1, content: environment.id, vAlign: 'center' },
43
+ { rowSpan: 1, content: environment.name, vAlign: 'center' },
44
+ {
45
+ rowSpan: 1,
46
+ content: moment
47
+ .utc(environment.created_time)
48
+ .format(constants_1.ListTimeFormat),
49
+ vAlign: 'center',
50
+ },
51
+ ]);
52
+ });
53
+ loggingProvider_1.logger.info(table.toString());
54
+ break;
55
+ }
56
+ }
@@ -0,0 +1,46 @@
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
+ const create_1 = require("./create");
12
+ exports.command = 'update <id>';
13
+ exports.describe = 'Update a mabl environment';
14
+ exports.builder = (yargs) => {
15
+ (0, create_1.addUpdateEnvCommands)(yargs, false).positional(constants_1.CommandArgId, {
16
+ describe: 'ID of environment to update',
17
+ type: 'string',
18
+ nargs: 1,
19
+ demand: 'id argument required',
20
+ });
21
+ };
22
+ exports.handler = (0, util_1.failWrapper)(updateEnvironment);
23
+ async function updateEnvironment(parsed) {
24
+ var _a;
25
+ let environment;
26
+ try {
27
+ const apiClient = await mablApiClientFactory_1.MablApiClientFactory.createApiClient();
28
+ environment = {
29
+ name: parsed[constants_1.CommandArgName],
30
+ description: parsed[constants_1.CommandArgDescription],
31
+ preview: parsed[constants_1.CommandArgPreview],
32
+ link_agent_label: parsed[constants_1.CommandArgLinkLabel],
33
+ use_link_agent: !!parsed[constants_1.CommandArgLinkLabel],
34
+ link_bypass_mabl_proxy: parsed[constants_1.CommandArgLinkBypass],
35
+ source_control_tag_target: parsed[constants_1.CommandArgMablBranch],
36
+ use_source_control_tag: !!parsed[constants_1.CommandArgMablBranch],
37
+ variables: parsed[constants_1.CommandArgVariables],
38
+ };
39
+ environment = await apiClient.updateEnvironment(parsed[constants_1.CommandArgId], environment);
40
+ loggingProvider_1.logger.info(chalk_1.default.green(`Environment ${chalk_1.default.bold((_a = environment.id) !== null && _a !== void 0 ? _a : '')} UPDATED`));
41
+ }
42
+ catch (error) {
43
+ throw new Error(`Error updating environment: ${error}`);
44
+ }
45
+ return environment.id;
46
+ }
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.command = 'urls <command>';
4
+ exports.describe = 'Manage your environment URLs';
5
+ exports.builder = (yargs) => yargs.commandDir('urls_cmds').demandCommand();
@@ -0,0 +1,91 @@
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
+ exports.createDeploymentForUrl = exports.addEnvironmentUrlOptions = void 0;
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
+ const mablApi_1 = require("../../../../mablApi");
12
+ const mablApiClientFactory_1 = require("../../../../api/mablApiClientFactory");
13
+ exports.command = `add ${constants_1.CommandArgId}`;
14
+ exports.describe = 'Associate urls with an environment';
15
+ exports.builder = (yargs) => {
16
+ addEnvironmentUrlOptions(yargs)
17
+ .positional(constants_1.CommandArgId, {
18
+ describe: 'Id of environment to add url associations to',
19
+ type: 'string',
20
+ })
21
+ .demandOption(constants_1.CommandArgApplicationId);
22
+ };
23
+ exports.handler = (0, util_1.failWrapper)(createDeployments);
24
+ function addEnvironmentUrlOptions(yargs) {
25
+ return yargs
26
+ .option(constants_1.CommandArgApplicationId, {
27
+ describe: 'id of application to associate with this environment',
28
+ nargs: 1,
29
+ type: 'string',
30
+ })
31
+ .option(constants_1.CommandArgUrlApp, {
32
+ describe: 'web application urls to associate with the application-environment pair',
33
+ type: 'array',
34
+ })
35
+ .option(constants_1.CommandArgUrlApi, {
36
+ describe: 'api urls to associate with the application-environment pair',
37
+ type: 'array',
38
+ })
39
+ .check((argv) => {
40
+ const applicationId = argv[constants_1.CommandArgApplicationId];
41
+ const appUrls = argv[constants_1.CommandArgUrlApp];
42
+ const apiUrls = argv[constants_1.CommandArgUrlApi];
43
+ if (applicationId &&
44
+ (!appUrls || appUrls.length === 0) &&
45
+ (!apiUrls || apiUrls.length === 0)) {
46
+ throw new Error(`Must specify at least one url if adding an application association to the environment`);
47
+ }
48
+ if (appUrls) {
49
+ (0, util_1.validateArrayInputs)(appUrls, 'Urls must be SPACE delimited, e.g. "--api-urls=http://mabl.com http://api.mabl.com');
50
+ }
51
+ if (apiUrls) {
52
+ (0, util_1.validateArrayInputs)(apiUrls, 'Urls must be SPACE delimited, e.g. "--api-urls=http://mabl.com http://api.mabl.com');
53
+ }
54
+ return true;
55
+ });
56
+ }
57
+ exports.addEnvironmentUrlOptions = addEnvironmentUrlOptions;
58
+ async function createDeploymentForUrl(apiClient, environment, applicationId, url, type) {
59
+ try {
60
+ let deployment = {
61
+ organization_id: environment.organization_id,
62
+ environment_id: environment.id,
63
+ application_id: applicationId,
64
+ uri: url,
65
+ deployment_type: type,
66
+ };
67
+ deployment = await apiClient.createDeployment(deployment);
68
+ loggingProvider_1.logger.info(chalk_1.default.white(`Associated ${url} with environment ${environment.id}`));
69
+ }
70
+ catch (error) {
71
+ loggingProvider_1.logger.error(error);
72
+ const reRunCommandString = `mabl environments add-url ${environment.id} --applicationId ${applicationId} --${type === mablApi_1.Deployment.DeploymentTypeEnum.Api ? 'api-url' : 'app-url'} ${url}`;
73
+ loggingProvider_1.logger.info(chalk_1.default.white(`Associating url with environment failed. You can reattempt this association by running ${chalk_1.default.bold(reRunCommandString)}`));
74
+ }
75
+ }
76
+ exports.createDeploymentForUrl = createDeploymentForUrl;
77
+ async function createDeployments(parsed) {
78
+ const apiClient = await mablApiClientFactory_1.MablApiClientFactory.createApiClient();
79
+ const applicationId = parsed[constants_1.CommandArgApplicationId];
80
+ try {
81
+ const environment = await apiClient.getEnvironment(parsed.id);
82
+ const createDeploymentsPromises = (parsed[constants_1.CommandArgUrlApp] || [])
83
+ .map(async (url) => createDeploymentForUrl(apiClient, environment, applicationId, url, mablApi_1.Deployment.DeploymentTypeEnum.WebApplication))
84
+ .concat((parsed[constants_1.CommandArgUrlApi] || []).map(async (url) => createDeploymentForUrl(apiClient, environment, applicationId, url, mablApi_1.Deployment.DeploymentTypeEnum.Api)));
85
+ await Promise.all(createDeploymentsPromises);
86
+ return 'done';
87
+ }
88
+ catch (error) {
89
+ throw new Error(`Error adding urls for environment ${parsed.id}: ${error}`);
90
+ }
91
+ }