From 8d07271aa190d66649684392bf1b684fd0760f1a Mon Sep 17 00:00:00 2001 From: Nawaz Dhandala Date: Thu, 2 Apr 2026 23:16:06 +0100 Subject: [PATCH] chore: update package dependencies and enhance frontend script for missing installations --- App/FeatureSet/Accounts/package-lock.json | 3 +- .../AdminDashboard/package-lock.json | 3 +- App/FeatureSet/Dashboard/package-lock.json | 3 +- App/FeatureSet/StatusPage/package-lock.json | 3 +- App/scripts/frontend-run.sh | 5 ++++ Common/UI/esbuild-config.js | 30 ++++++++++++++++++- 6 files changed, 42 insertions(+), 5 deletions(-) diff --git a/App/FeatureSet/Accounts/package-lock.json b/App/FeatureSet/Accounts/package-lock.json index 4d60d55263..2d54bdcb18 100644 --- a/App/FeatureSet/Accounts/package-lock.json +++ b/App/FeatureSet/Accounts/package-lock.json @@ -52,6 +52,7 @@ "@opentelemetry/sdk-node": "^0.207.0", "@opentelemetry/sdk-trace-web": "^1.25.1", "@opentelemetry/semantic-conventions": "^1.37.0", + "@pyroscope/nodejs": "^0.4.11", "@remixicon/react": "^4.2.0", "@simplewebauthn/server": "^13.2.2", "@tippyjs/react": "^4.2.6", @@ -84,7 +85,7 @@ "formik": "^2.4.6", "history": "^5.3.0", "ioredis": "^5.3.2", - "isolated-vm": "^6.0.2", + "isolated-vm": "^6.1.2", "json2csv": "^5.0.7", "json5": "^2.2.3", "jsonwebtoken": "^9.0.0", diff --git a/App/FeatureSet/AdminDashboard/package-lock.json b/App/FeatureSet/AdminDashboard/package-lock.json index 3e902b77b1..e7d19404f6 100644 --- a/App/FeatureSet/AdminDashboard/package-lock.json +++ b/App/FeatureSet/AdminDashboard/package-lock.json @@ -51,6 +51,7 @@ "@opentelemetry/sdk-node": "^0.207.0", "@opentelemetry/sdk-trace-web": "^1.25.1", "@opentelemetry/semantic-conventions": "^1.37.0", + "@pyroscope/nodejs": "^0.4.11", "@remixicon/react": "^4.2.0", "@simplewebauthn/server": "^13.2.2", "@tippyjs/react": "^4.2.6", @@ -83,7 +84,7 @@ "formik": "^2.4.6", "history": "^5.3.0", "ioredis": "^5.3.2", - "isolated-vm": "^6.0.2", + "isolated-vm": "^6.1.2", "json2csv": "^5.0.7", "json5": "^2.2.3", "jsonwebtoken": "^9.0.0", diff --git a/App/FeatureSet/Dashboard/package-lock.json b/App/FeatureSet/Dashboard/package-lock.json index 15fe47609f..dc61570444 100644 --- a/App/FeatureSet/Dashboard/package-lock.json +++ b/App/FeatureSet/Dashboard/package-lock.json @@ -55,6 +55,7 @@ "@opentelemetry/sdk-node": "^0.207.0", "@opentelemetry/sdk-trace-web": "^1.25.1", "@opentelemetry/semantic-conventions": "^1.37.0", + "@pyroscope/nodejs": "^0.4.11", "@remixicon/react": "^4.2.0", "@simplewebauthn/server": "^13.2.2", "@tippyjs/react": "^4.2.6", @@ -87,7 +88,7 @@ "formik": "^2.4.6", "history": "^5.3.0", "ioredis": "^5.3.2", - "isolated-vm": "^6.0.2", + "isolated-vm": "^6.1.2", "json2csv": "^5.0.7", "json5": "^2.2.3", "jsonwebtoken": "^9.0.0", diff --git a/App/FeatureSet/StatusPage/package-lock.json b/App/FeatureSet/StatusPage/package-lock.json index 4b4c83817e..3e52a8bcfc 100644 --- a/App/FeatureSet/StatusPage/package-lock.json +++ b/App/FeatureSet/StatusPage/package-lock.json @@ -52,6 +52,7 @@ "@opentelemetry/sdk-node": "^0.207.0", "@opentelemetry/sdk-trace-web": "^1.25.1", "@opentelemetry/semantic-conventions": "^1.37.0", + "@pyroscope/nodejs": "^0.4.11", "@remixicon/react": "^4.2.0", "@simplewebauthn/server": "^13.2.2", "@tippyjs/react": "^4.2.6", @@ -84,7 +85,7 @@ "formik": "^2.4.6", "history": "^5.3.0", "ioredis": "^5.3.2", - "isolated-vm": "^6.0.2", + "isolated-vm": "^6.1.2", "json2csv": "^5.0.7", "json5": "^2.2.3", "jsonwebtoken": "^9.0.0", diff --git a/App/scripts/frontend-run.sh b/App/scripts/frontend-run.sh index 31b981573a..cc10611268 100755 --- a/App/scripts/frontend-run.sh +++ b/App/scripts/frontend-run.sh @@ -25,6 +25,11 @@ else exit 1 fi +if ! npm --prefix "$frontend_dir" ls --depth=0 >/dev/null 2>&1; then + echo "Installing missing dependencies for ${frontend_dir_name}..." + npm --prefix "$frontend_dir" install +fi + if [ "$#" -gt 0 ]; then npm --prefix "$frontend_dir" run "$frontend_script" -- "$@" else diff --git a/Common/UI/esbuild-config.js b/Common/UI/esbuild-config.js index 645f3f86cf..83bffff97a 100644 --- a/Common/UI/esbuild-config.js +++ b/Common/UI/esbuild-config.js @@ -180,6 +180,31 @@ function readEnvFile(pathToFile) { return env; } +function resolvePackageRoot(packageName) { + const resolutionPaths = [ + process.cwd(), + __dirname, + path.resolve(__dirname, '..'), + path.resolve(__dirname, '../..'), + ]; + + for (const resolutionPath of resolutionPaths) { + try { + const packageJsonPath = require.resolve(`${packageName}/package.json`, { + paths: [resolutionPath], + }); + + return path.dirname(packageJsonPath); + } catch (error) { + continue; + } + } + + throw new Error( + `Unable to locate ${packageName} package for esbuild alias resolution.`, + ); +} + /** * Create esbuild configuration for a service * @param {Object} options - Configuration options @@ -204,6 +229,7 @@ function createConfig(options) { const isDev = process.env.NODE_ENV !== 'production'; const isAnalyze = process.env.analyze === 'true'; + const reactRoot = resolvePackageRoot('react'); return { entryPoints: [entryPoint], @@ -223,7 +249,9 @@ function createConfig(options) { }, external: ['react-native-sqlite-storage', ...additionalExternal], alias: { - 'react': path.resolve('./node_modules/react'), + 'react': reactRoot, + 'react/jsx-runtime': path.join(reactRoot, 'jsx-runtime.js'), + 'react/jsx-dev-runtime': path.join(reactRoot, 'jsx-dev-runtime.js'), ...additionalAlias, }, plugins: [createMermaidPlugin(), createRefractorCompatibilityPlugin(), createCSSPlugin(), createFileLoaderPlugin()],