From ae4de9589eb28897aca6b1c4bd714a94d3c86978 Mon Sep 17 00:00:00 2001 From: Weslley Campos <30299972+weslley543@users.noreply.github.com> Date: Wed, 27 Jul 2022 23:00:54 -0300 Subject: [PATCH] Chore: add playwright ee coverage (#26293) Co-authored-by: souzaramon <25514401+souzaramon@users.noreply.github.com> Co-authored-by: Kevin Aleman <11577696+KevLehman@users.noreply.github.com> Co-authored-by: Guilherme Gazzo <5263975+ggazzo@users.noreply.github.com> Co-authored-by: Murtaza Patrawala <34130764+murtaza98@users.noreply.github.com> Co-authored-by: Rodrigo Nascimento <234261+rodrigok@users.noreply.github.com> --- .github/workflows/build_and_test.yml | 22 +- apps/meteor/.babelrc | 3 + apps/meteor/package.json | 3 + .../tests/e2e/01-forgot-password.spec.ts | 3 +- apps/meteor/tests/e2e/02-register.spec.ts | 2 +- apps/meteor/tests/e2e/03-login.spec.ts | 2 +- .../tests/e2e/05-channel-creation.spec.ts | 2 +- apps/meteor/tests/e2e/06-messaging.spec.ts | 3 +- apps/meteor/tests/e2e/07-emoji.spec.ts | 3 +- apps/meteor/tests/e2e/09-channel.spec.ts | 3 +- .../tests/e2e/10-user-preferences.spec.ts | 2 +- apps/meteor/tests/e2e/11-admin.spec.ts | 3 +- apps/meteor/tests/e2e/12-settings.spec.ts | 3 +- apps/meteor/tests/e2e/13-permissions.spec.ts | 2 +- .../tests/e2e/14-setting-permissions.spec.ts | 4 +- .../meteor/tests/e2e/15-message-popup.spec.ts | 3 +- apps/meteor/tests/e2e/16-discussion.spec.ts | 2 +- .../tests/e2e/omnichannel-agents.spec.ts | 3 +- .../e2e/omnichannel-departaments.spec.ts | 3 +- .../tests/e2e/page-objects/administration.ts | 3 +- .../tests/e2e/page-objects/home-discussion.ts | 3 +- .../e2e/page-objects/omnichannel-agents.ts | 4 +- apps/meteor/tests/e2e/utils/test.ts | 41 +++ yarn.lock | 250 +++++++++++++++++- 24 files changed, 341 insertions(+), 31 deletions(-) create mode 100644 apps/meteor/tests/e2e/utils/test.ts diff --git a/.github/workflows/build_and_test.yml b/.github/workflows/build_and_test.yml index 335cf9a25ee..c6de51e6210 100644 --- a/.github/workflows/build_and_test.yml +++ b/.github/workflows/build_and_test.yml @@ -681,13 +681,31 @@ jobs: docker logs presence --tail=50 cd ./apps/meteor - IS_EE=true npm run test:e2e + + E2E_COVERAGE=true IS_EE=true npm run test:e2e + + - name: Extract e2e:ee:coverage + run: | + cd ./apps/meteor + yarn test:e2e:nyc + + - uses: codecov/codecov-action@v3 + with: + directory: ./apps/meteor + flags: e2e + verbose: true + + - name: Store e2e-ee-coverage + uses: actions/upload-artifact@v2 + with: + name: e2e-ee-coverage + path: ./apps/meteor/coverage* - name: Store playwright test trace uses: actions/upload-artifact@v2 if: failure() with: - name: playwright-test-trace + name: e2e-ee-testtrace path: ./apps/meteor/tests/e2e/test-failures* deploy: diff --git a/apps/meteor/.babelrc b/apps/meteor/.babelrc index b9359fe771b..a8c20b400ca 100644 --- a/apps/meteor/.babelrc +++ b/apps/meteor/.babelrc @@ -2,5 +2,8 @@ "presets": [ "@babel/preset-env", "@babel/preset-react" + ], + "plugins": [ + "babel-plugin-istanbul" ] } diff --git a/apps/meteor/package.json b/apps/meteor/package.json index c214041a5d9..d41ec6c6f62 100644 --- a/apps/meteor/package.json +++ b/apps/meteor/package.json @@ -33,6 +33,7 @@ "deploy": "npm run build && pm2 startOrRestart pm2.json", "coverage": "nyc -r html mocha --config ./.mocharc.js", "test:e2e": "playwright test", + "test:e2e:nyc": "nyc report --reporter=text-summary --reporter=lcov", "testapi": "mocha --config ./.mocharc.api.js", "testunit": "npm run .testunit:definition && npm run .testunit:client && npm run .testunit:server", ".testunit:server": "mocha --config ./.mocharc.js", @@ -141,6 +142,7 @@ "autoprefixer": "^9.8.8", "babel-loader": "^8.2.5", "babel-plugin-array-includes": "^2.0.3", + "babel-plugin-istanbul": "^6.1.1", "chai": "^4.3.6", "chai-datetime": "^1.8.0", "chai-dom": "^1.11.0", @@ -159,6 +161,7 @@ "jsdom-global": "^3.0.2", "mocha": "^9.2.2", "mock-require": "^3.0.3", + "nyc": "^15.1.0", "outdent": "~0.8.0", "pino-pretty": "^7.6.1", "postcss": "~8.4.14", diff --git a/apps/meteor/tests/e2e/01-forgot-password.spec.ts b/apps/meteor/tests/e2e/01-forgot-password.spec.ts index 6cc07166180..bee803b1d5e 100644 --- a/apps/meteor/tests/e2e/01-forgot-password.spec.ts +++ b/apps/meteor/tests/e2e/01-forgot-password.spec.ts @@ -1,5 +1,4 @@ -import { test, expect } from '@playwright/test'; - +import { test, expect } from './utils/test'; import { Auth } from './page-objects'; test.describe('Forgot Password', () => { diff --git a/apps/meteor/tests/e2e/02-register.spec.ts b/apps/meteor/tests/e2e/02-register.spec.ts index a46399d7e5b..06e5d8db7c0 100644 --- a/apps/meteor/tests/e2e/02-register.spec.ts +++ b/apps/meteor/tests/e2e/02-register.spec.ts @@ -1,6 +1,6 @@ -import { test, expect } from '@playwright/test'; import { faker } from '@faker-js/faker'; +import { test, expect } from './utils/test'; import { Auth } from './page-objects'; test.describe('Register', () => { diff --git a/apps/meteor/tests/e2e/03-login.spec.ts b/apps/meteor/tests/e2e/03-login.spec.ts index b9b686c87e8..298b9e1fbdb 100644 --- a/apps/meteor/tests/e2e/03-login.spec.ts +++ b/apps/meteor/tests/e2e/03-login.spec.ts @@ -1,6 +1,6 @@ -import { test, expect } from '@playwright/test'; import { faker } from '@faker-js/faker'; +import { test, expect } from './utils/test'; import { Auth } from './page-objects'; test.describe('Login', () => { diff --git a/apps/meteor/tests/e2e/05-channel-creation.spec.ts b/apps/meteor/tests/e2e/05-channel-creation.spec.ts index b56616f0db1..075c6a2020b 100644 --- a/apps/meteor/tests/e2e/05-channel-creation.spec.ts +++ b/apps/meteor/tests/e2e/05-channel-creation.spec.ts @@ -1,6 +1,6 @@ -import { test, expect } from '@playwright/test'; import { faker } from '@faker-js/faker'; +import { test, expect } from './utils/test'; import { HomeChannel, Auth } from './page-objects'; test.describe('Channel Creation', () => { diff --git a/apps/meteor/tests/e2e/06-messaging.spec.ts b/apps/meteor/tests/e2e/06-messaging.spec.ts index 7fc307b5291..6cc135e2178 100644 --- a/apps/meteor/tests/e2e/06-messaging.spec.ts +++ b/apps/meteor/tests/e2e/06-messaging.spec.ts @@ -1,5 +1,6 @@ -import { expect, test, Browser, Page } from '@playwright/test'; +import { Browser, Page } from '@playwright/test'; +import { test, expect } from './utils/test'; import { validUserInserted } from './utils/mocks/userAndPasswordMock'; import { Auth, HomeChannel } from './page-objects'; diff --git a/apps/meteor/tests/e2e/07-emoji.spec.ts b/apps/meteor/tests/e2e/07-emoji.spec.ts index 1ea5c1e5fe5..0281c4562af 100644 --- a/apps/meteor/tests/e2e/07-emoji.spec.ts +++ b/apps/meteor/tests/e2e/07-emoji.spec.ts @@ -1,5 +1,4 @@ -import { test, expect } from '@playwright/test'; - +import { test, expect } from './utils/test'; import { Auth, HomeChannel } from './page-objects'; test.describe('Emoji', () => { diff --git a/apps/meteor/tests/e2e/09-channel.spec.ts b/apps/meteor/tests/e2e/09-channel.spec.ts index 009fd71b25e..fb983cbae07 100644 --- a/apps/meteor/tests/e2e/09-channel.spec.ts +++ b/apps/meteor/tests/e2e/09-channel.spec.ts @@ -1,5 +1,4 @@ -import { test, expect } from '@playwright/test'; - +import { test, expect } from './utils/test'; import { publicChannelCreated, setPublicChannelCreated } from './utils/mocks/checks'; import { Auth, HomeChannel } from './page-objects'; diff --git a/apps/meteor/tests/e2e/10-user-preferences.spec.ts b/apps/meteor/tests/e2e/10-user-preferences.spec.ts index ea93752a042..ee267802566 100644 --- a/apps/meteor/tests/e2e/10-user-preferences.spec.ts +++ b/apps/meteor/tests/e2e/10-user-preferences.spec.ts @@ -1,6 +1,6 @@ -import { test, expect } from '@playwright/test'; import { faker } from '@faker-js/faker'; +import { test, expect } from './utils/test'; import { Auth, HomeChannel, AccountProfile } from './page-objects'; test.describe('User preferences', () => { diff --git a/apps/meteor/tests/e2e/11-admin.spec.ts b/apps/meteor/tests/e2e/11-admin.spec.ts index f9bff836e22..a80e0d627a8 100644 --- a/apps/meteor/tests/e2e/11-admin.spec.ts +++ b/apps/meteor/tests/e2e/11-admin.spec.ts @@ -1,5 +1,4 @@ -import { test, expect } from '@playwright/test'; - +import { test, expect } from './utils/test'; import { Auth, Administration } from './page-objects'; test.describe('Administration', () => { diff --git a/apps/meteor/tests/e2e/12-settings.spec.ts b/apps/meteor/tests/e2e/12-settings.spec.ts index e8a3f5fa30a..cc7512b22eb 100644 --- a/apps/meteor/tests/e2e/12-settings.spec.ts +++ b/apps/meteor/tests/e2e/12-settings.spec.ts @@ -1,6 +1,7 @@ -import { test, expect, Page } from '@playwright/test'; +import { Page } from '@playwright/test'; import { v4 as uuid } from 'uuid'; +import { test, expect } from './utils/test'; import { BASE_API_URL } from './utils/constants'; import { adminLogin, validUserInserted, registerUser } from './utils/mocks/userAndPasswordMock'; import { Auth, HomeChannel, AccountProfile, Administration } from './page-objects'; diff --git a/apps/meteor/tests/e2e/13-permissions.spec.ts b/apps/meteor/tests/e2e/13-permissions.spec.ts index 90722bf51a0..d9448514eb6 100644 --- a/apps/meteor/tests/e2e/13-permissions.spec.ts +++ b/apps/meteor/tests/e2e/13-permissions.spec.ts @@ -1,7 +1,7 @@ -import { test, expect } from '@playwright/test'; import { v4 as uuid } from 'uuid'; import faker from '@faker-js/faker'; +import { test, expect } from './utils/test'; import { Auth, Administration, HomeChannel } from './page-objects'; test.describe('Permissions', () => { diff --git a/apps/meteor/tests/e2e/14-setting-permissions.spec.ts b/apps/meteor/tests/e2e/14-setting-permissions.spec.ts index a0681424caf..e8324267756 100644 --- a/apps/meteor/tests/e2e/14-setting-permissions.spec.ts +++ b/apps/meteor/tests/e2e/14-setting-permissions.spec.ts @@ -1,8 +1,8 @@ -import { test, expect } from '@playwright/test'; import faker from '@faker-js/faker'; -import { validUserInserted } from './utils/mocks/userAndPasswordMock'; +import { test, expect } from './utils/test'; import { Auth, Administration, HomeChannel } from './page-objects'; +import { validUserInserted } from './utils/mocks/userAndPasswordMock'; test.describe('Settings Permissions', () => { let pageAuth: Auth; diff --git a/apps/meteor/tests/e2e/15-message-popup.spec.ts b/apps/meteor/tests/e2e/15-message-popup.spec.ts index 4a874fb62a4..0b41d23eecf 100644 --- a/apps/meteor/tests/e2e/15-message-popup.spec.ts +++ b/apps/meteor/tests/e2e/15-message-popup.spec.ts @@ -1,5 +1,4 @@ -import { test, expect } from '@playwright/test'; - +import { test, expect } from './utils/test'; import { Auth, HomeChannel } from './page-objects'; test.describe('Message Popup', () => { diff --git a/apps/meteor/tests/e2e/16-discussion.spec.ts b/apps/meteor/tests/e2e/16-discussion.spec.ts index 3df9254963d..4a2668a58d8 100644 --- a/apps/meteor/tests/e2e/16-discussion.spec.ts +++ b/apps/meteor/tests/e2e/16-discussion.spec.ts @@ -1,7 +1,7 @@ -import { test } from '@playwright/test'; import { faker } from '@faker-js/faker'; import { v4 as uuid } from 'uuid'; +import { test } from './utils/test'; import { Auth, HomeDiscussion } from './page-objects'; test.describe('[Discussion]', () => { diff --git a/apps/meteor/tests/e2e/omnichannel-agents.spec.ts b/apps/meteor/tests/e2e/omnichannel-agents.spec.ts index 8421a185507..73b7c3a979c 100644 --- a/apps/meteor/tests/e2e/omnichannel-agents.spec.ts +++ b/apps/meteor/tests/e2e/omnichannel-agents.spec.ts @@ -1,5 +1,4 @@ -import { test, expect } from '@playwright/test'; - +import { test, expect } from './utils/test'; import { Auth, OmnichannelAgents } from './page-objects'; test.describe('Agents', () => { diff --git a/apps/meteor/tests/e2e/omnichannel-departaments.spec.ts b/apps/meteor/tests/e2e/omnichannel-departaments.spec.ts index 67cb2c09ea6..722822884ff 100644 --- a/apps/meteor/tests/e2e/omnichannel-departaments.spec.ts +++ b/apps/meteor/tests/e2e/omnichannel-departaments.spec.ts @@ -1,5 +1,4 @@ -import { test, expect } from '@playwright/test'; - +import { test, expect } from './utils/test'; import { Auth, OmnichannelDepartaments } from './page-objects'; test.describe('Department', () => { diff --git a/apps/meteor/tests/e2e/page-objects/administration.ts b/apps/meteor/tests/e2e/page-objects/administration.ts index 541f1fcf281..73d9605cc53 100644 --- a/apps/meteor/tests/e2e/page-objects/administration.ts +++ b/apps/meteor/tests/e2e/page-objects/administration.ts @@ -1,5 +1,6 @@ -import { Locator, expect, Page } from '@playwright/test'; +import { Locator, Page } from '@playwright/test'; +import { expect } from '../utils/test'; import { AdminFlextab, AdminSidenav } from './fragments'; export class Administration { diff --git a/apps/meteor/tests/e2e/page-objects/home-discussion.ts b/apps/meteor/tests/e2e/page-objects/home-discussion.ts index 11d3a9cde2f..9e3b90bc87e 100644 --- a/apps/meteor/tests/e2e/page-objects/home-discussion.ts +++ b/apps/meteor/tests/e2e/page-objects/home-discussion.ts @@ -1,5 +1,6 @@ -import { Locator, Page, expect } from '@playwright/test'; +import { Locator, Page } from '@playwright/test'; +import { expect } from '../utils/test'; import { HomeContent, HomeSidenav, HomeFlextab } from './fragments'; export class HomeDiscussion { diff --git a/apps/meteor/tests/e2e/page-objects/omnichannel-agents.ts b/apps/meteor/tests/e2e/page-objects/omnichannel-agents.ts index 9026b2e6bd8..06c6031cd75 100644 --- a/apps/meteor/tests/e2e/page-objects/omnichannel-agents.ts +++ b/apps/meteor/tests/e2e/page-objects/omnichannel-agents.ts @@ -1,4 +1,6 @@ -import { Locator, expect, Page } from '@playwright/test'; +import { Locator, Page } from '@playwright/test'; + +import { expect } from '../utils/test'; export class OmnichannelAgents { private readonly page: Page; diff --git a/apps/meteor/tests/e2e/utils/test.ts b/apps/meteor/tests/e2e/utils/test.ts new file mode 100644 index 00000000000..8809ce92599 --- /dev/null +++ b/apps/meteor/tests/e2e/utils/test.ts @@ -0,0 +1,41 @@ +import * as fs from 'fs'; +import * as path from 'path'; + +import { v4 as uuid } from 'uuid'; +import { test as baseTest } from '@playwright/test'; + +const PATH_NYC_OUTPUT = path.join(process.cwd(), '.nyc_output'); +// @ts-ignore +export const test = baseTest.extend({ + context: async ({ context }, use) => { + if (!process.env.E2E_COVERAGE) { + await use(context); + await context.close(); + + return; + } + + await context.addInitScript(() => + window.addEventListener('beforeunload', () => (window as any).collectIstanbulCoverage(JSON.stringify((window as any).__coverage__))), + ); + + await fs.promises.mkdir(PATH_NYC_OUTPUT, { recursive: true }); + + await context.exposeFunction('collectIstanbulCoverage', (coverageJSON: string) => { + if (coverageJSON) { + fs.writeFileSync(path.join(PATH_NYC_OUTPUT, `playwright_coverage_${uuid()}.json`), coverageJSON); + } + }); + + await use(context); + + await Promise.all( + context.pages().map(async (page) => { + await page.evaluate(() => (window as any).collectIstanbulCoverage(JSON.stringify((window as any).__coverage__))); + await page.close(); + }), + ); + }, +}); + +export const { expect } = test; diff --git a/yarn.lock b/yarn.lock index ae1b441ea51..04fe6bb2c94 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4448,6 +4448,7 @@ __metadata: aws-sdk: ^2.1160.0 babel-loader: ^8.2.5 babel-plugin-array-includes: ^2.0.3 + babel-plugin-istanbul: ^6.1.1 bad-words: ^3.0.4 bcrypt: ^5.0.1 body-parser: 1.20.0 @@ -4547,6 +4548,7 @@ __metadata: node-gcm: 1.0.5 node-rsa: ^1.1.1 nodemailer: ^6.7.5 + nyc: ^15.1.0 object-path: ^0.11.8 outdent: ~0.8.0 path: ^0.12.7 @@ -8562,6 +8564,15 @@ __metadata: languageName: node linkType: hard +"append-transform@npm:^2.0.0": + version: 2.0.0 + resolution: "append-transform@npm:2.0.0" + dependencies: + default-require-extensions: ^3.0.0 + checksum: f26f393bf7a428fd1bb18f2758a819830a582243310c5170edb3f98fdc5a535333d02b952f7c2d9b14522bd8ead5b132a0b15000eca18fa9f49172963ebbc231 + languageName: node + linkType: hard + "application-config-path@npm:^0.1.0": version: 0.1.0 resolution: "application-config-path@npm:0.1.0" @@ -8642,6 +8653,13 @@ __metadata: languageName: node linkType: hard +"archy@npm:^1.0.0": + version: 1.0.0 + resolution: "archy@npm:1.0.0" + checksum: 504ae7af655130bab9f471343cfdb054feaec7d8e300e13348bc9fe9e660f83d422e473069584f73233c701ae37d1c8452ff2522f2a20c38849e0f406f1732ac + languageName: node + linkType: hard + "are-we-there-yet@npm:^2.0.0": version: 2.0.0 resolution: "are-we-there-yet@npm:2.0.0" @@ -10412,6 +10430,18 @@ __metadata: languageName: node linkType: hard +"caching-transform@npm:^4.0.0": + version: 4.0.0 + resolution: "caching-transform@npm:4.0.0" + dependencies: + hasha: ^5.0.0 + make-dir: ^3.0.0 + package-hash: ^4.0.0 + write-file-atomic: ^3.0.0 + checksum: c4db6939533b677866808de67c32f0aaf8bf4fd3e3b8dc957e5d630c007c06b7f11512d44c38a38287fb068e931067e8da9019c34d787259a44121c9a6b87a1f + languageName: node + linkType: hard + "call-bind@npm:^1.0.0, call-bind@npm:^1.0.2": version: 1.0.2 resolution: "call-bind@npm:1.0.2" @@ -11080,6 +11110,17 @@ __metadata: languageName: node linkType: hard +"cliui@npm:^6.0.0": + version: 6.0.0 + resolution: "cliui@npm:6.0.0" + dependencies: + string-width: ^4.2.0 + strip-ansi: ^6.0.0 + wrap-ansi: ^6.2.0 + checksum: 4fcfd26d292c9f00238117f39fc797608292ae36bac2168cfee4c85923817d0607fe21b3329a8621e01aedf512c99b7eaa60e363a671ffd378df6649fb48ae42 + languageName: node + linkType: hard + "cliui@npm:^7.0.2": version: 7.0.4 resolution: "cliui@npm:7.0.4" @@ -12848,6 +12889,15 @@ __metadata: languageName: node linkType: hard +"default-require-extensions@npm:^3.0.0": + version: 3.0.0 + resolution: "default-require-extensions@npm:3.0.0" + dependencies: + strip-bom: ^4.0.0 + checksum: 0b5bdb6786ebb0ff6ef55386f37c8d221963fbbd3009588fe71032c85ca16da05eff2ad01bfe9bfc8bac5ce95a18f66b38c50d454482e3e9d2de1142424a3e7c + languageName: node + linkType: hard + "define-lazy-prop@npm:^2.0.0": version: 2.0.0 resolution: "define-lazy-prop@npm:2.0.0" @@ -13882,6 +13932,13 @@ __metadata: languageName: node linkType: hard +"es6-error@npm:^4.0.1": + version: 4.1.1 + resolution: "es6-error@npm:4.1.1" + checksum: ae41332a51ec1323da6bbc5d75b7803ccdeddfae17c41b6166ebbafc8e8beb7a7b80b884b7fab1cc80df485860ac3c59d78605e860bb4f8cd816b3d6ade0d010 + languageName: node + linkType: hard + "es6-object-assign@npm:^1.1.0": version: 1.1.0 resolution: "es6-object-assign@npm:1.1.0" @@ -15241,7 +15298,7 @@ __metadata: languageName: node linkType: hard -"find-cache-dir@npm:^3.3.1, find-cache-dir@npm:^3.3.2": +"find-cache-dir@npm:^3.2.0, find-cache-dir@npm:^3.3.1, find-cache-dir@npm:^3.3.2": version: 3.3.2 resolution: "find-cache-dir@npm:3.3.2" dependencies: @@ -15600,6 +15657,13 @@ __metadata: languageName: node linkType: hard +"fromentries@npm:^1.2.0": + version: 1.3.2 + resolution: "fromentries@npm:1.3.2" + checksum: 33729c529ce19f5494f846f0dd4945078f4e37f4e8955f4ae8cc7385c218f600e9d93a7d225d17636c20d1889106fd87061f911550861b7072f53bf891e6b341 + languageName: node + linkType: hard + "fs-constants@npm:^1.0.0": version: 1.0.0 resolution: "fs-constants@npm:1.0.0" @@ -16831,6 +16895,16 @@ __metadata: languageName: node linkType: hard +"hasha@npm:^5.0.0": + version: 5.2.2 + resolution: "hasha@npm:5.2.2" + dependencies: + is-stream: ^2.0.0 + type-fest: ^0.8.0 + checksum: 06cc474bed246761ff61c19d629977eb5f53fa817be4313a255a64ae0f433e831a29e83acb6555e3f4592b348497596f1d1653751008dda4f21c9c21ca60ac5a + languageName: node + linkType: hard + "hast-to-hyperscript@npm:^9.0.0": version: 9.0.1 resolution: "hast-to-hyperscript@npm:9.0.1" @@ -18952,6 +19026,27 @@ __metadata: languageName: node linkType: hard +"istanbul-lib-hook@npm:^3.0.0": + version: 3.0.0 + resolution: "istanbul-lib-hook@npm:3.0.0" + dependencies: + append-transform: ^2.0.0 + checksum: ac4d0a0751e959cfe4c95d817df5f1f573f9b0cf892552e60d81785654291391fac1ceb667f13bb17fcc2ef23b74c89ed8cf1c6148c833c8596a2b920b079101 + languageName: node + linkType: hard + +"istanbul-lib-instrument@npm:^4.0.0": + version: 4.0.3 + resolution: "istanbul-lib-instrument@npm:4.0.3" + dependencies: + "@babel/core": ^7.7.5 + "@istanbuljs/schema": ^0.1.2 + istanbul-lib-coverage: ^3.0.0 + semver: ^6.3.0 + checksum: fa1171d3022b1bb8f6a734042620ac5d9ee7dc80f3065a0bb12863e9f0494d0eefa3d86608fcc0254ab2765d29d7dad8bdc42e5f8df2f9a1fbe85ccc59d76cb9 + languageName: node + linkType: hard + "istanbul-lib-instrument@npm:^5.0.4, istanbul-lib-instrument@npm:^5.1.0": version: 5.1.0 resolution: "istanbul-lib-instrument@npm:5.1.0" @@ -18965,6 +19060,20 @@ __metadata: languageName: node linkType: hard +"istanbul-lib-processinfo@npm:^2.0.2": + version: 2.0.3 + resolution: "istanbul-lib-processinfo@npm:2.0.3" + dependencies: + archy: ^1.0.0 + cross-spawn: ^7.0.3 + istanbul-lib-coverage: ^3.2.0 + p-map: ^3.0.0 + rimraf: ^3.0.0 + uuid: ^8.3.2 + checksum: 501729e809a4e98bbb9f62f89cae924be81655a7ff8118661f8834a10bb89ed5d3a5099ea0b6555e1a8ee15a0099cb64f7170b89aae155ab2afacfe8dd94421a + languageName: node + linkType: hard + "istanbul-lib-report@npm:^3.0.0": version: 3.0.0 resolution: "istanbul-lib-report@npm:3.0.0" @@ -20588,6 +20697,13 @@ __metadata: languageName: node linkType: hard +"lodash.flattendeep@npm:^4.4.0": + version: 4.4.0 + resolution: "lodash.flattendeep@npm:4.4.0" + checksum: 8521c919acac3d4bcf0aaf040c1ca9cb35d6c617e2d72e9b4d51c9a58b4366622cd6077441a18be626c3f7b28227502b3bf042903d447b056ee7e0b11d45c722 + languageName: node + linkType: hard + "lodash.get@npm:^4.4.2": version: 4.4.2 resolution: "lodash.get@npm:4.4.2" @@ -22723,6 +22839,15 @@ __metadata: languageName: node linkType: hard +"node-preload@npm:^0.2.1": + version: 0.2.1 + resolution: "node-preload@npm:0.2.1" + dependencies: + process-on-spawn: ^1.0.0 + checksum: 4586f91ac7417b33accce0ac629fb60f642d0c8d212b3c536dc3dda37fe54f8a3b858273380e1036e41a65d85470332c358315d2288e6584260d620fb4b00fb3 + languageName: node + linkType: hard + "node-releases@npm:^2.0.5": version: 2.0.5 resolution: "node-releases@npm:2.0.5" @@ -23036,6 +23161,43 @@ __metadata: languageName: node linkType: hard +"nyc@npm:^15.1.0": + version: 15.1.0 + resolution: "nyc@npm:15.1.0" + dependencies: + "@istanbuljs/load-nyc-config": ^1.0.0 + "@istanbuljs/schema": ^0.1.2 + caching-transform: ^4.0.0 + convert-source-map: ^1.7.0 + decamelize: ^1.2.0 + find-cache-dir: ^3.2.0 + find-up: ^4.1.0 + foreground-child: ^2.0.0 + get-package-type: ^0.1.0 + glob: ^7.1.6 + istanbul-lib-coverage: ^3.0.0 + istanbul-lib-hook: ^3.0.0 + istanbul-lib-instrument: ^4.0.0 + istanbul-lib-processinfo: ^2.0.2 + istanbul-lib-report: ^3.0.0 + istanbul-lib-source-maps: ^4.0.0 + istanbul-reports: ^3.0.2 + make-dir: ^3.0.0 + node-preload: ^0.2.1 + p-map: ^3.0.0 + process-on-spawn: ^1.0.0 + resolve-from: ^5.0.0 + rimraf: ^3.0.0 + signal-exit: ^3.0.2 + spawn-wrap: ^2.0.0 + test-exclude: ^6.0.0 + yargs: ^15.0.2 + bin: + nyc: bin/nyc.js + checksum: 82a7031982df2fd6ab185c9f1b5d032b6221846268007b45b5773c6582e776ab33e96cd22b4231520345942fcef69b4339bd967675b8483f3fa255b56326faef + languageName: node + linkType: hard + "oauth-sign@npm:~0.9.0": version: 0.9.0 resolution: "oauth-sign@npm:0.9.0" @@ -23750,6 +23912,18 @@ __metadata: languageName: node linkType: hard +"package-hash@npm:^4.0.0": + version: 4.0.0 + resolution: "package-hash@npm:4.0.0" + dependencies: + graceful-fs: ^4.1.15 + hasha: ^5.0.0 + lodash.flattendeep: ^4.4.0 + release-zalgo: ^1.0.0 + checksum: 32c49e3a0e1c4a33b086a04cdd6d6e570aee019cb8402ec16476d9b3564a40e38f91ce1a1f9bc88b08f8ef2917a11e0b786c08140373bdf609ea90749031e6fc + languageName: node + linkType: hard + "package-json@npm:^4.0.0": version: 4.0.1 resolution: "package-json@npm:4.0.1" @@ -25393,6 +25567,15 @@ __metadata: languageName: node linkType: hard +"process-on-spawn@npm:^1.0.0": + version: 1.0.0 + resolution: "process-on-spawn@npm:1.0.0" + dependencies: + fromentries: ^1.2.0 + checksum: 597769e3db6a8e2cb1cd64a952bbc150220588debac31c7cf1a9f620ce981e25583d8d70848d8a14953577608512984a8808c3be77e09af8ebdcdc14ec23a295 + languageName: node + linkType: hard + "process-warning@npm:^1.0.0": version: 1.0.0 resolution: "process-warning@npm:1.0.0" @@ -26796,6 +26979,15 @@ __metadata: languageName: node linkType: hard +"release-zalgo@npm:^1.0.0": + version: 1.0.0 + resolution: "release-zalgo@npm:1.0.0" + dependencies: + es6-error: ^4.0.1 + checksum: b59849dc310f6c426f34e308c48ba83df3d034ddef75189951723bb2aac99d29d15f5e127edad951c4095fc9025aa582053907154d68fe0c5380cd6a75365e53 + languageName: node + linkType: hard + "remark-external-links@npm:^8.0.0": version: 8.0.0 resolution: "remark-external-links@npm:8.0.0" @@ -28415,6 +28607,20 @@ __metadata: languageName: node linkType: hard +"spawn-wrap@npm:^2.0.0": + version: 2.0.0 + resolution: "spawn-wrap@npm:2.0.0" + dependencies: + foreground-child: ^2.0.0 + is-windows: ^1.0.2 + make-dir: ^3.0.0 + rimraf: ^3.0.0 + signal-exit: ^3.0.2 + which: ^2.0.1 + checksum: 5a518e37620def6d516b86207482a4f76bcf3c37c57d8d886d9fa399b04e5668d11fd12817b178029b02002a5ebbd09010374307effa821ba39594042f0a2d96 + languageName: node + linkType: hard + "spdx-correct@npm:^3.0.0": version: 3.1.1 resolution: "spdx-correct@npm:3.1.1" @@ -30575,7 +30781,7 @@ __metadata: languageName: node linkType: hard -"type-fest@npm:^0.8.1": +"type-fest@npm:^0.8.0, type-fest@npm:^0.8.1": version: 0.8.1 resolution: "type-fest@npm:0.8.1" checksum: d61c4b2eba24009033ae4500d7d818a94fd6d1b481a8111612ee141400d5f1db46f199c014766b9fa9b31a6a7374d96fc748c6d688a78a3ce5a33123839becb7 @@ -32144,6 +32350,17 @@ __metadata: languageName: node linkType: hard +"wrap-ansi@npm:^6.2.0": + version: 6.2.0 + resolution: "wrap-ansi@npm:6.2.0" + dependencies: + ansi-styles: ^4.0.0 + string-width: ^4.1.0 + strip-ansi: ^6.0.0 + checksum: 6cd96a410161ff617b63581a08376f0cb9162375adeb7956e10c8cd397821f7eb2a6de24eb22a0b28401300bf228c86e50617cd568209b5f6775b93c97d2fe3a + languageName: node + linkType: hard + "wrap-ansi@npm:^7.0.0": version: 7.0.0 resolution: "wrap-ansi@npm:7.0.0" @@ -32510,6 +32727,16 @@ __metadata: languageName: node linkType: hard +"yargs-parser@npm:^18.1.2": + version: 18.1.3 + resolution: "yargs-parser@npm:18.1.3" + dependencies: + camelcase: ^5.0.0 + decamelize: ^1.2.0 + checksum: 60e8c7d1b85814594d3719300ecad4e6ae3796748b0926137bfec1f3042581b8646d67e83c6fc80a692ef08b8390f21ddcacb9464476c39bbdf52e34961dd4d9 + languageName: node + linkType: hard + "yargs-unparser@npm:2.0.0": version: 2.0.0 resolution: "yargs-unparser@npm:2.0.0" @@ -32555,6 +32782,25 @@ __metadata: languageName: node linkType: hard +"yargs@npm:^15.0.2": + version: 15.4.1 + resolution: "yargs@npm:15.4.1" + dependencies: + cliui: ^6.0.0 + decamelize: ^1.2.0 + find-up: ^4.1.0 + get-caller-file: ^2.0.1 + require-directory: ^2.1.1 + require-main-filename: ^2.0.0 + set-blocking: ^2.0.0 + string-width: ^4.2.0 + which-module: ^2.0.0 + y18n: ^4.0.0 + yargs-parser: ^18.1.2 + checksum: 40b974f508d8aed28598087720e086ecd32a5fd3e945e95ea4457da04ee9bdb8bdd17fd91acff36dc5b7f0595a735929c514c40c402416bbb87c03f6fb782373 + languageName: node + linkType: hard + "yargs@npm:^2.1.1": version: 2.3.0 resolution: "yargs@npm:2.3.0" -- GitLab