testcafe 2.3.1 → 2.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +25 -0
- package/LICENSE +1 -1
- package/README.md +40 -46
- package/lib/api/test-controller/execution-context.js +4 -2
- package/lib/browser/connection/gateway.js +43 -1
- package/lib/browser/connection/index.js +24 -10
- package/lib/browser/connection/service-routes.js +3 -1
- package/lib/browser/provider/built-in/dedicated/chrome/index.js +19 -5
- package/lib/browser/provider/index.js +4 -1
- package/lib/client/automation/deps/hammerhead.js +24 -0
- package/lib/client/automation/deps/testcafe-core.js +24 -0
- package/lib/client/automation/index.js +251 -54
- package/lib/client/automation/index.min.js +1 -1
- package/lib/client/automation/playback/press/get-key-info.js +44 -0
- package/lib/client/automation/playback/press/utils.js +142 -0
- package/lib/client/automation/utils/get-key-code.js +15 -0
- package/lib/client/automation/utils/get-key-identifier.js +14 -0
- package/lib/client/automation/utils/is-letter.js +7 -0
- package/lib/client/automation/utils/key-identifier-maps.js +93 -0
- package/lib/client/browser/idle-page/index.js +7 -2
- package/lib/client/core/index.js +46 -3
- package/lib/client/core/index.min.js +1 -1
- package/lib/client/driver/index.js +45 -17
- package/lib/client/driver/index.min.js +1 -1
- package/lib/client/test-run/index.js.mustache +34 -30
- package/lib/client/ui/index.js +3230 -48
- package/lib/client/ui/index.min.js +1 -1
- package/lib/client/ui/sprite.svg +15 -0
- package/lib/client/ui/styles.css +183 -41
- package/lib/live/test-runner.js +4 -2
- package/lib/proxyless/api-base.js +3 -2
- package/lib/proxyless/client/event-descriptor.js +67 -0
- package/lib/proxyless/client/input.js +36 -0
- package/lib/proxyless/client/key-press/utils.js +31 -0
- package/lib/proxyless/client/types.js +1 -1
- package/lib/proxyless/client/utils.js +32 -2
- package/lib/proxyless/cookie-provider.js +31 -3
- package/lib/proxyless/errors.js +20 -0
- package/lib/proxyless/index.js +2 -10
- package/lib/proxyless/request-pipeline/index.js +32 -3
- package/lib/proxyless/resource-injector.js +5 -4
- package/lib/proxyless/types.js +3 -2
- package/lib/proxyless/utils/cdp.js +4 -3
- package/lib/reporter/index.js +2 -1
- package/lib/runner/bootstrapper.js +8 -1
- package/lib/runner/index.js +57 -44
- package/lib/shared/utils/is-file-protocol.js +2 -2
- package/lib/test-run/commands/actions.js +2 -2
- package/lib/test-run/cookies/base.js +4 -1
- package/lib/test-run/cookies/provider.js +9 -2
- package/lib/test-run/execute-js-expression/index.js +4 -2
- package/lib/test-run/index.js +17 -12
- package/lib/test-run/request/create-request-options.js +23 -12
- package/lib/test-run/request/send.js +2 -3
- package/lib/utils/check-is-vm.js +58 -0
- package/package.json +9 -6
- package/lib/proxyless/client/event-simulator.js +0 -40
package/lib/client/ui/styles.css
CHANGED
|
@@ -272,10 +272,13 @@
|
|
|
272
272
|
#root.root .tcOptionList .tcOption {
|
|
273
273
|
margin: 1px 5px;
|
|
274
274
|
}
|
|
275
|
-
#root.root .
|
|
275
|
+
#root.root .panels-container {
|
|
276
276
|
position: fixed;
|
|
277
277
|
-webkit-transform: translate3d(0px, 0px, 0px) !important;
|
|
278
|
-
bottom: 0
|
|
278
|
+
bottom: 0;
|
|
279
|
+
width: 100%;
|
|
280
|
+
}
|
|
281
|
+
#root.root .panels-container .status-bar {
|
|
279
282
|
background-color: rgba(24, 40, 57, 0.85);
|
|
280
283
|
z-index: 2147483644;
|
|
281
284
|
left: 0;
|
|
@@ -287,7 +290,7 @@
|
|
|
287
290
|
/* Views */
|
|
288
291
|
/* --- */
|
|
289
292
|
}
|
|
290
|
-
#root.root .status-bar .icon {
|
|
293
|
+
#root.root .panels-container .status-bar .icon {
|
|
291
294
|
background-image: url("/testcafe-ui-sprite.svg#logo-icon");
|
|
292
295
|
background-color: rgba(42, 61, 82, 0.95);
|
|
293
296
|
display: inline-block;
|
|
@@ -299,7 +302,7 @@
|
|
|
299
302
|
background-position: 16px 11px;
|
|
300
303
|
background-attachment: local;
|
|
301
304
|
}
|
|
302
|
-
#root.root .status-bar .info-container {
|
|
305
|
+
#root.root .panels-container .status-bar .info-container {
|
|
303
306
|
font-style: normal;
|
|
304
307
|
font-size: 12px;
|
|
305
308
|
flex-direction: column;
|
|
@@ -310,7 +313,7 @@
|
|
|
310
313
|
justify-content: space-between;
|
|
311
314
|
align-items: center;
|
|
312
315
|
}
|
|
313
|
-
#root.root .status-bar .info-container .info-text-container {
|
|
316
|
+
#root.root .panels-container .status-bar .info-container .info-text-container {
|
|
314
317
|
margin: 7px 0 4px 16px;
|
|
315
318
|
width: 100%;
|
|
316
319
|
align-items: center;
|
|
@@ -319,22 +322,22 @@
|
|
|
319
322
|
white-space: nowrap;
|
|
320
323
|
flex: 1;
|
|
321
324
|
}
|
|
322
|
-
#root.root .status-bar .info-container .info-text-container .status-container {
|
|
325
|
+
#root.root .panels-container .status-bar .info-container .info-text-container .status-container {
|
|
323
326
|
align-items: center;
|
|
324
327
|
min-width: 0;
|
|
325
328
|
overflow: hidden;
|
|
326
329
|
}
|
|
327
|
-
#root.root .status-bar .info-container .info-text-container .status-container .info {
|
|
330
|
+
#root.root .panels-container .status-bar .info-container .info-text-container .status-container .info {
|
|
328
331
|
text-overflow: ellipsis;
|
|
329
332
|
overflow: hidden;
|
|
330
333
|
}
|
|
331
|
-
#root.root .status-bar .info-container .info-text-container .status-container .status {
|
|
334
|
+
#root.root .panels-container .status-bar .info-container .info-text-container .status-container .status {
|
|
332
335
|
font-weight: bold;
|
|
333
336
|
font-size: 14px;
|
|
334
337
|
overflow: hidden;
|
|
335
338
|
text-overflow: ellipsis;
|
|
336
339
|
}
|
|
337
|
-
#root.root .status-bar .info-container .info-text-container .user-agent {
|
|
340
|
+
#root.root .panels-container .status-bar .info-container .info-text-container .user-agent {
|
|
338
341
|
color: rgba(255, 255, 255, 0.5);
|
|
339
342
|
font-size: 12px;
|
|
340
343
|
margin-right: 20px;
|
|
@@ -342,7 +345,7 @@
|
|
|
342
345
|
text-overflow: ellipsis;
|
|
343
346
|
overflow: hidden;
|
|
344
347
|
}
|
|
345
|
-
#root.root .status-bar .info-container .progress-bar {
|
|
348
|
+
#root.root .panels-container .status-bar .info-container .progress-bar {
|
|
346
349
|
width: 100%;
|
|
347
350
|
height: 3px;
|
|
348
351
|
background-color: #345B69;
|
|
@@ -351,124 +354,263 @@
|
|
|
351
354
|
overflow: hidden;
|
|
352
355
|
visibility: hidden;
|
|
353
356
|
}
|
|
354
|
-
#root.root .status-bar .info-container .progress-bar.determinate .value {
|
|
357
|
+
#root.root .panels-container .status-bar .info-container .progress-bar.determinate .value {
|
|
355
358
|
background-color: #36B6E5;
|
|
356
359
|
height: 3px;
|
|
357
360
|
width: 0;
|
|
358
361
|
}
|
|
359
|
-
#root.root .status-bar .info-container .progress-bar.indeterminate .value-container {
|
|
362
|
+
#root.root .panels-container .status-bar .info-container .progress-bar.indeterminate .value-container {
|
|
360
363
|
background-color: #36B6E5;
|
|
361
364
|
position: relative;
|
|
362
365
|
}
|
|
363
|
-
#root.root .status-bar .info-container .progress-bar.indeterminate .value-container .value {
|
|
366
|
+
#root.root .panels-container .status-bar .info-container .progress-bar.indeterminate .value-container .value {
|
|
364
367
|
position: absolute;
|
|
365
368
|
background-color: inherit;
|
|
366
369
|
top: 0;
|
|
367
370
|
left: 0;
|
|
368
371
|
bottom: 0;
|
|
369
372
|
}
|
|
370
|
-
#root.root .status-bar .buttons,
|
|
371
|
-
#root.root .status-bar .button {
|
|
373
|
+
#root.root .panels-container .status-bar .buttons,
|
|
374
|
+
#root.root .panels-container .status-bar .button {
|
|
372
375
|
display: flex;
|
|
373
376
|
}
|
|
374
|
-
#root.root .status-bar .actions-container {
|
|
377
|
+
#root.root .panels-container .status-bar .actions-container {
|
|
375
378
|
text-align: right;
|
|
376
379
|
font-size: 12px;
|
|
377
380
|
align-items: center;
|
|
378
381
|
right: 0;
|
|
379
382
|
}
|
|
380
|
-
#root.root .status-bar .actions-container .buttons {
|
|
383
|
+
#root.root .panels-container .status-bar .actions-container .buttons {
|
|
381
384
|
background-color: rgba(42, 61, 82, 0.85);
|
|
382
385
|
flex-wrap: nowrap;
|
|
383
386
|
}
|
|
384
|
-
#root.root .status-bar .actions-container .buttons .button {
|
|
387
|
+
#root.root .panels-container .status-bar .actions-container .buttons .button {
|
|
385
388
|
height: 52px;
|
|
386
389
|
min-width: 52px;
|
|
387
390
|
align-items: center;
|
|
388
391
|
justify-content: center;
|
|
389
392
|
}
|
|
390
|
-
#root.root .status-bar .actions-container .buttons .button:hover {
|
|
393
|
+
#root.root .panels-container .status-bar .actions-container .buttons .button:hover {
|
|
391
394
|
background-color: #36B6E5;
|
|
392
395
|
}
|
|
393
|
-
#root.root .status-bar .actions-container .buttons .button:active {
|
|
396
|
+
#root.root .panels-container .status-bar .actions-container .buttons .button:active {
|
|
394
397
|
background-color: #1797CA;
|
|
395
398
|
}
|
|
396
|
-
#root.root .status-bar .actions-container .buttons .button > span {
|
|
399
|
+
#root.root .panels-container .status-bar .actions-container .buttons .button > span {
|
|
397
400
|
margin-right: 20px;
|
|
398
401
|
margin-left: -10px;
|
|
399
402
|
white-space: nowrap;
|
|
400
403
|
}
|
|
401
|
-
#root.root .status-bar .actions-container .buttons .button .button-icon {
|
|
404
|
+
#root.root .panels-container .status-bar .actions-container .buttons .button .button-icon {
|
|
402
405
|
width: 30px;
|
|
403
406
|
height: 30px;
|
|
404
407
|
margin-left: 10px;
|
|
405
408
|
margin-right: 10px;
|
|
406
409
|
}
|
|
407
|
-
#root.root .status-bar .actions-container .buttons .button.locked .button-icon {
|
|
410
|
+
#root.root .panels-container .status-bar .actions-container .buttons .button.locked .button-icon {
|
|
408
411
|
background-image: url("/testcafe-ui-sprite.svg#locked");
|
|
409
412
|
}
|
|
410
|
-
#root.root .status-bar .actions-container .buttons .button.unlocked {
|
|
413
|
+
#root.root .panels-container .status-bar .actions-container .buttons .button.unlocked {
|
|
411
414
|
background-color: #60A96E;
|
|
412
415
|
}
|
|
413
|
-
#root.root .status-bar .actions-container .buttons .button.unlocked .button-icon {
|
|
416
|
+
#root.root .panels-container .status-bar .actions-container .buttons .button.unlocked .button-icon {
|
|
414
417
|
background-image: url("/testcafe-ui-sprite.svg#unlocked");
|
|
415
418
|
}
|
|
416
|
-
#root.root .status-bar .actions-container .buttons .button.resume .button-icon {
|
|
419
|
+
#root.root .panels-container .status-bar .actions-container .buttons .button.resume .button-icon {
|
|
417
420
|
background-image: url("/testcafe-ui-sprite.svg#resume");
|
|
418
421
|
}
|
|
419
|
-
#root.root .status-bar .actions-container .buttons .button.finish .button-icon {
|
|
422
|
+
#root.root .panels-container .status-bar .actions-container .buttons .button.finish .button-icon {
|
|
420
423
|
background-image: url("/testcafe-ui-sprite.svg#finish");
|
|
421
424
|
}
|
|
422
|
-
#root.root .status-bar .actions-container .buttons .button.step .button-icon {
|
|
425
|
+
#root.root .panels-container .status-bar .actions-container .buttons .button.step .button-icon {
|
|
423
426
|
background-image: url("/testcafe-ui-sprite.svg#step");
|
|
424
427
|
}
|
|
425
|
-
#root.root .status-bar.waiting-element-success {
|
|
428
|
+
#root.root .panels-container .status-bar.waiting-element-success {
|
|
426
429
|
background-color: transparent;
|
|
427
430
|
}
|
|
428
|
-
#root.root .status-bar.waiting-element-success .info-container {
|
|
431
|
+
#root.root .panels-container .status-bar.waiting-element-success .info-container {
|
|
429
432
|
background-color: rgba(116, 183, 129, 0.9);
|
|
430
433
|
}
|
|
431
|
-
#root.root .status-bar.waiting-element-success .progress-bar.determinate .value {
|
|
434
|
+
#root.root .panels-container .status-bar.waiting-element-success .progress-bar.determinate .value {
|
|
432
435
|
background-color: #3F884D;
|
|
433
436
|
}
|
|
434
|
-
#root.root .status-bar.waiting-element-failed .info-container {
|
|
437
|
+
#root.root .panels-container .status-bar.waiting-element-failed .info-container {
|
|
435
438
|
background-color: rgba(223, 86, 121, 0.9);
|
|
436
439
|
}
|
|
437
|
-
#root.root .status-bar.waiting-element-failed .progress-bar.determinate .value {
|
|
440
|
+
#root.root .panels-container .status-bar.waiting-element-failed .progress-bar.determinate .value {
|
|
438
441
|
background-color: #BA4A67;
|
|
439
442
|
}
|
|
440
443
|
@media (max-width: 992px) {
|
|
441
|
-
#root.root .status-bar .info-container .user-agent {
|
|
444
|
+
#root.root .panels-container .status-bar .info-container .user-agent {
|
|
442
445
|
display: none;
|
|
443
446
|
}
|
|
444
447
|
}
|
|
445
448
|
@media (max-width: 768px) {
|
|
446
|
-
#root.root .status-bar .icon,
|
|
447
|
-
#root.root .status-bar .button > span {
|
|
449
|
+
#root.root .panels-container .status-bar .icon,
|
|
450
|
+
#root.root .panels-container .status-bar .button > span {
|
|
448
451
|
display: none;
|
|
449
452
|
}
|
|
450
453
|
}
|
|
451
454
|
@media (max-width: 768px) and screen and (-ms-high-contrast: active), (max-width: 768px) and (-ms-high-contrast: none) {
|
|
452
|
-
#root.root .status-bar .actions-container {
|
|
455
|
+
#root.root .panels-container .status-bar .actions-container {
|
|
453
456
|
min-width: 156px;
|
|
454
457
|
}
|
|
455
458
|
}
|
|
456
459
|
@media (max-width: 576px) {
|
|
457
|
-
#root.root .status-bar {
|
|
460
|
+
#root.root .panels-container .status-bar {
|
|
458
461
|
flex-wrap: wrap;
|
|
459
462
|
}
|
|
460
|
-
#root.root .status-bar .actions-container,
|
|
461
|
-
#root.root .status-bar .buttons {
|
|
463
|
+
#root.root .panels-container .status-bar .actions-container,
|
|
464
|
+
#root.root .panels-container .status-bar .buttons {
|
|
462
465
|
width: 100%;
|
|
463
466
|
justify-content: space-around;
|
|
464
467
|
}
|
|
465
|
-
#root.root .status-bar .actions-container .buttons .button {
|
|
468
|
+
#root.root .panels-container .status-bar .actions-container .buttons .button {
|
|
466
469
|
height: 30px;
|
|
467
470
|
flex-grow: 1;
|
|
468
471
|
}
|
|
469
472
|
}
|
|
473
|
+
#root.root .panels-container .selector-inspector-panel {
|
|
474
|
+
display: flex;
|
|
475
|
+
box-sizing: border-box;
|
|
476
|
+
width: 100%;
|
|
477
|
+
left: 0;
|
|
478
|
+
padding: 2px;
|
|
479
|
+
align-items: center;
|
|
480
|
+
z-index: 2147483644;
|
|
481
|
+
background-color: #283545;
|
|
482
|
+
color: #283545;
|
|
483
|
+
flex-wrap: nowrap;
|
|
484
|
+
flex-direction: row;
|
|
485
|
+
justify-content: space-around;
|
|
486
|
+
}
|
|
487
|
+
#root.root .panels-container .selector-inspector-panel * {
|
|
488
|
+
display: flex;
|
|
489
|
+
box-sizing: border-box;
|
|
490
|
+
font-size: 12px;
|
|
491
|
+
}
|
|
492
|
+
#root.root .panels-container .selector-inspector-panel > * {
|
|
493
|
+
margin: 2px !important;
|
|
494
|
+
flex-grow: 0;
|
|
495
|
+
}
|
|
496
|
+
#root.root .panels-container .selector-inspector-panel input,
|
|
497
|
+
#root.root .panels-container .selector-inspector-panel input:hover,
|
|
498
|
+
#root.root .panels-container .selector-inspector-panel input:active,
|
|
499
|
+
#root.root .panels-container .selector-inspector-panel input:focus {
|
|
500
|
+
line-height: 16px;
|
|
501
|
+
}
|
|
502
|
+
#root.root .panels-container .selector-inspector-panel input[type='button'],
|
|
503
|
+
#root.root .panels-container .selector-inspector-panel input:hover[type='button'],
|
|
504
|
+
#root.root .panels-container .selector-inspector-panel input:active[type='button'],
|
|
505
|
+
#root.root .panels-container .selector-inspector-panel input:focus[type='button'] {
|
|
506
|
+
padding: 1px 8px 3px 8px;
|
|
507
|
+
border-radius: 4px;
|
|
508
|
+
cursor: pointer;
|
|
509
|
+
}
|
|
510
|
+
#root.root .panels-container .selector-inspector-panel input[type='button']:hover,
|
|
511
|
+
#root.root .panels-container .selector-inspector-panel input:hover[type='button']:hover,
|
|
512
|
+
#root.root .panels-container .selector-inspector-panel input:active[type='button']:hover,
|
|
513
|
+
#root.root .panels-container .selector-inspector-panel input:focus[type='button']:hover {
|
|
514
|
+
background-color: #cfcfcf;
|
|
515
|
+
}
|
|
516
|
+
#root.root .panels-container .selector-inspector-panel input[type='text'],
|
|
517
|
+
#root.root .panels-container .selector-inspector-panel input:hover[type='text'],
|
|
518
|
+
#root.root .panels-container .selector-inspector-panel input:active[type='text'],
|
|
519
|
+
#root.root .panels-container .selector-inspector-panel input:focus[type='text'] {
|
|
520
|
+
padding: 2px 8px 2px 8px;
|
|
521
|
+
}
|
|
522
|
+
#root.root .panels-container .selector-inspector-panel .selector-input-container {
|
|
523
|
+
flex-grow: 1;
|
|
524
|
+
background-color: white;
|
|
525
|
+
}
|
|
526
|
+
#root.root .panels-container .selector-inspector-panel .selector-input-container > * {
|
|
527
|
+
flex-grow: 0;
|
|
528
|
+
}
|
|
529
|
+
#root.root .panels-container .selector-inspector-panel .selector-input-container .selector-input {
|
|
530
|
+
flex-grow: 1;
|
|
531
|
+
font-family: monospace !important;
|
|
532
|
+
}
|
|
533
|
+
#root.root .panels-container .selector-inspector-panel .selector-input-container .match-indicator {
|
|
534
|
+
margin: 2px;
|
|
535
|
+
padding: 2px 6px;
|
|
536
|
+
height: 16px;
|
|
537
|
+
font-size: 10px;
|
|
538
|
+
line-height: 12px;
|
|
539
|
+
border-radius: 4px;
|
|
540
|
+
background-color: #777777;
|
|
541
|
+
color: white;
|
|
542
|
+
}
|
|
543
|
+
#root.root .panels-container .selector-inspector-panel .selector-input-container .match-indicator.ok {
|
|
544
|
+
background-color: #0B71E3;
|
|
545
|
+
}
|
|
546
|
+
#root.root .panels-container .selector-inspector-panel .selector-input-container .match-indicator.invalid {
|
|
547
|
+
background-color: #993131;
|
|
548
|
+
}
|
|
549
|
+
#root.root .panels-container .selector-inspector-panel .selector-input-container .match-indicator.not-found {
|
|
550
|
+
background-color: #777777;
|
|
551
|
+
}
|
|
552
|
+
#root.root .panels-container .selector-inspector-panel .selector-input-container .expand-selector-list {
|
|
553
|
+
width: 20px;
|
|
554
|
+
height: 20px;
|
|
555
|
+
background-image: url("/testcafe-ui-sprite.svg#disabled-expand-button");
|
|
556
|
+
}
|
|
557
|
+
#root.root .panels-container .selector-inspector-panel .selector-input-container .expand-selector-list.enabled {
|
|
558
|
+
background-image: url("/testcafe-ui-sprite.svg#expand-button");
|
|
559
|
+
}
|
|
560
|
+
#root.root .panels-container .selector-inspector-panel .selector-input-container .expand-selector-list.enabled:hover {
|
|
561
|
+
background-color: #cfcfcf;
|
|
562
|
+
}
|
|
563
|
+
#root.root .selectors-list {
|
|
564
|
+
position: fixed;
|
|
565
|
+
-webkit-transform: translate3d(0px, 0px, 0px) !important;
|
|
566
|
+
display: flex;
|
|
567
|
+
box-sizing: border-box;
|
|
568
|
+
z-index: 2147483645;
|
|
569
|
+
flex-direction: column;
|
|
570
|
+
background-color: white;
|
|
571
|
+
box-shadow: 0px 0px 2px #8d8d8d;
|
|
572
|
+
}
|
|
573
|
+
#root.root .selectors-list .selector-value {
|
|
574
|
+
height: 18px;
|
|
575
|
+
padding: 4px 8px 0px;
|
|
576
|
+
border-bottom: 1px solid #e2e2e2;
|
|
577
|
+
white-space: nowrap;
|
|
578
|
+
overflow: hidden;
|
|
579
|
+
text-overflow: ellipsis;
|
|
580
|
+
font-family: monospace !important;
|
|
581
|
+
font-size: 12px;
|
|
582
|
+
}
|
|
583
|
+
#root.root .selectors-list .selector-value:hover {
|
|
584
|
+
background-color: #cfcfcf;
|
|
585
|
+
}
|
|
586
|
+
#root.root .element-frame {
|
|
587
|
+
box-sizing: border-box;
|
|
588
|
+
position: absolute;
|
|
589
|
+
background-color: #1797CA;
|
|
590
|
+
border: 1px solid #033a50;
|
|
591
|
+
opacity: 0.3;
|
|
592
|
+
box-shadow: 0 0 6px 1px #033a50;
|
|
593
|
+
}
|
|
594
|
+
#root.root .tooltip {
|
|
595
|
+
position: absolute;
|
|
596
|
+
white-space: nowrap;
|
|
597
|
+
background-color: #667599;
|
|
598
|
+
padding: 2px 6px 3px 6px;
|
|
599
|
+
color: #ffffff;
|
|
600
|
+
font-family: monospace !important;
|
|
601
|
+
}
|
|
602
|
+
#root.root .arrow {
|
|
603
|
+
position: absolute;
|
|
604
|
+
background-image: url("/testcafe-ui-sprite.svg#arrow-down");
|
|
605
|
+
width: 16px;
|
|
606
|
+
height: 8px;
|
|
607
|
+
}
|
|
470
608
|
#root.root .screenshot-mark {
|
|
471
609
|
bottom: 0;
|
|
472
610
|
right: 0;
|
|
473
611
|
position: fixed;
|
|
474
612
|
}
|
|
613
|
+
#root.root .auxiliary-input {
|
|
614
|
+
position: fixed;
|
|
615
|
+
bottom: 100%;
|
|
616
|
+
}
|
package/lib/live/test-runner.js
CHANGED
|
@@ -39,7 +39,9 @@ class LiveModeRunner extends runner_1.default {
|
|
|
39
39
|
this.testRunController.setExpectedTestCount(expectedTestCount);
|
|
40
40
|
})
|
|
41
41
|
.then(() => {
|
|
42
|
-
this.
|
|
42
|
+
this._resetBeforeRun();
|
|
43
|
+
this.bootstrapper.restoreMessageBusListeners();
|
|
44
|
+
this.runnerTaskPromise = this._prepareAndRunTask(this.opts);
|
|
43
45
|
return this.runnerTaskPromise;
|
|
44
46
|
})
|
|
45
47
|
.catch(err => {
|
|
@@ -171,4 +173,4 @@ class LiveModeRunner extends runner_1.default {
|
|
|
171
173
|
}
|
|
172
174
|
exports.default = LiveModeRunner;
|
|
173
175
|
module.exports = exports.default;
|
|
174
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVzdC1ydW5uZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbGl2ZS90ZXN0LXJ1bm5lci5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLG1DQUE4QjtBQUM5QixnRkFBOEQ7QUFDOUQsOERBQThDO0FBQzlDLHVEQUErQjtBQUMvQixrRUFBa0Q7QUFDbEQsK0VBQXFEO0FBQ3JELCtDQUFpRDtBQUNqRCwyQ0FBaUQ7QUFFakQsTUFBTSxjQUFlLFNBQVEsZ0JBQU07SUFDL0IsWUFBYSxFQUFFLEtBQUssRUFBRSx3QkFBd0IsRUFBRSxhQUFhLEVBQUUsZUFBZSxFQUFFO1FBQzVFLEtBQUssQ0FBQyxFQUFFLEtBQUssRUFBRSx3QkFBd0IsRUFBRSxhQUFhLEVBQUUsZUFBZSxFQUFFLENBQUMsQ0FBQztRQUUzRSxJQUFJLENBQUMsUUFBUSxHQUFnQixLQUFLLENBQUM7UUFDbkMsSUFBSSxDQUFDLGlCQUFpQixHQUFPLElBQUksQ0FBQztRQUNsQyxJQUFJLENBQUMsbUJBQW1CLEdBQUssYUFBSSxDQUFDO1FBQ2xDLElBQUksQ0FBQyxxQkFBcUIsR0FBRyxhQUFJLENBQUM7UUFFbEMsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUM7UUFFbkIsSUFBSSxDQUFDLGlCQUFpQixHQUFHLElBQUksNkJBQXlCLEVBQUUsQ0FBQztRQUN6RCxJQUFJLENBQUMsVUFBVSxHQUFVLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO1FBR2xELElBQUksQ0FBQyxnQkFBZ0IsQ0FBQztZQUNsQixXQUFXLEVBQUUsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFdBQVc7WUFDL0MsTUFBTSxFQUFPLEVBQUU7U0FDbEIsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLFVBQVUsR0FBVyxJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztRQUNuRCxJQUFJLENBQUMsa0JBQWtCLEdBQUcsSUFBSSxDQUFDO0lBQ25DLENBQUM7SUFFRCxRQUFRLENBQUUs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QUFTLEVBQUUsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDO1FBRXpELE9BQU8sS0FBSyxDQUFDLGNBQWMsQ0FBQyxVQUFVLEVBQUUsU0FBUyxFQUFFLFNBQVMsQ0FBQyxDQUFDO0lBQ2xFLENBQUM7Q0FDSjtBQUVELGtCQUFlLGNBQWMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IG5vb3AgfSBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0IExpdmVNb2RlVGVzdFJ1bkNvbnRyb2xsZXIgZnJvbSAnLi90ZXN0LXJ1bi1jb250cm9sbGVyJztcbmltcG9ydCBMaXZlTW9kZUNvbnRyb2xsZXIgZnJvbSAnLi9jb250cm9sbGVyJztcbmltcG9ydCBSdW5uZXIgZnJvbSAnLi4vcnVubmVyJztcbmltcG9ydCBMaXZlTW9kZUJvb3RzdHJhcHBlciBmcm9tICcuL2Jvb3RzdHJhcHBlcic7XG5pbXBvcnQgcGFyc2VGaWxlTGlzdCBmcm9tICcuLi91dGlscy9wYXJzZS1maWxlLWxpc3QnO1xuaW1wb3J0IHsgR2VuZXJhbEVycm9yIH0gZnJvbSAnLi4vZXJyb3JzL3J1bnRpbWUnO1xuaW1wb3J0IHsgUlVOVElNRV9FUlJPUlMgfSBmcm9tICcuLi9lcnJvcnMvdHlwZXMnO1xuXG5jbGFzcyBMaXZlTW9kZVJ1bm5lciBleHRlbmRzIFJ1bm5lciB7XG4gICAgY29uc3RydWN0b3IgKHsgcHJveHksIGJyb3dzZXJDb25uZWN0aW9uR2F0ZXdheSwgY29uZmlndXJhdGlvbiwgY29tcGlsZXJTZXJ2aWNlIH0pIHtcbiAgICAgICAgc3VwZXIoeyBwcm94eSwgYnJvd3NlckNvbm5lY3Rpb25HYXRld2F5LCBjb25maWd1cmF0aW9uLCBjb21waWxlclNlcnZpY2UgfSk7XG5cbiAgICAgICAgdGhpcy5zdG9wcGluZyAgICAgICAgICAgICAgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5ydW5uZXJUYXNrUHJvbWlzZSAgICAgPSBudWxsO1xuICAgICAgICB0aGlzLnN0b3BJbmZpbml0ZVdhaXRpbmcgICA9IG5vb3A7XG4gICAgICAgIHRoaXMucmVqZWN0SW5maW5pdGVXYWl0aW5nID0gbm9vcDtcblxuICAgICAgICB0aGlzLmFzc2V0cyA9IG51bGw7XG5cbiAgICAgICAgdGhpcy50ZXN0UnVuQ29udHJvbGxlciA9IG5ldyBMaXZlTW9kZVRlc3RSdW5Db250cm9sbGVyKCk7XG4gICAgICAgIHRoaXMuY29udHJvbGxlciAgICAgICAgPSB0aGlzLl9jcmVhdGVDb250cm9sbGVyKCk7XG5cblxuICAgICAgICB0aGlzLmVtYmVkZGluZ09wdGlvbnMoe1xuICAgICAgICAgICAgVGVzdFJ1bkN0b3I6IHRoaXMudGVzdFJ1bkNvbnRyb2xsZXIuVGVzdFJ1bkN0b3IsXG4gICAgICAgICAgICBhc3NldHM6ICAgICAgW10sXG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLmNvbnRyb2xsZXIgICAgICAgICA9IHRoaXMuX2NyZWF0ZUNvbnRyb2xsZXIoKTtcbiAgICAgICAgdGhpcy5jb25maWd1cmF0aW9uQ2FjaGUgPSBudWxsO1xuICAgIH1cblxuICAgIHJ1blRlc3RzIChpc0ZpcnN0UnVuID0gZmFsc2UpIHtcbiAgICAgICAgbGV0IHJ1bkVycm9yID0gbnVsbDtcblxuICAgICAgICByZXR1cm4gdGhpcy5fZmluaXNoUHJldmlvdXNUZXN0UnVucygpXG4gICAgICAgICAgICAudGhlbigoKSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuX3ZhbGlkYXRlUnVubmFibGVDb25maWd1cmF0aW9uKGlzRmlyc3RSdW4pO1xuICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIC50aGVuKCgpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBleHBlY3RlZFRlc3RDb3VudCA9IHRoaXMuY29uZmlndXJhdGlvbkNhY2hlLnRlc3RzLmxlbmd0aDtcblxuICAgICAgICAgICAgICAgIHRoaXMudGVzdFJ1bkNvbnRyb2xsZXIuc2V0RXhwZWN0ZWRUZXN0Q291bnQoZXhwZWN0ZWRUZXN0Q291bnQpO1xuICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIC50aGVuKCgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLnJ1bm5lclRhc2tQcm9taXNlID0gc3VwZXIucnVuKHRoaXMub3B0cyk7XG5cbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5ydW5uZXJUYXNrUHJvbWlzZTtcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAuY2F0Y2goZXJyID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLnNldEJvb3RzdHJhcHBpbmdFcnJvcihudWxsKTtcblxuICAgICAgICAgICAgICAgIHJ1bkVycm9yID0gZXJyO1xuICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIC50aGVuKCgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLnJ1bm5lclRhc2tQcm9taXNlID0gbnVsbDtcblxuICAgICAgICAgICAgICAgIHRoaXMuY29udHJvbGxlci5vblRlc3RSdW5Eb25lKHJ1bkVycm9yKTtcbiAgICAgICAgICAgIH0pO1xuICAgIH1cblxuICAgIF92YWxpZGF0ZVJ1bk9wdGlvbnMgKCkge1xuICAgICAgICByZXR1cm4gc3VwZXIuX3ZhbGlkYXRlUnVuT3B0aW9ucygpXG4gICAgICAgICAgICAuY2F0Y2goZXJyID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLnJlamVjdEluZmluaXRlV2FpdGluZyhlcnIpO1xuICAgICAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgX2NyZWF0ZVJ1bm5hYmxlQ29uZmlndXJhdGlvbiAoKSB7XG4gICAgICAgIGlmICh0aGlzLmNvbmZpZ3VyYXRpb25DYWNoZSlcbiAgICAgICAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUodGhpcy5jb25maWd1cmF0aW9uQ2FjaGUpO1xuXG4gICAgICAgIHJldHVybiBzdXBlci5fY3JlYXRlUnVubmFibGVDb25maWd1cmF0aW9uKClcbiAgICAgICAgICAgIC50aGVuKGNvbmZpZ3VyYXRpb24gPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuY29uZmlndXJhdGlvbkNhY2hlID0gY29uZmlndXJhdGlvbjtcblxuICAgICAgICAgICAgICAgIHJldHVybiBjb25maWd1cmF0aW9uO1xuICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIC5jYXRjaChlcnIgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMucmVqZWN0SW5maW5pdGVXYWl0aW5nKGVycik7XG4gICAgICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBzZXRCb290c3RyYXBwaW5nRXJyb3IgKGVycikge1xuICAgICAgICB0aGlzLmJvb3RzdHJhcHBpbmdFcnJvciA9IGVycjtcbiAgICB9XG5cbiAgICBydW4gKG9wdGlvbnMpIHtcbiAgICAgICAgdGhpcy5jb25maWd1cmF0aW9uQ2FjaGUgPSBudWxsO1xuXG4gICAgICAgIGlmICh0aGlzLl9ydW5uaW5nKVxuICAgICAgICAgICAgdGhyb3cgbmV3IEdlbmVyYWxFcnJvcihSVU5USU1FX0VSUk9SUy5jYW5ub3RSdW5MaXZlTW9kZVJ1bm5lck11bHRpcGxlVGltZXMpO1xuXG4gICAgICAgIHRoaXMuX3J1bm5pbmcgPSB0aGlzLl93YWl0VW50aWxFeGl0KClcbiAgICAgICAgICAgIC50aGVuKCgpID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5fZGlzcG9zZSgpO1xuICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIC50aGVuKCgpID0+IHtcbiAgICAgICAgICAgICAgICBkZWxldGUgdGhpcy5fcnVubmluZztcbiAgICAgICAgICAgIH0pO1xuXG4gICAgICAgIHRoaXMub3B0cyA9IE9iamVjdC5hc3NpZ24oe30sIHRoaXMub3B0cywgb3B0aW9ucyk7XG5cbiAgICAgICAgdGhpcy5fc2V0Q29uZmlndXJhdGlvbk9wdGlvbnMoKVxuICAgICAgICAgICAgLnRoZW4oKCkgPT4gdGhpcy5fc2V0Qm9vdHN0cmFwcGVyT3B0aW9ucygpKVxuICAgICAgICAgICAgLnRoZW4oKCkgPT4gcGFyc2VGaWxlTGlzdCh0aGlzLmJvb3RzdHJhcHBlci5zb3VyY2VzLCBwcm9jZXNzLmN3ZCgpKSlcbiAgICAgICAgICAgIC50aGVuKGZpbGVzID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5jb250cm9sbGVyLmluaXQoZmlsZXMpO1xuICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIC50aGVuKCgpID0+IHRoaXMuX2NyZWF0ZVJ1bm5hYmxlQ29uZmlndXJhdGlvbigpKVxuICAgICAgICAgICAgLnRoZW4oKCkgPT4gdGhpcy5ydW5UZXN0cyh0cnVlKSk7XG5cbiAgICAgICAgcmV0dXJuIHRoaXMuX3J1bm5pbmc7XG4gICAgfVxuXG4gICAgc3VzcGVuZCAoKSB7XG4gICAgICAgIGlmICghdGhpcy5ydW5uZXJUYXNrUHJvbWlzZSlcbiAgICAgICAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoKTtcblxuICAgICAgICB0aGlzLnN0b3BwaW5nID0gdHJ1ZTtcbiAgICAgICAgdGhpcy50ZXN0UnVuQ29udHJvbGxlci5zdG9wKCk7XG4gICAgICAgIHRoaXMucnVubmVyVGFza1Byb21pc2UuY2FuY2VsKCk7XG5cbiAgICAgICAgcmV0dXJuIHRoaXMudGVzdFJ1bkNvbnRyb2xsZXIuYWxsVGVzdHNDb21wbGV0ZVByb21pc2VcbiAgICAgICAgICAgIC50aGVuKCgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLnN0b3BwaW5nID0gZmFsc2U7XG5cbiAgICAgICAgICAgICAgICB0aGlzLmNvbnRyb2xsZXIub25UZXN0UnVuRG9uZSgpO1xuICAgICAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgc3RvcCAoKSB7XG4gICAgICAgIHJldHVybiBzdXBlci5zdG9wKClcbiAgICAgICAgICAgIC50aGVuKCgpID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5jb250cm9sbGVyLmV4aXQoKTtcbiAgICAgICAgICAgIH0pO1xuICAgIH1cblxuICAgIGV4aXQgKCkge1xuICAgICAgICBpZiAodGhpcy5ydW5uZXJUYXNrUHJvbWlzZSlcbiAgICAgICAgICAgIHRoaXMucnVubmVyVGFza1Byb21pc2UuY2FuY2VsKCk7XG5cbiAgICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSgpXG4gICAgICAgICAgICAudGhlbigoKSA9PiB0aGlzLnN0b3BJbmZpbml0ZVdhaXRpbmcoKSlcbiAgICAgICAgICAgIC50aGVuKCgpID0+IHRoaXMuX3J1bm5pbmcpO1xuICAgIH1cblxuICAgIGFzeW5jIF9maW5pc2hQcmV2aW91c1Rlc3RSdW5zICgpIHtcbiAgICAgICAgaWYgKCF0aGlzLmNvbmZpZ3VyYXRpb25DYWNoZT8udGVzdHMpIHJldHVybjtcblxuICAgICAgICB0aGlzLnRlc3RSdW5Db250cm9sbGVyLnJ1bigpO1xuICAgIH1cblxuICAgIF92YWxpZGF0ZVJ1bm5hYmxlQ29uZmlndXJhdGlvbiAoaXNGaXJzdFJ1bikge1xuICAgICAgICBpZiAoaXNGaXJzdFJ1bikge1xuICAgICAgICAgICAgaWYgKHRoaXMuYm9vdHN0cmFwcGluZ0Vycm9yKVxuICAgICAgICAgICAgICAgIHJldHVybiBQcm9taXNlLnJlamVjdCh0aGlzLmJvb3RzdHJhcHBpbmdFcnJvcik7XG5cbiAgICAgICAgICAgIGVsc2UgaWYgKCF0aGlzLmNvbmZpZ3VyYXRpb25DYWNoZSkge1xuICAgICAgICAgICAgICAgIC8vIE5PVEU6IFN1Y2ggZXJyb3JzIGhhbmRsZWQgaW4gcHJvY2Vzcy5vbigndW5oYW5kbGVkUmVqZWN0aW9uJykgaGFuZGxlci5cbiAgICAgICAgICAgICAgICByZXR1cm4gUHJvbWlzZS5yZWplY3QobnVsbCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB0aGlzLmJvb3RzdHJhcHBlci5fZ2V0VGVzdHMoKVxuICAgICAgICAgICAgLnRoZW4odGVzdHMgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuY29uZmlndXJhdGlvbkNhY2hlLnRlc3RzID0gdGVzdHM7XG5cbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5ib290c3RyYXBwaW5nRXJyb3IgPyBQcm9taXNlLnJlamVjdCh0aGlzLmJvb3RzdHJhcHBpbmdFcnJvcikgOiBQcm9taXNlLnJlc29sdmUoKTtcbiAgICAgICAgICAgIH0pO1xuICAgIH1cblxuICAgIF9jcmVhdGVUYXNrICh0ZXN0cywgYnJvd3NlckNvbm5lY3Rpb25Hcm91cHMsIHByb3h5LCBvcHRzKSB7XG4gICAgICAgIG9wdHMubGl2ZSA9IHRydWU7XG5cbiAgICAgICAgcmV0dXJuIHN1cGVyLl9jcmVhdGVUYXNrKHRlc3RzLCBicm93c2VyQ29ubmVjdGlvbkdyb3VwcywgcHJveHksIG9wdHMsIHRoaXMud2FybmluZ0xvZyk7XG4gICAgfVxuXG4gICAgX2NyZWF0ZUJvb3RzdHJhcHBlciAoYnJvd3NlckNvbm5lY3Rpb25HYXRld2F5LCBjb21waWxlclNlcnZpY2UsIG1lc3NhZ2VCdXMpIHtcbiAgICAgICAgcmV0dXJuIG5ldyBMaXZlTW9kZUJvb3RzdHJhcHBlcih0aGlzLCBicm93c2VyQ29ubmVjdGlvbkdhdGV3YXksIGNvbXBpbGVyU2VydmljZSwgbWVzc2FnZUJ1cyk7XG4gICAgfVxuXG4gICAgX2NyZWF0ZUNvbnRyb2xsZXIgKCkge1xuICAgICAgICByZXR1cm4gbmV3IExpdmVNb2RlQ29udHJvbGxlcih0aGlzKTtcbiAgICB9XG5cbiAgICBfd2FpdFVudGlsRXhpdCAoKSB7XG4gICAgICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICAgICAgICB0aGlzLnN0b3BJbmZpbml0ZVdhaXRpbmcgICA9IHJlc29sdmU7XG4gICAgICAgICAgICB0aGlzLnJlamVjdEluZmluaXRlV2FpdGluZyA9IHJlamVjdDtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgX2Rpc3Bvc2VBc3NldHMgKGJyb3dzZXJTZXQsIHJlcG9ydGVycywgdGVzdGVkQXBwKSB7XG4gICAgICAgIHRoaXMuYXNzZXRzID0geyBicm93c2VyU2V0LCByZXBvcnRlcnMsIHRlc3RlZEFwcCB9O1xuXG4gICAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoKTtcbiAgICB9XG5cbiAgICBfZGlzcG9zZSAoKSB7XG4gICAgICAgIHRoaXMuY29udHJvbGxlci5kaXNwb3NlKCk7XG5cbiAgICAgICAgaWYgKCF0aGlzLmFzc2V0cylcbiAgICAgICAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoKTtcblxuICAgICAgICBjb25zdCB7IGJyb3dzZXJTZXQsIHJlcG9ydGVycywgdGVzdGVkQXBwIH0gPSB0aGlzLmFzc2V0cztcblxuICAgICAgICByZXR1cm4gc3VwZXIuX2Rpc3Bvc2VBc3NldHMoYnJvd3NlclNldCwgcmVwb3J0ZXJzLCB0ZXN0ZWRBcHApO1xuICAgIH1cbn1cblxuZXhwb3J0IGRlZmF1bHQgTGl2ZU1vZGVSdW5uZXI7XG4iXX0=
|
|
176
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVzdC1ydW5uZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbGl2ZS90ZXN0LXJ1bm5lci5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLG1DQUE4QjtBQUM5QixnRkFBOEQ7QUFDOUQsOERBQThDO0FBQzlDLHVEQUErQjtBQUMvQixrRUFBa0Q7QUFDbEQsK0VBQXFEO0FBQ3JELCtDQUFpRDtBQUNqRCwyQ0FBaUQ7QUFFakQsTUFBTSxjQUFlLFNBQVEsZ0JBQU07SUFDL0IsWUFBYSxFQUFFLEtBQUssRUFBRSx3QkFBd0IsRUFBRSxhQUFhLEVBQUUsZUFBZSxFQUFFO1FBQzVFLEtBQUssQ0FBQyxFQUFFLEtBQUssRUFBRSx3QkFBd0IsRUFBRSxhQUFhLEVBQUUsZUFBZSxFQUFFLENBQUMsQ0FBQztRQUUzRSxJQUFJLENBQUMsUUFBUSxHQUFnQixLQUFLLENBQUM7UUFDbkMsSUFBSSxDQUFDLGlCQUFpQixHQUFPLElBQUksQ0FBQztRQUNsQyxJQUFJLENBQUMsbUJBQW1CLEdBQUssYUFBSSxDQUFDO1FBQ2xDLElBQUksQ0FBQyxxQkFBcUIsR0FBRyxhQUFJLENBQUM7UUFFbEMsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUM7UUFFbkIsSUFBSSxDQUFDLGlCQUFpQixHQUFHLElBQUksNkJBQXlCLEVBQUUsQ0FBQztRQUN6RCxJQUFJLENBQUMsVUFBVSxHQUFVLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO1FBR2xELElBQUksQ0FBQyxnQkFBZ0IsQ0FBQztZQUNsQixXQUFXLEVBQUUsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFdBQVc7WUFDL0MsTUFBTSxFQUFPLEVBQUU7U0FDbEIsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLFVBQVUsR0FBVyxJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztRQUNuRCxJQUFJLENBQUMsa0JBQWtCLEdBQUcsSUFBSSxDQUFDO0lBQ25DLENBQUM7SUFFRCxRQUFRLENBQUUs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QUFNO1lBQ1osT0FBTyxPQUFPLENBQUMsT0FBTyxFQUFFLENBQUM7UUFFN0IsTUFBTSxFQUFFLFVBQVUsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQztRQUV6RCxPQUFPLEtBQUssQ0FBQyxjQUFjLENBQUMsVUFBVSxFQUFFLFNBQVMsRUFBRSxTQUFTLENBQUMsQ0FBQztJQUNsRSxDQUFDO0NBQ0o7QUFFRCxrQkFBZSxjQUFjLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBub29wIH0gZnJvbSAnbG9kYXNoJztcbmltcG9ydCBMaXZlTW9kZVRlc3RSdW5Db250cm9sbGVyIGZyb20gJy4vdGVzdC1ydW4tY29udHJvbGxlcic7XG5pbXBvcnQgTGl2ZU1vZGVDb250cm9sbGVyIGZyb20gJy4vY29udHJvbGxlcic7XG5pbXBvcnQgUnVubmVyIGZyb20gJy4uL3J1bm5lcic7XG5pbXBvcnQgTGl2ZU1vZGVCb290c3RyYXBwZXIgZnJvbSAnLi9ib290c3RyYXBwZXInO1xuaW1wb3J0IHBhcnNlRmlsZUxpc3QgZnJvbSAnLi4vdXRpbHMvcGFyc2UtZmlsZS1saXN0JztcbmltcG9ydCB7IEdlbmVyYWxFcnJvciB9IGZyb20gJy4uL2Vycm9ycy9ydW50aW1lJztcbmltcG9ydCB7IFJVTlRJTUVfRVJST1JTIH0gZnJvbSAnLi4vZXJyb3JzL3R5cGVzJztcblxuY2xhc3MgTGl2ZU1vZGVSdW5uZXIgZXh0ZW5kcyBSdW5uZXIge1xuICAgIGNvbnN0cnVjdG9yICh7IHByb3h5LCBicm93c2VyQ29ubmVjdGlvbkdhdGV3YXksIGNvbmZpZ3VyYXRpb24sIGNvbXBpbGVyU2VydmljZSB9KSB7XG4gICAgICAgIHN1cGVyKHsgcHJveHksIGJyb3dzZXJDb25uZWN0aW9uR2F0ZXdheSwgY29uZmlndXJhdGlvbiwgY29tcGlsZXJTZXJ2aWNlIH0pO1xuXG4gICAgICAgIHRoaXMuc3RvcHBpbmcgICAgICAgICAgICAgID0gZmFsc2U7XG4gICAgICAgIHRoaXMucnVubmVyVGFza1Byb21pc2UgICAgID0gbnVsbDtcbiAgICAgICAgdGhpcy5zdG9wSW5maW5pdGVXYWl0aW5nICAgPSBub29wO1xuICAgICAgICB0aGlzLnJlamVjdEluZmluaXRlV2FpdGluZyA9IG5vb3A7XG5cbiAgICAgICAgdGhpcy5hc3NldHMgPSBudWxsO1xuXG4gICAgICAgIHRoaXMudGVzdFJ1bkNvbnRyb2xsZXIgPSBuZXcgTGl2ZU1vZGVUZXN0UnVuQ29udHJvbGxlcigpO1xuICAgICAgICB0aGlzLmNvbnRyb2xsZXIgICAgICAgID0gdGhpcy5fY3JlYXRlQ29udHJvbGxlcigpO1xuXG5cbiAgICAgICAgdGhpcy5lbWJlZGRpbmdPcHRpb25zKHtcbiAgICAgICAgICAgIFRlc3RSdW5DdG9yOiB0aGlzLnRlc3RSdW5Db250cm9sbGVyLlRlc3RSdW5DdG9yLFxuICAgICAgICAgICAgYXNzZXRzOiAgICAgIFtdLFxuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5jb250cm9sbGVyICAgICAgICAgPSB0aGlzLl9jcmVhdGVDb250cm9sbGVyKCk7XG4gICAgICAgIHRoaXMuY29uZmlndXJhdGlvbkNhY2hlID0gbnVsbDtcbiAgICB9XG5cbiAgICBydW5UZXN0cyAoaXNGaXJzdFJ1biA9IGZhbHNlKSB7XG4gICAgICAgIGxldCBydW5FcnJvciA9IG51bGw7XG5cbiAgICAgICAgcmV0dXJuIHRoaXMuX2ZpbmlzaFByZXZpb3VzVGVzdFJ1bnMoKVxuICAgICAgICAgICAgLnRoZW4oKCkgPT4ge1xuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLl92YWxpZGF0ZVJ1bm5hYmxlQ29uZmlndXJhdGlvbihpc0ZpcnN0UnVuKTtcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAudGhlbigoKSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgZXhwZWN0ZWRUZXN0Q291bnQgPSB0aGlzLmNvbmZpZ3VyYXRpb25DYWNoZS50ZXN0cy5sZW5ndGg7XG5cbiAgICAgICAgICAgICAgICB0aGlzLnRlc3RSdW5Db250cm9sbGVyLnNldEV4cGVjdGVkVGVzdENvdW50KGV4cGVjdGVkVGVzdENvdW50KTtcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAudGhlbigoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fcmVzZXRCZWZvcmVSdW4oKTtcbiAgICAgICAgICAgICAgICB0aGlzLmJvb3RzdHJhcHBlci5yZXN0b3JlTWVzc2FnZUJ1c0xpc3RlbmVycygpO1xuICAgICAgICAgICAgICAgIHRoaXMucnVubmVyVGFza1Byb21pc2UgPSB0aGlzLl9wcmVwYXJlQW5kUnVuVGFzayh0aGlzLm9wdHMpO1xuXG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMucnVubmVyVGFza1Byb21pc2U7XG4gICAgICAgICAgICB9KVxuICAgICAgICAgICAgLmNhdGNoKGVyciA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5zZXRCb290c3RyYXBwaW5nRXJyb3IobnVsbCk7XG5cbiAgICAgICAgICAgICAgICBydW5FcnJvciA9IGVycjtcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAudGhlbigoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5ydW5uZXJUYXNrUHJvbWlzZSA9IG51bGw7XG5cbiAgICAgICAgICAgICAgICB0aGlzLmNvbnRyb2xsZXIub25UZXN0UnVuRG9uZShydW5FcnJvcik7XG4gICAgICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBfdmFsaWRhdGVSdW5PcHRpb25zICgpIHtcbiAgICAgICAgcmV0dXJuIHN1cGVyLl92YWxpZGF0ZVJ1bk9wdGlvbnMoKVxuICAgICAgICAgICAgLmNhdGNoKGVyciA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5yZWplY3RJbmZpbml0ZVdhaXRpbmcoZXJyKTtcbiAgICAgICAgICAgIH0pO1xuICAgIH1cblxuICAgIF9jcmVhdGVSdW5uYWJsZUNvbmZpZ3VyYXRpb24gKCkge1xuICAgICAgICBpZiAodGhpcy5jb25maWd1cmF0aW9uQ2FjaGUpXG4gICAgICAgICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHRoaXMuY29uZmlndXJhdGlvbkNhY2hlKTtcblxuICAgICAgICByZXR1cm4gc3VwZXIuX2NyZWF0ZVJ1bm5hYmxlQ29uZmlndXJhdGlvbigpXG4gICAgICAgICAgICAudGhlbihjb25maWd1cmF0aW9uID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLmNvbmZpZ3VyYXRpb25DYWNoZSA9IGNvbmZpZ3VyYXRpb247XG5cbiAgICAgICAgICAgICAgICByZXR1cm4gY29uZmlndXJhdGlvbjtcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAuY2F0Y2goZXJyID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLnJlamVjdEluZmluaXRlV2FpdGluZyhlcnIpO1xuICAgICAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgc2V0Qm9vdHN0cmFwcGluZ0Vycm9yIChlcnIpIHtcbiAgICAgICAgdGhpcy5ib290c3RyYXBwaW5nRXJyb3IgPSBlcnI7XG4gICAgfVxuXG4gICAgcnVuIChvcHRpb25zKSB7XG4gICAgICAgIHRoaXMuY29uZmlndXJhdGlvbkNhY2hlID0gbnVsbDtcblxuICAgICAgICBpZiAodGhpcy5fcnVubmluZylcbiAgICAgICAgICAgIHRocm93IG5ldyBHZW5lcmFsRXJyb3IoUlVOVElNRV9FUlJPUlMuY2Fubm90UnVuTGl2ZU1vZGVSdW5uZXJNdWx0aXBsZVRpbWVzKTtcblxuICAgICAgICB0aGlzLl9ydW5uaW5nID0gdGhpcy5fd2FpdFVudGlsRXhpdCgpXG4gICAgICAgICAgICAudGhlbigoKSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuX2Rpc3Bvc2UoKTtcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAudGhlbigoKSA9PiB7XG4gICAgICAgICAgICAgICAgZGVsZXRlIHRoaXMuX3J1bm5pbmc7XG4gICAgICAgICAgICB9KTtcblxuICAgICAgICB0aGlzLm9wdHMgPSBPYmplY3QuYXNzaWduKHt9LCB0aGlzLm9wdHMsIG9wdGlvbnMpO1xuXG4gICAgICAgIHRoaXMuX3NldENvbmZpZ3VyYXRpb25PcHRpb25zKClcbiAgICAgICAgICAgIC50aGVuKCgpID0+IHRoaXMuX3NldEJvb3RzdHJhcHBlck9wdGlvbnMoKSlcbiAgICAgICAgICAgIC50aGVuKCgpID0+IHBhcnNlRmlsZUxpc3QodGhpcy5ib290c3RyYXBwZXIuc291cmNlcywgcHJvY2Vzcy5jd2QoKSkpXG4gICAgICAgICAgICAudGhlbihmaWxlcyA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuY29udHJvbGxlci5pbml0KGZpbGVzKTtcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAudGhlbigoKSA9PiB0aGlzLl9jcmVhdGVSdW5uYWJsZUNvbmZpZ3VyYXRpb24oKSlcbiAgICAgICAgICAgIC50aGVuKCgpID0+IHRoaXMucnVuVGVzdHModHJ1ZSkpO1xuXG4gICAgICAgIHJldHVybiB0aGlzLl9ydW5uaW5nO1xuICAgIH1cblxuICAgIHN1c3BlbmQgKCkge1xuICAgICAgICBpZiAoIXRoaXMucnVubmVyVGFza1Byb21pc2UpXG4gICAgICAgICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKCk7XG5cbiAgICAgICAgdGhpcy5zdG9wcGluZyA9IHRydWU7XG4gICAgICAgIHRoaXMudGVzdFJ1bkNvbnRyb2xsZXIuc3RvcCgpO1xuICAgICAgICB0aGlzLnJ1bm5lclRhc2tQcm9taXNlLmNhbmNlbCgpO1xuXG4gICAgICAgIHJldHVybiB0aGlzLnRlc3RSdW5Db250cm9sbGVyLmFsbFRlc3RzQ29tcGxldGVQcm9taXNlXG4gICAgICAgICAgICAudGhlbigoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5zdG9wcGluZyA9IGZhbHNlO1xuXG4gICAgICAgICAgICAgICAgdGhpcy5jb250cm9sbGVyLm9uVGVzdFJ1bkRvbmUoKTtcbiAgICAgICAgICAgIH0pO1xuICAgIH1cblxuICAgIHN0b3AgKCkge1xuICAgICAgICByZXR1cm4gc3VwZXIuc3RvcCgpXG4gICAgICAgICAgICAudGhlbigoKSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuY29udHJvbGxlci5leGl0KCk7XG4gICAgICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBleGl0ICgpIHtcbiAgICAgICAgaWYgKHRoaXMucnVubmVyVGFza1Byb21pc2UpXG4gICAgICAgICAgICB0aGlzLnJ1bm5lclRhc2tQcm9taXNlLmNhbmNlbCgpO1xuXG4gICAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoKVxuICAgICAgICAgICAgLnRoZW4oKCkgPT4gdGhpcy5zdG9wSW5maW5pdGVXYWl0aW5nKCkpXG4gICAgICAgICAgICAudGhlbigoKSA9PiB0aGlzLl9ydW5uaW5nKTtcbiAgICB9XG5cbiAgICBhc3luYyBfZmluaXNoUHJldmlvdXNUZXN0UnVucyAoKSB7XG4gICAgICAgIGlmICghdGhpcy5jb25maWd1cmF0aW9uQ2FjaGU/LnRlc3RzKSByZXR1cm47XG5cbiAgICAgICAgdGhpcy50ZXN0UnVuQ29udHJvbGxlci5ydW4oKTtcbiAgICB9XG5cbiAgICBfdmFsaWRhdGVSdW5uYWJsZUNvbmZpZ3VyYXRpb24gKGlzRmlyc3RSdW4pIHtcbiAgICAgICAgaWYgKGlzRmlyc3RSdW4pIHtcbiAgICAgICAgICAgIGlmICh0aGlzLmJvb3RzdHJhcHBpbmdFcnJvcilcbiAgICAgICAgICAgICAgICByZXR1cm4gUHJvbWlzZS5yZWplY3QodGhpcy5ib290c3RyYXBwaW5nRXJyb3IpO1xuXG4gICAgICAgICAgICBlbHNlIGlmICghdGhpcy5jb25maWd1cmF0aW9uQ2FjaGUpIHtcbiAgICAgICAgICAgICAgICAvLyBOT1RFOiBTdWNoIGVycm9ycyBoYW5kbGVkIGluIHByb2Nlc3Mub24oJ3VuaGFuZGxlZFJlamVjdGlvbicpIGhhbmRsZXIuXG4gICAgICAgICAgICAgICAgcmV0dXJuIFByb21pc2UucmVqZWN0KG51bGwpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKCk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdGhpcy5ib290c3RyYXBwZXIuX2dldFRlc3RzKClcbiAgICAgICAgICAgIC50aGVuKHRlc3RzID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLmNvbmZpZ3VyYXRpb25DYWNoZS50ZXN0cyA9IHRlc3RzO1xuXG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuYm9vdHN0cmFwcGluZ0Vycm9yID8gUHJvbWlzZS5yZWplY3QodGhpcy5ib290c3RyYXBwaW5nRXJyb3IpIDogUHJvbWlzZS5yZXNvbHZlKCk7XG4gICAgICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBfY3JlYXRlVGFzayAodGVzdHMsIGJyb3dzZXJDb25uZWN0aW9uR3JvdXBzLCBwcm94eSwgb3B0cykge1xuICAgICAgICBvcHRzLmxpdmUgPSB0cnVlO1xuXG4gICAgICAgIHJldHVybiBzdXBlci5fY3JlYXRlVGFzayh0ZXN0cywgYnJvd3NlckNvbm5lY3Rpb25Hcm91cHMsIHByb3h5LCBvcHRzLCB0aGlzLndhcm5pbmdMb2cpO1xuICAgIH1cblxuICAgIF9jcmVhdGVCb290c3RyYXBwZXIgKGJyb3dzZXJDb25uZWN0aW9uR2F0ZXdheSwgY29tcGlsZXJTZXJ2aWNlLCBtZXNzYWdlQnVzKSB7XG4gICAgICAgIHJldHVybiBuZXcgTGl2ZU1vZGVCb290c3RyYXBwZXIodGhpcywgYnJvd3NlckNvbm5lY3Rpb25HYXRld2F5LCBjb21waWxlclNlcnZpY2UsIG1lc3NhZ2VCdXMpO1xuICAgIH1cblxuICAgIF9jcmVhdGVDb250cm9sbGVyICgpIHtcbiAgICAgICAgcmV0dXJuIG5ldyBMaXZlTW9kZUNvbnRyb2xsZXIodGhpcyk7XG4gICAgfVxuXG4gICAgX3dhaXRVbnRpbEV4aXQgKCkge1xuICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5zdG9wSW5maW5pdGVXYWl0aW5nICAgPSByZXNvbHZlO1xuICAgICAgICAgICAgdGhpcy5yZWplY3RJbmZpbml0ZVdhaXRpbmcgPSByZWplY3Q7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIF9kaXNwb3NlQXNzZXRzIChicm93c2VyU2V0LCByZXBvcnRlcnMsIHRlc3RlZEFwcCkge1xuICAgICAgICB0aGlzLmFzc2V0cyA9IHsgYnJvd3NlclNldCwgcmVwb3J0ZXJzLCB0ZXN0ZWRBcHAgfTtcblxuICAgICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKCk7XG4gICAgfVxuXG4gICAgX2Rpc3Bvc2UgKCkge1xuICAgICAgICB0aGlzLmNvbnRyb2xsZXIuZGlzcG9zZSgpO1xuXG4gICAgICAgIGlmICghdGhpcy5hc3NldHMpXG4gICAgICAgICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKCk7XG5cbiAgICAgICAgY29uc3QgeyBicm93c2VyU2V0LCByZXBvcnRlcnMsIHRlc3RlZEFwcCB9ID0gdGhpcy5hc3NldHM7XG5cbiAgICAgICAgcmV0dXJuIHN1cGVyLl9kaXNwb3NlQXNzZXRzKGJyb3dzZXJTZXQsIHJlcG9ydGVycywgdGVzdGVkQXBwKTtcbiAgICB9XG59XG5cbmV4cG9ydCBkZWZhdWx0IExpdmVNb2RlUnVubmVyO1xuIl19
|
|
@@ -4,13 +4,14 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
const connection_1 = __importDefault(require("../browser/connection"));
|
|
7
|
+
const errors_1 = require("./errors");
|
|
7
8
|
class ProxylessApiBase {
|
|
8
9
|
constructor(browserId, client) {
|
|
9
10
|
this._client = client;
|
|
10
11
|
this._browserConnection = connection_1.default.getById(browserId);
|
|
11
12
|
}
|
|
12
13
|
async init() {
|
|
13
|
-
throw
|
|
14
|
+
throw (0, errors_1.notImplementedError)();
|
|
14
15
|
}
|
|
15
16
|
get _testRun() {
|
|
16
17
|
return this._browserConnection.getCurrentTestRun();
|
|
@@ -22,4 +23,4 @@ class ProxylessApiBase {
|
|
|
22
23
|
}
|
|
23
24
|
exports.default = ProxylessApiBase;
|
|
24
25
|
module.exports = exports.default;
|
|
25
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
26
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpLWJhc2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcHJveHlsZXNzL2FwaS1iYXNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQ0EsdUVBQXNEO0FBRXRELHFDQUErQztBQUUvQyxNQUFxQixnQkFBZ0I7SUFJakMsWUFBYSxTQUFpQixFQUFFLE1BQW1CO1FBQy9DLElBQUksQ0FBQyxPQUFPLEdBQUcsTUFBTSxDQUFDO1FBQ3RCLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxvQkFBaUIsQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFzQixDQUFDO0lBQ3hGLENBQUM7SUFFTSxLQUFLLENBQUMsSUFBSTtRQUNiLE1BQU0sSUFBQSw0QkFBbUIsR0FBRSxDQUFDO0lBQ2hDLENBQUM7SUFFRCxJQUFjLFFBQVE7UUFDbEIsT0FBTyxJQUFJLENBQUMsa0JBQWtCLENBQUMsaUJBQWlCLEVBQWEsQ0FBQztJQUNsRSxDQUFDO0lBRVMsS0FBSyxDQUFDLGNBQWM7UUFDMUIsTUFBTSxFQUFFLFNBQVMsRUFBRSxHQUFHLE1BQU0sSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7UUFFN0QsT0FBTyxJQUFJLEdBQUcsQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ3hDLENBQUM7Q0FDSjtBQXRCRCxtQ0FzQkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQcm90b2NvbEFwaSB9IGZyb20gJ2Nocm9tZS1yZW1vdGUtaW50ZXJmYWNlJztcbmltcG9ydCBCcm93c2VyQ29ubmVjdGlvbiBmcm9tICcuLi9icm93c2VyL2Nvbm5lY3Rpb24nO1xuaW1wb3J0IFRlc3RSdW4gZnJvbSAnLi4vdGVzdC1ydW4nO1xuaW1wb3J0IHsgbm90SW1wbGVtZW50ZWRFcnJvciB9IGZyb20gJy4vZXJyb3JzJztcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgUHJveHlsZXNzQXBpQmFzZSB7XG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IF9jbGllbnQ6IFByb3RvY29sQXBpO1xuICAgIHByb3RlY3RlZCByZWFkb25seSBfYnJvd3NlckNvbm5lY3Rpb246IEJyb3dzZXJDb25uZWN0aW9uO1xuXG4gICAgY29uc3RydWN0b3IgKGJyb3dzZXJJZDogc3RyaW5nLCBjbGllbnQ6IFByb3RvY29sQXBpKSB7XG4gICAgICAgIHRoaXMuX2NsaWVudCA9IGNsaWVudDtcbiAgICAgICAgdGhpcy5fYnJvd3NlckNvbm5lY3Rpb24gPSBCcm93c2VyQ29ubmVjdGlvbi5nZXRCeUlkKGJyb3dzZXJJZCkgYXMgQnJvd3NlckNvbm5lY3Rpb247XG4gICAgfVxuXG4gICAgcHVibGljIGFzeW5jIGluaXQgKCk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICB0aHJvdyBub3RJbXBsZW1lbnRlZEVycm9yKCk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGdldCBfdGVzdFJ1biAoKTogVGVzdFJ1biB7XG4gICAgICAgIHJldHVybiB0aGlzLl9icm93c2VyQ29ubmVjdGlvbi5nZXRDdXJyZW50VGVzdFJ1bigpIGFzIFRlc3RSdW47XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGFzeW5jIF9nZXRDdXJyZW50VXJsICgpOiBQcm9taXNlPFVSTD4ge1xuICAgICAgICBjb25zdCB7IGZyYW1lVHJlZSB9ID0gYXdhaXQgdGhpcy5fY2xpZW50LlBhZ2UuZ2V0RnJhbWVUcmVlKCk7XG5cbiAgICAgICAgcmV0dXJuIG5ldyBVUkwoZnJhbWVUcmVlLmZyYW1lLnVybCk7XG4gICAgfVxufVxuIl19
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const types_1 = require("../types");
|
|
4
|
+
// @ts-ignore
|
|
5
|
+
const hammerhead_1 = require("../../client/core/deps/hammerhead");
|
|
6
|
+
const utils_1 = require("./utils");
|
|
7
|
+
const MOUSE_EVENT_OPTIONS = {
|
|
8
|
+
clickCount: 1,
|
|
9
|
+
button: 'left',
|
|
10
|
+
};
|
|
11
|
+
class CDPEventDescriptor {
|
|
12
|
+
static _getKeyDownEventText(options) {
|
|
13
|
+
if (options.isNewLine)
|
|
14
|
+
return '\r';
|
|
15
|
+
if (options.keyProperty.length === 1)
|
|
16
|
+
return options.keyProperty;
|
|
17
|
+
return '';
|
|
18
|
+
}
|
|
19
|
+
static createKeyDownOptions(options) {
|
|
20
|
+
const text = CDPEventDescriptor._getKeyDownEventText(options);
|
|
21
|
+
return {
|
|
22
|
+
type: text ? 'keyDown' : 'rawKeyDown',
|
|
23
|
+
modifiers: options.modifiers || 0,
|
|
24
|
+
windowsVirtualKeyCode: options.keyCode,
|
|
25
|
+
key: options.keyProperty,
|
|
26
|
+
text,
|
|
27
|
+
};
|
|
28
|
+
}
|
|
29
|
+
static createKeyUpOptions(options) {
|
|
30
|
+
return {
|
|
31
|
+
type: 'keyUp',
|
|
32
|
+
modifiers: options.modifiers || 0,
|
|
33
|
+
key: options.keyProperty,
|
|
34
|
+
windowsVirtualKeyCode: options.keyCode,
|
|
35
|
+
};
|
|
36
|
+
}
|
|
37
|
+
static createMouseEventOptions(type, options, leftTopPoint) {
|
|
38
|
+
return hammerhead_1.utils.extend({
|
|
39
|
+
x: options.options.clientX + leftTopPoint.x,
|
|
40
|
+
y: options.options.clientY + leftTopPoint.y,
|
|
41
|
+
modifiers: (0, utils_1.calculateKeyModifiersValue)(options.options),
|
|
42
|
+
button: (0, utils_1.calculateMouseButtonValue)(options.options),
|
|
43
|
+
type,
|
|
44
|
+
}, MOUSE_EVENT_OPTIONS);
|
|
45
|
+
}
|
|
46
|
+
static delay(delay) {
|
|
47
|
+
return {
|
|
48
|
+
type: types_1.EventType.Delay,
|
|
49
|
+
options: { delay },
|
|
50
|
+
};
|
|
51
|
+
}
|
|
52
|
+
static keyDown(keyInfo) {
|
|
53
|
+
return {
|
|
54
|
+
type: types_1.EventType.Keyboard,
|
|
55
|
+
options: CDPEventDescriptor.createKeyDownOptions(keyInfo),
|
|
56
|
+
};
|
|
57
|
+
}
|
|
58
|
+
static keyUp(keyInfo) {
|
|
59
|
+
return {
|
|
60
|
+
type: types_1.EventType.Keyboard,
|
|
61
|
+
options: CDPEventDescriptor.createKeyUpOptions(keyInfo),
|
|
62
|
+
};
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
exports.default = CDPEventDescriptor;
|
|
66
|
+
module.exports = exports.default;
|
|
67
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXZlbnQtZGVzY3JpcHRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9wcm94eWxlc3MvY2xpZW50L2V2ZW50LWRlc2NyaXB0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxvQ0FBcUM7QUFFckMsYUFBYTtBQUNiLGtFQUEwRDtBQUMxRCxtQ0FBZ0Y7QUFHaEYsTUFBTSxtQkFBbUIsR0FBRztJQUN4QixVQUFVLEVBQUUsQ0FBQztJQUNiLE1BQU0sRUFBTSxNQUFNO0NBQ3JCLENBQUM7QUFFRixNQUFxQixrQkFBa0I7SUFDM0IsTUFBTSxDQUFDLG9CQUFvQixDQUFFLE9BQXlCO1FBQzFELElBQUksT0FBTyxDQUFDLFNBQVM7WUFDakIsT0FBTyxJQUFJLENBQUM7UUFFaEIsSUFBSSxPQUFPLENBQUMsV0FBVyxDQUFDLE1BQU0sS0FBSyxDQUFDO1lBQ2hDLE9BQU8sT0FBTyxDQUFDLFdBQVcsQ0FBQztRQUUvQixPQUFPLEVBQUUsQ0FBQztJQUNkLENBQUM7SUFFTSxNQUFNLENBQUMsb0JBQW9CLENBQUUsT0FBeUI7UUFDekQsTUFBTSxJQUFJLEdBQUcsa0JBQWtCLENBQUMsb0JBQW9CLENBQUMsT0FBTyxDQUFDLENBQUM7UUFFOUQsT0FBTztZQUNILElBQUksRUFBbUIsSUFBSSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLFlBQVk7WUFDdEQsU0FBUyxFQUFjLE9BQU8sQ0FBQyxTQUFTLElBQUksQ0FBQztZQUM3QyxxQkFBcUIsRUFBRSxPQUFPLENBQUMsT0FBTztZQUN0QyxHQUFHLEVBQW9CLE9BQU8sQ0FBQyxXQUFXO1lBQzFDLElBQUk7U0FDUCxDQUFDO0lBQ04sQ0FBQztJQUVNLE1BQU0sQ0FBQyxrQkFBa0IsQ0FBRSxPQUF5QjtRQUN2RCxPQUFPO1lBQ0gsSUFBSSxFQUFtQixPQUFPO1lBQzlCLFNBQVMsRUFBYyxPQUFPLENBQUMsU0FBUyxJQUFJLENBQUM7WUFDN0MsR0FBRyxFQUFvQixPQUFPLENBQUMsV0FBVztZQUMxQyxxQkFBcUIsRUFBRSxPQUFPLENBQUMsT0FBTztTQUN6QyxDQUFDO0lBQ04sQ0FBQztJQUVNLE1BQU0sQ0FBQyx1QkFBdUIsQ0FBRSxJQUFZLEVBQUUsT0FBWSxFQUFFLFlBQWdDO1FBQy9GLE9BQU8sa0JBQUssQ0FBQyxNQUFNLENBQUM7WUFDaEIsQ0FBQyxFQUFVLE9BQU8sQ0FBQyxPQUFPLENBQUMsT0FBTyxHQUFHLFlBQVksQ0FBQyxDQUFDO1lBQ25ELENBQUMsRUFBVSxPQUFPLENBQUMsT0FBTyxDQUFDLE9BQU8sR0FBRyxZQUFZLENBQUMsQ0FBQztZQUNuRCxTQUFTLEVBQUUsSUFBQSxrQ0FBMEIsRUFBQyxPQUFPLENBQUMsT0FBTyxDQUFDO1lBQ3RELE1BQU0sRUFBSyxJQUFBLGlDQUF5QixFQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUM7WUFDckQsSUFBSTtTQUNQLEVBQUUsbUJBQW1CLENBQUMsQ0FBQztJQUM1QixDQUFDO0lBRU0sTUFBTSxDQUFDLEtBQUssQ0FBRSxLQUFhO1FBQzlCLE9BQU87WUFDSCxJQUFJLEVBQUssaUJBQVMsQ0FBQyxLQUFLO1lBQ3hCLE9BQU8sRUFBRSxFQUFFLEtBQUssRUFBRTtTQUNyQixDQUFDO0lBQ04sQ0FBQztJQUVNLE1BQU0sQ0FBQyxPQUFPLENBQUUsT0FBeUI7UUFDNUMsT0FBTztZQUNILElBQUksRUFBSyxpQkFBUyxDQUFDLFFBQVE7WUFDM0IsT0FBTyxFQUFFLGtCQUFrQixDQUFDLG9CQUFvQixDQUFDLE9BQU8sQ0FBQztTQUM1RCxDQUFDO0lBQ04sQ0FBQztJQUVNLE1BQU0sQ0FBQyxLQUFLLENBQUUsT0FBeUI7UUFDMUMsT0FBTztZQUNILElBQUksRUFBSyxpQkFBUyxDQUFDLFFBQVE7WUFDM0IsT0FBTyxFQUFFLGtCQUFrQixDQUFDLGtCQUFrQixDQUFDLE9BQU8sQ0FBQztTQUMxRCxDQUFDO0lBQ04sQ0FBQztDQUNKO0FBOURELHFDQThEQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEV2ZW50VHlwZSB9IGZyb20gJy4uL3R5cGVzJztcbmltcG9ydCB7IFNpbXVsYXRlZEtleUluZm8gfSBmcm9tICcuL2tleS1wcmVzcy91dGlscyc7XG4vLyBAdHMtaWdub3JlXG5pbXBvcnQgeyB1dGlscyB9IGZyb20gJy4uLy4uL2NsaWVudC9jb3JlL2RlcHMvaGFtbWVyaGVhZCc7XG5pbXBvcnQgeyBjYWxjdWxhdGVLZXlNb2RpZmllcnNWYWx1ZSwgY2FsY3VsYXRlTW91c2VCdXR0b25WYWx1ZSB9IGZyb20gJy4vdXRpbHMnO1xuaW1wb3J0IEF4aXNWYWx1ZXMgZnJvbSAnLi4vLi4vY2xpZW50L2NvcmUvdXRpbHMvdmFsdWVzL2F4aXMtdmFsdWVzJztcblxuY29uc3QgTU9VU0VfRVZFTlRfT1BUSU9OUyA9IHtcbiAgICBjbGlja0NvdW50OiAxLFxuICAgIGJ1dHRvbjogICAgICdsZWZ0Jyxcbn07XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIENEUEV2ZW50RGVzY3JpcHRvciB7XG4gICAgcHJpdmF0ZSBzdGF0aWMgX2dldEtleURvd25FdmVudFRleHQgKG9wdGlvbnM6IFNpbXVsYXRlZEtleUluZm8pOiBhbnkge1xuICAgICAgICBpZiAob3B0aW9ucy5pc05ld0xpbmUpXG4gICAgICAgICAgICByZXR1cm4gJ1xccic7XG5cbiAgICAgICAgaWYgKG9wdGlvbnMua2V5UHJvcGVydHkubGVuZ3RoID09PSAxKVxuICAgICAgICAgICAgcmV0dXJuIG9wdGlvbnMua2V5UHJvcGVydHk7XG5cbiAgICAgICAgcmV0dXJuICcnO1xuICAgIH1cblxuICAgIHB1YmxpYyBzdGF0aWMgY3JlYXRlS2V5RG93bk9wdGlvbnMgKG9wdGlvbnM6IFNpbXVsYXRlZEtleUluZm8pOiBhbnkge1xuICAgICAgICBjb25zdCB0ZXh0ID0gQ0RQRXZlbnREZXNjcmlwdG9yLl9nZXRLZXlEb3duRXZlbnRUZXh0KG9wdGlvbnMpO1xuXG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICB0eXBlOiAgICAgICAgICAgICAgICAgIHRleHQgPyAna2V5RG93bicgOiAncmF3S2V5RG93bicsXG4gICAgICAgICAgICBtb2RpZmllcnM6ICAgICAgICAgICAgIG9wdGlvbnMubW9kaWZpZXJzIHx8IDAsXG4gICAgICAgICAgICB3aW5kb3dzVmlydHVhbEtleUNvZGU6IG9wdGlvbnMua2V5Q29kZSxcbiAgICAgICAgICAgIGtleTogICAgICAgICAgICAgICAgICAgb3B0aW9ucy5rZXlQcm9wZXJ0eSxcbiAgICAgICAgICAgIHRleHQsXG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgcHVibGljIHN0YXRpYyBjcmVhdGVLZXlVcE9wdGlvbnMgKG9wdGlvbnM6IFNpbXVsYXRlZEtleUluZm8pOiBhbnkge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgdHlwZTogICAgICAgICAgICAgICAgICAna2V5VXAnLFxuICAgICAgICAgICAgbW9kaWZpZXJzOiAgICAgICAgICAgICBvcHRpb25zLm1vZGlmaWVycyB8fCAwLFxuICAgICAgICAgICAga2V5OiAgICAgICAgICAgICAgICAgICBvcHRpb25zLmtleVByb3BlcnR5LFxuICAgICAgICAgICAgd2luZG93c1ZpcnR1YWxLZXlDb2RlOiBvcHRpb25zLmtleUNvZGUsXG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgcHVibGljIHN0YXRpYyBjcmVhdGVNb3VzZUV2ZW50T3B0aW9ucyAodHlwZTogc3RyaW5nLCBvcHRpb25zOiBhbnksIGxlZnRUb3BQb2ludDogQXhpc1ZhbHVlczxudW1iZXI+KTogYW55IHtcbiAgICAgICAgcmV0dXJuIHV0aWxzLmV4dGVuZCh7XG4gICAgICAgICAgICB4OiAgICAgICAgIG9wdGlvbnMub3B0aW9ucy5jbGllbnRYICsgbGVmdFRvcFBvaW50LngsXG4gICAgICAgICAgICB5OiAgICAgICAgIG9wdGlvbnMub3B0aW9ucy5jbGllbnRZICsgbGVmdFRvcFBvaW50LnksXG4gICAgICAgICAgICBtb2RpZmllcnM6IGNhbGN1bGF0ZUtleU1vZGlmaWVyc1ZhbHVlKG9wdGlvbnMub3B0aW9ucyksXG4gICAgICAgICAgICBidXR0b246ICAgIGNhbGN1bGF0ZU1vdXNlQnV0dG9uVmFsdWUob3B0aW9ucy5vcHRpb25zKSxcbiAgICAgICAgICAgIHR5cGUsXG4gICAgICAgIH0sIE1PVVNFX0VWRU5UX09QVElPTlMpO1xuICAgIH1cblxuICAgIHB1YmxpYyBzdGF0aWMgZGVsYXkgKGRlbGF5OiBudW1iZXIpOiBhbnkge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgdHlwZTogICAgRXZlbnRUeXBlLkRlbGF5LFxuICAgICAgICAgICAgb3B0aW9uczogeyBkZWxheSB9LFxuICAgICAgICB9O1xuICAgIH1cblxuICAgIHB1YmxpYyBzdGF0aWMga2V5RG93biAoa2V5SW5mbzogU2ltdWxhdGVkS2V5SW5mbyk6IGFueSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICB0eXBlOiAgICBFdmVudFR5cGUuS2V5Ym9hcmQsXG4gICAgICAgICAgICBvcHRpb25zOiBDRFBFdmVudERlc2NyaXB0b3IuY3JlYXRlS2V5RG93bk9wdGlvbnMoa2V5SW5mbyksXG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgcHVibGljIHN0YXRpYyBrZXlVcCAoa2V5SW5mbzogU2ltdWxhdGVkS2V5SW5mbyk6IGFueSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICB0eXBlOiAgICBFdmVudFR5cGUuS2V5Ym9hcmQsXG4gICAgICAgICAgICBvcHRpb25zOiBDRFBFdmVudERlc2NyaXB0b3IuY3JlYXRlS2V5VXBPcHRpb25zKGtleUluZm8pLFxuICAgICAgICB9O1xuICAgIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,36 @@
|
|
|
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 types_1 = require("../types");
|
|
7
|
+
const axis_values_1 = __importDefault(require("../../client/core/utils/values/axis-values"));
|
|
8
|
+
const event_descriptor_1 = __importDefault(require("./event-descriptor"));
|
|
9
|
+
class ProxylessInput {
|
|
10
|
+
constructor(dispatchEventFn, leftTopPoint) {
|
|
11
|
+
this._dispatchEventFn = dispatchEventFn;
|
|
12
|
+
this._leftTopPoint = leftTopPoint || new axis_values_1.default(0, 0);
|
|
13
|
+
}
|
|
14
|
+
mouseDown(options) {
|
|
15
|
+
const eventOptions = event_descriptor_1.default.createMouseEventOptions('mousePressed', options, this._leftTopPoint);
|
|
16
|
+
return this._dispatchEventFn.single(types_1.EventType.Mouse, eventOptions);
|
|
17
|
+
}
|
|
18
|
+
mouseUp(options) {
|
|
19
|
+
const eventOptions = event_descriptor_1.default.createMouseEventOptions('mouseReleased', options, this._leftTopPoint);
|
|
20
|
+
return this._dispatchEventFn.single(types_1.EventType.Mouse, eventOptions);
|
|
21
|
+
}
|
|
22
|
+
keyDown(options) {
|
|
23
|
+
const eventOptions = event_descriptor_1.default.createKeyDownOptions(options);
|
|
24
|
+
return this._dispatchEventFn.single(types_1.EventType.Keyboard, eventOptions);
|
|
25
|
+
}
|
|
26
|
+
keyUp(options) {
|
|
27
|
+
const eventOptions = event_descriptor_1.default.createKeyUpOptions(options);
|
|
28
|
+
return this._dispatchEventFn.single(types_1.EventType.Keyboard, eventOptions);
|
|
29
|
+
}
|
|
30
|
+
executeEventSequence(eventSequence) {
|
|
31
|
+
return this._dispatchEventFn.sequence(eventSequence);
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
exports.default = ProxylessInput;
|
|
35
|
+
module.exports = exports.default;
|
|
36
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvcHJveHlsZXNzL2NsaWVudC9pbnB1dC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLG9DQUFxQztBQUNyQyw2RkFBb0U7QUFHcEUsMEVBQW9EO0FBRXBELE1BQXFCLGNBQWM7SUFJL0IsWUFBYSxlQUFnQyxFQUFFLFlBQWlDO1FBQzVFLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxlQUFlLENBQUM7UUFDeEMsSUFBSSxDQUFDLGFBQWEsR0FBTSxZQUFZLElBQUksSUFBSSxxQkFBVSxDQUFTLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUN6RSxDQUFDO0lBRU0sU0FBUyxDQUFFLE9BQVk7UUFDMUIsTUFBTSxZQUFZLEdBQUcsMEJBQWtCLENBQUMsdUJBQXVCLENBQUMsY0FBYyxFQUFFLE9BQU8sRUFBRSxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUM7UUFFN0csT0FBTyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxDQUFDLGlCQUFTLENBQUMsS0FBSyxFQUFFLFlBQVksQ0FBQyxDQUFDO0lBQ3ZFLENBQUM7SUFFTSxPQUFPLENBQUUsT0FBWTtRQUN4QixNQUFNLFlBQVksR0FBRywwQkFBa0IsQ0FBQyx1QkFBdUIsQ0FBQyxlQUFlLEVBQUUsT0FBTyxFQUFFLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUU5RyxPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLENBQUMsaUJBQVMsQ0FBQyxLQUFLLEVBQUUsWUFBWSxDQUFDLENBQUM7SUFDdkUsQ0FBQztJQUVNLE9BQU8sQ0FBRSxPQUF5QjtRQUNyQyxNQUFNLFlBQVksR0FBRywwQkFBa0IsQ0FBQyxvQkFBb0IsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUV0RSxPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLENBQUMsaUJBQVMsQ0FBQyxRQUFRLEVBQUUsWUFBWSxDQUFDLENBQUM7SUFDMUUsQ0FBQztJQUNNLEtBQUssQ0FBRSxPQUF5QjtRQUNuQyxNQUFNLFlBQVksR0FBRywwQkFBa0IsQ0FBQyxrQkFBa0IsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUVwRSxPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLENBQUMsaUJBQVMsQ0FBQyxRQUFRLEVBQUUsWUFBWSxDQUFDLENBQUM7SUFDMUUsQ0FBQztJQUVNLG9CQUFvQixDQUFFLGFBQW9CO1FBQzdDLE9BQU8sSUFBSSxDQUFDLGdCQUFnQixDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUN6RCxDQUFDO0NBQ0o7QUFuQ0QsaUNBbUNDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRXZlbnRUeXBlIH0gZnJvbSAnLi4vdHlwZXMnO1xuaW1wb3J0IEF4aXNWYWx1ZXMgZnJvbSAnLi4vLi4vY2xpZW50L2NvcmUvdXRpbHMvdmFsdWVzL2F4aXMtdmFsdWVzJztcbmltcG9ydCB7IFNpbXVsYXRlZEtleUluZm8gfSBmcm9tICcuL2tleS1wcmVzcy91dGlscyc7XG5pbXBvcnQgeyBEaXNwYXRjaEV2ZW50Rm4gfSBmcm9tICcuL3R5cGVzJztcbmltcG9ydCBDRFBFdmVudERlc2NyaXB0b3IgZnJvbSAnLi9ldmVudC1kZXNjcmlwdG9yJztcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgUHJveHlsZXNzSW5wdXQge1xuXG4gICAgcHJpdmF0ZSByZWFkb25seSBfZGlzcGF0Y2hFdmVudEZuOiBEaXNwYXRjaEV2ZW50Rm47XG4gICAgcHJpdmF0ZSByZWFkb25seSBfbGVmdFRvcFBvaW50OiBBeGlzVmFsdWVzPG51bWJlcj47XG4gICAgY29uc3RydWN0b3IgKGRpc3BhdGNoRXZlbnRGbjogRGlzcGF0Y2hFdmVudEZuLCBsZWZ0VG9wUG9pbnQ/OiBBeGlzVmFsdWVzPG51bWJlcj4pIHtcbiAgICAgICAgdGhpcy5fZGlzcGF0Y2hFdmVudEZuID0gZGlzcGF0Y2hFdmVudEZuO1xuICAgICAgICB0aGlzLl9sZWZ0VG9wUG9pbnQgICAgPSBsZWZ0VG9wUG9pbnQgfHwgbmV3IEF4aXNWYWx1ZXM8bnVtYmVyPigwLCAwKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgbW91c2VEb3duIChvcHRpb25zOiBhbnkpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgY29uc3QgZXZlbnRPcHRpb25zID0gQ0RQRXZlbnREZXNjcmlwdG9yLmNyZWF0ZU1vdXNlRXZlbnRPcHRpb25zKCdtb3VzZVByZXNzZWQnLCBvcHRpb25zLCB0aGlzLl9sZWZ0VG9wUG9pbnQpO1xuXG4gICAgICAgIHJldHVybiB0aGlzLl9kaXNwYXRjaEV2ZW50Rm4uc2luZ2xlKEV2ZW50VHlwZS5Nb3VzZSwgZXZlbnRPcHRpb25zKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgbW91c2VVcCAob3B0aW9uczogYW55KTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIGNvbnN0IGV2ZW50T3B0aW9ucyA9IENEUEV2ZW50RGVzY3JpcHRvci5jcmVhdGVNb3VzZUV2ZW50T3B0aW9ucygnbW91c2VSZWxlYXNlZCcsIG9wdGlvbnMsIHRoaXMuX2xlZnRUb3BQb2ludCk7XG5cbiAgICAgICAgcmV0dXJuIHRoaXMuX2Rpc3BhdGNoRXZlbnRGbi5zaW5nbGUoRXZlbnRUeXBlLk1vdXNlLCBldmVudE9wdGlvbnMpO1xuICAgIH1cblxuICAgIHB1YmxpYyBrZXlEb3duIChvcHRpb25zOiBTaW11bGF0ZWRLZXlJbmZvKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIGNvbnN0IGV2ZW50T3B0aW9ucyA9IENEUEV2ZW50RGVzY3JpcHRvci5jcmVhdGVLZXlEb3duT3B0aW9ucyhvcHRpb25zKTtcblxuICAgICAgICByZXR1cm4gdGhpcy5fZGlzcGF0Y2hFdmVudEZuLnNpbmdsZShFdmVudFR5cGUuS2V5Ym9hcmQsIGV2ZW50T3B0aW9ucyk7XG4gICAgfVxuICAgIHB1YmxpYyBrZXlVcCAob3B0aW9uczogU2ltdWxhdGVkS2V5SW5mbyk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICBjb25zdCBldmVudE9wdGlvbnMgPSBDRFBFdmVudERlc2NyaXB0b3IuY3JlYXRlS2V5VXBPcHRpb25zKG9wdGlvbnMpO1xuXG4gICAgICAgIHJldHVybiB0aGlzLl9kaXNwYXRjaEV2ZW50Rm4uc2luZ2xlKEV2ZW50VHlwZS5LZXlib2FyZCwgZXZlbnRPcHRpb25zKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZXhlY3V0ZUV2ZW50U2VxdWVuY2UgKGV2ZW50U2VxdWVuY2U6IGFueVtdKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9kaXNwYXRjaEV2ZW50Rm4uc2VxdWVuY2UoZXZlbnRTZXF1ZW5jZSk7XG4gICAgfVxufVxuIl19
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.changeLetterCaseIfNecessary = exports.getSimulatedKeyInfo = void 0;
|
|
7
|
+
const get_key_info_1 = __importDefault(require("../../../client/automation/playback/press/get-key-info"));
|
|
8
|
+
// @ts-ignore
|
|
9
|
+
const hammerhead_1 = require("../../../client/core/deps/hammerhead");
|
|
10
|
+
// @ts-ignore
|
|
11
|
+
const testcafe_core_1 = require("../../../client/automation/deps/testcafe-core");
|
|
12
|
+
const utils_1 = require("../../../client/automation/playback/press/utils");
|
|
13
|
+
const utils_2 = require("../utils");
|
|
14
|
+
const get_key_code_1 = __importDefault(require("../../../client/automation/utils/get-key-code"));
|
|
15
|
+
function getSimulatedKeyInfo(keyCombination) {
|
|
16
|
+
const keysArray = (0, testcafe_core_1.getKeyArray)(keyCombination);
|
|
17
|
+
const { actualKeys, eventKeyProperties } = (0, utils_1.getActualKeysAndEventKeyProperties)(keysArray);
|
|
18
|
+
return testcafe_core_1.arrayUtils.map(actualKeys, (key, index) => {
|
|
19
|
+
return hammerhead_1.utils.extend({ key }, (0, get_key_info_1.default)(key, eventKeyProperties[index]));
|
|
20
|
+
});
|
|
21
|
+
}
|
|
22
|
+
exports.getSimulatedKeyInfo = getSimulatedKeyInfo;
|
|
23
|
+
function changeLetterCaseIfNecessary(keyInfo) {
|
|
24
|
+
const modifiersState = (0, utils_2.getModifiersState)(keyInfo.modifiers);
|
|
25
|
+
if (modifiersState.shift && keyInfo.isLetter) {
|
|
26
|
+
keyInfo.keyProperty = (0, utils_1.changeLetterCase)(keyInfo.keyProperty);
|
|
27
|
+
keyInfo.keyCode = (0, get_key_code_1.default)(keyInfo.keyProperty);
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
exports.changeLetterCaseIfNecessary = changeLetterCaseIfNecessary;
|
|
31
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvcHJveHlsZXNzL2NsaWVudC9rZXktcHJlc3MvdXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsMEdBQWdGO0FBQ2hGLGFBQWE7QUFDYixxRUFBNkQ7QUFDN0QsYUFBYTtBQUNiLGlGQUF3RjtBQUN4RiwyRUFBdUg7QUFDdkgsb0NBQTZDO0FBQzdDLGlHQUF1RTtBQWF2RSxTQUFnQixtQkFBbUIsQ0FBRSxjQUFzQjtJQUN2RCxNQUFNLFNBQVMsR0FBNEIsSUFBQSwyQkFBVyxFQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQ3ZFLE1BQU0sRUFBRSxVQUFVLEVBQUUsa0JBQWtCLEVBQUUsR0FBRyxJQUFBLDBDQUFrQyxFQUFDLFNBQVMsQ0FBQyxDQUFDO0lBRXpGLE9BQU8sMEJBQVUsQ0FBQyxHQUFHLENBQUMsVUFBVSxFQUFFLENBQUMsR0FBVyxFQUFFLEtBQWEsRUFBRSxFQUFFO1FBQzdELE9BQU8sa0JBQUssQ0FBQyxNQUFNLENBQUMsRUFBRSxHQUFHLEVBQUUsRUFBRSxJQUFBLHNCQUFVLEVBQUMsR0FBRyxFQUFFLGtCQUFrQixDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUM3RSxDQUFDLENBQUMsQ0FBQztBQUNQLENBQUM7QUFQRCxrREFPQztBQUVELFNBQWdCLDJCQUEyQixDQUFFLE9BQXlCO0lBQ2xFLE1BQU0sY0FBYyxHQUFHLElBQUEseUJBQWlCLEVBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBRTVELElBQUksY0FBYyxDQUFDLEtBQUssSUFBSSxPQUFPLENBQUMsUUFBUSxFQUFFO1FBQzFDLE9BQU8sQ0FBQyxXQUFXLEdBQUcsSUFBQSx3QkFBZ0IsRUFBQyxPQUFPLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDNUQsT0FBTyxDQUFDLE9BQU8sR0FBTyxJQUFBLHNCQUFVLEVBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxDQUFDO0tBQ3pEO0FBQ0wsQ0FBQztBQVBELGtFQU9DIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGdldEtleUluZm8gZnJvbSAnLi4vLi4vLi4vY2xpZW50L2F1dG9tYXRpb24vcGxheWJhY2svcHJlc3MvZ2V0LWtleS1pbmZvJztcbi8vIEB0cy1pZ25vcmVcbmltcG9ydCB7IHV0aWxzIH0gZnJvbSAnLi4vLi4vLi4vY2xpZW50L2NvcmUvZGVwcy9oYW1tZXJoZWFkJztcbi8vIEB0cy1pZ25vcmVcbmltcG9ydCB7IGdldEtleUFycmF5LCBhcnJheVV0aWxzIH0gZnJvbSAnLi4vLi4vLi4vY2xpZW50L2F1dG9tYXRpb24vZGVwcy90ZXN0Y2FmZS1jb3JlJztcbmltcG9ydCB7IGNoYW5nZUxldHRlckNhc2UsIGdldEFjdHVhbEtleXNBbmRFdmVudEtleVByb3BlcnRpZXMgfSBmcm9tICcuLi8uLi8uLi9jbGllbnQvYXV0b21hdGlvbi9wbGF5YmFjay9wcmVzcy91dGlscyc7XG5pbXBvcnQgeyBnZXRNb2RpZmllcnNTdGF0ZSB9IGZyb20gJy4uL3V0aWxzJztcbmltcG9ydCBnZXRLZXlDb2RlIGZyb20gJy4uLy4uLy4uL2NsaWVudC9hdXRvbWF0aW9uL3V0aWxzL2dldC1rZXktY29kZSc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2ltdWxhdGVkS2V5SW5mbyB7XG4gICAga2V5OiBzdHJpbmc7XG4gICAga2V5Q29kZTogbnVtYmVyO1xuICAgIGtleVByb3BlcnR5OiBzdHJpbmc7XG4gICAgbW9kaWZpZXJzOiBudW1iZXI7XG4gICAgbW9kaWZpZXJLZXlDb2RlOiBudW1iZXI7XG4gICAgaXNMZXR0ZXI6IGJvb2xlYW47XG4gICAgaXNDaGFyOiBib29sZWFuO1xuICAgIGlzTmV3TGluZTogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldFNpbXVsYXRlZEtleUluZm8gKGtleUNvbWJpbmF0aW9uOiBzdHJpbmcpOiBTaW11bGF0ZWRLZXlJbmZvW10ge1xuICAgIGNvbnN0IGtleXNBcnJheSAgICAgICAgICAgICAgICAgICAgICAgICAgPSBnZXRLZXlBcnJheShrZXlDb21iaW5hdGlvbik7XG4gICAgY29uc3QgeyBhY3R1YWxLZXlzLCBldmVudEtleVByb3BlcnRpZXMgfSA9IGdldEFjdHVhbEtleXNBbmRFdmVudEtleVByb3BlcnRpZXMoa2V5c0FycmF5KTtcblxuICAgIHJldHVybiBhcnJheVV0aWxzLm1hcChhY3R1YWxLZXlzLCAoa2V5OiBzdHJpbmcsIGluZGV4OiBudW1iZXIpID0+IHtcbiAgICAgICAgcmV0dXJuIHV0aWxzLmV4dGVuZCh7IGtleSB9LCBnZXRLZXlJbmZvKGtleSwgZXZlbnRLZXlQcm9wZXJ0aWVzW2luZGV4XSkpO1xuICAgIH0pO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY2hhbmdlTGV0dGVyQ2FzZUlmTmVjZXNzYXJ5IChrZXlJbmZvOiBTaW11bGF0ZWRLZXlJbmZvKTogdm9pZCB7XG4gICAgY29uc3QgbW9kaWZpZXJzU3RhdGUgPSBnZXRNb2RpZmllcnNTdGF0ZShrZXlJbmZvLm1vZGlmaWVycyk7XG5cbiAgICBpZiAobW9kaWZpZXJzU3RhdGUuc2hpZnQgJiYga2V5SW5mby5pc0xldHRlcikge1xuICAgICAgICBrZXlJbmZvLmtleVByb3BlcnR5ID0gY2hhbmdlTGV0dGVyQ2FzZShrZXlJbmZvLmtleVByb3BlcnR5KTtcbiAgICAgICAga2V5SW5mby5rZXlDb2RlICAgICA9IGdldEtleUNvZGUoa2V5SW5mby5rZXlQcm9wZXJ0eSk7XG4gICAgfVxufVxuIl19
|