@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
3
  exports.getUsage = getUsage;
37
- const messages = __importStar(require("@cucumber/messages"));
4
+ const messages_1 = require("@cucumber/messages");
38
5
  const value_checker_1 = require("../../../value_checker");
39
6
  const gherkin_document_parser_1 = require("../gherkin_document_parser");
40
7
  const pickle_parser_1 = require("../pickle_parser");
@@ -53,9 +20,9 @@ function buildEmptyMapping(stepDefinitions) {
53
20
  return mapping;
54
21
  }
55
22
  const unexecutedStatuses = [
56
- messages.TestStepResultStatus.AMBIGUOUS,
57
- messages.TestStepResultStatus.SKIPPED,
58
- messages.TestStepResultStatus.UNDEFINED,
23
+ messages_1.TestStepResultStatus.AMBIGUOUS,
24
+ messages_1.TestStepResultStatus.SKIPPED,
25
+ messages_1.TestStepResultStatus.UNDEFINED,
59
26
  ];
60
27
  function buildMapping({ stepDefinitions, eventDataCollector, }) {
61
28
  const mapping = buildEmptyMapping(stepDefinitions);
@@ -88,7 +55,7 @@ function normalizeDuration(duration) {
88
55
  if (duration == null) {
89
56
  return Number.MIN_SAFE_INTEGER;
90
57
  }
91
- return messages.TimeConversion.durationToMilliseconds(duration);
58
+ return messages_1.TimeConversion.durationToMilliseconds(duration);
92
59
  }
93
60
  function buildResult(mapping) {
94
61
  return Object.keys(mapping)
@@ -101,12 +68,10 @@ function buildResult(mapping) {
101
68
  return normalizeDuration(b.duration) - normalizeDuration(a.duration);
102
69
  });
103
70
  const result = { matches: sortedMatches, ...rest };
104
- const durations = matches
105
- .filter((m) => m.duration != null)
106
- .map((m) => m.duration);
71
+ const durations = matches.filter((m) => m.duration != null).map((m) => m.duration);
107
72
  if (durations.length > 0) {
108
- const totalMilliseconds = durations.reduce((acc, x) => acc + messages.TimeConversion.durationToMilliseconds(x), 0);
109
- result.meanDuration = messages.TimeConversion.millisecondsToDuration(totalMilliseconds / durations.length);
73
+ const totalMilliseconds = durations.reduce((acc, x) => acc + messages_1.TimeConversion.durationToMilliseconds(x), 0);
74
+ result.meanDuration = messages_1.TimeConversion.millisecondsToDuration(totalMilliseconds / durations.length);
110
75
  }
111
76
  return result;
112
77
  })
@@ -116,4 +81,4 @@ function getUsage({ stepDefinitions, eventDataCollector }) {
116
81
  const mapping = buildMapping({ stepDefinitions, eventDataCollector });
117
82
  return buildResult(mapping);
118
83
  }
119
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvZm9ybWF0dGVyL2hlbHBlcnMvdXNhZ2VfaGVscGVycy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQXVIQSw0QkFHQztBQTFIRCw2REFBOEM7QUFFOUMsMERBQXNEO0FBRXRELHdFQUE4RDtBQUM5RCxvREFBbUQ7QUF3Qm5ELFNBQVMsaUJBQWlCLENBQUMsZUFBaUM7SUFDMUQsTUFBTSxPQUFPLEdBQTJCLEVBQUUsQ0FBQTtJQUMxQyxlQUFlLENBQUMsT0FBTyxDQUFDLENBQUMsY0FBYyxFQUFFLEVBQUU7UUFDekMsT0FBTyxDQUFDLGNBQWMsQ0FBQyxFQUFFLENBQUMsR0FBRztZQUMzQixJQUFJLEVBQUUsY0FBYyxDQUFDLGFBQWEsQ0FBQyxRQUFRLEVBQUU7WUFDN0MsSUFBSSxFQUFFLGNBQWMsQ0FBQyxJQUFJO1lBQ3pCLE9BQU8sRUFBRSxjQUFjLENBQUMsVUFBVSxDQUFDLE1BQU07WUFDekMsV0FBVyxFQUFFLGNBQWMsQ0FBQyxVQUFVLENBQUMsV0FBVyxDQUFDLElBQUk7WUFDdkQsT0FBTyxFQUFFLEVBQUU7WUFDWCxHQUFHLEVBQUUsY0FBYyxDQUFDLEdBQUc7U0FDeEIsQ0FBQTtJQUNILENBQUMsQ0FBQyxDQUFBO0lBQ0YsT0FBTyxPQUFPLENBQUE7QUFDaEIsQ0FBQztBQUVELE1BQU0sa0JBQWtCLEdBQTZDO0lBQ25FLFFBQVEsQ0FBQyxvQkFBb0IsQ0FBQyxTQUFTO0lBQ3ZDLFFBQVEsQ0FBQyxvQkFBb0IsQ0FBQyxPQUFPO0lBQ3JDLFFBQVEsQ0FBQyxvQkFBb0IsQ0FBQyxTQUFTO0NBQ3hDLENBQUE7QUFFRCxTQUFTLFlBQVksQ0FBQyxFQUNwQixlQUFlLEVBQ2Ysa0JBQWtCLEdBQ0Q7SUFDakIsTUFBTSxPQUFPLEdBQUcsaUJBQWlCLENBQUMsZUFBZSxDQUFDLENBQUE7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QUFBO0FBQzdCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBtZXNzYWdlcyBmcm9tICdAY3VjdW1iZXIvbWVzc2FnZXMnXG5pbXBvcnQgdHlwZSBTdGVwRGVmaW5pdGlvbiBmcm9tICcuLi8uLi8uLi9tb2RlbHMvc3RlcF9kZWZpbml0aW9uJ1xuaW1wb3J0IHsgZG9lc0hhdmVWYWx1ZSB9IGZyb20gJy4uLy4uLy4uL3ZhbHVlX2NoZWNrZXInXG5pbXBvcnQgdHlwZSBFdmVudERhdGFDb2xsZWN0b3IgZnJvbSAnLi4vZXZlbnRfZGF0YV9jb2xsZWN0b3InXG5pbXBvcnQgeyBnZXRHaGVya2luU3RlcE1hcCB9IGZyb20gJy4uL2doZXJraW5fZG9jdW1lbnRfcGFyc2VyJ1xuaW1wb3J0IHsgZ2V0UGlja2xlU3RlcE1hcCB9IGZyb20gJy4uL3BpY2tsZV9wYXJzZXInXG5cbmV4cG9ydCBpbnRlcmZhY2UgSVVzYWdlTWF0Y2gge1xuICBkdXJhdGlvbj86IG1lc3NhZ2VzLkR1cmF0aW9uXG4gIGxpbmU6IG51bWJlclxuICB0ZXh0OiBzdHJpbmdcbiAgdXJpOiBzdHJpbmdcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJVXNhZ2Uge1xuICBjb2RlOiBzdHJpbmdcbiAgbGluZTogbnVtYmVyXG4gIG1hdGNoZXM6IElVc2FnZU1hdGNoW11cbiAgbWVhbkR1cmF0aW9uPzogbWVzc2FnZXMuRHVyYXRpb25cbiAgcGF0dGVybjogc3RyaW5nXG4gIHBhdHRlcm5UeXBlOiBzdHJpbmdcbiAgdXJpOiBzdHJpbmdcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJR2V0VXNhZ2VSZXF1ZXN0IHtcbiAgZXZlbnREYXRhQ29sbGVjdG9yOiBFdmVudERhdGFDb2xsZWN0b3JcbiAgc3RlcERlZmluaXRpb25zOiBTdGVwRGVmaW5pdGlvbltdXG59XG5cbmZ1bmN0aW9uIGJ1aWxkRW1wdHlNYXBwaW5nKHN0ZXBEZWZpbml0aW9uczogU3RlcERlZmluaXRpb25bXSk6IFJlY29yZDxzdHJpbmcsIElVc2FnZT4ge1xuICBjb25zdCBtYXBwaW5nOiBSZWNvcmQ8c3RyaW5nLCBJVXNhZ2U+ID0ge31cbiAgc3RlcERlZmluaXRpb25zLmZvckVhY2goKHN0ZXBEZWZpbml0aW9uKSA9PiB7XG4gICAgbWFwcGluZ1tzdGVwRGVmaW5pdGlvbi5pZF0gPSB7XG4gICAgICBjb2RlOiBzdGVwRGVmaW5pdGlvbi51bndyYXBwZWRDb2RlLnRvU3RyaW5nKCksXG4gICAgICBsaW5lOiBzdGVwRGVmaW5pdGlvbi5saW5lLFxuICAgICAgcGF0dGVybjogc3RlcERlZmluaXRpb24uZXhwcmVzc2lvbi5zb3VyY2UsXG4gICAgICBwYXR0ZXJuVHlwZTogc3RlcERlZmluaXRpb24uZXhwcmVzc2lvbi5jb25zdHJ1Y3Rvci5uYW1lLFxuICAgICAgbWF0Y2hlczogW10sXG4gICAgICB1cmk6IHN0ZXBEZWZpbml0aW9uLnVyaSxcbiAgICB9XG4gIH0pXG4gIHJldHVybiBtYXBwaW5nXG59XG5cbmNvbnN0IHVuZXhlY3V0ZWRTdGF0dXNlczogcmVhZG9ubHkgbWVzc2FnZXMuVGVzdFN0ZXBSZXN1bHRTdGF0dXNbXSA9IFtcbiAgbWVzc2FnZXMuVGVzdFN0ZXBSZXN1bHRTdGF0dXMuQU1CSUdVT1VTLFxuICBtZXNzYWdlcy5UZXN0U3RlcFJlc3VsdFN0YXR1cy5TS0lQUEVELFxuICBtZXNzYWdlcy5UZXN0U3RlcFJlc3VsdFN0YXR1cy5VTkRFRklORUQsXG5dXG5cbmZ1bmN0aW9uIGJ1aWxkTWFwcGluZyh7XG4gIHN0ZXBEZWZpbml0aW9ucyxcbiAgZXZlbnREYXRhQ29sbGVjdG9yLFxufTogSUdldFVzYWdlUmVxdWVzdCk6IFJlY29yZDxzdHJpbmcsIElVc2FnZT4ge1xuICBjb25zdCBtYXBwaW5nID0gYnVpbGRFbXB0eU1hcHBpbmcoc3RlcERlZmluaXRpb25zKVxuICBldmVudERhdGFDb2xsZWN0b3IuZ2V0VGVzdENhc2VBdHRlbXB0cygpLmZvckVhY2goKHRlc3RDYXNlQXR0ZW1wdCkgPT4ge1xuICAgIGNvbnN0IHBpY2tsZVN0ZXBNYXAgPSBnZXRQaWNrbGVTdGVwTWFwKHRlc3RDYXNlQXR0ZW1wdC5waWNrbGUpXG4gICAgY29uc3QgZ2hlcmtpblN0ZXBNYXAgPSBnZXRHaGVya2luU3RlcE1hcCh0ZXN0Q2FzZUF0dGVtcHQuZ2hlcmtpbkRvY3VtZW50KVxuICAgIHRlc3RDYXNlQXR0ZW1wdC50ZXN0Q2FzZS50ZXN0U3RlcHMuZm9yRWFjaCgodGVzdFN0ZXApID0+IHtcbiAgICAgIGlmIChkb2VzSGF2ZVZhbHVlKHRlc3RTdGVwLnBpY2tsZVN0ZXBJZCkgJiYgdGVzdFN0ZXAuc3RlcERlZmluaXRpb25JZHMubGVuZ3RoID09PSAxKSB7XG4gICAgICAgIGNvbnN0IHN0ZXBEZWZpbml0aW9uSWQgPSB0ZXN0U3RlcC5zdGVwRGVmaW5pdGlvbklkc1swXVxuICAgICAgICBjb25zdCBwaWNrbGVTdGVwID0gcGlja2xlU3RlcE1hcFt0ZXN0U3RlcC5waWNrbGVTdGVwSWRdXG4gICAgICAgIGNvbnN0IGdoZXJraW5TdGVwID0gZ2hlcmtpblN0ZXBNYXBbcGlja2xlU3RlcC5hc3ROb2RlSWRzWzBdXVxuICAgICAgICBjb25zdCBtYXRjaDogSVVzYWdlTWF0Y2ggPSB7XG4gICAgICAgICAgbGluZTogZ2hlcmtpblN0ZXAubG9jYXRpb24ubGluZSxcbiAgICAgICAgICB0ZXh0OiBwaWNrbGVTdGVwLnRleHQsXG4gICAgICAgICAgdXJpOiB0ZXN0Q2FzZUF0dGVtcHQucGlja2xlLnVyaSxcbiAgICAgICAgfVxuICAgICAgICBjb25zdCB7IGR1cmF0aW9uLCBzdGF0dXMgfSA9IHRlc3RDYXNlQXR0ZW1wdC5zdGVwUmVzdWx0c1t0ZXN0U3RlcC5pZF1cbiAgICAgICAgaWYgKCF1bmV4ZWN1dGVkU3RhdHVzZXMuaW5jbHVkZXMoc3RhdHVzKSAmJiBkb2VzSGF2ZVZhbHVlKGR1cmF0aW9uKSkge1xuICAgICAgICAgIG1hdGNoLmR1cmF0aW9uID0gZHVyYXRpb25cbiAgICAgICAgfVxuICAgICAgICBpZiAoZG9lc0hhdmVWYWx1ZShtYXBwaW5nW3N0ZXBEZWZpbml0aW9uSWRdKSkge1xuICAgICAgICAgIG1hcHBpbmdbc3RlcERlZmluaXRpb25JZF0ubWF0Y2hlcy5wdXNoKG1hdGNoKVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSlcbiAgfSlcbiAgcmV0dXJuIG1hcHBpbmdcbn1cblxuZnVuY3Rpb24gbm9ybWFsaXplRHVyYXRpb24oZHVyYXRpb24/OiBtZXNzYWdlcy5EdXJhdGlvbik6IG51bWJlciB7XG4gIGlmIChkdXJhdGlvbiA9PSBudWxsKSB7XG4gICAgcmV0dXJuIE51bWJlci5NSU5fU0FGRV9JTlRFR0VSXG4gIH1cbiAgcmV0dXJuIG1lc3NhZ2VzLlRpbWVDb252ZXJzaW9uLmR1cmF0aW9uVG9NaWxsaXNlY29uZHMoZHVyYXRpb24pXG59XG5cbmZ1bmN0aW9uIGJ1aWxkUmVzdWx0KG1hcHBpbmc6IFJlY29yZDxzdHJpbmcsIElVc2FnZT4pOiBJVXNhZ2VbXSB7XG4gIHJldHVybiBPYmplY3Qua2V5cyhtYXBwaW5nKVxuICAgIC5tYXAoKHN0ZXBEZWZpbml0aW9uSWQpID0+IHtcbiAgICAgIGNvbnN0IHsgbWF0Y2hlcywgLi4ucmVzdCB9ID0gbWFwcGluZ1tzdGVwRGVmaW5pdGlvbklkXVxuICAgICAgY29uc3Qgc29ydGVkTWF0Y2hlcyA9IG1hdGNoZXMuc29ydCgoYTogSVVzYWdlTWF0Y2gsIGI6IElVc2FnZU1hdGNoKSA9PiB7XG4gICAgICAgIGlmIChhLmR1cmF0aW9uID09PSBiLmR1cmF0aW9uKSB7XG4gICAgICAgICAgcmV0dXJuIGEudGV4dCA8IGIudGV4dCA/IC0xIDogMVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBub3JtYWxpemVEdXJhdGlvbihiLmR1cmF0aW9uKSAtIG5vcm1hbGl6ZUR1cmF0aW9uKGEuZHVyYXRpb24pXG4gICAgICB9KVxuICAgICAgY29uc3QgcmVzdWx0ID0geyBtYXRjaGVzOiBzb3J0ZWRNYXRjaGVzLCAuLi5yZXN0IH1cbiAgICAgIGNvbnN0IGR1cmF0aW9uczogbWVzc2FnZXMuRHVyYXRpb25bXSA9IG1hdGNoZXNcbiAgICAgICAgLmZpbHRlcigobSkgPT4gbS5kdXJhdGlvbiAhPSBudWxsKVxuICAgICAgICAubWFwKChtKSA9PiBtLmR1cmF0aW9uKVxuICAgICAgaWYgKGR1cmF0aW9ucy5sZW5ndGggPiAwKSB7XG4gICAgICAgIGNvbnN0IHRvdGFsTWlsbGlzZWNvbmRzID0gZHVyYXRpb25zLnJlZHVjZShcbiAgICAgICAgICAoYWNjLCB4KSA9PiBhY2MgKyBtZXNzYWdlcy5UaW1lQ29udmVyc2lvbi5kdXJhdGlvblRvTWlsbGlzZWNvbmRzKHgpLFxuICAgICAgICAgIDBcbiAgICAgICAgKVxuICAgICAgICByZXN1bHQubWVhbkR1cmF0aW9uID0gbWVzc2FnZXMuVGltZUNvbnZlcnNpb24ubWlsbGlzZWNvbmRzVG9EdXJhdGlvbihcbiAgICAgICAgICB0b3RhbE1pbGxpc2Vjb25kcyAvIGR1cmF0aW9ucy5sZW5ndGhcbiAgICAgICAgKVxuICAgICAgfVxuICAgICAgcmV0dXJuIHJlc3VsdFxuICAgIH0pXG4gICAgLnNvcnQoXG4gICAgICAoYTogSVVzYWdlLCBiOiBJVXNhZ2UpID0+XG4gICAgICAgIG5vcm1hbGl6ZUR1cmF0aW9uKGIubWVhbkR1cmF0aW9uKSAtIG5vcm1hbGl6ZUR1cmF0aW9uKGEubWVhbkR1cmF0aW9uKVxuICAgIClcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldFVzYWdlKHsgc3RlcERlZmluaXRpb25zLCBldmVudERhdGFDb2xsZWN0b3IgfTogSUdldFVzYWdlUmVxdWVzdCk6IElVc2FnZVtdIHtcbiAgY29uc3QgbWFwcGluZyA9IGJ1aWxkTWFwcGluZyh7IHN0ZXBEZWZpbml0aW9ucywgZXZlbnREYXRhQ29sbGVjdG9yIH0pXG4gIHJldHVybiBidWlsZFJlc3VsdChtYXBwaW5nKVxufVxuIl19
84
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvZm9ybWF0dGVyL2hlbHBlcnMvdXNhZ2VfaGVscGVycy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQXFIQSw0QkFHQztBQXhIRCxpREFBd0Y7QUFFeEYsMERBQXNEO0FBRXRELHdFQUE4RDtBQUM5RCxvREFBbUQ7QUF3Qm5ELFNBQVMsaUJBQWlCLENBQUMsZUFBaUM7SUFDMUQsTUFBTSxPQUFPLEdBQTJCLEVBQUUsQ0FBQTtJQUMxQyxlQUFlLENBQUMsT0FBTyxDQUFDLENBQUMsY0FBYyxFQUFFLEVBQUU7UUFDekMsT0FBTyxDQUFDLGNBQWMsQ0FBQyxFQUFFLENBQUMsR0FBRztZQUMzQixJQUFJLEVBQUUsY0FBYyxDQUFDLGFBQWEsQ0FBQyxRQUFRLEVBQUU7WUFDN0MsSUFBSSxFQUFFLGNBQWMsQ0FBQyxJQUFJO1lBQ3pCLE9BQU8sRUFBRSxjQUFjLENBQUMsVUFBVSxDQUFDLE1BQU07WUFDekMsV0FBVyxFQUFFLGNBQWMsQ0FBQyxVQUFVLENBQUMsV0FBVyxDQUFDLElBQUk7WUFDdkQsT0FBTyxFQUFFLEVBQUU7WUFDWCxHQUFHLEVBQUUsY0FBYyxDQUFDLEdBQUc7U0FDeEIsQ0FBQTtJQUNILENBQUMsQ0FBQyxDQUFBO0lBQ0YsT0FBTyxPQUFPLENBQUE7QUFDaEIsQ0FBQztBQUVELE1BQU0sa0JBQWtCLEdBQW9DO0lBQzFELCtCQUFvQixDQUFDLFNBQVM7SUFDOUIsK0JBQW9CLENBQUMsT0FBTztJQUM1QiwrQkFBb0IsQ0FBQyxTQUFTO0NBQy9CLENBQUE7QUFFRCxTQUFTLFlBQVksQ0FBQyxFQUNwQixlQUFlLEVBQ2Ysa0JBQWtCLEdBQ0Q7SUFDakIsTUFBTSxPQUFPLEdBQUcsaUJBQWlCLENBQUMsZUFBZSxDQUFDLENBQUE7SUFDbEQsa0JBQWtCLENBQUMsbUJBQW1CLEVBQUUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxlQUFlLEVBQUUsRUFB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RUFBRSxhQUFhLEVBQUUsR0FBRyxJQUFJLEVBQUUsQ0FBQTtRQUNsRCxNQUFNLFNBQVMsR0FBZSxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsUUFBUSxJQUFJLElBQUksQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFBO1FBQzlGLElBQUksU0FBUyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUN6QixNQUFNLGlCQUFpQixHQUFHLFNBQVMsQ0FBQyxNQUFNLENBQ3hDLENBQUMsR0FBRyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsR0FBRyxHQUFHLHlCQUFjLENBQUMsc0JBQXNCLENBQUMsQ0FBQyxDQUFDLEVBQzFELENBQUMsQ0FDRixDQUFBO1lBQ0QsTUFBTSxDQUFDLFlBQVksR0FBRyx5QkFBYyxDQUFDLHNCQUFzQixDQUN6RCxpQkFBaUIsR0FBRyxTQUFTLENBQUMsTUFBTSxDQUNyQyxDQUFBO1FBQ0gsQ0FBQztRQUNELE9BQU8sTUFBTSxDQUFBO0lBQ2YsQ0FBQyxDQUFDO1NBQ0QsSUFBSSxDQUNILENBQUMsQ0FBUyxFQUFFLENBQVMsRUFBRSxFQUFFLENBQ3ZCLGlCQUFpQixDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsR0FBRyxpQkFBaUIsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLENBQ3hFLENBQUE7QUFDTCxDQUFDO0FBRUQsU0FBZ0IsUUFBUSxDQUFDLEVBQUUsZUFBZSxFQUFFLGtCQUFrQixFQUFvQjtJQUNoRixNQUFNLE9BQU8sR0FBRyxZQUFZLENBQUMsRUFBRSxlQUFlLEVBQUUsa0JBQWtCLEVBQUUsQ0FBQyxDQUFBO0lBQ3JFLE9BQU8sV0FBVyxDQUFDLE9BQU8sQ0FBQyxDQUFBO0FBQzdCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyB0eXBlIER1cmF0aW9uLCBUZXN0U3RlcFJlc3VsdFN0YXR1cywgVGltZUNvbnZlcnNpb24gfSBmcm9tICdAY3VjdW1iZXIvbWVzc2FnZXMnXG5pbXBvcnQgdHlwZSBTdGVwRGVmaW5pdGlvbiBmcm9tICcuLi8uLi8uLi9tb2RlbHMvc3RlcF9kZWZpbml0aW9uJ1xuaW1wb3J0IHsgZG9lc0hhdmVWYWx1ZSB9IGZyb20gJy4uLy4uLy4uL3ZhbHVlX2NoZWNrZXInXG5pbXBvcnQgdHlwZSBFdmVudERhdGFDb2xsZWN0b3IgZnJvbSAnLi4vZXZlbnRfZGF0YV9jb2xsZWN0b3InXG5pbXBvcnQgeyBnZXRHaGVya2luU3RlcE1hcCB9IGZyb20gJy4uL2doZXJraW5fZG9jdW1lbnRfcGFyc2VyJ1xuaW1wb3J0IHsgZ2V0UGlja2xlU3RlcE1hcCB9IGZyb20gJy4uL3BpY2tsZV9wYXJzZXInXG5cbmV4cG9ydCBpbnRlcmZhY2UgSVVzYWdlTWF0Y2gge1xuICBkdXJhdGlvbj86IER1cmF0aW9uXG4gIGxpbmU6IG51bWJlclxuICB0ZXh0OiBzdHJpbmdcbiAgdXJpOiBzdHJpbmdcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJVXNhZ2Uge1xuICBjb2RlOiBzdHJpbmdcbiAgbGluZTogbnVtYmVyXG4gIG1hdGNoZXM6IElVc2FnZU1hdGNoW11cbiAgbWVhbkR1cmF0aW9uPzogRHVyYXRpb25cbiAgcGF0dGVybjogc3RyaW5nXG4gIHBhdHRlcm5UeXBlOiBzdHJpbmdcbiAgdXJpOiBzdHJpbmdcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJR2V0VXNhZ2VSZXF1ZXN0IHtcbiAgZXZlbnREYXRhQ29sbGVjdG9yOiBFdmVudERhdGFDb2xsZWN0b3JcbiAgc3RlcERlZmluaXRpb25zOiBTdGVwRGVmaW5pdGlvbltdXG59XG5cbmZ1bmN0aW9uIGJ1aWxkRW1wdHlNYXBwaW5nKHN0ZXBEZWZpbml0aW9uczogU3RlcERlZmluaXRpb25bXSk6IFJlY29yZDxzdHJpbmcsIElVc2FnZT4ge1xuICBjb25zdCBtYXBwaW5nOiBSZWNvcmQ8c3RyaW5nLCBJVXNhZ2U+ID0ge31cbiAgc3RlcERlZmluaXRpb25zLmZvckVhY2goKHN0ZXBEZWZpbml0aW9uKSA9PiB7XG4gICAgbWFwcGluZ1tzdGVwRGVmaW5pdGlvbi5pZF0gPSB7XG4gICAgICBjb2RlOiBzdGVwRGVmaW5pdGlvbi51bndyYXBwZWRDb2RlLnRvU3RyaW5nKCksXG4gICAgICBsaW5lOiBzdGVwRGVmaW5pdGlvbi5saW5lLFxuICAgICAgcGF0dGVybjogc3RlcERlZmluaXRpb24uZXhwcmVzc2lvbi5zb3VyY2UsXG4gICAgICBwYXR0ZXJuVHlwZTogc3RlcERlZmluaXRpb24uZXhwcmVzc2lvbi5jb25zdHJ1Y3Rvci5uYW1lLFxuICAgICAgbWF0Y2hlczogW10sXG4gICAgICB1cmk6IHN0ZXBEZWZpbml0aW9uLnVyaSxcbiAgICB9XG4gIH0pXG4gIHJldHVybiBtYXBwaW5nXG59XG5cbmNvbnN0IHVuZXhlY3V0ZWRTdGF0dXNlczogcmVhZG9ubHkgVGVzdFN0ZXBSZXN1bHRTdGF0dXNbXSA9IFtcbiAgVGVzdFN0ZXBSZXN1bHRTdGF0dXMuQU1CSUdVT1VTLFxuICBUZXN0U3RlcFJlc3VsdFN0YXR1cy5TS0lQUEVELFxuICBUZXN0U3RlcFJlc3VsdFN0YXR1cy5VTkRFRklORUQsXG5dXG5cbmZ1bmN0aW9uIGJ1aWxkTWFwcGluZyh7XG4gIHN0ZXBEZWZpbml0aW9ucyxcbiAgZXZlbnREYXRhQ29sbGVjdG9yLFxufTogSUdldFVzYWdlUmVxdWVzdCk6IFJlY29yZDxzdHJpbmcsIElVc2FnZT4ge1xuICBjb25zdCBtYXBwaW5nID0gYnVpbGRFbXB0eU1hcHBpbmcoc3RlcERlZmluaXRpb25zKVxuICBldmVudERhdGFDb2xsZWN0b3IuZ2V0VGVzdENhc2VBdHRlbXB0cygpLmZvckVhY2goKHRlc3RDYXNlQXR0ZW1wdCkgPT4ge1xuICAgIGNvbnN0IHBpY2tsZVN0ZXBNYXAgPSBnZXRQaWNrbGVTdGVwTWFwKHRlc3RDYXNlQXR0ZW1wdC5waWNrbGUpXG4gICAgY29uc3QgZ2hlcmtpblN0ZXBNYXAgPSBnZXRHaGVya2luU3RlcE1hcCh0ZXN0Q2FzZUF0dGVtcHQuZ2hlcmtpbkRvY3VtZW50KVxuICAgIHRlc3RDYXNlQXR0ZW1wdC50ZXN0Q2FzZS50ZXN0U3RlcHMuZm9yRWFjaCgodGVzdFN0ZXApID0+IHtcbiAgICAgIGlmIChkb2VzSGF2ZVZhbHVlKHRlc3RTdGVwLnBpY2tsZVN0ZXBJZCkgJiYgdGVzdFN0ZXAuc3RlcERlZmluaXRpb25JZHMubGVuZ3RoID09PSAxKSB7XG4gICAgICAgIGNvbnN0IHN0ZXBEZWZpbml0aW9uSWQgPSB0ZXN0U3RlcC5zdGVwRGVmaW5pdGlvbklkc1swXVxuICAgICAgICBjb25zdCBwaWNrbGVTdGVwID0gcGlja2xlU3RlcE1hcFt0ZXN0U3RlcC5waWNrbGVTdGVwSWRdXG4gICAgICAgIGNvbnN0IGdoZXJraW5TdGVwID0gZ2hlcmtpblN0ZXBNYXBbcGlja2xlU3RlcC5hc3ROb2RlSWRzWzBdXVxuICAgICAgICBjb25zdCBtYXRjaDogSVVzYWdlTWF0Y2ggPSB7XG4gICAgICAgICAgbGluZTogZ2hlcmtpblN0ZXAubG9jYXRpb24ubGluZSxcbiAgICAgICAgICB0ZXh0OiBwaWNrbGVTdGVwLnRleHQsXG4gICAgICAgICAgdXJpOiB0ZXN0Q2FzZUF0dGVtcHQucGlja2xlLnVyaSxcbiAgICAgICAgfVxuICAgICAgICBjb25zdCB7IGR1cmF0aW9uLCBzdGF0dXMgfSA9IHRlc3RDYXNlQXR0ZW1wdC5zdGVwUmVzdWx0c1t0ZXN0U3RlcC5pZF1cbiAgICAgICAgaWYgKCF1bmV4ZWN1dGVkU3RhdHVzZXMuaW5jbHVkZXMoc3RhdHVzKSAmJiBkb2VzSGF2ZVZhbHVlKGR1cmF0aW9uKSkge1xuICAgICAgICAgIG1hdGNoLmR1cmF0aW9uID0gZHVyYXRpb25cbiAgICAgICAgfVxuICAgICAgICBpZiAoZG9lc0hhdmVWYWx1ZShtYXBwaW5nW3N0ZXBEZWZpbml0aW9uSWRdKSkge1xuICAgICAgICAgIG1hcHBpbmdbc3RlcERlZmluaXRpb25JZF0ubWF0Y2hlcy5wdXNoKG1hdGNoKVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSlcbiAgfSlcbiAgcmV0dXJuIG1hcHBpbmdcbn1cblxuZnVuY3Rpb24gbm9ybWFsaXplRHVyYXRpb24oZHVyYXRpb24/OiBEdXJhdGlvbik6IG51bWJlciB7XG4gIGlmIChkdXJhdGlvbiA9PSBudWxsKSB7XG4gICAgcmV0dXJuIE51bWJlci5NSU5fU0FGRV9JTlRFR0VSXG4gIH1cbiAgcmV0dXJuIFRpbWVDb252ZXJzaW9uLmR1cmF0aW9uVG9NaWxsaXNlY29uZHMoZHVyYXRpb24pXG59XG5cbmZ1bmN0aW9uIGJ1aWxkUmVzdWx0KG1hcHBpbmc6IFJlY29yZDxzdHJpbmcsIElVc2FnZT4pOiBJVXNhZ2VbXSB7XG4gIHJldHVybiBPYmplY3Qua2V5cyhtYXBwaW5nKVxuICAgIC5tYXAoKHN0ZXBEZWZpbml0aW9uSWQpID0+IHtcbiAgICAgIGNvbnN0IHsgbWF0Y2hlcywgLi4ucmVzdCB9ID0gbWFwcGluZ1tzdGVwRGVmaW5pdGlvbklkXVxuICAgICAgY29uc3Qgc29ydGVkTWF0Y2hlcyA9IG1hdGNoZXMuc29ydCgoYTogSVVzYWdlTWF0Y2gsIGI6IElVc2FnZU1hdGNoKSA9PiB7XG4gICAgICAgIGlmIChhLmR1cmF0aW9uID09PSBiLmR1cmF0aW9uKSB7XG4gICAgICAgICAgcmV0dXJuIGEudGV4dCA8IGIudGV4dCA/IC0xIDogMVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBub3JtYWxpemVEdXJhdGlvbihiLmR1cmF0aW9uKSAtIG5vcm1hbGl6ZUR1cmF0aW9uKGEuZHVyYXRpb24pXG4gICAgICB9KVxuICAgICAgY29uc3QgcmVzdWx0ID0geyBtYXRjaGVzOiBzb3J0ZWRNYXRjaGVzLCAuLi5yZXN0IH1cbiAgICAgIGNvbnN0IGR1cmF0aW9uczogRHVyYXRpb25bXSA9IG1hdGNoZXMuZmlsdGVyKChtKSA9PiBtLmR1cmF0aW9uICE9IG51bGwpLm1hcCgobSkgPT4gbS5kdXJhdGlvbilcbiAgICAgIGlmIChkdXJhdGlvbnMubGVuZ3RoID4gMCkge1xuICAgICAgICBjb25zdCB0b3RhbE1pbGxpc2Vjb25kcyA9IGR1cmF0aW9ucy5yZWR1Y2UoXG4gICAgICAgICAgKGFjYywgeCkgPT4gYWNjICsgVGltZUNvbnZlcnNpb24uZHVyYXRpb25Ub01pbGxpc2Vjb25kcyh4KSxcbiAgICAgICAgICAwXG4gICAgICAgIClcbiAgICAgICAgcmVzdWx0Lm1lYW5EdXJhdGlvbiA9IFRpbWVDb252ZXJzaW9uLm1pbGxpc2Vjb25kc1RvRHVyYXRpb24oXG4gICAgICAgICAgdG90YWxNaWxsaXNlY29uZHMgLyBkdXJhdGlvbnMubGVuZ3RoXG4gICAgICAgIClcbiAgICAgIH1cbiAgICAgIHJldHVybiByZXN1bHRcbiAgICB9KVxuICAgIC5zb3J0KFxuICAgICAgKGE6IElVc2FnZSwgYjogSVVzYWdlKSA9PlxuICAgICAgICBub3JtYWxpemVEdXJhdGlvbihiLm1lYW5EdXJhdGlvbikgLSBub3JtYWxpemVEdXJhdGlvbihhLm1lYW5EdXJhdGlvbilcbiAgICApXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRVc2FnZSh7IHN0ZXBEZWZpbml0aW9ucywgZXZlbnREYXRhQ29sbGVjdG9yIH06IElHZXRVc2FnZVJlcXVlc3QpOiBJVXNhZ2VbXSB7XG4gIGNvbnN0IG1hcHBpbmcgPSBidWlsZE1hcHBpbmcoeyBzdGVwRGVmaW5pdGlvbnMsIGV2ZW50RGF0YUNvbGxlY3RvciB9KVxuICByZXR1cm4gYnVpbGRSZXN1bHQobWFwcGluZylcbn1cbiJdfQ==
@@ -1,4 +1,4 @@
1
- import * as messages from '@cucumber/messages';
1
+ import { type Attachment, type Feature, type Location, type Pickle, type PickleDocString, type PickleStep, type PickleStepArgument, type PickleTable, type Rule, type Scenario, type Step, type TestStep, type TestStepResult } from '@cucumber/messages';
2
2
  import Formatter, { type IFormatterOptions } from './';
3
3
  export interface IJsonFeature {
4
4
  description: string;
@@ -35,43 +35,43 @@ export interface IJsonTag {
35
35
  line: number;
36
36
  }
37
37
  interface IBuildJsonFeatureOptions {
38
- feature: messages.Feature;
38
+ feature: Feature;
39
39
  elements: IJsonScenario[];
40
40
  uri: string;
41
41
  }
42
42
  interface IBuildJsonScenarioOptions {
43
- feature: messages.Feature;
44
- gherkinScenarioMap: Record<string, messages.Scenario>;
45
- gherkinExampleRuleMap: Record<string, messages.Rule>;
46
- gherkinScenarioLocationMap: Record<string, messages.Location>;
47
- pickle: messages.Pickle;
43
+ feature: Feature;
44
+ gherkinScenarioMap: Record<string, Scenario>;
45
+ gherkinExampleRuleMap: Record<string, Rule>;
46
+ gherkinScenarioLocationMap: Record<string, Location>;
47
+ pickle: Pickle;
48
48
  steps: IJsonStep[];
49
49
  }
50
50
  interface IBuildJsonStepOptions {
51
51
  isBeforeHook: boolean;
52
- gherkinStepMap: Record<string, messages.Step>;
53
- pickleStepMap: Record<string, messages.PickleStep>;
54
- testStep: messages.TestStep;
55
- testStepAttachments: messages.Attachment[];
56
- testStepResult: messages.TestStepResult;
52
+ gherkinStepMap: Record<string, Step>;
53
+ pickleStepMap: Record<string, PickleStep>;
54
+ testStep: TestStep;
55
+ testStepAttachments: Attachment[];
56
+ testStepResult: TestStepResult;
57
57
  }
58
58
  export default class JsonFormatter extends Formatter {
59
59
  static readonly documentation: string;
60
60
  constructor(options: IFormatterOptions);
61
- convertNameToId(obj: messages.Feature | messages.Pickle): string;
62
- formatDataTable(dataTable: messages.PickleTable): any;
63
- formatDocString(docString: messages.PickleDocString, gherkinStep: messages.Step): any;
64
- formatStepArgument(stepArgument: messages.PickleStepArgument, gherkinStep: messages.Step): any;
61
+ convertNameToId(obj: Feature | Pickle): string;
62
+ formatDataTable(dataTable: PickleTable): any;
63
+ formatDocString(docString: PickleDocString, gherkinStep: Step): any;
64
+ formatStepArgument(stepArgument: PickleStepArgument, gherkinStep: Step): any;
65
65
  onTestRunFinished(): void;
66
66
  getFeatureData({ feature, elements, uri }: IBuildJsonFeatureOptions): IJsonFeature;
67
67
  getScenarioData({ feature, gherkinScenarioLocationMap, gherkinExampleRuleMap, gherkinScenarioMap, pickle, steps, }: IBuildJsonScenarioOptions): IJsonScenario;
68
68
  private formatScenarioId;
69
69
  getStepData({ isBeforeHook, gherkinStepMap, pickleStepMap, testStep, testStepAttachments, testStepResult, }: IBuildJsonStepOptions): IJsonStep;
70
- getFeatureTags(feature: messages.Feature): IJsonTag[];
70
+ getFeatureTags(feature: Feature): IJsonTag[];
71
71
  getScenarioTags({ feature, pickle, gherkinScenarioMap, }: {
72
- feature: messages.Feature;
73
- pickle: messages.Pickle;
74
- gherkinScenarioMap: Record<string, messages.Scenario>;
72
+ feature: Feature;
73
+ pickle: Pickle;
74
+ gherkinScenarioMap: Record<string, Scenario>;
75
75
  }): IJsonTag[];
76
76
  private getScenarioTag;
77
77
  }
@@ -1,42 +1,9 @@
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
- const messages = __importStar(require("@cucumber/messages"));
6
+ const messages_1 = require("@cucumber/messages");
40
7
  const step_arguments_1 = require("../step_arguments");
41
8
  const value_checker_1 = require("../value_checker");
42
9
  const _1 = __importDefault(require("./"));
@@ -190,17 +157,17 @@ class JsonFormatter extends _1.default {
190
157
  }
191
158
  const { message, status } = testStepResult;
192
159
  data.result = {
193
- status: messages.TestStepResultStatus[status].toLowerCase(),
160
+ status: messages_1.TestStepResultStatus[status].toLowerCase(),
194
161
  };
195
162
  if ((0, value_checker_1.doesHaveValue)(testStepResult.duration)) {
196
163
  data.result.duration = (0, duration_helpers_1.durationToNanoseconds)(testStepResult.duration);
197
164
  }
198
- if (status === messages.TestStepResultStatus.FAILED && (0, value_checker_1.doesHaveValue)(message)) {
165
+ if (status === messages_1.TestStepResultStatus.FAILED && (0, value_checker_1.doesHaveValue)(message)) {
199
166
  data.result.error_message = message;
200
167
  }
201
168
  if (testStepAttachments?.length > 0) {
202
169
  data.embeddings = testStepAttachments.map((attachment) => ({
203
- data: attachment.contentEncoding === messages.AttachmentContentEncoding.IDENTITY
170
+ data: attachment.contentEncoding === messages_1.AttachmentContentEncoding.IDENTITY
204
171
  ? Buffer.from(attachment.body).toString('base64')
205
172
  : attachment.body,
206
173
  mime_type: attachment.mediaType,
@@ -234,4 +201,4 @@ class JsonFormatter extends _1.default {
234
201
  }
235
202
  }
236
203
  exports.default = JsonFormatter;
237
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoianNvbl9mb3JtYXR0ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZm9ybWF0dGVyL2pzb25fZm9ybWF0dGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsNkRBQThDO0FBQzlDLHNEQUFxRDtBQUNyRCxvREFBa0U7QUFDbEUsMENBQXNEO0FBQ3RELHVDQUErRTtBQUMvRSxpRUFBa0U7QUFFbEUsK0VBRzBDO0FBRTFDLE1BQU0sRUFBRSxpQkFBaUIsRUFBRSxxQkFBcUIsRUFBRSxHQUFHLCtCQUFxQixDQUFBO0FBRTFFLE1BQU0sRUFBRSxzQkFBc0IsRUFBRSxnQkFBZ0IsRUFBRSxjQUFjLEVBQUUsR0FBRyxzQkFBWSxDQUFBO0FBb0VqRixNQUFxQixhQUFjLFNBQVEsVUFBUztJQUMzQyxNQUFNLENBQVUsYUFBYSxHQUNsQyxrTUFBa00sQ0FBQTtJQUVwTSxZQUFZLE9BQTBCO1FBQ3BDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQTtRQUNkLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxFQUFFLENBQUMsVUFBVSxFQUFFLENBQUMsUUFBMkIsRUFBRSxFQUFFO1lBQ3RFLElBQUksSUFBQSw2QkFBYSxFQUFDLFFBQVEsQ0FBQyxlQUFlLENBQUMsRUFBRSxDQUFDO2dCQUM1QyxJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQTtZQUMxQixDQUFDO1FBQ0gsQ0FBQyxDQUFDLENBQUE7SUFDSixDQUFDO0lBRUQsZUFBZSxDQUFDLEdBQXVDO1FBQ3JELE9BQU8sR0FBRyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLEdBQUcsQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFBO0lBQ2xELENBQUM7SUFFRCxlQUFlLENBQUMsU0FBK0I7UUFDN0MsT0FBTztZQUNMLElBQUksRUFBRSxTQUFTLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsRUFB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LEdBQW1CLEVBQWtCLEVBQUUsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFBO1FBRTdGLE1BQU0sR0FBRyxHQUNQLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQztZQUM5QixRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUM7WUFDL0IsUUFBUSxDQUFDLFFBQVE7aUJBQ2QsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO2lCQUNsQixNQUFNLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQztpQkFDbkIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFBO1FBRXRCLE9BQU87WUFDTCxJQUFJLEVBQUUsT0FBTyxDQUFDLElBQUk7WUFDbEIsSUFBSSxFQUFFLEdBQUcsRUFBRSxRQUFRLEVBQUUsSUFBSTtTQUMxQixDQUFBO0lBQ0gsQ0FBQzs7QUFwUEgsZ0NBcVBDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgbWVzc2FnZXMgZnJvbSAnQGN1Y3VtYmVyL21lc3NhZ2VzJ1xuaW1wb3J0IHsgcGFyc2VTdGVwQXJndW1lbnQgfSBmcm9tICcuLi9zdGVwX2FyZ3VtZW50cydcbmltcG9ydCB7IGRvZXNIYXZlVmFsdWUsIGRvZXNOb3RIYXZlVmFsdWUgfSBmcm9tICcuLi92YWx1ZV9jaGVja2VyJ1xuaW1wb3J0IEZvcm1hdHRlciwgeyB0eXBlIElGb3JtYXR0ZXJPcHRpb25zIH0gZnJvbSAnLi8nXG5pbXBvcnQgeyBmb3JtYXRMb2NhdGlvbiwgR2hlcmtpbkRvY3VtZW50UGFyc2VyLCBQaWNrbGVQYXJzZXIgfSBmcm9tICcuL2hlbHBlcnMnXG5pbXBvcnQgeyBkdXJhdGlvblRvTmFub3NlY29uZHMgfSBmcm9tICcuL2hlbHBlcnMvZHVyYXRpb25faGVscGVycydcbmltcG9ydCB0eXBlIHsgSVRlc3RDYXNlQXR0ZW1wdCB9IGZyb20gJy4vaGVscGVycy9ldmVudF9kYXRhX2NvbGxlY3RvcidcbmltcG9ydCB7XG4gIGdldEdoZXJraW5FeGFtcGxlUnVsZU1hcCxcbiAgZ2V0R2hlcmtpblNjZW5hcmlvTG9jYXRpb25NYXAsXG59IGZyb20gJy4vaGVscGVycy9naGVya2luX2RvY3VtZW50X3BhcnNlcidcblxuY29uc3QgeyBnZXRHaGVya2luU3RlcE1hcCwgZ2V0R2hlcmtpblNjZW5hcmlvTWFwIH0gPSBHaGVya2luRG9jdW1lbnRQYXJzZXJcblxuY29uc3QgeyBnZXRTY2VuYXJpb0Rlc2NyaXB0aW9uLCBnZXRQaWNrbGVTdGVwTWFwLCBnZXRTdGVwS2V5d29yZCB9ID0gUGlja2xlUGFyc2VyXG5cbmV4cG9ydCBpbnRlcmZhY2UgSUpzb25GZWF0dXJlIHtcbiAgZGVzY3JpcHRpb246IHN0cmluZ1xuICBlbGVtZW50czogSUpzb25TY2VuYXJpb1tdXG4gIGlkOiBzdHJpbmdcbiAga2V5d29yZDogc3RyaW5nXG4gIGxpbmU6IG51bWJlclxuICBuYW1lOiBzdHJpbmdcbiAgdGFnczogSUpzb25UYWdbXVxuICB1cmk6IHN0cmluZ1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElKc29uU2NlbmFyaW8ge1xuICBkZXNjcmlwdGlvbjogc3RyaW5nXG4gIGlkOiBzdHJpbmdcbiAga2V5d29yZDogc3RyaW5nXG4gIGxpbmU6IG51bWJlclxuICBuYW1lOiBzdHJpbmdcbiAgc3RlcHM6IElKc29uU3RlcFtdXG4gIHRhZ3M6IElKc29uVGFnW11cbiAgdHlwZTogc3RyaW5nXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSUpzb25TdGVwIHtcbiAgYXJndW1lbnRzPzogYW55IC8vIFRPRE9cbiAgZW1iZWRkaW5ncz86IGFueSAvLyBUT0RPXG4gIGhpZGRlbj86IGJvb2xlYW5cbiAga2V5d29yZD86IHN0cmluZyAvLyBUT0RPLCBub3Qgb3B0aW9uYWxcbiAgbGluZT86IG51bWJlclxuICBtYXRjaD86IGFueSAvLyBUT0RPXG4gIG5hbWU/OiBzdHJpbmdcbiAgcmVzdWx0PzogYW55IC8vIFRPRE9cbn1cblxuZXhwb3J0IGludGVyZmFjZSBJSnNvblRhZyB7XG4gIG5hbWU6IHN0cmluZ1xuICBsaW5lOiBudW1iZXJcbn1cblxuaW50ZXJmYWNlIElCdWlsZEpzb25GZWF0dXJlT3B0aW9ucyB7XG4gIGZlYXR1cmU6IG1lc3NhZ2VzLkZlYXR1cmVcbiAgZWxlbWVudHM6IElKc29uU2NlbmFyaW9bXVxuICB1cmk6IHN0cmluZ1xufVxuXG5pbnRlcmZhY2UgSUJ1aWxkSnNvblNjZW5hcmlvT3B0aW9ucyB7XG4gIGZlYXR1cmU6IG1lc3NhZ2VzLkZlYXR1cmVcbiAgZ2hlcmtpblNjZW5hcmlvTWFwOiBSZWNvcmQ8c3RyaW5nLCBtZXNzYWdlcy5TY2VuYXJpbz5cbiAgZ2hlcmtpbkV4YW1wbGVSdWxlTWFwOiBSZWNvcmQ8c3RyaW5nLCBtZXNzYWdlcy5SdWxlPlxuICBnaGVya2luU2NlbmFyaW9Mb2NhdGlvbk1hcDogUmVjb3JkPHN0cmluZywgbWVzc2FnZXMuTG9jYXRpb24+XG4gIHBpY2tsZTogbWVzc2FnZXMuUGlja2xlXG4gIHN0ZXBzOiBJSnNvblN0ZXBbXVxufVxuXG5pbnRlcmZhY2UgSUJ1aWxkSnNvblN0ZXBPcHRpb25zIHtcbiAgaXNCZWZvcmVIb29rOiBib29sZWFuXG4gIGdoZXJraW5TdGVwTWFwOiBSZWNvcmQ8c3RyaW5nLCBtZXNzYWdlcy5TdGVwPlxuICBwaWNrbGVTdGVwTWFwOiBSZWNvcmQ8c3RyaW5nLCBtZXNzYWdlcy5QaWNrbGVTdGVwPlxuICB0ZXN0U3RlcDogbWVzc2FnZXMuVGVzdFN0ZXBcbiAgdGVzdFN0ZXBBdHRhY2htZW50czogbWVzc2FnZXMuQXR0YWNobWVudFtdXG4gIHRlc3RTdGVwUmVzdWx0OiBtZXNzYWdlcy5UZXN0U3RlcFJlc3VsdFxufVxuXG5pbnRlcmZhY2UgVXJpVG9UZXN0Q2FzZUF0dGVtcHRzTWFwIHtcbiAgW3VyaTogc3RyaW5nXTogSVRlc3RDYXNlQXR0ZW1wdFtdXG59XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIEpzb25Gb3JtYXR0ZXIgZXh0ZW5kcyBGb3JtYXR0ZXIge1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IGRvY3VtZW50YXRpb246IHN0cmluZyA9XG4gICAgJ1ByaW50cyB0aGUgZmVhdHVyZSBhcyBKU09OLiBUaGUgSlNPTiBmb3JtYXQgaXMgaW4gbWFpbnRlbmFuY2UgbW9kZS4gUGxlYXNlIGNvbnNpZGVyIHVzaW5nIHRoZSBtZXNzYWdlIGZvcm1hdHRlciB3aXRoIHRoZSBzdGFuZGFsb25lIGpzb24tZm9ybWF0dGVyIChodHRwczovL2dpdGh1Yi5jb20vY3VjdW1iZXIvanNvbi1mb3JtYXR0ZXIpLidcblxuICBjb25zdHJ1Y3RvcihvcHRpb25zOiBJRm9ybWF0dGVyT3B0aW9ucykge1xuICAgIHN1cGVyKG9wdGlvbnMpXG4gICAgb3B0aW9ucy5ldmVudEJyb2FkY2FzdGVyLm9uKCdlbnZlbG9wZScsIChlbnZlbG9wZTogbWVzc2FnZXMuRW52ZWxvcGUpID0+IHtcbiAgICAgIGlmIChkb2VzSGF2ZVZhbHVlKGVudmVsb3BlLnRlc3RSdW5GaW5pc2hlZCkpIHtcbiAgICAgICAgdGhpcy5vblRlc3RSdW5GaW5pc2hlZCgpXG4gICAgICB9XG4gICAgfSlcbiAgfVxuXG4gIGNvbnZlcnROYW1lVG9JZChvYmo6IG1lc3NhZ2VzLkZlYXR1cmUgfCBtZXNzYWdlcy5QaWNrbGUpOiBzdHJpbmcge1xuICAgIHJldHVybiBvYmoubmFtZS5yZXBsYWNlKC8gL2csICctJykudG9Mb3dlckNhc2UoKVxuICB9XG5cbiAgZm9ybWF0RGF0YVRhYmxlKGRhdGFUYWJsZTogbWVzc2FnZXMuUGlja2xlVGFibGUpOiBhbnkge1xuICAgIHJldHVybiB7XG4gICAgICByb3dzOiBkYXRhVGFibGUucm93cy5tYXAoKHJvdykgPT4gKHtcbiAgICAgICAgY2VsbHM6IHJvdy5jZWxscy5tYXAoKHgpID0+IHgudmFsdWUpLFxuICAgICAgfSkpLFxuICAgIH1cbiAgfVxuXG4gIGZvcm1hdERvY1N0cmluZyhkb2NTdHJpbmc6IG1lc3NhZ2VzLlBpY2tsZURvY1N0cmluZywgZ2hlcmtpblN0ZXA6IG1lc3NhZ2VzLlN0ZXApOiBhbnkge1xuICAgIHJldHVybiB7XG4gICAgICBjb250ZW50OiBkb2NTdHJpbmcuY29udGVudCxcbiAgICAgIGxpbmU6IGdoZXJraW5TdGVwLmRvY1N0cmluZy5sb2NhdGlvbi5saW5lLFxuICAgIH1cbiAgfVxuXG4gIGZvcm1hdFN0ZXBBcmd1bWVudChzdGVwQXJndW1lbnQ6IG1lc3NhZ2VzLlBpY2tsZVN0ZXBBcmd1bWVudCwgZ2hlcmtpblN0ZXA6IG1lc3NhZ2VzLlN0ZXApOiBhbnkge1xuICAgIGlmIChkb2VzTm90SGF2ZVZhbHVlKHN0ZXBBcmd1bWVudCkpIHtcbiAgICAgIHJldHVybiBbXVxuICAgIH1cbiAgICByZXR1cm4gW1xuICAgICAgcGFyc2VTdGVwQXJndW1lbnQ8YW55PihzdGVwQXJndW1lbnQsIHtcbiAgICAgICAgZGF0YVRhYmxlOiAoZGF0YVRhYmxlKSA9PiB0aGlzLmZvcm1hdERhdGFUYWJsZShkYXRhVGFibGUpLFxuICAgICAgICBkb2NTdHJpbmc6IChkb2NTdHJpbmcpID0+IHRoaXMuZm9ybWF0RG9jU3RyaW5nKGRvY1N0cmluZywgZ2hlcmtpblN0ZXApLFxuICAgICAgfSksXG4gICAgXVxuICB9XG5cbiAgb25UZXN0UnVuRmluaXNoZWQoKTogdm9pZCB7XG4gICAgY29uc3QgZ3JvdXBlZFRlc3RDYXNlQXR0ZW1wdHM6IFVyaVRvVGVzdENhc2VBdHRlbXB0c01hcCA9IHt9XG4gICAgdGhpcy5ldmVudERhdGFDb2xsZWN0b3IuZ2V0VGVzdENhc2VBdHRlbXB0cygpLmZvckVhY2goKHRlc3RDYXNlQXR0ZW1wdDogSVRlc3RDYXNlQXR0ZW1wdCkgPT4ge1xuICAgICAgaWYgKCF0ZXN0Q2FzZUF0dGVtcHQud2lsbEJlUmV0cmllZCkge1xuICAgICAgICBjb25zdCB1cmkgPSB0ZXN0Q2FzZUF0dGVtcHQucGlja2xlLnVyaVxuICAgICAgICBpZiAoZG9lc05vdEhhdmVWYWx1ZShncm91cGVkVGVzdENhc2VBdHRlbXB0c1t1cmldKSkge1xuICAgICAgICAgIGdyb3VwZWRUZXN0Q2FzZUF0dGVtcHRzW3VyaV0gPSBbXVxuICAgICAgICB9XG4gICAgICAgIGdyb3VwZWRUZXN0Q2FzZUF0dGVtcHRzW3VyaV0ucHVzaCh0ZXN0Q2FzZUF0dGVtcHQpXG4gICAgICB9XG4gICAgfSlcbiAgICBjb25zdCBmZWF0dXJlcyA9IE9iamVjdC5rZXlzKGdyb3VwZWRUZXN0Q2FzZUF0dGVtcHRzKS5tYXAoKHVyaSkgPT4ge1xuICAgICAgY29uc3QgZ3JvdXAgPSBncm91cGVkVGVzdENhc2VBdHRlbXB0c1t1cmldXG4gICAgICBjb25zdCB7IGdoZXJraW5Eb2N1bWVudCB9ID0gZ3JvdXBbMF1cbiAgICAgIGNvbnN0IGdoZXJraW5TdGVwTWFwID0gZ2V0R2hlcmtpblN0ZXBNYXAoZ2hlcmtpbkRvY3VtZW50KVxuICAgICAgY29uc3QgZ2hlcmtpblNjZW5hcmlvTWFwID0gZ2V0R2hlcmtpblNjZW5hcmlvTWFwKGdoZXJraW5Eb2N1bWVudClcbiAgICAgIGNvbnN0IGdoZXJraW5FeGFtcGxlUnVsZU1hcCA9IGdldEdoZXJraW5FeGFtcGxlUnVsZU1hcChnaGVya2luRG9jdW1lbnQpXG4gICAgICBjb25zdCBnaGVya2luU2NlbmFyaW9Mb2NhdGlvbk1hcCA9IGdldEdoZXJraW5TY2VuYXJpb0xvY2F0aW9uTWFwKGdoZXJraW5Eb2N1bWVudClcbiAgICAgIGNvbnN0IGVsZW1lbnRzID0gZ3JvdXAubWFwKCh0ZXN0Q2FzZUF0dGVtcHQ6IElUZXN0Q2FzZUF0dGVtcHQpID0+IHtcbiAgICAgICAgY29uc3QgeyBwaWNrbGUgfSA9IHRlc3RDYXNlQXR0ZW1wdFxuICAgICAgICBjb25zdCBwaWNrbGVTdGVwTWFwID0gZ2V0UGlja2xlU3RlcE1hcChwaWNrbGUpXG4gICAgICAgIGxldCBpc0JlZm9yZUhvb2sgPSB0cnVlXG4gICAgICAgIGNvbnN0IHN0ZXBzID0gdGVzdENhc2VBdHRlbXB0LnRlc3RDYXNlLnRlc3RTdGVwcy5tYXAoKHRlc3RTdGVwKSA9PiB7XG4gICAgICAgICAgaXNCZWZvcmVIb29rID0gaXNCZWZvcmVIb29rICYmICFkb2VzSGF2ZVZhbHVlKHRlc3RTdGVwLnBpY2tsZVN0ZXBJZClcbiAgICAgICAgICByZXR1cm4gdGhpcy5nZXRTdGVwRGF0YSh7XG4gICAgICAgICAgICBpc0JlZm9yZUhvb2ssXG4gICAgICAgICAgICBnaGVya2luU3RlcE1hcCxcbiAgICAgICAgICAgIHBpY2tsZVN0ZXBNYXAsXG4gICAgICAgICAgICB0ZXN0U3RlcCxcbiAgICAgICAgICAgIHRlc3RTdGVwQXR0YWNobWVudHM6IHRlc3RDYXNlQXR0ZW1wdC5zdGVwQXR0YWNobWVudHNbdGVzdFN0ZXAuaWRdLFxuICAgICAgICAgICAgdGVzdFN0ZXBSZXN1bHQ6IHRlc3RDYXNlQXR0ZW1wdC5zdGVwUmVzdWx0c1t0ZXN0U3RlcC5pZF0sXG4gICAgICAgICAgfSlcbiAgICAgICAgfSlcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0U2NlbmFyaW9EYXRhKHtcbiAgICAgICAgICBmZWF0dXJlOiBnaGVya2luRG9jdW1lbnQuZmVhdHVyZSxcbiAgICAgICAgICBnaGVya2luU2NlbmFyaW9Mb2NhdGlvbk1hcCxcbiAgICAgICAgICBnaGVya2luRXhhbXBsZVJ1bGVNYXAsXG4gICAgICAgICAgZ2hlcmtpblNjZW5hcmlvTWFwLFxuICAgICAgICAgIHBpY2tsZSxcbiAgICAgICAgICBzdGVwcyxcbiAgICAgICAgfSlcbiAgICAgIH0pXG4gICAgICByZXR1cm4gdGhpcy5nZXRGZWF0dXJlRGF0YSh7XG4gICAgICAgIGZlYXR1cmU6IGdoZXJraW5Eb2N1bWVudC5mZWF0dXJlLFxuICAgICAgICBlbGVtZW50cyxcbiAgICAgICAgdXJpLFxuICAgICAgfSlcbiAgICB9KVxuICAgIHRoaXMubG9nKEpTT04uc3RyaW5naWZ5KGZlYXR1cmVzLCBudWxsLCAyKSlcbiAgfVxuXG4gIGdldEZlYXR1cmVEYXRhKHsgZmVhdHVyZSwgZWxlbWVudHMsIHVyaSB9OiBJQnVpbGRKc29uRmVhdHVyZU9wdGlvbnMpOiBJSnNvbkZlYXR1cmUge1xuICAgIHJldHVybiB7XG4gICAgICBkZXNjcmlwdGlvbjogZmVhdHVyZS5kZXNjcmlwdGlvbixcbiAgICAgIGVsZW1lbnRzLFxuICAgICAgaWQ6IHRoaXMuY29udmVydE5hbWVUb0lkKGZlYXR1cmUpLFxuICAgICAgbGluZTogZmVhdHVyZS5sb2NhdGlvbi5saW5lLFxuICAgICAga2V5d29yZDogZmVhdHVyZS5rZXl3b3JkLFxuICAgICAgbmFtZTogZmVhdHVyZS5uYW1lLFxuICAgICAgdGFnczogdGhpcy5nZXRGZWF0dXJlVGFncyhmZWF0dXJlKSxcbiAgICAgIHVyaSxcbiAgICB9XG4gIH1cblxuICBnZXRTY2VuYXJpb0RhdGEoe1xuICAgIGZlYXR1cmUsXG4gICAgZ2hlcmtpblNjZW5hcmlvTG9jYXRpb25NYXAsXG4gICAgZ2hlcmtpbkV4YW1wbGVSdWxlTWFwLFxuICAgIGdoZXJraW5TY2VuYXJpb01hcCxcbiAgICBwaWNrbGUsXG4gICAgc3RlcHMsXG4gIH06IElCdWlsZEpzb25TY2VuYXJpb09wdGlvbnMpOiBJSnNvblNjZW5hcmlvIHtcbiAgICBjb25zdCBkZXNjcmlwdGlvbiA9IGdldFNjZW5hcmlvRGVzY3JpcHRpb24oe1xuICAgICAgcGlja2xlLFxuICAgICAgZ2hlcmtpblNjZW5hcmlvTWFwLFxuICAgIH0pXG4gICAgcmV0dXJuIHtcbiAgICAgIGRlc2NyaXB0aW9uLFxuICAgICAgaWQ6IHRoaXMuZm9ybWF0U2NlbmFyaW9JZCh7IGZlYXR1cmUsIHBpY2tsZSwgZ2hlcmtpbkV4YW1wbGVSdWxlTWFwIH0pLFxuICAgICAga2V5d29yZDogZ2hlcmtpblNjZW5hcmlvTWFwW3BpY2tsZS5hc3ROb2RlSWRzWzBdXS5rZXl3b3JkLFxuICAgICAgbGluZTogZ2hlcmtpblNjZW5hcmlvTG9jYXRpb25NYXBbcGlja2xlLmFzdE5vZGVJZHNbcGlja2xlLmFzdE5vZGVJZHMubGVuZ3RoIC0gMV1dLmxpbmUsXG4gICAgICBuYW1lOiBwaWNrbGUubmFtZSxcbiAgICAgIHN0ZXBzLFxuICAgICAgdGFnczogdGhpcy5nZXRTY2VuYXJpb1RhZ3MoeyBmZWF0dXJlLCBwaWNrbGUsIGdoZXJraW5TY2VuYXJpb01hcCB9KSxcbiAgICAgIHR5cGU6ICdzY2VuYXJpbycsXG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBmb3JtYXRTY2VuYXJpb0lkKHtcbiAgICBmZWF0dXJlLFxuICAgIHBpY2tsZSxcbiAgICBnaGVya2luRXhhbXBsZVJ1bGVNYXAsXG4gIH06IHtcbiAgICBmZWF0dXJlOiBtZXNzYWdlcy5GZWF0dXJlXG4gICAgcGlja2xlOiBtZXNzYWdlcy5QaWNrbGVcbiAgICBnaGVya2luRXhhbXBsZVJ1bGVNYXA6IFJlY29yZDxzdHJpbmcsIG1lc3NhZ2VzLlJ1bGU+XG4gIH0pOiBzdHJpbmcge1xuICAgIGxldCBwYXJ0czogYW55W11cbiAgICBjb25zdCBydWxlID0gZ2hlcmtpbkV4YW1wbGVSdWxlTWFwW3BpY2tsZS5hc3ROb2RlSWRzWzBdXVxuICAgIGlmIChkb2VzSGF2ZVZhbHVlKHJ1bGUpKSB7XG4gICAgICBwYXJ0cyA9IFtmZWF0dXJlLCBydWxlLCBwaWNrbGVdXG4gICAgfSBlbHNlIHtcbiAgICAgIHBhcnRzID0gW2ZlYXR1cmUsIHBpY2tsZV1cbiAgICB9XG4gICAgcmV0dXJuIHBhcnRzLm1hcCgocGFydCkgPT4gdGhpcy5jb252ZXJ0TmFtZVRvSWQocGFydCkpLmpvaW4oJzsnKVxuICB9XG5cbiAgZ2V0U3RlcERhdGEoe1xuICAgIGlzQmVmb3JlSG9vayxcbiAgICBnaGVya2luU3RlcE1hcCxcbiAgICBwaWNrbGVTdGVwTWFwLFxuICAgIHRlc3RTdGVwLFxuICAgIHRlc3RTdGVwQXR0YWNobWVudHMsXG4gICAgdGVzdFN0ZXBSZXN1bHQsXG4gIH06IElCdWlsZEpzb25TdGVwT3B0aW9ucyk6IElKc29uU3RlcCB7XG4gICAgY29uc3QgZGF0YTogSUpzb25TdGVwID0ge31cbiAgICBpZiAoZG9lc0hhdmVWYWx1ZSh0ZXN0U3RlcC5waWNrbGVTdGVwSWQpKSB7XG4gICAgICBjb25zdCBwaWNrbGVTdGVwID0gcGlja2xlU3RlcE1hcFt0ZXN0U3RlcC5waWNrbGVTdGVwSWRdXG4gICAgICBkYXRhLmFyZ3VtZW50cyA9IHRoaXMuZm9ybWF0U3RlcEFyZ3VtZW50KFxuICAgICAgICBwaWNrbGVTdGVwLmFyZ3VtZW50LFxuICAgICAgICBnaGVya2luU3RlcE1hcFtwaWNrbGVTdGVwLmFzdE5vZGVJZHNbMF1dXG4gICAgICApXG4gICAgICBkYXRhLmtleXdvcmQgPSBnZXRTdGVwS2V5d29yZCh7IHBpY2tsZVN0ZXAsIGdoZXJraW5TdGVwTWFwIH0pXG4gICAgICBkYXRhLmxpbmUgPSBnaGVya2luU3RlcE1hcFtwaWNrbGVTdGVwLmFzdE5vZGVJZHNbMF1dLmxvY2F0aW9uLmxpbmVcbiAgICAgIGRhdGEubmFtZSA9IHBpY2tsZVN0ZXAudGV4dFxuICAgIH0gZWxzZSB7XG4gICAgICBkYXRhLmtleXdvcmQgPSBpc0JlZm9yZUhvb2sgPyAnQmVmb3JlJyA6ICdBZnRlcidcbiAgICAgIGRhdGEuaGlkZGVuID0gdHJ1ZVxuICAgIH1cbiAgICBpZiAoZG9lc0hhdmVWYWx1ZSh0ZXN0U3RlcC5zdGVwRGVmaW5pdGlvbklkcykgJiYgdGVzdFN0ZXAuc3RlcERlZmluaXRpb25JZHMubGVuZ3RoID09PSAxKSB7XG4gICAgICBjb25zdCBzdGVwRGVmaW5pdGlvbiA9IHRoaXMuc3VwcG9ydENvZGVMaWJyYXJ5LnN0ZXBEZWZpbml0aW9ucy5maW5kKFxuICAgICAgICAocykgPT4gcy5pZCA9PT0gdGVzdFN0ZXAuc3RlcERlZmluaXRpb25JZHNbMF1cbiAgICAgIClcbiAgICAgIGRhdGEubWF0Y2ggPSB7IGxvY2F0aW9uOiBmb3JtYXRMb2NhdGlvbihzdGVwRGVmaW5pdGlvbikgfVxuICAgIH1cbiAgICBjb25zdCB7IG1lc3NhZ2UsIHN0YXR1cyB9ID0gdGVzdFN0ZXBSZXN1bHRcbiAgICBkYXRhLnJlc3VsdCA9IHtcbiAgICAgIHN0YXR1czogbWVzc2FnZXMuVGVzdFN0ZXBSZXN1bHRTdGF0dXNbc3RhdHVzXS50b0xvd2VyQ2FzZSgpLFxuICAgIH1cbiAgICBpZiAoZG9lc0hhdmVWYWx1ZSh0ZXN0U3RlcFJlc3VsdC5kdXJhdGlvbikpIHtcbiAgICAgIGRhdGEucmVzdWx0LmR1cmF0aW9uID0gZHVyYXRpb25Ub05hbm9zZWNvbmRzKHRlc3RTdGVwUmVzdWx0LmR1cmF0aW9uKVxuICAgIH1cbiAgICBpZiAoc3RhdHVzID09PSBtZXNzYWdlcy5UZXN0U3RlcFJlc3VsdFN0YXR1cy5GQUlMRUQgJiYgZG9lc0hhdmVWYWx1ZShtZXNzYWdlKSkge1xuICAgICAgZGF0YS5yZXN1bHQuZXJyb3JfbWVzc2FnZSA9IG1lc3NhZ2VcbiAgICB9XG4gICAgaWYgKHRlc3RTdGVwQXR0YWNobWVudHM/Lmxlbmd0aCA+IDApIHtcbiAgICAgIGRhdGEuZW1iZWRkaW5ncyA9IHRlc3RTdGVwQXR0YWNobWVudHMubWFwKChhdHRhY2htZW50KSA9PiAoe1xuICAgICAgICBkYXRhOlxuICAgICAgICAgIGF0dGFjaG1lbnQuY29udGVudEVuY29kaW5nID09PSBtZXNzYWdlcy5BdHRhY2htZW50Q29udGVudEVuY29kaW5nLklERU5USVRZXG4gICAgICAgICAgICA/IEJ1ZmZlci5mcm9tKGF0dGFjaG1lbnQuYm9keSkudG9TdHJpbmcoJ2Jhc2U2NCcpXG4gICAgICAgICAgICA6IGF0dGFjaG1lbnQuYm9keSxcbiAgICAgICAgbWltZV90eXBlOiBhdHRhY2htZW50Lm1lZGlhVHlwZSxcbiAgICAgIH0pKVxuICAgIH1cbiAgICByZXR1cm4gZGF0YVxuICB9XG5cbiAgZ2V0RmVhdHVyZVRhZ3MoZmVhdHVyZTogbWVzc2FnZXMuRmVhdHVyZSk6IElKc29uVGFnW10ge1xuICAgIHJldHVybiBmZWF0dXJlLnRhZ3MubWFwKCh0YWdEYXRhKSA9PiAoe1xuICAgICAgbmFtZTogdGFnRGF0YS5uYW1lLFxuICAgICAgbGluZTogdGFnRGF0YS5sb2NhdGlvbi5saW5lLFxuICAgIH0pKVxuICB9XG5cbiAgZ2V0U2NlbmFyaW9UYWdzKHtcbiAgICBmZWF0dXJlLFxuICAgIHBpY2tsZSxcbiAgICBnaGVya2luU2NlbmFyaW9NYXAsXG4gIH06IHtcbiAgICBmZWF0dXJlOiBtZXNzYWdlcy5GZWF0dXJlXG4gICAgcGlja2xlOiBtZXNzYWdlcy5QaWNrbGVcbiAgICBnaGVya2luU2NlbmFyaW9NYXA6IFJlY29yZDxzdHJpbmcsIG1lc3NhZ2VzLlNjZW5hcmlvPlxuICB9KTogSUpzb25UYWdbXSB7XG4gICAgY29uc3Qgc2NlbmFyaW8gPSBnaGVya2luU2NlbmFyaW9NYXBbcGlja2xlLmFzdE5vZGVJZHNbMF1dXG5cbiAgICByZXR1cm4gcGlja2xlLnRhZ3MubWFwKFxuICAgICAgKHRhZ0RhdGE6IG1lc3NhZ2VzLlBpY2tsZVRhZyk6IElKc29uVGFnID0+IHRoaXMuZ2V0U2NlbmFyaW9UYWcodGFnRGF0YSwgZmVhdHVyZSwgc2NlbmFyaW8pXG4gICAgKVxuICB9XG5cbiAgcHJpdmF0ZSBnZXRTY2VuYXJpb1RhZyhcbiAgICB0YWdEYXRhOiBtZXNzYWdlcy5QaWNrbGVUYWcsXG4gICAgZmVhdHVyZTogbWVzc2FnZXMuRmVhdHVyZSxcbiAgICBzY2VuYXJpbzogbWVzc2FnZXMuU2NlbmFyaW9cbiAgKTogSUpzb25UYWcge1xuICAgIGNvbnN0IGJ5QXN0Tm9kZUlkID0gKHRhZzogbWVzc2FnZXMuVGFnKTogYm9vbGVhbiA9PiB0YWcuaWQgPT09IHRhZ0RhdGEuYXN0Tm9kZUlkXG4gICAgY29uc3QgZmxhdHRlbiA9IChhY2M6IG1lc3NhZ2VzLlRhZ1tdLCB2YWw6IG1lc3NhZ2VzLlRhZ1tdKTogbWVzc2FnZXMuVGFnW10gPT4gYWNjLmNvbmNhdCh2YWwpXG5cbiAgICBjb25zdCB0YWcgPVxuICAgICAgZmVhdHVyZS50YWdzLmZpbmQoYnlBc3ROb2RlSWQpIHx8XG4gICAgICBzY2VuYXJpby50YWdzLmZpbmQoYnlBc3ROb2RlSWQpIHx8XG4gICAgICBzY2VuYXJpby5leGFtcGxlc1xuICAgICAgICAubWFwKChlKSA9PiBlLnRhZ3MpXG4gICAgICAgIC5yZWR1Y2UoZmxhdHRlbiwgW10pXG4gICAgICAgIC5maW5kKGJ5QXN0Tm9kZUlkKVxuXG4gICAgcmV0dXJuIHtcbiAgICAgIG5hbWU6IHRhZ0RhdGEubmFtZSxcbiAgICAgIGxpbmU6IHRhZz8ubG9jYXRpb24/LmxpbmUsXG4gICAgfVxuICB9XG59XG4iXX0=
204
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoianNvbl9mb3JtYXR0ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZm9ybWF0dGVyL2pzb25fZm9ybWF0dGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsaURBbUIyQjtBQUMzQixzREFBcUQ7QUFDckQsb0RBQWtFO0FBQ2xFLDBDQUFzRDtBQUN0RCx1Q0FBK0U7QUFDL0UsaUVBQWtFO0FBRWxFLCtFQUcwQztBQUUxQyxNQUFNLEVBQUUsaUJBQWlCLEVBQUUscUJBQXFCLEVBQUUsR0FBRywrQkFBcUIsQ0FBQTtBQUUxRSxNQUFNLEVBQUUsc0JBQXNCLEVBQUUsZ0JBQWdCLEVBQUUsY0FBYyxFQUFFLEdBQUcsc0JBQVksQ0FBQTtBQW9FakYsTUFBcUIsYUFBYyxTQUFRLFVBQVM7SUFDM0MsTUFBTSxDQUFVLGFBQWEsR0FDbEMsa01BQWtNLENBQUE7SUFFcE0sWUFBWSxPQUEwQjtRQUNwQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUE7UUFDZCxPQUFPLENBQUMsZ0JBQWdCLENBQUMsRUFBRSxDQUFDLFVBQVUsRUFBRSxDQUFDLFFBQWtCLEVBQUUsRUFBRTtZQUM3RCxJQUFJLElBQUEsNkJBQWEsRUFBQyxRQUFRLENBQUMsZUFBZSxDQUFDLEVBQUUsQ0FBQztnQkFDNUMsSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUE7WUFDMUIsQ0FBQztRQUNILENBQUMsQ0FBQyxDQUFBO0lBQ0osQ0FBQztJQUVELGVBQWUsQ0FBQyxHQUFxQjtRQUNuQyxPQUFPLEdBQUcsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxHQUFHLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQTtJQUNsRCxDQUFDO0lBRUQsZUFBZSxDQUFDLFNBQXNCO1FBQ3BDLE9BQU87WUFDTCxJQUFJLEVBQUUsU0FBUyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLENBQUM7Z0JBQ2pDLEtBQUssRUFB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R0FBRyxHQUNQLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQztZQUM5QixRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUM7WUFDL0IsUUFBUSxDQUFDLFFBQVE7aUJBQ2QsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO2lCQUNsQixNQUFNLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQztpQkFDbkIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFBO1FBRXRCLE9BQU87WUFDTCxJQUFJLEVBQUUsT0FBTyxDQUFDLElBQUk7WUFDbEIsSUFBSSxFQUFFLEdBQUcsRUFBRSxRQUFRLEVBQUUsSUFBSTtTQUMxQixDQUFBO0lBQ0gsQ0FBQzs7QUFoUEgsZ0NBaVBDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgdHlwZSBBdHRhY2htZW50LFxuICBBdHRhY2htZW50Q29udGVudEVuY29kaW5nLFxuICB0eXBlIEVudmVsb3BlLFxuICB0eXBlIEZlYXR1cmUsXG4gIHR5cGUgTG9jYXRpb24sXG4gIHR5cGUgUGlja2xlLFxuICB0eXBlIFBpY2tsZURvY1N0cmluZyxcbiAgdHlwZSBQaWNrbGVTdGVwLFxuICB0eXBlIFBpY2tsZVN0ZXBBcmd1bWVudCxcbiAgdHlwZSBQaWNrbGVUYWJsZSxcbiAgdHlwZSBQaWNrbGVUYWcsXG4gIHR5cGUgUnVsZSxcbiAgdHlwZSBTY2VuYXJpbyxcbiAgdHlwZSBTdGVwLFxuICB0eXBlIFRhZyxcbiAgdHlwZSBUZXN0U3RlcCxcbiAgdHlwZSBUZXN0U3RlcFJlc3VsdCxcbiAgVGVzdFN0ZXBSZXN1bHRTdGF0dXMsXG59IGZyb20gJ0BjdWN1bWJlci9tZXNzYWdlcydcbmltcG9ydCB7IHBhcnNlU3RlcEFyZ3VtZW50IH0gZnJvbSAnLi4vc3RlcF9hcmd1bWVudHMnXG5pbXBvcnQgeyBkb2VzSGF2ZVZhbHVlLCBkb2VzTm90SGF2ZVZhbHVlIH0gZnJvbSAnLi4vdmFsdWVfY2hlY2tlcidcbmltcG9ydCBGb3JtYXR0ZXIsIHsgdHlwZSBJRm9ybWF0dGVyT3B0aW9ucyB9IGZyb20gJy4vJ1xuaW1wb3J0IHsgZm9ybWF0TG9jYXRpb24sIEdoZXJraW5Eb2N1bWVudFBhcnNlciwgUGlja2xlUGFyc2VyIH0gZnJvbSAnLi9oZWxwZXJzJ1xuaW1wb3J0IHsgZHVyYXRpb25Ub05hbm9zZWNvbmRzIH0gZnJvbSAnLi9oZWxwZXJzL2R1cmF0aW9uX2hlbHBlcnMnXG5pbXBvcnQgdHlwZSB7IElUZXN0Q2FzZUF0dGVtcHQgfSBmcm9tICcuL2hlbHBlcnMvZXZlbnRfZGF0YV9jb2xsZWN0b3InXG5pbXBvcnQge1xuICBnZXRHaGVya2luRXhhbXBsZVJ1bGVNYXAsXG4gIGdldEdoZXJraW5TY2VuYXJpb0xvY2F0aW9uTWFwLFxufSBmcm9tICcuL2hlbHBlcnMvZ2hlcmtpbl9kb2N1bWVudF9wYXJzZXInXG5cbmNvbnN0IHsgZ2V0R2hlcmtpblN0ZXBNYXAsIGdldEdoZXJraW5TY2VuYXJpb01hcCB9ID0gR2hlcmtpbkRvY3VtZW50UGFyc2VyXG5cbmNvbnN0IHsgZ2V0U2NlbmFyaW9EZXNjcmlwdGlvbiwgZ2V0UGlja2xlU3RlcE1hcCwgZ2V0U3RlcEtleXdvcmQgfSA9IFBpY2tsZVBhcnNlclxuXG5leHBvcnQgaW50ZXJmYWNlIElKc29uRmVhdHVyZSB7XG4gIGRlc2NyaXB0aW9uOiBzdHJpbmdcbiAgZWxlbWVudHM6IElKc29uU2NlbmFyaW9bXVxuICBpZDogc3RyaW5nXG4gIGtleXdvcmQ6IHN0cmluZ1xuICBsaW5lOiBudW1iZXJcbiAgbmFtZTogc3RyaW5nXG4gIHRhZ3M6IElKc29uVGFnW11cbiAgdXJpOiBzdHJpbmdcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJSnNvblNjZW5hcmlvIHtcbiAgZGVzY3JpcHRpb246IHN0cmluZ1xuICBpZDogc3RyaW5nXG4gIGtleXdvcmQ6IHN0cmluZ1xuICBsaW5lOiBudW1iZXJcbiAgbmFtZTogc3RyaW5nXG4gIHN0ZXBzOiBJSnNvblN0ZXBbXVxuICB0YWdzOiBJSnNvblRhZ1tdXG4gIHR5cGU6IHN0cmluZ1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElKc29uU3RlcCB7XG4gIGFyZ3VtZW50cz86IGFueSAvLyBUT0RPXG4gIGVtYmVkZGluZ3M/OiBhbnkgLy8gVE9ET1xuICBoaWRkZW4/OiBib29sZWFuXG4gIGtleXdvcmQ/OiBzdHJpbmcgLy8gVE9ETywgbm90IG9wdGlvbmFsXG4gIGxpbmU/OiBudW1iZXJcbiAgbWF0Y2g/OiBhbnkgLy8gVE9ET1xuICBuYW1lPzogc3RyaW5nXG4gIHJlc3VsdD86IGFueSAvLyBUT0RPXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSUpzb25UYWcge1xuICBuYW1lOiBzdHJpbmdcbiAgbGluZTogbnVtYmVyXG59XG5cbmludGVyZmFjZSBJQnVpbGRKc29uRmVhdHVyZU9wdGlvbnMge1xuICBmZWF0dXJlOiBGZWF0dXJlXG4gIGVsZW1lbnRzOiBJSnNvblNjZW5hcmlvW11cbiAgdXJpOiBzdHJpbmdcbn1cblxuaW50ZXJmYWNlIElCdWlsZEpzb25TY2VuYXJpb09wdGlvbnMge1xuICBmZWF0dXJlOiBGZWF0dXJlXG4gIGdoZXJraW5TY2VuYXJpb01hcDogUmVjb3JkPHN0cmluZywgU2NlbmFyaW8+XG4gIGdoZXJraW5FeGFtcGxlUnVsZU1hcDogUmVjb3JkPHN0cmluZywgUnVsZT5cbiAgZ2hlcmtpblNjZW5hcmlvTG9jYXRpb25NYXA6IFJlY29yZDxzdHJpbmcsIExvY2F0aW9uPlxuICBwaWNrbGU6IFBpY2tsZVxuICBzdGVwczogSUpzb25TdGVwW11cbn1cblxuaW50ZXJmYWNlIElCdWlsZEpzb25TdGVwT3B0aW9ucyB7XG4gIGlzQmVmb3JlSG9vazogYm9vbGVhblxuICBnaGVya2luU3RlcE1hcDogUmVjb3JkPHN0cmluZywgU3RlcD5cbiAgcGlja2xlU3RlcE1hcDogUmVjb3JkPHN0cmluZywgUGlja2xlU3RlcD5cbiAgdGVzdFN0ZXA6IFRlc3RTdGVwXG4gIHRlc3RTdGVwQXR0YWNobWVudHM6IEF0dGFjaG1lbnRbXVxuICB0ZXN0U3RlcFJlc3VsdDogVGVzdFN0ZXBSZXN1bHRcbn1cblxuaW50ZXJmYWNlIFVyaVRvVGVzdENhc2VBdHRlbXB0c01hcCB7XG4gIFt1cmk6IHN0cmluZ106IElUZXN0Q2FzZUF0dGVtcHRbXVxufVxuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBKc29uRm9ybWF0dGVyIGV4dGVuZHMgRm9ybWF0dGVyIHtcbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBkb2N1bWVudGF0aW9uOiBzdHJpbmcgPVxuICAgICdQcmludHMgdGhlIGZlYXR1cmUgYXMgSlNPTi4gVGhlIEpTT04gZm9ybWF0IGlzIGluIG1haW50ZW5hbmNlIG1vZGUuIFBsZWFzZSBjb25zaWRlciB1c2luZyB0aGUgbWVzc2FnZSBmb3JtYXR0ZXIgd2l0aCB0aGUgc3RhbmRhbG9uZSBqc29uLWZvcm1hdHRlciAoaHR0cHM6Ly9naXRodWIuY29tL2N1Y3VtYmVyL2pzb24tZm9ybWF0dGVyKS4nXG5cbiAgY29uc3RydWN0b3Iob3B0aW9uczogSUZvcm1hdHRlck9wdGlvbnMpIHtcbiAgICBzdXBlcihvcHRpb25zKVxuICAgIG9wdGlvbnMuZXZlbnRCcm9hZGNhc3Rlci5vbignZW52ZWxvcGUnLCAoZW52ZWxvcGU6IEVudmVsb3BlKSA9PiB7XG4gICAgICBpZiAoZG9lc0hhdmVWYWx1ZShlbnZlbG9wZS50ZXN0UnVuRmluaXNoZWQpKSB7XG4gICAgICAgIHRoaXMub25UZXN0UnVuRmluaXNoZWQoKVxuICAgICAgfVxuICAgIH0pXG4gIH1cblxuICBjb252ZXJ0TmFtZVRvSWQob2JqOiBGZWF0dXJlIHwgUGlja2xlKTogc3RyaW5nIHtcbiAgICByZXR1cm4gb2JqLm5hbWUucmVwbGFjZSgvIC9nLCAnLScpLnRvTG93ZXJDYXNlKClcbiAgfVxuXG4gIGZvcm1hdERhdGFUYWJsZShkYXRhVGFibGU6IFBpY2tsZVRhYmxlKTogYW55IHtcbiAgICByZXR1cm4ge1xuICAgICAgcm93czogZGF0YVRhYmxlLnJvd3MubWFwKChyb3cpID0+ICh7XG4gICAgICAgIGNlbGxzOiByb3cuY2VsbHMubWFwKCh4KSA9PiB4LnZhbHVlKSxcbiAgICAgIH0pKSxcbiAgICB9XG4gIH1cblxuICBmb3JtYXREb2NTdHJpbmcoZG9jU3RyaW5nOiBQaWNrbGVEb2NTdHJpbmcsIGdoZXJraW5TdGVwOiBTdGVwKTogYW55IHtcbiAgICByZXR1cm4ge1xuICAgICAgY29udGVudDogZG9jU3RyaW5nLmNvbnRlbnQsXG4gICAgICBsaW5lOiBnaGVya2luU3RlcC5kb2NTdHJpbmcubG9jYXRpb24ubGluZSxcbiAgICB9XG4gIH1cblxuICBmb3JtYXRTdGVwQXJndW1lbnQoc3RlcEFyZ3VtZW50OiBQaWNrbGVTdGVwQXJndW1lbnQsIGdoZXJraW5TdGVwOiBTdGVwKTogYW55IHtcbiAgICBpZiAoZG9lc05vdEhhdmVWYWx1ZShzdGVwQXJndW1lbnQpKSB7XG4gICAgICByZXR1cm4gW11cbiAgICB9XG4gICAgcmV0dXJuIFtcbiAgICAgIHBhcnNlU3RlcEFyZ3VtZW50PGFueT4oc3RlcEFyZ3VtZW50LCB7XG4gICAgICAgIGRhdGFUYWJsZTogKGRhdGFUYWJsZSkgPT4gdGhpcy5mb3JtYXREYXRhVGFibGUoZGF0YVRhYmxlKSxcbiAgICAgICAgZG9jU3RyaW5nOiAoZG9jU3RyaW5nKSA9PiB0aGlzLmZvcm1hdERvY1N0cmluZyhkb2NTdHJpbmcsIGdoZXJraW5TdGVwKSxcbiAgICAgIH0pLFxuICAgIF1cbiAgfVxuXG4gIG9uVGVzdFJ1bkZpbmlzaGVkKCk6IHZvaWQge1xuICAgIGNvbnN0IGdyb3VwZWRUZXN0Q2FzZUF0dGVtcHRzOiBVcmlUb1Rlc3RDYXNlQXR0ZW1wdHNNYXAgPSB7fVxuICAgIHRoaXMuZXZlbnREYXRhQ29sbGVjdG9yLmdldFRlc3RDYXNlQXR0ZW1wdHMoKS5mb3JFYWNoKCh0ZXN0Q2FzZUF0dGVtcHQ6IElUZXN0Q2FzZUF0dGVtcHQpID0+IHtcbiAgICAgIGlmICghdGVzdENhc2VBdHRlbXB0LndpbGxCZVJldHJpZWQpIHtcbiAgICAgICAgY29uc3QgdXJpID0gdGVzdENhc2VBdHRlbXB0LnBpY2tsZS51cmlcbiAgICAgICAgaWYgKGRvZXNOb3RIYXZlVmFsdWUoZ3JvdXBlZFRlc3RDYXNlQXR0ZW1wdHNbdXJpXSkpIHtcbiAgICAgICAgICBncm91cGVkVGVzdENhc2VBdHRlbXB0c1t1cmldID0gW11cbiAgICAgICAgfVxuICAgICAgICBncm91cGVkVGVzdENhc2VBdHRlbXB0c1t1cmldLnB1c2godGVzdENhc2VBdHRlbXB0KVxuICAgICAgfVxuICAgIH0pXG4gICAgY29uc3QgZmVhdHVyZXMgPSBPYmplY3Qua2V5cyhncm91cGVkVGVzdENhc2VBdHRlbXB0cykubWFwKCh1cmkpID0+IHtcbiAgICAgIGNvbnN0IGdyb3VwID0gZ3JvdXBlZFRlc3RDYXNlQXR0ZW1wdHNbdXJpXVxuICAgICAgY29uc3QgeyBnaGVya2luRG9jdW1lbnQgfSA9IGdyb3VwWzBdXG4gICAgICBjb25zdCBnaGVya2luU3RlcE1hcCA9IGdldEdoZXJraW5TdGVwTWFwKGdoZXJraW5Eb2N1bWVudClcbiAgICAgIGNvbnN0IGdoZXJraW5TY2VuYXJpb01hcCA9IGdldEdoZXJraW5TY2VuYXJpb01hcChnaGVya2luRG9jdW1lbnQpXG4gICAgICBjb25zdCBnaGVya2luRXhhbXBsZVJ1bGVNYXAgPSBnZXRHaGVya2luRXhhbXBsZVJ1bGVNYXAoZ2hlcmtpbkRvY3VtZW50KVxuICAgICAgY29uc3QgZ2hlcmtpblNjZW5hcmlvTG9jYXRpb25NYXAgPSBnZXRHaGVya2luU2NlbmFyaW9Mb2NhdGlvbk1hcChnaGVya2luRG9jdW1lbnQpXG4gICAgICBjb25zdCBlbGVtZW50cyA9IGdyb3VwLm1hcCgodGVzdENhc2VBdHRlbXB0OiBJVGVzdENhc2VBdHRlbXB0KSA9PiB7XG4gICAgICAgIGNvbnN0IHsgcGlja2xlIH0gPSB0ZXN0Q2FzZUF0dGVtcHRcbiAgICAgICAgY29uc3QgcGlja2xlU3RlcE1hcCA9IGdldFBpY2tsZVN0ZXBNYXAocGlja2xlKVxuICAgICAgICBsZXQgaXNCZWZvcmVIb29rID0gdHJ1ZVxuICAgICAgICBjb25zdCBzdGVwcyA9IHRlc3RDYXNlQXR0ZW1wdC50ZXN0Q2FzZS50ZXN0U3RlcHMubWFwKCh0ZXN0U3RlcCkgPT4ge1xuICAgICAgICAgIGlzQmVmb3JlSG9vayA9IGlzQmVmb3JlSG9vayAmJiAhZG9lc0hhdmVWYWx1ZSh0ZXN0U3RlcC5waWNrbGVTdGVwSWQpXG4gICAgICAgICAgcmV0dXJuIHRoaXMuZ2V0U3RlcERhdGEoe1xuICAgICAgICAgICAgaXNCZWZvcmVIb29rLFxuICAgICAgICAgICAgZ2hlcmtpblN0ZXBNYXAsXG4gICAgICAgICAgICBwaWNrbGVTdGVwTWFwLFxuICAgICAgICAgICAgdGVzdFN0ZXAsXG4gICAgICAgICAgICB0ZXN0U3RlcEF0dGFjaG1lbnRzOiB0ZXN0Q2FzZUF0dGVtcHQuc3RlcEF0dGFjaG1lbnRzW3Rlc3RTdGVwLmlkXSxcbiAgICAgICAgICAgIHRlc3RTdGVwUmVzdWx0OiB0ZXN0Q2FzZUF0dGVtcHQuc3RlcFJlc3VsdHNbdGVzdFN0ZXAuaWRdLFxuICAgICAgICAgIH0pXG4gICAgICAgIH0pXG4gICAgICAgIHJldHVybiB0aGlzLmdldFNjZW5hcmlvRGF0YSh7XG4gICAgICAgICAgZmVhdHVyZTogZ2hlcmtpbkRvY3VtZW50LmZlYXR1cmUsXG4gICAgICAgICAgZ2hlcmtpblNjZW5hcmlvTG9jYXRpb25NYXAsXG4gICAgICAgICAgZ2hlcmtpbkV4YW1wbGVSdWxlTWFwLFxuICAgICAgICAgIGdoZXJraW5TY2VuYXJpb01hcCxcbiAgICAgICAgICBwaWNrbGUsXG4gICAgICAgICAgc3RlcHMsXG4gICAgICAgIH0pXG4gICAgICB9KVxuICAgICAgcmV0dXJuIHRoaXMuZ2V0RmVhdHVyZURhdGEoe1xuICAgICAgICBmZWF0dXJlOiBnaGVya2luRG9jdW1lbnQuZmVhdHVyZSxcbiAgICAgICAgZWxlbWVudHMsXG4gICAgICAgIHVyaSxcbiAgICAgIH0pXG4gICAgfSlcbiAgICB0aGlzLmxvZyhKU09OLnN0cmluZ2lmeShmZWF0dXJlcywgbnVsbCwgMikpXG4gIH1cblxuICBnZXRGZWF0dXJlRGF0YSh7IGZlYXR1cmUsIGVsZW1lbnRzLCB1cmkgfTogSUJ1aWxkSnNvbkZlYXR1cmVPcHRpb25zKTogSUpzb25GZWF0dXJlIHtcbiAgICByZXR1cm4ge1xuICAgICAgZGVzY3JpcHRpb246IGZlYXR1cmUuZGVzY3JpcHRpb24sXG4gICAgICBlbGVtZW50cyxcbiAgICAgIGlkOiB0aGlzLmNvbnZlcnROYW1lVG9JZChmZWF0dXJlKSxcbiAgICAgIGxpbmU6IGZlYXR1cmUubG9jYXRpb24ubGluZSxcbiAgICAgIGtleXdvcmQ6IGZlYXR1cmUua2V5d29yZCxcbiAgICAgIG5hbWU6IGZlYXR1cmUubmFtZSxcbiAgICAgIHRhZ3M6IHRoaXMuZ2V0RmVhdHVyZVRhZ3MoZmVhdHVyZSksXG4gICAgICB1cmksXG4gICAgfVxuICB9XG5cbiAgZ2V0U2NlbmFyaW9EYXRhKHtcbiAgICBmZWF0dXJlLFxuICAgIGdoZXJraW5TY2VuYXJpb0xvY2F0aW9uTWFwLFxuICAgIGdoZXJraW5FeGFtcGxlUnVsZU1hcCxcbiAgICBnaGVya2luU2NlbmFyaW9NYXAsXG4gICAgcGlja2xlLFxuICAgIHN0ZXBzLFxuICB9OiBJQnVpbGRKc29uU2NlbmFyaW9PcHRpb25zKTogSUpzb25TY2VuYXJpbyB7XG4gICAgY29uc3QgZGVzY3JpcHRpb24gPSBnZXRTY2VuYXJpb0Rlc2NyaXB0aW9uKHtcbiAgICAgIHBpY2tsZSxcbiAgICAgIGdoZXJraW5TY2VuYXJpb01hcCxcbiAgICB9KVxuICAgIHJldHVybiB7XG4gICAgICBkZXNjcmlwdGlvbixcbiAgICAgIGlkOiB0aGlzLmZvcm1hdFNjZW5hcmlvSWQoeyBmZWF0dXJlLCBwaWNrbGUsIGdoZXJraW5FeGFtcGxlUnVsZU1hcCB9KSxcbiAgICAgIGtleXdvcmQ6IGdoZXJraW5TY2VuYXJpb01hcFtwaWNrbGUuYXN0Tm9kZUlkc1swXV0ua2V5d29yZCxcbiAgICAgIGxpbmU6IGdoZXJraW5TY2VuYXJpb0xvY2F0aW9uTWFwW3BpY2tsZS5hc3ROb2RlSWRzW3BpY2tsZS5hc3ROb2RlSWRzLmxlbmd0aCAtIDFdXS5saW5lLFxuICAgICAgbmFtZTogcGlja2xlLm5hbWUsXG4gICAgICBzdGVwcyxcbiAgICAgIHRhZ3M6IHRoaXMuZ2V0U2NlbmFyaW9UYWdzKHsgZmVhdHVyZSwgcGlja2xlLCBnaGVya2luU2NlbmFyaW9NYXAgfSksXG4gICAgICB0eXBlOiAnc2NlbmFyaW8nLFxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgZm9ybWF0U2NlbmFyaW9JZCh7XG4gICAgZmVhdHVyZSxcbiAgICBwaWNrbGUsXG4gICAgZ2hlcmtpbkV4YW1wbGVSdWxlTWFwLFxuICB9OiB7XG4gICAgZmVhdHVyZTogRmVhdHVyZVxuICAgIHBpY2tsZTogUGlja2xlXG4gICAgZ2hlcmtpbkV4YW1wbGVSdWxlTWFwOiBSZWNvcmQ8c3RyaW5nLCBSdWxlPlxuICB9KTogc3RyaW5nIHtcbiAgICBsZXQgcGFydHM6IGFueVtdXG4gICAgY29uc3QgcnVsZSA9IGdoZXJraW5FeGFtcGxlUnVsZU1hcFtwaWNrbGUuYXN0Tm9kZUlkc1swXV1cbiAgICBpZiAoZG9lc0hhdmVWYWx1ZShydWxlKSkge1xuICAgICAgcGFydHMgPSBbZmVhdHVyZSwgcnVsZSwgcGlja2xlXVxuICAgIH0gZWxzZSB7XG4gICAgICBwYXJ0cyA9IFtmZWF0dXJlLCBwaWNrbGVdXG4gICAgfVxuICAgIHJldHVybiBwYXJ0cy5tYXAoKHBhcnQpID0+IHRoaXMuY29udmVydE5hbWVUb0lkKHBhcnQpKS5qb2luKCc7JylcbiAgfVxuXG4gIGdldFN0ZXBEYXRhKHtcbiAgICBpc0JlZm9yZUhvb2ssXG4gICAgZ2hlcmtpblN0ZXBNYXAsXG4gICAgcGlja2xlU3RlcE1hcCxcbiAgICB0ZXN0U3RlcCxcbiAgICB0ZXN0U3RlcEF0dGFjaG1lbnRzLFxuICAgIHRlc3RTdGVwUmVzdWx0LFxuICB9OiBJQnVpbGRKc29uU3RlcE9wdGlvbnMpOiBJSnNvblN0ZXAge1xuICAgIGNvbnN0IGRhdGE6IElKc29uU3RlcCA9IHt9XG4gICAgaWYgKGRvZXNIYXZlVmFsdWUodGVzdFN0ZXAucGlja2xlU3RlcElkKSkge1xuICAgICAgY29uc3QgcGlja2xlU3RlcCA9IHBpY2tsZVN0ZXBNYXBbdGVzdFN0ZXAucGlja2xlU3RlcElkXVxuICAgICAgZGF0YS5hcmd1bWVudHMgPSB0aGlzLmZvcm1hdFN0ZXBBcmd1bWVudChcbiAgICAgICAgcGlja2xlU3RlcC5hcmd1bWVudCxcbiAgICAgICAgZ2hlcmtpblN0ZXBNYXBbcGlja2xlU3RlcC5hc3ROb2RlSWRzWzBdXVxuICAgICAgKVxuICAgICAgZGF0YS5rZXl3b3JkID0gZ2V0U3RlcEtleXdvcmQoeyBwaWNrbGVTdGVwLCBnaGVya2luU3RlcE1hcCB9KVxuICAgICAgZGF0YS5saW5lID0gZ2hlcmtpblN0ZXBNYXBbcGlja2xlU3RlcC5hc3ROb2RlSWRzWzBdXS5sb2NhdGlvbi5saW5lXG4gICAgICBkYXRhLm5hbWUgPSBwaWNrbGVTdGVwLnRleHRcbiAgICB9IGVsc2Uge1xuICAgICAgZGF0YS5rZXl3b3JkID0gaXNCZWZvcmVIb29rID8gJ0JlZm9yZScgOiAnQWZ0ZXInXG4gICAgICBkYXRhLmhpZGRlbiA9IHRydWVcbiAgICB9XG4gICAgaWYgKGRvZXNIYXZlVmFsdWUodGVzdFN0ZXAuc3RlcERlZmluaXRpb25JZHMpICYmIHRlc3RTdGVwLnN0ZXBEZWZpbml0aW9uSWRzLmxlbmd0aCA9PT0gMSkge1xuICAgICAgY29uc3Qgc3RlcERlZmluaXRpb24gPSB0aGlzLnN1cHBvcnRDb2RlTGlicmFyeS5zdGVwRGVmaW5pdGlvbnMuZmluZChcbiAgICAgICAgKHMpID0+IHMuaWQgPT09IHRlc3RTdGVwLnN0ZXBEZWZpbml0aW9uSWRzWzBdXG4gICAgICApXG4gICAgICBkYXRhLm1hdGNoID0geyBsb2NhdGlvbjogZm9ybWF0TG9jYXRpb24oc3RlcERlZmluaXRpb24pIH1cbiAgICB9XG4gICAgY29uc3QgeyBtZXNzYWdlLCBzdGF0dXMgfSA9IHRlc3RTdGVwUmVzdWx0XG4gICAgZGF0YS5yZXN1bHQgPSB7XG4gICAgICBzdGF0dXM6IFRlc3RTdGVwUmVzdWx0U3RhdHVzW3N0YXR1c10udG9Mb3dlckNhc2UoKSxcbiAgICB9XG4gICAgaWYgKGRvZXNIYXZlVmFsdWUodGVzdFN0ZXBSZXN1bHQuZHVyYXRpb24pKSB7XG4gICAgICBkYXRhLnJlc3VsdC5kdXJhdGlvbiA9IGR1cmF0aW9uVG9OYW5vc2Vjb25kcyh0ZXN0U3RlcFJlc3VsdC5kdXJhdGlvbilcbiAgICB9XG4gICAgaWYgKHN0YXR1cyA9PT0gVGVzdFN0ZXBSZXN1bHRTdGF0dXMuRkFJTEVEICYmIGRvZXNIYXZlVmFsdWUobWVzc2FnZSkpIHtcbiAgICAgIGRhdGEucmVzdWx0LmVycm9yX21lc3NhZ2UgPSBtZXNzYWdlXG4gICAgfVxuICAgIGlmICh0ZXN0U3RlcEF0dGFjaG1lbnRzPy5sZW5ndGggPiAwKSB7XG4gICAgICBkYXRhLmVtYmVkZGluZ3MgPSB0ZXN0U3RlcEF0dGFjaG1lbnRzLm1hcCgoYXR0YWNobWVudCkgPT4gKHtcbiAgICAgICAgZGF0YTpcbiAgICAgICAgICBhdHRhY2htZW50LmNvbnRlbnRFbmNvZGluZyA9PT0gQXR0YWNobWVudENvbnRlbnRFbmNvZGluZy5JREVOVElUWVxuICAgICAgICAgICAgPyBCdWZmZXIuZnJvbShhdHRhY2htZW50LmJvZHkpLnRvU3RyaW5nKCdiYXNlNjQnKVxuICAgICAgICAgICAgOiBhdHRhY2htZW50LmJvZHksXG4gICAgICAgIG1pbWVfdHlwZTogYXR0YWNobWVudC5tZWRpYVR5cGUsXG4gICAgICB9KSlcbiAgICB9XG4gICAgcmV0dXJuIGRhdGFcbiAgfVxuXG4gIGdldEZlYXR1cmVUYWdzKGZlYXR1cmU6IEZlYXR1cmUpOiBJSnNvblRhZ1tdIHtcbiAgICByZXR1cm4gZmVhdHVyZS50YWdzLm1hcCgodGFnRGF0YSkgPT4gKHtcbiAgICAgIG5hbWU6IHRhZ0RhdGEubmFtZSxcbiAgICAgIGxpbmU6IHRhZ0RhdGEubG9jYXRpb24ubGluZSxcbiAgICB9KSlcbiAgfVxuXG4gIGdldFNjZW5hcmlvVGFncyh7XG4gICAgZmVhdHVyZSxcbiAgICBwaWNrbGUsXG4gICAgZ2hlcmtpblNjZW5hcmlvTWFwLFxuICB9OiB7XG4gICAgZmVhdHVyZTogRmVhdHVyZVxuICAgIHBpY2tsZTogUGlja2xlXG4gICAgZ2hlcmtpblNjZW5hcmlvTWFwOiBSZWNvcmQ8c3RyaW5nLCBTY2VuYXJpbz5cbiAgfSk6IElKc29uVGFnW10ge1xuICAgIGNvbnN0IHNjZW5hcmlvID0gZ2hlcmtpblNjZW5hcmlvTWFwW3BpY2tsZS5hc3ROb2RlSWRzWzBdXVxuXG4gICAgcmV0dXJuIHBpY2tsZS50YWdzLm1hcChcbiAgICAgICh0YWdEYXRhOiBQaWNrbGVUYWcpOiBJSnNvblRhZyA9PiB0aGlzLmdldFNjZW5hcmlvVGFnKHRhZ0RhdGEsIGZlYXR1cmUsIHNjZW5hcmlvKVxuICAgIClcbiAgfVxuXG4gIHByaXZhdGUgZ2V0U2NlbmFyaW9UYWcodGFnRGF0YTogUGlja2xlVGFnLCBmZWF0dXJlOiBGZWF0dXJlLCBzY2VuYXJpbzogU2NlbmFyaW8pOiBJSnNvblRhZyB7XG4gICAgY29uc3QgYnlBc3ROb2RlSWQgPSAodGFnOiBUYWcpOiBib29sZWFuID0+IHRhZy5pZCA9PT0gdGFnRGF0YS5hc3ROb2RlSWRcbiAgICBjb25zdCBmbGF0dGVuID0gKGFjYzogVGFnW10sIHZhbDogVGFnW10pOiBUYWdbXSA9PiBhY2MuY29uY2F0KHZhbClcblxuICAgIGNvbnN0IHRhZyA9XG4gICAgICBmZWF0dXJlLnRhZ3MuZmluZChieUFzdE5vZGVJZCkgfHxcbiAgICAgIHNjZW5hcmlvLnRhZ3MuZmluZChieUFzdE5vZGVJZCkgfHxcbiAgICAgIHNjZW5hcmlvLmV4YW1wbGVzXG4gICAgICAgIC5tYXAoKGUpID0+IGUudGFncylcbiAgICAgICAgLnJlZHVjZShmbGF0dGVuLCBbXSlcbiAgICAgICAgLmZpbmQoYnlBc3ROb2RlSWQpXG5cbiAgICByZXR1cm4ge1xuICAgICAgbmFtZTogdGFnRGF0YS5uYW1lLFxuICAgICAgbGluZTogdGFnPy5sb2NhdGlvbj8ubGluZSxcbiAgICB9XG4gIH1cbn1cbiJdfQ==
@@ -1,7 +1,7 @@
1
- import * as messages from '@cucumber/messages';
1
+ import { type TestStepFinished } from '@cucumber/messages';
2
2
  import type { IFormatterOptions } from './index';
3
3
  import SummaryFormatter from './summary_formatter';
4
- import ITestStepFinished = messages.TestStepFinished;
4
+ type ITestStepFinished = TestStepFinished;
5
5
  /**
6
6
  * @deprecated the built-in `progress` formatter is now plugin-based and no longer uses this class; see https://github.com/cucumber/cucumber-js/blob/main/docs/deprecations.md
7
7
  */
@@ -10,3 +10,4 @@ export default class ProgressFormatter extends SummaryFormatter {
10
10
  constructor(options: IFormatterOptions);
11
11
  logProgress({ testStepResult: { status } }: ITestStepFinished): void;
12
12
  }
13
+ export {};
@@ -1,51 +1,18 @@
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
- const messages = __importStar(require("@cucumber/messages"));
6
+ const messages_1 = require("@cucumber/messages");
40
7
  const value_checker_1 = require("../value_checker");
41
8
  const summary_formatter_1 = __importDefault(require("./summary_formatter"));
42
9
  const STATUS_CHARACTER_MAPPING = new Map([
43
- [messages.TestStepResultStatus.AMBIGUOUS, 'A'],
44
- [messages.TestStepResultStatus.FAILED, 'F'],
45
- [messages.TestStepResultStatus.PASSED, '.'],
46
- [messages.TestStepResultStatus.PENDING, 'P'],
47
- [messages.TestStepResultStatus.SKIPPED, '-'],
48
- [messages.TestStepResultStatus.UNDEFINED, 'U'],
10
+ [messages_1.TestStepResultStatus.AMBIGUOUS, 'A'],
11
+ [messages_1.TestStepResultStatus.FAILED, 'F'],
12
+ [messages_1.TestStepResultStatus.PASSED, '.'],
13
+ [messages_1.TestStepResultStatus.PENDING, 'P'],
14
+ [messages_1.TestStepResultStatus.SKIPPED, '-'],
15
+ [messages_1.TestStepResultStatus.UNDEFINED, 'U'],
49
16
  ]);
50
17
  /**
51
18
  * @deprecated the built-in `progress` formatter is now plugin-based and no longer uses this class; see https://github.com/cucumber/cucumber-js/blob/main/docs/deprecations.md
@@ -69,4 +36,4 @@ class ProgressFormatter extends summary_formatter_1.default {
69
36
  }
70
37
  }
71
38
  exports.default = ProgressFormatter;
72
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZ3Jlc3NfZm9ybWF0dGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2Zvcm1hdHRlci9wcm9ncmVzc19mb3JtYXR0ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSw2REFBOEM7QUFDOUMsb0RBQWdEO0FBRWhELDRFQUFrRDtBQUtsRCxNQUFNLHdCQUF3QixHQUErQyxJQUFJLEdBQUcsQ0FBQztJQUNuRixDQUFDLFFBQVEsQ0FBQyxvQkFBb0IsQ0FBQyxTQUFTLEVBQUUsR0FBRyxDQUFDO0lBQzlDLENBQUMsUUFBUSxDQUFDLG9CQUFvQixDQUFDLE1BQU0sRUFBRSxHQUFHLENBQUM7SUFDM0MsQ0FBQyxRQUFRLENBQUMsb0JBQW9CLENBQUMsTUFBTSxFQUFFLEdBQUcsQ0FBQztJQUMzQyxDQUFDLFFBQVEsQ0FBQyxvQkFBb0IsQ0FBQyxPQUFPLEVBQUUsR0FBRyxDQUFDO0lBQzVDLENBQUMsUUFBUSxDQUFDLG9CQUFvQixDQUFDLE9BQU8sRUFBRSxHQUFHLENBQUM7SUFDNUMsQ0FBQyxRQUFRLENBQUMsb0JBQW9CLENBQUMsU0FBUyxFQUFFLEdBQUcsQ0FBQztDQUMvQyxDQUFDLENBQUE7QUFFRjs7R0FFRztBQUNILE1BQXFCLGlCQUFrQixTQUFRLDJCQUFnQjtJQUN0RCxNQUFNLENBQVUsYUFBYSxHQUFXLG9DQUFvQyxDQUFBO0lBRW5GLFlBQVksT0FBMEI7UUFDcEMsT0FBTyxDQUFDLGdCQUFnQixDQUFDLEVBQUUsQ0FBQyxVQUFVLEVBQUUsQ0FBQyxRQUFtQixFQUFFLEVBQUU7WUFDOUQsSUFBSSxJQUFBLDZCQUFhLEVBQUMsUUFBUSxDQUFDLGVBQWUsQ0FBQyxFQUFFLENBQUM7Z0JBQzVDLElBQUksQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUE7WUFDbEIsQ0FBQztpQkFBTSxJQUFJLElBQUEsNkJBQWEsRUFBQyxRQUFRLENBQUMsZ0JBQWdCLENBQUMsRUFBRSxDQUFDO2dCQUNwRCxJQUFJLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFBO1lBQzdDLENBQUM7UUFDSCxDQUFDLENBQUMsQ0FBQTtRQUNGLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQTtJQUNoQixDQUFDO0lBRUQsV0FBVyxDQUFDLEVBQUUsY0FBYyxFQUFFLEVBQUUsTUFBTSxFQUFFLEVBQXFCO1FBQzNELE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDLHdCQUF3QixDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFBO1FBQ3ZGLElBQUksQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLENBQUE7SUFDckIsQ0FBQzs7QUFqQkgsb0NBa0JDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgbWVzc2FnZXMgZnJvbSAnQGN1Y3VtYmVyL21lc3NhZ2VzJ1xuaW1wb3J0IHsgZG9lc0hhdmVWYWx1ZSB9IGZyb20gJy4uL3ZhbHVlX2NoZWNrZXInXG5pbXBvcnQgdHlwZSB7IElGb3JtYXR0ZXJPcHRpb25zIH0gZnJvbSAnLi9pbmRleCdcbmltcG9ydCBTdW1tYXJ5Rm9ybWF0dGVyIGZyb20gJy4vc3VtbWFyeV9mb3JtYXR0ZXInXG5cbmltcG9ydCBJRW52ZWxvcGUgPSBtZXNzYWdlcy5FbnZlbG9wZVxuaW1wb3J0IElUZXN0U3RlcEZpbmlzaGVkID0gbWVzc2FnZXMuVGVzdFN0ZXBGaW5pc2hlZFxuXG5jb25zdCBTVEFUVVNfQ0hBUkFDVEVSX01BUFBJTkc6IE1hcDxtZXNzYWdlcy5UZXN0U3RlcFJlc3VsdFN0YXR1cywgc3RyaW5nPiA9IG5ldyBNYXAoW1xuICBbbWVzc2FnZXMuVGVzdFN0ZXBSZXN1bHRTdGF0dXMuQU1CSUdVT1VTLCAnQSddLFxuICBbbWVzc2FnZXMuVGVzdFN0ZXBSZXN1bHRTdGF0dXMuRkFJTEVELCAnRiddLFxuICBbbWVzc2FnZXMuVGVzdFN0ZXBSZXN1bHRTdGF0dXMuUEFTU0VELCAnLiddLFxuICBbbWVzc2FnZXMuVGVzdFN0ZXBSZXN1bHRTdGF0dXMuUEVORElORywgJ1AnXSxcbiAgW21lc3NhZ2VzLlRlc3RTdGVwUmVzdWx0U3RhdHVzLlNLSVBQRUQsICctJ10sXG4gIFttZXNzYWdlcy5UZXN0U3RlcFJlc3VsdFN0YXR1cy5VTkRFRklORUQsICdVJ10sXG5dKVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIHRoZSBidWlsdC1pbiBgcHJvZ3Jlc3NgIGZvcm1hdHRlciBpcyBub3cgcGx1Z2luLWJhc2VkIGFuZCBubyBsb25nZXIgdXNlcyB0aGlzIGNsYXNzOyBzZWUgaHR0cHM6Ly9naXRodWIuY29tL2N1Y3VtYmVyL2N1Y3VtYmVyLWpzL2Jsb2IvbWFpbi9kb2NzL2RlcHJlY2F0aW9ucy5tZFxuICovXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBQcm9ncmVzc0Zvcm1hdHRlciBleHRlbmRzIFN1bW1hcnlGb3JtYXR0ZXIge1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IGRvY3VtZW50YXRpb246IHN0cmluZyA9ICdQcmludHMgb25lIGNoYXJhY3RlciBwZXIgc2NlbmFyaW8uJ1xuXG4gIGNvbnN0cnVjdG9yKG9wdGlvbnM6IElGb3JtYXR0ZXJPcHRpb25zKSB7XG4gICAgb3B0aW9ucy5ldmVudEJyb2FkY2FzdGVyLm9uKCdlbnZlbG9wZScsIChlbnZlbG9wZTogSUVudmVsb3BlKSA9PiB7XG4gICAgICBpZiAoZG9lc0hhdmVWYWx1ZShlbnZlbG9wZS50ZXN0UnVuRmluaXNoZWQpKSB7XG4gICAgICAgIHRoaXMubG9nKCdcXG5cXG4nKVxuICAgICAgfSBlbHNlIGlmIChkb2VzSGF2ZVZhbHVlKGVudmVsb3BlLnRlc3RTdGVwRmluaXNoZWQpKSB7XG4gICAgICAgIHRoaXMubG9nUHJvZ3Jlc3MoZW52ZWxvcGUudGVzdFN0ZXBGaW5pc2hlZClcbiAgICAgIH1cbiAgICB9KVxuICAgIHN1cGVyKG9wdGlvbnMpXG4gIH1cblxuICBsb2dQcm9ncmVzcyh7IHRlc3RTdGVwUmVzdWx0OiB7IHN0YXR1cyB9IH06IElUZXN0U3RlcEZpbmlzaGVkKTogdm9pZCB7XG4gICAgY29uc3QgY2hhcmFjdGVyID0gdGhpcy5jb2xvckZucy5mb3JTdGF0dXMoc3RhdHVzKShTVEFUVVNfQ0hBUkFDVEVSX01BUFBJTkcuZ2V0KHN0YXR1cykpXG4gICAgdGhpcy5sb2coY2hhcmFjdGVyKVxuICB9XG59XG4iXX0=
39
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZ3Jlc3NfZm9ybWF0dGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2Zvcm1hdHRlci9wcm9ncmVzc19mb3JtYXR0ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxpREFBK0Y7QUFDL0Ysb0RBQWdEO0FBRWhELDRFQUFrRDtBQUtsRCxNQUFNLHdCQUF3QixHQUFzQyxJQUFJLEdBQUcsQ0FBQztJQUMxRSxDQUFDLCtCQUFvQixDQUFDLFNBQVMsRUFBRSxHQUFHLENBQUM7SUFDckMsQ0FBQywrQkFBb0IsQ0FBQyxNQUFNLEVBQUUsR0FBRyxDQUFDO0lBQ2xDLENBQUMsK0JBQW9CLENBQUMsTUFBTSxFQUFFLEdBQUcsQ0FBQztJQUNsQyxDQUFDLCtCQUFvQixDQUFDLE9BQU8sRUFBRSxHQUFHLENBQUM7SUFDbkMsQ0FBQywrQkFBb0IsQ0FBQyxPQUFPLEVBQUUsR0FBRyxDQUFDO0lBQ25DLENBQUMsK0JBQW9CLENBQUMsU0FBUyxFQUFFLEdBQUcsQ0FBQztDQUN0QyxDQUFDLENBQUE7QUFFRjs7R0FFRztBQUNILE1BQXFCLGlCQUFrQixTQUFRLDJCQUFnQjtJQUN0RCxNQUFNLENBQVUsYUFBYSxHQUFXLG9DQUFvQyxDQUFBO0lBRW5GLFlBQVksT0FBMEI7UUFDcEMsT0FBTyxDQUFDLGdCQUFnQixDQUFDLEVBQUUsQ0FBQyxVQUFVLEVBQUUsQ0FBQyxRQUFtQixFQUFFLEVBQUU7WUFDOUQsSUFBSSxJQUFBLDZCQUFhLEVBQUMsUUFBUSxDQUFDLGVBQWUsQ0FBQyxFQUFFLENBQUM7Z0JBQzVDLElBQUksQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUE7WUFDbEIsQ0FBQztpQkFBTSxJQUFJLElBQUEsNkJBQWEsRUFBQyxRQUFRLENBQUMsZ0JBQWdCLENBQUMsRUFBRSxDQUFDO2dCQUNwRCxJQUFJLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFBO1lBQzdDLENBQUM7UUFDSCxDQUFDLENBQUMsQ0FBQTtRQUNGLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQTtJQUNoQixDQUFDO0lBRUQsV0FBVyxDQUFDLEVBQUUsY0FBYyxFQUFFLEVBQUUsTUFBTSxFQUFFLEVBQXFCO1FBQzNELE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDLHdCQUF3QixDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFBO1FBQ3ZGLElBQUksQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLENBQUE7SUFDckIsQ0FBQzs7QUFqQkgsb0NBa0JDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgdHlwZSBFbnZlbG9wZSwgdHlwZSBUZXN0U3RlcEZpbmlzaGVkLCBUZXN0U3RlcFJlc3VsdFN0YXR1cyB9IGZyb20gJ0BjdWN1bWJlci9tZXNzYWdlcydcbmltcG9ydCB7IGRvZXNIYXZlVmFsdWUgfSBmcm9tICcuLi92YWx1ZV9jaGVja2VyJ1xuaW1wb3J0IHR5cGUgeyBJRm9ybWF0dGVyT3B0aW9ucyB9IGZyb20gJy4vaW5kZXgnXG5pbXBvcnQgU3VtbWFyeUZvcm1hdHRlciBmcm9tICcuL3N1bW1hcnlfZm9ybWF0dGVyJ1xuXG50eXBlIElFbnZlbG9wZSA9IEVudmVsb3BlXG50eXBlIElUZXN0U3RlcEZpbmlzaGVkID0gVGVzdFN0ZXBGaW5pc2hlZFxuXG5jb25zdCBTVEFUVVNfQ0hBUkFDVEVSX01BUFBJTkc6IE1hcDxUZXN0U3RlcFJlc3VsdFN0YXR1cywgc3RyaW5nPiA9IG5ldyBNYXAoW1xuICBbVGVzdFN0ZXBSZXN1bHRTdGF0dXMuQU1CSUdVT1VTLCAnQSddLFxuICBbVGVzdFN0ZXBSZXN1bHRTdGF0dXMuRkFJTEVELCAnRiddLFxuICBbVGVzdFN0ZXBSZXN1bHRTdGF0dXMuUEFTU0VELCAnLiddLFxuICBbVGVzdFN0ZXBSZXN1bHRTdGF0dXMuUEVORElORywgJ1AnXSxcbiAgW1Rlc3RTdGVwUmVzdWx0U3RhdHVzLlNLSVBQRUQsICctJ10sXG4gIFtUZXN0U3RlcFJlc3VsdFN0YXR1cy5VTkRFRklORUQsICdVJ10sXG5dKVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIHRoZSBidWlsdC1pbiBgcHJvZ3Jlc3NgIGZvcm1hdHRlciBpcyBub3cgcGx1Z2luLWJhc2VkIGFuZCBubyBsb25nZXIgdXNlcyB0aGlzIGNsYXNzOyBzZWUgaHR0cHM6Ly9naXRodWIuY29tL2N1Y3VtYmVyL2N1Y3VtYmVyLWpzL2Jsb2IvbWFpbi9kb2NzL2RlcHJlY2F0aW9ucy5tZFxuICovXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBQcm9ncmVzc0Zvcm1hdHRlciBleHRlbmRzIFN1bW1hcnlGb3JtYXR0ZXIge1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IGRvY3VtZW50YXRpb246IHN0cmluZyA9ICdQcmludHMgb25lIGNoYXJhY3RlciBwZXIgc2NlbmFyaW8uJ1xuXG4gIGNvbnN0cnVjdG9yKG9wdGlvbnM6IElGb3JtYXR0ZXJPcHRpb25zKSB7XG4gICAgb3B0aW9ucy5ldmVudEJyb2FkY2FzdGVyLm9uKCdlbnZlbG9wZScsIChlbnZlbG9wZTogSUVudmVsb3BlKSA9PiB7XG4gICAgICBpZiAoZG9lc0hhdmVWYWx1ZShlbnZlbG9wZS50ZXN0UnVuRmluaXNoZWQpKSB7XG4gICAgICAgIHRoaXMubG9nKCdcXG5cXG4nKVxuICAgICAgfSBlbHNlIGlmIChkb2VzSGF2ZVZhbHVlKGVudmVsb3BlLnRlc3RTdGVwRmluaXNoZWQpKSB7XG4gICAgICAgIHRoaXMubG9nUHJvZ3Jlc3MoZW52ZWxvcGUudGVzdFN0ZXBGaW5pc2hlZClcbiAgICAgIH1cbiAgICB9KVxuICAgIHN1cGVyKG9wdGlvbnMpXG4gIH1cblxuICBsb2dQcm9ncmVzcyh7IHRlc3RTdGVwUmVzdWx0OiB7IHN0YXR1cyB9IH06IElUZXN0U3RlcEZpbmlzaGVkKTogdm9pZCB7XG4gICAgY29uc3QgY2hhcmFjdGVyID0gdGhpcy5jb2xvckZucy5mb3JTdGF0dXMoc3RhdHVzKShTVEFUVVNfQ0hBUkFDVEVSX01BUFBJTkcuZ2V0KHN0YXR1cykpXG4gICAgdGhpcy5sb2coY2hhcmFjdGVyKVxuICB9XG59XG4iXX0=
@@ -1,48 +1,15 @@
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
- const messages = __importStar(require("@cucumber/messages"));
6
+ const messages_1 = require("@cucumber/messages");
40
7
  const value_checker_1 = require("../value_checker");
41
8
  const _1 = __importDefault(require("./"));
42
9
  const gherkin_document_parser_1 = require("./helpers/gherkin_document_parser");
43
10
  const DEFAULT_SEPARATOR = '\n';
44
11
  function isFailedAttempt(worstTestStepResult) {
45
- return worstTestStepResult.status !== messages.TestStepResultStatus.PASSED;
12
+ return worstTestStepResult.status !== messages_1.TestStepResultStatus.PASSED;
46
13
  }
47
14
  class RerunFormatter extends _1.default {
48
15
  separator;
@@ -88,4 +55,4 @@ class RerunFormatter extends _1.default {
88
55
  }
89
56
  }
90
57
  exports.default = RerunFormatter;
91
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVydW5fZm9ybWF0dGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2Zvcm1hdHRlci9yZXJ1bl9mb3JtYXR0ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSw2REFBOEM7QUFDOUMsb0RBQWtGO0FBQ2xGLDBDQUFzRDtBQUN0RCwrRUFBaUY7QUFFakYsTUFBTSxpQkFBaUIsR0FBRyxJQUFJLENBQUE7QUFNOUIsU0FBUyxlQUFlLENBQUMsbUJBQTRDO0lBQ25FLE9BQU8sbUJBQW1CLENBQUMsTUFBTSxLQUFLLFFBQVEsQ0FBQyxvQkFBb0IsQ0FBQyxNQUFNLENBQUE7QUFDNUUsQ0FBQztBQUVELE1BQXFCLGNBQWUsU0FBUSxVQUFTO0lBQ2hDLFNBQVMsQ0FBUTtJQUM3QixNQUFNLENBQVUsYUFBYSxHQUFXLHlDQUF5QyxDQUFBO0lBRXhGLFlBQVksT0FBMEI7UUFDcEMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFBO1FBQ2QsT0FBTyxDQUFDLGdCQUFnQixDQUFDLEVBQUUsQ0FBQyxVQUFVLEVBQUUsQ0FBQyxRQUEyQixFQUFFLEVBQUU7WUFDdEUsSUFBSSxJQUFBLDZCQUFhLEVBQUMsUUFBUSxDQUFDLGVBQWUsQ0FBQyxFQUFFLENBQUM7Z0JBQzVDLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFBO1lBQzNCLENBQUM7UUFDSCxDQUFDLENBQUMsQ0FBQTtRQUNGLE1BQU0sWUFBWSxHQUFHLElBQUEsOEJBQWMsRUFBQyxPQUFPLENBQUMsaUJBQWlCLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFBO1FBQ3hFLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBQSw4QkFBYyxFQUFDLFlBQVksQ0FBQyxTQUFTLEVBQUUsaUJBQWlCLENBQUMsQ0FBQTtJQUM1RSxDQUFDO0lBRUQsYUFBYTtRQUNYLE1BQU0sT0FBTyxHQUFrQixFQUFFLENBQUE7UUFDakMsSUFBSSxDQUFDLGtCQUFrQjthQUNwQixtQkFBbUIsRUFBRTthQUNyQixPQUFPLENBQUMsQ0FBQyxFQUFFLGVBQWUsRUFBRSxNQUFNLEVBQUUsbUJBQW1CLEVBQUUsYUFBYSxFQUFFLEVBQUUsRUFBRTtZQUMzRSxJQUFJLGVBQWUsQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7Z0JBQzNELE1BQU0sV0FBVyxHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUE7Z0JBQzlCLE1BQU0sSUFBSSxHQUNSLElBQUEsdURBQTZCLEVBQUMsZUFBZSxDQUFDLENBQzVDLE1BQU0sQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQ2hELENBQUMsSUFBSSxDQUFBO2dCQUNSLElBQUksSUFBQSxnQ0FBZ0IsRUFBQyxPQUFPLENBQUMsV0FBVyxDQUFDLENBQUMsRUFBRSxDQUFDO29CQUMzQyxPQUFPLENBQUMsV0FBVyxDQUFDLEdBQUcsRUFBRSxDQUFBO2dCQUMzQixDQUFDO2dCQUNELE9BQU8sQ0FBQyxXQUFXLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUE7WUFDakMsQ0FBQztRQUNILENBQUMsQ0FBQyxDQUFBO1FBRUosT0FBTyxPQUFPLENBQUE7SUFDaEIsQ0FBQztJQUVELHFCQUFxQjtRQUNuQixNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUE7UUFFcEMsT0FBTyxNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQzthQUN4QixHQUFHLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRTtZQUNYLE1BQU0sS0FBSyxHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQTtZQUMxQixPQUFPLEdBQUcsR0FBRyxJQUFJLEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQTtRQUNwQyxDQUFDLENBQUM7YUFDRCxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFBO0lBQ3pCLENBQUM7SUFFRCxrQkFBa0I7UUFDaEIsTUFBTSxlQUFlLEdBQUcsSUFBSSxDQUFDLHFCQUFxQixFQUFFLENBQUE7UUFDcEQsSUFBSSxDQUFDLEdBQUcsQ0FBQyxlQUFlLENBQUMsQ0FBQTtJQUMzQixDQUFDOztBQWxESCxpQ0FtREMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBtZXNzYWdlcyBmcm9tICdAY3VjdW1iZXIvbWVzc2FnZXMnXG5pbXBvcnQgeyBkb2VzSGF2ZVZhbHVlLCBkb2VzTm90SGF2ZVZhbHVlLCB2YWx1ZU9yRGVmYXVsdCB9IGZyb20gJy4uL3ZhbHVlX2NoZWNrZXInXG5pbXBvcnQgRm9ybWF0dGVyLCB7IHR5cGUgSUZvcm1hdHRlck9wdGlvbnMgfSBmcm9tICcuLydcbmltcG9ydCB7IGdldEdoZXJraW5TY2VuYXJpb0xvY2F0aW9uTWFwIH0gZnJvbSAnLi9oZWxwZXJzL2doZXJraW5fZG9jdW1lbnRfcGFyc2VyJ1xuXG5jb25zdCBERUZBVUxUX1NFUEFSQVRPUiA9ICdcXG4nXG5cbmludGVyZmFjZSBVcmlUb0xpbmVzTWFwIHtcbiAgW3VyaTogc3RyaW5nXTogbnVtYmVyW11cbn1cblxuZnVuY3Rpb24gaXNGYWlsZWRBdHRlbXB0KHdvcnN0VGVzdFN0ZXBSZXN1bHQ6IG1lc3NhZ2VzLlRlc3RTdGVwUmVzdWx0KSB7XG4gIHJldHVybiB3b3JzdFRlc3RTdGVwUmVzdWx0LnN0YXR1cyAhPT0gbWVzc2FnZXMuVGVzdFN0ZXBSZXN1bHRTdGF0dXMuUEFTU0VEXG59XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFJlcnVuRm9ybWF0dGVyIGV4dGVuZHMgRm9ybWF0dGVyIHtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IHNlcGFyYXRvcjogc3RyaW5nXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgZG9jdW1lbnRhdGlvbjogc3RyaW5nID0gJ1ByaW50cyBmYWlsaW5nIGZpbGVzIHdpdGggbGluZSBudW1iZXJzLidcblxuICBjb25zdHJ1Y3RvcihvcHRpb25zOiBJRm9ybWF0dGVyT3B0aW9ucykge1xuICAgIHN1cGVyKG9wdGlvbnMpXG4gICAgb3B0aW9ucy5ldmVudEJyb2FkY2FzdGVyLm9uKCdlbnZlbG9wZScsIChlbnZlbG9wZTogbWVzc2FnZXMuRW52ZWxvcGUpID0+IHtcbiAgICAgIGlmIChkb2VzSGF2ZVZhbHVlKGVudmVsb3BlLnRlc3RSdW5GaW5pc2hlZCkpIHtcbiAgICAgICAgdGhpcy5sb2dGYWlsZWRUZXN0Q2FzZXMoKVxuICAgICAgfVxuICAgIH0pXG4gICAgY29uc3QgcmVydW5PcHRpb25zID0gdmFsdWVPckRlZmF1bHQob3B0aW9ucy5wYXJzZWRBcmd2T3B0aW9ucy5yZXJ1biwge30pXG4gICAgdGhpcy5zZXBhcmF0b3IgPSB2YWx1ZU9yRGVmYXVsdChyZXJ1bk9wdGlvbnMuc2VwYXJhdG9yLCBERUZBVUxUX1NFUEFSQVRPUilcbiAgfVxuXG4gIGdldEZhaWx1cmVNYXAoKTogVXJpVG9MaW5lc01hcCB7XG4gICAgY29uc3QgbWFwcGluZzogVXJpVG9MaW5lc01hcCA9IHt9XG4gICAgdGhpcy5ldmVudERhdGFDb2xsZWN0b3JcbiAgICAgIC5nZXRUZXN0Q2FzZUF0dGVtcHRzKClcbiAgICAgIC5mb3JFYWNoKCh7IGdoZXJraW5Eb2N1bWVudCwgcGlja2xlLCB3b3JzdFRlc3RTdGVwUmVzdWx0LCB3aWxsQmVSZXRyaWVkIH0pID0+IHtcbiAgICAgICAgaWYgKGlzRmFpbGVkQXR0ZW1wdCh3b3JzdFRlc3RTdGVwUmVzdWx0KSAmJiAhd2lsbEJlUmV0cmllZCkge1xuICAgICAgICAgIGNvbnN0IHJlbGF0aXZlVXJpID0gcGlja2xlLnVyaVxuICAgICAgICAgIGNvbnN0IGxpbmUgPVxuICAgICAgICAgICAgZ2V0R2hlcmtpblNjZW5hcmlvTG9jYXRpb25NYXAoZ2hlcmtpbkRvY3VtZW50KVtcbiAgICAgICAgICAgICAgcGlja2xlLmFzdE5vZGVJZHNbcGlja2xlLmFzdE5vZGVJZHMubGVuZ3RoIC0gMV1cbiAgICAgICAgICAgIF0ubGluZVxuICAgICAgICAgIGlmIChkb2VzTm90SGF2ZVZhbHVlKG1hcHBpbmdbcmVsYXRpdmVVcmldKSkge1xuICAgICAgICAgICAgbWFwcGluZ1tyZWxhdGl2ZVVyaV0gPSBbXVxuICAgICAgICAgIH1cbiAgICAgICAgICBtYXBwaW5nW3JlbGF0aXZlVXJpXS5wdXNoKGxpbmUpXG4gICAgICAgIH1cbiAgICAgIH0pXG5cbiAgICByZXR1cm4gbWFwcGluZ1xuICB9XG5cbiAgZm9ybWF0RmFpbGVkVGVzdENhc2VzKCk6IHN0cmluZyB7XG4gICAgY29uc3QgbWFwcGluZyA9IHRoaXMuZ2V0RmFpbHVyZU1hcCgpXG5cbiAgICByZXR1cm4gT2JqZWN0LmtleXMobWFwcGluZylcbiAgICAgIC5tYXAoKHVyaSkgPT4ge1xuICAgICAgICBjb25zdCBsaW5lcyA9IG1hcHBpbmdbdXJpXVxuICAgICAgICByZXR1cm4gYCR7dXJpfToke2xpbmVzLmpvaW4oJzonKX1gXG4gICAgICB9KVxuICAgICAgLmpvaW4odGhpcy5zZXBhcmF0b3IpXG4gIH1cblxuICBsb2dGYWlsZWRUZXN0Q2FzZXMoKTogdm9pZCB7XG4gICAgY29uc3QgZmFpbGVkVGVzdENhc2VzID0gdGhpcy5mb3JtYXRGYWlsZWRUZXN0Q2FzZXMoKVxuICAgIHRoaXMubG9nKGZhaWxlZFRlc3RDYXNlcylcbiAgfVxufVxuIl19
58
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVydW5fZm9ybWF0dGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2Zvcm1hdHRlci9yZXJ1bl9mb3JtYXR0ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxpREFBNkY7QUFDN0Ysb0RBQWtGO0FBQ2xGLDBDQUFzRDtBQUN0RCwrRUFBaUY7QUFFakYsTUFBTSxpQkFBaUIsR0FBRyxJQUFJLENBQUE7QUFNOUIsU0FBUyxlQUFlLENBQUMsbUJBQW1DO0lBQzFELE9BQU8sbUJBQW1CLENBQUMsTUFBTSxLQUFLLCtCQUFvQixDQUFDLE1BQU0sQ0FBQTtBQUNuRSxDQUFDO0FBRUQsTUFBcUIsY0FBZSxTQUFRLFVBQVM7SUFDaEMsU0FBUyxDQUFRO0lBQzdCLE1BQU0sQ0FBVSxhQUFhLEdBQVcseUNBQXlDLENBQUE7SUFFeEYsWUFBWSxPQUEwQjtRQUNwQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUE7UUFDZCxPQUFPLENBQUMsZ0JBQWdCLENBQUMsRUFBRSxDQUFDLFVBQVUsRUFBRSxDQUFDLFFBQWtCLEVBQUUsRUFBRTtZQUM3RCxJQUFJLElBQUEsNkJBQWEsRUFBQyxRQUFRLENBQUMsZUFBZSxDQUFDLEVBQUUsQ0FBQztnQkFDNUMsSUFBSSxDQUFDLGtCQUFrQixFQUFFLENBQUE7WUFDM0IsQ0FBQztRQUNILENBQUMsQ0FBQyxDQUFBO1FBQ0YsTUFBTSxZQUFZLEdBQUcsSUFBQSw4QkFBYyxFQUFDLE9BQU8sQ0FBQyxpQkFBaUIsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUE7UUFDeEUsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFBLDhCQUFjLEVBQUMsWUFBWSxDQUFDLFNBQVMsRUFBRSxpQkFBaUIsQ0FBQyxDQUFBO0lBQzVFLENBQUM7SUFFRCxhQUFhO1FBQ1gsTUFBTSxPQUFPLEdBQWtCLEVBQUUsQ0FBQTtRQUNqQyxJQUFJLENBQUMsa0JBQWtCO2FBQ3BCLG1CQUFtQixFQUFFO2FBQ3JCLE9BQU8sQ0FBQyxDQUFDLEVBQUUsZUFBZSxFQUFFLE1BQU0sRUFBRSxtQkFBbUIsRUFBRSxhQUFhLEVBQUUsRUFBRSxFQUFFO1lBQzNFLElBQUksZUFBZSxDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztnQkFDM0QsTUFBTSxXQUFXLEdBQUcsTUFBTSxDQUFDLEdBQUcsQ0FBQTtnQkFDOUIsTUFBTSxJQUFJLEdBQ1IsSUFBQSx1REFBNkIsRUFBQyxlQUFlLENBQUMsQ0FDNUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FDaEQsQ0FBQyxJQUFJLENBQUE7Z0JBQ1IsSUFBSSxJQUFBLGdDQUFnQixFQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsQ0FBQyxFQUFFLENBQUM7b0JBQzNDLE9BQU8sQ0FBQyxXQUFXLENBQUMsR0FBRyxFQUFFLENBQUE7Z0JBQzNCLENBQUM7Z0JBQ0QsT0FBTyxDQUFDLFdBQVcsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQTtZQUNqQyxDQUFDO1FBQ0gsQ0FBQyxDQUFDLENBQUE7UUFFSixPQUFPLE9BQU8sQ0FBQTtJQUNoQixDQUFDO0lBRUQscUJBQXFCO1FBQ25CLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQTtRQUVwQyxPQUFPLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDO2FBQ3hCLEdBQUcsQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFO1lBQ1gsTUFBTSxLQUFLLEdBQUcsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFBO1lBQzFCLE9BQU8sR0FBRyxHQUFHLElBQUksS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFBO1FBQ3BDLENBQUMsQ0FBQzthQUNELElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUE7SUFDekIsQ0FBQztJQUVELGtCQUFrQjtRQUNoQixNQUFNLGVBQWUsR0FBRyxJQUFJLENBQUMscUJBQXFCLEVBQUUsQ0FBQTtRQUNwRCxJQUFJLENBQUMsR0FBRyxDQUFDLGVBQWUsQ0FBQyxDQUFBO0lBQzNCLENBQUM7O0FBbERILGlDQW1EQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHR5cGUgRW52ZWxvcGUsIHR5cGUgVGVzdFN0ZXBSZXN1bHQsIFRlc3RTdGVwUmVzdWx0U3RhdHVzIH0gZnJvbSAnQGN1Y3VtYmVyL21lc3NhZ2VzJ1xuaW1wb3J0IHsgZG9lc0hhdmVWYWx1ZSwgZG9lc05vdEhhdmVWYWx1ZSwgdmFsdWVPckRlZmF1bHQgfSBmcm9tICcuLi92YWx1ZV9jaGVja2VyJ1xuaW1wb3J0IEZvcm1hdHRlciwgeyB0eXBlIElGb3JtYXR0ZXJPcHRpb25zIH0gZnJvbSAnLi8nXG5pbXBvcnQgeyBnZXRHaGVya2luU2NlbmFyaW9Mb2NhdGlvbk1hcCB9IGZyb20gJy4vaGVscGVycy9naGVya2luX2RvY3VtZW50X3BhcnNlcidcblxuY29uc3QgREVGQVVMVF9TRVBBUkFUT1IgPSAnXFxuJ1xuXG5pbnRlcmZhY2UgVXJpVG9MaW5lc01hcCB7XG4gIFt1cmk6IHN0cmluZ106IG51bWJlcltdXG59XG5cbmZ1bmN0aW9uIGlzRmFpbGVkQXR0ZW1wdCh3b3JzdFRlc3RTdGVwUmVzdWx0OiBUZXN0U3RlcFJlc3VsdCkge1xuICByZXR1cm4gd29yc3RUZXN0U3RlcFJlc3VsdC5zdGF0dXMgIT09IFRlc3RTdGVwUmVzdWx0U3RhdHVzLlBBU1NFRFxufVxuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBSZXJ1bkZvcm1hdHRlciBleHRlbmRzIEZvcm1hdHRlciB7XG4gIHByb3RlY3RlZCByZWFkb25seSBzZXBhcmF0b3I6IHN0cmluZ1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IGRvY3VtZW50YXRpb246IHN0cmluZyA9ICdQcmludHMgZmFpbGluZyBmaWxlcyB3aXRoIGxpbmUgbnVtYmVycy4nXG5cbiAgY29uc3RydWN0b3Iob3B0aW9uczogSUZvcm1hdHRlck9wdGlvbnMpIHtcbiAgICBzdXBlcihvcHRpb25zKVxuICAgIG9wdGlvbnMuZXZlbnRCcm9hZGNhc3Rlci5vbignZW52ZWxvcGUnLCAoZW52ZWxvcGU6IEVudmVsb3BlKSA9PiB7XG4gICAgICBpZiAoZG9lc0hhdmVWYWx1ZShlbnZlbG9wZS50ZXN0UnVuRmluaXNoZWQpKSB7XG4gICAgICAgIHRoaXMubG9nRmFpbGVkVGVzdENhc2VzKClcbiAgICAgIH1cbiAgICB9KVxuICAgIGNvbnN0IHJlcnVuT3B0aW9ucyA9IHZhbHVlT3JEZWZhdWx0KG9wdGlvbnMucGFyc2VkQXJndk9wdGlvbnMucmVydW4sIHt9KVxuICAgIHRoaXMuc2VwYXJhdG9yID0gdmFsdWVPckRlZmF1bHQocmVydW5PcHRpb25zLnNlcGFyYXRvciwgREVGQVVMVF9TRVBBUkFUT1IpXG4gIH1cblxuICBnZXRGYWlsdXJlTWFwKCk6IFVyaVRvTGluZXNNYXAge1xuICAgIGNvbnN0IG1hcHBpbmc6IFVyaVRvTGluZXNNYXAgPSB7fVxuICAgIHRoaXMuZXZlbnREYXRhQ29sbGVjdG9yXG4gICAgICAuZ2V0VGVzdENhc2VBdHRlbXB0cygpXG4gICAgICAuZm9yRWFjaCgoeyBnaGVya2luRG9jdW1lbnQsIHBpY2tsZSwgd29yc3RUZXN0U3RlcFJlc3VsdCwgd2lsbEJlUmV0cmllZCB9KSA9PiB7XG4gICAgICAgIGlmIChpc0ZhaWxlZEF0dGVtcHQod29yc3RUZXN0U3RlcFJlc3VsdCkgJiYgIXdpbGxCZVJldHJpZWQpIHtcbiAgICAgICAgICBjb25zdCByZWxhdGl2ZVVyaSA9IHBpY2tsZS51cmlcbiAgICAgICAgICBjb25zdCBsaW5lID1cbiAgICAgICAgICAgIGdldEdoZXJraW5TY2VuYXJpb0xvY2F0aW9uTWFwKGdoZXJraW5Eb2N1bWVudClbXG4gICAgICAgICAgICAgIHBpY2tsZS5hc3ROb2RlSWRzW3BpY2tsZS5hc3ROb2RlSWRzLmxlbmd0aCAtIDFdXG4gICAgICAgICAgICBdLmxpbmVcbiAgICAgICAgICBpZiAoZG9lc05vdEhhdmVWYWx1ZShtYXBwaW5nW3JlbGF0aXZlVXJpXSkpIHtcbiAgICAgICAgICAgIG1hcHBpbmdbcmVsYXRpdmVVcmldID0gW11cbiAgICAgICAgICB9XG4gICAgICAgICAgbWFwcGluZ1tyZWxhdGl2ZVVyaV0ucHVzaChsaW5lKVxuICAgICAgICB9XG4gICAgICB9KVxuXG4gICAgcmV0dXJuIG1hcHBpbmdcbiAgfVxuXG4gIGZvcm1hdEZhaWxlZFRlc3RDYXNlcygpOiBzdHJpbmcge1xuICAgIGNvbnN0IG1hcHBpbmcgPSB0aGlzLmdldEZhaWx1cmVNYXAoKVxuXG4gICAgcmV0dXJuIE9iamVjdC5rZXlzKG1hcHBpbmcpXG4gICAgICAubWFwKCh1cmkpID0+IHtcbiAgICAgICAgY29uc3QgbGluZXMgPSBtYXBwaW5nW3VyaV1cbiAgICAgICAgcmV0dXJuIGAke3VyaX06JHtsaW5lcy5qb2luKCc6Jyl9YFxuICAgICAgfSlcbiAgICAgIC5qb2luKHRoaXMuc2VwYXJhdG9yKVxuICB9XG5cbiAgbG9nRmFpbGVkVGVzdENhc2VzKCk6IHZvaWQge1xuICAgIGNvbnN0IGZhaWxlZFRlc3RDYXNlcyA9IHRoaXMuZm9ybWF0RmFpbGVkVGVzdENhc2VzKClcbiAgICB0aGlzLmxvZyhmYWlsZWRUZXN0Q2FzZXMpXG4gIH1cbn1cbiJdfQ==
@@ -1,42 +1,9 @@
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
- const messages = __importStar(require("@cucumber/messages"));
6
+ const messages_1 = require("@cucumber/messages");
40
7
  const value_checker_1 = require("../value_checker");
41
8
  const _1 = __importDefault(require("./"));
42
9
  const helpers_1 = require("./helpers");
@@ -59,7 +26,7 @@ class SnippetsFormatter extends _1.default {
59
26
  testCaseAttempt,
60
27
  });
61
28
  parsed.testSteps.forEach((testStep) => {
62
- if (testStep.result.status === messages.TestStepResultStatus.UNDEFINED) {
29
+ if (testStep.result.status === messages_1.TestStepResultStatus.UNDEFINED) {
63
30
  snippets.push(testStep.snippet);
64
31
  }
65
32
  });
@@ -68,4 +35,4 @@ class SnippetsFormatter extends _1.default {
68
35
  }
69
36
  }
70
37
  exports.default = SnippetsFormatter;
71
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic25pcHBldHNfZm9ybWF0dGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2Zvcm1hdHRlci9zbmlwcGV0c19mb3JtYXR0ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSw2REFBOEM7QUFDOUMsb0RBQWdEO0FBQ2hELDBDQUFzRDtBQUN0RCx1Q0FBZ0Q7QUFJaEQsTUFBcUIsaUJBQWtCLFNBQVEsVUFBUztJQUMvQyxNQUFNLENBQVUsYUFBYSxHQUNsQyxpSUFBaUksQ0FBQTtJQUVuSSxZQUFZLE9BQTBCO1FBQ3BDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQTtRQUNkLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxFQUFFLENBQUMsVUFBVSxFQUFFLENBQUMsUUFBbUIsRUFBRSxFQUFFO1lBQzlELElBQUksSUFBQSw2QkFBYSxFQUFDLFFBQVEsQ0FBQyxlQUFlLENBQUMsRUFBRSxDQUFDO2dCQUM1QyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUE7WUFDcEIsQ0FBQztRQUNILENBQUMsQ0FBQyxDQUFBO0lBQ0osQ0FBQztJQUVELFdBQVc7UUFDVCxNQUFNLFFBQVEsR0FBYSxFQUFFLENBQUE7UUFDN0IsSUFBSSxDQUFDLGtCQUFrQixDQUFDLG1CQUFtQixFQUFFLENBQUMsT0FBTyxDQUFDLENBQUMsZUFBZSxFQUFFLEVBQUU7WUFDeEUsTUFBTSxNQUFNLEdBQUcsSUFBQSw4QkFBb0IsRUFBQztnQkFDbEMsY0FBYyxFQUFFLElBQUksQ0FBQyxjQUFjO2dCQUNuQyxrQkFBa0IsRUFBRSxJQUFJLENBQUMsa0JBQWtCO2dCQUMzQyxlQUFlO2FBQ2hCLENBQUMsQ0FBQTtZQUNGLE1BQU0sQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLENBQUMsUUFBUSxFQUFFLEVBQUU7Z0JBQ3BDLElBQUksUUFBUSxDQUFDLE1BQU0sQ0FBQyxNQUFNLEtBQUssUUFBUSxDQUFDLG9CQUFvQixDQUFDLFNBQVMsRUFBRSxDQUFDO29CQUN2RSxRQUFRLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQTtnQkFDakMsQ0FBQztZQUNILENBQUMsQ0FBQyxDQUFBO1FBQ0osQ0FBQyxDQUFDLENBQUE7UUFDRixJQUFJLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQTtJQUNqQyxDQUFDOztBQTVCSCxvQ0E2QkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBtZXNzYWdlcyBmcm9tICdAY3VjdW1iZXIvbWVzc2FnZXMnXG5pbXBvcnQgeyBkb2VzSGF2ZVZhbHVlIH0gZnJvbSAnLi4vdmFsdWVfY2hlY2tlcidcbmltcG9ydCBGb3JtYXR0ZXIsIHsgdHlwZSBJRm9ybWF0dGVyT3B0aW9ucyB9IGZyb20gJy4vJ1xuaW1wb3J0IHsgcGFyc2VUZXN0Q2FzZUF0dGVtcHQgfSBmcm9tICcuL2hlbHBlcnMnXG5cbmltcG9ydCBJRW52ZWxvcGUgPSBtZXNzYWdlcy5FbnZlbG9wZVxuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBTbmlwcGV0c0Zvcm1hdHRlciBleHRlbmRzIEZvcm1hdHRlciB7XG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgZG9jdW1lbnRhdGlvbjogc3RyaW5nID1cbiAgICBcIlRoZSBTbmlwcGV0cyBGb3JtYXR0ZXIgZG9lc24ndCBvdXRwdXQgYW55dGhpbmcgcmVnYXJkaW5nIHRoZSB0ZXN0IHJ1bjsgaXQganVzdCBwcmludHMgc25pcHBldHMgdG8gaW1wbGVtZW50IGFueSB1bmRlZmluZWQgc3RlcHNcIlxuXG4gIGNvbnN0cnVjdG9yKG9wdGlvbnM6IElGb3JtYXR0ZXJPcHRpb25zKSB7XG4gICAgc3VwZXIob3B0aW9ucylcbiAgICBvcHRpb25zLmV2ZW50QnJvYWRjYXN0ZXIub24oJ2VudmVsb3BlJywgKGVudmVsb3BlOiBJRW52ZWxvcGUpID0+IHtcbiAgICAgIGlmIChkb2VzSGF2ZVZhbHVlKGVudmVsb3BlLnRlc3RSdW5GaW5pc2hlZCkpIHtcbiAgICAgICAgdGhpcy5sb2dTbmlwcGV0cygpXG4gICAgICB9XG4gICAgfSlcbiAgfVxuXG4gIGxvZ1NuaXBwZXRzKCk6IHZvaWQge1xuICAgIGNvbnN0IHNuaXBwZXRzOiBzdHJpbmdbXSA9IFtdXG4gICAgdGhpcy5ldmVudERhdGFDb2xsZWN0b3IuZ2V0VGVzdENhc2VBdHRlbXB0cygpLmZvckVhY2goKHRlc3RDYXNlQXR0ZW1wdCkgPT4ge1xuICAgICAgY29uc3QgcGFyc2VkID0gcGFyc2VUZXN0Q2FzZUF0dGVtcHQoe1xuICAgICAgICBzbmlwcGV0QnVpbGRlcjogdGhpcy5zbmlwcGV0QnVpbGRlcixcbiAgICAgICAgc3VwcG9ydENvZGVMaWJyYXJ5OiB0aGlzLnN1cHBvcnRDb2RlTGlicmFyeSxcbiAgICAgICAgdGVzdENhc2VBdHRlbXB0LFxuICAgICAgfSlcbiAgICAgIHBhcnNlZC50ZXN0U3RlcHMuZm9yRWFjaCgodGVzdFN0ZXApID0+IHtcbiAgICAgICAgaWYgKHRlc3RTdGVwLnJlc3VsdC5zdGF0dXMgPT09IG1lc3NhZ2VzLlRlc3RTdGVwUmVzdWx0U3RhdHVzLlVOREVGSU5FRCkge1xuICAgICAgICAgIHNuaXBwZXRzLnB1c2godGVzdFN0ZXAuc25pcHBldClcbiAgICAgICAgfVxuICAgICAgfSlcbiAgICB9KVxuICAgIHRoaXMubG9nKHNuaXBwZXRzLmpvaW4oJ1xcblxcbicpKVxuICB9XG59XG4iXX0=
38
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic25pcHBldHNfZm9ybWF0dGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2Zvcm1hdHRlci9zbmlwcGV0c19mb3JtYXR0ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxpREFBd0U7QUFDeEUsb0RBQWdEO0FBQ2hELDBDQUFzRDtBQUN0RCx1Q0FBZ0Q7QUFJaEQsTUFBcUIsaUJBQWtCLFNBQVEsVUFBUztJQUMvQyxNQUFNLENBQVUsYUFBYSxHQUNsQyxpSUFBaUksQ0FBQTtJQUVuSSxZQUFZLE9BQTBCO1FBQ3BDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQTtRQUNkLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxFQUFFLENBQUMsVUFBVSxFQUFFLENBQUMsUUFBbUIsRUFBRSxFQUFFO1lBQzlELElBQUksSUFBQSw2QkFBYSxFQUFDLFFBQVEsQ0FBQyxlQUFlLENBQUMsRUFBRSxDQUFDO2dCQUM1QyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUE7WUFDcEIsQ0FBQztRQUNILENBQUMsQ0FBQyxDQUFBO0lBQ0osQ0FBQztJQUVELFdBQVc7UUFDVCxNQUFNLFFBQVEsR0FBYSxFQUFFLENBQUE7UUFDN0IsSUFBSSxDQUFDLGtCQUFrQixDQUFDLG1CQUFtQixFQUFFLENBQUMsT0FBTyxDQUFDLENBQUMsZUFBZSxFQUFFLEVBQUU7WUFDeEUsTUFBTSxNQUFNLEdBQUcsSUFBQSw4QkFBb0IsRUFBQztnQkFDbEMsY0FBYyxFQUFFLElBQUksQ0FBQyxjQUFjO2dCQUNuQyxrQkFBa0IsRUFBRSxJQUFJLENBQUMsa0JBQWtCO2dCQUMzQyxlQUFlO2FBQ2hCLENBQUMsQ0FBQTtZQUNGLE1BQU0sQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLENBQUMsUUFBUSxFQUFFLEVBQUU7Z0JBQ3BDLElBQUksUUFBUSxDQUFDLE1BQU0sQ0FBQyxNQUFNLEtBQUssK0JBQW9CLENBQUMsU0FBUyxFQUFFLENBQUM7b0JBQzlELFFBQVEsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFBO2dCQUNqQyxDQUFDO1lBQ0gsQ0FBQyxDQUFDLENBQUE7UUFDSixDQUFDLENBQUMsQ0FBQTtRQUNGLElBQUksQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFBO0lBQ2pDLENBQUM7O0FBNUJILG9DQTZCQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHR5cGUgRW52ZWxvcGUsIFRlc3RTdGVwUmVzdWx0U3RhdHVzIH0gZnJvbSAnQGN1Y3VtYmVyL21lc3NhZ2VzJ1xuaW1wb3J0IHsgZG9lc0hhdmVWYWx1ZSB9IGZyb20gJy4uL3ZhbHVlX2NoZWNrZXInXG5pbXBvcnQgRm9ybWF0dGVyLCB7IHR5cGUgSUZvcm1hdHRlck9wdGlvbnMgfSBmcm9tICcuLydcbmltcG9ydCB7IHBhcnNlVGVzdENhc2VBdHRlbXB0IH0gZnJvbSAnLi9oZWxwZXJzJ1xuXG50eXBlIElFbnZlbG9wZSA9IEVudmVsb3BlXG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFNuaXBwZXRzRm9ybWF0dGVyIGV4dGVuZHMgRm9ybWF0dGVyIHtcbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBkb2N1bWVudGF0aW9uOiBzdHJpbmcgPVxuICAgIFwiVGhlIFNuaXBwZXRzIEZvcm1hdHRlciBkb2Vzbid0IG91dHB1dCBhbnl0aGluZyByZWdhcmRpbmcgdGhlIHRlc3QgcnVuOyBpdCBqdXN0IHByaW50cyBzbmlwcGV0cyB0byBpbXBsZW1lbnQgYW55IHVuZGVmaW5lZCBzdGVwc1wiXG5cbiAgY29uc3RydWN0b3Iob3B0aW9uczogSUZvcm1hdHRlck9wdGlvbnMpIHtcbiAgICBzdXBlcihvcHRpb25zKVxuICAgIG9wdGlvbnMuZXZlbnRCcm9hZGNhc3Rlci5vbignZW52ZWxvcGUnLCAoZW52ZWxvcGU6IElFbnZlbG9wZSkgPT4ge1xuICAgICAgaWYgKGRvZXNIYXZlVmFsdWUoZW52ZWxvcGUudGVzdFJ1bkZpbmlzaGVkKSkge1xuICAgICAgICB0aGlzLmxvZ1NuaXBwZXRzKClcbiAgICAgIH1cbiAgICB9KVxuICB9XG5cbiAgbG9nU25pcHBldHMoKTogdm9pZCB7XG4gICAgY29uc3Qgc25pcHBldHM6IHN0cmluZ1tdID0gW11cbiAgICB0aGlzLmV2ZW50RGF0YUNvbGxlY3Rvci5nZXRUZXN0Q2FzZUF0dGVtcHRzKCkuZm9yRWFjaCgodGVzdENhc2VBdHRlbXB0KSA9PiB7XG4gICAgICBjb25zdCBwYXJzZWQgPSBwYXJzZVRlc3RDYXNlQXR0ZW1wdCh7XG4gICAgICAgIHNuaXBwZXRCdWlsZGVyOiB0aGlzLnNuaXBwZXRCdWlsZGVyLFxuICAgICAgICBzdXBwb3J0Q29kZUxpYnJhcnk6IHRoaXMuc3VwcG9ydENvZGVMaWJyYXJ5LFxuICAgICAgICB0ZXN0Q2FzZUF0dGVtcHQsXG4gICAgICB9KVxuICAgICAgcGFyc2VkLnRlc3RTdGVwcy5mb3JFYWNoKCh0ZXN0U3RlcCkgPT4ge1xuICAgICAgICBpZiAodGVzdFN0ZXAucmVzdWx0LnN0YXR1cyA9PT0gVGVzdFN0ZXBSZXN1bHRTdGF0dXMuVU5ERUZJTkVEKSB7XG4gICAgICAgICAgc25pcHBldHMucHVzaCh0ZXN0U3RlcC5zbmlwcGV0KVxuICAgICAgICB9XG4gICAgICB9KVxuICAgIH0pXG4gICAgdGhpcy5sb2coc25pcHBldHMuam9pbignXFxuXFxuJykpXG4gIH1cbn1cbiJdfQ==