From 03e742834835c30c1fc8b5b50167aedee32cb9e3 Mon Sep 17 00:00:00 2001
From: Carlos Valente <34649812+cpvalente@users.noreply.github.com>
Date: Sun, 2 Apr 2023 19:07:13 +0200
Subject: [PATCH] V2 e2e (#320)
* chore: cleanup handling of a bad read
* chore: configure e2e testing
* chore: version bump
---
.github/workflows/test_v2.yml | 42 ++-
apps/client/package.json | 6 +-
.../control/message/MessageControl.tsx | 1 +
apps/electron/package.json | 2 +-
apps/server/package.json | 8 +-
apps/server/src/app.ts | 3 -
apps/server/src/modules/loadDb.ts | 4 +
apps/server/src/setup.ts | 7 +-
apps/server/src/utils/parser.ts | 5 +-
...-tests.test.ts => 000-smoke-tests.spec.ts} | 0
...on.test.ts => 001-view-navigation.spec.ts} | 12 +-
...al-url.spec.ts => 101-minimal-url.spec.ts} | 2 +-
...ol.spec.ts => 201-message-control.spec.ts} | 17 +-
package.json | 17 +-
playwright.config.ts | 27 +-
pnpm-lock.yaml | 287 +++---------------
turbo.json | 3 +
17 files changed, 140 insertions(+), 303 deletions(-)
rename e2e/tests/{smoke-tests.test.ts => 000-smoke-tests.spec.ts} (100%)
rename e2e/tests/{features/view-navigation.test.ts => 001-view-navigation.spec.ts} (86%)
rename e2e/tests/features/{minimal-url.spec.ts => 101-minimal-url.spec.ts} (99%)
rename e2e/tests/features/{message-control.spec.ts => 201-message-control.spec.ts} (62%)
diff --git a/.github/workflows/test_v2.yml b/.github/workflows/test_v2.yml
index a97bedd94..48980776d 100644
--- a/.github/workflows/test_v2.yml
+++ b/.github/workflows/test_v2.yml
@@ -6,9 +6,43 @@ on:
workflow_dispatch:
jobs:
- e2e-test:
- timeout-minutes: 20
+ unit-test:
runs-on: ubuntu-latest
+ timeout-minutes: 20
+ env:
+ CI: ''
+
+ steps:
+ - uses: actions/checkout@v3
+ - name: Use Node.js
+ uses: actions/setup-node@v3
+ with:
+ node-version: 16
+
+ - name: Setup pnpm
+ uses: pnpm/action-setup@v2.2.4
+ with:
+ version: 7.26.3
+
+ - name: Install dependencies
+ run: pnpm install --frozen-lockfile
+
+ # We choose to run tests separately
+ - name: React - Run unit tests
+ run: pnpm test:pipeline
+ working-directory: ./apps/client
+
+ - name: Server - Run unit tests
+ run: pnpm test:pipeline
+ working-directory: ./apps/server
+
+ - name: Utils - Run unit tests
+ run: pnpm test:pipeline
+ working-directory: ./packages/utils
+
+ e2e-test:
+ runs-on: ubuntu-latest
+ timeout-minutes: 20
steps:
- uses: actions/checkout@v3
@@ -26,13 +60,13 @@ jobs:
run: pnpm install --frozen-lockfile
- name: Build client
- run: turbo build:local
+ run: pnpm build:local
- name: Install Playwright Browsers
run: npx playwright install --with-deps
- name: Run Playwright tests
- run: npx playwright test
+ run: pnpm e2e
- uses: actions/upload-artifact@v3
if: always()
diff --git a/apps/client/package.json b/apps/client/package.json
index d6b25f399..5a6149ceb 100644
--- a/apps/client/package.json
+++ b/apps/client/package.json
@@ -1,6 +1,6 @@
{
"name": "ontime-ui",
- "version": "2.0.0-alpha",
+ "version": "2.0.0-beta1",
"private": true,
"dependencies": {
"@chakra-ui/react": "^2.5.1",
@@ -35,9 +35,9 @@
"scripts": {
"addversion": "node -p \"'export const ONTIME_VERSION = ' + JSON.stringify(require('../../package.json').version) + ';'\" > src/ONTIME_VERSION.js",
"postinstall": "pnpm addversion",
- "dev": "set BROWSER=none&&vite",
+ "dev": "cross-env BROWSER=none vite",
"build": "vite build",
- "build:local": "NODE_ENV=local vite build",
+ "build:local": "cross-env NODE_ENV=local vite build",
"build:docker": "vite build",
"lint": "eslint .",
"stylelint": "npx stylelint \"**/*.scss\"\n",
diff --git a/apps/client/src/features/control/message/MessageControl.tsx b/apps/client/src/features/control/message/MessageControl.tsx
index 20d754974..8bea4648a 100644
--- a/apps/client/src/features/control/message/MessageControl.tsx
+++ b/apps/client/src/features/control/message/MessageControl.tsx
@@ -43,6 +43,7 @@ export default function MessageControl() {
variant={data.onAir ? 'ontime-filled' : 'ontime-subtle'}
leftIcon={data.onAir ? : }
onClick={() => setMessage.onAir(!data.onAir)}
+ data-testid='toggle on air'
>
{data?.onAir ? 'Ontime is On Air' : 'Ontime is Off Air'}
diff --git a/apps/electron/package.json b/apps/electron/package.json
index 07d92b106..8a2e4a5fa 100644
--- a/apps/electron/package.json
+++ b/apps/electron/package.json
@@ -1,6 +1,6 @@
{
"name": "ontime",
- "version": "2.0.0-alpha",
+ "version": "2.0.0-beta1",
"author": "Carlos Valente",
"description": "Time keeping for live events",
"repository": "https://github.com/cpvalente/ontime",
diff --git a/apps/server/package.json b/apps/server/package.json
index 4ae78e20f..41a6a4d7c 100644
--- a/apps/server/package.json
+++ b/apps/server/package.json
@@ -2,7 +2,7 @@
"name": "ontime-server",
"type": "module",
"main": "src/index.ts",
- "version": "2.0.0-alpha",
+ "version": "2.0.0-beta1",
"exports": "./src/index.js",
"dependencies": {
"@sentry/node": "^7.24.1",
@@ -42,10 +42,10 @@
},
"scripts": {
"addversion": "node -p \"'export const ONTIME_VERSION = ' + JSON.stringify(require('../../package.json').version) + ';'\" > src/ONTIME_VERSION.js",
- "postinstall": "pnpm addversion",
- "dev": "set NODE_ENV=development && nodemon --exec \"ts-node-esm\" ./src/index.ts",
- "dev:test": "set IS_TEST=true && nodemon --exec \"ts-node-esm\" ./src/index.ts",
"setdb": "shx cp ../../demo-db/db.json src/preloaded-db/db.json",
+ "postinstall": "pnpm addversion && pnpm setdb",
+ "dev": "cross-env NODE_ENV=development nodemon --exec \"ts-node-esm\" ./src/index.ts",
+ "dev:test": "cross-env IS_TEST=true nodemon --exec \"ts-node-esm\" ./src/index.ts",
"prebuild": "pnpm setdb",
"build": "pnpm prebuild && esbuild src/app.ts --log-level=error --platform=node --format=cjs --bundle --minify --outfile=dist/index.cjs",
"build:docker": "pnpm prebuild && esbuild src/index.ts --log-level=error --platform=node --format=cjs --minify --bundle --outfile=dist/docker.cjs",
diff --git a/apps/server/src/app.ts b/apps/server/src/app.ts
index 629039164..47e271fc2 100644
--- a/apps/server/src/app.ts
+++ b/apps/server/src/app.ts
@@ -64,9 +64,6 @@ app.use('/playback', playbackRouter);
app.use('/external', express.static(join(currentDirectory, 'external')));
// serve static - react, in test mode we fetch the React app from module
-const newpath = join(currentDirectory, resolvedPath());
-console.log('serving content at ', newpath);
-
app.use(express.static(join(currentDirectory, resolvedPath())));
app.get('*', (req, res) => {
diff --git a/apps/server/src/modules/loadDb.ts b/apps/server/src/modules/loadDb.ts
index e7934ae36..35868e0f2 100644
--- a/apps/server/src/modules/loadDb.ts
+++ b/apps/server/src/modules/loadDb.ts
@@ -57,6 +57,10 @@ async function loadDb() {
const db = new Low(adapter);
const data = await parseDb(dbInDisk, db);
+ if (data === null) {
+ console.log('ERROR: Invalid JSON format');
+ return;
+ }
db.data = data;
await db.write();
diff --git a/apps/server/src/setup.ts b/apps/server/src/setup.ts
index d936300ed..2c3d9135f 100644
--- a/apps/server/src/setup.ts
+++ b/apps/server/src/setup.ts
@@ -46,12 +46,15 @@ const devPath = '../../client/build/';
const dockerPath = 'client/';
export const resolvedPath = (): string => {
- if (isProduction) {
- return productionPath;
+ if (isTest) {
+ return devPath;
}
if (isDocker) {
return dockerPath;
}
+ if (isProduction) {
+ return productionPath;
+ }
return devPath;
};
diff --git a/apps/server/src/utils/parser.ts b/apps/server/src/utils/parser.ts
index 40d1e4115..84df30ca5 100644
--- a/apps/server/src/utils/parser.ts
+++ b/apps/server/src/utils/parser.ts
@@ -258,10 +258,9 @@ export const parseExcel = async (excelData) => {
* @param {boolean} [enforce=false] - flag, tells to create an object anyway
* @returns {object} - parsed object
*/
-export const parseJson = async (jsonData, enforce = false): Promise => {
+export const parseJson = async (jsonData, enforce = false): Promise => {
if (!jsonData || typeof jsonData !== 'object') {
- console.log('ERROR: Invalid JSON format');
- return -1;
+ return null;
}
// object containing the parsed data
diff --git a/e2e/tests/smoke-tests.test.ts b/e2e/tests/000-smoke-tests.spec.ts
similarity index 100%
rename from e2e/tests/smoke-tests.test.ts
rename to e2e/tests/000-smoke-tests.spec.ts
diff --git a/e2e/tests/features/view-navigation.test.ts b/e2e/tests/001-view-navigation.spec.ts
similarity index 86%
rename from e2e/tests/features/view-navigation.test.ts
rename to e2e/tests/001-view-navigation.spec.ts
index 124d57a77..d3078a993 100644
--- a/e2e/tests/features/view-navigation.test.ts
+++ b/e2e/tests/001-view-navigation.spec.ts
@@ -8,7 +8,7 @@ test.describe('test view navigation feature', () => {
await page.getByRole('button', { name: 'toggle menu' }).click();
await page.locator('data-test-id=navigation-menu');
- await page.getByRole('link', { name: 'Clock' }).click();
+ await page.getByRole('link', { name: 'Clock', exact: true }).click();
await page.locator('data-test-id=clock-view');
await expect(page).toHaveURL('http://localhost:4001/clock');
@@ -37,12 +37,6 @@ test.describe('test view navigation feature', () => {
const errorBoundary = await page.locator('data-test-id=error-container');
await expect(errorBoundary).toHaveCount(0);
- await page.getByRole('button', { name: 'toggle menu' }).click();
- await page.locator('data-test-id=navigation-menu');
- await page.getByRole('link', { name: 'PiP' }).click();
- await page.locator('data-test-id=pip-view');
- await expect(page).toHaveURL('http://localhost:4001/pip');
-
await page.getByRole('button', { name: 'toggle menu' }).click();
await page.locator('data-test-id=navigation-menu');
await page.getByRole('link', { name: 'Studio Clock' }).click();
@@ -57,8 +51,8 @@ test.describe('test view navigation feature', () => {
await page.getByRole('button', { name: 'toggle menu' }).click();
await page.locator('data-test-id=navigation-menu');
- await page.getByRole('link', { name: 'Timer' }).click();
+ await page.getByRole('link', { name: 'Timer', exact: true }).click();
await page.locator('data-test-id=timer-view');
await expect(page).toHaveURL('http://localhost:4001/timer');
});
-});
+});
\ No newline at end of file
diff --git a/e2e/tests/features/minimal-url.spec.ts b/e2e/tests/features/101-minimal-url.spec.ts
similarity index 99%
rename from e2e/tests/features/minimal-url.spec.ts
rename to e2e/tests/features/101-minimal-url.spec.ts
index 57f1ab312..0de4b5373 100644
--- a/e2e/tests/features/minimal-url.spec.ts
+++ b/e2e/tests/features/101-minimal-url.spec.ts
@@ -11,4 +11,4 @@ test.describe('minimal view behaviour can be changed through params', () => {
const navBar = await page.locator('data-test-id=nav-logo');
await expect(navBar).toHaveCount(0);
});
-});
+});
\ No newline at end of file
diff --git a/e2e/tests/features/message-control.spec.ts b/e2e/tests/features/201-message-control.spec.ts
similarity index 62%
rename from e2e/tests/features/message-control.spec.ts
rename to e2e/tests/features/201-message-control.spec.ts
index 76a9a0e52..e6f763517 100644
--- a/e2e/tests/features/message-control.spec.ts
+++ b/e2e/tests/features/201-message-control.spec.ts
@@ -8,29 +8,32 @@ test('test', async ({ context }) => {
// stage timer message
await editorPage.getByPlaceholder('Shown in stage timer').click();
+ await expect(editorPage.getByPlaceholder('Shown in stage timer')).toBeEnabled(true);
+
await editorPage.getByPlaceholder('Shown in stage timer').fill('testing stage');
- await editorPage.getByRole('button', { name: 'toggle timer screen message' }).click();
+ await editorPage.getByRole('button', { name: /toggle timer screen message/i }).click({ timeout: 5000 });
await featurePage.goto('http://localhost:4001/timer');
await featurePage.getByText('testing stage').click();
// public screen message
- await editorPage.getByPlaceholder('Shown in public screens').click();
- await editorPage.getByPlaceholder('Shown in public screens').fill('testing public');
- await editorPage.getByRole('button', { name: /toggle public screen message/i }).click();
+ await editorPage.getByPlaceholder('Shown in public and backstage screens').click();
+ await editorPage.getByPlaceholder('Shown in public and backstage screens').fill('testing public');
+ await editorPage.getByRole('button', { name: 'Toggle Public / Backstage screen message' }).click();
await featurePage.goto('http://localhost:4001/public');
- await featurePage.getByText('testing public').click();
+ await featurePage.getByText('testing public').click({ timeout: 10000 });
// lower third message
await editorPage.getByPlaceholder('Shown in lower third').click();
await editorPage.getByPlaceholder('Shown in lower third').fill('testing lower');
await editorPage.getByRole('button', { name: /toggle lower third message/i }).click();
await featurePage.goto('http://localhost:4001/lower');
- await featurePage.getByText('testing lower').click();
+ // increase the timeout to accommodate animation
+ await featurePage.getByText('testing lower').click({ timeout: 10000 });
// on air state
- await editorPage.getByRole('button', { name: 'Toggle On Air' }).click();
+ await editorPage.getByTestId('toggle on air').click();
await featurePage.goto('http://localhost:4001/studio');
await featurePage.getByText('ON AIR').click();
const onAirActive = await featurePage.locator('data-testid=on-air-enabled');
diff --git a/package.json b/package.json
index ebe687f10..7cafef114 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
{
"name": "ontime",
- "version": "2.0.0-alpha",
+ "version": "2.0.0-beta1",
"description": "Time keeping for live events",
"keywords": [
"lighdev",
@@ -26,22 +26,25 @@
"dev:electron": "turbo run dev --filter=ontime",
"dev:server": "turbo run dev --filter=ontime-server",
"build": "turbo run build",
+ "build:local": "turbo run build:local",
+ "dist-win": "turbo run dist-win",
+ "dist-mac": "turbo run dist-mac",
+ "dist-linux": "turbo run dist-linux",
"test": "vitest",
- "e2e": "start-test \"turbo dev --filter=ontime-server\" 4001 e2e:local",
- "e2e:local": "npx playwright test -c playwright.config.ts",
+ "e2e": "cross-env DEBUG=pw:webserver npx playwright test -c playwright.config.ts",
"cleanup": "rm -rf node_modules && rm -rf **/node_modules && rm -rf **/**/node_modules"
},
"devDependencies": {
- "@playwright/test": "^1.30.0",
+ "@playwright/test": "^1.32.1",
"@types/node": "^18.11.18",
"@typescript-eslint/eslint-plugin": "^5.48.0",
"@typescript-eslint/parser": "^5.48.0",
+ "cross-env": "^7.0.3",
"eslint": "^8.31.0",
"eslint-config-prettier": "^8.6.0",
- "eslint-plugin-playwright": "^0.11.2",
+ "eslint-plugin-playwright": "^0.12.0",
"prettier": "^2.8.2",
- "start-server-and-test": "^1.15.2",
- "turbo": "^1.6.3",
+ "turbo": "^1.8.8",
"typescript": "^4.8.3"
}
}
diff --git a/playwright.config.ts b/playwright.config.ts
index 691b6be6e..42a7b257b 100644
--- a/playwright.config.ts
+++ b/playwright.config.ts
@@ -1,12 +1,6 @@
import type { PlaywrightTestConfig } from '@playwright/test';
import { devices } from '@playwright/test';
-/**
- * Read environment variables from file.
- * https://github.com/motdotla/dotenv
- */
-// require('dotenv').config();
-
/**
* See https://playwright.dev/docs/test-configuration.
*/
@@ -19,8 +13,14 @@ const config: PlaywrightTestConfig = {
fullyParallel: true,
forbidOnly: !!process.env.CI,
retries: process.env.CI ? 2 : 0,
- workers: process.env.CI ? 1 : undefined,
+ workers: 1,
reporter: 'html',
+ webServer: {
+ command: "turbo run dev:test",
+ port: 4001,
+ reuseExistingServer: false,
+ timeout: 60 * 1000,
+ },
use: {
screenshot: 'only-on-failure',
viewport: { width: 1920, height: 1080 },
@@ -29,9 +29,6 @@ const config: PlaywrightTestConfig = {
ignoreHTTPSErrors: true,
trace: 'on-first-retry',
},
- webServer: {
- command: "pnpm dev:server"
- },
projects: [
{
name: 'chromium',
@@ -40,17 +37,9 @@ const config: PlaywrightTestConfig = {
},
},
- {
- name: 'firefox',
- testMatch: /.*.spec.all.ts/,
- use: {
- ...devices['Desktop Firefox'],
- },
- },
-
{
name: 'webkit',
- testMatch: /.*.spec.ts/,
+ testMatch: /.*.spec.mac.ts/,
use: {
...devices['Desktop Safari'],
},
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index 20b1ad683..8ef008903 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -4,28 +4,28 @@ importers:
.:
specifiers:
- '@playwright/test': ^1.30.0
+ '@playwright/test': ^1.32.1
'@types/node': ^18.11.18
'@typescript-eslint/eslint-plugin': ^5.48.0
'@typescript-eslint/parser': ^5.48.0
+ cross-env: ^7.0.3
eslint: ^8.31.0
eslint-config-prettier: ^8.6.0
- eslint-plugin-playwright: ^0.11.2
+ eslint-plugin-playwright: ^0.12.0
prettier: ^2.8.2
- start-server-and-test: ^1.15.2
- turbo: ^1.6.3
+ turbo: ^1.8.8
typescript: ^4.8.3
devDependencies:
- '@playwright/test': 1.30.0
+ '@playwright/test': 1.32.1
'@types/node': 18.11.18
'@typescript-eslint/eslint-plugin': 5.48.0_k73wpmdolxikpyqun3p36akaaq
'@typescript-eslint/parser': 5.48.0_iukboom6ndih5an6iafl45j2fe
+ cross-env: 7.0.3
eslint: 8.31.0
eslint-config-prettier: 8.6.0_eslint@8.31.0
- eslint-plugin-playwright: 0.11.2_eslint@8.31.0
+ eslint-plugin-playwright: 0.12.0_eslint@8.31.0
prettier: 2.8.2
- start-server-and-test: 1.15.2
- turbo: 1.6.3
+ turbo: 1.8.8
typescript: 4.9.4
apps/client:
@@ -2251,16 +2251,6 @@ packages:
- supports-color
dev: true
- /@hapi/hoek/9.3.0:
- resolution: {integrity: sha512-/c6rf4UJlmHlC9b5BaNvzAcFv7HZ2QHaV0D4/HNlBdvFnvQq8RI4kYdhyPCl7Xj+oWvTWQ8ujhqS53LIgAe6KQ==}
- dev: true
-
- /@hapi/topo/5.1.0:
- resolution: {integrity: sha512-foQZKJig7Ob0BMAYBfcJk8d77QtOe7Wo4ox7ff1lQYoNNAb6jwcY1ncdoy2e9wQZzvNy7ODZCYJkK8kzmcAnAg==}
- dependencies:
- '@hapi/hoek': 9.3.0
- dev: true
-
/@humanwhocodes/config-array/0.11.8:
resolution: {integrity: sha512-UybHIJzJnR5Qc/MsD9Kr+RpO2h+/P1GhOwdiLPXK5TWk5sgTdu88bTD9UP+CKbPPh5Rni1u0GjAdYQLemG8g+g==}
engines: {node: '>=10.10.0'}
@@ -2439,13 +2429,15 @@ packages:
fastq: 1.15.0
dev: true
- /@playwright/test/1.30.0:
- resolution: {integrity: sha512-SVxkQw1xvn/Wk/EvBnqWIq6NLo1AppwbYOjNLmyU0R1RoQ3rLEBtmjTnElcnz8VEtn11fptj1ECxK0tgURhajw==}
+ /@playwright/test/1.32.1:
+ resolution: {integrity: sha512-FTwjCuhlm1qHUGf4hWjfr64UMJD/z0hXYbk+O387Ioe6WdyZQ+0TBDAc6P+pHjx2xCv1VYNgrKbYrNixFWy4Dg==}
engines: {node: '>=14'}
hasBin: true
dependencies:
'@types/node': 18.11.18
- playwright-core: 1.30.0
+ playwright-core: 1.32.1
+ optionalDependencies:
+ fsevents: 2.3.2
dev: true
/@popperjs/core/2.11.6:
@@ -2598,20 +2590,6 @@ packages:
- supports-color
dev: true
- /@sideway/address/4.1.4:
- resolution: {integrity: sha512-7vwq+rOHVWjyXxVlR76Agnvhy8I9rpzjosTESvmhNeXOXdZZB15Fl+TI9x1SiHZH5Jv2wTGduSxFDIaq0m3DUw==}
- dependencies:
- '@hapi/hoek': 9.3.0
- dev: true
-
- /@sideway/formula/3.0.1:
- resolution: {integrity: sha512-/poHZJJVjx3L+zVD6g9KgHfYnb443oi7wLu/XKojDviHy6HOEOA6z1Trk5aR1dGcmPenJEgb2sK2I80LeS3MIg==}
- dev: true
-
- /@sideway/pinpoint/2.0.0:
- resolution: {integrity: sha512-RNiOoTPkptFtSVzQevY/yWtZwf/RxyVnPy/OcA9HBM3MlGDnBEYL5B41H0MTn0Uec8Hi+2qUtTfG2WWZBmMejQ==}
- dev: true
-
/@sinclair/typebox/0.24.51:
resolution: {integrity: sha512-1P1OROm/rdubP5aFDSZQILU0vrLCJ4fvHt6EoqHEM+2D/G5MK3bIaymUKLit8Js9gbns5UyJnkP/TZROLw4tUA==}
dev: true
@@ -3623,10 +3601,6 @@ packages:
resolution: {integrity: sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==}
dev: true
- /arg/5.0.2:
- resolution: {integrity: sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==}
- dev: true
-
/argparse/2.0.1:
resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==}
dev: true
@@ -3745,14 +3719,6 @@ packages:
engines: {node: '>= 0.4'}
dev: true
- /axios/0.25.0_debug@4.3.4:
- resolution: {integrity: sha512-cD8FOb0tRH3uuEe6+evtAbgJtfxr7ly3fQjYcMcuPlgkwVS9xboaVIpcDV+cYQe+yGykgwZCs1pzjntcGa6l5g==}
- dependencies:
- follow-redirects: 1.15.2
- transitivePeerDependencies:
- - debug
- dev: true
-
/axios/1.2.2:
resolution: {integrity: sha512-bz/J4gS2S3I7mpN/YZfGFTqhXTYzRho8Ay38w2otuuDR322KzFIWm/4W2K6gIwvWaws5n+mnb7D1lN9uD+QH6Q==}
dependencies:
@@ -4043,11 +4009,6 @@ packages:
resolution: {integrity: sha512-BrgHpW9NURQgzoNyjfq0Wu6VFO6D7IZEmJNdtgNqpzGG8RuNFHt2jQxWlAs4HMe119chBnv+34syEZtc6IhLtA==}
dev: true
- /check-more-types/2.24.0:
- resolution: {integrity: sha512-Pj779qHxV2tuapviy1bSZNEL1maXr13bPYpsvSDB68HlYcYuhlDrmGd63i0JHMCLKzc7rUSNIrpdJlhVlNwrxA==}
- engines: {node: '>= 0.8.0'}
- dev: true
-
/chokidar/3.5.3:
resolution: {integrity: sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==}
engines: {node: '>= 8.10.0'}
@@ -4296,6 +4257,14 @@ packages:
resolution: {integrity: sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==}
dev: true
+ /cross-env/7.0.3:
+ resolution: {integrity: sha512-+/HKd6EgcQCJGh2PSjZuUitQBQynKor4wrFbRg4DtAgS1aWO+gU52xpH7M9ScGgXSYmAVS9bIJ8EzuaGw0oNAw==}
+ engines: {node: '>=10.14', npm: '>=6', yarn: '>=1'}
+ hasBin: true
+ dependencies:
+ cross-spawn: 7.0.3
+ dev: true
+
/cross-spawn/7.0.3:
resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==}
engines: {node: '>= 8'}
@@ -4599,10 +4568,6 @@ packages:
engines: {node: '>=10'}
dev: true
- /duplexer/0.1.2:
- resolution: {integrity: sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==}
- dev: true
-
/duplexer3/0.1.5:
resolution: {integrity: sha512-1A8za6ws41LQgv9HrE/66jyC5yuSjQ3L/KOpFtoBilsAK2iA2wuS5rTt1OCzIvtS2V7nVmedsUU+DGRcjBmOYA==}
dev: true
@@ -4931,8 +4896,8 @@ packages:
- typescript
dev: true
- /eslint-plugin-playwright/0.11.2_eslint@8.31.0:
- resolution: {integrity: sha512-uRLRLk7uTzc8NE6t4wBU8dijQwHvC66R/h7xwdM779jsJjMUtSmeaB8ayRkkpfwi+UU5BEfwvDANwmE+ccMVDw==}
+ /eslint-plugin-playwright/0.12.0_eslint@8.31.0:
+ resolution: {integrity: sha512-KXuzQjVzca5irMT/7rvzJKsVDGbQr43oQPc8i+SLEBqmfrTxlwMwRqfv9vtZqh4hpU0jmrnA/EOfwtls+5QC1w==}
peerDependencies:
eslint: '>=7'
eslint-plugin-jest: '>=24'
@@ -5167,33 +5132,6 @@ packages:
engines: {node: '>= 0.6'}
dev: false
- /event-stream/3.3.4:
- resolution: {integrity: sha512-QHpkERcGsR0T7Qm3HNJSyXKEEj8AHNxkY3PK8TS2KJvQ7NiSHe3DDpwVKKtoYprL/AreyzFBeIkBIWChAqn60g==}
- dependencies:
- duplexer: 0.1.2
- from: 0.1.7
- map-stream: 0.1.0
- pause-stream: 0.0.11
- split: 0.3.3
- stream-combiner: 0.0.4
- through: 2.3.8
- dev: true
-
- /execa/5.1.1:
- resolution: {integrity: sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==}
- engines: {node: '>=10'}
- dependencies:
- cross-spawn: 7.0.3
- get-stream: 6.0.1
- human-signals: 2.1.0
- is-stream: 2.0.1
- merge-stream: 2.0.0
- npm-run-path: 4.0.1
- onetime: 5.1.2
- signal-exit: 3.0.7
- strip-final-newline: 2.0.0
- dev: true
-
/exit-on-epipe/1.0.1:
resolution: {integrity: sha512-h2z5mrROTxce56S+pnvAV890uu7ls7f1kEvVGJbw1OlFH3/mlJ5bkXu0KRyW94v37zzHPiUd55iLn3DA7TjWpw==}
engines: {node: '>=0.8'}
@@ -5420,6 +5358,7 @@ packages:
peerDependenciesMeta:
debug:
optional: true
+ dev: false
/for-each/0.3.3:
resolution: {integrity: sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==}
@@ -5471,10 +5410,6 @@ packages:
engines: {node: '>= 0.6'}
dev: false
- /from/0.1.7:
- resolution: {integrity: sha512-twe20eF1OxVxp/ML/kq2p1uc6KvFK/+vs8WjEbeKmV2He22MKm7YF2ANIt+EOqhJ5L3K/SuuPhk0hWQDjOM23g==}
- dev: true
-
/fs-extra/10.1.0:
resolution: {integrity: sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==}
engines: {node: '>=12'}
@@ -5579,11 +5514,6 @@ packages:
pump: 3.0.0
dev: true
- /get-stream/6.0.1:
- resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==}
- engines: {node: '>=10'}
- dev: true
-
/get-symbol-description/1.0.0:
resolution: {integrity: sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==}
engines: {node: '>= 0.4'}
@@ -5849,11 +5779,6 @@ packages:
transitivePeerDependencies:
- supports-color
- /human-signals/2.1.0:
- resolution: {integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==}
- engines: {node: '>=10.17.0'}
- dev: true
-
/iconv-corefoundation/1.1.7:
resolution: {integrity: sha512-T10qvkw0zz4wnm560lOEg0PovVqUXuOFhhHAkixw8/sycy7TJt7v/RrkEKEQnAw2viPSJu6iAkErxnzR0g8PpQ==}
engines: {node: ^8.11.2 || >=10}
@@ -6107,11 +6032,6 @@ packages:
call-bind: 1.0.2
dev: true
- /is-stream/2.0.1:
- resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==}
- engines: {node: '>=8'}
- dev: true
-
/is-string/1.0.7:
resolution: {integrity: sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==}
engines: {node: '>= 0.4'}
@@ -6250,16 +6170,6 @@ packages:
picomatch: 2.3.1
dev: true
- /joi/17.7.0:
- resolution: {integrity: sha512-1/ugc8djfn93rTE3WRKdCzGGt/EtiYKxITMO4Wiv6q5JL1gl9ePt4kBsl1S499nbosspfctIQTpYIhSmHA3WAg==}
- dependencies:
- '@hapi/hoek': 9.3.0
- '@hapi/topo': 5.1.0
- '@sideway/address': 4.1.4
- '@sideway/formula': 3.0.1
- '@sideway/pinpoint': 2.0.0
- dev: true
-
/js-sdsl/4.2.0:
resolution: {integrity: sha512-dyBIzQBDkCqCu+0upx25Y2jGdbTGxE9fshMsCdK0ViOongpV+n5tXRcZY9v7CaVQ79AGS9KA1KHtojxiM7aXSQ==}
dev: true
@@ -6392,11 +6302,6 @@ packages:
resolution: {integrity: sha512-5FZRzrZzNTBruuurWpvZnvP9pum+fe0HcK8z/ooo+U+Hmp4vtbyp1/QDsqmufirXy4egGzbaH/y2uCZf+6W5Kg==}
dev: true
- /lazy-ass/1.6.0:
- resolution: {integrity: sha512-cc8oEVoctTvsFZ/Oje/kGnHbpWHYBe8IAJe4C0QNc3t8uM/0Y8+erSz/7Y1ALuXTEZTMvxXwO6YbX1ey3ujiZw==}
- engines: {node: '> 0.8'}
- dev: true
-
/lazy-val/1.0.5:
resolution: {integrity: sha512-0/BnGCCfyUMkBpeDgWihanIAF9JmZhHBgUhEqzvf+adhNGLoP6TaiI5oF8oyb3I45P+PcnrqihSf01M0l0G5+Q==}
dev: true
@@ -6530,10 +6435,6 @@ packages:
engines: {node: '>=8'}
dev: true
- /map-stream/0.1.0:
- resolution: {integrity: sha512-CkYQrPYZfWnu/DAmVCpTSX/xHpKZ80eKh2lAkyA6AJTef6bW+6JpbQZN5rofum7da+SyN1bi5ctTm+lTfcCW3g==}
- dev: true
-
/matcher/3.0.0:
resolution: {integrity: sha512-OkeDaAZ/bQCxeFAozM55PKcKU0yJMPGifLwV4Qgjitu+5MoAfSQN4lsLJeXZ1b8w0x+/Emda6MZgXS1jvsapng==}
engines: {node: '>=10'}
@@ -6573,10 +6474,6 @@ packages:
resolution: {integrity: sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==}
dev: false
- /merge-stream/2.0.0:
- resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==}
- dev: true
-
/merge2/1.4.1:
resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==}
engines: {node: '>= 8'}
@@ -6617,11 +6514,6 @@ packages:
hasBin: true
dev: true
- /mimic-fn/2.1.0:
- resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==}
- engines: {node: '>=6'}
- dev: true
-
/mimic-response/1.0.1:
resolution: {integrity: sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==}
engines: {node: '>=4'}
@@ -6855,13 +6747,6 @@ packages:
dev: true
optional: true
- /npm-run-path/4.0.1:
- resolution: {integrity: sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==}
- engines: {node: '>=8'}
- dependencies:
- path-key: 3.1.1
- dev: true
-
/nwsapi/2.2.2:
resolution: {integrity: sha512-90yv+6538zuvUMnN+zCr8LuV6bPFdq50304114vJYJ8RDyK8D5O9Phpbd6SZWgI7PwzmmfN1upeOJlvybDSgCw==}
dev: true
@@ -6948,13 +6833,6 @@ packages:
wrappy: 1.0.2
dev: true
- /onetime/5.1.2:
- resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==}
- engines: {node: '>=6'}
- dependencies:
- mimic-fn: 2.1.0
- dev: true
-
/optionator/0.8.3:
resolution: {integrity: sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==}
engines: {node: '>= 0.8.0'}
@@ -7112,12 +6990,6 @@ packages:
resolution: {integrity: sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==}
dev: true
- /pause-stream/0.0.11:
- resolution: {integrity: sha512-e3FBlXLmN/D1S+zHzanP4E/4Z60oFAa3O051qt1pxa7DEJWKAyil6upYVXCWadEnuoqa4Pkc9oUx9zsxYeRv8A==}
- dependencies:
- through: 2.3.8
- dev: true
-
/pause/0.0.1:
resolution: {integrity: sha512-KG8UEiEVkR3wGEb4m5yZkVCzigAD+cVEJck2CzYZO37ZGJfctvVptVO192MwrtPhzONn6go8ylnOdMhKqi4nfg==}
dev: false
@@ -7149,8 +7021,8 @@ packages:
pathe: 1.1.0
dev: true
- /playwright-core/1.30.0:
- resolution: {integrity: sha512-7AnRmTCf+GVYhHbLJsGUtskWTE33SwMZkybJ0v6rqR1boxq2x36U7p1vDRV7HO2IwTZgmycracLxPEJI49wu4g==}
+ /playwright-core/1.32.1:
+ resolution: {integrity: sha512-KZYUQC10mXD2Am1rGlidaalNGYk3LU1vZqqNk0gT4XPty1jOqgup8KDP8l2CUlqoNKhXM5IfGjWgW37xvGllBA==}
engines: {node: '>=14'}
hasBin: true
dev: true
@@ -7298,14 +7170,6 @@ packages:
/proxy-from-env/1.1.0:
resolution: {integrity: sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==}
- /ps-tree/1.2.0:
- resolution: {integrity: sha512-0VnamPPYHl4uaU/nSFeZZpR21QAWRz+sRv4iW9+v/GS/J5U5iZB5BNN6J0RMoOvdx2gWM2+ZFMIm58q24e4UYA==}
- engines: {node: '>= 0.10'}
- hasBin: true
- dependencies:
- event-stream: 3.3.4
- dev: true
-
/psl/1.9.0:
resolution: {integrity: sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==}
dev: true
@@ -7718,12 +7582,6 @@ packages:
queue-microtask: 1.2.3
dev: true
- /rxjs/7.8.0:
- resolution: {integrity: sha512-F2+gxDshqmIub1KdvZkaEfGDwLNpPvk9Fs6LD/MyQxNgMds/WH9OdDDXOmxUZpME+iSK3rQCctkL0DYyytUqMg==}
- dependencies:
- tslib: 2.4.1
- dev: true
-
/safe-buffer/5.1.2:
resolution: {integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==}
dev: false
@@ -7992,12 +7850,6 @@ packages:
resolution: {integrity: sha512-rr+VVSXtRhO4OHbXUiAF7xW3Bo9DuuF6C5jH+q/x15j2jniycgKbxU09Hr0WqlSLUs4i4ltHGXqTe7VHclYWyA==}
dev: true
- /split/0.3.3:
- resolution: {integrity: sha512-wD2AeVmxXRBoX44wAycgjVpMhvbwdI2aZjCkvfNcH1YqHQvJVa1duWc73OyVGJUc05fhFaTZeQ/PYsrmyH0JVA==}
- dependencies:
- through: 2.3.8
- dev: true
-
/sprintf-js/1.1.2:
resolution: {integrity: sha512-VE0SOVEHCk7Qc8ulkWw3ntAzXuqf7S2lvwQaDLRnUeIEaKNQJzV6BwmLKhOqT61aGhfUMrXeaBk+oDGCzvhcug==}
dev: true
@@ -8021,23 +7873,6 @@ packages:
resolution: {integrity: sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==}
dev: true
- /start-server-and-test/1.15.2:
- resolution: {integrity: sha512-t5xJX04Hg7hqxiKHMJBz/n4zIMsE6G7hpAcerFAH+4Vh9le/LeyFcJERJM7WLiPygWF9TOg33oroJF1XOzJtYQ==}
- engines: {node: '>=6'}
- hasBin: true
- dependencies:
- arg: 5.0.2
- bluebird: 3.7.2
- check-more-types: 2.24.0
- debug: 4.3.4
- execa: 5.1.1
- lazy-ass: 1.6.0
- ps-tree: 1.2.0
- wait-on: 6.0.1_debug@4.3.4
- transitivePeerDependencies:
- - supports-color
- dev: true
-
/stat-mode/1.0.0:
resolution: {integrity: sha512-jH9EhtKIjuXZ2cWxmXS8ZP80XyC3iasQxMDV8jzhNJpfDb7VbQLVW4Wvsxz9QZvzV+G4YoSfBUVKDOyxLzi/sg==}
engines: {node: '>= 6'}
@@ -8064,12 +7899,6 @@ packages:
internal-slot: 1.0.4
dev: true
- /stream-combiner/0.0.4:
- resolution: {integrity: sha512-rT00SPnTVyRsaSz5zgSPma/aHSOic5U1prhYdRy5HS2kTZviFpmDgzilbtsJsxiroqACmayynDN/9VzIbX5DOw==}
- dependencies:
- duplexer: 0.1.2
- dev: true
-
/streamsearch/0.1.2:
resolution: {integrity: sha512-jos8u++JKm0ARcSUTAZXOVC0mSox7Bhn6sBgty73P1f3JGf7yG2clTbBNHUdde/kdvP2FESam+vM6l8jBrNxHA==}
engines: {node: '>=0.8.0'}
@@ -8146,11 +7975,6 @@ packages:
ansi-regex: 6.0.1
dev: true
- /strip-final-newline/2.0.0:
- resolution: {integrity: sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==}
- engines: {node: '>=6'}
- dev: true
-
/strip-indent/3.0.0:
resolution: {integrity: sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==}
engines: {node: '>=8'}
@@ -8380,10 +8204,6 @@ packages:
resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==}
dev: true
- /through/2.3.8:
- resolution: {integrity: sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==}
- dev: true
-
/tiny-invariant/1.3.1:
resolution: {integrity: sha512-AD5ih2NlSssTCwsMznbvwMZpJ1cbhkGd2uueNxzv2jDlEeZdU04JQfRnggJQ8DrcVBGjAsCKwFBbDlVNtEMlzw==}
dev: false
@@ -8532,6 +8352,7 @@ packages:
/tslib/2.4.1:
resolution: {integrity: sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA==}
+ dev: false
/tslib/2.5.0:
resolution: {integrity: sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg==}
@@ -8553,65 +8374,65 @@ packages:
dev: true
optional: true
- /turbo-darwin-64/1.6.3:
- resolution: {integrity: sha512-QmDIX0Yh1wYQl0bUS0gGWwNxpJwrzZU2GIAYt3aOKoirWA2ecnyb3R6ludcS1znfNV2MfunP+l8E3ncxUHwtjA==}
+ /turbo-darwin-64/1.8.8:
+ resolution: {integrity: sha512-18cSeIm7aeEvIxGyq7PVoFyEnPpWDM/0CpZvXKHpQ6qMTkfNt517qVqUTAwsIYqNS8xazcKAqkNbvU1V49n65Q==}
cpu: [x64]
os: [darwin]
requiresBuild: true
dev: true
optional: true
- /turbo-darwin-arm64/1.6.3:
- resolution: {integrity: sha512-75DXhFpwE7CinBbtxTxH08EcWrxYSPFow3NaeFwsG8aymkWXF+U2aukYHJA6I12n9/dGqf7yRXzkF0S/9UtdyQ==}
+ /turbo-darwin-arm64/1.8.8:
+ resolution: {integrity: sha512-ruGRI9nHxojIGLQv1TPgN7ud4HO4V8mFBwSgO6oDoZTNuk5ybWybItGR+yu6fni5vJoyMHXOYA2srnxvOc7hjQ==}
cpu: [arm64]
os: [darwin]
requiresBuild: true
dev: true
optional: true
- /turbo-linux-64/1.6.3:
- resolution: {integrity: sha512-O9uc6J0yoRPWdPg9THRQi69K6E2iZ98cRHNvus05lZbcPzZTxJYkYGb5iagCmCW/pq6fL4T4oLWAd6evg2LGQA==}
+ /turbo-linux-64/1.8.8:
+ resolution: {integrity: sha512-N/GkHTHeIQogXB1/6ZWfxHx+ubYeb8Jlq3b/3jnU4zLucpZzTQ8XkXIAfJG/TL3Q7ON7xQ8yGOyGLhHL7MpFRg==}
cpu: [x64]
os: [linux]
requiresBuild: true
dev: true
optional: true
- /turbo-linux-arm64/1.6.3:
- resolution: {integrity: sha512-dCy667qqEtZIhulsRTe8hhWQNCJO0i20uHXv7KjLHuFZGCeMbWxB8rsneRoY+blf8+QNqGuXQJxak7ayjHLxiA==}
+ /turbo-linux-arm64/1.8.8:
+ resolution: {integrity: sha512-hKqLbBHgUkYf2Ww8uBL9UYdBFQ5677a7QXdsFhONXoACbDUPvpK4BKlz3NN7G4NZ+g9dGju+OJJjQP0VXRHb5w==}
cpu: [arm64]
os: [linux]
requiresBuild: true
dev: true
optional: true
- /turbo-windows-64/1.6.3:
- resolution: {integrity: sha512-lKRqwL3mrVF09b9KySSaOwetehmGknV9EcQTF7d2dxngGYYX1WXoQLjFP9YYH8ZV07oPm+RUOAKSCQuDuMNhiA==}
+ /turbo-windows-64/1.8.8:
+ resolution: {integrity: sha512-2ndjDJyzkNslXxLt+PQuU21AHJWc8f6MnLypXy3KsN4EyX/uKKGZS0QJWz27PeHg0JS75PVvhfFV+L9t9i+Yyg==}
cpu: [x64]
os: [win32]
requiresBuild: true
dev: true
optional: true
- /turbo-windows-arm64/1.6.3:
- resolution: {integrity: sha512-BXY1sDPEA1DgPwuENvDCD8B7Hb0toscjus941WpL8CVd10hg9pk/MWn9CNgwDO5Q9ks0mw+liDv2EMnleEjeNA==}
+ /turbo-windows-arm64/1.8.8:
+ resolution: {integrity: sha512-xCA3oxgmW9OMqpI34AAmKfOVsfDljhD5YBwgs0ZDsn5h3kCHhC4x9W5dDk1oyQ4F5EXSH3xVym5/xl1J6WRpUg==}
cpu: [arm64]
os: [win32]
requiresBuild: true
dev: true
optional: true
- /turbo/1.6.3:
- resolution: {integrity: sha512-FtfhJLmEEtHveGxW4Ye/QuY85AnZ2ZNVgkTBswoap7UMHB1+oI4diHPNyqrQLG4K1UFtCkjOlVoLsllUh/9QRw==}
+ /turbo/1.8.8:
+ resolution: {integrity: sha512-qYJ5NjoTX+591/x09KgsDOPVDUJfU9GoS+6jszQQlLp1AHrf1wRFA3Yps8U+/HTG03q0M4qouOfOLtRQP4QypA==}
hasBin: true
requiresBuild: true
optionalDependencies:
- turbo-darwin-64: 1.6.3
- turbo-darwin-arm64: 1.6.3
- turbo-linux-64: 1.6.3
- turbo-linux-arm64: 1.6.3
- turbo-windows-64: 1.6.3
- turbo-windows-arm64: 1.6.3
+ turbo-darwin-64: 1.8.8
+ turbo-darwin-arm64: 1.8.8
+ turbo-linux-64: 1.8.8
+ turbo-linux-arm64: 1.8.8
+ turbo-windows-64: 1.8.8
+ turbo-windows-arm64: 1.8.8
dev: true
/type-check/0.3.2:
@@ -9168,20 +8989,6 @@ packages:
xml-name-validator: 4.0.0
dev: true
- /wait-on/6.0.1_debug@4.3.4:
- resolution: {integrity: sha512-zht+KASY3usTY5u2LgaNqn/Cd8MukxLGjdcZxT2ns5QzDmTFc4XoWBgC+C/na+sMRZTuVygQoMYwdcVjHnYIVw==}
- engines: {node: '>=10.0.0'}
- hasBin: true
- dependencies:
- axios: 0.25.0_debug@4.3.4
- joi: 17.7.0
- lodash: 4.17.21
- minimist: 1.2.7
- rxjs: 7.8.0
- transitivePeerDependencies:
- - debug
- dev: true
-
/web-vitals/3.1.1:
resolution: {integrity: sha512-qvllU+ZeQChqzBhZ1oyXmWsjJ8a2jHYpH8AMaVuf29yscOPZfTQTjQFRX6+eADTdsDE8IanOZ0cetweHMs8/2A==}
dev: false
diff --git a/turbo.json b/turbo.json
index 8a85a9cf9..cdd3a342f 100644
--- a/turbo.json
+++ b/turbo.json
@@ -2,7 +2,10 @@
"$schema": "https://turbo.build/schema.json",
"pipeline":{
"dev": {},
+ "dev:server": {},
+ "dev:test": {},
"build": {},
+ "build:local": {},
"build:docker": {},
"test": {},
"test:pipeline": {},