diff --git a/.github/actions/build_ui/action.yaml b/.github/actions/build_ui/action.yaml index 09ff6dfd3..652622815 100644 --- a/.github/actions/build_ui/action.yaml +++ b/.github/actions/build_ui/action.yaml @@ -43,7 +43,7 @@ runs: - name: Set up Node uses: actions/setup-node@master with: - node-version: 16 + node-version: 22 - name: Install backend dependencies shell: bash diff --git a/.github/workflows/test_tenant_ui.yml b/.github/workflows/test_tenant_ui.yml index ec9fe1e5f..44266f398 100644 --- a/.github/workflows/test_tenant_ui.yml +++ b/.github/workflows/test_tenant_ui.yml @@ -18,7 +18,7 @@ jobs: strategy: matrix: - node-version: [18.x, 20.x] + node-version: [22.x] # See supported Node.js release schedule at https://nodejs.org/en/about/releases/ steps: @@ -41,7 +41,7 @@ jobs: strategy: matrix: - node-version: [18.x, 20.x] + node-version: [22.x] # See supported Node.js release schedule at https://nodejs.org/en/about/releases/ steps: diff --git a/services/tenant-ui/Dockerfile b/services/tenant-ui/Dockerfile index f5b76f077..4233aae4e 100644 --- a/services/tenant-ui/Dockerfile +++ b/services/tenant-ui/Dockerfile @@ -1,4 +1,4 @@ -FROM node:18-alpine +FROM node:22-alpine WORKDIR /usr/src/app COPY . . # install backend libs diff --git a/services/tenant-ui/frontend/package-lock.json b/services/tenant-ui/frontend/package-lock.json index b80ae3214..57c9bd9f8 100644 --- a/services/tenant-ui/frontend/package-lock.json +++ b/services/tenant-ui/frontend/package-lock.json @@ -17,14 +17,14 @@ "date-fns": "^3.6.0", "dompurify": "^3.1.6", "json-editor-vue": "^0.15.1", - "marked": "^13.0.3", + "marked": "^14.0.0", "oidc-client-ts": "^3.0.1", "pinia": "^2.2.1", "primeflex": "^3.3.1", "primeicons": "^7.0.0", "primevue": "^3.53.0", "qrcode.vue": "^3.4.1", - "vue": "^3.4.36", + "vue": "^3.4.37", "vue-i18n": "^9.13.1", "vue-json-pretty": "^2.4.0", "vue-router": "^4.4.3", @@ -51,7 +51,7 @@ "prettier": "^3.3.3", "sass": "^1.77.8", "typescript": "^5.5.4", - "vite": "^5.3.5", + "vite": "^5.4.0", "vitest": "^2.0.5", "vue-tsc": "^2.0.29", "whatwg-fetch": "^3.6.20" @@ -2086,13 +2086,13 @@ } }, "node_modules/@vue/compiler-core": { - "version": "3.4.36", - "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.4.36.tgz", - "integrity": "sha512-qBkndgpwFKdupmOPoiS10i7oFdN7a+4UNDlezD0GlQ1kuA1pNrscg9g12HnB5E8hrWSuEftRsbJhL1HI2zpJhg==", + "version": "3.4.37", + "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.4.37.tgz", + "integrity": "sha512-ZDDT/KiLKuCRXyzWecNzC5vTcubGz4LECAtfGPENpo0nrmqJHwuWtRLxk/Sb9RAKtR9iFflFycbkjkY+W/PZUQ==", "license": "MIT", "dependencies": { "@babel/parser": "^7.24.7", - "@vue/shared": "3.4.36", + "@vue/shared": "3.4.37", "entities": "^5.0.0", "estree-walker": "^2.0.2", "source-map-js": "^1.2.0" @@ -2111,26 +2111,26 @@ } }, "node_modules/@vue/compiler-dom": { - "version": "3.4.36", - "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.4.36.tgz", - "integrity": "sha512-eEIjy4GwwZTFon/Y+WO8tRRNGqylaRlA79T1RLhUpkOzJ7EtZkkb8MurNfkqY6x6Qiu0R7ESspEF7GkPR/4yYg==", + "version": "3.4.37", + "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.4.37.tgz", + "integrity": "sha512-rIiSmL3YrntvgYV84rekAtU/xfogMUJIclUMeIKEtVBFngOL3IeZHhsH3UaFEgB5iFGpj6IW+8YuM/2Up+vVag==", "license": "MIT", "dependencies": { - "@vue/compiler-core": "3.4.36", - "@vue/shared": "3.4.36" + "@vue/compiler-core": "3.4.37", + "@vue/shared": "3.4.37" } }, "node_modules/@vue/compiler-sfc": { - "version": "3.4.36", - "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.4.36.tgz", - "integrity": "sha512-rhuHu7qztt/rNH90dXPTzhB7hLQT2OC4s4GrPVqmzVgPY4XBlfWmcWzn4bIPEWNImt0CjO7kfHAf/1UXOtx3vw==", + "version": "3.4.37", + "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.4.37.tgz", + "integrity": "sha512-vCfetdas40Wk9aK/WWf8XcVESffsbNkBQwS5t13Y/PcfqKfIwJX2gF+82th6dOpnpbptNMlMjAny80li7TaCIg==", "license": "MIT", "dependencies": { "@babel/parser": "^7.24.7", - "@vue/compiler-core": "3.4.36", - "@vue/compiler-dom": "3.4.36", - "@vue/compiler-ssr": "3.4.36", - "@vue/shared": "3.4.36", + "@vue/compiler-core": "3.4.37", + "@vue/compiler-dom": "3.4.37", + "@vue/compiler-ssr": "3.4.37", + "@vue/shared": "3.4.37", "estree-walker": "^2.0.2", "magic-string": "^0.30.10", "postcss": "^8.4.40", @@ -2138,13 +2138,13 @@ } }, "node_modules/@vue/compiler-ssr": { - "version": "3.4.36", - "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.4.36.tgz", - "integrity": "sha512-Wt1zyheF0zVvRJyhY74uxQbnkXV2Le/JPOrAxooR4rFYKC7cFr+cRqW6RU3cM/bsTy7sdZ83IDuy/gLPSfPGng==", + "version": "3.4.37", + "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.4.37.tgz", + "integrity": "sha512-TyAgYBWrHlFrt4qpdACh8e9Ms6C/AZQ6A6xLJaWrCL8GCX5DxMzxyeFAEMfU/VFr4tylHm+a2NpfJpcd7+20XA==", "license": "MIT", "dependencies": { - "@vue/compiler-dom": "3.4.36", - "@vue/shared": "3.4.36" + "@vue/compiler-dom": "3.4.37", + "@vue/shared": "3.4.37" } }, "node_modules/@vue/compiler-vue2": { @@ -2250,53 +2250,53 @@ } }, "node_modules/@vue/reactivity": { - "version": "3.4.36", - "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.4.36.tgz", - "integrity": "sha512-wN1aoCwSoqrt1yt8wO0gc13QaC+Vk1o6AoSt584YHNnz6TGDhh1NCMUYgAnvp4HEIkLdGsaC1bvu/P+wpoDEXw==", + "version": "3.4.37", + "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.4.37.tgz", + "integrity": "sha512-UmdKXGx0BZ5kkxPqQr3PK3tElz6adTey4307NzZ3whZu19i5VavYal7u2FfOmAzlcDVgE8+X0HZ2LxLb/jgbYw==", "license": "MIT", "dependencies": { - "@vue/shared": "3.4.36" + "@vue/shared": "3.4.37" } }, "node_modules/@vue/runtime-core": { - "version": "3.4.36", - "resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.4.36.tgz", - "integrity": "sha512-9+TR14LAVEerZWLOm/N/sG2DVYhrH2bKgFrbH/FVt/Q8Jdw4OtdcGMRC6Tx8VAo0DA1eqAqrZaX0fbOaOxxZ4A==", + "version": "3.4.37", + "resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.4.37.tgz", + "integrity": "sha512-MNjrVoLV/sirHZoD7QAilU1Ifs7m/KJv4/84QVbE6nyAZGQNVOa1HGxaOzp9YqCG+GpLt1hNDC4RbH+KtanV7w==", "license": "MIT", "dependencies": { - "@vue/reactivity": "3.4.36", - "@vue/shared": "3.4.36" + "@vue/reactivity": "3.4.37", + "@vue/shared": "3.4.37" } }, "node_modules/@vue/runtime-dom": { - "version": "3.4.36", - "resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.4.36.tgz", - "integrity": "sha512-2Qe2fKkLxgZBVvHrG0QMNLL4bsx7Ae88pyXebY2WnQYABpOnGYvA+axMbcF9QwM4yxnsv+aELbC0eiNVns7mGw==", + "version": "3.4.37", + "resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.4.37.tgz", + "integrity": "sha512-Mg2EwgGZqtwKrqdL/FKMF2NEaOHuH+Ks9TQn3DHKyX//hQTYOun+7Tqp1eo0P4Ds+SjltZshOSRq6VsU0baaNg==", "license": "MIT", "dependencies": { - "@vue/reactivity": "3.4.36", - "@vue/runtime-core": "3.4.36", - "@vue/shared": "3.4.36", + "@vue/reactivity": "3.4.37", + "@vue/runtime-core": "3.4.37", + "@vue/shared": "3.4.37", "csstype": "^3.1.3" } }, "node_modules/@vue/server-renderer": { - "version": "3.4.36", - "resolved": "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.4.36.tgz", - "integrity": "sha512-2XW90Rq8+Y7S1EIsAuubZVLm0gCU8HYb5mRAruFdwfC3XSOU5/YKePz29csFzsch8hXaY5UHh7ZMddmi1XTJEA==", + "version": "3.4.37", + "resolved": "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.4.37.tgz", + "integrity": "sha512-jZ5FAHDR2KBq2FsRUJW6GKDOAG9lUTX8aBEGq4Vf6B/35I9fPce66BornuwmqmKgfiSlecwuOb6oeoamYMohkg==", "license": "MIT", "dependencies": { - "@vue/compiler-ssr": "3.4.36", - "@vue/shared": "3.4.36" + "@vue/compiler-ssr": "3.4.37", + "@vue/shared": "3.4.37" }, "peerDependencies": { - "vue": "3.4.36" + "vue": "3.4.37" } }, "node_modules/@vue/shared": { - "version": "3.4.36", - "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.4.36.tgz", - "integrity": "sha512-fdPLStwl1sDfYuUftBaUVn2pIrVFDASYerZSrlBvVBfylObPA1gtcWJHy5Ox8jLEJ524zBibss488Q3SZtU1uA==", + "version": "3.4.37", + "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.4.37.tgz", + "integrity": "sha512-nIh8P2fc3DflG8+5Uw8PT/1i17ccFn0xxN/5oE9RfV5SVnd7G0XEFRwakrnNFE/jlS95fpGXDVG5zDETS26nmg==", "license": "MIT" }, "node_modules/@vue/test-utils": { @@ -4543,9 +4543,10 @@ } }, "node_modules/marked": { - "version": "13.0.3", - "resolved": "https://registry.npmjs.org/marked/-/marked-13.0.3.tgz", - "integrity": "sha512-rqRix3/TWzE9rIoFGIn8JmsVfhiuC8VIQ8IdX5TfzmeBucdY05/0UlzKaw0eVtpcN/OdVFpBk7CjKGo9iHJ/zA==", + "version": "14.0.0", + "resolved": "https://registry.npmjs.org/marked/-/marked-14.0.0.tgz", + "integrity": "sha512-uIj4+faQ+MgHgwUW1l2PsPglZLOLOT1uErt06dAPtx2kjteLAkbsd/0FiYg/MGS+i7ZKLb7w2WClxHkzOOuryQ==", + "license": "MIT", "bin": { "marked": "bin/marked.js" }, @@ -6142,13 +6143,14 @@ } }, "node_modules/vite": { - "version": "5.3.5", - "resolved": "https://registry.npmjs.org/vite/-/vite-5.3.5.tgz", - "integrity": "sha512-MdjglKR6AQXQb9JGiS7Rc2wC6uMjcm7Go/NHNO63EwiJXfuk9PgqiP/n5IDJCziMkfw9n4Ubp7lttNwz+8ZVKA==", + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/vite/-/vite-5.4.0.tgz", + "integrity": "sha512-5xokfMX0PIiwCMCMb9ZJcMyh5wbBun0zUzKib+L65vAZ8GY9ePZMXxFrHbr/Kyll2+LSCY7xtERPpxkBDKngwg==", "dev": true, + "license": "MIT", "dependencies": { "esbuild": "^0.21.3", - "postcss": "^8.4.39", + "postcss": "^8.4.40", "rollup": "^4.13.0" }, "bin": { @@ -6168,6 +6170,7 @@ "less": "*", "lightningcss": "^1.21.0", "sass": "*", + "sass-embedded": "*", "stylus": "*", "sugarss": "*", "terser": "^5.4.0" @@ -6185,6 +6188,9 @@ "sass": { "optional": true }, + "sass-embedded": { + "optional": true + }, "stylus": { "optional": true }, @@ -6291,16 +6297,16 @@ "dev": true }, "node_modules/vue": { - "version": "3.4.36", - "resolved": "https://registry.npmjs.org/vue/-/vue-3.4.36.tgz", - "integrity": "sha512-mIFvbLgjODfx3Iy1SrxOsiPpDb8Bo3EU+87ioimOZzZTOp15IEdAels70IjBOLO3ZFlLW5AhdwY4dWbXVQKYow==", + "version": "3.4.37", + "resolved": "https://registry.npmjs.org/vue/-/vue-3.4.37.tgz", + "integrity": "sha512-3vXvNfkKTBsSJ7JP+LyR7GBuwQuckbWvuwAid3xbqK9ppsKt/DUvfqgZ48fgOLEfpy1IacL5f8QhUVl77RaI7A==", "license": "MIT", "dependencies": { - "@vue/compiler-dom": "3.4.36", - "@vue/compiler-sfc": "3.4.36", - "@vue/runtime-dom": "3.4.36", - "@vue/server-renderer": "3.4.36", - "@vue/shared": "3.4.36" + "@vue/compiler-dom": "3.4.37", + "@vue/compiler-sfc": "3.4.37", + "@vue/runtime-dom": "3.4.37", + "@vue/server-renderer": "3.4.37", + "@vue/shared": "3.4.37" }, "peerDependencies": { "typescript": "*" diff --git a/services/tenant-ui/frontend/package.json b/services/tenant-ui/frontend/package.json index cbdd65c15..4f4a5fb28 100644 --- a/services/tenant-ui/frontend/package.json +++ b/services/tenant-ui/frontend/package.json @@ -25,14 +25,14 @@ "date-fns": "^3.6.0", "dompurify": "^3.1.6", "json-editor-vue": "^0.15.1", - "marked": "^13.0.3", + "marked": "^14.0.0", "oidc-client-ts": "^3.0.1", "pinia": "^2.2.1", "primeflex": "^3.3.1", "primeicons": "^7.0.0", "primevue": "^3.53.0", "qrcode.vue": "^3.4.1", - "vue": "^3.4.36", + "vue": "^3.4.37", "vue-i18n": "^9.13.1", "vue-json-pretty": "^2.4.0", "vue-router": "^4.4.3", @@ -59,7 +59,7 @@ "prettier": "^3.3.3", "sass": "^1.77.8", "typescript": "^5.5.4", - "vite": "^5.3.5", + "vite": "^5.4.0", "vitest": "^2.0.5", "vue-tsc": "^2.0.29", "whatwg-fetch": "^3.6.20" diff --git a/services/tenant-ui/package-lock.json b/services/tenant-ui/package-lock.json index 596f9ee9f..a7aed90a5 100644 --- a/services/tenant-ui/package-lock.json +++ b/services/tenant-ui/package-lock.json @@ -13,7 +13,7 @@ "config": "^3.3.12", "connect-history-api-fallback": "^2.0.0", "cors": "^2.8.5", - "eta": "^3.4.0", + "eta": "^3.4.1", "express": "^4.19.2", "express-oauth-jwt": "^2.0.2", "express-validator": "^7.1.0", @@ -26,7 +26,7 @@ "@types/cors": "^2.8.17", "@types/express": "^4.17.21", "@types/jest": "^29.5.12", - "@types/node": "^22.1.0", + "@types/node": "^22.2.0", "@types/nodemailer": "^6.4.15", "@typescript-eslint/eslint-plugin": "^7.18.0", "@typescript-eslint/parser": "^7.18.0", @@ -1775,10 +1775,11 @@ "dev": true }, "node_modules/@types/node": { - "version": "22.1.0", - "resolved": "https://registry.npmjs.org/@types/node/-/node-22.1.0.tgz", - "integrity": "sha512-AOmuRF0R2/5j1knA3c6G3HOk523Ga+l+ZXltX8SF1+5oqcXijjfTd8fY3XRZqSihEu9XhtQnKYLmkFaoxgsJHw==", + "version": "22.2.0", + "resolved": "https://registry.npmjs.org/@types/node/-/node-22.2.0.tgz", + "integrity": "sha512-bm6EG6/pCpkxDf/0gDNDdtDILMOHgaQBVOJGdwsqClnxA3xL6jtMv76rLBc006RVMWbmaf0xbmom4Z/5o2nRkQ==", "dev": true, + "license": "MIT", "dependencies": { "undici-types": "~6.13.0" } @@ -3259,9 +3260,10 @@ } }, "node_modules/eta": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/eta/-/eta-3.4.0.tgz", - "integrity": "sha512-tCsc7WXTjrTx4ZjYLplcqrI3o4mYJ+Z6YspeuGL8tbt/hHoMchwBwtKfwM09svEY86iRapY93vUqQttcNuIO5Q==", + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/eta/-/eta-3.4.1.tgz", + "integrity": "sha512-a5+UIcEuj3wYx3FoXFh05O5GAs10uTd2GTEYlaCALE2Ds03ZkKlAXzHpXA/6ZSZ6Xwka/IuDjFY+wKDmw2RNDg==", + "license": "MIT", "engines": { "node": ">=6.0.0" }, @@ -8112,9 +8114,9 @@ "dev": true }, "@types/node": { - "version": "22.1.0", - "resolved": "https://registry.npmjs.org/@types/node/-/node-22.1.0.tgz", - "integrity": "sha512-AOmuRF0R2/5j1knA3c6G3HOk523Ga+l+ZXltX8SF1+5oqcXijjfTd8fY3XRZqSihEu9XhtQnKYLmkFaoxgsJHw==", + "version": "22.2.0", + "resolved": "https://registry.npmjs.org/@types/node/-/node-22.2.0.tgz", + "integrity": "sha512-bm6EG6/pCpkxDf/0gDNDdtDILMOHgaQBVOJGdwsqClnxA3xL6jtMv76rLBc006RVMWbmaf0xbmom4Z/5o2nRkQ==", "dev": true, "requires": { "undici-types": "~6.13.0" @@ -9166,9 +9168,9 @@ "dev": true }, "eta": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/eta/-/eta-3.4.0.tgz", - "integrity": "sha512-tCsc7WXTjrTx4ZjYLplcqrI3o4mYJ+Z6YspeuGL8tbt/hHoMchwBwtKfwM09svEY86iRapY93vUqQttcNuIO5Q==" + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/eta/-/eta-3.4.1.tgz", + "integrity": "sha512-a5+UIcEuj3wYx3FoXFh05O5GAs10uTd2GTEYlaCALE2Ds03ZkKlAXzHpXA/6ZSZ6Xwka/IuDjFY+wKDmw2RNDg==" }, "etag": { "version": "1.8.1", diff --git a/services/tenant-ui/package.json b/services/tenant-ui/package.json index 4d6008bef..ff3045ab1 100644 --- a/services/tenant-ui/package.json +++ b/services/tenant-ui/package.json @@ -19,7 +19,7 @@ "config": "^3.3.12", "connect-history-api-fallback": "^2.0.0", "cors": "^2.8.5", - "eta": "^3.4.0", + "eta": "^3.4.1", "express": "^4.19.2", "express-oauth-jwt": "^2.0.2", "express-validator": "^7.1.0", @@ -32,7 +32,7 @@ "@types/cors": "^2.8.17", "@types/express": "^4.17.21", "@types/jest": "^29.5.12", - "@types/node": "^22.1.0", + "@types/node": "^22.2.0", "@types/nodemailer": "^6.4.15", "@typescript-eslint/eslint-plugin": "^7.18.0", "@typescript-eslint/parser": "^7.18.0",