@testim/testim-cli 3.274.0 → 3.275.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.
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "@testim/testim-cli",
3
- "version": "3.274.0",
3
+ "version": "3.275.0",
4
4
  "lockfileVersion": 2,
5
5
  "requires": true,
6
6
  "packages": {
7
7
  "": {
8
8
  "name": "@testim/testim-cli",
9
- "version": "3.274.0",
9
+ "version": "3.275.0",
10
10
  "license": "Proprietary",
11
11
  "dependencies": {
12
12
  "@applitools/eyes-sdk-core": "13.11.21",
@@ -2344,9 +2344,9 @@
2344
2344
  }
2345
2345
  },
2346
2346
  "node_modules/aws4": {
2347
- "version": "1.11.0",
2348
- "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.11.0.tgz",
2349
- "integrity": "sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA=="
2347
+ "version": "1.12.0",
2348
+ "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.12.0.tgz",
2349
+ "integrity": "sha512-NmWvPnx0F1SfrQbYwOi7OeaNGokp9XhzNioJ/CSBs8Qa4vxug81mhJEAVZwxXuBmYB5KDRfMq/F3RR0BIU7sWg=="
2350
2350
  },
2351
2351
  "node_modules/axios": {
2352
2352
  "version": "0.21.4",
@@ -4165,16 +4165,18 @@
4165
4165
  }
4166
4166
  },
4167
4167
  "node_modules/deep-equal": {
4168
- "version": "2.1.0",
4169
- "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-2.1.0.tgz",
4170
- "integrity": "sha512-2pxgvWu3Alv1PoWEyVg7HS8YhGlUFUV7N5oOvfL6d+7xAmLSemMwv/c8Zv/i9KFzxV5Kt5CAvQc70fLwVuf4UA==",
4168
+ "version": "2.2.0",
4169
+ "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-2.2.0.tgz",
4170
+ "integrity": "sha512-RdpzE0Hv4lhowpIUKKMJfeH6C1pXdtT1/it80ubgWqwI3qpuxUBpC1S4hnHg+zjnuOoDkzUtUCEEkG+XG5l3Mw==",
4171
4171
  "dependencies": {
4172
4172
  "call-bind": "^1.0.2",
4173
4173
  "es-get-iterator": "^1.1.2",
4174
4174
  "get-intrinsic": "^1.1.3",
4175
4175
  "is-arguments": "^1.1.1",
4176
+ "is-array-buffer": "^3.0.1",
4176
4177
  "is-date-object": "^1.0.5",
4177
4178
  "is-regex": "^1.1.4",
4179
+ "is-shared-array-buffer": "^1.0.2",
4178
4180
  "isarray": "^2.0.5",
4179
4181
  "object-is": "^1.1.5",
4180
4182
  "object-keys": "^1.1.1",
@@ -4183,7 +4185,7 @@
4183
4185
  "side-channel": "^1.0.4",
4184
4186
  "which-boxed-primitive": "^1.0.2",
4185
4187
  "which-collection": "^1.0.1",
4186
- "which-typed-array": "^1.1.8"
4188
+ "which-typed-array": "^1.1.9"
4187
4189
  },
4188
4190
  "funding": {
4189
4191
  "url": "https://github.com/sponsors/ljharb"
@@ -4659,9 +4661,9 @@
4659
4661
  }
4660
4662
  },
4661
4663
  "node_modules/engine.io-parser": {
4662
- "version": "5.0.4",
4663
- "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-5.0.4.tgz",
4664
- "integrity": "sha512-+nVFp+5z1E3HcToEnO7ZIj3g+3k9389DvWtvJZz0T6/eOCPIyyxehFcedoYrZQrp0LgQbD9pPXhpMBKMd5QURg==",
4664
+ "version": "5.0.5",
4665
+ "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-5.0.5.tgz",
4666
+ "integrity": "sha512-mjEyaa4zhuuRhaSLOdjEb57X0XPP9JEsnXI4E+ivhwT0GgzUogARx4MqoY1jQyB+4Bkz3BUOmzL7t9RMKmlG3g==",
4665
4667
  "engines": {
4666
4668
  "node": ">=10.0.0"
4667
4669
  }
@@ -6962,6 +6964,19 @@
6962
6964
  "url": "https://github.com/sponsors/ljharb"
6963
6965
  }
6964
6966
  },
6967
+ "node_modules/is-array-buffer": {
6968
+ "version": "3.0.1",
6969
+ "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.1.tgz",
6970
+ "integrity": "sha512-ASfLknmY8Xa2XtB4wmbz13Wu202baeA18cJBCeCy0wXUHZF0IPyVEXqKEcd+t2fNSLLL1vC6k7lxZEojNbISXQ==",
6971
+ "dependencies": {
6972
+ "call-bind": "^1.0.2",
6973
+ "get-intrinsic": "^1.1.3",
6974
+ "is-typed-array": "^1.1.10"
6975
+ },
6976
+ "funding": {
6977
+ "url": "https://github.com/sponsors/ljharb"
6978
+ }
6979
+ },
6965
6980
  "node_modules/is-arrayish": {
6966
6981
  "version": "0.3.2",
6967
6982
  "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz",
@@ -7285,6 +7300,17 @@
7285
7300
  "url": "https://github.com/sponsors/ljharb"
7286
7301
  }
7287
7302
  },
7303
+ "node_modules/is-shared-array-buffer": {
7304
+ "version": "1.0.2",
7305
+ "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz",
7306
+ "integrity": "sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==",
7307
+ "dependencies": {
7308
+ "call-bind": "^1.0.2"
7309
+ },
7310
+ "funding": {
7311
+ "url": "https://github.com/sponsors/ljharb"
7312
+ }
7313
+ },
7288
7314
  "node_modules/is-stream": {
7289
7315
  "version": "1.1.0",
7290
7316
  "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz",
@@ -12464,9 +12490,9 @@
12464
12490
  }
12465
12491
  },
12466
12492
  "node_modules/punycode": {
12467
- "version": "2.1.1",
12468
- "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz",
12469
- "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==",
12493
+ "version": "2.2.0",
12494
+ "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.2.0.tgz",
12495
+ "integrity": "sha512-LN6QV1IJ9ZhxWTNdktaPClrNfp8xdSAYS0Zk2ddX7XsXZAxckMHPCBcHRo0cTcEIgYPRiGEkmji3Idkh2yFtYw==",
12470
12496
  "engines": {
12471
12497
  "node": ">=6"
12472
12498
  }
@@ -17759,9 +17785,9 @@
17759
17785
  "integrity": "sha512-08kcGqnYf/YmjoRhfxyu+CLxBjUtHLXLXX/vUfx9l2LYzG3c1m61nrpyFUZI6zeS+Li/wWMMidD9KgrqtGq3mA=="
17760
17786
  },
17761
17787
  "aws4": {
17762
- "version": "1.11.0",
17763
- "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.11.0.tgz",
17764
- "integrity": "sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA=="
17788
+ "version": "1.12.0",
17789
+ "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.12.0.tgz",
17790
+ "integrity": "sha512-NmWvPnx0F1SfrQbYwOi7OeaNGokp9XhzNioJ/CSBs8Qa4vxug81mhJEAVZwxXuBmYB5KDRfMq/F3RR0BIU7sWg=="
17765
17791
  },
17766
17792
  "axios": {
17767
17793
  "version": "0.21.4",
@@ -19255,16 +19281,18 @@
19255
19281
  }
19256
19282
  },
19257
19283
  "deep-equal": {
19258
- "version": "2.1.0",
19259
- "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-2.1.0.tgz",
19260
- "integrity": "sha512-2pxgvWu3Alv1PoWEyVg7HS8YhGlUFUV7N5oOvfL6d+7xAmLSemMwv/c8Zv/i9KFzxV5Kt5CAvQc70fLwVuf4UA==",
19284
+ "version": "2.2.0",
19285
+ "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-2.2.0.tgz",
19286
+ "integrity": "sha512-RdpzE0Hv4lhowpIUKKMJfeH6C1pXdtT1/it80ubgWqwI3qpuxUBpC1S4hnHg+zjnuOoDkzUtUCEEkG+XG5l3Mw==",
19261
19287
  "requires": {
19262
19288
  "call-bind": "^1.0.2",
19263
19289
  "es-get-iterator": "^1.1.2",
19264
19290
  "get-intrinsic": "^1.1.3",
19265
19291
  "is-arguments": "^1.1.1",
19292
+ "is-array-buffer": "^3.0.1",
19266
19293
  "is-date-object": "^1.0.5",
19267
19294
  "is-regex": "^1.1.4",
19295
+ "is-shared-array-buffer": "^1.0.2",
19268
19296
  "isarray": "^2.0.5",
19269
19297
  "object-is": "^1.1.5",
19270
19298
  "object-keys": "^1.1.1",
@@ -19273,7 +19301,7 @@
19273
19301
  "side-channel": "^1.0.4",
19274
19302
  "which-boxed-primitive": "^1.0.2",
19275
19303
  "which-collection": "^1.0.1",
19276
- "which-typed-array": "^1.1.8"
19304
+ "which-typed-array": "^1.1.9"
19277
19305
  }
19278
19306
  },
19279
19307
  "deep-is": {
@@ -19641,9 +19669,9 @@
19641
19669
  }
19642
19670
  },
19643
19671
  "engine.io-parser": {
19644
- "version": "5.0.4",
19645
- "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-5.0.4.tgz",
19646
- "integrity": "sha512-+nVFp+5z1E3HcToEnO7ZIj3g+3k9389DvWtvJZz0T6/eOCPIyyxehFcedoYrZQrp0LgQbD9pPXhpMBKMd5QURg=="
19672
+ "version": "5.0.5",
19673
+ "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-5.0.5.tgz",
19674
+ "integrity": "sha512-mjEyaa4zhuuRhaSLOdjEb57X0XPP9JEsnXI4E+ivhwT0GgzUogARx4MqoY1jQyB+4Bkz3BUOmzL7t9RMKmlG3g=="
19647
19675
  },
19648
19676
  "errno": {
19649
19677
  "version": "0.1.8",
@@ -21460,6 +21488,16 @@
21460
21488
  "has-tostringtag": "^1.0.0"
21461
21489
  }
21462
21490
  },
21491
+ "is-array-buffer": {
21492
+ "version": "3.0.1",
21493
+ "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.1.tgz",
21494
+ "integrity": "sha512-ASfLknmY8Xa2XtB4wmbz13Wu202baeA18cJBCeCy0wXUHZF0IPyVEXqKEcd+t2fNSLLL1vC6k7lxZEojNbISXQ==",
21495
+ "requires": {
21496
+ "call-bind": "^1.0.2",
21497
+ "get-intrinsic": "^1.1.3",
21498
+ "is-typed-array": "^1.1.10"
21499
+ }
21500
+ },
21463
21501
  "is-arrayish": {
21464
21502
  "version": "0.3.2",
21465
21503
  "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz",
@@ -21684,6 +21722,14 @@
21684
21722
  "resolved": "https://registry.npmjs.org/is-set/-/is-set-2.0.2.tgz",
21685
21723
  "integrity": "sha512-+2cnTEZeY5z/iXGbLhPrOAaK/Mau5k5eXq9j14CpRTftq0pAJu2MwVRSZhyZWBzx3o6X795Lz6Bpb6R0GKf37g=="
21686
21724
  },
21725
+ "is-shared-array-buffer": {
21726
+ "version": "1.0.2",
21727
+ "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz",
21728
+ "integrity": "sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==",
21729
+ "requires": {
21730
+ "call-bind": "^1.0.2"
21731
+ }
21732
+ },
21687
21733
  "is-stream": {
21688
21734
  "version": "1.1.0",
21689
21735
  "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz",
@@ -25500,9 +25546,9 @@
25500
25546
  }
25501
25547
  },
25502
25548
  "punycode": {
25503
- "version": "2.1.1",
25504
- "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz",
25505
- "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A=="
25549
+ "version": "2.2.0",
25550
+ "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.2.0.tgz",
25551
+ "integrity": "sha512-LN6QV1IJ9ZhxWTNdktaPClrNfp8xdSAYS0Zk2ddX7XsXZAxckMHPCBcHRo0cTcEIgYPRiGEkmji3Idkh2yFtYw=="
25506
25552
  },
25507
25553
  "puppeteer-core": {
25508
25554
  "version": "13.7.0",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@testim/testim-cli",
3
- "version": "3.274.0",
3
+ "version": "3.275.0",
4
4
  "description": "Command line interface for running Testing on your CI",
5
5
  "author": "Oren Rubin",
6
6
  "contributors": [{
@@ -3,7 +3,6 @@
3
3
  const StepAction = require('./stepAction');
4
4
  const logger = require('../../commons/logger').getLogger('drop-file-step-action');
5
5
  const downloadFileAndFireDropEvent = require('./scripts/dropEvent');
6
- const createDropEventLegacy = require('./scripts/createDropEventLegacy');
7
6
  const { codeSnippets, utils } = require('../../commons/getSessionPlayerRequire');
8
7
  const featureFlagService = require('../../commons/featureFlags');
9
8
 
@@ -21,7 +20,7 @@ class DropFileStepAction extends StepAction {
21
20
 
22
21
  const dropFileCode = `
23
22
  var getLocatedElement = ${codeSnippets.getLocatedElementCode};
24
- var createDropEvent = ${(codeSnippets.createDropEvent ? codeSnippets.createDropEvent : createDropEventLegacy).toString()};
23
+ var createDropEvent = ${codeSnippets.createDropEvent.toString()};
25
24
  var downloadFileAndFireDropEvent = ${downloadFileAndFireDropEvent.toString()};
26
25
  return downloadFileAndFireDropEvent.apply(null, arguments)
27
26
  `;
@@ -1,56 +1,54 @@
1
- "use strict";
1
+ 'use strict';
2
2
 
3
- var dispatchEvents = function (eventData, done) {
3
+ const dispatchEvents = function (eventData, done) {
4
4
  function getParents(el) {
5
5
  return el ? [el].concat(getParents(el.parentNode)) : [];
6
6
  }
7
7
 
8
8
  function handleReactSelectFocusQuirk(context, event) {
9
9
  function focusReactSelect(element) {
10
-
11
- function getReactSelectRoot(element) {
12
- return getParents(element).filter(function (el) {
13
- return Array.apply(null, el.classList || []).indexOf("Select-control") !== -1;
14
- })[0];
10
+ function getReactSelectRoot(_element) {
11
+ // eslint-disable-next-line prefer-spread
12
+ return getParents(_element).find((el) => Array.apply(null, el.classList || []).includes('Select-control'));
15
13
  }
16
14
 
17
- function getReactSelectInput(element) {
18
- var root = getReactSelectRoot(element);
19
- return root ? root.querySelector("INPUT") : null;
15
+ function getReactSelectInput(_element) {
16
+ const root = getReactSelectRoot(_element);
17
+ return root ? root.querySelector('INPUT') : null;
20
18
  }
21
19
 
22
- var reactSelectInput = getReactSelectInput(element);
20
+ const reactSelectInput = getReactSelectInput(element);
23
21
  if (reactSelectInput) {
24
22
  reactSelectInput.focus();
25
23
  }
26
24
  }
27
25
 
28
- var isReactSelectElement = context.quirks && context.quirks.isReactSelect;
29
- if (event.type === "mousedown" && isReactSelectElement) {
26
+ const isReactSelectElement = context.quirks?.isReactSelect;
27
+ if (event.type === 'mousedown' && isReactSelectElement) {
30
28
  focusReactSelect(context.element);
31
29
  }
32
30
  }
33
31
 
34
32
  function handleCKEditorQuirk(context, event) {
35
- var isCKEditorFrame = context.quirks && context.quirks.isCKEditorFrame;
36
- if (event.type === "click" && isCKEditorFrame) {
33
+ const isCKEditorFrame = context.quirks?.isCKEditorFrame;
34
+ if (event.type === 'click' && isCKEditorFrame) {
37
35
  document.body.focus();
38
36
  }
39
37
  }
40
38
 
41
39
  function dispatchMouseOver() {
42
- var event = document.createEvent('Events');
40
+ const event = document.createEvent('Events');
43
41
  event.initEvent('mouseover', true, true);
44
42
  context.element.dispatchEvent(event);
45
43
  }
46
44
 
47
45
  function dispatchMouseMove() {
48
- var userEvent = {
46
+ const userEvent = {
49
47
  event: 'mousemove',
50
48
  modifiers: {},
51
- button: 0
49
+ button: 0,
52
50
  };
53
- var event = createMouseEvent(userEvent);
51
+ const event = createMouseEvent(userEvent);
54
52
  context.element.dispatchEvent(event);
55
53
  }
56
54
 
@@ -59,20 +57,20 @@ var dispatchEvents = function (eventData, done) {
59
57
  return (point > start) && (point < end);
60
58
  }
61
59
 
62
- var pointerPosition = userEvent.pointerPosition || {};
63
- var rect = element.getBoundingClientRect();
64
- var clientX = pointerPosition.originX && isWithinBounds(rect.left, rect.left + rect.width, pointerPosition.originX) ? pointerPosition.originX : rect.left + (rect.width / 2);
65
- var clientY = pointerPosition.originY && isWithinBounds(rect.top, rect.top + rect.height, pointerPosition.originY) ? pointerPosition.originY : rect.top + (rect.height / 2);
66
- return {x: clientX, y: clientY};
60
+ const pointerPosition = userEvent.pointerPosition || {};
61
+ const rect = element.getBoundingClientRect();
62
+ const clientX = pointerPosition.originX && isWithinBounds(rect.left, rect.left + rect.width, pointerPosition.originX) ? pointerPosition.originX : rect.left + (rect.width / 2);
63
+ const clientY = pointerPosition.originY && isWithinBounds(rect.top, rect.top + rect.height, pointerPosition.originY) ? pointerPosition.originY : rect.top + (rect.height / 2);
64
+ return { x: clientX, y: clientY };
67
65
  }
68
66
 
69
67
  function createMouseEvent(userEvent) {
70
- var position = getEventPosition(userEvent, context.element);
71
- var modifiers = userEvent.modifiers || context.modifiers || {};
72
- var button = userEvent.button || context.button || 0;
73
- var eventType = userEvent.event;
68
+ const position = getEventPosition(userEvent, context.element);
69
+ const modifiers = userEvent.modifiers || context.modifiers || {};
70
+ const button = userEvent.button || context.button || 0;
71
+ const eventType = userEvent.event;
74
72
 
75
- var event = document.createEvent("MouseEvents");
73
+ const event = document.createEvent('MouseEvents');
76
74
  event.initMouseEvent(
77
75
  eventType,
78
76
  true, /* bubbles */
@@ -94,12 +92,12 @@ var dispatchEvents = function (eventData, done) {
94
92
  }
95
93
 
96
94
  function createPointerEvent(userEvent) {
97
- var position = getEventPosition(userEvent, context.element);
98
- var modifiers = userEvent.modifiers || context.modifiers || {};
99
- var eventType = userEvent.event;
95
+ const position = getEventPosition(userEvent, context.element);
96
+ const modifiers = userEvent.modifiers || context.modifiers || {};
97
+ const eventType = userEvent.event;
100
98
 
101
99
  if (!window.PointerEvent) {
102
- return;
100
+ return undefined;
103
101
  }
104
102
  return new window.PointerEvent(eventType, {
105
103
  screenX: 0,
@@ -113,13 +111,13 @@ var dispatchEvents = function (eventData, done) {
113
111
  bubbles: true,
114
112
  cancelable: true,
115
113
  composed: true,
116
- pointerType: "mouse",
114
+ pointerType: 'mouse',
117
115
  isPrimary: true,
118
116
  });
119
117
  }
120
118
 
121
119
  function createFocusEvent(userEvent) {
122
- var event = document.createEvent("FocusEvent");
120
+ const event = document.createEvent('FocusEvent');
123
121
  // TODO we want to use new Event, but mootools (used by zuora which is used by jfrog)
124
122
  // overrides window.Event and throws an error
125
123
  event.initEvent(userEvent.event, true, false);
@@ -127,76 +125,74 @@ var dispatchEvents = function (eventData, done) {
127
125
  }
128
126
 
129
127
  function createEvent(userEvent) {
130
- var eventType = userEvent.event;
131
- var event = document.createEvent("HTMLEvents");
128
+ const eventType = userEvent.event;
129
+ const event = document.createEvent('HTMLEvents');
132
130
  event.initEvent(eventType, true, false);
133
131
  return event;
134
132
  }
135
133
 
136
- function dispatchSyncEvent(event) {
137
- console.log("dispatching: " + event.type);
138
- console.log(event);
139
-
140
- context.element.dispatchEvent(event);
141
- handleReactSelectFocusQuirk(context, event);
142
- handleCKEditorQuirk(context, event);
143
- }
144
-
145
134
  function dispatchSyncEventSequence() {
146
135
  context.events
147
- .map(function (userEvent) {
136
+ .map((userEvent) => {
148
137
  try {
149
- if(MOUSE_EVENTS.includes(userEvent.event)) {
138
+ if (MOUSE_EVENTS.includes(userEvent.event)) {
150
139
  return createMouseEvent(userEvent);
151
- } else if (POINTER_EVENTS.includes(userEvent.event)) {
140
+ } if (POINTER_EVENTS.includes(userEvent.event)) {
152
141
  return createPointerEvent(userEvent);
153
- } else if(FOCUS_EVENTS.includes(userEvent.event)) {
142
+ } if (FOCUS_EVENTS.includes(userEvent.event)) {
154
143
  return createFocusEvent(userEvent);
155
- } else {
156
- return createEvent(userEvent);
157
144
  }
145
+ return createEvent(userEvent);
158
146
  } catch (e) {
159
- // pointer events not supported in ie11
160
- return;
147
+ // pointer events not supported :shrug:
148
+ return undefined;
161
149
  }
162
150
  })
163
151
  .filter(Boolean)
164
- .forEach(function (event) {
165
- dispatchSyncEvent(event);
152
+ .forEach((event) => {
153
+ // eslint-disable-next-line no-console
154
+ console.log(`dispatching: ${event.type}`);
155
+ // eslint-disable-next-line no-console
156
+ console.log(event);
157
+
158
+ context.element.dispatchEvent(event);
159
+ handleReactSelectFocusQuirk(context, event);
160
+ handleCKEditorQuirk(context, event);
166
161
  });
167
162
 
168
163
  if (window.__unloadNavigator) {
169
- window.removeEventListener("unload", window.__unloadNavigator);
164
+ window.removeEventListener('unload', window.__unloadNavigator);
170
165
  }
171
166
  }
172
167
 
173
168
  function findEffectiveActiveElement() {
174
- var activeElement = document.activeElement;
175
- while (activeElement.shadowRoot && activeElement.shadowRoot.activeElement) {
169
+ let activeElement = document.activeElement;
170
+ while (activeElement.shadowRoot?.activeElement) {
176
171
  activeElement = activeElement.shadowRoot.activeElement;
177
172
  }
178
173
  return activeElement;
179
174
  }
180
175
 
181
176
  function handleFocus() {
182
- var oldActiveElement = findEffectiveActiveElement();
183
- var quirks = context.quirks;
184
- var isReactSelectElement = quirks && quirks.isReactSelect;
185
- var isCKEditorFrame = quirks && quirks.isCKEditorFrame;
177
+ const oldActiveElement = findEffectiveActiveElement();
178
+ const quirks = context.quirks;
179
+ const isReactSelectElement = quirks?.isReactSelect;
180
+ const isCKEditorFrame = quirks?.isCKEditorFrame;
186
181
  if (!isReactSelectElement && !isCKEditorFrame) {
182
+ // eslint-disable-next-line no-undef
187
183
  dispatchFocus(eventData.elementToFocusLocatedElement, oldActiveElement);
188
184
  }
189
185
  }
190
186
 
191
187
  function handleSelect() {
192
- if(context.element.tagName !== OPTION_TAG_NAME) {
188
+ if (context.element.tagName !== OPTION_TAG_NAME) {
193
189
  return;
194
190
  }
195
191
 
196
- var selectEl;
197
- if(context.element.parentElement.tagName === SELECT_TAG_NAME) {
192
+ let selectEl;
193
+ if (context.element.parentElement.tagName === SELECT_TAG_NAME) {
198
194
  selectEl = context.element.parentElement;
199
- } else if(context.element.parentElement.parentElement.tagName === SELECT_TAG_NAME) {
195
+ } else if (context.element.parentElement.parentElement.tagName === SELECT_TAG_NAME) {
200
196
  selectEl = context.element.parentElement.parentElement;
201
197
  }
202
198
  selectEl.blur();
@@ -206,13 +202,13 @@ var dispatchEvents = function (eventData, done) {
206
202
 
207
203
  function fulfill(success, status, result) {
208
204
  result = result || {};
209
- var status = {
210
- success: success,
211
- status: status,
212
- result: result,
205
+ status = {
206
+ success,
207
+ status,
208
+ result,
213
209
  };
214
210
 
215
- if(isDoneFnSupplied) {
211
+ if (isDoneFnSupplied) {
216
212
  return done(status);
217
213
  }
218
214
 
@@ -227,35 +223,50 @@ var dispatchEvents = function (eventData, done) {
227
223
  return fulfill(false, 'failed', result);
228
224
  }
229
225
 
230
- var OPTION_TAG_NAME = "OPTION";
231
- var SELECT_TAG_NAME = "SELECT";
232
-
233
- var MOUSE_EVENTS = ["auxclick", "click", "contextmenu", "dblclick", "mousedown", "mouseenter", "mouseleave", "mousemove", "mouseover", "mouseout", "mouseup", "pointerlockchange", "pointerlockerror", "select", "wheel",];
234
- var POINTER_EVENTS = ["pointerover", "pointerenter", "pointerdown", "pointermove", "pointerup", "pointercancel", "pointerout", "pointerleave", "gotpointercapture", "lostpointercapture",];
235
- var FOCUS_EVENTS = ["focus", "blur", "focusin", "focusout",];
236
- var KEYBOARD_EVENTS = ["keydown", "keypress", "keyup",]; // future use
237
-
238
- var isEventConstructorSupported = typeof Event === 'function';
239
- var isDoneFnSupplied = typeof done !== 'undefined';
226
+ const OPTION_TAG_NAME = 'OPTION';
227
+ const SELECT_TAG_NAME = 'SELECT';
228
+
229
+ const MOUSE_EVENTS = [
230
+ 'auxclick',
231
+ 'click',
232
+ 'contextmenu',
233
+ 'dblclick',
234
+ 'mousedown',
235
+ 'mouseenter',
236
+ 'mouseleave',
237
+ 'mousemove',
238
+ 'mouseover',
239
+ 'mouseout',
240
+ 'mouseup',
241
+ 'pointerlockchange',
242
+ 'pointerlockerror',
243
+ 'select',
244
+ 'wheel',
245
+ ];
246
+ const POINTER_EVENTS = ['pointerover', 'pointerenter', 'pointerdown', 'pointermove', 'pointerup', 'pointercancel', 'pointerout', 'pointerleave', 'gotpointercapture', 'lostpointercapture'];
247
+ const FOCUS_EVENTS = ['focus', 'blur', 'focusin', 'focusout'];
248
+
249
+ const isDoneFnSupplied = typeof done !== 'undefined';
240
250
 
241
251
  window.__unloadNavigator = resolve;
242
- window.addEventListener("unload", window.__unloadNavigator);
252
+ window.addEventListener('unload', window.__unloadNavigator);
243
253
 
244
- var element = eventData.isRoot ? document.documentElement : getLocatedElement(eventData.locatedElement);
254
+ // eslint-disable-next-line no-undef
255
+ const element = eventData.isRoot ? document.documentElement : getLocatedElement(eventData.locatedElement);
245
256
  if (!element) {
246
- return reject("element not found");
257
+ return reject('element not found');
247
258
  }
248
259
 
249
- var context = {
250
- element: element,
260
+ const context = {
261
+ element,
251
262
  events: eventData.events,
252
263
  quirks: eventData.quirks,
253
264
  modifiers: eventData.modifiers,
254
265
  };
255
266
 
256
267
  try {
257
- var doMousePreparation = eventData.withMousePreparation ? eventData.withMousePreparation : true;
258
- if(doMousePreparation) {
268
+ const doMousePreparation = eventData.withMousePreparation ? eventData.withMousePreparation : true;
269
+ if (doMousePreparation) {
259
270
  dispatchMouseOver();
260
271
  dispatchMouseMove();
261
272
  }