From 782d17afad9b3cc75868f4dfd768381f1f8d8c6d Mon Sep 17 00:00:00 2001 From: vovsemenv <20096510+vovsemenv@users.noreply.github.com> Date: Sat, 22 Jan 2022 11:11:27 +0300 Subject: [PATCH] add labels and links to playwright via attachments (fixes #332, fixes #352, fixes #341, via #408) --- packages/allure-playwright/README.md | 64 ++- packages/allure-playwright/package.json | 2 +- packages/allure-playwright/src/helpers.ts | 118 +++++ packages/allure-playwright/src/index.ts | 16 + packages/allure-playwright/test/fixtures.ts | 2 +- packages/allure-playwright/test/label.spec.ts | 20 + packages/allure-playwright/test/link.spec.ts | 38 ++ yarn.lock | 443 ++++++++++++++++-- 8 files changed, 667 insertions(+), 36 deletions(-) create mode 100644 packages/allure-playwright/src/helpers.ts create mode 100644 packages/allure-playwright/test/label.spec.ts create mode 100644 packages/allure-playwright/test/link.spec.ts diff --git a/packages/allure-playwright/README.md b/packages/allure-playwright/README.md index 0539a80da..85c670eae 100644 --- a/packages/allure-playwright/README.md +++ b/packages/allure-playwright/README.md @@ -7,7 +7,9 @@ This project implements Allure integration with [Playwright Test](https://playwr ```bash npm i -D @playwright/test allure-playwright ``` + or via yarn: + ```bash yarn add @playwright/test allure-playwright --dev ``` @@ -18,7 +20,7 @@ Either add **allure-playwright** into **playwright.config.ts**: ```js { - reporter: 'allure-playwright' + reporter: "allure-playwright"; } ``` @@ -31,12 +33,72 @@ npx playwright test --reporter=line,allure-playwright Specify location for allure results: Mac / Linux + ```bash ALLURE_RESULTS_DIR=my-allure-results npx playwright test --reporter=line,allure-playwright ``` Windows + ```bash set ALLURE_RESULTS_DIR=my-allure-results npx playwright test --reporter=line,allure-playwright ``` + +## Proving extra information + +You can use allure labels to provide extra information about tests such via + +- label +- link +- id +- epic +- feature +- story +- suite +- parentSuite +- subSuite +- owner +- severity +- tag +- issue +- tms + +### Labels Usage + +```js +import { test, expect } from "@playwright/test"; +import { allure } from "allure-playwright"; + +test("basic test", async ({ page }, testInfo) => { + allure.epic("Some Epic"); + allure.story("Some Story"); +}); +``` + +### Links Usage + +```js +import { test, expect } from "@playwright/test"; +import { allure } from "allure-playwright"; + +test("basic test", async ({ page }, testInfo) => { + allure.link({ url: "https://playwright.dev", name: "playwright-site" }); + allure.issue({ + url: "https://github.com/allure-framework/allure-js/issues/352", + name: "Target issue", + }); +}); +``` + +### Attachments Usage + +```js +import { test, expect } from "@playwright/test"; + +test("basic test", async ({ page }, testInfo) => { + const path = testInfo.outputPath("screenshot.png"); + await page.screenshot({ path }); + testInfo.attachments.push({ name: "screenshot", path, contentType: "image/png" }); +}); +``` diff --git a/packages/allure-playwright/package.json b/packages/allure-playwright/package.json index 0afdcb4af..0d0534852 100644 --- a/packages/allure-playwright/package.json +++ b/packages/allure-playwright/package.json @@ -23,7 +23,7 @@ "lint:fix": "eslint ./src --ext .ts --fix" }, "devDependencies": { - "@playwright/test": "^1.15.2", + "@playwright/test": "^1.18.0", "eslint": "^7.32.0", "prettier": "^2.3.2", "rimraf": "^3.0.2", diff --git a/packages/allure-playwright/src/helpers.ts b/packages/allure-playwright/src/helpers.ts new file mode 100644 index 000000000..64ceea772 --- /dev/null +++ b/packages/allure-playwright/src/helpers.ts @@ -0,0 +1,118 @@ +import test from "@playwright/test"; +import { Label, LabelName, Link, LinkType } from "allure-js-commons"; + + +export const ALLURE_METADATA_CONTENT_TYPE = "application/vnd.allure.metadata+json"; +export interface Metadata { + labels?: Label[]; + links?: Link[]; +} + +export class allure { + static addMetadataAttachment(metadata: Metadata) { + test.info().attach("allure-metadata.json",{ + contentType: ALLURE_METADATA_CONTENT_TYPE, + body: Buffer.from(JSON.stringify(metadata), "utf8"), + }); + } + + static label(label: Label | Label[]) { + this.addMetadataAttachment({ + labels: Array.isArray(label) ? label : [label], + }); + } + + static link(link: Link) { + this.addMetadataAttachment({ + links: Array.isArray(link) ? link : [link], + }); + } + + static id(id: string) { + this.label({ + value: id, + name: LabelName.AS_ID, + }); + } + + static epic(epic: string) { + this.label({ + name: LabelName.EPIC, + value: epic, + }); + } + + static feature(epic: string) { + this.label({ + name: LabelName.FEATURE, + value: epic, + }); + } + + static story(story: string): void { + this.label({ + name: LabelName.STORY, + value: story, + }); + } + + static suite(name: string): void { + this.label({ + name: LabelName.SUITE, + value: name, + }); + } + + static parentSuite(name: string) { + this.label({ + name: LabelName.PARENT_SUITE, + value: name, + }); + } + + static subSuite(name: string) { + this.label({ + name: LabelName.SUB_SUITE, + value: name, + }); + } + + static owner(owner: string) { + this.label({ + name: LabelName.OWNER, + value: owner, + }); + } + + static severity(severity: string) { + this.label({ + name: LabelName.SEVERITY, + value: severity, + }); + } + + static tag(tag: string) { + this.label({ + name: LabelName.TAG, + value: tag, + }); + } + + static issue(issueData: Omit) { + this.link({ + url: issueData.url, + name: issueData.name, + type: LinkType.ISSUE, + }); + } + + static tms(issueData: Omit) { + this.link({ + url: issueData.url, + name: issueData.name, + type: LinkType.TMS, + }); + } +} + +export {LabelName} from "allure-js-commons"; diff --git a/packages/allure-playwright/src/index.ts b/packages/allure-playwright/src/index.ts index ba7799040..39da21beb 100644 --- a/packages/allure-playwright/src/index.ts +++ b/packages/allure-playwright/src/index.ts @@ -25,9 +25,12 @@ import { ExecutableItemWrapper, InMemoryAllureWriter, LabelName, + LinkType, Status, } from "allure-js-commons"; +import { ALLURE_METADATA_CONTENT_TYPE, Metadata } from "./helpers"; + class AllureReporter implements Reporter { config!: FullConfig; suite!: Suite; @@ -93,6 +96,17 @@ class AllureReporter implements Reporter { continue; } + if (attachment.contentType === ALLURE_METADATA_CONTENT_TYPE) { + if (!attachment.body) { + continue; + } + + const metadata: Metadata = JSON.parse(attachment.body.toString()); + metadata.links?.forEach((val) => allureTest.addLink(val.url, val.name, val.type)); + metadata.labels?.forEach((val) => allureTest.addLabel(val.name, val.value)); + continue; + } + let fileName; if (attachment.body) { fileName = runtime.writeAttachment(attachment.body, attachment.contentType); @@ -175,3 +189,5 @@ const appendStep = (parent: ExecutableItemWrapper, step: TestStep) => { appendStep(allureStep, child); } }; + +export * from "./helpers"; diff --git a/packages/allure-playwright/test/fixtures.ts b/packages/allure-playwright/test/fixtures.ts index 07af43741..c240d4e7e 100644 --- a/packages/allure-playwright/test/fixtures.ts +++ b/packages/allure-playwright/test/fixtures.ts @@ -70,7 +70,7 @@ async function runPlaywrightTest( } } const outputDir = path.join(baseDir, "test-results"); - const args = [require.resolve("@playwright/test/lib/cli/cli.js"), "test"]; + const args = [require.resolve("@playwright/test/cli"), "test"]; args.push( "--output=" + outputDir, "--reporter=" + require.resolve("../dist/index.js"), diff --git a/packages/allure-playwright/test/label.spec.ts b/packages/allure-playwright/test/label.spec.ts new file mode 100644 index 000000000..48e9e8dc3 --- /dev/null +++ b/packages/allure-playwright/test/label.spec.ts @@ -0,0 +1,20 @@ +import { Label, LabelName } from "allure-js-commons"; +import { test, expect } from "./fixtures"; + +test("should have label", async ({ runInlineTest }) => { + const result: Label[] = await runInlineTest( + { + "a.test.ts": ` + import { test, expect } from '@playwright/test'; + import { allure, LabelName } from '../../dist/index' + test('should add epic label', async ({}, testInfo) => { + allure.label({name:LabelName.EPIC,value:'Test epic label'}); + }); + `, + }, + (writer) => { + return writer.tests.map((t) => t.labels); + }, + ); + expect(result[0]).toContainEqual({ name: LabelName.EPIC, value: "Test epic label" }); +}); diff --git a/packages/allure-playwright/test/link.spec.ts b/packages/allure-playwright/test/link.spec.ts new file mode 100644 index 000000000..1c13d11c5 --- /dev/null +++ b/packages/allure-playwright/test/link.spec.ts @@ -0,0 +1,38 @@ +/** + * Copyright (c) Microsoft Corporation. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import { Label } from "allure-js-commons"; +import { test, expect } from "./fixtures"; +test("should have link", async ({ runInlineTest }) => { + const result: Label[] = await runInlineTest( + { + "a.test.ts": ` + import { test } from '@playwright/test'; + import { allure } from '../../dist/index' + test('should add epic link', async ({}, testInfo) => { + allure.link({url:"https://playwright.dev/docs/api/class-page#page-workers"}); + }); + `, + }, + (writer) => { + return writer.tests.map(val => val.links); + }, + ); + + expect(result[0]).toContainEqual({ + url: "https://playwright.dev/docs/api/class-page#page-workers", + }); +}); diff --git a/yarn.lock b/yarn.lock index 0681e8fe6..b70500d8c 100644 --- a/yarn.lock +++ b/yarn.lock @@ -23,6 +23,15 @@ __metadata: languageName: node linkType: hard +"@babel/code-frame@npm:^7.12.13": + version: 7.16.7 + resolution: "@babel/code-frame@npm:7.16.7" + dependencies: + "@babel/highlight": ^7.16.7 + checksum: db2f7faa31bc2c9cf63197b481b30ea57147a5fc1a6fab60e5d6c02cdfbf6de8e17b5121f99917b3dabb5eeb572da078312e70697415940383efc140d4e0808b + languageName: node + linkType: hard + "@babel/compat-data@npm:^7.15.0": version: 7.15.0 resolution: "@babel/compat-data@npm:7.15.0" @@ -73,6 +82,15 @@ __metadata: languageName: node linkType: hard +"@babel/helper-annotate-as-pure@npm:^7.16.7": + version: 7.16.7 + resolution: "@babel/helper-annotate-as-pure@npm:7.16.7" + dependencies: + "@babel/types": ^7.16.7 + checksum: d235be963fed5d48a8a4cfabc41c3f03fad6a947810dbcab9cebed7f819811457e10d99b4b2e942ad71baa7ee8e3cd3f5f38a4e4685639ddfddb7528d9a07179 + languageName: node + linkType: hard + "@babel/helper-compilation-targets@npm:^7.15.0": version: 7.15.0 resolution: "@babel/helper-compilation-targets@npm:7.15.0" @@ -150,6 +168,15 @@ __metadata: languageName: node linkType: hard +"@babel/helper-module-imports@npm:^7.16.7": + version: 7.16.7 + resolution: "@babel/helper-module-imports@npm:7.16.7" + dependencies: + "@babel/types": ^7.16.7 + checksum: ddd2c4a600a2e9a4fee192ab92bf35a627c5461dbab4af31b903d9ba4d6b6e59e0ff3499fde4e2e9a0eebe24906f00b636f8b4d9bd72ff24d50e6618215c3212 + languageName: node + linkType: hard + "@babel/helper-module-transforms@npm:^7.15.0": version: 7.15.0 resolution: "@babel/helper-module-transforms@npm:7.15.0" @@ -182,6 +209,13 @@ __metadata: languageName: node linkType: hard +"@babel/helper-plugin-utils@npm:^7.16.7": + version: 7.16.7 + resolution: "@babel/helper-plugin-utils@npm:7.16.7" + checksum: d08dd86554a186c2538547cd537552e4029f704994a9201d41d82015c10ed7f58f9036e8d1527c3760f042409163269d308b0b3706589039c5f1884619c6d4ce + languageName: node + linkType: hard + "@babel/helper-replace-supers@npm:^7.15.0": version: 7.15.0 resolution: "@babel/helper-replace-supers@npm:7.15.0" @@ -228,6 +262,13 @@ __metadata: languageName: node linkType: hard +"@babel/helper-validator-identifier@npm:^7.16.7": + version: 7.16.7 + resolution: "@babel/helper-validator-identifier@npm:7.16.7" + checksum: dbb3db9d184343152520a209b5684f5e0ed416109cde82b428ca9c759c29b10c7450657785a8b5c5256aa74acc6da491c1f0cf6b784939f7931ef82982051b69 + languageName: node + linkType: hard + "@babel/helper-validator-option@npm:^7.14.5": version: 7.14.5 resolution: "@babel/helper-validator-option@npm:7.14.5" @@ -257,6 +298,17 @@ __metadata: languageName: node linkType: hard +"@babel/highlight@npm:^7.16.7": + version: 7.16.10 + resolution: "@babel/highlight@npm:7.16.10" + dependencies: + "@babel/helper-validator-identifier": ^7.16.7 + chalk: ^2.0.0 + js-tokens: ^4.0.0 + checksum: 1f1bdd752a90844f4efc22166a46303fb651ba0fd75a06daba3ebae2575ab3edc1da9827c279872a3aaf305f50a18473c5fa1966752726a2b253065fd4c0745e + languageName: node + linkType: hard + "@babel/parser@npm:^7.1.0, @babel/parser@npm:^7.14.5, @babel/parser@npm:^7.15.0": version: 7.15.3 resolution: "@babel/parser@npm:7.15.3" @@ -454,6 +506,17 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-syntax-jsx@npm:^7.16.7": + version: 7.16.7 + resolution: "@babel/plugin-syntax-jsx@npm:7.16.7" + dependencies: + "@babel/helper-plugin-utils": ^7.16.7 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: cd9b0e53c50e8ddb0afaf0f42e0b221a94e4f59aee32a591364266a31195c48cac5fef288d02c1c935686bda982d2e0f1ed61cceb995fc9f6fb09ef5ebecdd2b + languageName: node + linkType: hard + "@babel/plugin-syntax-logical-assignment-operators@npm:^7.10.4, @babel/plugin-syntax-logical-assignment-operators@npm:^7.8.3": version: 7.10.4 resolution: "@babel/plugin-syntax-logical-assignment-operators@npm:7.10.4" @@ -567,6 +630,21 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-transform-react-jsx@npm:^7.14.5": + version: 7.16.7 + resolution: "@babel/plugin-transform-react-jsx@npm:7.16.7" + dependencies: + "@babel/helper-annotate-as-pure": ^7.16.7 + "@babel/helper-module-imports": ^7.16.7 + "@babel/helper-plugin-utils": ^7.16.7 + "@babel/plugin-syntax-jsx": ^7.16.7 + "@babel/types": ^7.16.7 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 0e82346d7c99b4467946d535a8c626a988e5670f65a15dee8520ce9cf4f0147c99decc1cbb4bd352083eaafd259ee3e4299854cac6304a83666d488edf4e58f6 + languageName: node + linkType: hard + "@babel/plugin-transform-typescript@npm:^7.15.0": version: 7.15.0 resolution: "@babel/plugin-transform-typescript@npm:7.15.0" @@ -641,6 +719,16 @@ __metadata: languageName: node linkType: hard +"@babel/types@npm:^7.16.7": + version: 7.16.8 + resolution: "@babel/types@npm:7.16.8" + dependencies: + "@babel/helper-validator-identifier": ^7.16.7 + to-fast-properties: ^2.0.0 + checksum: 4f6a187b2924df70e21d6e6c0822f91b1b936fe060bc92bb477b93bd8a712c88fe41a73f85c0ec53b033353374fe33e773b04ffc340ad36afd8f647dd05c4ee1 + languageName: node + linkType: hard + "@bcoe/v8-coverage@npm:^0.2.3": version: 0.2.3 resolution: "@bcoe/v8-coverage@npm:0.2.3" @@ -944,6 +1032,19 @@ __metadata: languageName: node linkType: hard +"@jest/types@npm:^27.2.5, @jest/types@npm:^27.4.2": + version: 27.4.2 + resolution: "@jest/types@npm:27.4.2" + dependencies: + "@types/istanbul-lib-coverage": ^2.0.0 + "@types/istanbul-reports": ^3.0.0 + "@types/node": "*" + "@types/yargs": ^16.0.0 + chalk: ^4.0.0 + checksum: 1191022023e32763063cc1c8b1143fa316fb05db2f9698280a7bdbafcabd989e5fd64f8eb875b8a2e54c53f25dba45ed2eea8ced394d9e484da0fda674cd17a5 + languageName: node + linkType: hard + "@nodelib/fs.scandir@npm:2.1.5": version: 2.1.5 resolution: "@nodelib/fs.scandir@npm:2.1.5" @@ -991,9 +1092,9 @@ __metadata: languageName: node linkType: hard -"@playwright/test@npm:^1.15.2": - version: 1.15.2 - resolution: "@playwright/test@npm:1.15.2" +"@playwright/test@npm:^1.18.0": + version: 1.18.0 + resolution: "@playwright/test@npm:1.18.0" dependencies: "@babel/code-frame": ^7.14.5 "@babel/core": ^7.14.8 @@ -1011,32 +1112,31 @@ __metadata: "@babel/plugin-syntax-object-rest-spread": ^7.8.3 "@babel/plugin-syntax-optional-catch-binding": ^7.8.3 "@babel/plugin-transform-modules-commonjs": ^7.14.5 + "@babel/plugin-transform-react-jsx": ^7.14.5 "@babel/preset-typescript": ^7.14.5 - colors: ^1.4.0 - commander: ^6.1.0 + babel-plugin-module-resolver: ^4.1.0 + colors: 1.4.0 + commander: ^8.2.0 debug: ^4.1.1 - expect: ^26.4.2 - extract-zip: ^2.0.1 - https-proxy-agent: ^5.0.0 + expect: =27.2.5 + jest-matcher-utils: =27.2.5 jpeg-js: ^0.4.2 + json5: ^2.2.0 mime: ^2.4.6 minimatch: ^3.0.3 ms: ^2.1.2 - open: ^8.2.1 + open: ^8.3.0 pirates: ^4.0.1 pixelmatch: ^5.2.1 + playwright-core: =1.18.0 pngjs: ^5.0.0 - progress: ^2.0.3 - proper-lockfile: ^4.1.1 - proxy-from-env: ^1.1.0 rimraf: ^3.0.2 source-map-support: ^0.4.18 stack-utils: ^2.0.3 - ws: ^7.4.6 yazl: ^2.5.1 bin: - playwright: lib/cli/cli.js - checksum: 3785c8ae7a7f4e69817d621956add21ae8541d0ec2b5b6d64d823b0e324553a1a38bbb72331a28471c79798fa2dc0cbbabb19b5dd28a53cf901afd47b3e4663f + playwright: cli.js + checksum: 576153bdbd4105ef376a4e3423ead165b81c5ed3d9bc881ddd4cffec356eb2e009f56504b7da9674df53547df076641e7c198f2fef5c087199a8c13b986eb302 languageName: node linkType: hard @@ -1368,6 +1468,15 @@ __metadata: languageName: node linkType: hard +"@types/yargs@npm:^16.0.0": + version: 16.0.4 + resolution: "@types/yargs@npm:16.0.4" + dependencies: + "@types/yargs-parser": "*" + checksum: caa21d2c957592fe2184a8368c8cbe5a82a6c2e2f2893722e489f842dc5963293d2f3120bc06fe3933d60a3a0d1e2eb269649fd6b1947fe1820f8841ba611dd9 + languageName: node + linkType: hard + "@types/yauzl@npm:^2.9.1": version: 2.9.2 resolution: "@types/yauzl@npm:2.9.2" @@ -1784,7 +1893,7 @@ __metadata: version: 0.0.0-use.local resolution: "allure-playwright@workspace:packages/allure-playwright" dependencies: - "@playwright/test": ^1.15.2 + "@playwright/test": ^1.18.0 allure-js-commons: "workspace:*" eslint: ^7.32.0 prettier: ^2.3.2 @@ -1830,6 +1939,13 @@ __metadata: languageName: node linkType: hard +"ansi-regex@npm:^5.0.1": + version: 5.0.1 + resolution: "ansi-regex@npm:5.0.1" + checksum: 2aa4bb54caf2d622f1afdad09441695af2a83aa3fe8b8afa581d205e57ed4261c183c4d3877cee25794443fde5876417d859c108078ab788d6af7e4fe52eb66b + languageName: node + linkType: hard + "ansi-styles@npm:^3.2.1": version: 3.2.1 resolution: "ansi-styles@npm:3.2.1" @@ -1848,6 +1964,13 @@ __metadata: languageName: node linkType: hard +"ansi-styles@npm:^5.0.0": + version: 5.2.0 + resolution: "ansi-styles@npm:5.2.0" + checksum: d7f4e97ce0623aea6bc0d90dcd28881ee04cba06c570b97fd3391bd7a268eedfd9d5e2dd4fdcbdd82b8105df5faf6f24aaedc08eaf3da898e702db5948f63469 + languageName: node + linkType: hard + "any-promise@npm:^1.0.0": version: 1.3.0 resolution: "any-promise@npm:1.3.0" @@ -2104,6 +2227,19 @@ __metadata: languageName: node linkType: hard +"babel-plugin-module-resolver@npm:^4.1.0": + version: 4.1.0 + resolution: "babel-plugin-module-resolver@npm:4.1.0" + dependencies: + find-babel-config: ^1.2.0 + glob: ^7.1.6 + pkg-up: ^3.1.0 + reselect: ^4.0.0 + resolve: ^1.13.1 + checksum: 3907fba21ca3c66a081e01fbd16bb09c84781749db16aa57805becc376bb5ee8dc373d4b209613e1453d30ea6c836d13073e9e7b6d239ff1806dd1763a9ab18f + languageName: node + linkType: hard + "babel-preset-current-node-syntax@npm:^1.0.0": version: 1.0.1 resolution: "babel-preset-current-node-syntax@npm:1.0.1" @@ -2636,7 +2772,7 @@ __metadata: languageName: node linkType: hard -"colors@npm:^1.1.2, colors@npm:^1.4.0": +"colors@npm:1.4.0, colors@npm:^1.1.2": version: 1.4.0 resolution: "colors@npm:1.4.0" checksum: 98aa2c2418ad87dedf25d781be69dc5fc5908e279d9d30c34d8b702e586a0474605b3a189511482b9d5ed0d20c867515d22749537f7bc546256c6014f3ebdcec @@ -2659,13 +2795,6 @@ __metadata: languageName: node linkType: hard -"commander@npm:^6.1.0": - version: 6.2.1 - resolution: "commander@npm:6.2.1" - checksum: d7090410c0de6bc5c67d3ca41c41760d6d268f3c799e530aafb73b7437d1826bbf0d2a3edac33f8b57cc9887b4a986dce307fa5557e109be40eadb7c43b21742 - languageName: node - linkType: hard - "commander@npm:^7.2.0": version: 7.2.0 resolution: "commander@npm:7.2.0" @@ -2673,6 +2802,13 @@ __metadata: languageName: node linkType: hard +"commander@npm:^8.2.0": + version: 8.3.0 + resolution: "commander@npm:8.3.0" + checksum: 0f82321821fc27b83bd409510bb9deeebcfa799ff0bf5d102128b500b7af22872c0c92cb6a0ebc5a4cf19c6b550fba9cedfa7329d18c6442a625f851377bacf0 + languageName: node + linkType: hard + "comment-parser@npm:1.2.4": version: 1.2.4 resolution: "comment-parser@npm:1.2.4" @@ -3049,6 +3185,13 @@ __metadata: languageName: node linkType: hard +"diff-sequences@npm:^27.4.0": + version: 27.4.0 + resolution: "diff-sequences@npm:27.4.0" + checksum: 66d04033e8632eeacdd029b4ecaf87d233d475e4b0cd1cee035eda99e70e1a7f803507d72f2677990ef526f28a2f6e5709af8d94dcdc0682b8884a3a646190a1 + languageName: node + linkType: hard + "diff@npm:5.0.0": version: 5.0.0 resolution: "diff@npm:5.0.0" @@ -3643,7 +3786,21 @@ __metadata: languageName: node linkType: hard -"expect@npm:^26.4.2, expect@npm:^26.6.2": +"expect@npm:=27.2.5": + version: 27.2.5 + resolution: "expect@npm:27.2.5" + dependencies: + "@jest/types": ^27.2.5 + ansi-styles: ^5.0.0 + jest-get-type: ^27.0.6 + jest-matcher-utils: ^27.2.5 + jest-message-util: ^27.2.5 + jest-regex-util: ^27.0.6 + checksum: c9be6ec30d19f69c6b838c379e102c156b3ce231e0e3bfc7928eb7a239e5d2a8ed3a43ded4856ad6b3f2f83944561455ad3cf4dfc5322e7d962f2eddc67941c7 + languageName: node + linkType: hard + +"expect@npm:^26.6.2": version: 26.6.2 resolution: "expect@npm:26.6.2" dependencies: @@ -3834,6 +3991,16 @@ __metadata: languageName: node linkType: hard +"find-babel-config@npm:^1.2.0": + version: 1.2.0 + resolution: "find-babel-config@npm:1.2.0" + dependencies: + json5: ^0.5.1 + path-exists: ^3.0.0 + checksum: 0a1785d3da9f38637885d9d65f183aaa072f51a834f733035e9694e4d0f6983ae8c8e75cd4e08b92af6f595b3b490ee813a1c5a9b14740685aa836fa1e878583 + languageName: node + linkType: hard + "find-cache-dir@npm:^3.2.0": version: 3.3.1 resolution: "find-cache-dir@npm:3.3.1" @@ -3864,6 +4031,15 @@ __metadata: languageName: node linkType: hard +"find-up@npm:^3.0.0": + version: 3.0.0 + resolution: "find-up@npm:3.0.0" + dependencies: + locate-path: ^3.0.0 + checksum: 38eba3fe7a66e4bc7f0f5a1366dc25508b7cfc349f852640e3678d26ad9a6d7e2c43eff0a472287de4a9753ef58f066a0ea892a256fa3636ad51b3fe1e17fae9 + languageName: node + linkType: hard + "find-up@npm:^4.0.0, find-up@npm:^4.1.0": version: 4.1.0 resolution: "find-up@npm:4.1.0" @@ -4597,6 +4773,15 @@ __metadata: languageName: node linkType: hard +"is-core-module@npm:^2.8.0": + version: 2.8.1 + resolution: "is-core-module@npm:2.8.1" + dependencies: + has: ^1.0.3 + checksum: 418b7bc10768a73c41c7ef497e293719604007f88934a6ffc5f7c78702791b8528102fb4c9e56d006d69361549b3d9519440214a74aefc7e0b79e5e4411d377f + languageName: node + linkType: hard + "is-data-descriptor@npm:^0.1.4": version: 0.1.4 resolution: "is-data-descriptor@npm:0.1.4" @@ -5073,6 +5258,18 @@ __metadata: languageName: node linkType: hard +"jest-diff@npm:^27.2.5, jest-diff@npm:^27.4.6": + version: 27.4.6 + resolution: "jest-diff@npm:27.4.6" + dependencies: + chalk: ^4.0.0 + diff-sequences: ^27.4.0 + jest-get-type: ^27.4.0 + pretty-format: ^27.4.6 + checksum: cf6b7e80e3c64a7c71ab209c0325bbda175991aed985ecee7652df9d6540e4959089038e208c04ab05391c9ddf07adc72f0c8c26cc4cee6fa17f76f500e2bf43 + languageName: node + linkType: hard + "jest-docblock@npm:^26.0.0": version: 26.0.0 resolution: "jest-docblock@npm:26.0.0" @@ -5131,6 +5328,13 @@ __metadata: languageName: node linkType: hard +"jest-get-type@npm:^27.0.6, jest-get-type@npm:^27.4.0": + version: 27.4.0 + resolution: "jest-get-type@npm:27.4.0" + checksum: bb9b70e420009fdaed3026d5bccd01569f92c7500f9f544d862796d4f4efa93ced5484864b2f272c7748bfb5bfd3268d48868b169c51ab45fe5b45b9519b6e46 + languageName: node + linkType: hard + "jest-haste-map@npm:^26.6.2": version: 26.6.2 resolution: "jest-haste-map@npm:26.6.2" @@ -5192,6 +5396,18 @@ __metadata: languageName: node linkType: hard +"jest-matcher-utils@npm:=27.2.5": + version: 27.2.5 + resolution: "jest-matcher-utils@npm:27.2.5" + dependencies: + chalk: ^4.0.0 + jest-diff: ^27.2.5 + jest-get-type: ^27.0.6 + pretty-format: ^27.2.5 + checksum: 92f285c8e2a50f2b6761a1d81db98858416b6ccb6559c9ce954ef9cad6b76729ac18b8c1e98e2e81e1a55fca4dc9d8571d5dfbc2161583ed5716119e35b2a089 + languageName: node + linkType: hard + "jest-matcher-utils@npm:^26.6.2": version: 26.6.2 resolution: "jest-matcher-utils@npm:26.6.2" @@ -5204,6 +5420,18 @@ __metadata: languageName: node linkType: hard +"jest-matcher-utils@npm:^27.2.5": + version: 27.4.6 + resolution: "jest-matcher-utils@npm:27.4.6" + dependencies: + chalk: ^4.0.0 + jest-diff: ^27.4.6 + jest-get-type: ^27.4.0 + pretty-format: ^27.4.6 + checksum: 445a8cc9eaa7cb08653a10cfc4f109eca76a97d1b1d3a01067bd77efa9cb3a554b74c7402a4c9d5083b21e11218e1515ef538faa47fa47c282072b4825f6b307 + languageName: node + linkType: hard + "jest-message-util@npm:^26.6.2": version: 26.6.2 resolution: "jest-message-util@npm:26.6.2" @@ -5221,6 +5449,23 @@ __metadata: languageName: node linkType: hard +"jest-message-util@npm:^27.2.5": + version: 27.4.6 + resolution: "jest-message-util@npm:27.4.6" + dependencies: + "@babel/code-frame": ^7.12.13 + "@jest/types": ^27.4.2 + "@types/stack-utils": ^2.0.0 + chalk: ^4.0.0 + graceful-fs: ^4.2.4 + micromatch: ^4.0.4 + pretty-format: ^27.4.6 + slash: ^3.0.0 + stack-utils: ^2.0.3 + checksum: 1fdd542d091dbf7aa63a484feead97a921e3c4d6db3784fe2e6d83e9110ac06de5691fdc043da991ca1d0ce5d179ea8266c8d93b388f4bba7d80a267fdd946df + languageName: node + linkType: hard + "jest-mock@npm:^26.6.2": version: 26.6.2 resolution: "jest-mock@npm:26.6.2" @@ -5250,6 +5495,13 @@ __metadata: languageName: node linkType: hard +"jest-regex-util@npm:^27.0.6": + version: 27.4.0 + resolution: "jest-regex-util@npm:27.4.0" + checksum: 222e4aacec601fd2cfdfee74adb8d324fef672f77577a7c2220893ec1a62031a2640388fce8d0bd8be2e4537da1ab40aa74dba60ac531a23b2643b15c65014ac + languageName: node + linkType: hard + "jest-resolve-dependencies@npm:^26.6.3": version: 26.6.3 resolution: "jest-resolve-dependencies@npm:26.6.3" @@ -5571,6 +5823,15 @@ __metadata: languageName: node linkType: hard +"json5@npm:^0.5.1": + version: 0.5.1 + resolution: "json5@npm:0.5.1" + bin: + json5: lib/cli.js + checksum: 9b85bf06955b23eaa4b7328aa8892e3887e81ca731dd27af04a5f5f1458fbc5e1de57a24442e3272f8a888dd1abe1cb68eb693324035f6b3aeba4fcab7667d62 + languageName: node + linkType: hard + "json5@npm:^1.0.1": version: 1.0.1 resolution: "json5@npm:1.0.1" @@ -5582,7 +5843,7 @@ __metadata: languageName: node linkType: hard -"json5@npm:^2.1.2": +"json5@npm:^2.1.2, json5@npm:^2.2.0": version: 2.2.0 resolution: "json5@npm:2.2.0" dependencies: @@ -5751,6 +6012,16 @@ __metadata: languageName: node linkType: hard +"locate-path@npm:^3.0.0": + version: 3.0.0 + resolution: "locate-path@npm:3.0.0" + dependencies: + p-locate: ^3.0.0 + path-exists: ^3.0.0 + checksum: 53db3996672f21f8b0bf2a2c645ae2c13ffdae1eeecfcd399a583bce8516c0b88dcb4222ca6efbbbeb6949df7e46860895be2c02e8d3219abd373ace3bfb4e11 + languageName: node + linkType: hard + "locate-path@npm:^5.0.0": version: 5.0.0 resolution: "locate-path@npm:5.0.0" @@ -6535,14 +6806,14 @@ __metadata: languageName: node linkType: hard -"open@npm:^8.2.1": - version: 8.3.0 - resolution: "open@npm:8.3.0" +"open@npm:^8.3.0": + version: 8.4.0 + resolution: "open@npm:8.4.0" dependencies: define-lazy-prop: ^2.0.0 is-docker: ^2.1.1 is-wsl: ^2.2.0 - checksum: 10fcb7ad453534cc1103ff90e0ebc36e542d67a4ccacf3b3d78c8e6401cec686e2849479cbc4a3386c7a3210064cbcc52e6ac38b788fc5fff1cf1dcbfef3c83b + checksum: e9545bec64cdbf30a0c35c1bdc310344adf8428a117f7d8df3c0af0a0a24c513b304916a6d9b11db0190ff7225c2d578885080b761ed46a3d5f6f1eebb98b63c languageName: node linkType: hard @@ -6597,7 +6868,7 @@ __metadata: languageName: node linkType: hard -"p-limit@npm:^2.2.0": +"p-limit@npm:^2.0.0, p-limit@npm:^2.2.0": version: 2.3.0 resolution: "p-limit@npm:2.3.0" dependencies: @@ -6624,6 +6895,15 @@ __metadata: languageName: node linkType: hard +"p-locate@npm:^3.0.0": + version: 3.0.0 + resolution: "p-locate@npm:3.0.0" + dependencies: + p-limit: ^2.0.0 + checksum: 83991734a9854a05fe9dbb29f707ea8a0599391f52daac32b86f08e21415e857ffa60f0e120bfe7ce0cc4faf9274a50239c7895fc0d0579d08411e513b83a4ae + languageName: node + linkType: hard + "p-locate@npm:^4.1.0": version: 4.1.0 resolution: "p-locate@npm:4.1.0" @@ -6775,7 +7055,7 @@ __metadata: languageName: node linkType: hard -"path-parse@npm:^1.0.6": +"path-parse@npm:^1.0.6, path-parse@npm:^1.0.7": version: 1.0.7 resolution: "path-parse@npm:1.0.7" checksum: 49abf3d81115642938a8700ec580da6e830dde670be21893c62f4e10bd7dd4c3742ddc603fe24f898cba7eb0c6bc1777f8d9ac14185d34540c6d4d80cd9cae8a @@ -6892,6 +7172,41 @@ __metadata: languageName: node linkType: hard +"pkg-up@npm:^3.1.0": + version: 3.1.0 + resolution: "pkg-up@npm:3.1.0" + dependencies: + find-up: ^3.0.0 + checksum: 5bac346b7c7c903613c057ae3ab722f320716199d753f4a7d053d38f2b5955460f3e6ab73b4762c62fd3e947f58e04f1343e92089e7bb6091c90877406fcd8c8 + languageName: node + linkType: hard + +"playwright-core@npm:=1.18.0": + version: 1.18.0 + resolution: "playwright-core@npm:1.18.0" + dependencies: + commander: ^8.2.0 + debug: ^4.1.1 + extract-zip: ^2.0.1 + https-proxy-agent: ^5.0.0 + jpeg-js: ^0.4.2 + mime: ^2.4.6 + pngjs: ^5.0.0 + progress: ^2.0.3 + proper-lockfile: ^4.1.1 + proxy-from-env: ^1.1.0 + rimraf: ^3.0.2 + socks-proxy-agent: ^6.1.0 + stack-utils: ^2.0.3 + ws: ^7.4.6 + yauzl: ^2.10.0 + yazl: ^2.5.1 + bin: + playwright: cli.js + checksum: 6e76dc5ab993d30a150f46b98ad8921801b2bb6ded517813814db1c074b3bb76975453ba826b0f085600d0a586816e04f9b33ef6e88a624e443bcce2effbef6f + languageName: node + linkType: hard + "please-upgrade-node@npm:^3.2.0": version: 3.2.0 resolution: "please-upgrade-node@npm:3.2.0" @@ -6957,6 +7272,17 @@ __metadata: languageName: node linkType: hard +"pretty-format@npm:^27.2.5, pretty-format@npm:^27.4.6": + version: 27.4.6 + resolution: "pretty-format@npm:27.4.6" + dependencies: + ansi-regex: ^5.0.1 + ansi-styles: ^5.0.0 + react-is: ^17.0.1 + checksum: 5eda32e4e47ddd1a9e8fe9ebef519b217ba403eb8bcb804ba551dfb37f87e674472013fcf78480ab535844fdddcc706fac94511eba349bfb94a138a02d1a7a59 + languageName: node + linkType: hard + "process-nextick-args@npm:~2.0.0": version: 2.0.1 resolution: "process-nextick-args@npm:2.0.1" @@ -7256,6 +7582,13 @@ __metadata: languageName: node linkType: hard +"reselect@npm:^4.0.0": + version: 4.1.5 + resolution: "reselect@npm:4.1.5" + checksum: 54c13c1e795b2ea70cba8384138aebe78adda00cbea303cc94b64da0a70d74c896cc9a03115ae38b8bff990e7a60dcd6452ab68cbec01b0b38c1afda70714cf0 + languageName: node + linkType: hard + "resolve-cwd@npm:^3.0.0": version: 3.0.0 resolution: "resolve-cwd@npm:3.0.0" @@ -7296,6 +7629,19 @@ __metadata: languageName: node linkType: hard +resolve@^1.13.1: + version: 1.21.1 + resolution: "resolve@npm:1.21.1" + dependencies: + is-core-module: ^2.8.0 + path-parse: ^1.0.7 + supports-preserve-symlinks-flag: ^1.0.0 + bin: + resolve: bin/resolve + checksum: 4703fbd6ddaebf7a7f7834ca29f5cfa2c64ef7988ac34bcd26148f0d017783d3a475936ffca02add1b9696e0d1db2a75210052c4b08e748e144e2886e575617c + languageName: node + linkType: hard + "resolve@patch:resolve@^1.10.0#~builtin, resolve@patch:resolve@^1.18.1#~builtin, resolve@patch:resolve@^1.20.0#~builtin, resolve@patch:resolve@^1.3.3#~builtin": version: 1.20.0 resolution: "resolve@patch:resolve@npm%3A1.20.0#~builtin::version=1.20.0&hash=00b1ff" @@ -7306,6 +7652,19 @@ __metadata: languageName: node linkType: hard +"resolve@patch:resolve@^1.13.1#~builtin": + version: 1.21.1 + resolution: "resolve@patch:resolve@npm%3A1.21.1#~builtin::version=1.21.1&hash=00b1ff" + dependencies: + is-core-module: ^2.8.0 + path-parse: ^1.0.7 + supports-preserve-symlinks-flag: ^1.0.0 + bin: + resolve: bin/resolve + checksum: abab8b2c73c3102c42fb15f1923c5f59f804197b93dc0346228c5fca81ea9ce8926f680d5554d1c9c85b904614211456cf17b35002aafb07a65019bcef70e393 + languageName: node + linkType: hard + "restore-cursor@npm:^3.1.0": version: 3.1.0 resolution: "restore-cursor@npm:3.1.0" @@ -7676,7 +8035,18 @@ __metadata: languageName: node linkType: hard -"socks@npm:^2.3.3": +"socks-proxy-agent@npm:^6.1.0": + version: 6.1.1 + resolution: "socks-proxy-agent@npm:6.1.1" + dependencies: + agent-base: ^6.0.2 + debug: ^4.3.1 + socks: ^2.6.1 + checksum: 9a8a4f791bba0060315cf7291ca6f9db37d6fc280fd0860d73d8887d3efe4c22e823aa25a8d5375f6079279f8dc91b50c075345179bf832bfe3c7c26d3582e3c + languageName: node + linkType: hard + +"socks@npm:^2.3.3, socks@npm:^2.6.1": version: 2.6.1 resolution: "socks@npm:2.6.1" dependencies: @@ -8104,6 +8474,13 @@ __metadata: languageName: node linkType: hard +"supports-preserve-symlinks-flag@npm:^1.0.0": + version: 1.0.0 + resolution: "supports-preserve-symlinks-flag@npm:1.0.0" + checksum: 53b1e247e68e05db7b3808b99b892bd36fb096e6fba213a06da7fab22045e97597db425c724f2bbd6c99a3c295e1e73f3e4de78592289f38431049e1277ca0ae + languageName: node + linkType: hard + "symbol-tree@npm:^3.2.4": version: 3.2.4 resolution: "symbol-tree@npm:3.2.4"