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"