diff --git a/.mocharc.yml b/.mocharc.yml index ec5b61292..a143c6147 100644 --- a/.mocharc.yml +++ b/.mocharc.yml @@ -1,4 +1,5 @@ colors: true +fail-zero: true file: - test/test_helper.ts full-trace: true diff --git a/compatibility/cck_spec.ts b/compatibility/cck_spec.ts index 7025ff619..fe19eaccb 100644 --- a/compatibility/cck_spec.ts +++ b/compatibility/cck_spec.ts @@ -20,10 +20,10 @@ const CCK_IMPLEMENTATIONS_PATH = 'compatibility/features' config.truncateThreshold = 100 use(chaiExclude) -describe('Cucumber Compatibility Kit', async () => { - const ndjsonFiles = await glob(`${CCK_FEATURES_PATH}/**/*.ndjson`) +describe('Cucumber Compatibility Kit', () => { + const ndjsonFiles = glob.sync(`${CCK_FEATURES_PATH}/**/*.ndjson`) ndjsonFiles.forEach((fixturePath) => { - const match = /^.+\/(.+)(\.feature(?:\.md)?)\.ndjson$/.exec(fixturePath) + const match = /^.+[/\\](.+)(\.feature(?:\.md)?)\.ndjson$/.exec(fixturePath) const suiteName = match[1] const extension = match[2] it(`passes the cck suite for '${suiteName}'`, async () => { diff --git a/compatibility/features/attachments/attachments.ts b/compatibility/features/attachments/attachments.ts index 9d55b7d1a..031a2161a 100644 --- a/compatibility/features/attachments/attachments.ts +++ b/compatibility/features/attachments/attachments.ts @@ -1,59 +1,60 @@ import fs from 'node:fs' import path from 'node:path' -import { ReadableStreamBuffer } from 'stream-buffers' -import { Before, When, World } from '../../../src' +import { Before, When } from '../../../src' -Before((): void => undefined) +Before(() => undefined) When( 'the string {string} is attached as {string}', - async function (this: World, text: string, mediaType: string) { - await this.attach(text, mediaType) + function (text: string, mediaType: string) { + this.attach(text, mediaType) } ) -When( - 'the string {string} is logged', - async function (this: World, text: string) { - await this.log(text) - } -) +When('the string {string} is logged', function (text: string) { + this.log(text) +}) -When('text with ANSI escapes is logged', async function (this: World) { - await this.log( +When('text with ANSI escapes is logged', function () { + this.log( 'This displays a \x1b[31mr\x1b[0m\x1b[91ma\x1b[0m\x1b[33mi\x1b[0m\x1b[32mn\x1b[0m\x1b[34mb\x1b[0m\x1b[95mo\x1b[0m\x1b[35mw\x1b[0m' ) }) When( 'the following string is attached as {string}:', - async function (this: World, mediaType: string, text: string) { - await this.attach(text, mediaType) + function (mediaType: string, text: string) { + this.attach(text, mediaType) } ) When( 'an array with {int} bytes is attached as {string}', - async function (this: World, size: number, mediaType: string) { + function (size: number, mediaType: string) { const data = [...Array(size).keys()] const buffer = Buffer.from(data) - await this.attach(buffer, mediaType) + this.attach(buffer, mediaType) } ) -When( - 'a stream with {int} bytes are attached as {string}', - async function (this: World, size: number, mediaType: string) { - const data = [...Array(size).keys()] - const buffer = Buffer.from(data) - const stream = new ReadableStreamBuffer({ chunkSize: 1, frequency: 1 }) - stream.put(buffer) - stream.stop() - await this.attach(stream, mediaType) - } -) +When('a JPEG image is attached', async function () { + await this.attach( + fs.createReadStream( + path.join( + process.cwd(), + 'node_modules', + '@cucumber', + 'compatibility-kit', + 'features', + 'attachments', + 'cucumber.jpeg' + ) + ), + 'image/jpeg' + ) +}) -When('a JPEG image is attached', async function (this: World) { +When('a PNG image is attached', async function () { await this.attach( fs.createReadStream( path.join( @@ -70,7 +71,7 @@ When('a JPEG image is attached', async function (this: World) { ) }) -When('the {word} png is attached', async function (filename) { +When('a PDF document is attached and renamed', async function () { await this.attach( fs.createReadStream( path.join( @@ -80,32 +81,12 @@ When('the {word} png is attached', async function (filename) { 'compatibility-kit', 'features', 'attachments', - filename + 'document.pdf' ) ), - 'image/png' + { + mediaType: 'application/pdf', + fileName: 'renamed.pdf', + } ) }) - -When( - 'a PDF document is attached with a filename', - async function (this: World) { - await this.attach( - fs.createReadStream( - path.join( - process.cwd(), - 'node_modules', - '@cucumber', - 'compatibility-kit', - 'features', - 'attachments', - 'document.pdf' - ) - ), - { - mediaType: 'application/pdf', - fileName: 'document.pdf', - } - ) - } -) diff --git a/compatibility/features/hooks/hooks.ts b/compatibility/features/hooks/hooks.ts index d4d469e5d..7c8aad5d2 100644 --- a/compatibility/features/hooks/hooks.ts +++ b/compatibility/features/hooks/hooks.ts @@ -1,6 +1,6 @@ import fs from 'node:fs' import path from 'node:path' -import { When, Before, After, World } from '../../../src' +import { When, Before, After } from '../../../src' Before(function () { // no-op @@ -14,19 +14,19 @@ When('a step passes', function () { // no-op }) -When('a step throws an exception', function () { +When('a step fails', function () { throw new Error('Exception in step') }) After(function () { - throw new Error('Exception in hook') + // no-op }) After('@some-tag or @some-other-tag', function () { throw new Error('Exception in conditional hook') }) -After('@with-attachment', async function (this: World) { +After('@with-attachment', async function () { await this.attach( fs.createReadStream( path.join( diff --git a/compatibility/features/parameter-types/parameter-types.ts b/compatibility/features/parameter-types/parameter-types.ts index c3213591f..b3dd38b4d 100644 --- a/compatibility/features/parameter-types/parameter-types.ts +++ b/compatibility/features/parameter-types/parameter-types.ts @@ -1,4 +1,4 @@ -import { expect } from 'chai' +import assert from 'node:assert' import { Given, defineParameterType } from '../../../src' class Flight { @@ -16,11 +16,7 @@ defineParameterType({ }, }) -Given( - '{flight} has been delayed {int} minutes', - function (flight: Flight, delay: number) { - expect(flight.from).to.eq('LHR') - expect(flight.to).to.eq('CDG') - expect(delay).to.eq(45) - } -) +Given('{flight} has been delayed', function (flight: Flight) { + assert.strictEqual(flight.from, 'LHR') + assert.strictEqual(flight.to, 'CDG') +}) diff --git a/compatibility/features/pending/pending.ts b/compatibility/features/pending/pending.ts index c0e4fc84d..7caca772f 100644 --- a/compatibility/features/pending/pending.ts +++ b/compatibility/features/pending/pending.ts @@ -1,13 +1,13 @@ import { Given } from '../../../src' -Given('an implemented step', function () { +Given('an implemented non-pending step', function () { // no-op }) -Given('a step that isnt implemented yet', function () { - return 'pending' +Given('an implemented step that is skipped', function () { + // no-op }) -Given('a step that we expect to be skipped', function () { - // no-op +Given('an unimplemented pending step', function () { + return 'pending' }) diff --git a/compatibility/features/rules/rules.ts b/compatibility/features/rules/rules.ts index 2ff9f3a1d..27eca9eb6 100644 --- a/compatibility/features/rules/rules.ts +++ b/compatibility/features/rules/rules.ts @@ -1,42 +1,28 @@ import assert from 'node:assert' import { Given, When, Then } from '../../../src' -Given( - 'there are {int} {float} coins inside', - function (count: number, denomination: number) { - // TODO: implement this - assert(count) - assert(denomination) - } -) +Given('the customer has {int} cents', function (money) { + this.money = money +}) -Given('there are no chocolates inside', function () { - // TODO: implement this +Given('there are chocolate bars in stock', function () { + this.stock = ['Mars'] }) -Given('there are {int} chocolates inside', function (chocolateCount: number) { - // TODO: implement this - assert(chocolateCount) +Given('there are no chocolate bars in stock', function () { + this.stock = [] }) -When( - 'the customer tries to buy a {float} chocolate with a {float} coin', - function (price: number, paid: number) { - // TODO: implement this - assert(price) - assert(paid) +When('the customer tries to buy a {int} cent chocolate bar', function (price) { + if (this.money >= price) { + this.chocolate = this.stock.pop() } -) +}) Then('the sale should not happen', function () { - // TODO: implement this + assert.strictEqual(this.chocolate, undefined) }) -Then( - "the customer's change should be {int} {float} coin(s)", - function (count: number, denomination: number) { - // TODO: implement this - assert(count) - assert(denomination) - } -) +Then('the sale should happen', function () { + assert.ok(this.chocolate) +}) diff --git a/compatibility/features/skipped/skipped.ts b/compatibility/features/skipped/skipped.ts index 4f9885d67..0e6448de3 100644 --- a/compatibility/features/skipped/skipped.ts +++ b/compatibility/features/skipped/skipped.ts @@ -4,14 +4,14 @@ Before('@skip', function () { return 'skipped' }) -Given('an implemented step', function () { +Given('a step that does not skip', function () { // no-op }) -Given('a step that we expect to be skipped', function () { +Given('a step that is skipped', function () { // no-op }) -Given('a step that skips', function () { +Given('I skip a step', function () { return 'skipped' }) diff --git a/compatibility/features/undefined/undefined.ts b/compatibility/features/undefined/undefined.ts index 245813d63..4962f413c 100644 --- a/compatibility/features/undefined/undefined.ts +++ b/compatibility/features/undefined/undefined.ts @@ -4,6 +4,6 @@ Given('an implemented step', function () { // no-op }) -Given('a step that we expect to be skipped', function () { +Given('a step that will be skipped', function () { // no-op }) diff --git a/package-lock.json b/package-lock.json index 473790c86..ab68f26a4 100644 --- a/package-lock.json +++ b/package-lock.json @@ -10,14 +10,14 @@ "license": "MIT", "dependencies": { "@cucumber/ci-environment": "9.2.0", - "@cucumber/cucumber-expressions": "16.1.2", - "@cucumber/gherkin": "26.2.0", + "@cucumber/cucumber-expressions": "17.0.0", + "@cucumber/gherkin": "27.0.0", "@cucumber/gherkin-streams": "5.0.1", - "@cucumber/gherkin-utils": "8.0.2", + "@cucumber/gherkin-utils": "8.0.5", "@cucumber/html-formatter": "20.4.0", "@cucumber/message-streams": "4.0.1", - "@cucumber/messages": "22.0.0", - "@cucumber/tag-expressions": "5.0.1", + "@cucumber/messages": "23.0.0", + "@cucumber/tag-expressions": "6.0.0", "assertion-error-formatter": "^3.0.0", "capital-case": "^1.0.4", "chalk": "^4.1.2", @@ -55,7 +55,7 @@ "cucumber-js": "bin/cucumber.js" }, "devDependencies": { - "@cucumber/compatibility-kit": "^12.0.0", + "@cucumber/compatibility-kit": "14.1.0", "@cucumber/query": "12.0.1", "@microsoft/api-documenter": "7.19.27", "@microsoft/api-extractor": "7.33.7", @@ -107,7 +107,6 @@ "shx": "0.3.4", "sinon": "15.0.1", "sinon-chai": "3.7.0", - "stream-buffers": "3.0.2", "stream-to-string": "1.2.0", "ts-node": "10.9.1", "tsd": "0.25.0", @@ -619,23 +618,23 @@ "integrity": "sha512-jLzRtVwdtNt+uAmTwvXwW9iGYLEOJFpDSmnx/dgoMGKXUWRx1UHT86Q696CLdgXO8kyTwsgJY0c6n5SW9VitAA==" }, "node_modules/@cucumber/compatibility-kit": { - "version": "12.0.0", - "resolved": "https://registry.npmjs.org/@cucumber/compatibility-kit/-/compatibility-kit-12.0.0.tgz", - "integrity": "sha512-p+wvlFLoYILwsCcKpai/2lnTby/02gvtcIb22fC59srDAQapXhLwcR7irHbX4Hhj+06TbQLSMbd1T2uZrccJzw==", + "version": "14.1.0", + "resolved": "https://registry.npmjs.org/@cucumber/compatibility-kit/-/compatibility-kit-14.1.0.tgz", + "integrity": "sha512-BWmS2kTNn0XHuQIhDxo7aTRR4AzzSVXB2CuEB8J+Fuqg4j9nWFvSFB0UoWtlp+PSOxRS4QfmnZmeBcsjBZ5r0A==", "dev": true }, "node_modules/@cucumber/cucumber-expressions": { - "version": "16.1.2", - "resolved": "https://registry.npmjs.org/@cucumber/cucumber-expressions/-/cucumber-expressions-16.1.2.tgz", - "integrity": "sha512-CfHEbxJ5FqBwF6mJyLLz4B353gyHkoi6cCL4J0lfDZ+GorpcWw4n2OUAdxJmP7ZlREANWoTFlp4FhmkLKrCfUA==", + "version": "17.0.0", + "resolved": "https://registry.npmjs.org/@cucumber/cucumber-expressions/-/cucumber-expressions-17.0.0.tgz", + "integrity": "sha512-0r4+dD52jRnIt6pET/LxQ4tunTGOW/rtjeykw6Wr6naBiPZRY0VA0bqF1AgSVLeNb0yhuZaCbXelTUe/T6riuw==", "dependencies": { "regexp-match-indices": "1.0.2" } }, "node_modules/@cucumber/gherkin": { - "version": "26.2.0", - "resolved": "https://registry.npmjs.org/@cucumber/gherkin/-/gherkin-26.2.0.tgz", - "integrity": "sha512-iRSiK8YAIHAmLrn/mUfpAx7OXZ7LyNlh1zT89RoziSVCbqSVDxJS6ckEzW8loxs+EEXl0dKPQOXiDmbHV+C/fA==", + "version": "27.0.0", + "resolved": "https://registry.npmjs.org/@cucumber/gherkin/-/gherkin-27.0.0.tgz", + "integrity": "sha512-j5rCsjqzRiC3iVTier3sa0kzyNbkcAmF7xr7jKnyO7qDeK3Z8Ye1P3KSVpeQRMY+KCDJ3WbTDdyxH0FwfA/fIw==", "dependencies": { "@cucumber/messages": ">=19.1.4 <=22" } @@ -666,14 +665,14 @@ } }, "node_modules/@cucumber/gherkin-utils": { - "version": "8.0.2", - "resolved": "https://registry.npmjs.org/@cucumber/gherkin-utils/-/gherkin-utils-8.0.2.tgz", - "integrity": "sha512-aQlziN3r3cTwprEDbLEcFoMRQajb9DTOu2OZZp5xkuNz6bjSTowSY90lHUD2pWT7jhEEckZRIREnk7MAwC2d1A==", - "dependencies": { - "@cucumber/gherkin": "^25.0.0", - "@cucumber/messages": "^19.1.4", - "@teppeis/multimaps": "2.0.0", - "commander": "9.4.1", + "version": "8.0.5", + "resolved": "https://registry.npmjs.org/@cucumber/gherkin-utils/-/gherkin-utils-8.0.5.tgz", + "integrity": "sha512-kxM1OCDjYddF26VKc892PF0GokW4wUIl1PUz3TIXsPZgS39ExM1pF8oww8mlGFD2B0+4op/cSE3SSIME5H3aNw==", + "dependencies": { + "@cucumber/gherkin": "^26.0.0", + "@cucumber/messages": "^22.0.0", + "@teppeis/multimaps": "3.0.0", + "commander": "10.0.1", "source-map-support": "^0.5.21" }, "bin": { @@ -681,32 +680,53 @@ } }, "node_modules/@cucumber/gherkin-utils/node_modules/@cucumber/gherkin": { - "version": "25.0.2", - "resolved": "https://registry.npmjs.org/@cucumber/gherkin/-/gherkin-25.0.2.tgz", - "integrity": "sha512-EdsrR33Y5GjuOoe2Kq5Y9DYwgNRtUD32H4y2hCrT6+AWo7ibUQu7H+oiWTgfVhwbkHsZmksxHSxXz/AwqqyCRQ==", + "version": "26.2.0", + "resolved": "https://registry.npmjs.org/@cucumber/gherkin/-/gherkin-26.2.0.tgz", + "integrity": "sha512-iRSiK8YAIHAmLrn/mUfpAx7OXZ7LyNlh1zT89RoziSVCbqSVDxJS6ckEzW8loxs+EEXl0dKPQOXiDmbHV+C/fA==", "dependencies": { - "@cucumber/messages": "^19.1.4" + "@cucumber/messages": ">=19.1.4 <=22" } }, "node_modules/@cucumber/gherkin-utils/node_modules/@cucumber/messages": { - "version": "19.1.4", - "resolved": "https://registry.npmjs.org/@cucumber/messages/-/messages-19.1.4.tgz", - "integrity": "sha512-Pksl0pnDz2l1+L5Ug85NlG6LWrrklN9qkMxN5Mv+1XZ3T6u580dnE6mVaxjJRdcOq4tR17Pc0RqIDZMyVY1FlA==", + "version": "22.0.0", + "resolved": "https://registry.npmjs.org/@cucumber/messages/-/messages-22.0.0.tgz", + "integrity": "sha512-EuaUtYte9ilkxcKmfqGF9pJsHRUU0jwie5ukuZ/1NPTuHS1LxHPsGEODK17RPRbZHOFhqybNzG2rHAwThxEymg==", "dependencies": { - "@types/uuid": "8.3.4", + "@types/uuid": "9.0.1", "class-transformer": "0.5.1", "reflect-metadata": "0.1.13", "uuid": "9.0.0" } }, - "node_modules/@cucumber/gherkin-utils/node_modules/commander": { - "version": "9.4.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-9.4.1.tgz", - "integrity": "sha512-5EEkTNyHNGFPD2H+c/dXXfQZYa/scCKasxWcXJaWnNJ99pnQN9Vnmqow+p+PlFPE63Q6mThaZws1T+HxfpgtPw==", + "node_modules/@cucumber/gherkin-utils/node_modules/@teppeis/multimaps": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@teppeis/multimaps/-/multimaps-3.0.0.tgz", + "integrity": "sha512-ID7fosbc50TbT0MK0EG12O+gAP3W3Aa/Pz4DaTtQtEvlc9Odaqi0de+xuZ7Li2GtK4HzEX7IuRWS/JmZLksR3Q==", "engines": { - "node": "^12.20.0 || >=14" + "node": ">=14" + } + }, + "node_modules/@cucumber/gherkin-utils/node_modules/@types/uuid": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/@types/uuid/-/uuid-9.0.1.tgz", + "integrity": "sha512-rFT3ak0/2trgvp4yYZo5iKFEPsET7vKydKF+VRCxlQ9bpheehyAJH89dAkaLEq/j/RZXJIqcgsmPJKUP1Z28HA==" + }, + "node_modules/@cucumber/gherkin/node_modules/@cucumber/messages": { + "version": "22.0.0", + "resolved": "https://registry.npmjs.org/@cucumber/messages/-/messages-22.0.0.tgz", + "integrity": "sha512-EuaUtYte9ilkxcKmfqGF9pJsHRUU0jwie5ukuZ/1NPTuHS1LxHPsGEODK17RPRbZHOFhqybNzG2rHAwThxEymg==", + "dependencies": { + "@types/uuid": "9.0.1", + "class-transformer": "0.5.1", + "reflect-metadata": "0.1.13", + "uuid": "9.0.0" } }, + "node_modules/@cucumber/gherkin/node_modules/@types/uuid": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/@types/uuid/-/uuid-9.0.1.tgz", + "integrity": "sha512-rFT3ak0/2trgvp4yYZo5iKFEPsET7vKydKF+VRCxlQ9bpheehyAJH89dAkaLEq/j/RZXJIqcgsmPJKUP1Z28HA==" + }, "node_modules/@cucumber/html-formatter": { "version": "20.4.0", "resolved": "https://registry.npmjs.org/@cucumber/html-formatter/-/html-formatter-20.4.0.tgz", @@ -724,20 +744,32 @@ } }, "node_modules/@cucumber/messages": { - "version": "22.0.0", - "resolved": "https://registry.npmjs.org/@cucumber/messages/-/messages-22.0.0.tgz", - "integrity": "sha512-EuaUtYte9ilkxcKmfqGF9pJsHRUU0jwie5ukuZ/1NPTuHS1LxHPsGEODK17RPRbZHOFhqybNzG2rHAwThxEymg==", + "version": "23.0.0", + "resolved": "https://registry.npmjs.org/@cucumber/messages/-/messages-23.0.0.tgz", + "integrity": "sha512-2ZWKNnikNMBnle3P3cgy+fgzhABrY4oBbiWp9wcI8ANdT4LlYRN6jQ6j/9CQGTDGRfkyRtr/5VkYq7q24XCsuA==", "dependencies": { - "@types/uuid": "9.0.1", + "@types/uuid": "9.0.6", "class-transformer": "0.5.1", "reflect-metadata": "0.1.13", - "uuid": "9.0.0" + "uuid": "9.0.1" } }, "node_modules/@cucumber/messages/node_modules/@types/uuid": { + "version": "9.0.6", + "resolved": "https://registry.npmjs.org/@types/uuid/-/uuid-9.0.6.tgz", + "integrity": "sha512-BT2Krtx4xaO6iwzwMFUYvWBWkV2pr37zD68Vmp1CDV196MzczBRxuEpD6Pr395HAgebC/co7hOphs53r8V7jew==" + }, + "node_modules/@cucumber/messages/node_modules/uuid": { "version": "9.0.1", - "resolved": "https://registry.npmjs.org/@types/uuid/-/uuid-9.0.1.tgz", - "integrity": "sha512-rFT3ak0/2trgvp4yYZo5iKFEPsET7vKydKF+VRCxlQ9bpheehyAJH89dAkaLEq/j/RZXJIqcgsmPJKUP1Z28HA==" + "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.1.tgz", + "integrity": "sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==", + "funding": [ + "https://github.com/sponsors/broofa", + "https://github.com/sponsors/ctavan" + ], + "bin": { + "uuid": "dist/bin/uuid" + } }, "node_modules/@cucumber/query": { "version": "12.0.1", @@ -762,9 +794,9 @@ } }, "node_modules/@cucumber/tag-expressions": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/@cucumber/tag-expressions/-/tag-expressions-5.0.1.tgz", - "integrity": "sha512-N43uWud8ZXuVjza423T9ZCIJsaZhFekmakt7S9bvogTxqdVGbRobjR663s0+uW0Rz9e+Pa8I6jUuWtoBLQD2Mw==" + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/@cucumber/tag-expressions/-/tag-expressions-6.0.0.tgz", + "integrity": "sha512-JbNb/254Wn6b8cfrIJoqR0NekHXvoB/eMvSY4RK11H8k+YZfm7mZesu/3yVX67nkW+Y+PGjZFcgTMcfjwFRsRw==" }, "node_modules/@eslint-community/eslint-utils": { "version": "4.4.0", @@ -1448,6 +1480,7 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/@teppeis/multimaps/-/multimaps-2.0.0.tgz", "integrity": "sha512-TL1adzq1HdxUf9WYduLcQ/DNGYiz71U31QRgbnr0Ef1cPyOUOsBojxHVWpFeOSUucB6Lrs0LxFRA14ntgtkc9w==", + "dev": true, "engines": { "node": ">=10.17" } @@ -1792,7 +1825,8 @@ "node_modules/@types/uuid": { "version": "8.3.4", "resolved": "https://registry.npmjs.org/@types/uuid/-/uuid-8.3.4.tgz", - "integrity": "sha512-c/I8ZRb51j+pYGAu5CrFMRxqZ2ke4y2grEBO5AUjgSkSk+qT2Ea+OdWElz/OiMf5MNpn2b17kuVBwZLQJXzihw==" + "integrity": "sha512-c/I8ZRb51j+pYGAu5CrFMRxqZ2ke4y2grEBO5AUjgSkSk+qT2Ea+OdWElz/OiMf5MNpn2b17kuVBwZLQJXzihw==", + "dev": true }, "node_modules/@types/verror": { "version": "1.10.6", @@ -7799,15 +7833,6 @@ "node": ">= 0.8" } }, - "node_modules/stream-buffers": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/stream-buffers/-/stream-buffers-3.0.2.tgz", - "integrity": "sha512-DQi1h8VEBA/lURbSwFtEHnSTb9s2/pwLEaFuNhXwy1Dx3Sa0lOuYT2yNUr4/j2fs8oCAMANtrZ5OrPZtyVs3MQ==", - "dev": true, - "engines": { - "node": ">= 0.10.0" - } - }, "node_modules/stream-to-string": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/stream-to-string/-/stream-to-string-1.2.0.tgz", diff --git a/package.json b/package.json index 7aaf27edf..985275dca 100644 --- a/package.json +++ b/package.json @@ -208,14 +208,14 @@ }, "dependencies": { "@cucumber/ci-environment": "9.2.0", - "@cucumber/cucumber-expressions": "16.1.2", - "@cucumber/gherkin": "26.2.0", + "@cucumber/cucumber-expressions": "17.0.0", + "@cucumber/gherkin": "27.0.0", "@cucumber/gherkin-streams": "5.0.1", - "@cucumber/gherkin-utils": "8.0.2", + "@cucumber/gherkin-utils": "8.0.5", "@cucumber/html-formatter": "20.4.0", "@cucumber/message-streams": "4.0.1", - "@cucumber/messages": "22.0.0", - "@cucumber/tag-expressions": "5.0.1", + "@cucumber/messages": "23.0.0", + "@cucumber/tag-expressions": "6.0.0", "assertion-error-formatter": "^3.0.0", "capital-case": "^1.0.4", "chalk": "^4.1.2", @@ -250,7 +250,7 @@ "yup": "1.2.0" }, "devDependencies": { - "@cucumber/compatibility-kit": "^12.0.0", + "@cucumber/compatibility-kit": "14.1.0", "@cucumber/query": "12.0.1", "@microsoft/api-documenter": "7.19.27", "@microsoft/api-extractor": "7.33.7", @@ -302,7 +302,6 @@ "shx": "0.3.4", "sinon": "15.0.1", "sinon-chai": "3.7.0", - "stream-buffers": "3.0.2", "stream-to-string": "1.2.0", "ts-node": "10.9.1", "tsd": "0.25.0",