@serenity-js/cucumber 3.4.1 → 3.5.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 (162) hide show
  1. package/CHANGELOG.md +19 -0
  2. package/lib/adapter/CucumberCLIAdapter.d.ts +5 -5
  3. package/lib/adapter/CucumberCLIAdapter.d.ts.map +1 -1
  4. package/lib/adapter/CucumberCLIAdapter.js.map +1 -1
  5. package/lib/adapter/CucumberOptions.d.ts +3 -2
  6. package/lib/adapter/CucumberOptions.d.ts.map +1 -1
  7. package/lib/adapter/CucumberOptions.js.map +1 -1
  8. package/lib/adapter/output/SerenityFormatterOutput.d.ts +1 -1
  9. package/lib/adapter/output/SerenityFormatterOutput.d.ts.map +1 -1
  10. package/lib/adapter/output/StandardOutput.d.ts +2 -2
  11. package/lib/adapter/output/StandardOutput.d.ts.map +1 -1
  12. package/lib/adapter/output/StandardOutputDescriptor.d.ts +1 -1
  13. package/lib/adapter/output/StandardOutputDescriptor.d.ts.map +1 -1
  14. package/lib/adapter/output/TempFileOutput.d.ts +3 -3
  15. package/lib/adapter/output/TempFileOutput.d.ts.map +1 -1
  16. package/lib/adapter/output/TempFileOutputDescriptor.d.ts +2 -2
  17. package/lib/adapter/output/TempFileOutputDescriptor.d.ts.map +1 -1
  18. package/lib/listeners/legacy/CucumberEventProtocolAdapter.d.ts +3 -3
  19. package/lib/listeners/legacy/CucumberEventProtocolAdapter.d.ts.map +1 -1
  20. package/lib/listeners/legacy/CucumberEventProtocolAdapter.js.map +1 -1
  21. package/lib/listeners/legacy/CucumberFormatterOptions.d.ts +1 -1
  22. package/lib/listeners/legacy/CucumberFormatterOptions.d.ts.map +1 -1
  23. package/lib/listeners/legacy/Dependencies.d.ts +4 -4
  24. package/lib/listeners/legacy/Dependencies.d.ts.map +1 -1
  25. package/lib/listeners/legacy/cucumber-0.d.ts +1 -1
  26. package/lib/listeners/legacy/cucumber-0.d.ts.map +1 -1
  27. package/lib/listeners/legacy/cucumber-0.js.map +1 -1
  28. package/lib/listeners/legacy/cucumber-2.d.ts +1 -1
  29. package/lib/listeners/legacy/cucumber-2.d.ts.map +1 -1
  30. package/lib/listeners/legacy/cucumber-3.d.ts +1 -1
  31. package/lib/listeners/legacy/cucumber-3.d.ts.map +1 -1
  32. package/lib/listeners/legacy/cucumber-4.d.ts +1 -1
  33. package/lib/listeners/legacy/cucumber-4.d.ts.map +1 -1
  34. package/lib/listeners/legacy/gherkin/feature-files/Cache.d.ts +1 -1
  35. package/lib/listeners/legacy/gherkin/feature-files/Cache.d.ts.map +1 -1
  36. package/lib/listeners/legacy/gherkin/feature-files/FeatureFileLoader.d.ts +4 -4
  37. package/lib/listeners/legacy/gherkin/feature-files/FeatureFileLoader.d.ts.map +1 -1
  38. package/lib/listeners/legacy/gherkin/feature-files/FeatureFileMap.d.ts +1 -1
  39. package/lib/listeners/legacy/gherkin/feature-files/FeatureFileMap.d.ts.map +1 -1
  40. package/lib/listeners/legacy/gherkin/feature-files/FeatureFileMapper.d.ts +2 -2
  41. package/lib/listeners/legacy/gherkin/feature-files/FeatureFileMapper.d.ts.map +1 -1
  42. package/lib/listeners/legacy/gherkin/feature-files/FeatureFileMapper.js.map +1 -1
  43. package/lib/listeners/legacy/gherkin/feature-files/FeatureFileParser.d.ts +2 -2
  44. package/lib/listeners/legacy/gherkin/feature-files/FeatureFileParser.d.ts.map +1 -1
  45. package/lib/listeners/legacy/gherkin/model/Background.d.ts +3 -3
  46. package/lib/listeners/legacy/gherkin/model/Background.d.ts.map +1 -1
  47. package/lib/listeners/legacy/gherkin/model/Feature.d.ts +3 -3
  48. package/lib/listeners/legacy/gherkin/model/Feature.d.ts.map +1 -1
  49. package/lib/listeners/legacy/gherkin/model/FeatureFileNode.d.ts +2 -2
  50. package/lib/listeners/legacy/gherkin/model/FeatureFileNode.d.ts.map +1 -1
  51. package/lib/listeners/legacy/gherkin/model/Scenario.d.ts +4 -4
  52. package/lib/listeners/legacy/gherkin/model/Scenario.d.ts.map +1 -1
  53. package/lib/listeners/legacy/gherkin/model/ScenarioOutline.d.ts +3 -3
  54. package/lib/listeners/legacy/gherkin/model/ScenarioOutline.d.ts.map +1 -1
  55. package/lib/listeners/legacy/gherkin/nodes/ASTNode.d.ts +1 -1
  56. package/lib/listeners/legacy/gherkin/nodes/ASTNode.d.ts.map +1 -1
  57. package/lib/listeners/legacy/gherkin/nodes/Background.d.ts +1 -1
  58. package/lib/listeners/legacy/gherkin/nodes/Background.d.ts.map +1 -1
  59. package/lib/listeners/legacy/gherkin/nodes/Comment.d.ts +1 -1
  60. package/lib/listeners/legacy/gherkin/nodes/Comment.d.ts.map +1 -1
  61. package/lib/listeners/legacy/gherkin/nodes/DataTable.d.ts +2 -2
  62. package/lib/listeners/legacy/gherkin/nodes/DataTable.d.ts.map +1 -1
  63. package/lib/listeners/legacy/gherkin/nodes/DocString.d.ts +1 -1
  64. package/lib/listeners/legacy/gherkin/nodes/DocString.d.ts.map +1 -1
  65. package/lib/listeners/legacy/gherkin/nodes/Examples.d.ts +3 -3
  66. package/lib/listeners/legacy/gherkin/nodes/Examples.d.ts.map +1 -1
  67. package/lib/listeners/legacy/gherkin/nodes/Feature.d.ts +3 -3
  68. package/lib/listeners/legacy/gherkin/nodes/Feature.d.ts.map +1 -1
  69. package/lib/listeners/legacy/gherkin/nodes/GherkinDocument.d.ts +2 -2
  70. package/lib/listeners/legacy/gherkin/nodes/GherkinDocument.d.ts.map +1 -1
  71. package/lib/listeners/legacy/gherkin/nodes/Scenario.d.ts +2 -2
  72. package/lib/listeners/legacy/gherkin/nodes/Scenario.d.ts.map +1 -1
  73. package/lib/listeners/legacy/gherkin/nodes/ScenarioDefinition.d.ts +3 -3
  74. package/lib/listeners/legacy/gherkin/nodes/ScenarioDefinition.d.ts.map +1 -1
  75. package/lib/listeners/legacy/gherkin/nodes/ScenarioOutline.d.ts +3 -3
  76. package/lib/listeners/legacy/gherkin/nodes/ScenarioOutline.d.ts.map +1 -1
  77. package/lib/listeners/legacy/gherkin/nodes/Step.d.ts +2 -2
  78. package/lib/listeners/legacy/gherkin/nodes/Step.d.ts.map +1 -1
  79. package/lib/listeners/legacy/gherkin/nodes/StepArgument.d.ts +1 -1
  80. package/lib/listeners/legacy/gherkin/nodes/StepArgument.d.ts.map +1 -1
  81. package/lib/listeners/legacy/gherkin/nodes/TableCell.d.ts +1 -1
  82. package/lib/listeners/legacy/gherkin/nodes/TableCell.d.ts.map +1 -1
  83. package/lib/listeners/legacy/gherkin/nodes/TableRow.d.ts +2 -2
  84. package/lib/listeners/legacy/gherkin/nodes/TableRow.d.ts.map +1 -1
  85. package/lib/listeners/legacy/gherkin/nodes/Tag.d.ts +1 -1
  86. package/lib/listeners/legacy/gherkin/nodes/Tag.d.ts.map +1 -1
  87. package/lib/listeners/legacy/index.d.ts +2 -2
  88. package/lib/listeners/legacy/index.d.ts.map +1 -1
  89. package/lib/listeners/legacy/index.js.map +1 -1
  90. package/lib/listeners/legacy/notifier/Notifier.d.ts +3 -3
  91. package/lib/listeners/legacy/notifier/Notifier.d.ts.map +1 -1
  92. package/lib/listeners/legacy/notifier/Notifier.js.map +1 -1
  93. package/lib/listeners/legacy/notifier/ResultMapper.d.ts +2 -2
  94. package/lib/listeners/legacy/notifier/ResultMapper.d.ts.map +1 -1
  95. package/lib/listeners/legacy/notifier/ResultMapper.js.map +1 -1
  96. package/lib/listeners/messages/CucumberMessagesListener.d.ts +3 -3
  97. package/lib/listeners/messages/CucumberMessagesListener.d.ts.map +1 -1
  98. package/lib/listeners/messages/CucumberMessagesListener.js.map +1 -1
  99. package/lib/listeners/messages/index.d.ts +2 -2
  100. package/lib/listeners/messages/index.d.ts.map +1 -1
  101. package/lib/listeners/messages/parser/CucumberMessagesParser.d.ts +4 -4
  102. package/lib/listeners/messages/parser/CucumberMessagesParser.d.ts.map +1 -1
  103. package/lib/listeners/messages/parser/CucumberMessagesParser.js.map +1 -1
  104. package/lib/listeners/messages/parser/TestStepFormatter.d.ts +1 -1
  105. package/lib/listeners/messages/parser/TestStepFormatter.d.ts.map +1 -1
  106. package/lib/listeners/messages/parser/types/ExtractedScenario.d.ts +1 -1
  107. package/lib/listeners/messages/parser/types/ExtractedScenario.d.ts.map +1 -1
  108. package/lib/listeners/messages/parser/types/ExtractedScenarioOutline.d.ts +1 -1
  109. package/lib/listeners/messages/parser/types/ExtractedScenarioOutline.d.ts.map +1 -1
  110. package/lib/listeners/messages/types/cucumber.d.ts +1 -1
  111. package/lib/listeners/messages/types/cucumber.d.ts.map +1 -1
  112. package/package.json +4 -4
  113. package/src/adapter/CucumberCLIAdapter.ts +7 -5
  114. package/src/adapter/CucumberOptions.ts +3 -2
  115. package/src/adapter/output/SerenityFormatterOutput.ts +1 -1
  116. package/src/adapter/output/StandardOutput.ts +2 -2
  117. package/src/adapter/output/StandardOutputDescriptor.ts +1 -1
  118. package/src/adapter/output/TempFileOutput.ts +3 -3
  119. package/src/adapter/output/TempFileOutputDescriptor.ts +2 -2
  120. package/src/listeners/legacy/CucumberEventProtocolAdapter.ts +5 -4
  121. package/src/listeners/legacy/CucumberFormatterOptions.ts +1 -1
  122. package/src/listeners/legacy/Dependencies.ts +4 -4
  123. package/src/listeners/legacy/cucumber-0.ts +3 -2
  124. package/src/listeners/legacy/cucumber-2.ts +1 -1
  125. package/src/listeners/legacy/cucumber-3.ts +1 -1
  126. package/src/listeners/legacy/cucumber-4.ts +1 -1
  127. package/src/listeners/legacy/gherkin/feature-files/Cache.ts +1 -1
  128. package/src/listeners/legacy/gherkin/feature-files/FeatureFileLoader.ts +4 -4
  129. package/src/listeners/legacy/gherkin/feature-files/FeatureFileMap.ts +1 -1
  130. package/src/listeners/legacy/gherkin/feature-files/FeatureFileMapper.ts +5 -3
  131. package/src/listeners/legacy/gherkin/feature-files/FeatureFileParser.ts +2 -2
  132. package/src/listeners/legacy/gherkin/model/Background.ts +3 -3
  133. package/src/listeners/legacy/gherkin/model/Feature.ts +3 -3
  134. package/src/listeners/legacy/gherkin/model/FeatureFileNode.ts +2 -2
  135. package/src/listeners/legacy/gherkin/model/Scenario.ts +4 -4
  136. package/src/listeners/legacy/gherkin/model/ScenarioOutline.ts +3 -3
  137. package/src/listeners/legacy/gherkin/nodes/ASTNode.ts +1 -1
  138. package/src/listeners/legacy/gherkin/nodes/Background.ts +1 -1
  139. package/src/listeners/legacy/gherkin/nodes/Comment.ts +1 -1
  140. package/src/listeners/legacy/gherkin/nodes/DataTable.ts +2 -2
  141. package/src/listeners/legacy/gherkin/nodes/DocString.ts +1 -1
  142. package/src/listeners/legacy/gherkin/nodes/Examples.ts +3 -3
  143. package/src/listeners/legacy/gherkin/nodes/Feature.ts +3 -3
  144. package/src/listeners/legacy/gherkin/nodes/GherkinDocument.ts +2 -2
  145. package/src/listeners/legacy/gherkin/nodes/Scenario.ts +2 -2
  146. package/src/listeners/legacy/gherkin/nodes/ScenarioDefinition.ts +3 -3
  147. package/src/listeners/legacy/gherkin/nodes/ScenarioOutline.ts +3 -3
  148. package/src/listeners/legacy/gherkin/nodes/Step.ts +2 -2
  149. package/src/listeners/legacy/gherkin/nodes/StepArgument.ts +1 -1
  150. package/src/listeners/legacy/gherkin/nodes/TableCell.ts +1 -1
  151. package/src/listeners/legacy/gherkin/nodes/TableRow.ts +2 -2
  152. package/src/listeners/legacy/gherkin/nodes/Tag.ts +1 -1
  153. package/src/listeners/legacy/index.ts +5 -3
  154. package/src/listeners/legacy/notifier/Notifier.ts +6 -4
  155. package/src/listeners/legacy/notifier/ResultMapper.ts +6 -4
  156. package/src/listeners/messages/CucumberMessagesListener.ts +7 -5
  157. package/src/listeners/messages/index.ts +2 -2
  158. package/src/listeners/messages/parser/CucumberMessagesParser.ts +13 -8
  159. package/src/listeners/messages/parser/TestStepFormatter.ts +1 -1
  160. package/src/listeners/messages/parser/types/ExtractedScenario.ts +1 -1
  161. package/src/listeners/messages/parser/types/ExtractedScenarioOutline.ts +1 -1
  162. package/src/listeners/messages/types/cucumber.ts +1 -1
@@ -1,4 +1,4 @@
1
- import { OutputDescriptor } from './OutputDescriptor';
1
+ import type { OutputDescriptor } from './OutputDescriptor';
2
2
 
3
3
  /**
4
4
  * @group Integration
@@ -1,5 +1,5 @@
1
- import { OutputDescriptor } from './OutputDescriptor';
2
- import { SerenityFormatterOutput } from './SerenityFormatterOutput';
1
+ import type { OutputDescriptor } from './OutputDescriptor';
2
+ import type { SerenityFormatterOutput } from './SerenityFormatterOutput';
3
3
  import { StandardOutputDescriptor } from './StandardOutputDescriptor';
4
4
 
5
5
  /**
@@ -1,4 +1,4 @@
1
- import { OutputDescriptor } from './OutputDescriptor';
1
+ import type { OutputDescriptor } from './OutputDescriptor';
2
2
 
3
3
  /**
4
4
  * @group Integration
@@ -1,8 +1,8 @@
1
1
  /* eslint-disable unicorn/prevent-abbreviations */
2
- import { FileSystem } from '@serenity-js/core/lib/io';
2
+ import type { FileSystem } from '@serenity-js/core/lib/io';
3
3
 
4
- import { OutputDescriptor } from './OutputDescriptor';
5
- import { SerenityFormatterOutput } from './SerenityFormatterOutput';
4
+ import type { OutputDescriptor } from './OutputDescriptor';
5
+ import type { SerenityFormatterOutput } from './SerenityFormatterOutput';
6
6
  import { TempFileOutputDescriptor } from './TempFileOutputDescriptor';
7
7
 
8
8
  /**
@@ -1,7 +1,7 @@
1
1
  /* eslint-disable unicorn/prevent-abbreviations */
2
- import { FileSystem, Path } from '@serenity-js/core/lib/io';
2
+ import type { FileSystem, Path } from '@serenity-js/core/lib/io';
3
3
 
4
- import { OutputDescriptor } from './OutputDescriptor';
4
+ import type { OutputDescriptor } from './OutputDescriptor';
5
5
 
6
6
  /**
7
7
  * Cucumber.js allows [max 1 formatter per output](https://github.com/cucumber/cucumber-js/blob/625fab034eea768bf74f7a46993a57182204ddf6/src/cli/index.ts#L83-L140)
@@ -1,6 +1,8 @@
1
1
  import { RuntimeError } from '@serenity-js/core';
2
2
  import { AssertionError, ErrorSerialiser, ImplementationPendingError, TestCompromisedError } from '@serenity-js/core/lib/errors';
3
3
  import { FileSystemLocation, Path } from '@serenity-js/core/lib/io';
4
+ import type {
5
+ Outcome} from '@serenity-js/core/lib/model';
4
6
  import {
5
7
  ExecutionCompromised,
6
8
  ExecutionFailedWithAssertionError,
@@ -8,14 +10,13 @@ import {
8
10
  ExecutionSkipped,
9
11
  ExecutionSuccessful,
10
12
  ImplementationPending,
11
- Name,
12
- Outcome,
13
+ Name
13
14
  } from '@serenity-js/core/lib/model';
14
15
  import { ensure, isDefined } from 'tiny-types';
15
16
 
16
17
  import { AmbiguousStepDefinitionError } from '../../errors';
17
- import { CucumberFormatterOptions } from './CucumberFormatterOptions';
18
- import { Dependencies } from './Dependencies';
18
+ import type { CucumberFormatterOptions } from './CucumberFormatterOptions';
19
+ import type { Dependencies } from './Dependencies';
19
20
  import { Feature, Hook, Scenario, ScenarioOutline, Step } from './gherkin';
20
21
 
21
22
  interface Location {
@@ -1,4 +1,4 @@
1
- import { EventEmitter } from 'events';
1
+ import type { EventEmitter } from 'events';
2
2
 
3
3
  /**
4
4
  * @private
@@ -1,8 +1,8 @@
1
- import { Serenity } from '@serenity-js/core';
2
- import { Path } from '@serenity-js/core/lib/io';
1
+ import type { Serenity } from '@serenity-js/core';
2
+ import type { Path } from '@serenity-js/core/lib/io';
3
3
 
4
- import { Cache, FeatureFileLoader, FeatureFileMap, FeatureFileMapper } from './gherkin';
5
- import { Notifier, ResultMapper } from './notifier';
4
+ import type { Cache, FeatureFileLoader, FeatureFileMap, FeatureFileMapper } from './gherkin';
5
+ import type { Notifier, ResultMapper } from './notifier';
6
6
 
7
7
  /**
8
8
  * @private
@@ -2,8 +2,9 @@ import { Path } from '@serenity-js/core/lib/io';
2
2
  import { ExecutionFailedWithError, ExecutionSuccessful } from '@serenity-js/core/lib/model';
3
3
 
4
4
  import { AmbiguousStepDefinitionError } from '../../errors';
5
- import { Dependencies } from './Dependencies';
6
- import { Feature, FeatureFileMap, Scenario, ScenarioOutline, Step } from './gherkin';
5
+ import type { Dependencies } from './Dependencies';
6
+ import type { FeatureFileMap, Step } from './gherkin';
7
+ import { Feature, Scenario, ScenarioOutline } from './gherkin';
7
8
 
8
9
  export = function ({ serenity, notifier, resultMapper, loader, cache }: Dependencies) {
9
10
  return function (): void {
@@ -1,4 +1,4 @@
1
- import { Dependencies } from './Dependencies';
1
+ import type { Dependencies } from './Dependencies';
2
2
 
3
3
  // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types
4
4
  export = function ({ serenity, notifier, resultMapper, loader, cucumber, cache }: Dependencies) {
@@ -1,7 +1,7 @@
1
1
  import { ExecutionFailedWithError, ExecutionSuccessful } from '@serenity-js/core/lib/model';
2
2
 
3
3
  import { cucumberEventProtocolAdapter } from './CucumberEventProtocolAdapter';
4
- import { Dependencies } from './Dependencies';
4
+ import type { Dependencies } from './Dependencies';
5
5
 
6
6
  // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types
7
7
  export = function (dependencies: Dependencies) {
@@ -1,7 +1,7 @@
1
1
  import { ExecutionFailedWithError, ExecutionSuccessful } from '@serenity-js/core/lib/model';
2
2
 
3
3
  import { cucumberEventProtocolAdapter } from './CucumberEventProtocolAdapter';
4
- import { Dependencies } from './Dependencies';
4
+ import type { Dependencies } from './Dependencies';
5
5
 
6
6
  // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types
7
7
  export = function (dependencies: Dependencies) {
@@ -1,4 +1,4 @@
1
- import { TinyType } from 'tiny-types';
1
+ import type { TinyType } from 'tiny-types';
2
2
 
3
3
  import { UnableToRetrieveFeatureFileMap } from './errors';
4
4
 
@@ -1,9 +1,9 @@
1
- import { Path } from '@serenity-js/core/lib/io';
1
+ import type { Path } from '@serenity-js/core/lib/io';
2
2
 
3
3
  import { Cache } from './Cache';
4
- import { FeatureFileMap } from './FeatureFileMap';
5
- import { FeatureFileMapper } from './FeatureFileMapper';
6
- import { FeatureFileParser } from './FeatureFileParser';
4
+ import type { FeatureFileMap } from './FeatureFileMap';
5
+ import type { FeatureFileMapper } from './FeatureFileMapper';
6
+ import type { FeatureFileParser } from './FeatureFileParser';
7
7
 
8
8
  /**
9
9
  * @private
@@ -1,6 +1,6 @@
1
1
  /* eslint-disable @typescript-eslint/ban-types */
2
2
 
3
- import { Constructor } from '../constructables';
3
+ import type { Constructor } from '../constructables';
4
4
  import { ItemNotFoundError } from './errors';
5
5
 
6
6
  /**
@@ -1,8 +1,10 @@
1
- import { FileSystemLocation, Path } from '@serenity-js/core/lib/io';
2
- import { Description, Name, ScenarioParameters, Tag, Tags } from '@serenity-js/core/lib/model';
1
+ import type { Path } from '@serenity-js/core/lib/io';
2
+ import { FileSystemLocation } from '@serenity-js/core/lib/io';
3
+ import type { Tag} from '@serenity-js/core/lib/model';
4
+ import { Description, Name, ScenarioParameters, Tags } from '@serenity-js/core/lib/model';
3
5
 
4
6
  import { Background, Feature, Scenario, ScenarioOutline, Step } from '../model';
5
- import * as nodes from '../nodes';
7
+ import type * as nodes from '../nodes';
6
8
  import { FeatureFileMap } from './FeatureFileMap';
7
9
 
8
10
  /**
@@ -1,7 +1,7 @@
1
- import { Path } from '@serenity-js/core/lib/io';
1
+ import type { Path } from '@serenity-js/core/lib/io';
2
2
  import * as fs from 'fs';
3
3
 
4
- import { GherkinDocument } from '../nodes';
4
+ import type { GherkinDocument } from '../nodes';
5
5
  import { UnableToParseFeatureFileError, UnableToReadFeatureFileError } from './errors';
6
6
 
7
7
  /**
@@ -1,8 +1,8 @@
1
- import { FileSystemLocation } from '@serenity-js/core/lib/io';
2
- import { Description, Name } from '@serenity-js/core/lib/model';
1
+ import type { FileSystemLocation } from '@serenity-js/core/lib/io';
2
+ import type { Description, Name } from '@serenity-js/core/lib/model';
3
3
 
4
4
  import { FeatureFileNode } from './FeatureFileNode';
5
- import { Step } from './Step';
5
+ import type { Step } from './Step';
6
6
 
7
7
  /**
8
8
  * @private
@@ -1,7 +1,7 @@
1
- import { FileSystemLocation } from '@serenity-js/core/lib/io';
2
- import { Description, Name } from '@serenity-js/core/lib/model';
1
+ import type { FileSystemLocation } from '@serenity-js/core/lib/io';
2
+ import type { Description, Name } from '@serenity-js/core/lib/model';
3
3
 
4
- import { Background } from './Background';
4
+ import type { Background } from './Background';
5
5
  import { FeatureFileNode } from './FeatureFileNode';
6
6
 
7
7
  /**
@@ -1,5 +1,5 @@
1
- import { FileSystemLocation } from '@serenity-js/core/lib/io';
2
- import { Name } from '@serenity-js/core/lib/model';
1
+ import type { FileSystemLocation } from '@serenity-js/core/lib/io';
2
+ import type { Name } from '@serenity-js/core/lib/model';
3
3
  import { TinyType } from 'tiny-types';
4
4
 
5
5
  /**
@@ -1,9 +1,9 @@
1
- import { FileSystemLocation } from '@serenity-js/core/lib/io';
2
- import { Description, Name, Tag } from '@serenity-js/core/lib/model';
1
+ import type { FileSystemLocation } from '@serenity-js/core/lib/io';
2
+ import type { Description, Name, Tag } from '@serenity-js/core/lib/model';
3
3
 
4
4
  import { FeatureFileNode } from './FeatureFileNode';
5
- import { Hook } from './Hook';
6
- import { Step } from './Step';
5
+ import type { Hook } from './Hook';
6
+ import type { Step } from './Step';
7
7
 
8
8
  /**
9
9
  * @private
@@ -1,8 +1,8 @@
1
- import { FileSystemLocation } from '@serenity-js/core/lib/io';
2
- import { Description, Name, ScenarioParameters } from '@serenity-js/core/lib/model';
1
+ import type { FileSystemLocation } from '@serenity-js/core/lib/io';
2
+ import type { Description, Name, ScenarioParameters } from '@serenity-js/core/lib/model';
3
3
 
4
4
  import { FeatureFileNode } from './FeatureFileNode';
5
- import { Step } from './Step';
5
+ import type { Step } from './Step';
6
6
 
7
7
  /**
8
8
  * @private
@@ -1,4 +1,4 @@
1
- import { Location } from './Location';
1
+ import type { Location } from './Location';
2
2
 
3
3
  /**
4
4
  * @private
@@ -1,4 +1,4 @@
1
- import { ScenarioDefinition } from './ScenarioDefinition';
1
+ import type { ScenarioDefinition } from './ScenarioDefinition';
2
2
 
3
3
  /**
4
4
  * @private
@@ -1,4 +1,4 @@
1
- import { ASTNode } from './ASTNode';
1
+ import type { ASTNode } from './ASTNode';
2
2
 
3
3
  /**
4
4
  * @private
@@ -1,5 +1,5 @@
1
- import { StepArgument } from './StepArgument';
2
- import { TableRow } from './TableRow';
1
+ import type { StepArgument } from './StepArgument';
2
+ import type { TableRow } from './TableRow';
3
3
 
4
4
  /**
5
5
  * @private
@@ -1,4 +1,4 @@
1
- import { StepArgument } from './StepArgument';
1
+ import type { StepArgument } from './StepArgument';
2
2
 
3
3
  /**
4
4
  * @private
@@ -1,6 +1,6 @@
1
- import { ASTNode } from './ASTNode';
2
- import { TableRow } from './TableRow';
3
- import { Tag } from './Tag';
1
+ import type { ASTNode } from './ASTNode';
2
+ import type { TableRow } from './TableRow';
3
+ import type { Tag } from './Tag';
4
4
 
5
5
  /**
6
6
  * @private
@@ -1,6 +1,6 @@
1
- import { ASTNode } from './ASTNode';
2
- import { ScenarioDefinition } from './ScenarioDefinition';
3
- import { Tag } from './Tag';
1
+ import type { ASTNode } from './ASTNode';
2
+ import type { ScenarioDefinition } from './ScenarioDefinition';
3
+ import type { Tag } from './Tag';
4
4
 
5
5
  /**
6
6
  * @private
@@ -1,5 +1,5 @@
1
- import { Comment } from './Comment';
2
- import { Feature } from './Feature';
1
+ import type { Comment } from './Comment';
2
+ import type { Feature } from './Feature';
3
3
 
4
4
  /**
5
5
  * @private
@@ -1,5 +1,5 @@
1
- import { ScenarioDefinition } from './ScenarioDefinition';
2
- import { Tag } from './Tag';
1
+ import type { ScenarioDefinition } from './ScenarioDefinition';
2
+ import type { Tag } from './Tag';
3
3
 
4
4
  /**
5
5
  * @private
@@ -1,6 +1,6 @@
1
- import { ASTNode } from './ASTNode';
2
- import { Step } from './Step';
3
- import { Tag } from './Tag';
1
+ import type { ASTNode } from './ASTNode';
2
+ import type { Step } from './Step';
3
+ import type { Tag } from './Tag';
4
4
 
5
5
  /**
6
6
  * @private
@@ -1,6 +1,6 @@
1
- import { Examples } from './Examples';
2
- import { ScenarioDefinition } from './ScenarioDefinition';
3
- import { Tag } from './Tag';
1
+ import type { Examples } from './Examples';
2
+ import type { ScenarioDefinition } from './ScenarioDefinition';
3
+ import type { Tag } from './Tag';
4
4
 
5
5
  /**
6
6
  * @private
@@ -1,5 +1,5 @@
1
- import { ASTNode } from './ASTNode';
2
- import { StepArgument } from './StepArgument';
1
+ import type { ASTNode } from './ASTNode';
2
+ import type { StepArgument } from './StepArgument';
3
3
 
4
4
  /**
5
5
  * @private
@@ -1,4 +1,4 @@
1
- import { ASTNode } from './ASTNode';
1
+ import type { ASTNode } from './ASTNode';
2
2
 
3
3
  /**
4
4
  * @private
@@ -1,4 +1,4 @@
1
- import { ASTNode } from './ASTNode';
1
+ import type { ASTNode } from './ASTNode';
2
2
 
3
3
  /**
4
4
  * @private
@@ -1,5 +1,5 @@
1
- import { ASTNode } from './ASTNode';
2
- import { TableCell } from './TableCell';
1
+ import type { ASTNode } from './ASTNode';
2
+ import type { TableCell } from './TableCell';
3
3
 
4
4
  /**
5
5
  * @private
@@ -1,4 +1,4 @@
1
- import { ASTNode } from './ASTNode';
1
+ import type { ASTNode } from './ASTNode';
2
2
 
3
3
  /**
4
4
  * @private
@@ -1,7 +1,9 @@
1
- import { ConfigurationError, Serenity } from '@serenity-js/core';
2
- import { ModuleLoader, Path } from '@serenity-js/core/lib/io';
1
+ import type { Serenity } from '@serenity-js/core';
2
+ import { ConfigurationError } from '@serenity-js/core';
3
+ import type { ModuleLoader, Path } from '@serenity-js/core/lib/io';
3
4
 
4
- import { Cache, FeatureFileLoader, FeatureFileMap, FeatureFileMapper, FeatureFileParser } from './gherkin';
5
+ import type { FeatureFileMap} from './gherkin';
6
+ import { Cache, FeatureFileLoader, FeatureFileMapper, FeatureFileParser } from './gherkin';
5
7
  import { Notifier, ResultMapper } from './notifier';
6
8
  import Gherkin = require('gherkin');
7
9
 
@@ -1,5 +1,6 @@
1
+ import type {
2
+ DomainEvent} from '@serenity-js/core/lib/events';
1
3
  import {
2
- DomainEvent,
3
4
  FeatureNarrativeDetected,
4
5
  SceneDescriptionDetected,
5
6
  SceneFinished,
@@ -16,10 +17,11 @@ import {
16
17
  TestRunnerDetected,
17
18
  TestRunStarts,
18
19
  } from '@serenity-js/core/lib/events';
19
- import { ActivityDetails, CapabilityTag, Category, CorrelationId, Description, FeatureTag, Name, Outcome, ScenarioDetails, Tag, ThemeTag } from '@serenity-js/core/lib/model';
20
- import { Serenity } from '@serenity-js/core/lib/Serenity';
20
+ import type { CorrelationId, Outcome} from '@serenity-js/core/lib/model';
21
+ import { ActivityDetails, CapabilityTag, Category, Description, FeatureTag, Name, ScenarioDetails, Tag, ThemeTag } from '@serenity-js/core/lib/model';
22
+ import type { Serenity } from '@serenity-js/core/lib/Serenity';
21
23
 
22
- import { Feature, FeatureFileNode, Scenario, ScenarioOutline, Step } from '../gherkin';
24
+ import type { Feature, FeatureFileNode, Scenario, ScenarioOutline, Step } from '../gherkin';
23
25
 
24
26
  function notEmpty<T>(list: T[]) {
25
27
  return list.filter(item => !! item);
@@ -1,13 +1,15 @@
1
- import { AssertionError, ImplementationPendingError, Serenity, TestCompromisedError } from '@serenity-js/core';
1
+ import type { Serenity} from '@serenity-js/core';
2
+ import { AssertionError, ImplementationPendingError, TestCompromisedError } from '@serenity-js/core';
3
+ import type {
4
+ Outcome,
5
+ ProblemIndication} from '@serenity-js/core/lib/model';
2
6
  import {
3
7
  ExecutionCompromised,
4
8
  ExecutionFailedWithAssertionError,
5
9
  ExecutionFailedWithError,
6
10
  ExecutionSkipped,
7
11
  ExecutionSuccessful,
8
- ImplementationPending,
9
- Outcome,
10
- ProblemIndication,
12
+ ImplementationPending
11
13
  } from '@serenity-js/core/lib/model';
12
14
 
13
15
  import { AmbiguousStepDefinitionError } from '../../../errors';
@@ -1,11 +1,13 @@
1
- import { Envelope, IdGenerator } from '@cucumber/messages';
2
- import { Serenity } from '@serenity-js/core';
3
- import { DomainEvent, SceneFinishes, TestRunFinished, TestRunFinishes, TestRunStarts } from '@serenity-js/core/lib/events';
4
- import { ModuleLoader } from '@serenity-js/core/lib/io';
1
+ import type { Envelope} from '@cucumber/messages';
2
+ import { IdGenerator } from '@cucumber/messages';
3
+ import type { Serenity } from '@serenity-js/core';
4
+ import type { DomainEvent} from '@serenity-js/core/lib/events';
5
+ import { SceneFinishes, TestRunFinished, TestRunFinishes, TestRunStarts } from '@serenity-js/core/lib/events';
6
+ import type { ModuleLoader } from '@serenity-js/core/lib/io';
5
7
  import { ExecutionFailedWithError, ExecutionSuccessful } from '@serenity-js/core/lib/model';
6
8
 
7
9
  import { CucumberMessagesParser } from './parser/CucumberMessagesParser';
8
- import { IParsedTestStep } from './types/cucumber';
10
+ import type { IParsedTestStep } from './types/cucumber';
9
11
 
10
12
  export = function (serenity: Serenity, moduleLoader: ModuleLoader) { // eslint-disable-line @typescript-eslint/explicit-module-boundary-types
11
13
 
@@ -1,5 +1,5 @@
1
- import { Serenity } from '@serenity-js/core';
2
- import { ModuleLoader } from '@serenity-js/core/lib/io';
1
+ import type { Serenity } from '@serenity-js/core';
2
+ import type { ModuleLoader } from '@serenity-js/core/lib/io';
3
3
  import cucumberMessagesListener = require('./CucumberMessagesListener');
4
4
 
5
5
  /**
@@ -1,4 +1,4 @@
1
- import {
1
+ import type {
2
2
  GherkinDocument,
3
3
  Location,
4
4
  Pickle,
@@ -6,19 +6,23 @@ import {
6
6
  TestCaseStarted,
7
7
  TestStepFinished,
8
8
  TestStepResult,
9
- TestStepResultStatus,
10
9
  TestStepStarted
11
10
  } from '@cucumber/messages';
11
+ import {
12
+ TestStepResultStatus
13
+ } from '@cucumber/messages';
14
+ import type {
15
+ Serenity} from '@serenity-js/core';
12
16
  import {
13
17
  AssertionError,
14
18
  ErrorSerialiser,
15
19
  ImplementationPendingError,
16
- Serenity,
17
20
  TestCompromisedError
18
21
  } from '@serenity-js/core';
22
+ import type {
23
+ DomainEvent} from '@serenity-js/core/lib/events';
19
24
  import {
20
25
  BusinessRuleDetected,
21
- DomainEvent,
22
26
  FeatureNarrativeDetected,
23
27
  RetryableSceneDetected,
24
28
  SceneDescriptionDetected,
@@ -33,13 +37,15 @@ import {
33
37
  TestRunnerDetected,
34
38
  } from '@serenity-js/core/lib/events';
35
39
  import { FileSystemLocation, Path } from '@serenity-js/core/lib/io';
40
+ import type {
41
+ CorrelationId,
42
+ Outcome} from '@serenity-js/core/lib/model';
36
43
  import {
37
44
  ActivityDetails,
38
45
  ArbitraryTag,
39
46
  BusinessRule,
40
47
  CapabilityTag,
41
48
  Category,
42
- CorrelationId,
43
49
  Description,
44
50
  ExecutionCompromised,
45
51
  ExecutionFailedWithAssertionError,
@@ -50,7 +56,6 @@ import {
50
56
  FeatureTag,
51
57
  ImplementationPending,
52
58
  Name,
53
- Outcome,
54
59
  ScenarioDetails,
55
60
  ScenarioParameters,
56
61
  Tag,
@@ -58,9 +63,9 @@ import {
58
63
  ThemeTag,
59
64
  } from '@serenity-js/core/lib/model';
60
65
 
61
- import { EventDataCollector, IParsedTestStep, ITestCaseAttempt } from '../types/cucumber';
66
+ import type { EventDataCollector, IParsedTestStep, ITestCaseAttempt } from '../types/cucumber';
62
67
  import { TestStepFormatter } from './TestStepFormatter';
63
- import { ExtractedScenario, ExtractedScenarioOutline } from './types';
68
+ import type { ExtractedScenario, ExtractedScenarioOutline } from './types';
64
69
 
65
70
  /**
66
71
  * @package
@@ -1,4 +1,4 @@
1
- import { PickleDocString, PickleTable } from '@cucumber/messages';
1
+ import type { PickleDocString, PickleTable } from '@cucumber/messages';
2
2
  import Table = require('cli-table3');
3
3
 
4
4
  /**
@@ -1,4 +1,4 @@
1
- import { BusinessRule, Description, Name, Tag } from '@serenity-js/core/lib/model';
1
+ import type { BusinessRule, Description, Name, Tag } from '@serenity-js/core/lib/model';
2
2
 
3
3
  export interface ExtractedScenario {
4
4
  featureDescription?: Description;
@@ -1,4 +1,4 @@
1
- import { Description, ScenarioDetails, ScenarioParameters } from '@serenity-js/core/lib/model';
1
+ import type { Description, ScenarioDetails, ScenarioParameters } from '@serenity-js/core/lib/model';
2
2
 
3
3
  export interface ExtractedScenarioOutline {
4
4
  details: ScenarioDetails;
@@ -4,7 +4,7 @@
4
4
  * using older versions.
5
5
  */
6
6
 
7
- import {
7
+ import type {
8
8
  Attachment,
9
9
  Envelope,
10
10
  GherkinDocument,