diff --git a/package-lock.json b/package-lock.json index 76ae31d7..bf74d960 100644 --- a/package-lock.json +++ b/package-lock.json @@ -18,7 +18,7 @@ "@serenity-js/serenity-bdd": "^3.12.0", "@serenity-js/web": "^3.12.0", "protractor": "^7.0.0", - "protractor-cucumber-framework": "^9.8.0" + "protractor-cucumber-framework": "^9.17.1" }, "devDependencies": { "@types/node": "^18.18.5", @@ -549,24 +549,24 @@ } }, "node_modules/@serenity-js/cucumber": { - "version": "3.12.0", - "resolved": "https://registry.npmjs.org/@serenity-js/cucumber/-/cucumber-3.12.0.tgz", - "integrity": "sha512-HtclIr+H4z1UKY1sfo674r1w+VOezJWFGFAboC6/yXmDb2x0IlmM8nHpyfXWMLbmcoc3d3o/4hz/S4dtKziVwA==", + "version": "3.31.13", + "resolved": "https://registry.npmjs.org/@serenity-js/cucumber/-/cucumber-3.31.13.tgz", + "integrity": "sha512-NbWacDcGtAIBWG3ygeXwWzXcg+DVbx/lDq5dY33cIbjPakVtaiB2WpGiYZAtndhVSTfPEizNSclemIFGUGgKBA==", "dependencies": { - "@cucumber/messages": "21.0.1", - "@serenity-js/core": "3.12.0", - "cli-table3": "^0.6.3", + "@cucumber/messages": "26.0.1", + "@serenity-js/core": "3.31.13", + "cli-table3": "0.6.5", "gherkin": "5.1.0", - "tiny-types": "^1.20.0" + "tiny-types": "1.23.0" }, "engines": { - "node": "^16.13 || ^18.12 || ^20" + "node": "^18.12 || ^20 || ^22" }, "funding": { "url": "https://github.com/sponsors/serenity-js" }, "peerDependencies": { - "@cucumber/cucumber": "^7.3.2 || ^8.5.0 || ^9.1.0", + "@cucumber/cucumber": "^7.3.2 || ^8.5.0 || ^9.1.0 || ^10.0.0 || ^11.0.0", "cucumber": "^1.3.3 || ^2.3.1 || ^3.2.1 || ^4.2.1 || ^5.0.0 || ^6.0.0" }, "peerDependenciesMeta": { @@ -579,14 +579,101 @@ } }, "node_modules/@serenity-js/cucumber/node_modules/@cucumber/messages": { - "version": "21.0.1", - "resolved": "https://registry.npmjs.org/@cucumber/messages/-/messages-21.0.1.tgz", - "integrity": "sha512-pGR7iURM4SF9Qp1IIpNiVQ77J9kfxMkPOEbyy+zRmGABnWWCsqMpJdfHeh9Mb3VskemVw85++e15JT0PYdcR3g==", + "version": "26.0.1", + "resolved": "https://registry.npmjs.org/@cucumber/messages/-/messages-26.0.1.tgz", + "integrity": "sha512-DIxSg+ZGariumO+Lq6bn4kOUIUET83A4umrnWmidjGFl8XxkBieUZtsmNbLYgH/gnsmP07EfxxdTr0hOchV1Sg==", "dependencies": { - "@types/uuid": "8.3.4", + "@types/uuid": "10.0.0", "class-transformer": "0.5.1", - "reflect-metadata": "0.1.13", - "uuid": "9.0.0" + "reflect-metadata": "0.2.2", + "uuid": "10.0.0" + } + }, + "node_modules/@serenity-js/cucumber/node_modules/@serenity-js/core": { + "version": "3.31.13", + "resolved": "https://registry.npmjs.org/@serenity-js/core/-/core-3.31.13.tgz", + "integrity": "sha512-e14PobrKfODhyYMEukXOaTPP08GPivdwfnsn2wxVqqKiFfVuk9r7XJo65eAjgzPrte3W20kzl1hpu7v5rvVbQQ==", + "dependencies": { + "@paralleldrive/cuid2": "2.2.2", + "chalk": "4.1.2", + "diff": "6.0.0", + "error-stack-parser": "2.1.4", + "fast-glob": "3.3.3", + "filenamify": "4.3.0", + "graceful-fs": "4.2.11", + "semver": "7.7.1", + "tiny-types": "1.23.0", + "upath": "2.0.1", + "validate-npm-package-name": "6.0.0" + }, + "engines": { + "node": "^18.12 || ^20 || ^22" + }, + "funding": { + "url": "https://github.com/sponsors/serenity-js" + } + }, + "node_modules/@serenity-js/cucumber/node_modules/@types/uuid": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/@types/uuid/-/uuid-10.0.0.tgz", + "integrity": "sha512-7gqG38EyHgyP1S+7+xomFtL+ZNHcKv6DwNaCZmJmo1vgMugyF3TCnXVg4t1uk89mLNwnLtnY3TpOpCOyp1/xHQ==" + }, + "node_modules/@serenity-js/cucumber/node_modules/cli-table3": { + "version": "0.6.5", + "resolved": "https://registry.npmjs.org/cli-table3/-/cli-table3-0.6.5.tgz", + "integrity": "sha512-+W/5efTR7y5HRD7gACw9yQjqMVvEMLBHmboM/kPWam+H+Hmyrgjh6YncVKK122YZkXrLudzTuAukUw9FnMf7IQ==", + "dependencies": { + "string-width": "^4.2.0" + }, + "engines": { + "node": "10.* || >= 12.*" + }, + "optionalDependencies": { + "@colors/colors": "1.5.0" + } + }, + "node_modules/@serenity-js/cucumber/node_modules/diff": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/diff/-/diff-6.0.0.tgz", + "integrity": "sha512-NbGtgPSw7il+jeajji1H6iKjCk3r/ANQKw3FFUhGV50+MH5MKIMeUmi53piTr7jlkWcq9eS858qbkRzkehwe+w==", + "engines": { + "node": ">=0.3.1" + } + }, + "node_modules/@serenity-js/cucumber/node_modules/reflect-metadata": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/reflect-metadata/-/reflect-metadata-0.2.2.tgz", + "integrity": "sha512-urBwgfrvVP/eAyXx4hluJivBKzuEbSQs9rKWCrCkbSxNv8mxPcUZKeuoF3Uy4mJl3Lwprp6yy5/39VWigZ4K6Q==" + }, + "node_modules/@serenity-js/cucumber/node_modules/semver": { + "version": "7.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.1.tgz", + "integrity": "sha512-hlq8tAfn0m/61p4BVRcPzIGr6LKiMwo4VM6dGi6pt4qcRkmNzTcWq6eCEjEh+qXjkMDvPlOFFSGwQjoEa6gyMA==", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@serenity-js/cucumber/node_modules/uuid": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-10.0.0.tgz", + "integrity": "sha512-8XkAphELsDnEGrDxUOHB3RGvXz6TeuYSGEZBOjtTtPm2lwhGBjLgOzLHB63IUWfBpNucQjND6d3AOudO+H3RWQ==", + "funding": [ + "https://github.com/sponsors/broofa", + "https://github.com/sponsors/ctavan" + ], + "bin": { + "uuid": "dist/bin/uuid" + } + }, + "node_modules/@serenity-js/cucumber/node_modules/validate-npm-package-name": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/validate-npm-package-name/-/validate-npm-package-name-6.0.0.tgz", + "integrity": "sha512-d7KLgL1LD3U3fgnvWEY1cQXoO/q6EQ1BSz48Sa149V/5zVTAbgmZIpyI8TRi6U9/JNyeYLlTKsEMPtLC27RFUg==", + "engines": { + "node": "^18.17.0 || >=20.5.0" } }, "node_modules/@serenity-js/protractor": { @@ -973,11 +1060,11 @@ "integrity": "sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA==" }, "node_modules/axios": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/axios/-/axios-1.5.1.tgz", - "integrity": "sha512-Q28iYCWzNHjAm+yEAot5QaAMxhMghWLFVf7rRdwhUI+c2jix2DUXjAHXVi+s1ibs3mjPO/cCgbA++3BjD0vP/A==", + "version": "1.8.4", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.8.4.tgz", + "integrity": "sha512-eBSYY4Y68NNlHbHBMdeDmKNtDgXWhQsJcGqzO3iLUM0GraQFSS9cVgPX5I9b3lbdFKyYoAEGAZF1DwhTaljNAw==", "dependencies": { - "follow-redirects": "^1.15.0", + "follow-redirects": "^1.15.6", "form-data": "^4.0.0", "proxy-from-env": "^1.1.0" } @@ -1044,11 +1131,11 @@ } }, "node_modules/braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", "dependencies": { - "fill-range": "^7.0.1" + "fill-range": "^7.1.1" }, "engines": { "node": ">=8" @@ -1486,15 +1573,15 @@ "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" }, "node_modules/fast-glob": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.1.tgz", - "integrity": "sha512-kNFPyjhh5cKjrUltxs+wFx+ZkbRaxxmZ+X0ZU31SOsxCEtP9VPgtq2teZw1DebupL5GmDaNQ6yKMMVcM41iqDg==", + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.3.tgz", + "integrity": "sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==", "dependencies": { "@nodelib/fs.stat": "^2.0.2", "@nodelib/fs.walk": "^1.2.3", "glob-parent": "^5.1.2", "merge2": "^1.3.0", - "micromatch": "^4.0.4" + "micromatch": "^4.0.8" }, "engines": { "node": ">=8.6.0" @@ -1561,9 +1648,9 @@ } }, "node_modules/fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", "dependencies": { "to-regex-range": "^5.0.1" }, @@ -1601,9 +1688,9 @@ } }, "node_modules/follow-redirects": { - "version": "1.15.2", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.2.tgz", - "integrity": "sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==", + "version": "1.15.9", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.9.tgz", + "integrity": "sha512-gew4GsXizNgdoRyqmyfMHyAmXsZDk6mHkSxZFCzW9gwlbtOW44CDtYavM+y+72qD/Vq2l550kMF52DT8fOLJqQ==", "funding": [ { "type": "individual", @@ -1842,9 +1929,9 @@ } }, "node_modules/http-proxy-agent": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-7.0.0.tgz", - "integrity": "sha512-+ZT+iBxVUQ1asugqnD6oWoRiS25AkjNfG085dKJGtGxkdwLQrMKU5wJr2bOOFAXzKcTuqq+7fZlTMgG3SRfIYQ==", + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-7.0.2.tgz", + "integrity": "sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==", "dependencies": { "agent-base": "^7.1.0", "debug": "^4.3.4" @@ -2285,12 +2372,12 @@ } }, "node_modules/micromatch": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz", - "integrity": "sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==", + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", + "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", "dependencies": { - "braces": "^3.0.1", - "picomatch": "^2.2.3" + "braces": "^3.0.3", + "picomatch": "^2.3.1" }, "engines": { "node": ">=8.6" @@ -2571,9 +2658,9 @@ "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=" }, "node_modules/picomatch": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.0.tgz", - "integrity": "sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw==", + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", "engines": { "node": ">=8.6" }, @@ -2691,19 +2778,19 @@ } }, "node_modules/protractor-cucumber-framework": { - "version": "9.8.0", - "resolved": "https://registry.npmjs.org/protractor-cucumber-framework/-/protractor-cucumber-framework-9.8.0.tgz", - "integrity": "sha512-+8C14u3OxvO/kN2pSqj5vvvkU3Gxih0qkD8iet+mdvPgMsbjT1lXcUI/r/rqhDksLyJ1TKvptV+ChR5oXqbnsg==", + "version": "9.17.1", + "resolved": "https://registry.npmjs.org/protractor-cucumber-framework/-/protractor-cucumber-framework-9.17.1.tgz", + "integrity": "sha512-eyA9S6YO7zRYZ3tDPSfxUpLXsvE31Fd/FkAWOspT9TypYHPzow6a+uWL9etbtufphTyotL/P0PO0AbaVfw41eQ==", "dependencies": { - "@serenity-js/core": "^3.11.1", - "@serenity-js/cucumber": "^3.11.1", - "@serenity-js/protractor": "^3.11.1" + "@serenity-js/core": "^3.31.13", + "@serenity-js/cucumber": "^3.31.13", + "@serenity-js/protractor": "^3.31.13" }, "engines": { - "node": "^16.13 || ^18.12 || ^20" + "node": "^18.12 || ^20 || ^22" }, "peerDependencies": { - "@cucumber/cucumber": "^7.3.2 || ^8.0.0 || ^9.0.0", + "@cucumber/cucumber": "^7.3.2 || ^8.5.0 || ^9.1.0 || ^10.0.0 || ^11.0.0", "cucumber": "^1.3.3 || ^2.3.1 || ^3.2.1 || ^4.2.1 || ^5.0.0 || ^6.0.0", "protractor": "^5.0.0 || ^7.0.0" }, @@ -2716,6 +2803,174 @@ } } }, + "node_modules/protractor-cucumber-framework/node_modules/@serenity-js/assertions": { + "version": "3.31.13", + "resolved": "https://registry.npmjs.org/@serenity-js/assertions/-/assertions-3.31.13.tgz", + "integrity": "sha512-mZQo1xj9kqpchFUDjZY5Y0aYjOf+LJlv6Ieyaeqdm8OtOBIORDEn4wa6ioibAtRNGzx2CZgdOheBhGaqh43lFg==", + "dependencies": { + "@serenity-js/core": "3.31.13", + "tiny-types": "1.23.0" + }, + "engines": { + "node": "^18.12 || ^20 || ^22" + }, + "funding": { + "url": "https://github.com/sponsors/serenity-js" + } + }, + "node_modules/protractor-cucumber-framework/node_modules/@serenity-js/core": { + "version": "3.31.13", + "resolved": "https://registry.npmjs.org/@serenity-js/core/-/core-3.31.13.tgz", + "integrity": "sha512-e14PobrKfODhyYMEukXOaTPP08GPivdwfnsn2wxVqqKiFfVuk9r7XJo65eAjgzPrte3W20kzl1hpu7v5rvVbQQ==", + "dependencies": { + "@paralleldrive/cuid2": "2.2.2", + "chalk": "4.1.2", + "diff": "6.0.0", + "error-stack-parser": "2.1.4", + "fast-glob": "3.3.3", + "filenamify": "4.3.0", + "graceful-fs": "4.2.11", + "semver": "7.7.1", + "tiny-types": "1.23.0", + "upath": "2.0.1", + "validate-npm-package-name": "6.0.0" + }, + "engines": { + "node": "^18.12 || ^20 || ^22" + }, + "funding": { + "url": "https://github.com/sponsors/serenity-js" + } + }, + "node_modules/protractor-cucumber-framework/node_modules/@serenity-js/protractor": { + "version": "3.31.13", + "resolved": "https://registry.npmjs.org/@serenity-js/protractor/-/protractor-3.31.13.tgz", + "integrity": "sha512-SxsitDir9/kkboe5DWHXw7lYayt8lkFU07KW3m8279hCmmJuKfK74PafMOoxN/hIZAgaFLNJaa4B7npmdIh2dA==", + "dependencies": { + "@serenity-js/core": "3.31.13", + "@serenity-js/rest": "3.31.13", + "@serenity-js/web": "3.31.13", + "deepmerge": "4.3.1", + "query-selector-shadow-dom": "1.0.1", + "tiny-types": "1.23.0" + }, + "engines": { + "node": "^18.12 || ^20 || ^22" + }, + "funding": { + "url": "https://github.com/sponsors/serenity-js" + }, + "peerDependencies": { + "@serenity-js/cucumber": "^3.0.0", + "@serenity-js/jasmine": "^3.0.0", + "@serenity-js/mocha": "^3.0.0", + "@serenity-js/web": "^3.0.0", + "protractor": "^5.0.0 || ^7.0.0" + }, + "peerDependenciesMeta": { + "@serenity-js/cucumber": { + "optional": true + }, + "@serenity-js/jasmine": { + "optional": true + }, + "@serenity-js/mocha": { + "optional": true + } + } + }, + "node_modules/protractor-cucumber-framework/node_modules/@serenity-js/rest": { + "version": "3.31.13", + "resolved": "https://registry.npmjs.org/@serenity-js/rest/-/rest-3.31.13.tgz", + "integrity": "sha512-S+duV1ZaVv6SgcPLl0H9BHPAw0chrXWskbatwEHuDUNa1SCbtlzVbe2oWQbJk/eGxvCjBdXVKL8XjklF5IeMlQ==", + "dependencies": { + "@serenity-js/core": "3.31.13", + "agent-base": "7.1.3", + "axios": "1.8.4", + "http-proxy-agent": "7.0.2", + "https-proxy-agent": "7.0.6", + "lru-cache": "11.0.2", + "proxy-from-env": "1.1.0", + "tiny-types": "1.23.0" + }, + "engines": { + "node": "^18.12 || ^20 || ^22" + }, + "funding": { + "url": "https://github.com/sponsors/serenity-js" + } + }, + "node_modules/protractor-cucumber-framework/node_modules/@serenity-js/web": { + "version": "3.31.13", + "resolved": "https://registry.npmjs.org/@serenity-js/web/-/web-3.31.13.tgz", + "integrity": "sha512-jtVOnBtjiSm/I0DxrgeIy+MtjFCYgx8gFUJF2rMVKeQqXpqLO6oHd0BrsYzXZO/4Lhl605LozGZg3ypvT8gHlw==", + "dependencies": { + "@serenity-js/assertions": "3.31.13", + "@serenity-js/core": "3.31.13", + "tiny-types": "1.23.0" + }, + "engines": { + "node": "^18.12 || ^20 || ^22" + }, + "funding": { + "url": "https://github.com/sponsors/serenity-js" + } + }, + "node_modules/protractor-cucumber-framework/node_modules/agent-base": { + "version": "7.1.3", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.3.tgz", + "integrity": "sha512-jRR5wdylq8CkOe6hei19GGZnxM6rBGwFl3Bg0YItGDimvjGtAvdZk4Pu6Cl4u4Igsws4a1fd1Vq3ezrhn4KmFw==", + "engines": { + "node": ">= 14" + } + }, + "node_modules/protractor-cucumber-framework/node_modules/diff": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/diff/-/diff-6.0.0.tgz", + "integrity": "sha512-NbGtgPSw7il+jeajji1H6iKjCk3r/ANQKw3FFUhGV50+MH5MKIMeUmi53piTr7jlkWcq9eS858qbkRzkehwe+w==", + "engines": { + "node": ">=0.3.1" + } + }, + "node_modules/protractor-cucumber-framework/node_modules/https-proxy-agent": { + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.6.tgz", + "integrity": "sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw==", + "dependencies": { + "agent-base": "^7.1.2", + "debug": "4" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/protractor-cucumber-framework/node_modules/lru-cache": { + "version": "11.0.2", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.0.2.tgz", + "integrity": "sha512-123qHRfJBmo2jXDbo/a5YOQrJoHF/GNQTLzQ5+IdK5pWpceK17yRc6ozlWd25FxvGKQbIUs91fDFkXmDHTKcyA==", + "engines": { + "node": "20 || >=22" + } + }, + "node_modules/protractor-cucumber-framework/node_modules/semver": { + "version": "7.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.1.tgz", + "integrity": "sha512-hlq8tAfn0m/61p4BVRcPzIGr6LKiMwo4VM6dGi6pt4qcRkmNzTcWq6eCEjEh+qXjkMDvPlOFFSGwQjoEa6gyMA==", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/protractor-cucumber-framework/node_modules/validate-npm-package-name": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/validate-npm-package-name/-/validate-npm-package-name-6.0.0.tgz", + "integrity": "sha512-d7KLgL1LD3U3fgnvWEY1cQXoO/q6EQ1BSz48Sa149V/5zVTAbgmZIpyI8TRi6U9/JNyeYLlTKsEMPtLC27RFUg==", + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, "node_modules/protractor/node_modules/ansi-regex": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", @@ -3627,12 +3882,11 @@ "integrity": "sha512-Eet/eeMhkO6TX8mnUteS9zgPbUMQa4I6Kkp5ORiBD5476/m+PIRiumP5tmh5ioJpH7k51Kehawy2UDfsnxxY8Q==" }, "node_modules/tiny-types": { - "version": "1.20.0", - "resolved": "https://registry.npmjs.org/tiny-types/-/tiny-types-1.20.0.tgz", - "integrity": "sha512-rI4HRTmwOlTVEnq8Il3ckaln8j0OK7nXLtkcpgcfBucdaz0YFQnLfiEmeB7XdYpvcTCI/+jZOKxmyUkwous1Gw==", + "version": "1.23.0", + "resolved": "https://registry.npmjs.org/tiny-types/-/tiny-types-1.23.0.tgz", + "integrity": "sha512-MLLNTCDWF3dJTNZul/oBOFVZlI22iTtEga/BZqeb2VGXo+Ue5Oz6p0I6qIY5Z6jpiYV4lUsEwg3dZUb4vOOBQQ==", "engines": { - "node": "^14 || ^16 || ^18", - "npm": "^6 || ^7 || ^8 || ^9" + "node": "^16 || ^18 || ^20 || ^22" } }, "node_modules/tmp": { @@ -4456,27 +4710,84 @@ } }, "@serenity-js/cucumber": { - "version": "3.12.0", - "resolved": "https://registry.npmjs.org/@serenity-js/cucumber/-/cucumber-3.12.0.tgz", - "integrity": "sha512-HtclIr+H4z1UKY1sfo674r1w+VOezJWFGFAboC6/yXmDb2x0IlmM8nHpyfXWMLbmcoc3d3o/4hz/S4dtKziVwA==", + "version": "3.31.13", + "resolved": "https://registry.npmjs.org/@serenity-js/cucumber/-/cucumber-3.31.13.tgz", + "integrity": "sha512-NbWacDcGtAIBWG3ygeXwWzXcg+DVbx/lDq5dY33cIbjPakVtaiB2WpGiYZAtndhVSTfPEizNSclemIFGUGgKBA==", "requires": { - "@cucumber/messages": "21.0.1", - "@serenity-js/core": "3.12.0", - "cli-table3": "^0.6.3", + "@cucumber/messages": "26.0.1", + "@serenity-js/core": "3.31.13", + "cli-table3": "0.6.5", "gherkin": "5.1.0", - "tiny-types": "^1.20.0" + "tiny-types": "1.23.0" }, "dependencies": { "@cucumber/messages": { - "version": "21.0.1", - "resolved": "https://registry.npmjs.org/@cucumber/messages/-/messages-21.0.1.tgz", - "integrity": "sha512-pGR7iURM4SF9Qp1IIpNiVQ77J9kfxMkPOEbyy+zRmGABnWWCsqMpJdfHeh9Mb3VskemVw85++e15JT0PYdcR3g==", + "version": "26.0.1", + "resolved": "https://registry.npmjs.org/@cucumber/messages/-/messages-26.0.1.tgz", + "integrity": "sha512-DIxSg+ZGariumO+Lq6bn4kOUIUET83A4umrnWmidjGFl8XxkBieUZtsmNbLYgH/gnsmP07EfxxdTr0hOchV1Sg==", "requires": { - "@types/uuid": "8.3.4", + "@types/uuid": "10.0.0", "class-transformer": "0.5.1", - "reflect-metadata": "0.1.13", - "uuid": "9.0.0" + "reflect-metadata": "0.2.2", + "uuid": "10.0.0" } + }, + "@serenity-js/core": { + "version": "3.31.13", + "resolved": "https://registry.npmjs.org/@serenity-js/core/-/core-3.31.13.tgz", + "integrity": "sha512-e14PobrKfODhyYMEukXOaTPP08GPivdwfnsn2wxVqqKiFfVuk9r7XJo65eAjgzPrte3W20kzl1hpu7v5rvVbQQ==", + "requires": { + "@paralleldrive/cuid2": "2.2.2", + "chalk": "4.1.2", + "diff": "6.0.0", + "error-stack-parser": "2.1.4", + "fast-glob": "3.3.3", + "filenamify": "4.3.0", + "graceful-fs": "4.2.11", + "semver": "7.7.1", + "tiny-types": "1.23.0", + "upath": "2.0.1", + "validate-npm-package-name": "6.0.0" + } + }, + "@types/uuid": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/@types/uuid/-/uuid-10.0.0.tgz", + "integrity": "sha512-7gqG38EyHgyP1S+7+xomFtL+ZNHcKv6DwNaCZmJmo1vgMugyF3TCnXVg4t1uk89mLNwnLtnY3TpOpCOyp1/xHQ==" + }, + "cli-table3": { + "version": "0.6.5", + "resolved": "https://registry.npmjs.org/cli-table3/-/cli-table3-0.6.5.tgz", + "integrity": "sha512-+W/5efTR7y5HRD7gACw9yQjqMVvEMLBHmboM/kPWam+H+Hmyrgjh6YncVKK122YZkXrLudzTuAukUw9FnMf7IQ==", + "requires": { + "@colors/colors": "1.5.0", + "string-width": "^4.2.0" + } + }, + "diff": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/diff/-/diff-6.0.0.tgz", + "integrity": "sha512-NbGtgPSw7il+jeajji1H6iKjCk3r/ANQKw3FFUhGV50+MH5MKIMeUmi53piTr7jlkWcq9eS858qbkRzkehwe+w==" + }, + "reflect-metadata": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/reflect-metadata/-/reflect-metadata-0.2.2.tgz", + "integrity": "sha512-urBwgfrvVP/eAyXx4hluJivBKzuEbSQs9rKWCrCkbSxNv8mxPcUZKeuoF3Uy4mJl3Lwprp6yy5/39VWigZ4K6Q==" + }, + "semver": { + "version": "7.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.1.tgz", + "integrity": "sha512-hlq8tAfn0m/61p4BVRcPzIGr6LKiMwo4VM6dGi6pt4qcRkmNzTcWq6eCEjEh+qXjkMDvPlOFFSGwQjoEa6gyMA==" + }, + "uuid": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-10.0.0.tgz", + "integrity": "sha512-8XkAphELsDnEGrDxUOHB3RGvXz6TeuYSGEZBOjtTtPm2lwhGBjLgOzLHB63IUWfBpNucQjND6d3AOudO+H3RWQ==" + }, + "validate-npm-package-name": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/validate-npm-package-name/-/validate-npm-package-name-6.0.0.tgz", + "integrity": "sha512-d7KLgL1LD3U3fgnvWEY1cQXoO/q6EQ1BSz48Sa149V/5zVTAbgmZIpyI8TRi6U9/JNyeYLlTKsEMPtLC27RFUg==" } } }, @@ -4765,11 +5076,11 @@ "integrity": "sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA==" }, "axios": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/axios/-/axios-1.5.1.tgz", - "integrity": "sha512-Q28iYCWzNHjAm+yEAot5QaAMxhMghWLFVf7rRdwhUI+c2jix2DUXjAHXVi+s1ibs3mjPO/cCgbA++3BjD0vP/A==", + "version": "1.8.4", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.8.4.tgz", + "integrity": "sha512-eBSYY4Y68NNlHbHBMdeDmKNtDgXWhQsJcGqzO3iLUM0GraQFSS9cVgPX5I9b3lbdFKyYoAEGAZF1DwhTaljNAw==", "requires": { - "follow-redirects": "^1.15.0", + "follow-redirects": "^1.15.6", "form-data": "^4.0.0", "proxy-from-env": "^1.1.0" }, @@ -4826,11 +5137,11 @@ } }, "braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", "requires": { - "fill-range": "^7.0.1" + "fill-range": "^7.1.1" } }, "browserstack": { @@ -5172,15 +5483,15 @@ "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" }, "fast-glob": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.1.tgz", - "integrity": "sha512-kNFPyjhh5cKjrUltxs+wFx+ZkbRaxxmZ+X0ZU31SOsxCEtP9VPgtq2teZw1DebupL5GmDaNQ6yKMMVcM41iqDg==", + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.3.tgz", + "integrity": "sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==", "requires": { "@nodelib/fs.stat": "^2.0.2", "@nodelib/fs.walk": "^1.2.3", "glob-parent": "^5.1.2", "merge2": "^1.3.0", - "micromatch": "^4.0.4" + "micromatch": "^4.0.8" } }, "fast-json-stable-stringify": { @@ -5229,9 +5540,9 @@ } }, "fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", "requires": { "to-regex-range": "^5.0.1" } @@ -5262,9 +5573,9 @@ } }, "follow-redirects": { - "version": "1.15.2", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.2.tgz", - "integrity": "sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==" + "version": "1.15.9", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.9.tgz", + "integrity": "sha512-gew4GsXizNgdoRyqmyfMHyAmXsZDk6mHkSxZFCzW9gwlbtOW44CDtYavM+y+72qD/Vq2l550kMF52DT8fOLJqQ==" }, "foreground-child": { "version": "3.1.1", @@ -5425,9 +5736,9 @@ } }, "http-proxy-agent": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-7.0.0.tgz", - "integrity": "sha512-+ZT+iBxVUQ1asugqnD6oWoRiS25AkjNfG085dKJGtGxkdwLQrMKU5wJr2bOOFAXzKcTuqq+7fZlTMgG3SRfIYQ==", + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-7.0.2.tgz", + "integrity": "sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==", "requires": { "agent-base": "^7.1.0", "debug": "^4.3.4" @@ -5778,12 +6089,12 @@ "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==" }, "micromatch": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz", - "integrity": "sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==", + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", + "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", "requires": { - "braces": "^3.0.1", - "picomatch": "^2.2.3" + "braces": "^3.0.3", + "picomatch": "^2.3.1" } }, "mime": { @@ -5979,9 +6290,9 @@ "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=" }, "picomatch": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.0.tgz", - "integrity": "sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw==" + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==" }, "pify": { "version": "2.3.0", @@ -6281,13 +6592,114 @@ } }, "protractor-cucumber-framework": { - "version": "9.8.0", - "resolved": "https://registry.npmjs.org/protractor-cucumber-framework/-/protractor-cucumber-framework-9.8.0.tgz", - "integrity": "sha512-+8C14u3OxvO/kN2pSqj5vvvkU3Gxih0qkD8iet+mdvPgMsbjT1lXcUI/r/rqhDksLyJ1TKvptV+ChR5oXqbnsg==", + "version": "9.17.1", + "resolved": "https://registry.npmjs.org/protractor-cucumber-framework/-/protractor-cucumber-framework-9.17.1.tgz", + "integrity": "sha512-eyA9S6YO7zRYZ3tDPSfxUpLXsvE31Fd/FkAWOspT9TypYHPzow6a+uWL9etbtufphTyotL/P0PO0AbaVfw41eQ==", "requires": { - "@serenity-js/core": "^3.11.1", - "@serenity-js/cucumber": "^3.11.1", - "@serenity-js/protractor": "^3.11.1" + "@serenity-js/core": "^3.31.13", + "@serenity-js/cucumber": "^3.31.13", + "@serenity-js/protractor": "^3.31.13" + }, + "dependencies": { + "@serenity-js/assertions": { + "version": "3.31.13", + "resolved": "https://registry.npmjs.org/@serenity-js/assertions/-/assertions-3.31.13.tgz", + "integrity": "sha512-mZQo1xj9kqpchFUDjZY5Y0aYjOf+LJlv6Ieyaeqdm8OtOBIORDEn4wa6ioibAtRNGzx2CZgdOheBhGaqh43lFg==", + "requires": { + "@serenity-js/core": "3.31.13", + "tiny-types": "1.23.0" + } + }, + "@serenity-js/core": { + "version": "3.31.13", + "resolved": "https://registry.npmjs.org/@serenity-js/core/-/core-3.31.13.tgz", + "integrity": "sha512-e14PobrKfODhyYMEukXOaTPP08GPivdwfnsn2wxVqqKiFfVuk9r7XJo65eAjgzPrte3W20kzl1hpu7v5rvVbQQ==", + "requires": { + "@paralleldrive/cuid2": "2.2.2", + "chalk": "4.1.2", + "diff": "6.0.0", + "error-stack-parser": "2.1.4", + "fast-glob": "3.3.3", + "filenamify": "4.3.0", + "graceful-fs": "4.2.11", + "semver": "7.7.1", + "tiny-types": "1.23.0", + "upath": "2.0.1", + "validate-npm-package-name": "6.0.0" + } + }, + "@serenity-js/protractor": { + "version": "3.31.13", + "resolved": "https://registry.npmjs.org/@serenity-js/protractor/-/protractor-3.31.13.tgz", + "integrity": "sha512-SxsitDir9/kkboe5DWHXw7lYayt8lkFU07KW3m8279hCmmJuKfK74PafMOoxN/hIZAgaFLNJaa4B7npmdIh2dA==", + "requires": { + "@serenity-js/core": "3.31.13", + "@serenity-js/rest": "3.31.13", + "@serenity-js/web": "3.31.13", + "deepmerge": "4.3.1", + "query-selector-shadow-dom": "1.0.1", + "tiny-types": "1.23.0" + } + }, + "@serenity-js/rest": { + "version": "3.31.13", + "resolved": "https://registry.npmjs.org/@serenity-js/rest/-/rest-3.31.13.tgz", + "integrity": "sha512-S+duV1ZaVv6SgcPLl0H9BHPAw0chrXWskbatwEHuDUNa1SCbtlzVbe2oWQbJk/eGxvCjBdXVKL8XjklF5IeMlQ==", + "requires": { + "@serenity-js/core": "3.31.13", + "agent-base": "7.1.3", + "axios": "1.8.4", + "http-proxy-agent": "7.0.2", + "https-proxy-agent": "7.0.6", + "lru-cache": "11.0.2", + "proxy-from-env": "1.1.0", + "tiny-types": "1.23.0" + } + }, + "@serenity-js/web": { + "version": "3.31.13", + "resolved": "https://registry.npmjs.org/@serenity-js/web/-/web-3.31.13.tgz", + "integrity": "sha512-jtVOnBtjiSm/I0DxrgeIy+MtjFCYgx8gFUJF2rMVKeQqXpqLO6oHd0BrsYzXZO/4Lhl605LozGZg3ypvT8gHlw==", + "requires": { + "@serenity-js/assertions": "3.31.13", + "@serenity-js/core": "3.31.13", + "tiny-types": "1.23.0" + } + }, + "agent-base": { + "version": "7.1.3", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.3.tgz", + "integrity": "sha512-jRR5wdylq8CkOe6hei19GGZnxM6rBGwFl3Bg0YItGDimvjGtAvdZk4Pu6Cl4u4Igsws4a1fd1Vq3ezrhn4KmFw==" + }, + "diff": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/diff/-/diff-6.0.0.tgz", + "integrity": "sha512-NbGtgPSw7il+jeajji1H6iKjCk3r/ANQKw3FFUhGV50+MH5MKIMeUmi53piTr7jlkWcq9eS858qbkRzkehwe+w==" + }, + "https-proxy-agent": { + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.6.tgz", + "integrity": "sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw==", + "requires": { + "agent-base": "^7.1.2", + "debug": "4" + } + }, + "lru-cache": { + "version": "11.0.2", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.0.2.tgz", + "integrity": "sha512-123qHRfJBmo2jXDbo/a5YOQrJoHF/GNQTLzQ5+IdK5pWpceK17yRc6ozlWd25FxvGKQbIUs91fDFkXmDHTKcyA==" + }, + "semver": { + "version": "7.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.1.tgz", + "integrity": "sha512-hlq8tAfn0m/61p4BVRcPzIGr6LKiMwo4VM6dGi6pt4qcRkmNzTcWq6eCEjEh+qXjkMDvPlOFFSGwQjoEa6gyMA==" + }, + "validate-npm-package-name": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/validate-npm-package-name/-/validate-npm-package-name-6.0.0.tgz", + "integrity": "sha512-d7KLgL1LD3U3fgnvWEY1cQXoO/q6EQ1BSz48Sa149V/5zVTAbgmZIpyI8TRi6U9/JNyeYLlTKsEMPtLC27RFUg==" + } } }, "proxy-from-env": { @@ -6764,9 +7176,9 @@ "integrity": "sha512-Eet/eeMhkO6TX8mnUteS9zgPbUMQa4I6Kkp5ORiBD5476/m+PIRiumP5tmh5ioJpH7k51Kehawy2UDfsnxxY8Q==" }, "tiny-types": { - "version": "1.20.0", - "resolved": "https://registry.npmjs.org/tiny-types/-/tiny-types-1.20.0.tgz", - "integrity": "sha512-rI4HRTmwOlTVEnq8Il3ckaln8j0OK7nXLtkcpgcfBucdaz0YFQnLfiEmeB7XdYpvcTCI/+jZOKxmyUkwous1Gw==" + "version": "1.23.0", + "resolved": "https://registry.npmjs.org/tiny-types/-/tiny-types-1.23.0.tgz", + "integrity": "sha512-MLLNTCDWF3dJTNZul/oBOFVZlI22iTtEga/BZqeb2VGXo+Ue5Oz6p0I6qIY5Z6jpiYV4lUsEwg3dZUb4vOOBQQ==" }, "tmp": { "version": "0.2.1", diff --git a/package.json b/package.json index eb699073..4bc13e98 100644 --- a/package.json +++ b/package.json @@ -39,7 +39,7 @@ "@serenity-js/protractor": "^3.12.0", "@serenity-js/serenity-bdd": "^3.12.0", "@serenity-js/web": "^3.12.0", - "protractor-cucumber-framework": "^9.8.0", + "protractor-cucumber-framework": "^9.17.1", "protractor": "^7.0.0" }, "devDependencies": {