@dev-blinq/cucumber-js 1.0.10 → 1.0.12-stage

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 (257) hide show
  1. package/bin/cucumber-js +0 -0
  2. package/bin/cucumber.js +0 -0
  3. package/bin/download-install.js +126 -0
  4. package/lib/api/console_logger.d.ts +12 -12
  5. package/lib/api/console_logger.js +23 -23
  6. package/lib/api/convert_configuration.d.ts +4 -4
  7. package/lib/api/convert_configuration.js +65 -64
  8. package/lib/api/convert_configuration.js.map +1 -1
  9. package/lib/api/environment.d.ts +2 -2
  10. package/lib/api/environment.js +13 -13
  11. package/lib/api/formatters.d.ts +20 -20
  12. package/lib/api/formatters.js +60 -60
  13. package/lib/api/gherkin.d.ts +21 -21
  14. package/lib/api/gherkin.js +140 -99
  15. package/lib/api/gherkin.js.map +1 -1
  16. package/lib/api/index.d.ts +12 -12
  17. package/lib/api/index.js +27 -27
  18. package/lib/api/load_configuration.d.ts +9 -9
  19. package/lib/api/load_configuration.js +40 -40
  20. package/lib/api/load_sources.d.ts +9 -9
  21. package/lib/api/load_sources.js +52 -52
  22. package/lib/api/load_support.d.ts +10 -10
  23. package/lib/api/load_support.js +29 -29
  24. package/lib/api/paths.d.ts +8 -8
  25. package/lib/api/paths.js +101 -101
  26. package/lib/api/plugins.d.ts +4 -4
  27. package/lib/api/plugins.js +18 -18
  28. package/lib/api/run_cucumber.d.ts +11 -11
  29. package/lib/api/run_cucumber.js +114 -114
  30. package/lib/api/run_cucumber.js.map +1 -1
  31. package/lib/api/runtime.d.ts +21 -21
  32. package/lib/api/runtime.js +35 -35
  33. package/lib/api/support.d.ts +9 -9
  34. package/lib/api/support.js +25 -25
  35. package/lib/api/test_helpers.d.ts +3 -3
  36. package/lib/api/test_helpers.js +30 -30
  37. package/lib/api/types.d.ts +177 -175
  38. package/lib/api/types.js +2 -2
  39. package/lib/api/types.js.map +1 -1
  40. package/lib/cli/helpers.d.ts +39 -37
  41. package/lib/cli/helpers.js +223 -202
  42. package/lib/cli/helpers.js.map +1 -1
  43. package/lib/cli/i18n.d.ts +2 -2
  44. package/lib/cli/i18n.js +69 -69
  45. package/lib/cli/index.d.ts +21 -21
  46. package/lib/cli/index.js +63 -58
  47. package/lib/cli/index.js.map +1 -1
  48. package/lib/cli/install_validator.d.ts +1 -1
  49. package/lib/cli/install_validator.js +13 -13
  50. package/lib/cli/run.d.ts +1 -1
  51. package/lib/cli/run.js +43 -43
  52. package/lib/cli/validate_node_engine_version.d.ts +10 -10
  53. package/lib/cli/validate_node_engine_version.js +23 -23
  54. package/lib/configuration/argv_parser.d.ts +20 -20
  55. package/lib/configuration/argv_parser.js +102 -100
  56. package/lib/configuration/argv_parser.js.map +1 -1
  57. package/lib/configuration/check_schema.d.ts +2 -2
  58. package/lib/configuration/check_schema.js +59 -59
  59. package/lib/configuration/default_configuration.d.ts +2 -2
  60. package/lib/configuration/default_configuration.js +28 -26
  61. package/lib/configuration/default_configuration.js.map +1 -1
  62. package/lib/configuration/from_file.d.ts +3 -3
  63. package/lib/configuration/from_file.js +84 -84
  64. package/lib/configuration/helpers.d.ts +1 -1
  65. package/lib/configuration/helpers.js +10 -10
  66. package/lib/configuration/index.d.ts +7 -7
  67. package/lib/configuration/index.js +28 -28
  68. package/lib/configuration/locate_file.d.ts +1 -1
  69. package/lib/configuration/locate_file.js +20 -20
  70. package/lib/configuration/merge_configurations.d.ts +2 -2
  71. package/lib/configuration/merge_configurations.js +47 -47
  72. package/lib/configuration/option_splitter.d.ts +3 -3
  73. package/lib/configuration/option_splitter.js +22 -22
  74. package/lib/configuration/types.d.ts +30 -28
  75. package/lib/configuration/types.js +2 -2
  76. package/lib/configuration/types.js.map +1 -1
  77. package/lib/configuration/validate_configuration.d.ts +3 -3
  78. package/lib/configuration/validate_configuration.js +12 -12
  79. package/lib/filter_stack_trace.d.ts +3 -3
  80. package/lib/filter_stack_trace.js +37 -37
  81. package/lib/formatter/builder.d.ts +37 -37
  82. package/lib/formatter/builder.js +100 -100
  83. package/lib/formatter/bvt_analysis_formatter.d.ts +18 -0
  84. package/lib/formatter/bvt_analysis_formatter.js +193 -0
  85. package/lib/formatter/bvt_analysis_formatter.js.map +1 -0
  86. package/lib/formatter/feature_data_format.d.ts +23 -14
  87. package/lib/formatter/feature_data_format.js +136 -80
  88. package/lib/formatter/feature_data_format.js.map +1 -1
  89. package/lib/formatter/fixtures/typescript.d.ts +2 -2
  90. package/lib/formatter/fixtures/typescript.js +5 -5
  91. package/lib/formatter/get_color_fns.d.ts +15 -15
  92. package/lib/formatter/get_color_fns.js +55 -55
  93. package/lib/formatter/helpers/duration_helpers.d.ts +2 -2
  94. package/lib/formatter/helpers/duration_helpers.js +8 -8
  95. package/lib/formatter/helpers/event_data_collector.d.ts +30 -30
  96. package/lib/formatter/helpers/event_data_collector.js +125 -125
  97. package/lib/formatter/helpers/formatters.d.ts +6 -6
  98. package/lib/formatter/helpers/formatters.js +44 -44
  99. package/lib/formatter/helpers/formatters.js.map +1 -1
  100. package/lib/formatter/helpers/gherkin_document_parser.d.ts +5 -5
  101. package/lib/formatter/helpers/gherkin_document_parser.js +65 -65
  102. package/lib/formatter/helpers/index.d.ts +10 -10
  103. package/lib/formatter/helpers/index.js +51 -51
  104. package/lib/formatter/helpers/issue_helpers.d.ts +19 -19
  105. package/lib/formatter/helpers/issue_helpers.js +58 -58
  106. package/lib/formatter/helpers/keyword_type.d.ts +11 -11
  107. package/lib/formatter/helpers/keyword_type.js +31 -31
  108. package/lib/formatter/helpers/location_helpers.d.ts +2 -2
  109. package/lib/formatter/helpers/location_helpers.js +16 -16
  110. package/lib/formatter/helpers/pickle_parser.d.ts +17 -17
  111. package/lib/formatter/helpers/pickle_parser.js +27 -27
  112. package/lib/formatter/helpers/report_generator.d.ts +110 -91
  113. package/lib/formatter/helpers/report_generator.js +348 -250
  114. package/lib/formatter/helpers/report_generator.js.map +1 -1
  115. package/lib/formatter/helpers/step_argument_formatter.d.ts +2 -2
  116. package/lib/formatter/helpers/step_argument_formatter.js +47 -47
  117. package/lib/formatter/helpers/summary_helpers.d.ts +9 -9
  118. package/lib/formatter/helpers/summary_helpers.js +95 -95
  119. package/lib/formatter/helpers/test_case_attempt_formatter.d.ts +12 -12
  120. package/lib/formatter/helpers/test_case_attempt_formatter.js +113 -113
  121. package/lib/formatter/helpers/test_case_attempt_parser.d.ts +32 -32
  122. package/lib/formatter/helpers/test_case_attempt_parser.js +134 -134
  123. package/lib/formatter/helpers/upload_serivce.d.ts +13 -9
  124. package/lib/formatter/helpers/upload_serivce.js +103 -46
  125. package/lib/formatter/helpers/upload_serivce.js.map +1 -1
  126. package/lib/formatter/helpers/uploader.d.ts +11 -0
  127. package/lib/formatter/helpers/uploader.js +78 -0
  128. package/lib/formatter/helpers/uploader.js.map +1 -0
  129. package/lib/formatter/helpers/usage_helpers/index.d.ts +23 -23
  130. package/lib/formatter/helpers/usage_helpers/index.js +110 -110
  131. package/lib/formatter/html_formatter.d.ts +7 -7
  132. package/lib/formatter/html_formatter.js +29 -29
  133. package/lib/formatter/index.d.ts +53 -53
  134. package/lib/formatter/index.js +20 -20
  135. package/lib/formatter/json_formatter.d.ts +78 -78
  136. package/lib/formatter/json_formatter.js +229 -229
  137. package/lib/formatter/junit_formatter.d.ts +17 -17
  138. package/lib/formatter/junit_formatter.js +180 -180
  139. package/lib/formatter/message_formatter.d.ts +5 -5
  140. package/lib/formatter/message_formatter.js +14 -14
  141. package/lib/formatter/progress_bar_formatter.d.ts +18 -18
  142. package/lib/formatter/progress_bar_formatter.js +98 -98
  143. package/lib/formatter/progress_formatter.d.ts +9 -9
  144. package/lib/formatter/progress_formatter.js +58 -58
  145. package/lib/formatter/rerun_formatter.d.ts +13 -13
  146. package/lib/formatter/rerun_formatter.js +79 -79
  147. package/lib/formatter/snippets_formatter.d.ts +6 -6
  148. package/lib/formatter/snippets_formatter.js +60 -60
  149. package/lib/formatter/step_definition_snippet_builder/index.d.ts +20 -20
  150. package/lib/formatter/step_definition_snippet_builder/index.js +45 -45
  151. package/lib/formatter/step_definition_snippet_builder/javascript_snippet_syntax.d.ts +7 -7
  152. package/lib/formatter/step_definition_snippet_builder/javascript_snippet_syntax.js +45 -45
  153. package/lib/formatter/step_definition_snippet_builder/snippet_syntax.d.ts +16 -16
  154. package/lib/formatter/step_definition_snippet_builder/snippet_syntax.js +10 -10
  155. package/lib/formatter/summary_formatter.d.ts +14 -14
  156. package/lib/formatter/summary_formatter.js +67 -67
  157. package/lib/formatter/usage_formatter.d.ts +6 -6
  158. package/lib/formatter/usage_formatter.js +97 -97
  159. package/lib/formatter/usage_json_formatter.d.ts +7 -7
  160. package/lib/formatter/usage_json_formatter.js +33 -33
  161. package/lib/index.d.ts +58 -58
  162. package/lib/index.js +108 -108
  163. package/lib/logger.d.ts +5 -5
  164. package/lib/logger.js +2 -2
  165. package/lib/models/data_table.d.ts +10 -10
  166. package/lib/models/data_table.js +45 -45
  167. package/lib/models/definition.d.ts +55 -55
  168. package/lib/models/definition.js +21 -21
  169. package/lib/models/gherkin_step_keyword.d.ts +1 -1
  170. package/lib/models/gherkin_step_keyword.js +2 -2
  171. package/lib/models/pickle_order.d.ts +1 -1
  172. package/lib/models/pickle_order.js +2 -2
  173. package/lib/models/step_definition.d.ts +11 -11
  174. package/lib/models/step_definition.js +36 -36
  175. package/lib/models/test_case_hook_definition.d.ts +10 -10
  176. package/lib/models/test_case_hook_definition.js +26 -26
  177. package/lib/models/test_run_hook_definition.d.ts +3 -3
  178. package/lib/models/test_run_hook_definition.js +9 -9
  179. package/lib/models/test_step_hook_definition.d.ts +9 -9
  180. package/lib/models/test_step_hook_definition.js +25 -25
  181. package/lib/pickle_filter.d.ts +42 -42
  182. package/lib/pickle_filter.js +98 -98
  183. package/lib/plugin/index.d.ts +2 -2
  184. package/lib/plugin/index.js +18 -18
  185. package/lib/plugin/plugin_manager.d.ts +13 -13
  186. package/lib/plugin/plugin_manager.js +35 -35
  187. package/lib/plugin/types.d.ts +14 -14
  188. package/lib/plugin/types.js +2 -2
  189. package/lib/publish/http_stream.d.ts +30 -30
  190. package/lib/publish/http_stream.js +111 -111
  191. package/lib/publish/index.d.ts +2 -2
  192. package/lib/publish/index.js +4 -4
  193. package/lib/publish/publish_plugin.d.ts +2 -2
  194. package/lib/publish/publish_plugin.js +47 -47
  195. package/lib/runtime/assemble_test_cases.d.ts +13 -13
  196. package/lib/runtime/assemble_test_cases.js +87 -87
  197. package/lib/runtime/attachment_manager/index.d.ts +33 -33
  198. package/lib/runtime/attachment_manager/index.js +118 -118
  199. package/lib/runtime/format_error.d.ts +2 -2
  200. package/lib/runtime/format_error.js +35 -35
  201. package/lib/runtime/helpers.d.ts +6 -6
  202. package/lib/runtime/helpers.js +100 -100
  203. package/lib/runtime/index.d.ts +40 -40
  204. package/lib/runtime/index.js +75 -75
  205. package/lib/runtime/parallel/command_types.d.ts +32 -32
  206. package/lib/runtime/parallel/command_types.js +2 -2
  207. package/lib/runtime/parallel/coordinator.d.ts +72 -72
  208. package/lib/runtime/parallel/coordinator.js +221 -221
  209. package/lib/runtime/parallel/run_worker.d.ts +1 -1
  210. package/lib/runtime/parallel/run_worker.js +28 -28
  211. package/lib/runtime/parallel/worker.d.ts +26 -26
  212. package/lib/runtime/parallel/worker.js +86 -86
  213. package/lib/runtime/run_test_run_hooks.d.ts +3 -3
  214. package/lib/runtime/run_test_run_hooks.js +27 -27
  215. package/lib/runtime/step_runner.d.ts +16 -16
  216. package/lib/runtime/step_runner.js +87 -87
  217. package/lib/runtime/stopwatch.d.ts +12 -12
  218. package/lib/runtime/stopwatch.js +33 -33
  219. package/lib/runtime/test_case_runner.d.ts +54 -54
  220. package/lib/runtime/test_case_runner.js +267 -267
  221. package/lib/step_arguments.d.ts +6 -6
  222. package/lib/step_arguments.js +18 -18
  223. package/lib/support_code_library_builder/build_parameter_type.d.ts +3 -3
  224. package/lib/support_code_library_builder/build_parameter_type.js +12 -12
  225. package/lib/support_code_library_builder/get_definition_line_and_uri.d.ts +3 -3
  226. package/lib/support_code_library_builder/get_definition_line_and_uri.js +28 -28
  227. package/lib/support_code_library_builder/index.d.ts +74 -74
  228. package/lib/support_code_library_builder/index.js +296 -296
  229. package/lib/support_code_library_builder/parallel_can_assign_helpers.d.ts +2 -2
  230. package/lib/support_code_library_builder/parallel_can_assign_helpers.js +15 -15
  231. package/lib/support_code_library_builder/sourced_parameter_type_registry.d.ts +7 -7
  232. package/lib/support_code_library_builder/sourced_parameter_type_registry.js +18 -18
  233. package/lib/support_code_library_builder/types.d.ts +88 -88
  234. package/lib/support_code_library_builder/types.js +2 -2
  235. package/lib/support_code_library_builder/validate_arguments.d.ts +12 -12
  236. package/lib/support_code_library_builder/validate_arguments.js +72 -72
  237. package/lib/support_code_library_builder/world.d.ts +18 -18
  238. package/lib/support_code_library_builder/world.js +10 -10
  239. package/lib/time.d.ts +18 -18
  240. package/lib/time.js +60 -60
  241. package/lib/try_require.d.ts +7 -7
  242. package/lib/try_require.js +22 -22
  243. package/lib/types/index.d.ts +4 -4
  244. package/lib/types/index.js +2 -2
  245. package/lib/uncaught_exception_manager.d.ts +7 -7
  246. package/lib/uncaught_exception_manager.js +11 -11
  247. package/lib/user_code_runner.d.ts +14 -14
  248. package/lib/user_code_runner.js +81 -81
  249. package/lib/value_checker.d.ts +3 -3
  250. package/lib/value_checker.js +18 -18
  251. package/lib/version.d.ts +1 -1
  252. package/lib/version.js +5 -5
  253. package/lib/version.js.map +1 -1
  254. package/package.json +4 -2
  255. package/lib/formatter/bvt_formatter.d.ts +0 -9
  256. package/lib/formatter/bvt_formatter.js +0 -63
  257. package/lib/formatter/bvt_formatter.js.map +0 -1
@@ -1,26 +1,26 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- /**
4
- * Provides a try guarded require call that will throw a more detailed error when
5
- * the ERR_REQUIRE_ESM error code is encountered.
6
- *
7
- * @param {string} path File path to require from.
8
- */
9
- function tryRequire(path) {
10
- try {
11
- return require(path);
12
- }
13
- catch (error) {
14
- if (error.code === 'ERR_REQUIRE_ESM') {
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ /**
4
+ * Provides a try guarded require call that will throw a more detailed error when
5
+ * the ERR_REQUIRE_ESM error code is encountered.
6
+ *
7
+ * @param {string} path File path to require from.
8
+ */
9
+ function tryRequire(path) {
10
+ try {
11
+ return require(path);
12
+ }
13
+ catch (error) {
14
+ if (error.code === 'ERR_REQUIRE_ESM') {
15
15
  throw Error(`Cucumber expected a CommonJS module at '${path}' but found an ES module.
16
16
  Either change the file to CommonJS syntax or use the --import directive instead of --require.
17
17
 
18
- Original error message: ${error.message}`);
19
- }
20
- else {
21
- throw error;
22
- }
23
- }
24
- }
25
- exports.default = tryRequire;
18
+ Original error message: ${error.message}`);
19
+ }
20
+ else {
21
+ throw error;
22
+ }
23
+ }
24
+ }
25
+ exports.default = tryRequire;
26
26
  //# sourceMappingURL=try_require.js.map
@@ -1,4 +1,4 @@
1
- export interface ILineAndUri {
2
- line: number;
3
- uri: string;
4
- }
1
+ export interface ILineAndUri {
2
+ line: number;
3
+ uri: string;
4
+ }
@@ -1,3 +1,3 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  //# sourceMappingURL=index.js.map
@@ -1,7 +1,7 @@
1
- /// <reference types="node" />
2
- import UncaughtExceptionListener = NodeJS.UncaughtExceptionListener;
3
- declare const UncaughtExceptionManager: {
4
- registerHandler(handler: UncaughtExceptionListener): void;
5
- unregisterHandler(handler: UncaughtExceptionListener): void;
6
- };
7
- export default UncaughtExceptionManager;
1
+ /// <reference types="node" />
2
+ import UncaughtExceptionListener = NodeJS.UncaughtExceptionListener;
3
+ declare const UncaughtExceptionManager: {
4
+ registerHandler(handler: UncaughtExceptionListener): void;
5
+ unregisterHandler(handler: UncaughtExceptionListener): void;
6
+ };
7
+ export default UncaughtExceptionManager;
@@ -1,12 +1,12 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const UncaughtExceptionManager = {
4
- registerHandler(handler) {
5
- process.addListener('uncaughtException', handler);
6
- },
7
- unregisterHandler(handler) {
8
- process.removeListener('uncaughtException', handler);
9
- },
10
- };
11
- exports.default = UncaughtExceptionManager;
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const UncaughtExceptionManager = {
4
+ registerHandler(handler) {
5
+ process.addListener('uncaughtException', handler);
6
+ },
7
+ unregisterHandler(handler) {
8
+ process.removeListener('uncaughtException', handler);
9
+ },
10
+ };
11
+ exports.default = UncaughtExceptionManager;
12
12
  //# sourceMappingURL=uncaught_exception_manager.js.map
@@ -1,14 +1,14 @@
1
- export interface IRunRequest {
2
- argsArray: any[];
3
- thisArg: any;
4
- fn: Function;
5
- timeoutInMilliseconds: number;
6
- }
7
- export interface IRunResponse {
8
- error?: any;
9
- result?: any;
10
- }
11
- declare const UserCodeRunner: {
12
- run({ argsArray, thisArg, fn, timeoutInMilliseconds, }: IRunRequest): Promise<IRunResponse>;
13
- };
14
- export default UserCodeRunner;
1
+ export interface IRunRequest {
2
+ argsArray: any[];
3
+ thisArg: any;
4
+ fn: Function;
5
+ timeoutInMilliseconds: number;
6
+ }
7
+ export interface IRunResponse {
8
+ error?: any;
9
+ result?: any;
10
+ }
11
+ declare const UserCodeRunner: {
12
+ run({ argsArray, thisArg, fn, timeoutInMilliseconds, }: IRunRequest): Promise<IRunResponse>;
13
+ };
14
+ export default UserCodeRunner;
@@ -1,82 +1,82 @@
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 time_1 = require("./time");
7
- const uncaught_exception_manager_1 = __importDefault(require("./uncaught_exception_manager"));
8
- const util_1 = __importDefault(require("util"));
9
- const value_checker_1 = require("./value_checker");
10
- const UserCodeRunner = {
11
- async run({ argsArray, thisArg, fn, timeoutInMilliseconds, }) {
12
- const callbackPromise = new Promise((resolve, reject) => {
13
- argsArray.push((error, result) => {
14
- if ((0, value_checker_1.doesHaveValue)(error)) {
15
- reject(error);
16
- }
17
- else {
18
- resolve(result);
19
- }
20
- });
21
- });
22
- let fnReturn;
23
- try {
24
- fnReturn = fn.apply(thisArg, argsArray);
25
- }
26
- catch (e) {
27
- const error = e instanceof Error ? e : util_1.default.format(e);
28
- return { error };
29
- }
30
- const racingPromises = [];
31
- const callbackInterface = fn.length === argsArray.length;
32
- const promiseInterface = (0, value_checker_1.doesHaveValue)(fnReturn) && typeof fnReturn.then === 'function';
33
- if (callbackInterface && promiseInterface) {
34
- return {
35
- error: new Error('function uses multiple asynchronous interfaces: callback and promise\n' +
36
- 'to use the callback interface: do not return a promise\n' +
37
- 'to use the promise interface: remove the last argument to the function'),
38
- };
39
- }
40
- else if (callbackInterface) {
41
- racingPromises.push(callbackPromise);
42
- }
43
- else if (promiseInterface) {
44
- racingPromises.push(fnReturn);
45
- }
46
- else {
47
- return { result: fnReturn };
48
- }
49
- let exceptionHandler;
50
- const uncaughtExceptionPromise = new Promise((resolve, reject) => {
51
- exceptionHandler = reject;
52
- uncaught_exception_manager_1.default.registerHandler(exceptionHandler);
53
- });
54
- racingPromises.push(uncaughtExceptionPromise);
55
- let finalPromise = Promise.race(racingPromises);
56
- if (timeoutInMilliseconds >= 0) {
57
- const timeoutMessage = 'function timed out, ensure the ' +
58
- (callbackInterface ? 'callback is executed' : 'promise resolves') +
59
- ` within ${timeoutInMilliseconds.toString()} milliseconds`;
60
- finalPromise = (0, time_1.wrapPromiseWithTimeout)(finalPromise, timeoutInMilliseconds, timeoutMessage);
61
- }
62
- let error, result;
63
- try {
64
- result = await finalPromise;
65
- }
66
- catch (e) {
67
- if (e instanceof Error) {
68
- error = e;
69
- }
70
- else if ((0, value_checker_1.doesHaveValue)(e)) {
71
- error = util_1.default.format(e);
72
- }
73
- else {
74
- error = new Error('Promise rejected without a reason');
75
- }
76
- }
77
- uncaught_exception_manager_1.default.unregisterHandler(exceptionHandler);
78
- return { error, result };
79
- },
80
- };
81
- exports.default = UserCodeRunner;
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 time_1 = require("./time");
7
+ const uncaught_exception_manager_1 = __importDefault(require("./uncaught_exception_manager"));
8
+ const util_1 = __importDefault(require("util"));
9
+ const value_checker_1 = require("./value_checker");
10
+ const UserCodeRunner = {
11
+ async run({ argsArray, thisArg, fn, timeoutInMilliseconds, }) {
12
+ const callbackPromise = new Promise((resolve, reject) => {
13
+ argsArray.push((error, result) => {
14
+ if ((0, value_checker_1.doesHaveValue)(error)) {
15
+ reject(error);
16
+ }
17
+ else {
18
+ resolve(result);
19
+ }
20
+ });
21
+ });
22
+ let fnReturn;
23
+ try {
24
+ fnReturn = fn.apply(thisArg, argsArray);
25
+ }
26
+ catch (e) {
27
+ const error = e instanceof Error ? e : util_1.default.format(e);
28
+ return { error };
29
+ }
30
+ const racingPromises = [];
31
+ const callbackInterface = fn.length === argsArray.length;
32
+ const promiseInterface = (0, value_checker_1.doesHaveValue)(fnReturn) && typeof fnReturn.then === 'function';
33
+ if (callbackInterface && promiseInterface) {
34
+ return {
35
+ error: new Error('function uses multiple asynchronous interfaces: callback and promise\n' +
36
+ 'to use the callback interface: do not return a promise\n' +
37
+ 'to use the promise interface: remove the last argument to the function'),
38
+ };
39
+ }
40
+ else if (callbackInterface) {
41
+ racingPromises.push(callbackPromise);
42
+ }
43
+ else if (promiseInterface) {
44
+ racingPromises.push(fnReturn);
45
+ }
46
+ else {
47
+ return { result: fnReturn };
48
+ }
49
+ let exceptionHandler;
50
+ const uncaughtExceptionPromise = new Promise((resolve, reject) => {
51
+ exceptionHandler = reject;
52
+ uncaught_exception_manager_1.default.registerHandler(exceptionHandler);
53
+ });
54
+ racingPromises.push(uncaughtExceptionPromise);
55
+ let finalPromise = Promise.race(racingPromises);
56
+ if (timeoutInMilliseconds >= 0) {
57
+ const timeoutMessage = 'function timed out, ensure the ' +
58
+ (callbackInterface ? 'callback is executed' : 'promise resolves') +
59
+ ` within ${timeoutInMilliseconds.toString()} milliseconds`;
60
+ finalPromise = (0, time_1.wrapPromiseWithTimeout)(finalPromise, timeoutInMilliseconds, timeoutMessage);
61
+ }
62
+ let error, result;
63
+ try {
64
+ result = await finalPromise;
65
+ }
66
+ catch (e) {
67
+ if (e instanceof Error) {
68
+ error = e;
69
+ }
70
+ else if ((0, value_checker_1.doesHaveValue)(e)) {
71
+ error = util_1.default.format(e);
72
+ }
73
+ else {
74
+ error = new Error('Promise rejected without a reason');
75
+ }
76
+ }
77
+ uncaught_exception_manager_1.default.unregisterHandler(exceptionHandler);
78
+ return { error, result };
79
+ },
80
+ };
81
+ exports.default = UserCodeRunner;
82
82
  //# sourceMappingURL=user_code_runner.js.map
@@ -1,3 +1,3 @@
1
- export declare function doesHaveValue<T>(value: T): boolean;
2
- export declare function doesNotHaveValue<T>(value: T): boolean;
3
- export declare function valueOrDefault<T>(value: T, defaultValue: T): T;
1
+ export declare function doesHaveValue<T>(value: T): boolean;
2
+ export declare function doesNotHaveValue<T>(value: T): boolean;
3
+ export declare function valueOrDefault<T>(value: T, defaultValue: T): T;
@@ -1,19 +1,19 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.valueOrDefault = exports.doesNotHaveValue = exports.doesHaveValue = void 0;
4
- function doesHaveValue(value) {
5
- return !doesNotHaveValue(value);
6
- }
7
- exports.doesHaveValue = doesHaveValue;
8
- function doesNotHaveValue(value) {
9
- return value === null || value === undefined;
10
- }
11
- exports.doesNotHaveValue = doesNotHaveValue;
12
- function valueOrDefault(value, defaultValue) {
13
- if (doesHaveValue(value)) {
14
- return value;
15
- }
16
- return defaultValue;
17
- }
18
- exports.valueOrDefault = valueOrDefault;
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.valueOrDefault = exports.doesNotHaveValue = exports.doesHaveValue = void 0;
4
+ function doesHaveValue(value) {
5
+ return !doesNotHaveValue(value);
6
+ }
7
+ exports.doesHaveValue = doesHaveValue;
8
+ function doesNotHaveValue(value) {
9
+ return value === null || value === undefined;
10
+ }
11
+ exports.doesNotHaveValue = doesNotHaveValue;
12
+ function valueOrDefault(value, defaultValue) {
13
+ if (doesHaveValue(value)) {
14
+ return value;
15
+ }
16
+ return defaultValue;
17
+ }
18
+ exports.valueOrDefault = valueOrDefault;
19
19
  //# sourceMappingURL=value_checker.js.map
package/lib/version.d.ts CHANGED
@@ -1 +1 @@
1
- export declare const version = "1.0.10";
1
+ export declare const version = "1.0.12-stage";
package/lib/version.js CHANGED
@@ -1,6 +1,6 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.version = void 0;
4
- // Generated by genversion.
5
- exports.version = '1.0.10';
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.version = void 0;
4
+ // Generated by genversion.
5
+ exports.version = '1.0.12-stage';
6
6
  //# sourceMappingURL=version.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"version.js","sourceRoot":"","sources":["../src/version.ts"],"names":[],"mappings":";;;AAAA,2BAA2B;AACd,QAAA,OAAO,GAAG,QAAQ,CAAA","sourcesContent":["// Generated by genversion.\nexport const version = '1.0.10'\n"]}
1
+ {"version":3,"file":"version.js","sourceRoot":"","sources":["../src/version.ts"],"names":[],"mappings":";;;AAAA,2BAA2B;AACd,QAAA,OAAO,GAAG,cAAc,CAAA","sourcesContent":["// Generated by genversion.\nexport const version = '1.0.12-stage'\n"]}
package/package.json CHANGED
@@ -8,7 +8,7 @@
8
8
  "gherkin",
9
9
  "tests"
10
10
  ],
11
- "version": "1.0.10",
11
+ "version": "1.0.12-stage",
12
12
  "homepage": "https://github.com/blinq-io/cucumber-js",
13
13
  "author": "blinq.io",
14
14
  "contributors": [
@@ -88,6 +88,7 @@
88
88
  "strip-ansi": "6.0.1",
89
89
  "supports-color": "^8.1.1",
90
90
  "tmp": "^0.2.1",
91
+ "tmp-promise": "^3.0.3",
91
92
  "util-arity": "^1.1.0",
92
93
  "verror": "^1.10.0",
93
94
  "xmlbuilder": "^15.1.1",
@@ -181,7 +182,8 @@
181
182
  "update-dependencies": "npx npm-check-updates --upgrade"
182
183
  },
183
184
  "bin": {
184
- "cucumber-js": "bin/cucumber.js"
185
+ "cucumber-js": "bin/cucumber.js",
186
+ "download-install": "bin/download-install.js"
185
187
  },
186
188
  "license": "MIT",
187
189
  "files": [
@@ -1,9 +0,0 @@
1
- import Formatter, { IFormatterOptions } from '.';
2
- import { JsonReport } from './helpers/report_generator';
3
- export default class BVTFormatter extends Formatter {
4
- private reportGenerator;
5
- private uploadService;
6
- constructor(options: IFormatterOptions);
7
- uploadRun(report: JsonReport): Promise<void>;
8
- createZip(reportFolder: string | null, report: JsonReport): Promise<string>;
9
- }
@@ -1,63 +0,0 @@
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 _1 = __importDefault(require("."));
7
- const report_generator_1 = __importDefault(require("./helpers/report_generator"));
8
- const path_1 = __importDefault(require("path"));
9
- const fs_1 = __importDefault(require("fs"));
10
- const jszip_1 = __importDefault(require("jszip"));
11
- const form_data_1 = __importDefault(require("form-data"));
12
- const upload_serivce_1 = require("./helpers/upload_serivce");
13
- const REPORT_SERVICE_URL = process.env.REPORT_SERVICE_URL;
14
- const REPORT_SERVICE_TOKEN = process.env.REPORT_SERVICE_TOKEN;
15
- if (!REPORT_SERVICE_URL || !REPORT_SERVICE_TOKEN) {
16
- throw new Error("REPORT_SERVICE_URL and REPORT_SERVICE_TOKEN must be set");
17
- }
18
- class BVTFormatter extends _1.default {
19
- constructor(options) {
20
- super(options);
21
- this.reportGenerator = new report_generator_1.default();
22
- this.uploadService = new upload_serivce_1.RunUploadService(REPORT_SERVICE_URL, REPORT_SERVICE_TOKEN);
23
- options.eventBroadcaster.on('envelope', async (envelope) => {
24
- this.reportGenerator.handleMessage(envelope);
25
- if (envelope.testRunFinished) {
26
- const report = this.reportGenerator.getReport();
27
- this.log(JSON.stringify(report, null, 2));
28
- await this.uploadRun(report);
29
- }
30
- });
31
- }
32
- async uploadRun(report) {
33
- const runDoc = await this.uploadService.createRunDocument("test");
34
- const runDocId = runDoc._id;
35
- const formData = new form_data_1.default();
36
- const reportFolder = this.reportGenerator.reportFolder;
37
- if (!fs_1.default.existsSync(reportFolder)) {
38
- fs_1.default.mkdirSync(reportFolder);
39
- }
40
- const zipPath = await this.createZip(reportFolder, report);
41
- console.log(zipPath);
42
- formData.append(runDocId, fs_1.default.readFileSync(zipPath), "report.zip");
43
- await this.uploadService.upload(formData);
44
- process.exit(0);
45
- }
46
- async createZip(reportFolder, report) {
47
- const zip = new jszip_1.default();
48
- zip.file("report.json", JSON.stringify(report, null, 2));
49
- const folder = zip.folder("screenshots");
50
- const files = fs_1.default.readdirSync(reportFolder);
51
- files.forEach((file) => {
52
- folder.file(file, fs_1.default.readFileSync(path_1.default.join(reportFolder, file)));
53
- });
54
- const zipBuffer = await zip.generateAsync({ type: "nodebuffer" });
55
- // save zip file
56
- const zipPath = path_1.default.join(reportFolder, 'report.zip');
57
- fs_1.default.writeFileSync(zipPath, zipBuffer);
58
- fs_1.default.writeFileSync(path_1.default.join(reportFolder, 'report.json'), JSON.stringify(report, null, 2));
59
- return zipPath;
60
- }
61
- }
62
- exports.default = BVTFormatter;
63
- //# sourceMappingURL=bvt_formatter.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"bvt_formatter.js","sourceRoot":"","sources":["../../src/formatter/bvt_formatter.ts"],"names":[],"mappings":"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","sourcesContent":["import * as messages from '@cucumber/messages'\nimport Formatter, { IFormatterOptions } from '.'\nimport ReportGenerator, { JsonReport } from './helpers/report_generator'\nimport path from 'path'\nimport fs from 'fs'\nimport JSZip from 'jszip'\nimport FormData from \"form-data\";\nimport { RunUploadService } from './helpers/upload_serivce'\n\nconst REPORT_SERVICE_URL = process.env.REPORT_SERVICE_URL ;\nconst REPORT_SERVICE_TOKEN = process.env.REPORT_SERVICE_TOKEN;\nif(!REPORT_SERVICE_URL || !REPORT_SERVICE_TOKEN){\n throw new Error(\"REPORT_SERVICE_URL and REPORT_SERVICE_TOKEN must be set\")\n}\n\nexport default class BVTFormatter extends Formatter {\n private reportGenerator = new ReportGenerator()\n private uploadService = new RunUploadService(REPORT_SERVICE_URL, REPORT_SERVICE_TOKEN);\n constructor(options: IFormatterOptions) {\n super(options)\n options.eventBroadcaster.on('envelope', async (envelope: messages.Envelope) => {\n this.reportGenerator.handleMessage(envelope)\n if(envelope.testRunFinished){\n const report = this.reportGenerator.getReport();\n this.log(JSON.stringify(report, null, 2))\n await this.uploadRun(report);\n }\n })\n }\n async uploadRun(report:JsonReport){\n const runDoc = await this.uploadService.createRunDocument(\"test\");\n const runDocId = runDoc._id;\n const formData = new FormData();\n const reportFolder = this.reportGenerator.reportFolder;\n if(!fs.existsSync(reportFolder)){\n fs.mkdirSync(reportFolder);\n }\n const zipPath = await this.createZip(reportFolder, report);\n console.log(zipPath);\n formData.append(runDocId, fs.readFileSync(zipPath), \"report.zip\");\n await this.uploadService.upload(formData);\n process.exit(0);\n }\n async createZip(reportFolder:string|null, report:JsonReport){\n const zip = new JSZip();\n zip.file(\"report.json\", JSON.stringify(report, null, 2));\n const folder = zip.folder(\"screenshots\");\n const files = fs.readdirSync(reportFolder);\n files.forEach((file) => {\n folder.file(file, fs.readFileSync(path.join(reportFolder, file)));\n });\n const zipBuffer = await zip.generateAsync({ type: \"nodebuffer\" });\n // save zip file\n const zipPath = path.join(reportFolder,'report.zip');\n fs.writeFileSync(zipPath, zipBuffer);\n fs.writeFileSync(path.join(reportFolder,'report.json'), JSON.stringify(report, null, 2));\n return zipPath\n }\n}"]}