diff --git a/.eslintrc.js b/.eslintrc.js index 7660785bb..bede807d6 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -18,7 +18,7 @@ module.exports = { parserOptions: { project: "tsconfig.json", sourceType: "module", - warnOnUnsupportedTypeScriptVersion: false + warnOnUnsupportedTypeScriptVersion: false, }, plugins: [ "eslint-plugin-no-null", @@ -44,8 +44,7 @@ module.exports = { message: "Avoid using the `Object` type. Did you mean `object`?", }, Function: { - message: - "Avoid using the `Function` type. Prefer a specific function type, like `() => void`.", + message: "Avoid using the `Function` type. Prefer a specific function type, like `() => void`.", }, Boolean: { message: "Avoid using the `Boolean` type. Did you mean `boolean`?", @@ -142,6 +141,12 @@ module.exports = { }, ], "@typescript-eslint/semi": ["error"], + "@typescript-eslint/no-shadow": [ + "error", + { + hoist: "all", + }, + ], "@typescript-eslint/triple-slash-reference": [ "error", { @@ -209,16 +214,11 @@ module.exports = { "no-new-wrappers": "error", "no-null/no-null": "off", "no-restricted-imports": ["error", "rxjs"], - "no-shadow": [ - "error", - { - hoist: "all", - }, - ], + "no-shadow": "off", "no-throw-literal": "error", "no-trailing-spaces": "error", "no-undef-init": "error", - "no-underscore-dangle": ["error", { "allow": ["_currentRetry", "_retriedTest", "_retries"] }], + "no-underscore-dangle": ["error", { allow: ["_currentRetry", "_retriedTest", "_retries"] }], "no-unsafe-finally": "error", "no-unused-labels": "error", "no-var": "error", diff --git a/.github/labeler.yml b/.github/labeler.yml index e475a497e..e379b29e0 100644 --- a/.github/labeler.yml +++ b/.github/labeler.yml @@ -21,7 +21,7 @@ - "packages/allure-decorators/**" "theme:hermione": - - "packages/allure-hermione/**" + - "packages/hermione-allure/**" "theme:jasmine": - "packages/allure-jasmine/**" diff --git a/.pnp.cjs b/.pnp.cjs index d20b502fc..97c085e37 100755 --- a/.pnp.cjs +++ b/.pnp.cjs @@ -27,10 +27,6 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) { "name": "allure-decorators",\ "reference": "workspace:packages/allure-decorators"\ },\ - {\ - "name": "allure-hermione",\ - "reference": "workspace:packages/allure-hermione"\ - },\ {\ "name": "allure-jasmine",\ "reference": "workspace:packages/allure-jasmine"\ @@ -55,6 +51,10 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) { "name": "allure-vitest",\ "reference": "workspace:packages/allure-vitest"\ },\ + {\ + "name": "hermione-allure",\ + "reference": "workspace:packages/hermione-allure"\ + },\ {\ "name": "newman-reporter-allure",\ "reference": "workspace:packages/newman-reporter-allure"\ @@ -66,7 +66,6 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) { ["allure-codeceptjs", ["workspace:packages/allure-codeceptjs"]],\ ["allure-cucumberjs", ["workspace:packages/allure-cucumberjs"]],\ ["allure-decorators", ["workspace:packages/allure-decorators"]],\ - ["allure-hermione", ["workspace:packages/allure-hermione"]],\ ["allure-jasmine", ["workspace:packages/allure-jasmine"]],\ ["allure-jest", ["workspace:packages/allure-jest"]],\ ["allure-js", ["workspace:."]],\ @@ -74,6 +73,7 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) { ["allure-mocha", ["virtual:3c6c31eedba60f6d4a0031098f0272720e7414162569ae8f58388d36f8e79683154a59f38a8e5aece9f0d5e45421fab86d5311a37a1c1aec338de3c79151496a#workspace:packages/allure-mocha", "workspace:packages/allure-mocha"]],\ ["allure-playwright", ["workspace:packages/allure-playwright"]],\ ["allure-vitest", ["workspace:packages/allure-vitest"]],\ + ["hermione-allure", ["workspace:packages/hermione-allure"]],\ ["newman-reporter-allure", ["workspace:packages/newman-reporter-allure"]]\ ],\ "fallbackPool": [\ @@ -900,16 +900,6 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) { "linkType": "HARD"\ }]\ ]],\ - ["@babel/runtime", [\ - ["npm:7.22.15", {\ - "packageLocation": "./.yarn/cache/@babel-runtime-npm-7.22.15-b21c55a700-793296df1e.zip/node_modules/@babel/runtime/",\ - "packageDependencies": [\ - ["@babel/runtime", "npm:7.22.15"],\ - ["regenerator-runtime", "npm:0.14.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ ["@babel/template", [\ ["npm:7.22.15", {\ "packageLocation": "./.yarn/cache/@babel-template-npm-7.22.15-0b464facb4-1f3e7dcd6c.zip/node_modules/@babel/template/",\ @@ -2224,16 +2214,18 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) { ],\ "linkType": "HARD"\ }],\ - ["virtual:7e98f7d064939b7822f1422e3f1df0f0ff93e2765f6c42026118390bc2b7092ece67d59d5991dad6bb910cf407d18641895517875e8d0294e5ee5d474bb65f5c#npm:1.4.6", {\ - "packageLocation": "./.yarn/__virtual__/@puppeteer-browsers-virtual-2f74a455db/0/cache/@puppeteer-browsers-npm-1.4.6-4049ea765e-29569dd8a8.zip/node_modules/@puppeteer/browsers/",\ + ["virtual:4e98de7813f1866ab9bba78c6f03b08642fc9b54ca15e11edd1f250496e7a0626c74630fe3502e8860c870cbaa93d257a95bee8fcdc87dd2d96d6b67a45bde7a#npm:1.3.0", {\ + "packageLocation": "./.yarn/__virtual__/@puppeteer-browsers-virtual-219dd68105/0/cache/@puppeteer-browsers-npm-1.3.0-b480a6f919-b966546abc.zip/node_modules/@puppeteer/browsers/",\ "packageDependencies": [\ - ["@puppeteer/browsers", "virtual:7e98f7d064939b7822f1422e3f1df0f0ff93e2765f6c42026118390bc2b7092ece67d59d5991dad6bb910cf407d18641895517875e8d0294e5ee5d474bb65f5c#npm:1.4.6"],\ + ["@puppeteer/browsers", "virtual:4e98de7813f1866ab9bba78c6f03b08642fc9b54ca15e11edd1f250496e7a0626c74630fe3502e8860c870cbaa93d257a95bee8fcdc87dd2d96d6b67a45bde7a#npm:1.3.0"],\ ["@types/typescript", null],\ ["debug", "virtual:feb0771c9f8eadaf509cfed41e14a8bebbea5442233275c1c87085111077a08ef71eb773b899665b154d8203a55a489610a54117ae059fce5f5b8b844493b1b1#npm:4.3.4"],\ ["extract-zip", "npm:2.0.1"],\ + ["http-proxy-agent", "npm:5.0.0"],\ + ["https-proxy-agent", "npm:5.0.1"],\ ["progress", "npm:2.0.3"],\ - ["proxy-agent", "npm:6.3.0"],\ - ["tar-fs", "npm:3.0.4"],\ + ["proxy-from-env", "npm:1.1.0"],\ + ["tar-fs", "npm:2.1.1"],\ ["typescript", null],\ ["unbzip2-stream", "npm:1.4.3"],\ ["yargs", "npm:17.7.1"]\ @@ -2244,18 +2236,16 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) { ],\ "linkType": "HARD"\ }],\ - ["virtual:84b578a1bdd9bac64f64d0408d9110afac456c2a1fe01f3726fb14922a68a7f7c1fb8a2ea6cbd3f9a5831178d5becd8e0e74ad0d3ecc36a8a8680f5a8915312e#npm:1.3.0", {\ - "packageLocation": "./.yarn/__virtual__/@puppeteer-browsers-virtual-2406fccf00/0/cache/@puppeteer-browsers-npm-1.3.0-b480a6f919-b966546abc.zip/node_modules/@puppeteer/browsers/",\ + ["virtual:d9cf11e90c61b8e999cbf7858e76dbfd35fc5b190cfc5163d9fe0539fd52a1390ace967996d268559c5689bdfee67107ca94bba42e26383e5a2afad950a1e4ec#npm:1.4.6", {\ + "packageLocation": "./.yarn/__virtual__/@puppeteer-browsers-virtual-323a985ade/0/cache/@puppeteer-browsers-npm-1.4.6-4049ea765e-29569dd8a8.zip/node_modules/@puppeteer/browsers/",\ "packageDependencies": [\ - ["@puppeteer/browsers", "virtual:84b578a1bdd9bac64f64d0408d9110afac456c2a1fe01f3726fb14922a68a7f7c1fb8a2ea6cbd3f9a5831178d5becd8e0e74ad0d3ecc36a8a8680f5a8915312e#npm:1.3.0"],\ + ["@puppeteer/browsers", "virtual:d9cf11e90c61b8e999cbf7858e76dbfd35fc5b190cfc5163d9fe0539fd52a1390ace967996d268559c5689bdfee67107ca94bba42e26383e5a2afad950a1e4ec#npm:1.4.6"],\ ["@types/typescript", null],\ ["debug", "virtual:feb0771c9f8eadaf509cfed41e14a8bebbea5442233275c1c87085111077a08ef71eb773b899665b154d8203a55a489610a54117ae059fce5f5b8b844493b1b1#npm:4.3.4"],\ ["extract-zip", "npm:2.0.1"],\ - ["http-proxy-agent", "npm:5.0.0"],\ - ["https-proxy-agent", "npm:5.0.1"],\ ["progress", "npm:2.0.3"],\ - ["proxy-from-env", "npm:1.1.0"],\ - ["tar-fs", "npm:2.1.1"],\ + ["proxy-agent", "npm:6.3.0"],\ + ["tar-fs", "npm:3.0.4"],\ ["typescript", null],\ ["unbzip2-stream", "npm:1.4.3"],\ ["yargs", "npm:17.7.1"]\ @@ -2768,6 +2758,16 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) { "linkType": "HARD"\ }]\ ]],\ + ["@types/chalk", [\ + ["npm:2.2.0", {\ + "packageLocation": "./.yarn/cache/@types-chalk-npm-2.2.0-aa14c60d4f-846437590d.zip/node_modules/@types/chalk/",\ + "packageDependencies": [\ + ["@types/chalk", "npm:2.2.0"],\ + ["chalk", "npm:5.3.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ ["@types/cookie", [\ ["npm:0.4.1", {\ "packageLocation": "./.yarn/cache/@types-cookie-npm-0.4.1-274a704dc6-3275534ed6.zip/node_modules/@types/cookie/",\ @@ -3441,28 +3441,28 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) { }]\ ]],\ ["@wdio/config", [\ - ["npm:8.12.1", {\ - "packageLocation": "./.yarn/cache/@wdio-config-npm-8.12.1-6cc8c0d852-8843450d92.zip/node_modules/@wdio/config/",\ + ["npm:8.16.7", {\ + "packageLocation": "./.yarn/cache/@wdio-config-npm-8.16.7-2f256b301d-3eeaccfb88.zip/node_modules/@wdio/config/",\ "packageDependencies": [\ - ["@wdio/config", "npm:8.12.1"],\ + ["@wdio/config", "npm:8.16.7"],\ ["@wdio/logger", "npm:8.11.0"],\ - ["@wdio/types", "npm:8.10.4"],\ - ["@wdio/utils", "npm:8.12.1"],\ + ["@wdio/types", "npm:8.16.7"],\ + ["@wdio/utils", "npm:8.16.7"],\ ["decamelize", "npm:6.0.0"],\ ["deepmerge-ts", "npm:5.1.0"],\ ["glob", "npm:10.3.4"],\ ["import-meta-resolve", "npm:3.0.0"],\ - ["read-pkg-up", "npm:9.1.0"]\ + ["read-pkg-up", "npm:10.1.0"]\ ],\ "linkType": "HARD"\ }],\ - ["npm:8.16.7", {\ - "packageLocation": "./.yarn/cache/@wdio-config-npm-8.16.7-2f256b301d-3eeaccfb88.zip/node_modules/@wdio/config/",\ + ["npm:8.21.0", {\ + "packageLocation": "./.yarn/cache/@wdio-config-npm-8.21.0-6d8f3e7196-ea79ea9ef8.zip/node_modules/@wdio/config/",\ "packageDependencies": [\ - ["@wdio/config", "npm:8.16.7"],\ - ["@wdio/logger", "npm:8.11.0"],\ - ["@wdio/types", "npm:8.16.7"],\ - ["@wdio/utils", "npm:8.16.7"],\ + ["@wdio/config", "npm:8.21.0"],\ + ["@wdio/logger", "npm:8.16.17"],\ + ["@wdio/types", "npm:8.21.0"],\ + ["@wdio/utils", "npm:8.21.0"],\ ["decamelize", "npm:6.0.0"],\ ["deepmerge-ts", "npm:5.1.0"],\ ["glob", "npm:10.3.4"],\ @@ -3478,7 +3478,16 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) { "packageDependencies": [\ ["@wdio/globals", "npm:8.16.7"],\ ["expect-webdriverio", "npm:4.2.8"],\ - ["webdriverio", "virtual:d6348e64bac3f4047b738fe6e0a3d71c5bd02636d63eadf32c51b205b5651e4394f8b4e9916ca6a7cb984a1116fe29dc546364d024e82d4574eeac6c7849a3af#npm:8.16.7"]\ + ["webdriverio", "virtual:4fd26e123d2320479213c12c682aef8eae49c02b6796a74b7a1f9799d2f4de98e51ba5cc8d7563df7cf4dd11b8304ff1016388ccd62eb701aeec652561899aa0#npm:8.16.7"]\ + ],\ + "linkType": "HARD"\ + }],\ + ["npm:8.21.0", {\ + "packageLocation": "./.yarn/cache/@wdio-globals-npm-8.21.0-8cd5016447-be74f11f2b.zip/node_modules/@wdio/globals/",\ + "packageDependencies": [\ + ["@wdio/globals", "npm:8.21.0"],\ + ["expect-webdriverio", "npm:4.2.8"],\ + ["webdriverio", "virtual:8cd501644745868882affc876338f8d7c65aa06fa617424c4e97b48e618afee7e798eb9bf3bba807171c423843c7b59e439987a6339634603c796d612665e84a#npm:8.21.0"]\ ],\ "linkType": "HARD"\ }]\ @@ -3505,20 +3514,31 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) { ["strip-ansi", "npm:7.1.0"]\ ],\ "linkType": "HARD"\ + }],\ + ["npm:8.16.17", {\ + "packageLocation": "./.yarn/cache/@wdio-logger-npm-8.16.17-4008bd15e9-162da3205e.zip/node_modules/@wdio/logger/",\ + "packageDependencies": [\ + ["@wdio/logger", "npm:8.16.17"],\ + ["chalk", "npm:5.3.0"],\ + ["loglevel", "npm:1.8.1"],\ + ["loglevel-plugin-prefix", "npm:0.8.4"],\ + ["strip-ansi", "npm:7.1.0"]\ + ],\ + "linkType": "HARD"\ }]\ ]],\ ["@wdio/protocols", [\ - ["npm:8.11.0", {\ - "packageLocation": "./.yarn/cache/@wdio-protocols-npm-8.11.0-d16d8f9c82-68dc353c8b.zip/node_modules/@wdio/protocols/",\ + ["npm:8.16.5", {\ + "packageLocation": "./.yarn/cache/@wdio-protocols-npm-8.16.5-cb4a1977b3-53f561f4d0.zip/node_modules/@wdio/protocols/",\ "packageDependencies": [\ - ["@wdio/protocols", "npm:8.11.0"]\ + ["@wdio/protocols", "npm:8.16.5"]\ ],\ "linkType": "HARD"\ }],\ - ["npm:8.16.5", {\ - "packageLocation": "./.yarn/cache/@wdio-protocols-npm-8.16.5-cb4a1977b3-53f561f4d0.zip/node_modules/@wdio/protocols/",\ + ["npm:8.20.4", {\ + "packageLocation": "./.yarn/cache/@wdio-protocols-npm-8.20.4-56bf049a04-5d7a2774f8.zip/node_modules/@wdio/protocols/",\ "packageDependencies": [\ - ["@wdio/protocols", "npm:8.16.5"]\ + ["@wdio/protocols", "npm:8.20.4"]\ ],\ "linkType": "HARD"\ }]\ @@ -3534,33 +3554,33 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) { }]\ ]],\ ["@wdio/types", [\ - ["npm:7.30.2", {\ - "packageLocation": "./.yarn/cache/@wdio-types-npm-7.30.2-a5fff7001c-3f547927ea.zip/node_modules/@wdio/types/",\ + ["npm:7.26.0", {\ + "packageLocation": "./.yarn/cache/@wdio-types-npm-7.26.0-95a81bd326-686b5a6656.zip/node_modules/@wdio/types/",\ "packageDependencies": [\ - ["@wdio/types", "npm:7.30.2"]\ + ["@wdio/types", "npm:7.26.0"]\ ],\ "linkType": "SOFT"\ }],\ - ["npm:8.10.4", {\ - "packageLocation": "./.yarn/cache/@wdio-types-npm-8.10.4-f0241f1ab4-57c9e15136.zip/node_modules/@wdio/types/",\ + ["npm:8.16.7", {\ + "packageLocation": "./.yarn/cache/@wdio-types-npm-8.16.7-ef6d365dc9-ac1aeeac85.zip/node_modules/@wdio/types/",\ "packageDependencies": [\ - ["@wdio/types", "npm:8.10.4"],\ + ["@wdio/types", "npm:8.16.7"],\ ["@types/node", "npm:20.6.0"]\ ],\ "linkType": "HARD"\ }],\ - ["npm:8.16.7", {\ - "packageLocation": "./.yarn/cache/@wdio-types-npm-8.16.7-ef6d365dc9-ac1aeeac85.zip/node_modules/@wdio/types/",\ + ["npm:8.21.0", {\ + "packageLocation": "./.yarn/cache/@wdio-types-npm-8.21.0-f42c86224c-0c81e467d9.zip/node_modules/@wdio/types/",\ "packageDependencies": [\ - ["@wdio/types", "npm:8.16.7"],\ + ["@wdio/types", "npm:8.21.0"],\ ["@types/node", "npm:20.6.0"]\ ],\ "linkType": "HARD"\ }],\ - ["virtual:f2567a071dd5990ac1d4c19844dc58fce9c708365b8b5f6753cdca9c364aa528acd0a3a6ae9705dfbd3ec0a7c3b8fd96b1e582e98ed76716dc65bd8e895505dd#npm:7.30.2", {\ - "packageLocation": "./.yarn/__virtual__/@wdio-types-virtual-bf972f083f/0/cache/@wdio-types-npm-7.30.2-a5fff7001c-3f547927ea.zip/node_modules/@wdio/types/",\ + ["virtual:17b1f1a441739b30685acea3964fd1553b35f96b63734416cfca0b44bbb303fae7f926f3d40b9f39960ab5731fe051799468a4a06a967e18eb7f09a8980e9ac2#npm:7.26.0", {\ + "packageLocation": "./.yarn/__virtual__/@wdio-types-virtual-00ca061671/0/cache/@wdio-types-npm-7.26.0-95a81bd326-686b5a6656.zip/node_modules/@wdio/types/",\ "packageDependencies": [\ - ["@wdio/types", "virtual:f2567a071dd5990ac1d4c19844dc58fce9c708365b8b5f6753cdca9c364aa528acd0a3a6ae9705dfbd3ec0a7c3b8fd96b1e582e98ed76716dc65bd8e895505dd#npm:7.30.2"],\ + ["@wdio/types", "virtual:17b1f1a441739b30685acea3964fd1553b35f96b63734416cfca0b44bbb303fae7f926f3d40b9f39960ab5731fe051799468a4a06a967e18eb7f09a8980e9ac2#npm:7.26.0"],\ ["@types/node", "npm:18.17.15"],\ ["@types/typescript", null],\ ["got", "npm:11.8.6"],\ @@ -3574,34 +3594,43 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) { }]\ ]],\ ["@wdio/utils", [\ - ["npm:7.30.2", {\ - "packageLocation": "./.yarn/cache/@wdio-utils-npm-7.30.2-f2567a071d-d41672c0db.zip/node_modules/@wdio/utils/",\ + ["npm:7.26.0", {\ + "packageLocation": "./.yarn/cache/@wdio-utils-npm-7.26.0-17b1f1a441-889140c54b.zip/node_modules/@wdio/utils/",\ "packageDependencies": [\ - ["@wdio/utils", "npm:7.30.2"],\ + ["@wdio/utils", "npm:7.26.0"],\ ["@wdio/logger", "npm:7.26.0"],\ - ["@wdio/types", "virtual:f2567a071dd5990ac1d4c19844dc58fce9c708365b8b5f6753cdca9c364aa528acd0a3a6ae9705dfbd3ec0a7c3b8fd96b1e582e98ed76716dc65bd8e895505dd#npm:7.30.2"],\ + ["@wdio/types", "virtual:17b1f1a441739b30685acea3964fd1553b35f96b63734416cfca0b44bbb303fae7f926f3d40b9f39960ab5731fe051799468a4a06a967e18eb7f09a8980e9ac2#npm:7.26.0"],\ ["p-iteration", "npm:1.1.8"]\ ],\ "linkType": "HARD"\ }],\ - ["npm:8.12.1", {\ - "packageLocation": "./.yarn/cache/@wdio-utils-npm-8.12.1-f0597ba4fe-f5e4ffc509.zip/node_modules/@wdio/utils/",\ + ["npm:8.16.7", {\ + "packageLocation": "./.yarn/cache/@wdio-utils-npm-8.16.7-8392daf240-0d064f85f4.zip/node_modules/@wdio/utils/",\ "packageDependencies": [\ - ["@wdio/utils", "npm:8.12.1"],\ + ["@wdio/utils", "npm:8.16.7"],\ + ["@puppeteer/browsers", "npm:1.7.1"],\ ["@wdio/logger", "npm:8.11.0"],\ - ["@wdio/types", "npm:8.10.4"],\ + ["@wdio/types", "npm:8.16.7"],\ + ["decamelize", "npm:6.0.0"],\ + ["deepmerge-ts", "npm:5.1.0"],\ + ["edgedriver", "npm:5.3.7"],\ + ["geckodriver", "npm:4.2.1"],\ + ["get-port", "npm:7.0.0"],\ + ["got", "npm:13.0.0"],\ ["import-meta-resolve", "npm:3.0.0"],\ - ["p-iteration", "npm:1.1.8"]\ + ["locate-app", "npm:2.1.0"],\ + ["safaridriver", "npm:0.1.0"],\ + ["wait-port", "npm:1.0.4"]\ ],\ "linkType": "HARD"\ }],\ - ["npm:8.16.7", {\ - "packageLocation": "./.yarn/cache/@wdio-utils-npm-8.16.7-8392daf240-0d064f85f4.zip/node_modules/@wdio/utils/",\ + ["npm:8.21.0", {\ + "packageLocation": "./.yarn/cache/@wdio-utils-npm-8.21.0-1fed1e5506-9a02875948.zip/node_modules/@wdio/utils/",\ "packageDependencies": [\ - ["@wdio/utils", "npm:8.16.7"],\ + ["@wdio/utils", "npm:8.21.0"],\ ["@puppeteer/browsers", "npm:1.7.1"],\ - ["@wdio/logger", "npm:8.11.0"],\ - ["@wdio/types", "npm:8.16.7"],\ + ["@wdio/logger", "npm:8.16.17"],\ + ["@wdio/types", "npm:8.21.0"],\ ["decamelize", "npm:6.0.0"],\ ["deepmerge-ts", "npm:5.1.0"],\ ["edgedriver", "npm:5.3.7"],\ @@ -3611,6 +3640,7 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) { ["import-meta-resolve", "npm:3.0.0"],\ ["locate-app", "npm:2.1.0"],\ ["safaridriver", "npm:0.1.0"],\ + ["split2", "npm:4.2.0"],\ ["wait-port", "npm:1.0.4"]\ ],\ "linkType": "HARD"\ @@ -3946,49 +3976,6 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) { "linkType": "SOFT"\ }]\ ]],\ - ["allure-hermione", [\ - ["workspace:packages/allure-hermione", {\ - "packageLocation": "./packages/allure-hermione/",\ - "packageDependencies": [\ - ["allure-hermione", "workspace:packages/allure-hermione"],\ - ["@types/chai", "npm:4.3.6"],\ - ["@types/chai-like", "npm:1.1.1"],\ - ["@types/chai-things", "npm:0.0.36"],\ - ["@types/eslint", "npm:8.44.2"],\ - ["@types/glob", "npm:8.1.0"],\ - ["@types/mocha", "npm:10.0.1"],\ - ["@types/node", "npm:20.6.3"],\ - ["@types/sinon", "npm:17.0.3"],\ - ["@typescript-eslint/eslint-plugin", "virtual:a59b12f7fe7bf3b80fc61d73eaaa33af60483f6ce31789d384fbe8ef169791f667d2559ec5f2fbae1a273a658ce021f1f5f1ea0718c56f81b30ad4e95a5668dd#npm:6.7.0"],\ - ["@typescript-eslint/parser", "virtual:a59b12f7fe7bf3b80fc61d73eaaa33af60483f6ce31789d384fbe8ef169791f667d2559ec5f2fbae1a273a658ce021f1f5f1ea0718c56f81b30ad4e95a5668dd#npm:6.7.0"],\ - ["allure-js-commons", "workspace:packages/allure-js-commons"],\ - ["allure-mocha", "virtual:3c6c31eedba60f6d4a0031098f0272720e7414162569ae8f58388d36f8e79683154a59f38a8e5aece9f0d5e45421fab86d5311a37a1c1aec338de3c79151496a#workspace:packages/allure-mocha"],\ - ["chai", "npm:4.3.8"],\ - ["chai-like", "virtual:606d5fd11adc18cba076ddb26a9b3adaf466a45eef985b60ea990c3ead5fe6bcc20990b0ed8d0763c4a8c861cdc2277964415bf12191df7c6923d8e78816abf5#npm:1.1.1"],\ - ["chai-things", "npm:0.2.0"],\ - ["chromedriver", "npm:121.0.0"],\ - ["codecov", "npm:3.8.2"],\ - ["download-chromium", "npm:3.0.0"],\ - ["eslint", "npm:8.49.0"],\ - ["eslint-config-prettier", "virtual:a59b12f7fe7bf3b80fc61d73eaaa33af60483f6ce31789d384fbe8ef169791f667d2559ec5f2fbae1a273a658ce021f1f5f1ea0718c56f81b30ad4e95a5668dd#npm:9.0.0"],\ - ["eslint-plugin-import", "virtual:a59b12f7fe7bf3b80fc61d73eaaa33af60483f6ce31789d384fbe8ef169791f667d2559ec5f2fbae1a273a658ce021f1f5f1ea0718c56f81b30ad4e95a5668dd#npm:2.28.1"],\ - ["eslint-plugin-jsdoc", "virtual:a59b12f7fe7bf3b80fc61d73eaaa33af60483f6ce31789d384fbe8ef169791f667d2559ec5f2fbae1a273a658ce021f1f5f1ea0718c56f81b30ad4e95a5668dd#npm:48.0.2"],\ - ["eslint-plugin-no-null", "virtual:a59b12f7fe7bf3b80fc61d73eaaa33af60483f6ce31789d384fbe8ef169791f667d2559ec5f2fbae1a273a658ce021f1f5f1ea0718c56f81b30ad4e95a5668dd#npm:1.0.2"],\ - ["eslint-plugin-prefer-arrow", "virtual:a59b12f7fe7bf3b80fc61d73eaaa33af60483f6ce31789d384fbe8ef169791f667d2559ec5f2fbae1a273a658ce021f1f5f1ea0718c56f81b30ad4e95a5668dd#npm:1.2.3"],\ - ["fs-jetpack", "npm:4.3.1"],\ - ["glob", "npm:10.3.5"],\ - ["hermione", "virtual:d11e5e1ac355da813a1b7f67fabb49db55984574cb5b33beafbc91363e05e6b70c13cc4a20f4355007abd0716592ec6d160e17c85ccdb06340df12b7d17d1742#npm:7.1.4"],\ - ["mocha", "npm:10.2.0"],\ - ["mocha-multi-reporters", "virtual:3c6c31eedba60f6d4a0031098f0272720e7414162569ae8f58388d36f8e79683154a59f38a8e5aece9f0d5e45421fab86d5311a37a1c1aec338de3c79151496a#npm:1.5.1"],\ - ["rimraf", "npm:5.0.1"],\ - ["sinon", "npm:17.0.1"],\ - ["source-map-support", "npm:0.5.21"],\ - ["ts-node", "virtual:3c6c31eedba60f6d4a0031098f0272720e7414162569ae8f58388d36f8e79683154a59f38a8e5aece9f0d5e45421fab86d5311a37a1c1aec338de3c79151496a#npm:10.9.1"],\ - ["typescript", "patch:typescript@npm%3A5.2.2#~builtin::version=5.2.2&hash=f3b441"]\ - ],\ - "linkType": "SOFT"\ - }]\ - ]],\ ["allure-jasmine", [\ ["workspace:packages/allure-jasmine", {\ "packageLocation": "./packages/allure-jasmine/",\ @@ -4279,13 +4266,6 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) { }]\ ]],\ ["ansi-regex", [\ - ["npm:2.1.1", {\ - "packageLocation": "./.yarn/cache/ansi-regex-npm-2.1.1-ddd24d102b-190abd03e4.zip/node_modules/ansi-regex/",\ - "packageDependencies": [\ - ["ansi-regex", "npm:2.1.1"]\ - ],\ - "linkType": "HARD"\ - }],\ ["npm:3.0.1", {\ "packageLocation": "./.yarn/cache/ansi-regex-npm-3.0.1-01f44078a3-09daf180c5.zip/node_modules/ansi-regex/",\ "packageDependencies": [\ @@ -4316,13 +4296,6 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) { }]\ ]],\ ["ansi-styles", [\ - ["npm:2.2.1", {\ - "packageLocation": "./.yarn/cache/ansi-styles-npm-2.2.1-f3297e782c-ebc0e00381.zip/node_modules/ansi-styles/",\ - "packageDependencies": [\ - ["ansi-styles", "npm:2.2.1"]\ - ],\ - "linkType": "HARD"\ - }],\ ["npm:3.2.1", {\ "packageLocation": "./.yarn/cache/ansi-styles-npm-3.2.1-8cb8107983-d85ade01c1.zip/node_modules/ansi-styles/",\ "packageDependencies": [\ @@ -4384,20 +4357,6 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) { }]\ ]],\ ["archiver", [\ - ["npm:5.3.2", {\ - "packageLocation": "./.yarn/cache/archiver-npm-5.3.2-cd50d62eca-7d3b9b9b51.zip/node_modules/archiver/",\ - "packageDependencies": [\ - ["archiver", "npm:5.3.2"],\ - ["archiver-utils", "npm:2.1.0"],\ - ["async", "npm:3.2.4"],\ - ["buffer-crc32", "npm:0.2.13"],\ - ["readable-stream", "npm:3.6.2"],\ - ["readdir-glob", "npm:1.1.3"],\ - ["tar-stream", "npm:2.2.0"],\ - ["zip-stream", "npm:4.1.1"]\ - ],\ - "linkType": "HARD"\ - }],\ ["npm:6.0.1", {\ "packageLocation": "./.yarn/cache/archiver-npm-6.0.1-427b6af3f3-20549eef73.zip/node_modules/archiver/",\ "packageDependencies": [\ @@ -4414,40 +4373,6 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) { }]\ ]],\ ["archiver-utils", [\ - ["npm:2.1.0", {\ - "packageLocation": "./.yarn/cache/archiver-utils-npm-2.1.0-c06ce16cc3-5665f40bde.zip/node_modules/archiver-utils/",\ - "packageDependencies": [\ - ["archiver-utils", "npm:2.1.0"],\ - ["glob", "npm:7.2.3"],\ - ["graceful-fs", "npm:4.2.11"],\ - ["lazystream", "npm:1.0.1"],\ - ["lodash.defaults", "npm:4.2.0"],\ - ["lodash.difference", "npm:4.5.0"],\ - ["lodash.flatten", "npm:4.4.0"],\ - ["lodash.isplainobject", "npm:4.0.6"],\ - ["lodash.union", "npm:4.6.0"],\ - ["normalize-path", "npm:3.0.0"],\ - ["readable-stream", "npm:2.3.8"]\ - ],\ - "linkType": "HARD"\ - }],\ - ["npm:3.0.4", {\ - "packageLocation": "./.yarn/cache/archiver-utils-npm-3.0.4-71b8c9e097-5c6568f118.zip/node_modules/archiver-utils/",\ - "packageDependencies": [\ - ["archiver-utils", "npm:3.0.4"],\ - ["glob", "npm:7.2.3"],\ - ["graceful-fs", "npm:4.2.11"],\ - ["lazystream", "npm:1.0.1"],\ - ["lodash.defaults", "npm:4.2.0"],\ - ["lodash.difference", "npm:4.5.0"],\ - ["lodash.flatten", "npm:4.4.0"],\ - ["lodash.isplainobject", "npm:4.0.6"],\ - ["lodash.union", "npm:4.6.0"],\ - ["normalize-path", "npm:3.0.0"],\ - ["readable-stream", "npm:3.6.2"]\ - ],\ - "linkType": "HARD"\ - }],\ ["npm:4.0.1", {\ "packageLocation": "./.yarn/cache/archiver-utils-npm-4.0.1-6d05f300c9-2917cdf63a.zip/node_modules/archiver-utils/",\ "packageDependencies": [\ @@ -5028,6 +4953,13 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) { ],\ "linkType": "HARD"\ }],\ + ["npm:3.5.1", {\ + "packageLocation": "./.yarn/cache/bluebird-npm-3.5.1-f0d1499f67-0c4b4b93c1.zip/node_modules/bluebird/",\ + "packageDependencies": [\ + ["bluebird", "npm:3.5.1"]\ + ],\ + "linkType": "HARD"\ + }],\ ["npm:3.7.2", {\ "packageLocation": "./.yarn/cache/bluebird-npm-3.7.2-6a54136ee3-869417503c.zip/node_modules/bluebird/",\ "packageDependencies": [\ @@ -5732,18 +5664,6 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) { }]\ ]],\ ["chalk", [\ - ["npm:1.1.3", {\ - "packageLocation": "./.yarn/cache/chalk-npm-1.1.3-59144c3a87-9d2ea6b98f.zip/node_modules/chalk/",\ - "packageDependencies": [\ - ["chalk", "npm:1.1.3"],\ - ["ansi-styles", "npm:2.2.1"],\ - ["escape-string-regexp", "npm:1.0.5"],\ - ["has-ansi", "npm:2.0.0"],\ - ["strip-ansi", "npm:3.0.1"],\ - ["supports-color", "npm:2.0.0"]\ - ],\ - "linkType": "HARD"\ - }],\ ["npm:2.4.2", {\ "packageLocation": "./.yarn/cache/chalk-npm-2.4.2-3ea16dd91e-ec3661d38f.zip/node_modules/chalk/",\ "packageDependencies": [\ @@ -5856,14 +5776,14 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) { }]\ ]],\ ["chrome-launcher", [\ - ["npm:0.15.2", {\ - "packageLocation": "./.yarn/cache/chrome-launcher-npm-0.15.2-bafd42e412-e1f8131b9f.zip/node_modules/chrome-launcher/",\ + ["npm:1.1.0", {\ + "packageLocation": "./.yarn/cache/chrome-launcher-npm-1.1.0-0ef7a69f46-55db70ada9.zip/node_modules/chrome-launcher/",\ "packageDependencies": [\ - ["chrome-launcher", "npm:0.15.2"],\ + ["chrome-launcher", "npm:1.1.0"],\ ["@types/node", "npm:20.6.0"],\ ["escape-string-regexp", "npm:4.0.0"],\ ["is-wsl", "npm:2.2.0"],\ - ["lighthouse-logger", "npm:1.4.2"]\ + ["lighthouse-logger", "npm:2.0.1"]\ ],\ "linkType": "HARD"\ }]\ @@ -5899,12 +5819,12 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) { ],\ "linkType": "SOFT"\ }],\ - ["virtual:7e98f7d064939b7822f1422e3f1df0f0ff93e2765f6c42026118390bc2b7092ece67d59d5991dad6bb910cf407d18641895517875e8d0294e5ee5d474bb65f5c#npm:0.4.16", {\ - "packageLocation": "./.yarn/__virtual__/chromium-bidi-virtual-36ffb07818/0/cache/chromium-bidi-npm-0.4.16-2c2b672e1e-9cbb362fdf.zip/node_modules/chromium-bidi/",\ + ["virtual:4e98de7813f1866ab9bba78c6f03b08642fc9b54ca15e11edd1f250496e7a0626c74630fe3502e8860c870cbaa93d257a95bee8fcdc87dd2d96d6b67a45bde7a#npm:0.4.9", {\ + "packageLocation": "./.yarn/__virtual__/chromium-bidi-virtual-6814a7345d/0/cache/chromium-bidi-npm-0.4.9-05a15ca860-cb2eea7872.zip/node_modules/chromium-bidi/",\ "packageDependencies": [\ - ["chromium-bidi", "virtual:7e98f7d064939b7822f1422e3f1df0f0ff93e2765f6c42026118390bc2b7092ece67d59d5991dad6bb910cf407d18641895517875e8d0294e5ee5d474bb65f5c#npm:0.4.16"],\ + ["chromium-bidi", "virtual:4e98de7813f1866ab9bba78c6f03b08642fc9b54ca15e11edd1f250496e7a0626c74630fe3502e8860c870cbaa93d257a95bee8fcdc87dd2d96d6b67a45bde7a#npm:0.4.9"],\ ["@types/devtools-protocol", null],\ - ["devtools-protocol", "npm:0.0.1147663"],\ + ["devtools-protocol", "npm:0.0.1120988"],\ ["mitt", "npm:3.0.0"]\ ],\ "packagePeers": [\ @@ -5913,12 +5833,12 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) { ],\ "linkType": "HARD"\ }],\ - ["virtual:84b578a1bdd9bac64f64d0408d9110afac456c2a1fe01f3726fb14922a68a7f7c1fb8a2ea6cbd3f9a5831178d5becd8e0e74ad0d3ecc36a8a8680f5a8915312e#npm:0.4.9", {\ - "packageLocation": "./.yarn/__virtual__/chromium-bidi-virtual-ad52091693/0/cache/chromium-bidi-npm-0.4.9-05a15ca860-cb2eea7872.zip/node_modules/chromium-bidi/",\ + ["virtual:d9cf11e90c61b8e999cbf7858e76dbfd35fc5b190cfc5163d9fe0539fd52a1390ace967996d268559c5689bdfee67107ca94bba42e26383e5a2afad950a1e4ec#npm:0.4.16", {\ + "packageLocation": "./.yarn/__virtual__/chromium-bidi-virtual-97f7651c9f/0/cache/chromium-bidi-npm-0.4.16-2c2b672e1e-9cbb362fdf.zip/node_modules/chromium-bidi/",\ "packageDependencies": [\ - ["chromium-bidi", "virtual:84b578a1bdd9bac64f64d0408d9110afac456c2a1fe01f3726fb14922a68a7f7c1fb8a2ea6cbd3f9a5831178d5becd8e0e74ad0d3ecc36a8a8680f5a8915312e#npm:0.4.9"],\ + ["chromium-bidi", "virtual:d9cf11e90c61b8e999cbf7858e76dbfd35fc5b190cfc5163d9fe0539fd52a1390ace967996d268559c5689bdfee67107ca94bba42e26383e5a2afad950a1e4ec#npm:0.4.16"],\ ["@types/devtools-protocol", null],\ - ["devtools-protocol", "npm:0.0.1120988"],\ + ["devtools-protocol", "npm:0.0.1147663"],\ ["mitt", "npm:3.0.0"]\ ],\ "packagePeers": [\ @@ -6437,17 +6357,6 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) { }]\ ]],\ ["compress-commons", [\ - ["npm:4.1.2", {\ - "packageLocation": "./.yarn/cache/compress-commons-npm-4.1.2-78ffde93d9-b50c4b5d6b.zip/node_modules/compress-commons/",\ - "packageDependencies": [\ - ["compress-commons", "npm:4.1.2"],\ - ["buffer-crc32", "npm:0.2.13"],\ - ["crc32-stream", "npm:4.0.3"],\ - ["normalize-path", "npm:3.0.0"],\ - ["readable-stream", "npm:3.6.2"]\ - ],\ - "linkType": "HARD"\ - }],\ ["npm:5.0.1", {\ "packageLocation": "./.yarn/cache/compress-commons-npm-5.0.1-28fafeb552-65a68e5621.zip/node_modules/compress-commons/",\ "packageDependencies": [\ @@ -6601,15 +6510,6 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) { }]\ ]],\ ["crc32-stream", [\ - ["npm:4.0.3", {\ - "packageLocation": "./.yarn/cache/crc32-stream-npm-4.0.3-7860b6069c-d44d0ec6f0.zip/node_modules/crc32-stream/",\ - "packageDependencies": [\ - ["crc32-stream", "npm:4.0.3"],\ - ["crc-32", "npm:1.2.2"],\ - ["readable-stream", "npm:3.6.2"]\ - ],\ - "linkType": "HARD"\ - }],\ ["npm:5.0.0", {\ "packageLocation": "./.yarn/cache/crc32-stream-npm-5.0.0-6050675417-8e5dd04f22.zip/node_modules/crc32-stream/",\ "packageDependencies": [\ @@ -6866,11 +6766,10 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) { }]\ ]],\ ["date-fns", [\ - ["npm:2.30.0", {\ - "packageLocation": "./.yarn/cache/date-fns-npm-2.30.0-895c790e0f-f7be015232.zip/node_modules/date-fns/",\ + ["npm:2.29.3", {\ + "packageLocation": "./.yarn/cache/date-fns-npm-2.29.3-fef7e3c72c-e01cf5b62a.zip/node_modules/date-fns/",\ "packageDependencies": [\ - ["date-fns", "npm:2.30.0"],\ - ["@babel/runtime", "npm:7.22.15"]\ + ["date-fns", "npm:2.29.3"]\ ],\ "linkType": "HARD"\ }]\ @@ -7277,24 +7176,24 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) { }]\ ]],\ ["devtools", [\ - ["npm:8.12.1", {\ - "packageLocation": "./.yarn/cache/devtools-npm-8.12.1-be3e0624a0-dd980d79dd.zip/node_modules/devtools/",\ + ["npm:8.21.0", {\ + "packageLocation": "./.yarn/cache/devtools-npm-8.21.0-11ef572a68-be753849f7.zip/node_modules/devtools/",\ "packageDependencies": [\ - ["devtools", "npm:8.12.1"],\ + ["devtools", "npm:8.21.0"],\ ["@types/node", "npm:20.6.0"],\ - ["@wdio/config", "npm:8.12.1"],\ - ["@wdio/logger", "npm:8.11.0"],\ - ["@wdio/protocols", "npm:8.11.0"],\ - ["@wdio/types", "npm:8.10.4"],\ - ["@wdio/utils", "npm:8.12.1"],\ - ["chrome-launcher", "npm:0.15.2"],\ + ["@wdio/config", "npm:8.21.0"],\ + ["@wdio/logger", "npm:8.16.17"],\ + ["@wdio/protocols", "npm:8.20.4"],\ + ["@wdio/types", "npm:8.21.0"],\ + ["@wdio/utils", "npm:8.21.0"],\ + ["chrome-launcher", "npm:1.1.0"],\ ["edge-paths", "npm:3.0.5"],\ ["import-meta-resolve", "npm:3.0.0"],\ - ["puppeteer-core", "virtual:be3e0624a0fbf7db5ac10c513e49af782b33761ca5cafff527f31481bf805d04cfc5f026b8f8928016717070fefad786a59211850b6d7364b3ea56b007c1495d#npm:20.3.0"],\ + ["puppeteer-core", "virtual:11ef572a68a1a0a8d9e28f787b75a088365782ce54b9105b1ecef73d4a3dbc57b694335749519b2c997c43dc295bee8403c28517aa63932e756537b912356337#npm:20.3.0"],\ ["query-selector-shadow-dom", "npm:1.0.1"],\ ["ua-parser-js", "npm:1.0.36"],\ ["uuid", "npm:9.0.1"],\ - ["which", "npm:3.0.1"]\ + ["which", "npm:4.0.0"]\ ],\ "linkType": "HARD"\ }]\ @@ -7314,17 +7213,17 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) { ],\ "linkType": "HARD"\ }],\ - ["npm:0.0.1170846", {\ - "packageLocation": "./.yarn/cache/devtools-protocol-npm-0.0.1170846-bd8f7dd0e0-e2945ad0a0.zip/node_modules/devtools-protocol/",\ + ["npm:0.0.1188743", {\ + "packageLocation": "./.yarn/cache/devtools-protocol-npm-0.0.1188743-e41f1fb2af-6b90b51f5f.zip/node_modules/devtools-protocol/",\ "packageDependencies": [\ - ["devtools-protocol", "npm:0.0.1170846"]\ + ["devtools-protocol", "npm:0.0.1188743"]\ ],\ "linkType": "HARD"\ }],\ - ["npm:0.0.1188743", {\ - "packageLocation": "./.yarn/cache/devtools-protocol-npm-0.0.1188743-e41f1fb2af-6b90b51f5f.zip/node_modules/devtools-protocol/",\ + ["npm:0.0.1213968", {\ + "packageLocation": "./.yarn/cache/devtools-protocol-npm-0.0.1213968-c79bbde318-d49b5c7ee5.zip/node_modules/devtools-protocol/",\ "packageDependencies": [\ - ["devtools-protocol", "npm:0.0.1188743"]\ + ["devtools-protocol", "npm:0.0.1213968"]\ ],\ "linkType": "HARD"\ }]\ @@ -8299,10 +8198,10 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) { }]\ ]],\ ["expect-webdriverio", [\ - ["npm:3.6.0", {\ - "packageLocation": "./.yarn/cache/expect-webdriverio-npm-3.6.0-d04a8d53c5-f8c79fb1d9.zip/node_modules/expect-webdriverio/",\ + ["npm:3.5.3", {\ + "packageLocation": "./.yarn/cache/expect-webdriverio-npm-3.5.3-4bd3f938d5-d4f88d4698.zip/node_modules/expect-webdriverio/",\ "packageDependencies": [\ - ["expect-webdriverio", "npm:3.6.0"],\ + ["expect-webdriverio", "npm:3.5.3"],\ ["expect", "npm:28.1.3"],\ ["jest-matcher-utils", "npm:28.1.3"]\ ],\ @@ -8315,7 +8214,7 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) { ["@wdio/globals", "npm:8.16.7"],\ ["expect", "npm:29.7.0"],\ ["jest-matcher-utils", "npm:29.7.0"],\ - ["webdriverio", "virtual:d6348e64bac3f4047b738fe6e0a3d71c5bd02636d63eadf32c51b205b5651e4394f8b4e9916ca6a7cb984a1116fe29dc546364d024e82d4574eeac6c7849a3af#npm:8.16.7"]\ + ["webdriverio", "virtual:4fd26e123d2320479213c12c682aef8eae49c02b6796a74b7a1f9799d2f4de98e51ba5cc8d7563df7cf4dd11b8304ff1016388ccd62eb701aeec652561899aa0#npm:8.16.7"]\ ],\ "linkType": "HARD"\ }]\ @@ -8508,6 +8407,14 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) { }]\ ]],\ ["fastq", [\ + ["npm:1.13.0", {\ + "packageLocation": "./.yarn/cache/fastq-npm-1.13.0-a45963881c-32cf15c29a.zip/node_modules/fastq/",\ + "packageDependencies": [\ + ["fastq", "npm:1.13.0"],\ + ["reusify", "npm:1.0.4"]\ + ],\ + "linkType": "HARD"\ + }],\ ["npm:1.15.0", {\ "packageLocation": "./.yarn/cache/fastq-npm-1.15.0-1013f6514e-0170e6bfcd.zip/node_modules/fastq/",\ "packageDependencies": [\ @@ -8977,10 +8884,10 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) { }]\ ]],\ ["gemini-configparser", [\ - ["npm:1.3.2", {\ - "packageLocation": "./.yarn/cache/gemini-configparser-npm-1.3.2-1a35245eae-9988bd6927.zip/node_modules/gemini-configparser/",\ + ["npm:1.3.0", {\ + "packageLocation": "./.yarn/cache/gemini-configparser-npm-1.3.0-07e53e38d6-a39bac0650.zip/node_modules/gemini-configparser/",\ "packageDependencies": [\ - ["gemini-configparser", "npm:1.3.2"],\ + ["gemini-configparser", "npm:1.3.0"],\ ["lodash", "npm:4.17.21"]\ ],\ "linkType": "HARD"\ @@ -9527,14 +9434,6 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) { }]\ ]],\ ["has-ansi", [\ - ["npm:2.0.0", {\ - "packageLocation": "./.yarn/cache/has-ansi-npm-2.0.0-9bf0cff2af-1b51daa021.zip/node_modules/has-ansi/",\ - "packageDependencies": [\ - ["has-ansi", "npm:2.0.0"],\ - ["ansi-regex", "npm:2.1.1"]\ - ],\ - "linkType": "HARD"\ - }],\ ["npm:4.0.1", {\ "packageLocation": "./.yarn/cache/has-ansi-npm-4.0.1-37b0d00dc4-44c4eb4b17.zip/node_modules/has-ansi/",\ "packageDependencies": [\ @@ -9658,51 +9557,53 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) { }]\ ]],\ ["hermione", [\ - ["npm:7.1.4", {\ - "packageLocation": "./.yarn/cache/hermione-npm-7.1.4-2048964fe2-3d982fe685.zip/node_modules/hermione/",\ + ["npm:8.0.6", {\ + "packageLocation": "./.yarn/cache/hermione-npm-8.0.6-df82799857-0ba0b10470.zip/node_modules/hermione/",\ "packageDependencies": [\ - ["hermione", "npm:7.1.4"]\ + ["hermione", "npm:8.0.6"]\ ],\ "linkType": "SOFT"\ }],\ - ["virtual:d11e5e1ac355da813a1b7f67fabb49db55984574cb5b33beafbc91363e05e6b70c13cc4a20f4355007abd0716592ec6d160e17c85ccdb06340df12b7d17d1742#npm:7.1.4", {\ - "packageLocation": "./.yarn/__virtual__/hermione-virtual-a98c4d5b0d/0/cache/hermione-npm-7.1.4-2048964fe2-3d982fe685.zip/node_modules/hermione/",\ + ["virtual:b1351511a0d75b2e3ba1a387df83451ef34eb2e6be57a181cd9aa5a774f97276e10d9937191590423ba9763837237db48e7bbe82af64300767f741195a19b87e#npm:8.0.6", {\ + "packageLocation": "./.yarn/__virtual__/hermione-virtual-6b3b8f9315/0/cache/hermione-npm-8.0.6-df82799857-0ba0b10470.zip/node_modules/hermione/",\ "packageDependencies": [\ - ["hermione", "virtual:d11e5e1ac355da813a1b7f67fabb49db55984574cb5b33beafbc91363e05e6b70c13cc4a20f4355007abd0716592ec6d160e17c85ccdb06340df12b7d17d1742#npm:7.1.4"],\ + ["hermione", "virtual:b1351511a0d75b2e3ba1a387df83451ef34eb2e6be57a181cd9aa5a774f97276e10d9937191590423ba9763837237db48e7bbe82af64300767f741195a19b87e#npm:8.0.6"],\ ["@gemini-testing/commander", "npm:2.15.3"],\ + ["@types/chalk", "npm:2.2.0"],\ ["@types/mocha", "npm:10.0.1"],\ ["@types/ts-node", null],\ - ["@wdio/globals", "npm:8.16.7"],\ - ["@wdio/types", "npm:8.16.7"],\ - ["@wdio/utils", "npm:7.30.2"],\ + ["@wdio/globals", "npm:8.21.0"],\ + ["@wdio/types", "npm:8.21.0"],\ + ["@wdio/utils", "npm:7.26.0"],\ ["aliasify", "npm:1.9.0"],\ - ["bluebird", "npm:3.7.2"],\ + ["bluebird", "npm:3.5.1"],\ ["browserify", "npm:13.3.0"],\ - ["chalk", "npm:1.1.3"],\ + ["chalk", "npm:2.4.2"],\ ["clear-require", "npm:1.0.1"],\ - ["date-fns", "npm:2.30.0"],\ + ["date-fns", "npm:2.29.3"],\ ["debug", "virtual:1a60d4ee7ccf7e46b1396489be5b672ed167f566f1b9109bc5c6d658323da6d19faa6a16669ec2dc318f884a0c23bed4af4c25a275551bc8fd48d39771ae009a#npm:2.6.9"],\ + ["devtools", "npm:8.21.0"],\ ["escape-string-regexp", "npm:1.0.5"],\ - ["expect-webdriverio", "npm:3.6.0"],\ - ["fastq", "npm:1.15.0"],\ + ["expect-webdriverio", "npm:3.5.3"],\ + ["fastq", "npm:1.13.0"],\ ["fs-extra", "npm:5.0.0"],\ - ["gemini-configparser", "npm:1.3.2"],\ + ["gemini-configparser", "npm:1.3.0"],\ ["glob-extra", "npm:5.0.2"],\ - ["inherit", "npm:2.2.7"],\ ["lodash", "npm:4.17.21"],\ - ["looks-same", "npm:8.2.1"],\ + ["looks-same", "npm:9.0.0"],\ ["micromatch", "npm:4.0.5"],\ ["mocha", "npm:10.2.0"],\ ["plugins-loader", "npm:1.2.0"],\ ["png-validator", "npm:1.1.0"],\ ["sharp", "npm:0.30.7"],\ - ["sizzle", "npm:2.3.10"],\ - ["temp", "npm:0.8.4"],\ + ["sizzle", "npm:2.3.6"],\ + ["strip-ansi", "npm:6.0.1"],\ + ["temp", "npm:0.8.3"],\ ["ts-node", "virtual:3c6c31eedba60f6d4a0031098f0272720e7414162569ae8f58388d36f8e79683154a59f38a8e5aece9f0d5e45421fab86d5311a37a1c1aec338de3c79151496a#npm:10.9.1"],\ ["uglifyify", "npm:3.0.4"],\ ["urijs", "npm:1.19.11"],\ ["url-join", "npm:4.0.1"],\ - ["webdriverio", "npm:8.13.4"],\ + ["webdriverio", "virtual:6b3b8f9315a586096cf8c10ba431a86702dbc678c7e3ca1efb1d74a048dffe9a39b56f477718b01bd6c62fdeb3d0aae3d8a715becec382cb1693a981749be83f#npm:8.21.0"],\ ["worker-farm", "npm:1.7.0"],\ ["yallist", "npm:3.1.1"]\ ],\ @@ -9713,6 +9614,49 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) { "linkType": "HARD"\ }]\ ]],\ + ["hermione-allure", [\ + ["workspace:packages/hermione-allure", {\ + "packageLocation": "./packages/hermione-allure/",\ + "packageDependencies": [\ + ["hermione-allure", "workspace:packages/hermione-allure"],\ + ["@types/chai", "npm:4.3.6"],\ + ["@types/chai-like", "npm:1.1.1"],\ + ["@types/chai-things", "npm:0.0.36"],\ + ["@types/eslint", "npm:8.44.2"],\ + ["@types/glob", "npm:8.1.0"],\ + ["@types/mocha", "npm:10.0.1"],\ + ["@types/node", "npm:20.6.3"],\ + ["@types/sinon", "npm:17.0.3"],\ + ["@typescript-eslint/eslint-plugin", "virtual:a59b12f7fe7bf3b80fc61d73eaaa33af60483f6ce31789d384fbe8ef169791f667d2559ec5f2fbae1a273a658ce021f1f5f1ea0718c56f81b30ad4e95a5668dd#npm:6.7.0"],\ + ["@typescript-eslint/parser", "virtual:a59b12f7fe7bf3b80fc61d73eaaa33af60483f6ce31789d384fbe8ef169791f667d2559ec5f2fbae1a273a658ce021f1f5f1ea0718c56f81b30ad4e95a5668dd#npm:6.7.0"],\ + ["allure-js-commons", "workspace:packages/allure-js-commons"],\ + ["allure-mocha", "virtual:3c6c31eedba60f6d4a0031098f0272720e7414162569ae8f58388d36f8e79683154a59f38a8e5aece9f0d5e45421fab86d5311a37a1c1aec338de3c79151496a#workspace:packages/allure-mocha"],\ + ["chai", "npm:4.3.8"],\ + ["chai-like", "virtual:606d5fd11adc18cba076ddb26a9b3adaf466a45eef985b60ea990c3ead5fe6bcc20990b0ed8d0763c4a8c861cdc2277964415bf12191df7c6923d8e78816abf5#npm:1.1.1"],\ + ["chai-things", "npm:0.2.0"],\ + ["chromedriver", "npm:121.0.0"],\ + ["codecov", "npm:3.8.2"],\ + ["download-chromium", "npm:3.0.0"],\ + ["eslint", "npm:8.49.0"],\ + ["eslint-config-prettier", "virtual:a59b12f7fe7bf3b80fc61d73eaaa33af60483f6ce31789d384fbe8ef169791f667d2559ec5f2fbae1a273a658ce021f1f5f1ea0718c56f81b30ad4e95a5668dd#npm:9.0.0"],\ + ["eslint-plugin-import", "virtual:a59b12f7fe7bf3b80fc61d73eaaa33af60483f6ce31789d384fbe8ef169791f667d2559ec5f2fbae1a273a658ce021f1f5f1ea0718c56f81b30ad4e95a5668dd#npm:2.28.1"],\ + ["eslint-plugin-jsdoc", "virtual:a59b12f7fe7bf3b80fc61d73eaaa33af60483f6ce31789d384fbe8ef169791f667d2559ec5f2fbae1a273a658ce021f1f5f1ea0718c56f81b30ad4e95a5668dd#npm:48.0.2"],\ + ["eslint-plugin-no-null", "virtual:a59b12f7fe7bf3b80fc61d73eaaa33af60483f6ce31789d384fbe8ef169791f667d2559ec5f2fbae1a273a658ce021f1f5f1ea0718c56f81b30ad4e95a5668dd#npm:1.0.2"],\ + ["eslint-plugin-prefer-arrow", "virtual:a59b12f7fe7bf3b80fc61d73eaaa33af60483f6ce31789d384fbe8ef169791f667d2559ec5f2fbae1a273a658ce021f1f5f1ea0718c56f81b30ad4e95a5668dd#npm:1.2.3"],\ + ["fs-jetpack", "npm:4.3.1"],\ + ["glob", "npm:10.3.5"],\ + ["hermione", "virtual:b1351511a0d75b2e3ba1a387df83451ef34eb2e6be57a181cd9aa5a774f97276e10d9937191590423ba9763837237db48e7bbe82af64300767f741195a19b87e#npm:8.0.6"],\ + ["mocha", "npm:10.2.0"],\ + ["mocha-multi-reporters", "virtual:3c6c31eedba60f6d4a0031098f0272720e7414162569ae8f58388d36f8e79683154a59f38a8e5aece9f0d5e45421fab86d5311a37a1c1aec338de3c79151496a#npm:1.5.1"],\ + ["rimraf", "npm:5.0.1"],\ + ["sinon", "npm:17.0.1"],\ + ["source-map-support", "npm:0.5.21"],\ + ["ts-node", "virtual:3c6c31eedba60f6d4a0031098f0272720e7414162569ae8f58388d36f8e79683154a59f38a8e5aece9f0d5e45421fab86d5311a37a1c1aec338de3c79151496a#npm:10.9.1"],\ + ["typescript", "patch:typescript@npm%3A5.2.2#~builtin::version=5.2.2&hash=f3b441"]\ + ],\ + "linkType": "SOFT"\ + }]\ + ]],\ ["hmac-drbg", [\ ["npm:1.0.1", {\ "packageLocation": "./.yarn/cache/hmac-drbg-npm-1.0.1-3499ad31cd-bd30b6a68d.zip/node_modules/hmac-drbg/",\ @@ -9733,14 +9677,6 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) { ],\ "linkType": "HARD"\ }],\ - ["npm:4.1.0", {\ - "packageLocation": "./.yarn/cache/hosted-git-info-npm-4.1.0-4efcdf8fd3-c3f87b3c2f.zip/node_modules/hosted-git-info/",\ - "packageDependencies": [\ - ["hosted-git-info", "npm:4.1.0"],\ - ["lru-cache", "npm:6.0.0"]\ - ],\ - "linkType": "HARD"\ - }],\ ["npm:7.0.1", {\ "packageLocation": "./.yarn/cache/hosted-git-info-npm-7.0.1-88a3bd32d2-be5280f0a2.zip/node_modules/hosted-git-info/",\ "packageDependencies": [\ @@ -10096,15 +10032,6 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) { "linkType": "HARD"\ }]\ ]],\ - ["inherit", [\ - ["npm:2.2.7", {\ - "packageLocation": "./.yarn/cache/inherit-npm-2.2.7-a6da3e1769-7f377408d7.zip/node_modules/inherit/",\ - "packageDependencies": [\ - ["inherit", "npm:2.2.7"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ ["inherits", [\ ["npm:2.0.3", {\ "packageLocation": "./.yarn/cache/inherits-npm-2.0.3-401e64b080-78cb8d7d85.zip/node_modules/inherits/",\ @@ -11598,7 +11525,7 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) { ["whatwg-encoding", "npm:2.0.0"],\ ["whatwg-mimetype", "npm:3.0.0"],\ ["whatwg-url", "npm:11.0.0"],\ - ["ws", "virtual:719c0dda9891b0026e6452d350b81bda23b4a0c76e4b2386ba204362f89a0382f1cf0263fe5ab60c7209f4774d090fdd374b97637759192bf32a7953d83b49f1#npm:8.14.1"],\ + ["ws", "virtual:631444271834b14a4c05c24b453350b0eab92a47fe2f2989cd49078830f0e6fd167b5ce97dc88fd305b29be9ebc565b0f5f576d0d9aed657ccd6a87d0f276739#npm:8.14.1"],\ ["xml-name-validator", "npm:4.0.0"]\ ],\ "packagePeers": [\ @@ -11896,10 +11823,10 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) { }]\ ]],\ ["lighthouse-logger", [\ - ["npm:1.4.2", {\ - "packageLocation": "./.yarn/cache/lighthouse-logger-npm-1.4.2-04e1728218-ba6b73d934.zip/node_modules/lighthouse-logger/",\ + ["npm:2.0.1", {\ + "packageLocation": "./.yarn/cache/lighthouse-logger-npm-2.0.1-4b6d71baf8-65f633e0cf.zip/node_modules/lighthouse-logger/",\ "packageDependencies": [\ - ["lighthouse-logger", "npm:1.4.2"],\ + ["lighthouse-logger", "npm:2.0.1"],\ ["debug", "virtual:1a60d4ee7ccf7e46b1396489be5b672ed167f566f1b9109bc5c6d658323da6d19faa6a16669ec2dc318f884a0c23bed4af4c25a275551bc8fd48d39771ae009a#npm:2.6.9"],\ ["marky", "npm:1.2.5"]\ ],\ @@ -12073,33 +12000,6 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) { "linkType": "HARD"\ }]\ ]],\ - ["lodash.defaults", [\ - ["npm:4.2.0", {\ - "packageLocation": "./.yarn/cache/lodash.defaults-npm-4.2.0-c5dea025ab-8492325823.zip/node_modules/lodash.defaults/",\ - "packageDependencies": [\ - ["lodash.defaults", "npm:4.2.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["lodash.difference", [\ - ["npm:4.5.0", {\ - "packageLocation": "./.yarn/cache/lodash.difference-npm-4.5.0-7a179a50e1-ecee276aa5.zip/node_modules/lodash.difference/",\ - "packageDependencies": [\ - ["lodash.difference", "npm:4.5.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["lodash.flatten", [\ - ["npm:4.4.0", {\ - "packageLocation": "./.yarn/cache/lodash.flatten-npm-4.4.0-495935e617-0ac34a393d.zip/node_modules/lodash.flatten/",\ - "packageDependencies": [\ - ["lodash.flatten", "npm:4.4.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ ["lodash.get", [\ ["npm:4.4.2", {\ "packageLocation": "./.yarn/cache/lodash.get-npm-4.4.2-7bda64ed87-e403047ddb.zip/node_modules/lodash.get/",\ @@ -12109,15 +12009,6 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) { "linkType": "HARD"\ }]\ ]],\ - ["lodash.isplainobject", [\ - ["npm:4.0.6", {\ - "packageLocation": "./.yarn/cache/lodash.isplainobject-npm-4.0.6-d73937742f-29c6351f28.zip/node_modules/lodash.isplainobject/",\ - "packageDependencies": [\ - ["lodash.isplainobject", "npm:4.0.6"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ ["lodash.memoize", [\ ["npm:3.0.4", {\ "packageLocation": "./.yarn/cache/lodash.memoize-npm-3.0.4-40c36c3de4-fc52e0916b.zip/node_modules/lodash.memoize/",\ @@ -12152,15 +12043,6 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) { "linkType": "HARD"\ }]\ ]],\ - ["lodash.union", [\ - ["npm:4.6.0", {\ - "packageLocation": "./.yarn/cache/lodash.union-npm-4.6.0-8c9e2d9292-1514dc6508.zip/node_modules/lodash.union/",\ - "packageDependencies": [\ - ["lodash.union", "npm:4.6.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ ["lodash.zip", [\ ["npm:4.2.0", {\ "packageLocation": "./.yarn/cache/lodash.zip-npm-4.2.0-5299417ec8-41fd8dc1af.zip/node_modules/lodash.zip/",\ @@ -12223,17 +12105,17 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) { }]\ ]],\ ["looks-same", [\ - ["npm:8.2.1", {\ - "packageLocation": "./.yarn/cache/looks-same-npm-8.2.1-a58f9e97de-c4a42e975f.zip/node_modules/looks-same/",\ + ["npm:9.0.0", {\ + "packageLocation": "./.yarn/cache/looks-same-npm-9.0.0-c2318c0331-3704b8d481.zip/node_modules/looks-same/",\ "packageDependencies": [\ - ["looks-same", "npm:8.2.1"],\ + ["looks-same", "npm:9.0.0"],\ ["color-diff", "npm:1.4.0"],\ ["fs-extra", "npm:8.1.0"],\ ["js-graph-algorithms", "npm:1.0.18"],\ ["lodash", "npm:4.17.21"],\ ["nested-error-stacks", "npm:2.1.1"],\ ["parse-color", "npm:1.0.0"],\ - ["sharp", "npm:0.30.7"]\ + ["sharp", "npm:0.32.6"]\ ],\ "linkType": "HARD"\ }]\ @@ -13150,6 +13032,14 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) { ["node-gyp", "npm:9.4.0"]\ ],\ "linkType": "HARD"\ + }],\ + ["npm:6.1.0", {\ + "packageLocation": "./.yarn/unplugged/node-addon-api-npm-6.1.0-634c545b39/node_modules/node-addon-api/",\ + "packageDependencies": [\ + ["node-addon-api", "npm:6.1.0"],\ + ["node-gyp", "npm:9.4.0"]\ + ],\ + "linkType": "HARD"\ }]\ ]],\ ["node-domexception", [\ @@ -13263,17 +13153,6 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) { ],\ "linkType": "HARD"\ }],\ - ["npm:3.0.3", {\ - "packageLocation": "./.yarn/cache/normalize-package-data-npm-3.0.3-1a49056685-bbcee00339.zip/node_modules/normalize-package-data/",\ - "packageDependencies": [\ - ["normalize-package-data", "npm:3.0.3"],\ - ["hosted-git-info", "npm:4.1.0"],\ - ["is-core-module", "npm:2.13.0"],\ - ["semver", "npm:7.5.4"],\ - ["validate-npm-package-license", "npm:3.0.4"]\ - ],\ - "linkType": "HARD"\ - }],\ ["npm:6.0.0", {\ "packageLocation": "./.yarn/cache/normalize-package-data-npm-6.0.0-eb6fb03d4d-741211a435.zip/node_modules/normalize-package-data/",\ "packageDependencies": [\ @@ -14663,18 +14542,18 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) { ],\ "linkType": "SOFT"\ }],\ - ["virtual:a65875011cafa383c6d4ce4f80424d7309a48b290369985e54bae526d91e8cade47a91704c5f5f2366bb382cce395eaa2950496b713167d4235a65fec5e75e79#npm:20.9.0", {\ - "packageLocation": "./.yarn/__virtual__/puppeteer-core-virtual-7e98f7d064/0/cache/puppeteer-core-npm-20.9.0-9d3415e04f-d298598445.zip/node_modules/puppeteer-core/",\ + ["virtual:11ef572a68a1a0a8d9e28f787b75a088365782ce54b9105b1ecef73d4a3dbc57b694335749519b2c997c43dc295bee8403c28517aa63932e756537b912356337#npm:20.3.0", {\ + "packageLocation": "./.yarn/__virtual__/puppeteer-core-virtual-4e98de7813/0/cache/puppeteer-core-npm-20.3.0-76b2125f9b-df0b0e249c.zip/node_modules/puppeteer-core/",\ "packageDependencies": [\ - ["puppeteer-core", "virtual:a65875011cafa383c6d4ce4f80424d7309a48b290369985e54bae526d91e8cade47a91704c5f5f2366bb382cce395eaa2950496b713167d4235a65fec5e75e79#npm:20.9.0"],\ - ["@puppeteer/browsers", "virtual:7e98f7d064939b7822f1422e3f1df0f0ff93e2765f6c42026118390bc2b7092ece67d59d5991dad6bb910cf407d18641895517875e8d0294e5ee5d474bb65f5c#npm:1.4.6"],\ + ["puppeteer-core", "virtual:11ef572a68a1a0a8d9e28f787b75a088365782ce54b9105b1ecef73d4a3dbc57b694335749519b2c997c43dc295bee8403c28517aa63932e756537b912356337#npm:20.3.0"],\ + ["@puppeteer/browsers", "virtual:4e98de7813f1866ab9bba78c6f03b08642fc9b54ca15e11edd1f250496e7a0626c74630fe3502e8860c870cbaa93d257a95bee8fcdc87dd2d96d6b67a45bde7a#npm:1.3.0"],\ ["@types/typescript", null],\ - ["chromium-bidi", "virtual:7e98f7d064939b7822f1422e3f1df0f0ff93e2765f6c42026118390bc2b7092ece67d59d5991dad6bb910cf407d18641895517875e8d0294e5ee5d474bb65f5c#npm:0.4.16"],\ - ["cross-fetch", "npm:4.0.0"],\ + ["chromium-bidi", "virtual:4e98de7813f1866ab9bba78c6f03b08642fc9b54ca15e11edd1f250496e7a0626c74630fe3502e8860c870cbaa93d257a95bee8fcdc87dd2d96d6b67a45bde7a#npm:0.4.9"],\ + ["cross-fetch", "npm:3.1.6"],\ ["debug", "virtual:feb0771c9f8eadaf509cfed41e14a8bebbea5442233275c1c87085111077a08ef71eb773b899665b154d8203a55a489610a54117ae059fce5f5b8b844493b1b1#npm:4.3.4"],\ - ["devtools-protocol", "npm:0.0.1147663"],\ + ["devtools-protocol", "npm:0.0.1120988"],\ ["typescript", null],\ - ["ws", "virtual:7e98f7d064939b7822f1422e3f1df0f0ff93e2765f6c42026118390bc2b7092ece67d59d5991dad6bb910cf407d18641895517875e8d0294e5ee5d474bb65f5c#npm:8.13.0"]\ + ["ws", "virtual:d9cf11e90c61b8e999cbf7858e76dbfd35fc5b190cfc5163d9fe0539fd52a1390ace967996d268559c5689bdfee67107ca94bba42e26383e5a2afad950a1e4ec#npm:8.13.0"]\ ],\ "packagePeers": [\ "@types/typescript",\ @@ -14682,18 +14561,18 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) { ],\ "linkType": "HARD"\ }],\ - ["virtual:be3e0624a0fbf7db5ac10c513e49af782b33761ca5cafff527f31481bf805d04cfc5f026b8f8928016717070fefad786a59211850b6d7364b3ea56b007c1495d#npm:20.3.0", {\ - "packageLocation": "./.yarn/__virtual__/puppeteer-core-virtual-84b578a1bd/0/cache/puppeteer-core-npm-20.3.0-76b2125f9b-df0b0e249c.zip/node_modules/puppeteer-core/",\ + ["virtual:43ed79872536407c66e3dd7def95320afbebbedef6b5beea488fa1ddaf5dc74ca0f8ee70cb9b6fe515465042dae67c128a661bae1708a1bd25af15bf8ad09ee4#npm:20.9.0", {\ + "packageLocation": "./.yarn/__virtual__/puppeteer-core-virtual-d9cf11e90c/0/cache/puppeteer-core-npm-20.9.0-9d3415e04f-d298598445.zip/node_modules/puppeteer-core/",\ "packageDependencies": [\ - ["puppeteer-core", "virtual:be3e0624a0fbf7db5ac10c513e49af782b33761ca5cafff527f31481bf805d04cfc5f026b8f8928016717070fefad786a59211850b6d7364b3ea56b007c1495d#npm:20.3.0"],\ - ["@puppeteer/browsers", "virtual:84b578a1bdd9bac64f64d0408d9110afac456c2a1fe01f3726fb14922a68a7f7c1fb8a2ea6cbd3f9a5831178d5becd8e0e74ad0d3ecc36a8a8680f5a8915312e#npm:1.3.0"],\ + ["puppeteer-core", "virtual:43ed79872536407c66e3dd7def95320afbebbedef6b5beea488fa1ddaf5dc74ca0f8ee70cb9b6fe515465042dae67c128a661bae1708a1bd25af15bf8ad09ee4#npm:20.9.0"],\ + ["@puppeteer/browsers", "virtual:d9cf11e90c61b8e999cbf7858e76dbfd35fc5b190cfc5163d9fe0539fd52a1390ace967996d268559c5689bdfee67107ca94bba42e26383e5a2afad950a1e4ec#npm:1.4.6"],\ ["@types/typescript", null],\ - ["chromium-bidi", "virtual:84b578a1bdd9bac64f64d0408d9110afac456c2a1fe01f3726fb14922a68a7f7c1fb8a2ea6cbd3f9a5831178d5becd8e0e74ad0d3ecc36a8a8680f5a8915312e#npm:0.4.9"],\ - ["cross-fetch", "npm:3.1.6"],\ + ["chromium-bidi", "virtual:d9cf11e90c61b8e999cbf7858e76dbfd35fc5b190cfc5163d9fe0539fd52a1390ace967996d268559c5689bdfee67107ca94bba42e26383e5a2afad950a1e4ec#npm:0.4.16"],\ + ["cross-fetch", "npm:4.0.0"],\ ["debug", "virtual:feb0771c9f8eadaf509cfed41e14a8bebbea5442233275c1c87085111077a08ef71eb773b899665b154d8203a55a489610a54117ae059fce5f5b8b844493b1b1#npm:4.3.4"],\ - ["devtools-protocol", "npm:0.0.1120988"],\ + ["devtools-protocol", "npm:0.0.1147663"],\ ["typescript", null],\ - ["ws", "virtual:7e98f7d064939b7822f1422e3f1df0f0ff93e2765f6c42026118390bc2b7092ece67d59d5991dad6bb910cf407d18641895517875e8d0294e5ee5d474bb65f5c#npm:8.13.0"]\ + ["ws", "virtual:d9cf11e90c61b8e999cbf7858e76dbfd35fc5b190cfc5163d9fe0539fd52a1390ace967996d268559c5689bdfee67107ca94bba42e26383e5a2afad950a1e4ec#npm:8.13.0"]\ ],\ "packagePeers": [\ "@types/typescript",\ @@ -14859,17 +14738,6 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) { ],\ "linkType": "HARD"\ }],\ - ["npm:7.1.0", {\ - "packageLocation": "./.yarn/cache/read-pkg-npm-7.1.0-26dc176eba-20d11c59be.zip/node_modules/read-pkg/",\ - "packageDependencies": [\ - ["read-pkg", "npm:7.1.0"],\ - ["@types/normalize-package-data", "npm:2.4.1"],\ - ["normalize-package-data", "npm:3.0.3"],\ - ["parse-json", "npm:5.2.0"],\ - ["type-fest", "npm:2.19.0"]\ - ],\ - "linkType": "HARD"\ - }],\ ["npm:8.1.0", {\ "packageLocation": "./.yarn/cache/read-pkg-npm-8.1.0-05761f7fd1-f4cd164f09.zip/node_modules/read-pkg/",\ "packageDependencies": [\ @@ -14892,16 +14760,6 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) { ["type-fest", "npm:4.3.1"]\ ],\ "linkType": "HARD"\ - }],\ - ["npm:9.1.0", {\ - "packageLocation": "./.yarn/cache/read-pkg-up-npm-9.1.0-5b28d0b0bb-41b8ba4bdb.zip/node_modules/read-pkg-up/",\ - "packageDependencies": [\ - ["read-pkg-up", "npm:9.1.0"],\ - ["find-up", "npm:6.3.0"],\ - ["read-pkg", "npm:7.1.0"],\ - ["type-fest", "npm:2.19.0"]\ - ],\ - "linkType": "HARD"\ }]\ ]],\ ["readable-stream", [\ @@ -14983,15 +14841,6 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) { "linkType": "HARD"\ }]\ ]],\ - ["regenerator-runtime", [\ - ["npm:0.14.0", {\ - "packageLocation": "./.yarn/cache/regenerator-runtime-npm-0.14.0-e060897cf7-1c977ad82a.zip/node_modules/regenerator-runtime/",\ - "packageDependencies": [\ - ["regenerator-runtime", "npm:0.14.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ ["regexp-match-indices", [\ ["npm:1.0.2", {\ "packageLocation": "./.yarn/cache/regexp-match-indices-npm-1.0.2-9d4b896d66-8cc779f6cf.zip/node_modules/regexp-match-indices/",\ @@ -15268,11 +15117,10 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) { }]\ ]],\ ["rimraf", [\ - ["npm:2.6.3", {\ - "packageLocation": "./.yarn/cache/rimraf-npm-2.6.3-f34c6c72ec-3ea587b981.zip/node_modules/rimraf/",\ + ["npm:2.2.8", {\ + "packageLocation": "./.yarn/cache/rimraf-npm-2.2.8-14e3b16838-01804e1c04.zip/node_modules/rimraf/",\ "packageDependencies": [\ - ["rimraf", "npm:2.6.3"],\ - ["glob", "npm:7.2.3"]\ + ["rimraf", "npm:2.2.8"]\ ],\ "linkType": "HARD"\ }],\ @@ -15511,14 +15359,6 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) { ["type-fest", "npm:2.19.0"]\ ],\ "linkType": "HARD"\ - }],\ - ["npm:8.1.0", {\ - "packageLocation": "./.yarn/cache/serialize-error-npm-8.1.0-a3c5bcc96c-2eef236d50.zip/node_modules/serialize-error/",\ - "packageDependencies": [\ - ["serialize-error", "npm:8.1.0"],\ - ["type-fest", "npm:0.20.2"]\ - ],\ - "linkType": "HARD"\ }]\ ]],\ ["serialize-javascript", [\ @@ -15594,6 +15434,22 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) { ["tunnel-agent", "npm:0.6.0"]\ ],\ "linkType": "HARD"\ + }],\ + ["npm:0.32.6", {\ + "packageLocation": "./.yarn/unplugged/sharp-npm-0.32.6-6b3822c437/node_modules/sharp/",\ + "packageDependencies": [\ + ["sharp", "npm:0.32.6"],\ + ["color", "npm:4.2.3"],\ + ["detect-libc", "npm:2.0.2"],\ + ["node-addon-api", "npm:6.1.0"],\ + ["node-gyp", "npm:9.4.0"],\ + ["prebuild-install", "npm:7.1.1"],\ + ["semver", "npm:7.5.4"],\ + ["simple-get", "npm:4.0.1"],\ + ["tar-fs", "npm:3.0.4"],\ + ["tunnel-agent", "npm:0.6.0"]\ + ],\ + "linkType": "HARD"\ }]\ ]],\ ["shasum", [\ @@ -15753,10 +15609,10 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) { }]\ ]],\ ["sizzle", [\ - ["npm:2.3.10", {\ - "packageLocation": "./.yarn/cache/sizzle-npm-2.3.10-86932a1afb-d9dc75ad84.zip/node_modules/sizzle/",\ + ["npm:2.3.6", {\ + "packageLocation": "./.yarn/cache/sizzle-npm-2.3.6-550bb8adc0-0e3b6e98ed.zip/node_modules/sizzle/",\ "packageDependencies": [\ - ["sizzle", "npm:2.3.10"]\ + ["sizzle", "npm:2.3.6"]\ ],\ "linkType": "HARD"\ }]\ @@ -15968,6 +15824,15 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) { "linkType": "HARD"\ }]\ ]],\ + ["split2", [\ + ["npm:4.2.0", {\ + "packageLocation": "./.yarn/cache/split2-npm-4.2.0-16aa3883ba-05d5410254.zip/node_modules/split2/",\ + "packageDependencies": [\ + ["split2", "npm:4.2.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ ["sprintf-js", [\ ["npm:1.0.3", {\ "packageLocation": "./.yarn/cache/sprintf-js-npm-1.0.3-73f0a322fa-19d79aec21.zip/node_modules/sprintf-js/",\ @@ -16297,14 +16162,6 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) { }]\ ]],\ ["strip-ansi", [\ - ["npm:3.0.1", {\ - "packageLocation": "./.yarn/cache/strip-ansi-npm-3.0.1-6aec1365b9-9b974de611.zip/node_modules/strip-ansi/",\ - "packageDependencies": [\ - ["strip-ansi", "npm:3.0.1"],\ - ["ansi-regex", "npm:2.1.1"]\ - ],\ - "linkType": "HARD"\ - }],\ ["npm:4.0.0", {\ "packageLocation": "./.yarn/cache/strip-ansi-npm-4.0.0-d4de985014-d9186e6c0c.zip/node_modules/strip-ansi/",\ "packageDependencies": [\ @@ -16416,13 +16273,6 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) { }]\ ]],\ ["supports-color", [\ - ["npm:2.0.0", {\ - "packageLocation": "./.yarn/cache/supports-color-npm-2.0.0-22c0f0adbc-602538c581.zip/node_modules/supports-color/",\ - "packageDependencies": [\ - ["supports-color", "npm:2.0.0"]\ - ],\ - "linkType": "HARD"\ - }],\ ["npm:5.5.0", {\ "packageLocation": "./.yarn/cache/supports-color-npm-5.5.0-183ac537bc-95f6f4ba5a.zip/node_modules/supports-color/",\ "packageDependencies": [\ @@ -16596,11 +16446,12 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) { }]\ ]],\ ["temp", [\ - ["npm:0.8.4", {\ - "packageLocation": "./.yarn/cache/temp-npm-0.8.4-d7c7d71d12-f35bed7856.zip/node_modules/temp/",\ + ["npm:0.8.3", {\ + "packageLocation": "./.yarn/cache/temp-npm-0.8.3-cef69b9f4d-bfc6f1223d.zip/node_modules/temp/",\ "packageDependencies": [\ - ["temp", "npm:0.8.4"],\ - ["rimraf", "npm:2.6.3"]\ + ["temp", "npm:0.8.3"],\ + ["os-tmpdir", "npm:1.0.2"],\ + ["rimraf", "npm:2.2.8"]\ ],\ "linkType": "HARD"\ }]\ @@ -17920,113 +17771,162 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) { }]\ ]],\ ["webdriver", [\ - ["npm:8.13.1", {\ - "packageLocation": "./.yarn/cache/webdriver-npm-8.13.1-643d8861e8-7efde3c475.zip/node_modules/webdriver/",\ + ["npm:8.16.7", {\ + "packageLocation": "./.yarn/cache/webdriver-npm-8.16.7-719c0dda98-e53546c5d3.zip/node_modules/webdriver/",\ "packageDependencies": [\ - ["webdriver", "npm:8.13.1"],\ + ["webdriver", "npm:8.16.7"],\ ["@types/node", "npm:20.6.0"],\ ["@types/ws", "npm:8.5.5"],\ - ["@wdio/config", "npm:8.12.1"],\ + ["@wdio/config", "npm:8.16.7"],\ ["@wdio/logger", "npm:8.11.0"],\ - ["@wdio/protocols", "npm:8.11.0"],\ - ["@wdio/types", "npm:8.10.4"],\ - ["@wdio/utils", "npm:8.12.1"],\ + ["@wdio/protocols", "npm:8.16.5"],\ + ["@wdio/types", "npm:8.16.7"],\ + ["@wdio/utils", "npm:8.16.7"],\ ["deepmerge-ts", "npm:5.1.0"],\ ["got", "npm:12.6.1"],\ ["ky", "npm:0.33.3"],\ - ["ws", "virtual:719c0dda9891b0026e6452d350b81bda23b4a0c76e4b2386ba204362f89a0382f1cf0263fe5ab60c7209f4774d090fdd374b97637759192bf32a7953d83b49f1#npm:8.14.1"]\ + ["ws", "virtual:631444271834b14a4c05c24b453350b0eab92a47fe2f2989cd49078830f0e6fd167b5ce97dc88fd305b29be9ebc565b0f5f576d0d9aed657ccd6a87d0f276739#npm:8.14.1"]\ ],\ "linkType": "HARD"\ }],\ - ["npm:8.16.7", {\ - "packageLocation": "./.yarn/cache/webdriver-npm-8.16.7-719c0dda98-e53546c5d3.zip/node_modules/webdriver/",\ + ["npm:8.21.0", {\ + "packageLocation": "./.yarn/cache/webdriver-npm-8.21.0-ce10c40233-f8d9917d47.zip/node_modules/webdriver/",\ "packageDependencies": [\ - ["webdriver", "npm:8.16.7"],\ + ["webdriver", "npm:8.21.0"],\ ["@types/node", "npm:20.6.0"],\ ["@types/ws", "npm:8.5.5"],\ - ["@wdio/config", "npm:8.16.7"],\ - ["@wdio/logger", "npm:8.11.0"],\ - ["@wdio/protocols", "npm:8.16.5"],\ - ["@wdio/types", "npm:8.16.7"],\ - ["@wdio/utils", "npm:8.16.7"],\ + ["@wdio/config", "npm:8.21.0"],\ + ["@wdio/logger", "npm:8.16.17"],\ + ["@wdio/protocols", "npm:8.20.4"],\ + ["@wdio/types", "npm:8.21.0"],\ + ["@wdio/utils", "npm:8.21.0"],\ ["deepmerge-ts", "npm:5.1.0"],\ ["got", "npm:12.6.1"],\ ["ky", "npm:0.33.3"],\ - ["ws", "virtual:719c0dda9891b0026e6452d350b81bda23b4a0c76e4b2386ba204362f89a0382f1cf0263fe5ab60c7209f4774d090fdd374b97637759192bf32a7953d83b49f1#npm:8.14.1"]\ + ["ws", "virtual:631444271834b14a4c05c24b453350b0eab92a47fe2f2989cd49078830f0e6fd167b5ce97dc88fd305b29be9ebc565b0f5f576d0d9aed657ccd6a87d0f276739#npm:8.14.1"]\ ],\ "linkType": "HARD"\ }]\ ]],\ ["webdriverio", [\ - ["npm:8.13.4", {\ - "packageLocation": "./.yarn/cache/webdriverio-npm-8.13.4-26e15d09ce-60b8cd3d1b.zip/node_modules/webdriverio/",\ + ["npm:8.16.7", {\ + "packageLocation": "./.yarn/cache/webdriverio-npm-8.16.7-d0c529991d-6be1952f7c.zip/node_modules/webdriverio/",\ + "packageDependencies": [\ + ["webdriverio", "npm:8.16.7"]\ + ],\ + "linkType": "SOFT"\ + }],\ + ["npm:8.21.0", {\ + "packageLocation": "./.yarn/cache/webdriverio-npm-8.21.0-2dc9c9cfca-be6c19537f.zip/node_modules/webdriverio/",\ + "packageDependencies": [\ + ["webdriverio", "npm:8.21.0"]\ + ],\ + "linkType": "SOFT"\ + }],\ + ["virtual:4fd26e123d2320479213c12c682aef8eae49c02b6796a74b7a1f9799d2f4de98e51ba5cc8d7563df7cf4dd11b8304ff1016388ccd62eb701aeec652561899aa0#npm:8.16.7", {\ + "packageLocation": "./.yarn/__virtual__/webdriverio-virtual-43ed798725/0/cache/webdriverio-npm-8.16.7-d0c529991d-6be1952f7c.zip/node_modules/webdriverio/",\ "packageDependencies": [\ - ["webdriverio", "npm:8.13.4"],\ + ["webdriverio", "virtual:4fd26e123d2320479213c12c682aef8eae49c02b6796a74b7a1f9799d2f4de98e51ba5cc8d7563df7cf4dd11b8304ff1016388ccd62eb701aeec652561899aa0#npm:8.16.7"],\ + ["@types/devtools", null],\ ["@types/node", "npm:20.6.0"],\ - ["@wdio/config", "npm:8.12.1"],\ + ["@wdio/config", "npm:8.16.7"],\ ["@wdio/logger", "npm:8.11.0"],\ - ["@wdio/protocols", "npm:8.11.0"],\ + ["@wdio/protocols", "npm:8.16.5"],\ ["@wdio/repl", "npm:8.10.1"],\ - ["@wdio/types", "npm:8.10.4"],\ - ["@wdio/utils", "npm:8.12.1"],\ - ["archiver", "npm:5.3.2"],\ + ["@wdio/types", "npm:8.16.7"],\ + ["@wdio/utils", "npm:8.16.7"],\ + ["archiver", "npm:6.0.1"],\ ["aria-query", "npm:5.3.0"],\ ["css-shorthand-properties", "npm:1.1.1"],\ ["css-value", "npm:0.0.1"],\ - ["devtools", "npm:8.12.1"],\ - ["devtools-protocol", "npm:0.0.1170846"],\ + ["devtools", null],\ + ["devtools-protocol", "npm:0.0.1188743"],\ ["grapheme-splitter", "npm:1.0.4"],\ ["import-meta-resolve", "npm:3.0.0"],\ ["is-plain-obj", "npm:4.1.0"],\ ["lodash.clonedeep", "npm:4.5.0"],\ ["lodash.zip", "npm:4.2.0"],\ ["minimatch", "npm:9.0.3"],\ - ["puppeteer-core", "virtual:be3e0624a0fbf7db5ac10c513e49af782b33761ca5cafff527f31481bf805d04cfc5f026b8f8928016717070fefad786a59211850b6d7364b3ea56b007c1495d#npm:20.3.0"],\ + ["puppeteer-core", "virtual:43ed79872536407c66e3dd7def95320afbebbedef6b5beea488fa1ddaf5dc74ca0f8ee70cb9b6fe515465042dae67c128a661bae1708a1bd25af15bf8ad09ee4#npm:20.9.0"],\ ["query-selector-shadow-dom", "npm:1.0.1"],\ ["resq", "npm:1.11.0"],\ ["rgb2hex", "npm:0.2.5"],\ - ["serialize-error", "npm:8.1.0"],\ - ["webdriver", "npm:8.13.1"]\ + ["serialize-error", "npm:11.0.2"],\ + ["webdriver", "npm:8.16.7"]\ + ],\ + "packagePeers": [\ + "@types/devtools",\ + "devtools"\ ],\ "linkType": "HARD"\ }],\ - ["npm:8.16.7", {\ - "packageLocation": "./.yarn/cache/webdriverio-npm-8.16.7-d0c529991d-6be1952f7c.zip/node_modules/webdriverio/",\ + ["virtual:6b3b8f9315a586096cf8c10ba431a86702dbc678c7e3ca1efb1d74a048dffe9a39b56f477718b01bd6c62fdeb3d0aae3d8a715becec382cb1693a981749be83f#npm:8.21.0", {\ + "packageLocation": "./.yarn/__virtual__/webdriverio-virtual-790f8e5947/0/cache/webdriverio-npm-8.21.0-2dc9c9cfca-be6c19537f.zip/node_modules/webdriverio/",\ "packageDependencies": [\ - ["webdriverio", "npm:8.16.7"]\ + ["webdriverio", "virtual:6b3b8f9315a586096cf8c10ba431a86702dbc678c7e3ca1efb1d74a048dffe9a39b56f477718b01bd6c62fdeb3d0aae3d8a715becec382cb1693a981749be83f#npm:8.21.0"],\ + ["@types/devtools", null],\ + ["@types/node", "npm:20.6.0"],\ + ["@wdio/config", "npm:8.21.0"],\ + ["@wdio/logger", "npm:8.16.17"],\ + ["@wdio/protocols", "npm:8.20.4"],\ + ["@wdio/repl", "npm:8.10.1"],\ + ["@wdio/types", "npm:8.21.0"],\ + ["@wdio/utils", "npm:8.21.0"],\ + ["archiver", "npm:6.0.1"],\ + ["aria-query", "npm:5.3.0"],\ + ["css-shorthand-properties", "npm:1.1.1"],\ + ["css-value", "npm:0.0.1"],\ + ["devtools", "npm:8.21.0"],\ + ["devtools-protocol", "npm:0.0.1213968"],\ + ["grapheme-splitter", "npm:1.0.4"],\ + ["import-meta-resolve", "npm:3.0.0"],\ + ["is-plain-obj", "npm:4.1.0"],\ + ["lodash.clonedeep", "npm:4.5.0"],\ + ["lodash.zip", "npm:4.2.0"],\ + ["minimatch", "npm:9.0.3"],\ + ["puppeteer-core", "virtual:43ed79872536407c66e3dd7def95320afbebbedef6b5beea488fa1ddaf5dc74ca0f8ee70cb9b6fe515465042dae67c128a661bae1708a1bd25af15bf8ad09ee4#npm:20.9.0"],\ + ["query-selector-shadow-dom", "npm:1.0.1"],\ + ["resq", "npm:1.11.0"],\ + ["rgb2hex", "npm:0.2.5"],\ + ["serialize-error", "npm:11.0.2"],\ + ["webdriver", "npm:8.21.0"]\ ],\ - "linkType": "SOFT"\ + "packagePeers": [\ + "@types/devtools",\ + "devtools"\ + ],\ + "linkType": "HARD"\ }],\ - ["virtual:d6348e64bac3f4047b738fe6e0a3d71c5bd02636d63eadf32c51b205b5651e4394f8b4e9916ca6a7cb984a1116fe29dc546364d024e82d4574eeac6c7849a3af#npm:8.16.7", {\ - "packageLocation": "./.yarn/__virtual__/webdriverio-virtual-a65875011c/0/cache/webdriverio-npm-8.16.7-d0c529991d-6be1952f7c.zip/node_modules/webdriverio/",\ + ["virtual:8cd501644745868882affc876338f8d7c65aa06fa617424c4e97b48e618afee7e798eb9bf3bba807171c423843c7b59e439987a6339634603c796d612665e84a#npm:8.21.0", {\ + "packageLocation": "./.yarn/__virtual__/webdriverio-virtual-2598d2ce00/0/cache/webdriverio-npm-8.21.0-2dc9c9cfca-be6c19537f.zip/node_modules/webdriverio/",\ "packageDependencies": [\ - ["webdriverio", "virtual:d6348e64bac3f4047b738fe6e0a3d71c5bd02636d63eadf32c51b205b5651e4394f8b4e9916ca6a7cb984a1116fe29dc546364d024e82d4574eeac6c7849a3af#npm:8.16.7"],\ + ["webdriverio", "virtual:8cd501644745868882affc876338f8d7c65aa06fa617424c4e97b48e618afee7e798eb9bf3bba807171c423843c7b59e439987a6339634603c796d612665e84a#npm:8.21.0"],\ ["@types/devtools", null],\ ["@types/node", "npm:20.6.0"],\ - ["@wdio/config", "npm:8.16.7"],\ - ["@wdio/logger", "npm:8.11.0"],\ - ["@wdio/protocols", "npm:8.16.5"],\ + ["@wdio/config", "npm:8.21.0"],\ + ["@wdio/logger", "npm:8.16.17"],\ + ["@wdio/protocols", "npm:8.20.4"],\ ["@wdio/repl", "npm:8.10.1"],\ - ["@wdio/types", "npm:8.16.7"],\ - ["@wdio/utils", "npm:8.16.7"],\ + ["@wdio/types", "npm:8.21.0"],\ + ["@wdio/utils", "npm:8.21.0"],\ ["archiver", "npm:6.0.1"],\ ["aria-query", "npm:5.3.0"],\ ["css-shorthand-properties", "npm:1.1.1"],\ ["css-value", "npm:0.0.1"],\ ["devtools", null],\ - ["devtools-protocol", "npm:0.0.1188743"],\ + ["devtools-protocol", "npm:0.0.1213968"],\ ["grapheme-splitter", "npm:1.0.4"],\ ["import-meta-resolve", "npm:3.0.0"],\ ["is-plain-obj", "npm:4.1.0"],\ ["lodash.clonedeep", "npm:4.5.0"],\ ["lodash.zip", "npm:4.2.0"],\ ["minimatch", "npm:9.0.3"],\ - ["puppeteer-core", "virtual:a65875011cafa383c6d4ce4f80424d7309a48b290369985e54bae526d91e8cade47a91704c5f5f2366bb382cce395eaa2950496b713167d4235a65fec5e75e79#npm:20.9.0"],\ + ["puppeteer-core", "virtual:43ed79872536407c66e3dd7def95320afbebbedef6b5beea488fa1ddaf5dc74ca0f8ee70cb9b6fe515465042dae67c128a661bae1708a1bd25af15bf8ad09ee4#npm:20.9.0"],\ ["query-selector-shadow-dom", "npm:1.0.1"],\ ["resq", "npm:1.11.0"],\ ["rgb2hex", "npm:0.2.5"],\ ["serialize-error", "npm:11.0.2"],\ - ["webdriver", "npm:8.16.7"]\ + ["webdriver", "npm:8.21.0"]\ ],\ "packagePeers": [\ "@types/devtools",\ @@ -18107,14 +18007,6 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) { ],\ "linkType": "HARD"\ }],\ - ["npm:3.0.1", {\ - "packageLocation": "./.yarn/cache/which-npm-3.0.1-b2b0f09ace-adf720fe9d.zip/node_modules/which/",\ - "packageDependencies": [\ - ["which", "npm:3.0.1"],\ - ["isexe", "npm:2.0.0"]\ - ],\ - "linkType": "HARD"\ - }],\ ["npm:4.0.0", {\ "packageLocation": "./.yarn/cache/which-npm-4.0.0-dd31cd4928-f17e84c042.zip/node_modules/which/",\ "packageDependencies": [\ @@ -18310,10 +18202,10 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) { ],\ "linkType": "SOFT"\ }],\ - ["virtual:719c0dda9891b0026e6452d350b81bda23b4a0c76e4b2386ba204362f89a0382f1cf0263fe5ab60c7209f4774d090fdd374b97637759192bf32a7953d83b49f1#npm:8.14.1", {\ - "packageLocation": "./.yarn/__virtual__/ws-virtual-300c5c2c47/0/cache/ws-npm-8.14.1-65c71ef1c9-9e310be2b0.zip/node_modules/ws/",\ + ["virtual:631444271834b14a4c05c24b453350b0eab92a47fe2f2989cd49078830f0e6fd167b5ce97dc88fd305b29be9ebc565b0f5f576d0d9aed657ccd6a87d0f276739#npm:8.14.1", {\ + "packageLocation": "./.yarn/__virtual__/ws-virtual-3b2d82427b/0/cache/ws-npm-8.14.1-65c71ef1c9-9e310be2b0.zip/node_modules/ws/",\ "packageDependencies": [\ - ["ws", "virtual:719c0dda9891b0026e6452d350b81bda23b4a0c76e4b2386ba204362f89a0382f1cf0263fe5ab60c7209f4774d090fdd374b97637759192bf32a7953d83b49f1#npm:8.14.1"],\ + ["ws", "virtual:631444271834b14a4c05c24b453350b0eab92a47fe2f2989cd49078830f0e6fd167b5ce97dc88fd305b29be9ebc565b0f5f576d0d9aed657ccd6a87d0f276739#npm:8.14.1"],\ ["@types/bufferutil", null],\ ["@types/utf-8-validate", null],\ ["bufferutil", null],\ @@ -18327,10 +18219,10 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) { ],\ "linkType": "HARD"\ }],\ - ["virtual:7e98f7d064939b7822f1422e3f1df0f0ff93e2765f6c42026118390bc2b7092ece67d59d5991dad6bb910cf407d18641895517875e8d0294e5ee5d474bb65f5c#npm:8.13.0", {\ - "packageLocation": "./.yarn/__virtual__/ws-virtual-851603318f/0/cache/ws-npm-8.13.0-26ffa3016a-53e991bbf9.zip/node_modules/ws/",\ + ["virtual:d9cf11e90c61b8e999cbf7858e76dbfd35fc5b190cfc5163d9fe0539fd52a1390ace967996d268559c5689bdfee67107ca94bba42e26383e5a2afad950a1e4ec#npm:8.13.0", {\ + "packageLocation": "./.yarn/__virtual__/ws-virtual-583e70978b/0/cache/ws-npm-8.13.0-26ffa3016a-53e991bbf9.zip/node_modules/ws/",\ "packageDependencies": [\ - ["ws", "virtual:7e98f7d064939b7822f1422e3f1df0f0ff93e2765f6c42026118390bc2b7092ece67d59d5991dad6bb910cf407d18641895517875e8d0294e5ee5d474bb65f5c#npm:8.13.0"],\ + ["ws", "virtual:d9cf11e90c61b8e999cbf7858e76dbfd35fc5b190cfc5163d9fe0539fd52a1390ace967996d268559c5689bdfee67107ca94bba42e26383e5a2afad950a1e4ec#npm:8.13.0"],\ ["@types/bufferutil", null],\ ["@types/utf-8-validate", null],\ ["bufferutil", null],\ @@ -18581,16 +18473,6 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) { }]\ ]],\ ["zip-stream", [\ - ["npm:4.1.1", {\ - "packageLocation": "./.yarn/cache/zip-stream-npm-4.1.1-879f54e934-33bd5ee701.zip/node_modules/zip-stream/",\ - "packageDependencies": [\ - ["zip-stream", "npm:4.1.1"],\ - ["archiver-utils", "npm:3.0.4"],\ - ["compress-commons", "npm:4.1.2"],\ - ["readable-stream", "npm:3.6.2"]\ - ],\ - "linkType": "HARD"\ - }],\ ["npm:5.0.1", {\ "packageLocation": "./.yarn/cache/zip-stream-npm-5.0.1-f19d836b38-116cee5a2c.zip/node_modules/zip-stream/",\ "packageDependencies": [\ diff --git a/.yarn/cache/@babel-runtime-npm-7.22.15-b21c55a700-793296df1e.zip b/.yarn/cache/@babel-runtime-npm-7.22.15-b21c55a700-793296df1e.zip deleted file mode 100644 index 09140accb..000000000 Binary files a/.yarn/cache/@babel-runtime-npm-7.22.15-b21c55a700-793296df1e.zip and /dev/null differ diff --git a/.yarn/cache/@types-chalk-npm-2.2.0-aa14c60d4f-846437590d.zip b/.yarn/cache/@types-chalk-npm-2.2.0-aa14c60d4f-846437590d.zip new file mode 100644 index 000000000..1262c6cee Binary files /dev/null and b/.yarn/cache/@types-chalk-npm-2.2.0-aa14c60d4f-846437590d.zip differ diff --git a/.yarn/cache/@wdio-config-npm-8.12.1-6cc8c0d852-8843450d92.zip b/.yarn/cache/@wdio-config-npm-8.12.1-6cc8c0d852-8843450d92.zip deleted file mode 100644 index 8460936f5..000000000 Binary files a/.yarn/cache/@wdio-config-npm-8.12.1-6cc8c0d852-8843450d92.zip and /dev/null differ diff --git a/.yarn/cache/@wdio-config-npm-8.21.0-6d8f3e7196-ea79ea9ef8.zip b/.yarn/cache/@wdio-config-npm-8.21.0-6d8f3e7196-ea79ea9ef8.zip new file mode 100644 index 000000000..a87acf00e Binary files /dev/null and b/.yarn/cache/@wdio-config-npm-8.21.0-6d8f3e7196-ea79ea9ef8.zip differ diff --git a/.yarn/cache/@wdio-globals-npm-8.21.0-8cd5016447-be74f11f2b.zip b/.yarn/cache/@wdio-globals-npm-8.21.0-8cd5016447-be74f11f2b.zip new file mode 100644 index 000000000..87623a194 Binary files /dev/null and b/.yarn/cache/@wdio-globals-npm-8.21.0-8cd5016447-be74f11f2b.zip differ diff --git a/.yarn/cache/@wdio-logger-npm-8.16.17-4008bd15e9-162da3205e.zip b/.yarn/cache/@wdio-logger-npm-8.16.17-4008bd15e9-162da3205e.zip new file mode 100644 index 000000000..2cb579d07 Binary files /dev/null and b/.yarn/cache/@wdio-logger-npm-8.16.17-4008bd15e9-162da3205e.zip differ diff --git a/.yarn/cache/@wdio-protocols-npm-8.11.0-d16d8f9c82-68dc353c8b.zip b/.yarn/cache/@wdio-protocols-npm-8.11.0-d16d8f9c82-68dc353c8b.zip deleted file mode 100644 index 94ab0b6aa..000000000 Binary files a/.yarn/cache/@wdio-protocols-npm-8.11.0-d16d8f9c82-68dc353c8b.zip and /dev/null differ diff --git a/.yarn/cache/@wdio-protocols-npm-8.20.4-56bf049a04-5d7a2774f8.zip b/.yarn/cache/@wdio-protocols-npm-8.20.4-56bf049a04-5d7a2774f8.zip new file mode 100644 index 000000000..f185f4a50 Binary files /dev/null and b/.yarn/cache/@wdio-protocols-npm-8.20.4-56bf049a04-5d7a2774f8.zip differ diff --git a/.yarn/cache/@wdio-types-npm-7.26.0-95a81bd326-686b5a6656.zip b/.yarn/cache/@wdio-types-npm-7.26.0-95a81bd326-686b5a6656.zip new file mode 100644 index 000000000..7e666a4fe Binary files /dev/null and b/.yarn/cache/@wdio-types-npm-7.26.0-95a81bd326-686b5a6656.zip differ diff --git a/.yarn/cache/@wdio-types-npm-7.30.2-a5fff7001c-3f547927ea.zip b/.yarn/cache/@wdio-types-npm-7.30.2-a5fff7001c-3f547927ea.zip deleted file mode 100644 index 16986f430..000000000 Binary files a/.yarn/cache/@wdio-types-npm-7.30.2-a5fff7001c-3f547927ea.zip and /dev/null differ diff --git a/.yarn/cache/@wdio-types-npm-8.10.4-f0241f1ab4-57c9e15136.zip b/.yarn/cache/@wdio-types-npm-8.10.4-f0241f1ab4-57c9e15136.zip deleted file mode 100644 index e6522ee2a..000000000 Binary files a/.yarn/cache/@wdio-types-npm-8.10.4-f0241f1ab4-57c9e15136.zip and /dev/null differ diff --git a/.yarn/cache/@wdio-types-npm-8.21.0-f42c86224c-0c81e467d9.zip b/.yarn/cache/@wdio-types-npm-8.21.0-f42c86224c-0c81e467d9.zip new file mode 100644 index 000000000..c1ec0e7ce Binary files /dev/null and b/.yarn/cache/@wdio-types-npm-8.21.0-f42c86224c-0c81e467d9.zip differ diff --git a/.yarn/cache/@wdio-utils-npm-7.30.2-f2567a071d-d41672c0db.zip b/.yarn/cache/@wdio-utils-npm-7.26.0-17b1f1a441-889140c54b.zip similarity index 90% rename from .yarn/cache/@wdio-utils-npm-7.30.2-f2567a071d-d41672c0db.zip rename to .yarn/cache/@wdio-utils-npm-7.26.0-17b1f1a441-889140c54b.zip index de59fa37f..8473c10fb 100644 Binary files a/.yarn/cache/@wdio-utils-npm-7.30.2-f2567a071d-d41672c0db.zip and b/.yarn/cache/@wdio-utils-npm-7.26.0-17b1f1a441-889140c54b.zip differ diff --git a/.yarn/cache/@wdio-utils-npm-8.12.1-f0597ba4fe-f5e4ffc509.zip b/.yarn/cache/@wdio-utils-npm-8.12.1-f0597ba4fe-f5e4ffc509.zip deleted file mode 100644 index 02c0daae8..000000000 Binary files a/.yarn/cache/@wdio-utils-npm-8.12.1-f0597ba4fe-f5e4ffc509.zip and /dev/null differ diff --git a/.yarn/cache/@wdio-utils-npm-8.21.0-1fed1e5506-9a02875948.zip b/.yarn/cache/@wdio-utils-npm-8.21.0-1fed1e5506-9a02875948.zip new file mode 100644 index 000000000..9c5d99e22 Binary files /dev/null and b/.yarn/cache/@wdio-utils-npm-8.21.0-1fed1e5506-9a02875948.zip differ diff --git a/.yarn/cache/ansi-regex-npm-2.1.1-ddd24d102b-190abd03e4.zip b/.yarn/cache/ansi-regex-npm-2.1.1-ddd24d102b-190abd03e4.zip deleted file mode 100644 index 39b464037..000000000 Binary files a/.yarn/cache/ansi-regex-npm-2.1.1-ddd24d102b-190abd03e4.zip and /dev/null differ diff --git a/.yarn/cache/ansi-styles-npm-2.2.1-f3297e782c-ebc0e00381.zip b/.yarn/cache/ansi-styles-npm-2.2.1-f3297e782c-ebc0e00381.zip deleted file mode 100644 index 5581240ca..000000000 Binary files a/.yarn/cache/ansi-styles-npm-2.2.1-f3297e782c-ebc0e00381.zip and /dev/null differ diff --git a/.yarn/cache/archiver-npm-5.3.2-cd50d62eca-7d3b9b9b51.zip b/.yarn/cache/archiver-npm-5.3.2-cd50d62eca-7d3b9b9b51.zip deleted file mode 100644 index b5f510d61..000000000 Binary files a/.yarn/cache/archiver-npm-5.3.2-cd50d62eca-7d3b9b9b51.zip and /dev/null differ diff --git a/.yarn/cache/archiver-utils-npm-2.1.0-c06ce16cc3-5665f40bde.zip b/.yarn/cache/archiver-utils-npm-2.1.0-c06ce16cc3-5665f40bde.zip deleted file mode 100644 index c4dd2c4d8..000000000 Binary files a/.yarn/cache/archiver-utils-npm-2.1.0-c06ce16cc3-5665f40bde.zip and /dev/null differ diff --git a/.yarn/cache/archiver-utils-npm-3.0.4-71b8c9e097-5c6568f118.zip b/.yarn/cache/archiver-utils-npm-3.0.4-71b8c9e097-5c6568f118.zip deleted file mode 100644 index 6946825d7..000000000 Binary files a/.yarn/cache/archiver-utils-npm-3.0.4-71b8c9e097-5c6568f118.zip and /dev/null differ diff --git a/.yarn/cache/bluebird-npm-3.5.1-f0d1499f67-0c4b4b93c1.zip b/.yarn/cache/bluebird-npm-3.5.1-f0d1499f67-0c4b4b93c1.zip new file mode 100644 index 000000000..c223d26aa Binary files /dev/null and b/.yarn/cache/bluebird-npm-3.5.1-f0d1499f67-0c4b4b93c1.zip differ diff --git a/.yarn/cache/chalk-npm-1.1.3-59144c3a87-9d2ea6b98f.zip b/.yarn/cache/chalk-npm-1.1.3-59144c3a87-9d2ea6b98f.zip deleted file mode 100644 index e7d3003b9..000000000 Binary files a/.yarn/cache/chalk-npm-1.1.3-59144c3a87-9d2ea6b98f.zip and /dev/null differ diff --git a/.yarn/cache/chrome-launcher-npm-0.15.2-bafd42e412-e1f8131b9f.zip b/.yarn/cache/chrome-launcher-npm-0.15.2-bafd42e412-e1f8131b9f.zip deleted file mode 100644 index 66320708f..000000000 Binary files a/.yarn/cache/chrome-launcher-npm-0.15.2-bafd42e412-e1f8131b9f.zip and /dev/null differ diff --git a/.yarn/cache/chrome-launcher-npm-1.1.0-0ef7a69f46-55db70ada9.zip b/.yarn/cache/chrome-launcher-npm-1.1.0-0ef7a69f46-55db70ada9.zip new file mode 100644 index 000000000..7ccbc5e4c Binary files /dev/null and b/.yarn/cache/chrome-launcher-npm-1.1.0-0ef7a69f46-55db70ada9.zip differ diff --git a/.yarn/cache/compress-commons-npm-4.1.2-78ffde93d9-b50c4b5d6b.zip b/.yarn/cache/compress-commons-npm-4.1.2-78ffde93d9-b50c4b5d6b.zip deleted file mode 100644 index ea3393eb2..000000000 Binary files a/.yarn/cache/compress-commons-npm-4.1.2-78ffde93d9-b50c4b5d6b.zip and /dev/null differ diff --git a/.yarn/cache/crc32-stream-npm-4.0.3-7860b6069c-d44d0ec6f0.zip b/.yarn/cache/crc32-stream-npm-4.0.3-7860b6069c-d44d0ec6f0.zip deleted file mode 100644 index 0aded5765..000000000 Binary files a/.yarn/cache/crc32-stream-npm-4.0.3-7860b6069c-d44d0ec6f0.zip and /dev/null differ diff --git a/.yarn/cache/date-fns-npm-2.30.0-895c790e0f-f7be015232.zip b/.yarn/cache/date-fns-npm-2.29.3-fef7e3c72c-e01cf5b62a.zip similarity index 57% rename from .yarn/cache/date-fns-npm-2.30.0-895c790e0f-f7be015232.zip rename to .yarn/cache/date-fns-npm-2.29.3-fef7e3c72c-e01cf5b62a.zip index f51ffd3ec..b4c1f926c 100644 Binary files a/.yarn/cache/date-fns-npm-2.30.0-895c790e0f-f7be015232.zip and b/.yarn/cache/date-fns-npm-2.29.3-fef7e3c72c-e01cf5b62a.zip differ diff --git a/.yarn/cache/devtools-npm-8.12.1-be3e0624a0-dd980d79dd.zip b/.yarn/cache/devtools-npm-8.21.0-11ef572a68-be753849f7.zip similarity index 74% rename from .yarn/cache/devtools-npm-8.12.1-be3e0624a0-dd980d79dd.zip rename to .yarn/cache/devtools-npm-8.21.0-11ef572a68-be753849f7.zip index 276e76696..e05745190 100644 Binary files a/.yarn/cache/devtools-npm-8.12.1-be3e0624a0-dd980d79dd.zip and b/.yarn/cache/devtools-npm-8.21.0-11ef572a68-be753849f7.zip differ diff --git a/.yarn/cache/devtools-protocol-npm-0.0.1170846-bd8f7dd0e0-e2945ad0a0.zip b/.yarn/cache/devtools-protocol-npm-0.0.1170846-bd8f7dd0e0-e2945ad0a0.zip deleted file mode 100644 index 454f44fe3..000000000 Binary files a/.yarn/cache/devtools-protocol-npm-0.0.1170846-bd8f7dd0e0-e2945ad0a0.zip and /dev/null differ diff --git a/.yarn/cache/devtools-protocol-npm-0.0.1213968-c79bbde318-d49b5c7ee5.zip b/.yarn/cache/devtools-protocol-npm-0.0.1213968-c79bbde318-d49b5c7ee5.zip new file mode 100644 index 000000000..db3131841 Binary files /dev/null and b/.yarn/cache/devtools-protocol-npm-0.0.1213968-c79bbde318-d49b5c7ee5.zip differ diff --git a/.yarn/cache/expect-webdriverio-npm-3.6.0-d04a8d53c5-f8c79fb1d9.zip b/.yarn/cache/expect-webdriverio-npm-3.5.3-4bd3f938d5-d4f88d4698.zip similarity index 92% rename from .yarn/cache/expect-webdriverio-npm-3.6.0-d04a8d53c5-f8c79fb1d9.zip rename to .yarn/cache/expect-webdriverio-npm-3.5.3-4bd3f938d5-d4f88d4698.zip index 99caf18d2..efb94fc1e 100644 Binary files a/.yarn/cache/expect-webdriverio-npm-3.6.0-d04a8d53c5-f8c79fb1d9.zip and b/.yarn/cache/expect-webdriverio-npm-3.5.3-4bd3f938d5-d4f88d4698.zip differ diff --git a/.yarn/cache/fastq-npm-1.13.0-a45963881c-32cf15c29a.zip b/.yarn/cache/fastq-npm-1.13.0-a45963881c-32cf15c29a.zip new file mode 100644 index 000000000..45cfbb099 Binary files /dev/null and b/.yarn/cache/fastq-npm-1.13.0-a45963881c-32cf15c29a.zip differ diff --git a/.yarn/cache/gemini-configparser-npm-1.3.2-1a35245eae-9988bd6927.zip b/.yarn/cache/gemini-configparser-npm-1.3.0-07e53e38d6-a39bac0650.zip similarity index 51% rename from .yarn/cache/gemini-configparser-npm-1.3.2-1a35245eae-9988bd6927.zip rename to .yarn/cache/gemini-configparser-npm-1.3.0-07e53e38d6-a39bac0650.zip index ca177e18c..f2ea013ff 100644 Binary files a/.yarn/cache/gemini-configparser-npm-1.3.2-1a35245eae-9988bd6927.zip and b/.yarn/cache/gemini-configparser-npm-1.3.0-07e53e38d6-a39bac0650.zip differ diff --git a/.yarn/cache/has-ansi-npm-2.0.0-9bf0cff2af-1b51daa021.zip b/.yarn/cache/has-ansi-npm-2.0.0-9bf0cff2af-1b51daa021.zip deleted file mode 100644 index 61a5a3439..000000000 Binary files a/.yarn/cache/has-ansi-npm-2.0.0-9bf0cff2af-1b51daa021.zip and /dev/null differ diff --git a/.yarn/cache/hermione-npm-7.1.4-2048964fe2-3d982fe685.zip b/.yarn/cache/hermione-npm-7.1.4-2048964fe2-3d982fe685.zip deleted file mode 100644 index 5f239d82d..000000000 Binary files a/.yarn/cache/hermione-npm-7.1.4-2048964fe2-3d982fe685.zip and /dev/null differ diff --git a/.yarn/cache/hermione-npm-8.0.6-df82799857-0ba0b10470.zip b/.yarn/cache/hermione-npm-8.0.6-df82799857-0ba0b10470.zip new file mode 100644 index 000000000..bc387e372 Binary files /dev/null and b/.yarn/cache/hermione-npm-8.0.6-df82799857-0ba0b10470.zip differ diff --git a/.yarn/cache/hosted-git-info-npm-4.1.0-4efcdf8fd3-c3f87b3c2f.zip b/.yarn/cache/hosted-git-info-npm-4.1.0-4efcdf8fd3-c3f87b3c2f.zip deleted file mode 100644 index b3f995f3c..000000000 Binary files a/.yarn/cache/hosted-git-info-npm-4.1.0-4efcdf8fd3-c3f87b3c2f.zip and /dev/null differ diff --git a/.yarn/cache/inherit-npm-2.2.7-a6da3e1769-7f377408d7.zip b/.yarn/cache/inherit-npm-2.2.7-a6da3e1769-7f377408d7.zip deleted file mode 100644 index 326fbf12f..000000000 Binary files a/.yarn/cache/inherit-npm-2.2.7-a6da3e1769-7f377408d7.zip and /dev/null differ diff --git a/.yarn/cache/lighthouse-logger-npm-1.4.2-04e1728218-ba6b73d934.zip b/.yarn/cache/lighthouse-logger-npm-1.4.2-04e1728218-ba6b73d934.zip deleted file mode 100644 index 760f3d573..000000000 Binary files a/.yarn/cache/lighthouse-logger-npm-1.4.2-04e1728218-ba6b73d934.zip and /dev/null differ diff --git a/.yarn/cache/lighthouse-logger-npm-2.0.1-4b6d71baf8-65f633e0cf.zip b/.yarn/cache/lighthouse-logger-npm-2.0.1-4b6d71baf8-65f633e0cf.zip new file mode 100644 index 000000000..098e1af1f Binary files /dev/null and b/.yarn/cache/lighthouse-logger-npm-2.0.1-4b6d71baf8-65f633e0cf.zip differ diff --git a/.yarn/cache/lodash.defaults-npm-4.2.0-c5dea025ab-8492325823.zip b/.yarn/cache/lodash.defaults-npm-4.2.0-c5dea025ab-8492325823.zip deleted file mode 100644 index b190e7a3c..000000000 Binary files a/.yarn/cache/lodash.defaults-npm-4.2.0-c5dea025ab-8492325823.zip and /dev/null differ diff --git a/.yarn/cache/lodash.difference-npm-4.5.0-7a179a50e1-ecee276aa5.zip b/.yarn/cache/lodash.difference-npm-4.5.0-7a179a50e1-ecee276aa5.zip deleted file mode 100644 index bbc6a51cc..000000000 Binary files a/.yarn/cache/lodash.difference-npm-4.5.0-7a179a50e1-ecee276aa5.zip and /dev/null differ diff --git a/.yarn/cache/lodash.flatten-npm-4.4.0-495935e617-0ac34a393d.zip b/.yarn/cache/lodash.flatten-npm-4.4.0-495935e617-0ac34a393d.zip deleted file mode 100644 index bec2baa10..000000000 Binary files a/.yarn/cache/lodash.flatten-npm-4.4.0-495935e617-0ac34a393d.zip and /dev/null differ diff --git a/.yarn/cache/lodash.isplainobject-npm-4.0.6-d73937742f-29c6351f28.zip b/.yarn/cache/lodash.isplainobject-npm-4.0.6-d73937742f-29c6351f28.zip deleted file mode 100644 index c46c1ed95..000000000 Binary files a/.yarn/cache/lodash.isplainobject-npm-4.0.6-d73937742f-29c6351f28.zip and /dev/null differ diff --git a/.yarn/cache/lodash.union-npm-4.6.0-8c9e2d9292-1514dc6508.zip b/.yarn/cache/lodash.union-npm-4.6.0-8c9e2d9292-1514dc6508.zip deleted file mode 100644 index 2ab040041..000000000 Binary files a/.yarn/cache/lodash.union-npm-4.6.0-8c9e2d9292-1514dc6508.zip and /dev/null differ diff --git a/.yarn/cache/looks-same-npm-8.2.1-a58f9e97de-c4a42e975f.zip b/.yarn/cache/looks-same-npm-9.0.0-c2318c0331-3704b8d481.zip similarity index 63% rename from .yarn/cache/looks-same-npm-8.2.1-a58f9e97de-c4a42e975f.zip rename to .yarn/cache/looks-same-npm-9.0.0-c2318c0331-3704b8d481.zip index eb7ae61f3..203990d6f 100644 Binary files a/.yarn/cache/looks-same-npm-8.2.1-a58f9e97de-c4a42e975f.zip and b/.yarn/cache/looks-same-npm-9.0.0-c2318c0331-3704b8d481.zip differ diff --git a/.yarn/cache/node-addon-api-npm-6.1.0-634c545b39-3a539510e6.zip b/.yarn/cache/node-addon-api-npm-6.1.0-634c545b39-3a539510e6.zip new file mode 100644 index 000000000..012df449c Binary files /dev/null and b/.yarn/cache/node-addon-api-npm-6.1.0-634c545b39-3a539510e6.zip differ diff --git a/.yarn/cache/normalize-package-data-npm-3.0.3-1a49056685-bbcee00339.zip b/.yarn/cache/normalize-package-data-npm-3.0.3-1a49056685-bbcee00339.zip deleted file mode 100644 index 6f43f2954..000000000 Binary files a/.yarn/cache/normalize-package-data-npm-3.0.3-1a49056685-bbcee00339.zip and /dev/null differ diff --git a/.yarn/cache/read-pkg-npm-7.1.0-26dc176eba-20d11c59be.zip b/.yarn/cache/read-pkg-npm-7.1.0-26dc176eba-20d11c59be.zip deleted file mode 100644 index d998bdd81..000000000 Binary files a/.yarn/cache/read-pkg-npm-7.1.0-26dc176eba-20d11c59be.zip and /dev/null differ diff --git a/.yarn/cache/read-pkg-up-npm-9.1.0-5b28d0b0bb-41b8ba4bdb.zip b/.yarn/cache/read-pkg-up-npm-9.1.0-5b28d0b0bb-41b8ba4bdb.zip deleted file mode 100644 index 973c1f0a9..000000000 Binary files a/.yarn/cache/read-pkg-up-npm-9.1.0-5b28d0b0bb-41b8ba4bdb.zip and /dev/null differ diff --git a/.yarn/cache/regenerator-runtime-npm-0.14.0-e060897cf7-1c977ad82a.zip b/.yarn/cache/regenerator-runtime-npm-0.14.0-e060897cf7-1c977ad82a.zip deleted file mode 100644 index 743dca6a4..000000000 Binary files a/.yarn/cache/regenerator-runtime-npm-0.14.0-e060897cf7-1c977ad82a.zip and /dev/null differ diff --git a/.yarn/cache/rimraf-npm-2.2.8-14e3b16838-01804e1c04.zip b/.yarn/cache/rimraf-npm-2.2.8-14e3b16838-01804e1c04.zip new file mode 100644 index 000000000..27bf8fb22 Binary files /dev/null and b/.yarn/cache/rimraf-npm-2.2.8-14e3b16838-01804e1c04.zip differ diff --git a/.yarn/cache/rimraf-npm-2.6.3-f34c6c72ec-3ea587b981.zip b/.yarn/cache/rimraf-npm-2.6.3-f34c6c72ec-3ea587b981.zip deleted file mode 100644 index 8749dff0a..000000000 Binary files a/.yarn/cache/rimraf-npm-2.6.3-f34c6c72ec-3ea587b981.zip and /dev/null differ diff --git a/.yarn/cache/serialize-error-npm-8.1.0-a3c5bcc96c-2eef236d50.zip b/.yarn/cache/serialize-error-npm-8.1.0-a3c5bcc96c-2eef236d50.zip deleted file mode 100644 index ddacc24e4..000000000 Binary files a/.yarn/cache/serialize-error-npm-8.1.0-a3c5bcc96c-2eef236d50.zip and /dev/null differ diff --git a/.yarn/cache/sharp-npm-0.32.6-6b3822c437-0cca1d16b1.zip b/.yarn/cache/sharp-npm-0.32.6-6b3822c437-0cca1d16b1.zip new file mode 100644 index 000000000..3b9225441 Binary files /dev/null and b/.yarn/cache/sharp-npm-0.32.6-6b3822c437-0cca1d16b1.zip differ diff --git a/.yarn/cache/sizzle-npm-2.3.10-86932a1afb-d9dc75ad84.zip b/.yarn/cache/sizzle-npm-2.3.10-86932a1afb-d9dc75ad84.zip deleted file mode 100644 index e1d36ddc6..000000000 Binary files a/.yarn/cache/sizzle-npm-2.3.10-86932a1afb-d9dc75ad84.zip and /dev/null differ diff --git a/.yarn/cache/sizzle-npm-2.3.6-550bb8adc0-0e3b6e98ed.zip b/.yarn/cache/sizzle-npm-2.3.6-550bb8adc0-0e3b6e98ed.zip new file mode 100644 index 000000000..f3a0e59ab Binary files /dev/null and b/.yarn/cache/sizzle-npm-2.3.6-550bb8adc0-0e3b6e98ed.zip differ diff --git a/.yarn/cache/split2-npm-4.2.0-16aa3883ba-05d5410254.zip b/.yarn/cache/split2-npm-4.2.0-16aa3883ba-05d5410254.zip new file mode 100644 index 000000000..6e7ee977f Binary files /dev/null and b/.yarn/cache/split2-npm-4.2.0-16aa3883ba-05d5410254.zip differ diff --git a/.yarn/cache/strip-ansi-npm-3.0.1-6aec1365b9-9b974de611.zip b/.yarn/cache/strip-ansi-npm-3.0.1-6aec1365b9-9b974de611.zip deleted file mode 100644 index a1c9f6a0b..000000000 Binary files a/.yarn/cache/strip-ansi-npm-3.0.1-6aec1365b9-9b974de611.zip and /dev/null differ diff --git a/.yarn/cache/supports-color-npm-2.0.0-22c0f0adbc-602538c581.zip b/.yarn/cache/supports-color-npm-2.0.0-22c0f0adbc-602538c581.zip deleted file mode 100644 index c4608ecfe..000000000 Binary files a/.yarn/cache/supports-color-npm-2.0.0-22c0f0adbc-602538c581.zip and /dev/null differ diff --git a/.yarn/cache/temp-npm-0.8.3-cef69b9f4d-bfc6f1223d.zip b/.yarn/cache/temp-npm-0.8.3-cef69b9f4d-bfc6f1223d.zip new file mode 100644 index 000000000..5e6025cc4 Binary files /dev/null and b/.yarn/cache/temp-npm-0.8.3-cef69b9f4d-bfc6f1223d.zip differ diff --git a/.yarn/cache/temp-npm-0.8.4-d7c7d71d12-f35bed7856.zip b/.yarn/cache/temp-npm-0.8.4-d7c7d71d12-f35bed7856.zip deleted file mode 100644 index 831aa443c..000000000 Binary files a/.yarn/cache/temp-npm-0.8.4-d7c7d71d12-f35bed7856.zip and /dev/null differ diff --git a/.yarn/cache/webdriver-npm-8.13.1-643d8861e8-7efde3c475.zip b/.yarn/cache/webdriver-npm-8.13.1-643d8861e8-7efde3c475.zip deleted file mode 100644 index e24ab3a33..000000000 Binary files a/.yarn/cache/webdriver-npm-8.13.1-643d8861e8-7efde3c475.zip and /dev/null differ diff --git a/.yarn/cache/webdriver-npm-8.21.0-ce10c40233-f8d9917d47.zip b/.yarn/cache/webdriver-npm-8.21.0-ce10c40233-f8d9917d47.zip new file mode 100644 index 000000000..6274e2471 Binary files /dev/null and b/.yarn/cache/webdriver-npm-8.21.0-ce10c40233-f8d9917d47.zip differ diff --git a/.yarn/cache/webdriverio-npm-8.13.4-26e15d09ce-60b8cd3d1b.zip b/.yarn/cache/webdriverio-npm-8.21.0-2dc9c9cfca-be6c19537f.zip similarity index 59% rename from .yarn/cache/webdriverio-npm-8.13.4-26e15d09ce-60b8cd3d1b.zip rename to .yarn/cache/webdriverio-npm-8.21.0-2dc9c9cfca-be6c19537f.zip index 14fa911ea..be0235011 100644 Binary files a/.yarn/cache/webdriverio-npm-8.13.4-26e15d09ce-60b8cd3d1b.zip and b/.yarn/cache/webdriverio-npm-8.21.0-2dc9c9cfca-be6c19537f.zip differ diff --git a/.yarn/cache/which-npm-3.0.1-b2b0f09ace-adf720fe9d.zip b/.yarn/cache/which-npm-3.0.1-b2b0f09ace-adf720fe9d.zip deleted file mode 100644 index bb7aab33e..000000000 Binary files a/.yarn/cache/which-npm-3.0.1-b2b0f09ace-adf720fe9d.zip and /dev/null differ diff --git a/.yarn/cache/zip-stream-npm-4.1.1-879f54e934-33bd5ee701.zip b/.yarn/cache/zip-stream-npm-4.1.1-879f54e934-33bd5ee701.zip deleted file mode 100644 index 0c6d7d1ee..000000000 Binary files a/.yarn/cache/zip-stream-npm-4.1.1-879f54e934-33bd5ee701.zip and /dev/null differ diff --git a/.yarn/versions/47ada838.yml b/.yarn/versions/47ada838.yml new file mode 100644 index 000000000..9ed1063cb --- /dev/null +++ b/.yarn/versions/47ada838.yml @@ -0,0 +1,12 @@ +undecided: + - allure-js + - allure-codeceptjs + - allure-cucumberjs + - allure-decorators + - allure-jasmine + - allure-jest + - allure-js-commons + - allure-mocha + - allure-playwright + - allure-vitest + - hermione-allure diff --git a/README.md b/README.md index 007147eee..e5334070e 100644 --- a/README.md +++ b/README.md @@ -65,9 +65,9 @@ ### Hermione -![npm](https://img.shields.io/npm/dm/allure-hermione.svg) ![npm](https://img.shields.io/npm/v/allure-hermione.svg) +![npm](https://img.shields.io/npm/dm/hermione-allure.svg) ![npm](https://img.shields.io/npm/v/hermione-allure.svg) -[Read more](/packages/allure-hermione/README.md) +[Read more](/packages/hermione-allure/README.md) ### CodeceptJS diff --git a/package.json b/package.json index 2a649495a..29f3aa913 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "allure-js", - "version": "2.12.2", + "version": "2.13.0", "private": true, "workspaces": [ "packages/*" diff --git a/packages/allure-codeceptjs/package.json b/packages/allure-codeceptjs/package.json index 8b783e6e1..62831e134 100644 --- a/packages/allure-codeceptjs/package.json +++ b/packages/allure-codeceptjs/package.json @@ -1,6 +1,6 @@ { "name": "allure-codeceptjs", - "version": "2.12.2", + "version": "2.13.0", "description": "Allure codeceptjs integration", "keywords": [ "codeceptjs", diff --git a/packages/allure-cucumberjs/package.json b/packages/allure-cucumberjs/package.json index 34d9bd1af..1387c9db8 100644 --- a/packages/allure-cucumberjs/package.json +++ b/packages/allure-cucumberjs/package.json @@ -1,6 +1,6 @@ { "name": "allure-cucumberjs", - "version": "2.12.2", + "version": "2.13.0", "description": "Allure Cucumber.JS integration", "homepage": "https://allurereport.org/", "repository": { diff --git a/packages/allure-decorators/package.json b/packages/allure-decorators/package.json index f16acbfce..895604973 100644 --- a/packages/allure-decorators/package.json +++ b/packages/allure-decorators/package.json @@ -1,6 +1,6 @@ { "name": "allure-decorators", - "version": "2.12.2", + "version": "2.13.0", "description": "Write your tests in a Java-like annotation-driven manner via JS decorators.", "keywords": [ "typescript", diff --git a/packages/allure-hermione/README.md b/packages/allure-hermione/README.md deleted file mode 100644 index b1721b6eb..000000000 --- a/packages/allure-hermione/README.md +++ /dev/null @@ -1,192 +0,0 @@ -# allure-hermione - -> Allure integration for `hermione@^5.x.x` and above - -[Allure Report logo](https://allurereport.org "Allure Report") - -- Learn more about Allure Report at https://allurereport.org -- 📚 [Documentation](https://allurereport.org/docs/) – discover official documentation for Allure Report -- ❓ [Questions and Support](https://github.com/orgs/allure-framework/discussions/categories/questions-support) – get help from the team and community -- 📢 [Official annoucements](https://github.com/orgs/allure-framework/discussions/categories/announcements) – be in touch with the latest updates -- 💬 [General Discussion ](https://github.com/orgs/allure-framework/discussions/categories/general-discussion) – engage in casual conversations, share insights and ideas with the community - ---- - -## Installation - -Use your favorite node package manager to install required packages: - -```shell -npm add -D allure-hermione allure-js-commons -``` - -## Setup - -Add `allure-hermione` field to `plugins` in your `.hermione.conf.js` file: - -```diff -module.exports = { - plugins: { -+ "allure-hermione": { -+ resultsDir: "./allure-results" -+ } - } -} -``` - -## Using allure commands - -The plugin provides custom browser commands which allow to add additional info -inside your tests: - -```javascript -import { expect } from "chai"; -import { allure } from "allure-hermione/runtime"; - -it("my test", async ({ browser }) => { - await browser.url("https://www.example.org/"); - await browser.$("#btn").click(); - - const screenshot = await browser.takeScreenshot(); - - await allure(browser).attach(screenshot, "image/png"); - await allure(browser).epic("my_epic"); - await allure(browser).parameter("parameter_name", "parameter_value", { - mode: "hidden", - excluded: false, - }); - - expect(browser.url).not.eq("https://www.startpage.com/"); -}); -``` - -Don't forget to pass current test id as first argument to command! - -## Supported commands - -### Display name - -Change your test case name on custom value on the fly using `displayName` method: - -```js -import { allure } from "allure-hermione/runtime"; - -it("my test", async ({ browser, currentTest }) => { - await allure(browser).displayName("my test custom name"); -}); -``` - -### Description - -Provide description in markdown or html syntax: - -```js -import { allure } from "allure-hermione/runtime"; - -it("my test", async ({ browser }) => { - await allure(browser).description("my **markdown description**"); - await allure(browser).descriptionHtml("

my html description

"); -}); -``` - -### Labels - -Markup you tests with labels using low-level `label` method: - -```js -import { allure } from "allure-hermione/runtime"; - -it("my test", async ({ browser, currentTest }) => { - await allure(browser).label("label_name", "label_value"); -}); -``` - -Or using aliases: `id`, `epic`, `feature`, `story`, `suite`, `parentSuite`, `subSuite`, -`owner`, `severity`, `tag`: - -```js -import { allure } from "allure-hermione/runtime"; - -it("my test", async ({ browser, currentTest }) => { - await allure(browser).epic("my_epic"); -}); -``` - -### Links - -Add any link by low-level `link` method: - -```js -import { allure } from "allure-hermione/runtime"; - -it("my test", async ({ browser, currentTest }) => { - await allure(browser).link("http://example.org", "my_link_name", "my_link_type"); -}); -``` - -Or using aliases: `issue`, `tms`: - -```js -import { allure } from "allure-hermione/runtime"; - -it("my test", async ({ browser, currentTest }) => { - await allure(browser).issue("my_link_name", "http://example.org"); -}); -``` - -### Parameters - -Test parameters can be added by `parameter` method: - -```js -import { allure } from "allure-hermione/runtime"; - -it("my test", async ({ browser, currentTest }) => { - await allure(browser).parameter("param_name", "param_value", { - excluded: false, - }); -}); -``` - -### Attachments - -Attach any file as string or buffer using `attach` method: - -```js -import { allure } from "allure-hermione/runtime"; - -it("my test", async ({ browser, currentTest }) => { - await allure(browser).attach(JSON.stringify({ foo: "bar" }), "application/json"); -}); -``` - -If you want to attach a screenshot generated in tests, you can use the same method: - -```js -import { allure } from "allure-hermione/runtime"; - -it("adds screenshots", async ({ browser, currentTest }) => { - const screenshot = await allure(browser).takeScreenshot(); - - await allure(browser).attach(screenshot, "image/png"); -}); -``` - -### Steps - -The reporter provides `step` method to add steps inside your tests for better structure: - -```js -import { allure } from "allure-hermione/runtime"; - -it("my test", async ({ browser, currentTest }) => { - await allure(browser).step("first step name", async (s1) => { - await s1.step("second step name", async (s2) => { - await s2.step("third step name", (s3) => { - // you can add infinite nested steps with any function inside - s3.label("foo", "bar"); - }); - }); - }); -}); -``` diff --git a/packages/allure-hermione/src/index.ts b/packages/allure-hermione/src/index.ts deleted file mode 100644 index 836234e5e..000000000 --- a/packages/allure-hermione/src/index.ts +++ /dev/null @@ -1,303 +0,0 @@ -/* eslint no-underscore-dangle: 0 */ - -/* eslint import/order: 0 */ -import Hermione from "hermione"; -import * as os from "node:os"; -import * as process from "node:process"; -import { - AllureCommandStepExecutable, - AllureRuntime, - AllureTest, - ContentType, - LabelName, - LinkType, - MetadataMessage, - ParameterOptions, - Stage, - Status, - StepBodyFunction, - allureReportFolder, - getSuitesLabels, - md5, -} from "allure-js-commons"; -import { AllureWriter } from "allure-js-commons/dist/src/writers"; -import { ALLURE_METADATA_CONTENT_TYPE } from "allure-js-commons/internal"; -import { - addAttachment, - addLabel, - addLink, - addParameter, - getFileSrcPath, - getSuitePath, - sendMetadata, - setDescription, - setDescriptionHtml, - setDisplayName, - setHistoryId, - setTestCaseId, -} from "./utils"; - -export type HermioneAttachmentMessage = { - testId: string; - metadata: MetadataMessage; -}; - -export type AllureReportOptions = { - resultsDir?: string; - writer?: AllureWriter; -}; - -export type TestIDFactory = (testId?: string) => string; - -const hostname = os.hostname(); -/** - * Creates browser-specific test ID to identify test in the reporter - * - * @param context Hermione test object, or browser ID string - * @returns Browser-specific test ID factory function - */ -const getTestId = ( - context: string | Hermione.Test | (Omit & { id: () => string }), -): TestIDFactory => { - if (typeof context === "string") { - return (testId?: string) => `${context}:${testId || ""}`; - } - - // hermone >= 7.0.0 has `id` property as a string - if (typeof context.id === "string") { - // eslint-disable-next-line - return () => `${context.browserId}:${context.id}`; - } - - const contextId = context.id(); - - return () => `${context.browserId}:${contextId}`; -}; -const addCommands = (browser: WebdriverIO.Browser, testIdFactory: (testId?: string) => string) => { - browser.addCommand("label", async (id: string, name: string, value: string) => { - await addLabel(testIdFactory(id), name, value); - }); - browser.addCommand("link", async (id: string, url: string, name?: string, type?: string) => { - await addLink(testIdFactory(id), url, name, type); - }); - browser.addCommand("parameter", async (id: string, name: string, value: any, options?: ParameterOptions) => { - await addParameter(testIdFactory(id), name, value, options); - }); - browser.addCommand("id", async (id: string, value: string) => { - await addLabel(testIdFactory(id), LabelName.ALLURE_ID, value); - }); - browser.addCommand("epic", async (id: string, value: string) => { - await addLabel(testIdFactory(id), LabelName.EPIC, value); - }); - browser.addCommand("feature", async (id: string, value: string) => { - await addLabel(testIdFactory(id), LabelName.FEATURE, value); - }); - browser.addCommand("story", async (id: string, value: string) => { - await addLabel(testIdFactory(id), LabelName.STORY, value); - }); - browser.addCommand("suite", async (id: string, value: string) => { - await addLabel(testIdFactory(id), LabelName.SUITE, value); - }); - browser.addCommand("parentSuite", async (id: string, value: string) => { - await addLabel(testIdFactory(id), LabelName.PARENT_SUITE, value); - }); - browser.addCommand("subSuite", async (id: string, value: string) => { - await addLabel(testIdFactory(id), LabelName.SUB_SUITE, value); - }); - browser.addCommand("owner", async (id: string, value: string) => { - await addLabel(testIdFactory(id), LabelName.OWNER, value); - }); - browser.addCommand("severity", async (id: string, value: string) => { - await addLabel(testIdFactory(id), LabelName.SEVERITY, value); - }); - browser.addCommand("tag", async (id: string, value: string) => { - await addLabel(testIdFactory(id), LabelName.TAG, value); - }); - browser.addCommand("issue", async (id: string, name: string, url: string) => { - await addLink(testIdFactory(id), url, name, LinkType.ISSUE); - }); - browser.addCommand("tms", async (id: string, name: string, url: string) => { - await addLink(testIdFactory(id), url, name, LinkType.TMS); - }); - browser.addCommand("attach", async (id: string, source: string, mimetype: string) => { - await addAttachment(testIdFactory(id), source, mimetype); - }); - browser.addCommand("step", async (id: string, name: string, body: StepBodyFunction) => { - const step = new AllureCommandStepExecutable(name); - - await step.run(body, async (message: MetadataMessage) => await sendMetadata(testIdFactory(id), message)); - }); - browser.addCommand("displayName", async (id: string, value: string) => { - await setDisplayName(testIdFactory(id), value); - }); - browser.addCommand("description", async (id: string, value: string) => { - await setDescription(testIdFactory(id), value); - }); - browser.addCommand("descriptionHtml", async (id: string, value: string) => { - await setDescriptionHtml(testIdFactory(id), value); - }); - browser.addCommand("testCaseId", async (id: string, value: string) => { - await setTestCaseId(testIdFactory(id), value); - }); - browser.addCommand("historyId", async (id: string, value: string) => { - await setHistoryId(testIdFactory(id), value); - }); -}; - -const hermioneAllureReporter = (hermione: Hermione, opts?: AllureReportOptions) => { - const runningTests: Map = new Map(); - const browsers: Map = new Map(); - const allureWriter = opts?.writer; - const resultsDir = allureReportFolder(opts?.resultsDir); - const runtime = new AllureRuntime({ resultsDir, writer: allureWriter }); - /** - * Create Allure test from Hermione test object with all the possible initial labels - * - * @param test Hermione test object - * @returns Allure test - */ - const createAllureTest = (test: Hermione.Test): AllureTest => { - const { ALLURE_HOST_NAME, ALLURE_THREAD_NAME } = process.env; - const thread = ALLURE_THREAD_NAME || test.sessionId; - const hostnameLabel = ALLURE_HOST_NAME || hostname; - const fileSrcPath = getFileSrcPath(test.file!); - const testFullTitle = test.fullTitle(); - const currentTest = new AllureTest(runtime, Date.now()); - const suites = getSuitePath(test); - - currentTest.name = test.title; - currentTest.fullName = testFullTitle; - currentTest.stage = Stage.RUNNING; - - currentTest.addLabel(LabelName.HOST, hostnameLabel); - currentTest.addLabel(LabelName.LANGUAGE, "javascript"); - currentTest.addLabel(LabelName.FRAMEWORK, "hermione"); - currentTest.addParameter("browser", test.browserId); - - if (!currentTest.testCaseId) { - currentTest.testCaseId = md5(`${fileSrcPath}#${testFullTitle}`); - } - - if (thread) { - currentTest.addLabel(LabelName.THREAD, thread); - } - - getSuitesLabels(suites).forEach((label) => { - currentTest.addLabel(label.name, label.value); - }); - - return currentTest; - }; - const handleTestError = (test: Hermione.Test, error: Hermione.TestError) => { - const testId = getTestId(test); - const currentTest = runningTests.get(testId())!; - const { message, stack, screenshot } = error; - - currentTest.detailsMessage = message; - currentTest.detailsTrace = stack; - - if (screenshot) { - const attachmentFilename = runtime.writeAttachment(screenshot.base64, ContentType.PNG, "base64"); - - currentTest.addAttachment( - // TODO: do we need to give the file much more exact name? - "Screenshot", - { - contentType: ContentType.PNG, - }, - attachmentFilename, - ); - } - }; - const handleAllureAttachment = (testId: string, metadata: MetadataMessage) => { - const currentTest = runningTests.get(testId); - - if (!currentTest) { - // eslint-disable-next-line no-console - console.error("Can't assign attachment due test has been finished or hasn't been started"); - return; - } - - currentTest.applyMetadata(metadata); - }; - - hermione.on(hermione.events.SESSION_START, (browser, { browserId }) => { - const testIdFactory = getTestId(browserId); - - browsers.set(browserId, browser); - - addCommands(browser, testIdFactory); - }); - hermione.on(hermione.events.NEW_WORKER_PROCESS, (worker) => { - // eslint-disable-next-line - // @ts-ignore - worker._process.on("message", (message) => { - if (message?.type === ALLURE_METADATA_CONTENT_TYPE) { - const { testId, metadata } = message as HermioneAttachmentMessage; - - handleAllureAttachment(testId, metadata); - } - }); - }); - hermione.on(hermione.events.TEST_BEGIN, (test) => { - // test hasn't been actually started - if (!test.browserId) { - return; - } - - const testId = getTestId(test); - const browser = browsers.get(test.browserId); - - if (browser) { - // eslint-disable-next-line @typescript-eslint/no-unsafe-argument - addCommands(browser, testId); - } - - const currentTest = createAllureTest(test); - - runningTests.set(testId(), currentTest); - }); - hermione.on(hermione.events.TEST_PASS, (test) => { - const testId = getTestId(test); - const currentTest = runningTests.get(testId())!; - - currentTest.status = Status.PASSED; - }); - hermione.on(hermione.events.TEST_FAIL, (test) => { - const testId = getTestId(test); - const currentTest = runningTests.get(testId()); - - // hermione handle all errors in this hook, even test hasn't been started - if (!currentTest) { - throw test.err; - } - - currentTest.status = Status.FAILED; - }); - hermione.on(hermione.events.TEST_END, (test) => { - const testId = getTestId(test); - const currentTest = runningTests.get(testId())!; - - if (test.err) { - handleTestError(test, test.err); - } - - currentTest.calculateHistoryId(); - - // the test has been skipped - if (test.pending) { - currentTest.status = Status.SKIPPED; - } - - currentTest.stage = Stage.FINISHED; - currentTest.endTest(Date.now()); - runningTests.delete(testId()); - }); - - // it needs for tests because we need to read runtime writer data redefined in hermione config - // eslint-disable-next-line - // @ts-ignore - hermione.allure = runtime; -}; - -module.exports = hermioneAllureReporter; diff --git a/packages/allure-hermione/src/runtime.ts b/packages/allure-hermione/src/runtime.ts deleted file mode 100644 index 680bf2d06..000000000 --- a/packages/allure-hermione/src/runtime.ts +++ /dev/null @@ -1,178 +0,0 @@ -import { - AllureCommandStepExecutable, - LabelName, - LinkType, - MetadataMessage, - ParameterOptions, - StepBodyFunction, -} from "allure-js-commons"; -import { ALLURE_METADATA_CONTENT_TYPE } from "allure-js-commons/internal"; - -const id = async (browser: any) => { - const config = await browser.getConfig(); - return `${config?.id}:${browser.executionContext?.ctx?.currentTest?.id}`; -}; - -const sendMetadata = async (browser: any, metadata: MetadataMessage): Promise => { - const testId = await id(browser); - return new Promise((resolve, reject) => { - process.send?.( - { - type: ALLURE_METADATA_CONTENT_TYPE, - testId, - metadata, - }, - undefined, - undefined, - (err) => { - if (err) { - return reject(err); - } - - return resolve(); - }, - ); - }); -}; - -export const allure = (browser: any) => ({ - description: async (value: string) => { - await sendMetadata(browser, { - description: value, - }); - }, - - descriptionHtml: async (value: string) => { - await sendMetadata(browser, { - descriptionHtml: value, - }); - }, - - attachment: async (content: string | Buffer, type: string) => { - const isBuffer = Buffer.isBuffer(content); - await sendMetadata(browser, { - attachments: [ - { - name: "Attachment", - content: isBuffer ? content.toString("base64") : content, - encoding: isBuffer ? "base64" : "utf8", - type, - }, - ], - }); - }, - - parameter: async (name: string, value: any, options?: ParameterOptions) => { - await sendMetadata(browser, { - parameter: [{ name, value, ...options }], - }); - }, - - link: async (url: string, name?: string, type?: string) => { - await sendMetadata(browser, { - links: [{ name, url, type }], - }); - }, - - issue: async (url: string, name?: string) => { - await sendMetadata(browser, { - links: [{ name, url, type: LinkType.ISSUE }], - }); - }, - - tms: async (url: string, name?: string) => { - await sendMetadata(browser, { - links: [{ name, url, type: LinkType.TMS }], - }); - }, - - label: async (name: string, value: string) => { - await sendMetadata(browser, { - labels: [{ name, value }], - }); - }, - - id: async (value: string) => { - await sendMetadata(browser, { - labels: [{ name: LabelName.ALLURE_ID, value }], - }); - }, - - epic: async (value: string) => { - await sendMetadata(browser, { - labels: [{ name: LabelName.EPIC, value }], - }); - }, - - feature: async (value: string) => { - await sendMetadata(browser, { - labels: [{ name: LabelName.FEATURE, value }], - }); - }, - - story: async (value: string) => { - await sendMetadata(browser, { - labels: [{ name: LabelName.STORY, value }], - }); - }, - - suite: async (value: string) => { - await sendMetadata(browser, { - labels: [{ name: LabelName.SUITE, value }], - }); - }, - - subSuite: async (value: string) => { - await sendMetadata(browser, { - labels: [{ name: LabelName.SUB_SUITE, value }], - }); - }, - - parentSuite: async (value: string) => { - await sendMetadata(browser, { - labels: [{ name: LabelName.PARENT_SUITE, value }], - }); - }, - - owner: async (value: string) => { - await sendMetadata(browser, { - labels: [{ name: LabelName.OWNER, value }], - }); - }, - - severity: async (value: string) => { - await sendMetadata(browser, { - labels: [{ name: LabelName.SEVERITY, value }], - }); - }, - - tag: async (value: string) => { - await sendMetadata(browser, { - labels: [{ name: LabelName.TAG, value }], - }); - }, - - historyId: async (historyId: string) => { - await sendMetadata(browser, { - historyId, - }); - }, - - testCaseId: async (testCaseId: string) => { - await sendMetadata(browser, { - testCaseId, - }); - }, - - displayName: async (displayName: string) => { - await sendMetadata(browser, { - displayName, - }); - }, - - step: async (name: string, body: StepBodyFunction) => { - const step = new AllureCommandStepExecutable(name); - - await step.run(body, async (message: MetadataMessage) => await sendMetadata(browser, message)); - }, -}); diff --git a/packages/allure-hermione/test/fixtures/attachments.js b/packages/allure-hermione/test/fixtures/attachments.js deleted file mode 100644 index f01102460..000000000 --- a/packages/allure-hermione/test/fixtures/attachments.js +++ /dev/null @@ -1,5 +0,0 @@ -const { allure } = require("../../dist/runtime"); - -it("json", async ({ browser }) => { - await allure(browser).attachment(JSON.stringify({ foo: "bar" }), "application/json"); -}); diff --git a/packages/allure-hermione/test/fixtures/description.js b/packages/allure-hermione/test/fixtures/description.js deleted file mode 100644 index 2b376e158..000000000 --- a/packages/allure-hermione/test/fixtures/description.js +++ /dev/null @@ -1,9 +0,0 @@ -const { allure } = require("../../dist/runtime"); - -it("markdown description", async ({ browser }) => { - await allure(browser).description("foo"); -}); - -it("html description", async ({ browser }) => { - await allure(browser).descriptionHtml("fooHtml"); -}); diff --git a/packages/allure-hermione/test/fixtures/displayName.js b/packages/allure-hermione/test/fixtures/displayName.js deleted file mode 100644 index 5e545acad..000000000 --- a/packages/allure-hermione/test/fixtures/displayName.js +++ /dev/null @@ -1,5 +0,0 @@ -const { allure } = require("../../dist/runtime"); - -it("display name", async ({ browser }) => { - await allure(browser).displayName("foo"); -}); diff --git a/packages/allure-hermione/test/fixtures/historyId.js b/packages/allure-hermione/test/fixtures/historyId.js deleted file mode 100644 index 8c6744141..000000000 --- a/packages/allure-hermione/test/fixtures/historyId.js +++ /dev/null @@ -1,4 +0,0 @@ -const { allure } = require("../../dist/runtime"); -it("historyId", async ({ browser, currentTest }) => { - await allure(browser).historyId("foo"); -}); diff --git a/packages/allure-hermione/test/fixtures/hooks.js b/packages/allure-hermione/test/fixtures/hooks.js deleted file mode 100644 index 5ada9467d..000000000 --- a/packages/allure-hermione/test/fixtures/hooks.js +++ /dev/null @@ -1,17 +0,0 @@ -const { allure } = require("../../dist/runtime"); - -describe("hooks", () => { - beforeEach(async ({ browser }) => { - await allure(browser).label("hook", "before"); - }); - - afterEach(async ({ browser }) => { - await allure(browser).label("hook", "after"); - }); - - it("first test", () => {}); - - it("second test", () => {}); - - it("third test", () => {}); -}); diff --git a/packages/allure-hermione/test/fixtures/labels.js b/packages/allure-hermione/test/fixtures/labels.js deleted file mode 100644 index f4a5eb5a1..000000000 --- a/packages/allure-hermione/test/fixtures/labels.js +++ /dev/null @@ -1,44 +0,0 @@ -const { allure } = require("../../dist/runtime"); -it("custom", async ({ browser }) => { - await allure(browser).label("foo", "bar"); -}); - -it("allureId", async ({ browser }) => { - await allure(browser).id("42"); -}); - -it("epic", async ({ browser }) => { - await allure(browser).epic("foo"); -}); - -it("owner", async ({ browser }) => { - await allure(browser).owner("foo"); -}); - -it("parentSuite", async ({ browser }) => { - await allure(browser).parentSuite("foo"); -}); - -it("subSuite", async ({ browser }) => { - await allure(browser).subSuite("foo"); -}); - -it("severity", async ({ browser }) => { - await allure(browser).severity("foo"); -}); - -it("story", async ({ browser }) => { - await allure(browser).story("foo"); -}); - -it("suite", async ({ browser }) => { - await allure(browser).suite("foo"); -}); - -it("tag", async ({ browser }) => { - await allure(browser).tag("foo"); -}); - -it("feature", async ({ browser }) => { - await allure(browser).feature("foo"); -}); diff --git a/packages/allure-hermione/test/fixtures/links.js b/packages/allure-hermione/test/fixtures/links.js deleted file mode 100644 index 993099a6c..000000000 --- a/packages/allure-hermione/test/fixtures/links.js +++ /dev/null @@ -1,12 +0,0 @@ -const { allure } = require("../../dist/runtime"); -it("custom", async ({ browser }) => { - await allure(browser).link("https://example.org", "bar", "foo"); -}); - -it("tms", async ({ browser }) => { - await allure(browser).tms("https://example.org", "foo"); -}); - -it("issue", async ({ browser }) => { - await allure(browser).issue("https://example.org", "foo"); -}); diff --git a/packages/allure-hermione/test/fixtures/only.js b/packages/allure-hermione/test/fixtures/only.js deleted file mode 100644 index e303b0ec0..000000000 --- a/packages/allure-hermione/test/fixtures/only.js +++ /dev/null @@ -1,5 +0,0 @@ -it("first", () => {}); - -it("second", () => {}); - -it.only("third", () => {}); diff --git a/packages/allure-hermione/test/fixtures/parameters.js b/packages/allure-hermione/test/fixtures/parameters.js deleted file mode 100644 index 4470eca0c..000000000 --- a/packages/allure-hermione/test/fixtures/parameters.js +++ /dev/null @@ -1,8 +0,0 @@ -const { allure } = require("../../dist/runtime"); - -it("custom", async ({ browser }) => { - await allure(browser).parameter("foo", "bar", { - excluded: false, - mode: "hidden", - }); -}); diff --git a/packages/allure-hermione/test/fixtures/skipped.js b/packages/allure-hermione/test/fixtures/skipped.js deleted file mode 100644 index c66301b8f..000000000 --- a/packages/allure-hermione/test/fixtures/skipped.js +++ /dev/null @@ -1,10 +0,0 @@ -it.skip("native", () => {}); - -describe("", () => { - it.skip("suite", () => {}); -}); - -describe("", () => { - hermione.skip.in("headless"); - it("browser", () => {}); -}); diff --git a/packages/allure-hermione/test/fixtures/steps.js b/packages/allure-hermione/test/fixtures/steps.js deleted file mode 100644 index 0758836ac..000000000 --- a/packages/allure-hermione/test/fixtures/steps.js +++ /dev/null @@ -1,21 +0,0 @@ -const { allure } = require("../../dist/runtime"); - -it("passed", async ({ browser }) => { - await allure(browser).step("first step name", async (s1) => { - await s1.step("second step name", async (s2) => { - await s2.step("third step name", (s3) => { - s3.label("foo", "bar"); - }); - }); - }); -}); - -it("failed", async ({ browser }) => { - await allure(browser).step("first step name", async (s1) => { - await s1.step("second step name", async (s2) => { - await s2.step("third step name", (s3) => { - throw new Error("foo"); - }); - }); - }); -}); diff --git a/packages/allure-hermione/test/fixtures/testCaseId.js b/packages/allure-hermione/test/fixtures/testCaseId.js deleted file mode 100644 index b287f5fd8..000000000 --- a/packages/allure-hermione/test/fixtures/testCaseId.js +++ /dev/null @@ -1,4 +0,0 @@ -const { allure } = require("../../dist/runtime"); -it("testCaseId", async ({ browser }) => { - await allure(browser).testCaseId("foo"); -}); diff --git a/packages/allure-hermione/test/helper/run_helper.ts b/packages/allure-hermione/test/helper/run_helper.ts deleted file mode 100644 index 2708b95db..000000000 --- a/packages/allure-hermione/test/helper/run_helper.ts +++ /dev/null @@ -1,14 +0,0 @@ -import Hermione from "hermione"; -import { AllureResults, InMemoryAllureWriter } from "allure-js-commons"; - -export const runHermione = async (testPaths: string[]): Promise => { - const hermione = new Hermione("./test/.hermione.conf.js"); - const allure = require("allure-hermione"); - const writer = new InMemoryAllureWriter(); - allure(hermione, { - writer, - }); - - await hermione.run(testPaths, { reporters: [] }); - return writer; -}; diff --git a/packages/allure-hermione/test/spec/attachments.test.ts b/packages/allure-hermione/test/spec/attachments.test.ts deleted file mode 100644 index afaa34f26..000000000 --- a/packages/allure-hermione/test/spec/attachments.test.ts +++ /dev/null @@ -1,29 +0,0 @@ -import { expect } from "chai"; -import { beforeEach, describe, it } from "mocha"; -import Sinon from "sinon"; -import * as AllureCommons from "allure-js-commons"; -import { runHermione } from "../helper/run_helper"; -import { getTestResultByName } from "../runner"; - -describe("attachments", () => { - let writeAttachmentStub: Sinon.SinonStub; - - beforeEach(() => { - Sinon.restore(); - - writeAttachmentStub = Sinon.stub(AllureCommons.AllureRuntime.prototype, "writeAttachment"); - }); - - it("adds json attachment", async () => { - const allureResults = await runHermione(["./test/fixtures/attachments.js"]); - - const { tests: results } = allureResults; - const { - attachments: [attachment], - } = getTestResultByName(results, "json"); - - expect(attachment.name).eq("Attachment"); - expect(attachment.type).eq("application/json"); - expect(writeAttachmentStub.firstCall.args).eql([JSON.stringify({ foo: "bar" }), "application/json", "utf8"]); - }); -}); diff --git a/packages/allure-hermione/test/spec/description.test.ts b/packages/allure-hermione/test/spec/description.test.ts deleted file mode 100644 index 8300d4c63..000000000 --- a/packages/allure-hermione/test/spec/description.test.ts +++ /dev/null @@ -1,21 +0,0 @@ -import { expect } from "chai"; -import { describe, it } from "mocha"; -import { runHermione } from "../helper/run_helper"; -import { getTestResultByName } from "../runner"; - -describe("description", () => { - it("adds `foo` markdown description", async () => { - const allureResults = await runHermione(["./test/fixtures/description.js"]); - - const { description } = getTestResultByName(allureResults.tests, "markdown description"); - expect(description).eq("foo"); - }); - - it("adds `foo` html description", async () => { - const allureResults = await runHermione(["./test/fixtures/description.js"]); - - const { descriptionHtml } = getTestResultByName(allureResults.tests, "html description"); - - expect(descriptionHtml).eq("fooHtml"); - }); -}); diff --git a/packages/allure-hermione/test/spec/displayName.test.ts b/packages/allure-hermione/test/spec/displayName.test.ts deleted file mode 100644 index d3336a8aa..000000000 --- a/packages/allure-hermione/test/spec/displayName.test.ts +++ /dev/null @@ -1,15 +0,0 @@ -import { expect } from "chai"; -import { describe, it } from "mocha"; -import { runHermione } from "../helper/run_helper"; -import { getTestResultByName } from "../runner"; - -describe("displayName", () => { - it("sets custom test name", async () => { - const allureResults = await runHermione(["./test/fixtures/displayName.js"]); - - const { name, fullName } = getTestResultByName(allureResults.tests, "foo"); - - expect(name).eq("foo"); - expect(fullName).eq("display name"); - }); -}); diff --git a/packages/allure-hermione/test/spec/historyId.test.ts b/packages/allure-hermione/test/spec/historyId.test.ts deleted file mode 100644 index 012e6a0de..000000000 --- a/packages/allure-hermione/test/spec/historyId.test.ts +++ /dev/null @@ -1,15 +0,0 @@ -import { expect } from "chai"; -import { describe, it } from "mocha"; -import { runHermione } from "../helper/run_helper"; -import { getTestResultByName } from "../runner"; - -describe("historyId", () => { - it("sets custom history id", async () => { - const allureResults = await runHermione(["./test/fixtures/historyId.js"]); - const { tests: results } = allureResults; - - const { historyId } = getTestResultByName(results, "historyId"); - - expect(historyId).eq("foo"); - }); -}); diff --git a/packages/allure-hermione/test/spec/hooks.test.ts b/packages/allure-hermione/test/spec/hooks.test.ts deleted file mode 100644 index a522deb7f..000000000 --- a/packages/allure-hermione/test/spec/hooks.test.ts +++ /dev/null @@ -1,17 +0,0 @@ -import { expect } from "chai"; -import { describe, it } from "mocha"; -import { TestResult } from "allure-js-commons"; -import { runHermione } from "../helper/run_helper"; - -describe("hooks", () => { - it("applies commands from `beforeEach` and `afterEach` for each test", async () => { - const allureResults = await runHermione(["./test/fixtures/hooks.js"]); - const hasHookLabel = (result: TestResult, hook: string) => { - return !!result.labels.find(({ name, value }) => name === "hook" && value === hook); - }; - - expect(allureResults.tests.every((result) => hasHookLabel(result, "before") && hasHookLabel(result, "after"))).eq( - true, - ); - }); -}); diff --git a/packages/allure-hermione/test/spec/labels.test.ts b/packages/allure-hermione/test/spec/labels.test.ts deleted file mode 100644 index 38440a51c..000000000 --- a/packages/allure-hermione/test/spec/labels.test.ts +++ /dev/null @@ -1,95 +0,0 @@ -import { expect } from "chai"; -import { describe, it } from "mocha"; -import { Label, LabelName, TestResult } from "allure-js-commons"; -import { runHermione } from "../helper/run_helper"; -import { getTestResultByName } from "../runner"; - -describe("labels", () => { - let results: TestResult[]; - - before(async () => { - const { tests } = await runHermione(["./test/fixtures/labels.js"]); - - results = tests; - }); - - it("adds `foo` custom label", async () => { - const { labels } = getTestResultByName(results, "custom"); - const label = labels.find(({ name }) => name === "foo") as Label; - - expect(label.name).eq("foo"); - expect(label.value).eq("bar"); - }); - - it("adds `42` allureId label", async () => { - const { labels } = getTestResultByName(results, "allureId"); - const label = labels.find(({ name }) => name === LabelName.ALLURE_ID) as Label; - - expect(label.value).eq("42"); - }); - - it("adds `foo` epic label", async () => { - const { labels } = getTestResultByName(results, "epic"); - const label = labels.find(({ name }) => name === LabelName.EPIC) as Label; - - expect(label.value).eq("foo"); - }); - - it("adds `foo` feature label", async () => { - const { labels } = getTestResultByName(results, "feature"); - const label = labels.find(({ name }) => name === LabelName.FEATURE) as Label; - - expect(label.value).eq("foo"); - }); - - it("adds `foo` story label", async () => { - const { labels } = getTestResultByName(results, "story"); - const label = labels.find(({ name }) => name === LabelName.STORY) as Label; - - expect(label.value).eq("foo"); - }); - - it("adds `foo` suite label", async () => { - const { labels } = getTestResultByName(results, "suite"); - const label = labels.find(({ name }) => name === LabelName.SUITE) as Label; - - expect(label.value).eq("foo"); - }); - - it("adds `foo` parentSuite label", async () => { - const { labels } = getTestResultByName(results, "parentSuite"); - const label = labels.find(({ name }) => name === LabelName.PARENT_SUITE) as Label; - - expect(label.value).eq("foo"); - }); - - it("adds `foo` subSuite label", async () => { - const { labels } = getTestResultByName(results, "subSuite"); - const label = labels.find(({ name }) => name === LabelName.SUB_SUITE) as Label; - - expect(label.value).eq("foo"); - }); - - it("adds `foo` owner label", async () => { - const { labels } = getTestResultByName(results, "owner"); - const label = labels.find(({ name }) => name === LabelName.OWNER) as Label; - - expect(label.value).eq("foo"); - }); - - it("adds `foo` severity label", async () => { - const { tests: results } = await runHermione(["./test/fixtures/labels.js"]); - - const { labels } = getTestResultByName(results, "severity"); - const label = labels.find(({ name }) => name === LabelName.SEVERITY) as Label; - - expect(label.value).eq("foo"); - }); - - it("adds `foo` tag label", async () => { - const { labels } = getTestResultByName(results, "tag"); - const label = labels.find(({ name }) => name === LabelName.TAG) as Label; - - expect(label.value).eq("foo"); - }); -}); diff --git a/packages/allure-hermione/test/spec/links.test.ts b/packages/allure-hermione/test/spec/links.test.ts deleted file mode 100644 index 4312521c6..000000000 --- a/packages/allure-hermione/test/spec/links.test.ts +++ /dev/null @@ -1,38 +0,0 @@ -import { expect } from "chai"; -import { describe, it } from "mocha"; -import { Link, LinkType, TestResult } from "allure-js-commons"; -import { runHermione } from "../helper/run_helper"; -import { getTestResultByName } from "../runner"; - -describe("links", () => { - let results: TestResult[]; - - before(async () => { - const { tests } = await runHermione(["./test/fixtures/links.js"]); - - results = tests; - }); - it("adds `bar` custom link", async () => { - const { links } = getTestResultByName(results, "custom"); - const link = links.find(({ type }) => type === "foo") as Link; - - expect(link.name).eq("bar"); - expect(link.url).eq("https://example.org"); - }); - - it("adds `foo` tms link", async () => { - const { links } = getTestResultByName(results, "tms"); - const link = links.find(({ type }) => type === LinkType.TMS) as Link; - - expect(link.name).eq("foo"); - expect(link.url).eq("https://example.org"); - }); - - it("adds `foo` issue link", async () => { - const { links } = getTestResultByName(results, "issue"); - const link = links.find(({ type }) => type === LinkType.ISSUE) as Link; - - expect(link.name).eq("foo"); - expect(link.url).eq("https://example.org"); - }); -}); diff --git a/packages/allure-hermione/test/spec/only.test.ts b/packages/allure-hermione/test/spec/only.test.ts deleted file mode 100644 index f347df4bd..000000000 --- a/packages/allure-hermione/test/spec/only.test.ts +++ /dev/null @@ -1,12 +0,0 @@ -import { expect } from "chai"; -import { describe, it } from "mocha"; -import { runHermione } from "../helper/run_helper"; - -describe("only", () => { - it("reports only one spec", async () => { - const { tests: results } = await runHermione(["./test/fixtures/only.js"]); - - expect(results).length(1); - expect(results[0].name).eq("third"); - }); -}); diff --git a/packages/allure-hermione/test/spec/parameters.test.ts b/packages/allure-hermione/test/spec/parameters.test.ts deleted file mode 100644 index 293059f86..000000000 --- a/packages/allure-hermione/test/spec/parameters.test.ts +++ /dev/null @@ -1,19 +0,0 @@ -import { expect } from "chai"; -import { describe, it } from "mocha"; -import { Parameter } from "allure-js-commons"; -import { runHermione } from "../helper/run_helper"; -import { getTestResultByName } from "../runner"; - -describe("parameters", () => { - it("adds `foo` custom parameter", async () => { - const { tests: results } = await runHermione(["./test/fixtures/parameters.js"]); - - const { parameters } = getTestResultByName(results, "custom"); - const parameter = parameters.find(({ name }) => name === "foo") as Parameter; - - expect(parameter.name).eq("foo"); - expect(parameter.value).eq("bar"); - expect(parameter.excluded).eq(false); - expect(parameter.mode).eq("hidden"); - }); -}); diff --git a/packages/allure-hermione/test/spec/skipped.test.ts b/packages/allure-hermione/test/spec/skipped.test.ts deleted file mode 100644 index 1e44ab458..000000000 --- a/packages/allure-hermione/test/spec/skipped.test.ts +++ /dev/null @@ -1,34 +0,0 @@ -import { expect } from "chai"; -import { describe, it } from "mocha"; -import { Stage, Status } from "allure-js-commons"; -import { runHermione } from "../helper/run_helper"; -import { getTestResultByName } from "../runner"; - -describe("skipped", () => { - it("handles natively skipped tests", async () => { - const { tests: results } = await runHermione(["./test/fixtures/skipped.js"]); - - const { status, stage } = getTestResultByName(results, "native"); - - expect(status).eq(Status.SKIPPED); - expect(stage).eq(Stage.FINISHED); - }); - - it("handles natively skipped tests inside suites", async () => { - const { tests: results } = await runHermione(["./test/fixtures/skipped.js"]); - - const { status, stage } = getTestResultByName(results, "suite"); - - expect(status).eq(Status.SKIPPED); - expect(stage).eq(Stage.FINISHED); - }); - - it("handles tests skipped by hermione for specific browsers", async () => { - const { tests: results } = await runHermione(["./test/fixtures/skipped.js"]); - - const { status, stage } = getTestResultByName(results, "browser"); - - expect(status).eq(Status.SKIPPED); - expect(stage).eq(Stage.FINISHED); - }); -}); diff --git a/packages/allure-hermione/test/spec/steps.test.ts b/packages/allure-hermione/test/spec/steps.test.ts deleted file mode 100644 index d9de3375b..000000000 --- a/packages/allure-hermione/test/spec/steps.test.ts +++ /dev/null @@ -1,47 +0,0 @@ -import { expect } from "chai"; -import { describe, it } from "mocha"; -import { Status } from "allure-js-commons"; -import { runHermione } from "../helper/run_helper"; -import { getTestResultByName } from "../runner"; - -describe("steps", () => { - describe("passed steps", () => { - it("adds nested steps", async () => { - const { tests: results } = await runHermione(["./test/fixtures/steps.js"]); - - const { steps, labels } = getTestResultByName(results, "passed"); - const customLabel = labels.find(({ name }) => name === "foo"); - - expect(customLabel!.value).eq("bar"); - expect(steps.length).eq(1); - expect(steps[0].name).eq("first step name"); - expect(steps[0].steps.length).eq(1); - expect(steps[0].steps[0].name).eq("second step name"); - expect(steps[0].steps[0].steps.length).eq(1); - expect(steps[0].steps[0].steps[0].name).eq("third step name"); - }); - }); - - describe("failed steps", () => { - it("fails the test with original step error", async () => { - const { tests: results } = await runHermione(["./test/fixtures/steps.js"]); - - const { status, statusDetails, steps, labels } = getTestResultByName(results, "failed"); - - expect(status).eq(Status.FAILED); - expect(statusDetails.message).eq("foo"); - expect(steps).to.have.length(1); - expect(steps[0].name).eq("first step name"); - expect(steps[0].status).eq(Status.BROKEN); - expect(steps[0].statusDetails.message).eq("foo"); - expect(steps[0].steps.length).eq(1); - expect(steps[0].steps[0].name).eq("second step name"); - expect(steps[0].steps[0].status).eq(Status.BROKEN); - expect(steps[0].steps[0].statusDetails.message).eq("foo"); - expect(steps[0].steps[0].steps.length).eq(1); - expect(steps[0].steps[0].steps[0].name).eq("third step name"); - expect(steps[0].steps[0].steps[0].status).eq(Status.BROKEN); - expect(steps[0].steps[0].steps[0].statusDetails.message).eq("foo"); - }); - }); -}); diff --git a/packages/allure-hermione/test/spec/testCaseId.test.ts b/packages/allure-hermione/test/spec/testCaseId.test.ts deleted file mode 100644 index 8504a7385..000000000 --- a/packages/allure-hermione/test/spec/testCaseId.test.ts +++ /dev/null @@ -1,14 +0,0 @@ -import { expect } from "chai"; -import { describe, it } from "mocha"; -import { runHermione } from "../helper/run_helper"; -import { getTestResultByName } from "../runner"; - -describe("testCaseId", () => { - it("sets custom test case id", async () => { - const { tests: results } = await runHermione(["./test/fixtures/testCaseId.js"]); - - const { testCaseId } = getTestResultByName(results, "testCaseId"); - - expect(testCaseId).eq("foo"); - }); -}); diff --git a/packages/allure-jasmine/package.json b/packages/allure-jasmine/package.json index e0595ef49..3b77cbaf6 100644 --- a/packages/allure-jasmine/package.json +++ b/packages/allure-jasmine/package.json @@ -1,6 +1,6 @@ { "name": "allure-jasmine", - "version": "2.12.2", + "version": "2.13.0", "description": "Allure Jasmine integration", "homepage": "https://allurereport.org/", "repository": { diff --git a/packages/allure-jest/package.json b/packages/allure-jest/package.json index 2c618c444..d8a6c307f 100644 --- a/packages/allure-jest/package.json +++ b/packages/allure-jest/package.json @@ -1,6 +1,6 @@ { "name": "allure-jest", - "version": "2.12.2", + "version": "2.13.0", "description": "Allure Jest integration", "keywords": [ "jest", diff --git a/packages/allure-js-commons/package.json b/packages/allure-js-commons/package.json index 0471dfcbc..7e14d838b 100644 --- a/packages/allure-js-commons/package.json +++ b/packages/allure-js-commons/package.json @@ -1,6 +1,6 @@ { "name": "allure-js-commons", - "version": "2.12.2", + "version": "2.13.0", "description": "Allure JS Commons", "homepage": "https://allurereport.org/", "repository": { diff --git a/packages/allure-js-commons/src/ExecutableItemWrapper.ts b/packages/allure-js-commons/src/ExecutableItemWrapper.ts index 7ea829d0e..d6439204f 100644 --- a/packages/allure-js-commons/src/ExecutableItemWrapper.ts +++ b/packages/allure-js-commons/src/ExecutableItemWrapper.ts @@ -141,7 +141,7 @@ export class ExecutableItemWrapper { // This class is here because of circular dependency with ExecutableItemWrapper export class AllureStep extends ExecutableItemWrapper { constructor( - // eslint-disable-next-line no-shadow + // eslint-disable-next-line @typescript-eslint/no-shadow private readonly stepResult: StepResult, start: number = Date.now(), ) { diff --git a/packages/allure-mocha/package.json b/packages/allure-mocha/package.json index 458892258..5b037e8f6 100644 --- a/packages/allure-mocha/package.json +++ b/packages/allure-mocha/package.json @@ -1,6 +1,6 @@ { "name": "allure-mocha", - "version": "2.12.2", + "version": "2.13.0", "description": "Allure Mocha integration", "keywords": [ "mocha", diff --git a/packages/allure-playwright/package.json b/packages/allure-playwright/package.json index b91ff264f..6689ce00c 100644 --- a/packages/allure-playwright/package.json +++ b/packages/allure-playwright/package.json @@ -1,6 +1,6 @@ { "name": "allure-playwright", - "version": "2.12.2", + "version": "2.13.0", "description": "Allure Playwright integration", "keywords": [ "playwright", diff --git a/packages/allure-vitest/package.json b/packages/allure-vitest/package.json index 60b603e66..15a7eec02 100644 --- a/packages/allure-vitest/package.json +++ b/packages/allure-vitest/package.json @@ -1,6 +1,6 @@ { "name": "allure-vitest", - "version": "2.12.2", + "version": "2.13.0", "description": "Allure Vitest integration", "keywords": [ "vitest", diff --git a/packages/allure-vitest/src/reporter.ts b/packages/allure-vitest/src/reporter.ts index bb8f9aa65..8db1fd0db 100644 --- a/packages/allure-vitest/src/reporter.ts +++ b/packages/allure-vitest/src/reporter.ts @@ -166,8 +166,16 @@ export default class AllureReporter implements Reporter { break; } } - const endTime = task.result ? task.result.startTime + task.result.duration : undefined; + + const actualDuration = task.result + ? Math.max(0, task.file.collectDuration || 0) + + Math.max(0, task.file.setupDuration || 0) + + Math.max(0, task.result?.duration || 0) + + Math.max(0, task.file.environmentLoad || 0) + + Math.max(0, task.file.prepareDuration || 0) + : 0; + test.calculateHistoryId(); - test.endTest(endTime); + test.endTest(task.result.startTime + actualDuration); } } diff --git a/packages/allure-hermione/.idea/vcs.xml b/packages/hermione-allure/.idea/vcs.xml similarity index 100% rename from packages/allure-hermione/.idea/vcs.xml rename to packages/hermione-allure/.idea/vcs.xml diff --git a/packages/allure-hermione/.idea/workspace.xml b/packages/hermione-allure/.idea/workspace.xml similarity index 100% rename from packages/allure-hermione/.idea/workspace.xml rename to packages/hermione-allure/.idea/workspace.xml diff --git a/packages/hermione-allure/README.md b/packages/hermione-allure/README.md new file mode 100644 index 000000000..2d33f53ae --- /dev/null +++ b/packages/hermione-allure/README.md @@ -0,0 +1,241 @@ +# hermione-allure + +> Allure integration for `hermione@^8.x.x` and above + +[Allure Report logo](https://allurereport.org "Allure Report") + +- Learn more about Allure Report at https://allurereport.org +- 📚 [Documentation](https://allurereport.org/docs/) – discover official documentation for Allure Report +- ❓ [Questions and Support](https://github.com/orgs/allure-framework/discussions/categories/questions-support) – get help from the team and community +- 📢 [Official annoucements](https://github.com/orgs/allure-framework/discussions/categories/announcements) – be in touch with the latest updates +- 💬 [General Discussion ](https://github.com/orgs/allure-framework/discussions/categories/general-discussion) – engage in casual conversations, share insights and ideas with the community + +--- + +## Installation + +Use your favorite node package manager to install required packages: + +```shell +npm add -D hermione-allure allure-js-commons +``` + +## Setup + +Add `hermione-allure` field to `plugins` in your `.hermione.conf.js` file: + +```diff +module.exports = { + plugins: { ++ "hermione-allure": { ++ resultsDir: "./allure-results", ++ links: [ ++ { ++ type: "issue", ++ urlTemplate: "https://example.org/issue/%s", ++ }, ++ { ++ type: "tms", ++ urlTemplate: "https://example.org/task/%s", ++ }, ++ ], ++ } + } +} +``` + +## Using allure commands + +The plugin provides custom browser commands which allow to add additional info +inside your tests: + +```javascript +import { expect } from "chai"; +import { allure } from "hermione-allure/runtime"; + +it("my test", async ({ browser, currentTest }) => { + await browser.url("https://www.example.org/"); + await browser.$("#btn").click(); + + const screenshot = await browser.takeScreenshot(); + + await allure(currentTest).attachment(screenshot, "image/png"); + await allure(currentTest).epic("my_epic"); + await allure(currentTest).parameter("parameter_name", "parameter_value", { + mode: "hidden", + excluded: false, + }); + + expect(browser.url).not.eq("https://www.startpage.com/"); +}); +``` + +Don't forget to pass current test id as first argument to command! + +## Supported commands + +### Display name + +Change your test case name on custom value on the fly using `displayName` method: + +```js +import { allure } from "hermione-allure/runtime"; + +it("my test", async ({ currentTest }) => { + await allure(currentTest).displayName("my test custom name"); +}); +``` + +### Description + +Provide description in markdown or html syntax: + +```js +import { allure } from "hermione-allure/runtime"; + +it("my test", async ({ currentTest }) => { + await allure(currentTest).description("my **markdown description**"); + await allure(currentTest).descriptionHtml("

my html description

"); +}); +``` + +### Labels + +Markup you tests with labels using low-level `label` method: + +```js +import { allure } from "hermione-allure/runtime"; + +it("my test", async ({ browser, currentTest }) => { + await allure(currentTest).label("label_name", "label_value"); +}); +``` + +Or using aliases: `id`, `epic`, `feature`, `story`, `suite`, `parentSuite`, `subSuite`, +`owner`, `severity`, `tag`: + +```js +import { allure } from "hermione-allure/runtime"; + +it("my test", async ({ currentTest }) => { + await allure(currentTest).epic("my_epic"); +}); +``` + +### Links + +Add any link by low-level `link` method: + +```js +import { allure } from "hermione-allure/runtime"; + +it("my test", async ({ currentTest }) => { + await allure(currentTest).link("http://example.org", "my_link_name", "my_link_type"); +}); +``` + +Or using aliases: `issue`, `tms`: + +```js +import { allure } from "hermione-allure/runtime"; + +it("my test", async ({ currentTest }) => { + await allure(currentTest).issue("http://example.org", "my_link_name"); + await allure(currentTest).tms("http://example.org", "my_link_name"); +}); +``` + +If you configured links templates you can use shorter syntax of links as well: + +```js +import { allure } from "hermione-allure/runtime"; + +it("my test", async ({ currentTest }) => { + await allure(currentTest).issue("1"); + await allure(currentTest).issue("2", "Issue name"); + await allure(currentTest).tms("1"); + await allure(currentTest).tms("2", "Task name"); +}); +``` + +### Parameters + +Test parameters can be added by `parameter` method: + +```js +import { allure } from "hermione-allure/runtime"; + +it("my test", async ({ currentTest }) => { + await allure(currentTest).parameter("param_name", "param_value", { + excluded: false, + }); +}); +``` + +### Attachments + +Attach any file as string or buffer using `attachment` method: + +```js +import { allure } from "hermione-allure/runtime"; + +it("my test", async ({ currentTest }) => { + await allure(currentTest).attachment(JSON.stringify({ foo: "bar" }), "application/json", "Attachment name"); +}); +``` + +If you want to attach a screenshot generated in tests, you can use the same method: + +```js +import { allure } from "hermione-allure/runtime"; + +it("adds screenshots", async ({ browser, currentTest }) => { + const screenshot = await browser.takeScreenshot(); + + await allure(currentTest).attachment(screenshot, "image/png"); +}); +``` + +### Steps + +The reporter provides `step` method to add steps inside your tests for better structure: + +```js +import { allure } from "hermione-allure/runtime"; + +it("my test", async ({ browser, currentTest }) => { + await allure(currentTest).step("first step name", async () => { + await allure(currentTest).step("second step name", async () => { + await allure(currentTest).step("third step name", async () => { + // all labels and links will be added to the test, not the step + await allure(currentTest).label("foo", "bar"); + // attachments and parameters will be added to the step, not the test + await allure(currentTest).parameter("baz", "qux"); + await allure(currentTest).attachment("attachment content", "text/plain"); + }); + }); + }); +}); +``` + +### Custom history ID + +You can reassign history ID for the test case using `historyId` method: + +```js +import { allure } from "hermione-allure/runtime"; + +it("my test", async ({ currentTest }) => { + await allure(currentTest).historyId("my_history_id"); +}); +``` + +### Custom test case ID + +```js +import { allure } from "hermione-allure/runtime"; + +it("my test", async ({ currentTest }) => { + await allure(currentTest).testCaseId("my_id"); +}); +``` diff --git a/packages/allure-hermione/package.json b/packages/hermione-allure/package.json similarity index 93% rename from packages/allure-hermione/package.json rename to packages/hermione-allure/package.json index 0a6f961bf..d41c91a8e 100644 --- a/packages/allure-hermione/package.json +++ b/packages/hermione-allure/package.json @@ -1,6 +1,6 @@ { - "name": "allure-hermione", - "version": "2.12.2", + "name": "hermione-allure", + "version": "2.13.0", "keywords": [ "hermione", "typescript", @@ -10,7 +10,7 @@ "repository": { "type": "git", "url": "https://github.com/allure-framework/allure-js.git", - "directory": "packages/allure-hermione" + "directory": "packages/hermione-allure" }, "license": "Apache-2.0", "author": { @@ -60,7 +60,7 @@ "eslint-plugin-prefer-arrow": "^1.2.3", "fs-jetpack": "^4.1.0", "glob": "^10.3.5", - "hermione": "^7.1.4", + "hermione": "^8.0.6", "mocha": "^10.2.0", "mocha-multi-reporters": "^1.5.1", "rimraf": "^5.0.1", diff --git a/packages/hermione-allure/src/index.ts b/packages/hermione-allure/src/index.ts new file mode 100644 index 000000000..a85eaedba --- /dev/null +++ b/packages/hermione-allure/src/index.ts @@ -0,0 +1,13 @@ +import Hermione, { Test } from "hermione"; +import { AllureReportOptions } from "./model"; +import { AllureHermioneReporter } from "./reporter"; + +const hermioneAllureReporter = (hermione: Hermione, opts?: AllureReportOptions) => { + if (opts?.enabled === false) { + return; + } + + new AllureHermioneReporter(hermione, opts); +}; + +module.exports = hermioneAllureReporter; diff --git a/packages/hermione-allure/src/model.ts b/packages/hermione-allure/src/model.ts new file mode 100644 index 000000000..e5ec793c8 --- /dev/null +++ b/packages/hermione-allure/src/model.ts @@ -0,0 +1,41 @@ +import { MetadataMessage, Stage, Status, StatusDetails } from "allure-js-commons"; +import { AllureWriter } from "allure-js-commons/dist/src/writers"; + +export type AllureReportOptions = { + enabled?: boolean; + resultsDir?: string; + writer?: AllureWriter; + links?: { + type: string; + urlTemplate: string; + }[]; +}; + +export enum HermioneRuntimeMessageType { + START_STEP = "START_STEP", + END_STEP = "END_STEP", + METADATA = "METADATA", +} + +export type HermioneRuntimeBaseMessage = { + testId: string; +}; + +export type HermioneMetadataMessage = HermioneRuntimeBaseMessage & { + type: HermioneRuntimeMessageType.METADATA; + metadata: MetadataMessage; +}; + +export type HermioneStartStepMessage = HermioneRuntimeBaseMessage & { + type: HermioneRuntimeMessageType.START_STEP; + name: string; +}; + +export type HermioneEndStepMessage = HermioneRuntimeBaseMessage & { + type: HermioneRuntimeMessageType.END_STEP; + status: Status; + stage?: Stage; + statusDetails?: StatusDetails; +}; + +export type HermioneRuntimeMessage = HermioneMetadataMessage | HermioneStartStepMessage | HermioneEndStepMessage; diff --git a/packages/hermione-allure/src/reporter.ts b/packages/hermione-allure/src/reporter.ts new file mode 100644 index 000000000..deaae505a --- /dev/null +++ b/packages/hermione-allure/src/reporter.ts @@ -0,0 +1,297 @@ +import Hermione, { Test } from "hermione"; +import { WorkerProcess } from "hermione/build/src/utils/worker-process"; +import * as os from "node:os"; +import * as process from "node:process"; +import { + AllureRuntime, + AllureStep, + AllureTest, + ContentType, + LabelName, + Link, + Stage, + Status, + allureReportFolder, + getSuitesLabels, + md5, +} from "allure-js-commons"; +import { ALLURE_METADATA_CONTENT_TYPE } from "allure-js-commons/internal"; +import { + AllureReportOptions, + HermioneEndStepMessage, + HermioneMetadataMessage, + HermioneRuntimeMessage, + HermioneRuntimeMessageType, + HermioneStartStepMessage, +} from "./model"; +import { getFileSrcPath, getSuitePath } from "./utils"; + +const hostname = os.hostname(); + +export class AllureHermioneReporter { + hermione: Hermione; + runtime: AllureRuntime; + options: AllureReportOptions; + runningTests: Map = new Map(); + runningSteps: Map = new Map(); + + constructor(hermione: Hermione, opts?: AllureReportOptions) { + this.options = opts || {}; + this.hermione = hermione; + this.runtime = new AllureRuntime({ + resultsDir: allureReportFolder(opts?.resultsDir), + writer: opts?.writer, + }); + this.subscribeToEvents(); + } + + private subscribeToEvents() { + this.hermione.on(this.hermione.events.NEW_WORKER_PROCESS, this.onWorkerProcess.bind(this)); + this.hermione.on(this.hermione.events.TEST_BEGIN, this.onTestBegin.bind(this)); + this.hermione.on(this.hermione.events.TEST_PASS, this.onTestPass.bind(this)); + this.hermione.on(this.hermione.events.TEST_FAIL, this.onTestFail.bind(this)); + this.hermione.on(this.hermione.events.TEST_PENDING, this.onTestPending.bind(this)); + this.hermione.on(this.hermione.events.TEST_END, this.onTestEnd.bind(this)); + } + + private processMetadataLinks(links: Link[]): Link[] { + return links.map((link) => { + // TODO: + // @ts-ignore + const matcher = this.options.links?.find?.(({ type }) => type === link.type); + + // TODO: + if (!matcher || link.url.startsWith("http")) { + return link; + } + + const url = matcher.urlTemplate.replace("%s", link.url); + + return { + ...link, + url, + }; + }); + } + + private applyMetadata(message: HermioneMetadataMessage) { + const currentTest = this.runningTests.get(message.testId); + + if (!currentTest) { + // eslint-disable-next-line no-console + console.error("Can't assign attachment due test has been finished or hasn't been started"); + return; + } + + const currentSteps = this.runningSteps.get(message.testId) || []; + const currentStep = currentSteps[currentSteps.length - 1]; + const currentExecutable = (currentStep || currentTest) as AllureTest | AllureStep; + const { links = [], attachments = [], parameter = [], ...metadata } = message.metadata; + + attachments.forEach((attachment) => { + const attachmentFilename = this.runtime.writeAttachment(attachment.content, attachment.type, attachment.encoding); + + currentExecutable.addAttachment( + attachment.name, + { + contentType: attachment.type, + }, + attachmentFilename, + ); + }); + parameter.forEach((param) => { + currentExecutable.parameter(param.name, param.value, { + excluded: param.excluded, + mode: param.mode, + }); + }); + + currentTest.applyMetadata({ + ...metadata, + links: this.processMetadataLinks(links), + }); + } + + private startAllureTest(test: Test) { + const { ALLURE_HOST_NAME, ALLURE_THREAD_NAME } = process.env; + // @ts-ignore + const thread = (ALLURE_THREAD_NAME || test.sessionId) as string; + const hostnameLabel = ALLURE_HOST_NAME || hostname; + const fileSrcPath = getFileSrcPath(test.file as string); + const testFullTitle = test.fullTitle(); + const currentTest = new AllureTest(this.runtime, Date.now()); + const suites = getSuitePath(test); + + currentTest.name = test.title; + currentTest.fullName = testFullTitle; + currentTest.stage = Stage.RUNNING; + + currentTest.addLabel(LabelName.HOST, hostnameLabel); + currentTest.addLabel(LabelName.LANGUAGE, "javascript"); + currentTest.addLabel(LabelName.FRAMEWORK, "hermione"); + currentTest.addParameter("browser", test.browserId as string); + + if (!currentTest.testCaseId) { + currentTest.testCaseId = md5(`${fileSrcPath}#${testFullTitle}`); + } + + if (thread) { + currentTest.addLabel(LabelName.THREAD, thread); + } + + getSuitesLabels(suites).forEach((label) => { + currentTest.addLabel(label.name, label.value); + }); + + this.runningTests.set(test.id as string, currentTest); + } + + private startAllureStep(message: HermioneStartStepMessage) { + const currentTest = this.runningTests.get(message.testId); + const currentSteps = this.runningSteps.get(message.testId) || []; + const currentExecutable = currentSteps[currentSteps.length - 1] || currentTest; + + if (!currentExecutable) { + // eslint-disable-next-line no-console + console.error("Can't start step because there isn't any running test or step!"); + return; + } + + const currentStep = currentExecutable.startStep(message.name); + + this.runningSteps.set(message.testId, currentSteps.concat(currentStep)); + } + + private endAllureStep(message: HermioneEndStepMessage) { + const currentTest = this.runningTests.get(message.testId); + const currentSteps = this.runningSteps.get(message.testId) || []; + const currentStep = currentSteps.pop(); + + if (!currentStep) { + // eslint-disable-next-line no-console + console.error("There isn't any running step to end!"); + } + + if (message.status !== Status.PASSED) { + currentTest!.status = message.status; + } + + currentStep!.status = message.status; + currentStep!.statusDetails = message.statusDetails!; + currentStep!.stage = message.stage || Stage.FINISHED; + + currentStep!.endStep(Date.now()); + } + + private handleAllureRuntimeMessage(message: HermioneRuntimeMessage) { + switch (message.type) { + case HermioneRuntimeMessageType.METADATA: + this.applyMetadata(message); + break; + case HermioneRuntimeMessageType.START_STEP: + this.startAllureStep(message); + break; + case HermioneRuntimeMessageType.END_STEP: + this.endAllureStep(message); + break; + } + } + + onWorkerProcess(worker: WorkerProcess) { + // eslint-disable-next-line + // @ts-ignore + worker.process.on("message", (message: { contentType?: string; payload: HermioneRuntimeMessage }) => { + if (message.contentType === ALLURE_METADATA_CONTENT_TYPE) { + this.handleAllureRuntimeMessage(message.payload); + } + }); + } + + onTestBegin(test: Test) { + // don't report skipped tests + if (!test.fn) { + return; + } + + // test hasn't been actually started + if (!test.browserId) { + return; + } + + this.startAllureTest(test); + } + + onTestPass(test: Test) { + const currentTest = this.runningTests.get(test.id as string)!; + + currentTest.status = Status.PASSED; + } + + onTestFail(test: Test) { + const currentTest = this.runningTests.get(test.id as string)!; + + // test can be failed due to step execution + if (!currentTest.status) { + currentTest.status = Status.FAILED; + } + + // FIXME: temp solution, fix after https://github.com/gemini-testing/hermione/pull/848 will be released + // @ts-ignore + const { message = "", stack = "", screenshot } = test?.err || {}; + + currentTest.statusDetails = { + message, + trace: stack, + }; + + // @ts-ignore + if (!screenshot) { + return; + } + + const attachmentFilename = this.runtime.writeAttachment(screenshot.base64 as string, ContentType.PNG, "base64"); + + currentTest.addAttachment( + "Screenshot", + { + contentType: ContentType.PNG, + }, + attachmentFilename, + ); + } + + onTestPending(test: Test) { + // don't report skipped tests + if (!test.fn) { + return; + } + + const currentTest = this.runningTests.get(test.id as string)!; + + currentTest.status = Status.SKIPPED; + currentTest.stage = Stage.PENDING; + } + + onTestEnd(test: Test) { + // don't report skipped tests + if (!test.fn) { + return; + } + + const currentTest = this.runningTests.get(test.id as string)!; + + // don't reassign historyId if it already has been set manually + if (!currentTest.historyId) { + currentTest.calculateHistoryId(); + } + + // finish only running tests, skipped ones have pending stage which shouldn't be reassigned + if (currentTest.stage === Stage.RUNNING) { + currentTest.stage = Stage.FINISHED; + } + + currentTest.endTest(Date.now()); + + this.runningTests.delete(test.id as string); + } +} diff --git a/packages/hermione-allure/src/runtime.ts b/packages/hermione-allure/src/runtime.ts new file mode 100644 index 000000000..bc71c3cf2 --- /dev/null +++ b/packages/hermione-allure/src/runtime.ts @@ -0,0 +1,228 @@ +import { Test } from "hermione"; +import * as process from "node:process"; +import { + LabelName, + LinkType, + MetadataMessage, + ParameterOptions, + Stage, + Status, + StatusDetails, +} from "allure-js-commons"; +import { ALLURE_METADATA_CONTENT_TYPE } from "allure-js-commons/internal"; +import { + HermioneEndStepMessage, + HermioneMetadataMessage, + HermioneRuntimeMessageType, + HermioneStartStepMessage, +} from "./model"; + +const processSendAsync = (message: unknown): Promise => { + return new Promise((resolve, reject) => { + process.send?.(message, undefined, undefined, (err) => { + if (err) { + return reject(err); + } + + return resolve(); + }); + }); +}; +const sendMetadataMessage = async (currentTest: Test, metadata: MetadataMessage): Promise => { + await processSendAsync({ + contentType: ALLURE_METADATA_CONTENT_TYPE, + payload: { + type: HermioneRuntimeMessageType.METADATA, + testId: currentTest.id, + metadata, + } as HermioneMetadataMessage, + }); +}; +const startStep = async (currentTest: Test, name: string): Promise => { + await processSendAsync({ + contentType: ALLURE_METADATA_CONTENT_TYPE, + payload: { + type: HermioneRuntimeMessageType.START_STEP, + testId: currentTest.id, + name, + } as HermioneStartStepMessage, + }); +}; +const endStep = async ( + currentTest: Test, + status: Status, + statusDetails?: StatusDetails, + stage?: Stage, +): Promise => { + await processSendAsync({ + contentType: ALLURE_METADATA_CONTENT_TYPE, + payload: { + type: HermioneRuntimeMessageType.END_STEP, + testId: currentTest.id, + status, + stage, + statusDetails, + } as HermioneEndStepMessage, + }); +}; + +export const allure = (currentTest: Test) => ({ + description: async (value: string) => { + await sendMetadataMessage(currentTest, { + description: value, + }); + }, + + descriptionHtml: async (value: string) => { + await sendMetadataMessage(currentTest, { + descriptionHtml: value, + }); + }, + + attachment: async (content: string | Buffer, type: string, name?: string) => { + const isBuffer = Buffer.isBuffer(content); + await sendMetadataMessage(currentTest, { + attachments: [ + { + name: name || "Attachment", + content: isBuffer ? content.toString("base64") : content, + encoding: isBuffer ? "base64" : "utf8", + type, + }, + ], + }); + }, + + parameter: async (name: string, value: any, options?: ParameterOptions) => { + await sendMetadataMessage(currentTest, { + parameter: [{ name, value, ...options }], + }); + }, + + link: async (url: string, name?: string, type?: string) => { + await sendMetadataMessage(currentTest, { + links: [{ name, url, type }], + }); + }, + + issue: async (url: string, name?: string) => { + await sendMetadataMessage(currentTest, { + links: [{ name, url, type: LinkType.ISSUE }], + }); + }, + + tms: async (url: string, name?: string) => { + await sendMetadataMessage(currentTest, { + links: [{ name, url, type: LinkType.TMS }], + }); + }, + + label: async (name: string, value: string) => { + await sendMetadataMessage(currentTest, { + labels: [{ name, value }], + }); + }, + + id: async (value: string) => { + await sendMetadataMessage(currentTest, { + labels: [{ name: LabelName.ALLURE_ID, value }], + }); + }, + + epic: async (value: string) => { + await sendMetadataMessage(currentTest, { + labels: [{ name: LabelName.EPIC, value }], + }); + }, + + feature: async (value: string) => { + await sendMetadataMessage(currentTest, { + labels: [{ name: LabelName.FEATURE, value }], + }); + }, + + story: async (value: string) => { + await sendMetadataMessage(currentTest, { + labels: [{ name: LabelName.STORY, value }], + }); + }, + + suite: async (value: string) => { + await sendMetadataMessage(currentTest, { + labels: [{ name: LabelName.SUITE, value }], + }); + }, + + subSuite: async (value: string) => { + await sendMetadataMessage(currentTest, { + labels: [{ name: LabelName.SUB_SUITE, value }], + }); + }, + + parentSuite: async (value: string) => { + await sendMetadataMessage(currentTest, { + labels: [{ name: LabelName.PARENT_SUITE, value }], + }); + }, + + owner: async (value: string) => { + await sendMetadataMessage(currentTest, { + labels: [{ name: LabelName.OWNER, value }], + }); + }, + + severity: async (value: string) => { + await sendMetadataMessage(currentTest, { + labels: [{ name: LabelName.SEVERITY, value }], + }); + }, + + tag: async (value: string) => { + await sendMetadataMessage(currentTest, { + labels: [{ name: LabelName.TAG, value }], + }); + }, + + layer: async (value: string) => { + await sendMetadataMessage(currentTest, { + labels: [{ name: LabelName.LAYER, value }], + }); + }, + + historyId: async (historyId: string) => { + await sendMetadataMessage(currentTest, { + historyId, + }); + }, + + testCaseId: async (testCaseId: string) => { + await sendMetadataMessage(currentTest, { + testCaseId, + }); + }, + + displayName: async (displayName: string) => { + await sendMetadataMessage(currentTest, { + displayName, + }); + }, + + step: async (name: string, body: () => Promise) => { + await startStep(currentTest, name); + + try { + await body(); + + await endStep(currentTest, Status.PASSED); + } catch (err) { + const stepStatus = /AssertionError/.test((err as object).constructor.name) ? Status.FAILED : Status.BROKEN; + + await endStep(currentTest, stepStatus, { + message: (err as Error).message, + trace: (err as Error).stack, + }); + + throw err; + } + }, +}); diff --git a/packages/allure-hermione/src/utils.ts b/packages/hermione-allure/src/utils.ts similarity index 53% rename from packages/allure-hermione/src/utils.ts rename to packages/hermione-allure/src/utils.ts index 59812e497..a284f9c95 100644 --- a/packages/allure-hermione/src/utils.ts +++ b/packages/hermione-allure/src/utils.ts @@ -1,3 +1,4 @@ +import { Suite, Test } from "hermione"; import { basename } from "path"; import { cwd } from "process"; import { MetadataMessage, ParameterOptions } from "allure-js-commons"; @@ -19,27 +20,27 @@ export const getFileSrcPath = (filePath: string): string => { return filePath.replace(cwd(), baseDir); }; -export const getSuitePath = (test: Hermione.Test): string[] => { +export const getSuitePath = (test: Test): string[] => { const path = []; - let currentSuite = test.parent as Hermione.Suite; + let currentSuite = test.parent as Suite; while (currentSuite) { if (currentSuite.title) { path.unshift(currentSuite.title); } - currentSuite = currentSuite.parent as Hermione.Suite; + currentSuite = currentSuite.parent as Suite; } return path; }; -export const sendMetadata = async (testId: string, metadata: MetadataMessage): Promise => +export const sendMetadata = async (browserId: string, metadata: MetadataMessage): Promise => new Promise((resolve, reject) => { process.send?.( { type: ALLURE_METADATA_CONTENT_TYPE, - testId, + testId: browserId, metadata, }, undefined, @@ -54,58 +55,58 @@ export const sendMetadata = async (testId: string, metadata: MetadataMessage): P ); }); -export const setDisplayName = async (testId: string, displayName: string) => { - await sendMetadata(testId, { +export const setDisplayName = async (browserId: string, displayName: string) => { + await sendMetadata(browserId, { displayName, }); }; -export const setDescription = async (testId: string, description: string) => { - await sendMetadata(testId, { +export const setDescription = async (browserId: string, description: string) => { + await sendMetadata(browserId, { description, }); }; -export const setDescriptionHtml = async (testId: string, descriptionHtml: string) => { - await sendMetadata(testId, { +export const setDescriptionHtml = async (browserId: string, descriptionHtml: string) => { + await sendMetadata(browserId, { descriptionHtml, }); }; -export const setTestCaseId = async (testId: string, testCaseId: string) => { - await sendMetadata(testId, { +export const setTestCaseId = async (browserId: string, testCaseId: string) => { + await sendMetadata(browserId, { testCaseId, }); }; -export const setHistoryId = async (testId: string, historyId: string) => { - await sendMetadata(testId, { +export const setHistoryId = async (browserId: string, historyId: string) => { + await sendMetadata(browserId, { historyId, }); }; -export const addLabel = async (testId: string, name: string, value: string) => { - await sendMetadata(testId, { +export const addLabel = async (browserId: string, name: string, value: string) => { + await sendMetadata(browserId, { labels: [{ name, value }], }); }; -export const addLink = async (testId: string, url: string, name?: string, type?: string) => { - await sendMetadata(testId, { +export const addLink = async (browserId: string, url: string, name?: string, type?: string) => { + await sendMetadata(browserId, { links: [{ name, url, type }], }); }; -export const addParameter = async (testId: string, name: string, value: any, options?: ParameterOptions) => { - await sendMetadata(testId, { +export const addParameter = async (browserId: string, name: string, value: any, options?: ParameterOptions) => { + await sendMetadata(browserId, { parameter: [{ name, value, ...options }], }); }; -export const addAttachment = async (testId: string, content: string | Buffer, type: string) => { +export const addAttachment = async (browserId: string, content: string | Buffer, type: string) => { const isBuffer = Buffer.isBuffer(content); - await sendMetadata(testId, { + await sendMetadata(browserId, { attachments: [ { name: "Attachment", diff --git a/packages/allure-hermione/test/.hermione.conf.js b/packages/hermione-allure/test/.hermione.conf.js similarity index 90% rename from packages/allure-hermione/test/.hermione.conf.js rename to packages/hermione-allure/test/.hermione.conf.js index 2c882ab74..ed0c86805 100644 --- a/packages/allure-hermione/test/.hermione.conf.js +++ b/packages/hermione-allure/test/.hermione.conf.js @@ -11,5 +11,4 @@ module.exports = { }, }, }, - saveHistoryMode: "none", }; diff --git a/packages/allure-hermione/test/runner.ts b/packages/hermione-allure/test/runner.ts similarity index 100% rename from packages/allure-hermione/test/runner.ts rename to packages/hermione-allure/test/runner.ts diff --git a/packages/hermione-allure/test/spec/attachments.test.ts b/packages/hermione-allure/test/spec/attachments.test.ts new file mode 100644 index 000000000..58fb592c0 --- /dev/null +++ b/packages/hermione-allure/test/spec/attachments.test.ts @@ -0,0 +1,24 @@ +import { expect } from "chai"; +import { describe, it } from "mocha"; +import { runHermioneInlineTest } from "../utils"; + +describe("attachments", () => { + it("adds json attachment", async () => { + const { tests, attachments } = await runHermioneInlineTest(` + const { allure } = require("hermione-allure/dist/runtime.js"); + + it("custom", async ({ currentTest }) => { + await allure(currentTest).attachment(JSON.stringify({ foo: "bar" }), "application/json", "foo"); + }); + `); + + expect(tests).length(1); + expect(tests[0].attachments).length(1); + + const [attachment] = tests[0].attachments; + + expect(attachment.name).eq("foo"); + expect(attachment.type).eq("application/json"); + expect(JSON.parse(attachments[attachment.source] as string)).eql({ foo: "bar" }); + }); +}); diff --git a/packages/hermione-allure/test/spec/description.test.ts b/packages/hermione-allure/test/spec/description.test.ts new file mode 100644 index 000000000..7f30a86e6 --- /dev/null +++ b/packages/hermione-allure/test/spec/description.test.ts @@ -0,0 +1,31 @@ +import { expect } from "chai"; +import { describe, it } from "mocha"; +import { runHermioneInlineTest } from "../utils"; + +describe("description", () => { + it("adds `foo` markdown description", async () => { + const { tests, attachments } = await runHermioneInlineTest(` + const { allure } = require("hermione-allure/dist/runtime.js"); + + it("description", async ({ currentTest }) => { + await allure(currentTest).description("foo"); + }); + `); + + expect(tests).length(1); + expect(tests[0].description).eq("foo"); + }); + + it("adds `foo` html description", async () => { + const { tests, attachments } = await runHermioneInlineTest(` + const { allure } = require("hermione-allure/dist/runtime.js"); + + it("description html", async ({ currentTest }) => { + await allure(currentTest).descriptionHtml("foo"); + }); + `); + + expect(tests).length(1); + expect(tests[0].descriptionHtml).eq("foo"); + }); +}); diff --git a/packages/hermione-allure/test/spec/displayName.test.ts b/packages/hermione-allure/test/spec/displayName.test.ts new file mode 100644 index 000000000..36106bc0a --- /dev/null +++ b/packages/hermione-allure/test/spec/displayName.test.ts @@ -0,0 +1,18 @@ +import { expect } from "chai"; +import { describe, it } from "mocha"; +import { runHermioneInlineTest } from "../utils"; + +describe("displayName", () => { + it("sets custom test name", async () => { + const { tests, attachments } = await runHermioneInlineTest(` + const { allure } = require("hermione-allure/dist/runtime.js"); + + it("display name", async ({ currentTest }) => { + await allure(currentTest).displayName("foo"); + }); + `); + + expect(tests).length(1); + expect(tests[0].name).eq("foo"); + }); +}); diff --git a/packages/hermione-allure/test/spec/historyId.test.ts b/packages/hermione-allure/test/spec/historyId.test.ts new file mode 100644 index 000000000..ef39b4472 --- /dev/null +++ b/packages/hermione-allure/test/spec/historyId.test.ts @@ -0,0 +1,18 @@ +import { expect } from "chai"; +import { describe, it } from "mocha"; +import { runHermioneInlineTest } from "../utils"; + +describe("historyId", () => { + it("sets custom history id", async () => { + const { tests, attachments } = await runHermioneInlineTest(` + const { allure } = require("hermione-allure/dist/runtime.js"); + + it("history id", async ({ currentTest }) => { + await allure(currentTest).historyId("foo"); + }); + `); + + expect(tests).length(1); + expect(tests[0].historyId).eq("foo"); + }); +}); diff --git a/packages/hermione-allure/test/spec/hooks.test.ts b/packages/hermione-allure/test/spec/hooks.test.ts new file mode 100644 index 000000000..45412a7ee --- /dev/null +++ b/packages/hermione-allure/test/spec/hooks.test.ts @@ -0,0 +1,35 @@ +import { expect } from "chai"; +import { describe, it } from "mocha"; +import { runHermioneInlineTest } from "../utils"; + +describe("hooks", () => { + it("applies commands from `beforeEach` and `afterEach` for each test", async () => { + const { tests, attachments } = await runHermioneInlineTest(` + const { allure } = require("hermione-allure/dist/runtime.js"); + + describe("hooks", () => { + beforeEach(async ({ currentTest }) => { + await allure(currentTest).label("hook", "before"); + }); + + afterEach(async ({ currentTest }) => { + await allure(currentTest).label("hook", "after"); + }); + + it("first test", () => {}); + + it("second test", () => {}); + + it("third test", () => {}); + }); + `); + + expect(tests).length(3); + tests[0].labels.should.contain.something.like({ name: "hook", value: "before" }); + tests[0].labels.should.contain.something.like({ name: "hook", value: "after" }); + tests[1].labels.should.contain.something.like({ name: "hook", value: "before" }); + tests[1].labels.should.contain.something.like({ name: "hook", value: "after" }); + tests[2].labels.should.contain.something.like({ name: "hook", value: "before" }); + tests[2].labels.should.contain.something.like({ name: "hook", value: "after" }); + }); +}); diff --git a/packages/hermione-allure/test/spec/labels.test.ts b/packages/hermione-allure/test/spec/labels.test.ts new file mode 100644 index 000000000..bf7f9673d --- /dev/null +++ b/packages/hermione-allure/test/spec/labels.test.ts @@ -0,0 +1,161 @@ +import { expect } from "chai"; +import { LabelName } from "allure-js-commons"; +import { runHermioneInlineTest } from "../utils"; + +describe("labels", () => { + it("adds `foo` custom label", async () => { + const { tests } = await runHermioneInlineTest(` + const { allure } = require("hermione-allure/dist/runtime.js"); + + it("custom", async ({ currentTest }) => { + await allure(currentTest).label("foo", "bar"); + }); + `); + + expect(tests).length(1); + tests[0].labels.should.contain.something.like({ name: "foo", value: "bar" }); + }); + + it("adds `42` allureId label", async () => { + const { tests } = await runHermioneInlineTest(` + const { allure } = require("hermione-allure/dist/runtime.js"); + + it("allureId", async ({ currentTest }) => { + await allure(currentTest).id("42"); + }); + `); + + expect(tests).length(1); + tests[0].labels.should.contain.something.like({ name: LabelName.ALLURE_ID, value: "42" }); + }); + + it("adds `foo` epic label", async () => { + const { tests } = await runHermioneInlineTest(` + const { allure } = require("hermione-allure/dist/runtime.js"); + + it("epic", async ({ currentTest }) => { + await allure(currentTest).epic("foo"); + }); + `); + + expect(tests).length(1); + tests[0].labels.should.contain.something.like({ name: LabelName.EPIC, value: "foo" }); + }); + + it("adds `foo` feature label", async () => { + const { tests } = await runHermioneInlineTest(` + const { allure } = require("hermione-allure/dist/runtime.js"); + + it("feature", async ({ currentTest }) => { + await allure(currentTest).feature("foo"); + }); + `); + + expect(tests).length(1); + tests[0].labels.should.contain.something.like({ name: LabelName.FEATURE, value: "foo" }); + }); + + it("adds `foo` story label", async () => { + const { tests } = await runHermioneInlineTest(` + const { allure } = require("hermione-allure/dist/runtime.js"); + + it("story", async ({ currentTest }) => { + await allure(currentTest).story("foo"); + }); + `); + + expect(tests).length(1); + tests[0].labels.should.contain.something.like({ name: LabelName.STORY, value: "foo" }); + }); + + it("adds `foo` suite label", async () => { + const { tests } = await runHermioneInlineTest(` + const { allure } = require("hermione-allure/dist/runtime.js"); + + it("suite", async ({ currentTest }) => { + await allure(currentTest).suite("foo"); + }); + `); + + expect(tests).length(1); + tests[0].labels.should.contain.something.like({ name: LabelName.SUITE, value: "foo" }); + }); + + it("adds `foo` parentSuite label", async () => { + const { tests } = await runHermioneInlineTest(` + const { allure } = require("hermione-allure/dist/runtime.js"); + + it("parentSuite", async ({ currentTest }) => { + await allure(currentTest).parentSuite("foo"); + }); + `); + + expect(tests).length(1); + tests[0].labels.should.contain.something.like({ name: LabelName.PARENT_SUITE, value: "foo" }); + }); + + it("adds `foo` subSuite label", async () => { + const { tests } = await runHermioneInlineTest(` + const { allure } = require("hermione-allure/dist/runtime.js"); + + it("subSuite", async ({ currentTest }) => { + await allure(currentTest).subSuite("foo"); + }); + `); + + expect(tests).length(1); + tests[0].labels.should.contain.something.like({ name: LabelName.SUB_SUITE, value: "foo" }); + }); + + it("adds `foo` owner label", async () => { + const { tests } = await runHermioneInlineTest(` + const { allure } = require("hermione-allure/dist/runtime.js"); + + it("owner", async ({ currentTest }) => { + await allure(currentTest).owner("foo"); + }); + `); + + expect(tests).length(1); + tests[0].labels.should.contain.something.like({ name: LabelName.OWNER, value: "foo" }); + }); + + it("adds `foo` severity label", async () => { + const { tests } = await runHermioneInlineTest(` + const { allure } = require("hermione-allure/dist/runtime.js"); + + it("severity", async ({ currentTest }) => { + await allure(currentTest).severity("foo"); + }); + `); + + expect(tests).length(1); + tests[0].labels.should.contain.something.like({ name: LabelName.SEVERITY, value: "foo" }); + }); + + it("adds `foo` tag label", async () => { + const { tests } = await runHermioneInlineTest(` + const { allure } = require("hermione-allure/dist/runtime.js"); + + it("tag", async ({ currentTest }) => { + await allure(currentTest).tag("foo"); + }); + `); + + expect(tests).length(1); + tests[0].labels.should.contain.something.like({ name: LabelName.TAG, value: "foo" }); + }); + + it("adds `foo` layer label", async () => { + const { tests } = await runHermioneInlineTest(` + const { allure } = require("hermione-allure/dist/runtime.js"); + + it("layer", async ({ currentTest }) => { + await allure(currentTest).layer("foo"); + }); + `); + + expect(tests).length(1); + tests[0].labels.should.contain.something.like({ name: LabelName.LAYER, value: "foo" }); + }); +}); diff --git a/packages/hermione-allure/test/spec/links.test.ts b/packages/hermione-allure/test/spec/links.test.ts new file mode 100644 index 000000000..53a2afe3a --- /dev/null +++ b/packages/hermione-allure/test/spec/links.test.ts @@ -0,0 +1,70 @@ +import { expect } from "chai"; +import { LinkType } from "allure-js-commons"; +import { runHermioneInlineTest } from "../utils"; + +describe("links", () => { + it("adds `bar` custom link", async () => { + const { tests } = await runHermioneInlineTest(` + const { allure } = require("hermione-allure/dist/runtime.js"); + + it("custom", async ({ currentTest }) => { + await allure(currentTest).link("https://example.org", "bar", "foo"); + }); + `); + + expect(tests).length(1); + tests[0].links.should.contain.something.like({ name: "bar", url: "https://example.org", type: "foo" }); + }); + + it("adds `foo` tms link", async () => { + const { tests } = await runHermioneInlineTest(` + const { allure } = require("hermione-allure/dist/runtime.js"); + + it("tms", async ({ currentTest }) => { + await allure(currentTest).tms("https://example.org", "foo"); + await allure(currentTest).tms("1", "bar"); + await allure(currentTest).tms("2", "baz"); + }); + `); + + expect(tests).length(1); + expect(tests[0].links).length(3); + tests[0].links.should.contain.something.like({ name: "foo", url: "https://example.org", type: LinkType.TMS }); + tests[0].links.should.contain.something.like({ + name: "bar", + url: "https://example.org/task/1", + type: LinkType.TMS, + }); + tests[0].links.should.contain.something.like({ + name: "baz", + url: "https://example.org/task/2", + type: LinkType.TMS, + }); + }); + + it("adds `foo` issue link", async () => { + const { tests } = await runHermioneInlineTest(` + const { allure } = require("hermione-allure/dist/runtime.js"); + + it("issue", async ({ currentTest }) => { + await allure(currentTest).issue("https://example.org", "foo"); + await allure(currentTest).issue("1", "bar"); + await allure(currentTest).issue("2", "baz"); + }); + `); + + expect(tests).length(1); + expect(tests[0].links).length(3); + tests[0].links.should.contain.something.like({ name: "foo", url: "https://example.org", type: LinkType.ISSUE }); + tests[0].links.should.contain.something.like({ + name: "bar", + url: "https://example.org/issue/1", + type: LinkType.ISSUE, + }); + tests[0].links.should.contain.something.like({ + name: "baz", + url: "https://example.org/issue/2", + type: LinkType.ISSUE, + }); + }); +}); diff --git a/packages/hermione-allure/test/spec/only.test.ts b/packages/hermione-allure/test/spec/only.test.ts new file mode 100644 index 000000000..ac159c67f --- /dev/null +++ b/packages/hermione-allure/test/spec/only.test.ts @@ -0,0 +1,18 @@ +import { expect } from "chai"; +import { describe, it } from "mocha"; +import { runHermioneInlineTest } from "../utils"; + +describe("only", () => { + it("reports only one spec", async () => { + const { tests, attachments } = await runHermioneInlineTest(` + it("first", () => {}); + + it("second", () => {}); + + it.only("third", () => {}); + `); + + expect(tests).length(1); + expect(tests[0].name).eq("third"); + }); +}); diff --git a/packages/hermione-allure/test/spec/parameters.test.ts b/packages/hermione-allure/test/spec/parameters.test.ts new file mode 100644 index 000000000..d2cd2598b --- /dev/null +++ b/packages/hermione-allure/test/spec/parameters.test.ts @@ -0,0 +1,26 @@ +import { expect } from "chai"; +import { describe, it } from "mocha"; +import { runHermioneInlineTest } from "../utils"; + +describe("parameters", () => { + it("adds `foo` custom parameter", async () => { + const { tests, attachments } = await runHermioneInlineTest(` + const { allure } = require("hermione-allure/dist/runtime.js"); + + it("parameter", async ({ currentTest }) => { + await allure(currentTest).parameter("foo", "bar", { + excluded: false, + mode: "hidden", + }); + }); + `); + + expect(tests).length(1); + tests[0].parameters.should.contain.something.like({ + name: "foo", + value: "bar", + excluded: false, + mode: "hidden", + }); + }); +}); diff --git a/packages/hermione-allure/test/spec/skipped.test.ts b/packages/hermione-allure/test/spec/skipped.test.ts new file mode 100644 index 000000000..f60bc6359 --- /dev/null +++ b/packages/hermione-allure/test/spec/skipped.test.ts @@ -0,0 +1,37 @@ +import { expect } from "chai"; +import { describe, it } from "mocha"; +import { Stage, Status } from "allure-js-commons"; +import { runHermioneInlineTest } from "../utils"; + +describe("skipped", () => { + it("doesn't report skipped tests", async () => { + const { tests, attachments } = await runHermioneInlineTest(` + it.skip("native", () => {}); + `); + + expect(tests).length(0); + }); + + it("doesn't report skipped suites", async () => { + const { tests, attachments } = await runHermioneInlineTest(` + describe.skip("native", () => { + it("is skipped", () => {}); + }); + `); + + expect(tests).length(0); + }); + + it("reports programatically skipped tests for specific browsers", async () => { + const { tests, attachments } = await runHermioneInlineTest(` + describe("skipped", () => { + hermione.skip.in("headless"); + it("browser", () => {}); + }); + `); + + expect(tests).length(1); + expect(tests[0].stage).eq(Stage.PENDING); + expect(tests[0].status).eq(Status.SKIPPED); + }); +}); diff --git a/packages/hermione-allure/test/spec/steps.test.ts b/packages/hermione-allure/test/spec/steps.test.ts new file mode 100644 index 000000000..9fde05ccd --- /dev/null +++ b/packages/hermione-allure/test/spec/steps.test.ts @@ -0,0 +1,245 @@ +import { expect } from "chai"; +import { describe, it } from "mocha"; +import { Stage, Status } from "allure-js-commons"; +import { runHermioneInlineTest } from "../utils"; + +describe("steps", () => { + it("reports single passed step", async () => { + const { tests } = await runHermioneInlineTest(` + const { allure } = require("hermione-allure/dist/runtime.js"); + + it("foo", async ({ currentTest }) => { + await allure(currentTest).step("foo", async () => {}); + }); + `); + + expect(tests).length(1); + tests.should.contain.something.like({ + status: Status.PASSED, + }); + expect(tests[0].steps).length(1); + tests[0].steps.should.contain.something.like({ + name: "foo", + status: Status.PASSED, + stage: Stage.FINISHED, + }); + }); + + it("reports multiple sibling steps", async () => { + const { tests } = await runHermioneInlineTest(` + const { allure } = require("hermione-allure/dist/runtime.js"); + + it("foo", async ({ currentTest }) => { + await allure(currentTest).step("foo", async () => {}); + await allure(currentTest).step("bar", async () => {}); + await allure(currentTest).step("baz", async () => {}); + }); + `); + + expect(tests).length(1); + tests.should.contain.something.like({ + status: Status.PASSED, + }); + expect(tests[0].steps).length(3); + tests[0].steps.should.contain.something.like({ + name: "foo", + status: Status.PASSED, + stage: Stage.FINISHED, + }); + tests[0].steps.should.contain.something.like({ + name: "bar", + status: Status.PASSED, + stage: Stage.FINISHED, + }); + tests[0].steps.should.contain.something.like({ + name: "baz", + status: Status.PASSED, + stage: Stage.FINISHED, + }); + }); + + it("reports nested passed steps", async () => { + const { tests } = await runHermioneInlineTest(` + const { allure } = require("hermione-allure/dist/runtime.js"); + + it("foo", async ({ currentTest }) => { + await allure(currentTest).step("foo", async () => { + await allure(currentTest).step("bar", async () => { + await allure(currentTest).step("baz", async () => {}); + }); + }); + }); + `); + + expect(tests).length(1); + tests.should.contain.something.like({ + status: Status.PASSED, + }); + expect(tests[0].steps).length(1); + tests[0].steps.should.contain.something.like({ + name: "foo", + status: Status.PASSED, + stage: Stage.FINISHED, + }); + expect(tests[0].steps[0].steps).length(1); + tests[0].steps[0].steps.should.contain.something.like({ + name: "bar", + status: Status.PASSED, + stage: Stage.FINISHED, + }); + expect(tests[0].steps[0].steps[0].steps).length(1); + tests[0].steps[0].steps[0].steps.should.contain.something.like({ + name: "baz", + status: Status.PASSED, + stage: Stage.FINISHED, + }); + }); + + it("reports steps with failed assertion", async () => { + const { tests } = await runHermioneInlineTest(` + const { allure } = require("hermione-allure/dist/runtime.js"); + + it("foo", async ({ currentTest }) => { + await allure(currentTest).step("foo", async () => { + await allure(currentTest).step("bar", async () => { + await allure(currentTest).step("baz", async () => { + expect(1).toBe(2); + }); + }); + }); + }); + `); + + expect(tests).length(1); + tests.should.contain.something.like({ + status: Status.FAILED, + }); + expect(tests[0].steps).length(1); + tests[0].steps.should.contain.something.like({ + name: "foo", + status: Status.FAILED, + stage: Stage.FINISHED, + }); + expect(tests[0].steps[0].steps).length(1); + tests[0].steps[0].steps.should.contain.something.like({ + name: "bar", + status: Status.FAILED, + stage: Stage.FINISHED, + }); + expect(tests[0].steps[0].steps[0].steps).length(1); + tests[0].steps[0].steps[0].steps.should.contain.something.like({ + name: "baz", + status: Status.FAILED, + stage: Stage.FINISHED, + }); + }); + + it("reports steps with unexpected error", async () => { + const { tests } = await runHermioneInlineTest(` + const { allure } = require("hermione-allure/dist/runtime.js"); + + it("foo", async ({ currentTest }) => { + await allure(currentTest).step("foo", async () => { + await allure(currentTest).step("bar", async () => { + await allure(currentTest).step("baz", async () => { + throw new Error("Unexpected error"); + }); + }); + }); + }); + `); + + expect(tests).length(1); + tests.should.contain.something.like({ + status: Status.BROKEN, + }); + expect(tests[0].steps).length(1); + tests[0].steps.should.contain.something.like({ + name: "foo", + status: Status.BROKEN, + stage: Stage.FINISHED, + }); + expect(tests[0].steps[0].steps).length(1); + tests[0].steps[0].steps.should.contain.something.like({ + name: "bar", + status: Status.BROKEN, + stage: Stage.FINISHED, + }); + expect(tests[0].steps[0].steps[0].steps).length(1); + tests[0].steps[0].steps[0].steps.should.contain.something.like({ + name: "baz", + status: Status.BROKEN, + stage: Stage.FINISHED, + }); + }); + + it("adds attachments to current step not test", async () => { + const { tests, attachments } = await runHermioneInlineTest(` + const { allure } = require("hermione-allure/dist/runtime.js"); + + it("foo", async ({ currentTest }) => { + await allure(currentTest).step("foo", async () => { + await allure(currentTest).attachment("foo", "text/plain", "attachment name"); + }); + }); + `); + + expect(tests).length(1); + expect(tests[0].attachments).length(0); + expect(tests[0].steps).length(1); + expect(tests[0].steps[0].attachments).length(1); + + const [attachment] = tests[0].steps[0].attachments; + + expect(attachment.name).eq("attachment name"); + expect(attachment.type).eq("text/plain"); + expect(attachments).has.property(attachment.source); + expect(attachments[attachment.source]).eq("foo"); + }); + + it("applies labels, links to test", async () => { + const { tests } = await runHermioneInlineTest(` + const { allure } = require("hermione-allure/dist/runtime.js"); + + it("foo", async ({ currentTest }) => { + await allure(currentTest).step("foo", async () => { + await allure(currentTest).label("foo", "bar"); + await allure(currentTest).link("http://example.com", "example"); + }); + }); + `); + + expect(tests).length(1); + tests[0].labels.should.contain.something.like({ + name: "foo", + value: "bar", + }); + tests[0].links.should.contain.something.like({ + url: "http://example.com", + name: "example", + }); + }); + + it("applies parameters to step not to test", async () => { + const { tests } = await runHermioneInlineTest(` + const { allure } = require("hermione-allure/dist/runtime.js"); + + it("foo", async ({ currentTest }) => { + await allure(currentTest).step("foo", async () => { + await allure(currentTest).parameter("foo", "bar"); + }); + }); + `); + + expect(tests).length(1); + tests[0].parameters.should.not.contain.something.like({ + name: "foo", + value: "bar", + }); + expect(tests[0].steps).length(1); + tests[0].steps[0].parameters.should.contain.something.like({ + name: "foo", + value: "bar", + }); + }); +}); diff --git a/packages/hermione-allure/test/spec/testCaseId.test.ts b/packages/hermione-allure/test/spec/testCaseId.test.ts new file mode 100644 index 000000000..65f3cb16c --- /dev/null +++ b/packages/hermione-allure/test/spec/testCaseId.test.ts @@ -0,0 +1,18 @@ +import { expect } from "chai"; +import { describe, it } from "mocha"; +import { runHermioneInlineTest } from "../utils"; + +describe("testCaseId", () => { + it("sets custom test case id", async () => { + const { tests, attachments } = await runHermioneInlineTest(` + const { allure } = require("hermione-allure/dist/runtime.js"); + + it("test case id", async ({ currentTest }) => { + await allure(currentTest).testCaseId("foo"); + }); + `); + + expect(tests).length(1); + expect(tests[0].testCaseId).eq("foo"); + }); +}); diff --git a/packages/allure-hermione/test/tsconfig.json b/packages/hermione-allure/test/tsconfig.json similarity index 100% rename from packages/allure-hermione/test/tsconfig.json rename to packages/hermione-allure/test/tsconfig.json diff --git a/packages/allure-hermione/test/types.ts b/packages/hermione-allure/test/types.ts similarity index 100% rename from packages/allure-hermione/test/types.ts rename to packages/hermione-allure/test/types.ts diff --git a/packages/hermione-allure/test/utils.ts b/packages/hermione-allure/test/utils.ts new file mode 100644 index 000000000..30f8e0da6 --- /dev/null +++ b/packages/hermione-allure/test/utils.ts @@ -0,0 +1,47 @@ +import Hermione from "hermione"; +import { randomUUID } from "node:crypto"; +import { mkdir, rm, writeFile } from "node:fs/promises"; +import { join } from "node:path"; +import { InMemoryAllureWriter } from "allure-js-commons"; + +export const runHermioneInlineTest = async (test: string) => { + const testDir = join(__dirname, "fixtures", randomUUID()); + const testFilePath = join(testDir, "sample.test.js"); + + await mkdir(testDir, { recursive: true }); + await writeFile(testFilePath, test, "utf8"); + + const writer = new InMemoryAllureWriter(); + const hermione = new Hermione("./test/.hermione.conf.js"); + // eslint-disable-next-line + const hermioneAllure = require("hermione-allure"); + + hermioneAllure(hermione, { + writer, + links: [ + { + type: "issue", + urlTemplate: "https://example.org/issue/%s", + }, + { + type: "tms", + urlTemplate: "https://example.org/task/%s", + }, + ], + }); + + try { + await hermione.run([testDir]); + } catch (err) { + // eslint-disable-next-line no-console + console.error(err); + } finally { + await rm(testDir, { recursive: true }); + } + + return { + tests: writer.tests, + groups: writer.groups, + attachments: writer.attachments, + }; +}; diff --git a/packages/allure-hermione/tsconfig.json b/packages/hermione-allure/tsconfig.json similarity index 100% rename from packages/allure-hermione/tsconfig.json rename to packages/hermione-allure/tsconfig.json diff --git a/packages/newman-reporter-allure/package.json b/packages/newman-reporter-allure/package.json index e045c52e6..52a293d5a 100644 --- a/packages/newman-reporter-allure/package.json +++ b/packages/newman-reporter-allure/package.json @@ -1,6 +1,6 @@ { "name": "newman-reporter-allure", - "version": "2.12.2", + "version": "2.13.0", "description": "Allure Newman integration", "keywords": [ "allure", diff --git a/yarn.lock b/yarn.lock index a78b8973d..71da1184a 100644 --- a/yarn.lock +++ b/yarn.lock @@ -431,15 +431,6 @@ __metadata: languageName: node linkType: hard -"@babel/runtime@npm:^7.21.0": - version: 7.22.15 - resolution: "@babel/runtime@npm:7.22.15" - dependencies: - regenerator-runtime: ^0.14.0 - checksum: 793296df1e41599a935a3d77ec01eb6088410d3fd4dbe4e92f06c6b7bb2f8355024e6d78621a3a35f44e0e23b0b59107f23d585384df4f3123256a1e1492040e - languageName: node - linkType: hard - "@babel/template@npm:^7.22.15, @babel/template@npm:^7.22.5, @babel/template@npm:^7.3.3": version: 7.22.15 resolution: "@babel/template@npm:7.22.15" @@ -1980,6 +1971,15 @@ __metadata: languageName: node linkType: hard +"@types/chalk@npm:2.2.0": + version: 2.2.0 + resolution: "@types/chalk@npm:2.2.0" + dependencies: + chalk: "*" + checksum: 846437590d0bf0026d8c2f454e5d91a486becfabde61c0441025e791a0fed75304e143717bc4d025569394dcce5a32f2c53d97253d0c735ac1abae63f1b25c3e + languageName: node + linkType: hard + "@types/cookie@npm:^0.4.1": version: 0.4.1 resolution: "@types/cookie@npm:0.4.1" @@ -2136,7 +2136,7 @@ __metadata: languageName: node linkType: hard -"@types/mocha@npm:^10.0.1": +"@types/mocha@npm:10.0.1, @types/mocha@npm:^10.0.1": version: 10.0.1 resolution: "@types/mocha@npm:10.0.1" checksum: 224ea9fce7b1734ccdb9aa99a622d902a538ce1847bca7fd22c5fb38adcf3ed536f50f48f587085db988a4bb3c2eb68f4b98e1cd6a38bc5547bd3bbbedc54495 @@ -2501,39 +2501,54 @@ __metadata: languageName: node linkType: hard -"@wdio/config@npm:8.12.1": - version: 8.12.1 - resolution: "@wdio/config@npm:8.12.1" +"@wdio/config@npm:8.16.7": + version: 8.16.7 + resolution: "@wdio/config@npm:8.16.7" dependencies: "@wdio/logger": 8.11.0 - "@wdio/types": 8.10.4 - "@wdio/utils": 8.12.1 + "@wdio/types": 8.16.7 + "@wdio/utils": 8.16.7 decamelize: ^6.0.0 deepmerge-ts: ^5.0.0 glob: ^10.2.2 import-meta-resolve: ^3.0.0 - read-pkg-up: ^9.1.0 - checksum: 8843450d9219ff71800b8699abd7e9291e37eb87275b22a51e4c925b3d2728148913728cb673285982ad02205ad2029e0af7ab98b38b1a53a830408d78affc20 + read-pkg-up: ^10.0.0 + checksum: 3eeaccfb8876c54101ad6d3c122e07d4e60dd3c69a9596b3b24333804835af60103bfa660c0d784dd1444263771a003879787eba3030f1179433b5330697a0a3 languageName: node linkType: hard -"@wdio/config@npm:8.16.7": - version: 8.16.7 - resolution: "@wdio/config@npm:8.16.7" +"@wdio/config@npm:8.21.0": + version: 8.21.0 + resolution: "@wdio/config@npm:8.21.0" dependencies: - "@wdio/logger": 8.11.0 - "@wdio/types": 8.16.7 - "@wdio/utils": 8.16.7 + "@wdio/logger": 8.16.17 + "@wdio/types": 8.21.0 + "@wdio/utils": 8.21.0 decamelize: ^6.0.0 deepmerge-ts: ^5.0.0 glob: ^10.2.2 import-meta-resolve: ^3.0.0 read-pkg-up: ^10.0.0 - checksum: 3eeaccfb8876c54101ad6d3c122e07d4e60dd3c69a9596b3b24333804835af60103bfa660c0d784dd1444263771a003879787eba3030f1179433b5330697a0a3 + checksum: ea79ea9ef86fc9463d0b0ea521ac01ff8023c40a1f5d18734f2c901fc669387a53cba732e00117190383842c18322efad13f882ae6c986acb8d5596454ed72e6 languageName: node linkType: hard -"@wdio/globals@npm:^8.16.7, @wdio/globals@npm:^8.5.7": +"@wdio/globals@npm:8.21.0": + version: 8.21.0 + resolution: "@wdio/globals@npm:8.21.0" + dependencies: + expect-webdriverio: ^4.2.5 + webdriverio: 8.21.0 + dependenciesMeta: + expect-webdriverio: + optional: true + webdriverio: + optional: true + checksum: be74f11f2bf4e0738143316cd6d99bf2de9ac28b28f4194d9ca53c99f45e04f4676a04890b473cd060b647231702334e5beb2a297373d589ff0da61fb96bf488 + languageName: node + linkType: hard + +"@wdio/globals@npm:^8.16.7": version: 8.16.7 resolution: "@wdio/globals@npm:8.16.7" dependencies: @@ -2572,10 +2587,15 @@ __metadata: languageName: node linkType: hard -"@wdio/protocols@npm:8.11.0": - version: 8.11.0 - resolution: "@wdio/protocols@npm:8.11.0" - checksum: 68dc353c8bfb0585773a12f049d0b70073715399317398a4014cc05adb806aa7fe9649c305a90153da4d7f23338fe22a22ffe8d9c6d2e5ff261f3ec5d729d76d +"@wdio/logger@npm:8.16.17": + version: 8.16.17 + resolution: "@wdio/logger@npm:8.16.17" + dependencies: + chalk: ^5.1.2 + loglevel: ^1.6.0 + loglevel-plugin-prefix: ^0.8.4 + strip-ansi: ^7.1.0 + checksum: 162da3205eaf636adca8a2e1a74438a3d87b797c0a62fdcc1decd9d0a818dda195532f728c7f78b80857dd1eac3be6d58fe8079b028872055c428b5d59e96386 languageName: node linkType: hard @@ -2586,6 +2606,13 @@ __metadata: languageName: node linkType: hard +"@wdio/protocols@npm:8.20.4": + version: 8.20.4 + resolution: "@wdio/protocols@npm:8.20.4" + checksum: 5d7a2774f8fd1765515c99af7ae27ecedca72d865ac4204e274bb27e1af1eb4ed5505d6fa490cf6cb06ae95480f0101f07c76cd699b7abba932d81741d8bb238 + languageName: node + linkType: hard + "@wdio/repl@npm:8.10.1": version: 8.10.1 resolution: "@wdio/repl@npm:8.10.1" @@ -2595,9 +2622,9 @@ __metadata: languageName: node linkType: hard -"@wdio/types@npm:7.30.2": - version: 7.30.2 - resolution: "@wdio/types@npm:7.30.2" +"@wdio/types@npm:7.26.0": + version: 7.26.0 + resolution: "@wdio/types@npm:7.26.0" dependencies: "@types/node": ^18.0.0 got: ^11.8.1 @@ -2606,37 +2633,36 @@ __metadata: peerDependenciesMeta: typescript: optional: true - checksum: 3f547927eaccc907cb64b0a937ae5e84f3f11bb735c03718981bf134cb73c074d5b80984cc911704bbfbc6638e28ea1699b32407bbc888eb98c89df6a074d676 + checksum: 686b5a6656e1303ae63d440bb53fbd6ff60544793c2532fd6aeee7cc066436b1e9508811826004fb976762eb94b17719466610a78738c1c9f925b9813109e76f languageName: node linkType: hard -"@wdio/types@npm:8.10.4": - version: 8.10.4 - resolution: "@wdio/types@npm:8.10.4" +"@wdio/types@npm:8.16.7": + version: 8.16.7 + resolution: "@wdio/types@npm:8.16.7" dependencies: "@types/node": ^20.1.0 - checksum: 57c9e1513627453643d008ec9d0dd365e8342ade7a58516672d149ddde5a142f9e09e9224944e712956b6f27ac478ed17fadb4f0a9d1d498e8cba356e3dd976c + checksum: ac1aeeac85935319e8b87241574db0c19905c4c706205a81a33fa66a67e01a76fec4e0af96df7c160a17351de180c7f3eceaed6b1fc9d543f4533257577605fe languageName: node linkType: hard -"@wdio/types@npm:8.16.7, @wdio/types@npm:^8.4.0": - version: 8.16.7 - resolution: "@wdio/types@npm:8.16.7" +"@wdio/types@npm:8.21.0": + version: 8.21.0 + resolution: "@wdio/types@npm:8.21.0" dependencies: "@types/node": ^20.1.0 - checksum: ac1aeeac85935319e8b87241574db0c19905c4c706205a81a33fa66a67e01a76fec4e0af96df7c160a17351de180c7f3eceaed6b1fc9d543f4533257577605fe + checksum: 0c81e467d95cc6e630f5db2a348d4ec3b515edc03c37a1b0942bd02ceff7bda55e21f5a35221c559bb46c2d45e33ea8c99407f96ee312c55e61969030af75956 languageName: node linkType: hard -"@wdio/utils@npm:8.12.1": - version: 8.12.1 - resolution: "@wdio/utils@npm:8.12.1" +"@wdio/utils@npm:7.26.0": + version: 7.26.0 + resolution: "@wdio/utils@npm:7.26.0" dependencies: - "@wdio/logger": 8.11.0 - "@wdio/types": 8.10.4 - import-meta-resolve: ^3.0.0 + "@wdio/logger": 7.26.0 + "@wdio/types": 7.26.0 p-iteration: ^1.1.8 - checksum: f5e4ffc5097b59bee6e913c6369a7c7e7e99700a7392ff400eddfffd82a2f2f70b148fff4d866bab39a530eac441f683921a38b2fff0d427b4b720b840ee6aa7 + checksum: 889140c54bb34844ab66dc2c4e058b845c62ba9a22c053d7c9e3f3571b2d1467f36787b915b5fa4747995351c26900cf9cae0168cbd7b356f622090bf2546242 languageName: node linkType: hard @@ -2661,14 +2687,25 @@ __metadata: languageName: node linkType: hard -"@wdio/utils@npm:^7.26.0": - version: 7.30.2 - resolution: "@wdio/utils@npm:7.30.2" +"@wdio/utils@npm:8.21.0": + version: 8.21.0 + resolution: "@wdio/utils@npm:8.21.0" dependencies: - "@wdio/logger": 7.26.0 - "@wdio/types": 7.30.2 - p-iteration: ^1.1.8 - checksum: d41672c0dbc185995cf614edf19fcebb4406e4e3cf59ab20c56e13936f9048f1fb5dd62d35e4dff8cf4953fa5d927b918e3d2bb859785255c5f7d142d7e09508 + "@puppeteer/browsers": ^1.6.0 + "@wdio/logger": 8.16.17 + "@wdio/types": 8.21.0 + decamelize: ^6.0.0 + deepmerge-ts: ^5.1.0 + edgedriver: ^5.3.5 + geckodriver: ^4.2.0 + get-port: ^7.0.0 + got: ^13.0.0 + import-meta-resolve: ^3.0.0 + locate-app: ^2.1.0 + safaridriver: ^0.1.0 + split2: ^4.2.0 + wait-port: ^1.0.4 + checksum: 9a0287594818bfa59e150f4adf23bce3f03c1a4fdf254b8b396364cf9c50ee764ae0548dd4b4a27b39454978be512a1a457435a1a05a354e713b373167a555b7 languageName: node linkType: hard @@ -2848,7 +2885,7 @@ __metadata: languageName: node linkType: hard -"aliasify@npm:^1.9.0": +"aliasify@npm:1.9.0": version: 1.9.0 resolution: "aliasify@npm:1.9.0" dependencies: @@ -2973,47 +3010,6 @@ __metadata: languageName: unknown linkType: soft -"allure-hermione@workspace:packages/allure-hermione": - version: 0.0.0-use.local - resolution: "allure-hermione@workspace:packages/allure-hermione" - dependencies: - "@types/chai": ^4.3.6 - "@types/chai-like": ^1.1.1 - "@types/chai-things": ^0.0.36 - "@types/eslint": ^8 - "@types/glob": ^8.1.0 - "@types/mocha": ^10.0.1 - "@types/node": ^20.6.3 - "@types/sinon": ^17.0.0 - "@typescript-eslint/eslint-plugin": ^6.7.0 - "@typescript-eslint/parser": ^6.7.0 - allure-js-commons: "workspace:*" - allure-mocha: "workspace:*" - chai: ^4.3.8 - chai-like: ^1.1.1 - chai-things: ^0.2.0 - chromedriver: 121.0.0 - codecov: ^3.6.5 - download-chromium: ^3.0.0 - eslint: ^8.49.0 - eslint-config-prettier: ^9.0.0 - eslint-plugin-import: ^2.28.1 - eslint-plugin-jsdoc: ^48.0.0 - eslint-plugin-no-null: ^1.0.2 - eslint-plugin-prefer-arrow: ^1.2.3 - fs-jetpack: ^4.1.0 - glob: ^10.3.5 - hermione: ^7.1.4 - mocha: ^10.2.0 - mocha-multi-reporters: ^1.5.1 - rimraf: ^5.0.1 - sinon: ^17.0.0 - source-map-support: ^0.5.21 - ts-node: ^10.9.1 - typescript: ^5.2.2 - languageName: unknown - linkType: soft - "allure-jasmine@workspace:packages/allure-jasmine": version: 0.0.0-use.local resolution: "allure-jasmine@workspace:packages/allure-jasmine" @@ -3252,13 +3248,6 @@ __metadata: languageName: node linkType: hard -"ansi-regex@npm:^2.0.0": - version: 2.1.1 - resolution: "ansi-regex@npm:2.1.1" - checksum: 190abd03e4ff86794f338a31795d262c1dfe8c91f7e01d04f13f646f1dcb16c5800818f886047876f1272f065570ab86b24b99089f8b68a0e11ff19aed4ca8f1 - languageName: node - linkType: hard - "ansi-regex@npm:^3.0.0": version: 3.0.1 resolution: "ansi-regex@npm:3.0.1" @@ -3287,13 +3276,6 @@ __metadata: languageName: node linkType: hard -"ansi-styles@npm:^2.2.1": - version: 2.2.1 - resolution: "ansi-styles@npm:2.2.1" - checksum: ebc0e00381f2a29000d1dac8466a640ce11943cef3bda3cd0020dc042e31e1058ab59bf6169cd794a54c3a7338a61ebc404b7c91e004092dd20e028c432c9c2c - languageName: node - linkType: hard - "ansi-styles@npm:^3.2.1": version: 3.2.1 resolution: "ansi-styles@npm:3.2.1" @@ -3350,42 +3332,6 @@ __metadata: languageName: node linkType: hard -"archiver-utils@npm:^2.1.0": - version: 2.1.0 - resolution: "archiver-utils@npm:2.1.0" - dependencies: - glob: ^7.1.4 - graceful-fs: ^4.2.0 - lazystream: ^1.0.0 - lodash.defaults: ^4.2.0 - lodash.difference: ^4.5.0 - lodash.flatten: ^4.4.0 - lodash.isplainobject: ^4.0.6 - lodash.union: ^4.6.0 - normalize-path: ^3.0.0 - readable-stream: ^2.0.0 - checksum: 5665f40bde87ee82cb638177bdccca8cc6e55edea1b94338f7e6b56a1d9367b0d9a39e42b47866eaf84b8c67669a7d250900a226207ecc30fa163b52aae859a5 - languageName: node - linkType: hard - -"archiver-utils@npm:^3.0.4": - version: 3.0.4 - resolution: "archiver-utils@npm:3.0.4" - dependencies: - glob: ^7.2.3 - graceful-fs: ^4.2.0 - lazystream: ^1.0.0 - lodash.defaults: ^4.2.0 - lodash.difference: ^4.5.0 - lodash.flatten: ^4.4.0 - lodash.isplainobject: ^4.0.6 - lodash.union: ^4.6.0 - normalize-path: ^3.0.0 - readable-stream: ^3.6.0 - checksum: 5c6568f1185fb6c4b85282ad3281a5a024761bf27e525de1ec54255d15ca98e19532e7b5403930273911a5c8c961aa0c1e9148d6c2810784fa6bd8a97c0021a7 - languageName: node - linkType: hard - "archiver-utils@npm:^4.0.1": version: 4.0.1 resolution: "archiver-utils@npm:4.0.1" @@ -3400,21 +3346,6 @@ __metadata: languageName: node linkType: hard -"archiver@npm:^5.0.0": - version: 5.3.2 - resolution: "archiver@npm:5.3.2" - dependencies: - archiver-utils: ^2.1.0 - async: ^3.2.4 - buffer-crc32: ^0.2.1 - readable-stream: ^3.6.0 - readdir-glob: ^1.1.2 - tar-stream: ^2.2.0 - zip-stream: ^4.1.0 - checksum: 7d3b9b9b51cf54d88c89fbca9b0847c120bfcf9776c7025c52dd0b62f6603dc63dc0f3f1a09582f936f67e3906b46d58954cc762a255be45e8d3e14e3cb0b0b1 - languageName: node - linkType: hard - "archiver@npm:^6.0.0": version: 6.0.1 resolution: "archiver@npm:6.0.1" @@ -3868,6 +3799,13 @@ __metadata: languageName: node linkType: hard +"bluebird@npm:3.5.1": + version: 3.5.1 + resolution: "bluebird@npm:3.5.1" + checksum: 0c4b4b93c119c9631fe8987a69f4d06eee204d4e0979defd9d121ab82861bbf0d546e888b3ccf67d5aefd34bcbf5a898a353b788f00c338b390e7c303ce89cf7 + languageName: node + linkType: hard + "bluebird@npm:^2.6.2": version: 2.11.0 resolution: "bluebird@npm:2.11.0" @@ -4069,7 +4007,7 @@ __metadata: languageName: node linkType: hard -"browserify@npm:^13.3.0": +"browserify@npm:13.3.0": version: 13.3.0 resolution: "browserify@npm:13.3.0" dependencies: @@ -4158,7 +4096,7 @@ __metadata: languageName: node linkType: hard -"buffer-crc32@npm:^0.2.1, buffer-crc32@npm:^0.2.13, buffer-crc32@npm:~0.2.3": +"buffer-crc32@npm:^0.2.1, buffer-crc32@npm:~0.2.3": version: 0.2.13 resolution: "buffer-crc32@npm:0.2.13" checksum: 06252347ae6daca3453b94e4b2f1d3754a3b146a111d81c68924c22d91889a40623264e95e67955b1cb4a68cbedf317abeabb5140a9766ed248973096db5ce1c @@ -4502,27 +4440,14 @@ __metadata: languageName: node linkType: hard -"chalk@npm:5.3.0, chalk@npm:^5.1.2": +"chalk@npm:*, chalk@npm:5.3.0, chalk@npm:^5.1.2": version: 5.3.0 resolution: "chalk@npm:5.3.0" checksum: 623922e077b7d1e9dedaea6f8b9e9352921f8ae3afe739132e0e00c275971bdd331268183b2628cf4ab1727c45ea1f28d7e24ac23ce1db1eb653c414ca8a5a80 languageName: node linkType: hard -"chalk@npm:^1.1.1": - version: 1.1.3 - resolution: "chalk@npm:1.1.3" - dependencies: - ansi-styles: ^2.2.1 - escape-string-regexp: ^1.0.2 - has-ansi: ^2.0.0 - strip-ansi: ^3.0.0 - supports-color: ^2.0.0 - checksum: 9d2ea6b98fc2b7878829eec223abcf404622db6c48396a9b9257f6d0ead2acf18231ae368d6a664a83f272b0679158da12e97b5229f794939e555cc574478acd - languageName: node - linkType: hard - -"chalk@npm:^2.4.1, chalk@npm:^2.4.2": +"chalk@npm:2.4.2, chalk@npm:^2.4.1, chalk@npm:^2.4.2": version: 2.4.2 resolution: "chalk@npm:2.4.2" dependencies: @@ -4620,17 +4545,17 @@ __metadata: languageName: node linkType: hard -"chrome-launcher@npm:^0.15.0": - version: 0.15.2 - resolution: "chrome-launcher@npm:0.15.2" +"chrome-launcher@npm:^1.0.0": + version: 1.1.0 + resolution: "chrome-launcher@npm:1.1.0" dependencies: "@types/node": "*" escape-string-regexp: ^4.0.0 is-wsl: ^2.2.0 - lighthouse-logger: ^1.0.0 + lighthouse-logger: ^2.0.1 bin: print-chrome-path: bin/print-chrome-path.js - checksum: e1f8131b9f7bd931248ea85f413c6cdb93a0d41440ff5bf0987f36afb081d2b2c7b60ba6062ee7ae2dd9b052143f6b275b38c9eb115d11b49c3ea8829bad7db0 + checksum: 55db70ada9d2aa796ddcf0b39d4406a62a904937a5d4f3ec395f6ae4321314e06dec15a32bde5445f19914d5608d72c3a28ac56f39ac9c8db1cfdd810333dc41 languageName: node linkType: hard @@ -4720,7 +4645,7 @@ __metadata: languageName: node linkType: hard -"clear-require@npm:^1.0.1": +"clear-require@npm:1.0.1": version: 1.0.1 resolution: "clear-require@npm:1.0.1" dependencies: @@ -5151,18 +5076,6 @@ __metadata: languageName: node linkType: hard -"compress-commons@npm:^4.1.2": - version: 4.1.2 - resolution: "compress-commons@npm:4.1.2" - dependencies: - buffer-crc32: ^0.2.13 - crc32-stream: ^4.0.2 - normalize-path: ^3.0.0 - readable-stream: ^3.6.0 - checksum: b50c4b5d6b8917ea164eef81d414b1824f27e02427f9266926c80aad55f9e15f81f74c274770773c2b732c22d1081b81dedce4f133271a466151f7f36b8e9dc9 - languageName: node - linkType: hard - "compress-commons@npm:^5.0.1": version: 5.0.1 resolution: "compress-commons@npm:5.0.1" @@ -5301,16 +5214,6 @@ __metadata: languageName: node linkType: hard -"crc32-stream@npm:^4.0.2": - version: 4.0.3 - resolution: "crc32-stream@npm:4.0.3" - dependencies: - crc-32: ^1.2.0 - readable-stream: ^3.4.0 - checksum: d44d0ec6f04d8a1bed899ac3e4fbb82111ed567ea6d506be39147362af45c747887fce1032f4beca1646b4824e5a9614cd3332bfa94bbc5577ca5445e7f75ddd - languageName: node - linkType: hard - "crc32-stream@npm:^5.0.0": version: 5.0.0 resolution: "crc32-stream@npm:5.0.0" @@ -5545,12 +5448,10 @@ __metadata: languageName: node linkType: hard -"date-fns@npm:^2.29.3": - version: 2.30.0 - resolution: "date-fns@npm:2.30.0" - dependencies: - "@babel/runtime": ^7.21.0 - checksum: f7be01523282e9bb06c0cd2693d34f245247a29098527d4420628966a2d9aad154bd0e90a6b1cf66d37adcb769cd108cf8a7bd49d76db0fb119af5cdd13644f4 +"date-fns@npm:2.29.3": + version: 2.29.3 + resolution: "date-fns@npm:2.29.3" + checksum: e01cf5b62af04e05dfff921bb9c9933310ed0e1ae9a81eb8653452e64dc841acf7f6e01e1a5ae5644d0337e9a7f936175fd2cb6819dc122fdd9c5e86c56be484 languageName: node linkType: hard @@ -5566,6 +5467,15 @@ __metadata: languageName: node linkType: hard +"debug@npm:2.6.9, debug@npm:^2.6.9": + version: 2.6.9 + resolution: "debug@npm:2.6.9" + dependencies: + ms: 2.0.0 + checksum: d2f51589ca66df60bf36e1fa6e4386b318c3f1e06772280eea5b1ae9fd3d05e9c2b7fd8a7d862457d00853c75b00451aa2d7459b924629ee385287a650f58fe6 + languageName: node + linkType: hard + "debug@npm:4.3.1": version: 4.3.1 resolution: "debug@npm:4.3.1" @@ -5578,15 +5488,6 @@ __metadata: languageName: node linkType: hard -"debug@npm:^2.6.9": - version: 2.6.9 - resolution: "debug@npm:2.6.9" - dependencies: - ms: 2.0.0 - checksum: d2f51589ca66df60bf36e1fa6e4386b318c3f1e06772280eea5b1ae9fd3d05e9c2b7fd8a7d862457d00853c75b00451aa2d7459b924629ee385287a650f58fe6 - languageName: node - linkType: hard - "debug@npm:^3.2.7": version: 3.2.7 resolution: "debug@npm:3.2.7" @@ -5820,7 +5721,7 @@ __metadata: languageName: node linkType: hard -"detect-libc@npm:^2.0.0, detect-libc@npm:^2.0.1": +"detect-libc@npm:^2.0.0, detect-libc@npm:^2.0.1, detect-libc@npm:^2.0.2": version: 2.0.2 resolution: "detect-libc@npm:2.0.2" checksum: 2b2cd3649b83d576f4be7cc37eb3b1815c79969c8b1a03a40a4d55d83bc74d010753485753448eacb98784abf22f7dbd3911fd3b60e29fda28fed2d1a997944d @@ -5865,13 +5766,6 @@ __metadata: languageName: node linkType: hard -"devtools-protocol@npm:^0.0.1170846": - version: 0.0.1170846 - resolution: "devtools-protocol@npm:0.0.1170846" - checksum: e2945ad0a0e3a4f978abc43edf3c1c4c1a7897a5950fa8692c0ef6147dc444177dbb6b0edd991710d2c9bb94326aba66f9a7a6c8324ef6cd48c514c05d18336f - languageName: node - linkType: hard - "devtools-protocol@npm:^0.0.1188743": version: 0.0.1188743 resolution: "devtools-protocol@npm:0.0.1188743" @@ -5879,25 +5773,32 @@ __metadata: languageName: node linkType: hard -"devtools@npm:8.12.1": - version: 8.12.1 - resolution: "devtools@npm:8.12.1" +"devtools-protocol@npm:^0.0.1213968": + version: 0.0.1213968 + resolution: "devtools-protocol@npm:0.0.1213968" + checksum: d49b5c7ee5d1dccb3bd0039cb791eb6fa78486dec7aa4f27d31ecf4cf62b0ff6c3cb74e26e157378bbbf698c414dc30fca1415f5f0bf2b021cdf14c6f15721bb + languageName: node + linkType: hard + +"devtools@npm:8.21.0": + version: 8.21.0 + resolution: "devtools@npm:8.21.0" dependencies: "@types/node": ^20.1.0 - "@wdio/config": 8.12.1 - "@wdio/logger": 8.11.0 - "@wdio/protocols": 8.11.0 - "@wdio/types": 8.10.4 - "@wdio/utils": 8.12.1 - chrome-launcher: ^0.15.0 + "@wdio/config": 8.21.0 + "@wdio/logger": 8.16.17 + "@wdio/protocols": 8.20.4 + "@wdio/types": 8.21.0 + "@wdio/utils": 8.21.0 + chrome-launcher: ^1.0.0 edge-paths: ^3.0.5 import-meta-resolve: ^3.0.0 puppeteer-core: 20.3.0 query-selector-shadow-dom: ^1.0.0 ua-parser-js: ^1.0.1 uuid: ^9.0.0 - which: ^3.0.0 - checksum: dd980d79dd88d7ec7d1dc3bb99541f43ae65e5c75533a520706ec0590b74619d59717180a2b950d96a5475eed6c6f70d3780d5866dd72fad3c3a4f38cbc05428 + which: ^4.0.0 + checksum: be753849f7cf94ba21bad212f667a0d03cbd15802787d5a64774d36a000c44bfbc5e5bf8f415075b1112bb3a0bf5810a29fbb3e98f26e0fd7e6e914b5eaa26f4 languageName: node linkType: hard @@ -6380,7 +6281,7 @@ __metadata: languageName: node linkType: hard -"escape-string-regexp@npm:1.0.5, escape-string-regexp@npm:^1.0.2, escape-string-regexp@npm:^1.0.5": +"escape-string-regexp@npm:1.0.5, escape-string-regexp@npm:^1.0.5": version: 1.0.5 resolution: "escape-string-regexp@npm:1.0.5" checksum: 6092fda75c63b110c706b6a9bfde8a612ad595b628f0bd2147eea1d3406723020810e591effc7db1da91d80a71a737a313567c5abb3813e8d9c71f4aa595b410 @@ -6756,13 +6657,13 @@ __metadata: languageName: node linkType: hard -"expect-webdriverio@npm:^3.5.3": - version: 3.6.0 - resolution: "expect-webdriverio@npm:3.6.0" +"expect-webdriverio@npm:3.5.3": + version: 3.5.3 + resolution: "expect-webdriverio@npm:3.5.3" dependencies: expect: ^28.1.0 jest-matcher-utils: ^28.1.0 - checksum: f8c79fb1d972f5d200f20f50ef7e03a48da8ab8709394cd307f2737785af5209cdbe808672c88ed42bc51ccd202eb1aa88dcd365c593b0ea3dbd64667a38f95c + checksum: d4f88d4698cea5b1da74bfc7fb365e525a1662e8ce3f9c1207462adcf5dd81a77c0063d2f137c64d72fecfbf86722fcedc9698198e938ce34a9f83f3f5caa731 languageName: node linkType: hard @@ -6982,7 +6883,16 @@ __metadata: languageName: node linkType: hard -"fastq@npm:^1.13.0, fastq@npm:^1.6.0": +"fastq@npm:1.13.0": + version: 1.13.0 + resolution: "fastq@npm:1.13.0" + dependencies: + reusify: ^1.0.4 + checksum: 32cf15c29afe622af187d12fc9cd93e160a0cb7c31a3bb6ace86b7dea3b28e7b72acde89c882663f307b2184e14782c6c664fa315973c03626c7d4bff070bb0b + languageName: node + linkType: hard + +"fastq@npm:^1.6.0": version: 1.15.0 resolution: "fastq@npm:1.15.0" dependencies: @@ -7234,7 +7144,7 @@ __metadata: languageName: node linkType: hard -"fs-extra@npm:^5.0.0": +"fs-extra@npm:5.0.0": version: 5.0.0 resolution: "fs-extra@npm:5.0.0" dependencies: @@ -7411,12 +7321,12 @@ __metadata: languageName: node linkType: hard -"gemini-configparser@npm:^1.3.0": - version: 1.3.2 - resolution: "gemini-configparser@npm:1.3.2" +"gemini-configparser@npm:1.3.0": + version: 1.3.0 + resolution: "gemini-configparser@npm:1.3.0" dependencies: lodash: ^4.17.4 - checksum: 9988bd692702851223141fe9b6e8d16f1f7588402a938f09f328cdbdab06f804ce20566f2faf29381cc60224a80e3483ec4f7cbaf55c3d6beda6c38650bd83f7 + checksum: a39bac0650cf3a176dad5d07c1b8f8c76cc38c07ec2d71d6fca3adfc9c3e5e8e569613e5d926df7dd9615e55069b1d363fe3e17c45524877b09c576ded85227d languageName: node linkType: hard @@ -7586,7 +7496,7 @@ __metadata: languageName: node linkType: hard -"glob-extra@npm:^5.0.2": +"glob-extra@npm:5.0.2": version: 5.0.2 resolution: "glob-extra@npm:5.0.2" dependencies: @@ -7690,7 +7600,7 @@ __metadata: languageName: node linkType: hard -"glob@npm:^7.0.5, glob@npm:^7.1.0, glob@npm:^7.1.3, glob@npm:^7.1.4, glob@npm:^7.1.6, glob@npm:^7.2.3": +"glob@npm:^7.0.5, glob@npm:^7.1.0, glob@npm:^7.1.3, glob@npm:^7.1.4, glob@npm:^7.1.6": version: 7.2.3 resolution: "glob@npm:7.2.3" dependencies: @@ -7926,15 +7836,6 @@ __metadata: languageName: node linkType: hard -"has-ansi@npm:^2.0.0": - version: 2.0.0 - resolution: "has-ansi@npm:2.0.0" - dependencies: - ansi-regex: ^2.0.0 - checksum: 1b51daa0214440db171ff359d0a2d17bc20061164c57e76234f614c91dbd2a79ddd68dfc8ee73629366f7be45a6df5f2ea9de83f52e1ca24433f2cc78c35d8ec - languageName: node - linkType: hard - "has-ansi@npm:^4.0.1": version: 4.0.1 resolution: "has-ansi@npm:4.0.1" @@ -8050,43 +7951,86 @@ __metadata: languageName: node linkType: hard -"hermione@npm:^7.1.4": - version: 7.1.4 - resolution: "hermione@npm:7.1.4" +"hermione-allure@workspace:packages/hermione-allure": + version: 0.0.0-use.local + resolution: "hermione-allure@workspace:packages/hermione-allure" dependencies: - "@gemini-testing/commander": 2.15.3 + "@types/chai": ^4.3.6 + "@types/chai-like": ^1.1.1 + "@types/chai-things": ^0.0.36 + "@types/eslint": ^8 + "@types/glob": ^8.1.0 "@types/mocha": ^10.0.1 - "@wdio/globals": ^8.5.7 - "@wdio/types": ^8.4.0 - "@wdio/utils": ^7.26.0 - aliasify: ^1.9.0 - bluebird: ^3.5.1 - browserify: ^13.3.0 - chalk: ^1.1.1 - clear-require: ^1.0.1 - date-fns: ^2.29.3 - debug: ^2.6.9 - expect-webdriverio: ^3.5.3 - fastq: ^1.13.0 - fs-extra: ^5.0.0 - gemini-configparser: ^1.3.0 - glob-extra: ^5.0.2 - inherit: ^2.2.2 - lodash: ^4.17.21 - looks-same: ^8.1.0 - micromatch: ^4.0.5 + "@types/node": ^20.6.3 + "@types/sinon": ^17.0.0 + "@typescript-eslint/eslint-plugin": ^6.7.0 + "@typescript-eslint/parser": ^6.7.0 + allure-js-commons: "workspace:*" + allure-mocha: "workspace:*" + chai: ^4.3.8 + chai-like: ^1.1.1 + chai-things: ^0.2.0 + chromedriver: 121.0.0 + codecov: ^3.6.5 + download-chromium: ^3.0.0 + eslint: ^8.49.0 + eslint-config-prettier: ^9.0.0 + eslint-plugin-import: ^2.28.1 + eslint-plugin-jsdoc: ^48.0.0 + eslint-plugin-no-null: ^1.0.2 + eslint-plugin-prefer-arrow: ^1.2.3 + fs-jetpack: ^4.1.0 + glob: ^10.3.5 + hermione: ^8.0.6 mocha: ^10.2.0 - plugins-loader: ^1.1.0 + mocha-multi-reporters: ^1.5.1 + rimraf: ^5.0.1 + sinon: ^17.0.0 + source-map-support: ^0.5.21 + ts-node: ^10.9.1 + typescript: ^5.2.2 + languageName: unknown + linkType: soft + +"hermione@npm:^8.0.6": + version: 8.0.6 + resolution: "hermione@npm:8.0.6" + dependencies: + "@gemini-testing/commander": 2.15.3 + "@types/chalk": 2.2.0 + "@types/mocha": 10.0.1 + "@wdio/globals": 8.21.0 + "@wdio/types": 8.21.0 + "@wdio/utils": 7.26.0 + aliasify: 1.9.0 + bluebird: 3.5.1 + browserify: 13.3.0 + chalk: 2.4.2 + clear-require: 1.0.1 + date-fns: 2.29.3 + debug: 2.6.9 + devtools: 8.21.0 + expect-webdriverio: 3.5.3 + fastq: 1.13.0 + fs-extra: 5.0.0 + gemini-configparser: 1.3.0 + glob-extra: 5.0.2 + lodash: 4.17.21 + looks-same: 9.0.0 + micromatch: 4.0.5 + mocha: 10.2.0 + plugins-loader: 1.2.0 png-validator: 1.1.0 - sharp: ~0.30.7 - sizzle: ^2.3.6 - temp: ^0.8.3 - uglifyify: ^3.0.4 - urijs: ^1.19.11 - url-join: ^4.0.1 - webdriverio: 8.13.4 - worker-farm: ^1.7.0 - yallist: ^3.1.1 + sharp: 0.30.7 + sizzle: 2.3.6 + strip-ansi: 6.0.1 + temp: 0.8.3 + uglifyify: 3.0.4 + urijs: 1.19.11 + url-join: 4.0.1 + webdriverio: 8.21.0 + worker-farm: 1.7.0 + yallist: 3.1.1 peerDependencies: ts-node: ">=10.5.0" peerDependenciesMeta: @@ -8094,7 +8038,7 @@ __metadata: optional: true bin: hermione: bin/hermione - checksum: 3d982fe685141d25061e75b06bf42fb2ce8d122b2d463fa548a1b232dbad36c4890c335b842c480a69f1b0d03826d3d93e32e6a00fb9585d8eaa12d4e01965b0 + checksum: 0ba0b104705de5d7f9023a964a2c2b78de399972e4237262370b971292f1202413e80015c501af8fa8dae20f3b8ee2c22e84dd3486c4251f0b5fb0bbe0704197 languageName: node linkType: hard @@ -8116,15 +8060,6 @@ __metadata: languageName: node linkType: hard -"hosted-git-info@npm:^4.0.1": - version: 4.1.0 - resolution: "hosted-git-info@npm:4.1.0" - dependencies: - lru-cache: ^6.0.0 - checksum: c3f87b3c2f7eb8c2748c8f49c0c2517c9a95f35d26f4bf54b2a8cba05d2e668f3753548b6ea366b18ec8dadb4e12066e19fa382a01496b0ffa0497eb23cbe461 - languageName: node - linkType: hard - "hosted-git-info@npm:^7.0.0": version: 7.0.1 resolution: "hosted-git-info@npm:7.0.1" @@ -8450,13 +8385,6 @@ __metadata: languageName: node linkType: hard -"inherit@npm:^2.2.2": - version: 2.2.7 - resolution: "inherit@npm:2.2.7" - checksum: 7f377408d74e1dfdb9c9f9558160362f1eaa327c6aa4fc6a3fea1a37c81b45c071f81d1681f18bb7e72a1852085c92a62f285a7bd9aeff54760b0df75431054e - languageName: node - linkType: hard - "inherits@npm:2, inherits@npm:2.0.4, inherits@npm:^2.0.1, inherits@npm:^2.0.3, inherits@npm:^2.0.4, inherits@npm:~2.0.0, inherits@npm:~2.0.1, inherits@npm:~2.0.3": version: 2.0.4 resolution: "inherits@npm:2.0.4" @@ -8683,7 +8611,7 @@ __metadata: languageName: node linkType: hard -"is-core-module@npm:^2.13.0, is-core-module@npm:^2.5.0, is-core-module@npm:^2.8.1": +"is-core-module@npm:^2.13.0, is-core-module@npm:^2.8.1": version: 2.13.0 resolution: "is-core-module@npm:2.13.0" dependencies: @@ -10036,13 +9964,13 @@ __metadata: languageName: node linkType: hard -"lighthouse-logger@npm:^1.0.0": - version: 1.4.2 - resolution: "lighthouse-logger@npm:1.4.2" +"lighthouse-logger@npm:^2.0.1": + version: 2.0.1 + resolution: "lighthouse-logger@npm:2.0.1" dependencies: debug: ^2.6.9 marky: ^1.2.2 - checksum: ba6b73d93424318fab58b4e07c9ed246e3e969a3313f26b69515ed4c06457dd9a0b11bc706948398fdaef26aa4ba5e65cb848c37ce59f470d3c6c450b9b79a33 + checksum: 65f633e0cf6722dac2f31d886b49064a100301d3e44650810ce64ff1a358b35bfc9c828a853ae386f19e4eb1cce80a61195529b7fb5af9f5a6c90051b801ab6f languageName: node linkType: hard @@ -10191,27 +10119,6 @@ __metadata: languageName: node linkType: hard -"lodash.defaults@npm:^4.2.0": - version: 4.2.0 - resolution: "lodash.defaults@npm:4.2.0" - checksum: 84923258235592c8886e29de5491946ff8c2ae5c82a7ac5cddd2e3cb697e6fbdfbbb6efcca015795c86eec2bb953a5a2ee4016e3735a3f02720428a40efbb8f1 - languageName: node - linkType: hard - -"lodash.difference@npm:^4.5.0": - version: 4.5.0 - resolution: "lodash.difference@npm:4.5.0" - checksum: ecee276aa578f300e79350805a14a51be8d1f12b3c1389a19996d8ab516f814211a5f65c68331571ecdad96522b863ccc484b55504ce8c9947212a29f8857d5a - languageName: node - linkType: hard - -"lodash.flatten@npm:^4.4.0": - version: 4.4.0 - resolution: "lodash.flatten@npm:4.4.0" - checksum: 0ac34a393d4b795d4b7421153d27c13ae67e08786c9cbb60ff5b732210d46f833598eee3fb3844bb10070e8488efe390ea53bb567377e0cb47e9e630bf0811cb - languageName: node - linkType: hard - "lodash.get@npm:^4.4.2": version: 4.4.2 resolution: "lodash.get@npm:4.4.2" @@ -10219,13 +10126,6 @@ __metadata: languageName: node linkType: hard -"lodash.isplainobject@npm:^4.0.6": - version: 4.0.6 - resolution: "lodash.isplainobject@npm:4.0.6" - checksum: 29c6351f281e0d9a1d58f1a4c8f4400924b4c79f18dfc4613624d7d54784df07efaff97c1ff2659f3e085ecf4fff493300adc4837553104cef2634110b0d5337 - languageName: node - linkType: hard - "lodash.memoize@npm:4.x": version: 4.1.2 resolution: "lodash.memoize@npm:4.1.2" @@ -10254,13 +10154,6 @@ __metadata: languageName: node linkType: hard -"lodash.union@npm:^4.6.0": - version: 4.6.0 - resolution: "lodash.union@npm:4.6.0" - checksum: 1514dc6508b2614ec071a6470f36eb7a70f69bf1abb6d55bdfdc21069635a4517783654b28504c0f025059a7598d37529766888e6d5902b8ab28b712228f7b2a - languageName: node - linkType: hard - "lodash.zip@npm:^4.2.0": version: 4.2.0 resolution: "lodash.zip@npm:4.2.0" @@ -10319,9 +10212,9 @@ __metadata: languageName: node linkType: hard -"looks-same@npm:^8.1.0": - version: 8.2.1 - resolution: "looks-same@npm:8.2.1" +"looks-same@npm:9.0.0": + version: 9.0.0 + resolution: "looks-same@npm:9.0.0" dependencies: color-diff: ^1.1.0 fs-extra: ^8.1.0 @@ -10329,8 +10222,8 @@ __metadata: lodash: ^4.17.3 nested-error-stacks: ^2.1.0 parse-color: ^1.0.0 - sharp: ~0.30.7 - checksum: c4a42e975f7b618de628e3abec4f563ed4f55de27d86907f7f36327e5a4a2d9ad120b1381e2b78bb3b9b9c9177d9c0649d9bb80e78e9d5931e805827ee69940c + sharp: 0.32.6 + checksum: 3704b8d4817a966dbda1ca70732366f4d9e5eeba0db9fa39093d37d10da4d444060bbc742181e31bddfa368af050c9feb19611be56f325647a30ed0511f84620 languageName: node linkType: hard @@ -10524,7 +10417,7 @@ __metadata: languageName: node linkType: hard -"micromatch@npm:4.0.5, micromatch@npm:^4.0.4, micromatch@npm:^4.0.5": +"micromatch@npm:4.0.5, micromatch@npm:^4.0.4": version: 4.0.5 resolution: "micromatch@npm:4.0.5" dependencies: @@ -10846,7 +10739,7 @@ __metadata: languageName: node linkType: hard -"mocha@npm:^10.2.0": +"mocha@npm:10.2.0, mocha@npm:^10.2.0": version: 10.2.0 resolution: "mocha@npm:10.2.0" dependencies: @@ -11173,6 +11066,15 @@ __metadata: languageName: node linkType: hard +"node-addon-api@npm:^6.1.0": + version: 6.1.0 + resolution: "node-addon-api@npm:6.1.0" + dependencies: + node-gyp: latest + checksum: 3a539510e677cfa3a833aca5397300e36141aca064cdc487554f2017110709a03a95da937e98c2a14ec3c626af7b2d1b6dabe629a481f9883143d0d5bff07bf2 + languageName: node + linkType: hard + "node-domexception@npm:^1.0.0": version: 1.0.0 resolution: "node-domexception@npm:1.0.0" @@ -11270,18 +11172,6 @@ __metadata: languageName: node linkType: hard -"normalize-package-data@npm:^3.0.2": - version: 3.0.3 - resolution: "normalize-package-data@npm:3.0.3" - dependencies: - hosted-git-info: ^4.0.1 - is-core-module: ^2.5.0 - semver: ^7.3.4 - validate-npm-package-license: ^3.0.1 - checksum: bbcee00339e7c26fdbc760f9b66d429258e2ceca41a5df41f5df06cc7652de8d82e8679ff188ca095cad8eff2b6118d7d866af2b68400f74602fbcbce39c160a - languageName: node - linkType: hard - "normalize-package-data@npm:^6.0.0": version: 6.0.0 resolution: "normalize-package-data@npm:6.0.0" @@ -11576,7 +11466,7 @@ __metadata: languageName: node linkType: hard -"os-tmpdir@npm:~1.0.2": +"os-tmpdir@npm:^1.0.0, os-tmpdir@npm:~1.0.2": version: 1.0.2 resolution: "os-tmpdir@npm:1.0.2" checksum: 5666560f7b9f10182548bf7013883265be33620b1c1b4a4d405c25be2636f970c5488ff3e6c48de75b55d02bde037249fe5dbfbb4c0fb7714953d56aed062e6d @@ -12090,7 +11980,7 @@ __metadata: languageName: node linkType: hard -"plugins-loader@npm:^1.1.0": +"plugins-loader@npm:1.2.0": version: 1.2.0 resolution: "plugins-loader@npm:1.2.0" dependencies: @@ -12711,17 +12601,6 @@ __metadata: languageName: node linkType: hard -"read-pkg-up@npm:^9.1.0": - version: 9.1.0 - resolution: "read-pkg-up@npm:9.1.0" - dependencies: - find-up: ^6.3.0 - read-pkg: ^7.1.0 - type-fest: ^2.5.0 - checksum: 41b8ba4bdb7c1e914aa6ce2d36a7c1651e9086938977fa12f058f6fca51ee15315634af648ca4ef70dd074e575e854616b39032ad0b376e9e97d61a9d0867afe - languageName: node - linkType: hard - "read-pkg@npm:^3.0.0": version: 3.0.0 resolution: "read-pkg@npm:3.0.0" @@ -12733,18 +12612,6 @@ __metadata: languageName: node linkType: hard -"read-pkg@npm:^7.1.0": - version: 7.1.0 - resolution: "read-pkg@npm:7.1.0" - dependencies: - "@types/normalize-package-data": ^2.4.1 - normalize-package-data: ^3.0.2 - parse-json: ^5.2.0 - type-fest: ^2.0.0 - checksum: 20d11c59be3ae1fc79d4b9c8594dabeaec58105f9dfd710570ef9690ec2ac929247006e79ca114257683228663199735d60f149948dbc5f34fcd2d28883ab5f7 - languageName: node - linkType: hard - "read-pkg@npm:^8.1.0": version: 8.1.0 resolution: "read-pkg@npm:8.1.0" @@ -12769,7 +12636,7 @@ __metadata: languageName: node linkType: hard -"readable-stream@npm:^2.0.0, readable-stream@npm:^2.0.2, readable-stream@npm:^2.0.5, readable-stream@npm:^2.2.2, readable-stream@npm:^2.3.6, readable-stream@npm:~2.3.6": +"readable-stream@npm:^2.0.2, readable-stream@npm:^2.0.5, readable-stream@npm:^2.2.2, readable-stream@npm:^2.3.6, readable-stream@npm:~2.3.6": version: 2.3.8 resolution: "readable-stream@npm:2.3.8" dependencies: @@ -12834,13 +12701,6 @@ __metadata: languageName: node linkType: hard -"regenerator-runtime@npm:^0.14.0": - version: 0.14.0 - resolution: "regenerator-runtime@npm:0.14.0" - checksum: 1c977ad82a82a4412e4f639d65d22be376d3ebdd30da2c003eeafdaaacd03fc00c2320f18120007ee700900979284fc78a9f00da7fb593f6e6eeebc673fba9a3 - languageName: node - linkType: hard - "regexp-match-indices@npm:1.0.2": version: 1.0.2 resolution: "regexp-match-indices@npm:1.0.2" @@ -13160,14 +13020,12 @@ __metadata: languageName: node linkType: hard -"rimraf@npm:~2.6.2": - version: 2.6.3 - resolution: "rimraf@npm:2.6.3" - dependencies: - glob: ^7.1.3 +"rimraf@npm:~2.2.6": + version: 2.2.8 + resolution: "rimraf@npm:2.2.8" bin: rimraf: ./bin.js - checksum: 3ea587b981a19016297edb96d1ffe48af7e6af69660e3b371dbfc73722a73a0b0e9be5c88089fbeeb866c389c1098e07f64929c7414290504b855f54f901ab10 + checksum: 01804e1c0430eeece3fd778e836e9682c011e126d42a4f560e930f8cdc2d99c7e586e63d18c5a65accbd51f9ac57706177550de0538c1dd45c335755605de166 languageName: node linkType: hard @@ -13367,7 +13225,7 @@ __metadata: languageName: node linkType: hard -"semver@npm:7.5.4, semver@npm:^7.3.4, semver@npm:^7.3.5, semver@npm:^7.3.7, semver@npm:^7.5.3, semver@npm:^7.5.4": +"semver@npm:7.5.4, semver@npm:^7.3.5, semver@npm:^7.3.7, semver@npm:^7.5.3, semver@npm:^7.5.4": version: 7.5.4 resolution: "semver@npm:7.5.4" dependencies: @@ -13407,15 +13265,6 @@ __metadata: languageName: node linkType: hard -"serialize-error@npm:^8.0.0": - version: 8.1.0 - resolution: "serialize-error@npm:8.1.0" - dependencies: - type-fest: ^0.20.2 - checksum: 2eef236d50edd2d7926e602c14fb500dc3a125ee52e9f08f67033181b8e0be5d1122498bdf7c23c80683cddcad083a27974e9e7111ce23165f4d3bcdd6d65102 - languageName: node - linkType: hard - "serialize-javascript@npm:6.0.0": version: 6.0.0 resolution: "serialize-javascript@npm:6.0.0" @@ -13465,7 +13314,7 @@ __metadata: languageName: node linkType: hard -"sharp@npm:~0.30.7": +"sharp@npm:0.30.7": version: 0.30.7 resolution: "sharp@npm:0.30.7" dependencies: @@ -13482,6 +13331,23 @@ __metadata: languageName: node linkType: hard +"sharp@npm:0.32.6": + version: 0.32.6 + resolution: "sharp@npm:0.32.6" + dependencies: + color: ^4.2.3 + detect-libc: ^2.0.2 + node-addon-api: ^6.1.0 + node-gyp: latest + prebuild-install: ^7.1.1 + semver: ^7.5.4 + simple-get: ^4.0.1 + tar-fs: ^3.0.4 + tunnel-agent: ^0.6.0 + checksum: 0cca1d16b1920800c0e22d27bc6305f4c67c9ebe44f67daceb30bf645ae39e7fb7dfbd7f5d6cd9f9eebfddd87ac3f7e2695f4eb906d19b7a775286238e6a29fc + languageName: node + linkType: hard + "shasum-object@npm:^1.0.0": version: 1.0.0 resolution: "shasum-object@npm:1.0.0" @@ -13620,10 +13486,10 @@ __metadata: languageName: node linkType: hard -"sizzle@npm:^2.3.6": - version: 2.3.10 - resolution: "sizzle@npm:2.3.10" - checksum: d9dc75ad84ffb3d06767c33b44308b9bebcc1228b8935b64b9d7c1cf8c3e67a0eb6acc39cac90cca492a364864adbde32167d25ffce85fa94b8c007177863b7a +"sizzle@npm:2.3.6": + version: 2.3.6 + resolution: "sizzle@npm:2.3.6" + checksum: 0e3b6e98edf471c7c7a4a3e5aea12000735f39dba0168345a13cf3709f3aa702e719d1479dbdccf632ed893e1ea913616a8aa6288e3134eb4f14ffba707d5c10 languageName: node linkType: hard @@ -13820,6 +13686,13 @@ __metadata: languageName: node linkType: hard +"split2@npm:^4.2.0": + version: 4.2.0 + resolution: "split2@npm:4.2.0" + checksum: 05d54102546549fe4d2455900699056580cca006c0275c334611420f854da30ac999230857a85fdd9914dc2109ae50f80fda43d2a445f2aa86eccdc1dfce779d + languageName: node + linkType: hard + "sprintf-js@npm:^1.1.1": version: 1.1.3 resolution: "sprintf-js@npm:1.1.3" @@ -14133,15 +14006,6 @@ __metadata: languageName: node linkType: hard -"strip-ansi@npm:^3.0.0": - version: 3.0.1 - resolution: "strip-ansi@npm:3.0.1" - dependencies: - ansi-regex: ^2.0.0 - checksum: 9b974de611ce5075c70629c00fa98c46144043db92ae17748fb780f706f7a789e9989fd10597b7c2053ae8d1513fd707816a91f1879b2f71e6ac0b6a863db465 - languageName: node - linkType: hard - "strip-ansi@npm:^4.0.0": version: 4.0.0 resolution: "strip-ansi@npm:4.0.0" @@ -14245,13 +14109,6 @@ __metadata: languageName: node linkType: hard -"supports-color@npm:^2.0.0": - version: 2.0.0 - resolution: "supports-color@npm:2.0.0" - checksum: 602538c5812b9006404370b5a4b885d3e2a1f6567d314f8b4a41974ffe7d08e525bf92ae0f9c7030e3b4c78e4e34ace55d6a67a74f1571bc205959f5972f88f0 - languageName: node - linkType: hard - "supports-color@npm:^5.3.0": version: 5.5.0 resolution: "supports-color@npm:5.5.0" @@ -14326,7 +14183,7 @@ __metadata: languageName: node linkType: hard -"tar-stream@npm:^2.1.4, tar-stream@npm:^2.2.0": +"tar-stream@npm:^2.1.4": version: 2.2.0 resolution: "tar-stream@npm:2.2.0" dependencies: @@ -14407,12 +14264,13 @@ __metadata: languageName: node linkType: hard -"temp@npm:^0.8.3": - version: 0.8.4 - resolution: "temp@npm:0.8.4" +"temp@npm:0.8.3": + version: 0.8.3 + resolution: "temp@npm:0.8.3" dependencies: - rimraf: ~2.6.2 - checksum: f35bed78565355dfdf95f730b7b489728bd6b7e35071bcc6497af7c827fb6c111fbe9063afc7b8cbc19522a072c278679f9a0ee81e684aa2c8617cc0f2e9c191 + os-tmpdir: ^1.0.0 + rimraf: ~2.2.6 + checksum: bfc6f1223dd568c21efb279433f40dbb4fe269da2ca2c622f6f50276751325ba9a2888628a342bc2c56764164ee6430229319604cf0a862d480151f8ae65ca5b languageName: node linkType: hard @@ -14806,7 +14664,7 @@ __metadata: languageName: node linkType: hard -"type-fest@npm:^2.0.0, type-fest@npm:^2.12.2, type-fest@npm:^2.19.0, type-fest@npm:^2.5.0": +"type-fest@npm:^2.12.2, type-fest@npm:^2.19.0": version: 2.19.0 resolution: "type-fest@npm:2.19.0" checksum: a4ef07ece297c9fba78fc1bd6d85dff4472fe043ede98bd4710d2615d15776902b595abf62bd78339ed6278f021235fb28a96361f8be86ed754f778973a0d278 @@ -14954,7 +14812,7 @@ __metadata: languageName: node linkType: hard -"uglifyify@npm:^3.0.4": +"uglifyify@npm:3.0.4": version: 3.0.4 resolution: "uglifyify@npm:3.0.4" dependencies: @@ -15123,14 +14981,14 @@ __metadata: languageName: node linkType: hard -"urijs@npm:^1.19.11": +"urijs@npm:1.19.11": version: 1.19.11 resolution: "urijs@npm:1.19.11" checksum: f9b95004560754d30fd7dbee44b47414d662dc9863f1cf5632a7c7983648df11d23c0be73b9b4f9554463b61d5b0a520b70df9e1ee963ebb4af02e6da2cc80f3 languageName: node linkType: hard -"url-join@npm:^4.0.1": +"url-join@npm:4.0.1": version: 4.0.1 resolution: "url-join@npm:4.0.1" checksum: f74e868bf25dbc8be6a8d7237d4c36bb5b6c62c72e594d5ab1347fe91d6af7ccd9eb5d621e30152e4da45c2e9a26bec21390e911ab54a62d4d82e76028374ee5 @@ -15507,93 +15365,97 @@ __metadata: languageName: node linkType: hard -"webdriver@npm:8.13.1": - version: 8.13.1 - resolution: "webdriver@npm:8.13.1" +"webdriver@npm:8.16.7": + version: 8.16.7 + resolution: "webdriver@npm:8.16.7" dependencies: "@types/node": ^20.1.0 "@types/ws": ^8.5.3 - "@wdio/config": 8.12.1 + "@wdio/config": 8.16.7 "@wdio/logger": 8.11.0 - "@wdio/protocols": 8.11.0 - "@wdio/types": 8.10.4 - "@wdio/utils": 8.12.1 - deepmerge-ts: ^5.0.0 + "@wdio/protocols": 8.16.5 + "@wdio/types": 8.16.7 + "@wdio/utils": 8.16.7 + deepmerge-ts: ^5.1.0 got: ^ 12.6.1 ky: ^0.33.0 ws: ^8.8.0 - checksum: 7efde3c47504a3842bb30ef66d789ed2271a7d62e7034dada5e7d6bb2eb272f9602fab6db0d71db960fc0cdfd2cb55e294dd1a59d24d75b560f4cc92a7fd54f7 + checksum: e53546c5d330e93b21dfa1f970aed858d9c05408a2abab94196b6d51e9bbe2c3bcccd4f8e7e758cbec13148e31aabe4dd28050881d7aa09a336332d00610ab82 languageName: node linkType: hard -"webdriver@npm:8.16.7": - version: 8.16.7 - resolution: "webdriver@npm:8.16.7" +"webdriver@npm:8.21.0": + version: 8.21.0 + resolution: "webdriver@npm:8.21.0" dependencies: "@types/node": ^20.1.0 "@types/ws": ^8.5.3 - "@wdio/config": 8.16.7 - "@wdio/logger": 8.11.0 - "@wdio/protocols": 8.16.5 - "@wdio/types": 8.16.7 - "@wdio/utils": 8.16.7 + "@wdio/config": 8.21.0 + "@wdio/logger": 8.16.17 + "@wdio/protocols": 8.20.4 + "@wdio/types": 8.21.0 + "@wdio/utils": 8.21.0 deepmerge-ts: ^5.1.0 got: ^ 12.6.1 ky: ^0.33.0 ws: ^8.8.0 - checksum: e53546c5d330e93b21dfa1f970aed858d9c05408a2abab94196b6d51e9bbe2c3bcccd4f8e7e758cbec13148e31aabe4dd28050881d7aa09a336332d00610ab82 + checksum: f8d9917d470e85328721c4ddcf0f85a0ae5685e70dbc78d7852a6f3e850bbddb5bc5d52bd12f345c55505458c84383475e1e0a764b503b5048bf6e4b1ff4ca63 languageName: node linkType: hard -"webdriverio@npm:8.13.4": - version: 8.13.4 - resolution: "webdriverio@npm:8.13.4" +"webdriverio@npm:8.16.7, webdriverio@npm:^8.16.7": + version: 8.16.7 + resolution: "webdriverio@npm:8.16.7" dependencies: "@types/node": ^20.1.0 - "@wdio/config": 8.12.1 + "@wdio/config": 8.16.7 "@wdio/logger": 8.11.0 - "@wdio/protocols": 8.11.0 + "@wdio/protocols": 8.16.5 "@wdio/repl": 8.10.1 - "@wdio/types": 8.10.4 - "@wdio/utils": 8.12.1 - archiver: ^5.0.0 + "@wdio/types": 8.16.7 + "@wdio/utils": 8.16.7 + archiver: ^6.0.0 aria-query: ^5.0.0 css-shorthand-properties: ^1.1.1 css-value: ^0.0.1 - devtools: 8.12.1 - devtools-protocol: ^0.0.1170846 + devtools-protocol: ^0.0.1188743 grapheme-splitter: ^1.0.2 import-meta-resolve: ^3.0.0 is-plain-obj: ^4.1.0 lodash.clonedeep: ^4.5.0 lodash.zip: ^4.2.0 minimatch: ^9.0.0 - puppeteer-core: 20.3.0 + puppeteer-core: ^20.9.0 query-selector-shadow-dom: ^1.0.0 resq: ^1.9.1 rgb2hex: 0.2.5 - serialize-error: ^8.0.0 - webdriver: 8.13.1 - checksum: 60b8cd3d1b6e7eef06d6b14c090564cd3a5094002bc487f18bfbd3bf3020468d3044bf097983476196bf347c52487802d38477dab3235f2ed4a8f5a552c0a67e + serialize-error: ^11.0.1 + webdriver: 8.16.7 + peerDependencies: + devtools: ^8.14.0 + peerDependenciesMeta: + devtools: + optional: true + checksum: 6be1952f7ce4a87bf95ef2624f674a9f3d0f1483f91bf6bcec47f2766d496ba670aa564fad547695913439ffccc36b9a702e2922538cb0d128fa9ee4a39d5929 languageName: node linkType: hard -"webdriverio@npm:8.16.7, webdriverio@npm:^8.16.7": - version: 8.16.7 - resolution: "webdriverio@npm:8.16.7" +"webdriverio@npm:8.21.0": + version: 8.21.0 + resolution: "webdriverio@npm:8.21.0" dependencies: "@types/node": ^20.1.0 - "@wdio/config": 8.16.7 - "@wdio/logger": 8.11.0 - "@wdio/protocols": 8.16.5 + "@wdio/config": 8.21.0 + "@wdio/logger": 8.16.17 + "@wdio/protocols": 8.20.4 "@wdio/repl": 8.10.1 - "@wdio/types": 8.16.7 - "@wdio/utils": 8.16.7 + "@wdio/types": 8.21.0 + "@wdio/utils": 8.21.0 archiver: ^6.0.0 aria-query: ^5.0.0 css-shorthand-properties: ^1.1.1 css-value: ^0.0.1 - devtools-protocol: ^0.0.1188743 + devtools-protocol: ^0.0.1213968 grapheme-splitter: ^1.0.2 import-meta-resolve: ^3.0.0 is-plain-obj: ^4.1.0 @@ -15605,13 +15467,13 @@ __metadata: resq: ^1.9.1 rgb2hex: 0.2.5 serialize-error: ^11.0.1 - webdriver: 8.16.7 + webdriver: 8.21.0 peerDependencies: devtools: ^8.14.0 peerDependenciesMeta: devtools: optional: true - checksum: 6be1952f7ce4a87bf95ef2624f674a9f3d0f1483f91bf6bcec47f2766d496ba670aa564fad547695913439ffccc36b9a702e2922538cb0d128fa9ee4a39d5929 + checksum: be6c19537f374d7c94bf0d895e8b08a1cc2b238ffa1eb2208c55ef737141a2b6d291dfcde28953596a12350d8db6f519c1181c29de52c03468639b36880a798e languageName: node linkType: hard @@ -15713,17 +15575,6 @@ __metadata: languageName: node linkType: hard -"which@npm:^3.0.0": - version: 3.0.1 - resolution: "which@npm:3.0.1" - dependencies: - isexe: ^2.0.0 - bin: - node-which: bin/which.js - checksum: adf720fe9d84be2d9190458194f814b5e9015ae4b88711b150f30d0f4d0b646544794b86f02c7ebeec1db2029bc3e83a7ff156f542d7521447e5496543e26890 - languageName: node - linkType: hard - "which@npm:^4.0.0": version: 4.0.0 resolution: "which@npm:4.0.0" @@ -15791,7 +15642,7 @@ __metadata: languageName: node linkType: hard -"worker-farm@npm:^1.7.0": +"worker-farm@npm:1.7.0": version: 1.7.0 resolution: "worker-farm@npm:1.7.0" dependencies: @@ -15947,7 +15798,7 @@ __metadata: languageName: node linkType: hard -"yallist@npm:^3.0.2, yallist@npm:^3.1.1": +"yallist@npm:3.1.1, yallist@npm:^3.0.2": version: 3.1.1 resolution: "yallist@npm:3.1.1" checksum: 48f7bb00dc19fc635a13a39fe547f527b10c9290e7b3e836b9a8f1ca04d4d342e85714416b3c2ab74949c9c66f9cebb0473e6bc353b79035356103b47641285d @@ -16108,17 +15959,6 @@ __metadata: languageName: node linkType: hard -"zip-stream@npm:^4.1.0": - version: 4.1.1 - resolution: "zip-stream@npm:4.1.1" - dependencies: - archiver-utils: ^3.0.4 - compress-commons: ^4.1.2 - readable-stream: ^3.6.0 - checksum: 33bd5ee7017656c2ad728b5d4ba510e15bd65ce1ec180c5bbdc7a5f063256353ec482e6a2bc74de7515219d8494147924b9aae16e63fdaaf37cdf7d1ee8df125 - languageName: node - linkType: hard - "zip-stream@npm:^5.0.1": version: 5.0.1 resolution: "zip-stream@npm:5.0.1"