@cucumber/cucumber 13.0.0 → 13.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (78) hide show
  1. package/lib/api/emit_support_code_messages.js +4 -38
  2. package/lib/api/run_cucumber.js +4 -4
  3. package/lib/api/wrapper.d.mts +5 -0
  4. package/lib/api/wrapper.mjs +6 -6
  5. package/lib/formatter/builder.d.ts +1 -1
  6. package/lib/formatter/builder.js +1 -1
  7. package/lib/formatter/create_stream.js +2 -3
  8. package/lib/formatter/helpers/event_data_collector.d.ts +14 -14
  9. package/lib/formatter/helpers/event_data_collector.js +14 -39
  10. package/lib/formatter/helpers/gherkin_document_parser.d.ts +5 -5
  11. package/lib/formatter/helpers/gherkin_document_parser.js +1 -1
  12. package/lib/formatter/helpers/issue_helpers.d.ts +6 -6
  13. package/lib/formatter/helpers/issue_helpers.js +1 -1
  14. package/lib/formatter/helpers/pickle_parser.d.ts +9 -9
  15. package/lib/formatter/helpers/pickle_parser.js +1 -1
  16. package/lib/formatter/helpers/step_argument_formatter.d.ts +2 -2
  17. package/lib/formatter/helpers/step_argument_formatter.js +1 -1
  18. package/lib/formatter/helpers/summary_helpers.d.ts +2 -2
  19. package/lib/formatter/helpers/summary_helpers.js +12 -45
  20. package/lib/formatter/helpers/test_case_attempt_formatter.js +12 -45
  21. package/lib/formatter/helpers/test_case_attempt_parser.d.ts +5 -5
  22. package/lib/formatter/helpers/test_case_attempt_parser.js +9 -37
  23. package/lib/formatter/helpers/usage_helpers/index.d.ts +3 -3
  24. package/lib/formatter/helpers/usage_helpers/index.js +9 -44
  25. package/lib/formatter/json_formatter.d.ts +20 -20
  26. package/lib/formatter/json_formatter.js +5 -38
  27. package/lib/formatter/progress_formatter.d.ts +3 -2
  28. package/lib/formatter/progress_formatter.js +8 -41
  29. package/lib/formatter/rerun_formatter.js +3 -36
  30. package/lib/formatter/snippets_formatter.js +3 -36
  31. package/lib/formatter/step_definition_snippet_builder/index.d.ts +3 -3
  32. package/lib/formatter/step_definition_snippet_builder/index.js +1 -1
  33. package/lib/formatter/summary_formatter.d.ts +2 -2
  34. package/lib/formatter/summary_formatter.js +1 -1
  35. package/lib/formatter/usage_formatter.js +4 -37
  36. package/lib/formatter/usage_json_formatter.js +1 -1
  37. package/lib/index.d.ts +3 -3
  38. package/lib/index.js +6 -7
  39. package/lib/models/data_table.d.ts +2 -2
  40. package/lib/models/data_table.js +1 -1
  41. package/lib/models/definition.d.ts +2 -2
  42. package/lib/models/definition.js +1 -1
  43. package/lib/models/test_case_hook_definition.d.ts +2 -2
  44. package/lib/models/test_case_hook_definition.js +1 -1
  45. package/lib/models/test_step_hook_definition.d.ts +2 -2
  46. package/lib/models/test_step_hook_definition.js +1 -1
  47. package/lib/pickle_filter.d.ts +8 -7
  48. package/lib/pickle_filter.js +1 -1
  49. package/lib/runtime/attachment_manager/index.d.ts +3 -3
  50. package/lib/runtime/attachment_manager/index.js +12 -45
  51. package/lib/runtime/coordinator.d.ts +4 -3
  52. package/lib/runtime/coordinator.js +14 -3
  53. package/lib/runtime/helpers.d.ts +3 -3
  54. package/lib/runtime/helpers.js +6 -39
  55. package/lib/runtime/make_runtime.js +2 -2
  56. package/lib/runtime/parallel/adapter.d.ts +5 -2
  57. package/lib/runtime/parallel/adapter.js +14 -2
  58. package/lib/runtime/step_runner.d.ts +3 -3
  59. package/lib/runtime/step_runner.js +6 -39
  60. package/lib/runtime/stopwatch.d.ts +1 -1
  61. package/lib/runtime/test_case_runner.d.ts +11 -12
  62. package/lib/runtime/test_case_runner.js +20 -57
  63. package/lib/runtime/types.d.ts +6 -1
  64. package/lib/runtime/types.js +1 -1
  65. package/lib/step_arguments.d.ts +4 -4
  66. package/lib/step_arguments.js +1 -1
  67. package/lib/support_code_library_builder/index.d.ts +2 -3
  68. package/lib/support_code_library_builder/index.js +1 -1
  69. package/lib/support_code_library_builder/parallel_can_assign_helpers.js +1 -1
  70. package/lib/support_code_library_builder/types.d.ts +10 -10
  71. package/lib/support_code_library_builder/types.js +1 -1
  72. package/lib/time.d.ts +2 -2
  73. package/lib/time.js +5 -38
  74. package/lib/version.d.ts +1 -1
  75. package/lib/version.js +3 -3
  76. package/lib/wrapper.d.mts +43 -0
  77. package/lib/wrapper.mjs +37 -41
  78. package/package.json +20 -22
@@ -1,40 +1,7 @@
1
1
  "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || (function () {
19
- var ownKeys = function(o) {
20
- ownKeys = Object.getOwnPropertyNames || function (o) {
21
- var ar = [];
22
- for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
- return ar;
24
- };
25
- return ownKeys(o);
26
- };
27
- return function (mod) {
28
- if (mod && mod.__esModule) return mod;
29
- var result = {};
30
- if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
- __setModuleDefault(result, mod);
32
- return result;
33
- };
34
- })();
35
2
  Object.defineProperty(exports, "__esModule", { value: true });
36
- const messages = __importStar(require("@cucumber/messages"));
37
- const is_stream_1 = require("is-stream");
3
+ const node_stream_1 = require("node:stream");
4
+ const messages_1 = require("@cucumber/messages");
38
5
  const value_checker_1 = require("../../value_checker");
39
6
  class AttachmentManager {
40
7
  onAttachment;
@@ -55,36 +22,36 @@ class AttachmentManager {
55
22
  }
56
23
  this.createBufferAttachment(data, options.mediaType, options.fileName);
57
24
  }
58
- else if ((0, is_stream_1.isReadableStream)(data)) {
59
- if ((0, value_checker_1.doesNotHaveValue)(options.mediaType)) {
60
- throw Error('Stream attachments must specify a media type');
61
- }
62
- return this.createStreamAttachment(data, options.mediaType, options.fileName, callback);
63
- }
64
25
  else if (typeof data === 'string') {
65
26
  if ((0, value_checker_1.doesNotHaveValue)(options.mediaType)) {
66
27
  options.mediaType = 'text/plain';
67
28
  }
68
29
  if (options.mediaType.startsWith('base64:')) {
69
30
  this.createStringAttachment(data, {
70
- encoding: messages.AttachmentContentEncoding.BASE64,
31
+ encoding: messages_1.AttachmentContentEncoding.BASE64,
71
32
  contentType: options.mediaType.replace('base64:', ''),
72
33
  }, options.fileName);
73
34
  }
74
35
  else {
75
36
  this.createStringAttachment(data, {
76
- encoding: messages.AttachmentContentEncoding.IDENTITY,
37
+ encoding: messages_1.AttachmentContentEncoding.IDENTITY,
77
38
  contentType: options.mediaType,
78
39
  }, options.fileName);
79
40
  }
80
41
  }
42
+ else if ((0, node_stream_1.isReadable)(data)) {
43
+ if ((0, value_checker_1.doesNotHaveValue)(options.mediaType)) {
44
+ throw Error('Stream attachments must specify a media type');
45
+ }
46
+ return this.createStreamAttachment(data, options.mediaType, options.fileName, callback);
47
+ }
81
48
  else {
82
49
  throw Error('Invalid attachment data: must be a buffer, readable stream, or string');
83
50
  }
84
51
  }
85
52
  createBufferAttachment(data, mediaType, fileName) {
86
53
  this.createStringAttachment(data.toString('base64'), {
87
- encoding: messages.AttachmentContentEncoding.BASE64,
54
+ encoding: messages_1.AttachmentContentEncoding.BASE64,
88
55
  contentType: mediaType,
89
56
  }, fileName);
90
57
  }
@@ -127,4 +94,4 @@ function normaliseOptions(mediaTypeOrOptions) {
127
94
  }
128
95
  return mediaTypeOrOptions;
129
96
  }
130
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvcnVudGltZS9hdHRhY2htZW50X21hbmFnZXIvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFDQSw2REFBOEM7QUFDOUMseUNBQTRDO0FBQzVDLHVEQUFxRTtBQTJDckUsTUFBcUIsaUJBQWlCO0lBQ25CLFlBQVksQ0FBaUI7SUFFOUMsWUFBWSxZQUE2QjtRQUN2QyxJQUFJLENBQUMsWUFBWSxHQUFHLFlBQVksQ0FBQTtJQUNsQyxDQUFDO0lBRUQsR0FBRyxDQUFDLElBQVk7UUFDZCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLDJCQUEyQixDQUFDLENBQUE7SUFDdkQsQ0FBQztJQUVELElBQUksQ0FBQyxHQUFHLEdBQWE7UUFDbkIsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsZUFBZSxDQUFDLENBQUE7SUFDckQsQ0FBQztJQUVELE1BQU0sQ0FDSixJQUFnQyxFQUNoQyxrQkFBc0QsRUFDdEQsUUFBcUI7UUFFckIsTUFBTSxPQUFPLEdBQUcsZ0JBQWdCLENBQUMsa0JBQWtCLENBQUMsQ0FBQTtRQUNwRCxJQUFJLE1BQU0sQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztZQUMxQixJQUFJLElBQUEsZ0NBQWdCLEVBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUM7Z0JBQ3hDLE1BQU0sS0FBSyxDQUFDLDhDQUE4QyxDQUFDLENBQUE7WUFDN0QsQ0FBQztZQUNELElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDLFNBQVMsRUFBRSxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUE7UUFDeEUsQ0FBQzthQUFNLElBQUksSUFBQSw0QkFBZ0IsRUFBQyxJQUFJLENBQUMsRUFB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RUFBRSxRQUFpQjtRQUM3RSxJQUFJLENBQUMsWUFBWSxDQUFDO1lBQ2hCLElBQUk7WUFDSixLQUFLO1lBQ0wsR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsRUFBRSxRQUFRLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1NBQ2xDLENBQUMsQ0FBQTtJQUNKLENBQUM7Q0FDRjtBQXJHRCxvQ0FxR0M7QUFFRCxTQUFTLGdCQUFnQixDQUN2QixrQkFBc0Q7SUFFdEQsSUFBSSxDQUFDLGtCQUFrQixFQUFFLENBQUM7UUFDeEIsT0FBTyxFQUFFLENBQUE7SUFDWCxDQUFDO0lBQ0QsSUFBSSxPQUFPLGtCQUFrQixLQUFLLFFBQVEsRUFBRSxDQUFDO1FBQzNDLE9BQU87WUFDTCxTQUFTLEVBQUUsa0JBQWtCO1NBQzlCLENBQUE7SUFDSCxDQUFDO0lBQ0QsT0FBTyxrQkFBa0IsQ0FBQTtBQUMzQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBSZWFkYWJsZSB9IGZyb20gJ25vZGU6c3RyZWFtJ1xuaW1wb3J0ICogYXMgbWVzc2FnZXMgZnJvbSAnQGN1Y3VtYmVyL21lc3NhZ2VzJ1xuaW1wb3J0IHsgaXNSZWFkYWJsZVN0cmVhbSB9IGZyb20gJ2lzLXN0cmVhbSdcbmltcG9ydCB7IGRvZXNIYXZlVmFsdWUsIGRvZXNOb3RIYXZlVmFsdWUgfSBmcm9tICcuLi8uLi92YWx1ZV9jaGVja2VyJ1xuXG5leHBvcnQgaW50ZXJmYWNlIElBdHRhY2htZW50TWVkaWEge1xuICBlbmNvZGluZzogbWVzc2FnZXMuQXR0YWNobWVudENvbnRlbnRFbmNvZGluZ1xuICBjb250ZW50VHlwZTogc3RyaW5nXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSUF0dGFjaG1lbnQge1xuICBkYXRhOiBzdHJpbmdcbiAgbWVkaWE6IElBdHRhY2htZW50TWVkaWFcbiAgZmlsZU5hbWU/OiBzdHJpbmdcbn1cblxuZXhwb3J0IHR5cGUgSUF0dGFjaEZ1bmN0aW9uID0gKGF0dGFjaG1lbnQ6IElBdHRhY2htZW50KSA9PiB2b2lkXG5cbmV4cG9ydCBpbnRlcmZhY2UgSUNyZWF0ZUF0dGFjaG1lbnRPcHRpb25zIHtcbiAgbWVkaWFUeXBlOiBzdHJpbmdcbiAgZmlsZU5hbWU/OiBzdHJpbmdcbn1cbmV4cG9ydCB0eXBlIElDcmVhdGVTdHJpbmdBdHRhY2htZW50ID0gKFxuICBkYXRhOiBzdHJpbmcsXG4gIG1lZGlhVHlwZU9yT3B0aW9ucz86IHN0cmluZyB8IElDcmVhdGVBdHRhY2htZW50T3B0aW9uc1xuKSA9PiB2b2lkXG5leHBvcnQgdHlwZSBJQ3JlYXRlQnVmZmVyQXR0YWNobWVudCA9IChcbiAgZGF0YTogQnVmZmVyLFxuICBtZWRpYVR5cGVPck9wdGlvbnM6IHN0cmluZyB8IElDcmVhdGVBdHRhY2htZW50T3B0aW9uc1xuKSA9PiB2b2lkXG5leHBvcnQgdHlwZSBJQ3JlYXRlU3RyZWFtQXR0YWNobWVudCA9IChcbiAgZGF0YTogUmVhZGFibGUsXG4gIG1lZGlhVHlwZU9yT3B0aW9uczogc3RyaW5nIHwgSUNyZWF0ZUF0dGFjaG1lbnRPcHRpb25zXG4pID0+IFByb21pc2U8dm9pZD5cbmV4cG9ydCB0eXBlIElDcmVhdGVTdHJlYW1BdHRhY2htZW50V2l0aENhbGxiYWNrID0gKFxuICBkYXRhOiBSZWFkYWJsZSxcbiAgbWVkaWFUeXBlT3JPcHRpb25zOiBzdHJpbmcgfCBJQ3JlYXRlQXR0YWNobWVudE9wdGlvbnMsXG4gIGNhbGxiYWNrOiAoKSA9PiB2b2lkXG4pID0+IHZvaWRcbmV4cG9ydCB0eXBlIElDcmVhdGVBdHRhY2htZW50ID0gSUNyZWF0ZVN0cmluZ0F0dGFjaG1lbnQgJlxuICBJQ3JlYXRlQnVmZmVyQXR0YWNobWVudCAmXG4gIElDcmVhdGVTdHJlYW1BdHRhY2htZW50ICZcbiAgSUNyZWF0ZVN0cmVhbUF0dGFjaG1lbnRXaXRoQ2FsbGJhY2tcbmV4cG9ydCB0eXBlIElDcmVhdGVMb2cgPSAodGV4dDogc3RyaW5nKSA9PiB2b2lkXG5leHBvcnQgdHlwZSBJQ3JlYXRlTGluayA9ICh0ZXh0OiBzdHJpbmcpID0+IHZvaWRcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgQXR0YWNobWVudE1hbmFnZXIge1xuICBwcml2YXRlIHJlYWRvbmx5IG9uQXR0YWNobWVudDogSUF0dGFjaEZ1bmN0aW9uXG5cbiAgY29uc3RydWN0b3Iob25BdHRhY2htZW50OiBJQXR0YWNoRnVuY3Rpb24pIHtcbiAgICB0aGlzLm9uQXR0YWNobWVudCA9IG9uQXR0YWNobWVudFxuICB9XG5cbiAgbG9nKHRleHQ6IHN0cmluZyk6IHZvaWQgfCBQcm9taXNlPHZvaWQ+IHtcbiAgICByZXR1cm4gdGhpcy5jcmVhdGUodGV4dCwgJ3RleHQveC5jdWN1bWJlci5sb2crcGxhaW4nKVxuICB9XG5cbiAgbGluayguLi51cmw6IHN0cmluZ1tdKTogdm9pZCB8IFByb21pc2U8dm9pZD4ge1xuICAgIHJldHVybiB0aGlzLmNyZWF0ZSh1cmwuam9pbignXFxuJyksICd0ZXh0L3VyaS1saXN0JylcbiAgfVxuXG4gIGNyZWF0ZShcbiAgICBkYXRhOiBCdWZmZXIgfCBSZWFkYWJsZSB8IHN0cmluZyxcbiAgICBtZWRpYVR5cGVPck9wdGlvbnM/OiBzdHJpbmcgfCBJQ3JlYXRlQXR0YWNobWVudE9wdGlvbnMsXG4gICAgY2FsbGJhY2s/OiAoKSA9PiB2b2lkXG4gICk6IHZvaWQgfCBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCBvcHRpb25zID0gbm9ybWFsaXNlT3B0aW9ucyhtZWRpYVR5cGVPck9wdGlvbnMpXG4gICAgaWYgKEJ1ZmZlci5pc0J1ZmZlcihkYXRhKSkge1xuICAgICAgaWYgKGRvZXNOb3RIYXZlVmFsdWUob3B0aW9ucy5tZWRpYVR5cGUpKSB7XG4gICAgICAgIHRocm93IEVycm9yKCdCdWZmZXIgYXR0YWNobWVudHMgbXVzdCBzcGVjaWZ5IGEgbWVkaWEgdHlwZScpXG4gICAgICB9XG4gICAgICB0aGlzLmNyZWF0ZUJ1ZmZlckF0dGFjaG1lbnQoZGF0YSwgb3B0aW9ucy5tZWRpYVR5cGUsIG9wdGlvbnMuZmlsZU5hbWUpXG4gICAgfSBlbHNlIGlmIChpc1JlYWRhYmxlU3RyZWFtKGRhdGEpKSB7XG4gICAgICBpZiAoZG9lc05vdEhhdmVWYWx1ZShvcHRpb25zLm1lZGlhVHlwZSkpIHtcbiAgICAgICAgdGhyb3cgRXJyb3IoJ1N0cmVhbSBhdHRhY2htZW50cyBtdXN0IHNwZWNpZnkgYSBtZWRpYSB0eXBlJylcbiAgICAgIH1cbiAgICAgIHJldHVybiB0aGlzLmNyZWF0ZVN0cmVhbUF0dGFjaG1lbnQoZGF0YSwgb3B0aW9ucy5tZWRpYVR5cGUsIG9wdGlvbnMuZmlsZU5hbWUsIGNhbGxiYWNrKVxuICAgIH0gZWxzZSBpZiAodHlwZW9mIGRhdGEgPT09ICdzdHJpbmcnKSB7XG4gICAgICBpZiAoZG9lc05vdEhhdmVWYWx1ZShvcHRpb25zLm1lZGlhVHlwZSkpIHtcbiAgICAgICAgb3B0aW9ucy5tZWRpYVR5cGUgPSAndGV4dC9wbGFpbidcbiAgICAgIH1cbiAgICAgIGlmIChvcHRpb25zLm1lZGlhVHlwZS5zdGFydHNXaXRoKCdiYXNlNjQ6JykpIHtcbiAgICAgICAgdGhpcy5jcmVhdGVTdHJpbmdBdHRhY2htZW50KFxuICAgICAgICAgIGRhdGEsXG4gICAgICAgICAge1xuICAgICAgICAgICAgZW5jb2Rpbmc6IG1lc3NhZ2VzLkF0dGFjaG1lbnRDb250ZW50RW5jb2RpbmcuQkFTRTY0LFxuICAgICAgICAgICAgY29udGVudFR5cGU6IG9wdGlvbnMubWVkaWFUeXBlLnJlcGxhY2UoJ2Jhc2U2NDonLCAnJyksXG4gICAgICAgICAgfSxcbiAgICAgICAgICBvcHRpb25zLmZpbGVOYW1lXG4gICAgICAgIClcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuY3JlYXRlU3RyaW5nQXR0YWNobWVudChcbiAgICAgICAgICBkYXRhLFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGVuY29kaW5nOiBtZXNzYWdlcy5BdHRhY2htZW50Q29udGVudEVuY29kaW5nLklERU5USVRZLFxuICAgICAgICAgICAgY29udGVudFR5cGU6IG9wdGlvbnMubWVkaWFUeXBlLFxuICAgICAgICAgIH0sXG4gICAgICAgICAgb3B0aW9ucy5maWxlTmFtZVxuICAgICAgICApXG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHRocm93IEVycm9yKCdJbnZhbGlkIGF0dGFjaG1lbnQgZGF0YTogbXVzdCBiZSBhIGJ1ZmZlciwgcmVhZGFibGUgc3RyZWFtLCBvciBzdHJpbmcnKVxuICAgIH1cbiAgfVxuXG4gIGNyZWF0ZUJ1ZmZlckF0dGFjaG1lbnQoZGF0YTogQnVmZmVyLCBtZWRpYVR5cGU6IHN0cmluZywgZmlsZU5hbWU/OiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aGlzLmNyZWF0ZVN0cmluZ0F0dGFjaG1lbnQoXG4gICAgICBkYXRhLnRvU3RyaW5nKCdiYXNlNjQnKSxcbiAgICAgIHtcbiAgICAgICAgZW5jb2Rpbmc6IG1lc3NhZ2VzLkF0dGFjaG1lbnRDb250ZW50RW5jb2RpbmcuQkFTRTY0LFxuICAgICAgICBjb250ZW50VHlwZTogbWVkaWFUeXBlLFxuICAgICAgfSxcbiAgICAgIGZpbGVOYW1lXG4gICAgKVxuICB9XG5cbiAgY3JlYXRlU3RyZWFtQXR0YWNobWVudChcbiAgICBkYXRhOiBSZWFkYWJsZSxcbiAgICBtZWRpYVR5cGU6IHN0cmluZyxcbiAgICBmaWxlTmFtZT86IHN0cmluZyxcbiAgICBjYWxsYmFjaz86ICgpID0+IHZvaWRcbiAgKTogdm9pZCB8IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IHByb21pc2UgPSBuZXcgUHJvbWlzZTx2b2lkPigocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICBjb25zdCBidWZmZXJzOiBVaW50OEFycmF5W10gPSBbXVxuICAgICAgZGF0YS5vbignZGF0YScsIChjaHVuaykgPT4ge1xuICAgICAgICBidWZmZXJzLnB1c2goY2h1bmspXG4gICAgICB9KVxuICAgICAgZGF0YS5vbignZW5kJywgKCkgPT4ge1xuICAgICAgICB0aGlzLmNyZWF0ZUJ1ZmZlckF0dGFjaG1lbnQoQnVmZmVyLmNvbmNhdChidWZmZXJzKSwgbWVkaWFUeXBlLCBmaWxlTmFtZSlcbiAgICAgICAgcmVzb2x2ZSgpXG4gICAgICB9KVxuICAgICAgZGF0YS5vbignZXJyb3InLCByZWplY3QpXG4gICAgfSlcbiAgICBpZiAoZG9lc0hhdmVWYWx1ZShjYWxsYmFjaykpIHtcbiAgICAgIHByb21pc2UudGhlbihjYWxsYmFjaywgY2FsbGJhY2spXG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBwcm9taXNlXG4gICAgfVxuICB9XG5cbiAgY3JlYXRlU3RyaW5nQXR0YWNobWVudChkYXRhOiBzdHJpbmcsIG1lZGlhOiBJQXR0YWNobWVudE1lZGlhLCBmaWxlTmFtZT86IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMub25BdHRhY2htZW50KHtcbiAgICAgIGRhdGEsXG4gICAgICBtZWRpYSxcbiAgICAgIC4uLihmaWxlTmFtZSA/IHsgZmlsZU5hbWUgfSA6IHt9KSxcbiAgICB9KVxuICB9XG59XG5cbmZ1bmN0aW9uIG5vcm1hbGlzZU9wdGlvbnMoXG4gIG1lZGlhVHlwZU9yT3B0aW9ucz86IHN0cmluZyB8IElDcmVhdGVBdHRhY2htZW50T3B0aW9uc1xuKTogUGFydGlhbDxJQ3JlYXRlQXR0YWNobWVudE9wdGlvbnM+IHtcbiAgaWYgKCFtZWRpYVR5cGVPck9wdGlvbnMpIHtcbiAgICByZXR1cm4ge31cbiAgfVxuICBpZiAodHlwZW9mIG1lZGlhVHlwZU9yT3B0aW9ucyA9PT0gJ3N0cmluZycpIHtcbiAgICByZXR1cm4ge1xuICAgICAgbWVkaWFUeXBlOiBtZWRpYVR5cGVPck9wdGlvbnMsXG4gICAgfVxuICB9XG4gIHJldHVybiBtZWRpYVR5cGVPck9wdGlvbnNcbn1cbiJdfQ==
97
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvcnVudGltZS9hdHRhY2htZW50X21hbmFnZXIvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSw2Q0FBdUQ7QUFDdkQsaURBQThEO0FBQzlELHVEQUFxRTtBQTJDckUsTUFBcUIsaUJBQWlCO0lBQ25CLFlBQVksQ0FBaUI7SUFFOUMsWUFBWSxZQUE2QjtRQUN2QyxJQUFJLENBQUMsWUFBWSxHQUFHLFlBQVksQ0FBQTtJQUNsQyxDQUFDO0lBRUQsR0FBRyxDQUFDLElBQVk7UUFDZCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLDJCQUEyQixDQUFDLENBQUE7SUFDdkQsQ0FBQztJQUVELElBQUksQ0FBQyxHQUFHLEdBQWE7UUFDbkIsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsZUFBZSxDQUFDLENBQUE7SUFDckQsQ0FBQztJQUVELE1BQU0sQ0FDSixJQUFnQyxFQUNoQyxrQkFBc0QsRUFDdEQsUUFBcUI7UUFFckIsTUFBTSxPQUFPLEdBQUcsZ0JBQWdCLENBQUMsa0JBQWtCLENBQUMsQ0FBQTtRQUNwRCxJQUFJLE1BQU0sQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztZQUMxQixJQUFJLElBQUEsZ0NBQWdCLEVBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUM7Z0JBQ3hDLE1BQU0sS0FBSyxDQUFDLDhDQUE4QyxDQUFDLENBQUE7WUFDN0QsQ0FBQztZQUNELElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDLFNBQVMsRUFBRSxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUE7UUFDeEUsQ0FBQzthQUFNLElBQUksT0FBTyxJQUFJLEtBQUssUUFBUSxFQUFFLENBQUM7WUFDcEMsSUFBSSxJQUFBLGdDQUFnQixFQUFDLE9BQU8s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QUFHLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxFQUFFLFFBQVEsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7U0FDbEMsQ0FBQyxDQUFBO0lBQ0osQ0FBQztDQUNGO0FBckdELG9DQXFHQztBQUVELFNBQVMsZ0JBQWdCLENBQ3ZCLGtCQUFzRDtJQUV0RCxJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztRQUN4QixPQUFPLEVBQUUsQ0FBQTtJQUNYLENBQUM7SUFDRCxJQUFJLE9BQU8sa0JBQWtCLEtBQUssUUFBUSxFQUFFLENBQUM7UUFDM0MsT0FBTztZQUNMLFNBQVMsRUFBRSxrQkFBa0I7U0FDOUIsQ0FBQTtJQUNILENBQUM7SUFDRCxPQUFPLGtCQUFrQixDQUFBO0FBQzNCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpc1JlYWRhYmxlLCB0eXBlIFJlYWRhYmxlIH0gZnJvbSAnbm9kZTpzdHJlYW0nXG5pbXBvcnQgeyBBdHRhY2htZW50Q29udGVudEVuY29kaW5nIH0gZnJvbSAnQGN1Y3VtYmVyL21lc3NhZ2VzJ1xuaW1wb3J0IHsgZG9lc0hhdmVWYWx1ZSwgZG9lc05vdEhhdmVWYWx1ZSB9IGZyb20gJy4uLy4uL3ZhbHVlX2NoZWNrZXInXG5cbmV4cG9ydCBpbnRlcmZhY2UgSUF0dGFjaG1lbnRNZWRpYSB7XG4gIGVuY29kaW5nOiBBdHRhY2htZW50Q29udGVudEVuY29kaW5nXG4gIGNvbnRlbnRUeXBlOiBzdHJpbmdcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJQXR0YWNobWVudCB7XG4gIGRhdGE6IHN0cmluZ1xuICBtZWRpYTogSUF0dGFjaG1lbnRNZWRpYVxuICBmaWxlTmFtZT86IHN0cmluZ1xufVxuXG5leHBvcnQgdHlwZSBJQXR0YWNoRnVuY3Rpb24gPSAoYXR0YWNobWVudDogSUF0dGFjaG1lbnQpID0+IHZvaWRcblxuZXhwb3J0IGludGVyZmFjZSBJQ3JlYXRlQXR0YWNobWVudE9wdGlvbnMge1xuICBtZWRpYVR5cGU6IHN0cmluZ1xuICBmaWxlTmFtZT86IHN0cmluZ1xufVxuZXhwb3J0IHR5cGUgSUNyZWF0ZVN0cmluZ0F0dGFjaG1lbnQgPSAoXG4gIGRhdGE6IHN0cmluZyxcbiAgbWVkaWFUeXBlT3JPcHRpb25zPzogc3RyaW5nIHwgSUNyZWF0ZUF0dGFjaG1lbnRPcHRpb25zXG4pID0+IHZvaWRcbmV4cG9ydCB0eXBlIElDcmVhdGVCdWZmZXJBdHRhY2htZW50ID0gKFxuICBkYXRhOiBCdWZmZXIsXG4gIG1lZGlhVHlwZU9yT3B0aW9uczogc3RyaW5nIHwgSUNyZWF0ZUF0dGFjaG1lbnRPcHRpb25zXG4pID0+IHZvaWRcbmV4cG9ydCB0eXBlIElDcmVhdGVTdHJlYW1BdHRhY2htZW50ID0gKFxuICBkYXRhOiBSZWFkYWJsZSxcbiAgbWVkaWFUeXBlT3JPcHRpb25zOiBzdHJpbmcgfCBJQ3JlYXRlQXR0YWNobWVudE9wdGlvbnNcbikgPT4gUHJvbWlzZTx2b2lkPlxuZXhwb3J0IHR5cGUgSUNyZWF0ZVN0cmVhbUF0dGFjaG1lbnRXaXRoQ2FsbGJhY2sgPSAoXG4gIGRhdGE6IFJlYWRhYmxlLFxuICBtZWRpYVR5cGVPck9wdGlvbnM6IHN0cmluZyB8IElDcmVhdGVBdHRhY2htZW50T3B0aW9ucyxcbiAgY2FsbGJhY2s6ICgpID0+IHZvaWRcbikgPT4gdm9pZFxuZXhwb3J0IHR5cGUgSUNyZWF0ZUF0dGFjaG1lbnQgPSBJQ3JlYXRlU3RyaW5nQXR0YWNobWVudCAmXG4gIElDcmVhdGVCdWZmZXJBdHRhY2htZW50ICZcbiAgSUNyZWF0ZVN0cmVhbUF0dGFjaG1lbnQgJlxuICBJQ3JlYXRlU3RyZWFtQXR0YWNobWVudFdpdGhDYWxsYmFja1xuZXhwb3J0IHR5cGUgSUNyZWF0ZUxvZyA9ICh0ZXh0OiBzdHJpbmcpID0+IHZvaWRcbmV4cG9ydCB0eXBlIElDcmVhdGVMaW5rID0gKHRleHQ6IHN0cmluZykgPT4gdm9pZFxuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBBdHRhY2htZW50TWFuYWdlciB7XG4gIHByaXZhdGUgcmVhZG9ubHkgb25BdHRhY2htZW50OiBJQXR0YWNoRnVuY3Rpb25cblxuICBjb25zdHJ1Y3RvcihvbkF0dGFjaG1lbnQ6IElBdHRhY2hGdW5jdGlvbikge1xuICAgIHRoaXMub25BdHRhY2htZW50ID0gb25BdHRhY2htZW50XG4gIH1cblxuICBsb2codGV4dDogc3RyaW5nKTogdm9pZCB8IFByb21pc2U8dm9pZD4ge1xuICAgIHJldHVybiB0aGlzLmNyZWF0ZSh0ZXh0LCAndGV4dC94LmN1Y3VtYmVyLmxvZytwbGFpbicpXG4gIH1cblxuICBsaW5rKC4uLnVybDogc3RyaW5nW10pOiB2b2lkIHwgUHJvbWlzZTx2b2lkPiB7XG4gICAgcmV0dXJuIHRoaXMuY3JlYXRlKHVybC5qb2luKCdcXG4nKSwgJ3RleHQvdXJpLWxpc3QnKVxuICB9XG5cbiAgY3JlYXRlKFxuICAgIGRhdGE6IEJ1ZmZlciB8IFJlYWRhYmxlIHwgc3RyaW5nLFxuICAgIG1lZGlhVHlwZU9yT3B0aW9ucz86IHN0cmluZyB8IElDcmVhdGVBdHRhY2htZW50T3B0aW9ucyxcbiAgICBjYWxsYmFjaz86ICgpID0+IHZvaWRcbiAgKTogdm9pZCB8IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IG9wdGlvbnMgPSBub3JtYWxpc2VPcHRpb25zKG1lZGlhVHlwZU9yT3B0aW9ucylcbiAgICBpZiAoQnVmZmVyLmlzQnVmZmVyKGRhdGEpKSB7XG4gICAgICBpZiAoZG9lc05vdEhhdmVWYWx1ZShvcHRpb25zLm1lZGlhVHlwZSkpIHtcbiAgICAgICAgdGhyb3cgRXJyb3IoJ0J1ZmZlciBhdHRhY2htZW50cyBtdXN0IHNwZWNpZnkgYSBtZWRpYSB0eXBlJylcbiAgICAgIH1cbiAgICAgIHRoaXMuY3JlYXRlQnVmZmVyQXR0YWNobWVudChkYXRhLCBvcHRpb25zLm1lZGlhVHlwZSwgb3B0aW9ucy5maWxlTmFtZSlcbiAgICB9IGVsc2UgaWYgKHR5cGVvZiBkYXRhID09PSAnc3RyaW5nJykge1xuICAgICAgaWYgKGRvZXNOb3RIYXZlVmFsdWUob3B0aW9ucy5tZWRpYVR5cGUpKSB7XG4gICAgICAgIG9wdGlvbnMubWVkaWFUeXBlID0gJ3RleHQvcGxhaW4nXG4gICAgICB9XG4gICAgICBpZiAob3B0aW9ucy5tZWRpYVR5cGUuc3RhcnRzV2l0aCgnYmFzZTY0OicpKSB7XG4gICAgICAgIHRoaXMuY3JlYXRlU3RyaW5nQXR0YWNobWVudChcbiAgICAgICAgICBkYXRhLFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGVuY29kaW5nOiBBdHRhY2htZW50Q29udGVudEVuY29kaW5nLkJBU0U2NCxcbiAgICAgICAgICAgIGNvbnRlbnRUeXBlOiBvcHRpb25zLm1lZGlhVHlwZS5yZXBsYWNlKCdiYXNlNjQ6JywgJycpLFxuICAgICAgICAgIH0sXG4gICAgICAgICAgb3B0aW9ucy5maWxlTmFtZVxuICAgICAgICApXG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLmNyZWF0ZVN0cmluZ0F0dGFjaG1lbnQoXG4gICAgICAgICAgZGF0YSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBlbmNvZGluZzogQXR0YWNobWVudENvbnRlbnRFbmNvZGluZy5JREVOVElUWSxcbiAgICAgICAgICAgIGNvbnRlbnRUeXBlOiBvcHRpb25zLm1lZGlhVHlwZSxcbiAgICAgICAgICB9LFxuICAgICAgICAgIG9wdGlvbnMuZmlsZU5hbWVcbiAgICAgICAgKVxuICAgICAgfVxuICAgIH0gZWxzZSBpZiAoaXNSZWFkYWJsZShkYXRhKSkge1xuICAgICAgaWYgKGRvZXNOb3RIYXZlVmFsdWUob3B0aW9ucy5tZWRpYVR5cGUpKSB7XG4gICAgICAgIHRocm93IEVycm9yKCdTdHJlYW0gYXR0YWNobWVudHMgbXVzdCBzcGVjaWZ5IGEgbWVkaWEgdHlwZScpXG4gICAgICB9XG4gICAgICByZXR1cm4gdGhpcy5jcmVhdGVTdHJlYW1BdHRhY2htZW50KGRhdGEsIG9wdGlvbnMubWVkaWFUeXBlLCBvcHRpb25zLmZpbGVOYW1lLCBjYWxsYmFjaylcbiAgICB9IGVsc2Uge1xuICAgICAgdGhyb3cgRXJyb3IoJ0ludmFsaWQgYXR0YWNobWVudCBkYXRhOiBtdXN0IGJlIGEgYnVmZmVyLCByZWFkYWJsZSBzdHJlYW0sIG9yIHN0cmluZycpXG4gICAgfVxuICB9XG5cbiAgY3JlYXRlQnVmZmVyQXR0YWNobWVudChkYXRhOiBCdWZmZXIsIG1lZGlhVHlwZTogc3RyaW5nLCBmaWxlTmFtZT86IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMuY3JlYXRlU3RyaW5nQXR0YWNobWVudChcbiAgICAgIGRhdGEudG9TdHJpbmcoJ2Jhc2U2NCcpLFxuICAgICAge1xuICAgICAgICBlbmNvZGluZzogQXR0YWNobWVudENvbnRlbnRFbmNvZGluZy5CQVNFNjQsXG4gICAgICAgIGNvbnRlbnRUeXBlOiBtZWRpYVR5cGUsXG4gICAgICB9LFxuICAgICAgZmlsZU5hbWVcbiAgICApXG4gIH1cblxuICBjcmVhdGVTdHJlYW1BdHRhY2htZW50KFxuICAgIGRhdGE6IFJlYWRhYmxlLFxuICAgIG1lZGlhVHlwZTogc3RyaW5nLFxuICAgIGZpbGVOYW1lPzogc3RyaW5nLFxuICAgIGNhbGxiYWNrPzogKCkgPT4gdm9pZFxuICApOiB2b2lkIHwgUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgcHJvbWlzZSA9IG5ldyBQcm9taXNlPHZvaWQ+KChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgIGNvbnN0IGJ1ZmZlcnM6IFVpbnQ4QXJyYXlbXSA9IFtdXG4gICAgICBkYXRhLm9uKCdkYXRhJywgKGNodW5rKSA9PiB7XG4gICAgICAgIGJ1ZmZlcnMucHVzaChjaHVuaylcbiAgICAgIH0pXG4gICAgICBkYXRhLm9uKCdlbmQnLCAoKSA9PiB7XG4gICAgICAgIHRoaXMuY3JlYXRlQnVmZmVyQXR0YWNobWVudChCdWZmZXIuY29uY2F0KGJ1ZmZlcnMpLCBtZWRpYVR5cGUsIGZpbGVOYW1lKVxuICAgICAgICByZXNvbHZlKClcbiAgICAgIH0pXG4gICAgICBkYXRhLm9uKCdlcnJvcicsIHJlamVjdClcbiAgICB9KVxuICAgIGlmIChkb2VzSGF2ZVZhbHVlKGNhbGxiYWNrKSkge1xuICAgICAgcHJvbWlzZS50aGVuKGNhbGxiYWNrLCBjYWxsYmFjaylcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIHByb21pc2VcbiAgICB9XG4gIH1cblxuICBjcmVhdGVTdHJpbmdBdHRhY2htZW50KGRhdGE6IHN0cmluZywgbWVkaWE6IElBdHRhY2htZW50TWVkaWEsIGZpbGVOYW1lPzogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy5vbkF0dGFjaG1lbnQoe1xuICAgICAgZGF0YSxcbiAgICAgIG1lZGlhLFxuICAgICAgLi4uKGZpbGVOYW1lID8geyBmaWxlTmFtZSB9IDoge30pLFxuICAgIH0pXG4gIH1cbn1cblxuZnVuY3Rpb24gbm9ybWFsaXNlT3B0aW9ucyhcbiAgbWVkaWFUeXBlT3JPcHRpb25zPzogc3RyaW5nIHwgSUNyZWF0ZUF0dGFjaG1lbnRPcHRpb25zXG4pOiBQYXJ0aWFsPElDcmVhdGVBdHRhY2htZW50T3B0aW9ucz4ge1xuICBpZiAoIW1lZGlhVHlwZU9yT3B0aW9ucykge1xuICAgIHJldHVybiB7fVxuICB9XG4gIGlmICh0eXBlb2YgbWVkaWFUeXBlT3JPcHRpb25zID09PSAnc3RyaW5nJykge1xuICAgIHJldHVybiB7XG4gICAgICBtZWRpYVR5cGU6IG1lZGlhVHlwZU9yT3B0aW9ucyxcbiAgICB9XG4gIH1cbiAgcmV0dXJuIG1lZGlhVHlwZU9yT3B0aW9uc1xufVxuIl19
@@ -3,7 +3,7 @@ import type { IdGenerator } from '@cucumber/messages';
3
3
  import { type SourcedPickle } from '../assemble';
4
4
  import type { SupportCodeLibrary } from '../support_code_library_builder/types';
5
5
  import type { Runtime } from './index';
6
- import type { RuntimeAdapter } from './types';
6
+ import type { RuntimeAdapter, RuntimeResult } from './types';
7
7
  /**
8
8
  * Handles the high-level coordination of the test run on the main thread
9
9
  * @returns whether all hooks and test cases were successful
@@ -17,7 +17,8 @@ export declare class Coordinator implements Runtime {
17
17
  private newId;
18
18
  private sourcedPickles;
19
19
  private supportCodeLibrary;
20
+ private filterStacktraces;
20
21
  private adapter;
21
- constructor(testRunStartedId: string, eventBroadcaster: EventEmitter, newId: IdGenerator.NewId, sourcedPickles: ReadonlyArray<SourcedPickle>, supportCodeLibrary: SupportCodeLibrary, adapter: RuntimeAdapter);
22
- run(): Promise<boolean>;
22
+ constructor(testRunStartedId: string, eventBroadcaster: EventEmitter, newId: IdGenerator.NewId, sourcedPickles: ReadonlyArray<SourcedPickle>, supportCodeLibrary: SupportCodeLibrary, filterStacktraces: boolean, adapter: RuntimeAdapter);
23
+ run(): Promise<RuntimeResult>;
23
24
  }
@@ -2,6 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.Coordinator = void 0;
4
4
  const assemble_1 = require("../assemble");
5
+ const format_error_1 = require("./format_error");
5
6
  /**
6
7
  * Handles the high-level coordination of the test run on the main thread
7
8
  * @returns whether all hooks and test cases were successful
@@ -15,13 +16,15 @@ class Coordinator {
15
16
  newId;
16
17
  sourcedPickles;
17
18
  supportCodeLibrary;
19
+ filterStacktraces;
18
20
  adapter;
19
- constructor(testRunStartedId, eventBroadcaster, newId, sourcedPickles, supportCodeLibrary, adapter) {
21
+ constructor(testRunStartedId, eventBroadcaster, newId, sourcedPickles, supportCodeLibrary, filterStacktraces, adapter) {
20
22
  this.testRunStartedId = testRunStartedId;
21
23
  this.eventBroadcaster = eventBroadcaster;
22
24
  this.newId = newId;
23
25
  this.sourcedPickles = sourcedPickles;
24
26
  this.supportCodeLibrary = supportCodeLibrary;
27
+ this.filterStacktraces = filterStacktraces;
25
28
  this.adapter = adapter;
26
29
  }
27
30
  async run() {
@@ -38,7 +41,15 @@ class Coordinator {
38
41
  successByPhase.testCases = await this.adapter.runTestCases(assembledTestCases);
39
42
  }
40
43
  successByPhase.afterAllHooks = await this.adapter.runAfterAllHooks();
41
- return (successByPhase.beforeAllHooks && successByPhase.testCases && successByPhase.afterAllHooks);
44
+ return {
45
+ success: successByPhase.beforeAllHooks && successByPhase.testCases && successByPhase.afterAllHooks,
46
+ };
47
+ }
48
+ catch (error) {
49
+ return {
50
+ success: false,
51
+ exception: (0, format_error_1.formatError)(error, this.filterStacktraces).exception,
52
+ };
42
53
  }
43
54
  finally {
44
55
  await this.adapter.teardown();
@@ -46,4 +57,4 @@ class Coordinator {
46
57
  }
47
58
  }
48
59
  exports.Coordinator = Coordinator;
49
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29vcmRpbmF0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcnVudGltZS9jb29yZGluYXRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFFQSwwQ0FBbUU7QUFLbkU7Ozs7OztHQU1HO0FBQ0gsTUFBYSxXQUFXO0lBRVo7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBTlYsWUFDVSxnQkFBd0IsRUFDeEIsZ0JBQThCLEVBQzlCLEtBQXdCLEVBQ3hCLGNBQTRDLEVBQzVDLGtCQUFzQyxFQUN0QyxPQUF1QjtRQUx2QixxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQVE7UUFDeEIscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFjO1FBQzlCLFVBQUssR0FBTCxLQUFLLENBQW1CO1FBQ3hCLG1CQUFjLEdBQWQsY0FBYyxDQUE4QjtRQUM1Qyx1QkFBa0IsR0FBbEIsa0JBQWtCLENBQW9CO1FBQ3RDLFlBQU8sR0FBUCxPQUFPLENBQWdCO0lBQzlCLENBQUM7SUFFSixLQUFLLENBQUMsR0FBRztRQUNQLElBQUksQ0FBQztZQUNILE1BQU0sSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsQ0FBQTtZQUUxQixNQUFNLGNBQWMsR0FBRztnQkFDckIsY0FBYyxFQUFFLEtBQUs7Z0JBQ3JCLFNBQVMsRUFBRSxLQUFLO2dCQUNoQixhQUFhLEVBQUUsS0FBSzthQUNyQixDQUFBO1lBQ0QsY0FBYyxDQUFDLGNBQWMsR0FBRyxNQUFNLElBQUksQ0FBQyxPQUFPLENBQUMsaUJBQWlCLEVBQUUsQ0FBQTtZQUN0RSxJQUFJLGNBQWMsQ0FBQyxjQUFjLEVBQUUsQ0FBQztnQkFDbEMsTUFBTSxrQkFBa0IsR0FBRyxNQUFNLElBQUEsNEJBQWlCLEVBQ2hELElBQUksQ0FBQyxnQkFBZ0IsRUFDckIsSUFBSSxDQUFDLGdCQUFnQixFQUNyQixJQUFJLENBQUMsS0FBSyxFQUNWLElBQUksQ0FBQyxjQUFjLEVBQ25CLElBQUksQ0FBQyxrQkFBa0IsQ0FDeEIsQ0FBQTtnQkFDRCxjQUFjLENBQUMsU0FBUyxHQUFHLE1BQU0sSUFBSSxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsa0JBQWtCLENBQUMsQ0FBQTtZQUNoRixDQUFDO1lBQ0QsY0FBYyxDQUFDLGFBQWEsR0FBRyxNQUFNLElBQUksQ0FBQyxPQUFPLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQTtZQUNwRSxPQUFPLENBQ0wsY0FBYyxDQUFDLGNBQWMsSUFBSSxjQUFjLENBQUMsU0FBUyxJQUFJLGNBQWMsQ0FBQyxhQUFhLENBQzFGLENBQUE7UUFDSCxDQUFDO2dCQUFTLENBQUM7WUFDVCxNQUFNLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxFQUFFLENBQUE7UUFDL0IsQ0FBQztJQUNILENBQUM7Q0FDRjtBQXRDRCxrQ0FzQ0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IEV2ZW50RW1pdHRlciB9IGZyb20gJ25vZGU6ZXZlbnRzJ1xuaW1wb3J0IHR5cGUgeyBJZEdlbmVyYXRvciB9IGZyb20gJ0BjdWN1bWJlci9tZXNzYWdlcydcbmltcG9ydCB7IGFzc2VtYmxlVGVzdENhc2VzLCB0eXBlIFNvdXJjZWRQaWNrbGUgfSBmcm9tICcuLi9hc3NlbWJsZSdcbmltcG9ydCB0eXBlIHsgU3VwcG9ydENvZGVMaWJyYXJ5IH0gZnJvbSAnLi4vc3VwcG9ydF9jb2RlX2xpYnJhcnlfYnVpbGRlci90eXBlcydcbmltcG9ydCB0eXBlIHsgUnVudGltZSB9IGZyb20gJy4vaW5kZXgnXG5pbXBvcnQgdHlwZSB7IFJ1bnRpbWVBZGFwdGVyIH0gZnJvbSAnLi90eXBlcydcblxuLyoqXG4gKiBIYW5kbGVzIHRoZSBoaWdoLWxldmVsIGNvb3JkaW5hdGlvbiBvZiB0aGUgdGVzdCBydW4gb24gdGhlIG1haW4gdGhyZWFkXG4gKiBAcmV0dXJucyB3aGV0aGVyIGFsbCBob29rcyBhbmQgdGVzdCBjYXNlcyB3ZXJlIHN1Y2Nlc3NmdWxcbiAqIEByZW1hcmtzXG4gKiBGb3IgZWFjaCBwaGFzZSBvZiB0aGUgdGVzdCBydW4sIGRlbGVnYXRlcyB0byBhIHtAbGluayBSdW50aW1lQWRhcHRlcn0gdG8gaGFuZGxlXG4gKiB0aGUgd29yayBpdHNlbGYuIFVuYXdhcmUgb2YgaG93IHRoZSBhZGFwdGVyIGRpc3RyaWJ1dGVzIGFuZCBleGVjdXRlcyB3b3JrLlxuICovXG5leHBvcnQgY2xhc3MgQ29vcmRpbmF0b3IgaW1wbGVtZW50cyBSdW50aW1lIHtcbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSB0ZXN0UnVuU3RhcnRlZElkOiBzdHJpbmcsXG4gICAgcHJpdmF0ZSBldmVudEJyb2FkY2FzdGVyOiBFdmVudEVtaXR0ZXIsXG4gICAgcHJpdmF0ZSBuZXdJZDogSWRHZW5lcmF0b3IuTmV3SWQsXG4gICAgcHJpdmF0ZSBzb3VyY2VkUGlja2xlczogUmVhZG9ubHlBcnJheTxTb3VyY2VkUGlja2xlPixcbiAgICBwcml2YXRlIHN1cHBvcnRDb2RlTGlicmFyeTogU3VwcG9ydENvZGVMaWJyYXJ5LFxuICAgIHByaXZhdGUgYWRhcHRlcjogUnVudGltZUFkYXB0ZXJcbiAgKSB7fVxuXG4gIGFzeW5jIHJ1bigpOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgICB0cnkge1xuICAgICAgYXdhaXQgdGhpcy5hZGFwdGVyLnNldHVwKClcblxuICAgICAgY29uc3Qgc3VjY2Vzc0J5UGhhc2UgPSB7XG4gICAgICAgIGJlZm9yZUFsbEhvb2tzOiBmYWxzZSxcbiAgICAgICAgdGVzdENhc2VzOiBmYWxzZSxcbiAgICAgICAgYWZ0ZXJBbGxIb29rczogZmFsc2UsXG4gICAgICB9XG4gICAgICBzdWNjZXNzQnlQaGFzZS5iZWZvcmVBbGxIb29rcyA9IGF3YWl0IHRoaXMuYWRhcHRlci5ydW5CZWZvcmVBbGxIb29rcygpXG4gICAgICBpZiAoc3VjY2Vzc0J5UGhhc2UuYmVmb3JlQWxsSG9va3MpIHtcbiAgICAgICAgY29uc3QgYXNzZW1ibGVkVGVzdENhc2VzID0gYXdhaXQgYXNzZW1ibGVUZXN0Q2FzZXMoXG4gICAgICAgICAgdGhpcy50ZXN0UnVuU3RhcnRlZElkLFxuICAgICAgICAgIHRoaXMuZXZlbnRCcm9hZGNhc3RlcixcbiAgICAgICAgICB0aGlzLm5ld0lkLFxuICAgICAgICAgIHRoaXMuc291cmNlZFBpY2tsZXMsXG4gICAgICAgICAgdGhpcy5zdXBwb3J0Q29kZUxpYnJhcnlcbiAgICAgICAgKVxuICAgICAgICBzdWNjZXNzQnlQaGFzZS50ZXN0Q2FzZXMgPSBhd2FpdCB0aGlzLmFkYXB0ZXIucnVuVGVzdENhc2VzKGFzc2VtYmxlZFRlc3RDYXNlcylcbiAgICAgIH1cbiAgICAgIHN1Y2Nlc3NCeVBoYXNlLmFmdGVyQWxsSG9va3MgPSBhd2FpdCB0aGlzLmFkYXB0ZXIucnVuQWZ0ZXJBbGxIb29rcygpXG4gICAgICByZXR1cm4gKFxuICAgICAgICBzdWNjZXNzQnlQaGFzZS5iZWZvcmVBbGxIb29rcyAmJiBzdWNjZXNzQnlQaGFzZS50ZXN0Q2FzZXMgJiYgc3VjY2Vzc0J5UGhhc2UuYWZ0ZXJBbGxIb29rc1xuICAgICAgKVxuICAgIH0gZmluYWxseSB7XG4gICAgICBhd2FpdCB0aGlzLmFkYXB0ZXIudGVhcmRvd24oKVxuICAgIH1cbiAgfVxufVxuIl19
60
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29vcmRpbmF0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcnVudGltZS9jb29yZGluYXRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFFQSwwQ0FBbUU7QUFFbkUsaURBQTRDO0FBSTVDOzs7Ozs7R0FNRztBQUNILE1BQWEsV0FBVztJQUVaO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBUFYsWUFDVSxnQkFBd0IsRUFDeEIsZ0JBQThCLEVBQzlCLEtBQXdCLEVBQ3hCLGNBQTRDLEVBQzVDLGtCQUFzQyxFQUN0QyxpQkFBMEIsRUFDMUIsT0FBdUI7UUFOdkIscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFRO1FBQ3hCLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBYztRQUM5QixVQUFLLEdBQUwsS0FBSyxDQUFtQjtRQUN4QixtQkFBYyxHQUFkLGNBQWMsQ0FBOEI7UUFDNUMsdUJBQWtCLEdBQWxCLGtCQUFrQixDQUFvQjtRQUN0QyxzQkFBaUIsR0FBakIsaUJBQWlCLENBQVM7UUFDMUIsWUFBTyxHQUFQLE9BQU8sQ0FBZ0I7SUFDOUIsQ0FBQztJQUVKLEtBQUssQ0FBQyxHQUFHO1FBQ1AsSUFBSSxDQUFDO1lBQ0gsTUFBTSxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxDQUFBO1lBRTFCLE1BQU0sY0FBYyxHQUFHO2dCQUNyQixjQUFjLEVBQUUsS0FBSztnQkFDckIsU0FBUyxFQUFFLEtBQUs7Z0JBQ2hCLGFBQWEsRUFBRSxLQUFLO2FBQ3JCLENBQUE7WUFDRCxjQUFjLENBQUMsY0FBYyxHQUFHLE1BQU0sSUFBSSxDQUFDLE9BQU8sQ0FBQyxpQkFBaUIsRUFBRSxDQUFBO1lBQ3RFLElBQUksY0FBYyxDQUFDLGNBQWMsRUFBRSxDQUFDO2dCQUNsQyxNQUFNLGtCQUFrQixHQUFHLE1BQU0sSUFBQSw0QkFBaUIsRUFDaEQsSUFBSSxDQUFDLGdCQUFnQixFQUNyQixJQUFJLENBQUMsZ0JBQWdCLEVBQ3JCLElBQUksQ0FBQyxLQUFLLEVBQ1YsSUFBSSxDQUFDLGNBQWMsRUFDbkIsSUFBSSxDQUFDLGtCQUFrQixDQUN4QixDQUFBO2dCQUNELGNBQWMsQ0FBQyxTQUFTLEdBQUcsTUFBTSxJQUFJLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxrQkFBa0IsQ0FBQyxDQUFBO1lBQ2hGLENBQUM7WUFDRCxjQUFjLENBQUMsYUFBYSxHQUFHLE1BQU0sSUFBSSxDQUFDLE9BQU8sQ0FBQyxnQkFBZ0IsRUFBRSxDQUFBO1lBQ3BFLE9BQU87Z0JBQ0wsT0FBTyxFQUNMLGNBQWMsQ0FBQyxjQUFjLElBQUksY0FBYyxDQUFDLFNBQVMsSUFBSSxjQUFjLENBQUMsYUFBYTthQUM1RixDQUFBO1FBQ0gsQ0FBQztRQUFDLE9BQU8sS0FBYyxFQUFFLENBQUM7WUFDeEIsT0FBTztnQkFDTCxPQUFPLEVBQUUsS0FBSztnQkFDZCxTQUFTLEVBQUUsSUFBQSwwQkFBVyxFQUFDLEtBQWMsRUFBRSxJQUFJLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxTQUFTO2FBQ3pFLENBQUE7UUFDSCxDQUFDO2dCQUFTLENBQUM7WUFDVCxNQUFNLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxFQUFFLENBQUE7UUFDL0IsQ0FBQztJQUNILENBQUM7Q0FDRjtBQTdDRCxrQ0E2Q0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IEV2ZW50RW1pdHRlciB9IGZyb20gJ25vZGU6ZXZlbnRzJ1xuaW1wb3J0IHR5cGUgeyBJZEdlbmVyYXRvciB9IGZyb20gJ0BjdWN1bWJlci9tZXNzYWdlcydcbmltcG9ydCB7IGFzc2VtYmxlVGVzdENhc2VzLCB0eXBlIFNvdXJjZWRQaWNrbGUgfSBmcm9tICcuLi9hc3NlbWJsZSdcbmltcG9ydCB0eXBlIHsgU3VwcG9ydENvZGVMaWJyYXJ5IH0gZnJvbSAnLi4vc3VwcG9ydF9jb2RlX2xpYnJhcnlfYnVpbGRlci90eXBlcydcbmltcG9ydCB7IGZvcm1hdEVycm9yIH0gZnJvbSAnLi9mb3JtYXRfZXJyb3InXG5pbXBvcnQgdHlwZSB7IFJ1bnRpbWUgfSBmcm9tICcuL2luZGV4J1xuaW1wb3J0IHR5cGUgeyBSdW50aW1lQWRhcHRlciwgUnVudGltZVJlc3VsdCB9IGZyb20gJy4vdHlwZXMnXG5cbi8qKlxuICogSGFuZGxlcyB0aGUgaGlnaC1sZXZlbCBjb29yZGluYXRpb24gb2YgdGhlIHRlc3QgcnVuIG9uIHRoZSBtYWluIHRocmVhZFxuICogQHJldHVybnMgd2hldGhlciBhbGwgaG9va3MgYW5kIHRlc3QgY2FzZXMgd2VyZSBzdWNjZXNzZnVsXG4gKiBAcmVtYXJrc1xuICogRm9yIGVhY2ggcGhhc2Ugb2YgdGhlIHRlc3QgcnVuLCBkZWxlZ2F0ZXMgdG8gYSB7QGxpbmsgUnVudGltZUFkYXB0ZXJ9IHRvIGhhbmRsZVxuICogdGhlIHdvcmsgaXRzZWxmLiBVbmF3YXJlIG9mIGhvdyB0aGUgYWRhcHRlciBkaXN0cmlidXRlcyBhbmQgZXhlY3V0ZXMgd29yay5cbiAqL1xuZXhwb3J0IGNsYXNzIENvb3JkaW5hdG9yIGltcGxlbWVudHMgUnVudGltZSB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgdGVzdFJ1blN0YXJ0ZWRJZDogc3RyaW5nLFxuICAgIHByaXZhdGUgZXZlbnRCcm9hZGNhc3RlcjogRXZlbnRFbWl0dGVyLFxuICAgIHByaXZhdGUgbmV3SWQ6IElkR2VuZXJhdG9yLk5ld0lkLFxuICAgIHByaXZhdGUgc291cmNlZFBpY2tsZXM6IFJlYWRvbmx5QXJyYXk8U291cmNlZFBpY2tsZT4sXG4gICAgcHJpdmF0ZSBzdXBwb3J0Q29kZUxpYnJhcnk6IFN1cHBvcnRDb2RlTGlicmFyeSxcbiAgICBwcml2YXRlIGZpbHRlclN0YWNrdHJhY2VzOiBib29sZWFuLFxuICAgIHByaXZhdGUgYWRhcHRlcjogUnVudGltZUFkYXB0ZXJcbiAgKSB7fVxuXG4gIGFzeW5jIHJ1bigpOiBQcm9taXNlPFJ1bnRpbWVSZXN1bHQ+IHtcbiAgICB0cnkge1xuICAgICAgYXdhaXQgdGhpcy5hZGFwdGVyLnNldHVwKClcblxuICAgICAgY29uc3Qgc3VjY2Vzc0J5UGhhc2UgPSB7XG4gICAgICAgIGJlZm9yZUFsbEhvb2tzOiBmYWxzZSxcbiAgICAgICAgdGVzdENhc2VzOiBmYWxzZSxcbiAgICAgICAgYWZ0ZXJBbGxIb29rczogZmFsc2UsXG4gICAgICB9XG4gICAgICBzdWNjZXNzQnlQaGFzZS5iZWZvcmVBbGxIb29rcyA9IGF3YWl0IHRoaXMuYWRhcHRlci5ydW5CZWZvcmVBbGxIb29rcygpXG4gICAgICBpZiAoc3VjY2Vzc0J5UGhhc2UuYmVmb3JlQWxsSG9va3MpIHtcbiAgICAgICAgY29uc3QgYXNzZW1ibGVkVGVzdENhc2VzID0gYXdhaXQgYXNzZW1ibGVUZXN0Q2FzZXMoXG4gICAgICAgICAgdGhpcy50ZXN0UnVuU3RhcnRlZElkLFxuICAgICAgICAgIHRoaXMuZXZlbnRCcm9hZGNhc3RlcixcbiAgICAgICAgICB0aGlzLm5ld0lkLFxuICAgICAgICAgIHRoaXMuc291cmNlZFBpY2tsZXMsXG4gICAgICAgICAgdGhpcy5zdXBwb3J0Q29kZUxpYnJhcnlcbiAgICAgICAgKVxuICAgICAgICBzdWNjZXNzQnlQaGFzZS50ZXN0Q2FzZXMgPSBhd2FpdCB0aGlzLmFkYXB0ZXIucnVuVGVzdENhc2VzKGFzc2VtYmxlZFRlc3RDYXNlcylcbiAgICAgIH1cbiAgICAgIHN1Y2Nlc3NCeVBoYXNlLmFmdGVyQWxsSG9va3MgPSBhd2FpdCB0aGlzLmFkYXB0ZXIucnVuQWZ0ZXJBbGxIb29rcygpXG4gICAgICByZXR1cm4ge1xuICAgICAgICBzdWNjZXNzOlxuICAgICAgICAgIHN1Y2Nlc3NCeVBoYXNlLmJlZm9yZUFsbEhvb2tzICYmIHN1Y2Nlc3NCeVBoYXNlLnRlc3RDYXNlcyAmJiBzdWNjZXNzQnlQaGFzZS5hZnRlckFsbEhvb2tzLFxuICAgICAgfVxuICAgIH0gY2F0Y2ggKGVycm9yOiB1bmtub3duKSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBzdWNjZXNzOiBmYWxzZSxcbiAgICAgICAgZXhjZXB0aW9uOiBmb3JtYXRFcnJvcihlcnJvciBhcyBFcnJvciwgdGhpcy5maWx0ZXJTdGFja3RyYWNlcykuZXhjZXB0aW9uLFxuICAgICAgfVxuICAgIH0gZmluYWxseSB7XG4gICAgICBhd2FpdCB0aGlzLmFkYXB0ZXIudGVhcmRvd24oKVxuICAgIH1cbiAgfVxufVxuIl19
@@ -1,6 +1,6 @@
1
- import * as messages from '@cucumber/messages';
1
+ import { type Pickle, TestStepResultStatus } from '@cucumber/messages';
2
2
  import type StepDefinition from '../models/step_definition';
3
3
  import type { RuntimeOptions } from '.';
4
4
  export declare function getAmbiguousStepException(stepDefinitions: StepDefinition[]): string;
5
- export declare function retriesForPickle(pickle: messages.Pickle, options: RuntimeOptions): number;
6
- export declare function shouldCauseFailure(status: messages.TestStepResultStatus, options: RuntimeOptions): boolean;
5
+ export declare function retriesForPickle(pickle: Pickle, options: RuntimeOptions): number;
6
+ export declare function shouldCauseFailure(status: TestStepResultStatus, options: RuntimeOptions): boolean;
@@ -1,37 +1,4 @@
1
1
  "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || (function () {
19
- var ownKeys = function(o) {
20
- ownKeys = Object.getOwnPropertyNames || function (o) {
21
- var ar = [];
22
- for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
- return ar;
24
- };
25
- return ownKeys(o);
26
- };
27
- return function (mod) {
28
- if (mod && mod.__esModule) return mod;
29
- var result = {};
30
- if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
- __setModuleDefault(result, mod);
32
- return result;
33
- };
34
- })();
35
2
  var __importDefault = (this && this.__importDefault) || function (mod) {
36
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
37
4
  };
@@ -39,7 +6,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
39
6
  exports.getAmbiguousStepException = getAmbiguousStepException;
40
7
  exports.retriesForPickle = retriesForPickle;
41
8
  exports.shouldCauseFailure = shouldCauseFailure;
42
- const messages = __importStar(require("@cucumber/messages"));
9
+ const messages_1 = require("@cucumber/messages");
43
10
  const cli_table3_1 = __importDefault(require("cli-table3"));
44
11
  const indent_string_1 = __importDefault(require("indent-string"));
45
12
  const location_helpers_1 = require("../formatter/helpers/location_helpers");
@@ -98,13 +65,13 @@ function shouldCauseFailure(status, options) {
98
65
  return false;
99
66
  }
100
67
  const failureStatuses = [
101
- messages.TestStepResultStatus.AMBIGUOUS,
102
- messages.TestStepResultStatus.FAILED,
103
- messages.TestStepResultStatus.UNDEFINED,
68
+ messages_1.TestStepResultStatus.AMBIGUOUS,
69
+ messages_1.TestStepResultStatus.FAILED,
70
+ messages_1.TestStepResultStatus.UNDEFINED,
104
71
  ];
105
72
  if (options.strict) {
106
- failureStatuses.push(messages.TestStepResultStatus.PENDING);
73
+ failureStatuses.push(messages_1.TestStepResultStatus.PENDING);
107
74
  }
108
75
  return failureStatuses.includes(status);
109
76
  }
110
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVscGVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9ydW50aW1lL2hlbHBlcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFRQSw4REFnQ0M7QUFFRCw0Q0FpQkM7QUFFRCxnREFnQkM7QUE3RUQsNkRBQThDO0FBQzlDLDREQUE4QjtBQUM5QixrRUFBd0M7QUFDeEMsNEVBQXNFO0FBRXRFLG9EQUFrRDtBQUdsRCxTQUFnQix5QkFBeUIsQ0FBQyxlQUFpQztJQUN6RSxNQUFNLEtBQUssR0FBRyxJQUFJLG9CQUFLLENBQUM7UUFDdEIsS0FBSyxFQUFFO1lBQ0wsTUFBTSxFQUFFLEVBQUU7WUFDVixhQUFhLEVBQUUsRUFBRTtZQUNqQixZQUFZLEVBQUUsRUFBRTtZQUNoQixjQUFjLEVBQUUsRUFBRTtZQUNsQixJQUFJLEVBQUUsRUFBRTtZQUNSLFVBQVUsRUFBRSxFQUFFO1lBQ2QsR0FBRyxFQUFFLEVBQUU7WUFDUCxTQUFTLEVBQUUsRUFBRTtZQUNiLE1BQU0sRUFBRSxLQUFLO1lBQ2IsS0FBSyxFQUFFLEVBQUU7WUFDVCxXQUFXLEVBQUUsRUFBRTtZQUNmLEdBQUcsRUFBRSxFQUFFO1lBQ1AsVUFBVSxFQUFFLEVBQUU7WUFDZCxTQUFTLEVBQUUsRUFBRTtZQUNiLFdBQVcsRUFBRSxFQUFFO1NBQ2hCO1FBQ0QsS0FBSyxFQUFFO1lBQ0wsTUFBTSxFQUFFLEVBQUU7WUFDVixjQUFjLEVBQUUsQ0FBQztZQUNqQixlQUFlLEVBQUUsQ0FBQztTQUNuQjtLQUNGLENBQUMsQ0FBQTtJQUNGLEtBQUssQ0FBQyxJQUFJLENBQ1IsR0FBRyxlQUFlLENBQUMsR0FBRyxDQUFDLENBQUMsY0FBYyxFQUFFLEVBQUU7UUFDeEMsTUFBTSxPQUFPLEdBQUcsY0FBYyxDQUFDLE9BQU8sQ0FBQyxRQUFRLEVBQUUsQ0FBQTtRQUNqRCxPQUFPLENBQUMsT0FBTyxFQUFFLElBQUEsaUNBQWMsRUFBQyxjQUFjLENBQUMsQ0FBQyxDQUFBO0lBQ2xELENBQUMsQ0FBQyxDQUNILENBQUE7SUFDRCxPQUFPLEdBQUcsa0NBQWtDLEdBQUcsSUFBSSxHQUFHLElBQUEsdUJBQVksRUFBQyxLQUFLLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQTtBQUMzRixDQUFDO0FBRUQsU0FBZ0IsZ0JBQWdCLENBQUMsTUFBdUIsRUFBRSxPQUF1QjtJQUMvRSxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ25CLE9BQU8sQ0FBQyxDQUFBO0lBQ1YsQ0FBQztJQUNELE1BQU0sT0FBTyxHQUFHLE9BQU8sQ0FBQyxLQUFLLENBQUE7SUFDN0IsSUFBSSxPQUFPLEtBQUssQ0FBQyxFQUFFLENBQUM7UUFDbEIsT0FBTyxDQUFDLENBQUE7SUFDVixDQUFDO0lBQ0QsTUFBTSxjQUFjLEdBQUcsT0FBTyxDQUFDLGNBQWMsQ0FBQTtJQUM3QyxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDcEIsT0FBTyxPQUFPLENBQUE7SUFDaEIsQ0FBQztJQUNELE1BQU0sZUFBZSxHQUFHLElBQUksK0JBQWUsQ0FBQyxjQUFjLENBQUMsQ0FBQTtJQUMzRCxJQUFJLGVBQWUsQ0FBQyx3QkFBd0IsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDO1FBQ3JELE9BQU8sT0FBTyxDQUFBO0lBQ2hCLENBQUM7SUFDRCxPQUFPLENBQUMsQ0FBQTtBQUNWLENBQUM7QUFFRCxTQUFnQixrQkFBa0IsQ0FDaEMsTUFBcUMsRUFDckMsT0FBdUI7SUFFdkIsSUFBSSxPQUFPLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDbkIsT0FBTyxLQUFLLENBQUE7SUFDZCxDQUFDO0lBQ0QsTUFBTSxlQUFlLEdBQW9DO1FBQ3ZELFFBQVEsQ0FBQyxvQkFBb0IsQ0FBQyxTQUFTO1FBQ3ZDLFFBQVEsQ0FBQyxvQkFBb0IsQ0FBQyxNQUFNO1FBQ3BDLFFBQVEsQ0FBQyxvQkFBb0IsQ0FBQyxTQUFTO0tBQ3hDLENBQUE7SUFDRCxJQUFJLE9BQU8sQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUNuQixlQUFlLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxvQkFBb0IsQ0FBQyxPQUFPLENBQUMsQ0FBQTtJQUM3RCxDQUFDO0lBQ0QsT0FBTyxlQUFlLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFBO0FBQ3pDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBtZXNzYWdlcyBmcm9tICdAY3VjdW1iZXIvbWVzc2FnZXMnXG5pbXBvcnQgVGFibGUgZnJvbSAnY2xpLXRhYmxlMydcbmltcG9ydCBpbmRlbnRTdHJpbmcgZnJvbSAnaW5kZW50LXN0cmluZydcbmltcG9ydCB7IGZvcm1hdExvY2F0aW9uIH0gZnJvbSAnLi4vZm9ybWF0dGVyL2hlbHBlcnMvbG9jYXRpb25faGVscGVycydcbmltcG9ydCB0eXBlIFN0ZXBEZWZpbml0aW9uIGZyb20gJy4uL21vZGVscy9zdGVwX2RlZmluaXRpb24nXG5pbXBvcnQgeyBQaWNrbGVUYWdGaWx0ZXIgfSBmcm9tICcuLi9waWNrbGVfZmlsdGVyJ1xuaW1wb3J0IHR5cGUgeyBSdW50aW1lT3B0aW9ucyB9IGZyb20gJy4nXG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRBbWJpZ3VvdXNTdGVwRXhjZXB0aW9uKHN0ZXBEZWZpbml0aW9uczogU3RlcERlZmluaXRpb25bXSk6IHN0cmluZyB7XG4gIGNvbnN0IHRhYmxlID0gbmV3IFRhYmxlKHtcbiAgICBjaGFyczoge1xuICAgICAgYm90dG9tOiAnJyxcbiAgICAgICdib3R0b20tbGVmdCc6ICcnLFxuICAgICAgJ2JvdHRvbS1taWQnOiAnJyxcbiAgICAgICdib3R0b20tcmlnaHQnOiAnJyxcbiAgICAgIGxlZnQ6ICcnLFxuICAgICAgJ2xlZnQtbWlkJzogJycsXG4gICAgICBtaWQ6ICcnLFxuICAgICAgJ21pZC1taWQnOiAnJyxcbiAgICAgIG1pZGRsZTogJyAtICcsXG4gICAgICByaWdodDogJycsXG4gICAgICAncmlnaHQtbWlkJzogJycsXG4gICAgICB0b3A6ICcnLFxuICAgICAgJ3RvcC1sZWZ0JzogJycsXG4gICAgICAndG9wLW1pZCc6ICcnLFxuICAgICAgJ3RvcC1yaWdodCc6ICcnLFxuICAgIH0sXG4gICAgc3R5bGU6IHtcbiAgICAgIGJvcmRlcjogW10sXG4gICAgICAncGFkZGluZy1sZWZ0JzogMCxcbiAgICAgICdwYWRkaW5nLXJpZ2h0JzogMCxcbiAgICB9LFxuICB9KVxuICB0YWJsZS5wdXNoKFxuICAgIC4uLnN0ZXBEZWZpbml0aW9ucy5tYXAoKHN0ZXBEZWZpbml0aW9uKSA9PiB7XG4gICAgICBjb25zdCBwYXR0ZXJuID0gc3RlcERlZmluaXRpb24ucGF0dGVybi50b1N0cmluZygpXG4gICAgICByZXR1cm4gW3BhdHRlcm4sIGZvcm1hdExvY2F0aW9uKHN0ZXBEZWZpbml0aW9uKV1cbiAgICB9KVxuICApXG4gIHJldHVybiBgJHsnTXVsdGlwbGUgc3RlcCBkZWZpbml0aW9ucyBtYXRjaDonICsgJ1xcbid9JHtpbmRlbnRTdHJpbmcodGFibGUudG9TdHJpbmcoKSwgMil9YFxufVxuXG5leHBvcnQgZnVuY3Rpb24gcmV0cmllc0ZvclBpY2tsZShwaWNrbGU6IG1lc3NhZ2VzLlBpY2tsZSwgb3B0aW9uczogUnVudGltZU9wdGlvbnMpOiBudW1iZXIge1xuICBpZiAoIW9wdGlvbnMucmV0cnkpIHtcbiAgICByZXR1cm4gMFxuICB9XG4gIGNvbnN0IHJldHJpZXMgPSBvcHRpb25zLnJldHJ5XG4gIGlmIChyZXRyaWVzID09PSAwKSB7XG4gICAgcmV0dXJuIDBcbiAgfVxuICBjb25zdCByZXRyeVRhZ0ZpbHRlciA9IG9wdGlvbnMucmV0cnlUYWdGaWx0ZXJcbiAgaWYgKCFyZXRyeVRhZ0ZpbHRlcikge1xuICAgIHJldHVybiByZXRyaWVzXG4gIH1cbiAgY29uc3QgcGlja2xlVGFnRmlsdGVyID0gbmV3IFBpY2tsZVRhZ0ZpbHRlcihyZXRyeVRhZ0ZpbHRlcilcbiAgaWYgKHBpY2tsZVRhZ0ZpbHRlci5tYXRjaGVzQWxsVGFnRXhwcmVzc2lvbnMocGlja2xlKSkge1xuICAgIHJldHVybiByZXRyaWVzXG4gIH1cbiAgcmV0dXJuIDBcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHNob3VsZENhdXNlRmFpbHVyZShcbiAgc3RhdHVzOiBtZXNzYWdlcy5UZXN0U3RlcFJlc3VsdFN0YXR1cyxcbiAgb3B0aW9uczogUnVudGltZU9wdGlvbnNcbik6IGJvb2xlYW4ge1xuICBpZiAob3B0aW9ucy5kcnlSdW4pIHtcbiAgICByZXR1cm4gZmFsc2VcbiAgfVxuICBjb25zdCBmYWlsdXJlU3RhdHVzZXM6IG1lc3NhZ2VzLlRlc3RTdGVwUmVzdWx0U3RhdHVzW10gPSBbXG4gICAgbWVzc2FnZXMuVGVzdFN0ZXBSZXN1bHRTdGF0dXMuQU1CSUdVT1VTLFxuICAgIG1lc3NhZ2VzLlRlc3RTdGVwUmVzdWx0U3RhdHVzLkZBSUxFRCxcbiAgICBtZXNzYWdlcy5UZXN0U3RlcFJlc3VsdFN0YXR1cy5VTkRFRklORUQsXG4gIF1cbiAgaWYgKG9wdGlvbnMuc3RyaWN0KSB7XG4gICAgZmFpbHVyZVN0YXR1c2VzLnB1c2gobWVzc2FnZXMuVGVzdFN0ZXBSZXN1bHRTdGF0dXMuUEVORElORylcbiAgfVxuICByZXR1cm4gZmFpbHVyZVN0YXR1c2VzLmluY2x1ZGVzKHN0YXR1cylcbn1cbiJdfQ==
77
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVscGVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9ydW50aW1lL2hlbHBlcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFRQSw4REFnQ0M7QUFFRCw0Q0FpQkM7QUFFRCxnREFhQztBQTFFRCxpREFBc0U7QUFDdEUsNERBQThCO0FBQzlCLGtFQUF3QztBQUN4Qyw0RUFBc0U7QUFFdEUsb0RBQWtEO0FBR2xELFNBQWdCLHlCQUF5QixDQUFDLGVBQWlDO0lBQ3pFLE1BQU0sS0FBSyxHQUFHLElBQUksb0JBQUssQ0FBQztRQUN0QixLQUFLLEVBQUU7WUFDTCxNQUFNLEVBQUUsRUFBRTtZQUNWLGFBQWEsRUFBRSxFQUFFO1lBQ2pCLFlBQVksRUFBRSxFQUFFO1lBQ2hCLGNBQWMsRUFBRSxFQUFFO1lBQ2xCLElBQUksRUFBRSxFQUFFO1lBQ1IsVUFBVSxFQUFFLEVBQUU7WUFDZCxHQUFHLEVBQUUsRUFBRTtZQUNQLFNBQVMsRUFBRSxFQUFFO1lBQ2IsTUFBTSxFQUFFLEtBQUs7WUFDYixLQUFLLEVBQUUsRUFBRTtZQUNULFdBQVcsRUFBRSxFQUFFO1lBQ2YsR0FBRyxFQUFFLEVBQUU7WUFDUCxVQUFVLEVBQUUsRUFBRTtZQUNkLFNBQVMsRUFBRSxFQUFFO1lBQ2IsV0FBVyxFQUFFLEVBQUU7U0FDaEI7UUFDRCxLQUFLLEVBQUU7WUFDTCxNQUFNLEVBQUUsRUFBRTtZQUNWLGNBQWMsRUFBRSxDQUFDO1lBQ2pCLGVBQWUsRUFBRSxDQUFDO1NBQ25CO0tBQ0YsQ0FBQyxDQUFBO0lBQ0YsS0FBSyxDQUFDLElBQUksQ0FDUixHQUFHLGVBQWUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxjQUFjLEVBQUUsRUFBRTtRQUN4QyxNQUFNLE9BQU8sR0FBRyxjQUFjLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFBRSxDQUFBO1FBQ2pELE9BQU8sQ0FBQyxPQUFPLEVBQUUsSUFBQSxpQ0FBYyxFQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUE7SUFDbEQsQ0FBQyxDQUFDLENBQ0gsQ0FBQTtJQUNELE9BQU8sR0FBRyxrQ0FBa0MsR0FBRyxJQUFJLEdBQUcsSUFBQSx1QkFBWSxFQUFDLEtBQUssQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFBO0FBQzNGLENBQUM7QUFFRCxTQUFnQixnQkFBZ0IsQ0FBQyxNQUFjLEVBQUUsT0FBdUI7SUFDdEUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUNuQixPQUFPLENBQUMsQ0FBQTtJQUNWLENBQUM7SUFDRCxNQUFNLE9BQU8sR0FBRyxPQUFPLENBQUMsS0FBSyxDQUFBO0lBQzdCLElBQUksT0FBTyxLQUFLLENBQUMsRUFBRSxDQUFDO1FBQ2xCLE9BQU8sQ0FBQyxDQUFBO0lBQ1YsQ0FBQztJQUNELE1BQU0sY0FBYyxHQUFHLE9BQU8sQ0FBQyxjQUFjLENBQUE7SUFDN0MsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQ3BCLE9BQU8sT0FBTyxDQUFBO0lBQ2hCLENBQUM7SUFDRCxNQUFNLGVBQWUsR0FBRyxJQUFJLCtCQUFlLENBQUMsY0FBYyxDQUFDLENBQUE7SUFDM0QsSUFBSSxlQUFlLENBQUMsd0JBQXdCLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQztRQUNyRCxPQUFPLE9BQU8sQ0FBQTtJQUNoQixDQUFDO0lBQ0QsT0FBTyxDQUFDLENBQUE7QUFDVixDQUFDO0FBRUQsU0FBZ0Isa0JBQWtCLENBQUMsTUFBNEIsRUFBRSxPQUF1QjtJQUN0RixJQUFJLE9BQU8sQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUNuQixPQUFPLEtBQUssQ0FBQTtJQUNkLENBQUM7SUFDRCxNQUFNLGVBQWUsR0FBMkI7UUFDOUMsK0JBQW9CLENBQUMsU0FBUztRQUM5QiwrQkFBb0IsQ0FBQyxNQUFNO1FBQzNCLCtCQUFvQixDQUFDLFNBQVM7S0FDL0IsQ0FBQTtJQUNELElBQUksT0FBTyxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ25CLGVBQWUsQ0FBQyxJQUFJLENBQUMsK0JBQW9CLENBQUMsT0FBTyxDQUFDLENBQUE7SUFDcEQsQ0FBQztJQUNELE9BQU8sZUFBZSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQTtBQUN6QyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgdHlwZSBQaWNrbGUsIFRlc3RTdGVwUmVzdWx0U3RhdHVzIH0gZnJvbSAnQGN1Y3VtYmVyL21lc3NhZ2VzJ1xuaW1wb3J0IFRhYmxlIGZyb20gJ2NsaS10YWJsZTMnXG5pbXBvcnQgaW5kZW50U3RyaW5nIGZyb20gJ2luZGVudC1zdHJpbmcnXG5pbXBvcnQgeyBmb3JtYXRMb2NhdGlvbiB9IGZyb20gJy4uL2Zvcm1hdHRlci9oZWxwZXJzL2xvY2F0aW9uX2hlbHBlcnMnXG5pbXBvcnQgdHlwZSBTdGVwRGVmaW5pdGlvbiBmcm9tICcuLi9tb2RlbHMvc3RlcF9kZWZpbml0aW9uJ1xuaW1wb3J0IHsgUGlja2xlVGFnRmlsdGVyIH0gZnJvbSAnLi4vcGlja2xlX2ZpbHRlcidcbmltcG9ydCB0eXBlIHsgUnVudGltZU9wdGlvbnMgfSBmcm9tICcuJ1xuXG5leHBvcnQgZnVuY3Rpb24gZ2V0QW1iaWd1b3VzU3RlcEV4Y2VwdGlvbihzdGVwRGVmaW5pdGlvbnM6IFN0ZXBEZWZpbml0aW9uW10pOiBzdHJpbmcge1xuICBjb25zdCB0YWJsZSA9IG5ldyBUYWJsZSh7XG4gICAgY2hhcnM6IHtcbiAgICAgIGJvdHRvbTogJycsXG4gICAgICAnYm90dG9tLWxlZnQnOiAnJyxcbiAgICAgICdib3R0b20tbWlkJzogJycsXG4gICAgICAnYm90dG9tLXJpZ2h0JzogJycsXG4gICAgICBsZWZ0OiAnJyxcbiAgICAgICdsZWZ0LW1pZCc6ICcnLFxuICAgICAgbWlkOiAnJyxcbiAgICAgICdtaWQtbWlkJzogJycsXG4gICAgICBtaWRkbGU6ICcgLSAnLFxuICAgICAgcmlnaHQ6ICcnLFxuICAgICAgJ3JpZ2h0LW1pZCc6ICcnLFxuICAgICAgdG9wOiAnJyxcbiAgICAgICd0b3AtbGVmdCc6ICcnLFxuICAgICAgJ3RvcC1taWQnOiAnJyxcbiAgICAgICd0b3AtcmlnaHQnOiAnJyxcbiAgICB9LFxuICAgIHN0eWxlOiB7XG4gICAgICBib3JkZXI6IFtdLFxuICAgICAgJ3BhZGRpbmctbGVmdCc6IDAsXG4gICAgICAncGFkZGluZy1yaWdodCc6IDAsXG4gICAgfSxcbiAgfSlcbiAgdGFibGUucHVzaChcbiAgICAuLi5zdGVwRGVmaW5pdGlvbnMubWFwKChzdGVwRGVmaW5pdGlvbikgPT4ge1xuICAgICAgY29uc3QgcGF0dGVybiA9IHN0ZXBEZWZpbml0aW9uLnBhdHRlcm4udG9TdHJpbmcoKVxuICAgICAgcmV0dXJuIFtwYXR0ZXJuLCBmb3JtYXRMb2NhdGlvbihzdGVwRGVmaW5pdGlvbildXG4gICAgfSlcbiAgKVxuICByZXR1cm4gYCR7J011bHRpcGxlIHN0ZXAgZGVmaW5pdGlvbnMgbWF0Y2g6JyArICdcXG4nfSR7aW5kZW50U3RyaW5nKHRhYmxlLnRvU3RyaW5nKCksIDIpfWBcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHJldHJpZXNGb3JQaWNrbGUocGlja2xlOiBQaWNrbGUsIG9wdGlvbnM6IFJ1bnRpbWVPcHRpb25zKTogbnVtYmVyIHtcbiAgaWYgKCFvcHRpb25zLnJldHJ5KSB7XG4gICAgcmV0dXJuIDBcbiAgfVxuICBjb25zdCByZXRyaWVzID0gb3B0aW9ucy5yZXRyeVxuICBpZiAocmV0cmllcyA9PT0gMCkge1xuICAgIHJldHVybiAwXG4gIH1cbiAgY29uc3QgcmV0cnlUYWdGaWx0ZXIgPSBvcHRpb25zLnJldHJ5VGFnRmlsdGVyXG4gIGlmICghcmV0cnlUYWdGaWx0ZXIpIHtcbiAgICByZXR1cm4gcmV0cmllc1xuICB9XG4gIGNvbnN0IHBpY2tsZVRhZ0ZpbHRlciA9IG5ldyBQaWNrbGVUYWdGaWx0ZXIocmV0cnlUYWdGaWx0ZXIpXG4gIGlmIChwaWNrbGVUYWdGaWx0ZXIubWF0Y2hlc0FsbFRhZ0V4cHJlc3Npb25zKHBpY2tsZSkpIHtcbiAgICByZXR1cm4gcmV0cmllc1xuICB9XG4gIHJldHVybiAwXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBzaG91bGRDYXVzZUZhaWx1cmUoc3RhdHVzOiBUZXN0U3RlcFJlc3VsdFN0YXR1cywgb3B0aW9uczogUnVudGltZU9wdGlvbnMpOiBib29sZWFuIHtcbiAgaWYgKG9wdGlvbnMuZHJ5UnVuKSB7XG4gICAgcmV0dXJuIGZhbHNlXG4gIH1cbiAgY29uc3QgZmFpbHVyZVN0YXR1c2VzOiBUZXN0U3RlcFJlc3VsdFN0YXR1c1tdID0gW1xuICAgIFRlc3RTdGVwUmVzdWx0U3RhdHVzLkFNQklHVU9VUyxcbiAgICBUZXN0U3RlcFJlc3VsdFN0YXR1cy5GQUlMRUQsXG4gICAgVGVzdFN0ZXBSZXN1bHRTdGF0dXMuVU5ERUZJTkVELFxuICBdXG4gIGlmIChvcHRpb25zLnN0cmljdCkge1xuICAgIGZhaWx1cmVTdGF0dXNlcy5wdXNoKFRlc3RTdGVwUmVzdWx0U3RhdHVzLlBFTkRJTkcpXG4gIH1cbiAgcmV0dXJuIGZhaWx1cmVTdGF0dXNlcy5pbmNsdWRlcyhzdGF0dXMpXG59XG4iXX0=
@@ -10,7 +10,7 @@ const adapter_1 = require("./parallel/adapter");
10
10
  const adapter_2 = require("./serial/adapter");
11
11
  async function makeRuntime({ testRunStartedId, environment, logger, eventBroadcaster, sourcedPickles, newId, supportCodeLibrary, options, snippetOptions, }) {
12
12
  const adapter = await makeAdapter(options, snippetOptions, testRunStartedId, environment, logger, eventBroadcaster, supportCodeLibrary, newId);
13
- return new coordinator_1.Coordinator(testRunStartedId, eventBroadcaster, newId, sourcedPickles, supportCodeLibrary, adapter);
13
+ return new coordinator_1.Coordinator(testRunStartedId, eventBroadcaster, newId, sourcedPickles, supportCodeLibrary, options.filterStacktraces, adapter);
14
14
  }
15
15
  async function makeAdapter(options, snippetOptions, testRunStartedId, environment, logger, eventBroadcaster, supportCodeLibrary, newId) {
16
16
  if (options.parallel > 0) {
@@ -24,4 +24,4 @@ async function makeAdapter(options, snippetOptions, testRunStartedId, environmen
24
24
  });
25
25
  return new adapter_2.InProcessAdapter(testRunStartedId, eventBroadcaster, newId, options, supportCodeLibrary, snippetBuilder);
26
26
  }
27
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFrZV9ydW50aW1lLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3J1bnRpbWUvbWFrZV9ydW50aW1lLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBYUEsa0NBdUNDO0FBOUNELG1FQUFtRDtBQUVuRCwrQ0FBMkM7QUFDM0MsZ0RBQXlEO0FBQ3pELDhDQUFtRDtBQUc1QyxLQUFLLFVBQVUsV0FBVyxDQUFDLEVBQ2hDLGdCQUFnQixFQUNoQixXQUFXLEVBQ1gsTUFBTSxFQUNOLGdCQUFnQixFQUNoQixjQUFjLEVBQ2QsS0FBSyxFQUNMLGtCQUFrQixFQUNsQixPQUFPLEVBQ1AsY0FBYyxHQVdmO0lBQ0MsTUFBTSxPQUFPLEdBQUcsTUFBTSxXQUFXLENBQy9CLE9BQU8sRUFDUCxjQUFjLEVBQ2QsZ0JBQWdCLEVBQ2hCLFdBQVcsRUFDWCxNQUFNLEVBQ04sZ0JBQWdCLEVBQ2hCLGtCQUFrQixFQUNsQixLQUFLLENBQ04sQ0FBQTtJQUNELE9BQU8sSUFBSSx5QkFBVyxDQUNwQixnQkFBZ0IsRUFDaEIsZ0JBQWdCLEVBQ2hCLEtBQUssRUFDTCxjQUFjLEVBQ2Qsa0JBQWtCLEVBQ2xCLE9BQU8sQ0FDUixDQUFBO0FBQ0gsQ0FBQztBQUVELEtBQUssVUFBVSxXQUFXLENBQ3hCLE9BQTJCLEVBQzNCLGNBQXlFLEVBQ3pFLGdCQUF3QixFQUN4QixXQUE0QixFQUM1QixNQUFlLEVBQ2YsZ0JBQThCLEVBQzlCLGtCQUFzQyxFQUN0QyxLQUFtQjtJQUVuQixJQUFJLE9BQU8sQ0FBQyxRQUFRLEdBQUcsQ0FBQyxFQUFFLENBQUM7UUFDekIsT0FBTyxJQUFJLDhCQUFvQixDQUM3QixnQkFBZ0IsRUFDaEIsV0FBVyxFQUNYLE1BQU0sRUFDTixnQkFBZ0IsRUFDaEIsT0FBTyxFQUNQLGNBQWMsRUFDZCxrQkFBa0IsQ0FDbkIsQ0FBQTtJQUNILENBQUM7SUFDRCxNQUFNLGNBQWMsR0FBRyxNQUFNLGlCQUFnQixDQUFDLCtCQUErQixDQUFDO1FBQzVFLEdBQUcsRUFBRSxXQUFXLENBQUMsR0FBRztRQUNwQixnQkFBZ0IsRUFBRSxjQUFjLENBQUMsZ0JBQWdCO1FBQ2pELGFBQWEsRUFBRSxjQUFjLENBQUMsYUFBYTtRQUMzQyxrQkFBa0I7S0FDbkIsQ0FBQyxDQUFBO0lBQ0YsT0FBTyxJQUFJLDBCQUFnQixDQUN6QixnQkFBZ0IsRUFDaEIsZ0JBQWdCLEVBQ2hCLEtBQUssRUFDTCxPQUFPLEVBQ1Asa0JBQWtCLEVBQ2xCLGNBQWMsQ0FDZixDQUFBO0FBQ0gsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgRXZlbnRFbWl0dGVyIH0gZnJvbSAnbm9kZTpldmVudHMnXG5pbXBvcnQgdHlwZSB7IElkR2VuZXJhdG9yIH0gZnJvbSAnQGN1Y3VtYmVyL21lc3NhZ2VzJ1xuaW1wb3J0IHR5cGUgeyBJUnVuT3B0aW9uc1J1bnRpbWUgfSBmcm9tICcuLi9hcGknXG5pbXBvcnQgdHlwZSB7IFNvdXJjZWRQaWNrbGUgfSBmcm9tICcuLi9hc3NlbWJsZSdcbmltcG9ydCB0eXBlIHsgSUxvZ2dlciwgSVJ1bkVudmlyb25tZW50IH0gZnJvbSAnLi4vZW52aXJvbm1lbnQnXG5pbXBvcnQgdHlwZSB7IEZvcm1hdE9wdGlvbnMgfSBmcm9tICcuLi9mb3JtYXR0ZXInXG5pbXBvcnQgRm9ybWF0dGVyQnVpbGRlciBmcm9tICcuLi9mb3JtYXR0ZXIvYnVpbGRlcidcbmltcG9ydCB0eXBlIHsgU3VwcG9ydENvZGVMaWJyYXJ5IH0gZnJvbSAnLi4vc3VwcG9ydF9jb2RlX2xpYnJhcnlfYnVpbGRlci90eXBlcydcbmltcG9ydCB7IENvb3JkaW5hdG9yIH0gZnJvbSAnLi9jb29yZGluYXRvcidcbmltcG9ydCB7IFdvcmtlclRocmVhZHNBZGFwdGVyIH0gZnJvbSAnLi9wYXJhbGxlbC9hZGFwdGVyJ1xuaW1wb3J0IHsgSW5Qcm9jZXNzQWRhcHRlciB9IGZyb20gJy4vc2VyaWFsL2FkYXB0ZXInXG5pbXBvcnQgdHlwZSB7IFJ1bnRpbWUgfSBmcm9tICcuL3R5cGVzJ1xuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gbWFrZVJ1bnRpbWUoe1xuICB0ZXN0UnVuU3RhcnRlZElkLFxuICBlbnZpcm9ubWVudCxcbiAgbG9nZ2VyLFxuICBldmVudEJyb2FkY2FzdGVyLFxuICBzb3VyY2VkUGlja2xlcyxcbiAgbmV3SWQsXG4gIHN1cHBvcnRDb2RlTGlicmFyeSxcbiAgb3B0aW9ucyxcbiAgc25pcHBldE9wdGlvbnMsXG59OiB7XG4gIHRlc3RSdW5TdGFydGVkSWQ6IHN0cmluZ1xuICBlbnZpcm9ubWVudDogSVJ1bkVudmlyb25tZW50XG4gIGxvZ2dlcjogSUxvZ2dlclxuICBldmVudEJyb2FkY2FzdGVyOiBFdmVudEVtaXR0ZXJcbiAgbmV3SWQ6IElkR2VuZXJhdG9yLk5ld0lkXG4gIHNvdXJjZWRQaWNrbGVzOiBSZWFkb25seUFycmF5PFNvdXJjZWRQaWNrbGU+XG4gIHN1cHBvcnRDb2RlTGlicmFyeTogU3VwcG9ydENvZGVMaWJyYXJ5XG4gIG9wdGlvbnM6IElSdW5PcHRpb25zUnVudGltZVxuICBzbmlwcGV0T3B0aW9uczogUGljazxGb3JtYXRPcHRpb25zLCAnc25pcHBldEludGVyZmFjZScgfCAnc25pcHBldFN5bnRheCc+XG59KTogUHJvbWlzZTxSdW50aW1lPiB7XG4gIGNvbnN0IGFkYXB0ZXIgPSBhd2FpdCBtYWtlQWRhcHRlcihcbiAgICBvcHRpb25zLFxuICAgIHNuaXBwZXRPcHRpb25zLFxuICAgIHRlc3RSdW5TdGFydGVkSWQsXG4gICAgZW52aXJvbm1lbnQsXG4gICAgbG9nZ2VyLFxuICAgIGV2ZW50QnJvYWRjYXN0ZXIsXG4gICAgc3VwcG9ydENvZGVMaWJyYXJ5LFxuICAgIG5ld0lkXG4gIClcbiAgcmV0dXJuIG5ldyBDb29yZGluYXRvcihcbiAgICB0ZXN0UnVuU3RhcnRlZElkLFxuICAgIGV2ZW50QnJvYWRjYXN0ZXIsXG4gICAgbmV3SWQsXG4gICAgc291cmNlZFBpY2tsZXMsXG4gICAgc3VwcG9ydENvZGVMaWJyYXJ5LFxuICAgIGFkYXB0ZXJcbiAgKVxufVxuXG5hc3luYyBmdW5jdGlvbiBtYWtlQWRhcHRlcihcbiAgb3B0aW9uczogSVJ1bk9wdGlvbnNSdW50aW1lLFxuICBzbmlwcGV0T3B0aW9uczogUGljazxGb3JtYXRPcHRpb25zLCAnc25pcHBldEludGVyZmFjZScgfCAnc25pcHBldFN5bnRheCc+LFxuICB0ZXN0UnVuU3RhcnRlZElkOiBzdHJpbmcsXG4gIGVudmlyb25tZW50OiBJUnVuRW52aXJvbm1lbnQsXG4gIGxvZ2dlcjogSUxvZ2dlcixcbiAgZXZlbnRCcm9hZGNhc3RlcjogRXZlbnRFbWl0dGVyLFxuICBzdXBwb3J0Q29kZUxpYnJhcnk6IFN1cHBvcnRDb2RlTGlicmFyeSxcbiAgbmV3SWQ6ICgpID0+IHN0cmluZ1xuKSB7XG4gIGlmIChvcHRpb25zLnBhcmFsbGVsID4gMCkge1xuICAgIHJldHVybiBuZXcgV29ya2VyVGhyZWFkc0FkYXB0ZXIoXG4gICAgICB0ZXN0UnVuU3RhcnRlZElkLFxuICAgICAgZW52aXJvbm1lbnQsXG4gICAgICBsb2dnZXIsXG4gICAgICBldmVudEJyb2FkY2FzdGVyLFxuICAgICAgb3B0aW9ucyxcbiAgICAgIHNuaXBwZXRPcHRpb25zLFxuICAgICAgc3VwcG9ydENvZGVMaWJyYXJ5XG4gICAgKVxuICB9XG4gIGNvbnN0IHNuaXBwZXRCdWlsZGVyID0gYXdhaXQgRm9ybWF0dGVyQnVpbGRlci5nZXRTdGVwRGVmaW5pdGlvblNuaXBwZXRCdWlsZGVyKHtcbiAgICBjd2Q6IGVudmlyb25tZW50LmN3ZCxcbiAgICBzbmlwcGV0SW50ZXJmYWNlOiBzbmlwcGV0T3B0aW9ucy5zbmlwcGV0SW50ZXJmYWNlLFxuICAgIHNuaXBwZXRTeW50YXg6IHNuaXBwZXRPcHRpb25zLnNuaXBwZXRTeW50YXgsXG4gICAgc3VwcG9ydENvZGVMaWJyYXJ5LFxuICB9KVxuICByZXR1cm4gbmV3IEluUHJvY2Vzc0FkYXB0ZXIoXG4gICAgdGVzdFJ1blN0YXJ0ZWRJZCxcbiAgICBldmVudEJyb2FkY2FzdGVyLFxuICAgIG5ld0lkLFxuICAgIG9wdGlvbnMsXG4gICAgc3VwcG9ydENvZGVMaWJyYXJ5LFxuICAgIHNuaXBwZXRCdWlsZGVyXG4gIClcbn1cbiJdfQ==
27
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFrZV9ydW50aW1lLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3J1bnRpbWUvbWFrZV9ydW50aW1lLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBYUEsa0NBd0NDO0FBL0NELG1FQUFtRDtBQUVuRCwrQ0FBMkM7QUFDM0MsZ0RBQXlEO0FBQ3pELDhDQUFtRDtBQUc1QyxLQUFLLFVBQVUsV0FBVyxDQUFDLEVBQ2hDLGdCQUFnQixFQUNoQixXQUFXLEVBQ1gsTUFBTSxFQUNOLGdCQUFnQixFQUNoQixjQUFjLEVBQ2QsS0FBSyxFQUNMLGtCQUFrQixFQUNsQixPQUFPLEVBQ1AsY0FBYyxHQVdmO0lBQ0MsTUFBTSxPQUFPLEdBQUcsTUFBTSxXQUFXLENBQy9CLE9BQU8sRUFDUCxjQUFjLEVBQ2QsZ0JBQWdCLEVBQ2hCLFdBQVcsRUFDWCxNQUFNLEVBQ04sZ0JBQWdCLEVBQ2hCLGtCQUFrQixFQUNsQixLQUFLLENBQ04sQ0FBQTtJQUNELE9BQU8sSUFBSSx5QkFBVyxDQUNwQixnQkFBZ0IsRUFDaEIsZ0JBQWdCLEVBQ2hCLEtBQUssRUFDTCxjQUFjLEVBQ2Qsa0JBQWtCLEVBQ2xCLE9BQU8sQ0FBQyxpQkFBaUIsRUFDekIsT0FBTyxDQUNSLENBQUE7QUFDSCxDQUFDO0FBRUQsS0FBSyxVQUFVLFdBQVcsQ0FDeEIsT0FBMkIsRUFDM0IsY0FBeUUsRUFDekUsZ0JBQXdCLEVBQ3hCLFdBQTRCLEVBQzVCLE1BQWUsRUFDZixnQkFBOEIsRUFDOUIsa0JBQXNDLEVBQ3RDLEtBQW1CO0lBRW5CLElBQUksT0FBTyxDQUFDLFFBQVEsR0FBRyxDQUFDLEVBQUUsQ0FBQztRQUN6QixPQUFPLElBQUksOEJBQW9CLENBQzdCLGdCQUFnQixFQUNoQixXQUFXLEVBQ1gsTUFBTSxFQUNOLGdCQUFnQixFQUNoQixPQUFPLEVBQ1AsY0FBYyxFQUNkLGtCQUFrQixDQUNuQixDQUFBO0lBQ0gsQ0FBQztJQUNELE1BQU0sY0FBYyxHQUFHLE1BQU0saUJBQWdCLENBQUMsK0JBQStCLENBQUM7UUFDNUUsR0FBRyxFQUFFLFdBQVcsQ0FBQyxHQUFHO1FBQ3BCLGdCQUFnQixFQUFFLGNBQWMsQ0FBQyxnQkFBZ0I7UUFDakQsYUFBYSxFQUFFLGNBQWMsQ0FBQyxhQUFhO1FBQzNDLGtCQUFrQjtLQUNuQixDQUFDLENBQUE7SUFDRixPQUFPLElBQUksMEJBQWdCLENBQ3pCLGdCQUFnQixFQUNoQixnQkFBZ0IsRUFDaEIsS0FBSyxFQUNMLE9BQU8sRUFDUCxrQkFBa0IsRUFDbEIsY0FBYyxDQUNmLENBQUE7QUFDSCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBFdmVudEVtaXR0ZXIgfSBmcm9tICdub2RlOmV2ZW50cydcbmltcG9ydCB0eXBlIHsgSWRHZW5lcmF0b3IgfSBmcm9tICdAY3VjdW1iZXIvbWVzc2FnZXMnXG5pbXBvcnQgdHlwZSB7IElSdW5PcHRpb25zUnVudGltZSB9IGZyb20gJy4uL2FwaSdcbmltcG9ydCB0eXBlIHsgU291cmNlZFBpY2tsZSB9IGZyb20gJy4uL2Fzc2VtYmxlJ1xuaW1wb3J0IHR5cGUgeyBJTG9nZ2VyLCBJUnVuRW52aXJvbm1lbnQgfSBmcm9tICcuLi9lbnZpcm9ubWVudCdcbmltcG9ydCB0eXBlIHsgRm9ybWF0T3B0aW9ucyB9IGZyb20gJy4uL2Zvcm1hdHRlcidcbmltcG9ydCBGb3JtYXR0ZXJCdWlsZGVyIGZyb20gJy4uL2Zvcm1hdHRlci9idWlsZGVyJ1xuaW1wb3J0IHR5cGUgeyBTdXBwb3J0Q29kZUxpYnJhcnkgfSBmcm9tICcuLi9zdXBwb3J0X2NvZGVfbGlicmFyeV9idWlsZGVyL3R5cGVzJ1xuaW1wb3J0IHsgQ29vcmRpbmF0b3IgfSBmcm9tICcuL2Nvb3JkaW5hdG9yJ1xuaW1wb3J0IHsgV29ya2VyVGhyZWFkc0FkYXB0ZXIgfSBmcm9tICcuL3BhcmFsbGVsL2FkYXB0ZXInXG5pbXBvcnQgeyBJblByb2Nlc3NBZGFwdGVyIH0gZnJvbSAnLi9zZXJpYWwvYWRhcHRlcidcbmltcG9ydCB0eXBlIHsgUnVudGltZSB9IGZyb20gJy4vdHlwZXMnXG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBtYWtlUnVudGltZSh7XG4gIHRlc3RSdW5TdGFydGVkSWQsXG4gIGVudmlyb25tZW50LFxuICBsb2dnZXIsXG4gIGV2ZW50QnJvYWRjYXN0ZXIsXG4gIHNvdXJjZWRQaWNrbGVzLFxuICBuZXdJZCxcbiAgc3VwcG9ydENvZGVMaWJyYXJ5LFxuICBvcHRpb25zLFxuICBzbmlwcGV0T3B0aW9ucyxcbn06IHtcbiAgdGVzdFJ1blN0YXJ0ZWRJZDogc3RyaW5nXG4gIGVudmlyb25tZW50OiBJUnVuRW52aXJvbm1lbnRcbiAgbG9nZ2VyOiBJTG9nZ2VyXG4gIGV2ZW50QnJvYWRjYXN0ZXI6IEV2ZW50RW1pdHRlclxuICBuZXdJZDogSWRHZW5lcmF0b3IuTmV3SWRcbiAgc291cmNlZFBpY2tsZXM6IFJlYWRvbmx5QXJyYXk8U291cmNlZFBpY2tsZT5cbiAgc3VwcG9ydENvZGVMaWJyYXJ5OiBTdXBwb3J0Q29kZUxpYnJhcnlcbiAgb3B0aW9uczogSVJ1bk9wdGlvbnNSdW50aW1lXG4gIHNuaXBwZXRPcHRpb25zOiBQaWNrPEZvcm1hdE9wdGlvbnMsICdzbmlwcGV0SW50ZXJmYWNlJyB8ICdzbmlwcGV0U3ludGF4Jz5cbn0pOiBQcm9taXNlPFJ1bnRpbWU+IHtcbiAgY29uc3QgYWRhcHRlciA9IGF3YWl0IG1ha2VBZGFwdGVyKFxuICAgIG9wdGlvbnMsXG4gICAgc25pcHBldE9wdGlvbnMsXG4gICAgdGVzdFJ1blN0YXJ0ZWRJZCxcbiAgICBlbnZpcm9ubWVudCxcbiAgICBsb2dnZXIsXG4gICAgZXZlbnRCcm9hZGNhc3RlcixcbiAgICBzdXBwb3J0Q29kZUxpYnJhcnksXG4gICAgbmV3SWRcbiAgKVxuICByZXR1cm4gbmV3IENvb3JkaW5hdG9yKFxuICAgIHRlc3RSdW5TdGFydGVkSWQsXG4gICAgZXZlbnRCcm9hZGNhc3RlcixcbiAgICBuZXdJZCxcbiAgICBzb3VyY2VkUGlja2xlcyxcbiAgICBzdXBwb3J0Q29kZUxpYnJhcnksXG4gICAgb3B0aW9ucy5maWx0ZXJTdGFja3RyYWNlcyxcbiAgICBhZGFwdGVyXG4gIClcbn1cblxuYXN5bmMgZnVuY3Rpb24gbWFrZUFkYXB0ZXIoXG4gIG9wdGlvbnM6IElSdW5PcHRpb25zUnVudGltZSxcbiAgc25pcHBldE9wdGlvbnM6IFBpY2s8Rm9ybWF0T3B0aW9ucywgJ3NuaXBwZXRJbnRlcmZhY2UnIHwgJ3NuaXBwZXRTeW50YXgnPixcbiAgdGVzdFJ1blN0YXJ0ZWRJZDogc3RyaW5nLFxuICBlbnZpcm9ubWVudDogSVJ1bkVudmlyb25tZW50LFxuICBsb2dnZXI6IElMb2dnZXIsXG4gIGV2ZW50QnJvYWRjYXN0ZXI6IEV2ZW50RW1pdHRlcixcbiAgc3VwcG9ydENvZGVMaWJyYXJ5OiBTdXBwb3J0Q29kZUxpYnJhcnksXG4gIG5ld0lkOiAoKSA9PiBzdHJpbmdcbikge1xuICBpZiAob3B0aW9ucy5wYXJhbGxlbCA+IDApIHtcbiAgICByZXR1cm4gbmV3IFdvcmtlclRocmVhZHNBZGFwdGVyKFxuICAgICAgdGVzdFJ1blN0YXJ0ZWRJZCxcbiAgICAgIGVudmlyb25tZW50LFxuICAgICAgbG9nZ2VyLFxuICAgICAgZXZlbnRCcm9hZGNhc3RlcixcbiAgICAgIG9wdGlvbnMsXG4gICAgICBzbmlwcGV0T3B0aW9ucyxcbiAgICAgIHN1cHBvcnRDb2RlTGlicmFyeVxuICAgIClcbiAgfVxuICBjb25zdCBzbmlwcGV0QnVpbGRlciA9IGF3YWl0IEZvcm1hdHRlckJ1aWxkZXIuZ2V0U3RlcERlZmluaXRpb25TbmlwcGV0QnVpbGRlcih7XG4gICAgY3dkOiBlbnZpcm9ubWVudC5jd2QsXG4gICAgc25pcHBldEludGVyZmFjZTogc25pcHBldE9wdGlvbnMuc25pcHBldEludGVyZmFjZSxcbiAgICBzbmlwcGV0U3ludGF4OiBzbmlwcGV0T3B0aW9ucy5zbmlwcGV0U3ludGF4LFxuICAgIHN1cHBvcnRDb2RlTGlicmFyeSxcbiAgfSlcbiAgcmV0dXJuIG5ldyBJblByb2Nlc3NBZGFwdGVyKFxuICAgIHRlc3RSdW5TdGFydGVkSWQsXG4gICAgZXZlbnRCcm9hZGNhc3RlcixcbiAgICBuZXdJZCxcbiAgICBvcHRpb25zLFxuICAgIHN1cHBvcnRDb2RlTGlicmFyeSxcbiAgICBzbmlwcGV0QnVpbGRlclxuICApXG59XG4iXX0=
@@ -20,8 +20,9 @@ export declare class WorkerThreadsAdapter implements RuntimeAdapter {
20
20
  private readonly options;
21
21
  private readonly snippetOptions;
22
22
  private readonly supportCodeLibrary;
23
- private readiness;
24
- private phase;
23
+ private readiness?;
24
+ private phase?;
25
+ private tearingDown;
25
26
  private readonly workers;
26
27
  private readonly running;
27
28
  constructor(testRunStartedId: string, environment: IRunEnvironment, logger: ILogger, eventBroadcaster: EventEmitter, options: IRunOptionsRuntime, snippetOptions: Pick<FormatOptions, 'snippetInterface' | 'snippetSyntax'>, supportCodeLibrary: SupportCodeLibrary);
@@ -34,4 +35,6 @@ export declare class WorkerThreadsAdapter implements RuntimeAdapter {
34
35
  private issueCommandToWorker;
35
36
  private handleEventFromWorker;
36
37
  private handleErrorFromWorker;
38
+ private handleExitFromWorker;
39
+ private fail;
37
40
  }
@@ -25,6 +25,7 @@ class WorkerThreadsAdapter {
25
25
  supportCodeLibrary;
26
26
  readiness;
27
27
  phase;
28
+ tearingDown = false;
28
29
  workers = new Set();
29
30
  running = new Map();
30
31
  constructor(testRunStartedId, environment, logger, eventBroadcaster, options, snippetOptions, supportCodeLibrary) {
@@ -82,6 +83,9 @@ class WorkerThreadsAdapter {
82
83
  workerThread.on('error', (error) => {
83
84
  this.handleErrorFromWorker(error, worker);
84
85
  });
86
+ workerThread.on('exit', (exitCode) => {
87
+ this.handleExitFromWorker(exitCode, worker);
88
+ });
85
89
  }
86
90
  });
87
91
  delete this.readiness;
@@ -111,6 +115,7 @@ class WorkerThreadsAdapter {
111
115
  return success;
112
116
  }
113
117
  async teardown() {
118
+ this.tearingDown = true;
114
119
  for (const worker of this.workers.values()) {
115
120
  await worker.workerThread.terminate();
116
121
  // close our end of the channel so it stops keeping the loop alive
@@ -152,11 +157,18 @@ class WorkerThreadsAdapter {
152
157
  }
153
158
  }
154
159
  handleErrorFromWorker(error, worker) {
155
- const reason = new Error(`Error on worker ${worker.id}`, { cause: error });
160
+ this.fail(new Error(`Error on worker ${worker.id}`, { cause: error }));
161
+ }
162
+ handleExitFromWorker(exitCode, worker) {
163
+ if (!this.tearingDown) {
164
+ this.fail(new Error(`Worker ${worker.id} exited unexpectedly with code ${exitCode}`));
165
+ }
166
+ }
167
+ fail(reason) {
156
168
  this.readiness?.reject(reason);
157
169
  this.phase?.reject(reason);
158
170
  void this.teardown();
159
171
  }
160
172
  }
161
173
  exports.WorkerThreadsAdapter = WorkerThreadsAdapter;
162
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRhcHRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9ydW50aW1lL3BhcmFsbGVsL2FkYXB0ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQ0EsMERBQTRCO0FBQzVCLDZEQUE0RDtBQU81RCx5REFBbUQ7QUFDbkQsaUVBQTBEO0FBRzFEOzs7Ozs7R0FNRztBQUNILE1BQWEsb0JBQW9CO0lBVVo7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFmWCxTQUFTLENBR2hCO0lBQ08sS0FBSyxDQUFPO0lBQ0gsT0FBTyxHQUF1QixJQUFJLEdBQUcsRUFBRSxDQUFBO0lBQ3ZDLE9BQU8sR0FBc0MsSUFBSSxHQUFHLEVBQUUsQ0FBQTtJQUV2RSxZQUNtQixnQkFBd0IsRUFDeEIsV0FBNEIsRUFDNUIsTUFBZSxFQUNmLGdCQUE4QixFQUM5QixPQUEyQixFQUMzQixjQUF5RSxFQUN6RSxrQkFBc0M7UUFOdEMscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFRO1FBQ3hCLGdCQUFXLEdBQVgsV0FBVyxDQUFpQjtRQUM1QixXQUFNLEdBQU4sTUFBTSxDQUFTO1FBQ2YscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFjO1FBQzlCLFlBQU8sR0FBUCxPQUFPLENBQW9CO1FBQzNCLG1CQUFjLEdBQWQsY0FBYyxDQUEyRDtRQUN6RSx1QkFBa0IsR0FBbEIsa0JBQWtCLENBQW9CO0lBQ3RELENBQUM7SUFFSixLQUFLLENBQUMsS0FBSztRQUNULE1BQU0sSUFBSSxPQUFPLENBQU8sQ0FBQyxPQUFPLEVBQUUsTUFBTSxFQUFFLEVBQUU7WUFDMUMsSUFBSSxDQUFDLFNBQVMsR0FBRyxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsQ0FBQTtZQUNwQyxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQTtZQUNuQyxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsS0FBSyxFQUFFLENB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LGdCQUFnQixDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFBO2dCQUN0RCxNQUFLO1lBQ1AsS0FBSyxVQUFVLENBQUMsQ0FBQyxDQUFDO2dCQUNoQixNQUFNLGVBQWUsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQTtnQkFDaEQsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUE7Z0JBQzNCLE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLGVBQWUsRUFBRSxLQUFLLENBQUMsQ0FBQTtnQkFDNUQsSUFBSSxXQUFXLEVBQUUsQ0FBQztvQkFDaEIsSUFBSSxDQUFDLG9CQUFvQixDQUFDLE1BQU0sRUFBRSxXQUFXLENBQUMsQ0FBQTtnQkFDaEQsQ0FBQztnQkFDRCxNQUFLO1lBQ1AsQ0FBQztRQUNILENBQUM7SUFDSCxDQUFDO0lBRU8scUJBQXFCLENBQUMsS0FBWSxFQUFFLE1BQXFCO1FBQy9ELE1BQU0sTUFBTSxHQUFHLElBQUksS0FBSyxDQUFDLG1CQUFtQixNQUFNLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQTtRQUMxRSxJQUFJLENBQUMsU0FBUyxFQUFFLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQTtRQUM5QixJQUFJLENBQUMsS0FBSyxFQUFFLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQTtRQUMxQixLQUFLLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQTtJQUN0QixDQUFDO0NBQ0Y7QUE5SkQsb0RBOEpDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBFdmVudEVtaXR0ZXIgfSBmcm9tICdub2RlOmV2ZW50cydcbmltcG9ydCBwYXRoIGZyb20gJ25vZGU6cGF0aCdcbmltcG9ydCB7IE1lc3NhZ2VDaGFubmVsLCBXb3JrZXIgfSBmcm9tICdub2RlOndvcmtlcl90aHJlYWRzJ1xuaW1wb3J0IHR5cGUgeyBJUnVuT3B0aW9uc1J1bnRpbWUgfSBmcm9tICcuLi8uLi9hcGknXG5pbXBvcnQgdHlwZSB7IEFzc2VtYmxlZFRlc3RDYXNlIH0gZnJvbSAnLi4vLi4vYXNzZW1ibGUnXG5pbXBvcnQgdHlwZSB7IElMb2dnZXIsIElSdW5FbnZpcm9ubWVudCB9IGZyb20gJy4uLy4uL2Vudmlyb25tZW50J1xuaW1wb3J0IHR5cGUgeyBGb3JtYXRPcHRpb25zIH0gZnJvbSAnLi4vLi4vZm9ybWF0dGVyJ1xuaW1wb3J0IHR5cGUgeyBTdXBwb3J0Q29kZUxpYnJhcnkgfSBmcm9tICcuLi8uLi9zdXBwb3J0X2NvZGVfbGlicmFyeV9idWlsZGVyL3R5cGVzJ1xuaW1wb3J0IHR5cGUgeyBSdW50aW1lQWRhcHRlciB9IGZyb20gJy4uL3R5cGVzJ1xuaW1wb3J0IHsgVGVzdENhc2VzUGhhc2UgfSBmcm9tICcuL3Rlc3RfY2FzZXNfcGhhc2UnXG5pbXBvcnQgeyBUZXN0UnVuSG9va3NQaGFzZSB9IGZyb20gJy4vdGVzdF9ydW5faG9va3NfcGhhc2UnXG5pbXBvcnQgdHlwZSB7IE1hbmFnZWRXb3JrZXIsIFBoYXNlLCBXb3JrZXJDb21tYW5kLCBXb3JrZXJEYXRhLCBXb3JrZXJFdmVudCB9IGZyb20gJy4vdHlwZXMnXG5cbi8qKlxuICogQW4gYWRhcHRlciB0aGF0IGRpc3RyaWJ1dGVzIHdvcmsgYWNyb3NzIG11bHRpcGxlIHdvcmtlciB0aHJlYWRzXG4gKiBAcmVtYXJrc1xuICogRWFjaCBwaGFzZSBvZiB0aGUgdGVzdCBydW4gaXMgc2VsZi1jb250YWluZWQgYW5kIHNlbGYtb3JjaGVzdHJhdGluZyAtIGV2ZXJ5XG4gKiBGSU5JU0hFRCBtZXNzYWdlIGZyb20gYSB3b3JrZXIgbWF5IGNhdXNlIHRoZSBuZXh0IHBpZWNlIG9mIHdvcmsgdG8gYmVcbiAqIHRyaWdnZXJlZCBvciB0aGUgcGhhc2UgdG8gYmUgc2V0dGxlZC5cbiAqL1xuZXhwb3J0IGNsYXNzIFdvcmtlclRocmVhZHNBZGFwdGVyIGltcGxlbWVudHMgUnVudGltZUFkYXB0ZXIge1xuICBwcml2YXRlIHJlYWRpbmVzczoge1xuICAgIHJlc29sdmU6ICgpID0+IHZvaWRcbiAgICByZWplY3Q6IChyZWFzb246IHVua25vd24pID0+IHZvaWRcbiAgfVxuICBwcml2YXRlIHBoYXNlOiBQaGFzZVxuICBwcml2YXRlIHJlYWRvbmx5IHdvcmtlcnM6IFNldDxNYW5hZ2VkV29ya2VyPiA9IG5ldyBTZXQoKVxuICBwcml2YXRlIHJlYWRvbmx5IHJ1bm5pbmc6IE1hcDxNYW5hZ2VkV29ya2VyLCBXb3JrZXJDb21tYW5kPiA9IG5ldyBNYXAoKVxuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcmVhZG9ubHkgdGVzdFJ1blN0YXJ0ZWRJZDogc3RyaW5nLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgZW52aXJvbm1lbnQ6IElSdW5FbnZpcm9ubWVudCxcbiAgICBwcml2YXRlIHJlYWRvbmx5IGxvZ2dlcjogSUxvZ2dlcixcbiAgICBwcml2YXRlIHJlYWRvbmx5IGV2ZW50QnJvYWRjYXN0ZXI6IEV2ZW50RW1pdHRlcixcbiAgICBwcml2YXRlIHJlYWRvbmx5IG9wdGlvbnM6IElSdW5PcHRpb25zUnVudGltZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IHNuaXBwZXRPcHRpb25zOiBQaWNrPEZvcm1hdE9wdGlvbnMsICdzbmlwcGV0SW50ZXJmYWNlJyB8ICdzbmlwcGV0U3ludGF4Jz4sXG4gICAgcHJpdmF0ZSByZWFkb25seSBzdXBwb3J0Q29kZUxpYnJhcnk6IFN1cHBvcnRDb2RlTGlicmFyeVxuICApIHt9XG5cbiAgYXN5bmMgc2V0dXAoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgYXdhaXQgbmV3IFByb21pc2U8dm9pZD4oKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgdGhpcy5yZWFkaW5lc3MgPSB7IHJlc29sdmUsIHJlamVjdCB9XG4gICAgICBjb25zdCB0b3RhbCA9IHRoaXMub3B0aW9ucy5wYXJhbGxlbFxuICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0b3RhbDsgaSsrKSB7XG4gICAgICAgIGNvbnN0IGlkID0gaS50b1N0cmluZygpXG4gICAgICAgIC8vIHNwaW4gdXAgYSBkZWRpY2F0ZWQgbWVzc2FnZSBjaGFubmVsIGZvciBjb29yZGluYXRvci13b3JrZXIgY29tbXNcbiAgICAgICAgY29uc3QgeyBwb3J0MSwgcG9ydDIgfSA9IG5ldyBNZXNzYWdlQ2hhbm5lbCgpXG4gICAgICAgIGNvbnN0IHdvcmtlclRocmVhZCA9IG5ldyBXb3JrZXIocGF0aC5yZXNvbHZlKF9fZGlybmFtZSwgJ3dvcmtlci5tanMnKSwge1xuICAgICAgICAgIGVudjoge1xuICAgICAgICAgICAgLi4udGhpcy5lbnZpcm9ubWVudC5lbnYsXG4gICAgICAgICAgICBDVUNVTUJFUl9QQVJBTExFTDogJ3RydWUnLFxuICAgICAgICAgICAgQ1VDVU1CRVJfVE9UQUxfV09SS0VSUzogdG90YWwudG9TdHJpbmcoKSxcbiAgICAgICAgICAgIENVQ1VNQkVSX1dPUktFUl9JRDogaWQsXG4gICAgICAgICAgfSxcbiAgICAgICAgICByZXNvdXJjZUxpbWl0czogdGhpcy5vcHRpb25zLndvcmtlck9wdGlvbnM/LnJlc291cmNlTGltaXRzLFxuICAgICAgICAgIHdvcmtlckRhdGE6IHtcbiAgICAgICAgICAgIGN3ZDogdGhpcy5lbnZpcm9ubWVudC5jd2QsXG4gICAgICAgICAgICB0ZXN0UnVuU3RhcnRlZElkOiB0aGlzLnRlc3RSdW5TdGFydGVkSWQsXG4gICAgICAgICAgICBzdXBwb3J0Q29kZUNvb3JkaW5hdGVzOiB0aGlzLnN1cHBvcnRDb2RlTGlicmFyeS5vcmlnaW5hbENvb3JkaW5hdGVzLFxuICAgICAgICAgICAgc3VwcG9ydENvZGVJZHM6IHtcbiAgICAgICAgICAgICAgc3RlcERlZmluaXRpb25JZHM6IHRoaXMuc3VwcG9ydENvZGVMaWJyYXJ5LnN0ZXBEZWZpbml0aW9ucy5tYXAoKHMpID0+IHMuaWQpLFxuICAgICAgICAgICAgICBiZWZvcmVUZXN0Q2FzZUhvb2tEZWZpbml0aW9uSWRzOlxuICAgICAgICAgICAgICAgIHRoaXMuc3VwcG9ydENvZGVMaWJyYXJ5LmJlZm9yZVRlc3RDYXNlSG9va0RlZmluaXRpb25zLm1hcCgoaCkgPT4gaC5pZCksXG4gICAgICAgICAgICAgIGFmdGVyVGVzdENhc2VIb29rRGVmaW5pdGlvbklkczpcbiAgICAgICAgICAgICAgICB0aGlzLnN1cHBvcnRDb2RlTGlicmFyeS5hZnRlclRlc3RDYXNlSG9va0RlZmluaXRpb25zLm1hcCgoaCkgPT4gaC5pZCksXG4gICAgICAgICAgICAgIGJlZm9yZVRlc3RSdW5Ib29rRGVmaW5pdGlvbklkczpcbiAgICAgICAgICAgICAgICB0aGlzLnN1cHBvcnRDb2RlTGlicmFyeS5iZWZvcmVUZXN0UnVuSG9va0RlZmluaXRpb25zLm1hcCgoaCkgPT4gaC5pZCksXG4gICAgICAgICAgICAgIGFmdGVyVGVzdFJ1bkhvb2tEZWZpbml0aW9uSWRzOlxuICAgICAgICAgICAgICAgIHRoaXMuc3VwcG9ydENvZGVMaWJyYXJ5LmFmdGVyVGVzdFJ1bkhvb2tEZWZpbml0aW9ucy5tYXAoKGgpID0+IGguaWQpLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIG9wdGlvbnM6IHRoaXMub3B0aW9ucyxcbiAgICAgICAgICAgIHNuaXBwZXRPcHRpb25zOiB0aGlzLnNuaXBwZXRPcHRpb25zLFxuICAgICAgICAgICAgcG9ydDogcG9ydDIsXG4gICAgICAgICAgfSBzYXRpc2ZpZXMgV29ya2VyRGF0YSxcbiAgICAgICAgICB0cmFuc2Zlckxpc3Q6IFtwb3J0Ml0sXG4gICAgICAgIH0pXG4gICAgICAgIGNvbnN0IHdvcmtlciA9IHtcbiAgICAgICAgICBpZCxcbiAgICAgICAgICB3b3JrZXJUaHJlYWQsXG4gICAgICAgICAgcG9ydDogcG9ydDEsXG4gICAgICAgICAgcmVhZHk6IGZhbHNlLFxuICAgICAgICB9XG4gICAgICAgIHRoaXMud29ya2Vycy5hZGQod29ya2VyKVxuICAgICAgICBwb3J0MS5vbignbWVzc2FnZScsIChldmVudDogV29ya2VyRXZlbnQpID0+IHtcbiAgICAgICAgICB0aGlzLmhhbmRsZUV2ZW50RnJvbVdvcmtlcih3b3JrZXIsIGV2ZW50KVxuICAgICAgICB9KVxuICAgICAgICB3b3JrZXJUaHJlYWQub24oJ2Vycm9yJywgKGVycm9yKSA9PiB7XG4gICAgICAgICAgdGhpcy5oYW5kbGVFcnJvckZyb21Xb3JrZXIoZXJyb3IsIHdvcmtlcilcbiAgICAgICAgfSlcbiAgICAgIH1cbiAgICB9KVxuICAgIGRlbGV0ZSB0aGlzLnJlYWRpbmVzc1xuICB9XG5cbiAgYXN5bmMgcnVuQmVmb3JlQWxsSG9va3MoKTogUHJvbWlzZTxib29sZWFuPiB7XG4gICAgY29uc3Qgc3VjY2VzcyA9IGF3YWl0IG5ldyBQcm9taXNlPGJvb2xlYW4+KChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgIHRoaXMucGhhc2UgPSBuZXcgVGVzdFJ1bkhvb2tzUGhhc2UocmVzb2x2ZSwgcmVqZWN0LCAnQkVGT1JFQUxMX0hPT0tTJylcbiAgICAgIHRoaXMuc3RhcnRQaGFzZSgpXG4gICAgfSlcbiAgICBkZWxldGUgdGhpcy5waGFzZVxuICAgIHJldHVybiBzdWNjZXNzXG4gIH1cblxuICBhc3luYyBydW5UZXN0Q2FzZXMoYXNzZW1ibGVkVGVzdENhc2VzOiBSZWFkb25seUFycmF5PEFzc2VtYmxlZFRlc3RDYXNlPik6IFByb21pc2U8Ym9vbGVhbj4ge1xuICAgIGNvbnN0IHN1Y2Nlc3MgPSBhd2FpdCBuZXcgUHJvbWlzZTxib29sZWFuPigocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICB0aGlzLnBoYXNlID0gbmV3IFRlc3RDYXNlc1BoYXNlKFxuICAgICAgICByZXNvbHZlLFxuICAgICAgICByZWplY3QsXG4gICAgICAgIHRoaXMubG9nZ2VyLFxuICAgICAgICB0aGlzLnN1cHBvcnRDb2RlTGlicmFyeS5wYXJhbGxlbENhbkFzc2lnbixcbiAgICAgICAgYXNzZW1ibGVkVGVzdENhc2VzXG4gICAgICApXG4gICAgICB0aGlzLnN0YXJ0UGhhc2UoKVxuICAgIH0pXG4gICAgZGVsZXRlIHRoaXMucGhhc2VcbiAgICByZXR1cm4gc3VjY2Vzc1xuICB9XG5cbiAgYXN5bmMgcnVuQWZ0ZXJBbGxIb29rcygpOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgICBjb25zdCBzdWNjZXNzID0gYXdhaXQgbmV3IFByb21pc2U8Ym9vbGVhbj4oKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgdGhpcy5waGFzZSA9IG5ldyBUZXN0UnVuSG9va3NQaGFzZShyZXNvbHZlLCByZWplY3QsICdBRlRFUkFMTF9IT09LUycpXG4gICAgICB0aGlzLnN0YXJ0UGhhc2UoKVxuICAgIH0pXG4gICAgZGVsZXRlIHRoaXMucGhhc2VcbiAgICByZXR1cm4gc3VjY2Vzc1xuICB9XG5cbiAgYXN5bmMgdGVhcmRvd24oKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgZm9yIChjb25zdCB3b3JrZXIgb2YgdGhpcy53b3JrZXJzLnZhbHVlcygpKSB7XG4gICAgICBhd2FpdCB3b3JrZXIud29ya2VyVGhyZWFkLnRlcm1pbmF0ZSgpXG4gICAgICAvLyBjbG9zZSBvdXIgZW5kIG9mIHRoZSBjaGFubmVsIHNvIGl0IHN0b3BzIGtlZXBpbmcgdGhlIGxvb3AgYWxpdmVcbiAgICAgIHdvcmtlci5wb3J0LmNsb3NlKClcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHN0YXJ0UGhhc2UoKSB7XG4gICAgZm9yIChjb25zdCB3b3JrZXIgb2YgdGhpcy53b3JrZXJzKSB7XG4gICAgICBjb25zdCBjb21tYW5kID0gdGhpcy5waGFzZS5maWxsKClcbiAgICAgIGlmIChjb21tYW5kKSB7XG4gICAgICAgIHRoaXMuaXNzdWVDb21tYW5kVG9Xb3JrZXIod29ya2VyLCBjb21tYW5kKVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgaXNzdWVDb21tYW5kVG9Xb3JrZXIod29ya2VyOiBNYW5hZ2VkV29ya2VyLCBjb21tYW5kOiBXb3JrZXJDb21tYW5kKSB7XG4gICAgdGhpcy5ydW5uaW5nLnNldCh3b3JrZXIsIGNvbW1hbmQpXG4gICAgd29ya2VyLnBvcnQucG9zdE1lc3NhZ2UoY29tbWFuZClcbiAgfVxuXG4gIHByaXZhdGUgaGFuZGxlRXZlbnRGcm9tV29ya2VyKHdvcmtlcjogTWFuYWdlZFdvcmtlciwgZXZlbnQ6IFdvcmtlckV2ZW50KSB7XG4gICAgc3dpdGNoIChldmVudC50eXBlKSB7XG4gICAgICBjYXNlICdSRUFEWSc6XG4gICAgICAgIHdvcmtlci5yZWFkeSA9IHRydWVcbiAgICAgICAgaWYgKFsuLi50aGlzLndvcmtlcnNdLmV2ZXJ5KChtdykgPT4gbXcucmVhZHkpKSB7XG4gICAgICAgICAgdGhpcy5yZWFkaW5lc3M/LnJlc29sdmUoKVxuICAgICAgICB9XG4gICAgICAgIGJyZWFrXG4gICAgICBjYXNlICdFTlZFTE9QRSc6XG4gICAgICAgIHRoaXMuZXZlbnRCcm9hZGNhc3Rlci5lbWl0KCdlbnZlbG9wZScsIGV2ZW50LmVudmVsb3BlKVxuICAgICAgICBicmVha1xuICAgICAgY2FzZSAnRklOSVNIRUQnOiB7XG4gICAgICAgIGNvbnN0IHByZXZpb3VzQ29tbWFuZCA9IHRoaXMucnVubmluZy5nZXQod29ya2VyKVxuICAgICAgICB0aGlzLnJ1bm5pbmcuZGVsZXRlKHdvcmtlcilcbiAgICAgICAgY29uc3QgbmV4dENvbW1hbmQgPSB0aGlzLnBoYXNlPy5uZXh0KHByZXZpb3VzQ29tbWFuZCwgZXZlbnQpXG4gICAgICAgIGlmIChuZXh0Q29tbWFuZCkge1xuICAgICAgICAgIHRoaXMuaXNzdWVDb21tYW5kVG9Xb3JrZXIod29ya2VyLCBuZXh0Q29tbWFuZClcbiAgICAgICAgfVxuICAgICAgICBicmVha1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgaGFuZGxlRXJyb3JGcm9tV29ya2VyKGVycm9yOiBFcnJvciwgd29ya2VyOiBNYW5hZ2VkV29ya2VyKSB7XG4gICAgY29uc3QgcmVhc29uID0gbmV3IEVycm9yKGBFcnJvciBvbiB3b3JrZXIgJHt3b3JrZXIuaWR9YCwgeyBjYXVzZTogZXJyb3IgfSlcbiAgICB0aGlzLnJlYWRpbmVzcz8ucmVqZWN0KHJlYXNvbilcbiAgICB0aGlzLnBoYXNlPy5yZWplY3QocmVhc29uKVxuICAgIHZvaWQgdGhpcy50ZWFyZG93bigpXG4gIH1cbn1cbiJdfQ==
174
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRhcHRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9ydW50aW1lL3BhcmFsbGVsL2FkYXB0ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQ0EsMERBQTRCO0FBQzVCLDZEQUE0RDtBQU81RCx5REFBbUQ7QUFDbkQsaUVBQTBEO0FBRzFEOzs7Ozs7R0FNRztBQUNILE1BQWEsb0JBQW9CO0lBV1o7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFoQlgsU0FBUyxDQUdoQjtJQUNPLEtBQUssQ0FBUTtJQUNiLFdBQVcsR0FBRyxLQUFLLENBQUE7SUFDVixPQUFPLEdBQXVCLElBQUksR0FBRyxFQUFFLENBQUE7SUFDdkMsT0FBTyxHQUFzQyxJQUFJLEdBQUcsRUFBRSxDQUFBO0lBRXZFLFlBQ21CLGdCQUF3QixFQUN4QixXQUE0QixFQUM1QixNQUFlLEVBQ2YsZ0JBQThCLEVBQzlCLE9BQTJCLEVBQzNCLGNBQXlFLEVBQ3pFLGtCQUFzQztRQU50QyxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQVE7UUFDeEIsZ0JBQVcsR0FBWCxXQUFXLENBQWlCO1FBQzVCLFdBQU0sR0FBTixNQUFNLENBQVM7UUFDZixxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWM7UUFDOUIsWUFBTyxHQUFQLE9BQU8sQ0FBb0I7UUFDM0IsbUJBQWMsR0FBZCxjQUFjLENBQTJEO1FBQ3pFLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBb0I7SUFDdEQsQ0FBQztJQUVKLEtBQUssQ0FBQyxLQUFLO1FBQ1QsTUFBTSxJQUFJLE9BQU8sQ0FBTyxDQUFDLE9BQU8sRUFBRSxNQUFNLEVBQUUsRUFBRTtZQUMxQyxJQUFJLENBQUMsU0FBUyxHQUFHLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxDQUFBO1lBQ3BDLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFBO1lBQ25DLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxF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VSxNQUFNLENBQUMsRUFBRSxrQ0FBa0MsUUFBUSxFQUFFLENBQUMsQ0FBQyxDQUFBO1FBQ3ZGLENBQUM7SUFDSCxDQUFDO0lBRU8sSUFBSSxDQUFDLE1BQWE7UUFDeEIsSUFBSSxDQUFDLFNBQVMsRUFBRSxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUE7UUFDOUIsSUFBSSxDQUFDLEtBQUssRUFBRSxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUE7UUFDMUIsS0FBSyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUE7SUFDdEIsQ0FBQztDQUNGO0FBNUtELG9EQTRLQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgRXZlbnRFbWl0dGVyIH0gZnJvbSAnbm9kZTpldmVudHMnXG5pbXBvcnQgcGF0aCBmcm9tICdub2RlOnBhdGgnXG5pbXBvcnQgeyBNZXNzYWdlQ2hhbm5lbCwgV29ya2VyIH0gZnJvbSAnbm9kZTp3b3JrZXJfdGhyZWFkcydcbmltcG9ydCB0eXBlIHsgSVJ1bk9wdGlvbnNSdW50aW1lIH0gZnJvbSAnLi4vLi4vYXBpJ1xuaW1wb3J0IHR5cGUgeyBBc3NlbWJsZWRUZXN0Q2FzZSB9IGZyb20gJy4uLy4uL2Fzc2VtYmxlJ1xuaW1wb3J0IHR5cGUgeyBJTG9nZ2VyLCBJUnVuRW52aXJvbm1lbnQgfSBmcm9tICcuLi8uLi9lbnZpcm9ubWVudCdcbmltcG9ydCB0eXBlIHsgRm9ybWF0T3B0aW9ucyB9IGZyb20gJy4uLy4uL2Zvcm1hdHRlcidcbmltcG9ydCB0eXBlIHsgU3VwcG9ydENvZGVMaWJyYXJ5IH0gZnJvbSAnLi4vLi4vc3VwcG9ydF9jb2RlX2xpYnJhcnlfYnVpbGRlci90eXBlcydcbmltcG9ydCB0eXBlIHsgUnVudGltZUFkYXB0ZXIgfSBmcm9tICcuLi90eXBlcydcbmltcG9ydCB7IFRlc3RDYXNlc1BoYXNlIH0gZnJvbSAnLi90ZXN0X2Nhc2VzX3BoYXNlJ1xuaW1wb3J0IHsgVGVzdFJ1bkhvb2tzUGhhc2UgfSBmcm9tICcuL3Rlc3RfcnVuX2hvb2tzX3BoYXNlJ1xuaW1wb3J0IHR5cGUgeyBNYW5hZ2VkV29ya2VyLCBQaGFzZSwgV29ya2VyQ29tbWFuZCwgV29ya2VyRGF0YSwgV29ya2VyRXZlbnQgfSBmcm9tICcuL3R5cGVzJ1xuXG4vKipcbiAqIEFuIGFkYXB0ZXIgdGhhdCBkaXN0cmlidXRlcyB3b3JrIGFjcm9zcyBtdWx0aXBsZSB3b3JrZXIgdGhyZWFkc1xuICogQHJlbWFya3NcbiAqIEVhY2ggcGhhc2Ugb2YgdGhlIHRlc3QgcnVuIGlzIHNlbGYtY29udGFpbmVkIGFuZCBzZWxmLW9yY2hlc3RyYXRpbmcgLSBldmVyeVxuICogRklOSVNIRUQgbWVzc2FnZSBmcm9tIGEgd29ya2VyIG1heSBjYXVzZSB0aGUgbmV4dCBwaWVjZSBvZiB3b3JrIHRvIGJlXG4gKiB0cmlnZ2VyZWQgb3IgdGhlIHBoYXNlIHRvIGJlIHNldHRsZWQuXG4gKi9cbmV4cG9ydCBjbGFzcyBXb3JrZXJUaHJlYWRzQWRhcHRlciBpbXBsZW1lbnRzIFJ1bnRpbWVBZGFwdGVyIHtcbiAgcHJpdmF0ZSByZWFkaW5lc3M/OiB7XG4gICAgcmVzb2x2ZTogKCkgPT4gdm9pZFxuICAgIHJlamVjdDogKHJlYXNvbjogdW5rbm93bikgPT4gdm9pZFxuICB9XG4gIHByaXZhdGUgcGhhc2U/OiBQaGFzZVxuICBwcml2YXRlIHRlYXJpbmdEb3duID0gZmFsc2VcbiAgcHJpdmF0ZSByZWFkb25seSB3b3JrZXJzOiBTZXQ8TWFuYWdlZFdvcmtlcj4gPSBuZXcgU2V0KClcbiAgcHJpdmF0ZSByZWFkb25seSBydW5uaW5nOiBNYXA8TWFuYWdlZFdvcmtlciwgV29ya2VyQ29tbWFuZD4gPSBuZXcgTWFwKClcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJlYWRvbmx5IHRlc3RSdW5TdGFydGVkSWQ6IHN0cmluZyxcbiAgICBwcml2YXRlIHJlYWRvbmx5IGVudmlyb25tZW50OiBJUnVuRW52aXJvbm1lbnQsXG4gICAgcHJpdmF0ZSByZWFkb25seSBsb2dnZXI6IElMb2dnZXIsXG4gICAgcHJpdmF0ZSByZWFkb25seSBldmVudEJyb2FkY2FzdGVyOiBFdmVudEVtaXR0ZXIsXG4gICAgcHJpdmF0ZSByZWFkb25seSBvcHRpb25zOiBJUnVuT3B0aW9uc1J1bnRpbWUsXG4gICAgcHJpdmF0ZSByZWFkb25seSBzbmlwcGV0T3B0aW9uczogUGljazxGb3JtYXRPcHRpb25zLCAnc25pcHBldEludGVyZmFjZScgfCAnc25pcHBldFN5bnRheCc+LFxuICAgIHByaXZhdGUgcmVhZG9ubHkgc3VwcG9ydENvZGVMaWJyYXJ5OiBTdXBwb3J0Q29kZUxpYnJhcnlcbiAgKSB7fVxuXG4gIGFzeW5jIHNldHVwKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGF3YWl0IG5ldyBQcm9taXNlPHZvaWQ+KChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgIHRoaXMucmVhZGluZXNzID0geyByZXNvbHZlLCByZWplY3QgfVxuICAgICAgY29uc3QgdG90YWwgPSB0aGlzLm9wdGlvbnMucGFyYWxsZWxcbiAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdG90YWw7IGkrKykge1xuICAgICAgICBjb25zdCBpZCA9IGkudG9TdHJpbmcoKVxuICAgICAgICAvLyBzcGluIHVwIGEgZGVkaWNhdGVkIG1lc3NhZ2UgY2hhbm5lbCBmb3IgY29vcmRpbmF0b3Itd29ya2VyIGNvbW1zXG4gICAgICAgIGNvbnN0IHsgcG9ydDEsIHBvcnQyIH0gPSBuZXcgTWVzc2FnZUNoYW5uZWwoKVxuICAgICAgICBjb25zdCB3b3JrZXJUaHJlYWQgPSBuZXcgV29ya2VyKHBhdGgucmVzb2x2ZShfX2Rpcm5hbWUsICd3b3JrZXIubWpzJyksIHtcbiAgICAgICAgICBlbnY6IHtcbiAgICAgICAgICAgIC4uLnRoaXMuZW52aXJvbm1lbnQuZW52LFxuICAgICAgICAgICAgQ1VDVU1CRVJfUEFSQUxMRUw6ICd0cnVlJyxcbiAgICAgICAgICAgIENVQ1VNQkVSX1RPVEFMX1dPUktFUlM6IHRvdGFsLnRvU3RyaW5nKCksXG4gICAgICAgICAgICBDVUNVTUJFUl9XT1JLRVJfSUQ6IGlkLFxuICAgICAgICAgIH0sXG4gICAgICAgICAgcmVzb3VyY2VMaW1pdHM6IHRoaXMub3B0aW9ucy53b3JrZXJPcHRpb25zPy5yZXNvdXJjZUxpbWl0cyxcbiAgICAgICAgICB3b3JrZXJEYXRhOiB7XG4gICAgICAgICAgICBjd2Q6IHRoaXMuZW52aXJvbm1lbnQuY3dkLFxuICAgICAgICAgICAgdGVzdFJ1blN0YXJ0ZWRJZDogdGhpcy50ZXN0UnVuU3RhcnRlZElkLFxuICAgICAgICAgICAgc3VwcG9ydENvZGVDb29yZGluYXRlczogdGhpcy5zdXBwb3J0Q29kZUxpYnJhcnkub3JpZ2luYWxDb29yZGluYXRlcyxcbiAgICAgICAgICAgIHN1cHBvcnRDb2RlSWRzOiB7XG4gICAgICAgICAgICAgIHN0ZXBEZWZpbml0aW9uSWRzOiB0aGlzLnN1cHBvcnRDb2RlTGlicmFyeS5zdGVwRGVmaW5pdGlvbnMubWFwKChzKSA9PiBzLmlkKSxcbiAgICAgICAgICAgICAgYmVmb3JlVGVzdENhc2VIb29rRGVmaW5pdGlvbklkczpcbiAgICAgICAgICAgICAgICB0aGlzLnN1cHBvcnRDb2RlTGlicmFyeS5iZWZvcmVUZXN0Q2FzZUhvb2tEZWZpbml0aW9ucy5tYXAoKGgpID0+IGguaWQpLFxuICAgICAgICAgICAgICBhZnRlclRlc3RDYXNlSG9va0RlZmluaXRpb25JZHM6XG4gICAgICAgICAgICAgICAgdGhpcy5zdXBwb3J0Q29kZUxpYnJhcnkuYWZ0ZXJUZXN0Q2FzZUhvb2tEZWZpbml0aW9ucy5tYXAoKGgpID0+IGguaWQpLFxuICAgICAgICAgICAgICBiZWZvcmVUZXN0UnVuSG9va0RlZmluaXRpb25JZHM6XG4gICAgICAgICAgICAgICAgdGhpcy5zdXBwb3J0Q29kZUxpYnJhcnkuYmVmb3JlVGVzdFJ1bkhvb2tEZWZpbml0aW9ucy5tYXAoKGgpID0+IGguaWQpLFxuICAgICAgICAgICAgICBhZnRlclRlc3RSdW5Ib29rRGVmaW5pdGlvbklkczpcbiAgICAgICAgICAgICAgICB0aGlzLnN1cHBvcnRDb2RlTGlicmFyeS5hZnRlclRlc3RSdW5Ib29rRGVmaW5pdGlvbnMubWFwKChoKSA9PiBoLmlkKSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBvcHRpb25zOiB0aGlzLm9wdGlvbnMsXG4gICAgICAgICAgICBzbmlwcGV0T3B0aW9uczogdGhpcy5zbmlwcGV0T3B0aW9ucyxcbiAgICAgICAgICAgIHBvcnQ6IHBvcnQyLFxuICAgICAgICAgIH0gc2F0aXNmaWVzIFdvcmtlckRhdGEsXG4gICAgICAgICAgdHJhbnNmZXJMaXN0OiBbcG9ydDJdLFxuICAgICAgICB9KVxuICAgICAgICBjb25zdCB3b3JrZXIgPSB7XG4gICAgICAgICAgaWQsXG4gICAgICAgICAgd29ya2VyVGhyZWFkLFxuICAgICAgICAgIHBvcnQ6IHBvcnQxLFxuICAgICAgICAgIHJlYWR5OiBmYWxzZSxcbiAgICAgICAgfVxuICAgICAgICB0aGlzLndvcmtlcnMuYWRkKHdvcmtlcilcbiAgICAgICAgcG9ydDEub24oJ21lc3NhZ2UnLCAoZXZlbnQ6IFdvcmtlckV2ZW50KSA9PiB7XG4gICAgICAgICAgdGhpcy5oYW5kbGVFdmVudEZyb21Xb3JrZXIod29ya2VyLCBldmVudClcbiAgICAgICAgfSlcbiAgICAgICAgd29ya2VyVGhyZWFkLm9uKCdlcnJvcicsIChlcnJvcikgPT4ge1xuICAgICAgICAgIHRoaXMuaGFuZGxlRXJyb3JGcm9tV29ya2VyKGVycm9yLCB3b3JrZXIpXG4gICAgICAgIH0pXG4gICAgICAgIHdvcmtlclRocmVhZC5vbignZXhpdCcsIChleGl0Q29kZSkgPT4ge1xuICAgICAgICAgIHRoaXMuaGFuZGxlRXhpdEZyb21Xb3JrZXIoZXhpdENvZGUsIHdvcmtlcilcbiAgICAgICAgfSlcbiAgICAgIH1cbiAgICB9KVxuICAgIGRlbGV0ZSB0aGlzLnJlYWRpbmVzc1xuICB9XG5cbiAgYXN5bmMgcnVuQmVmb3JlQWxsSG9va3MoKTogUHJvbWlzZTxib29sZWFuPiB7XG4gICAgY29uc3Qgc3VjY2VzcyA9IGF3YWl0IG5ldyBQcm9taXNlPGJvb2xlYW4+KChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgIHRoaXMucGhhc2UgPSBuZXcgVGVzdFJ1bkhvb2tzUGhhc2UocmVzb2x2ZSwgcmVqZWN0LCAnQkVGT1JFQUxMX0hPT0tTJylcbiAgICAgIHRoaXMuc3RhcnRQaGFzZSgpXG4gICAgfSlcbiAgICBkZWxldGUgdGhpcy5waGFzZVxuICAgIHJldHVybiBzdWNjZXNzXG4gIH1cblxuICBhc3luYyBydW5UZXN0Q2FzZXMoYXNzZW1ibGVkVGVzdENhc2VzOiBSZWFkb25seUFycmF5PEFzc2VtYmxlZFRlc3RDYXNlPik6IFByb21pc2U8Ym9vbGVhbj4ge1xuICAgIGNvbnN0IHN1Y2Nlc3MgPSBhd2FpdCBuZXcgUHJvbWlzZTxib29sZWFuPigocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICB0aGlzLnBoYXNlID0gbmV3IFRlc3RDYXNlc1BoYXNlKFxuICAgICAgICByZXNvbHZlLFxuICAgICAgICByZWplY3QsXG4gICAgICAgIHRoaXMubG9nZ2VyLFxuICAgICAgICB0aGlzLnN1cHBvcnRDb2RlTGlicmFyeS5wYXJhbGxlbENhbkFzc2lnbixcbiAgICAgICAgYXNzZW1ibGVkVGVzdENhc2VzXG4gICAgICApXG4gICAgICB0aGlzLnN0YXJ0UGhhc2UoKVxuICAgIH0pXG4gICAgZGVsZXRlIHRoaXMucGhhc2VcbiAgICByZXR1cm4gc3VjY2Vzc1xuICB9XG5cbiAgYXN5bmMgcnVuQWZ0ZXJBbGxIb29rcygpOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgICBjb25zdCBzdWNjZXNzID0gYXdhaXQgbmV3IFByb21pc2U8Ym9vbGVhbj4oKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgdGhpcy5waGFzZSA9IG5ldyBUZXN0UnVuSG9va3NQaGFzZShyZXNvbHZlLCByZWplY3QsICdBRlRFUkFMTF9IT09LUycpXG4gICAgICB0aGlzLnN0YXJ0UGhhc2UoKVxuICAgIH0pXG4gICAgZGVsZXRlIHRoaXMucGhhc2VcbiAgICByZXR1cm4gc3VjY2Vzc1xuICB9XG5cbiAgYXN5bmMgdGVhcmRvd24oKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgdGhpcy50ZWFyaW5nRG93biA9IHRydWVcbiAgICBmb3IgKGNvbnN0IHdvcmtlciBvZiB0aGlzLndvcmtlcnMudmFsdWVzKCkpIHtcbiAgICAgIGF3YWl0IHdvcmtlci53b3JrZXJUaHJlYWQudGVybWluYXRlKClcbiAgICAgIC8vIGNsb3NlIG91ciBlbmQgb2YgdGhlIGNoYW5uZWwgc28gaXQgc3RvcHMga2VlcGluZyB0aGUgbG9vcCBhbGl2ZVxuICAgICAgd29ya2VyLnBvcnQuY2xvc2UoKVxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgc3RhcnRQaGFzZSgpIHtcbiAgICBmb3IgKGNvbnN0IHdvcmtlciBvZiB0aGlzLndvcmtlcnMpIHtcbiAgICAgIGNvbnN0IGNvbW1hbmQgPSB0aGlzLnBoYXNlLmZpbGwoKVxuICAgICAgaWYgKGNvbW1hbmQpIHtcbiAgICAgICAgdGhpcy5pc3N1ZUNvbW1hbmRUb1dvcmtlcih3b3JrZXIsIGNvbW1hbmQpXG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBpc3N1ZUNvbW1hbmRUb1dvcmtlcih3b3JrZXI6IE1hbmFnZWRXb3JrZXIsIGNvbW1hbmQ6IFdvcmtlckNvbW1hbmQpIHtcbiAgICB0aGlzLnJ1bm5pbmcuc2V0KHdvcmtlciwgY29tbWFuZClcbiAgICB3b3JrZXIucG9ydC5wb3N0TWVzc2FnZShjb21tYW5kKVxuICB9XG5cbiAgcHJpdmF0ZSBoYW5kbGVFdmVudEZyb21Xb3JrZXIod29ya2VyOiBNYW5hZ2VkV29ya2VyLCBldmVudDogV29ya2VyRXZlbnQpIHtcbiAgICBzd2l0Y2ggKGV2ZW50LnR5cGUpIHtcbiAgICAgIGNhc2UgJ1JFQURZJzpcbiAgICAgICAgd29ya2VyLnJlYWR5ID0gdHJ1ZVxuICAgICAgICBpZiAoWy4uLnRoaXMud29ya2Vyc10uZXZlcnkoKG13KSA9PiBtdy5yZWFkeSkpIHtcbiAgICAgICAgICB0aGlzLnJlYWRpbmVzcz8ucmVzb2x2ZSgpXG4gICAgICAgIH1cbiAgICAgICAgYnJlYWtcbiAgICAgIGNhc2UgJ0VOVkVMT1BFJzpcbiAgICAgICAgdGhpcy5ldmVudEJyb2FkY2FzdGVyLmVtaXQoJ2VudmVsb3BlJywgZXZlbnQuZW52ZWxvcGUpXG4gICAgICAgIGJyZWFrXG4gICAgICBjYXNlICdGSU5JU0hFRCc6IHtcbiAgICAgICAgY29uc3QgcHJldmlvdXNDb21tYW5kID0gdGhpcy5ydW5uaW5nLmdldCh3b3JrZXIpXG4gICAgICAgIHRoaXMucnVubmluZy5kZWxldGUod29ya2VyKVxuICAgICAgICBjb25zdCBuZXh0Q29tbWFuZCA9IHRoaXMucGhhc2U/Lm5leHQocHJldmlvdXNDb21tYW5kLCBldmVudClcbiAgICAgICAgaWYgKG5leHRDb21tYW5kKSB7XG4gICAgICAgICAgdGhpcy5pc3N1ZUNvbW1hbmRUb1dvcmtlcih3b3JrZXIsIG5leHRDb21tYW5kKVxuICAgICAgICB9XG4gICAgICAgIGJyZWFrXG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBoYW5kbGVFcnJvckZyb21Xb3JrZXIoZXJyb3I6IEVycm9yLCB3b3JrZXI6IE1hbmFnZWRXb3JrZXIpIHtcbiAgICB0aGlzLmZhaWwobmV3IEVycm9yKGBFcnJvciBvbiB3b3JrZXIgJHt3b3JrZXIuaWR9YCwgeyBjYXVzZTogZXJyb3IgfSkpXG4gIH1cblxuICBwcml2YXRlIGhhbmRsZUV4aXRGcm9tV29ya2VyKGV4aXRDb2RlOiBudW1iZXIsIHdvcmtlcjogTWFuYWdlZFdvcmtlcikge1xuICAgIGlmICghdGhpcy50ZWFyaW5nRG93bikge1xuICAgICAgdGhpcy5mYWlsKG5ldyBFcnJvcihgV29ya2VyICR7d29ya2VyLmlkfSBleGl0ZWQgdW5leHBlY3RlZGx5IHdpdGggY29kZSAke2V4aXRDb2RlfWApKVxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgZmFpbChyZWFzb246IEVycm9yKSB7XG4gICAgdGhpcy5yZWFkaW5lc3M/LnJlamVjdChyZWFzb24pXG4gICAgdGhpcy5waGFzZT8ucmVqZWN0KHJlYXNvbilcbiAgICB2b2lkIHRoaXMudGVhcmRvd24oKVxuICB9XG59XG4iXX0=
@@ -1,16 +1,16 @@
1
- import * as messages from '@cucumber/messages';
1
+ import { type PickleStep, type TestStepResult } from '@cucumber/messages';
2
2
  import type { IDefinition } from '../models/definition';
3
3
  import type { ITestCaseHookParameter } from '../support_code_library_builder/types';
4
4
  export interface IRunOptions {
5
5
  defaultTimeout: number;
6
6
  filterStackTraces: boolean;
7
7
  hookParameter: ITestCaseHookParameter;
8
- step: messages.PickleStep;
8
+ step: PickleStep;
9
9
  stepDefinition: IDefinition;
10
10
  world: any;
11
11
  }
12
12
  export interface RunStepResult {
13
- result: messages.TestStepResult;
13
+ result: TestStepResult;
14
14
  error?: any;
15
15
  }
16
16
  export declare function run({ defaultTimeout, filterStackTraces, hookParameter, step, stepDefinition, world, }: IRunOptions): Promise<RunStepResult>;
@@ -1,43 +1,10 @@
1
1
  "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || (function () {
19
- var ownKeys = function(o) {
20
- ownKeys = Object.getOwnPropertyNames || function (o) {
21
- var ar = [];
22
- for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
- return ar;
24
- };
25
- return ownKeys(o);
26
- };
27
- return function (mod) {
28
- if (mod && mod.__esModule) return mod;
29
- var result = {};
30
- if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
- __setModuleDefault(result, mod);
32
- return result;
33
- };
34
- })();
35
2
  var __importDefault = (this && this.__importDefault) || function (mod) {
36
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
37
4
  };
38
5
  Object.defineProperty(exports, "__esModule", { value: true });
39
6
  exports.run = run;
40
- const messages = __importStar(require("@cucumber/messages"));
7
+ const messages_1 = require("@cucumber/messages");
41
8
  const user_code_runner_1 = __importDefault(require("../user_code_runner"));
42
9
  const value_checker_1 = require("../value_checker");
43
10
  const format_error_1 = require("./format_error");
@@ -78,16 +45,16 @@ async function run({ defaultTimeout, filterStackTraces, hookParameter, step, ste
78
45
  let status;
79
46
  let details = {};
80
47
  if (result === 'skipped') {
81
- status = messages.TestStepResultStatus.SKIPPED;
48
+ status = messages_1.TestStepResultStatus.SKIPPED;
82
49
  }
83
50
  else if (result === 'pending') {
84
- status = messages.TestStepResultStatus.PENDING;
51
+ status = messages_1.TestStepResultStatus.PENDING;
85
52
  }
86
53
  else if ((0, value_checker_1.doesHaveValue)(error)) {
87
- status = messages.TestStepResultStatus.FAILED;
54
+ status = messages_1.TestStepResultStatus.FAILED;
88
55
  }
89
56
  else {
90
- status = messages.TestStepResultStatus.PASSED;
57
+ status = messages_1.TestStepResultStatus.PASSED;
91
58
  }
92
59
  if ((0, value_checker_1.doesHaveValue)(error)) {
93
60
  details = (0, format_error_1.formatError)(error, filterStackTraces);
@@ -102,4 +69,4 @@ async function run({ defaultTimeout, filterStackTraces, hookParameter, step, ste
102
69
  };
103
70
  }
104
71
  exports.default = { run };
105
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RlcF9ydW5uZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcnVudGltZS9zdGVwX3J1bm5lci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQXVCQSxrQkFtRUM7QUExRkQsNkRBQThDO0FBRzlDLDJFQUFnRDtBQUNoRCxvREFBa0Y7QUFDbEYsaURBQTRDO0FBQzVDLG1DQUE0QztBQUM1QywyQ0FBb0M7QUFnQjdCLEtBQUssVUFBVSxHQUFHLENBQUMsRUFDeEIsY0FBYyxFQUNkLGlCQUFpQixFQUNqQixhQUFhLEVBQ2IsSUFBSSxFQUNKLGNBQWMsRUFDZCxLQUFLLEdBQ087SUFDWixNQUFNLFNBQVMsR0FBRyxJQUFBLGtCQUFNLEdBQUUsQ0FBQyxLQUFLLEVBQUUsQ0FBQTtJQUNsQyxJQUFJLEtBQVUsRUFBRSxNQUFXLEVBQUUsY0FBMEMsQ0FBQTtJQUV2RSxJQUFJLENBQUM7UUFDSCxNQUFNLElBQUEsMEJBQWtCLEVBQUMsRUFBRSxLQUFLLEVBQUUsRUFBRSxLQUFLLElBQUksRUFBRTtZQUM3QyxjQUFjLEdBQUcsTUFBTSxjQUFjLENBQUMsdUJBQXVCLENBQUM7Z0JBQzVELGFBQWE7Z0JBQ2IsSUFBSTtnQkFDSixLQUFLO2FBQ04sQ0FBQyxDQUFBO1FBQ0osQ0FBQyxDQUFDLENBQUE7SUFDSixDQUFDO0lBQUMsT0FBTyxHQUFHLEVBQUUsQ0FBQztRQUNiLEtBQUssR0FBRyxHQUFHLENBQUE7SUFDYixDQUFDO0lBRUQsSUFBSSxJQUFBLGdDQUFnQixFQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7UUFDNUIsTUFBTSxxQkFBcUIsR0FBRyxJQUFBLDhCQUFjLEVBQUMsY0FBYyxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsY0FBYyxDQUFDLENBQUE7UUFFNUYsSUFBSSxjQUFjLENBQUMsZ0JBQWdCLENBQUMsUUFBUSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQztZQUN6RSxNQUFNLElBQUksR0FBRyxNQUFNLElBQUEsMEJBQWtCLEVBQUMsRUFBRSxLQUFLLEVBQUUsRUFBRSxLQUFLLElBQUksRUFBRSxDQUMxRCwwQkFBYyxDQUFDLEdBQUcsQ0FBQztnQkFDakIsU0FBUyxFQUFFLGNBQWMsQ0FBQyxVQUFVO2dCQUNwQyxFQUFFLEVBQUUsY0FBYyxDQUFDLElBQUk7Z0JBQ3ZCLE9BQU8sRUFBRSxLQUFLO2dCQUNkLHFCQUFxQjthQUN0QixDQUFDLENBQ0gsQ0FBQTtZQUNELEtBQUssR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFBO1lBQ2xCLE1BQU0sR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFBO1FBQ3RCLENBQUM7YUFBTSxDQUFDO1lBQ04sS0FBSyxHQUFHLGNBQWMsQ0FBQywyQkFBMkIsRUFBRSxDQUFBO1FBQ3RELENBQUM7SUFDSCxDQUFDO0lBRUQsTUFBTSxRQUFRLEdBQUcsU0FBUyxDQUFDLElBQUksRUFBRSxDQUFDLFFBQVEsRUFBRSxDQUFBO0lBQzVDLElBQUksTUFBcUMsQ0FBQTtJQUN6QyxJQUFJLE9BQU8sR0FBRyxFQUFFLENBQUE7SUFDaEIsSUFBSSxNQUFNLEtBQUssU0FBUyxFQUFFLENBQUM7UUFDekIsTUFBTSxHQUFHLFFBQVEsQ0FBQyxvQkFBb0IsQ0FBQyxPQUFPLENBQUE7SUFDaEQsQ0FBQztTQUFNLElBQUksTUFBTSxLQUFLLFNBQVMsRUFBRSxDQUFDO1FBQ2hDLE1BQU0sR0FBRyxRQUFRLENBQUMsb0JBQW9CLENBQUMsT0FBTyxDQUFBO0lBQ2hELENBQUM7U0FBTSxJQUFJLElBQUEsNkJBQWEsRUFBQyxLQUFLLENBQUMsRUFBRSxDQUFDO1FBQ2hDLE1BQU0sR0FBRyxRQUFRLENBQUMsb0JBQW9CLENBQUMsTUFBTSxDQUFBO0lBQy9DLENBQUM7U0FBTSxDQUFDO1FBQ04sTUFBTSxHQUFHLFFBQVEsQ0FBQyxvQkFBb0IsQ0FBQyxNQUFNLENBQUE7SUFDL0MsQ0FBQztJQUVELElBQUksSUFBQSw2QkFBYSxFQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7UUFDekIsT0FBTyxHQUFHLElBQUEsMEJBQVcsRUFBQyxLQUFLLEVBQUUsaUJBQWlCLENBQUMsQ0FBQTtJQUNqRCxDQUFDO0lBRUQsT0FBTztRQUNMLE1BQU0sRUFBRTtZQUNOLFFBQVE7WUFDUixNQUFNO1lBQ04sR0FBRyxPQUFPO1NBQ1g7UUFDRCxLQUFLO0tBQ04sQ0FBQTtBQUNILENBQUM7QUFFRCxrQkFBZSxFQUFFLEdBQUcsRUFBRSxDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgbWVzc2FnZXMgZnJvbSAnQGN1Y3VtYmVyL21lc3NhZ2VzJ1xuaW1wb3J0IHR5cGUgeyBJRGVmaW5pdGlvbiwgSUdldEludm9jYXRpb25EYXRhUmVzcG9uc2UgfSBmcm9tICcuLi9tb2RlbHMvZGVmaW5pdGlvbidcbmltcG9ydCB0eXBlIHsgSVRlc3RDYXNlSG9va1BhcmFtZXRlciB9IGZyb20gJy4uL3N1cHBvcnRfY29kZV9saWJyYXJ5X2J1aWxkZXIvdHlwZXMnXG5pbXBvcnQgVXNlckNvZGVSdW5uZXIgZnJvbSAnLi4vdXNlcl9jb2RlX3J1bm5lcidcbmltcG9ydCB7IGRvZXNIYXZlVmFsdWUsIGRvZXNOb3RIYXZlVmFsdWUsIHZhbHVlT3JEZWZhdWx0IH0gZnJvbSAnLi4vdmFsdWVfY2hlY2tlcidcbmltcG9ydCB7IGZvcm1hdEVycm9yIH0gZnJvbSAnLi9mb3JtYXRfZXJyb3InXG5pbXBvcnQgeyBydW5JblRlc3RDYXNlU2NvcGUgfSBmcm9tICcuL3Njb3BlJ1xuaW1wb3J0IHsgY3JlYXRlIH0gZnJvbSAnLi9zdG9wd2F0Y2gnXG5cbmV4cG9ydCBpbnRlcmZhY2UgSVJ1bk9wdGlvbnMge1xuICBkZWZhdWx0VGltZW91dDogbnVtYmVyXG4gIGZpbHRlclN0YWNrVHJhY2VzOiBib29sZWFuXG4gIGhvb2tQYXJhbWV0ZXI6IElUZXN0Q2FzZUhvb2tQYXJhbWV0ZXJcbiAgc3RlcDogbWVzc2FnZXMuUGlja2xlU3RlcFxuICBzdGVwRGVmaW5pdGlvbjogSURlZmluaXRpb25cbiAgd29ybGQ6IGFueVxufVxuXG5leHBvcnQgaW50ZXJmYWNlIFJ1blN0ZXBSZXN1bHQge1xuICByZXN1bHQ6IG1lc3NhZ2VzLlRlc3RTdGVwUmVzdWx0XG4gIGVycm9yPzogYW55XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBydW4oe1xuICBkZWZhdWx0VGltZW91dCxcbiAgZmlsdGVyU3RhY2tUcmFjZXMsXG4gIGhvb2tQYXJhbWV0ZXIsXG4gIHN0ZXAsXG4gIHN0ZXBEZWZpbml0aW9uLFxuICB3b3JsZCxcbn06IElSdW5PcHRpb25zKTogUHJvbWlzZTxSdW5TdGVwUmVzdWx0PiB7XG4gIGNvbnN0IHN0b3B3YXRjaCA9IGNyZWF0ZSgpLnN0YXJ0KClcbiAgbGV0IGVycm9yOiBhbnksIHJlc3VsdDogYW55LCBpbnZvY2F0aW9uRGF0YTogSUdldEludm9jYXRpb25EYXRhUmVzcG9uc2VcblxuICB0cnkge1xuICAgIGF3YWl0IHJ1bkluVGVzdENhc2VTY29wZSh7IHdvcmxkIH0sIGFzeW5jICgpID0+IHtcbiAgICAgIGludm9jYXRpb25EYXRhID0gYXdhaXQgc3RlcERlZmluaXRpb24uZ2V0SW52b2NhdGlvblBhcmFtZXRlcnMoe1xuICAgICAgICBob29rUGFyYW1ldGVyLFxuICAgICAgICBzdGVwLFxuICAgICAgICB3b3JsZCxcbiAgICAgIH0pXG4gICAgfSlcbiAgfSBjYXRjaCAoZXJyKSB7XG4gICAgZXJyb3IgPSBlcnJcbiAgfVxuXG4gIGlmIChkb2VzTm90SGF2ZVZhbHVlKGVycm9yKSkge1xuICAgIGNvbnN0IHRpbWVvdXRJbk1pbGxpc2Vjb25kcyA9IHZhbHVlT3JEZWZhdWx0KHN0ZXBEZWZpbml0aW9uLm9wdGlvbnMudGltZW91dCwgZGVmYXVsdFRpbWVvdXQpXG5cbiAgICBpZiAoaW52b2NhdGlvbkRhdGEudmFsaWRDb2RlTGVuZ3Rocy5pbmNsdWRlcyhzdGVwRGVmaW5pdGlvbi5jb2RlLmxlbmd0aCkpIHtcbiAgICAgIGNvbnN0IGRhdGEgPSBhd2FpdCBydW5JblRlc3RDYXNlU2NvcGUoeyB3b3JsZCB9LCBhc3luYyAoKSA9PlxuICAgICAgICBVc2VyQ29kZVJ1bm5lci5ydW4oe1xuICAgICAgICAgIGFyZ3NBcnJheTogaW52b2NhdGlvbkRhdGEucGFyYW1ldGVycyxcbiAgICAgICAgICBmbjogc3RlcERlZmluaXRpb24uY29kZSxcbiAgICAgICAgICB0aGlzQXJnOiB3b3JsZCxcbiAgICAgICAgICB0aW1lb3V0SW5NaWxsaXNlY29uZHMsXG4gICAgICAgIH0pXG4gICAgICApXG4gICAgICBlcnJvciA9IGRhdGEuZXJyb3JcbiAgICAgIHJlc3VsdCA9IGRhdGEucmVzdWx0XG4gICAgfSBlbHNlIHtcbiAgICAgIGVycm9yID0gaW52b2NhdGlvbkRhdGEuZ2V0SW52YWxpZENvZGVMZW5ndGhNZXNzYWdlKClcbiAgICB9XG4gIH1cblxuICBjb25zdCBkdXJhdGlvbiA9IHN0b3B3YXRjaC5zdG9wKCkuZHVyYXRpb24oKVxuICBsZXQgc3RhdHVzOiBtZXNzYWdlcy5UZXN0U3RlcFJlc3VsdFN0YXR1c1xuICBsZXQgZGV0YWlscyA9IHt9XG4gIGlmIChyZXN1bHQgPT09ICdza2lwcGVkJykge1xuICAgIHN0YXR1cyA9IG1lc3NhZ2VzLlRlc3RTdGVwUmVzdWx0U3RhdHVzLlNLSVBQRURcbiAgfSBlbHNlIGlmIChyZXN1bHQgPT09ICdwZW5kaW5nJykge1xuICAgIHN0YXR1cyA9IG1lc3NhZ2VzLlRlc3RTdGVwUmVzdWx0U3RhdHVzLlBFTkRJTkdcbiAgfSBlbHNlIGlmIChkb2VzSGF2ZVZhbHVlKGVycm9yKSkge1xuICAgIHN0YXR1cyA9IG1lc3NhZ2VzLlRlc3RTdGVwUmVzdWx0U3RhdHVzLkZBSUxFRFxuICB9IGVsc2Uge1xuICAgIHN0YXR1cyA9IG1lc3NhZ2VzLlRlc3RTdGVwUmVzdWx0U3RhdHVzLlBBU1NFRFxuICB9XG5cbiAgaWYgKGRvZXNIYXZlVmFsdWUoZXJyb3IpKSB7XG4gICAgZGV0YWlscyA9IGZvcm1hdEVycm9yKGVycm9yLCBmaWx0ZXJTdGFja1RyYWNlcylcbiAgfVxuXG4gIHJldHVybiB7XG4gICAgcmVzdWx0OiB7XG4gICAgICBkdXJhdGlvbixcbiAgICAgIHN0YXR1cyxcbiAgICAgIC4uLmRldGFpbHMsXG4gICAgfSxcbiAgICBlcnJvcixcbiAgfVxufVxuXG5leHBvcnQgZGVmYXVsdCB7IHJ1biB9XG4iXX0=
72
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RlcF9ydW5uZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcnVudGltZS9zdGVwX3J1bm5lci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQXVCQSxrQkFtRUM7QUExRkQsaURBQStGO0FBRy9GLDJFQUFnRDtBQUNoRCxvREFBa0Y7QUFDbEYsaURBQTRDO0FBQzVDLG1DQUE0QztBQUM1QywyQ0FBb0M7QUFnQjdCLEtBQUssVUFBVSxHQUFHLENBQUMsRUFDeEIsY0FBYyxFQUNkLGlCQUFpQixFQUNqQixhQUFhLEVBQ2IsSUFBSSxFQUNKLGNBQWMsRUFDZCxLQUFLLEdBQ087SUFDWixNQUFNLFNBQVMsR0FBRyxJQUFBLGtCQUFNLEdBQUUsQ0FBQyxLQUFLLEVBQUUsQ0FBQTtJQUNsQyxJQUFJLEtBQVUsRUFBRSxNQUFXLEVBQUUsY0FBMEMsQ0FBQTtJQUV2RSxJQUFJLENBQUM7UUFDSCxNQUFNLElBQUEsMEJBQWtCLEVBQUMsRUFBRSxLQUFLLEVBQUUsRUFBRSxLQUFLLElBQUksRUFBRTtZQUM3QyxjQUFjLEdBQUcsTUFBTSxjQUFjLENBQUMsdUJBQXVCLENBQUM7Z0JBQzVELGFBQWE7Z0JBQ2IsSUFBSTtnQkFDSixLQUFLO2FBQ04sQ0FBQyxDQUFBO1FBQ0osQ0FBQyxDQUFDLENBQUE7SUFDSixDQUFDO0lBQUMsT0FBTyxHQUFHLEVBQUUsQ0FBQztRQUNiLEtBQUssR0FBRyxHQUFHLENBQUE7SUFDYixDQUFDO0lBRUQsSUFBSSxJQUFBLGdDQUFnQixFQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7UUFDNUIsTUFBTSxxQkFBcUIsR0FBRyxJQUFBLDhCQUFjLEVBQUMsY0FBYyxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsY0FBYyxDQUFDLENBQUE7UUFFNUYsSUFBSSxjQUFjLENBQUMsZ0JBQWdCLENBQUMsUUFBUSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQztZQUN6RSxNQUFNLElBQUksR0FBRyxNQUFNLElBQUEsMEJBQWtCLEVBQUMsRUFBRSxLQUFLLEVBQUUsRUFBRSxLQUFLLElBQUksRUFBRSxDQUMxRCwwQkFBYyxDQUFDLEdBQUcsQ0FBQztnQkFDakIsU0FBUyxFQUFFLGNBQWMsQ0FBQyxVQUFVO2dCQUNwQyxFQUFFLEVBQUUsY0FBYyxDQUFDLElBQUk7Z0JBQ3ZCLE9BQU8sRUFBRSxLQUFLO2dCQUNkLHFCQUFxQjthQUN0QixDQUFDLENBQ0gsQ0FBQTtZQUNELEtBQUssR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFBO1lBQ2xCLE1BQU0sR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFBO1FBQ3RCLENBQUM7YUFBTSxDQUFDO1lBQ04sS0FBSyxHQUFHLGNBQWMsQ0FBQywyQkFBMkIsRUFBRSxDQUFBO1FBQ3RELENBQUM7SUFDSCxDQUFDO0lBRUQsTUFBTSxRQUFRLEdBQUcsU0FBUyxDQUFDLElBQUksRUFBRSxDQUFDLFFBQVEsRUFBRSxDQUFBO0lBQzVDLElBQUksTUFBNEIsQ0FBQTtJQUNoQyxJQUFJLE9BQU8sR0FBRyxFQUFFLENBQUE7SUFDaEIsSUFBSSxNQUFNLEtBQUssU0FBUyxFQUFFLENBQUM7UUFDekIsTUFBTSxHQUFHLCtCQUFvQixDQUFDLE9BQU8sQ0FBQTtJQUN2QyxDQUFDO1NBQU0sSUFBSSxNQUFNLEtBQUssU0FBUyxFQUFFLENBQUM7UUFDaEMsTUFBTSxHQUFHLCtCQUFvQixDQUFDLE9BQU8sQ0FBQTtJQUN2QyxDQUFDO1NBQU0sSUFBSSxJQUFBLDZCQUFhLEVBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztRQUNoQyxNQUFNLEdBQUcsK0JBQW9CLENBQUMsTUFBTSxDQUFBO0lBQ3RDLENBQUM7U0FBTSxDQUFDO1FBQ04sTUFBTSxHQUFHLCtCQUFvQixDQUFDLE1BQU0sQ0FBQTtJQUN0QyxDQUFDO0lBRUQsSUFBSSxJQUFBLDZCQUFhLEVBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztRQUN6QixPQUFPLEdBQUcsSUFBQSwwQkFBVyxFQUFDLEtBQUssRUFBRSxpQkFBaUIsQ0FBQyxDQUFBO0lBQ2pELENBQUM7SUFFRCxPQUFPO1FBQ0wsTUFBTSxFQUFFO1lBQ04sUUFBUTtZQUNSLE1BQU07WUFDTixHQUFHLE9BQU87U0FDWDtRQUNELEtBQUs7S0FDTixDQUFBO0FBQ0gsQ0FBQztBQUVELGtCQUFlLEVBQUUsR0FBRyxFQUFFLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyB0eXBlIFBpY2tsZVN0ZXAsIHR5cGUgVGVzdFN0ZXBSZXN1bHQsIFRlc3RTdGVwUmVzdWx0U3RhdHVzIH0gZnJvbSAnQGN1Y3VtYmVyL21lc3NhZ2VzJ1xuaW1wb3J0IHR5cGUgeyBJRGVmaW5pdGlvbiwgSUdldEludm9jYXRpb25EYXRhUmVzcG9uc2UgfSBmcm9tICcuLi9tb2RlbHMvZGVmaW5pdGlvbidcbmltcG9ydCB0eXBlIHsgSVRlc3RDYXNlSG9va1BhcmFtZXRlciB9IGZyb20gJy4uL3N1cHBvcnRfY29kZV9saWJyYXJ5X2J1aWxkZXIvdHlwZXMnXG5pbXBvcnQgVXNlckNvZGVSdW5uZXIgZnJvbSAnLi4vdXNlcl9jb2RlX3J1bm5lcidcbmltcG9ydCB7IGRvZXNIYXZlVmFsdWUsIGRvZXNOb3RIYXZlVmFsdWUsIHZhbHVlT3JEZWZhdWx0IH0gZnJvbSAnLi4vdmFsdWVfY2hlY2tlcidcbmltcG9ydCB7IGZvcm1hdEVycm9yIH0gZnJvbSAnLi9mb3JtYXRfZXJyb3InXG5pbXBvcnQgeyBydW5JblRlc3RDYXNlU2NvcGUgfSBmcm9tICcuL3Njb3BlJ1xuaW1wb3J0IHsgY3JlYXRlIH0gZnJvbSAnLi9zdG9wd2F0Y2gnXG5cbmV4cG9ydCBpbnRlcmZhY2UgSVJ1bk9wdGlvbnMge1xuICBkZWZhdWx0VGltZW91dDogbnVtYmVyXG4gIGZpbHRlclN0YWNrVHJhY2VzOiBib29sZWFuXG4gIGhvb2tQYXJhbWV0ZXI6IElUZXN0Q2FzZUhvb2tQYXJhbWV0ZXJcbiAgc3RlcDogUGlja2xlU3RlcFxuICBzdGVwRGVmaW5pdGlvbjogSURlZmluaXRpb25cbiAgd29ybGQ6IGFueVxufVxuXG5leHBvcnQgaW50ZXJmYWNlIFJ1blN0ZXBSZXN1bHQge1xuICByZXN1bHQ6IFRlc3RTdGVwUmVzdWx0XG4gIGVycm9yPzogYW55XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBydW4oe1xuICBkZWZhdWx0VGltZW91dCxcbiAgZmlsdGVyU3RhY2tUcmFjZXMsXG4gIGhvb2tQYXJhbWV0ZXIsXG4gIHN0ZXAsXG4gIHN0ZXBEZWZpbml0aW9uLFxuICB3b3JsZCxcbn06IElSdW5PcHRpb25zKTogUHJvbWlzZTxSdW5TdGVwUmVzdWx0PiB7XG4gIGNvbnN0IHN0b3B3YXRjaCA9IGNyZWF0ZSgpLnN0YXJ0KClcbiAgbGV0IGVycm9yOiBhbnksIHJlc3VsdDogYW55LCBpbnZvY2F0aW9uRGF0YTogSUdldEludm9jYXRpb25EYXRhUmVzcG9uc2VcblxuICB0cnkge1xuICAgIGF3YWl0IHJ1bkluVGVzdENhc2VTY29wZSh7IHdvcmxkIH0sIGFzeW5jICgpID0+IHtcbiAgICAgIGludm9jYXRpb25EYXRhID0gYXdhaXQgc3RlcERlZmluaXRpb24uZ2V0SW52b2NhdGlvblBhcmFtZXRlcnMoe1xuICAgICAgICBob29rUGFyYW1ldGVyLFxuICAgICAgICBzdGVwLFxuICAgICAgICB3b3JsZCxcbiAgICAgIH0pXG4gICAgfSlcbiAgfSBjYXRjaCAoZXJyKSB7XG4gICAgZXJyb3IgPSBlcnJcbiAgfVxuXG4gIGlmIChkb2VzTm90SGF2ZVZhbHVlKGVycm9yKSkge1xuICAgIGNvbnN0IHRpbWVvdXRJbk1pbGxpc2Vjb25kcyA9IHZhbHVlT3JEZWZhdWx0KHN0ZXBEZWZpbml0aW9uLm9wdGlvbnMudGltZW91dCwgZGVmYXVsdFRpbWVvdXQpXG5cbiAgICBpZiAoaW52b2NhdGlvbkRhdGEudmFsaWRDb2RlTGVuZ3Rocy5pbmNsdWRlcyhzdGVwRGVmaW5pdGlvbi5jb2RlLmxlbmd0aCkpIHtcbiAgICAgIGNvbnN0IGRhdGEgPSBhd2FpdCBydW5JblRlc3RDYXNlU2NvcGUoeyB3b3JsZCB9LCBhc3luYyAoKSA9PlxuICAgICAgICBVc2VyQ29kZVJ1bm5lci5ydW4oe1xuICAgICAgICAgIGFyZ3NBcnJheTogaW52b2NhdGlvbkRhdGEucGFyYW1ldGVycyxcbiAgICAgICAgICBmbjogc3RlcERlZmluaXRpb24uY29kZSxcbiAgICAgICAgICB0aGlzQXJnOiB3b3JsZCxcbiAgICAgICAgICB0aW1lb3V0SW5NaWxsaXNlY29uZHMsXG4gICAgICAgIH0pXG4gICAgICApXG4gICAgICBlcnJvciA9IGRhdGEuZXJyb3JcbiAgICAgIHJlc3VsdCA9IGRhdGEucmVzdWx0XG4gICAgfSBlbHNlIHtcbiAgICAgIGVycm9yID0gaW52b2NhdGlvbkRhdGEuZ2V0SW52YWxpZENvZGVMZW5ndGhNZXNzYWdlKClcbiAgICB9XG4gIH1cblxuICBjb25zdCBkdXJhdGlvbiA9IHN0b3B3YXRjaC5zdG9wKCkuZHVyYXRpb24oKVxuICBsZXQgc3RhdHVzOiBUZXN0U3RlcFJlc3VsdFN0YXR1c1xuICBsZXQgZGV0YWlscyA9IHt9XG4gIGlmIChyZXN1bHQgPT09ICdza2lwcGVkJykge1xuICAgIHN0YXR1cyA9IFRlc3RTdGVwUmVzdWx0U3RhdHVzLlNLSVBQRURcbiAgfSBlbHNlIGlmIChyZXN1bHQgPT09ICdwZW5kaW5nJykge1xuICAgIHN0YXR1cyA9IFRlc3RTdGVwUmVzdWx0U3RhdHVzLlBFTkRJTkdcbiAgfSBlbHNlIGlmIChkb2VzSGF2ZVZhbHVlKGVycm9yKSkge1xuICAgIHN0YXR1cyA9IFRlc3RTdGVwUmVzdWx0U3RhdHVzLkZBSUxFRFxuICB9IGVsc2Uge1xuICAgIHN0YXR1cyA9IFRlc3RTdGVwUmVzdWx0U3RhdHVzLlBBU1NFRFxuICB9XG5cbiAgaWYgKGRvZXNIYXZlVmFsdWUoZXJyb3IpKSB7XG4gICAgZGV0YWlscyA9IGZvcm1hdEVycm9yKGVycm9yLCBmaWx0ZXJTdGFja1RyYWNlcylcbiAgfVxuXG4gIHJldHVybiB7XG4gICAgcmVzdWx0OiB7XG4gICAgICBkdXJhdGlvbixcbiAgICAgIHN0YXR1cyxcbiAgICAgIC4uLmRldGFpbHMsXG4gICAgfSxcbiAgICBlcnJvcixcbiAgfVxufVxuXG5leHBvcnQgZGVmYXVsdCB7IHJ1biB9XG4iXX0=