@cucumber/cucumber 12.9.0 → 13.1.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.
Files changed (400) hide show
  1. package/README.md +8 -3
  2. package/bin/cucumber.js +2 -1
  3. package/lib/api/convert_configuration.d.ts +3 -4
  4. package/lib/api/convert_configuration.js +9 -11
  5. package/lib/api/emit_support_code_messages.d.ts +3 -3
  6. package/lib/api/emit_support_code_messages.js +16 -65
  7. package/lib/api/formatters.d.ts +7 -7
  8. package/lib/api/formatters.js +5 -2
  9. package/lib/api/gherkin.d.ts +3 -3
  10. package/lib/api/gherkin.js +2 -4
  11. package/lib/api/index.d.ts +2 -2
  12. package/lib/api/index.js +1 -1
  13. package/lib/api/load_configuration.d.ts +2 -2
  14. package/lib/api/load_configuration.js +4 -5
  15. package/lib/api/load_sources.d.ts +2 -2
  16. package/lib/api/load_sources.js +2 -2
  17. package/lib/api/load_support.d.ts +2 -2
  18. package/lib/api/load_support.js +3 -3
  19. package/lib/api/plugins.d.ts +2 -2
  20. package/lib/api/plugins.js +2 -2
  21. package/lib/api/run_cucumber.d.ts +3 -3
  22. package/lib/api/run_cucumber.js +19 -3
  23. package/lib/api/support.d.ts +3 -3
  24. package/lib/api/support.js +5 -5
  25. package/lib/api/test_helpers.d.ts +1 -1
  26. package/lib/api/test_helpers.js +8 -10
  27. package/lib/api/types.d.ts +9 -5
  28. package/lib/api/types.js +1 -1
  29. package/lib/api/wrapper.d.mts +5 -0
  30. package/lib/api/wrapper.mjs +6 -6
  31. package/lib/assemble/assemble_test_cases.d.ts +4 -4
  32. package/lib/assemble/assemble_test_cases.js +2 -6
  33. package/lib/assemble/index.js +1 -1
  34. package/lib/assemble/types.d.ts +1 -1
  35. package/lib/assemble/types.js +1 -1
  36. package/lib/cli/i18n.js +5 -3
  37. package/lib/cli/index.d.ts +1 -1
  38. package/lib/cli/index.js +2 -2
  39. package/lib/cli/install_validator.js +4 -3
  40. package/lib/cli/run.js +7 -6
  41. package/lib/cli/validate_node_engine_version.js +2 -4
  42. package/lib/configuration/argv_parser.d.ts +1 -1
  43. package/lib/configuration/argv_parser.js +7 -7
  44. package/lib/configuration/check_schema.d.ts +1 -1
  45. package/lib/configuration/check_schema.js +17 -6
  46. package/lib/configuration/default_configuration.d.ts +1 -1
  47. package/lib/configuration/default_configuration.js +2 -1
  48. package/lib/configuration/from_file.d.ts +2 -2
  49. package/lib/configuration/from_file.js +6 -6
  50. package/lib/configuration/helpers.js +1 -1
  51. package/lib/configuration/index.js +1 -1
  52. package/lib/configuration/locate_file.js +3 -3
  53. package/lib/configuration/merge_configurations.d.ts +1 -1
  54. package/lib/configuration/merge_configurations.js +2 -10
  55. package/lib/configuration/parse_configuration.d.ts +2 -2
  56. package/lib/configuration/parse_configuration.js +3 -11
  57. package/lib/configuration/split_format_descriptor.d.ts +1 -2
  58. package/lib/configuration/split_format_descriptor.js +11 -71
  59. package/lib/configuration/types.d.ts +26 -3
  60. package/lib/configuration/types.js +1 -1
  61. package/lib/configuration/validate_configuration.d.ts +2 -2
  62. package/lib/configuration/validate_configuration.js +5 -3
  63. package/lib/environment/console_logger.d.ts +2 -2
  64. package/lib/environment/console_logger.js +1 -1
  65. package/lib/environment/index.js +1 -1
  66. package/lib/environment/make_environment.d.ts +1 -1
  67. package/lib/environment/make_environment.js +1 -1
  68. package/lib/environment/types.d.ts +1 -1
  69. package/lib/environment/types.js +1 -1
  70. package/lib/filter/filter_plugin.d.ts +1 -1
  71. package/lib/filter/filter_plugin.js +1 -1
  72. package/lib/filter/index.d.ts +1 -1
  73. package/lib/filter/index.js +2 -2
  74. package/lib/filter/order_pickles.d.ts +2 -2
  75. package/lib/filter/order_pickles.js +1 -1
  76. package/lib/filter/types.d.ts +1 -1
  77. package/lib/filter/types.js +1 -1
  78. package/lib/filter_stack_trace.d.ts +1 -1
  79. package/lib/filter_stack_trace.js +1 -1
  80. package/lib/formatter/builder.d.ts +8 -7
  81. package/lib/formatter/builder.js +6 -7
  82. package/lib/formatter/builtin/html.js +2 -2
  83. package/lib/formatter/builtin/index.d.ts +4 -4
  84. package/lib/formatter/builtin/index.js +14 -13
  85. package/lib/formatter/builtin/message.js +2 -2
  86. package/lib/formatter/builtin/pretty.d.ts +6 -0
  87. package/lib/formatter/builtin/pretty.js +19 -0
  88. package/lib/formatter/builtin/progress-bar.d.ts +6 -0
  89. package/lib/formatter/builtin/progress-bar.js +22 -0
  90. package/lib/formatter/builtin/progress.d.ts +6 -0
  91. package/lib/formatter/builtin/progress.js +18 -0
  92. package/lib/formatter/builtin/resolve_terminal_options.d.ts +3 -0
  93. package/lib/formatter/builtin/resolve_terminal_options.js +15 -0
  94. package/lib/formatter/builtin/summary.d.ts +6 -0
  95. package/lib/formatter/builtin/summary.js +15 -0
  96. package/lib/formatter/create_stream.d.ts +2 -2
  97. package/lib/formatter/create_stream.js +4 -7
  98. package/lib/formatter/find_class_or_plugin.js +1 -1
  99. package/lib/formatter/get_color_fns.d.ts +3 -3
  100. package/lib/formatter/get_color_fns.js +23 -52
  101. package/lib/formatter/helpers/duration_helpers.d.ts +1 -1
  102. package/lib/formatter/helpers/duration_helpers.js +1 -1
  103. package/lib/formatter/helpers/event_data_collector.d.ts +15 -15
  104. package/lib/formatter/helpers/event_data_collector.js +17 -44
  105. package/lib/formatter/helpers/formatters.d.ts +1 -1
  106. package/lib/formatter/helpers/formatters.js +1 -3
  107. package/lib/formatter/helpers/gherkin_document_parser.d.ts +5 -5
  108. package/lib/formatter/helpers/gherkin_document_parser.js +20 -18
  109. package/lib/formatter/helpers/index.d.ts +3 -3
  110. package/lib/formatter/helpers/index.js +8 -8
  111. package/lib/formatter/helpers/issue_helpers.d.ts +10 -10
  112. package/lib/formatter/helpers/issue_helpers.js +2 -2
  113. package/lib/formatter/helpers/keyword_type.js +2 -2
  114. package/lib/formatter/helpers/location_helpers.d.ts +1 -1
  115. package/lib/formatter/helpers/location_helpers.js +1 -1
  116. package/lib/formatter/helpers/pickle_parser.d.ts +10 -10
  117. package/lib/formatter/helpers/pickle_parser.js +8 -9
  118. package/lib/formatter/helpers/step_argument_formatter.d.ts +2 -2
  119. package/lib/formatter/helpers/step_argument_formatter.js +1 -1
  120. package/lib/formatter/helpers/summary_helpers.d.ts +4 -4
  121. package/lib/formatter/helpers/summary_helpers.js +19 -48
  122. package/lib/formatter/helpers/test_case_attempt_formatter.d.ts +4 -4
  123. package/lib/formatter/helpers/test_case_attempt_formatter.js +16 -49
  124. package/lib/formatter/helpers/test_case_attempt_parser.d.ts +9 -9
  125. package/lib/formatter/helpers/test_case_attempt_parser.js +12 -45
  126. package/lib/formatter/helpers/usage_helpers/index.d.ts +6 -6
  127. package/lib/formatter/helpers/usage_helpers/index.js +13 -49
  128. package/lib/formatter/import_code.js +2 -2
  129. package/lib/formatter/index.d.ts +25 -13
  130. package/lib/formatter/index.js +2 -2
  131. package/lib/formatter/json_formatter.d.ts +22 -22
  132. package/lib/formatter/json_formatter.js +11 -49
  133. package/lib/formatter/progress_formatter.d.ts +7 -3
  134. package/lib/formatter/progress_formatter.js +11 -41
  135. package/lib/formatter/rerun_formatter.d.ts +1 -1
  136. package/lib/formatter/rerun_formatter.js +4 -37
  137. package/lib/formatter/resolve_implementation.d.ts +1 -1
  138. package/lib/formatter/resolve_implementation.js +2 -2
  139. package/lib/formatter/snippets_formatter.d.ts +1 -1
  140. package/lib/formatter/snippets_formatter.js +4 -37
  141. package/lib/formatter/step_definition_snippet_builder/index.d.ts +6 -6
  142. package/lib/formatter/step_definition_snippet_builder/index.js +3 -3
  143. package/lib/formatter/step_definition_snippet_builder/javascript_snippet_syntax.d.ts +1 -1
  144. package/lib/formatter/step_definition_snippet_builder/javascript_snippet_syntax.js +3 -5
  145. package/lib/formatter/step_definition_snippet_builder/snippet_syntax.d.ts +1 -1
  146. package/lib/formatter/step_definition_snippet_builder/snippet_syntax.js +1 -1
  147. package/lib/formatter/summary_formatter.d.ts +7 -4
  148. package/lib/formatter/summary_formatter.js +6 -3
  149. package/lib/formatter/usage_formatter.d.ts +1 -1
  150. package/lib/formatter/usage_formatter.js +6 -39
  151. package/lib/formatter/usage_json_formatter.d.ts +1 -1
  152. package/lib/formatter/usage_json_formatter.js +3 -3
  153. package/lib/index.d.ts +9 -14
  154. package/lib/index.js +17 -25
  155. package/lib/models/data_table.d.ts +2 -2
  156. package/lib/models/data_table.js +9 -5
  157. package/lib/models/definition.d.ts +5 -5
  158. package/lib/models/definition.js +1 -1
  159. package/lib/models/gherkin_step_keyword.js +1 -1
  160. package/lib/models/step_definition.d.ts +3 -3
  161. package/lib/models/step_definition.js +1 -1
  162. package/lib/models/test_case_hook_definition.d.ts +3 -3
  163. package/lib/models/test_case_hook_definition.js +1 -1
  164. package/lib/models/test_run_hook_definition.d.ts +1 -1
  165. package/lib/models/test_run_hook_definition.js +1 -1
  166. package/lib/models/test_step_hook_definition.d.ts +3 -3
  167. package/lib/models/test_step_hook_definition.js +1 -1
  168. package/lib/paths/index.js +1 -1
  169. package/lib/paths/paths.d.ts +3 -3
  170. package/lib/paths/paths.js +42 -18
  171. package/lib/paths/types.js +1 -1
  172. package/lib/pickle_filter.d.ts +9 -8
  173. package/lib/pickle_filter.js +3 -3
  174. package/lib/plugin/index.d.ts +1 -1
  175. package/lib/plugin/index.js +2 -2
  176. package/lib/plugin/plugin_manager.d.ts +2 -2
  177. package/lib/plugin/plugin_manager.js +1 -1
  178. package/lib/plugin/types.d.ts +59 -9
  179. package/lib/plugin/types.js +1 -1
  180. package/lib/publish/index.js +1 -1
  181. package/lib/publish/publish_plugin.d.ts +1 -1
  182. package/lib/publish/publish_plugin.js +14 -15
  183. package/lib/publish/types.js +1 -1
  184. package/lib/runtime/attachment_manager/index.d.ts +3 -3
  185. package/lib/runtime/attachment_manager/index.js +12 -48
  186. package/lib/runtime/coordinator.d.ts +16 -8
  187. package/lib/runtime/coordinator.js +38 -19
  188. package/lib/runtime/format_error.d.ts +1 -1
  189. package/lib/runtime/format_error.js +43 -15
  190. package/lib/runtime/helpers.d.ts +5 -5
  191. package/lib/runtime/helpers.js +6 -39
  192. package/lib/runtime/index.js +1 -1
  193. package/lib/runtime/make_runtime.d.ts +10 -9
  194. package/lib/runtime/make_runtime.js +5 -6
  195. package/lib/runtime/make_suggestion.d.ts +2 -2
  196. package/lib/runtime/make_suggestion.js +1 -1
  197. package/lib/runtime/parallel/adapter.d.ts +30 -39
  198. package/lib/runtime/parallel/adapter.js +134 -120
  199. package/lib/runtime/parallel/test_cases_phase.d.ts +19 -0
  200. package/lib/runtime/parallel/test_cases_phase.js +63 -0
  201. package/lib/runtime/parallel/test_run_hooks_phase.d.ts +11 -0
  202. package/lib/runtime/parallel/test_run_hooks_phase.js +33 -0
  203. package/lib/runtime/parallel/types.d.ts +38 -22
  204. package/lib/runtime/parallel/types.js +1 -1
  205. package/lib/runtime/parallel/worker.mjs +65 -0
  206. package/lib/runtime/scope/index.js +1 -1
  207. package/lib/runtime/scope/make_proxy.js +1 -1
  208. package/lib/runtime/scope/test_case_scope.d.ts +1 -1
  209. package/lib/runtime/scope/test_case_scope.js +1 -1
  210. package/lib/runtime/scope/test_run_scope.d.ts +1 -1
  211. package/lib/runtime/scope/test_run_scope.js +1 -1
  212. package/lib/runtime/serial/adapter.d.ts +15 -9
  213. package/lib/runtime/serial/adapter.js +21 -9
  214. package/lib/runtime/step_runner.d.ts +5 -5
  215. package/lib/runtime/step_runner.js +7 -40
  216. package/lib/runtime/stopwatch.d.ts +2 -2
  217. package/lib/runtime/stopwatch.js +1 -1
  218. package/lib/runtime/test_case_runner.d.ts +20 -20
  219. package/lib/runtime/test_case_runner.js +31 -60
  220. package/lib/runtime/types.d.ts +13 -4
  221. package/lib/runtime/types.js +1 -1
  222. package/lib/runtime/worker.d.ts +14 -13
  223. package/lib/runtime/worker.js +26 -44
  224. package/lib/sharding/index.js +1 -1
  225. package/lib/sharding/sharding_plugin.d.ts +1 -1
  226. package/lib/sharding/sharding_plugin.js +1 -1
  227. package/lib/step_arguments.d.ts +4 -4
  228. package/lib/step_arguments.js +1 -1
  229. package/lib/support_code_library_builder/build_parameter_type.d.ts +1 -1
  230. package/lib/support_code_library_builder/build_parameter_type.js +5 -3
  231. package/lib/support_code_library_builder/context.js +1 -1
  232. package/lib/support_code_library_builder/get_definition_line_and_uri.d.ts +1 -1
  233. package/lib/support_code_library_builder/get_definition_line_and_uri.js +1 -1
  234. package/lib/support_code_library_builder/index.d.ts +7 -8
  235. package/lib/support_code_library_builder/index.js +9 -9
  236. package/lib/support_code_library_builder/parallel_can_assign_helpers.d.ts +1 -1
  237. package/lib/support_code_library_builder/parallel_can_assign_helpers.js +3 -4
  238. package/lib/support_code_library_builder/sourced_parameter_type_registry.d.ts +2 -2
  239. package/lib/support_code_library_builder/sourced_parameter_type_registry.js +1 -1
  240. package/lib/support_code_library_builder/types.d.ts +17 -17
  241. package/lib/support_code_library_builder/types.js +1 -1
  242. package/lib/support_code_library_builder/validate_arguments.d.ts +1 -1
  243. package/lib/support_code_library_builder/validate_arguments.js +1 -1
  244. package/lib/support_code_library_builder/world.d.ts +2 -2
  245. package/lib/support_code_library_builder/world.js +2 -2
  246. package/lib/time.d.ts +2 -2
  247. package/lib/time.js +6 -39
  248. package/lib/try_require.js +3 -2
  249. package/lib/types/index.js +1 -1
  250. package/lib/uncaught_exception_manager.js +1 -1
  251. package/lib/user_code_runner.d.ts +1 -1
  252. package/lib/user_code_runner.js +3 -3
  253. package/lib/value_checker.js +1 -1
  254. package/lib/version.d.ts +1 -1
  255. package/lib/version.js +3 -3
  256. package/lib/wrapper.d.mts +43 -0
  257. package/lib/wrapper.mjs +37 -45
  258. package/package.json +50 -75
  259. package/lib/api/convert_configuration.js.map +0 -1
  260. package/lib/api/emit_support_code_messages.js.map +0 -1
  261. package/lib/api/formatters.js.map +0 -1
  262. package/lib/api/gherkin.js.map +0 -1
  263. package/lib/api/index.js.map +0 -1
  264. package/lib/api/load_configuration.js.map +0 -1
  265. package/lib/api/load_sources.js.map +0 -1
  266. package/lib/api/load_support.js.map +0 -1
  267. package/lib/api/plugins.js.map +0 -1
  268. package/lib/api/run_cucumber.js.map +0 -1
  269. package/lib/api/support.js.map +0 -1
  270. package/lib/api/test_helpers.js.map +0 -1
  271. package/lib/api/types.js.map +0 -1
  272. package/lib/assemble/assemble_test_cases.js.map +0 -1
  273. package/lib/assemble/index.js.map +0 -1
  274. package/lib/assemble/types.js.map +0 -1
  275. package/lib/cli/i18n.js.map +0 -1
  276. package/lib/cli/index.js.map +0 -1
  277. package/lib/cli/install_validator.js.map +0 -1
  278. package/lib/cli/run.js.map +0 -1
  279. package/lib/cli/validate_node_engine_version.js.map +0 -1
  280. package/lib/configuration/argv_parser.js.map +0 -1
  281. package/lib/configuration/check_schema.js.map +0 -1
  282. package/lib/configuration/default_configuration.js.map +0 -1
  283. package/lib/configuration/from_file.js.map +0 -1
  284. package/lib/configuration/helpers.js.map +0 -1
  285. package/lib/configuration/index.js.map +0 -1
  286. package/lib/configuration/locate_file.js.map +0 -1
  287. package/lib/configuration/merge_configurations.js.map +0 -1
  288. package/lib/configuration/parse_configuration.js.map +0 -1
  289. package/lib/configuration/split_format_descriptor.js.map +0 -1
  290. package/lib/configuration/types.js.map +0 -1
  291. package/lib/configuration/validate_configuration.js.map +0 -1
  292. package/lib/environment/console_logger.js.map +0 -1
  293. package/lib/environment/index.js.map +0 -1
  294. package/lib/environment/make_environment.js.map +0 -1
  295. package/lib/environment/types.js.map +0 -1
  296. package/lib/filter/filter_plugin.js.map +0 -1
  297. package/lib/filter/index.js.map +0 -1
  298. package/lib/filter/order_pickles.js.map +0 -1
  299. package/lib/filter/types.js.map +0 -1
  300. package/lib/filter_stack_trace.js.map +0 -1
  301. package/lib/formatter/builder.js.map +0 -1
  302. package/lib/formatter/builtin/html.js.map +0 -1
  303. package/lib/formatter/builtin/index.js.map +0 -1
  304. package/lib/formatter/builtin/message.js.map +0 -1
  305. package/lib/formatter/create_stream.js.map +0 -1
  306. package/lib/formatter/find_class_or_plugin.js.map +0 -1
  307. package/lib/formatter/get_color_fns.js.map +0 -1
  308. package/lib/formatter/helpers/duration_helpers.js.map +0 -1
  309. package/lib/formatter/helpers/event_data_collector.js.map +0 -1
  310. package/lib/formatter/helpers/formatters.js.map +0 -1
  311. package/lib/formatter/helpers/gherkin_document_parser.js.map +0 -1
  312. package/lib/formatter/helpers/index.js.map +0 -1
  313. package/lib/formatter/helpers/issue_helpers.js.map +0 -1
  314. package/lib/formatter/helpers/keyword_type.js.map +0 -1
  315. package/lib/formatter/helpers/location_helpers.js.map +0 -1
  316. package/lib/formatter/helpers/pickle_parser.js.map +0 -1
  317. package/lib/formatter/helpers/step_argument_formatter.js.map +0 -1
  318. package/lib/formatter/helpers/summary_helpers.js.map +0 -1
  319. package/lib/formatter/helpers/test_case_attempt_formatter.js.map +0 -1
  320. package/lib/formatter/helpers/test_case_attempt_parser.js.map +0 -1
  321. package/lib/formatter/helpers/usage_helpers/index.js.map +0 -1
  322. package/lib/formatter/import_code.js.map +0 -1
  323. package/lib/formatter/index.js.map +0 -1
  324. package/lib/formatter/json_formatter.js.map +0 -1
  325. package/lib/formatter/progress_bar_formatter.d.ts +0 -18
  326. package/lib/formatter/progress_bar_formatter.js +0 -103
  327. package/lib/formatter/progress_bar_formatter.js.map +0 -1
  328. package/lib/formatter/progress_formatter.js.map +0 -1
  329. package/lib/formatter/rerun_formatter.js.map +0 -1
  330. package/lib/formatter/resolve_implementation.js.map +0 -1
  331. package/lib/formatter/snippets_formatter.js.map +0 -1
  332. package/lib/formatter/step_definition_snippet_builder/index.js.map +0 -1
  333. package/lib/formatter/step_definition_snippet_builder/javascript_snippet_syntax.js.map +0 -1
  334. package/lib/formatter/step_definition_snippet_builder/snippet_syntax.js.map +0 -1
  335. package/lib/formatter/summary_formatter.js.map +0 -1
  336. package/lib/formatter/usage_formatter.js.map +0 -1
  337. package/lib/formatter/usage_json_formatter.js.map +0 -1
  338. package/lib/index.js.map +0 -1
  339. package/lib/models/data_table.js.map +0 -1
  340. package/lib/models/definition.js.map +0 -1
  341. package/lib/models/gherkin_step_keyword.js.map +0 -1
  342. package/lib/models/step_definition.js.map +0 -1
  343. package/lib/models/test_case_hook_definition.js.map +0 -1
  344. package/lib/models/test_run_hook_definition.js.map +0 -1
  345. package/lib/models/test_step_hook_definition.js.map +0 -1
  346. package/lib/paths/index.js.map +0 -1
  347. package/lib/paths/paths.js.map +0 -1
  348. package/lib/paths/types.js.map +0 -1
  349. package/lib/pickle_filter.js.map +0 -1
  350. package/lib/plugin/index.js.map +0 -1
  351. package/lib/plugin/plugin_manager.js.map +0 -1
  352. package/lib/plugin/types.js.map +0 -1
  353. package/lib/publish/index.js.map +0 -1
  354. package/lib/publish/publish_plugin.js.map +0 -1
  355. package/lib/publish/types.js.map +0 -1
  356. package/lib/runtime/attachment_manager/index.js.map +0 -1
  357. package/lib/runtime/coordinator.js.map +0 -1
  358. package/lib/runtime/format_error.js.map +0 -1
  359. package/lib/runtime/helpers.js.map +0 -1
  360. package/lib/runtime/index.js.map +0 -1
  361. package/lib/runtime/make_runtime.js.map +0 -1
  362. package/lib/runtime/make_suggestion.js.map +0 -1
  363. package/lib/runtime/parallel/adapter.js.map +0 -1
  364. package/lib/runtime/parallel/run_worker.js +0 -25
  365. package/lib/runtime/parallel/run_worker.js.map +0 -1
  366. package/lib/runtime/parallel/types.js.map +0 -1
  367. package/lib/runtime/parallel/worker.d.ts +0 -25
  368. package/lib/runtime/parallel/worker.js +0 -83
  369. package/lib/runtime/parallel/worker.js.map +0 -1
  370. package/lib/runtime/scope/index.js.map +0 -1
  371. package/lib/runtime/scope/make_proxy.js.map +0 -1
  372. package/lib/runtime/scope/test_case_scope.js.map +0 -1
  373. package/lib/runtime/scope/test_run_scope.js.map +0 -1
  374. package/lib/runtime/serial/adapter.js.map +0 -1
  375. package/lib/runtime/step_runner.js.map +0 -1
  376. package/lib/runtime/stopwatch.js.map +0 -1
  377. package/lib/runtime/test_case_runner.js.map +0 -1
  378. package/lib/runtime/types.js.map +0 -1
  379. package/lib/runtime/worker.js.map +0 -1
  380. package/lib/sharding/index.js.map +0 -1
  381. package/lib/sharding/sharding_plugin.js.map +0 -1
  382. package/lib/step_arguments.js.map +0 -1
  383. package/lib/support_code_library_builder/build_parameter_type.js.map +0 -1
  384. package/lib/support_code_library_builder/context.js.map +0 -1
  385. package/lib/support_code_library_builder/get_definition_line_and_uri.js.map +0 -1
  386. package/lib/support_code_library_builder/index.js.map +0 -1
  387. package/lib/support_code_library_builder/parallel_can_assign_helpers.js.map +0 -1
  388. package/lib/support_code_library_builder/sourced_parameter_type_registry.js.map +0 -1
  389. package/lib/support_code_library_builder/types.js.map +0 -1
  390. package/lib/support_code_library_builder/validate_arguments.js.map +0 -1
  391. package/lib/support_code_library_builder/world.js.map +0 -1
  392. package/lib/time.js.map +0 -1
  393. package/lib/try_require.js.map +0 -1
  394. package/lib/tsconfig.node.tsbuildinfo +0 -1
  395. package/lib/types/index.js.map +0 -1
  396. package/lib/uncaught_exception_manager.js.map +0 -1
  397. package/lib/user_code_runner.js.map +0 -1
  398. package/lib/value_checker.js.map +0 -1
  399. package/lib/version.js.map +0 -1
  400. /package/lib/runtime/parallel/{run_worker.d.ts → worker.d.mts} +0 -0
@@ -1,43 +1,7 @@
1
1
  "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || (function () {
19
- var ownKeys = function(o) {
20
- ownKeys = Object.getOwnPropertyNames || function (o) {
21
- var ar = [];
22
- for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
- return ar;
24
- };
25
- return ownKeys(o);
26
- };
27
- return function (mod) {
28
- if (mod && mod.__esModule) return mod;
29
- var result = {};
30
- if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
- __setModuleDefault(result, mod);
32
- return result;
33
- };
34
- })();
35
- var __importDefault = (this && this.__importDefault) || function (mod) {
36
- return (mod && mod.__esModule) ? mod : { "default": mod };
37
- };
38
2
  Object.defineProperty(exports, "__esModule", { value: true });
39
- const is_stream_1 = __importDefault(require("is-stream"));
40
- const messages = __importStar(require("@cucumber/messages"));
3
+ const node_stream_1 = require("node:stream");
4
+ const messages_1 = require("@cucumber/messages");
41
5
  const value_checker_1 = require("../../value_checker");
42
6
  class AttachmentManager {
43
7
  onAttachment;
@@ -58,36 +22,36 @@ class AttachmentManager {
58
22
  }
59
23
  this.createBufferAttachment(data, options.mediaType, options.fileName);
60
24
  }
61
- else if (is_stream_1.default.readable(data)) {
62
- if ((0, value_checker_1.doesNotHaveValue)(options.mediaType)) {
63
- throw Error('Stream attachments must specify a media type');
64
- }
65
- return this.createStreamAttachment(data, options.mediaType, options.fileName, callback);
66
- }
67
25
  else if (typeof data === 'string') {
68
26
  if ((0, value_checker_1.doesNotHaveValue)(options.mediaType)) {
69
27
  options.mediaType = 'text/plain';
70
28
  }
71
29
  if (options.mediaType.startsWith('base64:')) {
72
30
  this.createStringAttachment(data, {
73
- encoding: messages.AttachmentContentEncoding.BASE64,
31
+ encoding: messages_1.AttachmentContentEncoding.BASE64,
74
32
  contentType: options.mediaType.replace('base64:', ''),
75
33
  }, options.fileName);
76
34
  }
77
35
  else {
78
36
  this.createStringAttachment(data, {
79
- encoding: messages.AttachmentContentEncoding.IDENTITY,
37
+ encoding: messages_1.AttachmentContentEncoding.IDENTITY,
80
38
  contentType: options.mediaType,
81
39
  }, options.fileName);
82
40
  }
83
41
  }
42
+ else if ((0, node_stream_1.isReadable)(data)) {
43
+ if ((0, value_checker_1.doesNotHaveValue)(options.mediaType)) {
44
+ throw Error('Stream attachments must specify a media type');
45
+ }
46
+ return this.createStreamAttachment(data, options.mediaType, options.fileName, callback);
47
+ }
84
48
  else {
85
49
  throw Error('Invalid attachment data: must be a buffer, readable stream, or string');
86
50
  }
87
51
  }
88
52
  createBufferAttachment(data, mediaType, fileName) {
89
53
  this.createStringAttachment(data.toString('base64'), {
90
- encoding: messages.AttachmentContentEncoding.BASE64,
54
+ encoding: messages_1.AttachmentContentEncoding.BASE64,
91
55
  contentType: mediaType,
92
56
  }, fileName);
93
57
  }
@@ -130,4 +94,4 @@ function normaliseOptions(mediaTypeOrOptions) {
130
94
  }
131
95
  return mediaTypeOrOptions;
132
96
  }
133
- //# sourceMappingURL=index.js.map
97
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvcnVudGltZS9hdHRhY2htZW50X21hbmFnZXIvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSw2Q0FBdUQ7QUFDdkQsaURBQThEO0FBQzlELHVEQUFxRTtBQTJDckUsTUFBcUIsaUJBQWlCO0lBQ25CLFlBQVksQ0FBaUI7SUFFOUMsWUFBWSxZQUE2QjtRQUN2QyxJQUFJLENBQUMsWUFBWSxHQUFHLFlBQVksQ0FBQTtJQUNsQyxDQUFDO0lBRUQsR0FBRyxDQUFDLElBQVk7UUFDZCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLDJCQUEyQixDQUFDLENBQUE7SUFDdkQsQ0FBQztJQUVELElBQUksQ0FBQyxHQUFHLEdBQWE7UUFDbkIsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsZUFBZSxDQUFDLENBQUE7SUFDckQsQ0FBQztJQUVELE1BQU0sQ0FDSixJQUFnQyxFQUNoQyxrQkFBc0QsRUFDdEQsUUFBcUI7UUFFckIsTUFBTSxPQUFPLEdBQUcsZ0JBQWdCLENBQUMsa0JBQWtCLENBQUMsQ0FBQTtRQUNwRCxJQUFJLE1BQU0sQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztZQUMxQixJQUFJLElBQUEsZ0NBQWdCLEVBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUM7Z0JBQ3hDLE1BQU0sS0FBSyxDQUFDLDhDQUE4QyxDQUFDLENBQUE7WUFDN0QsQ0FBQztZQUNELElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDLFNBQVMsRUFBRSxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUE7UUFDeEUsQ0FBQzthQUFNLElBQUksT0FBTyxJQUFJLEtBQUssUUFBUSxFQUFFLENBQUM7WUFDcEMsSUFBSSxJQUFBLGdDQUFnQixFQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDO2dCQUN4QyxPQUFPLENBQUMsU0FBUyxHQUFHLFlBQVksQ0FBQTtZQUNsQyxDQUFDO1lBQ0QsSUFBSSxPQUFPLENBQUMsU0FBUyxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDO2dCQUM1QyxJQUFJLENBQUMsc0JBQXNCLENBQ3pCLElBQUksRUFDSjtvQkFDRSxRQUFRLEVBQUUsb0NBQXlCLENBQUMsTUFBTTtvQkFDMUMsV0FBVyxFQUFFLE9BQU8sQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLFNBQVMsRUFBRSxFQUFFLENBQUM7aUJBQ3RELEVBQ0QsT0FBTyxDQUFDLFFBQVEsQ0FDakIsQ0FBQTtZQUNILENBQUM7aUJBQU0sQ0FBQztnQkFDTixJQUFJLENBQUMsc0JBQXNCLENBQ3pCLElBQUksRUFDSjtvQkFDRSxRQUFRLEVBQUUsb0NBQXlCLENBQUMsUUFBUTtvQkFDNUMsV0FBVyxFQUFFLE9BQU8sQ0FBQyxTQUFTO2lCQUMvQixFQUNELE9BQU8sQ0FBQyxRQUFRLENBQ2pCLENBQUE7WUFDSCxDQUFDO1FBQ0gsQ0FBQzthQUFNLElBQUksSUFBQSx3QkFBVSxFQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7WUFDNUIsSUFBSSxJQUFBLGdDQUFnQixFQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDO2dCQUN4QyxNQUFNLEtBQUssQ0FBQyw4Q0FBOEMsQ0FBQyxDQUFBO1lBQzdELENBQUM7WUFDRCxPQUFPLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDLFNBQVMsRUFBRSxPQUFPLENBQUMsUUFBUSxFQUFFLFFBQVEsQ0FBQyxDQUFBO1FBQ3pGLENBQUM7YUFBTSxDQUFDO1lBQ04sTUFBTSxLQUFLLENBQUMsdUVBQXVFLENBQUMsQ0FBQTtRQUN0RixDQUFDO0lBQ0gsQ0FBQztJQUVELHNCQUFzQixDQUFDLElBQVksRUFBRSxTQUFpQixFQUFFLFFBQWlCO1FBQ3ZFLElBQUksQ0FBQyxzQkFBc0IsQ0FDekIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsRUFDdkI7WUFDRSxRQUFRLEVBQUUsb0NBQXlCLENBQUMsTUFBTTtZQUMxQyxXQUFXLEVBQUUsU0FBUztTQUN2QixFQUNELFFBQVEsQ0FDVCxDQUFBO0lBQ0gsQ0FBQztJQUVELHNCQUFzQixDQUNwQixJQUFjLEVBQ2QsU0FBaUIsRUFDakIsUUFBaUIsRUFDakIsUUFBcUI7UUFFckIsTUFBTSxPQUFPLEdBQUcsSUFBSSxPQUFPLENBQU8sQ0FBQyxPQUFPLEVBQUUsTUFBTSxFQUFFLEVBQUU7WUFDcEQsTUFBTSxPQUFPLEdBQWlCLEVBQUUsQ0FBQTtZQUNoQyxJQUFJLENBQUMsRUFBRSxDQUFDLE1BQU0sRUFBRSxDQUFDLEtBQUssRUFBRSxFQUFFO2dCQUN4QixPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFBO1lBQ3JCLENBQUMsQ0FBQyxDQUFBO1lBQ0YsSUFBSSxDQUFDLEVBQUUsQ0FBQyxLQUFLLEVBQUUsR0FBRyxFQUFFO2dCQUNsQixJQUFJLENBQUMsc0JBQXNCLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsRUFBRSxTQUFTLEVBQUUsUUFBUSxDQUFDLENBQUE7Z0JBQ3hFLE9BQU8sRUFBRSxDQUFBO1lBQ1gsQ0FBQyxDQUFDLENBQUE7WUFDRixJQUFJLENBQUMsRUFBRSxDQUFDLE9BQU8sRUFBRSxNQUFNLENBQUMsQ0FBQTtRQUMxQixDQUFDLENBQUMsQ0FBQTtRQUNGLElBQUksSUFBQSw2QkFBYSxFQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUM7WUFDNUIsT0FBTyxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsUUFBUSxDQUFDLENBQUE7UUFDbEMsQ0FBQzthQUFNLENBQUM7WUFDTixPQUFPLE9BQU8sQ0FBQTtRQUNoQixDQUFDO0lBQ0gsQ0FBQztJQUVELHNCQUFzQixDQUFDLElBQVksRUFBRSxLQUF1QixFQUFFLFFBQWlCO1FBQzdFLElBQUksQ0FBQyxZQUFZLENBQUM7WUFDaEIsSUFBSTtZQUNKLEtBQUs7WUFDTCxHQUFHLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxFQUFFLFFBQVEsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7U0FDbEMsQ0FBQyxDQUFBO0lBQ0osQ0FBQztDQUNGO0FBckdELG9DQXFHQztBQUVELFNBQVMsZ0JBQWdCLENBQ3ZCLGtCQUFzRDtJQUV0RCxJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztRQUN4QixPQUFPLEVBQUUsQ0FBQTtJQUNYLENBQUM7SUFDRCxJQUFJLE9BQU8sa0JBQWtCLEtBQUssUUFBUSxFQUFFLENBQUM7UUFDM0MsT0FBTztZQUNMLFNBQVMsRUFBRSxrQkFBa0I7U0FDOUIsQ0FBQTtJQUNILENBQUM7SUFDRCxPQUFPLGtCQUFrQixDQUFBO0FBQzNCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpc1JlYWRhYmxlLCB0eXBlIFJlYWRhYmxlIH0gZnJvbSAnbm9kZTpzdHJlYW0nXG5pbXBvcnQgeyBBdHRhY2htZW50Q29udGVudEVuY29kaW5nIH0gZnJvbSAnQGN1Y3VtYmVyL21lc3NhZ2VzJ1xuaW1wb3J0IHsgZG9lc0hhdmVWYWx1ZSwgZG9lc05vdEhhdmVWYWx1ZSB9IGZyb20gJy4uLy4uL3ZhbHVlX2NoZWNrZXInXG5cbmV4cG9ydCBpbnRlcmZhY2UgSUF0dGFjaG1lbnRNZWRpYSB7XG4gIGVuY29kaW5nOiBBdHRhY2htZW50Q29udGVudEVuY29kaW5nXG4gIGNvbnRlbnRUeXBlOiBzdHJpbmdcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJQXR0YWNobWVudCB7XG4gIGRhdGE6IHN0cmluZ1xuICBtZWRpYTogSUF0dGFjaG1lbnRNZWRpYVxuICBmaWxlTmFtZT86IHN0cmluZ1xufVxuXG5leHBvcnQgdHlwZSBJQXR0YWNoRnVuY3Rpb24gPSAoYXR0YWNobWVudDogSUF0dGFjaG1lbnQpID0+IHZvaWRcblxuZXhwb3J0IGludGVyZmFjZSBJQ3JlYXRlQXR0YWNobWVudE9wdGlvbnMge1xuICBtZWRpYVR5cGU6IHN0cmluZ1xuICBmaWxlTmFtZT86IHN0cmluZ1xufVxuZXhwb3J0IHR5cGUgSUNyZWF0ZVN0cmluZ0F0dGFjaG1lbnQgPSAoXG4gIGRhdGE6IHN0cmluZyxcbiAgbWVkaWFUeXBlT3JPcHRpb25zPzogc3RyaW5nIHwgSUNyZWF0ZUF0dGFjaG1lbnRPcHRpb25zXG4pID0+IHZvaWRcbmV4cG9ydCB0eXBlIElDcmVhdGVCdWZmZXJBdHRhY2htZW50ID0gKFxuICBkYXRhOiBCdWZmZXIsXG4gIG1lZGlhVHlwZU9yT3B0aW9uczogc3RyaW5nIHwgSUNyZWF0ZUF0dGFjaG1lbnRPcHRpb25zXG4pID0+IHZvaWRcbmV4cG9ydCB0eXBlIElDcmVhdGVTdHJlYW1BdHRhY2htZW50ID0gKFxuICBkYXRhOiBSZWFkYWJsZSxcbiAgbWVkaWFUeXBlT3JPcHRpb25zOiBzdHJpbmcgfCBJQ3JlYXRlQXR0YWNobWVudE9wdGlvbnNcbikgPT4gUHJvbWlzZTx2b2lkPlxuZXhwb3J0IHR5cGUgSUNyZWF0ZVN0cmVhbUF0dGFjaG1lbnRXaXRoQ2FsbGJhY2sgPSAoXG4gIGRhdGE6IFJlYWRhYmxlLFxuICBtZWRpYVR5cGVPck9wdGlvbnM6IHN0cmluZyB8IElDcmVhdGVBdHRhY2htZW50T3B0aW9ucyxcbiAgY2FsbGJhY2s6ICgpID0+IHZvaWRcbikgPT4gdm9pZFxuZXhwb3J0IHR5cGUgSUNyZWF0ZUF0dGFjaG1lbnQgPSBJQ3JlYXRlU3RyaW5nQXR0YWNobWVudCAmXG4gIElDcmVhdGVCdWZmZXJBdHRhY2htZW50ICZcbiAgSUNyZWF0ZVN0cmVhbUF0dGFjaG1lbnQgJlxuICBJQ3JlYXRlU3RyZWFtQXR0YWNobWVudFdpdGhDYWxsYmFja1xuZXhwb3J0IHR5cGUgSUNyZWF0ZUxvZyA9ICh0ZXh0OiBzdHJpbmcpID0+IHZvaWRcbmV4cG9ydCB0eXBlIElDcmVhdGVMaW5rID0gKHRleHQ6IHN0cmluZykgPT4gdm9pZFxuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBBdHRhY2htZW50TWFuYWdlciB7XG4gIHByaXZhdGUgcmVhZG9ubHkgb25BdHRhY2htZW50OiBJQXR0YWNoRnVuY3Rpb25cblxuICBjb25zdHJ1Y3RvcihvbkF0dGFjaG1lbnQ6IElBdHRhY2hGdW5jdGlvbikge1xuICAgIHRoaXMub25BdHRhY2htZW50ID0gb25BdHRhY2htZW50XG4gIH1cblxuICBsb2codGV4dDogc3RyaW5nKTogdm9pZCB8IFByb21pc2U8dm9pZD4ge1xuICAgIHJldHVybiB0aGlzLmNyZWF0ZSh0ZXh0LCAndGV4dC94LmN1Y3VtYmVyLmxvZytwbGFpbicpXG4gIH1cblxuICBsaW5rKC4uLnVybDogc3RyaW5nW10pOiB2b2lkIHwgUHJvbWlzZTx2b2lkPiB7XG4gICAgcmV0dXJuIHRoaXMuY3JlYXRlKHVybC5qb2luKCdcXG4nKSwgJ3RleHQvdXJpLWxpc3QnKVxuICB9XG5cbiAgY3JlYXRlKFxuICAgIGRhdGE6IEJ1ZmZlciB8IFJlYWRhYmxlIHwgc3RyaW5nLFxuICAgIG1lZGlhVHlwZU9yT3B0aW9ucz86IHN0cmluZyB8IElDcmVhdGVBdHRhY2htZW50T3B0aW9ucyxcbiAgICBjYWxsYmFjaz86ICgpID0+IHZvaWRcbiAgKTogdm9pZCB8IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IG9wdGlvbnMgPSBub3JtYWxpc2VPcHRpb25zKG1lZGlhVHlwZU9yT3B0aW9ucylcbiAgICBpZiAoQnVmZmVyLmlzQnVmZmVyKGRhdGEpKSB7XG4gICAgICBpZiAoZG9lc05vdEhhdmVWYWx1ZShvcHRpb25zLm1lZGlhVHlwZSkpIHtcbiAgICAgICAgdGhyb3cgRXJyb3IoJ0J1ZmZlciBhdHRhY2htZW50cyBtdXN0IHNwZWNpZnkgYSBtZWRpYSB0eXBlJylcbiAgICAgIH1cbiAgICAgIHRoaXMuY3JlYXRlQnVmZmVyQXR0YWNobWVudChkYXRhLCBvcHRpb25zLm1lZGlhVHlwZSwgb3B0aW9ucy5maWxlTmFtZSlcbiAgICB9IGVsc2UgaWYgKHR5cGVvZiBkYXRhID09PSAnc3RyaW5nJykge1xuICAgICAgaWYgKGRvZXNOb3RIYXZlVmFsdWUob3B0aW9ucy5tZWRpYVR5cGUpKSB7XG4gICAgICAgIG9wdGlvbnMubWVkaWFUeXBlID0gJ3RleHQvcGxhaW4nXG4gICAgICB9XG4gICAgICBpZiAob3B0aW9ucy5tZWRpYVR5cGUuc3RhcnRzV2l0aCgnYmFzZTY0OicpKSB7XG4gICAgICAgIHRoaXMuY3JlYXRlU3RyaW5nQXR0YWNobWVudChcbiAgICAgICAgICBkYXRhLFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGVuY29kaW5nOiBBdHRhY2htZW50Q29udGVudEVuY29kaW5nLkJBU0U2NCxcbiAgICAgICAgICAgIGNvbnRlbnRUeXBlOiBvcHRpb25zLm1lZGlhVHlwZS5yZXBsYWNlKCdiYXNlNjQ6JywgJycpLFxuICAgICAgICAgIH0sXG4gICAgICAgICAgb3B0aW9ucy5maWxlTmFtZVxuICAgICAgICApXG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLmNyZWF0ZVN0cmluZ0F0dGFjaG1lbnQoXG4gICAgICAgICAgZGF0YSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBlbmNvZGluZzogQXR0YWNobWVudENvbnRlbnRFbmNvZGluZy5JREVOVElUWSxcbiAgICAgICAgICAgIGNvbnRlbnRUeXBlOiBvcHRpb25zLm1lZGlhVHlwZSxcbiAgICAgICAgICB9LFxuICAgICAgICAgIG9wdGlvbnMuZmlsZU5hbWVcbiAgICAgICAgKVxuICAgICAgfVxuICAgIH0gZWxzZSBpZiAoaXNSZWFkYWJsZShkYXRhKSkge1xuICAgICAgaWYgKGRvZXNOb3RIYXZlVmFsdWUob3B0aW9ucy5tZWRpYVR5cGUpKSB7XG4gICAgICAgIHRocm93IEVycm9yKCdTdHJlYW0gYXR0YWNobWVudHMgbXVzdCBzcGVjaWZ5IGEgbWVkaWEgdHlwZScpXG4gICAgICB9XG4gICAgICByZXR1cm4gdGhpcy5jcmVhdGVTdHJlYW1BdHRhY2htZW50KGRhdGEsIG9wdGlvbnMubWVkaWFUeXBlLCBvcHRpb25zLmZpbGVOYW1lLCBjYWxsYmFjaylcbiAgICB9IGVsc2Uge1xuICAgICAgdGhyb3cgRXJyb3IoJ0ludmFsaWQgYXR0YWNobWVudCBkYXRhOiBtdXN0IGJlIGEgYnVmZmVyLCByZWFkYWJsZSBzdHJlYW0sIG9yIHN0cmluZycpXG4gICAgfVxuICB9XG5cbiAgY3JlYXRlQnVmZmVyQXR0YWNobWVudChkYXRhOiBCdWZmZXIsIG1lZGlhVHlwZTogc3RyaW5nLCBmaWxlTmFtZT86IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMuY3JlYXRlU3RyaW5nQXR0YWNobWVudChcbiAgICAgIGRhdGEudG9TdHJpbmcoJ2Jhc2U2NCcpLFxuICAgICAge1xuICAgICAgICBlbmNvZGluZzogQXR0YWNobWVudENvbnRlbnRFbmNvZGluZy5CQVNFNjQsXG4gICAgICAgIGNvbnRlbnRUeXBlOiBtZWRpYVR5cGUsXG4gICAgICB9LFxuICAgICAgZmlsZU5hbWVcbiAgICApXG4gIH1cblxuICBjcmVhdGVTdHJlYW1BdHRhY2htZW50KFxuICAgIGRhdGE6IFJlYWRhYmxlLFxuICAgIG1lZGlhVHlwZTogc3RyaW5nLFxuICAgIGZpbGVOYW1lPzogc3RyaW5nLFxuICAgIGNhbGxiYWNrPzogKCkgPT4gdm9pZFxuICApOiB2b2lkIHwgUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgcHJvbWlzZSA9IG5ldyBQcm9taXNlPHZvaWQ+KChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgIGNvbnN0IGJ1ZmZlcnM6IFVpbnQ4QXJyYXlbXSA9IFtdXG4gICAgICBkYXRhLm9uKCdkYXRhJywgKGNodW5rKSA9PiB7XG4gICAgICAgIGJ1ZmZlcnMucHVzaChjaHVuaylcbiAgICAgIH0pXG4gICAgICBkYXRhLm9uKCdlbmQnLCAoKSA9PiB7XG4gICAgICAgIHRoaXMuY3JlYXRlQnVmZmVyQXR0YWNobWVudChCdWZmZXIuY29uY2F0KGJ1ZmZlcnMpLCBtZWRpYVR5cGUsIGZpbGVOYW1lKVxuICAgICAgICByZXNvbHZlKClcbiAgICAgIH0pXG4gICAgICBkYXRhLm9uKCdlcnJvcicsIHJlamVjdClcbiAgICB9KVxuICAgIGlmIChkb2VzSGF2ZVZhbHVlKGNhbGxiYWNrKSkge1xuICAgICAgcHJvbWlzZS50aGVuKGNhbGxiYWNrLCBjYWxsYmFjaylcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIHByb21pc2VcbiAgICB9XG4gIH1cblxuICBjcmVhdGVTdHJpbmdBdHRhY2htZW50KGRhdGE6IHN0cmluZywgbWVkaWE6IElBdHRhY2htZW50TWVkaWEsIGZpbGVOYW1lPzogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy5vbkF0dGFjaG1lbnQoe1xuICAgICAgZGF0YSxcbiAgICAgIG1lZGlhLFxuICAgICAgLi4uKGZpbGVOYW1lID8geyBmaWxlTmFtZSB9IDoge30pLFxuICAgIH0pXG4gIH1cbn1cblxuZnVuY3Rpb24gbm9ybWFsaXNlT3B0aW9ucyhcbiAgbWVkaWFUeXBlT3JPcHRpb25zPzogc3RyaW5nIHwgSUNyZWF0ZUF0dGFjaG1lbnRPcHRpb25zXG4pOiBQYXJ0aWFsPElDcmVhdGVBdHRhY2htZW50T3B0aW9ucz4ge1xuICBpZiAoIW1lZGlhVHlwZU9yT3B0aW9ucykge1xuICAgIHJldHVybiB7fVxuICB9XG4gIGlmICh0eXBlb2YgbWVkaWFUeXBlT3JPcHRpb25zID09PSAnc3RyaW5nJykge1xuICAgIHJldHVybiB7XG4gICAgICBtZWRpYVR5cGU6IG1lZGlhVHlwZU9yT3B0aW9ucyxcbiAgICB9XG4gIH1cbiAgcmV0dXJuIG1lZGlhVHlwZU9yT3B0aW9uc1xufVxuIl19
@@ -1,16 +1,24 @@
1
- import { EventEmitter } from 'node:events';
2
- import { IdGenerator } from '@cucumber/messages';
3
- import { SourcedPickle } from '../assemble';
4
- import { SupportCodeLibrary } from '../support_code_library_builder/types';
5
- import { RuntimeAdapter } from './types';
6
- import { Runtime } from './index';
1
+ import type { EventEmitter } from 'node:events';
2
+ import type { IdGenerator } from '@cucumber/messages';
3
+ import { type SourcedPickle } from '../assemble';
4
+ import type { SupportCodeLibrary } from '../support_code_library_builder/types';
5
+ import type { Runtime } from './index';
6
+ import type { RuntimeAdapter, RuntimeResult } from './types';
7
+ /**
8
+ * Handles the high-level coordination of the test run on the main thread
9
+ * @returns whether all hooks and test cases were successful
10
+ * @remarks
11
+ * For each phase of the test run, delegates to a {@link RuntimeAdapter} to handle
12
+ * the work itself. Unaware of how the adapter distributes and executes work.
13
+ */
7
14
  export declare class Coordinator implements Runtime {
8
15
  private testRunStartedId;
9
16
  private eventBroadcaster;
10
17
  private newId;
11
18
  private sourcedPickles;
12
19
  private supportCodeLibrary;
20
+ private filterStacktraces;
13
21
  private adapter;
14
- constructor(testRunStartedId: string, eventBroadcaster: EventEmitter, newId: IdGenerator.NewId, sourcedPickles: ReadonlyArray<SourcedPickle>, supportCodeLibrary: SupportCodeLibrary, adapter: RuntimeAdapter);
15
- run(): Promise<boolean>;
22
+ constructor(testRunStartedId: string, eventBroadcaster: EventEmitter, newId: IdGenerator.NewId, sourcedPickles: ReadonlyArray<SourcedPickle>, supportCodeLibrary: SupportCodeLibrary, filterStacktraces: boolean, adapter: RuntimeAdapter);
23
+ run(): Promise<RuntimeResult>;
16
24
  }
@@ -2,40 +2,59 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.Coordinator = void 0;
4
4
  const assemble_1 = require("../assemble");
5
- const stopwatch_1 = require("./stopwatch");
5
+ const format_error_1 = require("./format_error");
6
+ /**
7
+ * Handles the high-level coordination of the test run on the main thread
8
+ * @returns whether all hooks and test cases were successful
9
+ * @remarks
10
+ * For each phase of the test run, delegates to a {@link RuntimeAdapter} to handle
11
+ * the work itself. Unaware of how the adapter distributes and executes work.
12
+ */
6
13
  class Coordinator {
7
14
  testRunStartedId;
8
15
  eventBroadcaster;
9
16
  newId;
10
17
  sourcedPickles;
11
18
  supportCodeLibrary;
19
+ filterStacktraces;
12
20
  adapter;
13
- constructor(testRunStartedId, eventBroadcaster, newId, sourcedPickles, supportCodeLibrary, adapter) {
21
+ constructor(testRunStartedId, eventBroadcaster, newId, sourcedPickles, supportCodeLibrary, filterStacktraces, adapter) {
14
22
  this.testRunStartedId = testRunStartedId;
15
23
  this.eventBroadcaster = eventBroadcaster;
16
24
  this.newId = newId;
17
25
  this.sourcedPickles = sourcedPickles;
18
26
  this.supportCodeLibrary = supportCodeLibrary;
27
+ this.filterStacktraces = filterStacktraces;
19
28
  this.adapter = adapter;
20
29
  }
21
30
  async run() {
22
- this.eventBroadcaster.emit('envelope', {
23
- testRunStarted: {
24
- id: this.testRunStartedId,
25
- timestamp: (0, stopwatch_1.timestamp)(),
26
- },
27
- });
28
- const assembledTestCases = await (0, assemble_1.assembleTestCases)(this.testRunStartedId, this.eventBroadcaster, this.newId, this.sourcedPickles, this.supportCodeLibrary);
29
- const success = await this.adapter.run(assembledTestCases);
30
- this.eventBroadcaster.emit('envelope', {
31
- testRunFinished: {
32
- testRunStartedId: this.testRunStartedId,
33
- timestamp: (0, stopwatch_1.timestamp)(),
34
- success,
35
- },
36
- });
37
- return success;
31
+ try {
32
+ await this.adapter.setup();
33
+ const successByPhase = {
34
+ beforeAllHooks: false,
35
+ testCases: false,
36
+ afterAllHooks: false,
37
+ };
38
+ successByPhase.beforeAllHooks = await this.adapter.runBeforeAllHooks();
39
+ if (successByPhase.beforeAllHooks) {
40
+ const assembledTestCases = await (0, assemble_1.assembleTestCases)(this.testRunStartedId, this.eventBroadcaster, this.newId, this.sourcedPickles, this.supportCodeLibrary);
41
+ successByPhase.testCases = await this.adapter.runTestCases(assembledTestCases);
42
+ }
43
+ successByPhase.afterAllHooks = await this.adapter.runAfterAllHooks();
44
+ return {
45
+ success: successByPhase.beforeAllHooks && successByPhase.testCases && successByPhase.afterAllHooks,
46
+ };
47
+ }
48
+ catch (error) {
49
+ return {
50
+ success: false,
51
+ exception: (0, format_error_1.formatError)(error, this.filterStacktraces).exception,
52
+ };
53
+ }
54
+ finally {
55
+ await this.adapter.teardown();
56
+ }
38
57
  }
39
58
  }
40
59
  exports.Coordinator = Coordinator;
41
- //# sourceMappingURL=coordinator.js.map
60
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29vcmRpbmF0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcnVudGltZS9jb29yZGluYXRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFFQSwwQ0FBbUU7QUFFbkUsaURBQTRDO0FBSTVDOzs7Ozs7R0FNRztBQUNILE1BQWEsV0FBVztJQUVaO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBUFYsWUFDVSxnQkFBd0IsRUFDeEIsZ0JBQThCLEVBQzlCLEtBQXdCLEVBQ3hCLGNBQTRDLEVBQzVDLGtCQUFzQyxFQUN0QyxpQkFBMEIsRUFDMUIsT0FBdUI7UUFOdkIscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFRO1FBQ3hCLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBYztRQUM5QixVQUFLLEdBQUwsS0FBSyxDQUFtQjtRQUN4QixtQkFBYyxHQUFkLGNBQWMsQ0FBOEI7UUFDNUMsdUJBQWtCLEdBQWxCLGtCQUFrQixDQUFvQjtRQUN0QyxzQkFBaUIsR0FBakIsaUJBQWlCLENBQVM7UUFDMUIsWUFBTyxHQUFQLE9BQU8sQ0FBZ0I7SUFDOUIsQ0FBQztJQUVKLEtBQUssQ0FBQyxHQUFHO1FBQ1AsSUFBSSxDQUFDO1lBQ0gsTUFBTSxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxDQUFBO1lBRTFCLE1BQU0sY0FBYyxHQUFHO2dCQUNyQixjQUFjLEVBQUUsS0FBSztnQkFDckIsU0FBUyxFQUFFLEtBQUs7Z0JBQ2hCLGFBQWEsRUFBRSxLQUFLO2FBQ3JCLENBQUE7WUFDRCxjQUFjLENBQUMsY0FBYyxHQUFHLE1BQU0sSUFBSSxDQUFDLE9BQU8sQ0FBQyxpQkFBaUIsRUFBRSxDQUFBO1lBQ3RFLElBQUksY0FBYyxDQUFDLGNBQWMsRUFBRSxDQUFDO2dCQUNsQyxNQUFNLGtCQUFrQixHQUFHLE1BQU0sSUFBQSw0QkFBaUIsRUFDaEQsSUFBSSxDQUFDLGdCQUFnQixFQUNyQixJQUFJLENBQUMsZ0JBQWdCLEVBQ3JCLElBQUksQ0FBQyxLQUFLLEVBQ1YsSUFBSSxDQUFDLGNBQWMsRUFDbkIsSUFBSSxDQUFDLGtCQUFrQixDQUN4QixDQUFBO2dCQUNELGNBQWMsQ0FBQyxTQUFTLEdBQUcsTUFBTSxJQUFJLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxrQkFBa0IsQ0FBQyxDQUFBO1lBQ2hGLENBQUM7WUFDRCxjQUFjLENBQUMsYUFBYSxHQUFHLE1BQU0sSUFBSSxDQUFDLE9BQU8sQ0FBQyxnQkFBZ0IsRUFBRSxDQUFBO1lBQ3BFLE9BQU87Z0JBQ0wsT0FBTyxFQUNMLGNBQWMsQ0FBQyxjQUFjLElBQUksY0FBYyxDQUFDLFNBQVMsSUFBSSxjQUFjLENBQUMsYUFBYTthQUM1RixDQUFBO1FBQ0gsQ0FBQztRQUFDLE9BQU8sS0FBYyxFQUFFLENBQUM7WUFDeEIsT0FBTztnQkFDTCxPQUFPLEVBQUUsS0FBSztnQkFDZCxTQUFTLEVBQUUsSUFBQSwwQkFBVyxFQUFDLEtBQWMsRUFBRSxJQUFJLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxTQUFTO2FBQ3pFLENBQUE7UUFDSCxDQUFDO2dCQUFTLENBQUM7WUFDVCxNQUFNLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxFQUFFLENBQUE7UUFDL0IsQ0FBQztJQUNILENBQUM7Q0FDRjtBQTdDRCxrQ0E2Q0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IEV2ZW50RW1pdHRlciB9IGZyb20gJ25vZGU6ZXZlbnRzJ1xuaW1wb3J0IHR5cGUgeyBJZEdlbmVyYXRvciB9IGZyb20gJ0BjdWN1bWJlci9tZXNzYWdlcydcbmltcG9ydCB7IGFzc2VtYmxlVGVzdENhc2VzLCB0eXBlIFNvdXJjZWRQaWNrbGUgfSBmcm9tICcuLi9hc3NlbWJsZSdcbmltcG9ydCB0eXBlIHsgU3VwcG9ydENvZGVMaWJyYXJ5IH0gZnJvbSAnLi4vc3VwcG9ydF9jb2RlX2xpYnJhcnlfYnVpbGRlci90eXBlcydcbmltcG9ydCB7IGZvcm1hdEVycm9yIH0gZnJvbSAnLi9mb3JtYXRfZXJyb3InXG5pbXBvcnQgdHlwZSB7IFJ1bnRpbWUgfSBmcm9tICcuL2luZGV4J1xuaW1wb3J0IHR5cGUgeyBSdW50aW1lQWRhcHRlciwgUnVudGltZVJlc3VsdCB9IGZyb20gJy4vdHlwZXMnXG5cbi8qKlxuICogSGFuZGxlcyB0aGUgaGlnaC1sZXZlbCBjb29yZGluYXRpb24gb2YgdGhlIHRlc3QgcnVuIG9uIHRoZSBtYWluIHRocmVhZFxuICogQHJldHVybnMgd2hldGhlciBhbGwgaG9va3MgYW5kIHRlc3QgY2FzZXMgd2VyZSBzdWNjZXNzZnVsXG4gKiBAcmVtYXJrc1xuICogRm9yIGVhY2ggcGhhc2Ugb2YgdGhlIHRlc3QgcnVuLCBkZWxlZ2F0ZXMgdG8gYSB7QGxpbmsgUnVudGltZUFkYXB0ZXJ9IHRvIGhhbmRsZVxuICogdGhlIHdvcmsgaXRzZWxmLiBVbmF3YXJlIG9mIGhvdyB0aGUgYWRhcHRlciBkaXN0cmlidXRlcyBhbmQgZXhlY3V0ZXMgd29yay5cbiAqL1xuZXhwb3J0IGNsYXNzIENvb3JkaW5hdG9yIGltcGxlbWVudHMgUnVudGltZSB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgdGVzdFJ1blN0YXJ0ZWRJZDogc3RyaW5nLFxuICAgIHByaXZhdGUgZXZlbnRCcm9hZGNhc3RlcjogRXZlbnRFbWl0dGVyLFxuICAgIHByaXZhdGUgbmV3SWQ6IElkR2VuZXJhdG9yLk5ld0lkLFxuICAgIHByaXZhdGUgc291cmNlZFBpY2tsZXM6IFJlYWRvbmx5QXJyYXk8U291cmNlZFBpY2tsZT4sXG4gICAgcHJpdmF0ZSBzdXBwb3J0Q29kZUxpYnJhcnk6IFN1cHBvcnRDb2RlTGlicmFyeSxcbiAgICBwcml2YXRlIGZpbHRlclN0YWNrdHJhY2VzOiBib29sZWFuLFxuICAgIHByaXZhdGUgYWRhcHRlcjogUnVudGltZUFkYXB0ZXJcbiAgKSB7fVxuXG4gIGFzeW5jIHJ1bigpOiBQcm9taXNlPFJ1bnRpbWVSZXN1bHQ+IHtcbiAgICB0cnkge1xuICAgICAgYXdhaXQgdGhpcy5hZGFwdGVyLnNldHVwKClcblxuICAgICAgY29uc3Qgc3VjY2Vzc0J5UGhhc2UgPSB7XG4gICAgICAgIGJlZm9yZUFsbEhvb2tzOiBmYWxzZSxcbiAgICAgICAgdGVzdENhc2VzOiBmYWxzZSxcbiAgICAgICAgYWZ0ZXJBbGxIb29rczogZmFsc2UsXG4gICAgICB9XG4gICAgICBzdWNjZXNzQnlQaGFzZS5iZWZvcmVBbGxIb29rcyA9IGF3YWl0IHRoaXMuYWRhcHRlci5ydW5CZWZvcmVBbGxIb29rcygpXG4gICAgICBpZiAoc3VjY2Vzc0J5UGhhc2UuYmVmb3JlQWxsSG9va3MpIHtcbiAgICAgICAgY29uc3QgYXNzZW1ibGVkVGVzdENhc2VzID0gYXdhaXQgYXNzZW1ibGVUZXN0Q2FzZXMoXG4gICAgICAgICAgdGhpcy50ZXN0UnVuU3RhcnRlZElkLFxuICAgICAgICAgIHRoaXMuZXZlbnRCcm9hZGNhc3RlcixcbiAgICAgICAgICB0aGlzLm5ld0lkLFxuICAgICAgICAgIHRoaXMuc291cmNlZFBpY2tsZXMsXG4gICAgICAgICAgdGhpcy5zdXBwb3J0Q29kZUxpYnJhcnlcbiAgICAgICAgKVxuICAgICAgICBzdWNjZXNzQnlQaGFzZS50ZXN0Q2FzZXMgPSBhd2FpdCB0aGlzLmFkYXB0ZXIucnVuVGVzdENhc2VzKGFzc2VtYmxlZFRlc3RDYXNlcylcbiAgICAgIH1cbiAgICAgIHN1Y2Nlc3NCeVBoYXNlLmFmdGVyQWxsSG9va3MgPSBhd2FpdCB0aGlzLmFkYXB0ZXIucnVuQWZ0ZXJBbGxIb29rcygpXG4gICAgICByZXR1cm4ge1xuICAgICAgICBzdWNjZXNzOlxuICAgICAgICAgIHN1Y2Nlc3NCeVBoYXNlLmJlZm9yZUFsbEhvb2tzICYmIHN1Y2Nlc3NCeVBoYXNlLnRlc3RDYXNlcyAmJiBzdWNjZXNzQnlQaGFzZS5hZnRlckFsbEhvb2tzLFxuICAgICAgfVxuICAgIH0gY2F0Y2ggKGVycm9yOiB1bmtub3duKSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBzdWNjZXNzOiBmYWxzZSxcbiAgICAgICAgZXhjZXB0aW9uOiBmb3JtYXRFcnJvcihlcnJvciBhcyBFcnJvciwgdGhpcy5maWx0ZXJTdGFja3RyYWNlcykuZXhjZXB0aW9uLFxuICAgICAgfVxuICAgIH0gZmluYWxseSB7XG4gICAgICBhd2FpdCB0aGlzLmFkYXB0ZXIudGVhcmRvd24oKVxuICAgIH1cbiAgfVxufVxuIl19
@@ -1,2 +1,2 @@
1
- import { TestStepResult } from '@cucumber/messages';
1
+ import type { TestStepResult } from '@cucumber/messages';
2
2
  export declare function formatError(error: Error | string, filterStackTraces: boolean): Pick<TestStepResult, 'message' | 'exception'>;
@@ -7,6 +7,8 @@ exports.formatError = formatError;
7
7
  const assertion_error_formatter_1 = require("assertion-error-formatter");
8
8
  const error_stack_parser_1 = __importDefault(require("error-stack-parser"));
9
9
  const filter_stack_trace_1 = require("../filter_stack_trace");
10
+ // Guards against runaway or self-referential cause chains.
11
+ const MAX_CAUSE_DEPTH = 10;
10
12
  function formatError(error, filterStackTraces) {
11
13
  if (typeof error === 'string') {
12
14
  const stackTrace = `Error: ${error}`;
@@ -19,33 +21,59 @@ function formatError(error, filterStackTraces) {
19
21
  },
20
22
  };
21
23
  }
24
+ const stackTrace = formatErrorAndCauses(error, filterStackTraces);
25
+ const type = error.constructor.name;
26
+ const message = typeof error === 'string' ? error : error.message;
27
+ return {
28
+ message: stackTrace,
29
+ exception: {
30
+ type,
31
+ message,
32
+ stackTrace,
33
+ },
34
+ };
35
+ }
36
+ function formatErrorAndCauses(error, filterStackTraces) {
37
+ let output = formatSingleError(error, filterStackTraces);
38
+ const seen = new Set([error]);
39
+ let cause = error.cause;
40
+ for (let depth = 0; cause !== undefined && cause !== null; depth++) {
41
+ if (depth >= MAX_CAUSE_DEPTH) {
42
+ output += '\nCaused by: ... (further causes truncated)';
43
+ break;
44
+ }
45
+ if (seen.has(cause)) {
46
+ output += '\nCaused by: ... (circular reference)';
47
+ break;
48
+ }
49
+ seen.add(cause);
50
+ if (cause instanceof Error) {
51
+ output += `\nCaused by: ${formatSingleError(cause, filterStackTraces)}`;
52
+ cause = cause.cause;
53
+ }
54
+ else {
55
+ output += `\nCaused by: ${String(cause)}`;
56
+ break;
57
+ }
58
+ }
59
+ return output;
60
+ }
61
+ function formatSingleError(error, filterStackTraces) {
22
62
  let processedStackTrace = error.stack;
23
63
  try {
24
64
  const parsedStack = error_stack_parser_1.default.parse(error);
25
- const filteredStack = filterStackTraces
26
- ? (0, filter_stack_trace_1.filterStackTrace)(parsedStack)
27
- : parsedStack;
65
+ const filteredStack = filterStackTraces ? (0, filter_stack_trace_1.filterStackTrace)(parsedStack) : parsedStack;
28
66
  processedStackTrace = filteredStack.map((f) => f.source).join('\n');
29
67
  }
30
68
  catch {
31
69
  // if we weren't able to parse and process, we'll settle for the original
32
70
  }
33
- const stackTrace = (0, assertion_error_formatter_1.format)(error, {
71
+ return (0, assertion_error_formatter_1.format)(error, {
34
72
  colorFns: {
35
73
  errorStack: (stack) => {
36
74
  return processedStackTrace ? `\n${processedStackTrace}` : stack;
37
75
  },
38
76
  },
39
77
  });
40
- const type = error.constructor.name;
41
- const message = typeof error === 'string' ? error : error.message;
42
- return {
43
- message: stackTrace,
44
- exception: {
45
- type,
46
- message,
47
- stackTrace,
48
- },
49
- };
50
78
  }
51
- //# sourceMappingURL=format_error.js.map
79
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybWF0X2Vycm9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3J1bnRpbWUvZm9ybWF0X2Vycm9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBUUEsa0NBMEJDO0FBakNELHlFQUFrRDtBQUNsRCw0RUFBaUQ7QUFDakQsOERBQXdEO0FBRXhELDJEQUEyRDtBQUMzRCxNQUFNLGVBQWUsR0FBRyxFQUFFLENBQUE7QUFFMUIsU0FBZ0IsV0FBVyxDQUN6QixLQUFxQixFQUNyQixpQkFBMEI7SUFFMUIsSUFBSSxPQUFPLEtBQUssS0FBSyxRQUFRLEVBQUUsQ0FBQztRQUM5QixNQUFNLFVBQVUsR0FBRyxVQUFVLEtBQUssRUFBRSxDQUFBO1FBQ3BDLE9BQU87WUFDTCxPQUFPLEVBQUUsVUFBVTtZQUNuQixTQUFTLEVBQUU7Z0JBQ1QsSUFBSSxFQUFFLE9BQU87Z0JBQ2IsT0FBTyxFQUFFLEtBQUs7Z0JBQ2QsVUFBVTthQUNYO1NBQ0YsQ0FBQTtJQUNILENBQUM7SUFDRCxNQUFNLFVBQVUsR0FBRyxvQkFBb0IsQ0FBQyxLQUFLLEVBQUUsaUJBQWlCLENBQUMsQ0FBQTtJQUNqRSxNQUFNLElBQUksR0FBRyxLQUFLLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQTtJQUNuQyxNQUFNLE9BQU8sR0FBRyxPQUFPLEtBQUssS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQTtJQUNqRSxPQUFPO1FBQ0wsT0FBTyxFQUFFLFVBQVU7UUFDbkIsU0FBUyxFQUFFO1lBQ1QsSUFBSTtZQUNKLE9BQU87WUFDUCxVQUFVO1NBQ1g7S0FDRixDQUFBO0FBQ0gsQ0FBQztBQUVELFNBQVMsb0JBQW9CLENBQUMsS0FBWSxFQUFFLGlCQUEwQjtJQUNwRSxJQUFJLE1BQU0sR0FBRyxpQkFBaUIsQ0FBQyxLQUFLLEVBQUUsaUJBQWlCLENBQUMsQ0FBQTtJQUN4RCxNQUFNLElBQUksR0FBRyxJQUFJLEdBQUcsQ0FBVSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUE7SUFDdEMsSUFBSSxLQUFLLEdBQWEsS0FBNkIsQ0FBQyxLQUFLLENBQUE7SUFDekQsS0FBSyxJQUFJLEtBQUssR0FBRyxDQUFDLEVBQUUsS0FBSyxLQUFLLFNBQVMsSUFBSSxLQUFLLEtBQUssSUFBSSxFQUFFLEtBQUssRUFBRSxFQUFFLENBQUM7UUFDbkUsSUFBSSxLQUFLLElBQUksZUFBZSxFQUFFLENBQUM7WUFDN0IsTUFBTSxJQUFJLDZDQUE2QyxDQUFBO1lBQ3ZELE1BQUs7UUFDUCxDQUFDO1FBQ0QsSUFBSSxJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDcEIsTUFBTSxJQUFJLHVDQUF1QyxDQUFBO1lBQ2pELE1BQUs7UUFDUCxDQUFDO1FBQ0QsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQTtRQUNmLElBQUksS0FBSyxZQUFZLEtBQUssRUFBRSxDQUFDO1lBQzNCLE1BQU0sSUFBSSxnQkFBZ0IsaUJBQWlCLENBQUMsS0FBSyxFQUFFLGlCQUFpQixDQUFDLEVBQUUsQ0FBQTtZQUN2RSxLQUFLLEdBQUksS0FBNkIsQ0FBQyxLQUFLLENBQUE7UUFDOUMsQ0FBQzthQUFNLENBQUM7WUFDTixNQUFNLElBQUksZ0JBQWdCLE1BQU0sQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFBO1lBQ3pDLE1BQUs7UUFDUCxDQUFDO0lBQ0gsQ0FBQztJQUNELE9BQU8sTUFBTSxDQUFBO0FBQ2YsQ0FBQztBQUVELFNBQVMsaUJBQWlCLENBQUMsS0FBWSxFQUFFLGlCQUEwQjtJQUNqRSxJQUFJLG1CQUFtQixHQUFXLEtBQUssQ0FBQyxLQUFLLENBQUE7SUFDN0MsSUFBSSxDQUFDO1FBQ0gsTUFBTSxXQUFXLEdBQUcsNEJBQWdCLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFBO1FBQ2pELE1BQU0sYUFBYSxHQUFHLGlCQUFpQixDQUFDLENBQUMsQ0FBQyxJQUFBLHFDQUFnQixFQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUE7UUFDckYsbUJBQW1CLEdBQUcsYUFBYSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQTtJQUNyRSxDQUFDO0lBQUMsTUFBTSxDQUFDO1FBQ1AseUVBQXlFO0lBQzNFLENBQUM7SUFDRCxPQUFPLElBQUEsa0NBQU0sRUFBQyxLQUFLLEVBQUU7UUFDbkIsUUFBUSxFQUFFO1lBQ1IsVUFBVSxFQUFFLENBQUMsS0FBYSxFQUFFLEVBQUU7Z0JBQzVCLE9BQU8sbUJBQW1CLENBQUMsQ0FBQyxDQUFDLEtBQUssbUJBQW1CLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFBO1lBQ2pFLENBQUM7U0FDRjtLQUNGLENBQUMsQ0FBQTtBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IFRlc3RTdGVwUmVzdWx0IH0gZnJvbSAnQGN1Y3VtYmVyL21lc3NhZ2VzJ1xuaW1wb3J0IHsgZm9ybWF0IH0gZnJvbSAnYXNzZXJ0aW9uLWVycm9yLWZvcm1hdHRlcidcbmltcG9ydCBlcnJvclN0YWNrUGFyc2VyIGZyb20gJ2Vycm9yLXN0YWNrLXBhcnNlcidcbmltcG9ydCB7IGZpbHRlclN0YWNrVHJhY2UgfSBmcm9tICcuLi9maWx0ZXJfc3RhY2tfdHJhY2UnXG5cbi8vIEd1YXJkcyBhZ2FpbnN0IHJ1bmF3YXkgb3Igc2VsZi1yZWZlcmVudGlhbCBjYXVzZSBjaGFpbnMuXG5jb25zdCBNQVhfQ0FVU0VfREVQVEggPSAxMFxuXG5leHBvcnQgZnVuY3Rpb24gZm9ybWF0RXJyb3IoXG4gIGVycm9yOiBFcnJvciB8IHN0cmluZyxcbiAgZmlsdGVyU3RhY2tUcmFjZXM6IGJvb2xlYW5cbik6IFBpY2s8VGVzdFN0ZXBSZXN1bHQsICdtZXNzYWdlJyB8ICdleGNlcHRpb24nPiB7XG4gIGlmICh0eXBlb2YgZXJyb3IgPT09ICdzdHJpbmcnKSB7XG4gICAgY29uc3Qgc3RhY2tUcmFjZSA9IGBFcnJvcjogJHtlcnJvcn1gXG4gICAgcmV0dXJuIHtcbiAgICAgIG1lc3NhZ2U6IHN0YWNrVHJhY2UsXG4gICAgICBleGNlcHRpb246IHtcbiAgICAgICAgdHlwZTogJ0Vycm9yJyxcbiAgICAgICAgbWVzc2FnZTogZXJyb3IsXG4gICAgICAgIHN0YWNrVHJhY2UsXG4gICAgICB9LFxuICAgIH1cbiAgfVxuICBjb25zdCBzdGFja1RyYWNlID0gZm9ybWF0RXJyb3JBbmRDYXVzZXMoZXJyb3IsIGZpbHRlclN0YWNrVHJhY2VzKVxuICBjb25zdCB0eXBlID0gZXJyb3IuY29uc3RydWN0b3IubmFtZVxuICBjb25zdCBtZXNzYWdlID0gdHlwZW9mIGVycm9yID09PSAnc3RyaW5nJyA/IGVycm9yIDogZXJyb3IubWVzc2FnZVxuICByZXR1cm4ge1xuICAgIG1lc3NhZ2U6IHN0YWNrVHJhY2UsXG4gICAgZXhjZXB0aW9uOiB7XG4gICAgICB0eXBlLFxuICAgICAgbWVzc2FnZSxcbiAgICAgIHN0YWNrVHJhY2UsXG4gICAgfSxcbiAgfVxufVxuXG5mdW5jdGlvbiBmb3JtYXRFcnJvckFuZENhdXNlcyhlcnJvcjogRXJyb3IsIGZpbHRlclN0YWNrVHJhY2VzOiBib29sZWFuKTogc3RyaW5nIHtcbiAgbGV0IG91dHB1dCA9IGZvcm1hdFNpbmdsZUVycm9yKGVycm9yLCBmaWx0ZXJTdGFja1RyYWNlcylcbiAgY29uc3Qgc2VlbiA9IG5ldyBTZXQ8dW5rbm93bj4oW2Vycm9yXSlcbiAgbGV0IGNhdXNlOiB1bmtub3duID0gKGVycm9yIGFzIHsgY2F1c2U/OiB1bmtub3duIH0pLmNhdXNlXG4gIGZvciAobGV0IGRlcHRoID0gMDsgY2F1c2UgIT09IHVuZGVmaW5lZCAmJiBjYXVzZSAhPT0gbnVsbDsgZGVwdGgrKykge1xuICAgIGlmIChkZXB0aCA+PSBNQVhfQ0FVU0VfREVQVEgpIHtcbiAgICAgIG91dHB1dCArPSAnXFxuQ2F1c2VkIGJ5OiAuLi4gKGZ1cnRoZXIgY2F1c2VzIHRydW5jYXRlZCknXG4gICAgICBicmVha1xuICAgIH1cbiAgICBpZiAoc2Vlbi5oYXMoY2F1c2UpKSB7XG4gICAgICBvdXRwdXQgKz0gJ1xcbkNhdXNlZCBieTogLi4uIChjaXJjdWxhciByZWZlcmVuY2UpJ1xuICAgICAgYnJlYWtcbiAgICB9XG4gICAgc2Vlbi5hZGQoY2F1c2UpXG4gICAgaWYgKGNhdXNlIGluc3RhbmNlb2YgRXJyb3IpIHtcbiAgICAgIG91dHB1dCArPSBgXFxuQ2F1c2VkIGJ5OiAke2Zvcm1hdFNpbmdsZUVycm9yKGNhdXNlLCBmaWx0ZXJTdGFja1RyYWNlcyl9YFxuICAgICAgY2F1c2UgPSAoY2F1c2UgYXMgeyBjYXVzZT86IHVua25vd24gfSkuY2F1c2VcbiAgICB9IGVsc2Uge1xuICAgICAgb3V0cHV0ICs9IGBcXG5DYXVzZWQgYnk6ICR7U3RyaW5nKGNhdXNlKX1gXG4gICAgICBicmVha1xuICAgIH1cbiAgfVxuICByZXR1cm4gb3V0cHV0XG59XG5cbmZ1bmN0aW9uIGZvcm1hdFNpbmdsZUVycm9yKGVycm9yOiBFcnJvciwgZmlsdGVyU3RhY2tUcmFjZXM6IGJvb2xlYW4pOiBzdHJpbmcge1xuICBsZXQgcHJvY2Vzc2VkU3RhY2tUcmFjZTogc3RyaW5nID0gZXJyb3Iuc3RhY2tcbiAgdHJ5IHtcbiAgICBjb25zdCBwYXJzZWRTdGFjayA9IGVycm9yU3RhY2tQYXJzZXIucGFyc2UoZXJyb3IpXG4gICAgY29uc3QgZmlsdGVyZWRTdGFjayA9IGZpbHRlclN0YWNrVHJhY2VzID8gZmlsdGVyU3RhY2tUcmFjZShwYXJzZWRTdGFjaykgOiBwYXJzZWRTdGFja1xuICAgIHByb2Nlc3NlZFN0YWNrVHJhY2UgPSBmaWx0ZXJlZFN0YWNrLm1hcCgoZikgPT4gZi5zb3VyY2UpLmpvaW4oJ1xcbicpXG4gIH0gY2F0Y2gge1xuICAgIC8vIGlmIHdlIHdlcmVuJ3QgYWJsZSB0byBwYXJzZSBhbmQgcHJvY2Vzcywgd2UnbGwgc2V0dGxlIGZvciB0aGUgb3JpZ2luYWxcbiAgfVxuICByZXR1cm4gZm9ybWF0KGVycm9yLCB7XG4gICAgY29sb3JGbnM6IHtcbiAgICAgIGVycm9yU3RhY2s6IChzdGFjazogc3RyaW5nKSA9PiB7XG4gICAgICAgIHJldHVybiBwcm9jZXNzZWRTdGFja1RyYWNlID8gYFxcbiR7cHJvY2Vzc2VkU3RhY2tUcmFjZX1gIDogc3RhY2tcbiAgICAgIH0sXG4gICAgfSxcbiAgfSlcbn1cbiJdfQ==
@@ -1,6 +1,6 @@
1
- import * as messages from '@cucumber/messages';
2
- import StepDefinition from '../models/step_definition';
3
- import { RuntimeOptions } from '.';
1
+ import { type Pickle, TestStepResultStatus } from '@cucumber/messages';
2
+ import type StepDefinition from '../models/step_definition';
3
+ import type { RuntimeOptions } from '.';
4
4
  export declare function getAmbiguousStepException(stepDefinitions: StepDefinition[]): string;
5
- export declare function retriesForPickle(pickle: messages.Pickle, options: RuntimeOptions): number;
6
- export declare function shouldCauseFailure(status: messages.TestStepResultStatus, options: RuntimeOptions): boolean;
5
+ export declare function retriesForPickle(pickle: Pickle, options: RuntimeOptions): number;
6
+ export declare function shouldCauseFailure(status: TestStepResultStatus, options: RuntimeOptions): boolean;
@@ -1,37 +1,4 @@
1
1
  "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || (function () {
19
- var ownKeys = function(o) {
20
- ownKeys = Object.getOwnPropertyNames || function (o) {
21
- var ar = [];
22
- for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
- return ar;
24
- };
25
- return ownKeys(o);
26
- };
27
- return function (mod) {
28
- if (mod && mod.__esModule) return mod;
29
- var result = {};
30
- if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
- __setModuleDefault(result, mod);
32
- return result;
33
- };
34
- })();
35
2
  var __importDefault = (this && this.__importDefault) || function (mod) {
36
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
37
4
  };
@@ -39,9 +6,9 @@ Object.defineProperty(exports, "__esModule", { value: true });
39
6
  exports.getAmbiguousStepException = getAmbiguousStepException;
40
7
  exports.retriesForPickle = retriesForPickle;
41
8
  exports.shouldCauseFailure = shouldCauseFailure;
9
+ const messages_1 = require("@cucumber/messages");
42
10
  const cli_table3_1 = __importDefault(require("cli-table3"));
43
11
  const indent_string_1 = __importDefault(require("indent-string"));
44
- const messages = __importStar(require("@cucumber/messages"));
45
12
  const location_helpers_1 = require("../formatter/helpers/location_helpers");
46
13
  const pickle_filter_1 = require("../pickle_filter");
47
14
  function getAmbiguousStepException(stepDefinitions) {
@@ -98,13 +65,13 @@ function shouldCauseFailure(status, options) {
98
65
  return false;
99
66
  }
100
67
  const failureStatuses = [
101
- messages.TestStepResultStatus.AMBIGUOUS,
102
- messages.TestStepResultStatus.FAILED,
103
- messages.TestStepResultStatus.UNDEFINED,
68
+ messages_1.TestStepResultStatus.AMBIGUOUS,
69
+ messages_1.TestStepResultStatus.FAILED,
70
+ messages_1.TestStepResultStatus.UNDEFINED,
104
71
  ];
105
72
  if (options.strict) {
106
- failureStatuses.push(messages.TestStepResultStatus.PENDING);
73
+ failureStatuses.push(messages_1.TestStepResultStatus.PENDING);
107
74
  }
108
75
  return failureStatuses.includes(status);
109
76
  }
110
- //# sourceMappingURL=helpers.js.map
77
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVscGVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9ydW50aW1lL2hlbHBlcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFRQSw4REFnQ0M7QUFFRCw0Q0FpQkM7QUFFRCxnREFhQztBQTFFRCxpREFBc0U7QUFDdEUsNERBQThCO0FBQzlCLGtFQUF3QztBQUN4Qyw0RUFBc0U7QUFFdEUsb0RBQWtEO0FBR2xELFNBQWdCLHlCQUF5QixDQUFDLGVBQWlDO0lBQ3pFLE1BQU0sS0FBSyxHQUFHLElBQUksb0JBQUssQ0FBQztRQUN0QixLQUFLLEVBQUU7WUFDTCxNQUFNLEVBQUUsRUFBRTtZQUNWLGFBQWEsRUFBRSxFQUFFO1lBQ2pCLFlBQVksRUFBRSxFQUFFO1lBQ2hCLGNBQWMsRUFBRSxFQUFFO1lBQ2xCLElBQUksRUFBRSxFQUFFO1lBQ1IsVUFBVSxFQUFFLEVBQUU7WUFDZCxHQUFHLEVBQUUsRUFBRTtZQUNQLFNBQVMsRUFBRSxFQUFFO1lBQ2IsTUFBTSxFQUFFLEtBQUs7WUFDYixLQUFLLEVBQUUsRUFBRTtZQUNULFdBQVcsRUFBRSxFQUFFO1lBQ2YsR0FBRyxFQUFFLEVBQUU7WUFDUCxVQUFVLEVBQUUsRUFBRTtZQUNkLFNBQVMsRUFBRSxFQUFFO1lBQ2IsV0FBVyxFQUFFLEVBQUU7U0FDaEI7UUFDRCxLQUFLLEVBQUU7WUFDTCxNQUFNLEVBQUUsRUFBRTtZQUNWLGNBQWMsRUFBRSxDQUFDO1lBQ2pCLGVBQWUsRUFBRSxDQUFDO1NBQ25CO0tBQ0YsQ0FBQyxDQUFBO0lBQ0YsS0FBSyxDQUFDLElBQUksQ0FDUixHQUFHLGVBQWUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxjQUFjLEVBQUUsRUFBRTtRQUN4QyxNQUFNLE9BQU8sR0FBRyxjQUFjLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFBRSxDQUFBO1FBQ2pELE9BQU8sQ0FBQyxPQUFPLEVBQUUsSUFBQSxpQ0FBYyxFQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUE7SUFDbEQsQ0FBQyxDQUFDLENBQ0gsQ0FBQTtJQUNELE9BQU8sR0FBRyxrQ0FBa0MsR0FBRyxJQUFJLEdBQUcsSUFBQSx1QkFBWSxFQUFDLEtBQUssQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFBO0FBQzNGLENBQUM7QUFFRCxTQUFnQixnQkFBZ0IsQ0FBQyxNQUFjLEVBQUUsT0FBdUI7SUFDdEUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUNuQixPQUFPLENBQUMsQ0FBQTtJQUNWLENBQUM7SUFDRCxNQUFNLE9BQU8sR0FBRyxPQUFPLENBQUMsS0FBSyxDQUFBO0lBQzdCLElBQUksT0FBTyxLQUFLLENBQUMsRUFBRSxDQUFDO1FBQ2xCLE9BQU8sQ0FBQyxDQUFBO0lBQ1YsQ0FBQztJQUNELE1BQU0sY0FBYyxHQUFHLE9BQU8sQ0FBQyxjQUFjLENBQUE7SUFDN0MsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQ3BCLE9BQU8sT0FBTyxDQUFBO0lBQ2hCLENBQUM7SUFDRCxNQUFNLGVBQWUsR0FBRyxJQUFJLCtCQUFlLENBQUMsY0FBYyxDQUFDLENBQUE7SUFDM0QsSUFBSSxlQUFlLENBQUMsd0JBQXdCLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQztRQUNyRCxPQUFPLE9BQU8sQ0FBQTtJQUNoQixDQUFDO0lBQ0QsT0FBTyxDQUFDLENBQUE7QUFDVixDQUFDO0FBRUQsU0FBZ0Isa0JBQWtCLENBQUMsTUFBNEIsRUFBRSxPQUF1QjtJQUN0RixJQUFJLE9BQU8sQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUNuQixPQUFPLEtBQUssQ0FBQTtJQUNkLENBQUM7SUFDRCxNQUFNLGVBQWUsR0FBMkI7UUFDOUMsK0JBQW9CLENBQUMsU0FBUztRQUM5QiwrQkFBb0IsQ0FBQyxNQUFNO1FBQzNCLCtCQUFvQixDQUFDLFNBQVM7S0FDL0IsQ0FBQTtJQUNELElBQUksT0FBTyxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ25CLGVBQWUsQ0FBQyxJQUFJLENBQUMsK0JBQW9CLENBQUMsT0FBTyxDQUFDLENBQUE7SUFDcEQsQ0FBQztJQUNELE9BQU8sZUFBZSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQTtBQUN6QyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgdHlwZSBQaWNrbGUsIFRlc3RTdGVwUmVzdWx0U3RhdHVzIH0gZnJvbSAnQGN1Y3VtYmVyL21lc3NhZ2VzJ1xuaW1wb3J0IFRhYmxlIGZyb20gJ2NsaS10YWJsZTMnXG5pbXBvcnQgaW5kZW50U3RyaW5nIGZyb20gJ2luZGVudC1zdHJpbmcnXG5pbXBvcnQgeyBmb3JtYXRMb2NhdGlvbiB9IGZyb20gJy4uL2Zvcm1hdHRlci9oZWxwZXJzL2xvY2F0aW9uX2hlbHBlcnMnXG5pbXBvcnQgdHlwZSBTdGVwRGVmaW5pdGlvbiBmcm9tICcuLi9tb2RlbHMvc3RlcF9kZWZpbml0aW9uJ1xuaW1wb3J0IHsgUGlja2xlVGFnRmlsdGVyIH0gZnJvbSAnLi4vcGlja2xlX2ZpbHRlcidcbmltcG9ydCB0eXBlIHsgUnVudGltZU9wdGlvbnMgfSBmcm9tICcuJ1xuXG5leHBvcnQgZnVuY3Rpb24gZ2V0QW1iaWd1b3VzU3RlcEV4Y2VwdGlvbihzdGVwRGVmaW5pdGlvbnM6IFN0ZXBEZWZpbml0aW9uW10pOiBzdHJpbmcge1xuICBjb25zdCB0YWJsZSA9IG5ldyBUYWJsZSh7XG4gICAgY2hhcnM6IHtcbiAgICAgIGJvdHRvbTogJycsXG4gICAgICAnYm90dG9tLWxlZnQnOiAnJyxcbiAgICAgICdib3R0b20tbWlkJzogJycsXG4gICAgICAnYm90dG9tLXJpZ2h0JzogJycsXG4gICAgICBsZWZ0OiAnJyxcbiAgICAgICdsZWZ0LW1pZCc6ICcnLFxuICAgICAgbWlkOiAnJyxcbiAgICAgICdtaWQtbWlkJzogJycsXG4gICAgICBtaWRkbGU6ICcgLSAnLFxuICAgICAgcmlnaHQ6ICcnLFxuICAgICAgJ3JpZ2h0LW1pZCc6ICcnLFxuICAgICAgdG9wOiAnJyxcbiAgICAgICd0b3AtbGVmdCc6ICcnLFxuICAgICAgJ3RvcC1taWQnOiAnJyxcbiAgICAgICd0b3AtcmlnaHQnOiAnJyxcbiAgICB9LFxuICAgIHN0eWxlOiB7XG4gICAgICBib3JkZXI6IFtdLFxuICAgICAgJ3BhZGRpbmctbGVmdCc6IDAsXG4gICAgICAncGFkZGluZy1yaWdodCc6IDAsXG4gICAgfSxcbiAgfSlcbiAgdGFibGUucHVzaChcbiAgICAuLi5zdGVwRGVmaW5pdGlvbnMubWFwKChzdGVwRGVmaW5pdGlvbikgPT4ge1xuICAgICAgY29uc3QgcGF0dGVybiA9IHN0ZXBEZWZpbml0aW9uLnBhdHRlcm4udG9TdHJpbmcoKVxuICAgICAgcmV0dXJuIFtwYXR0ZXJuLCBmb3JtYXRMb2NhdGlvbihzdGVwRGVmaW5pdGlvbildXG4gICAgfSlcbiAgKVxuICByZXR1cm4gYCR7J011bHRpcGxlIHN0ZXAgZGVmaW5pdGlvbnMgbWF0Y2g6JyArICdcXG4nfSR7aW5kZW50U3RyaW5nKHRhYmxlLnRvU3RyaW5nKCksIDIpfWBcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHJldHJpZXNGb3JQaWNrbGUocGlja2xlOiBQaWNrbGUsIG9wdGlvbnM6IFJ1bnRpbWVPcHRpb25zKTogbnVtYmVyIHtcbiAgaWYgKCFvcHRpb25zLnJldHJ5KSB7XG4gICAgcmV0dXJuIDBcbiAgfVxuICBjb25zdCByZXRyaWVzID0gb3B0aW9ucy5yZXRyeVxuICBpZiAocmV0cmllcyA9PT0gMCkge1xuICAgIHJldHVybiAwXG4gIH1cbiAgY29uc3QgcmV0cnlUYWdGaWx0ZXIgPSBvcHRpb25zLnJldHJ5VGFnRmlsdGVyXG4gIGlmICghcmV0cnlUYWdGaWx0ZXIpIHtcbiAgICByZXR1cm4gcmV0cmllc1xuICB9XG4gIGNvbnN0IHBpY2tsZVRhZ0ZpbHRlciA9IG5ldyBQaWNrbGVUYWdGaWx0ZXIocmV0cnlUYWdGaWx0ZXIpXG4gIGlmIChwaWNrbGVUYWdGaWx0ZXIubWF0Y2hlc0FsbFRhZ0V4cHJlc3Npb25zKHBpY2tsZSkpIHtcbiAgICByZXR1cm4gcmV0cmllc1xuICB9XG4gIHJldHVybiAwXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBzaG91bGRDYXVzZUZhaWx1cmUoc3RhdHVzOiBUZXN0U3RlcFJlc3VsdFN0YXR1cywgb3B0aW9uczogUnVudGltZU9wdGlvbnMpOiBib29sZWFuIHtcbiAgaWYgKG9wdGlvbnMuZHJ5UnVuKSB7XG4gICAgcmV0dXJuIGZhbHNlXG4gIH1cbiAgY29uc3QgZmFpbHVyZVN0YXR1c2VzOiBUZXN0U3RlcFJlc3VsdFN0YXR1c1tdID0gW1xuICAgIFRlc3RTdGVwUmVzdWx0U3RhdHVzLkFNQklHVU9VUyxcbiAgICBUZXN0U3RlcFJlc3VsdFN0YXR1cy5GQUlMRUQsXG4gICAgVGVzdFN0ZXBSZXN1bHRTdGF0dXMuVU5ERUZJTkVELFxuICBdXG4gIGlmIChvcHRpb25zLnN0cmljdCkge1xuICAgIGZhaWx1cmVTdGF0dXNlcy5wdXNoKFRlc3RTdGVwUmVzdWx0U3RhdHVzLlBFTkRJTkcpXG4gIH1cbiAgcmV0dXJuIGZhaWx1cmVTdGF0dXNlcy5pbmNsdWRlcyhzdGF0dXMpXG59XG4iXX0=
@@ -15,4 +15,4 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
17
  __exportStar(require("./make_runtime"), exports);
18
- //# sourceMappingURL=index.js.map
18
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcnVudGltZS9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsaURBQThCIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9tYWtlX3J1bnRpbWUnXG5leHBvcnQgeyBSdW50aW1lLCBSdW50aW1lT3B0aW9ucyB9IGZyb20gJy4vdHlwZXMnXG4iXX0=
@@ -1,12 +1,13 @@
1
- import { EventEmitter } from 'node:events';
2
- import { IdGenerator } from '@cucumber/messages';
3
- import { IRunOptionsRuntime } from '../api';
4
- import { ILogger, IRunEnvironment } from '../environment';
5
- import { SourcedPickle } from '../assemble';
6
- import { SupportCodeLibrary } from '../support_code_library_builder/types';
7
- import { FormatOptions } from '../formatter';
8
- import { Runtime } from './types';
9
- export declare function makeRuntime({ environment, logger, eventBroadcaster, sourcedPickles, newId, supportCodeLibrary, options, snippetOptions, }: {
1
+ import type { EventEmitter } from 'node:events';
2
+ import type { IdGenerator } from '@cucumber/messages';
3
+ import type { IRunOptionsRuntime } from '../api';
4
+ import type { SourcedPickle } from '../assemble';
5
+ import type { ILogger, IRunEnvironment } from '../environment';
6
+ import type { FormatOptions } from '../formatter';
7
+ import type { SupportCodeLibrary } from '../support_code_library_builder/types';
8
+ import type { Runtime } from './types';
9
+ export declare function makeRuntime({ testRunStartedId, environment, logger, eventBroadcaster, sourcedPickles, newId, supportCodeLibrary, options, snippetOptions, }: {
10
+ testRunStartedId: string;
10
11
  environment: IRunEnvironment;
11
12
  logger: ILogger;
12
13
  eventBroadcaster: EventEmitter;
@@ -5,17 +5,16 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.makeRuntime = makeRuntime;
7
7
  const builder_1 = __importDefault(require("../formatter/builder"));
8
+ const coordinator_1 = require("./coordinator");
8
9
  const adapter_1 = require("./parallel/adapter");
9
10
  const adapter_2 = require("./serial/adapter");
10
- const coordinator_1 = require("./coordinator");
11
- async function makeRuntime({ environment, logger, eventBroadcaster, sourcedPickles, newId, supportCodeLibrary, options, snippetOptions, }) {
12
- const testRunStartedId = newId();
11
+ async function makeRuntime({ testRunStartedId, environment, logger, eventBroadcaster, sourcedPickles, newId, supportCodeLibrary, options, snippetOptions, }) {
13
12
  const adapter = await makeAdapter(options, snippetOptions, testRunStartedId, environment, logger, eventBroadcaster, supportCodeLibrary, newId);
14
- return new coordinator_1.Coordinator(testRunStartedId, eventBroadcaster, newId, sourcedPickles, supportCodeLibrary, adapter);
13
+ return new coordinator_1.Coordinator(testRunStartedId, eventBroadcaster, newId, sourcedPickles, supportCodeLibrary, options.filterStacktraces, adapter);
15
14
  }
16
15
  async function makeAdapter(options, snippetOptions, testRunStartedId, environment, logger, eventBroadcaster, supportCodeLibrary, newId) {
17
16
  if (options.parallel > 0) {
18
- return new adapter_1.ChildProcessAdapter(testRunStartedId, environment, logger, eventBroadcaster, options, snippetOptions, supportCodeLibrary);
17
+ return new adapter_1.WorkerThreadsAdapter(testRunStartedId, environment, logger, eventBroadcaster, options, snippetOptions, supportCodeLibrary);
19
18
  }
20
19
  const snippetBuilder = await builder_1.default.getStepDefinitionSnippetBuilder({
21
20
  cwd: environment.cwd,
@@ -25,4 +24,4 @@ async function makeAdapter(options, snippetOptions, testRunStartedId, environmen
25
24
  });
26
25
  return new adapter_2.InProcessAdapter(testRunStartedId, eventBroadcaster, newId, options, supportCodeLibrary, snippetBuilder);
27
26
  }
28
- //# sourceMappingURL=make_runtime.js.map
27
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFrZV9ydW50aW1lLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3J1bnRpbWUvbWFrZV9ydW50aW1lLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBYUEsa0NBd0NDO0FBL0NELG1FQUFtRDtBQUVuRCwrQ0FBMkM7QUFDM0MsZ0RBQXlEO0FBQ3pELDhDQUFtRDtBQUc1QyxLQUFLLFVBQVUsV0FBVyxDQUFDLEVBQ2hDLGdCQUFnQixFQUNoQixXQUFXLEVBQ1gsTUFBTSxFQUNOLGdCQUFnQixFQUNoQixjQUFjLEVBQ2QsS0FBSyxFQUNMLGtCQUFrQixFQUNsQixPQUFPLEVBQ1AsY0FBYyxHQVdmO0lBQ0MsTUFBTSxPQUFPLEdBQUcsTUFBTSxXQUFXLENBQy9CLE9BQU8sRUFDUCxjQUFjLEVBQ2QsZ0JBQWdCLEVBQ2hCLFdBQVcsRUFDWCxNQUFNLEVBQ04sZ0JBQWdCLEVBQ2hCLGtCQUFrQixFQUNsQixLQUFLLENBQ04sQ0FBQTtJQUNELE9BQU8sSUFBSSx5QkFBVyxDQUNwQixnQkFBZ0IsRUFDaEIsZ0JBQWdCLEVBQ2hCLEtBQUssRUFDTCxjQUFjLEVBQ2Qsa0JBQWtCLEVBQ2xCLE9BQU8sQ0FBQyxpQkFBaUIsRUFDekIsT0FBTyxDQUNSLENBQUE7QUFDSCxDQUFDO0FBRUQsS0FBSyxVQUFVLFdBQVcsQ0FDeEIsT0FBMkIsRUFDM0IsY0FBeUUsRUFDekUsZ0JBQXdCLEVBQ3hCLFdBQTRCLEVBQzVCLE1BQWUsRUFDZixnQkFBOEIsRUFDOUIsa0JBQXNDLEVBQ3RDLEtBQW1CO0lBRW5CLElBQUksT0FBTyxDQUFDLFFBQVEsR0FBRyxDQUFDLEVBQUUsQ0FBQztRQUN6QixPQUFPLElBQUksOEJBQW9CLENBQzdCLGdCQUFnQixFQUNoQixXQUFXLEVBQ1gsTUFBTSxFQUNOLGdCQUFnQixFQUNoQixPQUFPLEVBQ1AsY0FBYyxFQUNkLGtCQUFrQixDQUNuQixDQUFBO0lBQ0gsQ0FBQztJQUNELE1BQU0sY0FBYyxHQUFHLE1BQU0saUJBQWdCLENBQUMsK0JBQStCLENBQUM7UUFDNUUsR0FBRyxFQUFFLFdBQVcsQ0FBQyxHQUFHO1FBQ3BCLGdCQUFnQixFQUFFLGNBQWMsQ0FBQyxnQkFBZ0I7UUFDakQsYUFBYSxFQUFFLGNBQWMsQ0FBQyxhQUFhO1FBQzNDLGtCQUFrQjtLQUNuQixDQUFDLENBQUE7SUFDRixPQUFPLElBQUksMEJBQWdCLENBQ3pCLGdCQUFnQixFQUNoQixnQkFBZ0IsRUFDaEIsS0FBSyxFQUNMLE9BQU8sRUFDUCxrQkFBa0IsRUFDbEIsY0FBYyxDQUNmLENBQUE7QUFDSCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBFdmVudEVtaXR0ZXIgfSBmcm9tICdub2RlOmV2ZW50cydcbmltcG9ydCB0eXBlIHsgSWRHZW5lcmF0b3IgfSBmcm9tICdAY3VjdW1iZXIvbWVzc2FnZXMnXG5pbXBvcnQgdHlwZSB7IElSdW5PcHRpb25zUnVudGltZSB9IGZyb20gJy4uL2FwaSdcbmltcG9ydCB0eXBlIHsgU291cmNlZFBpY2tsZSB9IGZyb20gJy4uL2Fzc2VtYmxlJ1xuaW1wb3J0IHR5cGUgeyBJTG9nZ2VyLCBJUnVuRW52aXJvbm1lbnQgfSBmcm9tICcuLi9lbnZpcm9ubWVudCdcbmltcG9ydCB0eXBlIHsgRm9ybWF0T3B0aW9ucyB9IGZyb20gJy4uL2Zvcm1hdHRlcidcbmltcG9ydCBGb3JtYXR0ZXJCdWlsZGVyIGZyb20gJy4uL2Zvcm1hdHRlci9idWlsZGVyJ1xuaW1wb3J0IHR5cGUgeyBTdXBwb3J0Q29kZUxpYnJhcnkgfSBmcm9tICcuLi9zdXBwb3J0X2NvZGVfbGlicmFyeV9idWlsZGVyL3R5cGVzJ1xuaW1wb3J0IHsgQ29vcmRpbmF0b3IgfSBmcm9tICcuL2Nvb3JkaW5hdG9yJ1xuaW1wb3J0IHsgV29ya2VyVGhyZWFkc0FkYXB0ZXIgfSBmcm9tICcuL3BhcmFsbGVsL2FkYXB0ZXInXG5pbXBvcnQgeyBJblByb2Nlc3NBZGFwdGVyIH0gZnJvbSAnLi9zZXJpYWwvYWRhcHRlcidcbmltcG9ydCB0eXBlIHsgUnVudGltZSB9IGZyb20gJy4vdHlwZXMnXG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBtYWtlUnVudGltZSh7XG4gIHRlc3RSdW5TdGFydGVkSWQsXG4gIGVudmlyb25tZW50LFxuICBsb2dnZXIsXG4gIGV2ZW50QnJvYWRjYXN0ZXIsXG4gIHNvdXJjZWRQaWNrbGVzLFxuICBuZXdJZCxcbiAgc3VwcG9ydENvZGVMaWJyYXJ5LFxuICBvcHRpb25zLFxuICBzbmlwcGV0T3B0aW9ucyxcbn06IHtcbiAgdGVzdFJ1blN0YXJ0ZWRJZDogc3RyaW5nXG4gIGVudmlyb25tZW50OiBJUnVuRW52aXJvbm1lbnRcbiAgbG9nZ2VyOiBJTG9nZ2VyXG4gIGV2ZW50QnJvYWRjYXN0ZXI6IEV2ZW50RW1pdHRlclxuICBuZXdJZDogSWRHZW5lcmF0b3IuTmV3SWRcbiAgc291cmNlZFBpY2tsZXM6IFJlYWRvbmx5QXJyYXk8U291cmNlZFBpY2tsZT5cbiAgc3VwcG9ydENvZGVMaWJyYXJ5OiBTdXBwb3J0Q29kZUxpYnJhcnlcbiAgb3B0aW9uczogSVJ1bk9wdGlvbnNSdW50aW1lXG4gIHNuaXBwZXRPcHRpb25zOiBQaWNrPEZvcm1hdE9wdGlvbnMsICdzbmlwcGV0SW50ZXJmYWNlJyB8ICdzbmlwcGV0U3ludGF4Jz5cbn0pOiBQcm9taXNlPFJ1bnRpbWU+IHtcbiAgY29uc3QgYWRhcHRlciA9IGF3YWl0IG1ha2VBZGFwdGVyKFxuICAgIG9wdGlvbnMsXG4gICAgc25pcHBldE9wdGlvbnMsXG4gICAgdGVzdFJ1blN0YXJ0ZWRJZCxcbiAgICBlbnZpcm9ubWVudCxcbiAgICBsb2dnZXIsXG4gICAgZXZlbnRCcm9hZGNhc3RlcixcbiAgICBzdXBwb3J0Q29kZUxpYnJhcnksXG4gICAgbmV3SWRcbiAgKVxuICByZXR1cm4gbmV3IENvb3JkaW5hdG9yKFxuICAgIHRlc3RSdW5TdGFydGVkSWQsXG4gICAgZXZlbnRCcm9hZGNhc3RlcixcbiAgICBuZXdJZCxcbiAgICBzb3VyY2VkUGlja2xlcyxcbiAgICBzdXBwb3J0Q29kZUxpYnJhcnksXG4gICAgb3B0aW9ucy5maWx0ZXJTdGFja3RyYWNlcyxcbiAgICBhZGFwdGVyXG4gIClcbn1cblxuYXN5bmMgZnVuY3Rpb24gbWFrZUFkYXB0ZXIoXG4gIG9wdGlvbnM6IElSdW5PcHRpb25zUnVudGltZSxcbiAgc25pcHBldE9wdGlvbnM6IFBpY2s8Rm9ybWF0T3B0aW9ucywgJ3NuaXBwZXRJbnRlcmZhY2UnIHwgJ3NuaXBwZXRTeW50YXgnPixcbiAgdGVzdFJ1blN0YXJ0ZWRJZDogc3RyaW5nLFxuICBlbnZpcm9ubWVudDogSVJ1bkVudmlyb25tZW50LFxuICBsb2dnZXI6IElMb2dnZXIsXG4gIGV2ZW50QnJvYWRjYXN0ZXI6IEV2ZW50RW1pdHRlcixcbiAgc3VwcG9ydENvZGVMaWJyYXJ5OiBTdXBwb3J0Q29kZUxpYnJhcnksXG4gIG5ld0lkOiAoKSA9PiBzdHJpbmdcbikge1xuICBpZiAob3B0aW9ucy5wYXJhbGxlbCA+IDApIHtcbiAgICByZXR1cm4gbmV3IFdvcmtlclRocmVhZHNBZGFwdGVyKFxuICAgICAgdGVzdFJ1blN0YXJ0ZWRJZCxcbiAgICAgIGVudmlyb25tZW50LFxuICAgICAgbG9nZ2VyLFxuICAgICAgZXZlbnRCcm9hZGNhc3RlcixcbiAgICAgIG9wdGlvbnMsXG4gICAgICBzbmlwcGV0T3B0aW9ucyxcbiAgICAgIHN1cHBvcnRDb2RlTGlicmFyeVxuICAgIClcbiAgfVxuICBjb25zdCBzbmlwcGV0QnVpbGRlciA9IGF3YWl0IEZvcm1hdHRlckJ1aWxkZXIuZ2V0U3RlcERlZmluaXRpb25TbmlwcGV0QnVpbGRlcih7XG4gICAgY3dkOiBlbnZpcm9ubWVudC5jd2QsXG4gICAgc25pcHBldEludGVyZmFjZTogc25pcHBldE9wdGlvbnMuc25pcHBldEludGVyZmFjZSxcbiAgICBzbmlwcGV0U3ludGF4OiBzbmlwcGV0T3B0aW9ucy5zbmlwcGV0U3ludGF4LFxuICAgIHN1cHBvcnRDb2RlTGlicmFyeSxcbiAgfSlcbiAgcmV0dXJuIG5ldyBJblByb2Nlc3NBZGFwdGVyKFxuICAgIHRlc3RSdW5TdGFydGVkSWQsXG4gICAgZXZlbnRCcm9hZGNhc3RlcixcbiAgICBuZXdJZCxcbiAgICBvcHRpb25zLFxuICAgIHN1cHBvcnRDb2RlTGlicmFyeSxcbiAgICBzbmlwcGV0QnVpbGRlclxuICApXG59XG4iXX0=
@@ -1,5 +1,5 @@
1
- import { IdGenerator, PickleStep, Suggestion } from '@cucumber/messages';
2
- import StepDefinitionSnippetBuilder from '../formatter/step_definition_snippet_builder';
1
+ import { type IdGenerator, type PickleStep, type Suggestion } from '@cucumber/messages';
2
+ import type StepDefinitionSnippetBuilder from '../formatter/step_definition_snippet_builder';
3
3
  export declare function makeSuggestion({ newId, snippetBuilder, pickleStep, }: {
4
4
  newId: IdGenerator.NewId;
5
5
  snippetBuilder: StepDefinitionSnippetBuilder;
@@ -28,4 +28,4 @@ function makeSuggestion({ newId, snippetBuilder, pickleStep, }) {
28
28
  snippets,
29
29
  };
30
30
  }
31
- //# sourceMappingURL=make_suggestion.js.map
31
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFrZV9zdWdnZXN0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3J1bnRpbWUvbWFrZV9zdWdnZXN0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBc0JBLHdDQXFCQztBQTNDRCxpREFLMkI7QUFDM0Isa0RBQWtEO0FBR2xELFNBQVMsOEJBQThCLENBQUMsSUFBcUI7SUFDM0QsUUFBUSxJQUFJLEVBQUUsQ0FBQztRQUNiLEtBQUsseUJBQWMsQ0FBQyxPQUFPO1lBQ3pCLE9BQU8scUJBQVcsQ0FBQyxZQUFZLENBQUE7UUFDakMsS0FBSyx5QkFBYyxDQUFDLE1BQU07WUFDeEIsT0FBTyxxQkFBVyxDQUFDLEtBQUssQ0FBQTtRQUMxQixLQUFLLHlCQUFjLENBQUMsT0FBTztZQUN6QixPQUFPLHFCQUFXLENBQUMsT0FBTyxDQUFBO1FBQzVCO1lBQ0UsT0FBTyxxQkFBVyxDQUFDLFlBQVksQ0FBQTtJQUNuQyxDQUFDO0FBQ0gsQ0FBQztBQUVELFNBQWdCLGNBQWMsQ0FBQyxFQUM3QixLQUFLLEVBQ0wsY0FBYyxFQUNkLFVBQVUsR0FLWDtJQUNDLE1BQU0sV0FBVyxHQUFHLDhCQUE4QixDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQTtJQUNuRSxNQUFNLEtBQUssR0FBRyxjQUFjLENBQUMsYUFBYSxDQUFDLEVBQUUsV0FBVyxFQUFFLFVBQVUsRUFBRSxDQUFDLENBQUE7SUFDdkUsTUFBTSxRQUFRLEdBQUcsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsQ0FBQztRQUNwQyxJQUFJO1FBQ0osUUFBUSxFQUFFLFlBQVk7S0FDdkIsQ0FBQyxDQUFDLENBQUE7SUFFSCxPQUFPO1FBQ0wsRUFBRSxFQUFFLEtBQUssRUFBRTtRQUNYLFlBQVksRUFBRSxVQUFVLENBQUMsRUFBRTtRQUMzQixRQUFRO0tBQ1QsQ0FBQTtBQUNILENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICB0eXBlIElkR2VuZXJhdG9yLFxuICB0eXBlIFBpY2tsZVN0ZXAsXG4gIFBpY2tsZVN0ZXBUeXBlLFxuICB0eXBlIFN1Z2dlc3Rpb24sXG59IGZyb20gJ0BjdWN1bWJlci9tZXNzYWdlcydcbmltcG9ydCB7IEtleXdvcmRUeXBlIH0gZnJvbSAnLi4vZm9ybWF0dGVyL2hlbHBlcnMnXG5pbXBvcnQgdHlwZSBTdGVwRGVmaW5pdGlvblNuaXBwZXRCdWlsZGVyIGZyb20gJy4uL2Zvcm1hdHRlci9zdGVwX2RlZmluaXRpb25fc25pcHBldF9idWlsZGVyJ1xuXG5mdW5jdGlvbiBtYXBQaWNrbGVTdGVwVHlwZVRvS2V5d29yZFR5cGUodHlwZT86IFBpY2tsZVN0ZXBUeXBlKTogS2V5d29yZFR5cGUge1xuICBzd2l0Y2ggKHR5cGUpIHtcbiAgICBjYXNlIFBpY2tsZVN0ZXBUeXBlLkNPTlRFWFQ6XG4gICAgICByZXR1cm4gS2V5d29yZFR5cGUuUHJlY29uZGl0aW9uXG4gICAgY2FzZSBQaWNrbGVTdGVwVHlwZS5BQ1RJT046XG4gICAgICByZXR1cm4gS2V5d29yZFR5cGUuRXZlbnRcbiAgICBjYXNlIFBpY2tsZVN0ZXBUeXBlLk9VVENPTUU6XG4gICAgICByZXR1cm4gS2V5d29yZFR5cGUuT3V0Y29tZVxuICAgIGRlZmF1bHQ6XG4gICAgICByZXR1cm4gS2V5d29yZFR5cGUuUHJlY29uZGl0aW9uXG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIG1ha2VTdWdnZXN0aW9uKHtcbiAgbmV3SWQsXG4gIHNuaXBwZXRCdWlsZGVyLFxuICBwaWNrbGVTdGVwLFxufToge1xuICBuZXdJZDogSWRHZW5lcmF0b3IuTmV3SWRcbiAgc25pcHBldEJ1aWxkZXI6IFN0ZXBEZWZpbml0aW9uU25pcHBldEJ1aWxkZXJcbiAgcGlja2xlU3RlcDogUGlja2xlU3RlcFxufSk6IFN1Z2dlc3Rpb24ge1xuICBjb25zdCBrZXl3b3JkVHlwZSA9IG1hcFBpY2tsZVN0ZXBUeXBlVG9LZXl3b3JkVHlwZShwaWNrbGVTdGVwLnR5cGUpXG4gIGNvbnN0IGNvZGVzID0gc25pcHBldEJ1aWxkZXIuYnVpbGRNdWx0aXBsZSh7IGtleXdvcmRUeXBlLCBwaWNrbGVTdGVwIH0pXG4gIGNvbnN0IHNuaXBwZXRzID0gY29kZXMubWFwKChjb2RlKSA9PiAoe1xuICAgIGNvZGUsXG4gICAgbGFuZ3VhZ2U6ICdqYXZhc2NyaXB0JyxcbiAgfSkpXG5cbiAgcmV0dXJuIHtcbiAgICBpZDogbmV3SWQoKSxcbiAgICBwaWNrbGVTdGVwSWQ6IHBpY2tsZVN0ZXAuaWQsXG4gICAgc25pcHBldHMsXG4gIH1cbn1cbiJdfQ==
@@ -1,28 +1,18 @@
1
- import { ChildProcess } from 'node:child_process';
2
- import { EventEmitter } from 'node:events';
3
- import { SupportCodeLibrary } from '../../support_code_library_builder/types';
4
- import { AssembledTestCase } from '../../assemble';
5
- import { ILogger, IRunEnvironment } from '../../environment';
6
- import { RuntimeAdapter } from '../types';
7
- import { IRunOptionsRuntime } from '../../api';
8
- import { FormatOptions } from '../../formatter';
9
- import { WorkerToCoordinatorEvent } from './types';
10
- declare const enum WorkerState {
11
- 'idle' = 0,
12
- 'closed' = 1,
13
- 'running' = 2,
14
- 'new' = 3
15
- }
16
- interface ManagedWorker {
17
- state: WorkerState;
18
- process: ChildProcess;
19
- id: string;
20
- }
21
- interface WorkPlacement {
22
- index: number;
23
- item: AssembledTestCase;
24
- }
25
- export declare class ChildProcessAdapter implements RuntimeAdapter {
1
+ import type { EventEmitter } from 'node:events';
2
+ import type { IRunOptionsRuntime } from '../../api';
3
+ import type { AssembledTestCase } from '../../assemble';
4
+ import type { ILogger, IRunEnvironment } from '../../environment';
5
+ import type { FormatOptions } from '../../formatter';
6
+ import type { SupportCodeLibrary } from '../../support_code_library_builder/types';
7
+ import type { RuntimeAdapter } from '../types';
8
+ /**
9
+ * An adapter that distributes work across multiple worker threads
10
+ * @remarks
11
+ * Each phase of the test run is self-contained and self-orchestrating - every
12
+ * FINISHED message from a worker may cause the next piece of work to be
13
+ * triggered or the phase to be settled.
14
+ */
15
+ export declare class WorkerThreadsAdapter implements RuntimeAdapter {
26
16
  private readonly testRunStartedId;
27
17
  private readonly environment;
28
18
  private readonly logger;
@@ -30,20 +20,21 @@ export declare class ChildProcessAdapter implements RuntimeAdapter {
30
20
  private readonly options;
31
21
  private readonly snippetOptions;
32
22
  private readonly supportCodeLibrary;
33
- private idleInterventions;
34
- private failing;
35
- private onFinish;
36
- private todo;
37
- private readonly inProgress;
23
+ private readiness?;
24
+ private phase?;
25
+ private tearingDown;
38
26
  private readonly workers;
27
+ private readonly running;
39
28
  constructor(testRunStartedId: string, environment: IRunEnvironment, logger: ILogger, eventBroadcaster: EventEmitter, options: IRunOptionsRuntime, snippetOptions: Pick<FormatOptions, 'snippetInterface' | 'snippetSyntax'>, supportCodeLibrary: SupportCodeLibrary);
40
- parseWorkerMessage(worker: ManagedWorker, message: WorkerToCoordinatorEvent): void;
41
- awakenWorkers(triggeringWorker: ManagedWorker): void;
42
- startWorker(id: string, total: number): void;
43
- onWorkerProcessClose(exitCode: number): void;
44
- run(assembledTestCases: ReadonlyArray<AssembledTestCase>): Promise<boolean>;
45
- nextWorkPlacement(): WorkPlacement;
46
- placementAt(index: number): WorkPlacement;
47
- giveWork(worker: ManagedWorker, force?: boolean): void;
29
+ setup(): Promise<void>;
30
+ runBeforeAllHooks(): Promise<boolean>;
31
+ runTestCases(assembledTestCases: ReadonlyArray<AssembledTestCase>): Promise<boolean>;
32
+ runAfterAllHooks(): Promise<boolean>;
33
+ teardown(): Promise<void>;
34
+ private startPhase;
35
+ private issueCommandToWorker;
36
+ private handleEventFromWorker;
37
+ private handleErrorFromWorker;
38
+ private handleExitFromWorker;
39
+ private fail;
48
40
  }
49
- export {};