From f797f4d8976cccad91338894bc49080ea22b0c19 Mon Sep 17 00:00:00 2001 From: Annie Huang Date: Wed, 7 Feb 2024 14:24:54 +0800 Subject: [PATCH 01/28] update readme -- build up method --- README.md | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 870d116..256749d 100644 --- a/README.md +++ b/README.md @@ -17,10 +17,13 @@ ## Development +Run mongoDB first: + + docker compose up -d db + Run everything (frontend, backend, db, swagger, quests): - docker compose build - docker compose up -d + yarn dev If you want to enable social login, you should have OAuth client token in a `.env` file: @@ -144,4 +147,3 @@ connect to other host: list sessions: yarn cli list - \ No newline at end of file From c06d6d6debdde5788b9d42193a043a853d64f4d8 Mon Sep 17 00:00:00 2001 From: wancat Date: Thu, 8 Feb 2024 17:40:01 +0800 Subject: [PATCH 02/28] change e2e to use node module --- .env.dev | 4 ++++ app/Dockerfile | 2 +- docker-compose.testing.yml | 4 ++-- server/package.json | 2 +- server/src/config.js | 5 +++++ tests/Dockerfile | 9 ++++++--- tests/{cypress.config.js => cypress.config.mjs} | 11 +++++++---- tests/package.json | 5 +++-- 8 files changed, 29 insertions(+), 13 deletions(-) create mode 100644 .env.dev rename tests/{cypress.config.js => cypress.config.mjs} (84%) diff --git a/.env.dev b/.env.dev new file mode 100644 index 0000000..9bd9af8 --- /dev/null +++ b/.env.dev @@ -0,0 +1,4 @@ +TESTING=true +TESTING_USERNAME=alex +TESTING_PASSWORD=Alex1234 +SECRET_KEY=b1d2e917-17b9-4fce-9055-082dee6ec5d6 \ No newline at end of file diff --git a/app/Dockerfile b/app/Dockerfile index 0d786c5..bd705d2 100644 --- a/app/Dockerfile +++ b/app/Dockerfile @@ -8,7 +8,7 @@ COPY packages/file-graph/package.json ./packages/file-graph/package.json COPY packages/utils/package.json ./packages/utils/package.json COPY packages/constants/package.json ./packages/constants/package.json COPY app/package.json ./app/package.json -RUN yarn install +RUN yarn install # Dev stage FROM base as dev diff --git a/docker-compose.testing.yml b/docker-compose.testing.yml index 2691c7f..bf0b408 100644 --- a/docker-compose.testing.yml +++ b/docker-compose.testing.yml @@ -6,8 +6,8 @@ services: dockerfile: tests/Dockerfile networks: - internal - volumes: - - ./tests:/e2e/tests + # volumes: + # - ./tests:/e2e/tests environment: - BASE_URL=http://app-test - TESTING_USERNAME=alex diff --git a/server/package.json b/server/package.json index 7562dae..0cdeebf 100644 --- a/server/package.json +++ b/server/package.json @@ -9,7 +9,7 @@ "setup": "node dist/cli/setup.js", "clean": "node dist/cli/clean.js", "build": "tsc", - "watch": "concurrently \"tsc -w\" \"nodemon\"", + "watch": "concurrently \"nodemon\" \"tsc -w\"", "build:quests": "node dist/cli/build.js" }, "dependencies": { diff --git a/server/src/config.js b/server/src/config.js index 2f7b7c8..9634c1f 100644 --- a/server/src/config.js +++ b/server/src/config.js @@ -4,6 +4,9 @@ import { get } from './utils/env.js' // Import dotenv and load ../.env dotenv.config({ path: '../.env' }) +if (process.env.NODE_ENV !== 'production') { + dotenv.config({ path: '../.env.dev' }) +} function getTrustProxies(key) { if (!process.env[key]) { @@ -68,4 +71,6 @@ export function getQuestImage(id) { return `${config.docker.imagePrefix}${id}` } +console.log(config) + export default config diff --git a/tests/Dockerfile b/tests/Dockerfile index 0e35d91..6c56099 100644 --- a/tests/Dockerfile +++ b/tests/Dockerfile @@ -1,10 +1,13 @@ -FROM cypress/included:13.5.1 +FROM cypress/browsers:node-20.11.0-chrome-121.0.6167.85-1-ff-120.0-edge-121.0.2277.83-1 WORKDIR /e2e +RUN yarn set version stable COPY package.json yarn.lock ./ COPY tests/package.json ./tests/package.json -RUN yarn install --frozen-lockfile +RUN yarn config set -H enableImmutableInstalls false +RUN yarn install COPY quests ./quests COPY tests ./tests -WORKDIR /e2e/tests \ No newline at end of file +WORKDIR /e2e/tests +CMD [ "yarn", "test:e2e" ] \ No newline at end of file diff --git a/tests/cypress.config.js b/tests/cypress.config.mjs similarity index 84% rename from tests/cypress.config.js rename to tests/cypress.config.mjs index b2bb72e..354bdc7 100644 --- a/tests/cypress.config.js +++ b/tests/cypress.config.mjs @@ -1,6 +1,9 @@ -const { defineConfig } = require('cypress') -const process = require('process') -require('dotenv').config({ path: '../.env' }) +import { defineConfig } from 'cypress' +import process from 'process' +import dotenv from 'dotenv' + +dotenv.config({ path: '../.env.dev' }) +dotenv.config({ path: '../.env' }) const getConfig = (key, defaultValue) => { return process.env[key] || defaultValue @@ -14,7 +17,7 @@ const getOrFail = (key) => { return value } -module.exports = defineConfig({ +export default defineConfig({ e2e: { baseUrl: getConfig('BASE_URL', 'http://localhost:5173'), viewportWidth: 1920, diff --git a/tests/package.json b/tests/package.json index 18332d0..46b0294 100644 --- a/tests/package.json +++ b/tests/package.json @@ -3,10 +3,11 @@ "version": "1.0.0", "private": true, "main": "index.js", + "type": "module", "license": "MIT", "scripts": { - "test": "TESTING_USERNAME=alex TESTING_PASSWORD=Alex1234 cypress run", - "test:open": "TESTING_USERNAME=alex TESTING_PASSWORD=Alex1234 cypress open" + "test": "yarn cypress run", + "test:open": "yarn cypress open" }, "dependencies": { "@testing-library/cypress": "^10.0.1", From 5c17f5ea3c5b1389b9aecd515d0b3dec0413b36d Mon Sep 17 00:00:00 2001 From: Annie Huang Date: Thu, 8 Feb 2024 17:49:05 +0800 Subject: [PATCH 03/28] typescript initial edit --- .../e2e/{UItests.cy.js => UItests.cy.ts} | 1 - ...pleteQuests.cy.js => completeQuests.cy.ts} | 1 - .../support/{commands.js => commands.ts} | 56 ++++++++++++++++--- tests/package.json | 3 + tests/tsconfig.json | 8 +++ yarn.lock | 1 + 6 files changed, 60 insertions(+), 10 deletions(-) rename tests/cypress/e2e/{UItests.cy.js => UItests.cy.ts} (99%) rename tests/cypress/e2e/{completeQuests.cy.js => completeQuests.cy.ts} (96%) rename tests/cypress/support/{commands.js => commands.ts} (70%) create mode 100644 tests/tsconfig.json diff --git a/tests/cypress/e2e/UItests.cy.js b/tests/cypress/e2e/UItests.cy.ts similarity index 99% rename from tests/cypress/e2e/UItests.cy.js rename to tests/cypress/e2e/UItests.cy.ts index c2ecfd7..9d0050f 100644 --- a/tests/cypress/e2e/UItests.cy.js +++ b/tests/cypress/e2e/UItests.cy.ts @@ -1,4 +1,3 @@ -/// export default function checkLoginUI() { cy.get('#title').should('contain', 'Linux Odyssey').and('be.visible') cy.CheckPlaceholder('#password', '密碼', 'Password') diff --git a/tests/cypress/e2e/completeQuests.cy.js b/tests/cypress/e2e/completeQuests.cy.ts similarity index 96% rename from tests/cypress/e2e/completeQuests.cy.js rename to tests/cypress/e2e/completeQuests.cy.ts index 3ef0aab..57ba8e2 100644 --- a/tests/cypress/e2e/completeQuests.cy.js +++ b/tests/cypress/e2e/completeQuests.cy.ts @@ -1,4 +1,3 @@ -/// describe('Complete quests with only commands', () => { beforeEach(() => { cy.PrepareForGame() diff --git a/tests/cypress/support/commands.js b/tests/cypress/support/commands.ts similarity index 70% rename from tests/cypress/support/commands.js rename to tests/cypress/support/commands.ts index 9428779..eb62a5f 100644 --- a/tests/cypress/support/commands.js +++ b/tests/cypress/support/commands.ts @@ -1,12 +1,52 @@ -import '@testing-library/cypress/add-commands' +// import '@testing-library/cypress/add-commands' +declare global { + declare namespace Cypress { + interface Chainable { + // 確保你有正確的泛型參數 + fillWith( + account: string, + password: string + ): Chainable> + LoginWithPassword( + username: string, + password: string + ): Chainable> + PrepareForGame(): Chainable> + InitTerminal(): Chainable> + typeInCommand(command: string): Chainable> + getQuestInfo(id: string): Chainable> + checkHint(index: number, total: number): Chainable> // 修改類型 + checkTaskInit(): Chainable> + waitUntilActive(last: boolean): Chainable> // 注意小寫boolean,並且變量名應該是小寫 + checkPending(): Chainable> + CompleteStageWithCommands( + stagename: string + ): Chainable> + CheckTextElement( + id: string, + chText: string, + enText: string + ): Chainable> + CheckPlaceholder( + id: string, + chText: string, + enText: string + ): Chainable> + CheckTreeElement(element: string): Chainable> + } + } +} -Cypress.Commands.add('LoginWithPassword', (username, password) => { - cy.clearAllCookies({ domain: null }) - cy.visit('/login') - cy.get('#username').type(username) - cy.get('#password').type(password) - cy.get('#LogInOrSignUp').click() -}) +Cypress.Commands.add( + 'LoginWithPassword', + (username: string, password: string) => { + cy.clearAllCookies({ domain: null }) + cy.visit('/login') + cy.get('#username').type(username) + cy.get('#password').type(password) + cy.get('#LogInOrSignUp').click() + } +) Cypress.Commands.add('PrepareForGame', () => { cy.visit('/') // make sure the login page is loaded diff --git a/tests/package.json b/tests/package.json index 46b0294..68157d1 100644 --- a/tests/package.json +++ b/tests/package.json @@ -13,5 +13,8 @@ "@testing-library/cypress": "^10.0.1", "cypress": "^13.5.1", "dotenv": "^16.3.1" + }, + "devDependencies": { + "typescript": "^5.3.3" } } diff --git a/tests/tsconfig.json b/tests/tsconfig.json new file mode 100644 index 0000000..18edb19 --- /dev/null +++ b/tests/tsconfig.json @@ -0,0 +1,8 @@ +{ + "compilerOptions": { + "target": "es5", + "lib": ["es5", "dom"], + "types": ["cypress", "node"] + }, + "include": ["**/*.ts"] +} diff --git a/yarn.lock b/yarn.lock index 81241b8..fe8624e 100644 --- a/yarn.lock +++ b/yarn.lock @@ -9098,6 +9098,7 @@ __metadata: "@testing-library/cypress": "npm:^10.0.1" cypress: "npm:^13.5.1" dotenv: "npm:^16.3.1" + typescript: "npm:^5.3.3" languageName: unknown linkType: soft From 2b495f7cda28b06e81a39d00fdf3c3eb031efcc5 Mon Sep 17 00:00:00 2001 From: Annie Huang Date: Wed, 14 Feb 2024 16:16:01 +0800 Subject: [PATCH 04/28] update testing library settings and global functions --- tests/cypress/support/commands.ts | 59 +++++++++++++------------------ tests/tsconfig.json | 5 +-- 2 files changed, 27 insertions(+), 37 deletions(-) diff --git a/tests/cypress/support/commands.ts b/tests/cypress/support/commands.ts index eb62a5f..1d7e028 100644 --- a/tests/cypress/support/commands.ts +++ b/tests/cypress/support/commands.ts @@ -1,52 +1,41 @@ -// import '@testing-library/cypress/add-commands' +/// +import '@testing-library/cypress/add-commands' + declare global { declare namespace Cypress { interface Chainable { // 確保你有正確的泛型參數 - fillWith( - account: string, - password: string - ): Chainable> - LoginWithPassword( - username: string, - password: string - ): Chainable> - PrepareForGame(): Chainable> - InitTerminal(): Chainable> - typeInCommand(command: string): Chainable> - getQuestInfo(id: string): Chainable> - checkHint(index: number, total: number): Chainable> // 修改類型 - checkTaskInit(): Chainable> - waitUntilActive(last: boolean): Chainable> // 注意小寫boolean,並且變量名應該是小寫 - checkPending(): Chainable> - CompleteStageWithCommands( - stagename: string - ): Chainable> + LoginWithPassword(username: string, password: string): Chainable + PrepareForGame(): Chainable + InitTerminal(): Chainable + typeInCommand(command: string): Chainable + getQuestInfo(id: string): Chainable + checkHint(index: number, total: number): Chainable // 修改類型 + checkTaskInit(): Chainable + waitUntilActive(last?: boolean): Chainable // 注意小寫boolean,並且變量名應該是小寫 + checkPending(): Chainable + CompleteStageWithCommands(stagename: string): Chainable CheckTextElement( id: string, chText: string, enText: string - ): Chainable> + ): Chainable CheckPlaceholder( id: string, chText: string, enText: string - ): Chainable> - CheckTreeElement(element: string): Chainable> + ): Chainable + CheckTreeElement(element: string): Chainable } } } - -Cypress.Commands.add( - 'LoginWithPassword', - (username: string, password: string) => { - cy.clearAllCookies({ domain: null }) - cy.visit('/login') - cy.get('#username').type(username) - cy.get('#password').type(password) - cy.get('#LogInOrSignUp').click() - } -) +Cypress.Commands.add('LoginWithPassword', (username, password) => { + cy.clearAllCookies() + cy.visit('/login') + cy.get('#username').type(username) + cy.get('#password').type(password) + cy.get('#LogInOrSignUp').click() +}) Cypress.Commands.add('PrepareForGame', () => { cy.visit('/') // make sure the login page is loaded @@ -110,7 +99,7 @@ Cypress.Commands.add('waitUntilActive', (last = false) => { return } if (value === 'pending' && !last) { - cy.log(last) + cy.log(`${last}`) cy.typeInCommand('{enter}') cy.waitUntilActive() } diff --git a/tests/tsconfig.json b/tests/tsconfig.json index 18edb19..1bba77a 100644 --- a/tests/tsconfig.json +++ b/tests/tsconfig.json @@ -2,7 +2,8 @@ "compilerOptions": { "target": "es5", "lib": ["es5", "dom"], - "types": ["cypress", "node"] + "types": ["cypress", "@testing-library/cypress"] }, - "include": ["**/*.ts"] + "include": ["src", "node_modules/cypress", "**/*.ts"], + "exclude": ["node_modules/cypress"] } From 2cb82fdcdc189479f44f46cf4095250b44adff23 Mon Sep 17 00:00:00 2001 From: Annie Huang Date: Thu, 15 Feb 2024 21:20:32 +0800 Subject: [PATCH 05/28] fix type error --- tests/cypress/support/commands.ts | 8 +- yarn.lock | 699 ++++++++++++++++-------------- 2 files changed, 377 insertions(+), 330 deletions(-) diff --git a/tests/cypress/support/commands.ts b/tests/cypress/support/commands.ts index 1d7e028..342d831 100644 --- a/tests/cypress/support/commands.ts +++ b/tests/cypress/support/commands.ts @@ -2,9 +2,8 @@ import '@testing-library/cypress/add-commands' declare global { - declare namespace Cypress { + namespace Cypress { interface Chainable { - // 確保你有正確的泛型參數 LoginWithPassword(username: string, password: string): Chainable PrepareForGame(): Chainable InitTerminal(): Chainable @@ -101,7 +100,7 @@ Cypress.Commands.add('waitUntilActive', (last = false) => { if (value === 'pending' && !last) { cy.log(`${last}`) cy.typeInCommand('{enter}') - cy.waitUntilActive() + cy.waitUntilActive(last) // Pass `last` parameter } }) }) @@ -119,8 +118,7 @@ Cypress.Commands.add('CompleteStageWithCommands', (stagename) => { cy.CheckTextElement('#reset', '重來', 'Reset').click() cy.checkTaskInit() cy.InitTerminal() - cy.readFile(`../quests/${stagename}/answer.sh`, 'utf-8').as('answers') - cy.get('@answers').then((answers) => { + cy.readFile(`../quests/${stagename}/answer.sh`, 'utf-8').then((answers) => { const answerarr = answers.split('\n') for (const element of answerarr) { cy.typeInCommand(`${element}{enter}`) diff --git a/yarn.lock b/yarn.lock index fe8624e..74c7aac 100644 --- a/yarn.lock +++ b/yarn.lock @@ -212,7 +212,7 @@ __metadata: languageName: node linkType: hard -"@babel/parser@npm:^7.1.0, @babel/parser@npm:^7.14.7, @babel/parser@npm:^7.20.7, @babel/parser@npm:^7.23.6, @babel/parser@npm:^7.23.9": +"@babel/parser@npm:^7.1.0, @babel/parser@npm:^7.14.7, @babel/parser@npm:^7.20.7, @babel/parser@npm:^7.23.9": version: 7.23.9 resolution: "@babel/parser@npm:7.23.9" bin: @@ -1058,9 +1058,9 @@ __metadata: linkType: hard "@jridgewell/resolve-uri@npm:^3.0.3, @jridgewell/resolve-uri@npm:^3.1.0": - version: 3.1.1 - resolution: "@jridgewell/resolve-uri@npm:3.1.1" - checksum: 10c0/0dbc9e29bc640bbbdc5b9876d2859c69042bfcf1423c1e6421bcca53e826660bff4e41c7d4bcb8dbea696404231a6f902f76ba41835d049e20f2dd6cffb713bf + version: 3.1.2 + resolution: "@jridgewell/resolve-uri@npm:3.1.2" + checksum: 10c0/d502e6fb516b35032331406d4e962c21fe77cdf1cbdb49c6142bcbd9e30507094b18972778a6e27cbad756209cfe34b1a27729e6fa08a2eb92b33943f680cf1e languageName: node linkType: hard @@ -1180,15 +1180,15 @@ __metadata: linkType: hard "@npmcli/agent@npm:^2.0.0": - version: 2.2.0 - resolution: "@npmcli/agent@npm:2.2.0" + version: 2.2.1 + resolution: "@npmcli/agent@npm:2.2.1" dependencies: agent-base: "npm:^7.1.0" http-proxy-agent: "npm:^7.0.0" https-proxy-agent: "npm:^7.0.1" lru-cache: "npm:^10.0.1" socks-proxy-agent: "npm:^8.0.1" - checksum: 10c0/7b89590598476dda88e79c473766b67c682aae6e0ab0213491daa6083dcc0c171f86b3868f5506f22c09aa5ea69ad7dfb78f4bf39a8dca375d89a42f408645b3 + checksum: 10c0/38ee5cbe8f3cde13be916e717bfc54fd1a7605c07af056369ff894e244c221e0b56b08ca5213457477f9bc15bca9e729d51a4788829b5c3cf296b3c996147f76 languageName: node linkType: hard @@ -1499,11 +1499,11 @@ __metadata: linkType: hard "@types/node@npm:*, @types/node@npm:>=10.0.0, @types/node@npm:^20.10.4": - version: 20.11.16 - resolution: "@types/node@npm:20.11.16" + version: 20.11.17 + resolution: "@types/node@npm:20.11.17" dependencies: undici-types: "npm:~5.26.4" - checksum: 10c0/4886b90278e9c877a84efd3edd4667cd990e032d77268d2a798b99ebc1901ea336fa7dfbe9eaf4ad6ad1da9ce2ec31baf300038a3905838692362eb19904ebde + checksum: 10c0/1f30dae80b416cbf38f133a619ffb0e9fb9e7bc58f82d900bf73816ae5781740c4640892bf5971dd9c12570d5d05241646be3e7540bb4e059322ec6af4e51e15 languageName: node linkType: hard @@ -1522,9 +1522,9 @@ __metadata: linkType: hard "@types/semver@npm:^7.5.0": - version: 7.5.6 - resolution: "@types/semver@npm:7.5.6" - checksum: 10c0/196dc32db5f68cbcde2e6a42bb4aa5cbb100fa2b7bd9c8c82faaaf3e03fbe063e205dbb4f03c7cdf53da2edb70a0d34c9f2e601b54281b377eb8dc1743226acd + version: 7.5.7 + resolution: "@types/semver@npm:7.5.7" + checksum: 10c0/fb72d8b86a7779650f14ae89542f1da2ab624adb8188d98754b1d29a2fe3d41f0348bf9435b60ad145df1812fd2a09b3256779aa23b532c199f3dee59619a1eb languageName: node linkType: hard @@ -1619,14 +1619,14 @@ __metadata: linkType: hard "@typescript-eslint/eslint-plugin@npm:^6.14.0": - version: 6.20.0 - resolution: "@typescript-eslint/eslint-plugin@npm:6.20.0" + version: 6.21.0 + resolution: "@typescript-eslint/eslint-plugin@npm:6.21.0" dependencies: "@eslint-community/regexpp": "npm:^4.5.1" - "@typescript-eslint/scope-manager": "npm:6.20.0" - "@typescript-eslint/type-utils": "npm:6.20.0" - "@typescript-eslint/utils": "npm:6.20.0" - "@typescript-eslint/visitor-keys": "npm:6.20.0" + "@typescript-eslint/scope-manager": "npm:6.21.0" + "@typescript-eslint/type-utils": "npm:6.21.0" + "@typescript-eslint/utils": "npm:6.21.0" + "@typescript-eslint/visitor-keys": "npm:6.21.0" debug: "npm:^4.3.4" graphemer: "npm:^1.4.0" ignore: "npm:^5.2.4" @@ -1639,44 +1639,44 @@ __metadata: peerDependenciesMeta: typescript: optional: true - checksum: 10c0/5020faac39be476de056342f58f2bf68bb788f230e2fa4a2e27ceab8a5187dc450beba7333b0aa741a43aeaff45a117558132953f9390b5eca4c2cc004fde716 + checksum: 10c0/f911a79ee64d642f814a3b6cdb0d324b5f45d9ef955c5033e78903f626b7239b4aa773e464a38c3e667519066169d983538f2bf8e5d00228af587c9d438fb344 languageName: node linkType: hard "@typescript-eslint/parser@npm:^6.14.0": - version: 6.20.0 - resolution: "@typescript-eslint/parser@npm:6.20.0" + version: 6.21.0 + resolution: "@typescript-eslint/parser@npm:6.21.0" dependencies: - "@typescript-eslint/scope-manager": "npm:6.20.0" - "@typescript-eslint/types": "npm:6.20.0" - "@typescript-eslint/typescript-estree": "npm:6.20.0" - "@typescript-eslint/visitor-keys": "npm:6.20.0" + "@typescript-eslint/scope-manager": "npm:6.21.0" + "@typescript-eslint/types": "npm:6.21.0" + "@typescript-eslint/typescript-estree": "npm:6.21.0" + "@typescript-eslint/visitor-keys": "npm:6.21.0" debug: "npm:^4.3.4" peerDependencies: eslint: ^7.0.0 || ^8.0.0 peerDependenciesMeta: typescript: optional: true - checksum: 10c0/d84ad5e2282b1096c80dedb903c83ecc31eaf7be1aafcb14c18d9ec2d4a319f2fd1e5a9038b944d9f42c36c1c57add5e4292d4026ca7d3d5441d41286700d402 + checksum: 10c0/a8f99820679decd0d115c0af61903fb1de3b1b5bec412dc72b67670bf636de77ab07f2a68ee65d6da7976039bbf636907f9d5ca546db3f0b98a31ffbc225bc7d languageName: node linkType: hard -"@typescript-eslint/scope-manager@npm:6.20.0": - version: 6.20.0 - resolution: "@typescript-eslint/scope-manager@npm:6.20.0" +"@typescript-eslint/scope-manager@npm:6.21.0": + version: 6.21.0 + resolution: "@typescript-eslint/scope-manager@npm:6.21.0" dependencies: - "@typescript-eslint/types": "npm:6.20.0" - "@typescript-eslint/visitor-keys": "npm:6.20.0" - checksum: 10c0/f6768ed2dcd2d1771d55ed567ff392a6569ffd683a26500067509dd41769f8838c43686460fe7337144f324fd063df33f5d5646d44e5df4998ceffb3ad1fb790 + "@typescript-eslint/types": "npm:6.21.0" + "@typescript-eslint/visitor-keys": "npm:6.21.0" + checksum: 10c0/eaf868938d811cbbea33e97e44ba7050d2b6892202cea6a9622c486b85ab1cf801979edf78036179a8ba4ac26f1dfdf7fcc83a68c1ff66be0b3a8e9a9989b526 languageName: node linkType: hard -"@typescript-eslint/type-utils@npm:6.20.0": - version: 6.20.0 - resolution: "@typescript-eslint/type-utils@npm:6.20.0" +"@typescript-eslint/type-utils@npm:6.21.0": + version: 6.21.0 + resolution: "@typescript-eslint/type-utils@npm:6.21.0" dependencies: - "@typescript-eslint/typescript-estree": "npm:6.20.0" - "@typescript-eslint/utils": "npm:6.20.0" + "@typescript-eslint/typescript-estree": "npm:6.21.0" + "@typescript-eslint/utils": "npm:6.21.0" debug: "npm:^4.3.4" ts-api-utils: "npm:^1.0.1" peerDependencies: @@ -1684,23 +1684,23 @@ __metadata: peerDependenciesMeta: typescript: optional: true - checksum: 10c0/8f622fbb14268f1d00b2948f995b570f0ef82be02c12be41d90385290a56ea0dbd34d855d6a5aff100b57f3bdd300ff0c300f16c78f12d6064f7ae6e34fd71bf + checksum: 10c0/7409c97d1c4a4386b488962739c4f1b5b04dc60cf51f8cd88e6b12541f84d84c6b8b67e491a147a2c95f9ec486539bf4519fb9d418411aef6537b9c156468117 languageName: node linkType: hard -"@typescript-eslint/types@npm:6.20.0": - version: 6.20.0 - resolution: "@typescript-eslint/types@npm:6.20.0" - checksum: 10c0/37589003b0e06f83c1945e3748e91af85918cfd997766894642a08e6f355f611cfe11df4e7632dda96e3a9b3441406283fe834ab0906cf81ea97fd43ca2aebe3 +"@typescript-eslint/types@npm:6.21.0": + version: 6.21.0 + resolution: "@typescript-eslint/types@npm:6.21.0" + checksum: 10c0/020631d3223bbcff8a0da3efbdf058220a8f48a3de221563996ad1dcc30d6c08dadc3f7608cc08830d21c0d565efd2db19b557b9528921c78aabb605eef2d74d languageName: node linkType: hard -"@typescript-eslint/typescript-estree@npm:6.20.0": - version: 6.20.0 - resolution: "@typescript-eslint/typescript-estree@npm:6.20.0" +"@typescript-eslint/typescript-estree@npm:6.21.0": + version: 6.21.0 + resolution: "@typescript-eslint/typescript-estree@npm:6.21.0" dependencies: - "@typescript-eslint/types": "npm:6.20.0" - "@typescript-eslint/visitor-keys": "npm:6.20.0" + "@typescript-eslint/types": "npm:6.21.0" + "@typescript-eslint/visitor-keys": "npm:6.21.0" debug: "npm:^4.3.4" globby: "npm:^11.1.0" is-glob: "npm:^4.0.3" @@ -1710,34 +1710,34 @@ __metadata: peerDependenciesMeta: typescript: optional: true - checksum: 10c0/551f13445a303882d9fc0fbe14ef8507eb8414253fd87a5f13d2e324b5280b626421a238b8ec038e628bc80128dc06c057757f668738e82e64d5b39a9083c27d + checksum: 10c0/af1438c60f080045ebb330155a8c9bb90db345d5069cdd5d01b67de502abb7449d6c75500519df829f913a6b3f490ade3e8215279b6bdc63d0fb0ae61034df5f languageName: node linkType: hard -"@typescript-eslint/utils@npm:6.20.0": - version: 6.20.0 - resolution: "@typescript-eslint/utils@npm:6.20.0" +"@typescript-eslint/utils@npm:6.21.0": + version: 6.21.0 + resolution: "@typescript-eslint/utils@npm:6.21.0" dependencies: "@eslint-community/eslint-utils": "npm:^4.4.0" "@types/json-schema": "npm:^7.0.12" "@types/semver": "npm:^7.5.0" - "@typescript-eslint/scope-manager": "npm:6.20.0" - "@typescript-eslint/types": "npm:6.20.0" - "@typescript-eslint/typescript-estree": "npm:6.20.0" + "@typescript-eslint/scope-manager": "npm:6.21.0" + "@typescript-eslint/types": "npm:6.21.0" + "@typescript-eslint/typescript-estree": "npm:6.21.0" semver: "npm:^7.5.4" peerDependencies: eslint: ^7.0.0 || ^8.0.0 - checksum: 10c0/0a8ede3d80a365b52ae96d88e4a9f6e6abf3569c6b60ff9f42ff900cd843ae7c5493cd95f8f2029d90bb0acbf31030980206af98e581d760d6d41e0f80e9fb86 + checksum: 10c0/ab2df3833b2582d4e5467a484d08942b4f2f7208f8e09d67de510008eb8001a9b7460f2f9ba11c12086fd3cdcac0c626761c7995c2c6b5657d5fa6b82030a32d languageName: node linkType: hard -"@typescript-eslint/visitor-keys@npm:6.20.0": - version: 6.20.0 - resolution: "@typescript-eslint/visitor-keys@npm:6.20.0" +"@typescript-eslint/visitor-keys@npm:6.21.0": + version: 6.21.0 + resolution: "@typescript-eslint/visitor-keys@npm:6.21.0" dependencies: - "@typescript-eslint/types": "npm:6.20.0" + "@typescript-eslint/types": "npm:6.21.0" eslint-visitor-keys: "npm:^3.4.1" - checksum: 10c0/852d938f2e5d57200cf62733b42e73a369f797b097d17e8fd3fffd0f7315c3b9e1863eed60bb8d57d6535a3b7f1980f645f96ec6d513950f182bfa8107b33fab + checksum: 10c0/7395f69739cfa1cb83c1fb2fad30afa2a814756367302fb4facd5893eff66abc807e8d8f63eba94ed3b0fe0c1c996ac9a1680bcbf0f83717acedc3f2bb724fbf languageName: node linkType: hard @@ -1786,53 +1786,53 @@ __metadata: languageName: node linkType: hard -"@vue/compiler-core@npm:3.4.15": - version: 3.4.15 - resolution: "@vue/compiler-core@npm:3.4.15" +"@vue/compiler-core@npm:3.4.19": + version: 3.4.19 + resolution: "@vue/compiler-core@npm:3.4.19" dependencies: - "@babel/parser": "npm:^7.23.6" - "@vue/shared": "npm:3.4.15" + "@babel/parser": "npm:^7.23.9" + "@vue/shared": "npm:3.4.19" entities: "npm:^4.5.0" estree-walker: "npm:^2.0.2" source-map-js: "npm:^1.0.2" - checksum: 10c0/151dd9c1a4fae826c53ec60536d14298266baf81f8ed1729b1cbcd082d06410234ee951336c5f43aeaf00febafc0fdd7f82934d747a052b7435be0c2e89b8f2e + checksum: 10c0/94b021dc5d29564f94aa0bb7a5b03203e68b332ed165799f88c2de579a58730f4eca9c8c92d041a03843a3b8e378857485f7672be880781fe53133bfafb93d79 languageName: node linkType: hard -"@vue/compiler-dom@npm:3.4.15, @vue/compiler-dom@npm:^3.3.0": - version: 3.4.15 - resolution: "@vue/compiler-dom@npm:3.4.15" +"@vue/compiler-dom@npm:3.4.19, @vue/compiler-dom@npm:^3.3.0": + version: 3.4.19 + resolution: "@vue/compiler-dom@npm:3.4.19" dependencies: - "@vue/compiler-core": "npm:3.4.15" - "@vue/shared": "npm:3.4.15" - checksum: 10c0/d9339ca83f4e2e8fe21435c278e28b8551650d6ab09f0df1ba4afe983b4d692e07d753e70738dffee71e0d04af000eaafd7efebb8c4de5981b2e756ce03c3719 + "@vue/compiler-core": "npm:3.4.19" + "@vue/shared": "npm:3.4.19" + checksum: 10c0/348aecff6ade0b023ff6b7bec572ba3fa6e2450530f15acb743a5679c3612fd6d3b15f87aafa00e1d8258f637397657e2e6ae1546c41f838da23a631e9b276f8 languageName: node linkType: hard -"@vue/compiler-sfc@npm:3.4.15, @vue/compiler-sfc@npm:^3.3.13": - version: 3.4.15 - resolution: "@vue/compiler-sfc@npm:3.4.15" +"@vue/compiler-sfc@npm:3.4.19, @vue/compiler-sfc@npm:^3.3.13": + version: 3.4.19 + resolution: "@vue/compiler-sfc@npm:3.4.19" dependencies: - "@babel/parser": "npm:^7.23.6" - "@vue/compiler-core": "npm:3.4.15" - "@vue/compiler-dom": "npm:3.4.15" - "@vue/compiler-ssr": "npm:3.4.15" - "@vue/shared": "npm:3.4.15" + "@babel/parser": "npm:^7.23.9" + "@vue/compiler-core": "npm:3.4.19" + "@vue/compiler-dom": "npm:3.4.19" + "@vue/compiler-ssr": "npm:3.4.19" + "@vue/shared": "npm:3.4.19" estree-walker: "npm:^2.0.2" - magic-string: "npm:^0.30.5" + magic-string: "npm:^0.30.6" postcss: "npm:^8.4.33" source-map-js: "npm:^1.0.2" - checksum: 10c0/8643f2b6114927034195c06e13b872d186e3b5ae8e84041ea697932613cdd6e848e9253ecf4cfb13302b81a120906e0673b0adf97d07a5e1a731b96aa43f3f75 + checksum: 10c0/eb3c6a136c677cf31b624a27f3c23a6511f54b97607a66ef3625ab25ff56370cc589fe2dfa3ef487746a15f4e4033e63e261eb3a76842a5bbe149da1048dfa46 languageName: node linkType: hard -"@vue/compiler-ssr@npm:3.4.15": - version: 3.4.15 - resolution: "@vue/compiler-ssr@npm:3.4.15" +"@vue/compiler-ssr@npm:3.4.19": + version: 3.4.19 + resolution: "@vue/compiler-ssr@npm:3.4.19" dependencies: - "@vue/compiler-dom": "npm:3.4.15" - "@vue/shared": "npm:3.4.15" - checksum: 10c0/c71c4df64c1df81f0b0e0e99236135a3e3989ba5d6204eb3c0fac804f7a927a0eb6f6ea67f96df63263ba3667f3a833adb20d76866236124befdf7652ca7a8cd + "@vue/compiler-dom": "npm:3.4.19" + "@vue/shared": "npm:3.4.19" + checksum: 10c0/190dfbe89ad6f662276684ef2931fd67c6e6b7e3d008d6368498481f0632cf4ad06db257f5345336403404050e1791f3ba719dc460029cf9fbbe24abe39adcff languageName: node linkType: hard @@ -1878,52 +1878,52 @@ __metadata: languageName: node linkType: hard -"@vue/reactivity@npm:3.4.15": - version: 3.4.15 - resolution: "@vue/reactivity@npm:3.4.15" +"@vue/reactivity@npm:3.4.19": + version: 3.4.19 + resolution: "@vue/reactivity@npm:3.4.19" dependencies: - "@vue/shared": "npm:3.4.15" - checksum: 10c0/2eb51e6f642817d5078ebc36ae5b0f94712403448f26794bedbefd05ec23f229dcf7b2512e609170b9d31e1c80bd17c5ff40cc9f82e50d6f0d41c3d542955d01 + "@vue/shared": "npm:3.4.19" + checksum: 10c0/a3febaa2a1a59b428d341db7099238a6182c63d21f1975cf5c3b107a653521163e34ae865d9fca8589b8d3e0d63f3257b8ec57ae276ff47aded5b9797f9583f8 languageName: node linkType: hard -"@vue/runtime-core@npm:3.4.15": - version: 3.4.15 - resolution: "@vue/runtime-core@npm:3.4.15" +"@vue/runtime-core@npm:3.4.19": + version: 3.4.19 + resolution: "@vue/runtime-core@npm:3.4.19" dependencies: - "@vue/reactivity": "npm:3.4.15" - "@vue/shared": "npm:3.4.15" - checksum: 10c0/f8784c2b65bb8bec705a0e1723f7b47079604c1d1c075497af6f303f81fa5e228d3ca56da2fac3e6e303a42ab26febfcc7a3be5b932a3c0a2f588f1256b9af38 + "@vue/reactivity": "npm:3.4.19" + "@vue/shared": "npm:3.4.19" + checksum: 10c0/03e399a3e5183dd89e471d57a392006bf8145dcd4a2db903e4a07a2951ddd8d258791392da2c9ca8e76def0c9657fd3fbeda8efe0f053099cd73afedd8e9cd61 languageName: node linkType: hard -"@vue/runtime-dom@npm:3.4.15": - version: 3.4.15 - resolution: "@vue/runtime-dom@npm:3.4.15" +"@vue/runtime-dom@npm:3.4.19": + version: 3.4.19 + resolution: "@vue/runtime-dom@npm:3.4.19" dependencies: - "@vue/runtime-core": "npm:3.4.15" - "@vue/shared": "npm:3.4.15" + "@vue/runtime-core": "npm:3.4.19" + "@vue/shared": "npm:3.4.19" csstype: "npm:^3.1.3" - checksum: 10c0/e9202ca15481e72dce4f2dce2c29401afc82ee89e7f01f2989cee2a94d7689b75139e900717e3c8bfb59b741f403051a02664b5784e5389a49d639f919e234c4 + checksum: 10c0/b26ef26d06fd89b7549534c9d53eb10047b4adbea305e80730bd50e17b4859ea67ba782af71624cafc7c83f5249da71fc101c566d76e32437a4645303656b51b languageName: node linkType: hard -"@vue/server-renderer@npm:3.4.15": - version: 3.4.15 - resolution: "@vue/server-renderer@npm:3.4.15" +"@vue/server-renderer@npm:3.4.19": + version: 3.4.19 + resolution: "@vue/server-renderer@npm:3.4.19" dependencies: - "@vue/compiler-ssr": "npm:3.4.15" - "@vue/shared": "npm:3.4.15" + "@vue/compiler-ssr": "npm:3.4.19" + "@vue/shared": "npm:3.4.19" peerDependencies: - vue: 3.4.15 - checksum: 10c0/43f86060774b8fa7331c672c564402ec58363642f0457147492b7b69c44fb1c26515968dc72d2ca0be053e838e9c2cf8f274356f982bb2bf9e886b1f4916ecaf + vue: 3.4.19 + checksum: 10c0/2156362185d62222db060c66d7fa31d2420708f22e491fe1b616008e931be7fcf9cf47e9cca5135359839c269389b475492657948ea3d6756f6a790fcddc34bf languageName: node linkType: hard -"@vue/shared@npm:3.4.15, @vue/shared@npm:^3.3.0": - version: 3.4.15 - resolution: "@vue/shared@npm:3.4.15" - checksum: 10c0/eddcc1c82e8e550d9f3d622e33fd841c0c3b5c6f04f21f1cb10d3415068daabac0746279c88031861183d75d7a082fb599eec9201757d457de177d86989a9bc7 +"@vue/shared@npm:3.4.19, @vue/shared@npm:^3.3.0": + version: 3.4.19 + resolution: "@vue/shared@npm:3.4.19" + checksum: 10c0/bd4a060b0064f0e183e5bb8e346f3be6ff7046793b0765a407e5334860ffd646b28a4ef53652b644e83bd473cea91189377cd83c933bb638d1da143d28f779ff languageName: node linkType: hard @@ -2207,7 +2207,7 @@ __metadata: languageName: node linkType: hard -"array-buffer-byte-length@npm:^1.0.0": +"array-buffer-byte-length@npm:^1.0.0, array-buffer-byte-length@npm:^1.0.1": version: 1.0.1 resolution: "array-buffer-byte-length@npm:1.0.1" dependencies: @@ -2244,16 +2244,29 @@ __metadata: languageName: node linkType: hard -"array.prototype.findlastindex@npm:^1.2.3": - version: 1.2.3 - resolution: "array.prototype.findlastindex@npm:1.2.3" +"array.prototype.filter@npm:^1.0.3": + version: 1.0.3 + resolution: "array.prototype.filter@npm:1.0.3" dependencies: call-bind: "npm:^1.0.2" define-properties: "npm:^1.2.0" es-abstract: "npm:^1.22.1" - es-shim-unscopables: "npm:^1.0.0" - get-intrinsic: "npm:^1.2.1" - checksum: 10c0/2c5c4d3f07512d6729f728f6260a314c00f2eb0a243123092661fa1bc65dce90234c3b483b5f978396eccef6f69c50f0bea248448aaf9cdfcd1cedad6217acbb + es-array-method-boxes-properly: "npm:^1.0.0" + is-string: "npm:^1.0.7" + checksum: 10c0/8b70b5f866df5d90fa27aa5bfa30f5fefc44cbea94b0513699d761713658077c2a24cbf06aac5179eabddb6c93adc467af4c288b7a839c5bc5a769ee5a2d48ad + languageName: node + linkType: hard + +"array.prototype.findlastindex@npm:^1.2.3": + version: 1.2.4 + resolution: "array.prototype.findlastindex@npm:1.2.4" + dependencies: + call-bind: "npm:^1.0.5" + define-properties: "npm:^1.2.1" + es-abstract: "npm:^1.22.3" + es-errors: "npm:^1.3.0" + es-shim-unscopables: "npm:^1.0.2" + checksum: 10c0/b23ae35cf7621c82c20981ee110626090734a264798e781b052e534e3d61d576f03d125d92cf2e3672062bb5cc5907e02e69f2d80196a55f3cdb0197b4aa8c64 languageName: node linkType: hard @@ -2281,18 +2294,19 @@ __metadata: languageName: node linkType: hard -"arraybuffer.prototype.slice@npm:^1.0.2": - version: 1.0.2 - resolution: "arraybuffer.prototype.slice@npm:1.0.2" +"arraybuffer.prototype.slice@npm:^1.0.3": + version: 1.0.3 + resolution: "arraybuffer.prototype.slice@npm:1.0.3" dependencies: - array-buffer-byte-length: "npm:^1.0.0" - call-bind: "npm:^1.0.2" - define-properties: "npm:^1.2.0" - es-abstract: "npm:^1.22.1" - get-intrinsic: "npm:^1.2.1" - is-array-buffer: "npm:^3.0.2" + array-buffer-byte-length: "npm:^1.0.1" + call-bind: "npm:^1.0.5" + define-properties: "npm:^1.2.1" + es-abstract: "npm:^1.22.3" + es-errors: "npm:^1.2.1" + get-intrinsic: "npm:^1.2.3" + is-array-buffer: "npm:^3.0.4" is-shared-array-buffer: "npm:^1.0.2" - checksum: 10c0/96b6e40e439678ffb7fa266398510074d33c3980fbb475490b69980cca60adec3b0777047ef377068a29862157f83edef42efc64ce48ce38977d04d68de5b7fb + checksum: 10c0/d32754045bcb2294ade881d45140a5e52bda2321b9e98fa514797b7f0d252c4c5ab0d1edb34112652c62fa6a9398def568da63a4d7544672229afea283358c36 languageName: node linkType: hard @@ -2629,16 +2643,16 @@ __metadata: linkType: hard "browserslist@npm:^4.22.2": - version: 4.22.3 - resolution: "browserslist@npm:4.22.3" + version: 4.23.0 + resolution: "browserslist@npm:4.23.0" dependencies: - caniuse-lite: "npm:^1.0.30001580" - electron-to-chromium: "npm:^1.4.648" + caniuse-lite: "npm:^1.0.30001587" + electron-to-chromium: "npm:^1.4.668" node-releases: "npm:^2.0.14" update-browserslist-db: "npm:^1.0.13" bin: browserslist: cli.js - checksum: 10c0/5a1f673ce0d6e61a68369835a6b66e199669bde02c3bed5ec51e77598d8daafd91719dba55b15af2021b9ad0bbaa94951fd702eb71087449eb28be8002815ece + checksum: 10c0/8e9cc154529062128d02a7af4d8adeead83ca1df8cd9ee65a88e2161039f3d68a4d40fea7353cab6bae4c16182dec2fdd9a1cf7dc2a2935498cee1af0e998943 languageName: node linkType: hard @@ -2739,14 +2753,16 @@ __metadata: languageName: node linkType: hard -"call-bind@npm:^1.0.0, call-bind@npm:^1.0.2, call-bind@npm:^1.0.5": - version: 1.0.5 - resolution: "call-bind@npm:1.0.5" +"call-bind@npm:^1.0.2, call-bind@npm:^1.0.5, call-bind@npm:^1.0.6, call-bind@npm:^1.0.7": + version: 1.0.7 + resolution: "call-bind@npm:1.0.7" dependencies: + es-define-property: "npm:^1.0.0" + es-errors: "npm:^1.3.0" function-bind: "npm:^1.1.2" - get-intrinsic: "npm:^1.2.1" - set-function-length: "npm:^1.1.1" - checksum: 10c0/a6172c168fd6dacf744fcde745099218056bd755c50415b592655dcd6562157ed29f130f56c3f6db2250f67e4bd62e5c218cdc56d7bfd76e0bda50770fce2d10 + get-intrinsic: "npm:^1.2.4" + set-function-length: "npm:^1.2.1" + checksum: 10c0/a3ded2e423b8e2a265983dba81c27e125b48eefb2655e7dfab6be597088da3d47c47976c24bc51b8fd9af1061f8f87b4ab78a314f3c77784b2ae2ba535ad8b8d languageName: node linkType: hard @@ -2778,10 +2794,10 @@ __metadata: languageName: node linkType: hard -"caniuse-lite@npm:^1.0.30001578, caniuse-lite@npm:^1.0.30001580": - version: 1.0.30001583 - resolution: "caniuse-lite@npm:1.0.30001583" - checksum: 10c0/9ce61437e7a0c8e69bdb3480962dca7d7a9e9fa8d7c56ae411454d8b101d7c83d71f6c7fa74450c131f6c14e35e347042b3e1787b15edbfaba0e05fd75ab2625 +"caniuse-lite@npm:^1.0.30001578, caniuse-lite@npm:^1.0.30001587": + version: 1.0.30001587 + resolution: "caniuse-lite@npm:1.0.30001587" + checksum: 10c0/c7a34cb758a24fa1d948e164de3c5873e7e607b46db0e530ba160a281cb619c9d6a1b85bb334894bc8e629a59db99f3de4521593b08142d317a529e80a856385 languageName: node linkType: hard @@ -2828,8 +2844,8 @@ __metadata: linkType: hard "chokidar@npm:^3.5.2, chokidar@npm:^3.5.3": - version: 3.5.3 - resolution: "chokidar@npm:3.5.3" + version: 3.6.0 + resolution: "chokidar@npm:3.6.0" dependencies: anymatch: "npm:~3.1.2" braces: "npm:~3.0.2" @@ -2842,7 +2858,7 @@ __metadata: dependenciesMeta: fsevents: optional: true - checksum: 10c0/1076953093e0707c882a92c66c0f56ba6187831aa51bb4de878c1fec59ae611a3bf02898f190efec8e77a086b8df61c2b2a3ea324642a0558bdf8ee6c5dc9ca1 + checksum: 10c0/8361dcd013f2ddbe260eacb1f3cb2f2c6f2b0ad118708a343a5ed8158941a39cb8fb1d272e0f389712e74ee90ce8ba864eece9e0e62b9705cb468a2f6d917462 languageName: node linkType: hard @@ -3435,14 +3451,14 @@ __metadata: languageName: node linkType: hard -"define-data-property@npm:^1.0.1, define-data-property@npm:^1.1.1": - version: 1.1.1 - resolution: "define-data-property@npm:1.1.1" +"define-data-property@npm:^1.0.1, define-data-property@npm:^1.1.2": + version: 1.1.4 + resolution: "define-data-property@npm:1.1.4" dependencies: - get-intrinsic: "npm:^1.2.1" + es-define-property: "npm:^1.0.0" + es-errors: "npm:^1.3.0" gopd: "npm:^1.0.1" - has-property-descriptors: "npm:^1.0.0" - checksum: 10c0/77ef6e0bceb515e05b5913ab635a84d537cee84f8a7c37c77fdcb31fc5b80f6dbe81b33375e4b67d96aa04e6a0d8d4ea099e431d83f089af8d93adfb584bcb94 + checksum: 10c0/dea0606d1483eb9db8d930d4eac62ca0fa16738b0b3e07046cddfacf7d8c868bbe13fa0cb263eb91c7d0d527960dc3f2f2471a69ed7816210307f6744fe62e37 languageName: node linkType: hard @@ -3592,9 +3608,9 @@ __metadata: linkType: hard "dotenv@npm:^16.3.1, dotenv@npm:^16.4.1": - version: 16.4.1 - resolution: "dotenv@npm:16.4.1" - checksum: 10c0/ef3d95f48f38146df0881a4b58447ae437d2da3f6d645074b84de4e64ef64ba75fc357c5ed66b3c2b813b5369fdeb6a4777d6ade2d50e54eed6aa06dddc98bc4 + version: 16.4.4 + resolution: "dotenv@npm:16.4.4" + checksum: 10c0/f66ad105144c9106a868c8e244ace6097a0318f63284894e6c7b298c7e096911958837117d936d3c341db550e2fcb21a7a5ad396437638f605460e82b1dd30ee languageName: node linkType: hard @@ -3641,10 +3657,10 @@ __metadata: languageName: node linkType: hard -"electron-to-chromium@npm:^1.4.648": - version: 1.4.656 - resolution: "electron-to-chromium@npm:1.4.656" - checksum: 10c0/3b4eafac9ef11bbc33632d4d2c038eab921e5b3e85526a118b9a6bc06d3c93d7ad1b4e8cefdf12a4f96166ccc99df3ae1075911070be7c9d4fb82f29995ecb44 +"electron-to-chromium@npm:^1.4.668": + version: 1.4.670 + resolution: "electron-to-chromium@npm:1.4.670" + checksum: 10c0/f2b153811e5273a31ee560340c44cbe22cf63a33dec493499c51e83b6c91c2ff918801449dc30edeaae6614d9471728542f96ffda0846e697ac7df0461ac6ef0 languageName: node linkType: hard @@ -3715,9 +3731,9 @@ __metadata: linkType: hard "engine.io-parser@npm:~5.2.1": - version: 5.2.1 - resolution: "engine.io-parser@npm:5.2.1" - checksum: 10c0/9cf3beaaa7e4062c53f23ab85baadf54295c15938e38f439a4c452552e8d0617d2fc1dbe17f2bee41ddea82bf3decd1f2203bfdb0a425d67bdbdeaa2a9b0bc33 + version: 5.2.2 + resolution: "engine.io-parser@npm:5.2.2" + checksum: 10c0/38e71a92ed75e2873d4d9cfab7f889e4a3cfc939b689abd1045e1b2ef9f1a50d0350a2bef69f33d313c1aa626232702da5a9043a1038d76f5ecc0be440c648ab languageName: node linkType: hard @@ -3789,57 +3805,75 @@ __metadata: languageName: node linkType: hard -"es-abstract@npm:^1.22.1": - version: 1.22.3 - resolution: "es-abstract@npm:1.22.3" +"es-abstract@npm:^1.22.1, es-abstract@npm:^1.22.3": + version: 1.22.4 + resolution: "es-abstract@npm:1.22.4" dependencies: - array-buffer-byte-length: "npm:^1.0.0" - arraybuffer.prototype.slice: "npm:^1.0.2" - available-typed-arrays: "npm:^1.0.5" - call-bind: "npm:^1.0.5" - es-set-tostringtag: "npm:^2.0.1" + array-buffer-byte-length: "npm:^1.0.1" + arraybuffer.prototype.slice: "npm:^1.0.3" + available-typed-arrays: "npm:^1.0.6" + call-bind: "npm:^1.0.7" + es-define-property: "npm:^1.0.0" + es-errors: "npm:^1.3.0" + es-set-tostringtag: "npm:^2.0.2" es-to-primitive: "npm:^1.2.1" function.prototype.name: "npm:^1.1.6" - get-intrinsic: "npm:^1.2.2" - get-symbol-description: "npm:^1.0.0" + get-intrinsic: "npm:^1.2.4" + get-symbol-description: "npm:^1.0.2" globalthis: "npm:^1.0.3" gopd: "npm:^1.0.1" - has-property-descriptors: "npm:^1.0.0" + has-property-descriptors: "npm:^1.0.2" has-proto: "npm:^1.0.1" has-symbols: "npm:^1.0.3" - hasown: "npm:^2.0.0" - internal-slot: "npm:^1.0.5" - is-array-buffer: "npm:^3.0.2" + hasown: "npm:^2.0.1" + internal-slot: "npm:^1.0.7" + is-array-buffer: "npm:^3.0.4" is-callable: "npm:^1.2.7" is-negative-zero: "npm:^2.0.2" is-regex: "npm:^1.1.4" is-shared-array-buffer: "npm:^1.0.2" is-string: "npm:^1.0.7" - is-typed-array: "npm:^1.1.12" + is-typed-array: "npm:^1.1.13" is-weakref: "npm:^1.0.2" object-inspect: "npm:^1.13.1" object-keys: "npm:^1.1.1" - object.assign: "npm:^4.1.4" - regexp.prototype.flags: "npm:^1.5.1" - safe-array-concat: "npm:^1.0.1" - safe-regex-test: "npm:^1.0.0" + object.assign: "npm:^4.1.5" + regexp.prototype.flags: "npm:^1.5.2" + safe-array-concat: "npm:^1.1.0" + safe-regex-test: "npm:^1.0.3" string.prototype.trim: "npm:^1.2.8" string.prototype.trimend: "npm:^1.0.7" string.prototype.trimstart: "npm:^1.0.7" - typed-array-buffer: "npm:^1.0.0" + typed-array-buffer: "npm:^1.0.1" typed-array-byte-length: "npm:^1.0.0" typed-array-byte-offset: "npm:^1.0.0" typed-array-length: "npm:^1.0.4" unbox-primitive: "npm:^1.0.2" - which-typed-array: "npm:^1.1.13" - checksum: 10c0/da31ec43b1c8eb47ba8a17693cac143682a1078b6c3cd883ce0e2062f135f532e93d873694ef439670e1f6ca03195118f43567ba6f33fb0d6c7daae750090236 + which-typed-array: "npm:^1.1.14" + checksum: 10c0/dc332c3a010c5e7b77b7ea8a4532ac455fa02e7bcabf996a47447165bafa72d0d99967407d0cf5dbbb5fbbf87f53cd8b706608ec70953523b8cd2b831b9a9d64 languageName: node linkType: hard -"es-errors@npm:^1.0.0": +"es-array-method-boxes-properly@npm:^1.0.0": version: 1.0.0 - resolution: "es-errors@npm:1.0.0" - checksum: 10c0/f0327e7042e91efa0cfe3daa61a1381b49d04dc3ff10325275c953b8ec53196473fd84acf41e705f00873cbb574945f1e53952f934da7c745362ed40d8ae1fa9 + resolution: "es-array-method-boxes-properly@npm:1.0.0" + checksum: 10c0/4b7617d3fbd460d6f051f684ceca6cf7e88e6724671d9480388d3ecdd72119ddaa46ca31f2c69c5426a82e4b3091c1e81867c71dcdc453565cd90005ff2c382d + languageName: node + linkType: hard + +"es-define-property@npm:^1.0.0": + version: 1.0.0 + resolution: "es-define-property@npm:1.0.0" + dependencies: + get-intrinsic: "npm:^1.2.4" + checksum: 10c0/6bf3191feb7ea2ebda48b577f69bdfac7a2b3c9bcf97307f55fd6ef1bbca0b49f0c219a935aca506c993d8c5d8bddd937766cb760cd5e5a1071351f2df9f9aa4 + languageName: node + linkType: hard + +"es-errors@npm:^1.0.0, es-errors@npm:^1.2.1, es-errors@npm:^1.3.0": + version: 1.3.0 + resolution: "es-errors@npm:1.3.0" + checksum: 10c0/0a61325670072f98d8ae3b914edab3559b6caa980f08054a3b872052640d91da01d38df55df797fcc916389d77fc92b8d5906cf028f4db46d7e3003abecbca85 languageName: node linkType: hard @@ -3860,7 +3894,7 @@ __metadata: languageName: node linkType: hard -"es-set-tostringtag@npm:^2.0.1": +"es-set-tostringtag@npm:^2.0.2": version: 2.0.2 resolution: "es-set-tostringtag@npm:2.0.2" dependencies: @@ -3871,7 +3905,7 @@ __metadata: languageName: node linkType: hard -"es-shim-unscopables@npm:^1.0.0": +"es-shim-unscopables@npm:^1.0.0, es-shim-unscopables@npm:^1.0.2": version: 1.0.2 resolution: "es-shim-unscopables@npm:1.0.2" dependencies: @@ -3969,9 +4003,9 @@ __metadata: linkType: hard "escalade@npm:^3.1.1": - version: 3.1.1 - resolution: "escalade@npm:3.1.1" - checksum: 10c0/afd02e6ca91ffa813e1108b5e7756566173d6bc0d1eb951cb44d6b21702ec17c1cf116cfe75d4a2b02e05acb0b808a7a9387d0d1ca5cf9c04ad03a8445c3e46d + version: 3.1.2 + resolution: "escalade@npm:3.1.2" + checksum: 10c0/6b4adafecd0682f3aa1cd1106b8fff30e492c7015b178bc81b2d2f75106dabea6c6d6e8508fc491bd58e597c74abb0e8e2368f943ecb9393d4162e3c2f3cf287 languageName: node linkType: hard @@ -4587,11 +4621,11 @@ __metadata: linkType: hard "fastq@npm:^1.6.0": - version: 1.17.0 - resolution: "fastq@npm:1.17.0" + version: 1.17.1 + resolution: "fastq@npm:1.17.1" dependencies: reusify: "npm:^1.0.4" - checksum: 10c0/0a90ed46ccd6a858a32e297bd35f4249ba6544899b905d08f33a6ba36459041639161fa15bc85a38afa98dd44fb2fa2969419a879721a1395d3e24668a7732c7 + checksum: 10c0/1095f16cea45fb3beff558bb3afa74ca7a9250f5a670b65db7ed585f92b4b48381445cd328b3d87323da81e43232b5d5978a8201bde84e0cd514310f1ea6da34 languageName: node linkType: hard @@ -4906,16 +4940,16 @@ __metadata: languageName: node linkType: hard -"get-intrinsic@npm:^1.0.2, get-intrinsic@npm:^1.1.1, get-intrinsic@npm:^1.1.3, get-intrinsic@npm:^1.2.1, get-intrinsic@npm:^1.2.2": - version: 1.2.3 - resolution: "get-intrinsic@npm:1.2.3" +"get-intrinsic@npm:^1.1.1, get-intrinsic@npm:^1.1.3, get-intrinsic@npm:^1.2.1, get-intrinsic@npm:^1.2.2, get-intrinsic@npm:^1.2.3, get-intrinsic@npm:^1.2.4": + version: 1.2.4 + resolution: "get-intrinsic@npm:1.2.4" dependencies: - es-errors: "npm:^1.0.0" + es-errors: "npm:^1.3.0" function-bind: "npm:^1.1.2" has-proto: "npm:^1.0.1" has-symbols: "npm:^1.0.3" hasown: "npm:^2.0.0" - checksum: 10c0/80a81ce08d98e75f92982a35254b45d6f381838d8a20a5c7a19858c77c9ec9212a01c17f2429f27c488ce36891bc08073f8e5a6cfb8858f768d54f11e38f40fe + checksum: 10c0/0a9b82c16696ed6da5e39b1267104475c47e3a9bdbe8b509dfe1710946e38a87be70d759f4bb3cda042d76a41ef47fe769660f3b7c0d1f68750299344ffb15b7 languageName: node linkType: hard @@ -4942,13 +4976,14 @@ __metadata: languageName: node linkType: hard -"get-symbol-description@npm:^1.0.0": - version: 1.0.0 - resolution: "get-symbol-description@npm:1.0.0" +"get-symbol-description@npm:^1.0.2": + version: 1.0.2 + resolution: "get-symbol-description@npm:1.0.2" dependencies: - call-bind: "npm:^1.0.2" - get-intrinsic: "npm:^1.1.1" - checksum: 10c0/23bc3b44c221cdf7669a88230c62f4b9e30393b61eb21ba4400cb3e346801bd8f95fe4330ee78dbae37aecd874646d53e3e76a17a654d0c84c77f6690526d6bb + call-bind: "npm:^1.0.5" + es-errors: "npm:^1.3.0" + get-intrinsic: "npm:^1.2.4" + checksum: 10c0/867be6d63f5e0eb026cb3b0ef695ec9ecf9310febb041072d2e142f260bd91ced9eeb426b3af98791d1064e324e653424afa6fd1af17dee373bea48ae03162bc languageName: node linkType: hard @@ -5136,12 +5171,12 @@ __metadata: languageName: node linkType: hard -"has-property-descriptors@npm:^1.0.0, has-property-descriptors@npm:^1.0.1": - version: 1.0.1 - resolution: "has-property-descriptors@npm:1.0.1" +"has-property-descriptors@npm:^1.0.0, has-property-descriptors@npm:^1.0.1, has-property-descriptors@npm:^1.0.2": + version: 1.0.2 + resolution: "has-property-descriptors@npm:1.0.2" dependencies: - get-intrinsic: "npm:^1.2.2" - checksum: 10c0/d62ba94b40150b00d621bc64a6aedb5bf0ee495308b4b7ed6bac856043db3cdfb1db553ae81cec91c9d2bd82057ff0e94145e7fa25d5aa5985ed32e0921927f6 + es-define-property: "npm:^1.0.0" + checksum: 10c0/253c1f59e80bb476cf0dde8ff5284505d90c3bdb762983c3514d36414290475fe3fd6f574929d84de2a8eec00d35cf07cb6776205ff32efd7c50719125f00236 languageName: node linkType: hard @@ -5175,12 +5210,12 @@ __metadata: languageName: node linkType: hard -"hasown@npm:^2.0.0": - version: 2.0.0 - resolution: "hasown@npm:2.0.0" +"hasown@npm:^2.0.0, hasown@npm:^2.0.1": + version: 2.0.1 + resolution: "hasown@npm:2.0.1" dependencies: function-bind: "npm:^1.1.2" - checksum: 10c0/5d415b114f410661208c95e7ab4879f1cc2765b8daceff4dc8718317d1cb7b9ffa7c5d1eafd9a4389c9aab7445d6ea88e05f3096cb1e529618b55304956b87fc + checksum: 10c0/9e27e70e8e4204f4124c8f99950d1ba2b1f5174864fd39ff26da190f9ea6488c1b3927dcc64981c26d1f637a971783c9489d62c829d393ea509e6f1ba20370bb languageName: node linkType: hard @@ -5221,12 +5256,12 @@ __metadata: linkType: hard "http-proxy-agent@npm:^7.0.0": - version: 7.0.0 - resolution: "http-proxy-agent@npm:7.0.0" + version: 7.0.1 + resolution: "http-proxy-agent@npm:7.0.1" dependencies: agent-base: "npm:^7.1.0" debug: "npm:^4.3.4" - checksum: 10c0/a11574ff39436cee3c7bc67f259444097b09474605846ddd8edf0bf4ad8644be8533db1aa463426e376865047d05dc22755e638632819317c0c2f1b2196657c8 + checksum: 10c0/09bc7ea134a133caeb57c9487e6ee59c61aebdc8f531a86c4638cffc0d04cf7415b9d74d32e6e7781e1e931e882d1163c953430aefd6fbd1465b5e033432a040 languageName: node linkType: hard @@ -5252,12 +5287,12 @@ __metadata: linkType: hard "https-proxy-agent@npm:^7.0.1": - version: 7.0.2 - resolution: "https-proxy-agent@npm:7.0.2" + version: 7.0.3 + resolution: "https-proxy-agent@npm:7.0.3" dependencies: agent-base: "npm:^7.0.2" debug: "npm:4" - checksum: 10c0/7735eb90073db087e7e79312e3d97c8c04baf7ea7ca7b013382b6a45abbaa61b281041a98f4e13c8c80d88f843785bcc84ba189165b4b4087b1e3496ba656d77 + checksum: 10c0/0a5d4beb8f3e71755e3dc62e421aceb3df8bf0d20892dfbdc54de7791f9d34be222c6acb8c83930b138a4bab9387a9f4e06ea0b171cda8e167c3aa72d437f8d8 languageName: node linkType: hard @@ -5374,21 +5409,24 @@ __metadata: languageName: node linkType: hard -"internal-slot@npm:^1.0.4, internal-slot@npm:^1.0.5": - version: 1.0.6 - resolution: "internal-slot@npm:1.0.6" +"internal-slot@npm:^1.0.4, internal-slot@npm:^1.0.7": + version: 1.0.7 + resolution: "internal-slot@npm:1.0.7" dependencies: - get-intrinsic: "npm:^1.2.2" + es-errors: "npm:^1.3.0" hasown: "npm:^2.0.0" side-channel: "npm:^1.0.4" - checksum: 10c0/aa37cafc8ffbf513a340de58f40d5017b4949d99722d7e4f0e24b182455bdd258000d4bb1d7b4adcf9f8979b97049b99fe9defa9db8e18a78071d2637ac143fb + checksum: 10c0/f8b294a4e6ea3855fc59551bbf35f2b832cf01fd5e6e2a97f5c201a071cc09b49048f856e484b67a6c721da5e55736c5b6ddafaf19e2dbeb4a3ff1821680de6c languageName: node linkType: hard -"ip@npm:^2.0.0": - version: 2.0.0 - resolution: "ip@npm:2.0.0" - checksum: 10c0/8d186cc5585f57372847ae29b6eba258c68862055e18a75cc4933327232cb5c107f89800ce29715d542eef2c254fbb68b382e780a7414f9ee7caf60b7a473958 +"ip-address@npm:^9.0.5": + version: 9.0.5 + resolution: "ip-address@npm:9.0.5" + dependencies: + jsbn: "npm:1.1.0" + sprintf-js: "npm:^1.1.3" + checksum: 10c0/331cd07fafcb3b24100613e4b53e1a2b4feab11e671e655d46dc09ee233da5011284d09ca40c4ecbdfe1d0004f462958675c224a804259f2f78d2465a87824bc languageName: node linkType: hard @@ -5632,7 +5670,7 @@ __metadata: languageName: node linkType: hard -"is-typed-array@npm:^1.1.10, is-typed-array@npm:^1.1.12, is-typed-array@npm:^1.1.9": +"is-typed-array@npm:^1.1.10, is-typed-array@npm:^1.1.13, is-typed-array@npm:^1.1.9": version: 1.1.13 resolution: "is-typed-array@npm:1.1.13" dependencies: @@ -6265,6 +6303,13 @@ __metadata: languageName: node linkType: hard +"jsbn@npm:1.1.0": + version: 1.1.0 + resolution: "jsbn@npm:1.1.0" + checksum: 10c0/4f907fb78d7b712e11dea8c165fe0921f81a657d3443dde75359ed52eb2b5d33ce6773d97985a089f09a65edd80b11cb75c767b57ba47391fee4c969f7215c96 + languageName: node + linkType: hard + "jsbn@npm:~0.1.0": version: 0.1.1 resolution: "jsbn@npm:0.1.1" @@ -6478,9 +6523,9 @@ __metadata: linkType: hard "lilconfig@npm:^3.0.0": - version: 3.0.0 - resolution: "lilconfig@npm:3.0.0" - checksum: 10c0/7f5ee7a658dc016cacf146815e8d88b06f06f4402823b8b0934e305a57a197f55ccc9c5cd4fb5ea1b2b821c8ccaf2d54abd59602a4931af06eabda332388d3e6 + version: 3.1.0 + resolution: "lilconfig@npm:3.1.0" + checksum: 10c0/cd126834a0e964f4798a0f87245529acc6b3c163ee2dbf6b95b23f024d0a18a361f706ead21052a7f4aefc3a55d6d67217ad3aded30de5b564c19941ec80ea35 languageName: node linkType: hard @@ -6725,12 +6770,12 @@ __metadata: languageName: node linkType: hard -"magic-string@npm:^0.30.5": - version: 0.30.6 - resolution: "magic-string@npm:0.30.6" +"magic-string@npm:^0.30.6": + version: 0.30.7 + resolution: "magic-string@npm:0.30.7" dependencies: "@jridgewell/sourcemap-codec": "npm:^1.4.15" - checksum: 10c0/e8835de3427d28678667c4a82e3b54d82ac73d455aa508b8445867b70024eb7dabe4ef82393762baf296256981fa973fc1b8a3e7f837efbc44eec9a65b19efd3 + checksum: 10c0/d1d949f7a53c37c6e685f4ea7b2b151c2fe0cc5af8f1f979ecba916f7d60d58f35309aaf4c8b09ce1aef7c160b957be39a38b52b478a91650750931e4ddd5daf languageName: node linkType: hard @@ -7057,8 +7102,8 @@ __metadata: linkType: hard "mongoose@npm:^8.0.3": - version: 8.1.1 - resolution: "mongoose@npm:8.1.1" + version: 8.1.2 + resolution: "mongoose@npm:8.1.2" dependencies: bson: "npm:^6.2.0" kareem: "npm:2.5.1" @@ -7067,7 +7112,7 @@ __metadata: mquery: "npm:5.0.0" ms: "npm:2.1.3" sift: "npm:16.0.1" - checksum: 10c0/4fb367e4a04e2e827fa9deba32ae7d323636edbd19eb4084f7300e064b40a15bfa4228fcf650c8e69e0e03333ed3826740e973b8b4956095b7fa942fa65d67aa + checksum: 10c0/969452dd784baef6315e667a4259ead4b134f1d1efa7c476bf777487911f7bcf0e58030e63ff604a3b6203381c4bb84eea6eeefcc26e070fff6d2c87bbf41bc6 languageName: node linkType: hard @@ -7337,13 +7382,6 @@ __metadata: languageName: node linkType: hard -"oauth@npm:0.9.x": - version: 0.9.15 - resolution: "oauth@npm:0.9.15" - checksum: 10c0/52204f2a082850efca7e8406e6c6085d89318dc8a85f5a8d6c5594921da36149eb6228bba324af8e2fd9019f084d814ddf835ace6b697ced2b4be0d75f91fb30 - languageName: node - linkType: hard - "object-assign@npm:^4, object-assign@npm:^4.0.1, object-assign@npm:^4.1.1": version: 4.1.1 resolution: "object-assign@npm:4.1.1" @@ -7358,7 +7396,7 @@ __metadata: languageName: node linkType: hard -"object-inspect@npm:^1.13.1, object-inspect@npm:^1.9.0": +"object-inspect@npm:^1.13.1": version: 1.13.1 resolution: "object-inspect@npm:1.13.1" checksum: 10c0/fad603f408e345c82e946abdf4bfd774260a5ed3e5997a0b057c44153ac32c7271ff19e3a5ae39c858da683ba045ccac2f65245c12763ce4e8594f818f4a648d @@ -7382,7 +7420,7 @@ __metadata: languageName: node linkType: hard -"object.assign@npm:^4.1.2, object.assign@npm:^4.1.4": +"object.assign@npm:^4.1.2, object.assign@npm:^4.1.4, object.assign@npm:^4.1.5": version: 4.1.5 resolution: "object.assign@npm:4.1.5" dependencies: @@ -7417,14 +7455,15 @@ __metadata: linkType: hard "object.groupby@npm:^1.0.1": - version: 1.0.1 - resolution: "object.groupby@npm:1.0.1" + version: 1.0.2 + resolution: "object.groupby@npm:1.0.2" dependencies: - call-bind: "npm:^1.0.2" - define-properties: "npm:^1.2.0" - es-abstract: "npm:^1.22.1" - get-intrinsic: "npm:^1.2.1" - checksum: 10c0/61e41fbf08cc04ed860363db9629eedeaa590fce243c0960e948fd7b11f78a9d4350065c339936d118a2dd8775d7259e26207340cc8ce688bec66cb615fec6fe + array.prototype.filter: "npm:^1.0.3" + call-bind: "npm:^1.0.5" + define-properties: "npm:^1.2.1" + es-abstract: "npm:^1.22.3" + es-errors: "npm:^1.0.0" + checksum: 10c0/b6266b1cfec7eb784b8bbe0bca5dc4b371cf9dd3e601b0897d72fa97a5934273d8fb05b3fc5222204104dbec32b50e25ba27e05ad681f71fb739cc1c7e9b81b1 languageName: node linkType: hard @@ -7634,12 +7673,12 @@ __metadata: linkType: hard "passport-openidconnect@npm:0.1.x": - version: 0.1.1 - resolution: "passport-openidconnect@npm:0.1.1" + version: 0.1.2 + resolution: "passport-openidconnect@npm:0.1.2" dependencies: - oauth: "npm:0.9.x" + oauth: "npm:0.10.x" passport-strategy: "npm:1.x.x" - checksum: 10c0/8d1f0610ae5600b6d9cefe5d9fac9a03dcb3a194fb2b2dcfe6c66409ff19081d8698fabd8cdc92321af3f81591d8dc29d3caf1b6f130f7b5a4da96238d720c1e + checksum: 10c0/4d4662b91e2580baa7cf2f341904c352de9ec776a3897f8bf51a90f248ee7dab26b94e2e3c590d14821b04b0fa95cb8d7cfad6edc095e3966b7666e8779b0b68 languageName: node linkType: hard @@ -7849,13 +7888,13 @@ __metadata: linkType: hard "postcss@npm:^8.4.23, postcss@npm:^8.4.27, postcss@npm:^8.4.31, postcss@npm:^8.4.33": - version: 8.4.33 - resolution: "postcss@npm:8.4.33" + version: 8.4.35 + resolution: "postcss@npm:8.4.35" dependencies: nanoid: "npm:^3.3.7" picocolors: "npm:^1.0.0" source-map-js: "npm:^1.0.2" - checksum: 10c0/16eda83458fcd8a91bece287b5920c7f57164c3ea293e6c80d0ea71ce7843007bcd8592260a5160b9a7f02693e6ac93e2495b02d8c7596d3f3f72c1447e3ba79 + checksum: 10c0/e8dd04e48001eb5857abc9475365bf08f4e508ddf9bc0b8525449a95d190f10d025acebc5b56ac2e94b3c7146790e4ae78989bb9633cb7ee20d1cc9b7dc909b2 languageName: node linkType: hard @@ -8117,14 +8156,15 @@ __metadata: languageName: node linkType: hard -"regexp.prototype.flags@npm:^1.5.1": - version: 1.5.1 - resolution: "regexp.prototype.flags@npm:1.5.1" +"regexp.prototype.flags@npm:^1.5.1, regexp.prototype.flags@npm:^1.5.2": + version: 1.5.2 + resolution: "regexp.prototype.flags@npm:1.5.2" dependencies: - call-bind: "npm:^1.0.2" - define-properties: "npm:^1.2.0" - set-function-name: "npm:^2.0.0" - checksum: 10c0/1de7d214c0a726c7c874a7023e47b0e27b9f7fdb64175bfe1861189de1704aaeca05c3d26c35aa375432289b99946f3cf86651a92a8f7601b90d8c226a23bcd8 + call-bind: "npm:^1.0.6" + define-properties: "npm:^1.2.1" + es-errors: "npm:^1.3.0" + set-function-name: "npm:^2.0.1" + checksum: 10c0/0f3fc4f580d9c349f8b560b012725eb9c002f36daa0041b3fbf6f4238cb05932191a4d7d5db3b5e2caa336d5150ad0402ed2be81f711f9308fe7e1a9bf9bd552 languageName: node linkType: hard @@ -8295,7 +8335,7 @@ __metadata: languageName: node linkType: hard -"safe-array-concat@npm:^1.0.1": +"safe-array-concat@npm:^1.1.0": version: 1.1.0 resolution: "safe-array-concat@npm:1.1.0" dependencies: @@ -8321,14 +8361,14 @@ __metadata: languageName: node linkType: hard -"safe-regex-test@npm:^1.0.0": - version: 1.0.2 - resolution: "safe-regex-test@npm:1.0.2" +"safe-regex-test@npm:^1.0.3": + version: 1.0.3 + resolution: "safe-regex-test@npm:1.0.3" dependencies: - call-bind: "npm:^1.0.5" - get-intrinsic: "npm:^1.2.2" + call-bind: "npm:^1.0.6" + es-errors: "npm:^1.3.0" is-regex: "npm:^1.1.4" - checksum: 10c0/c24df9c3cbd9e6a6800f02411a12ce2bd642be22ce6ad03f796e7b3f3851d9eb1fb8d1fab48278b04fabe75dd279c10bc07a45e39543aa72407fbd8a31174958 + checksum: 10c0/900bf7c98dc58f08d8523b7012b468e4eb757afa624f198902c0643d7008ba777b0bdc35810ba0b758671ce887617295fb742b3f3968991b178ceca54cb07603 languageName: node linkType: hard @@ -8356,13 +8396,13 @@ __metadata: linkType: hard "semver@npm:^7.3.5, semver@npm:^7.3.6, semver@npm:^7.5.3, semver@npm:^7.5.4": - version: 7.5.4 - resolution: "semver@npm:7.5.4" + version: 7.6.0 + resolution: "semver@npm:7.6.0" dependencies: lru-cache: "npm:^6.0.0" bin: semver: bin/semver.js - checksum: 10c0/5160b06975a38b11c1ab55950cb5b8a23db78df88275d3d8a42ccf1f29e55112ac995b3a26a522c36e3b5f76b0445f1eef70d696b8c7862a2b4303d7b0e7609e + checksum: 10c0/fbfe717094ace0aa8d6332d7ef5ce727259815bd8d8815700853f4faf23aacbd7192522f0dc5af6df52ef4fa85a355ebd2f5d39f554bd028200d6cf481ab9b53 languageName: node linkType: hard @@ -8447,20 +8487,21 @@ __metadata: languageName: node linkType: hard -"set-function-length@npm:^1.1.1": - version: 1.2.0 - resolution: "set-function-length@npm:1.2.0" +"set-function-length@npm:^1.2.1": + version: 1.2.1 + resolution: "set-function-length@npm:1.2.1" dependencies: - define-data-property: "npm:^1.1.1" + define-data-property: "npm:^1.1.2" + es-errors: "npm:^1.3.0" function-bind: "npm:^1.1.2" - get-intrinsic: "npm:^1.2.2" + get-intrinsic: "npm:^1.2.3" gopd: "npm:^1.0.1" has-property-descriptors: "npm:^1.0.1" - checksum: 10c0/b4fdf68bbfa9944284a9469c04e0d9cdb7924942fab75cd11fb61e8a7518f0d40bbbbc1b46871f648a93b97d170d8047fe3492cdadff066a8a8ae4ce68d0564a + checksum: 10c0/1927e296599f2c04d210c1911f1600430a5e49e04a6d8bb03dca5487b95a574da9968813a2ced9a774bd3e188d4a6208352c8f64b8d4674cdb021dca21e190ca languageName: node linkType: hard -"set-function-name@npm:^2.0.0": +"set-function-name@npm:^2.0.1": version: 2.0.1 resolution: "set-function-name@npm:2.0.1" dependencies: @@ -8502,13 +8543,14 @@ __metadata: linkType: hard "side-channel@npm:^1.0.4": - version: 1.0.4 - resolution: "side-channel@npm:1.0.4" + version: 1.0.5 + resolution: "side-channel@npm:1.0.5" dependencies: - call-bind: "npm:^1.0.0" - get-intrinsic: "npm:^1.0.2" - object-inspect: "npm:^1.9.0" - checksum: 10c0/054a5d23ee35054b2c4609b9fd2a0587760737782b5d765a9c7852264710cc39c6dcb56a9bbd6c12cd84071648aea3edb2359d2f6e560677eedadce511ac1da5 + call-bind: "npm:^1.0.6" + es-errors: "npm:^1.3.0" + get-intrinsic: "npm:^1.2.4" + object-inspect: "npm:^1.13.1" + checksum: 10c0/31312fecb68997ce2893b1f6d1fd07d6dd41e05cc938e82004f056f7de96dd9df599ef9418acdf730dda948e867e933114bd2efe4170c0146d1ed7009700c252 languageName: node linkType: hard @@ -8652,12 +8694,12 @@ __metadata: linkType: hard "socks@npm:^2.7.1": - version: 2.7.1 - resolution: "socks@npm:2.7.1" + version: 2.8.0 + resolution: "socks@npm:2.8.0" dependencies: - ip: "npm:^2.0.0" + ip-address: "npm:^9.0.5" smart-buffer: "npm:^4.2.0" - checksum: 10c0/43f69dbc9f34fc8220bc51c6eea1c39715ab3cfdb115d6e3285f6c7d1a603c5c75655668a5bbc11e3c7e2c99d60321fb8d7ab6f38cda6a215fadd0d6d0b52130 + checksum: 10c0/208fa5d5ae47857653c4fc039d47e4c1e76313b24052151a949aa98f027f9aaba8fc6c5dc0f7f2d9ceeb94e9940217581f2d9798436563c1494b67a6cb68611f languageName: node linkType: hard @@ -8715,6 +8757,13 @@ __metadata: languageName: node linkType: hard +"sprintf-js@npm:^1.1.3": + version: 1.1.3 + resolution: "sprintf-js@npm:1.1.3" + checksum: 10c0/09270dc4f30d479e666aee820eacd9e464215cdff53848b443964202bf4051490538e5dd1b42e1a65cf7296916ca17640aebf63dae9812749c7542ee5f288dec + languageName: node + linkType: hard + "sprintf-js@npm:~1.0.2": version: 1.0.3 resolution: "sprintf-js@npm:1.0.3" @@ -8974,9 +9023,9 @@ __metadata: linkType: hard "swagger-ui-dist@npm:>=5.0.0": - version: 5.11.2 - resolution: "swagger-ui-dist@npm:5.11.2" - checksum: 10c0/017c49258cca2159fb9adc0ee84722b630bc96bc0dacd7955af66b42007374b9f6ad9038c3da7a3539545a017839da46e7c60006f950e1379d8cbf5a1ffa6f71 + version: 5.11.4 + resolution: "swagger-ui-dist@npm:5.11.4" + checksum: 10c0/c51d561976c13f3738233d42ff1d8ed11e729126f8e387972ba7a7e0c8aea10d418a5f12dce5713e7a3e3b0baf756299a5e09d8af856b0ea092eb4bd25fd9229 languageName: node linkType: hard @@ -9243,11 +9292,11 @@ __metadata: linkType: hard "ts-api-utils@npm:^1.0.1": - version: 1.0.3 - resolution: "ts-api-utils@npm:1.0.3" + version: 1.2.1 + resolution: "ts-api-utils@npm:1.2.1" peerDependencies: typescript: ">=4.2.0" - checksum: 10c0/9408338819c3aca2a709f0bc54e3f874227901506cacb1163612a6c8a43df224174feb965a5eafdae16f66fc68fd7bfee8d3275d0fa73fbb8699e03ed26520c9 + checksum: 10c0/8ddb493e7ae581d3f57a2e469142feb60b420d4ad8366ab969fe8e36531f8f301f370676b47e8d97f28b5f5fd10d6f2d55f656943a8546ef95e35ce5cf117754 languageName: node linkType: hard @@ -9411,14 +9460,14 @@ __metadata: languageName: node linkType: hard -"typed-array-buffer@npm:^1.0.0": - version: 1.0.0 - resolution: "typed-array-buffer@npm:1.0.0" +"typed-array-buffer@npm:^1.0.1": + version: 1.0.1 + resolution: "typed-array-buffer@npm:1.0.1" dependencies: - call-bind: "npm:^1.0.2" - get-intrinsic: "npm:^1.2.1" - is-typed-array: "npm:^1.1.10" - checksum: 10c0/ebad66cdf00c96b1395dffc7873169cf09801fca5954507a484f41f253feb1388d815db297b0b3bb8ce7421eac6f7ff45e2ec68450a3d68408aa4ae02fcf3a6c + call-bind: "npm:^1.0.6" + es-errors: "npm:^1.3.0" + is-typed-array: "npm:^1.1.13" + checksum: 10c0/fd4baf00e92aec8adae46253ae5aa4c5a2cc1659acd44abdef8a3212f4bcf4915a6712669f1bbf5503ff36c94f069963f27b1914bdd06e0093f4a9a390d2e1b8 languageName: node linkType: hard @@ -9789,20 +9838,20 @@ __metadata: linkType: hard "vue@npm:^3.3.4": - version: 3.4.15 - resolution: "vue@npm:3.4.15" + version: 3.4.19 + resolution: "vue@npm:3.4.19" dependencies: - "@vue/compiler-dom": "npm:3.4.15" - "@vue/compiler-sfc": "npm:3.4.15" - "@vue/runtime-dom": "npm:3.4.15" - "@vue/server-renderer": "npm:3.4.15" - "@vue/shared": "npm:3.4.15" + "@vue/compiler-dom": "npm:3.4.19" + "@vue/compiler-sfc": "npm:3.4.19" + "@vue/runtime-dom": "npm:3.4.19" + "@vue/server-renderer": "npm:3.4.19" + "@vue/shared": "npm:3.4.19" peerDependencies: typescript: "*" peerDependenciesMeta: typescript: optional: true - checksum: 10c0/7410135553f38d390ece3d5edcb6e2c158c3717e002a4e0766a95f6054f0ab7a8ce69000f5e29ff41f631f3cc7211123fbe34ab591b43b14f4af77c4ac01d116 + checksum: 10c0/90d45a30b096d3a2445314cf5a94db6f56b854bd483a706bc7ec358b555e2c6dba8ce7b6a976d52af2a8ba92fb3caab4b77b50886f732857320073753152528d languageName: node linkType: hard From 9bac360498d282d1d33d4342928875a7fd699c4f Mon Sep 17 00:00:00 2001 From: Annie Huang Date: Mon, 19 Feb 2024 18:46:50 +0800 Subject: [PATCH 06/28] fixed type error --- tests/cypress/e2e/UItests.cy.ts | 22 ++++++++++------------ tests/cypress/support/commands.ts | 14 ++++++-------- 2 files changed, 16 insertions(+), 20 deletions(-) diff --git a/tests/cypress/e2e/UItests.cy.ts b/tests/cypress/e2e/UItests.cy.ts index 9d0050f..b5ab9a0 100644 --- a/tests/cypress/e2e/UItests.cy.ts +++ b/tests/cypress/e2e/UItests.cy.ts @@ -95,20 +95,18 @@ describe('example helloworld app', () => { cy.CheckTextElement('#tasks', '任務', 'Tasks:') }) it('Check Terminal', () => { - cy.get('#terminal', { timeout: 20000 }).within(($terminal) => { - cy.get($terminal).should('be.visible') - cy.get('svg[data-icon="terminal"]').should('be.visible') - cy.CheckTextElement('#Terminal', '終端機', 'Terminal') - cy.get('@Terminaltextbox') - .should('be.visible') - .and('contain', 'commander:~ $') - }) + // cy.get('#terminal', { timeout: 20000 }).within(($terminal) => { + // cy.get($terminal).should('be.visible') + cy.get('#terminal', { timeout: 20000 }).should('be.visible') + cy.get('svg[data-icon="terminal"]').should('be.visible') + cy.CheckTextElement('#Terminal', '終端機', 'Terminal') + cy.get('@Terminaltextbox') + .should('be.visible') + .and('contain', 'commander:~ $') }) it('Check Hint Part', () => { - cy.get('#hint', { timeout: 20000 }).within(($hint) => { - cy.get($hint).should('be.visible') - cy.get('svg[data-icon="lightbulb"]').should('be.visible') - }) + cy.get('#hint', { timeout: 20000 }).should('be.visible') + cy.get('svg[data-icon="lightbulb"]').should('be.visible') cy.CheckTextElement('#hint', '提示', 'Hint') }) it('Check File TreeChart', () => { diff --git a/tests/cypress/support/commands.ts b/tests/cypress/support/commands.ts index 342d831..afda4fc 100644 --- a/tests/cypress/support/commands.ts +++ b/tests/cypress/support/commands.ts @@ -8,7 +8,7 @@ declare global { PrepareForGame(): Chainable InitTerminal(): Chainable typeInCommand(command: string): Chainable - getQuestInfo(id: string): Chainable + getQuestInfo(id: string): Chainable> checkHint(index: number, total: number): Chainable // 修改類型 checkTaskInit(): Chainable waitUntilActive(last?: boolean): Chainable // 注意小寫boolean,並且變量名應該是小寫 @@ -136,13 +136,11 @@ Cypress.Commands.add('CompleteStageWithCommands', (stagename) => { }) }) Cypress.Commands.add('CheckTextElement', (id, chText, enText) => { - cy.get(id, { timeout: 50000 }).within(($element) => { - if (Cypress.env('isCHVersion')) { - cy.get($element).should('contain', chText).and('be.visible') - } else { - cy.get($element).should('contain', enText).and('be.visible') - } - }) + if (Cypress.env('isCHVersion')) { + cy.get(id, { timeout: 50000 }).should('contain', chText).and('be.visible') + } else { + cy.get(id, { timeout: 50000 }).should('contain', enText).and('be.visible') + } }) Cypress.Commands.add('CheckPlaceholder', (id, chText, enText) => { cy.get(id) From ed142ab27b573c87c3f1e951b72dfdc7c4f28e0d Mon Sep 17 00:00:00 2001 From: Annie Huang Date: Thu, 22 Feb 2024 23:03:43 +0800 Subject: [PATCH 07/28] update declare types --- tests/cypress/support/commands.ts | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/tests/cypress/support/commands.ts b/tests/cypress/support/commands.ts index afda4fc..74a2ad0 100644 --- a/tests/cypress/support/commands.ts +++ b/tests/cypress/support/commands.ts @@ -4,15 +4,15 @@ import '@testing-library/cypress/add-commands' declare global { namespace Cypress { interface Chainable { - LoginWithPassword(username: string, password: string): Chainable + LoginWithPassword(username: string, password: string): Chainable PrepareForGame(): Chainable InitTerminal(): Chainable - typeInCommand(command: string): Chainable + typeInCommand(command: string): Chainable getQuestInfo(id: string): Chainable> - checkHint(index: number, total: number): Chainable // 修改類型 + checkHint(index: number, total: number): Chainable // 修改類型 checkTaskInit(): Chainable waitUntilActive(last?: boolean): Chainable // 注意小寫boolean,並且變量名應該是小寫 - checkPending(): Chainable + checkPending(): Chainable CompleteStageWithCommands(stagename: string): Chainable CheckTextElement( id: string, From b1a9a6102cca51829eb5d49eb73163029b6084bc Mon Sep 17 00:00:00 2001 From: Annie Huang Date: Fri, 23 Feb 2024 11:34:47 +0800 Subject: [PATCH 08/28] Optional oAuth activation in Cypress --- tests/cypress.config.mjs | 8 ++++++-- tests/cypress/e2e/UItests.cy.ts | 24 +++++++++++++----------- 2 files changed, 19 insertions(+), 13 deletions(-) diff --git a/tests/cypress.config.mjs b/tests/cypress.config.mjs index 354bdc7..5e5d8c2 100644 --- a/tests/cypress.config.mjs +++ b/tests/cypress.config.mjs @@ -1,6 +1,7 @@ import { defineConfig } from 'cypress' import process from 'process' import dotenv from 'dotenv' +import fs from 'fs' // Import fs module dotenv.config({ path: '../.env.dev' }) dotenv.config({ path: '../.env' }) @@ -17,6 +18,9 @@ const getOrFail = (key) => { return value } +// Check if the .env file exists +const EnableoAuth = fs.existsSync('../.env') + export default defineConfig({ e2e: { baseUrl: getConfig('BASE_URL', 'http://localhost:5173'), @@ -31,13 +35,13 @@ export default defineConfig({ defaultAccount: getOrFail('TESTING_USERNAME'), defaultPassword: getOrFail('TESTING_PASSWORD'), isCHVersion: true, + EnableoAuth, // Add the EnableoAuth variable here // google_username: process.env.GOOGLE_USERNAME, // google_password: process.env.GOOGLE_PASSWORD, // google_client_id: process.env.GOOGLE_CLIENT_ID, - // google_client_secret: process.env.GOOGLE_CLIENT_SECRET, + // github_username: process.env.GITHUB_USERNAME, // github_password: process.env.GITHUB_PASSWORD, // github_client_id: process.env.GITHUB_CLIENT_ID, - // github_client_secret: process.env.GITHUB_CLIENT_SECRET, }, }) diff --git a/tests/cypress/e2e/UItests.cy.ts b/tests/cypress/e2e/UItests.cy.ts index b5ab9a0..1ea8646 100644 --- a/tests/cypress/e2e/UItests.cy.ts +++ b/tests/cypress/e2e/UItests.cy.ts @@ -36,17 +36,19 @@ describe('example helloworld app', () => { cy.CheckTextElement('#SwitchtoRegister', '註冊', 'Sign up') }) it('Check social account UI', () => { - cy.CheckTextElement( - '#GoogleLogin', - '以 Google 繼續', - 'Continue with Google' - ) - cy.CheckTextElement('#or', '或', 'or') - cy.CheckTextElement( - '#GitHubLogin', - '以 GitHub 繼續', - 'Continue with GitHub' - ) + if (Cypress.env('EnableoAuth')) { + cy.CheckTextElement( + '#GoogleLogin', + '以 Google 繼續', + 'Continue with Google' + ) + cy.CheckTextElement('#or', '或', 'or') + cy.CheckTextElement( + '#GitHubLogin', + '以 GitHub 繼續', + 'Continue with GitHub' + ) + } }) it('Check login fail', () => { cy.LoginWithPassword('dddd', '123456') From b57e7adb3797626cbf9180e2e59c0ed5e18b4248 Mon Sep 17 00:00:00 2001 From: Annie Huang Date: Fri, 23 Feb 2024 13:02:23 +0800 Subject: [PATCH 09/28] update readme --- README.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/README.md b/README.md index 256749d..7cd24ed 100644 --- a/README.md +++ b/README.md @@ -21,6 +21,10 @@ Run mongoDB first: docker compose up -d db +Build up : + + yarn build + Run everything (frontend, backend, db, swagger, quests): yarn dev From 07ec58e41c974911a145f2a1de3d143ac76b8990 Mon Sep 17 00:00:00 2001 From: wancat Date: Fri, 23 Feb 2024 15:06:01 +0800 Subject: [PATCH 10/28] fix: enable restart of db --- README.md | 12 ++++++------ docker-compose.dev.yml | 1 + 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/README.md b/README.md index 7cd24ed..fd56c86 100644 --- a/README.md +++ b/README.md @@ -19,20 +19,20 @@ Run mongoDB first: - docker compose up -d db + docker compose -f docker-compose.dev.yml up -d db -Build up : +The db will automatically restarts by Docker. - yarn build +Build up dependencies: -Run everything (frontend, backend, db, swagger, quests): + yarn build:deps + +Run dev server (frontend, backend): yarn dev If you want to enable social login, you should have OAuth client token in a `.env` file: - docker compose --env-file .env up -d - ### Build Quest Images In each quest folder, there is a `game.yml` file, which is the quest definition. And a optional `Dockerfile` to overwrite the base image. If you want to include additional files, put them in a `home` folder. The files in `home` will **not** be copied to the image automatically, you have to copy them in the `Dockerfile`. diff --git a/docker-compose.dev.yml b/docker-compose.dev.yml index 3c98144..b35aba1 100644 --- a/docker-compose.dev.yml +++ b/docker-compose.dev.yml @@ -74,6 +74,7 @@ services: db: image: mongo + restart: always networks: - internal ports: From 8670d2b3bb34f0b6d59fc6b5e13edd77642cfcfb Mon Sep 17 00:00:00 2001 From: wancat Date: Fri, 23 Feb 2024 15:06:12 +0800 Subject: [PATCH 11/28] fix: ignore eslint warning --- tests/cypress/support/commands.ts | 2 ++ 1 file changed, 2 insertions(+) diff --git a/tests/cypress/support/commands.ts b/tests/cypress/support/commands.ts index 74a2ad0..86f2532 100644 --- a/tests/cypress/support/commands.ts +++ b/tests/cypress/support/commands.ts @@ -1,3 +1,5 @@ +/* eslint-disable no-undef */ +/* eslint-disable no-unused-vars */ /// import '@testing-library/cypress/add-commands' From 8c6b86ad17b3172559e12ad69a19e28f0a342c43 Mon Sep 17 00:00:00 2001 From: wancat Date: Fri, 23 Feb 2024 15:09:46 +0800 Subject: [PATCH 12/28] restore changes --- docker-compose.testing.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docker-compose.testing.yml b/docker-compose.testing.yml index d5942d8..18f0f97 100644 --- a/docker-compose.testing.yml +++ b/docker-compose.testing.yml @@ -6,8 +6,8 @@ services: dockerfile: tests/Dockerfile networks: - internal - # volumes: - # - ./tests:/e2e/tests + volumes: + - ./tests:/e2e/tests environment: - BASE_URL=http://app-test - TESTING_USERNAME=alex From 583605ef3a09c472fc51e31b0ec4a5ea4e37fba0 Mon Sep 17 00:00:00 2001 From: Annie Huang Date: Fri, 23 Feb 2024 16:59:55 +0800 Subject: [PATCH 13/28] try: fix collison of Jest --- tests/tsconfig.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/tsconfig.json b/tests/tsconfig.json index 1bba77a..5847864 100644 --- a/tests/tsconfig.json +++ b/tests/tsconfig.json @@ -5,5 +5,5 @@ "types": ["cypress", "@testing-library/cypress"] }, "include": ["src", "node_modules/cypress", "**/*.ts"], - "exclude": ["node_modules/cypress"] + "exclude": ["node_modules/cypress", "cypress.config.mjs"] } From 31eb638a6ee19e0200e859a56da9cb707d46c7d6 Mon Sep 17 00:00:00 2001 From: Annie Huang Date: Fri, 23 Feb 2024 17:06:59 +0800 Subject: [PATCH 14/28] fix typo --- tests/tsconfig.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/tsconfig.json b/tests/tsconfig.json index 5847864..06f5bd4 100644 --- a/tests/tsconfig.json +++ b/tests/tsconfig.json @@ -5,5 +5,5 @@ "types": ["cypress", "@testing-library/cypress"] }, "include": ["src", "node_modules/cypress", "**/*.ts"], - "exclude": ["node_modules/cypress", "cypress.config.mjs"] + "exclude": ["node_modules/cypress", "./cypress.config.mjs"] } From b98f4e4c07bb07a91bd6fbf0f1a0cba0310e26f8 Mon Sep 17 00:00:00 2001 From: Annie Huang Date: Fri, 23 Feb 2024 17:17:23 +0800 Subject: [PATCH 15/28] exclude jest --- tests/tsconfig.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/tsconfig.json b/tests/tsconfig.json index 06f5bd4..9e9b613 100644 --- a/tests/tsconfig.json +++ b/tests/tsconfig.json @@ -5,5 +5,5 @@ "types": ["cypress", "@testing-library/cypress"] }, "include": ["src", "node_modules/cypress", "**/*.ts"], - "exclude": ["node_modules/cypress", "./cypress.config.mjs"] + "exclude": ["node_modules/cypress", "./cypress.config.mjs", "**/*.test.ts"] } From f540a0166dbba73dcc1134fc5b9b5441290b5e35 Mon Sep 17 00:00:00 2001 From: Annie Huang Date: Fri, 23 Feb 2024 17:21:09 +0800 Subject: [PATCH 16/28] add include jest --- packages/utils/tsconfig.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/utils/tsconfig.json b/packages/utils/tsconfig.json index 8f50229..2938a70 100644 --- a/packages/utils/tsconfig.json +++ b/packages/utils/tsconfig.json @@ -5,6 +5,6 @@ "outDir": "./dist", "allowJs": false }, - "include": ["src"], + "include": ["src", "**/*.test.ts"], "exclude": ["node_modules", "dist"] } From 670a5b2e8788bf32f2592f0f52603d05c7bd1718 Mon Sep 17 00:00:00 2001 From: Annie Huang Date: Fri, 23 Feb 2024 17:51:31 +0800 Subject: [PATCH 17/28] try: fix collison by settings --- packages/utils/tsconfig.json | 4 ++-- tests/tsconfig.json | 8 ++++++-- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/packages/utils/tsconfig.json b/packages/utils/tsconfig.json index 2938a70..8f2aa02 100644 --- a/packages/utils/tsconfig.json +++ b/packages/utils/tsconfig.json @@ -1,10 +1,10 @@ { "extends": "../../tsconfig.json", "compilerOptions": { - "rootDir": "src", + // "rootDir": "utils", "outDir": "./dist", "allowJs": false }, - "include": ["src", "**/*.test.ts"], + "include": ["src", "tests"], "exclude": ["node_modules", "dist"] } diff --git a/tests/tsconfig.json b/tests/tsconfig.json index 9e9b613..0862ad3 100644 --- a/tests/tsconfig.json +++ b/tests/tsconfig.json @@ -4,6 +4,10 @@ "lib": ["es5", "dom"], "types": ["cypress", "@testing-library/cypress"] }, - "include": ["src", "node_modules/cypress", "**/*.ts"], - "exclude": ["node_modules/cypress", "./cypress.config.mjs", "**/*.test.ts"] + "include": ["node_modules/cypress", "cypress/**/*.ts"], + "exclude": [ + "node_modules/cypress", + "./cypress.config.mjs", + "../packages/utils/**/*.ts" + ] } From 87060aa3ef287670eb6f4fe509870610a17da0e6 Mon Sep 17 00:00:00 2001 From: Annie Huang Date: Fri, 23 Feb 2024 18:19:33 +0800 Subject: [PATCH 18/28] try: fix collison excluding and including --- packages/file-graph/tsconfig.json | 4 ++-- tests/cypress/support/commands.ts | 1 + tests/tsconfig.json | 3 ++- 3 files changed, 5 insertions(+), 3 deletions(-) diff --git a/packages/file-graph/tsconfig.json b/packages/file-graph/tsconfig.json index bf649ac..594a81a 100644 --- a/packages/file-graph/tsconfig.json +++ b/packages/file-graph/tsconfig.json @@ -1,9 +1,9 @@ { "extends": "../../tsconfig.json", "compilerOptions": { - "rootDir": "src", + // "rootDir": "src", "outDir": "./dist" }, - "include": ["src"], + "include": ["src", "tests"], "exclude": ["node_modules", "dist"] } diff --git a/tests/cypress/support/commands.ts b/tests/cypress/support/commands.ts index 86f2532..8f9f4c5 100644 --- a/tests/cypress/support/commands.ts +++ b/tests/cypress/support/commands.ts @@ -3,6 +3,7 @@ /// import '@testing-library/cypress/add-commands' +declare const expect: Chai.ExpectStatic declare global { namespace Cypress { interface Chainable { diff --git a/tests/tsconfig.json b/tests/tsconfig.json index 0862ad3..ce831eb 100644 --- a/tests/tsconfig.json +++ b/tests/tsconfig.json @@ -8,6 +8,7 @@ "exclude": [ "node_modules/cypress", "./cypress.config.mjs", - "../packages/utils/**/*.ts" + "../packages/utils/**/*.ts", + "../packages/file-graph/**/*.ts" ] } From 5091f8f24f7e0a044fefdff66404a0805f9c4393 Mon Sep 17 00:00:00 2001 From: Annie Huang Date: Mon, 26 Feb 2024 23:44:53 +0800 Subject: [PATCH 19/28] revise jest tsconfig --- packages/file-graph/tsconfig.json | 4 ++-- packages/utils/tsconfig.json | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/packages/file-graph/tsconfig.json b/packages/file-graph/tsconfig.json index 594a81a..bf649ac 100644 --- a/packages/file-graph/tsconfig.json +++ b/packages/file-graph/tsconfig.json @@ -1,9 +1,9 @@ { "extends": "../../tsconfig.json", "compilerOptions": { - // "rootDir": "src", + "rootDir": "src", "outDir": "./dist" }, - "include": ["src", "tests"], + "include": ["src"], "exclude": ["node_modules", "dist"] } diff --git a/packages/utils/tsconfig.json b/packages/utils/tsconfig.json index 8f2aa02..8f50229 100644 --- a/packages/utils/tsconfig.json +++ b/packages/utils/tsconfig.json @@ -1,10 +1,10 @@ { "extends": "../../tsconfig.json", "compilerOptions": { - // "rootDir": "utils", + "rootDir": "src", "outDir": "./dist", "allowJs": false }, - "include": ["src", "tests"], + "include": ["src"], "exclude": ["node_modules", "dist"] } From 0a730e4eef6fa4c24c9b61e05fa2d10c08c0c1bd Mon Sep 17 00:00:00 2001 From: Annie Huang Date: Mon, 26 Feb 2024 23:50:51 +0800 Subject: [PATCH 20/28] exclude cypress config and e2e.js --- tests/tsconfig.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/tests/tsconfig.json b/tests/tsconfig.json index ce831eb..34b9337 100644 --- a/tests/tsconfig.json +++ b/tests/tsconfig.json @@ -7,7 +7,8 @@ "include": ["node_modules/cypress", "cypress/**/*.ts"], "exclude": [ "node_modules/cypress", - "./cypress.config.mjs", + "cypress.config.mjs", + "cypress/support/e2e.js", "../packages/utils/**/*.ts", "../packages/file-graph/**/*.ts" ] From 004d232a84ce82bdc6f517da89ec51774743f0e3 Mon Sep 17 00:00:00 2001 From: Annie Huang Date: Tue, 27 Feb 2024 00:12:07 +0800 Subject: [PATCH 21/28] try transfering config to ts(but import is failing) --- .../{cypress.config.mjs => cypress.config.ts} | 25 ++++++------------- tests/tsconfig.json | 7 +++--- 2 files changed, 11 insertions(+), 21 deletions(-) rename tests/{cypress.config.mjs => cypress.config.ts} (53%) diff --git a/tests/cypress.config.mjs b/tests/cypress.config.ts similarity index 53% rename from tests/cypress.config.mjs rename to tests/cypress.config.ts index 5e5d8c2..83188db 100644 --- a/tests/cypress.config.mjs +++ b/tests/cypress.config.ts @@ -1,7 +1,7 @@ -import { defineConfig } from 'cypress' -import process from 'process' -import dotenv from 'dotenv' -import fs from 'fs' // Import fs module +const { defineConfig } = require('cypress') +const process = require('process') +const dotenv = require('dotenv') +const fs = require('fs') dotenv.config({ path: '../.env.dev' }) dotenv.config({ path: '../.env' }) @@ -9,19 +9,17 @@ dotenv.config({ path: '../.env' }) const getConfig = (key, defaultValue) => { return process.env[key] || defaultValue } - const getOrFail = (key) => { - const value = getConfig(key) - if (!value) { + const value = getConfig(key, null) + if (value === null) { throw new Error(`Missing required environment variable ${key}`) } return value } -// Check if the .env file exists const EnableoAuth = fs.existsSync('../.env') -export default defineConfig({ +module.exports = defineConfig({ e2e: { baseUrl: getConfig('BASE_URL', 'http://localhost:5173'), viewportWidth: 1920, @@ -35,13 +33,6 @@ export default defineConfig({ defaultAccount: getOrFail('TESTING_USERNAME'), defaultPassword: getOrFail('TESTING_PASSWORD'), isCHVersion: true, - EnableoAuth, // Add the EnableoAuth variable here - // google_username: process.env.GOOGLE_USERNAME, - // google_password: process.env.GOOGLE_PASSWORD, - // google_client_id: process.env.GOOGLE_CLIENT_ID, - - // github_username: process.env.GITHUB_USERNAME, - // github_password: process.env.GITHUB_PASSWORD, - // github_client_id: process.env.GITHUB_CLIENT_ID, + EnableoAuth, }, }) diff --git a/tests/tsconfig.json b/tests/tsconfig.json index 34b9337..cf23123 100644 --- a/tests/tsconfig.json +++ b/tests/tsconfig.json @@ -7,9 +7,8 @@ "include": ["node_modules/cypress", "cypress/**/*.ts"], "exclude": [ "node_modules/cypress", - "cypress.config.mjs", - "cypress/support/e2e.js", - "../packages/utils/**/*.ts", - "../packages/file-graph/**/*.ts" + "cypress.config.ts", + "./cypress/support/e2e.js", + "../packages" ] } From 9e108e397b4952d9db10e0f3349a274b60b30a42 Mon Sep 17 00:00:00 2001 From: Annie Huang Date: Tue, 27 Feb 2024 11:41:37 +0800 Subject: [PATCH 22/28] extend from global settings and modify cypress config --- tests/cypress.config.ts | 23 ++++++++++++++++------- tests/cypress/support/commands.ts | 4 ++-- tests/tsconfig.json | 11 +++-------- 3 files changed, 21 insertions(+), 17 deletions(-) diff --git a/tests/cypress.config.ts b/tests/cypress.config.ts index 83188db..ce86fe3 100644 --- a/tests/cypress.config.ts +++ b/tests/cypress.config.ts @@ -1,7 +1,7 @@ -const { defineConfig } = require('cypress') -const process = require('process') -const dotenv = require('dotenv') -const fs = require('fs') +import { defineConfig } from 'cypress' +import process from 'process' +import dotenv from 'dotenv' +import fs from 'fs' // Import fs module dotenv.config({ path: '../.env.dev' }) dotenv.config({ path: '../.env' }) @@ -9,17 +9,19 @@ dotenv.config({ path: '../.env' }) const getConfig = (key, defaultValue) => { return process.env[key] || defaultValue } + const getOrFail = (key) => { const value = getConfig(key, null) - if (value === null) { + if (!value) { throw new Error(`Missing required environment variable ${key}`) } return value } +// Check if the .env file exists const EnableoAuth = fs.existsSync('../.env') -module.exports = defineConfig({ +export default defineConfig({ e2e: { baseUrl: getConfig('BASE_URL', 'http://localhost:5173'), viewportWidth: 1920, @@ -33,6 +35,13 @@ module.exports = defineConfig({ defaultAccount: getOrFail('TESTING_USERNAME'), defaultPassword: getOrFail('TESTING_PASSWORD'), isCHVersion: true, - EnableoAuth, + EnableoAuth, // Add the EnableoAuth variable here + // google_username: process.env.GOOGLE_USERNAME, + // google_password: process.env.GOOGLE_PASSWORD, + // google_client_id: process.env.GOOGLE_CLIENT_ID, + + // github_username: process.env.GITHUB_USERNAME, + // github_password: process.env.GITHUB_PASSWORD, + // github_client_id: process.env.GITHUB_CLIENT_ID, }, }) diff --git a/tests/cypress/support/commands.ts b/tests/cypress/support/commands.ts index 8f9f4c5..b77cd88 100644 --- a/tests/cypress/support/commands.ts +++ b/tests/cypress/support/commands.ts @@ -11,7 +11,7 @@ declare global { PrepareForGame(): Chainable InitTerminal(): Chainable typeInCommand(command: string): Chainable - getQuestInfo(id: string): Chainable> + getQuestInfo(id: string): Chainable> checkHint(index: number, total: number): Chainable // 修改類型 checkTaskInit(): Chainable waitUntilActive(last?: boolean): Chainable // 注意小寫boolean,並且變量名應該是小寫 @@ -41,7 +41,7 @@ Cypress.Commands.add('LoginWithPassword', (username, password) => { Cypress.Commands.add('PrepareForGame', () => { cy.visit('/') // make sure the login page is loaded - cy.url().should('satisfy', (elements) => { + cy.url().should('satisfy', (elements: string) => { const text = elements return text.includes('login') || text.includes('register') }) diff --git a/tests/tsconfig.json b/tests/tsconfig.json index cf23123..dd1f480 100644 --- a/tests/tsconfig.json +++ b/tests/tsconfig.json @@ -1,14 +1,9 @@ { + "extends": "../tsconfig.json", "compilerOptions": { - "target": "es5", - "lib": ["es5", "dom"], + // "lib": ["es5", "dom"], "types": ["cypress", "@testing-library/cypress"] }, "include": ["node_modules/cypress", "cypress/**/*.ts"], - "exclude": [ - "node_modules/cypress", - "cypress.config.ts", - "./cypress/support/e2e.js", - "../packages" - ] + "exclude": ["node_modules/cypress", "cypress.config.ts", "../packages"] } From b059cca7b2bd80134555758838eb0fda8327f277 Mon Sep 17 00:00:00 2001 From: wancat Date: Tue, 27 Feb 2024 11:45:10 +0800 Subject: [PATCH 23/28] fix jest types by import @jest/globals --- .eslintrc.js | 3 ++- package.json | 1 + packages/file-graph/tests/file.test.ts | 3 ++- packages/file-graph/tests/fileGraph.test.ts | 1 + packages/file-graph/tests/fileNode.test.ts | 1 + packages/utils/tests/auth.test.ts | 1 + packages/utils/tests/commands.test.ts | 1 + packages/utils/tests/dag.test.ts | 1 + 8 files changed, 10 insertions(+), 2 deletions(-) diff --git a/.eslintrc.js b/.eslintrc.js index afc6b85..d177747 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -63,9 +63,10 @@ module.exports = { }, overrides: [ { - files: ['**/tests/**/*.js', '**/tests/**/*.ts'], // Adjust the pattern to match your test files + files: ['**/tests/**/*.js', '**/tests/**/*.ts', '**/*.test.ts'], // Adjust the pattern to match your test files rules: { 'import/extensions': 'off', // Turn off the rule for test files + 'import/no-extraneous-dependencies': 'off', }, }, ], diff --git a/package.json b/package.json index 1f8d8f7..04954b1 100644 --- a/package.json +++ b/package.json @@ -30,6 +30,7 @@ "build:quests": "yarn workspace server build:quests" }, "devDependencies": { + "@jest/globals": "^29.7.0", "@types/jest": "^29.5.12", "@types/node": "^20.10.4", "@typescript-eslint/eslint-plugin": "^6.14.0", diff --git a/packages/file-graph/tests/file.test.ts b/packages/file-graph/tests/file.test.ts index 0524f93..57eba95 100644 --- a/packages/file-graph/tests/file.test.ts +++ b/packages/file-graph/tests/file.test.ts @@ -1,4 +1,5 @@ -import File from '../src/file' +import { describe, test, expect } from '@jest/globals' +import File from '../src/file.js' describe('File', () => { let file: File diff --git a/packages/file-graph/tests/fileGraph.test.ts b/packages/file-graph/tests/fileGraph.test.ts index fd21202..c9ff417 100644 --- a/packages/file-graph/tests/fileGraph.test.ts +++ b/packages/file-graph/tests/fileGraph.test.ts @@ -1,3 +1,4 @@ +import { describe, test, expect } from '@jest/globals' import FileGraph from '../src/fileGraph.js' import FileNode from '../src/fileNode.js' diff --git a/packages/file-graph/tests/fileNode.test.ts b/packages/file-graph/tests/fileNode.test.ts index 3ccb3e1..14c6818 100644 --- a/packages/file-graph/tests/fileNode.test.ts +++ b/packages/file-graph/tests/fileNode.test.ts @@ -1,3 +1,4 @@ +import { describe, test, expect } from '@jest/globals' import { DuplicateItemError, ParentNotExistsError } from '../src/errors.js' import FileNode from '../src/fileNode.js' import { FileObject } from '../src/file.js' diff --git a/packages/utils/tests/auth.test.ts b/packages/utils/tests/auth.test.ts index 28593f7..84eff27 100644 --- a/packages/utils/tests/auth.test.ts +++ b/packages/utils/tests/auth.test.ts @@ -1,3 +1,4 @@ +import { test, expect } from '@jest/globals' import { isValidEmail, isValidUsername } from '../src/auth.js' test('check valid username', () => { diff --git a/packages/utils/tests/commands.test.ts b/packages/utils/tests/commands.test.ts index 7730678..77d02d1 100644 --- a/packages/utils/tests/commands.test.ts +++ b/packages/utils/tests/commands.test.ts @@ -1,3 +1,4 @@ +import { describe, it, expect } from '@jest/globals' import { buildFileCheckCmd, File } from '../src/commands.js' describe('buildFileCheckCmd function', () => { diff --git a/packages/utils/tests/dag.test.ts b/packages/utils/tests/dag.test.ts index ff631c0..fbe860d 100644 --- a/packages/utils/tests/dag.test.ts +++ b/packages/utils/tests/dag.test.ts @@ -1,3 +1,4 @@ +import { describe, it, expect } from '@jest/globals' import DAG from '../src/dag.js' describe('dag layers', () => { From 7c08d21142b69f39d773835e8d33ac83cdb7c94b Mon Sep 17 00:00:00 2001 From: wancat Date: Tue, 27 Feb 2024 12:02:22 +0800 Subject: [PATCH 24/28] fix: downgrade yarn to v1 in docker --- tests/Dockerfile | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/tests/Dockerfile b/tests/Dockerfile index 5628b56..d5c96d2 100644 --- a/tests/Dockerfile +++ b/tests/Dockerfile @@ -1,10 +1,9 @@ FROM cypress/browsers WORKDIR /e2e -RUN yarn set version stable COPY package.json yarn.lock ./ COPY tests/package.json ./tests/package.json -RUN yarn install +RUN yarn install --frozen-lockfile COPY quests ./quests COPY tests ./tests From a9bc2cc1271d35aace1f7e54958d857e49b5dc2c Mon Sep 17 00:00:00 2001 From: wancat Date: Tue, 27 Feb 2024 12:54:30 +0800 Subject: [PATCH 25/28] fix: disable sourceMap in cypress tsconfig --- tests/tsconfig.json | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/tests/tsconfig.json b/tests/tsconfig.json index dd1f480..6bae701 100644 --- a/tests/tsconfig.json +++ b/tests/tsconfig.json @@ -2,7 +2,9 @@ "extends": "../tsconfig.json", "compilerOptions": { // "lib": ["es5", "dom"], - "types": ["cypress", "@testing-library/cypress"] + "types": ["cypress", "@testing-library/cypress"], + "sourceMap": false, + "inlineSourceMap": true }, "include": ["node_modules/cypress", "cypress/**/*.ts"], "exclude": ["node_modules/cypress", "cypress.config.ts", "../packages"] From 1b52349f03e04e90294d67f976c79349f1e2ac1d Mon Sep 17 00:00:00 2001 From: Annie Huang Date: Tue, 27 Feb 2024 14:26:37 +0800 Subject: [PATCH 26/28] delete redundant code --- tests/tsconfig.json | 1 - 1 file changed, 1 deletion(-) diff --git a/tests/tsconfig.json b/tests/tsconfig.json index 6bae701..ada7ed3 100644 --- a/tests/tsconfig.json +++ b/tests/tsconfig.json @@ -1,7 +1,6 @@ { "extends": "../tsconfig.json", "compilerOptions": { - // "lib": ["es5", "dom"], "types": ["cypress", "@testing-library/cypress"], "sourceMap": false, "inlineSourceMap": true From 2aa1c84e73069226364ff8557f8b83032e297ddc Mon Sep 17 00:00:00 2001 From: Annie Huang Date: Tue, 27 Feb 2024 22:23:10 +0800 Subject: [PATCH 27/28] delete port setting of db in testing yml --- docker-compose.testing.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docker-compose.testing.yml b/docker-compose.testing.yml index 18f0f97..4bada7e 100644 --- a/docker-compose.testing.yml +++ b/docker-compose.testing.yml @@ -71,8 +71,8 @@ services: - MONGO_USER=user - MONGO_PASS=user-password - MONGO_DB=odyssey-test - ports: - - 27017:27017 +# ports: +# - 27017:27017 base: image: linuxodyssey/quest-base From 818e4e95e47b799af78684c93e8575b23db0db57 Mon Sep 17 00:00:00 2001 From: wancat Date: Wed, 28 Feb 2024 23:20:29 +0800 Subject: [PATCH 28/28] fix: compile cypress to commonjs to fix docker issue --- .dockerignore | 2 +- docker-compose.testing.yml | 10 ++++++---- tests/cypress/support/{e2e.js => e2e.ts} | 0 tests/package.json | 6 ++++-- tests/tsconfig.json | 13 +++++++------ yarn.lock | 9 ++++++++- 6 files changed, 26 insertions(+), 14 deletions(-) rename tests/cypress/support/{e2e.js => e2e.ts} (100%) diff --git a/.dockerignore b/.dockerignore index d571957..2f03a01 100644 --- a/.dockerignore +++ b/.dockerignore @@ -1,3 +1,3 @@ -*/node_modules +**/node_modules .git */dist \ No newline at end of file diff --git a/docker-compose.testing.yml b/docker-compose.testing.yml index 4bada7e..5c67018 100644 --- a/docker-compose.testing.yml +++ b/docker-compose.testing.yml @@ -12,6 +12,7 @@ services: - BASE_URL=http://app-test - TESTING_USERNAME=alex - TESTING_PASSWORD=Alex1234 + # - DEBUG=cypress:* depends_on: - app-test @@ -23,8 +24,9 @@ services: target: prod networks: internal: - ports: - - 5173:80 + # Only open the port for debugging + # ports: + # - 5173:80 depends_on: - backend @@ -71,8 +73,8 @@ services: - MONGO_USER=user - MONGO_PASS=user-password - MONGO_DB=odyssey-test -# ports: -# - 27017:27017 + # ports: + # - 27017:27017 base: image: linuxodyssey/quest-base diff --git a/tests/cypress/support/e2e.js b/tests/cypress/support/e2e.ts similarity index 100% rename from tests/cypress/support/e2e.js rename to tests/cypress/support/e2e.ts diff --git a/tests/package.json b/tests/package.json index 68157d1..885c84b 100644 --- a/tests/package.json +++ b/tests/package.json @@ -3,7 +3,7 @@ "version": "1.0.0", "private": true, "main": "index.js", - "type": "module", + "type": "commonjs", "license": "MIT", "scripts": { "test": "yarn cypress run", @@ -12,9 +12,11 @@ "dependencies": { "@testing-library/cypress": "^10.0.1", "cypress": "^13.5.1", - "dotenv": "^16.3.1" + "dotenv": "^16.3.1", + "ts-node": "^10.9.2" }, "devDependencies": { + "@types/dotenv": "^8.2.0", "typescript": "^5.3.3" } } diff --git a/tests/tsconfig.json b/tests/tsconfig.json index ada7ed3..6f9a664 100644 --- a/tests/tsconfig.json +++ b/tests/tsconfig.json @@ -1,10 +1,11 @@ { - "extends": "../tsconfig.json", "compilerOptions": { - "types": ["cypress", "@testing-library/cypress"], - "sourceMap": false, - "inlineSourceMap": true + "outDir": "dist", + "target": "es5", + "lib": ["es5", "dom"], + "types": ["cypress", "node", "@testing-library/cypress"], + "esModuleInterop": true }, - "include": ["node_modules/cypress", "cypress/**/*.ts"], - "exclude": ["node_modules/cypress", "cypress.config.ts", "../packages"] + "include": ["**/*.ts"], + "exclude": ["dist"] } diff --git a/yarn.lock b/yarn.lock index 01fe85a..26908b8 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1043,6 +1043,13 @@ "@types/docker-modem" "*" "@types/node" "*" +"@types/dotenv@^8.2.0": + version "8.2.0" + resolved "https://registry.yarnpkg.com/@types/dotenv/-/dotenv-8.2.0.tgz#5cd64710c3c98e82d9d15844375a33bf1b45d053" + integrity sha512-ylSC9GhfRH7m1EUXBXofhgx4lUWmFeQDINW5oLuS+gxWdfUeW4zJdeVTYVkexEW+e2VUvlZR2kGnGGipAWR7kw== + dependencies: + dotenv "*" + "@types/express-serve-static-core@^4.17.33": version "4.17.43" resolved "https://registry.yarnpkg.com/@types/express-serve-static-core/-/express-serve-static-core-4.17.43.tgz#10d8444be560cb789c4735aea5eac6e5af45df54" @@ -2777,7 +2784,7 @@ dompurify@^3.0.6: resolved "https://registry.yarnpkg.com/dompurify/-/dompurify-3.0.9.tgz#b3f362f24b99f53498c75d43ecbd784b0b3ad65e" integrity sha512-uyb4NDIvQ3hRn6NiC+SIFaP4mJ/MdXlvtunaqK9Bn6dD3RuB/1S/gasEjDHD8eiaqdSael2vBv+hOs7Y+jhYOQ== -dotenv@^16.3.1, dotenv@^16.4.1: +dotenv@*, dotenv@^16.3.1, dotenv@^16.4.1: version "16.4.5" resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-16.4.5.tgz#cdd3b3b604cb327e286b4762e13502f717cb099f" integrity sha512-ZmdL2rui+eB2YwhsWzjInR8LldtZHGDoQ1ugH85ppHKwpUHL7j7rN0Ti9NCnGiQbhaZ11FpR+7ao1dNsmduNUg==