From a9102dbfb3c29bc7d6230ed6a427ecf2b1f81d02 Mon Sep 17 00:00:00 2001
From: pkupczyk <piotr.kupczyk@id.ethz.ch>
Date: Fri, 23 Dec 2022 17:07:18 +0100
Subject: [PATCH] SSDM-13270 : Admin UI - update libraries

---
 openbis_ng_ui/package.json                    | 105 +++++++++---------
 .../components/common/grid/GridController.js  |   4 +-
 openbis_ng_ui/webpack.config.dev.js           |  28 +++--
 3 files changed, 71 insertions(+), 66 deletions(-)

diff --git a/openbis_ng_ui/package.json b/openbis_ng_ui/package.json
index 1ab341c0622..cafee64291b 100644
--- a/openbis_ng_ui/package.json
+++ b/openbis_ng_ui/package.json
@@ -5,67 +5,68 @@
   "author": "Antti Luomi",
   "license": "Apache-2.0",
   "dependencies": {
-    "@date-io/date-fns": "^1.3.13",
-    "@material-ui/core": "^4.11.0",
-    "@material-ui/icons": "^4.9.1",
-    "@material-ui/lab": "^4.0.0-alpha.56",
+    "@date-io/date-fns": "^2.16.0",
+    "@material-ui/core": "^4.12.4",
+    "@material-ui/icons": "^4.11.3",
+    "@material-ui/lab": "^4.0.0-alpha.61",
     "@material-ui/pickers": "^3.3.10",
-    "csv": "^5.5.3",
-    "date-fns": "^2.22.1",
+    "buffer": "^6.0.3",
+    "csv": "^6.2.5",
+    "date-fns": "^2.29.3",
     "file-saver": "^2.0.5",
-    "history": "^4.10.1",
+    "history": "^5.3.0",
     "install": "^0.13.0",
-    "npm": "^6.14.8",
-    "path-to-regexp": "^6.1.0",
-    "prism-themes": "^1.5.0",
-    "prismjs": "^1.22.0",
-    "prop-types": "^15.7.2",
-    "re-resizable": "^6.5.4",
-    "react": "^16.13.1",
-    "react-beautiful-dnd": "^13.0.0",
-    "react-dom": "^16.13.1",
-    "react-simple-code-editor": "^0.11.0",
-    "reselect": "^4.0.0",
-    "typeface-roboto": "^0.0.75"
+    "path-to-regexp": "^6.2.1",
+    "prism-themes": "^1.9.0",
+    "prismjs": "^1.29.0",
+    "prop-types": "^15.8.1",
+    "re-resizable": "^6.9.9",
+    "react": "^16.14.0",
+    "react-beautiful-dnd": "^13.1.1",
+    "react-dom": "^16.14.0",
+    "react-simple-code-editor": "^0.13.1",
+    "reselect": "^4.1.7",
+    "stream-browserify": "^3.0.0",
+    "typeface-roboto": "^1.1.13"
   },
   "devDependencies": {
-    "@babel/core": "^7.11.1",
-    "@babel/plugin-proposal-class-properties": "^7.10.4",
-    "@babel/plugin-proposal-object-rest-spread": "^7.11.0",
-    "@babel/plugin-transform-modules-commonjs": "^7.10.4",
-    "@babel/plugin-transform-runtime": "^7.11.0",
-    "@babel/preset-env": "^7.11.0",
-    "@babel/preset-react": "^7.10.4",
-    "auto-bind": "^4.0.0",
+    "@babel/core": "^7.20.7",
+    "@babel/plugin-proposal-class-properties": "^7.18.6",
+    "@babel/plugin-proposal-object-rest-spread": "^7.20.7",
+    "@babel/plugin-transform-modules-commonjs": "^7.20.7",
+    "@babel/plugin-transform-runtime": "^7.19.6",
+    "@babel/preset-env": "^7.20.2",
+    "@babel/preset-react": "^7.18.6",
+    "auto-bind": "^5.0.1",
     "babel-eslint": "^10.1.0",
-    "babel-jest": "^26.3.0",
-    "babel-loader": "^8.1.0",
-    "babel-plugin-transform-amd-to-commonjs": "^1.4.0",
-    "css-loader": "^4.2.1",
+    "babel-jest": "^29.3.1",
+    "babel-loader": "^9.1.0",
+    "babel-plugin-transform-amd-to-commonjs": "^1.6.0",
+    "css-loader": "^6.7.3",
     "enzyme": "^3.11.0",
-    "enzyme-adapter-react-16": "^1.15.3",
-    "eslint": "^7.7.0",
-    "eslint-config-prettier": "^6.11.0",
-    "eslint-plugin-import": "^2.22.0",
-    "eslint-plugin-jest": "^23.20.0",
+    "enzyme-adapter-react-16": "^1.15.7",
+    "eslint": "^8.30.0",
+    "eslint-config-prettier": "^8.5.0",
+    "eslint-plugin-import": "^2.26.0",
+    "eslint-plugin-jest": "^27.1.7",
     "eslint-plugin-node": "^11.1.0",
-    "eslint-plugin-prettier": "^3.1.4",
-    "eslint-plugin-promise": "^4.2.1",
-    "eslint-plugin-react": "^7.20.6",
-    "file-loader": "^6.0.0",
-    "html-webpack-plugin": "^4.3.0",
-    "jest": "^26.4.0",
-    "jest-junit": "^11.1.0",
-    "prettier": "^2.0.5",
-    "raw-loader": "^4.0.1",
-    "react-hot-loader": "^4.12.21",
+    "eslint-plugin-prettier": "^4.2.1",
+    "eslint-plugin-promise": "^6.1.1",
+    "eslint-plugin-react": "^7.31.11",
+    "file-loader": "^6.2.0",
+    "html-webpack-plugin": "^5.5.0",
+    "jest": "^29.3.1",
+    "jest-junit": "^15.0.0",
+    "prettier": "^2.8.1",
+    "raw-loader": "^4.0.2",
+    "react-hot-loader": "^4.13.1",
     "react-loader": "^2.4.7",
-    "source-map-loader": "^1.0.2",
-    "style-loader": "^1.2.1",
-    "url-loader": "^4.1.0",
-    "webpack": "^4.44.1",
-    "webpack-cli": "^3.3.12",
-    "webpack-dev-server": "^3.11.0"
+    "source-map-loader": "^4.0.1",
+    "style-loader": "^3.3.1",
+    "url-loader": "^4.1.1",
+    "webpack": "^5.75.0",
+    "webpack-cli": "^5.0.1",
+    "webpack-dev-server": "^4.11.1"
   },
   "scripts": {
     "dev": "webpack-dev-server --hot --config webpack.config.dev.js",
diff --git a/openbis_ng_ui/src/js/components/common/grid/GridController.js b/openbis_ng_ui/src/js/components/common/grid/GridController.js
index da869ebb8e6..78bb8eff02b 100644
--- a/openbis_ng_ui/src/js/components/common/grid/GridController.js
+++ b/openbis_ng_ui/src/js/components/common/grid/GridController.js
@@ -1,7 +1,7 @@
 import _ from 'lodash'
 import autoBind from 'auto-bind'
 import FileSaver from 'file-saver'
-import CsvStringify from 'csv-stringify'
+import { stringify } from 'csv-stringify'
 import GridFilterOptions from '@src/js/components/common/grid/GridFilterOptions.js'
 import GridExportOptions from '@src/js/components/common/grid/GridExportOptions.js'
 import GridPagingOptions from '@src/js/components/common/grid/GridPagingOptions.js'
@@ -1186,7 +1186,7 @@ export default class GridController {
         arrayOfRowArrays.push(rowAsArray)
       })
 
-      CsvStringify(
+      stringify(
         {
           header: false,
           delimiter: '\t',
diff --git a/openbis_ng_ui/webpack.config.dev.js b/openbis_ng_ui/webpack.config.dev.js
index a532153ccc0..0d09071b4da 100644
--- a/openbis_ng_ui/webpack.config.dev.js
+++ b/openbis_ng_ui/webpack.config.dev.js
@@ -13,14 +13,7 @@ module.exports = {
   devServer: {
     host: '0.0.0.0',
     port: 8124,
-    inline: true,
-    contentBase: './src/js',
     https: false,
-    watchOptions: {
-      aggregateTimeout: 300,
-      poll: 1000
-    },
-    publicPath: '/ng-ui-path/',
     proxy: {
       '/openbis': {
         target: 'http://localhost:8888',
@@ -28,6 +21,12 @@ module.exports = {
         changeOrigin: true,
         secure: false
       }
+    },
+    devMiddleware: {
+      publicPath: '/ng-ui-path/'
+    },
+    static: {
+      directory: './src/js'
     }
   },
 
@@ -61,6 +60,10 @@ module.exports = {
       '@src': path.resolve(__dirname, 'src/'),
       '@srcTest': path.resolve(__dirname, 'srcTest/'),
       '@srcV3': path.resolve(__dirname, 'srcV3/')
+    },
+    fallback: {
+      stream: require.resolve('stream-browserify'),
+      buffer: require.resolve('buffer')
     }
   },
 
@@ -70,10 +73,11 @@ module.exports = {
       filename: './index.html',
       template: './index.html'
     }),
-    //    new Webpack.WatchIgnorePlugin(['/home/vagrant/openbis/openbis_ng_ui/react/node_modules/', '/home/vagrant/openbis/openbis_ng_ui/react/node/'])
-    new Webpack.WatchIgnorePlugin([
-      new RegExp('/node_modules/'),
-      new RegExp('/node/')
-    ])
+    new Webpack.WatchIgnorePlugin({
+      paths: [new RegExp('/node_modules/'), new RegExp('/node/')]
+    }),
+    new Webpack.ProvidePlugin({
+      Buffer: ['buffer', 'Buffer']
+    })
   ]
 }
-- 
GitLab