@cucumber/cucumber 12.8.3 → 13.0.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 (396) 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 +13 -28
  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 +8 -7
  21. package/lib/api/run_cucumber.d.ts +3 -3
  22. package/lib/api/run_cucumber.js +17 -1
  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/assemble/assemble_test_cases.d.ts +4 -4
  30. package/lib/assemble/assemble_test_cases.js +2 -6
  31. package/lib/assemble/index.js +1 -1
  32. package/lib/assemble/types.d.ts +1 -1
  33. package/lib/assemble/types.js +1 -1
  34. package/lib/cli/i18n.js +5 -3
  35. package/lib/cli/index.d.ts +1 -1
  36. package/lib/cli/index.js +2 -2
  37. package/lib/cli/install_validator.js +4 -3
  38. package/lib/cli/run.js +7 -6
  39. package/lib/cli/validate_node_engine_version.js +2 -4
  40. package/lib/configuration/argv_parser.d.ts +1 -1
  41. package/lib/configuration/argv_parser.js +7 -7
  42. package/lib/configuration/check_schema.d.ts +1 -1
  43. package/lib/configuration/check_schema.js +19 -6
  44. package/lib/configuration/default_configuration.d.ts +1 -1
  45. package/lib/configuration/default_configuration.js +2 -1
  46. package/lib/configuration/from_file.d.ts +2 -2
  47. package/lib/configuration/from_file.js +6 -6
  48. package/lib/configuration/helpers.js +1 -1
  49. package/lib/configuration/index.js +1 -1
  50. package/lib/configuration/locate_file.js +3 -3
  51. package/lib/configuration/merge_configurations.d.ts +1 -1
  52. package/lib/configuration/merge_configurations.js +2 -10
  53. package/lib/configuration/parse_configuration.d.ts +2 -2
  54. package/lib/configuration/parse_configuration.js +3 -11
  55. package/lib/configuration/split_format_descriptor.d.ts +1 -2
  56. package/lib/configuration/split_format_descriptor.js +11 -71
  57. package/lib/configuration/types.d.ts +26 -3
  58. package/lib/configuration/types.js +1 -1
  59. package/lib/configuration/validate_configuration.d.ts +2 -2
  60. package/lib/configuration/validate_configuration.js +5 -3
  61. package/lib/environment/console_logger.d.ts +2 -2
  62. package/lib/environment/console_logger.js +1 -1
  63. package/lib/environment/index.js +1 -1
  64. package/lib/environment/make_environment.d.ts +1 -1
  65. package/lib/environment/make_environment.js +1 -1
  66. package/lib/environment/types.d.ts +1 -1
  67. package/lib/environment/types.js +1 -1
  68. package/lib/filter/filter_plugin.d.ts +2 -2
  69. package/lib/filter/filter_plugin.js +1 -1
  70. package/lib/filter/index.d.ts +1 -1
  71. package/lib/filter/index.js +2 -2
  72. package/lib/filter/order_pickles.d.ts +2 -2
  73. package/lib/filter/order_pickles.js +1 -1
  74. package/lib/filter/types.d.ts +1 -1
  75. package/lib/filter/types.js +1 -1
  76. package/lib/filter_stack_trace.d.ts +1 -1
  77. package/lib/filter_stack_trace.js +1 -1
  78. package/lib/formatter/builder.d.ts +7 -6
  79. package/lib/formatter/builder.js +6 -7
  80. package/lib/formatter/builtin/html.js +2 -2
  81. package/lib/formatter/builtin/index.d.ts +4 -4
  82. package/lib/formatter/builtin/index.js +14 -13
  83. package/lib/formatter/builtin/message.js +2 -2
  84. package/lib/formatter/builtin/pretty.d.ts +6 -0
  85. package/lib/formatter/builtin/pretty.js +19 -0
  86. package/lib/formatter/builtin/progress-bar.d.ts +6 -0
  87. package/lib/formatter/builtin/progress-bar.js +22 -0
  88. package/lib/formatter/builtin/progress.d.ts +6 -0
  89. package/lib/formatter/builtin/progress.js +18 -0
  90. package/lib/formatter/builtin/resolve_terminal_options.d.ts +3 -0
  91. package/lib/formatter/builtin/resolve_terminal_options.js +15 -0
  92. package/lib/formatter/builtin/summary.d.ts +6 -0
  93. package/lib/formatter/builtin/summary.js +15 -0
  94. package/lib/formatter/create_stream.d.ts +2 -2
  95. package/lib/formatter/create_stream.js +3 -5
  96. package/lib/formatter/find_class_or_plugin.js +1 -1
  97. package/lib/formatter/get_color_fns.d.ts +3 -3
  98. package/lib/formatter/get_color_fns.js +23 -52
  99. package/lib/formatter/helpers/duration_helpers.d.ts +1 -1
  100. package/lib/formatter/helpers/duration_helpers.js +1 -1
  101. package/lib/formatter/helpers/event_data_collector.d.ts +2 -2
  102. package/lib/formatter/helpers/event_data_collector.js +4 -6
  103. package/lib/formatter/helpers/formatters.d.ts +1 -1
  104. package/lib/formatter/helpers/formatters.js +1 -3
  105. package/lib/formatter/helpers/gherkin_document_parser.d.ts +1 -1
  106. package/lib/formatter/helpers/gherkin_document_parser.js +20 -18
  107. package/lib/formatter/helpers/index.d.ts +3 -3
  108. package/lib/formatter/helpers/index.js +8 -8
  109. package/lib/formatter/helpers/issue_helpers.d.ts +5 -5
  110. package/lib/formatter/helpers/issue_helpers.js +2 -2
  111. package/lib/formatter/helpers/keyword_type.js +2 -2
  112. package/lib/formatter/helpers/location_helpers.d.ts +1 -1
  113. package/lib/formatter/helpers/location_helpers.js +1 -1
  114. package/lib/formatter/helpers/pickle_parser.d.ts +2 -2
  115. package/lib/formatter/helpers/pickle_parser.js +8 -9
  116. package/lib/formatter/helpers/step_argument_formatter.d.ts +1 -1
  117. package/lib/formatter/helpers/step_argument_formatter.js +1 -1
  118. package/lib/formatter/helpers/summary_helpers.d.ts +2 -2
  119. package/lib/formatter/helpers/summary_helpers.js +8 -4
  120. package/lib/formatter/helpers/test_case_attempt_formatter.d.ts +4 -4
  121. package/lib/formatter/helpers/test_case_attempt_formatter.js +5 -5
  122. package/lib/formatter/helpers/test_case_attempt_parser.d.ts +4 -4
  123. package/lib/formatter/helpers/test_case_attempt_parser.js +4 -9
  124. package/lib/formatter/helpers/usage_helpers/index.d.ts +3 -3
  125. package/lib/formatter/helpers/usage_helpers/index.js +5 -6
  126. package/lib/formatter/import_code.js +2 -2
  127. package/lib/formatter/index.d.ts +25 -13
  128. package/lib/formatter/index.js +2 -2
  129. package/lib/formatter/json_formatter.d.ts +2 -2
  130. package/lib/formatter/json_formatter.js +9 -14
  131. package/lib/formatter/progress_formatter.d.ts +4 -1
  132. package/lib/formatter/progress_formatter.js +4 -1
  133. package/lib/formatter/rerun_formatter.d.ts +1 -1
  134. package/lib/formatter/rerun_formatter.js +2 -2
  135. package/lib/formatter/resolve_implementation.d.ts +1 -1
  136. package/lib/formatter/resolve_implementation.js +2 -2
  137. package/lib/formatter/snippets_formatter.d.ts +1 -1
  138. package/lib/formatter/snippets_formatter.js +2 -2
  139. package/lib/formatter/step_definition_snippet_builder/index.d.ts +4 -4
  140. package/lib/formatter/step_definition_snippet_builder/index.js +3 -3
  141. package/lib/formatter/step_definition_snippet_builder/javascript_snippet_syntax.d.ts +1 -1
  142. package/lib/formatter/step_definition_snippet_builder/javascript_snippet_syntax.js +3 -5
  143. package/lib/formatter/step_definition_snippet_builder/snippet_syntax.d.ts +1 -1
  144. package/lib/formatter/step_definition_snippet_builder/snippet_syntax.js +1 -1
  145. package/lib/formatter/summary_formatter.d.ts +6 -3
  146. package/lib/formatter/summary_formatter.js +6 -3
  147. package/lib/formatter/usage_formatter.d.ts +1 -1
  148. package/lib/formatter/usage_formatter.js +4 -4
  149. package/lib/formatter/usage_json_formatter.d.ts +1 -1
  150. package/lib/formatter/usage_json_formatter.js +3 -3
  151. package/lib/index.d.ts +6 -11
  152. package/lib/index.js +13 -20
  153. package/lib/models/data_table.d.ts +1 -1
  154. package/lib/models/data_table.js +9 -5
  155. package/lib/models/definition.d.ts +4 -4
  156. package/lib/models/definition.js +1 -1
  157. package/lib/models/gherkin_step_keyword.js +1 -1
  158. package/lib/models/step_definition.d.ts +3 -3
  159. package/lib/models/step_definition.js +1 -1
  160. package/lib/models/test_case_hook_definition.d.ts +2 -2
  161. package/lib/models/test_case_hook_definition.js +1 -1
  162. package/lib/models/test_run_hook_definition.d.ts +1 -1
  163. package/lib/models/test_run_hook_definition.js +1 -1
  164. package/lib/models/test_step_hook_definition.d.ts +2 -2
  165. package/lib/models/test_step_hook_definition.js +1 -1
  166. package/lib/paths/index.js +1 -1
  167. package/lib/paths/paths.d.ts +3 -3
  168. package/lib/paths/paths.js +42 -18
  169. package/lib/paths/types.js +1 -1
  170. package/lib/pickle_filter.d.ts +1 -1
  171. package/lib/pickle_filter.js +3 -3
  172. package/lib/plugin/index.d.ts +1 -1
  173. package/lib/plugin/index.js +2 -2
  174. package/lib/plugin/plugin_manager.d.ts +6 -3
  175. package/lib/plugin/plugin_manager.js +33 -22
  176. package/lib/plugin/types.d.ts +76 -10
  177. package/lib/plugin/types.js +1 -1
  178. package/lib/publish/index.js +1 -1
  179. package/lib/publish/publish_plugin.d.ts +2 -2
  180. package/lib/publish/publish_plugin.js +29 -24
  181. package/lib/publish/types.js +1 -1
  182. package/lib/runtime/attachment_manager/index.d.ts +1 -1
  183. package/lib/runtime/attachment_manager/index.js +3 -6
  184. package/lib/runtime/coordinator.d.ts +13 -6
  185. package/lib/runtime/coordinator.js +26 -18
  186. package/lib/runtime/format_error.d.ts +1 -1
  187. package/lib/runtime/format_error.js +43 -15
  188. package/lib/runtime/helpers.d.ts +2 -2
  189. package/lib/runtime/helpers.js +2 -2
  190. package/lib/runtime/index.js +1 -1
  191. package/lib/runtime/make_runtime.d.ts +10 -9
  192. package/lib/runtime/make_runtime.js +4 -5
  193. package/lib/runtime/make_suggestion.d.ts +2 -2
  194. package/lib/runtime/make_suggestion.js +1 -1
  195. package/lib/runtime/parallel/adapter.d.ts +27 -39
  196. package/lib/runtime/parallel/adapter.js +124 -122
  197. package/lib/runtime/parallel/test_cases_phase.d.ts +19 -0
  198. package/lib/runtime/parallel/test_cases_phase.js +63 -0
  199. package/lib/runtime/parallel/test_run_hooks_phase.d.ts +11 -0
  200. package/lib/runtime/parallel/test_run_hooks_phase.js +33 -0
  201. package/lib/runtime/parallel/types.d.ts +38 -22
  202. package/lib/runtime/parallel/types.js +1 -1
  203. package/lib/runtime/parallel/worker.mjs +65 -0
  204. package/lib/runtime/scope/index.js +1 -1
  205. package/lib/runtime/scope/make_proxy.js +1 -1
  206. package/lib/runtime/scope/test_case_scope.d.ts +1 -1
  207. package/lib/runtime/scope/test_case_scope.js +1 -1
  208. package/lib/runtime/scope/test_run_scope.d.ts +1 -1
  209. package/lib/runtime/scope/test_run_scope.js +1 -1
  210. package/lib/runtime/serial/adapter.d.ts +15 -9
  211. package/lib/runtime/serial/adapter.js +21 -9
  212. package/lib/runtime/step_runner.d.ts +2 -2
  213. package/lib/runtime/step_runner.js +2 -2
  214. package/lib/runtime/stopwatch.d.ts +1 -1
  215. package/lib/runtime/stopwatch.js +1 -1
  216. package/lib/runtime/test_case_runner.d.ts +10 -9
  217. package/lib/runtime/test_case_runner.js +20 -12
  218. package/lib/runtime/types.d.ts +7 -3
  219. package/lib/runtime/types.js +1 -1
  220. package/lib/runtime/worker.d.ts +14 -13
  221. package/lib/runtime/worker.js +26 -44
  222. package/lib/sharding/index.js +1 -1
  223. package/lib/sharding/sharding_plugin.d.ts +2 -2
  224. package/lib/sharding/sharding_plugin.js +1 -1
  225. package/lib/step_arguments.d.ts +1 -1
  226. package/lib/step_arguments.js +1 -1
  227. package/lib/support_code_library_builder/build_parameter_type.d.ts +1 -1
  228. package/lib/support_code_library_builder/build_parameter_type.js +5 -3
  229. package/lib/support_code_library_builder/context.js +1 -1
  230. package/lib/support_code_library_builder/get_definition_line_and_uri.d.ts +1 -1
  231. package/lib/support_code_library_builder/get_definition_line_and_uri.js +1 -1
  232. package/lib/support_code_library_builder/index.d.ts +7 -7
  233. package/lib/support_code_library_builder/index.js +9 -9
  234. package/lib/support_code_library_builder/parallel_can_assign_helpers.d.ts +1 -1
  235. package/lib/support_code_library_builder/parallel_can_assign_helpers.js +3 -4
  236. package/lib/support_code_library_builder/sourced_parameter_type_registry.d.ts +2 -2
  237. package/lib/support_code_library_builder/sourced_parameter_type_registry.js +1 -1
  238. package/lib/support_code_library_builder/types.d.ts +8 -8
  239. package/lib/support_code_library_builder/types.js +1 -1
  240. package/lib/support_code_library_builder/validate_arguments.d.ts +1 -1
  241. package/lib/support_code_library_builder/validate_arguments.js +1 -1
  242. package/lib/support_code_library_builder/world.d.ts +2 -2
  243. package/lib/support_code_library_builder/world.js +2 -2
  244. package/lib/time.js +2 -2
  245. package/lib/try_require.js +3 -2
  246. package/lib/types/index.js +1 -1
  247. package/lib/uncaught_exception_manager.js +1 -1
  248. package/lib/user_code_runner.d.ts +1 -1
  249. package/lib/user_code_runner.js +3 -3
  250. package/lib/value_checker.js +1 -1
  251. package/lib/version.d.ts +1 -1
  252. package/lib/version.js +2 -2
  253. package/lib/wrapper.mjs +1 -5
  254. package/package.json +40 -63
  255. package/lib/api/convert_configuration.js.map +0 -1
  256. package/lib/api/emit_support_code_messages.js.map +0 -1
  257. package/lib/api/formatters.js.map +0 -1
  258. package/lib/api/gherkin.js.map +0 -1
  259. package/lib/api/index.js.map +0 -1
  260. package/lib/api/load_configuration.js.map +0 -1
  261. package/lib/api/load_sources.js.map +0 -1
  262. package/lib/api/load_support.js.map +0 -1
  263. package/lib/api/plugins.js.map +0 -1
  264. package/lib/api/run_cucumber.js.map +0 -1
  265. package/lib/api/support.js.map +0 -1
  266. package/lib/api/test_helpers.js.map +0 -1
  267. package/lib/api/types.js.map +0 -1
  268. package/lib/assemble/assemble_test_cases.js.map +0 -1
  269. package/lib/assemble/index.js.map +0 -1
  270. package/lib/assemble/types.js.map +0 -1
  271. package/lib/cli/i18n.js.map +0 -1
  272. package/lib/cli/index.js.map +0 -1
  273. package/lib/cli/install_validator.js.map +0 -1
  274. package/lib/cli/run.js.map +0 -1
  275. package/lib/cli/validate_node_engine_version.js.map +0 -1
  276. package/lib/configuration/argv_parser.js.map +0 -1
  277. package/lib/configuration/check_schema.js.map +0 -1
  278. package/lib/configuration/default_configuration.js.map +0 -1
  279. package/lib/configuration/from_file.js.map +0 -1
  280. package/lib/configuration/helpers.js.map +0 -1
  281. package/lib/configuration/index.js.map +0 -1
  282. package/lib/configuration/locate_file.js.map +0 -1
  283. package/lib/configuration/merge_configurations.js.map +0 -1
  284. package/lib/configuration/parse_configuration.js.map +0 -1
  285. package/lib/configuration/split_format_descriptor.js.map +0 -1
  286. package/lib/configuration/types.js.map +0 -1
  287. package/lib/configuration/validate_configuration.js.map +0 -1
  288. package/lib/environment/console_logger.js.map +0 -1
  289. package/lib/environment/index.js.map +0 -1
  290. package/lib/environment/make_environment.js.map +0 -1
  291. package/lib/environment/types.js.map +0 -1
  292. package/lib/filter/filter_plugin.js.map +0 -1
  293. package/lib/filter/index.js.map +0 -1
  294. package/lib/filter/order_pickles.js.map +0 -1
  295. package/lib/filter/types.js.map +0 -1
  296. package/lib/filter_stack_trace.js.map +0 -1
  297. package/lib/formatter/builder.js.map +0 -1
  298. package/lib/formatter/builtin/html.js.map +0 -1
  299. package/lib/formatter/builtin/index.js.map +0 -1
  300. package/lib/formatter/builtin/message.js.map +0 -1
  301. package/lib/formatter/create_stream.js.map +0 -1
  302. package/lib/formatter/find_class_or_plugin.js.map +0 -1
  303. package/lib/formatter/get_color_fns.js.map +0 -1
  304. package/lib/formatter/helpers/duration_helpers.js.map +0 -1
  305. package/lib/formatter/helpers/event_data_collector.js.map +0 -1
  306. package/lib/formatter/helpers/formatters.js.map +0 -1
  307. package/lib/formatter/helpers/gherkin_document_parser.js.map +0 -1
  308. package/lib/formatter/helpers/index.js.map +0 -1
  309. package/lib/formatter/helpers/issue_helpers.js.map +0 -1
  310. package/lib/formatter/helpers/keyword_type.js.map +0 -1
  311. package/lib/formatter/helpers/location_helpers.js.map +0 -1
  312. package/lib/formatter/helpers/pickle_parser.js.map +0 -1
  313. package/lib/formatter/helpers/step_argument_formatter.js.map +0 -1
  314. package/lib/formatter/helpers/summary_helpers.js.map +0 -1
  315. package/lib/formatter/helpers/test_case_attempt_formatter.js.map +0 -1
  316. package/lib/formatter/helpers/test_case_attempt_parser.js.map +0 -1
  317. package/lib/formatter/helpers/usage_helpers/index.js.map +0 -1
  318. package/lib/formatter/import_code.js.map +0 -1
  319. package/lib/formatter/index.js.map +0 -1
  320. package/lib/formatter/json_formatter.js.map +0 -1
  321. package/lib/formatter/progress_bar_formatter.d.ts +0 -18
  322. package/lib/formatter/progress_bar_formatter.js +0 -103
  323. package/lib/formatter/progress_bar_formatter.js.map +0 -1
  324. package/lib/formatter/progress_formatter.js.map +0 -1
  325. package/lib/formatter/rerun_formatter.js.map +0 -1
  326. package/lib/formatter/resolve_implementation.js.map +0 -1
  327. package/lib/formatter/snippets_formatter.js.map +0 -1
  328. package/lib/formatter/step_definition_snippet_builder/index.js.map +0 -1
  329. package/lib/formatter/step_definition_snippet_builder/javascript_snippet_syntax.js.map +0 -1
  330. package/lib/formatter/step_definition_snippet_builder/snippet_syntax.js.map +0 -1
  331. package/lib/formatter/summary_formatter.js.map +0 -1
  332. package/lib/formatter/usage_formatter.js.map +0 -1
  333. package/lib/formatter/usage_json_formatter.js.map +0 -1
  334. package/lib/index.js.map +0 -1
  335. package/lib/models/data_table.js.map +0 -1
  336. package/lib/models/definition.js.map +0 -1
  337. package/lib/models/gherkin_step_keyword.js.map +0 -1
  338. package/lib/models/step_definition.js.map +0 -1
  339. package/lib/models/test_case_hook_definition.js.map +0 -1
  340. package/lib/models/test_run_hook_definition.js.map +0 -1
  341. package/lib/models/test_step_hook_definition.js.map +0 -1
  342. package/lib/paths/index.js.map +0 -1
  343. package/lib/paths/paths.js.map +0 -1
  344. package/lib/paths/types.js.map +0 -1
  345. package/lib/pickle_filter.js.map +0 -1
  346. package/lib/plugin/index.js.map +0 -1
  347. package/lib/plugin/plugin_manager.js.map +0 -1
  348. package/lib/plugin/types.js.map +0 -1
  349. package/lib/publish/index.js.map +0 -1
  350. package/lib/publish/publish_plugin.js.map +0 -1
  351. package/lib/publish/types.js.map +0 -1
  352. package/lib/runtime/attachment_manager/index.js.map +0 -1
  353. package/lib/runtime/coordinator.js.map +0 -1
  354. package/lib/runtime/format_error.js.map +0 -1
  355. package/lib/runtime/helpers.js.map +0 -1
  356. package/lib/runtime/index.js.map +0 -1
  357. package/lib/runtime/make_runtime.js.map +0 -1
  358. package/lib/runtime/make_suggestion.js.map +0 -1
  359. package/lib/runtime/parallel/adapter.js.map +0 -1
  360. package/lib/runtime/parallel/run_worker.js +0 -25
  361. package/lib/runtime/parallel/run_worker.js.map +0 -1
  362. package/lib/runtime/parallel/types.js.map +0 -1
  363. package/lib/runtime/parallel/worker.d.ts +0 -25
  364. package/lib/runtime/parallel/worker.js +0 -83
  365. package/lib/runtime/parallel/worker.js.map +0 -1
  366. package/lib/runtime/scope/index.js.map +0 -1
  367. package/lib/runtime/scope/make_proxy.js.map +0 -1
  368. package/lib/runtime/scope/test_case_scope.js.map +0 -1
  369. package/lib/runtime/scope/test_run_scope.js.map +0 -1
  370. package/lib/runtime/serial/adapter.js.map +0 -1
  371. package/lib/runtime/step_runner.js.map +0 -1
  372. package/lib/runtime/stopwatch.js.map +0 -1
  373. package/lib/runtime/test_case_runner.js.map +0 -1
  374. package/lib/runtime/types.js.map +0 -1
  375. package/lib/runtime/worker.js.map +0 -1
  376. package/lib/sharding/index.js.map +0 -1
  377. package/lib/sharding/sharding_plugin.js.map +0 -1
  378. package/lib/step_arguments.js.map +0 -1
  379. package/lib/support_code_library_builder/build_parameter_type.js.map +0 -1
  380. package/lib/support_code_library_builder/context.js.map +0 -1
  381. package/lib/support_code_library_builder/get_definition_line_and_uri.js.map +0 -1
  382. package/lib/support_code_library_builder/index.js.map +0 -1
  383. package/lib/support_code_library_builder/parallel_can_assign_helpers.js.map +0 -1
  384. package/lib/support_code_library_builder/sourced_parameter_type_registry.js.map +0 -1
  385. package/lib/support_code_library_builder/types.js.map +0 -1
  386. package/lib/support_code_library_builder/validate_arguments.js.map +0 -1
  387. package/lib/support_code_library_builder/world.js.map +0 -1
  388. package/lib/time.js.map +0 -1
  389. package/lib/try_require.js.map +0 -1
  390. package/lib/tsconfig.node.tsbuildinfo +0 -1
  391. package/lib/types/index.js.map +0 -1
  392. package/lib/uncaught_exception_manager.js.map +0 -1
  393. package/lib/user_code_runner.js.map +0 -1
  394. package/lib/value_checker.js.map +0 -1
  395. package/lib/version.js.map +0 -1
  396. /package/lib/runtime/parallel/{run_worker.d.ts → worker.d.mts} +0 -0
@@ -38,4 +38,4 @@ function makeProxy(getThing) {
38
38
  },
39
39
  });
40
40
  }
41
- //# sourceMappingURL=make_proxy.js.map
41
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFrZV9wcm94eS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9ydW50aW1lL3Njb3BlL21ha2VfcHJveHkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSw4QkF1Q0M7QUF2Q0QsU0FBZ0IsU0FBUyxDQUFJLFFBQW1CO0lBQzlDLE9BQU8sSUFBSSxLQUFLLENBQ2QsRUFBRSxFQUNGO1FBQ0UsY0FBYyxDQUFDLENBQUMsRUFBRSxRQUFRLEVBQUUsVUFBVTtZQUNwQyxPQUFPLE9BQU8sQ0FBQyxjQUFjLENBQUMsUUFBUSxFQUFFLEVBQUUsUUFBUSxFQUFFLFVBQVUsQ0FBQyxDQUFBO1FBQ2pFLENBQUM7UUFDRCxjQUFjLENBQUMsQ0FBQyxFQUFFLFFBQVE7WUFDeEIsT0FBTyxPQUFPLENBQUMsR0FBRyxDQUFDLFFBQVEsRUFBRSxFQUFFLFFBQVEsQ0FBQyxDQUFBO1FBQzFDLENBQUM7UUFDRCxHQUFHLENBQUMsQ0FBQyxFQUFFLFFBQVE7WUFDYixPQUFPLE9BQU8sQ0FBQyxHQUFHLENBQUMsUUFBUSxFQUFFLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxDQUFDLENBQUE7UUFDdEQsQ0FBQztRQUNELHdCQUF3QixDQUFDLENBQUMsRUFBRSxRQUFRO1lBQ2xDLE9BQU8sT0FBTyxDQUFDLHdCQUF3QixDQUFDLFFBQVEsRUFBRSxFQUFFLFFBQVEsQ0FBQyxDQUFBO1FBQy9ELENBQUM7UUFDRCxjQUFjLENBQUMsQ0FBQztZQUNkLE9BQU8sT0FBTyxDQUFDLGNBQWMsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFBO1FBQzNDLENBQUM7UUFDRCxHQUFHLENBQUMsQ0FBQyxFQUFFLEdBQUc7WUFDUixPQUFPLE9BQU8sQ0FBQyxHQUFHLENBQUMsUUFBUSxFQUFFLEVBQUUsR0FBRyxDQUFDLENBQUE7UUFDckMsQ0FBQztRQUNELFlBQVksQ0FBQyxDQUFDO1lBQ1osT0FBTyxPQUFPLENBQUMsWUFBWSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUE7UUFDekMsQ0FBQztRQUNELE9BQU8sQ0FBQyxDQUFDO1lBQ1AsT0FBTyxPQUFPLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUE7UUFDcEMsQ0FBQztRQUNELGlCQUFpQixDQUFDLENBQUM7WUFDakIsT0FBTyxPQUFPLENBQUMsaUJBQWlCLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQTtRQUM5QyxDQUFDO1FBQ0QsR0FBRyxDQUFDLENBQUMsRUFBRSxRQUFRLEVBQUUsS0FBSztZQUNwQixPQUFPLE9BQU8sQ0FBQyxHQUFHLENBQUMsUUFBUSxFQUFFLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsQ0FBQyxDQUFBO1FBQzdELENBQUM7UUFDRCxjQUFjLENBQUMsQ0FBQyxFQUFFLEtBQUs7WUFDckIsT0FBTyxPQUFPLENBQUMsY0FBYyxDQUFDLFFBQVEsRUFBRSxFQUFFLEtBQUssQ0FBQyxDQUFBO1FBQ2xELENBQUM7S0FDRixDQUNHLENBQUE7QUFDUixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGZ1bmN0aW9uIG1ha2VQcm94eTxUPihnZXRUaGluZzogKCkgPT4gYW55KTogVCB7XG4gIHJldHVybiBuZXcgUHJveHkoXG4gICAge30sXG4gICAge1xuICAgICAgZGVmaW5lUHJvcGVydHkoXywgcHJvcGVydHksIGF0dHJpYnV0ZXMpIHtcbiAgICAgICAgcmV0dXJuIFJlZmxlY3QuZGVmaW5lUHJvcGVydHkoZ2V0VGhpbmcoKSwgcHJvcGVydHksIGF0dHJpYnV0ZXMpXG4gICAgICB9LFxuICAgICAgZGVsZXRlUHJvcGVydHkoXywgcHJvcGVydHkpIHtcbiAgICAgICAgcmV0dXJuIFJlZmxlY3QuZ2V0KGdldFRoaW5nKCksIHByb3BlcnR5KVxuICAgICAgfSxcbiAgICAgIGdldChfLCBwcm9wZXJ0eSkge1xuICAgICAgICByZXR1cm4gUmVmbGVjdC5nZXQoZ2V0VGhpbmcoKSwgcHJvcGVydHksIGdldFRoaW5nKCkpXG4gICAgICB9LFxuICAgICAgZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKF8sIHByb3BlcnR5KSB7XG4gICAgICAgIHJldHVybiBSZWZsZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnZXRUaGluZygpLCBwcm9wZXJ0eSlcbiAgICAgIH0sXG4gICAgICBnZXRQcm90b3R5cGVPZihfKSB7XG4gICAgICAgIHJldHVybiBSZWZsZWN0LmdldFByb3RvdHlwZU9mKGdldFRoaW5nKCkpXG4gICAgICB9LFxuICAgICAgaGFzKF8sIGtleSkge1xuICAgICAgICByZXR1cm4gUmVmbGVjdC5oYXMoZ2V0VGhpbmcoKSwga2V5KVxuICAgICAgfSxcbiAgICAgIGlzRXh0ZW5zaWJsZShfKSB7XG4gICAgICAgIHJldHVybiBSZWZsZWN0LmlzRXh0ZW5zaWJsZShnZXRUaGluZygpKVxuICAgICAgfSxcbiAgICAgIG93bktleXMoXykge1xuICAgICAgICByZXR1cm4gUmVmbGVjdC5vd25LZXlzKGdldFRoaW5nKCkpXG4gICAgICB9LFxuICAgICAgcHJldmVudEV4dGVuc2lvbnMoXykge1xuICAgICAgICByZXR1cm4gUmVmbGVjdC5wcmV2ZW50RXh0ZW5zaW9ucyhnZXRUaGluZygpKVxuICAgICAgfSxcbiAgICAgIHNldChfLCBwcm9wZXJ0eSwgdmFsdWUpIHtcbiAgICAgICAgcmV0dXJuIFJlZmxlY3Quc2V0KGdldFRoaW5nKCksIHByb3BlcnR5LCB2YWx1ZSwgZ2V0VGhpbmcoKSlcbiAgICAgIH0sXG4gICAgICBzZXRQcm90b3R5cGVPZihfLCBwcm90bykge1xuICAgICAgICByZXR1cm4gUmVmbGVjdC5zZXRQcm90b3R5cGVPZihnZXRUaGluZygpLCBwcm90bylcbiAgICAgIH0sXG4gICAgfVxuICApIGFzIFRcbn1cbiJdfQ==
@@ -1,4 +1,4 @@
1
- import { IWorld } from '../../support_code_library_builder/world';
1
+ import type { IWorld } from '../../support_code_library_builder/world';
2
2
  interface TestCaseScopeStore<ParametersType = any> {
3
3
  world: IWorld<ParametersType>;
4
4
  }
@@ -26,4 +26,4 @@ function getWorld() {
26
26
  * otherwise).
27
27
  */
28
28
  exports.worldProxy = (0, make_proxy_1.makeProxy)(getWorld);
29
- //# sourceMappingURL=test_case_scope.js.map
29
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVzdF9jYXNlX3Njb3BlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3J1bnRpbWUvc2NvcGUvdGVzdF9jYXNlX3Njb3BlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQVVBLGdEQUtDO0FBZkQsdURBQW9EO0FBRXBELDZDQUF3QztBQU14QyxNQUFNLGFBQWEsR0FBRyxJQUFJLG9DQUFpQixFQUFzQixDQUFBO0FBRTFELEtBQUssVUFBVSxrQkFBa0IsQ0FDdEMsS0FBeUIsRUFDekIsUUFBNEI7SUFFNUIsT0FBTyxhQUFhLENBQUMsR0FBRyxDQUFDLEtBQUssRUFBRSxRQUFRLENBQUMsQ0FBQTtBQUMzQyxDQUFDO0FBRUQsU0FBUyxRQUFRO0lBQ2YsTUFBTSxLQUFLLEdBQUcsYUFBYSxDQUFDLFFBQVEsRUFBRSxDQUFBO0lBQ3RDLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUNYLE1BQU0sSUFBSSxLQUFLLENBQ2IsaUdBQWlHLENBQ2xHLENBQUE7SUFDSCxDQUFDO0lBQ0QsT0FBTyxLQUFLLENBQUMsS0FBK0IsQ0FBQTtBQUM5QyxDQUFDO0FBRUQ7Ozs7Ozs7OztHQVNHO0FBQ1UsUUFBQSxVQUFVLEdBQUcsSUFBQSxzQkFBUyxFQUFTLFFBQVEsQ0FBQyxDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQXN5bmNMb2NhbFN0b3JhZ2UgfSBmcm9tICdub2RlOmFzeW5jX2hvb2tzJ1xuaW1wb3J0IHR5cGUgeyBJV29ybGQgfSBmcm9tICcuLi8uLi9zdXBwb3J0X2NvZGVfbGlicmFyeV9idWlsZGVyL3dvcmxkJ1xuaW1wb3J0IHsgbWFrZVByb3h5IH0gZnJvbSAnLi9tYWtlX3Byb3h5J1xuXG5pbnRlcmZhY2UgVGVzdENhc2VTY29wZVN0b3JlPFBhcmFtZXRlcnNUeXBlID0gYW55PiB7XG4gIHdvcmxkOiBJV29ybGQ8UGFyYW1ldGVyc1R5cGU+XG59XG5cbmNvbnN0IHRlc3RDYXNlU2NvcGUgPSBuZXcgQXN5bmNMb2NhbFN0b3JhZ2U8VGVzdENhc2VTY29wZVN0b3JlPigpXG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBydW5JblRlc3RDYXNlU2NvcGU8UmVzcG9uc2VUeXBlPihcbiAgc3RvcmU6IFRlc3RDYXNlU2NvcGVTdG9yZSxcbiAgY2FsbGJhY2s6ICgpID0+IFJlc3BvbnNlVHlwZVxuKSB7XG4gIHJldHVybiB0ZXN0Q2FzZVNjb3BlLnJ1bihzdG9yZSwgY2FsbGJhY2spXG59XG5cbmZ1bmN0aW9uIGdldFdvcmxkPFBhcmFtZXRlcnNUeXBlID0gYW55PigpOiBJV29ybGQ8UGFyYW1ldGVyc1R5cGU+IHtcbiAgY29uc3Qgc3RvcmUgPSB0ZXN0Q2FzZVNjb3BlLmdldFN0b3JlKClcbiAgaWYgKCFzdG9yZSkge1xuICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICdBdHRlbXB0ZWQgdG8gYWNjZXNzIGB3b3JsZGAgZnJvbSBpbmNvcnJlY3Qgc2NvcGU7IG9ubHkgYXBwbGljYWJsZSB0byBzdGVwcyBhbmQgY2FzZS1sZXZlbCBob29rcydcbiAgICApXG4gIH1cbiAgcmV0dXJuIHN0b3JlLndvcmxkIGFzIElXb3JsZDxQYXJhbWV0ZXJzVHlwZT5cbn1cblxuLyoqXG4gKiBBIHByb3h5IHRvIHRoZSBXb3JsZCBpbnN0YW5jZSBmb3IgdGhlIGN1cnJlbnRseS1leGVjdXRpbmcgdGVzdCBjYXNlXG4gKlxuICogQGJldGFcbiAqIEByZW1hcmtzXG4gKiBVc2VmdWwgZm9yIGdldHRpbmcgYSBoYW5kbGUgb24gdGhlIFdvcmxkIHdoZW4gdXNpbmcgYXJyb3cgZnVuY3Rpb25zIGFuZCB0aHVzXG4gKiBiZWluZyB1bmFibGUgdG8gcmVseSBvbiB0aGUgdmFsdWUgb2YgYHRoaXNgLiBPbmx5IGNhbGxhYmxlIGZyb20gdGhlIGJvZHkgb2YgYVxuICogc3RlcCBvciBhIGBCZWZvcmVgLCBgQWZ0ZXJgLCBgQmVmb3JlU3RlcGAgb3IgYEFmdGVyU3RlcGAgaG9vayAod2lsbCB0aHJvd1xuICogb3RoZXJ3aXNlKS5cbiAqL1xuZXhwb3J0IGNvbnN0IHdvcmxkUHJveHkgPSBtYWtlUHJveHk8SVdvcmxkPihnZXRXb3JsZClcbiJdfQ==
@@ -1,4 +1,4 @@
1
- import { IContext } from '../../support_code_library_builder/context';
1
+ import type { IContext } from '../../support_code_library_builder/context';
2
2
  interface TestRunScopeStore<ParametersType = any> {
3
3
  context: IContext<ParametersType>;
4
4
  }
@@ -25,4 +25,4 @@ function getContext() {
25
25
  * `BeforeAll` or `AfterAll` hook (will throw otherwise).
26
26
  */
27
27
  exports.contextProxy = (0, make_proxy_1.makeProxy)(getContext);
28
- //# sourceMappingURL=test_run_scope.js.map
28
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVzdF9ydW5fc2NvcGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvcnVudGltZS9zY29wZS90ZXN0X3J1bl9zY29wZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFVQSw4Q0FLQztBQWZELHVEQUFvRDtBQUVwRCw2Q0FBd0M7QUFNeEMsTUFBTSxZQUFZLEdBQUcsSUFBSSxvQ0FBaUIsRUFBcUIsQ0FBQTtBQUV4RCxLQUFLLFVBQVUsaUJBQWlCLENBQ3JDLEtBQXdCLEVBQ3hCLFFBQTRCO0lBRTVCLE9BQU8sWUFBWSxDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUUsUUFBUSxDQUFDLENBQUE7QUFDMUMsQ0FBQztBQUVELFNBQVMsVUFBVTtJQUNqQixNQUFNLEtBQUssR0FBRyxZQUFZLENBQUMsUUFBUSxFQUFFLENBQUE7SUFDckMsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ1gsTUFBTSxJQUFJLEtBQUssQ0FDYix3RkFBd0YsQ0FDekYsQ0FBQTtJQUNILENBQUM7SUFDRCxPQUFPLEtBQUssQ0FBQyxPQUFtQyxDQUFBO0FBQ2xELENBQUM7QUFFRDs7Ozs7Ozs7R0FRRztBQUNVLFFBQUEsWUFBWSxHQUFHLElBQUEsc0JBQVMsRUFBVyxVQUFVLENBQUMsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFzeW5jTG9jYWxTdG9yYWdlIH0gZnJvbSAnbm9kZTphc3luY19ob29rcydcbmltcG9ydCB0eXBlIHsgSUNvbnRleHQgfSBmcm9tICcuLi8uLi9zdXBwb3J0X2NvZGVfbGlicmFyeV9idWlsZGVyL2NvbnRleHQnXG5pbXBvcnQgeyBtYWtlUHJveHkgfSBmcm9tICcuL21ha2VfcHJveHknXG5cbmludGVyZmFjZSBUZXN0UnVuU2NvcGVTdG9yZTxQYXJhbWV0ZXJzVHlwZSA9IGFueT4ge1xuICBjb250ZXh0OiBJQ29udGV4dDxQYXJhbWV0ZXJzVHlwZT5cbn1cblxuY29uc3QgdGVzdFJ1blNjb3BlID0gbmV3IEFzeW5jTG9jYWxTdG9yYWdlPFRlc3RSdW5TY29wZVN0b3JlPigpXG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBydW5JblRlc3RSdW5TY29wZTxSZXNwb25zZVR5cGU+KFxuICBzdG9yZTogVGVzdFJ1blNjb3BlU3RvcmUsXG4gIGNhbGxiYWNrOiAoKSA9PiBSZXNwb25zZVR5cGVcbikge1xuICByZXR1cm4gdGVzdFJ1blNjb3BlLnJ1bihzdG9yZSwgY2FsbGJhY2spXG59XG5cbmZ1bmN0aW9uIGdldENvbnRleHQ8UGFyYW1ldGVyc1R5cGUgPSBhbnk+KCk6IElDb250ZXh0PFBhcmFtZXRlcnNUeXBlPiB7XG4gIGNvbnN0IHN0b3JlID0gdGVzdFJ1blNjb3BlLmdldFN0b3JlKClcbiAgaWYgKCFzdG9yZSkge1xuICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICdBdHRlbXB0ZWQgdG8gYWNjZXNzIGBjb250ZXh0YCBmcm9tIGluY29ycmVjdCBzY29wZTsgb25seSBhcHBsaWNhYmxlIHRvIHJ1bi1sZXZlbCBob29rcydcbiAgICApXG4gIH1cbiAgcmV0dXJuIHN0b3JlLmNvbnRleHQgYXMgSUNvbnRleHQ8UGFyYW1ldGVyc1R5cGU+XG59XG5cbi8qKlxuICogQSBwcm94eSB0byB0aGUgY29udGV4dCBmb3IgdGhlIGN1cnJlbnRseS1leGVjdXRpbmcgdGVzdCBydW4uXG4gKlxuICogQGJldGFcbiAqIEByZW1hcmtzXG4gKiBVc2VmdWwgZm9yIGdldHRpbmcgYSBoYW5kbGUgb24gdGhlIGNvbnRleHQgd2hlbiB1c2luZyBhcnJvdyBmdW5jdGlvbnMgYW5kIHRodXNcbiAqIGJlaW5nIHVuYWJsZSB0byByZWx5IG9uIHRoZSB2YWx1ZSBvZiBgdGhpc2AuIE9ubHkgY2FsbGFibGUgZnJvbSB0aGUgYm9keSBvZiBhXG4gKiBgQmVmb3JlQWxsYCBvciBgQWZ0ZXJBbGxgIGhvb2sgKHdpbGwgdGhyb3cgb3RoZXJ3aXNlKS5cbiAqL1xuZXhwb3J0IGNvbnN0IGNvbnRleHRQcm94eSA9IG1ha2VQcm94eTxJQ29udGV4dD4oZ2V0Q29udGV4dClcbiJdfQ==
@@ -1,13 +1,19 @@
1
- import { EventEmitter } from 'node:events';
2
- import { IdGenerator } from '@cucumber/messages';
3
- import { RuntimeAdapter } from '../types';
4
- import { AssembledTestCase } from '../../assemble';
5
- import { RuntimeOptions } from '../index';
6
- import { SupportCodeLibrary } from '../../support_code_library_builder/types';
7
- import StepDefinitionSnippetBuilder from '../../formatter/step_definition_snippet_builder';
1
+ import type { EventEmitter } from 'node:events';
2
+ import type { IdGenerator } from '@cucumber/messages';
3
+ import type { AssembledTestCase } from '../../assemble';
4
+ import type StepDefinitionSnippetBuilder from '../../formatter/step_definition_snippet_builder';
5
+ import type { SupportCodeLibrary } from '../../support_code_library_builder/types';
6
+ import type { RuntimeOptions } from '../index';
7
+ import type { RuntimeAdapter } from '../types';
8
+ /**
9
+ * A simple adapter that executes all work in serial on the main thread
10
+ */
8
11
  export declare class InProcessAdapter implements RuntimeAdapter {
9
12
  private readonly worker;
10
- private failing;
11
13
  constructor(testRunStartedId: string, eventBroadcaster: EventEmitter, newId: IdGenerator.NewId, options: RuntimeOptions, supportCodeLibrary: SupportCodeLibrary, snippetBuilder: StepDefinitionSnippetBuilder);
12
- run(assembledTestCases: ReadonlyArray<AssembledTestCase>): Promise<boolean>;
14
+ setup(): Promise<void>;
15
+ teardown(): Promise<void>;
16
+ runBeforeAllHooks(): Promise<boolean>;
17
+ runTestCases(assembledTestCases: ReadonlyArray<AssembledTestCase>): Promise<boolean>;
18
+ runAfterAllHooks(): Promise<boolean>;
13
19
  }
@@ -2,23 +2,35 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.InProcessAdapter = void 0;
4
4
  const worker_1 = require("../worker");
5
+ /**
6
+ * A simple adapter that executes all work in serial on the main thread
7
+ */
5
8
  class InProcessAdapter {
6
9
  worker;
7
- failing = false;
8
10
  constructor(testRunStartedId, eventBroadcaster, newId, options, supportCodeLibrary, snippetBuilder) {
9
11
  this.worker = new worker_1.Worker(testRunStartedId, undefined, eventBroadcaster, newId, options, supportCodeLibrary, snippetBuilder);
10
12
  }
11
- async run(assembledTestCases) {
12
- await this.worker.runBeforeAllHooks();
13
+ async setup() {
14
+ // no-op for serial runtime
15
+ }
16
+ async teardown() {
17
+ // no-op for serial runtime
18
+ }
19
+ async runBeforeAllHooks() {
20
+ return await this.worker.runBeforeAllHooks();
21
+ }
22
+ async runTestCases(assembledTestCases) {
23
+ let failing = false;
13
24
  for (const item of assembledTestCases) {
14
- const success = await this.worker.runTestCase(item, this.failing);
15
- if (!success) {
16
- this.failing = true;
25
+ if (!(await this.worker.runTestCase(item, failing))) {
26
+ failing = true;
17
27
  }
18
28
  }
19
- await this.worker.runAfterAllHooks();
20
- return !this.failing;
29
+ return !failing;
30
+ }
31
+ async runAfterAllHooks() {
32
+ return await this.worker.runAfterAllHooks();
21
33
  }
22
34
  }
23
35
  exports.InProcessAdapter = InProcessAdapter;
24
- //# sourceMappingURL=adapter.js.map
36
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRhcHRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9ydW50aW1lL3NlcmlhbC9hZGFwdGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQU9BLHNDQUFrQztBQUVsQzs7R0FFRztBQUNILE1BQWEsZ0JBQWdCO0lBQ1YsTUFBTSxDQUFRO0lBRS9CLFlBQ0UsZ0JBQXdCLEVBQ3hCLGdCQUE4QixFQUM5QixLQUF3QixFQUN4QixPQUF1QixFQUN2QixrQkFBc0MsRUFDdEMsY0FBNEM7UUFFNUMsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLGVBQU0sQ0FDdEIsZ0JBQWdCLEVBQ2hCLFNBQVMsRUFDVCxnQkFBZ0IsRUFDaEIsS0FBSyxFQUNMLE9BQU8sRUFDUCxrQkFBa0IsRUFDbEIsY0FBYyxDQUNmLENBQUE7SUFDSCxDQUFDO0lBRUQsS0FBSyxDQUFDLEtBQUs7UUFDVCwyQkFBMkI7SUFDN0IsQ0FBQztJQUVELEtBQUssQ0FBQyxRQUFRO1FBQ1osMkJBQTJCO0lBQzdCLENBQUM7SUFFRCxLQUFLLENBQUMsaUJBQWlCO1FBQ3JCLE9BQU8sTUFBTSxJQUFJLENBQUMsTUFBTSxDQUFDLGlCQUFpQixFQUFFLENBQUE7SUFDOUMsQ0FBQztJQUVELEtBQUssQ0FBQyxZQUFZLENBQUMsa0JBQW9EO1FBQ3JFLElBQUksT0FBTyxHQUFHLEtBQUssQ0FBQTtRQUNuQixLQUFLLE1BQU0sSUFBSSxJQUFJLGtCQUFrQixFQUFFLENBQUM7WUFDdEMsSUFBSSxDQUFDLENBQUMsTUFBTSxJQUFJLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDLENBQUMsRUFBRSxDQUFDO2dCQUNwRCxPQUFPLEdBQUcsSUFBSSxDQUFBO1lBQ2hCLENBQUM7UUFDSCxDQUFDO1FBQ0QsT0FBTyxDQUFDLE9BQU8sQ0FBQTtJQUNqQixDQUFDO0lBRUQsS0FBSyxDQUFDLGdCQUFnQjtRQUNwQixPQUFPLE1BQU0sSUFBSSxDQUFDLE1BQU0sQ0FBQyxnQkFBZ0IsRUFBRSxDQUFBO0lBQzdDLENBQUM7Q0FDRjtBQS9DRCw0Q0ErQ0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IEV2ZW50RW1pdHRlciB9IGZyb20gJ25vZGU6ZXZlbnRzJ1xuaW1wb3J0IHR5cGUgeyBJZEdlbmVyYXRvciB9IGZyb20gJ0BjdWN1bWJlci9tZXNzYWdlcydcbmltcG9ydCB0eXBlIHsgQXNzZW1ibGVkVGVzdENhc2UgfSBmcm9tICcuLi8uLi9hc3NlbWJsZSdcbmltcG9ydCB0eXBlIFN0ZXBEZWZpbml0aW9uU25pcHBldEJ1aWxkZXIgZnJvbSAnLi4vLi4vZm9ybWF0dGVyL3N0ZXBfZGVmaW5pdGlvbl9zbmlwcGV0X2J1aWxkZXInXG5pbXBvcnQgdHlwZSB7IFN1cHBvcnRDb2RlTGlicmFyeSB9IGZyb20gJy4uLy4uL3N1cHBvcnRfY29kZV9saWJyYXJ5X2J1aWxkZXIvdHlwZXMnXG5pbXBvcnQgdHlwZSB7IFJ1bnRpbWVPcHRpb25zIH0gZnJvbSAnLi4vaW5kZXgnXG5pbXBvcnQgdHlwZSB7IFJ1bnRpbWVBZGFwdGVyIH0gZnJvbSAnLi4vdHlwZXMnXG5pbXBvcnQgeyBXb3JrZXIgfSBmcm9tICcuLi93b3JrZXInXG5cbi8qKlxuICogQSBzaW1wbGUgYWRhcHRlciB0aGF0IGV4ZWN1dGVzIGFsbCB3b3JrIGluIHNlcmlhbCBvbiB0aGUgbWFpbiB0aHJlYWRcbiAqL1xuZXhwb3J0IGNsYXNzIEluUHJvY2Vzc0FkYXB0ZXIgaW1wbGVtZW50cyBSdW50aW1lQWRhcHRlciB7XG4gIHByaXZhdGUgcmVhZG9ubHkgd29ya2VyOiBXb3JrZXJcblxuICBjb25zdHJ1Y3RvcihcbiAgICB0ZXN0UnVuU3RhcnRlZElkOiBzdHJpbmcsXG4gICAgZXZlbnRCcm9hZGNhc3RlcjogRXZlbnRFbWl0dGVyLFxuICAgIG5ld0lkOiBJZEdlbmVyYXRvci5OZXdJZCxcbiAgICBvcHRpb25zOiBSdW50aW1lT3B0aW9ucyxcbiAgICBzdXBwb3J0Q29kZUxpYnJhcnk6IFN1cHBvcnRDb2RlTGlicmFyeSxcbiAgICBzbmlwcGV0QnVpbGRlcjogU3RlcERlZmluaXRpb25TbmlwcGV0QnVpbGRlclxuICApIHtcbiAgICB0aGlzLndvcmtlciA9IG5ldyBXb3JrZXIoXG4gICAgICB0ZXN0UnVuU3RhcnRlZElkLFxuICAgICAgdW5kZWZpbmVkLFxuICAgICAgZXZlbnRCcm9hZGNhc3RlcixcbiAgICAgIG5ld0lkLFxuICAgICAgb3B0aW9ucyxcbiAgICAgIHN1cHBvcnRDb2RlTGlicmFyeSxcbiAgICAgIHNuaXBwZXRCdWlsZGVyXG4gICAgKVxuICB9XG5cbiAgYXN5bmMgc2V0dXAoKSB7XG4gICAgLy8gbm8tb3AgZm9yIHNlcmlhbCBydW50aW1lXG4gIH1cblxuICBhc3luYyB0ZWFyZG93bigpIHtcbiAgICAvLyBuby1vcCBmb3Igc2VyaWFsIHJ1bnRpbWVcbiAgfVxuXG4gIGFzeW5jIHJ1bkJlZm9yZUFsbEhvb2tzKCkge1xuICAgIHJldHVybiBhd2FpdCB0aGlzLndvcmtlci5ydW5CZWZvcmVBbGxIb29rcygpXG4gIH1cblxuICBhc3luYyBydW5UZXN0Q2FzZXMoYXNzZW1ibGVkVGVzdENhc2VzOiBSZWFkb25seUFycmF5PEFzc2VtYmxlZFRlc3RDYXNlPikge1xuICAgIGxldCBmYWlsaW5nID0gZmFsc2VcbiAgICBmb3IgKGNvbnN0IGl0ZW0gb2YgYXNzZW1ibGVkVGVzdENhc2VzKSB7XG4gICAgICBpZiAoIShhd2FpdCB0aGlzLndvcmtlci5ydW5UZXN0Q2FzZShpdGVtLCBmYWlsaW5nKSkpIHtcbiAgICAgICAgZmFpbGluZyA9IHRydWVcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuICFmYWlsaW5nXG4gIH1cblxuICBhc3luYyBydW5BZnRlckFsbEhvb2tzKCkge1xuICAgIHJldHVybiBhd2FpdCB0aGlzLndvcmtlci5ydW5BZnRlckFsbEhvb2tzKClcbiAgfVxufVxuIl19
@@ -1,6 +1,6 @@
1
1
  import * as messages from '@cucumber/messages';
2
- import { ITestCaseHookParameter } from '../support_code_library_builder/types';
3
- import { IDefinition } from '../models/definition';
2
+ import type { IDefinition } from '../models/definition';
3
+ import type { ITestCaseHookParameter } from '../support_code_library_builder/types';
4
4
  export interface IRunOptions {
5
5
  defaultTimeout: number;
6
6
  filterStackTraces: boolean;
@@ -40,9 +40,9 @@ exports.run = run;
40
40
  const messages = __importStar(require("@cucumber/messages"));
41
41
  const user_code_runner_1 = __importDefault(require("../user_code_runner"));
42
42
  const value_checker_1 = require("../value_checker");
43
+ const format_error_1 = require("./format_error");
43
44
  const scope_1 = require("./scope");
44
45
  const stopwatch_1 = require("./stopwatch");
45
- const format_error_1 = require("./format_error");
46
46
  async function run({ defaultTimeout, filterStackTraces, hookParameter, step, stepDefinition, world, }) {
47
47
  const stopwatch = (0, stopwatch_1.create)().start();
48
48
  let error, result, invocationData;
@@ -102,4 +102,4 @@ async function run({ defaultTimeout, filterStackTraces, hookParameter, step, ste
102
102
  };
103
103
  }
104
104
  exports.default = { run };
105
- //# sourceMappingURL=step_runner.js.map
105
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RlcF9ydW5uZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcnVudGltZS9zdGVwX3J1bm5lci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQXVCQSxrQkFtRUM7QUExRkQsNkRBQThDO0FBRzlDLDJFQUFnRDtBQUNoRCxvREFBa0Y7QUFDbEYsaURBQTRDO0FBQzVDLG1DQUE0QztBQUM1QywyQ0FBb0M7QUFnQjdCLEtBQUssVUFBVSxHQUFHLENBQUMsRUFDeEIsY0FBYyxFQUNkLGlCQUFpQixFQUNqQixhQUFhLEVBQ2IsSUFBSSxFQUNKLGNBQWMsRUFDZCxLQUFLLEdBQ087SUFDWixNQUFNLFNBQVMsR0FBRyxJQUFBLGtCQUFNLEdBQUUsQ0FBQyxLQUFLLEVBQUUsQ0FBQTtJQUNsQyxJQUFJLEtBQVUsRUFBRSxNQUFXLEVBQUUsY0FBMEMsQ0FBQTtJQUV2RSxJQUFJLENBQUM7UUFDSCxNQUFNLElBQUEsMEJBQWtCLEVBQUMsRUFBRSxLQUFLLEVBQUUsRUFBRSxLQUFLLElBQUksRUFBRTtZQUM3QyxjQUFjLEdBQUcsTUFBTSxjQUFjLENBQUMsdUJBQXVCLENBQUM7Z0JBQzVELGFBQWE7Z0JBQ2IsSUFBSTtnQkFDSixLQUFLO2FBQ04sQ0FBQyxDQUFBO1FBQ0osQ0FBQyxDQUFDLENBQUE7SUFDSixDQUFDO0lBQUMsT0FBTyxHQUFHLEVBQUUsQ0FBQztRQUNiLEtBQUssR0FBRyxHQUFHLENBQUE7SUFDYixDQUFDO0lBRUQsSUFBSSxJQUFBLGdDQUFnQixFQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7UUFDNUIsTUFBTSxxQkFBcUIsR0FBRyxJQUFBLDhCQUFjLEVBQUMsY0FBYyxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsY0FBYyxDQUFDLENBQUE7UUFFNUYsSUFBSSxjQUFjLENBQUMsZ0JBQWdCLENBQUMsUUFBUSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQztZQUN6RSxNQUFNLElBQUksR0FBRyxNQUFNLElBQUEsMEJBQWtCLEVBQUMsRUFBRSxLQUFLLEVBQUUsRUFBRSxLQUFLLElBQUksRUFBRSxDQUMxRCwwQkFBYyxDQUFDLEdBQUcsQ0FBQztnQkFDakIsU0FBUyxFQUFFLGNBQWMsQ0FBQyxVQUFVO2dCQUNwQyxFQUFFLEVBQUUsY0FBYyxDQUFDLElBQUk7Z0JBQ3ZCLE9BQU8sRUFBRSxLQUFLO2dCQUNkLHFCQUFxQjthQUN0QixDQUFDLENBQ0gsQ0FBQTtZQUNELEtBQUssR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFBO1lBQ2xCLE1BQU0sR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFBO1FBQ3RCLENBQUM7YUFBTSxDQUFDO1lBQ04sS0FBSyxHQUFHLGNBQWMsQ0FBQywyQkFBMkIsRUFBRSxDQUFBO1FBQ3RELENBQUM7SUFDSCxDQUFDO0lBRUQsTUFBTSxRQUFRLEdBQUcsU0FBUyxDQUFDLElBQUksRUFBRSxDQUFDLFFBQVEsRUFBRSxDQUFBO0lBQzVDLElBQUksTUFBcUMsQ0FBQTtJQUN6QyxJQUFJLE9BQU8sR0FBRyxFQUFFLENBQUE7SUFDaEIsSUFBSSxNQUFNLEtBQUssU0FBUyxFQUFFLENBQUM7UUFDekIsTUFBTSxHQUFHLFFBQVEsQ0FBQyxvQkFBb0IsQ0FBQyxPQUFPLENBQUE7SUFDaEQsQ0FBQztTQUFNLElBQUksTUFBTSxLQUFLLFNBQVMsRUFBRSxDQUFDO1FBQ2hDLE1BQU0sR0FBRyxRQUFRLENBQUMsb0JBQW9CLENBQUMsT0FBTyxDQUFBO0lBQ2hELENBQUM7U0FBTSxJQUFJLElBQUEsNkJBQWEsRUFBQyxLQUFLLENBQUMsRUFBRSxDQUFDO1FBQ2hDLE1BQU0sR0FBRyxRQUFRLENBQUMsb0JBQW9CLENBQUMsTUFBTSxDQUFBO0lBQy9DLENBQUM7U0FBTSxDQUFDO1FBQ04sTUFBTSxHQUFHLFFBQVEsQ0FBQyxvQkFBb0IsQ0FBQyxNQUFNLENBQUE7SUFDL0MsQ0FBQztJQUVELElBQUksSUFBQSw2QkFBYSxFQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7UUFDekIsT0FBTyxHQUFHLElBQUEsMEJBQVcsRUFBQyxLQUFLLEVBQUUsaUJBQWlCLENBQUMsQ0FBQTtJQUNqRCxDQUFDO0lBRUQsT0FBTztRQUNMLE1BQU0sRUFBRTtZQUNOLFFBQVE7WUFDUixNQUFNO1lBQ04sR0FBRyxPQUFPO1NBQ1g7UUFDRCxLQUFLO0tBQ04sQ0FBQTtBQUNILENBQUM7QUFFRCxrQkFBZSxFQUFFLEdBQUcsRUFBRSxDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgbWVzc2FnZXMgZnJvbSAnQGN1Y3VtYmVyL21lc3NhZ2VzJ1xuaW1wb3J0IHR5cGUgeyBJRGVmaW5pdGlvbiwgSUdldEludm9jYXRpb25EYXRhUmVzcG9uc2UgfSBmcm9tICcuLi9tb2RlbHMvZGVmaW5pdGlvbidcbmltcG9ydCB0eXBlIHsgSVRlc3RDYXNlSG9va1BhcmFtZXRlciB9IGZyb20gJy4uL3N1cHBvcnRfY29kZV9saWJyYXJ5X2J1aWxkZXIvdHlwZXMnXG5pbXBvcnQgVXNlckNvZGVSdW5uZXIgZnJvbSAnLi4vdXNlcl9jb2RlX3J1bm5lcidcbmltcG9ydCB7IGRvZXNIYXZlVmFsdWUsIGRvZXNOb3RIYXZlVmFsdWUsIHZhbHVlT3JEZWZhdWx0IH0gZnJvbSAnLi4vdmFsdWVfY2hlY2tlcidcbmltcG9ydCB7IGZvcm1hdEVycm9yIH0gZnJvbSAnLi9mb3JtYXRfZXJyb3InXG5pbXBvcnQgeyBydW5JblRlc3RDYXNlU2NvcGUgfSBmcm9tICcuL3Njb3BlJ1xuaW1wb3J0IHsgY3JlYXRlIH0gZnJvbSAnLi9zdG9wd2F0Y2gnXG5cbmV4cG9ydCBpbnRlcmZhY2UgSVJ1bk9wdGlvbnMge1xuICBkZWZhdWx0VGltZW91dDogbnVtYmVyXG4gIGZpbHRlclN0YWNrVHJhY2VzOiBib29sZWFuXG4gIGhvb2tQYXJhbWV0ZXI6IElUZXN0Q2FzZUhvb2tQYXJhbWV0ZXJcbiAgc3RlcDogbWVzc2FnZXMuUGlja2xlU3RlcFxuICBzdGVwRGVmaW5pdGlvbjogSURlZmluaXRpb25cbiAgd29ybGQ6IGFueVxufVxuXG5leHBvcnQgaW50ZXJmYWNlIFJ1blN0ZXBSZXN1bHQge1xuICByZXN1bHQ6IG1lc3NhZ2VzLlRlc3RTdGVwUmVzdWx0XG4gIGVycm9yPzogYW55XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBydW4oe1xuICBkZWZhdWx0VGltZW91dCxcbiAgZmlsdGVyU3RhY2tUcmFjZXMsXG4gIGhvb2tQYXJhbWV0ZXIsXG4gIHN0ZXAsXG4gIHN0ZXBEZWZpbml0aW9uLFxuICB3b3JsZCxcbn06IElSdW5PcHRpb25zKTogUHJvbWlzZTxSdW5TdGVwUmVzdWx0PiB7XG4gIGNvbnN0IHN0b3B3YXRjaCA9IGNyZWF0ZSgpLnN0YXJ0KClcbiAgbGV0IGVycm9yOiBhbnksIHJlc3VsdDogYW55LCBpbnZvY2F0aW9uRGF0YTogSUdldEludm9jYXRpb25EYXRhUmVzcG9uc2VcblxuICB0cnkge1xuICAgIGF3YWl0IHJ1bkluVGVzdENhc2VTY29wZSh7IHdvcmxkIH0sIGFzeW5jICgpID0+IHtcbiAgICAgIGludm9jYXRpb25EYXRhID0gYXdhaXQgc3RlcERlZmluaXRpb24uZ2V0SW52b2NhdGlvblBhcmFtZXRlcnMoe1xuICAgICAgICBob29rUGFyYW1ldGVyLFxuICAgICAgICBzdGVwLFxuICAgICAgICB3b3JsZCxcbiAgICAgIH0pXG4gICAgfSlcbiAgfSBjYXRjaCAoZXJyKSB7XG4gICAgZXJyb3IgPSBlcnJcbiAgfVxuXG4gIGlmIChkb2VzTm90SGF2ZVZhbHVlKGVycm9yKSkge1xuICAgIGNvbnN0IHRpbWVvdXRJbk1pbGxpc2Vjb25kcyA9IHZhbHVlT3JEZWZhdWx0KHN0ZXBEZWZpbml0aW9uLm9wdGlvbnMudGltZW91dCwgZGVmYXVsdFRpbWVvdXQpXG5cbiAgICBpZiAoaW52b2NhdGlvbkRhdGEudmFsaWRDb2RlTGVuZ3Rocy5pbmNsdWRlcyhzdGVwRGVmaW5pdGlvbi5jb2RlLmxlbmd0aCkpIHtcbiAgICAgIGNvbnN0IGRhdGEgPSBhd2FpdCBydW5JblRlc3RDYXNlU2NvcGUoeyB3b3JsZCB9LCBhc3luYyAoKSA9PlxuICAgICAgICBVc2VyQ29kZVJ1bm5lci5ydW4oe1xuICAgICAgICAgIGFyZ3NBcnJheTogaW52b2NhdGlvbkRhdGEucGFyYW1ldGVycyxcbiAgICAgICAgICBmbjogc3RlcERlZmluaXRpb24uY29kZSxcbiAgICAgICAgICB0aGlzQXJnOiB3b3JsZCxcbiAgICAgICAgICB0aW1lb3V0SW5NaWxsaXNlY29uZHMsXG4gICAgICAgIH0pXG4gICAgICApXG4gICAgICBlcnJvciA9IGRhdGEuZXJyb3JcbiAgICAgIHJlc3VsdCA9IGRhdGEucmVzdWx0XG4gICAgfSBlbHNlIHtcbiAgICAgIGVycm9yID0gaW52b2NhdGlvbkRhdGEuZ2V0SW52YWxpZENvZGVMZW5ndGhNZXNzYWdlKClcbiAgICB9XG4gIH1cblxuICBjb25zdCBkdXJhdGlvbiA9IHN0b3B3YXRjaC5zdG9wKCkuZHVyYXRpb24oKVxuICBsZXQgc3RhdHVzOiBtZXNzYWdlcy5UZXN0U3RlcFJlc3VsdFN0YXR1c1xuICBsZXQgZGV0YWlscyA9IHt9XG4gIGlmIChyZXN1bHQgPT09ICdza2lwcGVkJykge1xuICAgIHN0YXR1cyA9IG1lc3NhZ2VzLlRlc3RTdGVwUmVzdWx0U3RhdHVzLlNLSVBQRURcbiAgfSBlbHNlIGlmIChyZXN1bHQgPT09ICdwZW5kaW5nJykge1xuICAgIHN0YXR1cyA9IG1lc3NhZ2VzLlRlc3RTdGVwUmVzdWx0U3RhdHVzLlBFTkRJTkdcbiAgfSBlbHNlIGlmIChkb2VzSGF2ZVZhbHVlKGVycm9yKSkge1xuICAgIHN0YXR1cyA9IG1lc3NhZ2VzLlRlc3RTdGVwUmVzdWx0U3RhdHVzLkZBSUxFRFxuICB9IGVsc2Uge1xuICAgIHN0YXR1cyA9IG1lc3NhZ2VzLlRlc3RTdGVwUmVzdWx0U3RhdHVzLlBBU1NFRFxuICB9XG5cbiAgaWYgKGRvZXNIYXZlVmFsdWUoZXJyb3IpKSB7XG4gICAgZGV0YWlscyA9IGZvcm1hdEVycm9yKGVycm9yLCBmaWx0ZXJTdGFja1RyYWNlcylcbiAgfVxuXG4gIHJldHVybiB7XG4gICAgcmVzdWx0OiB7XG4gICAgICBkdXJhdGlvbixcbiAgICAgIHN0YXR1cyxcbiAgICAgIC4uLmRldGFpbHMsXG4gICAgfSxcbiAgICBlcnJvcixcbiAgfVxufVxuXG5leHBvcnQgZGVmYXVsdCB7IHJ1biB9XG4iXX0=
@@ -1,4 +1,4 @@
1
- import { Duration } from '@cucumber/messages';
1
+ import { type Duration } from '@cucumber/messages';
2
2
  /**
3
3
  * A utility for timing test run operations and returning duration and
4
4
  * timestamp objects in messages-compatible formats
@@ -32,4 +32,4 @@ const create = (base) => new StopwatchImpl(base);
32
32
  exports.create = create;
33
33
  const timestamp = () => messages_1.TimeConversion.millisecondsSinceEpochToTimestamp(time_1.default.Date.now());
34
34
  exports.timestamp = timestamp;
35
- //# sourceMappingURL=stopwatch.js.map
35
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvcHdhdGNoLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3J1bnRpbWUvc3RvcHdhdGNoLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLGlEQUFrRTtBQUNsRSxtREFBNkI7QUFZN0IsTUFBTSxhQUFhO0lBR0c7SUFGWixPQUFPLENBQVE7SUFFdkIsWUFBb0IsT0FBaUIsRUFBRSxPQUFPLEVBQUUsQ0FBQyxFQUFFLEtBQUssRUFBRSxDQUFDLEVBQUU7UUFBekMsU0FBSSxHQUFKLElBQUksQ0FBcUM7SUFBRyxDQUFDO0lBRWpFLEtBQUs7UUFDSCxJQUFJLENBQUMsT0FBTyxHQUFHLGNBQU8sQ0FBQyxXQUFXLENBQUMsR0FBRyxFQUFFLENBQUE7UUFDeEMsT0FBTyxJQUFJLENBQUE7SUFDYixDQUFDO0lBRUQsSUFBSTtRQUNGLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFBO1FBQzNCLElBQUksQ0FBQyxPQUFPLEdBQUcsU0FBUyxDQUFBO1FBQ3hCLE9BQU8sSUFBSSxDQUFBO0lBQ2IsQ0FBQztJQUVELFFBQVE7UUFDTixJQUFJLE9BQU8sSUFBSSxDQUFDLE9BQU8sS0FBSyxRQUFRLEVBQUUsQ0FBQztZQUNyQyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUE7UUFDbEIsQ0FBQztRQUNELE9BQU8seUJBQWMsQ0FBQyxZQUFZLENBQ2hDLElBQUksQ0FBQyxJQUFJLEVBQ1QseUJBQWMsQ0FBQyxzQkFBc0IsQ0FBQyxjQUFPLENBQUMsV0FBVyxDQUFDLEdBQUcsRUFBRSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FDaEYsQ0FBQTtJQUNILENBQUM7Q0FDRjtBQUVNLE1BQU0sTUFBTSxHQUFHLENBQUMsSUFBZSxFQUFjLEVBQUUsQ0FBQyxJQUFJLGFBQWEsQ0FBQyxJQUFJLENBQUMsQ0FBQTtBQUFqRSxRQUFBLE1BQU0sVUFBMkQ7QUFFdkUsTUFBTSxTQUFTLEdBQUcsR0FBRyxFQUFFLENBQUMseUJBQWMsQ0FBQyxpQ0FBaUMsQ0FBQyxjQUFPLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUE7QUFBdEYsUUFBQSxTQUFTLGFBQTZFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgdHlwZSBEdXJhdGlvbiwgVGltZUNvbnZlcnNpb24gfSBmcm9tICdAY3VjdW1iZXIvbWVzc2FnZXMnXG5pbXBvcnQgbWV0aG9kcyBmcm9tICcuLi90aW1lJ1xuXG4vKipcbiAqIEEgdXRpbGl0eSBmb3IgdGltaW5nIHRlc3QgcnVuIG9wZXJhdGlvbnMgYW5kIHJldHVybmluZyBkdXJhdGlvbiBhbmRcbiAqIHRpbWVzdGFtcCBvYmplY3RzIGluIG1lc3NhZ2VzLWNvbXBhdGlibGUgZm9ybWF0c1xuICovXG5leHBvcnQgaW50ZXJmYWNlIElTdG9wd2F0Y2gge1xuICBzdGFydDogKCkgPT4gSVN0b3B3YXRjaFxuICBzdG9wOiAoKSA9PiBJU3RvcHdhdGNoXG4gIGR1cmF0aW9uOiAoKSA9PiBEdXJhdGlvblxufVxuXG5jbGFzcyBTdG9wd2F0Y2hJbXBsIGltcGxlbWVudHMgSVN0b3B3YXRjaCB7XG4gIHByaXZhdGUgc3RhcnRlZDogbnVtYmVyXG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBiYXNlOiBEdXJhdGlvbiA9IHsgc2Vjb25kczogMCwgbmFub3M6IDAgfSkge31cblxuICBzdGFydCgpOiBJU3RvcHdhdGNoIHtcbiAgICB0aGlzLnN0YXJ0ZWQgPSBtZXRob2RzLnBlcmZvcm1hbmNlLm5vdygpXG4gICAgcmV0dXJuIHRoaXNcbiAgfVxuXG4gIHN0b3AoKTogSVN0b3B3YXRjaCB7XG4gICAgdGhpcy5iYXNlID0gdGhpcy5kdXJhdGlvbigpXG4gICAgdGhpcy5zdGFydGVkID0gdW5kZWZpbmVkXG4gICAgcmV0dXJuIHRoaXNcbiAgfVxuXG4gIGR1cmF0aW9uKCk6IER1cmF0aW9uIHtcbiAgICBpZiAodHlwZW9mIHRoaXMuc3RhcnRlZCAhPT0gJ251bWJlcicpIHtcbiAgICAgIHJldHVybiB0aGlzLmJhc2VcbiAgICB9XG4gICAgcmV0dXJuIFRpbWVDb252ZXJzaW9uLmFkZER1cmF0aW9ucyhcbiAgICAgIHRoaXMuYmFzZSxcbiAgICAgIFRpbWVDb252ZXJzaW9uLm1pbGxpc2Vjb25kc1RvRHVyYXRpb24obWV0aG9kcy5wZXJmb3JtYW5jZS5ub3coKSAtIHRoaXMuc3RhcnRlZClcbiAgICApXG4gIH1cbn1cblxuZXhwb3J0IGNvbnN0IGNyZWF0ZSA9IChiYXNlPzogRHVyYXRpb24pOiBJU3RvcHdhdGNoID0+IG5ldyBTdG9wd2F0Y2hJbXBsKGJhc2UpXG5cbmV4cG9ydCBjb25zdCB0aW1lc3RhbXAgPSAoKSA9PiBUaW1lQ29udmVyc2lvbi5taWxsaXNlY29uZHNTaW5jZUVwb2NoVG9UaW1lc3RhbXAobWV0aG9kcy5EYXRlLm5vdygpKVxuIl19
@@ -1,13 +1,13 @@
1
- import { EventEmitter } from 'node:events';
1
+ import type { EventEmitter } from 'node:events';
2
2
  import * as messages from '@cucumber/messages';
3
- import { IdGenerator } from '@cucumber/messages';
4
- import { JsonObject } from 'type-fest';
5
- import { ITestCaseHookParameter, SupportCodeLibrary } from '../support_code_library_builder/types';
6
- import TestCaseHookDefinition from '../models/test_case_hook_definition';
7
- import TestStepHookDefinition from '../models/test_step_hook_definition';
8
- import { IDefinition } from '../models/definition';
9
- import StepDefinitionSnippetBuilder from '../formatter/step_definition_snippet_builder';
10
- import { RunStepResult } from './step_runner';
3
+ import { type IdGenerator } from '@cucumber/messages';
4
+ import type { JsonObject } from 'type-fest';
5
+ import type StepDefinitionSnippetBuilder from '../formatter/step_definition_snippet_builder';
6
+ import type { IDefinition } from '../models/definition';
7
+ import type TestCaseHookDefinition from '../models/test_case_hook_definition';
8
+ import type TestStepHookDefinition from '../models/test_step_hook_definition';
9
+ import type { ITestCaseHookParameter, SupportCodeLibrary } from '../support_code_library_builder/types';
10
+ import { type RunStepResult } from './step_runner';
11
11
  export interface INewTestCaseRunnerOptions {
12
12
  workerId?: string;
13
13
  eventBroadcaster: EventEmitter;
@@ -47,6 +47,7 @@ export default class TestCaseRunner {
47
47
  getWorstStepResult(): messages.TestStepResult;
48
48
  invokeStep(step: messages.PickleStep, stepDefinition: IDefinition, hookParameter?: ITestCaseHookParameter): Promise<RunStepResult>;
49
49
  isSkippingSteps(): boolean;
50
+ isExplicitlySkipped(): boolean;
50
51
  shouldSkipHook(isBeforeHook: boolean): boolean;
51
52
  aroundTestStep(testStepId: string, runStepFn: () => Promise<messages.TestStepResult>): Promise<void>;
52
53
  run(): Promise<messages.TestStepResultStatus>;
@@ -39,11 +39,10 @@ Object.defineProperty(exports, "__esModule", { value: true });
39
39
  const messages = __importStar(require("@cucumber/messages"));
40
40
  const messages_1 = require("@cucumber/messages");
41
41
  const value_checker_1 = require("../value_checker");
42
- const stopwatch_1 = require("./stopwatch");
43
- const step_runner_1 = __importDefault(require("./step_runner"));
44
42
  const attachment_manager_1 = __importDefault(require("./attachment_manager"));
45
- const helpers_1 = require("./helpers");
46
43
  const make_suggestion_1 = require("./make_suggestion");
44
+ const step_runner_1 = __importDefault(require("./step_runner"));
45
+ const stopwatch_1 = require("./stopwatch");
47
46
  class TestCaseRunner {
48
47
  workerId;
49
48
  attachmentManager;
@@ -134,7 +133,10 @@ class TestCaseRunner {
134
133
  });
135
134
  }
136
135
  isSkippingSteps() {
137
- return (this.getWorstStepResult().status !== messages.TestStepResultStatus.PASSED);
136
+ return this.getWorstStepResult().status !== messages.TestStepResultStatus.PASSED;
137
+ }
138
+ isExplicitlySkipped() {
139
+ return !this.skip && this.getWorstStepResult().status === messages.TestStepResultStatus.SKIPPED;
138
140
  }
139
141
  shouldSkipHook(isBeforeHook) {
140
142
  return this.skip || (this.isSkippingSteps() && isBeforeHook);
@@ -202,8 +204,8 @@ class TestCaseRunner {
202
204
  hookParameter.result = this.getWorstStepResult();
203
205
  hookParameter.error = error;
204
206
  hookParameter.willBeRetried =
205
- this.getWorstStepResult().status ===
206
- messages.TestStepResultStatus.FAILED && moreAttemptsRemaining;
207
+ this.getWorstStepResult().status === messages.TestStepResultStatus.FAILED &&
208
+ moreAttemptsRemaining;
207
209
  }
208
210
  return await this.runHook(findHookDefinition(testStep.hookId, this.supportCodeLibrary), hookParameter, !didWeRunStepsYet);
209
211
  }
@@ -216,8 +218,8 @@ class TestCaseRunner {
216
218
  }
217
219
  });
218
220
  }
219
- const willBeRetried = this.getWorstStepResult().status ===
220
- messages.TestStepResultStatus.FAILED && moreAttemptsRemaining;
221
+ const willBeRetried = this.getWorstStepResult().status === messages.TestStepResultStatus.FAILED &&
222
+ moreAttemptsRemaining;
221
223
  const testCaseFinished = {
222
224
  testCaseFinished: {
223
225
  testCaseStartedId: this.currentTestCaseStartedId,
@@ -256,6 +258,14 @@ class TestCaseRunner {
256
258
  return stepHooksResult;
257
259
  }
258
260
  async runStep(pickleStep, testStep) {
261
+ if (this.isExplicitlySkipped()) {
262
+ return {
263
+ result: {
264
+ status: messages.TestStepResultStatus.SKIPPED,
265
+ duration: messages.TimeConversion.millisecondsToDuration(0),
266
+ },
267
+ };
268
+ }
259
269
  const stepDefinitions = testStep.stepDefinitionIds.map((stepDefinitionId) => {
260
270
  return findStepDefinition(stepDefinitionId, this.supportCodeLibrary);
261
271
  });
@@ -277,7 +287,6 @@ class TestCaseRunner {
277
287
  else if (stepDefinitions.length > 1) {
278
288
  return {
279
289
  result: {
280
- message: (0, helpers_1.getAmbiguousStepException)(stepDefinitions),
281
290
  status: messages.TestStepResultStatus.AMBIGUOUS,
282
291
  duration: messages.TimeConversion.millisecondsToDuration(0),
283
292
  },
@@ -294,8 +303,7 @@ class TestCaseRunner {
294
303
  let stepResult;
295
304
  let error;
296
305
  let stepResults = await this.runStepHooks(this.getBeforeStepHookDefinitions(), pickleStep);
297
- if ((0, messages_1.getWorstTestStepResult)(stepResults).status !==
298
- messages.TestStepResultStatus.FAILED) {
306
+ if ((0, messages_1.getWorstTestStepResult)(stepResults).status !== messages.TestStepResultStatus.FAILED) {
299
307
  stepResult = await this.invokeStep(pickleStep, stepDefinitions[0]);
300
308
  stepResults.push(stepResult.result);
301
309
  error = stepResult.error;
@@ -324,4 +332,4 @@ function findHookDefinition(id, supportCodeLibrary) {
324
332
  function findStepDefinition(id, supportCodeLibrary) {
325
333
  return supportCodeLibrary.stepDefinitions.find((definition) => definition.id === id);
326
334
  }
327
- //# sourceMappingURL=test_case_runner.js.map
335
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVzdF9jYXNlX3J1bm5lci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9ydW50aW1lL3Rlc3RfY2FzZV9ydW5uZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFDQSw2REFBOEM7QUFDOUMsaURBQTRGO0FBYTVGLG9EQUFrRTtBQUNsRSw4RUFBb0Q7QUFDcEQsdURBQWtEO0FBQ2xELGdFQUE4RDtBQUM5RCwyQ0FBdUM7QUFpQnZDLE1BQXFCLGNBQWM7SUFDaEIsUUFBUSxDQUFvQjtJQUM1QixpQkFBaUIsQ0FBbUI7SUFDN0Msd0JBQXdCLENBQVE7SUFDaEMsaUJBQWlCLENBQVE7SUFDaEIsZ0JBQWdCLENBQWM7SUFDOUIsZUFBZSxDQUEwQjtJQUN6QyxLQUFLLENBQW1CO0lBQ3hCLE1BQU0sQ0FBaUI7SUFDdkIsUUFBUSxDQUFtQjtJQUMzQixXQUFXLENBQVE7SUFDbkIsSUFBSSxDQUFTO0lBQ2IsaUJBQWlCLENBQVM7SUFDMUIsa0JBQWtCLENBQW9CO0lBQ3RDLGNBQWMsQ0FBOEI7SUFDckQsZUFBZSxDQUEyQjtJQUMxQyxLQUFLLENBQUs7SUFDRCxlQUFlLENBQVk7SUFFNUMsWUFBWSxFQUNWLFFBQVEsRUFDUixnQkFBZ0IsRUFDaEIsZUFBZSxFQUNmLEtBQUssRUFDTCxNQUFNLEVBQ04sUUFBUSxFQUNSLE9BQU8sR0FBRyxDQUFDLEVBQ1gsSUFBSSxFQUNKLGlCQUFpQixFQUNqQixrQkFBa0IsRUFDbEIsZUFBZSxFQUNmLGNBQWMsR0FDWTtRQUMxQixJQUFJLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQTtRQUN4QixJQUFJLENBQUMsaUJBQWlCLEdBQUcsSUFBSSw0QkFBaUIsQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsRUFBRSxFQUFFO1lBQzNFLElBQUksSUFBQSxnQ0FBZ0IsRUFBQyxJQUFJLENBQUMsaUJBQWlC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QixFQUFFLEVBQ2xDLFVBQVUsRUFDVixVQUFVLENBQ1gsQ0FBQTtRQUNELFdBQVcsR0FBRyxXQUFXLENBQUMsTUFBTSxDQUFDLG9CQUFvQixDQUFDLENBQUE7UUFFdEQsTUFBTSxlQUFlLEdBQUcsSUFBQSxpQ0FBc0IsRUFBQyxXQUFXLENBQUMsQ0FBQTtRQUMzRCxJQUFJLGFBQWEsR0FBRyxRQUFRLENBQUMsY0FBYyxDQUFDLHNCQUFzQixDQUFDLENBQUMsQ0FBQyxDQUFBO1FBQ3JFLEtBQUssTUFBTSxNQUFNLElBQUksV0FBVyxFQUFFLENBQUM7WUFDakMsYUFBYSxHQUFHLFFBQVEsQ0FBQyxjQUFjLENBQUMsWUFBWSxDQUFDLGFBQWEsRUFBRSxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUE7UUFDdEYsQ0FBQztRQUNELGVBQWUsQ0FBQyxRQUFRLEdBQUcsYUFBYSxDQUFBO1FBQ3hDLE9BQU87WUFDTCxNQUFNLEVBQUUsZUFBZTtZQUN2QixLQUFLO1NBQ04sQ0FBQTtJQUNILENBQUM7Q0FDRjtBQXRWRCxpQ0FzVkM7QUFFRCxTQUFTLGtCQUFrQixDQUN6QixFQUFVLEVBQ1Ysa0JBQXNDO0lBRXRDLE9BQU87UUFDTCxHQUFHLGtCQUFrQixDQUFDLDZCQUE2QjtRQUNuRCxHQUFHLGtCQUFrQixDQUFDLDRCQUE0QjtLQUNuRCxDQUFDLElBQUksQ0FBQyxDQUFDLFVBQVUsRUFBRSxFQUFFLENBQUMsVUFBVSxDQUFDLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQTtBQUM5QyxDQUFDO0FBRUQsU0FBUyxrQkFBa0IsQ0FBQyxFQUFVLEVBQUUsa0JBQXNDO0lBQzVFLE9BQU8sa0JBQWtCLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxDQUFDLFVBQVUsRUFBRSxFQUFFLENBQUMsVUFBVSxDQUFDLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQTtBQUN0RixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBFdmVudEVtaXR0ZXIgfSBmcm9tICdub2RlOmV2ZW50cydcbmltcG9ydCAqIGFzIG1lc3NhZ2VzIGZyb20gJ0BjdWN1bWJlci9tZXNzYWdlcydcbmltcG9ydCB7IHR5cGUgRW52ZWxvcGUsIGdldFdvcnN0VGVzdFN0ZXBSZXN1bHQsIHR5cGUgSWRHZW5lcmF0b3IgfSBmcm9tICdAY3VjdW1iZXIvbWVzc2FnZXMnXG5pbXBvcnQgdHlwZSB7IEpzb25PYmplY3QgfSBmcm9tICd0eXBlLWZlc3QnXG5pbXBvcnQgdHlwZSBTdGVwRGVmaW5pdGlvblNuaXBwZXRCdWlsZGVyIGZyb20gJy4uL2Zvcm1hdHRlci9zdGVwX2RlZmluaXRpb25fc25pcHBldF9idWlsZGVyJ1xuaW1wb3J0IHR5cGUgeyBJRGVmaW5pdGlvbiB9IGZyb20gJy4uL21vZGVscy9kZWZpbml0aW9uJ1xuaW1wb3J0IHR5cGUgU3RlcERlZmluaXRpb24gZnJvbSAnLi4vbW9kZWxzL3N0ZXBfZGVmaW5pdGlvbidcbmltcG9ydCB0eXBlIFRlc3RDYXNlSG9va0RlZmluaXRpb24gZnJvbSAnLi4vbW9kZWxzL3Rlc3RfY2FzZV9ob29rX2RlZmluaXRpb24nXG5pbXBvcnQgdHlwZSBUZXN0U3RlcEhvb2tEZWZpbml0aW9uIGZyb20gJy4uL21vZGVscy90ZXN0X3N0ZXBfaG9va19kZWZpbml0aW9uJ1xuaW1wb3J0IHR5cGUge1xuICBJVGVzdENhc2VIb29rUGFyYW1ldGVyLFxuICBJVGVzdFN0ZXBIb29rUGFyYW1ldGVyLFxuICBTdXBwb3J0Q29kZUxpYnJhcnksXG59IGZyb20gJy4uL3N1cHBvcnRfY29kZV9saWJyYXJ5X2J1aWxkZXIvdHlwZXMnXG5pbXBvcnQgdHlwZSB7IElXb3JsZE9wdGlvbnMgfSBmcm9tICcuLi9zdXBwb3J0X2NvZGVfbGlicmFyeV9idWlsZGVyL3dvcmxkJ1xuaW1wb3J0IHsgZG9lc0hhdmVWYWx1ZSwgZG9lc05vdEhhdmVWYWx1ZSB9IGZyb20gJy4uL3ZhbHVlX2NoZWNrZXInXG5pbXBvcnQgQXR0YWNobWVudE1hbmFnZXIgZnJvbSAnLi9hdHRhY2htZW50X21hbmFnZXInXG5pbXBvcnQgeyBtYWtlU3VnZ2VzdGlvbiB9IGZyb20gJy4vbWFrZV9zdWdnZXN0aW9uJ1xuaW1wb3J0IFN0ZXBSdW5uZXIsIHsgdHlwZSBSdW5TdGVwUmVzdWx0IH0gZnJvbSAnLi9zdGVwX3J1bm5lcidcbmltcG9ydCB7IHRpbWVzdGFtcCB9IGZyb20gJy4vc3RvcHdhdGNoJ1xuXG5leHBvcnQgaW50ZXJmYWNlIElOZXdUZXN0Q2FzZVJ1bm5lck9wdGlvbnMge1xuICB3b3JrZXJJZD86IHN0cmluZ1xuICBldmVudEJyb2FkY2FzdGVyOiBFdmVudEVtaXR0ZXJcbiAgZ2hlcmtpbkRvY3VtZW50OiBtZXNzYWdlcy5HaGVya2luRG9jdW1lbnRcbiAgbmV3SWQ6IElkR2VuZXJhdG9yLk5ld0lkXG4gIHBpY2tsZTogbWVzc2FnZXMuUGlja2xlXG4gIHRlc3RDYXNlOiBtZXNzYWdlcy5UZXN0Q2FzZVxuICByZXRyaWVzOiBudW1iZXJcbiAgc2tpcDogYm9vbGVhblxuICBmaWx0ZXJTdGFja1RyYWNlczogYm9vbGVhblxuICBzdXBwb3J0Q29kZUxpYnJhcnk6IFN1cHBvcnRDb2RlTGlicmFyeVxuICB3b3JsZFBhcmFtZXRlcnM6IEpzb25PYmplY3RcbiAgc25pcHBldEJ1aWxkZXI6IFN0ZXBEZWZpbml0aW9uU25pcHBldEJ1aWxkZXJcbn1cblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgVGVzdENhc2VSdW5uZXIge1xuICBwcml2YXRlIHJlYWRvbmx5IHdvcmtlcklkOiBzdHJpbmcgfCB1bmRlZmluZWRcbiAgcHJpdmF0ZSByZWFkb25seSBhdHRhY2htZW50TWFuYWdlcjogQXR0YWNobWVudE1hbmFnZXJcbiAgcHJpdmF0ZSBjdXJyZW50VGVzdENhc2VTdGFydGVkSWQ6IHN0cmluZ1xuICBwcml2YXRlIGN1cnJlbnRUZXN0U3RlcElkOiBzdHJpbmdcbiAgcHJpdmF0ZSByZWFkb25seSBldmVudEJyb2FkY2FzdGVyOiBFdmVudEVtaXR0ZXJcbiAgcHJpdmF0ZSByZWFkb25seSBnaGVya2luRG9jdW1lbnQ6IG1lc3NhZ2VzLkdoZXJraW5Eb2N1bWVudFxuICBwcml2YXRlIHJlYWRvbmx5IG5ld0lkOiBJZEdlbmVyYXRvci5OZXdJZFxuICBwcml2YXRlIHJlYWRvbmx5IHBpY2tsZTogbWVzc2FnZXMuUGlja2xlXG4gIHByaXZhdGUgcmVhZG9ubHkgdGVzdENhc2U6IG1lc3NhZ2VzLlRlc3RDYXNlXG4gIHByaXZhdGUgcmVhZG9ubHkgbWF4QXR0ZW1wdHM6IG51bWJlclxuICBwcml2YXRlIHJlYWRvbmx5IHNraXA6IGJvb2xlYW5cbiAgcHJpdmF0ZSByZWFkb25seSBmaWx0ZXJTdGFja1RyYWNlczogYm9vbGVhblxuICBwcml2YXRlIHJlYWRvbmx5IHN1cHBvcnRDb2RlTGlicmFyeTogU3VwcG9ydENvZGVMaWJyYXJ5XG4gIHByaXZhdGUgcmVhZG9ubHkgc25pcHBldEJ1aWxkZXI6IFN0ZXBEZWZpbml0aW9uU25pcHBldEJ1aWxkZXJcbiAgcHJpdmF0ZSB0ZXN0U3RlcFJlc3VsdHM6IG1lc3NhZ2VzLlRlc3RTdGVwUmVzdWx0W11cbiAgcHJpdmF0ZSB3b3JsZDogYW55XG4gIHByaXZhdGUgcmVhZG9ubHkgd29ybGRQYXJhbWV0ZXJzOiBKc29uT2JqZWN0XG5cbiAgY29uc3RydWN0b3Ioe1xuICAgIHdvcmtlcklkLFxuICAgIGV2ZW50QnJvYWRjYXN0ZXIsXG4gICAgZ2hlcmtpbkRvY3VtZW50LFxuICAgIG5ld0lkLFxuICAgIHBpY2tsZSxcbiAgICB0ZXN0Q2FzZSxcbiAgICByZXRyaWVzID0gMCxcbiAgICBza2lwLFxuICAgIGZpbHRlclN0YWNrVHJhY2VzLFxuICAgIHN1cHBvcnRDb2RlTGlicmFyeSxcbiAgICB3b3JsZFBhcmFtZXRlcnMsXG4gICAgc25pcHBldEJ1aWxkZXIsXG4gIH06IElOZXdUZXN0Q2FzZVJ1bm5lck9wdGlvbnMpIHtcbiAgICB0aGlzLndvcmtlcklkID0gd29ya2VySWRcbiAgICB0aGlzLmF0dGFjaG1lbnRNYW5hZ2VyID0gbmV3IEF0dGFjaG1lbnRNYW5hZ2VyKCh7IGRhdGEsIG1lZGlhLCBmaWxlTmFtZSB9KSA9PiB7XG4gICAgICBpZiAoZG9lc05vdEhhdmVWYWx1ZSh0aGlzLmN1cnJlbnRUZXN0U3RlcElkKSkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICAgJ0Nhbm5vdCBhdHRhY2ggd2hlbiBhIHN0ZXAvaG9vayBpcyBub3QgcnVubmluZy4gRW5zdXJlIHlvdXIgc3RlcC9ob29rIHdhaXRzIGZvciB0aGUgYXR0YWNoIHRvIGZpbmlzaC4nXG4gICAgICAgIClcbiAgICAgIH1cbiAgICAgIGNvbnN0IGF0dGFjaG1lbnQ6IG1lc3NhZ2VzLkVudmVsb3BlID0ge1xuICAgICAgICBhdHRhY2htZW50OiB7XG4gICAgICAgICAgYm9keTogZGF0YSxcbiAgICAgICAgICBjb250ZW50RW5jb2Rpbmc6IG1lZGlhLmVuY29kaW5nLFxuICAgICAgICAgIG1lZGlhVHlwZTogbWVkaWEuY29udGVudFR5cGUsXG4gICAgICAgICAgZmlsZU5hbWUsXG4gICAgICAgICAgdGVzdENhc2VTdGFydGVkSWQ6IHRoaXMuY3VycmVudFRlc3RDYXNlU3RhcnRlZElkLFxuICAgICAgICAgIHRlc3RTdGVwSWQ6IHRoaXMuY3VycmVudFRlc3RTdGVwSWQsXG4gICAgICAgICAgdGltZXN0YW1wOiB0aW1lc3RhbXAoKSxcbiAgICAgICAgfSxcbiAgICAgIH1cbiAgICAgIHRoaXMuZXZlbnRCcm9hZGNhc3Rlci5lbWl0KCdlbnZlbG9wZScsIGF0dGFjaG1lbnQpXG4gICAgfSlcbiAgICB0aGlzLmV2ZW50QnJvYWRjYXN0ZXIgPSBldmVudEJyb2FkY2FzdGVyXG4gICAgdGhpcy5naGVya2luRG9jdW1lbnQgPSBnaGVya2luRG9jdW1lbnRcbiAgICB0aGlzLm1heEF0dGVtcHRzID0gMSArIChza2lwID8gMCA6IHJldHJpZXMpXG4gICAgdGhpcy5uZXdJZCA9IG5ld0lkXG4gICAgdGhpcy5waWNrbGUgPSBwaWNrbGVcbiAgICB0aGlzLnRlc3RDYXNlID0gdGVzdENhc2VcbiAgICB0aGlzLnNraXAgPSBza2lwXG4gICAgdGhpcy5maWx0ZXJTdGFja1RyYWNlcyA9IGZpbHRlclN0YWNrVHJhY2VzXG4gICAgdGhpcy5zdXBwb3J0Q29kZUxpYnJhcnkgPSBzdXBwb3J0Q29kZUxpYnJhcnlcbiAgICB0aGlzLndvcmxkUGFyYW1ldGVycyA9IHdvcmxkUGFyYW1ldGVyc1xuICAgIHRoaXMuc25pcHBldEJ1aWxkZXIgPSBzbmlwcGV0QnVpbGRlclxuICAgIHRoaXMucmVzZXRUZXN0UHJvZ3Jlc3NEYXRhKClcbiAgfVxuXG4gIHJlc2V0VGVzdFByb2dyZXNzRGF0YSgpOiB2b2lkIHtcbiAgICB0aGlzLndvcmxkID0gbmV3IHRoaXMuc3VwcG9ydENvZGVMaWJyYXJ5LldvcmxkKHtcbiAgICAgIGF0dGFjaDogdGhpcy5hdHRhY2htZW50TWFuYWdlci5jcmVhdGUuYmluZCh0aGlzLmF0dGFjaG1lbnRNYW5hZ2VyKSxcbiAgICAgIGxvZzogdGhpcy5hdHRhY2htZW50TWFuYWdlci5sb2cuYmluZCh0aGlzLmF0dGFjaG1lbnRNYW5hZ2VyKSxcbiAgICAgIGxpbms6IHRoaXMuYXR0YWNobWVudE1hbmFnZXIubGluay5iaW5kKHRoaXMuYXR0YWNobWVudE1hbmFnZXIpLFxuICAgICAgcGFyYW1ldGVyczogc3RydWN0dXJlZENsb25lKHRoaXMud29ybGRQYXJhbWV0ZXJzKSxcbiAgICB9IHNhdGlzZmllcyBJV29ybGRPcHRpb25zKVxuICAgIHRoaXMudGVzdFN0ZXBSZXN1bHRzID0gW11cbiAgfVxuXG4gIGdldEJlZm9yZVN0ZXBIb29rRGVmaW5pdGlvbnMoKTogVGVzdFN0ZXBIb29rRGVmaW5pdGlvbltdIHtcbiAgICByZXR1cm4gdGhpcy5zdXBwb3J0Q29kZUxpYnJhcnkuYmVmb3JlVGVzdFN0ZXBIb29rRGVmaW5pdGlvbnMuZmlsdGVyKChob29rRGVmaW5pdGlvbikgPT5cbiAgICAgIGhvb2tEZWZpbml0aW9uLmFwcGxpZXNUb1Rlc3RDYXNlKHRoaXMucGlja2xlKVxuICAgIClcbiAgfVxuXG4gIGdldEFmdGVyU3RlcEhvb2tEZWZpbml0aW9ucygpOiBUZXN0U3RlcEhvb2tEZWZpbml0aW9uW10ge1xuICAgIHJldHVybiB0aGlzLnN1cHBvcnRDb2RlTGlicmFyeS5hZnRlclRlc3RTdGVwSG9va0RlZmluaXRpb25zXG4gICAgICAuc2xpY2UoMClcbiAgICAgIC5yZXZlcnNlKClcbiAgICAgIC5maWx0ZXIoKGhvb2tEZWZpbml0aW9uKSA9PiBob29rRGVmaW5pdGlvbi5hcHBsaWVzVG9UZXN0Q2FzZSh0aGlzLnBpY2tsZSkpXG4gIH1cblxuICBnZXRXb3JzdFN0ZXBSZXN1bHQoKTogbWVzc2FnZXMuVGVzdFN0ZXBSZXN1bHQge1xuICAgIGlmICh0aGlzLnRlc3RTdGVwUmVzdWx0cy5sZW5ndGggPT09IDApIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIHN0YXR1czogdGhpcy5za2lwXG4gICAgICAgICAgPyBtZXNzYWdlcy5UZXN0U3RlcFJlc3VsdFN0YXR1cy5TS0lQUEVEXG4gICAgICAgICAgOiBtZXNzYWdlcy5UZXN0U3RlcFJlc3VsdFN0YXR1cy5QQVNTRUQsXG4gICAgICAgIGR1cmF0aW9uOiBtZXNzYWdlcy5UaW1lQ29udmVyc2lvbi5taWxsaXNlY29uZHNUb0R1cmF0aW9uKDApLFxuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gZ2V0V29yc3RUZXN0U3RlcFJlc3VsdCh0aGlzLnRlc3RTdGVwUmVzdWx0cylcbiAgfVxuXG4gIGFzeW5jIGludm9rZVN0ZXAoXG4gICAgc3RlcDogbWVzc2FnZXMuUGlja2xlU3RlcCxcbiAgICBzdGVwRGVmaW5pdGlvbjogSURlZmluaXRpb24sXG4gICAgaG9va1BhcmFtZXRlcj86IElUZXN0Q2FzZUhvb2tQYXJhbWV0ZXJcbiAgKTogUHJvbWlzZTxSdW5TdGVwUmVzdWx0PiB7XG4gICAgcmV0dXJuIGF3YWl0IFN0ZXBSdW5uZXIucnVuKHtcbiAgICAgIGRlZmF1bHRUaW1lb3V0OiB0aGlzLnN1cHBvcnRDb2RlTGlicmFyeS5kZWZhdWx0VGltZW91dCxcbiAgICAgIGZpbHRlclN0YWNrVHJhY2VzOiB0aGlzLmZpbHRlclN0YWNrVHJhY2VzLFxuICAgICAgaG9va1BhcmFtZXRlcixcbiAgICAgIHN0ZXAsXG4gICAgICBzdGVwRGVmaW5pdGlvbixcbiAgICAgIHdvcmxkOiB0aGlzLndvcmxkLFxuICAgIH0pXG4gIH1cblxuICBpc1NraXBwaW5nU3RlcHMoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0V29yc3RTdGVwUmVzdWx0KCkuc3RhdHVzICE9PSBtZXNzYWdlcy5UZXN0U3RlcFJlc3VsdFN0YXR1cy5QQVNTRURcbiAgfVxuXG4gIGlzRXhwbGljaXRseVNraXBwZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICF0aGlzLnNraXAgJiYgdGhpcy5nZXRXb3JzdFN0ZXBSZXN1bHQoKS5zdGF0dXMgPT09IG1lc3NhZ2VzLlRlc3RTdGVwUmVzdWx0U3RhdHVzLlNLSVBQRURcbiAgfVxuXG4gIHNob3VsZFNraXBIb29rKGlzQmVmb3JlSG9vazogYm9vbGVhbik6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnNraXAgfHwgKHRoaXMuaXNTa2lwcGluZ1N0ZXBzKCkgJiYgaXNCZWZvcmVIb29rKVxuICB9XG5cbiAgYXN5bmMgYXJvdW5kVGVzdFN0ZXAoXG4gICAgdGVzdFN0ZXBJZDogc3RyaW5nLFxuICAgIHJ1blN0ZXBGbjogKCkgPT4gUHJvbWlzZTxtZXNzYWdlcy5UZXN0U3RlcFJlc3VsdD5cbiAgKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgdGVzdFN0ZXBTdGFydGVkOiBtZXNzYWdlcy5FbnZlbG9wZSA9IHtcbiAgICAgIHRlc3RTdGVwU3RhcnRlZDoge1xuICAgICAgICB0ZXN0Q2FzZVN0YXJ0ZWRJZDogdGhpcy5jdXJyZW50VGVzdENhc2VTdGFydGVkSWQsXG4gICAgICAgIHRlc3RTdGVwSWQsXG4gICAgICAgIHRpbWVzdGFtcDogdGltZXN0YW1wKCksXG4gICAgICB9LFxuICAgIH1cbiAgICB0aGlzLmV2ZW50QnJvYWRjYXN0ZXIuZW1pdCgnZW52ZWxvcGUnLCB0ZXN0U3RlcFN0YXJ0ZWQpXG4gICAgdGhpcy5jdXJyZW50VGVzdFN0ZXBJZCA9IHRlc3RTdGVwSWRcbiAgICBjb25zdCB0ZXN0U3RlcFJlc3VsdCA9IGF3YWl0IHJ1blN0ZXBGbigpXG4gICAgdGhpcy5jdXJyZW50VGVzdFN0ZXBJZCA9IG51bGxcbiAgICB0aGlzLnRlc3RTdGVwUmVzdWx0cy5wdXNoKHRlc3RTdGVwUmVzdWx0KVxuICAgIGNvbnN0IHRlc3RTdGVwRmluaXNoZWQ6IG1lc3NhZ2VzLkVudmVsb3BlID0ge1xuICAgICAgdGVzdFN0ZXBGaW5pc2hlZDoge1xuICAgICAgICB0ZXN0Q2FzZVN0YXJ0ZWRJZDogdGhpcy5jdXJyZW50VGVzdENhc2VTdGFydGVkSWQsXG4gICAgICAgIHRlc3RTdGVwSWQsXG4gICAgICAgIHRlc3RTdGVwUmVzdWx0LFxuICAgICAgICB0aW1lc3RhbXA6IHRpbWVzdGFtcCgpLFxuICAgICAgfSxcbiAgICB9XG4gICAgdGhpcy5ldmVudEJyb2FkY2FzdGVyLmVtaXQoJ2VudmVsb3BlJywgdGVzdFN0ZXBGaW5pc2hlZClcbiAgfVxuXG4gIGFzeW5jIHJ1bigpOiBQcm9taXNlPG1lc3NhZ2VzLlRlc3RTdGVwUmVzdWx0U3RhdHVzPiB7XG4gICAgZm9yIChsZXQgYXR0ZW1wdCA9IDA7IGF0dGVtcHQgPCB0aGlzLm1heEF0dGVtcHRzOyBhdHRlbXB0KyspIHtcbiAgICAgIGNvbnN0IG1vcmVBdHRlbXB0c1JlbWFpbmluZyA9IGF0dGVtcHQgKyAxIDwgdGhpcy5tYXhBdHRlbXB0c1xuXG4gICAgICBjb25zdCB3aWxsQmVSZXRyaWVkID0gYXdhaXQgdGhpcy5ydW5BdHRlbXB0KGF0dGVtcHQsIG1vcmVBdHRlbXB0c1JlbWFpbmluZylcblxuICAgICAgaWYgKCF3aWxsQmVSZXRyaWVkKSB7XG4gICAgICAgIGJyZWFrXG4gICAgICB9XG4gICAgICB0aGlzLnJlc2V0VGVzdFByb2dyZXNzRGF0YSgpXG4gICAgfVxuICAgIHJldHVybiB0aGlzLmdldFdvcnN0U3RlcFJlc3VsdCgpLnN0YXR1c1xuICB9XG5cbiAgYXN5bmMgcnVuQXR0ZW1wdChhdHRlbXB0OiBudW1iZXIsIG1vcmVBdHRlbXB0c1JlbWFpbmluZzogYm9vbGVhbik6IFByb21pc2U8Ym9vbGVhbj4ge1xuICAgIHRoaXMuY3VycmVudFRlc3RDYXNlU3RhcnRlZElkID0gdGhpcy5uZXdJZCgpXG4gICAgY29uc3QgdGVzdENhc2VTdGFydGVkOiBtZXNzYWdlcy5FbnZlbG9wZSA9IHtcbiAgICAgIHRlc3RDYXNlU3RhcnRlZDoge1xuICAgICAgICBhdHRlbXB0LFxuICAgICAgICB0ZXN0Q2FzZUlkOiB0aGlzLnRlc3RDYXNlLmlkLFxuICAgICAgICBpZDogdGhpcy5jdXJyZW50VGVzdENhc2VTdGFydGVkSWQsXG4gICAgICAgIHRpbWVzdGFtcDogdGltZXN0YW1wKCksXG4gICAgICB9LFxuICAgIH1cbiAgICBpZiAodGhpcy53b3JrZXJJZCkge1xuICAgICAgdGVzdENhc2VTdGFydGVkLnRlc3RDYXNlU3RhcnRlZC53b3JrZXJJZCA9IHRoaXMud29ya2VySWRcbiAgICB9XG4gICAgdGhpcy5ldmVudEJyb2FkY2FzdGVyLmVtaXQoJ2VudmVsb3BlJywgdGVzdENhc2VTdGFydGVkKVxuICAgIC8vIHVzZWQgdG8gZGV0ZXJtaW5lIHdoZXRoZXIgYSBob29rIGlzIGEgQmVmb3JlIG9yIEFmdGVyXG4gICAgbGV0IGRpZFdlUnVuU3RlcHNZZXQgPSBmYWxzZVxuICAgIGxldCBlcnJvciA9IGZhbHNlXG4gICAgZm9yIChjb25zdCB0ZXN0U3RlcCBvZiB0aGlzLnRlc3RDYXNlLnRlc3RTdGVwcykge1xuICAgICAgYXdhaXQgdGhpcy5hcm91bmRUZXN0U3RlcCh0ZXN0U3RlcC5pZCwgYXN5bmMgKCkgPT4ge1xuICAgICAgICBpZiAoZG9lc0hhdmVWYWx1ZSh0ZXN0U3RlcC5ob29rSWQpKSB7XG4gICAgICAgICAgY29uc3QgaG9va1BhcmFtZXRlcjogSVRlc3RDYXNlSG9va1BhcmFtZXRlciA9IHtcbiAgICAgICAgICAgIGdoZXJraW5Eb2N1bWVudDogdGhpcy5naGVya2luRG9jdW1lbnQsXG4gICAgICAgICAgICBwaWNrbGU6IHRoaXMucGlja2xlLFxuICAgICAgICAgICAgdGVzdENhc2VTdGFydGVkSWQ6IHRoaXMuY3VycmVudFRlc3RDYXNlU3RhcnRlZElkLFxuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAoZGlkV2VSdW5TdGVwc1lldCkge1xuICAgICAgICAgICAgaG9va1BhcmFtZXRlci5yZXN1bHQgPSB0aGlzLmdldFdvcnN0U3RlcFJlc3VsdCgpXG4gICAgICAgICAgICBob29rUGFyYW1ldGVyLmVycm9yID0gZXJyb3JcbiAgICAgICAgICAgIGhvb2tQYXJhbWV0ZXIud2lsbEJlUmV0cmllZCA9XG4gICAgICAgICAgICAgIHRoaXMuZ2V0V29yc3RTdGVwUmVzdWx0KCkuc3RhdHVzID09PSBtZXNzYWdlcy5UZXN0U3RlcFJlc3VsdFN0YXR1cy5GQUlMRUQgJiZcbiAgICAgICAgICAgICAgbW9yZUF0dGVtcHRzUmVtYWluaW5nXG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiBhd2FpdCB0aGlzLnJ1bkhvb2soXG4gICAgICAgICAgICBmaW5kSG9va0RlZmluaXRpb24odGVzdFN0ZXAuaG9va0lkLCB0aGlzLnN1cHBvcnRDb2RlTGlicmFyeSksXG4gICAgICAgICAgICBob29rUGFyYW1ldGVyLFxuICAgICAgICAgICAgIWRpZFdlUnVuU3RlcHNZZXRcbiAgICAgICAgICApXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgY29uc3QgcGlja2xlU3RlcCA9IHRoaXMucGlja2xlLnN0ZXBzLmZpbmQoXG4gICAgICAgICAgICAocGlja2xlU3RlcCkgPT4gcGlja2xlU3RlcC5pZCA9PT0gdGVzdFN0ZXAucGlja2xlU3RlcElkXG4gICAgICAgICAgKVxuICAgICAgICAgIGNvbnN0IHRlc3RTdGVwUmVzdWx0ID0gYXdhaXQgdGhpcy5ydW5TdGVwKHBpY2tsZVN0ZXAsIHRlc3RTdGVwKVxuICAgICAgICAgIGRpZFdlUnVuU3RlcHNZZXQgPSB0cnVlXG4gICAgICAgICAgZXJyb3IgPSB0ZXN0U3RlcFJlc3VsdC5lcnJvclxuICAgICAgICAgIHJldHVybiB0ZXN0U3RlcFJlc3VsdC5yZXN1bHRcbiAgICAgICAgfVxuICAgICAgfSlcbiAgICB9XG5cbiAgICBjb25zdCB3aWxsQmVSZXRyaWVkID1cbiAgICAgIHRoaXMuZ2V0V29yc3RTdGVwUmVzdWx0KCkuc3RhdHVzID09PSBtZXNzYWdlcy5UZXN0U3RlcFJlc3VsdFN0YXR1cy5GQUlMRUQgJiZcbiAgICAgIG1vcmVBdHRlbXB0c1JlbWFpbmluZ1xuICAgIGNvbnN0IHRlc3RDYXNlRmluaXNoZWQ6IG1lc3NhZ2VzLkVudmVsb3BlID0ge1xuICAgICAgdGVzdENhc2VGaW5pc2hlZDoge1xuICAgICAgICB0ZXN0Q2FzZVN0YXJ0ZWRJZDogdGhpcy5jdXJyZW50VGVzdENhc2VTdGFydGVkSWQsXG4gICAgICAgIHRpbWVzdGFtcDogdGltZXN0YW1wKCksXG4gICAgICAgIHdpbGxCZVJldHJpZWQsXG4gICAgICB9LFxuICAgIH1cbiAgICB0aGlzLmV2ZW50QnJvYWRjYXN0ZXIuZW1pdCgnZW52ZWxvcGUnLCB0ZXN0Q2FzZUZpbmlzaGVkKVxuXG4gICAgcmV0dXJuIHdpbGxCZVJldHJpZWRcbiAgfVxuXG4gIGFzeW5jIHJ1bkhvb2soXG4gICAgaG9va0RlZmluaXRpb246IFRlc3RDYXNlSG9va0RlZmluaXRpb24sXG4gICAgaG9va1BhcmFtZXRlcjogSVRlc3RDYXNlSG9va1BhcmFtZXRlcixcbiAgICBpc0JlZm9yZUhvb2s6IGJvb2xlYW5cbiAgKTogUHJvbWlzZTxtZXNzYWdlcy5UZXN0U3RlcFJlc3VsdD4ge1xuICAgIGlmICh0aGlzLnNob3VsZFNraXBIb29rKGlzQmVmb3JlSG9vaykpIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIHN0YXR1czogbWVzc2FnZXMuVGVzdFN0ZXBSZXN1bHRTdGF0dXMuU0tJUFBFRCxcbiAgICAgICAgZHVyYXRpb246IG1lc3NhZ2VzLlRpbWVDb252ZXJzaW9uLm1pbGxpc2Vjb25kc1RvRHVyYXRpb24oMCksXG4gICAgICB9XG4gICAgfVxuICAgIGNvbnN0IHsgcmVzdWx0IH0gPSBhd2FpdCB0aGlzLmludm9rZVN0ZXAobnVsbCwgaG9va0RlZmluaXRpb24sIGhvb2tQYXJhbWV0ZXIpXG4gICAgcmV0dXJuIHJlc3VsdFxuICB9XG5cbiAgYXN5bmMgcnVuU3RlcEhvb2tzKFxuICAgIHN0ZXBIb29rczogVGVzdFN0ZXBIb29rRGVmaW5pdGlvbltdLFxuICAgIHBpY2tsZVN0ZXA6IG1lc3NhZ2VzLlBpY2tsZVN0ZXAsXG4gICAgc3RlcFJlc3VsdD86IFJ1blN0ZXBSZXN1bHRcbiAgKTogUHJvbWlzZTxtZXNzYWdlcy5UZXN0U3RlcFJlc3VsdFtdPiB7XG4gICAgY29uc3Qgc3RlcEhvb2tzUmVzdWx0ID0gW11cbiAgICBjb25zdCBob29rUGFyYW1ldGVyOiBJVGVzdFN0ZXBIb29rUGFyYW1ldGVyID0ge1xuICAgICAgZ2hlcmtpbkRvY3VtZW50OiB0aGlzLmdoZXJraW5Eb2N1bWVudCxcbiAgICAgIHBpY2tsZTogdGhpcy5waWNrbGUsXG4gICAgICBwaWNrbGVTdGVwLFxuICAgICAgdGVzdENhc2VTdGFydGVkSWQ6IHRoaXMuY3VycmVudFRlc3RDYXNlU3RhcnRlZElkLFxuICAgICAgdGVzdFN0ZXBJZDogdGhpcy5jdXJyZW50VGVzdFN0ZXBJZCxcbiAgICAgIHJlc3VsdDogc3RlcFJlc3VsdD8ucmVzdWx0LFxuICAgICAgZXJyb3I6IHN0ZXBSZXN1bHQ/LmVycm9yLFxuICAgIH1cbiAgICBmb3IgKGNvbnN0IHN0ZXBIb29rRGVmaW5pdGlvbiBvZiBzdGVwSG9va3MpIHtcbiAgICAgIGNvbnN0IHsgcmVzdWx0IH0gPSBhd2FpdCB0aGlzLmludm9rZVN0ZXAobnVsbCwgc3RlcEhvb2tEZWZpbml0aW9uLCBob29rUGFyYW1ldGVyKVxuICAgICAgc3RlcEhvb2tzUmVzdWx0LnB1c2gocmVzdWx0KVxuICAgIH1cbiAgICByZXR1cm4gc3RlcEhvb2tzUmVzdWx0XG4gIH1cblxuICBhc3luYyBydW5TdGVwKFxuICAgIHBpY2tsZVN0ZXA6IG1lc3NhZ2VzLlBpY2tsZVN0ZXAsXG4gICAgdGVzdFN0ZXA6IG1lc3NhZ2VzLlRlc3RTdGVwXG4gICk6IFByb21pc2U8UnVuU3RlcFJlc3VsdD4ge1xuICAgIGlmICh0aGlzLmlzRXhwbGljaXRseVNraXBwZWQoKSkge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgcmVzdWx0OiB7XG4gICAgICAgICAgc3RhdHVzOiBtZXNzYWdlcy5UZXN0U3RlcFJlc3VsdFN0YXR1cy5TS0lQUEVELFxuICAgICAgICAgIGR1cmF0aW9uOiBtZXNzYWdlcy5UaW1lQ29udmVyc2lvbi5taWxsaXNlY29uZHNUb0R1cmF0aW9uKDApLFxuICAgICAgICB9LFxuICAgICAgfVxuICAgIH1cbiAgICBjb25zdCBzdGVwRGVmaW5pdGlvbnMgPSB0ZXN0U3RlcC5zdGVwRGVmaW5pdGlvbklkcy5tYXAoKHN0ZXBEZWZpbml0aW9uSWQpID0+IHtcbiAgICAgIHJldHVybiBmaW5kU3RlcERlZmluaXRpb24oc3RlcERlZmluaXRpb25JZCwgdGhpcy5zdXBwb3J0Q29kZUxpYnJhcnkpXG4gICAgfSlcbiAgICBpZiAoc3RlcERlZmluaXRpb25zLmxlbmd0aCA9PT0gMCkge1xuICAgICAgdGhpcy5ldmVudEJyb2FkY2FzdGVyLmVtaXQoJ2VudmVsb3BlJywge1xuICAgICAgICBzdWdnZXN0aW9uOiBtYWtlU3VnZ2VzdGlvbih7XG4gICAgICAgICAgbmV3SWQ6IHRoaXMubmV3SWQsXG4gICAgICAgICAgc25pcHBldEJ1aWxkZXI6IHRoaXMuc25pcHBldEJ1aWxkZXIsXG4gICAgICAgICAgcGlja2xlU3RlcCxcbiAgICAgICAgfSksXG4gICAgICB9IHNhdGlzZmllcyBFbnZlbG9wZSlcbiAgICAgIHJldHVybiB7XG4gICAgICAgIHJlc3VsdDoge1xuICAgICAgICAgIHN0YXR1czogbWVzc2FnZXMuVGVzdFN0ZXBSZXN1bHRTdGF0dXMuVU5ERUZJTkVELFxuICAgICAgICAgIGR1cmF0aW9uOiBtZXNzYWdlcy5UaW1lQ29udmVyc2lvbi5taWxsaXNlY29uZHNUb0R1cmF0aW9uKDApLFxuICAgICAgICB9LFxuICAgICAgfVxuICAgIH0gZWxzZSBpZiAoc3RlcERlZmluaXRpb25zLmxlbmd0aCA+IDEpIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIHJlc3VsdDoge1xuICAgICAgICAgIHN0YXR1czogbWVzc2FnZXMuVGVzdFN0ZXBSZXN1bHRTdGF0dXMuQU1CSUdVT1VTLFxuICAgICAgICAgIGR1cmF0aW9uOiBtZXNzYWdlcy5UaW1lQ29udmVyc2lvbi5taWxsaXNlY29uZHNUb0R1cmF0aW9uKDApLFxuICAgICAgICB9LFxuICAgICAgfVxuICAgIH0gZWxzZSBpZiAodGhpcy5pc1NraXBwaW5nU3RlcHMoKSkge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgcmVzdWx0OiB7XG4gICAgICAgICAgc3RhdHVzOiBtZXNzYWdlcy5UZXN0U3RlcFJlc3VsdFN0YXR1cy5TS0lQUEVELFxuICAgICAgICAgIGR1cmF0aW9uOiBtZXNzYWdlcy5UaW1lQ29udmVyc2lvbi5taWxsaXNlY29uZHNUb0R1cmF0aW9uKDApLFxuICAgICAgICB9LFxuICAgICAgfVxuICAgIH1cblxuICAgIGxldCBzdGVwUmVzdWx0OiBhbnlcbiAgICBsZXQgZXJyb3I6IGFueVxuICAgIGxldCBzdGVwUmVzdWx0cyA9IGF3YWl0IHRoaXMucnVuU3RlcEhvb2tzKHRoaXMuZ2V0QmVmb3JlU3RlcEhvb2tEZWZpbml0aW9ucygpLCBwaWNrbGVTdGVwKVxuICAgIGlmIChnZXRXb3JzdFRlc3RTdGVwUmVzdWx0KHN0ZXBSZXN1bHRzKS5zdGF0dXMgIT09IG1lc3NhZ2VzLlRlc3RTdGVwUmVzdWx0U3RhdHVzLkZBSUxFRCkge1xuICAgICAgc3RlcFJlc3VsdCA9IGF3YWl0IHRoaXMuaW52b2tlU3RlcChwaWNrbGVTdGVwLCBzdGVwRGVmaW5pdGlvbnNbMF0pXG4gICAgICBzdGVwUmVzdWx0cy5wdXNoKHN0ZXBSZXN1bHQucmVzdWx0KVxuICAgICAgZXJyb3IgPSBzdGVwUmVzdWx0LmVycm9yXG4gICAgfVxuICAgIGNvbnN0IGFmdGVyU3RlcEhvb2tSZXN1bHRzID0gYXdhaXQgdGhpcy5ydW5TdGVwSG9va3MoXG4gICAgICB0aGlzLmdldEFmdGVyU3RlcEhvb2tEZWZpbml0aW9ucygpLFxuICAgICAgcGlja2xlU3RlcCxcbiAgICAgIHN0ZXBSZXN1bHRcbiAgICApXG4gICAgc3RlcFJlc3VsdHMgPSBzdGVwUmVzdWx0cy5jb25jYXQoYWZ0ZXJTdGVwSG9va1Jlc3VsdHMpXG5cbiAgICBjb25zdCBmaW5hbFN0ZXBSZXN1bHQgPSBnZXRXb3JzdFRlc3RTdGVwUmVzdWx0KHN0ZXBSZXN1bHRzKVxuICAgIGxldCBmaW5hbER1cmF0aW9uID0gbWVzc2FnZXMuVGltZUNvbnZlcnNpb24ubWlsbGlzZWNvbmRzVG9EdXJhdGlvbigwKVxuICAgIGZvciAoY29uc3QgcmVzdWx0IG9mIHN0ZXBSZXN1bHRzKSB7XG4gICAgICBmaW5hbER1cmF0aW9uID0gbWVzc2FnZXMuVGltZUNvbnZlcnNpb24uYWRkRHVyYXRpb25zKGZpbmFsRHVyYXRpb24sIHJlc3VsdC5kdXJhdGlvbilcbiAgICB9XG4gICAgZmluYWxTdGVwUmVzdWx0LmR1cmF0aW9uID0gZmluYWxEdXJhdGlvblxuICAgIHJldHVybiB7XG4gICAgICByZXN1bHQ6IGZpbmFsU3RlcFJlc3VsdCxcbiAgICAgIGVycm9yLFxuICAgIH1cbiAgfVxufVxuXG5mdW5jdGlvbiBmaW5kSG9va0RlZmluaXRpb24oXG4gIGlkOiBzdHJpbmcsXG4gIHN1cHBvcnRDb2RlTGlicmFyeTogU3VwcG9ydENvZGVMaWJyYXJ5XG4pOiBUZXN0Q2FzZUhvb2tEZWZpbml0aW9uIHtcbiAgcmV0dXJuIFtcbiAgICAuLi5zdXBwb3J0Q29kZUxpYnJhcnkuYmVmb3JlVGVzdENhc2VIb29rRGVmaW5pdGlvbnMsXG4gICAgLi4uc3VwcG9ydENvZGVMaWJyYXJ5LmFmdGVyVGVzdENhc2VIb29rRGVmaW5pdGlvbnMsXG4gIF0uZmluZCgoZGVmaW5pdGlvbikgPT4gZGVmaW5pdGlvbi5pZCA9PT0gaWQpXG59XG5cbmZ1bmN0aW9uIGZpbmRTdGVwRGVmaW5pdGlvbihpZDogc3RyaW5nLCBzdXBwb3J0Q29kZUxpYnJhcnk6IFN1cHBvcnRDb2RlTGlicmFyeSk6IFN0ZXBEZWZpbml0aW9uIHtcbiAgcmV0dXJuIHN1cHBvcnRDb2RlTGlicmFyeS5zdGVwRGVmaW5pdGlvbnMuZmluZCgoZGVmaW5pdGlvbikgPT4gZGVmaW5pdGlvbi5pZCA9PT0gaWQpXG59XG4iXX0=
@@ -1,5 +1,5 @@
1
- import { JsonObject } from 'type-fest';
2
- import { AssembledTestCase } from '../assemble';
1
+ import type { JsonObject } from 'type-fest';
2
+ import type { AssembledTestCase } from '../assemble';
3
3
  export interface RuntimeOptions {
4
4
  dryRun: boolean;
5
5
  failFast: boolean;
@@ -13,5 +13,9 @@ export interface Runtime {
13
13
  run: () => Promise<boolean>;
14
14
  }
15
15
  export interface RuntimeAdapter {
16
- run(assembledTestCases: ReadonlyArray<AssembledTestCase>): Promise<boolean>;
16
+ setup(): Promise<void>;
17
+ runBeforeAllHooks(): Promise<boolean>;
18
+ runTestCases(assembledTestCases: ReadonlyArray<AssembledTestCase>): Promise<boolean>;
19
+ runAfterAllHooks(): Promise<boolean>;
20
+ teardown(): Promise<void>;
17
21
  }
@@ -1,3 +1,3 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=types.js.map
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcnVudGltZS90eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBKc29uT2JqZWN0IH0gZnJvbSAndHlwZS1mZXN0J1xuaW1wb3J0IHR5cGUgeyBBc3NlbWJsZWRUZXN0Q2FzZSB9IGZyb20gJy4uL2Fzc2VtYmxlJ1xuXG5leHBvcnQgaW50ZXJmYWNlIFJ1bnRpbWVPcHRpb25zIHtcbiAgZHJ5UnVuOiBib29sZWFuXG4gIGZhaWxGYXN0OiBib29sZWFuXG4gIGZpbHRlclN0YWNrdHJhY2VzOiBib29sZWFuXG4gIHJldHJ5OiBudW1iZXJcbiAgcmV0cnlUYWdGaWx0ZXI6IHN0cmluZ1xuICBzdHJpY3Q6IGJvb2xlYW5cbiAgd29ybGRQYXJhbWV0ZXJzOiBKc29uT2JqZWN0XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUnVudGltZSB7XG4gIHJ1bjogKCkgPT4gUHJvbWlzZTxib29sZWFuPlxufVxuXG5leHBvcnQgaW50ZXJmYWNlIFJ1bnRpbWVBZGFwdGVyIHtcbiAgc2V0dXAoKTogUHJvbWlzZTx2b2lkPlxuICBydW5CZWZvcmVBbGxIb29rcygpOiBQcm9taXNlPGJvb2xlYW4+XG4gIHJ1blRlc3RDYXNlcyhhc3NlbWJsZWRUZXN0Q2FzZXM6IFJlYWRvbmx5QXJyYXk8QXNzZW1ibGVkVGVzdENhc2U+KTogUHJvbWlzZTxib29sZWFuPlxuICBydW5BZnRlckFsbEhvb2tzKCk6IFByb21pc2U8Ym9vbGVhbj5cbiAgdGVhcmRvd24oKTogUHJvbWlzZTx2b2lkPlxufVxuIl19
@@ -1,13 +1,15 @@
1
- import { EventEmitter } from 'node:events';
2
- import { IdGenerator, TestStepResult } from '@cucumber/messages';
3
- import { AssembledTestCase } from '../assemble';
4
- import { SupportCodeLibrary } from '../support_code_library_builder/types';
5
- import StepDefinitionSnippetBuilder from '../formatter/step_definition_snippet_builder';
6
- import { RuntimeOptions } from './types';
7
- export interface RunHookResult {
8
- result: TestStepResult;
9
- error?: any;
10
- }
1
+ import type { EventEmitter } from 'node:events';
2
+ import { type IdGenerator } from '@cucumber/messages';
3
+ import type { AssembledTestCase } from '../assemble';
4
+ import type StepDefinitionSnippetBuilder from '../formatter/step_definition_snippet_builder';
5
+ import type { SupportCodeLibrary } from '../support_code_library_builder/types';
6
+ import type { RuntimeOptions } from './types';
7
+ /**
8
+ * Runs individual units of work asynchronously
9
+ * @remarks
10
+ * Unaware of the overall test run scope, or whether it's on the main thread,
11
+ * or whether any other workers are in play.
12
+ */
11
13
  export declare class Worker {
12
14
  private readonly testRunStartedId;
13
15
  private readonly workerId;
@@ -18,8 +20,7 @@ export declare class Worker {
18
20
  private readonly snippetBuilder;
19
21
  constructor(testRunStartedId: string, workerId: string | undefined, eventBroadcaster: EventEmitter, newId: IdGenerator.NewId, options: RuntimeOptions, supportCodeLibrary: SupportCodeLibrary, snippetBuilder: StepDefinitionSnippetBuilder);
20
22
  private runTestRunHook;
21
- private wrapTestRunHookError;
22
- runBeforeAllHooks(): Promise<RunHookResult[]>;
23
+ runBeforeAllHooks(): Promise<boolean>;
23
24
  runTestCase({ gherkinDocument, pickle, testCase }: AssembledTestCase, failing: boolean): Promise<boolean>;
24
- runAfterAllHooks(): Promise<RunHookResult[]>;
25
+ runAfterAllHooks(): Promise<boolean>;
25
26
  }
@@ -7,12 +7,17 @@ exports.Worker = void 0;
7
7
  const messages_1 = require("@cucumber/messages");
8
8
  const user_code_runner_1 = __importDefault(require("../user_code_runner"));
9
9
  const value_checker_1 = require("../value_checker");
10
- const helpers_1 = require("../formatter/helpers");
11
- const helpers_2 = require("./helpers");
12
- const test_case_runner_1 = __importDefault(require("./test_case_runner"));
13
- const scope_1 = require("./scope");
14
10
  const format_error_1 = require("./format_error");
11
+ const helpers_1 = require("./helpers");
12
+ const scope_1 = require("./scope");
15
13
  const stopwatch_1 = require("./stopwatch");
14
+ const test_case_runner_1 = __importDefault(require("./test_case_runner"));
15
+ /**
16
+ * Runs individual units of work asynchronously
17
+ * @remarks
18
+ * Unaware of the overall test run scope, or whether it's on the main thread,
19
+ * or whether any other workers are in play.
20
+ */
16
21
  class Worker {
17
22
  testRunStartedId;
18
23
  workerId;
@@ -42,7 +47,6 @@ class Worker {
42
47
  },
43
48
  });
44
49
  let result;
45
- let error;
46
50
  if (this.options.dryRun) {
47
51
  result = {
48
52
  duration: {
@@ -55,20 +59,19 @@ class Worker {
55
59
  else {
56
60
  const stopwatch = (0, stopwatch_1.create)().start();
57
61
  const context = { parameters: this.options.worldParameters };
58
- const { error: rawError } = await (0, scope_1.runInTestRunScope)({ context }, () => user_code_runner_1.default.run({
62
+ const { error } = await (0, scope_1.runInTestRunScope)({ context }, () => user_code_runner_1.default.run({
59
63
  argsArray: [],
60
64
  fn: hookDefinition.code,
61
65
  thisArg: context,
62
66
  timeoutInMilliseconds: (0, value_checker_1.valueOrDefault)(hookDefinition.options.timeout, this.supportCodeLibrary.defaultTimeout),
63
67
  }));
64
68
  const duration = stopwatch.stop().duration();
65
- if ((0, value_checker_1.doesHaveValue)(rawError)) {
69
+ if ((0, value_checker_1.doesHaveValue)(error)) {
66
70
  result = {
67
71
  duration,
68
72
  status: messages_1.TestStepResultStatus.FAILED,
69
- ...(0, format_error_1.formatError)(rawError, this.options.filterStacktraces),
73
+ ...(0, format_error_1.formatError)(error, this.options.filterStacktraces),
70
74
  };
71
- error = this.wrapTestRunHookError('a BeforeAll', (0, helpers_1.formatLocation)(hookDefinition), rawError);
72
75
  }
73
76
  else {
74
77
  result = {
@@ -84,33 +87,16 @@ class Worker {
84
87
  timestamp: (0, stopwatch_1.timestamp)(),
85
88
  },
86
89
  });
87
- return {
88
- result,
89
- error,
90
- };
91
- }
92
- wrapTestRunHookError(name, location, error) {
93
- if (!(0, value_checker_1.doesHaveValue)(error)) {
94
- return undefined;
95
- }
96
- let message = `${name} hook errored`;
97
- if (this.workerId) {
98
- message += ` on worker ${this.workerId}`;
99
- }
100
- message += `, process exiting: ${location}`;
101
- return new Error(message, { cause: error });
90
+ return result.status !== messages_1.TestStepResultStatus.FAILED;
102
91
  }
103
92
  async runBeforeAllHooks() {
104
- const results = [];
105
- for (const hookDefinition of this.supportCodeLibrary
106
- .beforeTestRunHookDefinitions) {
107
- const result = await this.runTestRunHook(hookDefinition);
108
- results.push(result);
109
- if ((0, value_checker_1.doesHaveValue)(result.error)) {
110
- throw result.error;
93
+ let success = true;
94
+ for (const hookDefinition of this.supportCodeLibrary.beforeTestRunHookDefinitions) {
95
+ if (!(await this.runTestRunHook(hookDefinition))) {
96
+ success = false;
111
97
  }
112
98
  }
113
- return results;
99
+ return success;
114
100
  }
115
101
  async runTestCase({ gherkinDocument, pickle, testCase }, failing) {
116
102
  const testCaseRunner = new test_case_runner_1.default({
@@ -120,7 +106,7 @@ class Worker {
120
106
  gherkinDocument,
121
107
  pickle,
122
108
  testCase,
123
- retries: (0, helpers_2.retriesForPickle)(pickle, this.options),
109
+ retries: (0, helpers_1.retriesForPickle)(pickle, this.options),
124
110
  skip: this.options.dryRun || (this.options.failFast && failing),
125
111
  filterStackTraces: this.options.filterStacktraces,
126
112
  supportCodeLibrary: this.supportCodeLibrary,
@@ -128,22 +114,18 @@ class Worker {
128
114
  snippetBuilder: this.snippetBuilder,
129
115
  });
130
116
  const status = await testCaseRunner.run();
131
- return !(0, helpers_2.shouldCauseFailure)(status, this.options);
117
+ return !(0, helpers_1.shouldCauseFailure)(status, this.options);
132
118
  }
133
119
  async runAfterAllHooks() {
134
- const results = [];
135
- const reversed = [
136
- ...this.supportCodeLibrary.afterTestRunHookDefinitions,
137
- ].reverse();
120
+ let success = true;
121
+ const reversed = [...this.supportCodeLibrary.afterTestRunHookDefinitions].reverse();
138
122
  for (const hookDefinition of reversed) {
139
- const result = await this.runTestRunHook(hookDefinition);
140
- results.push(result);
141
- if ((0, value_checker_1.doesHaveValue)(result.error)) {
142
- throw result.error;
123
+ if (!(await this.runTestRunHook(hookDefinition))) {
124
+ success = false;
143
125
  }
144
126
  }
145
- return results;
127
+ return success;
146
128
  }
147
129
  }
148
130
  exports.Worker = Worker;
149
- //# sourceMappingURL=worker.js.map
131
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid29ya2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3J1bnRpbWUvd29ya2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUNBLGlEQUsyQjtBQUszQiwyRUFBZ0Q7QUFDaEQsb0RBQWdFO0FBQ2hFLGlEQUE0QztBQUM1Qyx1Q0FBZ0U7QUFDaEUsbUNBQTJDO0FBQzNDLDJDQUErQztBQUMvQywwRUFBK0M7QUFHL0M7Ozs7O0dBS0c7QUFDSCxNQUFhLE1BQU07SUFFRTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQVBuQixZQUNtQixnQkFBd0IsRUFDeEIsUUFBNEIsRUFDNUIsZ0JBQThCLEVBQzlCLEtBQXdCLEVBQ3hCLE9BQXVCLEVBQ3ZCLGtCQUFzQyxFQUN0QyxjQUE0QztRQU41QyxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQVE7UUFDeEIsYUFBUSxHQUFSLFFBQVEsQ0FBb0I7UUFDNUIscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFjO1FBQzlCLFVBQUssR0FBTCxLQUFLLENBQW1CO1FBQ3hCLFlBQU8sR0FBUCxPQUFPLENBQWdCO1FBQ3ZCLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBb0I7UUFDdEMsbUJBQWMsR0FBZCxjQUFjLENBQThCO0lBQzVELENBQUM7SUFFSSxLQUFLLENBQUMsY0FBYyxDQUFDLGNBQXFDO1FBQ2hFLE1BQU0sb0JBQW9CLEdBQUcsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFBO1FBQ3pDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFO1lBQ3JDLGtCQUFrQixFQUFFO2dCQUNsQixnQkFBZ0IsRUFBRSxJQUFJLENBQUMsZ0JBQWdCO2dCQUN2QyxRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVE7Z0JBQ3ZCLEVBQUUsRUFBRSxvQkFBb0I7Z0JBQ3hCLE1BQU0sRUFBRSxjQUFjLENBQUMsRUFBRTtnQkFDekIsU0FBUyxFQUFFLElBQUEscUJBQVMsR0FBRTthQUN2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QztZQUMvQyxJQUFJLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsSUFBSSxPQUFPLENBQUM7WUFDL0QsaUJBQWlCLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxpQkFBaUI7WUFDakQsa0JBQWtCLEVBQUUsSUFBSSxDQUFDLGtCQUFrQjtZQUMzQyxlQUFlLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxlQUFlO1lBQzdDLGNBQWMsRUFBRSxJQUFJLENBQUMsY0FBYztTQUNwQyxDQUFDLENBQUE7UUFFRixNQUFNLE1BQU0sR0FBRyxNQUFNLGNBQWMsQ0FBQyxHQUFHLEVBQUUsQ0FBQTtRQUV6QyxPQUFPLENBQUMsSUFBQSw0QkFBa0IsRUFBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFBO0lBQ2xELENBQUM7SUFFRCxLQUFLLENBQUMsZ0JBQWdCO1FBQ3BCLElBQUksT0FBTyxHQUFHLElBQUksQ0FBQTtRQUNsQixNQUFNLFFBQVEsR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixDQUFDLDJCQUEyQixDQUFDLENBQUMsT0FBTyxFQUFFLENBQUE7UUFDbkYsS0FBSyxNQUFNLGNBQWMsSUFBSSxRQUFRLEVBQUUsQ0FBQztZQUN0QyxJQUFJLENBQUMsQ0FBQyxNQUFNLElBQUksQ0FBQyxjQUFjLENBQUMsY0FBYyxDQUFDLENBQUMsRUFBRSxDQUFDO2dCQUNqRCxPQUFPLEdBQUcsS0FBSyxDQUFBO1lBQ2pCLENBQUM7UUFDSCxDQUFDO1FBQ0QsT0FBTyxPQUFPLENBQUE7SUFDaEIsQ0FBQztDQUNGO0FBckhELHdCQXFIQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgRXZlbnRFbWl0dGVyIH0gZnJvbSAnbm9kZTpldmVudHMnXG5pbXBvcnQge1xuICB0eXBlIEVudmVsb3BlLFxuICB0eXBlIElkR2VuZXJhdG9yLFxuICB0eXBlIFRlc3RTdGVwUmVzdWx0LFxuICBUZXN0U3RlcFJlc3VsdFN0YXR1cyxcbn0gZnJvbSAnQGN1Y3VtYmVyL21lc3NhZ2VzJ1xuaW1wb3J0IHR5cGUgeyBBc3NlbWJsZWRUZXN0Q2FzZSB9IGZyb20gJy4uL2Fzc2VtYmxlJ1xuaW1wb3J0IHR5cGUgU3RlcERlZmluaXRpb25TbmlwcGV0QnVpbGRlciBmcm9tICcuLi9mb3JtYXR0ZXIvc3RlcF9kZWZpbml0aW9uX3NuaXBwZXRfYnVpbGRlcidcbmltcG9ydCB0eXBlIFRlc3RSdW5Ib29rRGVmaW5pdGlvbiBmcm9tICcuLi9tb2RlbHMvdGVzdF9ydW5faG9va19kZWZpbml0aW9uJ1xuaW1wb3J0IHR5cGUgeyBTdXBwb3J0Q29kZUxpYnJhcnkgfSBmcm9tICcuLi9zdXBwb3J0X2NvZGVfbGlicmFyeV9idWlsZGVyL3R5cGVzJ1xuaW1wb3J0IFVzZXJDb2RlUnVubmVyIGZyb20gJy4uL3VzZXJfY29kZV9ydW5uZXInXG5pbXBvcnQgeyBkb2VzSGF2ZVZhbHVlLCB2YWx1ZU9yRGVmYXVsdCB9IGZyb20gJy4uL3ZhbHVlX2NoZWNrZXInXG5pbXBvcnQgeyBmb3JtYXRFcnJvciB9IGZyb20gJy4vZm9ybWF0X2Vycm9yJ1xuaW1wb3J0IHsgcmV0cmllc0ZvclBpY2tsZSwgc2hvdWxkQ2F1c2VGYWlsdXJlIH0gZnJvbSAnLi9oZWxwZXJzJ1xuaW1wb3J0IHsgcnVuSW5UZXN0UnVuU2NvcGUgfSBmcm9tICcuL3Njb3BlJ1xuaW1wb3J0IHsgY3JlYXRlLCB0aW1lc3RhbXAgfSBmcm9tICcuL3N0b3B3YXRjaCdcbmltcG9ydCBUZXN0Q2FzZVJ1bm5lciBmcm9tICcuL3Rlc3RfY2FzZV9ydW5uZXInXG5pbXBvcnQgdHlwZSB7IFJ1bnRpbWVPcHRpb25zIH0gZnJvbSAnLi90eXBlcydcblxuLyoqXG4gKiBSdW5zIGluZGl2aWR1YWwgdW5pdHMgb2Ygd29yayBhc3luY2hyb25vdXNseVxuICogQHJlbWFya3NcbiAqIFVuYXdhcmUgb2YgdGhlIG92ZXJhbGwgdGVzdCBydW4gc2NvcGUsIG9yIHdoZXRoZXIgaXQncyBvbiB0aGUgbWFpbiB0aHJlYWQsXG4gKiBvciB3aGV0aGVyIGFueSBvdGhlciB3b3JrZXJzIGFyZSBpbiBwbGF5LlxuICovXG5leHBvcnQgY2xhc3MgV29ya2VyIHtcbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByZWFkb25seSB0ZXN0UnVuU3RhcnRlZElkOiBzdHJpbmcsXG4gICAgcHJpdmF0ZSByZWFkb25seSB3b3JrZXJJZDogc3RyaW5nIHwgdW5kZWZpbmVkLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgZXZlbnRCcm9hZGNhc3RlcjogRXZlbnRFbWl0dGVyLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgbmV3SWQ6IElkR2VuZXJhdG9yLk5ld0lkLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgb3B0aW9uczogUnVudGltZU9wdGlvbnMsXG4gICAgcHJpdmF0ZSByZWFkb25seSBzdXBwb3J0Q29kZUxpYnJhcnk6IFN1cHBvcnRDb2RlTGlicmFyeSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IHNuaXBwZXRCdWlsZGVyOiBTdGVwRGVmaW5pdGlvblNuaXBwZXRCdWlsZGVyXG4gICkge31cblxuICBwcml2YXRlIGFzeW5jIHJ1blRlc3RSdW5Ib29rKGhvb2tEZWZpbml0aW9uOiBUZXN0UnVuSG9va0RlZmluaXRpb24pOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgICBjb25zdCB0ZXN0UnVuSG9va1N0YXJ0ZWRJZCA9IHRoaXMubmV3SWQoKVxuICAgIHRoaXMuZXZlbnRCcm9hZGNhc3Rlci5lbWl0KCdlbnZlbG9wZScsIHtcbiAgICAgIHRlc3RSdW5Ib29rU3RhcnRlZDoge1xuICAgICAgICB0ZXN0UnVuU3RhcnRlZElkOiB0aGlzLnRlc3RSdW5TdGFydGVkSWQsXG4gICAgICAgIHdvcmtlcklkOiB0aGlzLndvcmtlcklkLFxuICAgICAgICBpZDogdGVzdFJ1bkhvb2tTdGFydGVkSWQsXG4gICAgICAgIGhvb2tJZDogaG9va0RlZmluaXRpb24uaWQsXG4gICAgICAgIHRpbWVzdGFtcDogdGltZXN0YW1wKCksXG4gICAgICB9LFxuICAgIH0gc2F0aXNmaWVzIEVudmVsb3BlKVxuXG4gICAgbGV0IHJlc3VsdDogVGVzdFN0ZXBSZXN1bHRcbiAgICBpZiAodGhpcy5vcHRpb25zLmRyeVJ1bikge1xuICAgICAgcmVzdWx0ID0ge1xuICAgICAgICBkdXJhdGlvbjoge1xuICAgICAgICAgIHNlY29uZHM6IDAsXG4gICAgICAgICAgbmFub3M6IDAsXG4gICAgICAgIH0sXG4gICAgICAgIHN0YXR1czogVGVzdFN0ZXBSZXN1bHRTdGF0dXMuU0tJUFBFRCxcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3Qgc3RvcHdhdGNoID0gY3JlYXRlKCkuc3RhcnQoKVxuICAgICAgY29uc3QgY29udGV4dCA9IHsgcGFyYW1ldGVyczogdGhpcy5vcHRpb25zLndvcmxkUGFyYW1ldGVycyB9XG4gICAgICBjb25zdCB7IGVycm9yIH0gPSBhd2FpdCBydW5JblRlc3RSdW5TY29wZSh7IGNvbnRleHQgfSwgKCkgPT5cbiAgICAgICAgVXNlckNvZGVSdW5uZXIucnVuKHtcbiAgICAgICAgICBhcmdzQXJyYXk6IFtdLFxuICAgICAgICAgIGZuOiBob29rRGVmaW5pdGlvbi5jb2RlLFxuICAgICAgICAgIHRoaXNBcmc6IGNvbnRleHQsXG4gICAgICAgICAgdGltZW91dEluTWlsbGlzZWNvbmRzOiB2YWx1ZU9yRGVmYXVsdChcbiAgICAgICAgICAgIGhvb2tEZWZpbml0aW9uLm9wdGlvbnMudGltZW91dCxcbiAgICAgICAgICAgIHRoaXMuc3VwcG9ydENvZGVMaWJyYXJ5LmRlZmF1bHRUaW1lb3V0XG4gICAgICAgICAgKSxcbiAgICAgICAgfSlcbiAgICAgIClcbiAgICAgIGNvbnN0IGR1cmF0aW9uID0gc3RvcHdhdGNoLnN0b3AoKS5kdXJhdGlvbigpXG5cbiAgICAgIGlmIChkb2VzSGF2ZVZhbHVlKGVycm9yKSkge1xuICAgICAgICByZXN1bHQgPSB7XG4gICAgICAgICAgZHVyYXRpb24sXG4gICAgICAgICAgc3RhdHVzOiBUZXN0U3RlcFJlc3VsdFN0YXR1cy5GQUlMRUQsXG4gICAgICAgICAgLi4uZm9ybWF0RXJyb3IoZXJyb3IsIHRoaXMub3B0aW9ucy5maWx0ZXJTdGFja3RyYWNlcyksXG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJlc3VsdCA9IHtcbiAgICAgICAgICBkdXJhdGlvbixcbiAgICAgICAgICBzdGF0dXM6IFRlc3RTdGVwUmVzdWx0U3RhdHVzLlBBU1NFRCxcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIHRoaXMuZXZlbnRCcm9hZGNhc3Rlci5lbWl0KCdlbnZlbG9wZScsIHtcbiAgICAgIHRlc3RSdW5Ib29rRmluaXNoZWQ6IHtcbiAgICAgICAgdGVzdFJ1bkhvb2tTdGFydGVkSWQsXG4gICAgICAgIHJlc3VsdCxcbiAgICAgICAgdGltZXN0YW1wOiB0aW1lc3RhbXAoKSxcbiAgICAgIH0sXG4gICAgfSBzYXRpc2ZpZXMgRW52ZWxvcGUpXG5cbiAgICByZXR1cm4gcmVzdWx0LnN0YXR1cyAhPT0gVGVzdFN0ZXBSZXN1bHRTdGF0dXMuRkFJTEVEXG4gIH1cblxuICBhc3luYyBydW5CZWZvcmVBbGxIb29rcygpOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgICBsZXQgc3VjY2VzcyA9IHRydWVcbiAgICBmb3IgKGNvbnN0IGhvb2tEZWZpbml0aW9uIG9mIHRoaXMuc3VwcG9ydENvZGVMaWJyYXJ5LmJlZm9yZVRlc3RSdW5Ib29rRGVmaW5pdGlvbnMpIHtcbiAgICAgIGlmICghKGF3YWl0IHRoaXMucnVuVGVzdFJ1bkhvb2soaG9va0RlZmluaXRpb24pKSkge1xuICAgICAgICBzdWNjZXNzID0gZmFsc2VcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHN1Y2Nlc3NcbiAgfVxuXG4gIGFzeW5jIHJ1blRlc3RDYXNlKFxuICAgIHsgZ2hlcmtpbkRvY3VtZW50LCBwaWNrbGUsIHRlc3RDYXNlIH06IEFzc2VtYmxlZFRlc3RDYXNlLFxuICAgIGZhaWxpbmc6IGJvb2xlYW5cbiAgKTogUHJvbWlzZTxib29sZWFuPiB7XG4gICAgY29uc3QgdGVzdENhc2VSdW5uZXIgPSBuZXcgVGVzdENhc2VSdW5uZXIoe1xuICAgICAgd29ya2VySWQ6IHRoaXMud29ya2VySWQsXG4gICAgICBldmVudEJyb2FkY2FzdGVyOiB0aGlzLmV2ZW50QnJvYWRjYXN0ZXIsXG4gICAgICBuZXdJZDogdGhpcy5uZXdJZCxcbiAgICAgIGdoZXJraW5Eb2N1bWVudCxcbiAgICAgIHBpY2tsZSxcbiAgICAgIHRlc3RDYXNlLFxuICAgICAgcmV0cmllczogcmV0cmllc0ZvclBpY2tsZShwaWNrbGUsIHRoaXMub3B0aW9ucyksXG4gICAgICBza2lwOiB0aGlzLm9wdGlvbnMuZHJ5UnVuIHx8ICh0aGlzLm9wdGlvbnMuZmFpbEZhc3QgJiYgZmFpbGluZyksXG4gICAgICBmaWx0ZXJTdGFja1RyYWNlczogdGhpcy5vcHRpb25zLmZpbHRlclN0YWNrdHJhY2VzLFxuICAgICAgc3VwcG9ydENvZGVMaWJyYXJ5OiB0aGlzLnN1cHBvcnRDb2RlTGlicmFyeSxcbiAgICAgIHdvcmxkUGFyYW1ldGVyczogdGhpcy5vcHRpb25zLndvcmxkUGFyYW1ldGVycyxcbiAgICAgIHNuaXBwZXRCdWlsZGVyOiB0aGlzLnNuaXBwZXRCdWlsZGVyLFxuICAgIH0pXG5cbiAgICBjb25zdCBzdGF0dXMgPSBhd2FpdCB0ZXN0Q2FzZVJ1bm5lci5ydW4oKVxuXG4gICAgcmV0dXJuICFzaG91bGRDYXVzZUZhaWx1cmUoc3RhdHVzLCB0aGlzLm9wdGlvbnMpXG4gIH1cblxuICBhc3luYyBydW5BZnRlckFsbEhvb2tzKCk6IFByb21pc2U8Ym9vbGVhbj4ge1xuICAgIGxldCBzdWNjZXNzID0gdHJ1ZVxuICAgIGNvbnN0IHJldmVyc2VkID0gWy4uLnRoaXMuc3VwcG9ydENvZGVMaWJyYXJ5LmFmdGVyVGVzdFJ1bkhvb2tEZWZpbml0aW9uc10ucmV2ZXJzZSgpXG4gICAgZm9yIChjb25zdCBob29rRGVmaW5pdGlvbiBvZiByZXZlcnNlZCkge1xuICAgICAgaWYgKCEoYXdhaXQgdGhpcy5ydW5UZXN0UnVuSG9vayhob29rRGVmaW5pdGlvbikpKSB7XG4gICAgICAgIHN1Y2Nlc3MgPSBmYWxzZVxuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gc3VjY2Vzc1xuICB9XG59XG4iXX0=
@@ -2,4 +2,4 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const sharding_plugin_1 = require("./sharding_plugin");
4
4
  exports.default = sharding_plugin_1.shardingPlugin;
5
- //# sourceMappingURL=index.js.map
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvc2hhcmRpbmcvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSx1REFBa0Q7QUFFbEQsa0JBQWUsZ0NBQWMsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHNoYXJkaW5nUGx1Z2luIH0gZnJvbSAnLi9zaGFyZGluZ19wbHVnaW4nXG5cbmV4cG9ydCBkZWZhdWx0IHNoYXJkaW5nUGx1Z2luXG4iXX0=
@@ -1,2 +1,2 @@
1
- import { Plugin } from '../plugin';
2
- export declare const shardingPlugin: Plugin;
1
+ import type { InternalPlugin } from '../plugin';
2
+ export declare const shardingPlugin: InternalPlugin;