@lynxwall/cucumber-tsflow 5.1.3 → 6.0.2

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 (99) hide show
  1. package/README.md +546 -544
  2. package/bin/cucumber-tsflow +1 -1
  3. package/lib/behave.d.ts +1 -1
  4. package/lib/behave.js +27 -27
  5. package/lib/cli/argv-parser.d.ts +24 -24
  6. package/lib/cli/argv-parser.js +103 -103
  7. package/lib/cli/index.d.ts +22 -22
  8. package/lib/cli/index.js +101 -96
  9. package/lib/cli/load-configuration.d.ts +20 -20
  10. package/lib/cli/load-configuration.js +92 -92
  11. package/lib/cli/run.d.ts +1 -1
  12. package/lib/cli/run.js +49 -44
  13. package/lib/cucumber/binding-decorator.d.ts +10 -10
  14. package/lib/cucumber/binding-decorator.js +180 -180
  15. package/lib/cucumber/binding-registry.d.ts +82 -82
  16. package/lib/cucumber/binding-registry.js +216 -218
  17. package/lib/cucumber/hook-decorators.d.ts +46 -46
  18. package/lib/cucumber/hook-decorators.js +102 -102
  19. package/lib/cucumber/managed-scenario-context.d.ts +21 -21
  20. package/lib/cucumber/managed-scenario-context.js +96 -95
  21. package/lib/cucumber/message-collector.d.ts +81 -80
  22. package/lib/cucumber/message-collector.js +251 -241
  23. package/lib/cucumber/parallel/coordinator.d.ts +79 -78
  24. package/lib/cucumber/parallel/coordinator.js +247 -228
  25. package/lib/cucumber/parallel/run-worker.d.ts +1 -1
  26. package/lib/cucumber/parallel/run-worker.js +31 -31
  27. package/lib/cucumber/parallel/worker.d.ts +30 -31
  28. package/lib/cucumber/parallel/worker.js +104 -104
  29. package/lib/cucumber/run-cucumber.d.ts +14 -14
  30. package/lib/cucumber/run-cucumber.js +117 -117
  31. package/lib/cucumber/runtime.d.ts +25 -25
  32. package/lib/cucumber/runtime.js +39 -39
  33. package/lib/cucumber/step-definition-decorators.d.ts +24 -24
  34. package/lib/cucumber/step-definition-decorators.js +91 -91
  35. package/lib/cucumber/utils.d.ts +16 -16
  36. package/lib/cucumber/utils.js +77 -77
  37. package/lib/esnode.js +19 -19
  38. package/lib/esvue.d.ts +1 -1
  39. package/lib/esvue.js +41 -41
  40. package/lib/formatters/behave-json-formatter.d.ts +49 -49
  41. package/lib/formatters/behave-json-formatter.js +75 -75
  42. package/lib/formatters/tsflow-snippet-syntax.d.ts +9 -9
  43. package/lib/formatters/tsflow-snippet-syntax.js +90 -93
  44. package/lib/gherkin/configuration.d.ts +30 -30
  45. package/lib/gherkin/configuration.js +26 -26
  46. package/lib/gherkin/gherkin-feature.d.ts +28 -28
  47. package/lib/gherkin/gherkin-feature.js +333 -335
  48. package/lib/gherkin/gherkin-manager.d.ts +29 -29
  49. package/lib/gherkin/gherkin-manager.js +114 -113
  50. package/lib/gherkin/models.d.ts +45 -45
  51. package/lib/gherkin/models.js +2 -2
  52. package/lib/index.d.ts +4 -4
  53. package/lib/index.js +22 -22
  54. package/lib/snippet.d.ts +1 -1
  55. package/lib/snippet.js +27 -27
  56. package/lib/transpilers/esbuild-transpiler.d.ts +4 -4
  57. package/lib/transpilers/esbuild-transpiler.js +19 -21
  58. package/lib/transpilers/esbuild.d.ts +12 -12
  59. package/lib/transpilers/esbuild.js +54 -54
  60. package/lib/transpilers/vue-sfc/compiler.d.ts +7 -7
  61. package/lib/transpilers/vue-sfc/compiler.js +21 -21
  62. package/lib/transpilers/vue-sfc/index.d.ts +23 -23
  63. package/lib/transpilers/vue-sfc/index.js +47 -45
  64. package/lib/transpilers/vue-sfc/main.d.ts +8 -8
  65. package/lib/transpilers/vue-sfc/main.js +248 -248
  66. package/lib/transpilers/vue-sfc/script.d.ts +5 -5
  67. package/lib/transpilers/vue-sfc/script.js +41 -41
  68. package/lib/transpilers/vue-sfc/template.d.ts +8 -8
  69. package/lib/transpilers/vue-sfc/template.js +101 -101
  70. package/lib/transpilers/vue-sfc/types.d.ts +55 -55
  71. package/lib/transpilers/vue-sfc/types.js +2 -2
  72. package/lib/transpilers/vue-sfc/utils/descriptorCache.d.ts +13 -13
  73. package/lib/transpilers/vue-sfc/utils/descriptorCache.js +67 -67
  74. package/lib/transpilers/vue-sfc/utils/error.d.ts +3 -3
  75. package/lib/transpilers/vue-sfc/utils/error.js +22 -22
  76. package/lib/transpilers/vue-sfc/utils/query.d.ts +13 -13
  77. package/lib/transpilers/vue-sfc/utils/query.js +35 -35
  78. package/lib/tsnode.js +17 -17
  79. package/lib/tsvue.d.ts +1 -1
  80. package/lib/tsvue.js +39 -39
  81. package/lib/types/scenario-context.d.ts +16 -16
  82. package/lib/types/scenario-context.js +17 -17
  83. package/lib/types/scenario-info.d.ts +16 -16
  84. package/lib/types/scenario-info.js +23 -21
  85. package/lib/types/step-binding-flags.d.ts +53 -53
  86. package/lib/types/step-binding-flags.js +58 -58
  87. package/lib/types/step-binding.d.ts +50 -50
  88. package/lib/types/step-binding.js +17 -17
  89. package/lib/types/types.d.ts +21 -21
  90. package/lib/types/types.js +2 -2
  91. package/lib/utils/helpers.d.ts +6 -6
  92. package/lib/utils/helpers.js +17 -17
  93. package/lib/utils/logger.d.ts +3 -3
  94. package/lib/utils/logger.js +29 -29
  95. package/lib/utils/our-callsite.d.ts +27 -27
  96. package/lib/utils/our-callsite.js +73 -71
  97. package/lib/version.d.ts +1 -1
  98. package/lib/version.js +5 -5
  99. package/package.json +58 -58
@@ -1,20 +1,20 @@
1
- import { IRunEnvironment, ILoadConfigurationOptions, IRunConfiguration } from '@cucumber/cucumber/lib/api/types';
2
- import { ITsflowConfiguration } from './argv-parser';
3
- export interface ITsflowResolvedConfiguration {
4
- /**
5
- * The final flat configuration object resolved from the configuration file/profiles plus any extra provided.
6
- */
7
- useConfiguration: ITsflowConfiguration;
8
- /**
9
- * The format that can be passed into `runCucumber`.
10
- */
11
- runConfiguration: IRunConfiguration;
12
- }
13
- /**
14
- * Load user-authored configuration to be used in a test run.
15
- *
16
- * @public
17
- * @param options - Coordinates required to find configuration.
18
- * @param environment - Project environment.
19
- */
20
- export declare const loadConfiguration: (options?: ILoadConfigurationOptions, environment?: IRunEnvironment) => Promise<ITsflowResolvedConfiguration>;
1
+ import { IRunEnvironment, ILoadConfigurationOptions, IRunConfiguration } from '@cucumber/cucumber/lib/api/types';
2
+ import { ITsflowConfiguration } from './argv-parser';
3
+ export interface ITsflowResolvedConfiguration {
4
+ /**
5
+ * The final flat configuration object resolved from the configuration file/profiles plus any extra provided.
6
+ */
7
+ useConfiguration: ITsflowConfiguration;
8
+ /**
9
+ * The format that can be passed into `runCucumber`.
10
+ */
11
+ runConfiguration: IRunConfiguration;
12
+ }
13
+ /**
14
+ * Load user-authored configuration to be used in a test run.
15
+ *
16
+ * @public
17
+ * @param options - Coordinates required to find configuration.
18
+ * @param environment - Project environment.
19
+ */
20
+ export declare const loadConfiguration: (options?: ILoadConfigurationOptions, environment?: IRunEnvironment) => Promise<ITsflowResolvedConfiguration>;
@@ -1,93 +1,93 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.loadConfiguration = void 0;
7
- const locate_file_1 = require("@cucumber/cucumber/lib/configuration/locate_file");
8
- const index_1 = require("@cucumber/cucumber/lib/configuration/index");
9
- const validate_configuration_1 = require("@cucumber/cucumber/lib/configuration/validate_configuration");
10
- const convert_configuration_1 = require("@cucumber/cucumber/lib/api/convert_configuration");
11
- const environment_1 = require("@cucumber/cucumber/lib/api/environment");
12
- const chalk_1 = __importDefault(require("chalk"));
13
- const helpers_1 = require("../utils/helpers");
14
- const gherkin_manager_1 = __importDefault(require("../gherkin/gherkin-manager"));
15
- const console_logger_1 = require("@cucumber/cucumber/lib/api/console_logger");
16
- /**
17
- * Load user-authored configuration to be used in a test run.
18
- *
19
- * @public
20
- * @param options - Coordinates required to find configuration.
21
- * @param environment - Project environment.
22
- */
23
- const loadConfiguration = async (options = {}, environment = {}) => {
24
- const { cwd, stderr, env, debug } = (0, environment_1.mergeEnvironment)(environment);
25
- const logger = new console_logger_1.ConsoleLogger(stderr, debug);
26
- const configFile = options.file ?? (0, locate_file_1.locateFile)(cwd);
27
- if (configFile) {
28
- logger.debug(`Configuration will be loaded from "${configFile}"`);
29
- }
30
- else {
31
- logger.debug('No configuration file found');
32
- }
33
- const profileConfiguration = configFile ? await (0, index_1.fromFile)(logger, cwd, configFile, options.profiles) : {};
34
- // if a feature was passed in on command line it's added
35
- // to the provided configuration as paths. We need to clear
36
- // any paths from configuration so that only the feature passed
37
- // in is executed.
38
- if (options.provided?.paths && options.provided.paths?.length > 0) {
39
- profileConfiguration.paths = [];
40
- }
41
- const original = (0, index_1.mergeConfigurations)(index_1.DEFAULT_CONFIGURATION, profileConfiguration, options.provided);
42
- switch (original.transpiler) {
43
- case 'esvue':
44
- original.requireModule.push('@lynxwall/cucumber-tsflow/lib/esvue');
45
- break;
46
- case 'tsvue':
47
- original.requireModule.push('@lynxwall/cucumber-tsflow/lib/tsvue');
48
- break;
49
- case 'tsnode':
50
- original.requireModule.push('@lynxwall/cucumber-tsflow/lib/tsnode');
51
- break;
52
- default:
53
- // defaulting to esbuild
54
- original.requireModule.push('@lynxwall/cucumber-tsflow/lib/esnode');
55
- break;
56
- }
57
- // set the snippet syntax
58
- if (!original.formatOptions.snippetSyntax) {
59
- original.formatOptions.snippetSyntax = '@lynxwall/cucumber-tsflow/lib/snippet.js';
60
- }
61
- // look for behave format
62
- const behaveIdx = original.format.findIndex(e => e.startsWith('behave:'));
63
- if (behaveIdx >= 0) {
64
- original.format[behaveIdx] = original.format[behaveIdx].replace('behave', '@lynxwall/cucumber-tsflow/lib/behave.js');
65
- }
66
- // check to see if a debugFile was passed in
67
- if ((0, helpers_1.hasStringValue)(original.debugFile)) {
68
- let featurePath = '';
69
- // Initialize gherkin manager with path to feature files
70
- const gherkin = new gherkin_manager_1.default(original.paths);
71
- const featureInfo = gherkin.findFeatureByStepFile(original.debugFile);
72
- if (featureInfo) {
73
- featurePath = featureInfo.featureFile;
74
- }
75
- if ((0, helpers_1.hasStringValue)(featurePath)) {
76
- original.paths = [];
77
- original.paths.push(featurePath);
78
- }
79
- else {
80
- // log a message if the feature path is not found
81
- logger.warn(chalk_1.default.yellow(`\nUnable to find feature for debugFile: ${original.debugFile}`));
82
- logger.warn(chalk_1.default.yellow('All tests will be executed\n'));
83
- }
84
- }
85
- (0, validate_configuration_1.validateConfiguration)(original);
86
- const runnable = await (0, convert_configuration_1.convertConfiguration)(original, env);
87
- return {
88
- useConfiguration: original,
89
- runConfiguration: runnable
90
- };
91
- };
92
- exports.loadConfiguration = loadConfiguration;
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.loadConfiguration = void 0;
7
+ const locate_file_1 = require("@cucumber/cucumber/lib/configuration/locate_file");
8
+ const index_1 = require("@cucumber/cucumber/lib/configuration/index");
9
+ const validate_configuration_1 = require("@cucumber/cucumber/lib/configuration/validate_configuration");
10
+ const convert_configuration_1 = require("@cucumber/cucumber/lib/api/convert_configuration");
11
+ const environment_1 = require("@cucumber/cucumber/lib/api/environment");
12
+ const chalk_1 = __importDefault(require("chalk"));
13
+ const helpers_1 = require("../utils/helpers");
14
+ const gherkin_manager_1 = __importDefault(require("../gherkin/gherkin-manager"));
15
+ const console_logger_1 = require("@cucumber/cucumber/lib/api/console_logger");
16
+ /**
17
+ * Load user-authored configuration to be used in a test run.
18
+ *
19
+ * @public
20
+ * @param options - Coordinates required to find configuration.
21
+ * @param environment - Project environment.
22
+ */
23
+ const loadConfiguration = async (options = {}, environment = {}) => {
24
+ const { cwd, stderr, env, debug } = (0, environment_1.mergeEnvironment)(environment);
25
+ const logger = new console_logger_1.ConsoleLogger(stderr, debug);
26
+ const configFile = options.file ?? (0, locate_file_1.locateFile)(cwd);
27
+ if (configFile) {
28
+ logger.debug(`Configuration will be loaded from "${configFile}"`);
29
+ }
30
+ else {
31
+ logger.debug('No configuration file found');
32
+ }
33
+ const profileConfiguration = configFile ? await (0, index_1.fromFile)(logger, cwd, configFile, options.profiles) : {};
34
+ // if a feature was passed in on command line it's added
35
+ // to the provided configuration as paths. We need to clear
36
+ // any paths from configuration so that only the feature passed
37
+ // in is executed.
38
+ if (options.provided?.paths && options.provided.paths?.length > 0) {
39
+ profileConfiguration.paths = [];
40
+ }
41
+ const original = (0, index_1.mergeConfigurations)(index_1.DEFAULT_CONFIGURATION, profileConfiguration, options.provided);
42
+ switch (original.transpiler) {
43
+ case 'esvue':
44
+ original.requireModule.push('@lynxwall/cucumber-tsflow/lib/esvue');
45
+ break;
46
+ case 'tsvue':
47
+ original.requireModule.push('@lynxwall/cucumber-tsflow/lib/tsvue');
48
+ break;
49
+ case 'tsnode':
50
+ original.requireModule.push('@lynxwall/cucumber-tsflow/lib/tsnode');
51
+ break;
52
+ default:
53
+ // defaulting to esbuild
54
+ original.requireModule.push('@lynxwall/cucumber-tsflow/lib/esnode');
55
+ break;
56
+ }
57
+ // set the snippet syntax
58
+ if (!original.formatOptions.snippetSyntax) {
59
+ original.formatOptions.snippetSyntax = '@lynxwall/cucumber-tsflow/lib/snippet.js';
60
+ }
61
+ // look for behave format
62
+ const behaveIdx = original.format.findIndex(e => e.startsWith('behave:'));
63
+ if (behaveIdx >= 0) {
64
+ original.format[behaveIdx] = original.format[behaveIdx].replace('behave', '@lynxwall/cucumber-tsflow/lib/behave.js');
65
+ }
66
+ // check to see if a debugFile was passed in
67
+ if ((0, helpers_1.hasStringValue)(original.debugFile)) {
68
+ let featurePath = '';
69
+ // Initialize gherkin manager with path to feature files
70
+ const gherkin = new gherkin_manager_1.default(original.paths);
71
+ const featureInfo = gherkin.findFeatureByStepFile(original.debugFile);
72
+ if (featureInfo) {
73
+ featurePath = featureInfo.featureFile;
74
+ }
75
+ if ((0, helpers_1.hasStringValue)(featurePath)) {
76
+ original.paths = [];
77
+ original.paths.push(featurePath);
78
+ }
79
+ else {
80
+ // log a message if the feature path is not found
81
+ logger.warn(chalk_1.default.yellow(`\nUnable to find feature for debugFile: ${original.debugFile}`));
82
+ logger.warn(chalk_1.default.yellow('All tests will be executed\n'));
83
+ }
84
+ }
85
+ (0, validate_configuration_1.validateConfiguration)(original);
86
+ const runnable = await (0, convert_configuration_1.convertConfiguration)(original, env);
87
+ return {
88
+ useConfiguration: original,
89
+ runConfiguration: runnable
90
+ };
91
+ };
92
+ exports.loadConfiguration = loadConfiguration;
93
93
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9hZC1jb25maWd1cmF0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NsaS9sb2FkLWNvbmZpZ3VyYXRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQ0Esa0ZBQThFO0FBQzlFLHNFQUtvRDtBQUNwRCx3R0FBb0c7QUFDcEcsNEZBQXdGO0FBQ3hGLHdFQUEwRTtBQUUxRSxrREFBMEI7QUFDMUIsOENBQWtEO0FBQ2xELGlGQUF3RDtBQUV4RCw4RUFBMEU7QUFZMUU7Ozs7OztHQU1HO0FBQ0ksTUFBTSxpQkFBaUIsR0FBRyxLQUFLLEVBQ3JDLFVBQXFDLEVBQUUsRUFDdkMsY0FBK0IsRUFBRSxFQUNPLEVBQUU7SUFDMUMsTUFBTSxFQUFFLEdBQUcsRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxHQUFHLElBQUEsOEJBQWdCLEVBQUMsV0FBVyxDQUFDLENBQUM7SUFDbEUsTUFBTSxNQUFNLEdBQVksSUFBSSw4QkFBYSxDQUFDLE1BQU0sRUFBRSxLQUFLLENBQUMsQ0FBQztJQUV6RCxNQUFNLFVBQVUsR0FBRyxPQUFPLENBQUMsSUFBSSxJQUFJLElBQUEsd0JBQVUsRUFBQyxHQUFHLENBQUMsQ0FBQztJQUNuRCxJQUFJLFVBQVUsRUFBRTtRQUNmLE1BQU0sQ0FBQyxLQUFLLENBQUMsc0NBQXNDLFVBQVUsR0FBRyxDQUFDLENBQUM7S0FDbEU7U0FBTTtRQUNOLE1BQU0sQ0FBQyxLQUFLLENBQUMsNkJBQTZCLENBQUMsQ0FBQztLQUM1QztJQUNELE1BQU0sb0JBQW9CLEdBQUcsVUFBVSxDQUFDLENBQUMsQ0FBQyxNQUFNLElBQUEsZ0JBQVEsRUFBQyxNQUFNLEVBQUUsR0FBRyxFQUFFLFVBQVUsRUFBRSxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztJQUV6Ryx3REFBd0Q7SUFDeEQsMkRBQTJEO0lBQzNELCtEQUErRDtJQUMvRCxrQkFBa0I7SUFDbEIsSUFB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
package/lib/cli/run.d.ts CHANGED
@@ -1 +1 @@
1
- export default function run(): Promise<void>;
1
+ export default function run(): Promise<void>;
package/lib/cli/run.js CHANGED
@@ -1,44 +1,49 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- /* eslint-disable no-console */
7
- /* This is one rare place where we're fine to use process/console directly,
8
- * but other code abstracts those to remain composable and testable. */
9
- const _1 = __importDefault(require("./"));
10
- const verror_1 = __importDefault(require("verror"));
11
- const validate_node_engine_version_1 = require("@cucumber/cucumber/lib/cli/validate_node_engine_version");
12
- function logErrorMessageAndExit(message) {
13
- console.error(message);
14
- process.exit(1);
15
- }
16
- async function run() {
17
- (0, validate_node_engine_version_1.validateNodeEngineVersion)(process.version, (error) => {
18
- console.error(error);
19
- process.exit(1);
20
- }, console.warn);
21
- const cli = new _1.default({
22
- argv: process.argv,
23
- cwd: process.cwd(),
24
- stdout: process.stdout,
25
- stderr: process.stderr,
26
- env: process.env
27
- });
28
- let result;
29
- try {
30
- result = await cli.run();
31
- }
32
- catch (error) {
33
- logErrorMessageAndExit(verror_1.default.fullStack(error));
34
- }
35
- const exitCode = result.success ? 0 : 1;
36
- if (result.shouldExitImmediately) {
37
- process.exit(exitCode);
38
- }
39
- else {
40
- process.exitCode = exitCode;
41
- }
42
- }
43
- exports.default = run;
44
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVuLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NsaS9ydW4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSwrQkFBK0I7QUFDL0I7dUVBQ3VFO0FBQ3ZFLDBDQUF3QztBQUN4QyxvREFBNEI7QUFDNUIsMEdBQW9HO0FBRXBHLFNBQVMsc0JBQXNCLENBQUMsT0FBZTtJQUM5QyxPQUFPLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ3ZCLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDakIsQ0FBQztBQUVjLEtBQUssVUFBVSxHQUFHO0lBQ2hDLElBQUEsd0RBQXlCLEVBQ3hCLE9BQU8sQ0FBQyxPQUFPLEVBQ2YsQ0FBQyxLQUFVLEVBQUUsRUFBRTtRQUNkLE9BQU8sQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDckIsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNqQixDQUFDLEVBQ0QsT0FBTyxDQUFDLElBQUksQ0FDWixDQUFDO0lBRUYsTUFBTSxHQUFHLEdBQUcsSUFBSSxVQUFHLENBQUM7UUFDbkIsSUFBSSxFQUFFLE9BQU8sQ0FBQyxJQUFJO1FBQ2xCLEdBQUcsRUFBRSxPQUFPLENBQUMsR0FBRyxFQUFFO1FBQ2xCLE1BQU0sRUFBRSxPQUFPLENBQUMsTUFBTTtRQUN0QixNQUFNLEVBQUUsT0FBTyxDQUFDLE1BQU07UUFDdEIsR0FBRyxFQUFFLE9BQU8sQ0FBQyxHQUFHO0tBQ2hCLENBQUMsQ0FBQztJQUVILElBQUksTUFBc0IsQ0FBQztJQUMzQixJQUFJO1FBQ0gsTUFBTSxHQUFHLE1BQU0sR0FBRyxDQUFDLEdBQUcsRUFBRSxDQUFDO0tBQ3pCO0lBQUMsT0FBTyxLQUFVLEVBQUU7UUFDcEIsc0JBQXNCLENBQUMsZ0JBQU0sQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztLQUNoRDtJQUVELE1BQU0sUUFBUSxHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3hDLElBQUksTUFBTSxDQUFDLHFCQUFxQixFQUFFO1FBQ2pDLE9BQU8sQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7S0FDdkI7U0FBTTtRQUNOLE9BQU8sQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDO0tBQzVCO0FBQ0YsQ0FBQztBQS9CRCxzQkErQkMifQ==
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ /* eslint-disable no-console */
7
+ /* This is one rare place where we're fine to use process/console directly,
8
+ * but other code abstracts those to remain composable and testable. */
9
+ const _1 = __importDefault(require("./"));
10
+ const verror_1 = __importDefault(require("verror"));
11
+ const validate_node_engine_version_1 = require("@cucumber/cucumber/lib/cli/validate_node_engine_version");
12
+ const binding_registry_1 = require("../cucumber/binding-registry");
13
+ function logErrorMessageAndExit(message) {
14
+ console.error(message);
15
+ process.exit(1);
16
+ }
17
+ async function run() {
18
+ (0, validate_node_engine_version_1.validateNodeEngineVersion)(process.version, (error) => {
19
+ console.error(error);
20
+ process.exit(1);
21
+ }, console.warn);
22
+ const cli = new _1.default({
23
+ argv: process.argv,
24
+ cwd: process.cwd(),
25
+ stdout: process.stdout,
26
+ stderr: process.stderr,
27
+ env: process.env
28
+ });
29
+ let result;
30
+ try {
31
+ result = await cli.run();
32
+ }
33
+ catch (error) {
34
+ logErrorMessageAndExit(verror_1.default.fullStack(error));
35
+ }
36
+ let exitCode = result.success ? 0 : 1;
37
+ if (!result.success && global.messageCollector.hasFailures()) {
38
+ exitCode = 2;
39
+ }
40
+ const registry = binding_registry_1.BindingRegistry.instance;
41
+ if (result.shouldExitImmediately) {
42
+ process.exit(exitCode);
43
+ }
44
+ else {
45
+ process.exitCode = exitCode;
46
+ }
47
+ }
48
+ exports.default = run;
49
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVuLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NsaS9ydW4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSwrQkFBK0I7QUFDL0I7dUVBQ3VFO0FBQ3ZFLDBDQUF3QztBQUN4QyxvREFBNEI7QUFDNUIsMEdBQW9HO0FBQ3BHLG1FQUErRDtBQUMvRCxTQUFTLHNCQUFzQixDQUFDLE9BQWU7SUFDOUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUN2QixPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ2pCLENBQUM7QUFFYyxLQUFLLFVBQVUsR0FBRztJQUNoQyxJQUFBLHdEQUF5QixFQUN4QixPQUFPLENBQUMsT0FBTyxFQUNmLENBQUMsS0FBVSxFQUFFLEVBQUU7UUFDZCxPQUFPLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3JCLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDakIsQ0FBQyxFQUNELE9BQU8sQ0FBQyxJQUFJLENBQ1osQ0FBQztJQUVGLE1BQU0sR0FBRyxHQUFHLElBQUksVUFBRyxDQUFDO1FBQ25CLElBQUksRUFBRSxPQUFPLENBQUMsSUFBSTtRQUNsQixHQUFHLEVBQUUsT0FBTyxDQUFDLEdBQUcsRUFBRTtRQUNsQixNQUFNLEVBQUUsT0FBTyxDQUFDLE1BQU07UUFDdEIsTUFBTSxFQUFFLE9BQU8sQ0FBQyxNQUFNO1FBQ3RCLEdBQUcsRUFBRSxPQUFPLENBQUMsR0FBRztLQUNoQixDQUFDLENBQUM7SUFFSCxJQUFJLE1BQXNCLENBQUM7SUFDM0IsSUFBSTtRQUNILE1BQU0sR0FBRyxNQUFNLEdBQUcsQ0FBQyxHQUFHLEVBQUUsQ0FBQztLQUN6QjtJQUFDLE9BQU8sS0FBVSxFQUFFO1FBQ3BCLHNCQUFzQixDQUFDLGdCQUFNLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7S0FDaEQ7SUFFRCxJQUFJLFFBQVEsR0FBRyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUN0QyxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sSUFBSSxNQUFNLENBQUMsZ0JBQWdCLENBQUMsV0FBVyxFQUFFLEVBQUU7UUFDN0QsUUFBUSxHQUFHLENBQUMsQ0FBQztLQUNiO0lBRUQsTUFBTSxRQUFRLEdBQUcsa0NBQWUsQ0FBQyxRQUFRLENBQUM7SUFFMUMsSUFBSSxNQUFNLENBQUMscUJBQXFCLEVBQUU7UUFDakMsT0FBTyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztLQUN2QjtTQUFNO1FBQ04sT0FBTyxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUM7S0FDNUI7QUFDRixDQUFDO0FBckNELHNCQXFDQyJ9
@@ -1,10 +1,10 @@
1
- import { ContextType, TypeDecorator } from '../types/types';
2
- /**
3
- * A class decorator that marks the associated class as a CucumberJS binding.
4
- *
5
- * @param requiredContextTypes An optional array of Types that will be created and passed into the created
6
- * object for each scenario.
7
- *
8
- * An instance of the decorated class will be created for each scenario.
9
- */
10
- export declare function binding(requiredContextTypes?: ContextType[]): TypeDecorator;
1
+ import { ContextType, TypeDecorator } from '../types/types';
2
+ /**
3
+ * A class decorator that marks the associated class as a CucumberJS binding.
4
+ *
5
+ * @param requiredContextTypes An optional array of Types that will be created and passed into the created
6
+ * object for each scenario.
7
+ *
8
+ * An instance of the decorated class will be created for each scenario.
9
+ */
10
+ export declare function binding(requiredContextTypes?: ContextType[]): TypeDecorator;