diff --git a/.github/actions/lint/action.yaml b/.github/actions/lint/action.yaml index 8831a55a1..32a3da669 100644 --- a/.github/actions/lint/action.yaml +++ b/.github/actions/lint/action.yaml @@ -6,7 +6,7 @@ runs: steps: - uses: actions/setup-node@v5 with: - node-version: 22 + node-version: 22.19.0 - name: 'Install dependencies' shell: bash run: npm ci && npm ci --prefix services/shared && npm ci --prefix services/frontend && npm ci --prefix services/backend diff --git a/.github/workflows/updater.yaml b/.github/workflows/updater.yaml index e8fabed44..8641cb164 100644 --- a/.github/workflows/updater.yaml +++ b/.github/workflows/updater.yaml @@ -23,7 +23,7 @@ jobs: - uses: actions/checkout@v5 - uses: actions/setup-node@v5 with: - node-version: 22 + node-version: 22.19.0 - name: 'Install dependencies' run: npm ci && npm ci --prefix updater/sis-updater-scheduler && npm ci --prefix updater/sis-updater-worker - name: 'Run linter' diff --git a/package-lock.json b/package-lock.json index 784fc1476..ce8fbf468 100644 --- a/package-lock.json +++ b/package-lock.json @@ -10,30 +10,30 @@ "lodash": "^4.17.21" }, "devDependencies": { - "@cypress/code-coverage": "^3.14.4", - "@eslint/js": "^9.28.0", + "@cypress/code-coverage": "^3.14.6", + "@eslint/js": "^9.35.0", "@istanbuljs/schema": "^0.1.3", - "cypress": "^15.0.0", - "eslint": "^9.28.0", - "eslint-config-prettier": "^10.1.5", - "eslint-import-resolver-typescript": "^4.4.3", + "cypress": "^15.2.0", + "eslint": "^9.35.0", + "eslint-config-prettier": "^10.1.8", + "eslint-import-resolver-typescript": "^4.4.4", "eslint-plugin-cypress": "^5.1.1", "eslint-plugin-import-x": "^4.16.1", - "eslint-plugin-prettier": "^5.4.1", + "eslint-plugin-prettier": "^5.5.4", "eslint-plugin-react": "^7.37.5", "eslint-plugin-react-hooks": "^5.2.0", - "globals": "^16.2.0", + "globals": "^16.4.0", "husky": "^9.1.7", - "lint-staged": "^16.1.0", + "lint-staged": "^16.1.6", "node-actionlint": "^1.2.2", "nyc": "^17.1.0", - "prettier": "3.5.3", - "stylelint": "^16.20.0", + "prettier": "3.6.2", + "stylelint": "^16.24.0", "stylelint-config-standard": "^39.0.0", - "typescript-eslint": "^8.34.0" + "typescript-eslint": "^8.44.0" }, "engines": { - "node": ">=22.0.0" + "node": ">=22.19.0" } }, "node_modules/@babel/code-frame": { @@ -2606,17 +2606,17 @@ } }, "node_modules/@typescript-eslint/eslint-plugin": { - "version": "8.43.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.43.0.tgz", - "integrity": "sha512-8tg+gt7ENL7KewsKMKDHXR1vm8tt9eMxjJBYINf6swonlWgkYn5NwyIgXpbbDxTNU5DgpDFfj95prcTq2clIQQ==", + "version": "8.44.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.44.0.tgz", + "integrity": "sha512-EGDAOGX+uwwekcS0iyxVDmRV9HX6FLSM5kzrAToLTsr9OWCIKG/y3lQheCq18yZ5Xh78rRKJiEpP0ZaCs4ryOQ==", "dev": true, "license": "MIT", "dependencies": { "@eslint-community/regexpp": "^4.10.0", - "@typescript-eslint/scope-manager": "8.43.0", - "@typescript-eslint/type-utils": "8.43.0", - "@typescript-eslint/utils": "8.43.0", - "@typescript-eslint/visitor-keys": "8.43.0", + "@typescript-eslint/scope-manager": "8.44.0", + "@typescript-eslint/type-utils": "8.44.0", + "@typescript-eslint/utils": "8.44.0", + "@typescript-eslint/visitor-keys": "8.44.0", "graphemer": "^1.4.0", "ignore": "^7.0.0", "natural-compare": "^1.4.0", @@ -2630,7 +2630,7 @@ "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "@typescript-eslint/parser": "^8.43.0", + "@typescript-eslint/parser": "^8.44.0", "eslint": "^8.57.0 || ^9.0.0", "typescript": ">=4.8.4 <6.0.0" } @@ -2646,16 +2646,16 @@ } }, "node_modules/@typescript-eslint/parser": { - "version": "8.43.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.43.0.tgz", - "integrity": "sha512-B7RIQiTsCBBmY+yW4+ILd6mF5h1FUwJsVvpqkrgpszYifetQ2Ke+Z4u6aZh0CblkUGIdR59iYVyXqqZGkZ3aBw==", + "version": "8.44.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.44.0.tgz", + "integrity": "sha512-VGMpFQGUQWYT9LfnPcX8ouFojyrZ/2w3K5BucvxL/spdNehccKhB4jUyB1yBCXpr2XFm0jkECxgrpXBW2ipoAw==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/scope-manager": "8.43.0", - "@typescript-eslint/types": "8.43.0", - "@typescript-eslint/typescript-estree": "8.43.0", - "@typescript-eslint/visitor-keys": "8.43.0", + "@typescript-eslint/scope-manager": "8.44.0", + "@typescript-eslint/types": "8.44.0", + "@typescript-eslint/typescript-estree": "8.44.0", + "@typescript-eslint/visitor-keys": "8.44.0", "debug": "^4.3.4" }, "engines": { @@ -2671,14 +2671,14 @@ } }, "node_modules/@typescript-eslint/project-service": { - "version": "8.43.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/project-service/-/project-service-8.43.0.tgz", - "integrity": "sha512-htB/+D/BIGoNTQYffZw4uM4NzzuolCoaA/BusuSIcC8YjmBYQioew5VUZAYdAETPjeed0hqCaW7EHg+Robq8uw==", + "version": "8.44.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/project-service/-/project-service-8.44.0.tgz", + "integrity": "sha512-ZeaGNraRsq10GuEohKTo4295Z/SuGcSq2LzfGlqiuEvfArzo/VRrT0ZaJsVPuKZ55lVbNk8U6FcL+ZMH8CoyVA==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/tsconfig-utils": "^8.43.0", - "@typescript-eslint/types": "^8.43.0", + "@typescript-eslint/tsconfig-utils": "^8.44.0", + "@typescript-eslint/types": "^8.44.0", "debug": "^4.3.4" }, "engines": { @@ -2693,14 +2693,14 @@ } }, "node_modules/@typescript-eslint/scope-manager": { - "version": "8.43.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.43.0.tgz", - "integrity": "sha512-daSWlQ87ZhsjrbMLvpuuMAt3y4ba57AuvadcR7f3nl8eS3BjRc8L9VLxFLk92RL5xdXOg6IQ+qKjjqNEimGuAg==", + "version": "8.44.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.44.0.tgz", + "integrity": "sha512-87Jv3E+al8wpD+rIdVJm/ItDBe/Im09zXIjFoipOjr5gHUhJmTzfFLuTJ/nPTMc2Srsroy4IBXwcTCHyRR7KzA==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.43.0", - "@typescript-eslint/visitor-keys": "8.43.0" + "@typescript-eslint/types": "8.44.0", + "@typescript-eslint/visitor-keys": "8.44.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -2711,9 +2711,9 @@ } }, "node_modules/@typescript-eslint/tsconfig-utils": { - "version": "8.43.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.43.0.tgz", - "integrity": "sha512-ALC2prjZcj2YqqL5X/bwWQmHA2em6/94GcbB/KKu5SX3EBDOsqztmmX1kMkvAJHzxk7TazKzJfFiEIagNV3qEA==", + "version": "8.44.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.44.0.tgz", + "integrity": "sha512-x5Y0+AuEPqAInc6yd0n5DAcvtoQ/vyaGwuX5HE9n6qAefk1GaedqrLQF8kQGylLUb9pnZyLf+iEiL9fr8APDtQ==", "dev": true, "license": "MIT", "engines": { @@ -2728,15 +2728,15 @@ } }, "node_modules/@typescript-eslint/type-utils": { - "version": "8.43.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.43.0.tgz", - "integrity": "sha512-qaH1uLBpBuBBuRf8c1mLJ6swOfzCXryhKND04Igr4pckzSEW9JX5Aw9AgW00kwfjWJF0kk0ps9ExKTfvXfw4Qg==", + "version": "8.44.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.44.0.tgz", + "integrity": "sha512-9cwsoSxJ8Sak67Be/hD2RNt/fsqmWnNE1iHohG8lxqLSNY8xNfyY7wloo5zpW3Nu9hxVgURevqfcH6vvKCt6yg==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.43.0", - "@typescript-eslint/typescript-estree": "8.43.0", - "@typescript-eslint/utils": "8.43.0", + "@typescript-eslint/types": "8.44.0", + "@typescript-eslint/typescript-estree": "8.44.0", + "@typescript-eslint/utils": "8.44.0", "debug": "^4.3.4", "ts-api-utils": "^2.1.0" }, @@ -2753,9 +2753,9 @@ } }, "node_modules/@typescript-eslint/types": { - "version": "8.43.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.43.0.tgz", - "integrity": "sha512-vQ2FZaxJpydjSZJKiSW/LJsabFFvV7KgLC5DiLhkBcykhQj8iK9BOaDmQt74nnKdLvceM5xmhaTF+pLekrxEkw==", + "version": "8.44.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.44.0.tgz", + "integrity": "sha512-ZSl2efn44VsYM0MfDQe68RKzBz75NPgLQXuGypmym6QVOWL5kegTZuZ02xRAT9T+onqvM6T8CdQk0OwYMB6ZvA==", "dev": true, "license": "MIT", "engines": { @@ -2767,16 +2767,16 @@ } }, "node_modules/@typescript-eslint/typescript-estree": { - "version": "8.43.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.43.0.tgz", - "integrity": "sha512-7Vv6zlAhPb+cvEpP06WXXy/ZByph9iL6BQRBDj4kmBsW98AqEeQHlj/13X+sZOrKSo9/rNKH4Ul4f6EICREFdw==", + "version": "8.44.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.44.0.tgz", + "integrity": "sha512-lqNj6SgnGcQZwL4/SBJ3xdPEfcBuhCG8zdcwCPgYcmiPLgokiNDKlbPzCwEwu7m279J/lBYWtDYL+87OEfn8Jw==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/project-service": "8.43.0", - "@typescript-eslint/tsconfig-utils": "8.43.0", - "@typescript-eslint/types": "8.43.0", - "@typescript-eslint/visitor-keys": "8.43.0", + "@typescript-eslint/project-service": "8.44.0", + "@typescript-eslint/tsconfig-utils": "8.44.0", + "@typescript-eslint/types": "8.44.0", + "@typescript-eslint/visitor-keys": "8.44.0", "debug": "^4.3.4", "fast-glob": "^3.3.2", "is-glob": "^4.0.3", @@ -2835,16 +2835,16 @@ } }, "node_modules/@typescript-eslint/utils": { - "version": "8.43.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.43.0.tgz", - "integrity": "sha512-S1/tEmkUeeswxd0GGcnwuVQPFWo8NzZTOMxCvw8BX7OMxnNae+i8Tm7REQen/SwUIPoPqfKn7EaZ+YLpiB3k9g==", + "version": "8.44.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.44.0.tgz", + "integrity": "sha512-nktOlVcg3ALo0mYlV+L7sWUD58KG4CMj1rb2HUVOO4aL3K/6wcD+NERqd0rrA5Vg06b42YhF6cFxeixsp9Riqg==", "dev": true, "license": "MIT", "dependencies": { "@eslint-community/eslint-utils": "^4.7.0", - "@typescript-eslint/scope-manager": "8.43.0", - "@typescript-eslint/types": "8.43.0", - "@typescript-eslint/typescript-estree": "8.43.0" + "@typescript-eslint/scope-manager": "8.44.0", + "@typescript-eslint/types": "8.44.0", + "@typescript-eslint/typescript-estree": "8.44.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -2859,13 +2859,13 @@ } }, "node_modules/@typescript-eslint/visitor-keys": { - "version": "8.43.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.43.0.tgz", - "integrity": "sha512-T+S1KqRD4sg/bHfLwrpF/K3gQLBM1n7Rp7OjjikjTEssI2YJzQpi5WXoynOaQ93ERIuq3O8RBTOUYDKszUCEHw==", + "version": "8.44.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.44.0.tgz", + "integrity": "sha512-zaz9u8EJ4GBmnehlrpoKvj/E3dNbuQ7q0ucyZImm3cLqJ8INTc970B1qEqDX/Rzq65r3TvVTN7kHWPBoyW7DWw==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.43.0", + "@typescript-eslint/types": "8.44.0", "eslint-visitor-keys": "^4.2.1" }, "engines": { @@ -7691,26 +7691,26 @@ } }, "node_modules/lint-staged/node_modules/cli-truncate": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/cli-truncate/-/cli-truncate-4.0.0.tgz", - "integrity": "sha512-nPdaFdQ0h/GEigbPClz11D0v/ZJEwxmeVZGeMo3Z5StPtUTkA9o1lD6QwoirYiSDzbcwn2XcjwmCp68W1IS4TA==", + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/cli-truncate/-/cli-truncate-5.1.0.tgz", + "integrity": "sha512-7JDGG+4Zp0CsknDCedl0DYdaeOhc46QNpXi3NLQblkZpXXgA6LncLDUUyvrjSvZeF3VRQa+KiMGomazQrC1V8g==", "dev": true, "license": "MIT", "dependencies": { - "slice-ansi": "^5.0.0", - "string-width": "^7.0.0" + "slice-ansi": "^7.1.0", + "string-width": "^8.0.0" }, "engines": { - "node": ">=18" + "node": ">=20" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/lint-staged/node_modules/commander": { - "version": "14.0.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-14.0.0.tgz", - "integrity": "sha512-2uM9rYjPvyq39NwLRqaiLtWHyDC1FvryJDa2ATTVims5YAS4PupsEQsDvP14FqhFr0P49CYDugi59xaxJlTXRA==", + "version": "14.0.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-14.0.1.tgz", + "integrity": "sha512-2JkV3gUZUVrbNA+1sjBOYLsMZ5cEEl8GTFP2a4AVz5hvasAMCQ1D2l2le/cX+pV4N6ZU17zjUahLpIXRrnWL8A==", "dev": true, "license": "MIT", "engines": { @@ -7725,26 +7725,29 @@ "license": "MIT" }, "node_modules/lint-staged/node_modules/is-fullwidth-code-point": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-4.0.0.tgz", - "integrity": "sha512-O4L094N2/dZ7xqVdrXhh9r1KODPJpFms8B5sGdJLPy664AgvXsreZUyCQQNItZRDlYug4xStLjNp/sz3HvBowQ==", + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-5.1.0.tgz", + "integrity": "sha512-5XHYaSyiqADb4RnZ1Bdad6cPp8Toise4TzEjcOYDHZkTCbKgiUl7WTUCpNWHuxmDt91wnsZBc9xinNzopv3JMQ==", "dev": true, "license": "MIT", + "dependencies": { + "get-east-asian-width": "^1.3.1" + }, "engines": { - "node": ">=12" + "node": ">=18" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/lint-staged/node_modules/listr2": { - "version": "9.0.3", - "resolved": "https://registry.npmjs.org/listr2/-/listr2-9.0.3.tgz", - "integrity": "sha512-0aeh5HHHgmq1KRdMMDHfhMWQmIT/m7nRDTlxlFqni2Sp0had9baqsjJRvDGdlvgd6NmPE0nPloOipiQJGFtTHQ==", + "version": "9.0.4", + "resolved": "https://registry.npmjs.org/listr2/-/listr2-9.0.4.tgz", + "integrity": "sha512-1wd/kpAdKRLwv7/3OKC8zZ5U8e/fajCfWMxacUvB79S5nLrYGPtUI/8chMQhn3LQjsRVErTb9i1ECAwW0ZIHnQ==", "dev": true, "license": "MIT", "dependencies": { - "cli-truncate": "^4.0.0", + "cli-truncate": "^5.0.0", "colorette": "^2.0.20", "eventemitter3": "^5.0.1", "log-update": "^6.1.0", @@ -7775,39 +7778,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/lint-staged/node_modules/log-update/node_modules/is-fullwidth-code-point": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-5.1.0.tgz", - "integrity": "sha512-5XHYaSyiqADb4RnZ1Bdad6cPp8Toise4TzEjcOYDHZkTCbKgiUl7WTUCpNWHuxmDt91wnsZBc9xinNzopv3JMQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "get-east-asian-width": "^1.3.1" - }, - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/lint-staged/node_modules/log-update/node_modules/slice-ansi": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-7.1.2.tgz", - "integrity": "sha512-iOBWFgUX7caIZiuutICxVgX1SdxwAVFFKwt1EvMYYec/NWO5meOJ6K5uQxhrYBdQJne4KxiqZc+KptFOWFSI9w==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^6.2.1", - "is-fullwidth-code-point": "^5.0.0" - }, - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/chalk/slice-ansi?sponsor=1" - } - }, "node_modules/lint-staged/node_modules/onetime": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/onetime/-/onetime-7.0.0.tgz", @@ -7855,35 +7825,34 @@ } }, "node_modules/lint-staged/node_modules/slice-ansi": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-5.0.0.tgz", - "integrity": "sha512-FC+lgizVPfie0kkhqUScwRu1O/lF6NOgJmlCgK+/LYxDCTk8sGelYaHDhFcDN+Sn3Cv+3VSa4Byeo+IMCzpMgQ==", + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-7.1.2.tgz", + "integrity": "sha512-iOBWFgUX7caIZiuutICxVgX1SdxwAVFFKwt1EvMYYec/NWO5meOJ6K5uQxhrYBdQJne4KxiqZc+KptFOWFSI9w==", "dev": true, "license": "MIT", "dependencies": { - "ansi-styles": "^6.0.0", - "is-fullwidth-code-point": "^4.0.0" + "ansi-styles": "^6.2.1", + "is-fullwidth-code-point": "^5.0.0" }, "engines": { - "node": ">=12" + "node": ">=18" }, "funding": { "url": "https://github.com/chalk/slice-ansi?sponsor=1" } }, "node_modules/lint-staged/node_modules/string-width": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-7.2.0.tgz", - "integrity": "sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ==", + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-8.1.0.tgz", + "integrity": "sha512-Kxl3KJGb/gxkaUMOjRsQ8IrXiGW75O4E3RPjFIINOVH8AMl2SQ/yWdTzWwF3FevIX9LcMAjJW+GRwAlAbTSXdg==", "dev": true, "license": "MIT", "dependencies": { - "emoji-regex": "^10.3.0", - "get-east-asian-width": "^1.0.0", + "get-east-asian-width": "^1.3.0", "strip-ansi": "^7.1.0" }, "engines": { - "node": ">=18" + "node": ">=20" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" @@ -7923,6 +7892,24 @@ "url": "https://github.com/chalk/wrap-ansi?sponsor=1" } }, + "node_modules/lint-staged/node_modules/wrap-ansi/node_modules/string-width": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-7.2.0.tgz", + "integrity": "sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "emoji-regex": "^10.3.0", + "get-east-asian-width": "^1.0.0", + "strip-ansi": "^7.1.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/listr2": { "version": "3.14.0", "resolved": "https://registry.npmjs.org/listr2/-/listr2-3.14.0.tgz", @@ -9086,9 +9073,9 @@ } }, "node_modules/prettier": { - "version": "3.5.3", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.5.3.tgz", - "integrity": "sha512-QQtaxnoDJeAkDvDKWCLiwIXkTgRhwYDEQCghU9Z6q03iyek/rxRh/2lC3HB7P8sWT2xC/y5JDctPLBIGzHKbhw==", + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.6.2.tgz", + "integrity": "sha512-I7AIg5boAr5R0FFtJ6rCfD+LFsWHp81dolrFD8S79U9tb8Az2nGrJncnMSnys+bpQJfRUzqs9hnA81OAA3hCuQ==", "dev": true, "license": "MIT", "bin": { @@ -10914,16 +10901,16 @@ } }, "node_modules/typescript-eslint": { - "version": "8.43.0", - "resolved": "https://registry.npmjs.org/typescript-eslint/-/typescript-eslint-8.43.0.tgz", - "integrity": "sha512-FyRGJKUGvcFekRRcBKFBlAhnp4Ng8rhe8tuvvkR9OiU0gfd4vyvTRQHEckO6VDlH57jbeUQem2IpqPq9kLJH+w==", + "version": "8.44.0", + "resolved": "https://registry.npmjs.org/typescript-eslint/-/typescript-eslint-8.44.0.tgz", + "integrity": "sha512-ib7mCkYuIzYonCq9XWF5XNw+fkj2zg629PSa9KNIQ47RXFF763S5BIX4wqz1+FLPogTZoiw8KmCiRPRa8bL3qw==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/eslint-plugin": "8.43.0", - "@typescript-eslint/parser": "8.43.0", - "@typescript-eslint/typescript-estree": "8.43.0", - "@typescript-eslint/utils": "8.43.0" + "@typescript-eslint/eslint-plugin": "8.44.0", + "@typescript-eslint/parser": "8.44.0", + "@typescript-eslint/typescript-estree": "8.44.0", + "@typescript-eslint/utils": "8.44.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" diff --git a/package.json b/package.json index 8ff81f9e0..f960ca079 100644 --- a/package.json +++ b/package.json @@ -2,7 +2,7 @@ "name": "oodikone", "description": "An application for analyzing university data.", "engines": { - "node": ">=22.0.0" + "node": ">=22.19.0" }, "scripts": { "cypress": "cypress", @@ -44,27 +44,27 @@ }, "homepage": "https://github.com/UniversityOfHelsinkiCS/oodikone#readme", "devDependencies": { - "@cypress/code-coverage": "^3.14.4", - "@eslint/js": "^9.28.0", + "@cypress/code-coverage": "^3.14.6", + "@eslint/js": "^9.35.0", "@istanbuljs/schema": "^0.1.3", - "cypress": "^15.0.0", - "eslint": "^9.28.0", - "eslint-config-prettier": "^10.1.5", - "eslint-import-resolver-typescript": "^4.4.3", + "cypress": "^15.2.0", + "eslint": "^9.35.0", + "eslint-config-prettier": "^10.1.8", + "eslint-import-resolver-typescript": "^4.4.4", "eslint-plugin-cypress": "^5.1.1", "eslint-plugin-import-x": "^4.16.1", - "eslint-plugin-prettier": "^5.4.1", + "eslint-plugin-prettier": "^5.5.4", "eslint-plugin-react": "^7.37.5", "eslint-plugin-react-hooks": "^5.2.0", - "globals": "^16.2.0", + "globals": "^16.4.0", "husky": "^9.1.7", - "lint-staged": "^16.1.0", + "lint-staged": "^16.1.6", "node-actionlint": "^1.2.2", "nyc": "^17.1.0", - "prettier": "3.5.3", - "stylelint": "^16.20.0", + "prettier": "3.6.2", + "stylelint": "^16.24.0", "stylelint-config-standard": "^39.0.0", - "typescript-eslint": "^8.34.0" + "typescript-eslint": "^8.44.0" }, "dependencies": { "lodash": "^4.17.21" diff --git a/services/backend/package-lock.json b/services/backend/package-lock.json index 2be1a523a..8402c476d 100644 --- a/services/backend/package-lock.json +++ b/services/backend/package-lock.json @@ -7,21 +7,21 @@ "name": "backend", "dependencies": { "@oodikone/shared": "file:../shared", - "@sentry/node": "^10.5.0", - "@sentry/profiling-node": "^10.5.0", - "axios": "^1.9.0", - "bullmq": "^5.53.2", - "compression": "^1.8.0", + "@sentry/node": "^10.11.0", + "@sentry/profiling-node": "^10.11.0", + "axios": "^1.12.2", + "bullmq": "^5.58.5", + "compression": "^1.8.1", "cors": "^2.8.5", - "cron": "^4.3.1", - "dayjs": "^1.11.13", + "cron": "^4.3.3", + "dayjs": "^1.11.18", "express": "^4.21.2", "express-async-errors": "^3.1.1", "lodash": "^4.17.21", - "lru-cache": "^11.1.0", - "morgan": "^1.10.0", + "lru-cache": "^11.2.1", + "morgan": "^1.10.1", "papaparse": "^5.5.3", - "pg": "^8.16.0", + "pg": "^8.16.3", "redis": "^4.7.1", "reflect-metadata": "^0.2.2", "sequelize": "^6.37.7", @@ -36,11 +36,11 @@ "@types/compression": "^1.8.1", "@types/cors": "^2.8.19", "@types/express": "^4.17.23", - "@types/lodash": "^4.17.17", + "@types/lodash": "^4.17.20", "@types/morgan": "^1.9.10", - "@types/node": "^22.15.31", - "@types/validator": "^13.15.1", - "tsx": "^4.19.4", + "@types/node": "^22.18.4", + "@types/validator": "^13.15.3", + "tsx": "^4.20.5", "typescript": "^5.9.2" } }, @@ -2028,9 +2028,9 @@ } }, "node_modules/@types/node": { - "version": "22.18.1", - "resolved": "https://registry.npmjs.org/@types/node/-/node-22.18.1.tgz", - "integrity": "sha512-rzSDyhn4cYznVG+PCzGe1lwuMYJrcBS1fc3JqSa2PvtABwWo+dZ1ij5OVok3tqfpEBCBoaR4d7upFJk73HRJDw==", + "version": "22.18.4", + "resolved": "https://registry.npmjs.org/@types/node/-/node-22.18.4.tgz", + "integrity": "sha512-UJdblFqXymSBhmZf96BnbisoFIr8ooiiBRMolQgg77Ea+VM37jXw76C2LQr9n8wm9+i/OvlUlW6xSvqwzwqznw==", "license": "MIT", "dependencies": { "undici-types": "~6.21.0" @@ -2247,9 +2247,9 @@ "license": "MIT" }, "node_modules/axios": { - "version": "1.12.0", - "resolved": "https://registry.npmjs.org/axios/-/axios-1.12.0.tgz", - "integrity": "sha512-oXTDccv8PcfjZmPGlWsPSwtOJCZ/b6W5jAMCNcfwJbCzDckwG0jrYJFaWH1yvivfCXjVzV/SPDEhMB3Q+DSurg==", + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.12.2.tgz", + "integrity": "sha512-vMJzPewAlRyOgxV2dU0Cuz2O8zzzx9VYtbJOaBgXFeLc4IV/Eg50n4LowmehOOR61S8ZMpc2K5Sa7g6A4jfkUw==", "license": "MIT", "dependencies": { "follow-redirects": "^1.15.6", diff --git a/services/backend/package.json b/services/backend/package.json index fdd54afb6..0ca67187e 100644 --- a/services/backend/package.json +++ b/services/backend/package.json @@ -6,21 +6,21 @@ }, "dependencies": { "@oodikone/shared": "file:../shared", - "@sentry/node": "^10.5.0", - "@sentry/profiling-node": "^10.5.0", - "axios": "^1.9.0", - "bullmq": "^5.53.2", - "compression": "^1.8.0", + "@sentry/node": "^10.11.0", + "@sentry/profiling-node": "^10.11.0", + "axios": "^1.12.2", + "bullmq": "^5.58.5", + "compression": "^1.8.1", "cors": "^2.8.5", - "cron": "^4.3.1", - "dayjs": "^1.11.13", + "cron": "^4.3.3", + "dayjs": "^1.11.18", "express": "^4.21.2", "express-async-errors": "^3.1.1", "lodash": "^4.17.21", - "lru-cache": "^11.1.0", - "morgan": "^1.10.0", + "lru-cache": "^11.2.1", + "morgan": "^1.10.1", "papaparse": "^5.5.3", - "pg": "^8.16.0", + "pg": "^8.16.3", "redis": "^4.7.1", "reflect-metadata": "^0.2.2", "sequelize": "^6.37.7", @@ -35,11 +35,11 @@ "@types/compression": "^1.8.1", "@types/cors": "^2.8.19", "@types/express": "^4.17.23", - "@types/lodash": "^4.17.17", + "@types/lodash": "^4.17.20", "@types/morgan": "^1.9.10", - "@types/node": "^22.15.31", - "@types/validator": "^13.15.1", - "tsx": "^4.19.4", + "@types/node": "^22.18.4", + "@types/validator": "^13.15.3", + "tsx": "^4.20.5", "typescript": "^5.9.2" }, "overrides": { diff --git a/services/frontend/package-lock.json b/services/frontend/package-lock.json index 76bfb52e6..9efb6a382 100644 --- a/services/frontend/package-lock.json +++ b/services/frontend/package-lock.json @@ -7,18 +7,18 @@ "name": "frontend", "dependencies": { "@emotion/react": "^11.14.0", - "@emotion/styled": "^11.14.0", - "@mui/icons-material": "^6.4.12", - "@mui/material": "^6.4.12", + "@emotion/styled": "^11.14.1", + "@mui/icons-material": "^6.5.0", + "@mui/material": "^6.5.0", "@mui/x-date-pickers": "^7.29.4", "@oodikone/shared": "file:../shared", - "@reduxjs/toolkit": "^2.8.2", - "@sentry/browser": "^10.5.0", + "@reduxjs/toolkit": "^2.9.0", + "@sentry/browser": "^10.11.0", "@tanstack/react-table": "^8.21.3", - "axios": "^1.9.0", - "dayjs": "^1.11.13", + "axios": "^1.12.2", + "dayjs": "^1.11.18", "highcharts": "^11.4.8", - "immer": "^10.1.1", + "immer": "^10.1.3", "lodash": "^4.17.21", "material-react-table": "^3.2.1", "prop-types": "^15.8.1", @@ -29,7 +29,7 @@ "react-markdown": "^9.1.0", "react-range": "^1.10.0", "react-redux": "^9.2.0", - "react-router": "^7.6.2", + "react-router": "^7.9.1", "scheduler": "^0.26.0", "semantic-ui-css": "^2.5.0", "semantic-ui-react": "^3.0.0-beta.2", @@ -38,20 +38,20 @@ "xlsx": "https://cdn.sheetjs.com/xlsx-0.20.3/xlsx-0.20.3.tgz" }, "devDependencies": { - "@types/lodash": "^4.17.17", - "@types/node": "^22.15.31", - "@types/react": "^18.3.23", + "@types/lodash": "^4.17.20", + "@types/node": "^22.18.4", + "@types/react": "^18.3.24", "@types/react-dom": "^18.3.7", "@types/react-highcharts": "^16.0.7", - "@vitejs/plugin-react-swc": "^4.0.0", + "@vitejs/plugin-react-swc": "^4.0.1", "typescript": "^5.9.2", - "vite": "^7.0.0" + "vite": "^7.1.5" } }, "../shared": { "name": "@oodikone/shared", "devDependencies": { - "typescript": "^5.8.3" + "typescript": "^5.9.2" } }, "node_modules/@babel/code-frame": { @@ -2164,9 +2164,9 @@ "license": "MIT" }, "node_modules/@types/node": { - "version": "22.18.1", - "resolved": "https://registry.npmjs.org/@types/node/-/node-22.18.1.tgz", - "integrity": "sha512-rzSDyhn4cYznVG+PCzGe1lwuMYJrcBS1fc3JqSa2PvtABwWo+dZ1ij5OVok3tqfpEBCBoaR4d7upFJk73HRJDw==", + "version": "22.18.4", + "resolved": "https://registry.npmjs.org/@types/node/-/node-22.18.4.tgz", + "integrity": "sha512-UJdblFqXymSBhmZf96BnbisoFIr8ooiiBRMolQgg77Ea+VM37jXw76C2LQr9n8wm9+i/OvlUlW6xSvqwzwqznw==", "dev": true, "license": "MIT", "dependencies": { @@ -2267,9 +2267,9 @@ "license": "MIT" }, "node_modules/axios": { - "version": "1.12.0", - "resolved": "https://registry.npmjs.org/axios/-/axios-1.12.0.tgz", - "integrity": "sha512-oXTDccv8PcfjZmPGlWsPSwtOJCZ/b6W5jAMCNcfwJbCzDckwG0jrYJFaWH1yvivfCXjVzV/SPDEhMB3Q+DSurg==", + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.12.2.tgz", + "integrity": "sha512-vMJzPewAlRyOgxV2dU0Cuz2O8zzzx9VYtbJOaBgXFeLc4IV/Eg50n4LowmehOOR61S8ZMpc2K5Sa7g6A4jfkUw==", "license": "MIT", "dependencies": { "follow-redirects": "^1.15.6", @@ -4138,9 +4138,9 @@ } }, "node_modules/react-router": { - "version": "7.8.2", - "resolved": "https://registry.npmjs.org/react-router/-/react-router-7.8.2.tgz", - "integrity": "sha512-7M2fR1JbIZ/jFWqelpvSZx+7vd7UlBTfdZqf6OSdF9g6+sfdqJDAWcak6ervbHph200ePlu+7G8LdoiC3ReyAQ==", + "version": "7.9.1", + "resolved": "https://registry.npmjs.org/react-router/-/react-router-7.9.1.tgz", + "integrity": "sha512-pfAByjcTpX55mqSDGwGnY9vDCpxqBLASg0BMNAuMmpSGESo/TaOUG6BllhAtAkCGx8Rnohik/XtaqiYUJtgW2g==", "license": "MIT", "dependencies": { "cookie": "^1.0.1", diff --git a/services/frontend/package.json b/services/frontend/package.json index d4a8b6c32..791dc6ccb 100644 --- a/services/frontend/package.json +++ b/services/frontend/package.json @@ -10,18 +10,18 @@ }, "dependencies": { "@emotion/react": "^11.14.0", - "@emotion/styled": "^11.14.0", - "@mui/icons-material": "^6.4.12", - "@mui/material": "^6.4.12", + "@emotion/styled": "^11.14.1", + "@mui/icons-material": "^6.5.0", + "@mui/material": "^6.5.0", "@mui/x-date-pickers": "^7.29.4", "@oodikone/shared": "file:../shared", - "@reduxjs/toolkit": "^2.8.2", - "@sentry/browser": "^10.5.0", + "@reduxjs/toolkit": "^2.9.0", + "@sentry/browser": "^10.11.0", "@tanstack/react-table": "^8.21.3", - "axios": "^1.9.0", - "dayjs": "^1.11.13", + "axios": "^1.12.2", + "dayjs": "^1.11.18", "highcharts": "^11.4.8", - "immer": "^10.1.1", + "immer": "^10.1.3", "lodash": "^4.17.21", "material-react-table": "^3.2.1", "prop-types": "^15.8.1", @@ -32,7 +32,7 @@ "react-markdown": "^9.1.0", "react-range": "^1.10.0", "react-redux": "^9.2.0", - "react-router": "^7.6.2", + "react-router": "^7.9.1", "scheduler": "^0.26.0", "semantic-ui-css": "^2.5.0", "semantic-ui-react": "^3.0.0-beta.2", @@ -41,14 +41,14 @@ "xlsx": "https://cdn.sheetjs.com/xlsx-0.20.3/xlsx-0.20.3.tgz" }, "devDependencies": { - "@types/lodash": "^4.17.17", - "@types/node": "^22.15.31", - "@types/react": "^18.3.23", + "@types/lodash": "^4.17.20", + "@types/node": "^22.18.4", + "@types/react": "^18.3.24", "@types/react-dom": "^18.3.7", "@types/react-highcharts": "^16.0.7", - "@vitejs/plugin-react-swc": "^4.0.0", + "@vitejs/plugin-react-swc": "^4.0.1", "typescript": "^5.9.2", - "vite": "^7.0.0" + "vite": "^7.1.5" }, "overrides": { "react-highcharts": { diff --git a/updater/sis-updater-scheduler/package-lock.json b/updater/sis-updater-scheduler/package-lock.json index 0f4225a90..ec257cdc8 100644 --- a/updater/sis-updater-scheduler/package-lock.json +++ b/updater/sis-updater-scheduler/package-lock.json @@ -6,13 +6,13 @@ "": { "name": "sis-updater-scheduler", "dependencies": { - "bullmq": "^5.53.2", - "cron": "^4.3.1", + "bullmq": "^5.58.5", + "cron": "^4.3.3", "express": "^4.21.2", "express-async-errors": "^3.1.1", "knex": "^3.1.0", "lodash": "^4.17.21", - "pg": "^8.16.0", + "pg": "^8.16.3", "redis": "^4.7.1", "winston": "^3.17.0", "winston-gelf-transporter": "^1.0.2", diff --git a/updater/sis-updater-scheduler/package.json b/updater/sis-updater-scheduler/package.json index 5bb8d4cb3..d0cb0e5d7 100644 --- a/updater/sis-updater-scheduler/package.json +++ b/updater/sis-updater-scheduler/package.json @@ -6,13 +6,13 @@ "dev": "nodemon ./src/index.js" }, "dependencies": { - "bullmq": "^5.53.2", - "cron": "^4.3.1", + "bullmq": "^5.58.5", + "cron": "^4.3.3", "express": "^4.21.2", "express-async-errors": "^3.1.1", "knex": "^3.1.0", "lodash": "^4.17.21", - "pg": "^8.16.0", + "pg": "^8.16.3", "redis": "^4.7.1", "winston": "^3.17.0", "winston-gelf-transporter": "^1.0.2", diff --git a/updater/sis-updater-worker/package-lock.json b/updater/sis-updater-worker/package-lock.json index 1e5727b31..8af6ab168 100644 --- a/updater/sis-updater-worker/package-lock.json +++ b/updater/sis-updater-worker/package-lock.json @@ -7,10 +7,10 @@ "name": "sis-updater-worker", "dependencies": { "async": "^3.2.6", - "bullmq": "^5.53.2", + "bullmq": "^5.58.5", "knex": "^3.1.0", "lodash-es": "^4.17.21", - "pg": "^8.16.0", + "pg": "^8.16.3", "redis": "^4.7.1", "redis-lock": "^1.0.0", "sequelize": "^6.37.7", diff --git a/updater/sis-updater-worker/package.json b/updater/sis-updater-worker/package.json index f6f5c1a21..c9e124e34 100644 --- a/updater/sis-updater-worker/package.json +++ b/updater/sis-updater-worker/package.json @@ -8,10 +8,10 @@ }, "dependencies": { "async": "^3.2.6", - "bullmq": "^5.53.2", + "bullmq": "^5.58.5", "knex": "^3.1.0", "lodash-es": "^4.17.21", - "pg": "^8.16.0", + "pg": "^8.16.3", "redis": "^4.7.1", "redis-lock": "^1.0.0", "sequelize": "^6.37.7",