testcafe 1.14.1 → 1.14.2

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 (332) hide show
  1. package/CHANGELOG.md +6 -0
  2. package/LICENSE +21 -21
  3. package/bin/testcafe-with-v8-flag-filter.js +0 -0
  4. package/lib/api/exportable-lib/index.js +49 -49
  5. package/lib/api/request-hooks/assert-type.js +7 -7
  6. package/lib/api/request-hooks/hook-method-names.js +9 -9
  7. package/lib/api/request-hooks/hook.js +32 -32
  8. package/lib/api/request-hooks/interfaces.js +2 -2
  9. package/lib/api/request-hooks/request-logger.js +112 -112
  10. package/lib/api/request-hooks/request-mock/create-request-mock.js +10 -10
  11. package/lib/api/request-hooks/request-mock/index.js +44 -44
  12. package/lib/api/request-hooks/request-mock.js +46 -46
  13. package/lib/api/structure/base-unit.js +11 -11
  14. package/lib/api/structure/fixture.js +75 -75
  15. package/lib/api/structure/interfaces.js +2 -2
  16. package/lib/api/structure/test-file.js +31 -31
  17. package/lib/api/structure/test-timeout.js +9 -9
  18. package/lib/api/structure/test.js +85 -85
  19. package/lib/api/structure/testing-unit.js +89 -89
  20. package/lib/api/structure/unit-type.js +9 -9
  21. package/lib/api/test-controller/assertion.js +88 -88
  22. package/lib/api/test-controller/execution-context.js +82 -82
  23. package/lib/api/test-controller/index.js +358 -358
  24. package/lib/api/test-controller/proxy.js +28 -28
  25. package/lib/api/test-page-url.js +60 -60
  26. package/lib/api/test-run-tracker.js +68 -68
  27. package/lib/api/wrap-test-function.js +49 -49
  28. package/lib/assertions/executor.js +74 -74
  29. package/lib/assertions/get-fn.js +46 -46
  30. package/lib/assertions/type.js +20 -20
  31. package/lib/assets/content-types.js +9 -9
  32. package/lib/assets/injectables.js +18 -18
  33. package/lib/browser/connection/command.js +10 -10
  34. package/lib/browser/connection/error-hints.js +9 -9
  35. package/lib/browser/connection/gateway.js +159 -159
  36. package/lib/browser/connection/get-hints.js +33 -33
  37. package/lib/browser/connection/heartbeat-status.js +8 -8
  38. package/lib/browser/connection/index.js +328 -328
  39. package/lib/browser/connection/remotes-queue.js +46 -46
  40. package/lib/browser/connection/service-routes.js +12 -12
  41. package/lib/browser/connection/status.js +12 -12
  42. package/lib/browser/interfaces.js +2 -2
  43. package/lib/browser/provider/built-in/dedicated/base.js +80 -80
  44. package/lib/browser/provider/built-in/dedicated/chrome/browser-client.js +204 -204
  45. package/lib/browser/provider/built-in/dedicated/chrome/build-chrome-args.js +17 -17
  46. package/lib/browser/provider/built-in/dedicated/chrome/config.js +110 -110
  47. package/lib/browser/provider/built-in/dedicated/chrome/create-temp-profile.js +45 -45
  48. package/lib/browser/provider/built-in/dedicated/chrome/elapsed-upperbounds.js +15 -15
  49. package/lib/browser/provider/built-in/dedicated/chrome/index.js +102 -102
  50. package/lib/browser/provider/built-in/dedicated/chrome/interfaces.js +2 -2
  51. package/lib/browser/provider/built-in/dedicated/chrome/local-chrome.js +24 -24
  52. package/lib/browser/provider/built-in/dedicated/chrome/runtime-info.js +29 -29
  53. package/lib/browser/provider/built-in/dedicated/edge/index.js +10 -10
  54. package/lib/browser/provider/built-in/dedicated/edge/runtime-info.js +29 -29
  55. package/lib/browser/provider/built-in/dedicated/firefox/config.js +33 -33
  56. package/lib/browser/provider/built-in/dedicated/firefox/create-temp-profile.js +78 -78
  57. package/lib/browser/provider/built-in/dedicated/firefox/index.js +73 -73
  58. package/lib/browser/provider/built-in/dedicated/firefox/local-firefox.js +36 -36
  59. package/lib/browser/provider/built-in/dedicated/firefox/marionette-client/commands.js +13 -13
  60. package/lib/browser/provider/built-in/dedicated/firefox/marionette-client/index.js +200 -200
  61. package/lib/browser/provider/built-in/dedicated/firefox/runtime-info.js +17 -17
  62. package/lib/browser/provider/built-in/index.js +21 -21
  63. package/lib/browser/provider/built-in/locally-installed.js +30 -30
  64. package/lib/browser/provider/built-in/path.js +47 -47
  65. package/lib/browser/provider/built-in/remote.js +58 -58
  66. package/lib/browser/provider/index.js +303 -303
  67. package/lib/browser/provider/parse-provider-name.js +16 -16
  68. package/lib/browser/provider/plugin-host.js +121 -121
  69. package/lib/browser/provider/pool.js +115 -115
  70. package/lib/browser/provider/utils/argument-parsing.js +74 -74
  71. package/lib/browser/provider/utils/browser-starter.js +34 -34
  72. package/lib/browser/provider/utils/client-functions.js +24 -24
  73. package/lib/browser/provider/utils/get-maximized-headless-window-size.js +9 -9
  74. package/lib/cli/argument-parser.js +284 -284
  75. package/lib/cli/authentication-helper.js +35 -35
  76. package/lib/cli/cli.js +134 -134
  77. package/lib/cli/correct-browsers-and-sources.js +40 -40
  78. package/lib/cli/index.js +19 -19
  79. package/lib/cli/log.js +43 -43
  80. package/lib/cli/remotes-wizard.js +36 -36
  81. package/lib/cli/termination-handler.js +38 -38
  82. package/lib/client/automation/index.js +34 -16
  83. package/lib/client/automation/index.min.js +1 -1
  84. package/lib/client/browser/idle-page/index.html.mustache +35 -35
  85. package/lib/client/browser/idle-page/logo.svg +86 -86
  86. package/lib/client/core/index.js +14 -14
  87. package/lib/client/driver/index.js +46 -16
  88. package/lib/client/driver/index.min.js +1 -1
  89. package/lib/client/driver/internal-properties.js +9 -9
  90. package/lib/client/test-run/iframe.js.mustache +17 -17
  91. package/lib/client/test-run/index.js.mustache +51 -51
  92. package/lib/client/ui/index.js +14 -14
  93. package/lib/client/ui/sprite.svg +42 -42
  94. package/lib/client-functions/builder-symbol.js +4 -4
  95. package/lib/client-functions/client-function-builder.js +155 -155
  96. package/lib/client-functions/replicator.js +61 -61
  97. package/lib/client-functions/return-single-prop-mode.js +8 -8
  98. package/lib/client-functions/selector-api-execution-mode.js +20 -20
  99. package/lib/client-functions/selectors/add-api.js +645 -645
  100. package/lib/client-functions/selectors/create-snapshot-methods.js +13 -13
  101. package/lib/client-functions/selectors/prepare-api-args.js +20 -20
  102. package/lib/client-functions/selectors/selector-attribute-filter.js +22 -22
  103. package/lib/client-functions/selectors/selector-builder.js +153 -153
  104. package/lib/client-functions/selectors/selector-text-filter.js +43 -43
  105. package/lib/client-functions/selectors/snapshot-properties.js +48 -48
  106. package/lib/client-functions/types.js +18 -18
  107. package/lib/compiler/babel/format-babel-produced-code.js +10 -10
  108. package/lib/compiler/babel/get-base-babel-options.js +11 -11
  109. package/lib/compiler/babel/load-libs.js +63 -63
  110. package/lib/compiler/babel/preset-stage-2.js +19 -19
  111. package/lib/compiler/compile-client-function.js +73 -73
  112. package/lib/compiler/compilers.js +33 -33
  113. package/lib/compiler/index.js +92 -92
  114. package/lib/compiler/interfaces.js +2 -2
  115. package/lib/compiler/test-file/api-based.js +146 -146
  116. package/lib/compiler/test-file/base.js +36 -36
  117. package/lib/compiler/test-file/exportble-lib-path.js +5 -5
  118. package/lib/compiler/test-file/formats/coffeescript/compiler.js +38 -38
  119. package/lib/compiler/test-file/formats/coffeescript/get-test-list.js +29 -29
  120. package/lib/compiler/test-file/formats/es-next/compiler.js +42 -42
  121. package/lib/compiler/test-file/formats/es-next/get-test-list.js +166 -166
  122. package/lib/compiler/test-file/formats/es-next/is-flow-code.js +7 -7
  123. package/lib/compiler/test-file/formats/raw.js +85 -85
  124. package/lib/compiler/test-file/formats/typescript/compiler.js +135 -135
  125. package/lib/compiler/test-file/formats/typescript/get-test-list.js +185 -185
  126. package/lib/compiler/test-file/test-file-parser-base.js +214 -214
  127. package/lib/configuration/configuration-base.js +165 -165
  128. package/lib/configuration/constants.js +9 -9
  129. package/lib/configuration/customizable-compilers.js +7 -7
  130. package/lib/configuration/default-values.js +51 -51
  131. package/lib/configuration/interfaces.js +2 -2
  132. package/lib/configuration/option-names.js +53 -53
  133. package/lib/configuration/option-source.js +9 -9
  134. package/lib/configuration/option.js +14 -14
  135. package/lib/configuration/quarantine-option-names.js +8 -8
  136. package/lib/configuration/run-option-names.js +26 -26
  137. package/lib/configuration/screenshot-option-names.js +10 -10
  138. package/lib/configuration/testcafe-configuration.js +163 -163
  139. package/lib/configuration/types.js +2 -2
  140. package/lib/configuration/typescript-configuration.js +62 -62
  141. package/lib/custom-client-scripts/assert-type.js +7 -7
  142. package/lib/custom-client-scripts/client-script-init.js +2 -2
  143. package/lib/custom-client-scripts/client-script.js +106 -106
  144. package/lib/custom-client-scripts/get-code.js +11 -11
  145. package/lib/custom-client-scripts/get-url.js +6 -6
  146. package/lib/custom-client-scripts/load.js +15 -15
  147. package/lib/custom-client-scripts/problematic-scripts.js +2 -2
  148. package/lib/custom-client-scripts/routing.js +36 -36
  149. package/lib/custom-client-scripts/utils.js +60 -60
  150. package/lib/embedding-utils.js +83 -83
  151. package/lib/errors/create-stack-filter.js +18 -18
  152. package/lib/errors/error-list.js +26 -26
  153. package/lib/errors/get-callsite.js +31 -31
  154. package/lib/errors/internal-modules-prefix.js +8 -8
  155. package/lib/errors/is-internal-stack-frame.js +45 -45
  156. package/lib/errors/process-test-fn-error.js +37 -37
  157. package/lib/errors/runtime/index.js +123 -123
  158. package/lib/errors/runtime/templates.js +115 -115
  159. package/lib/errors/runtime/type-assertions.js +112 -112
  160. package/lib/errors/stack-cleaning-hook.js +64 -64
  161. package/lib/errors/test-run/formattable-adapter.js +59 -59
  162. package/lib/errors/test-run/index.js +301 -301
  163. package/lib/errors/test-run/render-error-template.js +31 -31
  164. package/lib/errors/test-run/templates.js +91 -91
  165. package/lib/errors/test-run/utils.js +89 -89
  166. package/lib/errors/types.js +156 -156
  167. package/lib/index.js +81 -81
  168. package/lib/live/bootstrapper.js +43 -43
  169. package/lib/live/controller.js +107 -107
  170. package/lib/live/file-watcher/index.js +67 -67
  171. package/lib/live/file-watcher/modules-graph.js +58 -58
  172. package/lib/live/keyboard-observer.js +76 -76
  173. package/lib/live/logger/index.js +64 -64
  174. package/lib/live/test-run-controller.js +96 -96
  175. package/lib/live/test-run-state.js +6 -6
  176. package/lib/live/test-run.js +56 -56
  177. package/lib/live/test-runner.js +167 -167
  178. package/lib/load-assets.js +29 -29
  179. package/lib/notifications/add-rendered-warning.js +16 -16
  180. package/lib/notifications/debug-logger.js +78 -78
  181. package/lib/notifications/deprecated.js +24 -24
  182. package/lib/notifications/information-message.js +9 -9
  183. package/lib/notifications/warning-log.js +31 -31
  184. package/lib/notifications/warning-message.js +47 -47
  185. package/lib/reporter/command/command-formatter.js +120 -109
  186. package/lib/reporter/command/format-command.js +8 -8
  187. package/lib/reporter/command/interfaces.js +2 -2
  188. package/lib/reporter/index.js +319 -314
  189. package/lib/reporter/interfaces.js +2 -2
  190. package/lib/reporter/plugin-host.js +135 -135
  191. package/lib/reporter/plugin-methods.js +12 -12
  192. package/lib/role/index.js +74 -74
  193. package/lib/role/marker-symbol.js +7 -7
  194. package/lib/role/phase.js +9 -9
  195. package/lib/runner/bootstrapper.js +271 -271
  196. package/lib/runner/browser-job-result.js +9 -9
  197. package/lib/runner/browser-job.js +152 -152
  198. package/lib/runner/browser-set.js +114 -114
  199. package/lib/runner/fixture-hook-controller.js +85 -85
  200. package/lib/runner/index.js +449 -449
  201. package/lib/runner/interfaces.js +2 -2
  202. package/lib/runner/reporter-stream-controller.js +27 -27
  203. package/lib/runner/task/index.js +151 -151
  204. package/lib/runner/task/phase.js +9 -9
  205. package/lib/runner/test-run-controller.js +165 -165
  206. package/lib/runner/tested-app.js +72 -72
  207. package/lib/screenshots/capturer.js +141 -141
  208. package/lib/screenshots/constants.js +11 -11
  209. package/lib/screenshots/crop.js +111 -111
  210. package/lib/screenshots/default-extension.js +4 -4
  211. package/lib/screenshots/index.js +67 -67
  212. package/lib/screenshots/utils.js +39 -39
  213. package/lib/services/compiler/host.js +190 -190
  214. package/lib/services/compiler/io.js +9 -9
  215. package/lib/services/compiler/protocol.js +17 -16
  216. package/lib/services/compiler/service.js +225 -212
  217. package/lib/services/compiler/test-run-proxy.js +111 -111
  218. package/lib/services/interfaces.js +2 -2
  219. package/lib/services/process-title.js +8 -8
  220. package/lib/services/serialization/prepare-options.js +17 -17
  221. package/lib/services/serialization/replicator/create-replicator.js +25 -25
  222. package/lib/services/serialization/replicator/custom-error-transform.js +26 -26
  223. package/lib/services/serialization/test-structure.js +92 -92
  224. package/lib/services/utils/ipc/interfaces.js +30 -30
  225. package/lib/services/utils/ipc/io.js +108 -108
  226. package/lib/services/utils/ipc/message.js +75 -75
  227. package/lib/services/utils/ipc/packet.js +55 -55
  228. package/lib/services/utils/ipc/proxy.js +109 -109
  229. package/lib/services/utils/ipc/transport.js +64 -64
  230. package/lib/shared/errors/index.js +382 -382
  231. package/lib/shared/node-modules-folder-name.js +4 -4
  232. package/lib/test-run/bookmark.js +90 -90
  233. package/lib/test-run/browser-console-messages.js +73 -73
  234. package/lib/test-run/browser-manipulation-queue.js +92 -92
  235. package/lib/test-run/client-messages.js +9 -9
  236. package/lib/test-run/commands/actions.js +486 -483
  237. package/lib/test-run/commands/assertion.js +45 -45
  238. package/lib/test-run/commands/base.js +14 -14
  239. package/lib/test-run/commands/browser-manipulation.js +95 -95
  240. package/lib/test-run/commands/from-object.js +82 -82
  241. package/lib/test-run/commands/observation.js +61 -61
  242. package/lib/test-run/commands/options.js +231 -215
  243. package/lib/test-run/commands/service.js +54 -48
  244. package/lib/test-run/commands/type.js +65 -64
  245. package/lib/test-run/commands/utils.js +87 -87
  246. package/lib/test-run/commands/validations/argument.js +90 -90
  247. package/lib/test-run/commands/validations/factories.js +47 -47
  248. package/lib/test-run/commands/validations/initializers.js +44 -44
  249. package/lib/test-run/debug-log.js +32 -32
  250. package/lib/test-run/execute-js-expression.js +74 -74
  251. package/lib/test-run/index.js +823 -799
  252. package/lib/test-run/marker-symbol.js +7 -7
  253. package/lib/test-run/observed-callsites-storage.js +17 -17
  254. package/lib/test-run/phase.js +16 -16
  255. package/lib/test-run/session-controller.js +104 -104
  256. package/lib/testcafe.js +118 -118
  257. package/lib/utils/assignable.js +39 -39
  258. package/lib/utils/async-event-emitter.js +28 -28
  259. package/lib/utils/async-queue.js +14 -14
  260. package/lib/utils/browser-connection-timeouts.js +19 -19
  261. package/lib/utils/callsite.js +17 -17
  262. package/lib/utils/check-file-path.js +31 -31
  263. package/lib/utils/check-url.js +51 -51
  264. package/lib/utils/convert-to-best-fit-type.js +16 -16
  265. package/lib/utils/correct-file-path.js +21 -21
  266. package/lib/utils/define-lazy-property.js +13 -13
  267. package/lib/utils/delay.js +6 -6
  268. package/lib/utils/delegated-api.js +44 -44
  269. package/lib/utils/detect-display.js +6 -6
  270. package/lib/utils/detect-ffmpeg.js +44 -44
  271. package/lib/utils/diff/colors.js +29 -29
  272. package/lib/utils/diff/index.js +52 -52
  273. package/lib/utils/diff/util.js +23 -23
  274. package/lib/utils/diff.js +29 -29
  275. package/lib/utils/escape-user-agent.js +10 -10
  276. package/lib/utils/flag-list.js +17 -17
  277. package/lib/utils/get-any-key.js +8 -8
  278. package/lib/utils/get-browser.js +8 -8
  279. package/lib/utils/get-common-path.js +34 -34
  280. package/lib/utils/get-filter-fn.js +40 -40
  281. package/lib/utils/get-options/base.js +36 -36
  282. package/lib/utils/get-options/compiler.js +33 -33
  283. package/lib/utils/get-options/grep.js +15 -15
  284. package/lib/utils/get-options/index.js +20 -20
  285. package/lib/utils/get-options/meta.js +22 -22
  286. package/lib/utils/get-options/quarantine.js +91 -91
  287. package/lib/utils/get-options/screenshot.js +17 -17
  288. package/lib/utils/get-options/ssl.js +45 -45
  289. package/lib/utils/get-options/video.js +10 -10
  290. package/lib/utils/get-viewport-width.js +17 -17
  291. package/lib/utils/guard-time-execution.js +10 -10
  292. package/lib/utils/handle-errors.js +74 -74
  293. package/lib/utils/handle-tag-args.js +8 -8
  294. package/lib/utils/http.js +30 -30
  295. package/lib/utils/is-localhost.js +11 -11
  296. package/lib/utils/is-password-input.js +11 -0
  297. package/lib/utils/is-repl.js +10 -10
  298. package/lib/utils/is-window-in-iframe.js +6 -6
  299. package/lib/utils/limit-number.js +10 -10
  300. package/lib/utils/make-reg-exp.js +7 -7
  301. package/lib/utils/moment-loader.js +20 -20
  302. package/lib/utils/parse-file-list.js +71 -71
  303. package/lib/utils/parse-user-agent.js +55 -55
  304. package/lib/utils/path-pattern.js +114 -114
  305. package/lib/utils/prepare-reporters.js +30 -30
  306. package/lib/utils/prerender-callsite.js +18 -18
  307. package/lib/utils/process.js +119 -119
  308. package/lib/utils/promisified-functions.js +46 -46
  309. package/lib/utils/re-executable-promise.js +39 -39
  310. package/lib/utils/render-callsite-sync.js +29 -29
  311. package/lib/utils/render-template.js +9 -9
  312. package/lib/utils/reporter.js +30 -30
  313. package/lib/utils/resolve-path-relatively-cwd.js +7 -7
  314. package/lib/utils/string.js +105 -105
  315. package/lib/utils/temp-directory/cleanup-process/commands.js +7 -7
  316. package/lib/utils/temp-directory/cleanup-process/index.js +143 -143
  317. package/lib/utils/temp-directory/cleanup-process/worker.js +58 -58
  318. package/lib/utils/temp-directory/index.js +87 -87
  319. package/lib/utils/temp-directory/lockfile.js +56 -56
  320. package/lib/utils/thennable.js +7 -7
  321. package/lib/utils/timer.js +15 -15
  322. package/lib/utils/to-posix-path.js +8 -8
  323. package/lib/utils/types.js +2 -2
  324. package/lib/video-recorder/interfaces.js +2 -2
  325. package/lib/video-recorder/process.js +126 -126
  326. package/lib/video-recorder/recorder.js +136 -136
  327. package/lib/video-recorder/test-run-video-recorder.js +69 -69
  328. package/lib/video-recorder/videos.js +37 -37
  329. package/package.json +2 -2
  330. package/ts-defs/index.d.ts +25 -14
  331. package/ts-defs/selectors.d.ts +16 -5
  332. package/ts-defs/testcafe-scripts.d.ts +17 -6
@@ -1,25 +1,25 @@
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.getDeprecationMessage = exports.DEPRECATED = void 0;
7
- const render_template_1 = __importDefault(require("../utils/render-template"));
8
- const warning_message_1 = __importDefault(require("./warning-message"));
9
- const option_names_1 = __importDefault(require("../configuration/option-names"));
10
- const customizable_compilers_1 = __importDefault(require("../configuration/customizable-compilers"));
11
- exports.DEPRECATED = {
12
- 'setPageLoadTimeout': {
13
- what: "The 't.setPageLoadTimeout' method",
14
- useInstead: "the 'test.timeouts' method to set the 'pageLoadTimeout'"
15
- },
16
- 'tsConfigPath': {
17
- what: `The '${option_names_1.default.tsConfigPath}' option`,
18
- useInstead: `the '${option_names_1.default.compilerOptions}.${customizable_compilers_1.default.typescript}.configPath' option`
19
- }
20
- };
21
- function getDeprecationMessage(deprecated) {
22
- return render_template_1.default(warning_message_1.default.deprecatedAPI, deprecated.what, deprecated.useInstead);
23
- }
24
- exports.getDeprecationMessage = getDeprecationMessage;
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.getDeprecationMessage = exports.DEPRECATED = void 0;
7
+ const render_template_1 = __importDefault(require("../utils/render-template"));
8
+ const warning_message_1 = __importDefault(require("./warning-message"));
9
+ const option_names_1 = __importDefault(require("../configuration/option-names"));
10
+ const customizable_compilers_1 = __importDefault(require("../configuration/customizable-compilers"));
11
+ exports.DEPRECATED = {
12
+ 'setPageLoadTimeout': {
13
+ what: "The 't.setPageLoadTimeout' method",
14
+ useInstead: "the 'test.timeouts' method to set the 'pageLoadTimeout'"
15
+ },
16
+ 'tsConfigPath': {
17
+ what: `The '${option_names_1.default.tsConfigPath}' option`,
18
+ useInstead: `the '${option_names_1.default.compilerOptions}.${customizable_compilers_1.default.typescript}.configPath' option`
19
+ }
20
+ };
21
+ function getDeprecationMessage(deprecated) {
22
+ return render_template_1.default(warning_message_1.default.deprecatedAPI, deprecated.what, deprecated.useInstead);
23
+ }
24
+ exports.getDeprecationMessage = getDeprecationMessage;
25
25
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVwcmVjYXRlZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9ub3RpZmljYXRpb25zL2RlcHJlY2F0ZWQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsK0VBQXNEO0FBQ3RELHdFQUFpRDtBQUNqRCxpRkFBeUQ7QUFDekQscUdBQTRFO0FBTy9ELFFBQUEsVUFBVSxHQUErQztJQUNsRSxvQkFBb0IsRUFBRTtRQUNsQixJQUFJLEVBQVEsbUNBQW1DO1FBQy9DLFVBQVUsRUFBRSx5REFBeUQ7S0FDeEU7SUFDRCxjQUFjLEVBQUU7UUFDWixJQUFJLEVBQVEsUUFBUSxzQkFBWSxDQUFDLFlBQVksVUFBVTtRQUN2RCxVQUFVLEVBQUUsUUFBUSxzQkFBWSxDQUFDLGVBQWUsSUFBSSxnQ0FBcUIsQ0FBQyxVQUFVLHFCQUFxQjtLQUM1RztDQUNKLENBQUM7QUFFRixTQUFnQixxQkFBcUIsQ0FBRSxVQUF5QjtJQUM1RCxPQUFPLHlCQUFjLENBQUMseUJBQWdCLENBQUMsYUFBYSxFQUFFLFVBQVUsQ0FBQyxJQUFJLEVBQUUsVUFBVSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0FBQ2xHLENBQUM7QUFGRCxzREFFQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCByZW5kZXJUZW1wbGF0ZSBmcm9tICcuLi91dGlscy9yZW5kZXItdGVtcGxhdGUnO1xuaW1wb3J0IFdBUk5JTkdfTUVTU0FHRVMgZnJvbSAnLi93YXJuaW5nLW1lc3NhZ2UnO1xuaW1wb3J0IE9QVElPTl9OQU1FUyBmcm9tICcuLi9jb25maWd1cmF0aW9uL29wdGlvbi1uYW1lcyc7XG5pbXBvcnQgQ3VzdG9taXphYmxlQ29tcGlsZXJzIGZyb20gJy4uL2NvbmZpZ3VyYXRpb24vY3VzdG9taXphYmxlLWNvbXBpbGVycyc7XG5cbmludGVyZmFjZSBEZXByZWNhdGVkQVBJIHtcbiAgICB3aGF0OiBzdHJpbmc7XG4gICAgdXNlSW5zdGVhZDogc3RyaW5nO1xufVxuXG5leHBvcnQgY29uc3QgREVQUkVDQVRFRDogeyBbZnVuY3Rpb25hbGl0eTogc3RyaW5nXTogRGVwcmVjYXRlZEFQSSB9ID0ge1xuICAgICdzZXRQYWdlTG9hZFRpbWVvdXQnOiB7XG4gICAgICAgIHdoYXQ6ICAgICAgIFwiVGhlICd0LnNldFBhZ2VMb2FkVGltZW91dCcgbWV0aG9kXCIsXG4gICAgICAgIHVzZUluc3RlYWQ6IFwidGhlICd0ZXN0LnRpbWVvdXRzJyBtZXRob2QgdG8gc2V0IHRoZSAncGFnZUxvYWRUaW1lb3V0J1wiXG4gICAgfSxcbiAgICAndHNDb25maWdQYXRoJzoge1xuICAgICAgICB3aGF0OiAgICAgICBgVGhlICcke09QVElPTl9OQU1FUy50c0NvbmZpZ1BhdGh9JyBvcHRpb25gLFxuICAgICAgICB1c2VJbnN0ZWFkOiBgdGhlICcke09QVElPTl9OQU1FUy5jb21waWxlck9wdGlvbnN9LiR7Q3VzdG9taXphYmxlQ29tcGlsZXJzLnR5cGVzY3JpcHR9LmNvbmZpZ1BhdGgnIG9wdGlvbmBcbiAgICB9XG59O1xuXG5leHBvcnQgZnVuY3Rpb24gZ2V0RGVwcmVjYXRpb25NZXNzYWdlIChkZXByZWNhdGVkOiBEZXByZWNhdGVkQVBJKTogc3RyaW5nIHtcbiAgICByZXR1cm4gcmVuZGVyVGVtcGxhdGUoV0FSTklOR19NRVNTQUdFUy5kZXByZWNhdGVkQVBJLCBkZXByZWNhdGVkLndoYXQsIGRlcHJlY2F0ZWQudXNlSW5zdGVhZCk7XG59XG4iXX0=
@@ -1,17 +1,17 @@
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.FAILED_TO_GENERATE_DETAILED_DIFF = exports.SCREEN_RECORDING_PERMISSION_REQUEST = void 0;
7
- const dedent_1 = __importDefault(require("dedent"));
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.FAILED_TO_GENERATE_DETAILED_DIFF = exports.SCREEN_RECORDING_PERMISSION_REQUEST = void 0;
7
+ const dedent_1 = __importDefault(require("dedent"));
8
8
  exports.SCREEN_RECORDING_PERMISSION_REQUEST = dedent_1.default `
9
9
  TestCafe requires permission to record the screen. Open 'System Preferences > Security & Privacy > Privacy > Screen Recording' and check 'TestCafe Browser Tools' in the application list.
10
10
 
11
11
  Press any key to retry.
12
- `;
12
+ `;
13
13
  exports.FAILED_TO_GENERATE_DETAILED_DIFF = (errorMessage) => dedent_1.default `
14
14
  Failed to generate diff due to an error:
15
15
  ${errorMessage}
16
- `;
16
+ `;
17
17
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5mb3JtYXRpb24tbWVzc2FnZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9ub3RpZmljYXRpb25zL2luZm9ybWF0aW9uLW1lc3NhZ2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsb0RBQTRCO0FBR2YsUUFBQSxtQ0FBbUMsR0FBRyxnQkFBTSxDQUFDOzs7O0NBSXpELENBQUM7QUFFVyxRQUFBLGdDQUFnQyxHQUFHLENBQUMsWUFBb0IsRUFBVSxFQUFFLENBQUMsZ0JBQU0sQ0FBQzs7TUFFbkYsWUFBWTtDQUNqQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGRlZGVudCBmcm9tICdkZWRlbnQnO1xuXG5cbmV4cG9ydCBjb25zdCBTQ1JFRU5fUkVDT1JESU5HX1BFUk1JU1NJT05fUkVRVUVTVCA9IGRlZGVudCBgXG4gICAgVGVzdENhZmUgcmVxdWlyZXMgcGVybWlzc2lvbiB0byByZWNvcmQgdGhlIHNjcmVlbi4gT3BlbiAnU3lzdGVtIFByZWZlcmVuY2VzID4gU2VjdXJpdHkgJiBQcml2YWN5ID4gUHJpdmFjeSA+IFNjcmVlbiBSZWNvcmRpbmcnIGFuZCBjaGVjayAnVGVzdENhZmUgQnJvd3NlciBUb29scycgaW4gdGhlIGFwcGxpY2F0aW9uIGxpc3QuXG5cbiAgICBQcmVzcyBhbnkga2V5IHRvIHJldHJ5LlxuYDtcblxuZXhwb3J0IGNvbnN0IEZBSUxFRF9UT19HRU5FUkFURV9ERVRBSUxFRF9ESUZGID0gKGVycm9yTWVzc2FnZTogc3RyaW5nKTogc3RyaW5nID0+IGRlZGVudCBgXG4gICAgRmFpbGVkIHRvIGdlbmVyYXRlIGRpZmYgZHVlIHRvIGFuIGVycm9yOlxuICAgICR7ZXJyb3JNZXNzYWdlfVxuYDtcbiJdfQ==
@@ -1,33 +1,33 @@
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 render_template_1 = __importDefault(require("../utils/render-template"));
7
- class WarningLog {
8
- constructor(globalLog = null) {
9
- this.globalLog = globalLog;
10
- this.messages = [];
11
- }
12
- addPlainMessage(msg) {
13
- // NOTE: avoid duplicates
14
- if (!this.messages.includes(msg))
15
- this.messages.push(msg);
16
- }
17
- addWarning(...args) {
18
- // @ts-ignore
19
- const msg = render_template_1.default.apply(null, args);
20
- this.addPlainMessage(msg);
21
- if (this.globalLog)
22
- this.globalLog.addPlainMessage(msg);
23
- }
24
- clear() {
25
- this.messages = [];
26
- }
27
- copyTo(warningLog) {
28
- this.messages.forEach(msg => warningLog.addWarning(msg));
29
- }
30
- }
31
- exports.default = WarningLog;
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 render_template_1 = __importDefault(require("../utils/render-template"));
7
+ class WarningLog {
8
+ constructor(globalLog = null) {
9
+ this.globalLog = globalLog;
10
+ this.messages = [];
11
+ }
12
+ addPlainMessage(msg) {
13
+ // NOTE: avoid duplicates
14
+ if (!this.messages.includes(msg))
15
+ this.messages.push(msg);
16
+ }
17
+ addWarning(...args) {
18
+ // @ts-ignore
19
+ const msg = render_template_1.default.apply(null, args);
20
+ this.addPlainMessage(msg);
21
+ if (this.globalLog)
22
+ this.globalLog.addPlainMessage(msg);
23
+ }
24
+ clear() {
25
+ this.messages = [];
26
+ }
27
+ copyTo(warningLog) {
28
+ this.messages.forEach(msg => warningLog.addWarning(msg));
29
+ }
30
+ }
31
+ exports.default = WarningLog;
32
32
  module.exports = exports.default;
33
33
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2FybmluZy1sb2cuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbm90aWZpY2F0aW9ucy93YXJuaW5nLWxvZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLCtFQUFzRDtBQUV0RCxNQUFxQixVQUFVO0lBSTNCLFlBQW9CLFNBQVMsR0FBRyxJQUFJO1FBQ2hDLElBQUksQ0FBQyxTQUFTLEdBQUcsU0FBUyxDQUFDO1FBQzNCLElBQUksQ0FBQyxRQUFRLEdBQUksRUFBRSxDQUFDO0lBQ3hCLENBQUM7SUFFTSxlQUFlLENBQUUsR0FBVztRQUMvQix5QkFBeUI7UUFDekIsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQztZQUM1QixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUNoQyxDQUFDO0lBRU0sVUFBVSxDQUFFLEdBQUcsSUFBVztRQUM3QixhQUFhO1FBQ2IsTUFBTSxHQUFHLEdBQUcseUJBQWMsQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDO1FBRTdDLElBQUksQ0FBQyxlQUFlLENBQUMsR0FBRyxDQUFDLENBQUM7UUFFMUIsSUFBSSxJQUFJLENBQUMsU0FBUztZQUNkLElBQUksQ0FBQyxTQUFTLENBQUMsZUFBZSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQzVDLENBQUM7SUFFTSxLQUFLO1FBQ1IsSUFBSSxDQUFDLFFBQVEsR0FBRyxFQUFFLENBQUM7SUFDdkIsQ0FBQztJQUVNLE1BQU0sQ0FBRSxVQUFzQjtRQUNqQyxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztJQUM3RCxDQUFDO0NBQ0o7QUFoQ0QsNkJBZ0NDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHJlbmRlclRlbXBsYXRlIGZyb20gJy4uL3V0aWxzL3JlbmRlci10ZW1wbGF0ZSc7XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFdhcm5pbmdMb2cge1xuICAgIHB1YmxpYyBtZXNzYWdlczogc3RyaW5nW107XG4gICAgcHVibGljIGdsb2JhbExvZzogV2FybmluZ0xvZyB8IG51bGw7XG5cbiAgICBwdWJsaWMgY29uc3RydWN0b3IgKGdsb2JhbExvZyA9IG51bGwpIHtcbiAgICAgICAgdGhpcy5nbG9iYWxMb2cgPSBnbG9iYWxMb2c7XG4gICAgICAgIHRoaXMubWVzc2FnZXMgID0gW107XG4gICAgfVxuXG4gICAgcHVibGljIGFkZFBsYWluTWVzc2FnZSAobXNnOiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgLy8gTk9URTogYXZvaWQgZHVwbGljYXRlc1xuICAgICAgICBpZiAoIXRoaXMubWVzc2FnZXMuaW5jbHVkZXMobXNnKSlcbiAgICAgICAgICAgIHRoaXMubWVzc2FnZXMucHVzaChtc2cpO1xuICAgIH1cblxuICAgIHB1YmxpYyBhZGRXYXJuaW5nICguLi5hcmdzOiBhbnlbXSk6IHZvaWQge1xuICAgICAgICAvLyBAdHMtaWdub3JlXG4gICAgICAgIGNvbnN0IG1zZyA9IHJlbmRlclRlbXBsYXRlLmFwcGx5KG51bGwsIGFyZ3MpO1xuXG4gICAgICAgIHRoaXMuYWRkUGxhaW5NZXNzYWdlKG1zZyk7XG5cbiAgICAgICAgaWYgKHRoaXMuZ2xvYmFsTG9nKVxuICAgICAgICAgICAgdGhpcy5nbG9iYWxMb2cuYWRkUGxhaW5NZXNzYWdlKG1zZyk7XG4gICAgfVxuXG4gICAgcHVibGljIGNsZWFyICgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5tZXNzYWdlcyA9IFtdO1xuICAgIH1cblxuICAgIHB1YmxpYyBjb3B5VG8gKHdhcm5pbmdMb2c6IFdhcm5pbmdMb2cpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5tZXNzYWdlcy5mb3JFYWNoKG1zZyA9PiB3YXJuaW5nTG9nLmFkZFdhcm5pbmcobXNnKSk7XG4gICAgfVxufVxuIl19
@@ -1,49 +1,49 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.default = {
4
- screenshotsDisabled: 'Screenshots are disabled. To take screenshots, remove the "--disable-screenshots" command line flag or set the "disableScreenshots" option to "false" in the API or configuration file.',
5
- screenshotError: 'Was unable to take a screenshot due to an error.\n\n{errMessage}',
6
- screenshotMarkNotFound: 'Unable to locate the page area in the browser window screenshot at {screenshotPath}, because the page area mark with ID {markId} is not found in the screenshot.',
7
- screenshotsFullPageNotSupported: 'TestCafe does not support full-page screenshots in {browserAlias}.',
8
- screenshotRewritingError: 'The file at "{screenshotPath}" already exists. It has just been rewritten with a recent screenshot. This situation can possibly cause issues. To avoid them, make sure that each screenshot has a unique path. If a test runs in multiple browsers, consider including the user agent in the screenshot path or generate a unique identifier in another way.',
9
- browserManipulationsOnRemoteBrowser: 'The screenshot and window resize functionalities are not supported in a remote browser. They can function only if the browser is running on the same machine and in the same environment as the TestCafe server.',
10
- screenshotNotSupportedByBrowserProvider: 'The screenshot functionality is not supported by the "{providerName}" browser provider.',
11
- videoNotSupportedByBrowser: 'Video recording is not supported by the "{browserAlias}" browser.',
12
- videoBrowserResizing: 'The browser window was resized during the "{testName}" test while TestCafe recorded a video. TestCafe cannot adjust the video resolution during recording. As a result, the video content may appear broken. Do not resize the browser window when TestCafe records a video.',
13
- resizeNotSupportedByBrowserProvider: 'The window resize functionality is not supported by the "{providerName}" browser provider.',
14
- maximizeNotSupportedByBrowserProvider: 'The window maximization functionality is not supported by the "{providerName}" browser provider.',
15
- resizeError: 'Was unable to resize the window due to an error.\n\n{errMessage}',
16
- maximizeError: 'Was unable to maximize the window due to an error.\n\n{errMessage}',
17
- requestMockCORSValidationFailed: '{RequestHook}: CORS validation failed for a request specified as {requestFilterRule}',
18
- debugInHeadlessError: 'You cannot debug in headless mode.',
19
- cannotReadConfigFile: 'An error has occurred while reading the configuration file.',
20
- cannotParseConfigFile: "Failed to parse the '{path}' file.\n\nThis file is not a well-formed JSON file.",
21
- configOptionsWereOverridden: 'The {optionsString} option{suffix} from the configuration file will be ignored.',
22
- cannotOverrideTypeScriptConfigOptions: 'You cannot override the "{optionName}" compiler option in the TypeScript configuration file.\n',
23
- cannotFindWindowDescriptorError: 'Could not find the "{browserAlias}" window. ' +
24
- 'TestCafe is unable to resize the window or take screenshots.\n\n' +
25
- 'The following error occurred while TestCafe was searching ' +
26
- 'for the window descriptor:\n\n{errMessage}',
27
- cannotFindSSLCertFile: 'Unable to find the "{path}" file, specified by the "{option}" ssl option. Error details:\n' +
28
- '\n' +
29
- '{err}',
30
- cannotFindConfigurationFile: 'Unable to find the "{path}" configuration file. Error details:\n' +
31
- '\n' +
32
- '{err}',
33
- problematicPathPatternPlaceholderForVideoRecording: 'The {placeholderList} path pattern placeholder{suffix} cannot be applied to the recorded video.\n' +
34
- '\n' +
35
- 'The placeholder{suffix} {verb} replaced with an empty string.',
36
- clientScriptsWithEmptyContent: 'The client script you tried to inject is empty.',
37
- clientScriptsWithDuplicatedContent: 'You injected the following client script{suffix} several times:\n{duplicatedScripts}',
38
- assertedSelectorInstance: 'You passed a Selector object to \'t.expect()\'.\nIf you want to check that a matched element exists, pass the \'selector.exists\' value instead.',
39
- assertedClientFunctionInstance: 'You passed a ClientFunction object to \'t.expect()\'.\nIf you want to check the function\'s return value, use parentheses to call the function: fnName().',
40
- multipleWindowsFoundByPredicate: 'The predicate function passed to the \'switchToWindow\' method matched multiple windows. The first matching window was activated.',
41
- excessiveAwaitInAssertion: 'You passed a DOM snapshot property to the assertion\'s \'t.expect()\' method. The property value is assigned when the snapshot is resolved and this value is no longer updated. To ensure that the assertion verifies an up-to-date value, pass the selector property without \'await\'.',
42
- missingAwaitOnSnapshotProperty: 'You used a DOM snapshot property without \'await\'. The property value is assigned when the snapshot is resolved. If you need to use the property value, use \'await\' to resolve the Promise.',
43
- retryTestPagesIsNotSupported: 'Cannot enable the \'retryTestPages\' option in "{browserAlias}". Please ensure that your version of "{browserAlias}" supports the Service Worker API (https://developer.mozilla.org/en-US/docs/Web/API/Service_Worker_API).\n',
44
- browserProviderDropOfPerformance: 'We detected \'{browserName}\' runs slowly. Try to free up or allocate more system resources on its host machine.',
45
- testsCompilationTakesTooLong: 'Tests took too long to compile ({compileTime}). Ensure the test code has no excessive imports.',
46
- deprecatedAPI: '{API} is deprecated and will be removed in the next major release. Use {replacement} instead.'
47
- };
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.default = {
4
+ screenshotsDisabled: 'Screenshots are disabled. To take screenshots, remove the "--disable-screenshots" command line flag or set the "disableScreenshots" option to "false" in the API or configuration file.',
5
+ screenshotError: 'Was unable to take a screenshot due to an error.\n\n{errMessage}',
6
+ screenshotMarkNotFound: 'Unable to locate the page area in the browser window screenshot at {screenshotPath}, because the page area mark with ID {markId} is not found in the screenshot.',
7
+ screenshotsFullPageNotSupported: 'TestCafe does not support full-page screenshots in {browserAlias}.',
8
+ screenshotRewritingError: 'The file at "{screenshotPath}" already exists. It has just been rewritten with a recent screenshot. This situation can possibly cause issues. To avoid them, make sure that each screenshot has a unique path. If a test runs in multiple browsers, consider including the user agent in the screenshot path or generate a unique identifier in another way.',
9
+ browserManipulationsOnRemoteBrowser: 'The screenshot and window resize functionalities are not supported in a remote browser. They can function only if the browser is running on the same machine and in the same environment as the TestCafe server.',
10
+ screenshotNotSupportedByBrowserProvider: 'The screenshot functionality is not supported by the "{providerName}" browser provider.',
11
+ videoNotSupportedByBrowser: 'Video recording is not supported by the "{browserAlias}" browser.',
12
+ videoBrowserResizing: 'The browser window was resized during the "{testName}" test while TestCafe recorded a video. TestCafe cannot adjust the video resolution during recording. As a result, the video content may appear broken. Do not resize the browser window when TestCafe records a video.',
13
+ resizeNotSupportedByBrowserProvider: 'The window resize functionality is not supported by the "{providerName}" browser provider.',
14
+ maximizeNotSupportedByBrowserProvider: 'The window maximization functionality is not supported by the "{providerName}" browser provider.',
15
+ resizeError: 'Was unable to resize the window due to an error.\n\n{errMessage}',
16
+ maximizeError: 'Was unable to maximize the window due to an error.\n\n{errMessage}',
17
+ requestMockCORSValidationFailed: '{RequestHook}: CORS validation failed for a request specified as {requestFilterRule}',
18
+ debugInHeadlessError: 'You cannot debug in headless mode.',
19
+ cannotReadConfigFile: 'An error has occurred while reading the configuration file.',
20
+ cannotParseConfigFile: "Failed to parse the '{path}' file.\n\nThis file is not a well-formed JSON file.",
21
+ configOptionsWereOverridden: 'The {optionsString} option{suffix} from the configuration file will be ignored.',
22
+ cannotOverrideTypeScriptConfigOptions: 'You cannot override the "{optionName}" compiler option in the TypeScript configuration file.\n',
23
+ cannotFindWindowDescriptorError: 'Could not find the "{browserAlias}" window. ' +
24
+ 'TestCafe is unable to resize the window or take screenshots.\n\n' +
25
+ 'The following error occurred while TestCafe was searching ' +
26
+ 'for the window descriptor:\n\n{errMessage}',
27
+ cannotFindSSLCertFile: 'Unable to find the "{path}" file, specified by the "{option}" ssl option. Error details:\n' +
28
+ '\n' +
29
+ '{err}',
30
+ cannotFindConfigurationFile: 'Unable to find the "{path}" configuration file. Error details:\n' +
31
+ '\n' +
32
+ '{err}',
33
+ problematicPathPatternPlaceholderForVideoRecording: 'The {placeholderList} path pattern placeholder{suffix} cannot be applied to the recorded video.\n' +
34
+ '\n' +
35
+ 'The placeholder{suffix} {verb} replaced with an empty string.',
36
+ clientScriptsWithEmptyContent: 'The client script you tried to inject is empty.',
37
+ clientScriptsWithDuplicatedContent: 'You injected the following client script{suffix} several times:\n{duplicatedScripts}',
38
+ assertedSelectorInstance: 'You passed a Selector object to \'t.expect()\'.\nIf you want to check that a matched element exists, pass the \'selector.exists\' value instead.',
39
+ assertedClientFunctionInstance: 'You passed a ClientFunction object to \'t.expect()\'.\nIf you want to check the function\'s return value, use parentheses to call the function: fnName().',
40
+ multipleWindowsFoundByPredicate: 'The predicate function passed to the \'switchToWindow\' method matched multiple windows. The first matching window was activated.',
41
+ excessiveAwaitInAssertion: 'You passed a DOM snapshot property to the assertion\'s \'t.expect()\' method. The property value is assigned when the snapshot is resolved and this value is no longer updated. To ensure that the assertion verifies an up-to-date value, pass the selector property without \'await\'.',
42
+ missingAwaitOnSnapshotProperty: 'You used a DOM snapshot property without \'await\'. The property value is assigned when the snapshot is resolved. If you need to use the property value, use \'await\' to resolve the Promise.',
43
+ retryTestPagesIsNotSupported: 'Cannot enable the \'retryTestPages\' option in "{browserAlias}". Please ensure that your version of "{browserAlias}" supports the Service Worker API (https://developer.mozilla.org/en-US/docs/Web/API/Service_Worker_API).\n',
44
+ browserProviderDropOfPerformance: 'We detected \'{browserName}\' runs slowly. Try to free up or allocate more system resources on its host machine.',
45
+ testsCompilationTakesTooLong: 'Tests took too long to compile ({compileTime}). Ensure the test code has no excessive imports.',
46
+ deprecatedAPI: '{API} is deprecated and will be removed in the next major release. Use {replacement} instead.'
47
+ };
48
48
  module.exports = exports.default;
49
49
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2FybmluZy1tZXNzYWdlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL25vdGlmaWNhdGlvbnMvd2FybmluZy1tZXNzYWdlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsa0JBQWU7SUFDWCxtQkFBbUIsRUFBc0IseUxBQXlMO0lBQ2xPLGVBQWUsRUFBMEIsa0VBQWtFO0lBQzNHLHNCQUFzQixFQUFtQixrS0FBa0s7SUFDM00sK0JBQStCLEVBQVUsb0VBQW9FO0lBQzdHLHdCQUF3QixFQUFpQiw4VkFBOFY7SUFDdlksbUNBQW1DLEVBQU0sa05BQWtOO0lBQzNQLHVDQUF1QyxFQUFFLHlGQUF5RjtJQUNsSSwwQkFBMEIsRUFBZSxtRUFBbUU7SUFDNUcsb0JBQW9CLEVBQXFCLDhRQUE4UTtJQUN2VCxtQ0FBbUMsRUFBTSw0RkFBNEY7SUFDckkscUNBQXFDLEVBQUksa0dBQWtHO0lBQzNJLFdBQVcsRUFBOEIsa0VBQWtFO0lBQzNHLGFBQWEsRUFBNEIsb0VBQW9FO0lBQzdHLCtCQUErQixFQUFVLHNGQUFzRjtJQUMvSCxvQkFBb0IsRUFBcUIsb0NBQW9DO0lBQzdFLG9CQUFvQixFQUFxQiw2REFBNkQ7SUFDdEcscUJBQXFCLEVBQW9CLGlGQUFpRjtJQUMxSCwyQkFBMkIsRUFBYyxpRkFBaUY7SUFDMUgscUNBQXFDLEVBQUksZ0dBQWdHO0lBRXpJLCtCQUErQixFQUFFLDhDQUE4QztRQUM5QyxrRUFBa0U7UUFDbEUsNERBQTREO1FBQzVELDRDQUE0QztJQUU3RSxxQkFBcUIsRUFBRSw0RkFBNEY7UUFDNUYsSUFBSTtRQUNKLE9BQU87SUFFOUIsMkJBQTJCLEVBQUUsa0VBQWtFO1FBQ2xFLElBQUk7UUFDSixPQUFPO0lBRXBDLGtEQUFrRCxFQUFFLG1HQUFtRztRQUNuRyxJQUFJO1FBQ0osK0RBQStEO0lBRW5ILDZCQUE2QixFQUFPLGlEQUFpRDtJQUNyRixrQ0FBa0MsRUFBRSxzRkFBc0Y7SUFDMUgsd0JBQXdCLEVBQVksa0pBQWtKO0lBQ3RMLDhCQUE4QixFQUFNLDJKQUEySjtJQUMvTCwrQkFBK0IsRUFBSyxtSUFBbUk7SUFDdksseUJBQXlCLEVBQVcsMFJBQTBSO0lBQzlULDhCQUE4QixFQUFNLGdNQUFnTTtJQUNwTyw0QkFBNEIsRUFBUSwrTkFBK047SUFDblEsZ0NBQWdDLEVBQUksa0hBQWtIO0lBQ3RKLDRCQUE0QixFQUFRLGdHQUFnRztJQUNwSSxhQUFhLEVBQXVCLCtGQUErRjtDQUN0SSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGRlZmF1bHQge1xuICAgIHNjcmVlbnNob3RzRGlzYWJsZWQ6ICAgICAgICAgICAgICAgICAgICAgJ1NjcmVlbnNob3RzIGFyZSBkaXNhYmxlZC4gVG8gdGFrZSBzY3JlZW5zaG90cywgcmVtb3ZlIHRoZSBcIi0tZGlzYWJsZS1zY3JlZW5zaG90c1wiIGNvbW1hbmQgbGluZSBmbGFnIG9yIHNldCB0aGUgXCJkaXNhYmxlU2NyZWVuc2hvdHNcIiBvcHRpb24gdG8gXCJmYWxzZVwiIGluIHRoZSBBUEkgb3IgY29uZmlndXJhdGlvbiBmaWxlLicsXG4gICAgc2NyZWVuc2hvdEVycm9yOiAgICAgICAgICAgICAgICAgICAgICAgICAnV2FzIHVuYWJsZSB0byB0YWtlIGEgc2NyZWVuc2hvdCBkdWUgdG8gYW4gZXJyb3IuXFxuXFxue2Vyck1lc3NhZ2V9JyxcbiAgICBzY3JlZW5zaG90TWFya05vdEZvdW5kOiAgICAgICAgICAgICAgICAgICdVbmFibGUgdG8gbG9jYXRlIHRoZSBwYWdlIGFyZWEgaW4gdGhlIGJyb3dzZXIgd2luZG93IHNjcmVlbnNob3QgYXQge3NjcmVlbnNob3RQYXRofSwgYmVjYXVzZSB0aGUgcGFnZSBhcmVhIG1hcmsgd2l0aCBJRCB7bWFya0lkfSBpcyBub3QgZm91bmQgaW4gdGhlIHNjcmVlbnNob3QuJyxcbiAgICBzY3JlZW5zaG90c0Z1bGxQYWdlTm90U3VwcG9ydGVkOiAgICAgICAgICdUZXN0Q2FmZSBkb2VzIG5vdCBzdXBwb3J0IGZ1bGwtcGFnZSBzY3JlZW5zaG90cyBpbiB7YnJvd3NlckFsaWFzfS4nLFxuICAgIHNjcmVlbnNob3RSZXdyaXRpbmdFcnJvcjogICAgICAgICAgICAgICAgJ1RoZSBmaWxlIGF0IFwie3NjcmVlbnNob3RQYXRofVwiIGFscmVhZHkgZXhpc3RzLiBJdCBoYXMganVzdCBiZWVuIHJld3JpdHRlbiB3aXRoIGEgcmVjZW50IHNjcmVlbnNob3QuIFRoaXMgc2l0dWF0aW9uIGNhbiBwb3NzaWJseSBjYXVzZSBpc3N1ZXMuIFRvIGF2b2lkIHRoZW0sIG1ha2Ugc3VyZSB0aGF0IGVhY2ggc2NyZWVuc2hvdCBoYXMgYSB1bmlxdWUgcGF0aC4gSWYgYSB0ZXN0IHJ1bnMgaW4gbXVsdGlwbGUgYnJvd3NlcnMsIGNvbnNpZGVyIGluY2x1ZGluZyB0aGUgdXNlciBhZ2VudCBpbiB0aGUgc2NyZWVuc2hvdCBwYXRoIG9yIGdlbmVyYXRlIGEgdW5pcXVlIGlkZW50aWZpZXIgaW4gYW5vdGhlciB3YXkuJyxcbiAgICBicm93c2VyTWFuaXB1bGF0aW9uc09uUmVtb3RlQnJvd3NlcjogICAgICdUaGUgc2NyZWVuc2hvdCBhbmQgd2luZG93IHJlc2l6ZSBmdW5jdGlvbmFsaXRpZXMgYXJlIG5vdCBzdXBwb3J0ZWQgaW4gYSByZW1vdGUgYnJvd3Nlci4gVGhleSBjYW4gZnVuY3Rpb24gb25seSBpZiB0aGUgYnJvd3NlciBpcyBydW5uaW5nIG9uIHRoZSBzYW1lIG1hY2hpbmUgYW5kIGluIHRoZSBzYW1lIGVudmlyb25tZW50IGFzIHRoZSBUZXN0Q2FmZSBzZXJ2ZXIuJyxcbiAgICBzY3JlZW5zaG90Tm90U3VwcG9ydGVkQnlCcm93c2VyUHJvdmlkZXI6ICdUaGUgc2NyZWVuc2hvdCBmdW5jdGlvbmFsaXR5IGlzIG5vdCBzdXBwb3J0ZWQgYnkgdGhlIFwie3Byb3ZpZGVyTmFtZX1cIiBicm93c2VyIHByb3ZpZGVyLicsXG4gICAgdmlkZW9Ob3RTdXBwb3J0ZWRCeUJyb3dzZXI6ICAgICAgICAgICAgICAnVmlkZW8gcmVjb3JkaW5nIGlzIG5vdCBzdXBwb3J0ZWQgYnkgdGhlIFwie2Jyb3dzZXJBbGlhc31cIiBicm93c2VyLicsXG4gICAgdmlkZW9Ccm93c2VyUmVzaXppbmc6ICAgICAgICAgICAgICAgICAgICAnVGhlIGJyb3dzZXIgd2luZG93IHdhcyByZXNpemVkIGR1cmluZyB0aGUgXCJ7dGVzdE5hbWV9XCIgdGVzdCB3aGlsZSBUZXN0Q2FmZSByZWNvcmRlZCBhIHZpZGVvLiBUZXN0Q2FmZSBjYW5ub3QgYWRqdXN0IHRoZSB2aWRlbyByZXNvbHV0aW9uIGR1cmluZyByZWNvcmRpbmcuIEFzIGEgcmVzdWx0LCB0aGUgdmlkZW8gY29udGVudCBtYXkgYXBwZWFyIGJyb2tlbi4gRG8gbm90IHJlc2l6ZSB0aGUgYnJvd3NlciB3aW5kb3cgd2hlbiBUZXN0Q2FmZSByZWNvcmRzIGEgdmlkZW8uJyxcbiAgICByZXNpemVOb3RTdXBwb3J0ZWRCeUJyb3dzZXJQcm92aWRlcjogICAgICdUaGUgd2luZG93IHJlc2l6ZSBmdW5jdGlvbmFsaXR5IGlzIG5vdCBzdXBwb3J0ZWQgYnkgdGhlIFwie3Byb3ZpZGVyTmFtZX1cIiBicm93c2VyIHByb3ZpZGVyLicsXG4gICAgbWF4aW1pemVOb3RTdXBwb3J0ZWRCeUJyb3dzZXJQcm92aWRlcjogICAnVGhlIHdpbmRvdyBtYXhpbWl6YXRpb24gZnVuY3Rpb25hbGl0eSBpcyBub3Qgc3VwcG9ydGVkIGJ5IHRoZSBcIntwcm92aWRlck5hbWV9XCIgYnJvd3NlciBwcm92aWRlci4nLFxuICAgIHJlc2l6ZUVycm9yOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ1dhcyB1bmFibGUgdG8gcmVzaXplIHRoZSB3aW5kb3cgZHVlIHRvIGFuIGVycm9yLlxcblxcbntlcnJNZXNzYWdlfScsXG4gICAgbWF4aW1pemVFcnJvcjogICAgICAgICAgICAgICAgICAgICAgICAgICAnV2FzIHVuYWJsZSB0byBtYXhpbWl6ZSB0aGUgd2luZG93IGR1ZSB0byBhbiBlcnJvci5cXG5cXG57ZXJyTWVzc2FnZX0nLFxuICAgIHJlcXVlc3RNb2NrQ09SU1ZhbGlkYXRpb25GYWlsZWQ6ICAgICAgICAgJ3tSZXF1ZXN0SG9va306IENPUlMgdmFsaWRhdGlvbiBmYWlsZWQgZm9yIGEgcmVxdWVzdCBzcGVjaWZpZWQgYXMge3JlcXVlc3RGaWx0ZXJSdWxlfScsXG4gICAgZGVidWdJbkhlYWRsZXNzRXJyb3I6ICAgICAgICAgICAgICAgICAgICAnWW91IGNhbm5vdCBkZWJ1ZyBpbiBoZWFkbGVzcyBtb2RlLicsXG4gICAgY2Fubm90UmVhZENvbmZpZ0ZpbGU6ICAgICAgICAgICAgICAgICAgICAnQW4gZXJyb3IgaGFzIG9jY3VycmVkIHdoaWxlIHJlYWRpbmcgdGhlIGNvbmZpZ3VyYXRpb24gZmlsZS4nLFxuICAgIGNhbm5vdFBhcnNlQ29uZmlnRmlsZTogICAgICAgICAgICAgICAgICAgXCJGYWlsZWQgdG8gcGFyc2UgdGhlICd7cGF0aH0nIGZpbGUuXFxuXFxuVGhpcyBmaWxlIGlzIG5vdCBhIHdlbGwtZm9ybWVkIEpTT04gZmlsZS5cIixcbiAgICBjb25maWdPcHRpb25zV2VyZU92ZXJyaWRkZW46ICAgICAgICAgICAgICdUaGUge29wdGlvbnNTdHJpbmd9IG9wdGlvbntzdWZmaXh9IGZyb20gdGhlIGNvbmZpZ3VyYXRpb24gZmlsZSB3aWxsIGJlIGlnbm9yZWQuJyxcbiAgICBjYW5ub3RPdmVycmlkZVR5cGVTY3JpcHRDb25maWdPcHRpb25zOiAgICdZb3UgY2Fubm90IG92ZXJyaWRlIHRoZSBcIntvcHRpb25OYW1lfVwiIGNvbXBpbGVyIG9wdGlvbiBpbiB0aGUgVHlwZVNjcmlwdCBjb25maWd1cmF0aW9uIGZpbGUuXFxuJyxcblxuICAgIGNhbm5vdEZpbmRXaW5kb3dEZXNjcmlwdG9yRXJyb3I6ICdDb3VsZCBub3QgZmluZCB0aGUgXCJ7YnJvd3NlckFsaWFzfVwiIHdpbmRvdy4gJyArXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ1Rlc3RDYWZlIGlzIHVuYWJsZSB0byByZXNpemUgdGhlIHdpbmRvdyBvciB0YWtlIHNjcmVlbnNob3RzLlxcblxcbicgK1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdUaGUgZm9sbG93aW5nIGVycm9yIG9jY3VycmVkIHdoaWxlIFRlc3RDYWZlIHdhcyBzZWFyY2hpbmcgJyArXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2ZvciB0aGUgd2luZG93IGRlc2NyaXB0b3I6XFxuXFxue2Vyck1lc3NhZ2V9JyxcblxuICAgIGNhbm5vdEZpbmRTU0xDZXJ0RmlsZTogJ1VuYWJsZSB0byBmaW5kIHRoZSBcIntwYXRofVwiIGZpbGUsIHNwZWNpZmllZCBieSB0aGUgXCJ7b3B0aW9ufVwiIHNzbCBvcHRpb24uIEVycm9yIGRldGFpbHM6XFxuJyArXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAnXFxuJyArXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAne2Vycn0nLFxuXG4gICAgY2Fubm90RmluZENvbmZpZ3VyYXRpb25GaWxlOiAnVW5hYmxlIHRvIGZpbmQgdGhlIFwie3BhdGh9XCIgY29uZmlndXJhdGlvbiBmaWxlLiBFcnJvciBkZXRhaWxzOlxcbicgK1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ1xcbicgK1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3tlcnJ9JyxcblxuICAgIHByb2JsZW1hdGljUGF0aFBhdHRlcm5QbGFjZWhvbGRlckZvclZpZGVvUmVjb3JkaW5nOiAnVGhlIHtwbGFjZWhvbGRlckxpc3R9IHBhdGggcGF0dGVybiBwbGFjZWhvbGRlcntzdWZmaXh9IGNhbm5vdCBiZSBhcHBsaWVkIHRvIHRoZSByZWNvcmRlZCB2aWRlby5cXG4nICtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ1xcbicgK1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnVGhlIHBsYWNlaG9sZGVye3N1ZmZpeH0ge3ZlcmJ9IHJlcGxhY2VkIHdpdGggYW4gZW1wdHkgc3RyaW5nLicsXG5cbiAgICBjbGllbnRTY3JpcHRzV2l0aEVtcHR5Q29udGVudDogICAgICAnVGhlIGNsaWVudCBzY3JpcHQgeW91IHRyaWVkIHRvIGluamVjdCBpcyBlbXB0eS4nLFxuICAgIGNsaWVudFNjcmlwdHNXaXRoRHVwbGljYXRlZENvbnRlbnQ6ICdZb3UgaW5qZWN0ZWQgdGhlIGZvbGxvd2luZyBjbGllbnQgc2NyaXB0e3N1ZmZpeH0gc2V2ZXJhbCB0aW1lczpcXG57ZHVwbGljYXRlZFNjcmlwdHN9JyxcbiAgICBhc3NlcnRlZFNlbGVjdG9ySW5zdGFuY2U6ICAgICAgICAgICAnWW91IHBhc3NlZCBhIFNlbGVjdG9yIG9iamVjdCB0byBcXCd0LmV4cGVjdCgpXFwnLlxcbklmIHlvdSB3YW50IHRvIGNoZWNrIHRoYXQgYSBtYXRjaGVkIGVsZW1lbnQgZXhpc3RzLCBwYXNzIHRoZSBcXCdzZWxlY3Rvci5leGlzdHNcXCcgdmFsdWUgaW5zdGVhZC4nLFxuICAgIGFzc2VydGVkQ2xpZW50RnVuY3Rpb25JbnN0YW5jZTogICAgICdZb3UgcGFzc2VkIGEgQ2xpZW50RnVuY3Rpb24gb2JqZWN0IHRvIFxcJ3QuZXhwZWN0KClcXCcuXFxuSWYgeW91IHdhbnQgdG8gY2hlY2sgdGhlIGZ1bmN0aW9uXFwncyByZXR1cm4gdmFsdWUsIHVzZSBwYXJlbnRoZXNlcyB0byBjYWxsIHRoZSBmdW5jdGlvbjogZm5OYW1lKCkuJyxcbiAgICBtdWx0aXBsZVdpbmRvd3NGb3VuZEJ5UHJlZGljYXRlOiAgICAnVGhlIHByZWRpY2F0ZSBmdW5jdGlvbiBwYXNzZWQgdG8gdGhlIFxcJ3N3aXRjaFRvV2luZG93XFwnIG1ldGhvZCBtYXRjaGVkIG11bHRpcGxlIHdpbmRvd3MuIFRoZSBmaXJzdCBtYXRjaGluZyB3aW5kb3cgd2FzIGFjdGl2YXRlZC4nLFxuICAgIGV4Y2Vzc2l2ZUF3YWl0SW5Bc3NlcnRpb246ICAgICAgICAgICdZb3UgcGFzc2VkIGEgRE9NIHNuYXBzaG90IHByb3BlcnR5IHRvIHRoZSBhc3NlcnRpb25cXCdzIFxcJ3QuZXhwZWN0KClcXCcgbWV0aG9kLiBUaGUgcHJvcGVydHkgdmFsdWUgaXMgYXNzaWduZWQgd2hlbiB0aGUgc25hcHNob3QgaXMgcmVzb2x2ZWQgYW5kIHRoaXMgdmFsdWUgaXMgbm8gbG9uZ2VyIHVwZGF0ZWQuIFRvIGVuc3VyZSB0aGF0IHRoZSBhc3NlcnRpb24gdmVyaWZpZXMgYW4gdXAtdG8tZGF0ZSB2YWx1ZSwgcGFzcyB0aGUgc2VsZWN0b3IgcHJvcGVydHkgd2l0aG91dCBcXCdhd2FpdFxcJy4nLFxuICAgIG1pc3NpbmdBd2FpdE9uU25hcHNob3RQcm9wZXJ0eTogICAgICdZb3UgdXNlZCBhIERPTSBzbmFwc2hvdCBwcm9wZXJ0eSB3aXRob3V0IFxcJ2F3YWl0XFwnLiBUaGUgcHJvcGVydHkgdmFsdWUgaXMgYXNzaWduZWQgd2hlbiB0aGUgc25hcHNob3QgaXMgcmVzb2x2ZWQuIElmIHlvdSBuZWVkIHRvIHVzZSB0aGUgcHJvcGVydHkgdmFsdWUsIHVzZSBcXCdhd2FpdFxcJyB0byByZXNvbHZlIHRoZSBQcm9taXNlLicsXG4gICAgcmV0cnlUZXN0UGFnZXNJc05vdFN1cHBvcnRlZDogICAgICAgJ0Nhbm5vdCBlbmFibGUgdGhlIFxcJ3JldHJ5VGVzdFBhZ2VzXFwnIG9wdGlvbiBpbiBcInticm93c2VyQWxpYXN9XCIuIFBsZWFzZSBlbnN1cmUgdGhhdCB5b3VyIHZlcnNpb24gb2YgXCJ7YnJvd3NlckFsaWFzfVwiIHN1cHBvcnRzIHRoZSBTZXJ2aWNlIFdvcmtlciBBUEkgKGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvV2ViL0FQSS9TZXJ2aWNlX1dvcmtlcl9BUEkpLlxcbicsXG4gICAgYnJvd3NlclByb3ZpZGVyRHJvcE9mUGVyZm9ybWFuY2U6ICAgJ1dlIGRldGVjdGVkIFxcJ3ticm93c2VyTmFtZX1cXCcgcnVucyBzbG93bHkuIFRyeSB0byBmcmVlIHVwIG9yIGFsbG9jYXRlIG1vcmUgc3lzdGVtIHJlc291cmNlcyBvbiBpdHMgaG9zdCBtYWNoaW5lLicsXG4gICAgdGVzdHNDb21waWxhdGlvblRha2VzVG9vTG9uZzogICAgICAgJ1Rlc3RzIHRvb2sgdG9vIGxvbmcgdG8gY29tcGlsZSAoe2NvbXBpbGVUaW1lfSkuIEVuc3VyZSB0aGUgdGVzdCBjb2RlIGhhcyBubyBleGNlc3NpdmUgaW1wb3J0cy4nLFxuICAgIGRlcHJlY2F0ZWRBUEk6ICAgICAgICAgICAgICAgICAgICAgICd7QVBJfSBpcyBkZXByZWNhdGVkIGFuZCB3aWxsIGJlIHJlbW92ZWQgaW4gdGhlIG5leHQgbWFqb3IgcmVsZWFzZS4gVXNlIHtyZXBsYWNlbWVudH0gaW5zdGVhZC4nXG59O1xuXG4iXX0=
@@ -1,109 +1,120 @@
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.CommandFormatter = void 0;
7
- const lodash_1 = require("lodash");
8
- const observation_1 = require("../../test-run/commands/observation");
9
- const actions_1 = require("../../test-run/commands/actions");
10
- const replicator_1 = require("../../client-functions/replicator");
11
- const diff_1 = __importDefault(require("../../utils/diff"));
12
- const options_1 = require("../../test-run/commands/options");
13
- function isCommandOptions(obj) {
14
- return obj instanceof options_1.ActionOptions || obj instanceof options_1.ResizeToFitDeviceOptions || obj instanceof options_1.AssertionOptions;
15
- }
16
- class CommandFormatter {
17
- constructor(command, result) {
18
- this._elements = [];
19
- this._command = command;
20
- this._result = result;
21
- }
22
- format() {
23
- const formattedCommand = { type: this._command.type };
24
- if (this._command instanceof observation_1.ExecuteSelectorCommand)
25
- formattedCommand.selector = this._prepareSelector(this._command, 'selector');
26
- else if (this._command instanceof observation_1.ExecuteClientFunctionCommand)
27
- formattedCommand.clientFn = this._prepareClientFunction(this._command);
28
- else if (this._command instanceof actions_1.UseRoleCommand)
29
- formattedCommand.role = this._prepareRole(this._command);
30
- else if (this._command instanceof actions_1.NavigateToCommand)
31
- formattedCommand.url = this._prepareUrl(this._command);
32
- else if (this._command instanceof actions_1.SetNativeDialogHandlerCommand)
33
- formattedCommand.dialogHandler = this._prepareDialogHandler(this._command);
34
- else
35
- this._assignProperties(this._command, formattedCommand);
36
- return formattedCommand;
37
- }
38
- _getElementByPropertyName(propertyName) {
39
- this._ensureSelectorElements();
40
- switch (propertyName) {
41
- case 'selector':
42
- case 'startSelector':
43
- return this._elements[0];
44
- case 'endSelector':
45
- case 'destinationSelector':
46
- return this._elements[1];
47
- }
48
- return this._elements[0];
49
- }
50
- _prepareSelector(command, propertyName) {
51
- const selectorChain = command.apiFnChain;
52
- const expression = selectorChain.join('');
53
- const result = { expression };
54
- let element = null;
55
- if (this._result)
56
- element = this._getElementByPropertyName(propertyName);
57
- if (element)
58
- result.element = element;
59
- if (command.timeout)
60
- result.timeout = command.timeout;
61
- return result;
62
- }
63
- _prepareClientFunction(command) {
64
- return {
65
- code: command.fnCode,
66
- args: command.args[0]
67
- };
68
- }
69
- _prepareDialogHandler(command) {
70
- return this._prepareClientFunction(command.dialogHandler);
71
- }
72
- _prepareRole(command) {
73
- const { loginUrl, opts, phase } = command.role;
74
- return { loginUrl, options: opts, phase };
75
- }
76
- _prepareUrl(command) {
77
- return command.url;
78
- }
79
- _assignProperties(command, formattedCommand) {
80
- if (!this._command._getAssignableProperties)
81
- return;
82
- const sourceProperties = this._command._getAssignableProperties().map(prop => prop.name);
83
- sourceProperties.forEach((key) => {
84
- const property = this._command[key];
85
- if (property instanceof observation_1.ExecuteSelectorCommand)
86
- formattedCommand[key] = this._prepareSelector(property, key);
87
- else if (isCommandOptions(property)) {
88
- const modifiedOptions = CommandFormatter._getModifiedOptions(property);
89
- if (!lodash_1.isEmpty(modifiedOptions))
90
- formattedCommand[key] = modifiedOptions;
91
- }
92
- else
93
- formattedCommand[key] = property;
94
- });
95
- }
96
- _ensureSelectorElements() {
97
- if (!this._result || this._elements.length)
98
- return;
99
- const decoded = replicator_1.createReplicator(new replicator_1.SelectorNodeTransform()).decode(this._result);
100
- this._elements = Array.isArray(decoded) ? decoded : [decoded];
101
- }
102
- static _getModifiedOptions(commandOptions) {
103
- const constructor = commandOptions.constructor;
104
- const defaultOptions = new constructor();
105
- return diff_1.default(defaultOptions, commandOptions);
106
- }
107
- }
108
- exports.CommandFormatter = CommandFormatter;
109
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbWFuZC1mb3JtYXR0ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvcmVwb3J0ZXIvY29tbWFuZC9jb21tYW5kLWZvcm1hdHRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSxtQ0FBaUM7QUFDakMscUVBQTJHO0FBQzNHLDZEQUl5QztBQUV6QyxrRUFBNEY7QUFRNUYsNERBQW9DO0FBRXBDLDZEQUl5QztBQUd6QyxTQUFTLGdCQUFnQixDQUFFLEdBQVc7SUFDbEMsT0FBTyxHQUFHLFlBQVksdUJBQWEsSUFBSSxHQUFHLFlBQVksa0NBQXdCLElBQUksR0FBRyxZQUFZLDBCQUFnQixDQUFDO0FBQ3RILENBQUM7QUFFRCxNQUFhLGdCQUFnQjtJQUt6QixZQUFvQixPQUFnQixFQUFFLE1BQWU7UUFKN0MsY0FBUyxHQUFrQixFQUFFLENBQUM7UUFLbEMsSUFBSSxDQUFDLFFBQVEsR0FBRyxPQUFPLENBQUM7UUFDeEIsSUFBSSxDQUFDLE9BQU8sR0FBRyxNQUFNLENBQUM7SUFDMUIsQ0FBQztJQUVNLE1BQU07UUFDVCxNQUFNLGdCQUFnQixHQUFxQixFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxDQUFDO1FBRXhFLElBQUksSUFBSSxDQUFDLFFBQVEsWUFBWSxvQ0FBc0I7WUFDL0MsZ0JBQWdCLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLFVBQVUsQ0FBQyxDQUFDO2FBQzVFLElBQUksSUFBSSxDQUFDLFFBQVEsWUFBWSwwQ0FBNEI7WUFDMUQsZ0JBQWdCLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7YUFDdEUsSUFBSSxJQUFJLENBQUMsUUFBUSxZQUFZLHdCQUFjO1lBQzVDLGdCQUFnQixDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsWUFBWSxD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QUM7Q0FDSjtBQTFIRCw0Q0EwSEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpc0VtcHR5IH0gZnJvbSAnbG9kYXNoJztcbmltcG9ydCB7IEV4ZWN1dGVTZWxlY3RvckNvbW1hbmQsIEV4ZWN1dGVDbGllbnRGdW5jdGlvbkNvbW1hbmQgfSBmcm9tICcuLi8uLi90ZXN0LXJ1bi9jb21tYW5kcy9vYnNlcnZhdGlvbic7XG5pbXBvcnQge1xuICAgIE5hdmlnYXRlVG9Db21tYW5kLFxuICAgIFNldE5hdGl2ZURpYWxvZ0hhbmRsZXJDb21tYW5kLFxuICAgIFVzZVJvbGVDb21tYW5kXG59IGZyb20gJy4uLy4uL3Rlc3QtcnVuL2NvbW1hbmRzL2FjdGlvbnMnO1xuXG5pbXBvcnQgeyBjcmVhdGVSZXBsaWNhdG9yLCBTZWxlY3Rvck5vZGVUcmFuc2Zvcm0gfSBmcm9tICcuLi8uLi9jbGllbnQtZnVuY3Rpb25zL3JlcGxpY2F0b3InO1xuaW1wb3J0IHtcbiAgICBDb21tYW5kLFxuICAgIEZvcm1hdHRlZENvbW1hbmQsXG4gICAgU2VsZWN0b3JJbmZvXG59IGZyb20gJy4vaW50ZXJmYWNlcyc7XG5cbmltcG9ydCB7IERpY3Rpb25hcnkgfSBmcm9tICcuLi8uLi9jb25maWd1cmF0aW9uL2ludGVyZmFjZXMnO1xuaW1wb3J0IGRpZmYgZnJvbSAnLi4vLi4vdXRpbHMvZGlmZic7XG5cbmltcG9ydCB7XG4gICAgQWN0aW9uT3B0aW9ucyxcbiAgICBSZXNpemVUb0ZpdERldmljZU9wdGlvbnMsXG4gICAgQXNzZXJ0aW9uT3B0aW9uc1xufSBmcm9tICcuLi8uLi90ZXN0LXJ1bi9jb21tYW5kcy9vcHRpb25zJztcblxuXG5mdW5jdGlvbiBpc0NvbW1hbmRPcHRpb25zIChvYmo6IG9iamVjdCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBvYmogaW5zdGFuY2VvZiBBY3Rpb25PcHRpb25zIHx8IG9iaiBpbnN0YW5jZW9mIFJlc2l6ZVRvRml0RGV2aWNlT3B0aW9ucyB8fCBvYmogaW5zdGFuY2VvZiBBc3NlcnRpb25PcHRpb25zO1xufVxuXG5leHBvcnQgY2xhc3MgQ29tbWFuZEZvcm1hdHRlciB7XG4gICAgcHJpdmF0ZSBfZWxlbWVudHM6IEhUTUxFbGVtZW50W10gPSBbXTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IF9jb21tYW5kOiBDb21tYW5kO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgX3Jlc3VsdDogdW5rbm93bjtcblxuICAgIHB1YmxpYyBjb25zdHJ1Y3RvciAoY29tbWFuZDogQ29tbWFuZCwgcmVzdWx0OiB1bmtub3duKSB7XG4gICAgICAgIHRoaXMuX2NvbW1hbmQgPSBjb21tYW5kO1xuICAgICAgICB0aGlzLl9yZXN1bHQgPSByZXN1bHQ7XG4gICAgfVxuXG4gICAgcHVibGljIGZvcm1hdCAoKTogRm9ybWF0dGVkQ29tbWFuZCB7XG4gICAgICAgIGNvbnN0IGZvcm1hdHRlZENvbW1hbmQ6IEZvcm1hdHRlZENvbW1hbmQgPSB7IHR5cGU6IHRoaXMuX2NvbW1hbmQudHlwZSB9O1xuXG4gICAgICAgIGlmICh0aGlzLl9jb21tYW5kIGluc3RhbmNlb2YgRXhlY3V0ZVNlbGVjdG9yQ29tbWFuZClcbiAgICAgICAgICAgIGZvcm1hdHRlZENvbW1hbmQuc2VsZWN0b3IgPSB0aGlzLl9wcmVwYXJlU2VsZWN0b3IodGhpcy5fY29tbWFuZCwgJ3NlbGVjdG9yJyk7XG4gICAgICAgIGVsc2UgaWYgKHRoaXMuX2NvbW1hbmQgaW5zdGFuY2VvZiBFeGVjdXRlQ2xpZW50RnVuY3Rpb25Db21tYW5kKVxuICAgICAgICAgICAgZm9ybWF0dGVkQ29tbWFuZC5jbGllbnRGbiA9IHRoaXMuX3ByZXBhcmVDbGllbnRGdW5jdGlvbih0aGlzLl9jb21tYW5kKTtcbiAgICAgICAgZWxzZSBpZiAodGhpcy5fY29tbWFuZCBpbnN0YW5jZW9mIFVzZVJvbGVDb21tYW5kKVxuICAgICAgICAgICAgZm9ybWF0dGVkQ29tbWFuZC5yb2xlID0gdGhpcy5fcHJlcGFyZVJvbGUodGhpcy5fY29tbWFuZCk7XG4gICAgICAgIGVsc2UgaWYgKHRoaXMuX2NvbW1hbmQgaW5zdGFuY2VvZiBOYXZpZ2F0ZVRvQ29tbWFuZClcbiAgICAgICAgICAgIGZvcm1hdHRlZENvbW1hbmQudXJsID0gdGhpcy5fcHJlcGFyZVVybCh0aGlzLl9jb21tYW5kKTtcbiAgICAgICAgZWxzZSBpZiAodGhpcy5fY29tbWFuZCBpbnN0YW5jZW9mIFNldE5hdGl2ZURpYWxvZ0hhbmRsZXJDb21tYW5kKVxuICAgICAgICAgICAgZm9ybWF0dGVkQ29tbWFuZC5kaWFsb2dIYW5kbGVyID0gdGhpcy5fcHJlcGFyZURpYWxvZ0hhbmRsZXIodGhpcy5fY29tbWFuZCk7XG4gICAgICAgIGVsc2VcbiAgICAgICAgICAgIHRoaXMuX2Fzc2lnblByb3BlcnRpZXModGhpcy5fY29tbWFuZCwgZm9ybWF0dGVkQ29tbWFuZCk7XG5cbiAgICAgICAgcmV0dXJuIGZvcm1hdHRlZENvbW1hbmQ7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfZ2V0RWxlbWVudEJ5UHJvcGVydHlOYW1lIChwcm9wZXJ0eU5hbWU6IHN0cmluZyk6IEhUTUxFbGVtZW50IHtcbiAgICAgICAgdGhpcy5fZW5zdXJlU2VsZWN0b3JFbGVtZW50cygpO1xuXG4gICAgICAgIHN3aXRjaCAocHJvcGVydHlOYW1lKSB7XG4gICAgICAgICAgICBjYXNlICdzZWxlY3Rvcic6XG4gICAgICAgICAgICBjYXNlICdzdGFydFNlbGVjdG9yJzpcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5fZWxlbWVudHNbMF07XG4gICAgICAgICAgICBjYXNlICdlbmRTZWxlY3Rvcic6XG4gICAgICAgICAgICBjYXNlICdkZXN0aW5hdGlvblNlbGVjdG9yJzpcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5fZWxlbWVudHNbMV07XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdGhpcy5fZWxlbWVudHNbMF07XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfcHJlcGFyZVNlbGVjdG9yIChjb21tYW5kOiBDb21tYW5kLCBwcm9wZXJ0eU5hbWU6IHN0cmluZyk6IFNlbGVjdG9ySW5mbyB7XG4gICAgICAgIGNvbnN0IHNlbGVjdG9yQ2hhaW4gPSBjb21tYW5kLmFwaUZuQ2hhaW4gYXMgc3RyaW5nW107XG4gICAgICAgIGNvbnN0IGV4cHJlc3Npb24gICAgPSBzZWxlY3RvckNoYWluLmpvaW4oJycpO1xuXG4gICAgICAgIGNvbnN0IHJlc3VsdDogU2VsZWN0b3JJbmZvID0geyBleHByZXNzaW9uIH07XG5cbiAgICAgICAgbGV0IGVsZW1lbnQgPSBudWxsO1xuXG4gICAgICAgIGlmICh0aGlzLl9yZXN1bHQpXG4gICAgICAgICAgICBlbGVtZW50ID0gdGhpcy5fZ2V0RWxlbWVudEJ5UHJvcGVydHlOYW1lKHByb3BlcnR5TmFtZSk7XG5cbiAgICAgICAgaWYgKGVsZW1lbnQpXG4gICAgICAgICAgICByZXN1bHQuZWxlbWVudCA9IGVsZW1lbnQ7XG5cbiAgICAgICAgaWYgKGNvbW1hbmQudGltZW91dClcbiAgICAgICAgICAgIHJlc3VsdC50aW1lb3V0ID0gY29tbWFuZC50aW1lb3V0O1xuXG4gICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfcHJlcGFyZUNsaWVudEZ1bmN0aW9uIChjb21tYW5kOiBDb21tYW5kKTogb2JqZWN0IHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGNvZGU6IGNvbW1hbmQuZm5Db2RlLFxuICAgICAgICAgICAgYXJnczogY29tbWFuZC5hcmdzWzBdXG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfcHJlcGFyZURpYWxvZ0hhbmRsZXIgKGNvbW1hbmQ6IENvbW1hbmQpOiBvYmplY3Qge1xuICAgICAgICByZXR1cm4gdGhpcy5fcHJlcGFyZUNsaWVudEZ1bmN0aW9uKGNvbW1hbmQuZGlhbG9nSGFuZGxlcik7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfcHJlcGFyZVJvbGUgKGNvbW1hbmQ6IENvbW1hbmQpOiBvYmplY3Qge1xuICAgICAgICBjb25zdCB7IGxvZ2luVXJsLCBvcHRzLCBwaGFzZSB9ID0gY29tbWFuZC5yb2xlO1xuXG4gICAgICAgIHJldHVybiB7IGxvZ2luVXJsLCBvcHRpb25zOiBvcHRzLCBwaGFzZSB9O1xuICAgIH1cblxuICAgIHByaXZhdGUgX3ByZXBhcmVVcmwgKGNvbW1hbmQ6IENvbW1hbmQpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gY29tbWFuZC51cmw7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfYXNzaWduUHJvcGVydGllcyAoY29tbWFuZDogQ29tbWFuZCwgZm9ybWF0dGVkQ29tbWFuZDogRm9ybWF0dGVkQ29tbWFuZCk6IHZvaWQge1xuICAgICAgICBpZiAoIXRoaXMuX2NvbW1hbmQuX2dldEFzc2lnbmFibGVQcm9wZXJ0aWVzKVxuICAgICAgICAgICAgcmV0dXJuO1xuXG4gICAgICAgIGNvbnN0IHNvdXJjZVByb3BlcnRpZXMgPSB0aGlzLl9jb21tYW5kLl9nZXRBc3NpZ25hYmxlUHJvcGVydGllcygpLm1hcChwcm9wID0+IHByb3AubmFtZSk7XG5cbiAgICAgICAgc291cmNlUHJvcGVydGllcy5mb3JFYWNoKChrZXk6IHN0cmluZykgPT4ge1xuICAgICAgICAgICAgY29uc3QgcHJvcGVydHkgPSB0aGlzLl9jb21tYW5kW2tleV07XG5cbiAgICAgICAgICAgIGlmIChwcm9wZXJ0eSBpbnN0YW5jZW9mIEV4ZWN1dGVTZWxlY3RvckNvbW1hbmQpXG4gICAgICAgICAgICAgICAgZm9ybWF0dGVkQ29tbWFuZFtrZXldID0gdGhpcy5fcHJlcGFyZVNlbGVjdG9yKHByb3BlcnR5LCBrZXkpO1xuICAgICAgICAgICAgZWxzZSBpZiAoaXNDb21tYW5kT3B0aW9ucyhwcm9wZXJ0eSkpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBtb2RpZmllZE9wdGlvbnMgPSBDb21tYW5kRm9ybWF0dGVyLl9nZXRNb2RpZmllZE9wdGlvbnMocHJvcGVydHkpO1xuXG4gICAgICAgICAgICAgICAgaWYgKCFpc0VtcHR5KG1vZGlmaWVkT3B0aW9ucykpXG4gICAgICAgICAgICAgICAgICAgIGZvcm1hdHRlZENvbW1hbmRba2V5XSA9IG1vZGlmaWVkT3B0aW9ucztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgICAgICBmb3JtYXR0ZWRDb21tYW5kW2tleV0gPSBwcm9wZXJ0eTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfZW5zdXJlU2VsZWN0b3JFbGVtZW50cyAoKTogdm9pZCB7XG4gICAgICAgIGlmICghdGhpcy5fcmVzdWx0IHx8IHRoaXMuX2VsZW1lbnRzLmxlbmd0aClcbiAgICAgICAgICAgIHJldHVybjtcblxuICAgICAgICBjb25zdCBkZWNvZGVkID0gY3JlYXRlUmVwbGljYXRvcihuZXcgU2VsZWN0b3JOb2RlVHJhbnNmb3JtKCkpLmRlY29kZSh0aGlzLl9yZXN1bHQpO1xuXG4gICAgICAgIHRoaXMuX2VsZW1lbnRzID0gQXJyYXkuaXNBcnJheShkZWNvZGVkKSA/IGRlY29kZWQgOiBbZGVjb2RlZF07XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzdGF0aWMgX2dldE1vZGlmaWVkT3B0aW9ucyAoY29tbWFuZE9wdGlvbnM6IG9iamVjdCk6IERpY3Rpb25hcnk8b2JqZWN0PiB8IG51bGwge1xuICAgICAgICBjb25zdCBjb25zdHJ1Y3RvciAgICA9IGNvbW1hbmRPcHRpb25zLmNvbnN0cnVjdG9yIGFzIE9iamVjdENvbnN0cnVjdG9yO1xuICAgICAgICBjb25zdCBkZWZhdWx0T3B0aW9ucyA9IG5ldyBjb25zdHJ1Y3RvcigpO1xuXG4gICAgICAgIHJldHVybiBkaWZmKGRlZmF1bHRPcHRpb25zIGFzIERpY3Rpb25hcnk8b2JqZWN0PiwgY29tbWFuZE9wdGlvbnMgYXMgRGljdGlvbmFyeTxvYmplY3Q+KTtcbiAgICB9XG59XG4iXX0=
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.CommandFormatter = void 0;
7
+ const lodash_1 = require("lodash");
8
+ const observation_1 = require("../../test-run/commands/observation");
9
+ const actions_1 = require("../../test-run/commands/actions");
10
+ const replicator_1 = require("../../client-functions/replicator");
11
+ const diff_1 = __importDefault(require("../../utils/diff"));
12
+ const options_1 = require("../../test-run/commands/options");
13
+ const CONFIDENTIAL_INFO_PLACEHOLDER = '********';
14
+ function isCommandOptions(obj) {
15
+ return obj instanceof options_1.ActionOptions || obj instanceof options_1.ResizeToFitDeviceOptions || obj instanceof options_1.AssertionOptions;
16
+ }
17
+ class CommandFormatter {
18
+ constructor(command, result) {
19
+ this._elements = [];
20
+ this._command = command;
21
+ this._result = result;
22
+ }
23
+ format() {
24
+ const formattedCommand = { type: this._command.type };
25
+ if (this._command instanceof observation_1.ExecuteSelectorCommand)
26
+ formattedCommand.selector = this._prepareSelector(this._command, 'selector');
27
+ else if (this._command instanceof observation_1.ExecuteClientFunctionCommand)
28
+ formattedCommand.clientFn = this._prepareClientFunction(this._command);
29
+ else if (this._command instanceof actions_1.UseRoleCommand)
30
+ formattedCommand.role = this._prepareRole(this._command);
31
+ else if (this._command instanceof actions_1.NavigateToCommand)
32
+ formattedCommand.url = this._prepareUrl(this._command);
33
+ else if (this._command instanceof actions_1.SetNativeDialogHandlerCommand)
34
+ formattedCommand.dialogHandler = this._prepareDialogHandler(this._command);
35
+ else
36
+ this._assignProperties(this._command, formattedCommand);
37
+ this._maskConfidentialInfo(formattedCommand);
38
+ return formattedCommand;
39
+ }
40
+ _maskConfidentialInfo(command) {
41
+ var _a;
42
+ if (!((_a = command.options) === null || _a === void 0 ? void 0 : _a.confidential))
43
+ return;
44
+ if (this._command instanceof actions_1.TypeTextCommand)
45
+ command.text = CONFIDENTIAL_INFO_PLACEHOLDER;
46
+ else if (this._command instanceof actions_1.PressKeyCommand)
47
+ command.keys = CONFIDENTIAL_INFO_PLACEHOLDER;
48
+ }
49
+ _getElementByPropertyName(propertyName) {
50
+ this._ensureSelectorElements();
51
+ switch (propertyName) {
52
+ case 'selector':
53
+ case 'startSelector':
54
+ return this._elements[0];
55
+ case 'endSelector':
56
+ case 'destinationSelector':
57
+ return this._elements[1];
58
+ }
59
+ return this._elements[0];
60
+ }
61
+ _prepareSelector(command, propertyName) {
62
+ const selectorChain = command.apiFnChain;
63
+ const expression = selectorChain.join('');
64
+ const result = { expression };
65
+ let element = null;
66
+ if (this._result)
67
+ element = this._getElementByPropertyName(propertyName);
68
+ if (element)
69
+ result.element = element;
70
+ if (command.timeout)
71
+ result.timeout = command.timeout;
72
+ return result;
73
+ }
74
+ _prepareClientFunction(command) {
75
+ return {
76
+ code: command.fnCode,
77
+ args: command.args[0]
78
+ };
79
+ }
80
+ _prepareDialogHandler(command) {
81
+ return this._prepareClientFunction(command.dialogHandler);
82
+ }
83
+ _prepareRole(command) {
84
+ const { loginUrl, opts, phase } = command.role;
85
+ return { loginUrl, options: opts, phase };
86
+ }
87
+ _prepareUrl(command) {
88
+ return command.url;
89
+ }
90
+ _assignProperties(command, formattedCommand) {
91
+ if (!this._command._getAssignableProperties)
92
+ return;
93
+ const sourceProperties = this._command._getAssignableProperties().map(prop => prop.name);
94
+ sourceProperties.forEach((key) => {
95
+ const property = this._command[key];
96
+ if (property instanceof observation_1.ExecuteSelectorCommand)
97
+ formattedCommand[key] = this._prepareSelector(property, key);
98
+ else if (isCommandOptions(property)) {
99
+ const modifiedOptions = CommandFormatter._getModifiedOptions(property);
100
+ if (!lodash_1.isEmpty(modifiedOptions))
101
+ formattedCommand[key] = modifiedOptions;
102
+ }
103
+ else
104
+ formattedCommand[key] = property;
105
+ });
106
+ }
107
+ _ensureSelectorElements() {
108
+ if (!this._result || this._elements.length)
109
+ return;
110
+ const decoded = replicator_1.createReplicator(new replicator_1.SelectorNodeTransform()).decode(this._result);
111
+ this._elements = Array.isArray(decoded) ? decoded : [decoded];
112
+ }
113
+ static _getModifiedOptions(commandOptions) {
114
+ const constructor = commandOptions.constructor;
115
+ const defaultOptions = new constructor();
116
+ return diff_1.default(defaultOptions, commandOptions);
117
+ }
118
+ }
119
+ exports.CommandFormatter = CommandFormatter;
120
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbWFuZC1mb3JtYXR0ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvcmVwb3J0ZXIvY29tbWFuZC9jb21tYW5kLWZvcm1hdHRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSxtQ0FBaUM7QUFDakMscUVBQTJHO0FBQzNHLDZEQU15QztBQUV6QyxrRUFBNEY7QUFRNUYsNERBQW9DO0FBRXBDLDZEQUl5QztBQUd6QyxNQUFNLDZCQUE2QixHQUFHLFVBQVUsQ0FBQztBQUVqRCxTQUFTLGdCQUFnQixDQUFFLEdBQVc7SUFDbEMsT0FBTyxHQUFHLFlBQVksdUJBQWEsSUFBSSxHQUFHLFlBQVksa0NBQXdCLElBQUksR0FBRyxZQUFZLDBCQUFnQixDQUFDO0FBQ3RILENBQUM7QUFFRCxNQUFhLGdCQUFnQjtJQUt6QixZQUFvQixPQUFnQixFQUFFLE1BQWU7UUFKN0MsY0FBUyxHQUFrQixFQUFFLENBQUM7UUFLbEMsSUFBSSxDQUFDLFFBQVEsR0FBRyxPQUFPLENBQUM7UUFDeEIsSUFBSSxDQUFDLE9BQU8sR0FBRyxNQUFNLENBQUM7SUFDMUIsQ0FBQztJQUVNLE1BQU07UUFDVCxNQUFNLGdCQUFnQixHQUFxQixFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxDQUFDO1FBRXhFLElBQUksSUFBSSxDQUFDLFFBQVEsWUFBWSxvQ0FBc0I7WUFDL0MsZ0JBQWdCLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLFVBQVUsQ0FBQyxDQUFDO2FBQzVFLElBQUksSUFBSSxDQUFDLFFBQVEsWUFBWSwwQ0FBNEI7WUFDMUQsZ0JBQWdCLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7YUFDdEUsSUFBSSxJQUFJLENBQUMsUUFBUSxZQUFZLHdCQUFjO1lBQzVDLGdCQUFn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LElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUVuRixJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNsRSxDQUFDO0lBRU8sTUFBTSxDQUFDLG1CQUFtQixDQUFFLGNBQXNCO1FBQ3RELE1BQU0sV0FBVyxHQUFNLGNBQWMsQ0FBQyxXQUFnQyxDQUFDO1FBQ3ZFLE1BQU0sY0FBYyxHQUFHLElBQUksV0FBVyxFQUFFLENBQUM7UUFFekMsT0FBTyxjQUFJLENBQUMsY0FBb0MsRUFBRSxjQUFvQyxDQUFDLENBQUM7SUFDNUYsQ0FBQztDQUNKO0FBdElELDRDQXNJQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGlzRW1wdHkgfSBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0IHsgRXhlY3V0ZVNlbGVjdG9yQ29tbWFuZCwgRXhlY3V0ZUNsaWVudEZ1bmN0aW9uQ29tbWFuZCB9IGZyb20gJy4uLy4uL3Rlc3QtcnVuL2NvbW1hbmRzL29ic2VydmF0aW9uJztcbmltcG9ydCB7XG4gICAgTmF2aWdhdGVUb0NvbW1hbmQsXG4gICAgUHJlc3NLZXlDb21tYW5kLFxuICAgIFNldE5hdGl2ZURpYWxvZ0hhbmRsZXJDb21tYW5kLFxuICAgIFR5cGVUZXh0Q29tbWFuZCxcbiAgICBVc2VSb2xlQ29tbWFuZFxufSBmcm9tICcuLi8uLi90ZXN0LXJ1bi9jb21tYW5kcy9hY3Rpb25zJztcblxuaW1wb3J0IHsgY3JlYXRlUmVwbGljYXRvciwgU2VsZWN0b3JOb2RlVHJhbnNmb3JtIH0gZnJvbSAnLi4vLi4vY2xpZW50LWZ1bmN0aW9ucy9yZXBsaWNhdG9yJztcbmltcG9ydCB7XG4gICAgQ29tbWFuZCxcbiAgICBGb3JtYXR0ZWRDb21tYW5kLFxuICAgIFNlbGVjdG9ySW5mb1xufSBmcm9tICcuL2ludGVyZmFjZXMnO1xuXG5pbXBvcnQgeyBEaWN0aW9uYXJ5IH0gZnJvbSAnLi4vLi4vY29uZmlndXJhdGlvbi9pbnRlcmZhY2VzJztcbmltcG9ydCBkaWZmIGZyb20gJy4uLy4uL3V0aWxzL2RpZmYnO1xuXG5pbXBvcnQge1xuICAgIEFjdGlvbk9wdGlvbnMsXG4gICAgUmVzaXplVG9GaXREZXZpY2VPcHRpb25zLFxuICAgIEFzc2VydGlvbk9wdGlvbnNcbn0gZnJvbSAnLi4vLi4vdGVzdC1ydW4vY29tbWFuZHMvb3B0aW9ucyc7XG5cblxuY29uc3QgQ09ORklERU5USUFMX0lORk9fUExBQ0VIT0xERVIgPSAnKioqKioqKionO1xuXG5mdW5jdGlvbiBpc0NvbW1hbmRPcHRpb25zIChvYmo6IG9iamVjdCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBvYmogaW5zdGFuY2VvZiBBY3Rpb25PcHRpb25zIHx8IG9iaiBpbnN0YW5jZW9mIFJlc2l6ZVRvRml0RGV2aWNlT3B0aW9ucyB8fCBvYmogaW5zdGFuY2VvZiBBc3NlcnRpb25PcHRpb25zO1xufVxuXG5leHBvcnQgY2xhc3MgQ29tbWFuZEZvcm1hdHRlciB7XG4gICAgcHJpdmF0ZSBfZWxlbWVudHM6IEhUTUxFbGVtZW50W10gPSBbXTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IF9jb21tYW5kOiBDb21tYW5kO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgX3Jlc3VsdDogdW5rbm93bjtcblxuICAgIHB1YmxpYyBjb25zdHJ1Y3RvciAoY29tbWFuZDogQ29tbWFuZCwgcmVzdWx0OiB1bmtub3duKSB7XG4gICAgICAgIHRoaXMuX2NvbW1hbmQgPSBjb21tYW5kO1xuICAgICAgICB0aGlzLl9yZXN1bHQgPSByZXN1bHQ7XG4gICAgfVxuXG4gICAgcHVibGljIGZvcm1hdCAoKTogRm9ybWF0dGVkQ29tbWFuZCB7XG4gICAgICAgIGNvbnN0IGZvcm1hdHRlZENvbW1hbmQ6IEZvcm1hdHRlZENvbW1hbmQgPSB7IHR5cGU6IHRoaXMuX2NvbW1hbmQudHlwZSB9O1xuXG4gICAgICAgIGlmICh0aGlzLl9jb21tYW5kIGluc3RhbmNlb2YgRXhlY3V0ZVNlbGVjdG9yQ29tbWFuZClcbiAgICAgICAgICAgIGZvcm1hdHRlZENvbW1hbmQuc2VsZWN0b3IgPSB0aGlzLl9wcmVwYXJlU2VsZWN0b3IodGhpcy5fY29tbWFuZCwgJ3NlbGVjdG9yJyk7XG4gICAgICAgIGVsc2UgaWYgKHRoaXMuX2NvbW1hbmQgaW5zdGFuY2VvZiBFeGVjdXRlQ2xpZW50RnVuY3Rpb25Db21tYW5kKVxuICAgICAgICAgICAgZm9ybWF0dGVkQ29tbWFuZC5jbGllbnRGbiA9IHRoaXMuX3ByZXBhcmVDbGllbnRGdW5jdGlvbih0aGlzLl9jb21tYW5kKTtcbiAgICAgICAgZWxzZSBpZiAodGhpcy5fY29tbWFuZCBpbnN0YW5jZW9mIFVzZVJvbGVDb21tYW5kKVxuICAgICAgICAgICAgZm9ybWF0dGVkQ29tbWFuZC5yb2xlID0gdGhpcy5fcHJlcGFyZVJvbGUodGhpcy5fY29tbWFuZCk7XG4gICAgICAgIGVsc2UgaWYgKHRoaXMuX2NvbW1hbmQgaW5zdGFuY2VvZiBOYXZpZ2F0ZVRvQ29tbWFuZClcbiAgICAgICAgICAgIGZvcm1hdHRlZENvbW1hbmQudXJsID0gdGhpcy5fcHJlcGFyZVVybCh0aGlzLl9jb21tYW5kKTtcbiAgICAgICAgZWxzZSBpZiAodGhpcy5fY29tbWFuZCBpbnN0YW5jZW9mIFNldE5hdGl2ZURpYWxvZ0hhbmRsZXJDb21tYW5kKVxuICAgICAgICAgICAgZm9ybWF0dGVkQ29tbWFuZC5kaWFsb2dIYW5kbGVyID0gdGhpcy5fcHJlcGFyZURpYWxvZ0hhbmRsZXIodGhpcy5fY29tbWFuZCk7XG4gICAgICAgIGVsc2VcbiAgICAgICAgICAgIHRoaXMuX2Fzc2lnblByb3BlcnRpZXModGhpcy5fY29tbWFuZCwgZm9ybWF0dGVkQ29tbWFuZCk7XG5cbiAgICAgICAgdGhpcy5fbWFza0NvbmZpZGVudGlhbEluZm8oZm9ybWF0dGVkQ29tbWFuZCk7XG5cbiAgICAgICAgcmV0dXJuIGZvcm1hdHRlZENvbW1hbmQ7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfbWFza0NvbmZpZGVudGlhbEluZm8gKGNvbW1hbmQ6IEZvcm1hdHRlZENvbW1hbmQpOiB2b2lkIHtcbiAgICAgICAgaWYgKCEoY29tbWFuZC5vcHRpb25zIGFzIGFueSk/LmNvbmZpZGVudGlhbClcbiAgICAgICAgICAgIHJldHVybjtcblxuICAgICAgICBpZiAodGhpcy5fY29tbWFuZCBpbnN0YW5jZW9mIFR5cGVUZXh0Q29tbWFuZClcbiAgICAgICAgICAgIGNvbW1hbmQudGV4dCA9IENPTkZJREVOVElBTF9JTkZPX1BMQUNFSE9MREVSO1xuICAgICAgICBlbHNlIGlmICh0aGlzLl9jb21tYW5kIGluc3RhbmNlb2YgUHJlc3NLZXlDb21tYW5kKVxuICAgICAgICAgICAgY29tbWFuZC5rZXlzID0gQ09ORklERU5USUFMX0lORk9fUExBQ0VIT0xERVI7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfZ2V0RWxlbWVudEJ5UHJvcGVydHlOYW1lIChwcm9wZXJ0eU5hbWU6IHN0cmluZyk6IEhUTUxFbGVtZW50IHtcbiAgICAgICAgdGhpcy5fZW5zdXJlU2VsZWN0b3JFbGVtZW50cygpO1xuXG4gICAgICAgIHN3aXRjaCAocHJvcGVydHlOYW1lKSB7XG4gICAgICAgICAgICBjYXNlICdzZWxlY3Rvcic6XG4gICAgICAgICAgICBjYXNlICdzdGFydFNlbGVjdG9yJzpcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5fZWxlbWVudHNbMF07XG4gICAgICAgICAgICBjYXNlICdlbmRTZWxlY3Rvcic6XG4gICAgICAgICAgICBjYXNlICdkZXN0aW5hdGlvblNlbGVjdG9yJzpcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5fZWxlbWVudHNbMV07XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdGhpcy5fZWxlbWVudHNbMF07XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfcHJlcGFyZVNlbGVjdG9yIChjb21tYW5kOiBDb21tYW5kLCBwcm9wZXJ0eU5hbWU6IHN0cmluZyk6IFNlbGVjdG9ySW5mbyB7XG4gICAgICAgIGNvbnN0IHNlbGVjdG9yQ2hhaW4gPSBjb21tYW5kLmFwaUZuQ2hhaW4gYXMgc3RyaW5nW107XG4gICAgICAgIGNvbnN0IGV4cHJlc3Npb24gICAgPSBzZWxlY3RvckNoYWluLmpvaW4oJycpO1xuXG4gICAgICAgIGNvbnN0IHJlc3VsdDogU2VsZWN0b3JJbmZvID0geyBleHByZXNzaW9uIH07XG5cbiAgICAgICAgbGV0IGVsZW1lbnQgPSBudWxsO1xuXG4gICAgICAgIGlmICh0aGlzLl9yZXN1bHQpXG4gICAgICAgICAgICBlbGVtZW50ID0gdGhpcy5fZ2V0RWxlbWVudEJ5UHJvcGVydHlOYW1lKHByb3BlcnR5TmFtZSk7XG5cbiAgICAgICAgaWYgKGVsZW1lbnQpXG4gICAgICAgICAgICByZXN1bHQuZWxlbWVudCA9IGVsZW1lbnQ7XG5cbiAgICAgICAgaWYgKGNvbW1hbmQudGltZW91dClcbiAgICAgICAgICAgIHJlc3VsdC50aW1lb3V0ID0gY29tbWFuZC50aW1lb3V0O1xuXG4gICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfcHJlcGFyZUNsaWVudEZ1bmN0aW9uIChjb21tYW5kOiBDb21tYW5kKTogb2JqZWN0IHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGNvZGU6IGNvbW1hbmQuZm5Db2RlLFxuICAgICAgICAgICAgYXJnczogY29tbWFuZC5hcmdzWzBdXG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfcHJlcGFyZURpYWxvZ0hhbmRsZXIgKGNvbW1hbmQ6IENvbW1hbmQpOiBvYmplY3Qge1xuICAgICAgICByZXR1cm4gdGhpcy5fcHJlcGFyZUNsaWVudEZ1bmN0aW9uKGNvbW1hbmQuZGlhbG9nSGFuZGxlcik7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfcHJlcGFyZVJvbGUgKGNvbW1hbmQ6IENvbW1hbmQpOiBvYmplY3Qge1xuICAgICAgICBjb25zdCB7IGxvZ2luVXJsLCBvcHRzLCBwaGFzZSB9ID0gY29tbWFuZC5yb2xlO1xuXG4gICAgICAgIHJldHVybiB7IGxvZ2luVXJsLCBvcHRpb25zOiBvcHRzLCBwaGFzZSB9O1xuICAgIH1cblxuICAgIHByaXZhdGUgX3ByZXBhcmVVcmwgKGNvbW1hbmQ6IENvbW1hbmQpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gY29tbWFuZC51cmw7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfYXNzaWduUHJvcGVydGllcyAoY29tbWFuZDogQ29tbWFuZCwgZm9ybWF0dGVkQ29tbWFuZDogRm9ybWF0dGVkQ29tbWFuZCk6IHZvaWQge1xuICAgICAgICBpZiAoIXRoaXMuX2NvbW1hbmQuX2dldEFzc2lnbmFibGVQcm9wZXJ0aWVzKVxuICAgICAgICAgICAgcmV0dXJuO1xuXG4gICAgICAgIGNvbnN0IHNvdXJjZVByb3BlcnRpZXMgPSB0aGlzLl9jb21tYW5kLl9nZXRBc3NpZ25hYmxlUHJvcGVydGllcygpLm1hcChwcm9wID0+IHByb3AubmFtZSk7XG5cbiAgICAgICAgc291cmNlUHJvcGVydGllcy5mb3JFYWNoKChrZXk6IHN0cmluZykgPT4ge1xuICAgICAgICAgICAgY29uc3QgcHJvcGVydHkgPSB0aGlzLl9jb21tYW5kW2tleV07XG5cbiAgICAgICAgICAgIGlmIChwcm9wZXJ0eSBpbnN0YW5jZW9mIEV4ZWN1dGVTZWxlY3RvckNvbW1hbmQpXG4gICAgICAgICAgICAgICAgZm9ybWF0dGVkQ29tbWFuZFtrZXldID0gdGhpcy5fcHJlcGFyZVNlbGVjdG9yKHByb3BlcnR5LCBrZXkpO1xuICAgICAgICAgICAgZWxzZSBpZiAoaXNDb21tYW5kT3B0aW9ucyhwcm9wZXJ0eSkpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBtb2RpZmllZE9wdGlvbnMgPSBDb21tYW5kRm9ybWF0dGVyLl9nZXRNb2RpZmllZE9wdGlvbnMocHJvcGVydHkpO1xuXG4gICAgICAgICAgICAgICAgaWYgKCFpc0VtcHR5KG1vZGlmaWVkT3B0aW9ucykpXG4gICAgICAgICAgICAgICAgICAgIGZvcm1hdHRlZENvbW1hbmRba2V5XSA9IG1vZGlmaWVkT3B0aW9ucztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgICAgICBmb3JtYXR0ZWRDb21tYW5kW2tleV0gPSBwcm9wZXJ0eTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfZW5zdXJlU2VsZWN0b3JFbGVtZW50cyAoKTogdm9pZCB7XG4gICAgICAgIGlmICghdGhpcy5fcmVzdWx0IHx8IHRoaXMuX2VsZW1lbnRzLmxlbmd0aClcbiAgICAgICAgICAgIHJldHVybjtcblxuICAgICAgICBjb25zdCBkZWNvZGVkID0gY3JlYXRlUmVwbGljYXRvcihuZXcgU2VsZWN0b3JOb2RlVHJhbnNmb3JtKCkpLmRlY29kZSh0aGlzLl9yZXN1bHQpO1xuXG4gICAgICAgIHRoaXMuX2VsZW1lbnRzID0gQXJyYXkuaXNBcnJheShkZWNvZGVkKSA/IGRlY29kZWQgOiBbZGVjb2RlZF07XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzdGF0aWMgX2dldE1vZGlmaWVkT3B0aW9ucyAoY29tbWFuZE9wdGlvbnM6IG9iamVjdCk6IERpY3Rpb25hcnk8b2JqZWN0PiB8IG51bGwge1xuICAgICAgICBjb25zdCBjb25zdHJ1Y3RvciAgICA9IGNvbW1hbmRPcHRpb25zLmNvbnN0cnVjdG9yIGFzIE9iamVjdENvbnN0cnVjdG9yO1xuICAgICAgICBjb25zdCBkZWZhdWx0T3B0aW9ucyA9IG5ldyBjb25zdHJ1Y3RvcigpO1xuXG4gICAgICAgIHJldHVybiBkaWZmKGRlZmF1bHRPcHRpb25zIGFzIERpY3Rpb25hcnk8b2JqZWN0PiwgY29tbWFuZE9wdGlvbnMgYXMgRGljdGlvbmFyeTxvYmplY3Q+KTtcbiAgICB9XG59XG4iXX0=
@@ -1,10 +1,10 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const command_formatter_1 = require("./command-formatter");
4
- function formatCommand(command, result) {
5
- const commandFormatter = new command_formatter_1.CommandFormatter(command, result);
6
- return commandFormatter.format();
7
- }
8
- exports.default = formatCommand;
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const command_formatter_1 = require("./command-formatter");
4
+ function formatCommand(command, result) {
5
+ const commandFormatter = new command_formatter_1.CommandFormatter(command, result);
6
+ return commandFormatter.format();
7
+ }
8
+ exports.default = formatCommand;
9
9
  module.exports = exports.default;
10
10
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybWF0LWNvbW1hbmQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvcmVwb3J0ZXIvY29tbWFuZC9mb3JtYXQtY29tbWFuZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUNBLDJEQUF1RDtBQUV2RCxTQUF3QixhQUFhLENBQUUsT0FBZ0IsRUFBRSxNQUFlO0lBQ3BFLE1BQU0sZ0JBQWdCLEdBQUcsSUFBSSxvQ0FBZ0IsQ0FBQyxPQUFPLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFFL0QsT0FBTyxnQkFBZ0IsQ0FBQyxNQUFNLEVBQUUsQ0FBQztBQUNyQyxDQUFDO0FBSkQsZ0NBSUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tYW5kLCBGb3JtYXR0ZWRDb21tYW5kIH0gZnJvbSAnLi9pbnRlcmZhY2VzJztcbmltcG9ydCB7IENvbW1hbmRGb3JtYXR0ZXIgfSBmcm9tICcuL2NvbW1hbmQtZm9ybWF0dGVyJztcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gZm9ybWF0Q29tbWFuZCAoY29tbWFuZDogQ29tbWFuZCwgcmVzdWx0OiB1bmtub3duKTogRm9ybWF0dGVkQ29tbWFuZCB7XG4gICAgY29uc3QgY29tbWFuZEZvcm1hdHRlciA9IG5ldyBDb21tYW5kRm9ybWF0dGVyKGNvbW1hbmQsIHJlc3VsdCk7XG5cbiAgICByZXR1cm4gY29tbWFuZEZvcm1hdHRlci5mb3JtYXQoKTtcbn1cbiJdfQ==
@@ -1,3 +1,3 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZXJmYWNlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9yZXBvcnRlci9jb21tYW5kL2ludGVyZmFjZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBpbnRlcmZhY2UgQ29tbWFuZCB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbiAgICBba2V5OiBzdHJpbmddOiBhbnk7XG4gICAgdHlwZTogc3RyaW5nO1xuICAgIF9nZXRBc3NpZ25hYmxlUHJvcGVydGllcygpOiB7IG5hbWU6IHN0cmluZyB9W107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRm9ybWF0dGVkQ29tbWFuZCB7XG4gICAgW2tleTogc3RyaW5nXTogdW5rbm93bjtcbiAgICB0eXBlOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2VsZWN0b3JJbmZvIHtcbiAgICBleHByZXNzaW9uOiBzdHJpbmc7XG4gICAgdGltZW91dD86IG51bWJlcjtcbiAgICBlbGVtZW50PzogSFRNTEVsZW1lbnQ7XG59XG4iXX0=