This is an automated email from the ASF dual-hosted git repository.

chanholee pushed a commit to branch branch-0.12
in repository https://gitbox.apache.org/repos/asf/zeppelin.git


The following commit(s) were added to refs/heads/branch-0.12 by this push:
     new 811bd4e6e4 [ZEPPELIN-6233] Upgraded the Node.js version of 
zeppelin-web-angular from 16 to 18
811bd4e6e4 is described below

commit 811bd4e6e4bcc24e7208ea2401d24b8fe0f1bcca
Author: YONGJAE LEE(이용재) <[email protected]>
AuthorDate: Mon Sep 29 12:13:37 2025 +0900

    [ZEPPELIN-6233] Upgraded the Node.js version of zeppelin-web-angular from 
16 to 18
    
    ### What is this PR for?
    Upgraded the Node.js version of zeppelin-web-angular from **16.20.2** to 
**18.20.8**
    
    #### 
[[zeppelin-web-angular/package.json](https://github.com/apache/zeppelin/compare/master...dididy:zeppelin:test/node18?expand=1#diff-c7de4df5c0afd29d2acd136879ab99f0fec5aeb696a4423885124e93bd1a986f)]
    OpenSSL legacy provider: Added NODE_OPTIONS='--openssl-legacy-provider' to 
maintain compatibility with libraries that rely on legacy cryptographic 
algorithms, which are no longer enabled by default in Node 18 (OpenSSL 3).
    
    I upgraded Husky from version 3 to version 9 and added `"prepare": "husky"` 
to the `package.json`. In Husky v9, the `prepare` script runs automatically 
when a user executes `npm install`, which ensures that Git hooks are installed 
without any additional manual steps. Unlike `postinstall`, which runs after 
package installation, `prepare` runs during the installation process, so the 
hooks are ready immediately after `npm install`.
    
    Husky's Git hook management has moved from `package.json` to the `.husky/` 
directory. All hook scripts that were previously defined in `package.json` have 
been migrated to individual files under `.husky/`, following the new Husky v9 
structure. This change ensures a clearer separation of configuration and hook 
scripts and aligns with the recommended setup for Husky v9.
    
    #### 
[[zeppelin-web-angular/proxy.conf.js](https://github.com/apache/zeppelin/compare/master...dididy:zeppelin:test/node18?expand=1#diff-2a24ea2db081bdc01ecadf2293530e5997cdd179f9dc47820627776fc1b5e591)]
    Updated the proxy target from `localhost` to `127.0.0.1` following the 
Node.js 18 upgrade.
    
    In Node.js 18, `localhost` may resolve to IPv6 (`::1`) first, which can 
cause connection issues with servers bound to IPv4 (`127.0.0.1`).
    Using `127.0.0.1` ensures a consistent IPv4 connection and improves 
stability.
    
    ### What type of PR is it?
    Improvement
    
    ### Todos
    
    ### What is the Jira issue?
    ZEPPELIN-6233
    ### How should this be tested?
    
    ### Screenshots (if appropriate)
    
    ### Questions:
    * Does the license files need to update? No
    * Is there breaking changes for older versions? No
    * Does this needs documentation? No
    
    Closes #5086 from dididy/test/node18.
    
    Signed-off-by: ChanHo Lee <[email protected]>
    (cherry picked from commit f4f822d05c59aa941a697cb34ccdd3b37dd1a795)
    Signed-off-by: ChanHo Lee <[email protected]>
---
 .husky/pre-commit                      |  21 +++++++
 zeppelin-web-angular/.nvmrc            |   2 +-
 zeppelin-web-angular/package-lock.json | 103 ++++++---------------------------
 zeppelin-web-angular/package.json      |  18 +++---
 zeppelin-web-angular/pom.xml           |   2 +-
 zeppelin-web-angular/proxy.conf.js     |   4 +-
 6 files changed, 51 insertions(+), 99 deletions(-)

diff --git a/.husky/pre-commit b/.husky/pre-commit
new file mode 100644
index 0000000000..c825dc39ee
--- /dev/null
+++ b/.husky/pre-commit
@@ -0,0 +1,21 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements. See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership. The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License. You may obtain a copy of the License at
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied. See the License for the
+# specific language governing permissions and limitations
+# under the License.
+#
+
+cd zeppelin-web-angular
+lint-staged
diff --git a/zeppelin-web-angular/.nvmrc b/zeppelin-web-angular/.nvmrc
index 0af7914966..4851dc7197 100644
--- a/zeppelin-web-angular/.nvmrc
+++ b/zeppelin-web-angular/.nvmrc
@@ -8,4 +8,4 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-16.20.2
+18.20.8
diff --git a/zeppelin-web-angular/package-lock.json 
b/zeppelin-web-angular/package-lock.json
index d21d1563bb..ed0a2b4a9b 100644
--- a/zeppelin-web-angular/package-lock.json
+++ b/zeppelin-web-angular/package-lock.json
@@ -52,7 +52,7 @@
         "@types/angular": "^1.8.0",
         "@types/diff-match-patch": "^1.0.36",
         "@types/highlight.js": "^9.12.3",
-        "@types/jquery": "^3.5.0",
+        "@types/jquery": "3.5.16",
         "@types/lodash": "4.14.144",
         "@types/mathjax": "^0.0.35",
         "@types/node": "~12.19.16",
@@ -61,7 +61,7 @@
         "codelyzer": "^5.0.0",
         "dotenv": "^8.0.0",
         "https-proxy-agent": "^2.2.1",
-        "husky": "^3.0.9",
+        "husky": "9.1.7",
         "lint-staged": "^8.1.6",
         "monaco-editor-webpack-plugin": "6.0.0",
         "ng-packagr": "^9.1.5",
@@ -77,7 +77,7 @@
         "typescript": "3.8.3"
       },
       "engines": {
-        "node": "<17.0.0"
+        "node": ">=18.0.0 <19.0.0"
       }
     },
     "node_modules/@angular-devkit/architect": {
@@ -2355,9 +2355,9 @@
       "license": "MIT"
     },
     "node_modules/@types/jquery": {
-      "version": "3.5.32",
-      "resolved": 
"https://registry.npmjs.org/@types/jquery/-/jquery-3.5.32.tgz";,
-      "integrity": 
"sha512-b9Xbf4CkMqS02YH8zACqN1xzdxc3cO735Qe5AbSUFmyOiaWAbcpqh9Wna+Uk0vgACvoQHpWDg2rGdHkYPLmCiQ==",
+      "version": "3.5.16",
+      "resolved": 
"https://registry.npmjs.org/@types/jquery/-/jquery-3.5.16.tgz";,
+      "integrity": 
"sha512-bsI7y4ZgeMkmpG9OM710RRzDFp+w4P1RGiIt30C1mSBT+ExCleeh4HObwgArnDFELmRrOpXgSYN9VF1hj+f1lw==",
       "dev": true,
       "dependencies": {
         "@types/sizzle": "*"
@@ -7253,14 +7253,6 @@
         "node": ">= 0.4"
       }
     },
-    "node_modules/get-stdin": {
-      "version": "7.0.0",
-      "dev": true,
-      "license": "MIT",
-      "engines": {
-        "node": ">=8"
-      }
-    },
     "node_modules/get-stream": {
       "version": "4.1.0",
       "dev": true,
@@ -7975,33 +7967,18 @@
       }
     },
     "node_modules/husky": {
-      "version": "3.1.0",
+      "version": "9.1.7",
+      "resolved": "https://registry.npmjs.org/husky/-/husky-9.1.7.tgz";,
+      "integrity": 
"sha512-5gs5ytaNjBrh5Ow3zrvdUUY+0VxIuWVL4i9irt6friV+BqdCfmV11CQTWMiBYWHbXhco+J1kHfTOUkePhCDvMA==",
       "dev": true,
-      "hasInstallScript": true,
-      "license": "MIT",
-      "dependencies": {
-        "chalk": "^2.4.2",
-        "ci-info": "^2.0.0",
-        "cosmiconfig": "^5.2.1",
-        "execa": "^1.0.0",
-        "get-stdin": "^7.0.0",
-        "opencollective-postinstall": "^2.0.2",
-        "pkg-dir": "^4.2.0",
-        "please-upgrade-node": "^3.2.0",
-        "read-pkg": "^5.2.0",
-        "run-node": "^1.0.0",
-        "slash": "^3.0.0"
-      },
       "bin": {
-        "husky-run": "run.js",
-        "husky-upgrade": "lib/upgrader/bin.js"
+        "husky": "bin.js"
       },
       "engines": {
-        "node": ">=8.6.0"
+        "node": ">=18"
       },
       "funding": {
-        "type": "opencollective",
-        "url": "https://opencollective.com/husky";
+        "url": "https://github.com/sponsors/typicode";
       }
     },
     "node_modules/iconv-lite": {
@@ -11609,14 +11586,6 @@
         "url": "https://github.com/sponsors/sindresorhus";
       }
     },
-    "node_modules/opencollective-postinstall": {
-      "version": "2.0.3",
-      "dev": true,
-      "license": "MIT",
-      "bin": {
-        "opencollective-postinstall": "index.js"
-      }
-    },
     "node_modules/opn": {
       "version": "5.5.0",
       "dev": true,
@@ -14408,17 +14377,6 @@
         "node": ">=0.12.0"
       }
     },
-    "node_modules/run-node": {
-      "version": "1.0.0",
-      "dev": true,
-      "license": "MIT",
-      "bin": {
-        "run-node": "run-node"
-      },
-      "engines": {
-        "node": ">=4"
-      }
-    },
     "node_modules/run-parallel": {
       "version": "1.2.0",
       "dev": true,
@@ -20921,9 +20879,9 @@
       "dev": true
     },
     "@types/jquery": {
-      "version": "3.5.32",
-      "resolved": 
"https://registry.npmjs.org/@types/jquery/-/jquery-3.5.32.tgz";,
-      "integrity": 
"sha512-b9Xbf4CkMqS02YH8zACqN1xzdxc3cO735Qe5AbSUFmyOiaWAbcpqh9Wna+Uk0vgACvoQHpWDg2rGdHkYPLmCiQ==",
+      "version": "3.5.16",
+      "resolved": 
"https://registry.npmjs.org/@types/jquery/-/jquery-3.5.16.tgz";,
+      "integrity": 
"sha512-bsI7y4ZgeMkmpG9OM710RRzDFp+w4P1RGiIt30C1mSBT+ExCleeh4HObwgArnDFELmRrOpXgSYN9VF1hj+f1lw==",
       "dev": true,
       "requires": {
         "@types/sizzle": "*"
@@ -24271,10 +24229,6 @@
         "es-object-atoms": "^1.0.0"
       }
     },
-    "get-stdin": {
-      "version": "7.0.0",
-      "dev": true
-    },
     "get-stream": {
       "version": "4.1.0",
       "dev": true,
@@ -24765,21 +24719,10 @@
       }
     },
     "husky": {
-      "version": "3.1.0",
-      "dev": true,
-      "requires": {
-        "chalk": "^2.4.2",
-        "ci-info": "^2.0.0",
-        "cosmiconfig": "^5.2.1",
-        "execa": "^1.0.0",
-        "get-stdin": "^7.0.0",
-        "opencollective-postinstall": "^2.0.2",
-        "pkg-dir": "^4.2.0",
-        "please-upgrade-node": "^3.2.0",
-        "read-pkg": "^5.2.0",
-        "run-node": "^1.0.0",
-        "slash": "^3.0.0"
-      }
+      "version": "9.1.7",
+      "resolved": "https://registry.npmjs.org/husky/-/husky-9.1.7.tgz";,
+      "integrity": 
"sha512-5gs5ytaNjBrh5Ow3zrvdUUY+0VxIuWVL4i9irt6friV+BqdCfmV11CQTWMiBYWHbXhco+J1kHfTOUkePhCDvMA==",
+      "dev": true
     },
     "iconv-lite": {
       "version": "0.4.24",
@@ -27138,10 +27081,6 @@
         "is-wsl": "^2.1.1"
       }
     },
-    "opencollective-postinstall": {
-      "version": "2.0.3",
-      "dev": true
-    },
     "opn": {
       "version": "5.5.0",
       "dev": true,
@@ -29099,10 +29038,6 @@
       "version": "2.4.1",
       "dev": true
     },
-    "run-node": {
-      "version": "1.0.0",
-      "dev": true
-    },
     "run-parallel": {
       "version": "1.2.0",
       "dev": true,
diff --git a/zeppelin-web-angular/package.json 
b/zeppelin-web-angular/package.json
index 79221a30cb..ebb5e9d84e 100644
--- a/zeppelin-web-angular/package.json
+++ b/zeppelin-web-angular/package.json
@@ -2,10 +2,11 @@
   "name": "zeppelin",
   "version": "0.0.0",
   "scripts": {
+    "prepare": "cd .. && husky",
     "postinstall": "npm run build:projects && npm run build:tslint-rules",
     "ng": "./node_modules/.bin/ng",
-    "start": "ng serve --proxy-config proxy.conf.js --extra-webpack-config 
webpack.partial.js",
-    "build": "ng build --prod --extra-webpack-config webpack.partial.js",
+    "start": "NODE_OPTIONS='--openssl-legacy-provider' ng serve --proxy-config 
proxy.conf.js --extra-webpack-config webpack.partial.js",
+    "build": "NODE_OPTIONS='--openssl-legacy-provider' ng build --prod 
--extra-webpack-config webpack.partial.js",
     "build:tslint-rules": "tsc -p tslint-rules/tsconfig.json",
     "build:projects": "npm run build-project:sdk && npm run build-project:vis 
&& npm run build-project:helium",
     "build-helium-vis-example": " ng build --project helium-vis-example",
@@ -24,7 +25,7 @@
     "e2e:codegen": "playwright codegen http://localhost:4200";
   },
   "engines": {
-    "node": "<17.0.0"
+    "node": ">=18.0.0 <19.0.0"
   },
   "private": true,
   "dependencies": {
@@ -52,8 +53,8 @@
     "lodash": "^4.17.21",
     "mathjax": "2.7.5",
     "monaco-editor": "0.30.1",
-    "nvd3": "1.8.6",
     "ng-zorro-antd": "^9.3.0",
+    "nvd3": "1.8.6",
     "parse5": "^5.1.1",
     "rxjs": "~6.5.3",
     "systemjs": "^5.0.0",
@@ -71,7 +72,7 @@
     "@types/angular": "^1.8.0",
     "@types/diff-match-patch": "^1.0.36",
     "@types/highlight.js": "^9.12.3",
-    "@types/jquery": "^3.5.0",
+    "@types/jquery": "3.5.16",
     "@types/lodash": "4.14.144",
     "@types/mathjax": "^0.0.35",
     "@types/node": "~12.19.16",
@@ -80,7 +81,7 @@
     "codelyzer": "^5.0.0",
     "dotenv": "^8.0.0",
     "https-proxy-agent": "^2.2.1",
-    "husky": "^3.0.9",
+    "husky": "9.1.7",
     "lint-staged": "^8.1.6",
     "monaco-editor-webpack-plugin": "6.0.0",
     "ng-packagr": "^9.1.5",
@@ -105,10 +106,5 @@
       "./node_modules/.bin/prettier --write",
       "git add"
     ]
-  },
-  "husky": {
-    "hooks": {
-      "pre-commit": "lint-staged"
-    }
   }
 }
diff --git a/zeppelin-web-angular/pom.xml b/zeppelin-web-angular/pom.xml
index 488ff17244..68c1181e21 100644
--- a/zeppelin-web-angular/pom.xml
+++ b/zeppelin-web-angular/pom.xml
@@ -39,7 +39,7 @@
     <!--plugin versions-->
     
<plugin.frontend.nodeDownloadRoot>https://nodejs.org/dist/</plugin.frontend.nodeDownloadRoot>
     
<plugin.frontend.npmDownloadRoot>https://registry.npmjs.org/npm/-/</plugin.frontend.npmDownloadRoot>
-    <node.version>v16.20.2</node.version>
+    <node.version>v18.20.8</node.version>
     <npm.version>8.19.4</npm.version>
   </properties>
 
diff --git a/zeppelin-web-angular/proxy.conf.js 
b/zeppelin-web-angular/proxy.conf.js
index a59d554df8..014f153264 100644
--- a/zeppelin-web-angular/proxy.conf.js
+++ b/zeppelin-web-angular/proxy.conf.js
@@ -17,13 +17,13 @@ dotenv.config();
 const proxyConfig = [
   {
     context: ['/'],
-    target: 'http://localhost:8080',
+    target: 'http://127.0.0.1:8080',
     secure: false,
     changeOrigin: true
   },
   {
     context: '/ws',
-    target: 'ws://localhost:8080',
+    target: 'ws://127.0.0.1:8080',
     secure: false,
     ws: true,
     changeOrigin: true

Reply via email to