@sap_oss/wdio-qmate-service 1.0.0 → 1.0.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 (144) hide show
  1. package/README.md +2 -1
  2. package/{test/core/package-lock.json → docs/bestPractices/spec.md} +0 -0
  3. package/docs/doc.md +176 -353
  4. package/docs/gettingStarted/setup.md +2 -2
  5. package/docs/index.md +1 -1
  6. package/docs/sections/bestPractices/authentication.md +151 -0
  7. package/docs/sections/bestPractices/dataHandling.md +61 -0
  8. package/docs/sections/bestPractices/selectors.md +44 -0
  9. package/docs/{contact.md → sections/contact.md} +0 -0
  10. package/docs/sections/features/advancedDataHandling.md +252 -0
  11. package/docs/sections/features/config.md +171 -0
  12. package/docs/sections/features/dataHandling.md +83 -0
  13. package/docs/{gettingStarted → sections/features}/selectors.md +0 -0
  14. package/docs/sections/features/spec.md +0 -0
  15. package/docs/sections/gettingStarted/config.md +18 -0
  16. package/docs/sections/gettingStarted/execution.md +7 -0
  17. package/docs/sections/gettingStarted/setup.md +9 -0
  18. package/docs/sections/gettingStarted/spec.md +31 -0
  19. package/docs/sections/gettingStarted/specs.md +19 -0
  20. package/docs/sections/support/bugReporting.md +19 -0
  21. package/docs/sections/support/knownIssuesAndLimitations.md +0 -0
  22. package/docs/sections/support/troubleshooting.md +16 -0
  23. package/docs/sources/images/fiori_form.PNG +0 -0
  24. package/docs/sources/images/sapCloud_form.PNG +0 -0
  25. package/lib/index.js +59 -82
  26. package/lib/index.js.map +1 -1
  27. package/lib/reuse/authenticator/authHandler.js +12 -23
  28. package/lib/reuse/authenticator/authHandler.js.map +1 -1
  29. package/lib/reuse/authenticator/basicUrlAuthenticator.js +21 -32
  30. package/lib/reuse/authenticator/basicUrlAuthenticator.js.map +1 -1
  31. package/lib/reuse/authenticator/customAuthenticator.js +42 -55
  32. package/lib/reuse/authenticator/customAuthenticator.js.map +1 -1
  33. package/lib/reuse/authenticator/formAuthenticator.js +37 -50
  34. package/lib/reuse/authenticator/formAuthenticator.js.map +1 -1
  35. package/lib/reuse/authenticator/plainAuthenticator.js +5 -16
  36. package/lib/reuse/authenticator/plainAuthenticator.js.map +1 -1
  37. package/lib/reuse/helper/jsDocGen.js +4 -12
  38. package/lib/reuse/helper/jsDocGen.js.map +1 -1
  39. package/lib/reuse/index.js +20 -5
  40. package/lib/reuse/index.js.map +1 -1
  41. package/lib/reuse/modules/common/navigation.js +10 -23
  42. package/lib/reuse/modules/common/navigation.js.map +1 -1
  43. package/lib/reuse/modules/common/userInteraction.js +40 -73
  44. package/lib/reuse/modules/common/userInteraction.js.map +1 -1
  45. package/lib/reuse/modules/nonUi5/assertion.js +31 -52
  46. package/lib/reuse/modules/nonUi5/assertion.js.map +1 -1
  47. package/lib/reuse/modules/nonUi5/element.js +266 -331
  48. package/lib/reuse/modules/nonUi5/element.js.map +1 -1
  49. package/lib/reuse/modules/nonUi5/navigation.js +10 -21
  50. package/lib/reuse/modules/nonUi5/navigation.js.map +1 -1
  51. package/lib/reuse/modules/nonUi5/userInteraction.js +176 -215
  52. package/lib/reuse/modules/nonUi5/userInteraction.js.map +1 -1
  53. package/lib/reuse/modules/service/odata.d.ts +106 -94
  54. package/lib/reuse/modules/service/odata.js +209 -204
  55. package/lib/reuse/modules/service/odata.js.map +1 -1
  56. package/lib/reuse/modules/service/rest.js +64 -81
  57. package/lib/reuse/modules/service/rest.js.map +1 -1
  58. package/lib/reuse/modules/ui5/assertion.js +217 -268
  59. package/lib/reuse/modules/ui5/assertion.js.map +1 -1
  60. package/lib/reuse/modules/ui5/confirmationDialog.js +17 -42
  61. package/lib/reuse/modules/ui5/confirmationDialog.js.map +1 -1
  62. package/lib/reuse/modules/ui5/control.js +12 -33
  63. package/lib/reuse/modules/ui5/control.js.map +1 -1
  64. package/lib/reuse/modules/ui5/date.js +70 -89
  65. package/lib/reuse/modules/ui5/date.js.map +1 -1
  66. package/lib/reuse/modules/ui5/element.js +121 -156
  67. package/lib/reuse/modules/ui5/element.js.map +1 -1
  68. package/lib/reuse/modules/ui5/errorDialog.js +4 -17
  69. package/lib/reuse/modules/ui5/errorDialog.js.map +1 -1
  70. package/lib/reuse/modules/ui5/footerBar.js +28 -63
  71. package/lib/reuse/modules/ui5/footerBar.js.map +1 -1
  72. package/lib/reuse/modules/ui5/mockserver.js +390 -427
  73. package/lib/reuse/modules/ui5/mockserver.js.map +1 -1
  74. package/lib/reuse/modules/ui5/navigation.js +105 -132
  75. package/lib/reuse/modules/ui5/navigation.js.map +1 -1
  76. package/lib/reuse/modules/ui5/navigationBar.js +58 -77
  77. package/lib/reuse/modules/ui5/navigationBar.js.map +1 -1
  78. package/lib/reuse/modules/ui5/qunit.js +16 -27
  79. package/lib/reuse/modules/ui5/qunit.js.map +1 -1
  80. package/lib/reuse/modules/ui5/session.js +200 -236
  81. package/lib/reuse/modules/ui5/session.js.map +1 -1
  82. package/lib/reuse/modules/ui5/table.js +79 -98
  83. package/lib/reuse/modules/ui5/table.js.map +1 -1
  84. package/lib/reuse/modules/ui5/userInteraction.js +264 -335
  85. package/lib/reuse/modules/ui5/userInteraction.js.map +1 -1
  86. package/lib/reuse/modules/util/browser.js +131 -178
  87. package/lib/reuse/modules/util/browser.js.map +1 -1
  88. package/lib/reuse/modules/util/data.js +3 -2
  89. package/lib/reuse/modules/util/data.js.map +1 -1
  90. package/lib/reuse/modules/util/file.js +71 -90
  91. package/lib/reuse/modules/util/file.js.map +1 -1
  92. package/lib/reuse/modules/util/function.js +68 -87
  93. package/lib/reuse/modules/util/function.js.map +1 -1
  94. package/lib/reuse/modules/util/system.js +22 -33
  95. package/lib/reuse/modules/util/system.js.map +1 -1
  96. package/lib/scripts/dataExchange/dataExchange.js +145 -160
  97. package/lib/scripts/dataExchange/dataExchange.js.map +1 -1
  98. package/lib/scripts/dataExchange/dataExchangeUtil.js +93 -114
  99. package/lib/scripts/dataExchange/dataExchangeUtil.js.map +1 -1
  100. package/lib/scripts/hooks/after.js +3 -14
  101. package/lib/scripts/hooks/after.js.map +1 -1
  102. package/lib/scripts/hooks/before.js +9 -20
  103. package/lib/scripts/hooks/before.js.map +1 -1
  104. package/lib/scripts/hooks/beforeSession.js +7 -18
  105. package/lib/scripts/hooks/beforeSession.js.map +1 -1
  106. package/lib/scripts/hooks/onComplete.js +2 -13
  107. package/lib/scripts/hooks/onComplete.js.map +1 -1
  108. package/lib/scripts/hooks/onPrepare.js +9 -20
  109. package/lib/scripts/hooks/onPrepare.js.map +1 -1
  110. package/lib/scripts/hooks/utils/addLocatorCommands.js +109 -172
  111. package/lib/scripts/hooks/utils/addLocatorCommands.js.map +1 -1
  112. package/lib/scripts/hooks/utils/browserLog.js +18 -31
  113. package/lib/scripts/hooks/utils/browserLog.js.map +1 -1
  114. package/lib/scripts/hooks/utils/dataExchangeCommands.js +13 -24
  115. package/lib/scripts/hooks/utils/dataExchangeCommands.js.map +1 -1
  116. package/lib/scripts/hooks/utils/decryption.d.ts +1 -1
  117. package/lib/scripts/hooks/utils/decryption.js +33 -14
  118. package/lib/scripts/hooks/utils/decryption.js.map +1 -1
  119. package/lib/scripts/hooks/utils/lib.js +249 -272
  120. package/lib/scripts/hooks/utils/lib.js.map +1 -1
  121. package/lib/scripts/hooks/utils/locatorCommands.js +154 -183
  122. package/lib/scripts/hooks/utils/locatorCommands.js.map +1 -1
  123. package/mkdocs.yml +16 -3
  124. package/package.json +14 -11
  125. package/test/authenticator/staticLogin/specs/custom.spec.js +30 -1
  126. package/test/reuse/nonUi5/element/getById.spec.js +17 -0
  127. package/test/reuse/service/odata/get.spec.js +61 -0
  128. package/test/reuse/service/odata/getEntitySet.spec.js +87 -0
  129. package/test/reuse/service/odata/test.odata.conf.js +15 -0
  130. package/test/reuse/ui5/confirmationDialog/clickButton.spec.js +87 -0
  131. package/test/reuse/ui5/confirmationDialog/test.confirmationDialog.conf.js +2 -1
  132. package/test/reuse/ui5/element/test.element.conf.js +2 -1
  133. package/test/reuse/ui5/element/waitForAll.spec.js +46 -0
  134. package/test/reuse/ui5/userInteraction/clearAndFillSmartFieldInputAndRetry.spec.js +28 -0
  135. package/test/reuse/ui5/userInteraction/test.userInteraction.conf.js +1 -0
  136. package/test/reuse/util/browser/switchToNewWindow.spec.js +2 -2
  137. package/test/reuse/util/console/console.spec.js +27 -0
  138. package/test/reuse/util/console/test.console.conf.js +12 -0
  139. package/test/reuse/util/data/data/test.secure.json +7 -3
  140. package/test/reuse/util/data/getSecureData.spec.js +9 -3
  141. package/test/reuse/util/file/pdfParser.spec.js +33 -8
  142. package/test/reuse/util/system/system.spec.js +16 -0
  143. package/test/reuse/util/system/test.system.conf.js +12 -0
  144. package/tsconfig.json +1 -1
@@ -1,13 +1,4 @@
1
1
  "use strict";
2
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
- return new (P || (P = Promise))(function (resolve, reject) {
5
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
- step((generator = generator.apply(thisArg, _arguments || [])).next());
9
- });
10
- };
11
2
  Object.defineProperty(exports, "__esModule", { value: true });
12
3
  // @ts-nocheck
13
4
  var qmateLocator = require("../../locators/qmateLocator");
@@ -15,177 +6,123 @@ var uiveri5Locator = require("../../locators/uiveri5Locator");
15
6
  var lib = require("./lib");
16
7
  const locatorCommands_1 = require("./locatorCommands");
17
8
  var AddLocatorCommands = function () {
18
- this.addControlCommands = function () {
19
- return __awaiter(this, void 0, void 0, function* () {
20
- // Add Qmate locator strategy
21
- yield browser.addLocatorStrategy("ui5All", qmateLocator.ui5All);
22
- yield browser.addLocatorStrategy("ui5Veri5", uiveri5Locator.ui5Veri5);
23
- // Register global names
24
- //global.uiControl = ui5ControlLocator;
25
- //global.uiControls = ui5ControlsLocator;
26
- // Add command to trigger coverage collection
27
- yield browser.addCommand("collectCoverage", function () {
28
- return __awaiter(this, void 0, void 0, function* () {
29
- return true;
30
- });
31
- });
32
- // Add command for control
33
- yield browser.addCommand("uiControl", function (ui5Selector, index, timeout, returnAllDomElements = false) {
34
- return __awaiter(this, void 0, void 0, function* () {
35
- return (0, locatorCommands_1.ui5ControlLocator)(ui5Selector, index, timeout, this, returnAllDomElements);
36
- });
37
- }, true);
38
- yield browser.addCommand("uiControl", function (ui5Selector, index, timeout, returnAllDomElements = false) {
39
- return __awaiter(this, void 0, void 0, function* () {
40
- return (0, locatorCommands_1.ui5ControlLocator)(ui5Selector, index, timeout, undefined, returnAllDomElements);
41
- });
42
- });
43
- // Add command for controls
44
- yield browser.addCommand("uiControls", function (ui5Selector, timeout) {
45
- return __awaiter(this, void 0, void 0, function* () {
46
- return (0, locatorCommands_1.ui5ControlsLocators)(ui5Selector, timeout, this);
47
- });
48
- }, true);
49
- yield browser.addCommand("uiControls", function (ui5Selector, timeout) {
50
- return __awaiter(this, void 0, void 0, function* () {
51
- return (0, locatorCommands_1.ui5ControlsLocators)(ui5Selector, timeout);
52
- });
53
- });
9
+ this.addControlCommands = async function () {
10
+ // Add Qmate locator strategy
11
+ await browser.addLocatorStrategy("ui5All", qmateLocator.ui5All);
12
+ await browser.addLocatorStrategy("ui5Veri5", uiveri5Locator.ui5Veri5);
13
+ // Register global names
14
+ //global.uiControl = ui5ControlLocator;
15
+ //global.uiControls = ui5ControlsLocator;
16
+ // Add command to trigger coverage collection
17
+ await browser.addCommand("collectCoverage", async function () {
18
+ return true;
19
+ });
20
+ // Add command for control
21
+ await browser.addCommand("uiControl", async function (ui5Selector, index, timeout, returnAllDomElements = false) {
22
+ return (0, locatorCommands_1.ui5ControlLocator)(ui5Selector, index, timeout, this, returnAllDomElements);
23
+ }, true);
24
+ await browser.addCommand("uiControl", async function (ui5Selector, index, timeout, returnAllDomElements = false) {
25
+ return (0, locatorCommands_1.ui5ControlLocator)(ui5Selector, index, timeout, undefined, returnAllDomElements);
26
+ });
27
+ // Add command for controls
28
+ await browser.addCommand("uiControls", async function (ui5Selector, timeout) {
29
+ return (0, locatorCommands_1.ui5ControlsLocators)(ui5Selector, timeout, this);
30
+ }, true);
31
+ await browser.addCommand("uiControls", async function (ui5Selector, timeout) {
32
+ return (0, locatorCommands_1.ui5ControlsLocators)(ui5Selector, timeout);
54
33
  });
55
34
  };
56
- this.addGetBindingInfos = function () {
57
- return __awaiter(this, void 0, void 0, function* () {
58
- // Add command for element properties
59
- yield browser.addCommand("getBindingContextPath", function () {
60
- return __awaiter(this, void 0, void 0, function* () {
61
- return (0, locatorCommands_1.getBindingContextPath)(this);
62
- });
63
- }, true);
64
- // Add command for browser properties
65
- yield browser.addCommand("getBindingContextPath", function (ui5SelectorOrElement) {
66
- return __awaiter(this, void 0, void 0, function* () {
67
- return (0, locatorCommands_1.getBindingContextPath)(ui5SelectorOrElement);
68
- });
69
- });
70
- // Add command for element properties
71
- yield browser.addCommand("getBindingProperty", function (propName) {
72
- return __awaiter(this, void 0, void 0, function* () {
73
- return (0, locatorCommands_1.getBindingProperty)(propName, this);
74
- });
75
- }, true);
76
- // Add command for browser properties
77
- yield browser.addCommand("getBindingProperty", function (propName, ui5SelectorOrElement) {
78
- return __awaiter(this, void 0, void 0, function* () {
79
- return (0, locatorCommands_1.getBindingProperty)(propName, ui5SelectorOrElement);
80
- });
81
- });
35
+ this.addGetBindingInfos = async function () {
36
+ // Add command for element properties
37
+ await browser.addCommand("getBindingContextPath", async function () {
38
+ return (0, locatorCommands_1.getBindingContextPath)(this);
39
+ }, true);
40
+ // Add command for browser properties
41
+ await browser.addCommand("getBindingContextPath", async function (ui5SelectorOrElement) {
42
+ return (0, locatorCommands_1.getBindingContextPath)(ui5SelectorOrElement);
43
+ });
44
+ // Add command for element properties
45
+ await browser.addCommand("getBindingProperty", async function (propName) {
46
+ return (0, locatorCommands_1.getBindingProperty)(propName, this);
47
+ }, true);
48
+ // Add command for browser properties
49
+ await browser.addCommand("getBindingProperty", async function (propName, ui5SelectorOrElement) {
50
+ return (0, locatorCommands_1.getBindingProperty)(propName, ui5SelectorOrElement);
82
51
  });
83
52
  };
84
- this.addGetControlProperties = function () {
85
- return __awaiter(this, void 0, void 0, function* () {
86
- // Add command for element properties
87
- yield browser.addCommand("getUI5Property", function (propertyName) {
88
- return __awaiter(this, void 0, void 0, function* () {
89
- return (0, locatorCommands_1.getUI5Property)(propertyName, this);
90
- });
91
- }, true);
92
- // Add command for browser properties
93
- yield browser.addCommand("getUI5Property", function (propertyName, ui5SelectorOrElement) {
94
- return __awaiter(this, void 0, void 0, function* () {
95
- return (0, locatorCommands_1.getUI5Property)(propertyName, ui5SelectorOrElement);
96
- });
97
- });
98
- // Add command for element properties
99
- yield browser.addCommand("getUI5Aggregation", function (propertyName) {
100
- return __awaiter(this, void 0, void 0, function* () {
101
- return (0, locatorCommands_1.getUI5Aggregation)(propertyName, this);
102
- });
103
- }, true);
104
- // Add command for browser properties
105
- yield browser.addCommand("getUI5Aggregation", function (propertyName, ui5SelectorOrElement) {
106
- return __awaiter(this, void 0, void 0, function* () {
107
- return (0, locatorCommands_1.getUI5Aggregation)(propertyName, ui5SelectorOrElement);
108
- });
109
- });
110
- // Add command for element properties
111
- yield browser.addCommand("getUI5Association", function (propertyName) {
112
- return __awaiter(this, void 0, void 0, function* () {
113
- return (0, locatorCommands_1.getUI5Association)(propertyName, this);
114
- });
115
- }, true);
116
- // Add command for browser properties
117
- yield browser.addCommand("getUI5Association", function (propertyName, ui5SelectorOrElement) {
118
- return __awaiter(this, void 0, void 0, function* () {
119
- return (0, locatorCommands_1.getUI5Association)(propertyName, ui5SelectorOrElement);
120
- });
121
- });
122
- yield browser.addCommand("getAllUI5Properties", function () {
123
- return __awaiter(this, void 0, void 0, function* () {
124
- return (0, locatorCommands_1.getAllUI5Properties)(this);
125
- });
126
- }, true);
127
- yield browser.addCommand("getAllUI5Properties", function (ui5SelectorOrElement) {
128
- return __awaiter(this, void 0, void 0, function* () {
129
- return (0, locatorCommands_1.getAllUI5Properties)(ui5SelectorOrElement);
130
- });
131
- });
132
- yield browser.addCommand("getAllUI5Aggregations", function () {
133
- return __awaiter(this, void 0, void 0, function* () {
134
- return (0, locatorCommands_1.getAllUI5Aggregations)(this);
135
- });
136
- }, true);
137
- yield browser.addCommand("getAllUI5Aggregations", function (ui5SelectorOrElement) {
138
- return __awaiter(this, void 0, void 0, function* () {
139
- return (0, locatorCommands_1.getAllUI5Aggregations)(ui5SelectorOrElement);
140
- });
141
- });
142
- yield browser.addCommand("getAllUI5Associations", function () {
143
- return __awaiter(this, void 0, void 0, function* () {
144
- return (0, locatorCommands_1.getAllUI5Associations)(this);
145
- });
146
- }, true);
147
- yield browser.addCommand("getAllUI5Associations", function (ui5SelectorOrElement) {
148
- return __awaiter(this, void 0, void 0, function* () {
149
- return (0, locatorCommands_1.getAllUI5Associations)(ui5SelectorOrElement);
150
- });
151
- });
53
+ this.addGetControlProperties = async function () {
54
+ // Add command for element properties
55
+ await browser.addCommand("getUI5Property", async function (propertyName) {
56
+ return (0, locatorCommands_1.getUI5Property)(propertyName, this);
57
+ }, true);
58
+ // Add command for browser properties
59
+ await browser.addCommand("getUI5Property", async function (propertyName, ui5SelectorOrElement) {
60
+ return (0, locatorCommands_1.getUI5Property)(propertyName, ui5SelectorOrElement);
61
+ });
62
+ // Add command for element properties
63
+ await browser.addCommand("getUI5Aggregation", async function (propertyName) {
64
+ return (0, locatorCommands_1.getUI5Aggregation)(propertyName, this);
65
+ }, true);
66
+ // Add command for browser properties
67
+ await browser.addCommand("getUI5Aggregation", async function (propertyName, ui5SelectorOrElement) {
68
+ return (0, locatorCommands_1.getUI5Aggregation)(propertyName, ui5SelectorOrElement);
69
+ });
70
+ // Add command for element properties
71
+ await browser.addCommand("getUI5Association", async function (propertyName) {
72
+ return (0, locatorCommands_1.getUI5Association)(propertyName, this);
73
+ }, true);
74
+ // Add command for browser properties
75
+ await browser.addCommand("getUI5Association", async function (propertyName, ui5SelectorOrElement) {
76
+ return (0, locatorCommands_1.getUI5Association)(propertyName, ui5SelectorOrElement);
77
+ });
78
+ await browser.addCommand("getAllUI5Properties", async function () {
79
+ return (0, locatorCommands_1.getAllUI5Properties)(this);
80
+ }, true);
81
+ await browser.addCommand("getAllUI5Properties", async function (ui5SelectorOrElement) {
82
+ return (0, locatorCommands_1.getAllUI5Properties)(ui5SelectorOrElement);
83
+ });
84
+ await browser.addCommand("getAllUI5Aggregations", async function () {
85
+ return (0, locatorCommands_1.getAllUI5Aggregations)(this);
86
+ }, true);
87
+ await browser.addCommand("getAllUI5Aggregations", async function (ui5SelectorOrElement) {
88
+ return (0, locatorCommands_1.getAllUI5Aggregations)(ui5SelectorOrElement);
89
+ });
90
+ await browser.addCommand("getAllUI5Associations", async function () {
91
+ return (0, locatorCommands_1.getAllUI5Associations)(this);
92
+ }, true);
93
+ await browser.addCommand("getAllUI5Associations", async function (ui5SelectorOrElement) {
94
+ return (0, locatorCommands_1.getAllUI5Associations)(ui5SelectorOrElement);
152
95
  });
153
96
  };
154
- this.addInBrowserHandling = function () {
155
- return __awaiter(this, void 0, void 0, function* () {
156
- yield browser.addCommand("controlActionInBrowser", function (fnBrowser) {
157
- return __awaiter(this, arguments, void 0, function* () {
158
- if (arguments.length > 1) {
159
- // Inject web element in index 1
160
- const aCustomParams = [];
161
- for (var i = 1; i < arguments.length; i++) {
162
- if (arguments[i]) {
163
- aCustomParams.push(arguments[i]);
164
- }
165
- }
166
- return lib.controlActionInBrowser(fnBrowser, this, aCustomParams.toString());
167
- }
168
- else {
169
- return lib.controlActionInBrowser(fnBrowser, this);
170
- }
171
- });
172
- }, true);
173
- yield browser.addCommand("controlActionInBrowser", function (fnBrowser, selectorOrElement) {
174
- return __awaiter(this, arguments, void 0, function* () {
175
- if (arguments.length > 2) {
176
- const aCustomParams = [];
177
- for (var i = 2; i < arguments.length; i++) {
178
- if (arguments[i]) {
179
- aCustomParams.push(arguments[i]);
180
- }
181
- }
182
- return lib.controlActionInBrowser(fnBrowser, selectorOrElement, aCustomParams.join(","));
97
+ this.addInBrowserHandling = async function () {
98
+ await browser.addCommand("controlActionInBrowser", async function (fnBrowser) {
99
+ if (arguments.length > 1) {
100
+ // Inject web element in index 1
101
+ const aCustomParams = [];
102
+ for (var i = 1; i < arguments.length; i++) {
103
+ if (arguments[i]) {
104
+ aCustomParams.push(arguments[i]);
183
105
  }
184
- else {
185
- return lib.controlActionInBrowser(fnBrowser, selectorOrElement);
106
+ }
107
+ return lib.controlActionInBrowser(fnBrowser, this, aCustomParams.toString());
108
+ }
109
+ else {
110
+ return lib.controlActionInBrowser(fnBrowser, this);
111
+ }
112
+ }, true);
113
+ await browser.addCommand("controlActionInBrowser", async function (fnBrowser, selectorOrElement) {
114
+ if (arguments.length > 2) {
115
+ const aCustomParams = [];
116
+ for (var i = 2; i < arguments.length; i++) {
117
+ if (arguments[i]) {
118
+ aCustomParams.push(arguments[i]);
186
119
  }
187
- });
188
- });
120
+ }
121
+ return lib.controlActionInBrowser(fnBrowser, selectorOrElement, aCustomParams.join(","));
122
+ }
123
+ else {
124
+ return lib.controlActionInBrowser(fnBrowser, selectorOrElement);
125
+ }
189
126
  });
190
127
  };
191
128
  };
@@ -1 +1 @@
1
- {"version":3,"file":"addLocatorCommands.js","sourceRoot":"","sources":["../../../../src/scripts/hooks/utils/addLocatorCommands.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"addLocatorCommands.js","sourceRoot":"","sources":["../../../../src/scripts/hooks/utils/addLocatorCommands.ts"],"names":[],"mappings":";;AAAA,cAAc;AACd,IAAI,YAAY,GAAG,OAAO,CAAC,6BAA6B,CAAC,CAAC;AAC1D,IAAI,cAAc,GAAG,OAAO,CAAC,+BAA+B,CAAC,CAAC;AAC9D,IAAI,GAAG,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;AAC3B,uDAI2B;AAE3B,IAAI,kBAAkB,GAAG;IACvB,IAAI,CAAC,kBAAkB,GAAG,KAAK;QAC7B,6BAA6B;QAC7B,MAAM,OAAO,CAAC,kBAAkB,CAAC,QAAQ,EAAE,YAAY,CAAC,MAAM,CAAC,CAAC;QAChE,MAAM,OAAO,CAAC,kBAAkB,CAAC,UAAU,EAAE,cAAc,CAAC,QAAQ,CAAC,CAAC;QACtE,wBAAwB;QACxB,uCAAuC;QACvC,yCAAyC;QAEzC,6CAA6C;QAC7C,MAAM,OAAO,CAAC,UAAU,CAAC,iBAAiB,EAAE,KAAK;YAC/C,OAAO,IAAI,CAAC;QACd,CAAC,CAAC,CAAC;QAEH,0BAA0B;QAC1B,MAAM,OAAO,CAAC,UAAU,CAAC,WAAW,EAAE,KAAK,WAAW,WAAW,EAAE,KAAK,EAAE,OAAO,EAAE,oBAAoB,GAAG,KAAK;YAC7G,OAAO,IAAA,mCAAiB,EAAC,WAAW,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,oBAAoB,CAAC,CAAC;QACpF,CAAC,EAAE,IAAI,CAAC,CAAC;QACT,MAAM,OAAO,CAAC,UAAU,CAAC,WAAW,EAAE,KAAK,WAAW,WAAW,EAAE,KAAK,EAAE,OAAO,EAAE,oBAAoB,GAAG,KAAK;YAC7G,OAAO,IAAA,mCAAiB,EAAC,WAAW,EAAE,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,oBAAoB,CAAC,CAAC;QACzF,CAAC,CAAC,CAAC;QAEH,2BAA2B;QAC3B,MAAM,OAAO,CAAC,UAAU,CAAC,YAAY,EAAE,KAAK,WAAW,WAAW,EAAE,OAAO;YACzE,OAAO,IAAA,qCAAmB,EAAC,WAAW,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;QACzD,CAAC,EAAE,IAAI,CAAC,CAAC;QACT,MAAM,OAAO,CAAC,UAAU,CAAC,YAAY,EAAE,KAAK,WAAW,WAAW,EAAE,OAAO;YACzE,OAAO,IAAA,qCAAmB,EAAC,WAAW,EAAE,OAAO,CAAC,CAAC;QACnD,CAAC,CAAC,CAAC;IACL,CAAC,CAAC;IAEF,IAAI,CAAC,kBAAkB,GAAG,KAAK;QAC7B,qCAAqC;QACrC,MAAM,OAAO,CAAC,UAAU,CAAC,uBAAuB,EAAE,KAAK;YACrD,OAAO,IAAA,uCAAqB,EAAC,IAAI,CAAC,CAAC;QACrC,CAAC,EAAE,IAAI,CAAC,CAAC;QAET,qCAAqC;QACrC,MAAM,OAAO,CAAC,UAAU,CAAC,uBAAuB,EAAE,KAAK,WAAW,oBAAoB;YACpF,OAAO,IAAA,uCAAqB,EAAC,oBAAoB,CAAC,CAAC;QACrD,CAAC,CAAC,CAAC;QAEH,qCAAqC;QACrC,MAAM,OAAO,CAAC,UAAU,CAAC,oBAAoB,EAAE,KAAK,WAAW,QAAQ;YACrE,OAAO,IAAA,oCAAkB,EAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;QAC5C,CAAC,EAAE,IAAI,CAAC,CAAC;QAET,qCAAqC;QACrC,MAAM,OAAO,CAAC,UAAU,CAAC,oBAAoB,EAAE,KAAK,WAAW,QAAQ,EAAE,oBAAoB;YAC3F,OAAO,IAAA,oCAAkB,EAAC,QAAQ,EAAE,oBAAoB,CAAC,CAAC;QAC5D,CAAC,CAAC,CAAC;IAEL,CAAC,CAAC;IAEF,IAAI,CAAC,uBAAuB,GAAG,KAAK;QAClC,qCAAqC;QACrC,MAAM,OAAO,CAAC,UAAU,CAAC,gBAAgB,EAAE,KAAK,WAAW,YAAY;YACrE,OAAO,IAAA,gCAAc,EAAC,YAAY,EAAE,IAAI,CAAC,CAAC;QAC5C,CAAC,EAAE,IAAI,CAAC,CAAC;QAET,qCAAqC;QACrC,MAAM,OAAO,CAAC,UAAU,CAAC,gBAAgB,EAAE,KAAK,WAAW,YAAY,EAAE,oBAAoB;YAC3F,OAAO,IAAA,gCAAc,EAAC,YAAY,EAAE,oBAAoB,CAAC,CAAC;QAC5D,CAAC,CAAC,CAAC;QAEH,qCAAqC;QACrC,MAAM,OAAO,CAAC,UAAU,CAAC,mBAAmB,EAAE,KAAK,WAAW,YAAY;YACxE,OAAO,IAAA,mCAAiB,EAAC,YAAY,EAAE,IAAI,CAAC,CAAC;QAC/C,CAAC,EAAE,IAAI,CAAC,CAAC;QAET,qCAAqC;QACrC,MAAM,OAAO,CAAC,UAAU,CAAC,mBAAmB,EAAE,KAAK,WAAW,YAAY,EAAE,oBAAoB;YAC9F,OAAO,IAAA,mCAAiB,EAAC,YAAY,EAAE,oBAAoB,CAAC,CAAC;QAC/D,CAAC,CAAC,CAAC;QAEH,qCAAqC;QACrC,MAAM,OAAO,CAAC,UAAU,CAAC,mBAAmB,EAAE,KAAK,WAAW,YAAY;YACxE,OAAO,IAAA,mCAAiB,EAAC,YAAY,EAAE,IAAI,CAAC,CAAC;QAC/C,CAAC,EAAE,IAAI,CAAC,CAAC;QAET,qCAAqC;QACrC,MAAM,OAAO,CAAC,UAAU,CAAC,mBAAmB,EAAE,KAAK,WAAW,YAAY,EAAE,oBAAoB;YAC9F,OAAO,IAAA,mCAAiB,EAAC,YAAY,EAAE,oBAAoB,CAAC,CAAC;QAC/D,CAAC,CAAC,CAAC;QAEH,MAAM,OAAO,CAAC,UAAU,CAAC,qBAAqB,EAAE,KAAK;YACnD,OAAO,IAAA,qCAAmB,EAAC,IAAI,CAAC,CAAC;QACnC,CAAC,EAAE,IAAI,CAAC,CAAC;QAET,MAAM,OAAO,CAAC,UAAU,CAAC,qBAAqB,EAAE,KAAK,WAAW,oBAAoB;YAClF,OAAO,IAAA,qCAAmB,EAAC,oBAAoB,CAAC,CAAC;QACnD,CAAC,CAAC,CAAC;QAEH,MAAM,OAAO,CAAC,UAAU,CAAC,uBAAuB,EAAE,KAAK;YACrD,OAAO,IAAA,uCAAqB,EAAC,IAAI,CAAC,CAAC;QACrC,CAAC,EAAE,IAAI,CAAC,CAAC;QAET,MAAM,OAAO,CAAC,UAAU,CAAC,uBAAuB,EAAE,KAAK,WAAW,oBAAoB;YACpF,OAAO,IAAA,uCAAqB,EAAC,oBAAoB,CAAC,CAAC;QACrD,CAAC,CAAC,CAAC;QAEH,MAAM,OAAO,CAAC,UAAU,CAAC,uBAAuB,EAAE,KAAK;YACrD,OAAO,IAAA,uCAAqB,EAAC,IAAI,CAAC,CAAC;QACrC,CAAC,EAAE,IAAI,CAAC,CAAC;QAET,MAAM,OAAO,CAAC,UAAU,CAAC,uBAAuB,EAAE,KAAK,WAAW,oBAAoB;YACpF,OAAO,IAAA,uCAAqB,EAAC,oBAAoB,CAAC,CAAC;QACrD,CAAC,CAAC,CAAC;IACL,CAAC,CAAC;IAEF,IAAI,CAAC,oBAAoB,GAAG,KAAK;QAC/B,MAAM,OAAO,CAAC,UAAU,CAAC,wBAAwB,EAAE,KAAK,WAAW,SAAS;YAC1E,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE;gBACxB,gCAAgC;gBAChC,MAAM,aAAa,GAAG,EAAE,CAAC;gBACzB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;oBACzC,IAAI,SAAS,CAAC,CAAC,CAAC,EAAE;wBAChB,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;qBAClC;iBACF;gBACD,OAAO,GAAG,CAAC,sBAAsB,CAAC,SAAS,EAAE,IAAI,EAAE,aAAa,CAAC,QAAQ,EAAE,CAAC,CAAC;aAC9E;iBAAM;gBACL,OAAO,GAAG,CAAC,sBAAsB,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;aACpD;QACH,CAAC,EAAE,IAAI,CAAC,CAAC;QAET,MAAM,OAAO,CAAC,UAAU,CAAC,wBAAwB,EAAE,KAAK,WAAW,SAAS,EAAE,iBAAiB;YAC7F,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE;gBACxB,MAAM,aAAa,GAAG,EAAE,CAAC;gBACzB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;oBACzC,IAAI,SAAS,CAAC,CAAC,CAAC,EAAE;wBAChB,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;qBAClC;iBACF;gBACD,OAAO,GAAG,CAAC,sBAAsB,CAAC,SAAS,EAAE,iBAAiB,EAAE,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;aAC1F;iBAAM;gBACL,OAAO,GAAG,CAAC,sBAAsB,CAAC,SAAS,EAAE,iBAAiB,CAAC,CAAC;aACjE;QACH,CAAC,CAAC,CAAC;IAEL,CAAC,CAAC;AAEJ,CAAC,CAAC;AACF,kBAAe,IAAI,kBAAkB,EAAE,CAAC"}
@@ -1,39 +1,26 @@
1
1
  "use strict";
2
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
- return new (P || (P = Promise))(function (resolve, reject) {
5
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
- step((generator = generator.apply(thisArg, _arguments || [])).next());
9
- });
10
- };
11
2
  module.exports = {
12
- showBrowserLogs: function () {
13
- return __awaiter(this, void 0, void 0, function* () {
14
- const logList = yield browser.getLogs("browser");
15
- if (logList) {
16
- logList.forEach(function (log) {
17
- if (log.level === "SEVERE") {
18
- // eslint-disable-next-line no-console
19
- console.log(log.message);
20
- }
21
- });
22
- }
23
- });
3
+ showBrowserLogs: async function () {
4
+ const logList = await browser.getLogs("browser");
5
+ if (logList) {
6
+ logList.forEach(function (log) {
7
+ if (log.level === "SEVERE") {
8
+ // eslint-disable-next-line no-console
9
+ console.log(log.message);
10
+ }
11
+ });
12
+ }
24
13
  },
25
- addBrowserLogs: function (allure) {
26
- return __awaiter(this, void 0, void 0, function* () {
27
- const logList = yield browser.getLogs("browser");
28
- if (logList && logList.length > 0) {
29
- for (let index = 0; index < logList.length; index++) {
30
- const log = logList[index];
31
- if (log.level === "SEVERE") {
32
- yield allure.addAttachment("Browser logs", log.message);
33
- }
14
+ addBrowserLogs: async function (allure) {
15
+ const logList = await browser.getLogs("browser");
16
+ if (logList && logList.length > 0) {
17
+ for (let index = 0; index < logList.length; index++) {
18
+ const log = logList[index];
19
+ if (log.level === "SEVERE") {
20
+ await allure.addAttachment("Browser logs", log.message);
34
21
  }
35
22
  }
36
- });
23
+ }
37
24
  }
38
25
  };
39
26
  //# sourceMappingURL=browserLog.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"browserLog.js","sourceRoot":"","sources":["../../../../src/scripts/hooks/utils/browserLog.js"],"names":[],"mappings":";;;;;;;;;;AAAA,MAAM,CAAC,OAAO,GAAG;IACf,eAAe,EAAE;;YACf,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;YACjD,IAAI,OAAO,EAAE;gBACX,OAAO,CAAC,OAAO,CAAC,UAAU,GAAG;oBAC3B,IAAI,GAAG,CAAC,KAAK,KAAK,QAAQ,EAAE;wBAC1B,sCAAsC;wBACtC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;qBAC1B;gBACH,CAAC,CAAC,CAAC;aACJ;QACH,CAAC;KAAA;IAED,cAAc,EAAE,UAAgB,MAAM;;YACpC,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;YACjD,IAAI,OAAO,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE;gBACjC,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,OAAO,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE;oBACnD,MAAM,GAAG,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC;oBAC3B,IAAI,GAAG,CAAC,KAAK,KAAK,QAAQ,EAAE;wBAC1B,MAAM,MAAM,CAAC,aAAa,CAAC,cAAc,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC;qBACzD;iBACF;aACF;QACH,CAAC;KAAA;CAEF,CAAC"}
1
+ {"version":3,"file":"browserLog.js","sourceRoot":"","sources":["../../../../src/scripts/hooks/utils/browserLog.js"],"names":[],"mappings":";AAAA,MAAM,CAAC,OAAO,GAAG;IACf,eAAe,EAAE,KAAK;QACpB,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QACjD,IAAI,OAAO,EAAE;YACX,OAAO,CAAC,OAAO,CAAC,UAAU,GAAG;gBAC3B,IAAI,GAAG,CAAC,KAAK,KAAK,QAAQ,EAAE;oBAC1B,sCAAsC;oBACtC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;iBAC1B;YACH,CAAC,CAAC,CAAC;SACJ;IACH,CAAC;IAED,cAAc,EAAE,KAAK,WAAW,MAAM;QACpC,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QACjD,IAAI,OAAO,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE;YACjC,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,OAAO,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE;gBACnD,MAAM,GAAG,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC;gBAC3B,IAAI,GAAG,CAAC,KAAK,KAAK,QAAQ,EAAE;oBAC1B,MAAM,MAAM,CAAC,aAAa,CAAC,cAAc,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC;iBACzD;aACF;SACF;IACH,CAAC;CAEF,CAAC"}
@@ -1,13 +1,4 @@
1
1
  "use strict";
2
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
- return new (P || (P = Promise))(function (resolve, reject) {
5
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
- step((generator = generator.apply(thisArg, _arguments || [])).next());
9
- });
10
- };
11
2
  var __importDefault = (this && this.__importDefault) || function (mod) {
12
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
13
4
  };
@@ -17,21 +8,19 @@ const fs_extra_1 = __importDefault(require("fs-extra"));
17
8
  const path_1 = __importDefault(require("path"));
18
9
  const os_1 = __importDefault(require("os"));
19
10
  const dataExchange = require("../../dataExchange/dataExchange");
20
- function createTmpDataFolder() {
21
- return __awaiter(this, void 0, void 0, function* () {
22
- try {
23
- // create tmp folder name to store export data
24
- const randomStr = "vyp-exp-" + Math.random().toString(16).substring(2, 10);
25
- const tmpDir = path_1.default.join(os_1.default.tmpdir(), randomStr);
26
- process.env.TMP_EXPORT_PATH = tmpDir;
27
- yield fs_extra_1.default.ensureDir(process.env.TMP_EXPORT_PATH);
28
- }
29
- catch (error) {
30
- // log and continue
31
- console.warn(`Failed to create tmp data folder`);
32
- console.warn(error);
33
- }
34
- });
11
+ async function createTmpDataFolder() {
12
+ try {
13
+ // create tmp folder name to store export data
14
+ const randomStr = "vyp-exp-" + Math.random().toString(16).substring(2, 10);
15
+ const tmpDir = path_1.default.join(os_1.default.tmpdir(), randomStr);
16
+ process.env.TMP_EXPORT_PATH = tmpDir;
17
+ await fs_extra_1.default.ensureDir(process.env.TMP_EXPORT_PATH);
18
+ }
19
+ catch (error) {
20
+ // log and continue
21
+ console.warn(`Failed to create tmp data folder`);
22
+ console.warn(error);
23
+ }
35
24
  }
36
25
  class DataFolderCommands {
37
26
  constructor() {
@@ -1 +1 @@
1
- {"version":3,"file":"dataExchangeCommands.js","sourceRoot":"","sources":["../../../../src/scripts/hooks/utils/dataExchangeCommands.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAAA,+BAA+B;AAC/B,wDAAyB;AACzB,gDAAuB;AACvB,4CAAmB;AACnB,MAAM,YAAY,GAAG,OAAO,CAAC,iCAAiC,CAAC,CAAC;AAEhE,SAAe,mBAAmB;;QAChC,IAAI;YACF,+CAA+C;YAC/C,MAAM,SAAS,GAAG,UAAU,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YAC3E,MAAM,MAAM,GAAG,cAAI,CAAC,IAAI,CAAC,YAAE,CAAC,MAAM,EAAE,EAAE,SAAS,CAAC,CAAC;YACjD,OAAO,CAAC,GAAG,CAAC,eAAe,GAAG,MAAM,CAAC;YACrC,MAAM,kBAAE,CAAC,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;SACjD;QAAC,OAAO,KAAK,EAAE;YACd,mBAAmB;YACnB,OAAO,CAAC,IAAI,CAAC,kCAAkC,CAAC,CAAC;YACjD,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;SACrB;IACH,CAAC;CAAA;AAED,MAAM,kBAAkB;IAAxB;QACE,wBAAmB,GAAG,mBAAmB,CAAC;QAC1C,eAAU,GAAG,YAAY,CAAC,UAAU,CAAC;QACrC,6BAAwB,GAAG,YAAY,CAAC,wBAAwB,CAAC;QACjE,oBAAe,GAAG,YAAY,CAAC,eAAe,CAAC;IACjD,CAAC;CAAA;AAAA,CAAC;AAEF,kBAAe,IAAI,kBAAkB,EAAE,CAAC"}
1
+ {"version":3,"file":"dataExchangeCommands.js","sourceRoot":"","sources":["../../../../src/scripts/hooks/utils/dataExchangeCommands.ts"],"names":[],"mappings":";;;;;AAAA,+BAA+B;AAC/B,wDAAyB;AACzB,gDAAuB;AACvB,4CAAmB;AACnB,MAAM,YAAY,GAAG,OAAO,CAAC,iCAAiC,CAAC,CAAC;AAEhE,KAAK,UAAU,mBAAmB;IAChC,IAAI;QACF,+CAA+C;QAC/C,MAAM,SAAS,GAAG,UAAU,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QAC3E,MAAM,MAAM,GAAG,cAAI,CAAC,IAAI,CAAC,YAAE,CAAC,MAAM,EAAE,EAAE,SAAS,CAAC,CAAC;QACjD,OAAO,CAAC,GAAG,CAAC,eAAe,GAAG,MAAM,CAAC;QACrC,MAAM,kBAAE,CAAC,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;KACjD;IAAC,OAAO,KAAK,EAAE;QACd,mBAAmB;QACnB,OAAO,CAAC,IAAI,CAAC,kCAAkC,CAAC,CAAC;QACjD,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KACrB;AACH,CAAC;AAED,MAAM,kBAAkB;IAAxB;QACE,wBAAmB,GAAG,mBAAmB,CAAC;QAC1C,eAAU,GAAG,YAAY,CAAC,UAAU,CAAC;QACrC,6BAAwB,GAAG,YAAY,CAAC,wBAAwB,CAAC;QACjE,oBAAe,GAAG,YAAY,CAAC,eAAe,CAAC;IACjD,CAAC;CAAA;AAAA,CAAC;AAEF,kBAAe,IAAI,kBAAkB,EAAE,CAAC"}
@@ -5,7 +5,7 @@ declare class Decryption {
5
5
  private childProcess;
6
6
  initDecryptFunction(): void;
7
7
  retrievePrivateKey(dirname: string): any;
8
- decryptSecureData(privateKey: string, input: string): any;
8
+ decryptSecureData(privateKey: string, input: string | Array<string>): any;
9
9
  decryptSauceConfig(config: Record<string, any>): void;
10
10
  private _decryptDataWithRepoName;
11
11
  }
@@ -9,7 +9,7 @@ class Decryption {
9
9
  }
10
10
  initDecryptFunction() {
11
11
  try {
12
- const privateKey = this.retrievePrivateKey(this.path.resolve(__dirname, "../../.."));
12
+ const privateKey = this.retrievePrivateKey(this.path.resolve(__dirname, "../../../.."));
13
13
  global.util.data.privateKeyFound = true;
14
14
  global.util.data.decrypt = (input) => {
15
15
  return this.decryptSecureData(privateKey, input);
@@ -25,15 +25,22 @@ class Decryption {
25
25
  let privateKey;
26
26
  try {
27
27
  privateKey = this.fs.readFileSync(this.path.resolve(process.cwd(), "private.key"), "utf8");
28
+ console.log("\n[private key is used from current working directory]\n");
28
29
  }
29
30
  catch (error) {
30
- privateKey = process.env.QMATE_PRIVATE_KEY;
31
- if (!privateKey) {
31
+ if (process.env.QMATE_PRIVATE_KEY) {
32
+ privateKey = process.env.QMATE_PRIVATE_KEY;
33
+ privateKey = privateKey.replace(/\\n/gm, "\n");
34
+ privateKey = privateKey.replace(/\\s/gm, " ");
35
+ console.log("\n[private key is used from env var]\n");
36
+ }
37
+ else {
32
38
  try {
33
39
  privateKey = this.fs.readFileSync(this.path.resolve(dirname, "private.key"), "utf8");
40
+ console.log("\n[default private key is used]\n");
34
41
  }
35
42
  catch (error) {
36
- throw new Error(`Decryption failed: ${error}`);
43
+ throw new Error(`No private key found: ${error}`);
37
44
  }
38
45
  }
39
46
  }
@@ -41,17 +48,30 @@ class Decryption {
41
48
  return privateKey;
42
49
  }
43
50
  decryptSecureData(privateKey, input) {
44
- try {
45
- const decryptedDataByRepoName = Buffer.from(this._decryptDataWithRepoName(Buffer.from(input, "hex")), "base64");
46
- const decryptedDataByKey = this.crypto.privateDecrypt({
47
- key: privateKey,
48
- padding: this.crypto.constants.RSA_PKCS1_OAEP_PADDING,
49
- oaepHash: "sha256",
50
- }, decryptedDataByRepoName);
51
+ // input data can either be as single value or array of values for different keys
52
+ if (typeof input === "string") {
53
+ input = [input];
54
+ }
55
+ let decryptedDataByKey;
56
+ let decryptError;
57
+ for (const data of input) {
58
+ try {
59
+ const decryptedDataByRepoName = Buffer.from(this._decryptDataWithRepoName(Buffer.from(data, "hex")), "base64");
60
+ decryptedDataByKey = this.crypto.privateDecrypt({
61
+ key: privateKey,
62
+ padding: this.crypto.constants.RSA_PKCS1_OAEP_PADDING,
63
+ oaepHash: "sha256"
64
+ }, decryptedDataByRepoName);
65
+ }
66
+ catch (error) {
67
+ decryptError = error;
68
+ }
69
+ }
70
+ if (decryptedDataByKey) {
51
71
  return decryptedDataByKey.toString();
52
72
  }
53
- catch (error) {
54
- throw new Error(`Function 'decrypt' failed: ${error}`);
73
+ else {
74
+ throw new Error(`Function 'decrypt' failed: ${decryptError}`);
55
75
  }
56
76
  }
57
77
  decryptSauceConfig(config) {
@@ -68,7 +88,6 @@ class Decryption {
68
88
  // do nothing, key was not encrypted
69
89
  }
70
90
  }
71
- ;
72
91
  _decryptDataWithRepoName(data) {
73
92
  let repoUrl;
74
93
  try {
@@ -1 +1 @@
1
- {"version":3,"file":"decryption.js","sourceRoot":"","sources":["../../../../src/scripts/hooks/utils/decryption.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"decryption.js","sourceRoot":"","sources":["../../../../src/scripts/hooks/utils/decryption.ts"],"names":[],"mappings":"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"}