From 05ad9206ab1e99293c8ae54f1b4dcb68004c5cc7 Mon Sep 17 00:00:00 2001 From: oxdev03 <140103378+oxdev03@users.noreply.github.com> Date: Sun, 21 Jun 2026 19:50:37 +0200 Subject: [PATCH 1/5] chore: renovate project with latest deps --- .eslintrc.js | 6 - .github/workflows/ci.yml | 24 +- .gitignore | 4 + apps/backend/.eslintrc.js | 5 - apps/backend/eslint.config.mjs | 2 + apps/backend/package.json | 24 +- apps/backend/tsconfig.json | 1 + apps/dashboard/.eslintrc.js | 34 - .../misc/MultiSelect/CustomMultiSelect.tsx | 18 +- .../components/process/ProcessMetric.tsx | 2 +- .../settings/UpdateConfiguration.tsx | 2 +- .../components/settings/UpdatePassword.tsx | 4 +- apps/dashboard/cypress.config.ts | 20 - .../cypress/e2e/1-user/01-register.cy.ts | 57 - .../cypress/e2e/1-user/02-login.cy.ts | 33 - .../cypress/e2e/1-user/03-admin.cy.ts | 83 - apps/dashboard/cypress/support/commands.ts | 46 - apps/dashboard/cypress/support/e2e.ts | 28 - apps/dashboard/cypress/tsconfig.json | 8 - apps/dashboard/cypress/utils/mongodb.mjs | 15 - apps/dashboard/eslint.config.mjs | 78 + apps/dashboard/middleware.ts | 4 +- apps/dashboard/next.config.js | 4 +- apps/dashboard/package.json | 102 +- .../dashboard/pages/api/auth/[...nextauth].ts | 4 +- apps/dashboard/playwright.config.ts | 29 + apps/dashboard/server/routers/process.ts | 4 +- apps/dashboard/server/routers/server.ts | 4 +- .../tests/e2e/1-user/01-register.spec.ts | 66 + .../tests/e2e/1-user/02-login.spec.ts | 39 + .../tests/e2e/1-user/03-admin.spec.ts | 95 + apps/dashboard/{cypress => tests}/utils/db.ts | 9 +- apps/dashboard/tests/utils/start-server.mjs | 41 + apps/dashboard/tsconfig.json | 25 +- eslint.config.mjs | 8 + package-lock.json | 10163 ---------------- package.json | 20 +- packages/eslint-config/base.js | 66 - packages/eslint-config/eslint.config.mjs | 86 + packages/eslint-config/package.json | 22 +- packages/mongoose-models/.eslintrc.js | 5 - packages/mongoose-models/eslint.config.mjs | 2 + packages/mongoose-models/models/user.ts | 5 +- packages/mongoose-models/package.json | 14 +- packages/mongoose-models/tsconfig.json | 1 + packages/typings/package.json | 2 +- packages/typings/tsconfig.json | 1 + pnpm-lock.yaml | 6530 ++++++++++ pnpm-workspace.yaml | 9 + 49 files changed, 7152 insertions(+), 10702 deletions(-) delete mode 100644 .eslintrc.js delete mode 100644 apps/backend/.eslintrc.js create mode 100644 apps/backend/eslint.config.mjs delete mode 100644 apps/dashboard/.eslintrc.js delete mode 100644 apps/dashboard/cypress.config.ts delete mode 100644 apps/dashboard/cypress/e2e/1-user/01-register.cy.ts delete mode 100644 apps/dashboard/cypress/e2e/1-user/02-login.cy.ts delete mode 100644 apps/dashboard/cypress/e2e/1-user/03-admin.cy.ts delete mode 100644 apps/dashboard/cypress/support/commands.ts delete mode 100644 apps/dashboard/cypress/support/e2e.ts delete mode 100644 apps/dashboard/cypress/tsconfig.json delete mode 100644 apps/dashboard/cypress/utils/mongodb.mjs create mode 100644 apps/dashboard/eslint.config.mjs create mode 100644 apps/dashboard/playwright.config.ts create mode 100644 apps/dashboard/tests/e2e/1-user/01-register.spec.ts create mode 100644 apps/dashboard/tests/e2e/1-user/02-login.spec.ts create mode 100644 apps/dashboard/tests/e2e/1-user/03-admin.spec.ts rename apps/dashboard/{cypress => tests}/utils/db.ts (85%) create mode 100644 apps/dashboard/tests/utils/start-server.mjs create mode 100644 eslint.config.mjs delete mode 100644 package-lock.json delete mode 100644 packages/eslint-config/base.js create mode 100644 packages/eslint-config/eslint.config.mjs delete mode 100644 packages/mongoose-models/.eslintrc.js create mode 100644 packages/mongoose-models/eslint.config.mjs create mode 100644 pnpm-lock.yaml create mode 100644 pnpm-workspace.yaml diff --git a/.eslintrc.js b/.eslintrc.js deleted file mode 100644 index 98e6e53..0000000 --- a/.eslintrc.js +++ /dev/null @@ -1,6 +0,0 @@ -// This configuration only applies to the package manager root. -/** @type {import("eslint").Linter.Config} */ -module.exports = { - ignorePatterns: ["apps/**", "packages/**"], - extends: ["@pm2.web/eslint-config/base.js"], -}; diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 780add8..e388358 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -14,17 +14,21 @@ jobs: uses: actions/checkout@v4 with: fetch-depth: 2 + - name: Setup pnpm + uses: pnpm/action-setup@v3 + with: + version: 11 - name: Setup Node.js environment uses: actions/setup-node@v4 with: node-version: 20 - cache: 'npm' + cache: 'pnpm' - name: Install dependencies - run: npm install + run: pnpm install - name: Run lint - run: npm run lint + run: pnpm run lint - name: Run format - run: npm run format:check + run: pnpm run format:check test: runs-on: ubuntu-latest needs: analyze @@ -33,12 +37,18 @@ jobs: uses: actions/checkout@v4 with: fetch-depth: 2 + - name: Setup pnpm + uses: pnpm/action-setup@v3 + with: + version: 11 - name: Setup Node.js environment uses: actions/setup-node@v4 with: node-version: 20 - cache: 'npm' + cache: 'pnpm' - name: Install dependencies - run: npm install + run: pnpm install + - name: Install Playwright Browsers + run: pnpm exec playwright install --with-deps - name: Run tests - run: npm test + run: pnpm test diff --git a/.gitignore b/.gitignore index c1e96d3..e05134b 100644 --- a/.gitignore +++ b/.gitignore @@ -12,6 +12,10 @@ node_modules # Testing coverage +test-results/ +playwright-report/ +blob-report/ +playwright/.cache/ # Turbo .turbo diff --git a/apps/backend/.eslintrc.js b/apps/backend/.eslintrc.js deleted file mode 100644 index da8914d..0000000 --- a/apps/backend/.eslintrc.js +++ /dev/null @@ -1,5 +0,0 @@ -/** @type {import("eslint").Linter.Config} */ -module.exports = { - root: true, - extends: ["@pm2.web/eslint-config/base.js"], -}; diff --git a/apps/backend/eslint.config.mjs b/apps/backend/eslint.config.mjs new file mode 100644 index 0000000..390e344 --- /dev/null +++ b/apps/backend/eslint.config.mjs @@ -0,0 +1,2 @@ +import baseConfig from "@pm2.web/eslint-config/eslint.config.mjs"; +export default baseConfig; diff --git a/apps/backend/package.json b/apps/backend/package.json index d96c14c..80a6f93 100644 --- a/apps/backend/package.json +++ b/apps/backend/package.json @@ -24,23 +24,23 @@ "format:check": "prettier --check \"**/*.{ts,json,css,scss,md}\"", "prestart": "tsc --build --clean && tsc", "watch": "tsc -w", - "dev": "npm run start" + "dev": "pnpm run start" }, "license": "LGPL-3.0-or-later", "dependencies": { - "@pm2.web/mongoose-models": "*", - "@pm2.web/typings": "*", - "bcrypt": "^5.1.1", + "@pm2.web/mongoose-models": "workspace:*", + "@pm2.web/typings": "workspace:*", + "bcrypt": "^6.0.0", "bytes-iec": "^3.1.1", - "dotenv": "^16.4.5", - "pm2": "^5.4.2", - "systeminformation": "^5.23.5" + "dotenv": "^17.4.2", + "pm2": "^7.0.1", + "systeminformation": "^5.31.7" }, "devDependencies": { - "@pm2.web/eslint-config": "*", - "@pm2.web/typescript-config": "*", - "@types/bcrypt": "^5.0.2", - "eslint": "^8.57.1", - "typescript": "^5.6.2" + "@pm2.web/eslint-config": "workspace:*", + "@pm2.web/typescript-config": "workspace:*", + "@types/bcrypt": "^6.0.0", + "eslint": "^10.5.0", + "typescript": "^6.0.3" } } diff --git a/apps/backend/tsconfig.json b/apps/backend/tsconfig.json index f8a1309..6687f03 100644 --- a/apps/backend/tsconfig.json +++ b/apps/backend/tsconfig.json @@ -2,6 +2,7 @@ "extends": "@pm2.web/typescript-config/base.json", "exclude": ["node_modules", "dist"], "compilerOptions": { + "rootDir": "./", "outDir": "./dist" } } diff --git a/apps/dashboard/.eslintrc.js b/apps/dashboard/.eslintrc.js deleted file mode 100644 index 19ecb99..0000000 --- a/apps/dashboard/.eslintrc.js +++ /dev/null @@ -1,34 +0,0 @@ -/** - * @type {import('eslint').Linter.Config} - */ -module.exports = { - root: true, - extends: ["next", "plugin:@typescript-eslint/recommended", "plugin:unicorn/recommended", "prettier"], - plugins: ["simple-import-sort", "import"], - ignorePatterns: ["node_modules", "dist"], - rules: { - "simple-import-sort/imports": "error", - "simple-import-sort/exports": "error", - "import/first": "error", - "import/newline-after-import": "error", - "import/no-duplicates": "error", - "unicorn/prevent-abbreviations": "off", - "unicorn/catch-error-name": "off", - "unicorn/no-null": "off", - "unicorn/prefer-module": "off", - "unicorn/filename-case": [ - "error", - { - cases: { - kebabCase: true, - pascalCase: true, - }, - }, - ], - }, - parserOptions: { - babelOptions: { - presets: [require.resolve("next/babel")], - }, - }, -}; diff --git a/apps/dashboard/components/misc/MultiSelect/CustomMultiSelect.tsx b/apps/dashboard/components/misc/MultiSelect/CustomMultiSelect.tsx index a27830f..7791b41 100644 --- a/apps/dashboard/components/misc/MultiSelect/CustomMultiSelect.tsx +++ b/apps/dashboard/components/misc/MultiSelect/CustomMultiSelect.tsx @@ -1,6 +1,6 @@ /* eslint-disable unicorn/prefer-negative-index */ -/* eslint-disable @typescript-eslint/no-explicit-any */ -/* eslint-disable @typescript-eslint/no-unused-vars */ + + /* Source: https://github.com/mantinedev/mantine/blob/master/packages/%40mantine/core/src/components/MultiSelect/MultiSelect.tsx */ import { @@ -30,8 +30,8 @@ export interface IItem { interface CustomMultiSelectProps extends MultiSelectProps { data: IItem[]; - pillComponent?: (item: IItem & any) => JSX.Element; - itemComponent?: (item: IItem & any) => JSX.Element; + pillComponent?: (item: IItem & any) => React.ReactNode; + itemComponent?: (item: IItem & any) => React.ReactNode; } const defaultProps: Partial = { @@ -47,8 +47,9 @@ type CustomMultiSelectFactory = { stylesNames: MultiSelectStylesNames; }; -export const CustomMultiSelect = factory((_props, ref) => { - const props = useProps("MultiSelect", defaultProps, _props); +export const CustomMultiSelect = factory((_props: any) => { + const ref = _props.ref; + const props = useProps("MultiSelect", defaultProps, _props) as CustomMultiSelectProps; const { classNames, className, @@ -280,7 +281,6 @@ export const CustomMultiSelect = factory((_props, ref) description={description} label={label} error={error} - multiline withErrorStyles={withErrorStyles} __stylesApiProps={{ ...props, @@ -298,13 +298,13 @@ export const CustomMultiSelect = factory((_props, ref) {values}