@cucumber/cucumber 12.6.0 → 12.8.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.
- package/LICENSE +16 -17
- package/lib/{cli/helpers.d.ts → api/emit_support_code_messages.d.ts} +0 -3
- package/lib/{cli/helpers.js → api/emit_support_code_messages.js} +67 -101
- package/lib/api/emit_support_code_messages.js.map +1 -0
- package/lib/api/load_configuration.d.ts +1 -1
- package/lib/api/load_configuration.js +13 -1
- package/lib/api/load_configuration.js.map +1 -1
- package/lib/api/run_cucumber.js +7 -7
- package/lib/api/run_cucumber.js.map +1 -1
- package/lib/filter/filter_plugin.js +2 -2
- package/lib/filter/filter_plugin.js.map +1 -1
- package/lib/filter/index.d.ts +1 -0
- package/lib/filter/index.js +3 -0
- package/lib/filter/index.js.map +1 -1
- package/lib/filter/order_pickles.d.ts +3 -0
- package/lib/filter/order_pickles.js +37 -0
- package/lib/filter/order_pickles.js.map +1 -0
- package/lib/formatter/builtin/html.d.ts +1 -1
- package/lib/formatter/builtin/html.js +8 -50
- package/lib/formatter/builtin/html.js.map +1 -1
- package/lib/formatter/index.d.ts +1 -1
- package/lib/formatter/index.js.map +1 -1
- package/lib/models/definition.d.ts +4 -1
- package/lib/models/definition.js +3 -1
- package/lib/models/definition.js.map +1 -1
- package/lib/pickle_filter.js +3 -3
- package/lib/pickle_filter.js.map +1 -1
- package/lib/runtime/format_error.js +1 -1
- package/lib/runtime/format_error.js.map +1 -1
- package/lib/support_code_library_builder/get_definition_line_and_uri.js +4 -0
- package/lib/support_code_library_builder/get_definition_line_and_uri.js.map +1 -1
- package/lib/support_code_library_builder/index.d.ts +5 -0
- package/lib/support_code_library_builder/index.js +15 -5
- package/lib/support_code_library_builder/index.js.map +1 -1
- package/lib/support_code_library_builder/sourced_parameter_type_registry.d.ts +4 -2
- package/lib/support_code_library_builder/sourced_parameter_type_registry.js +2 -2
- package/lib/support_code_library_builder/sourced_parameter_type_registry.js.map +1 -1
- package/lib/tsconfig.node.tsbuildinfo +1 -1
- package/lib/version.d.ts +1 -1
- package/lib/version.js +1 -1
- package/lib/version.js.map +1 -1
- package/package.json +25 -24
- package/lib/cli/helpers.js.map +0 -1
package/package.json
CHANGED
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
"gherkin",
|
|
9
9
|
"tests"
|
|
10
10
|
],
|
|
11
|
-
"version": "12.
|
|
11
|
+
"version": "12.8.0",
|
|
12
12
|
"funding": "https://opencollective.com/cucumber",
|
|
13
13
|
"homepage": "https://github.com/cucumber/cucumber-js",
|
|
14
14
|
"author": "Julien Biezemans <jb@jbpros.com>",
|
|
@@ -125,6 +125,7 @@
|
|
|
125
125
|
"Maxim Koretskiy <mr.green.tv@gmail.com>",
|
|
126
126
|
"mgonnet <gonnet.matias@gmail.com>",
|
|
127
127
|
"Michael Lloyd Morris (https://github.com/michael-lloyd-morris)",
|
|
128
|
+
"Michael Mathews (https://github.com/micmath)",
|
|
128
129
|
"Michael Zedeler <michael@zedeler.dk>",
|
|
129
130
|
"Miika Hänninen <miika.hanninen@gmail.com>",
|
|
130
131
|
"Mona Ghassemi (https://github.com/BlueMona)",
|
|
@@ -144,6 +145,7 @@
|
|
|
144
145
|
"Paul Shannon (https://devpaul.com)",
|
|
145
146
|
"please-rewrite <please-rewrite@users.noreply.github.com>",
|
|
146
147
|
"plocket <plocket@users.noreply.github.com>",
|
|
148
|
+
"Raphael Gaschignard (https://github.com/rtpg)",
|
|
147
149
|
"Renier Morales <renier@morales-rodriguez.net>",
|
|
148
150
|
"Ricardo Albuquerque (https://github.com/ricalbuquerque)",
|
|
149
151
|
"Rick Lee-Morlang <rick@lee-morlang.com>",
|
|
@@ -217,17 +219,17 @@
|
|
|
217
219
|
"node": "20 || 22 || 24 || 25"
|
|
218
220
|
},
|
|
219
221
|
"dependencies": {
|
|
220
|
-
"@cucumber/ci-environment": "
|
|
221
|
-
"@cucumber/cucumber-expressions": "
|
|
222
|
-
"@cucumber/gherkin": "
|
|
222
|
+
"@cucumber/ci-environment": "13.0.0",
|
|
223
|
+
"@cucumber/cucumber-expressions": "19.0.0",
|
|
224
|
+
"@cucumber/gherkin": "38.0.0",
|
|
223
225
|
"@cucumber/gherkin-streams": "6.0.0",
|
|
224
|
-
"@cucumber/gherkin-utils": "
|
|
225
|
-
"@cucumber/html-formatter": "
|
|
226
|
-
"@cucumber/junit-xml-formatter": "0.
|
|
227
|
-
"@cucumber/message-streams": "4.
|
|
228
|
-
"@cucumber/messages": "
|
|
226
|
+
"@cucumber/gherkin-utils": "11.0.0",
|
|
227
|
+
"@cucumber/html-formatter": "23.0.0",
|
|
228
|
+
"@cucumber/junit-xml-formatter": "0.13.2",
|
|
229
|
+
"@cucumber/message-streams": "4.1.1",
|
|
230
|
+
"@cucumber/messages": "32.2.0",
|
|
229
231
|
"@cucumber/pretty-formatter": "1.0.1",
|
|
230
|
-
"@cucumber/tag-expressions": "
|
|
232
|
+
"@cucumber/tag-expressions": "9.1.0",
|
|
231
233
|
"assertion-error-formatter": "^3.0.0",
|
|
232
234
|
"capital-case": "^1.0.4",
|
|
233
235
|
"chalk": "^4.1.2",
|
|
@@ -245,12 +247,11 @@
|
|
|
245
247
|
"lodash.merge": "^4.6.2",
|
|
246
248
|
"lodash.mergewith": "^4.6.2",
|
|
247
249
|
"luxon": "3.7.2",
|
|
248
|
-
"mime": "^3.0.0",
|
|
249
250
|
"mkdirp": "^3.0.0",
|
|
250
251
|
"mz": "^2.7.0",
|
|
251
252
|
"progress": "^2.0.3",
|
|
252
253
|
"read-package-up": "^12.0.0",
|
|
253
|
-
"semver": "7.7.
|
|
254
|
+
"semver": "7.7.4",
|
|
254
255
|
"string-argv": "0.3.1",
|
|
255
256
|
"supports-color": "^8.1.1",
|
|
256
257
|
"type-fest": "^4.41.0",
|
|
@@ -259,17 +260,17 @@
|
|
|
259
260
|
"yup": "1.7.1"
|
|
260
261
|
},
|
|
261
262
|
"devDependencies": {
|
|
262
|
-
"@cucumber/compatibility-kit": "^
|
|
263
|
-
"@cucumber/query": "
|
|
263
|
+
"@cucumber/compatibility-kit": "^28.0.0",
|
|
264
|
+
"@cucumber/query": "^15.0.1",
|
|
264
265
|
"@eslint/compat": "^2.0.0",
|
|
265
266
|
"@eslint/eslintrc": "^3.3.1",
|
|
266
267
|
"@eslint/js": "^9.29.0",
|
|
267
|
-
"@microsoft/api-extractor": "7.
|
|
268
|
-
"@sinonjs/fake-timers": "15.
|
|
268
|
+
"@microsoft/api-extractor": "7.58.1",
|
|
269
|
+
"@sinonjs/fake-timers": "15.3.0",
|
|
269
270
|
"@types/chai": "4.3.20",
|
|
270
|
-
"@types/debug": "4.1.
|
|
271
|
+
"@types/debug": "4.1.13",
|
|
271
272
|
"@types/dirty-chai": "2.0.5",
|
|
272
|
-
"@types/express": "5.0.
|
|
273
|
+
"@types/express": "5.0.6",
|
|
273
274
|
"@types/fs-extra": "9.0.13",
|
|
274
275
|
"@types/has-ansi": "5.0.2",
|
|
275
276
|
"@types/lodash.merge": "4.6.9",
|
|
@@ -295,17 +296,17 @@
|
|
|
295
296
|
"eslint": "^9.29.0",
|
|
296
297
|
"eslint-plugin-import": "^2.31.0",
|
|
297
298
|
"eslint-plugin-n": "^17.20.0",
|
|
298
|
-
"eslint-plugin-unicorn": "^
|
|
299
|
+
"eslint-plugin-unicorn": "^63.0.0",
|
|
299
300
|
"express": "^5.0.0",
|
|
300
301
|
"fs-extra": "10.1.0",
|
|
301
302
|
"genversion": "3.2.0",
|
|
302
303
|
"mocha": "^11.0.1",
|
|
303
304
|
"mustache": "4.2.0",
|
|
304
|
-
"nyc": "
|
|
305
|
+
"nyc": "18.0.0",
|
|
305
306
|
"prettier": "^3.5.3",
|
|
306
307
|
"reindent-template-literals": "1.1.0",
|
|
307
308
|
"shx": "0.4.0",
|
|
308
|
-
"sinon": "21.0.
|
|
309
|
+
"sinon": "21.0.3",
|
|
309
310
|
"sinon-chai": "3.7.0",
|
|
310
311
|
"stream-to-string": "1.2.1",
|
|
311
312
|
"tmp": "0.2.5",
|
|
@@ -319,7 +320,7 @@
|
|
|
319
320
|
},
|
|
320
321
|
"scripts": {
|
|
321
322
|
"build-local": "genversion --es6 src/version.ts && tsc --build tsconfig.node.json && shx cp src/wrapper.mjs lib/ && shx cp src/api/wrapper.mjs lib/api/",
|
|
322
|
-
"cck-test": "mocha
|
|
323
|
+
"cck-test": "mocha \"compatibility/**/*_spec.ts\"",
|
|
323
324
|
"exports-generate-docs": "typedoc",
|
|
324
325
|
"exports-test": "api-extractor run --config exports/api/api-extractor.json --verbose && api-extractor run --config exports/root/api-extractor.json --verbose",
|
|
325
326
|
"exports-update": "api-extractor run --config exports/api/api-extractor.json --verbose --local && api-extractor run --config exports/root/api-extractor.json --verbose --local",
|
|
@@ -340,10 +341,10 @@
|
|
|
340
341
|
"prepublishOnly": "rm -rf lib && npm run build-local",
|
|
341
342
|
"pretest-coverage": "npm run build-local",
|
|
342
343
|
"pretypes-test": "npm run build-local",
|
|
343
|
-
"test-coverage": "nyc --silent mocha
|
|
344
|
+
"test-coverage": "nyc --silent mocha \"src/**/*_spec.ts\" \"compatibility/**/*_spec.ts\" && nyc --silent --no-clean node bin/cucumber.js --tags \"not @source-mapping\" && nyc report --reporter=lcov",
|
|
344
345
|
"test": "npm run lint && npm run exports-test && npm run types-test && npm run unit-test && npm run cck-test && npm run feature-test",
|
|
345
346
|
"types-test": "tsd",
|
|
346
|
-
"unit-test": "mocha
|
|
347
|
+
"unit-test": "mocha \"src/**/*_spec.ts\""
|
|
347
348
|
},
|
|
348
349
|
"bin": {
|
|
349
350
|
"cucumber-js": "bin/cucumber.js"
|
package/lib/cli/helpers.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../src/cli/helpers.ts"],"names":[],"mappings":"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","sourcesContent":["import { EventEmitter } from 'node:events'\nimport os from 'node:os'\nimport shuffle from 'knuth-shuffle-seeded'\nimport * as messages from '@cucumber/messages'\nimport { Envelope, HookType, IdGenerator } from '@cucumber/messages'\nimport detectCiEnvironment from '@cucumber/ci-environment'\nimport { SupportCodeLibrary } from '../support_code_library_builder/types'\nimport { version } from '../version'\nimport { ILogger } from '../environment'\nimport { ILineAndUri } from '../types'\nimport { IPickleOrder } from '../filter'\n\n// Orders the pickleIds in place - morphs input\nexport function orderPickles<T = string>(\n pickleIds: T[],\n order: IPickleOrder,\n logger: ILogger\n): void {\n const [type, seed] = splitOrder(order)\n switch (type) {\n case 'defined':\n break\n case 'reverse':\n pickleIds.reverse()\n break\n case 'random':\n if (seed === '') {\n const newSeed = Math.floor(Math.random() * 1000 * 1000).toString()\n logger.warn(`Random order using seed: ${newSeed}`)\n shuffle(pickleIds, newSeed)\n } else {\n shuffle(pickleIds, seed)\n }\n break\n default:\n throw new Error(\n 'Unrecognized order type. Should be `defined` or `random`'\n )\n }\n}\n\nfunction splitOrder(order: string) {\n if (!order.includes(':')) {\n return [order, '']\n }\n return order.split(':')\n}\n\nexport async function emitMetaMessage(\n eventBroadcaster: EventEmitter,\n env: NodeJS.ProcessEnv\n): Promise<void> {\n const meta: messages.Meta = {\n protocolVersion: messages.version,\n implementation: {\n version,\n name: 'cucumber-js',\n },\n cpu: {\n name: os.arch(),\n },\n os: {\n name: os.platform(),\n version: os.release(),\n },\n runtime: {\n name: 'node.js',\n version: process.versions.node,\n },\n ci: detectCiEnvironment(env),\n }\n eventBroadcaster.emit('envelope', {\n meta,\n })\n}\n\nconst makeSourceReference = (source: ILineAndUri) => ({\n uri: source.uri,\n location: {\n line: source.line,\n },\n})\n\nfunction emitParameterTypes(\n supportCodeLibrary: SupportCodeLibrary,\n eventBroadcaster: EventEmitter,\n newId: IdGenerator.NewId\n): void {\n for (const parameterType of supportCodeLibrary.parameterTypeRegistry\n .parameterTypes) {\n if (parameterType.builtin) {\n continue\n }\n const source =\n supportCodeLibrary.parameterTypeRegistry.lookupSource(parameterType)\n const envelope: messages.Envelope = {\n parameterType: {\n id: newId(),\n name: parameterType.name,\n preferForRegularExpressionMatch: parameterType.preferForRegexpMatch,\n regularExpressions: parameterType.regexpStrings,\n useForSnippets: parameterType.useForSnippets,\n sourceReference: makeSourceReference(source),\n },\n }\n eventBroadcaster.emit('envelope', envelope)\n }\n}\n\nfunction emitUndefinedParameterTypes(\n supportCodeLibrary: SupportCodeLibrary,\n eventBroadcaster: EventEmitter\n): void {\n for (const undefinedParameterType of supportCodeLibrary.undefinedParameterTypes) {\n const envelope: messages.Envelope = {\n undefinedParameterType,\n }\n eventBroadcaster.emit('envelope', envelope)\n }\n}\n\nfunction emitStepDefinitions(\n supportCodeLibrary: SupportCodeLibrary,\n eventBroadcaster: EventEmitter\n): void {\n supportCodeLibrary.stepDefinitions.forEach((stepDefinition) => {\n const envelope: messages.Envelope = {\n stepDefinition: {\n id: stepDefinition.id,\n pattern: {\n source: extractPatternSource(stepDefinition.pattern),\n type:\n typeof stepDefinition.pattern === 'string'\n ? messages.StepDefinitionPatternType.CUCUMBER_EXPRESSION\n : messages.StepDefinitionPatternType.REGULAR_EXPRESSION,\n },\n sourceReference: makeSourceReference(stepDefinition),\n },\n }\n eventBroadcaster.emit('envelope', envelope)\n })\n}\n\nfunction extractPatternSource(pattern: string | RegExp) {\n if (pattern instanceof RegExp) {\n return pattern.flags ? pattern.toString() : pattern.source\n }\n return pattern\n}\n\nfunction emitTestCaseHooks(\n supportCodeLibrary: SupportCodeLibrary,\n eventBroadcaster: EventEmitter\n): void {\n ;[\n [\n supportCodeLibrary.beforeTestCaseHookDefinitions,\n HookType.BEFORE_TEST_CASE,\n ] as const,\n [\n supportCodeLibrary.afterTestCaseHookDefinitions,\n HookType.AFTER_TEST_CASE,\n ] as const,\n ].forEach(([hooks, type]) => {\n hooks.forEach((hook) => {\n eventBroadcaster.emit('envelope', {\n hook: {\n id: hook.id,\n type,\n name: hook.name,\n tagExpression: hook.tagExpression,\n sourceReference: makeSourceReference(hook),\n },\n } satisfies Envelope)\n })\n })\n}\n\nfunction emitTestRunHooks(\n supportCodeLibrary: SupportCodeLibrary,\n eventBroadcaster: EventEmitter\n): void {\n ;[\n [\n supportCodeLibrary.beforeTestRunHookDefinitions,\n HookType.BEFORE_TEST_RUN,\n ] as const,\n [\n supportCodeLibrary.afterTestRunHookDefinitions,\n HookType.AFTER_TEST_RUN,\n ] as const,\n ].forEach(([hooks, type]) => {\n hooks.forEach((hook) => {\n eventBroadcaster.emit('envelope', {\n hook: {\n id: hook.id,\n type,\n name: hook.name,\n sourceReference: makeSourceReference(hook),\n },\n } satisfies Envelope)\n })\n })\n}\n\nexport function emitSupportCodeMessages({\n eventBroadcaster,\n supportCodeLibrary,\n newId,\n}: {\n eventBroadcaster: EventEmitter\n supportCodeLibrary: SupportCodeLibrary\n newId: IdGenerator.NewId\n}): void {\n emitParameterTypes(supportCodeLibrary, eventBroadcaster, newId)\n emitUndefinedParameterTypes(supportCodeLibrary, eventBroadcaster)\n emitStepDefinitions(supportCodeLibrary, eventBroadcaster)\n emitTestCaseHooks(supportCodeLibrary, eventBroadcaster)\n emitTestRunHooks(supportCodeLibrary, eventBroadcaster)\n}\n"]}
|