Переглянути джерело

update react-jsx-parser (#1791)

* update react-jsx-parser

* omit optional is not needed anymore

* update dependencies

* omit=optional is not needed

* support react-jsx-parser

---------

Co-authored-by: Fred Lefévère-Laoide <Fred.Lefevere-Laoide@Taipy.io>
Fred Lefévère-Laoide 8 місяців тому
батько
коміт
825c84359d

+ 1 - 1
.github/workflows/frontend.yml

@@ -64,7 +64,7 @@ jobs:
         run: npm ci
       - name: Install dependencies
         if: steps.cache-gui-fe-build.outputs.cache-hit != 'true'
-        run: npm ci --omit=optional
+        run: npm ci
       - if: steps.cache-gui-fe-build.outputs.cache-hit != 'true'
         run: npm run build --if-present
 

+ 1 - 1
INSTALLATION.md

@@ -80,7 +80,7 @@ cd frontend/taipy-gui
 cd dom
 npm i
 cd ..
-npm i --omit=optional
+npm i
 npm run build
 #
 # Build the Taipy front-end bundle

+ 1 - 1
frontend/taipy-gui/README.md

@@ -24,7 +24,7 @@ cd dom
 npm i
 cd ..
 # Install the web app dependencies
-npm i --omit=optional
+npm i
 # Build the web app and all elements
 npm run build
 ```

+ 17 - 5
frontend/taipy-gui/jest.config.js

@@ -13,9 +13,21 @@
 
 /** @type {import('ts-jest/dist/types').JestConfigWithTsJest} */
 module.exports = {
- // testEnvironment: 'jest-environment-jsdom',
-  preset: 'ts-jest',
-  testEnvironment: 'jsdom',
-  setupFiles: ['./test-config/jest.env.js', './test-config/createObjectUrl.js', './test-config/Canvas.js', './test-config/mockFileUpload.js', './test-config/intersectionObserver.js'],
-  coverageReporters: ["json", "html", "text"],
+    // testEnvironment: 'jest-environment-jsdom',
+    // preset: "ts-jest",
+    preset: "ts-jest/presets/js-with-ts",
+    testEnvironment: "jsdom",
+    setupFiles: [
+        "./test-config/jest.env.js",
+        "./test-config/createObjectUrl.js",
+        "./test-config/Canvas.js",
+        "./test-config/mockFileUpload.js",
+        "./test-config/intersectionObserver.js",
+    ],
+    coverageReporters: ["json", "html", "text"],
+    transformIgnorePatterns: ["<rootDir>/node_modules/(?!react-jsx-parser/)"],
+    // transform: {"^.+\.[jt]sx?$": "ts-jest"},
+    // moduleNameMapper: {
+    //     "^react-jsx-parser": require.resolve("react-jsx-parser"),
+    // },
 };

+ 55 - 105
frontend/taipy-gui/package-lock.json

@@ -26,7 +26,7 @@
         "react-dom": "^18.2.0",
         "react-error-boundary": "^4.0.3",
         "react-helmet-async": "^2.0.1",
-        "react-jsx-parser": "^1.29.0",
+        "react-jsx-parser": "^2.1.0",
         "react-markdown": "^9.0.1",
         "react-plotly.js": "^2.5.1",
         "react-router-dom": "^6.0.1",
@@ -804,9 +804,9 @@
       }
     },
     "node_modules/@eslint-community/regexpp": {
-      "version": "4.11.0",
-      "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.11.0.tgz",
-      "integrity": "sha512-G/M/tIiMrTAxEWRfLfQJMmGNX28IxBg4PBz8XqQhqUHLFI6TL2htpIB1iQCj144V5ee/JaKyT9/WZ0MGZWfA7A==",
+      "version": "4.11.1",
+      "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.11.1.tgz",
+      "integrity": "sha512-m4DVN9ZqskZoLU5GlWZadwDnYo3vAEydiUayB9widCl9ffWx2IvPnp6n3on5rJmziJSw9Bv+Z3ChDVdMwXCY8Q==",
       "dev": true,
       "engines": {
         "node": "^12.0.0 || ^14.0.0 || >=16.0.0"
@@ -2467,43 +2467,44 @@
       }
     },
     "node_modules/@shikijs/core": {
-      "version": "1.17.6",
-      "resolved": "https://registry.npmjs.org/@shikijs/core/-/core-1.17.6.tgz",
-      "integrity": "sha512-9ztslig6/YmCg/XwESAXbKjAjOhaq6HVced9NY6qcbDz1X5g/S90Wco2vMjBNX/6V71ASkzri76JewSGPa7kiQ==",
+      "version": "1.17.7",
+      "resolved": "https://registry.npmjs.org/@shikijs/core/-/core-1.17.7.tgz",
+      "integrity": "sha512-ZnIDxFu/yvje3Q8owSHaEHd+bu/jdWhHAaJ17ggjXofHx5rc4bhpCSW+OjC6smUBi5s5dd023jWtZ1gzMu/yrw==",
       "dev": true,
       "dependencies": {
-        "@shikijs/engine-javascript": "1.17.6",
-        "@shikijs/engine-oniguruma": "1.17.6",
-        "@shikijs/types": "1.17.6",
+        "@shikijs/engine-javascript": "1.17.7",
+        "@shikijs/engine-oniguruma": "1.17.7",
+        "@shikijs/types": "1.17.7",
         "@shikijs/vscode-textmate": "^9.2.2",
         "@types/hast": "^3.0.4",
         "hast-util-to-html": "^9.0.2"
       }
     },
     "node_modules/@shikijs/engine-javascript": {
-      "version": "1.17.6",
-      "resolved": "https://registry.npmjs.org/@shikijs/engine-javascript/-/engine-javascript-1.17.6.tgz",
-      "integrity": "sha512-5EEZj8tVcierNxm4V0UMS2PVoflb0UJPalWWV8l9rRg+oOfnr5VivqBJbkyq5grltVPvByIXvVbY8GSM/356jQ==",
+      "version": "1.17.7",
+      "resolved": "https://registry.npmjs.org/@shikijs/engine-javascript/-/engine-javascript-1.17.7.tgz",
+      "integrity": "sha512-wwSf7lKPsm+hiYQdX+1WfOXujtnUG6fnN4rCmExxa4vo+OTmvZ9B1eKauilvol/LHUPrQgW12G3gzem7pY5ckw==",
       "dev": true,
       "dependencies": {
-        "@shikijs/types": "1.17.6",
+        "@shikijs/types": "1.17.7",
+        "@shikijs/vscode-textmate": "^9.2.2",
         "oniguruma-to-js": "0.4.3"
       }
     },
     "node_modules/@shikijs/engine-oniguruma": {
-      "version": "1.17.6",
-      "resolved": "https://registry.npmjs.org/@shikijs/engine-oniguruma/-/engine-oniguruma-1.17.6.tgz",
-      "integrity": "sha512-NLfWDMXFYe0nDHFbEoyZdz89aIIey3bTfF3zLYSUNTXks5s4uinZVmuPOFf1HfTeGqIn8uErJSBc3VnpJO7Alw==",
+      "version": "1.17.7",
+      "resolved": "https://registry.npmjs.org/@shikijs/engine-oniguruma/-/engine-oniguruma-1.17.7.tgz",
+      "integrity": "sha512-pvSYGnVeEIconU28NEzBXqSQC/GILbuNbAHwMoSfdTBrobKAsV1vq2K4cAgiaW1TJceLV9QMGGh18hi7cCzbVQ==",
       "dev": true,
       "dependencies": {
-        "@shikijs/types": "1.17.6",
+        "@shikijs/types": "1.17.7",
         "@shikijs/vscode-textmate": "^9.2.2"
       }
     },
     "node_modules/@shikijs/types": {
-      "version": "1.17.6",
-      "resolved": "https://registry.npmjs.org/@shikijs/types/-/types-1.17.6.tgz",
-      "integrity": "sha512-ndTFa2TJi2w51ddKQDn3Jy8f6K4E5Q2x3dA3Hmsd3+YmxDQ10UWHjcw7VbVbKzv3VcUvYPLy+z9neqytSzUMUg==",
+      "version": "1.17.7",
+      "resolved": "https://registry.npmjs.org/@shikijs/types/-/types-1.17.7.tgz",
+      "integrity": "sha512-+qA4UyhWLH2q4EFd+0z4K7GpERDU+c+CN2XYD3sC+zjvAr5iuwD1nToXZMt1YODshjkEGEDV86G7j66bKjqDdg==",
       "dev": true,
       "dependencies": {
         "@shikijs/vscode-textmate": "^9.2.2",
@@ -3123,11 +3124,6 @@
       "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.2.tgz",
       "integrity": "sha512-dISoDXWWQwUquiKsyZ4Ng+HX2KsPL7LyHKHQwgGFEA3IaKac4Obd+h2a/a6waisAoepJlBcx9paWqjA8/HVjCw=="
     },
-    "node_modules/@types/parse5": {
-      "version": "6.0.3",
-      "resolved": "https://registry.npmjs.org/@types/parse5/-/parse5-6.0.3.tgz",
-      "integrity": "sha512-SuT16Q1K51EAVPz1K29DJ/sXjhSQ0zjvsypYJ6tlwVsRV9jwW5Adq2ch8Dq8kDBCkYnELS7N7VNCSB5nC56t/g=="
-    },
     "node_modules/@types/pbf": {
       "version": "3.0.5",
       "resolved": "https://registry.npmjs.org/@types/pbf/-/pbf-3.0.5.tgz",
@@ -3145,9 +3141,9 @@
       "integrity": "sha512-5zvhXYtRNRluoE/jAp4GVsSduVUzNWKkOZrCDBWYtE7biZywwdC2AcEzg+cSMLFRfVgeAFqpfNabiPjxFddV1Q=="
     },
     "node_modules/@types/react": {
-      "version": "18.3.5",
-      "resolved": "https://registry.npmjs.org/@types/react/-/react-18.3.5.tgz",
-      "integrity": "sha512-WeqMfGJLGuLCqHGYRGHxnKrXcTitc6L/nBUWfWPcTarG3t9PsquqUMuVeXZeca+mglY4Vo5GZjCi0A3Or2lnxA==",
+      "version": "18.3.6",
+      "resolved": "https://registry.npmjs.org/@types/react/-/react-18.3.6.tgz",
+      "integrity": "sha512-CnGaRYNu2iZlkGXGrOYtdg5mLK8neySj0woZ4e2wF/eli2E6Sazmq5X+Nrj6OBrrFVQfJWTUFeqAzoRhWQXYvg==",
       "dependencies": {
         "@types/prop-types": "*",
         "csstype": "^3.0.2"
@@ -3157,7 +3153,7 @@
       "version": "18.3.0",
       "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.3.0.tgz",
       "integrity": "sha512-EhwApuTmMBmXuFOikhQLIBUn6uFg81SwLMOAUgodJF14SOBOCMdU04gDoYi0WOJJHD144TL32z4yDqCW3dnkQg==",
-      "dev": true,
+      "devOptional": true,
       "dependencies": {
         "@types/react": "*"
       }
@@ -3229,12 +3225,6 @@
         "@types/react-window": "*"
       }
     },
-    "node_modules/@types/scheduler": {
-      "version": "0.16.8",
-      "resolved": "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.8.tgz",
-      "integrity": "sha512-WZLiwShhwLRmeV6zH+GkbOFT6Z6VklCItrDioxUnv+u4Ll+8vKeFySoFyK/0ctcRpOmwAicELfmys1sDc/Rw+A==",
-      "optional": true
-    },
     "node_modules/@types/sprintf-js": {
       "version": "1.1.4",
       "resolved": "https://registry.npmjs.org/@types/sprintf-js/-/sprintf-js-1.1.4.tgz",
@@ -3258,7 +3248,8 @@
     "node_modules/@types/tough-cookie": {
       "version": "4.0.5",
       "resolved": "https://registry.npmjs.org/@types/tough-cookie/-/tough-cookie-4.0.5.tgz",
-      "integrity": "sha512-/Ad8+nIOV7Rl++6f1BdKxFSMgmoqEoYbHRpPcx3JEfv8VRsQe9Z4mCXeJBzxs7mbHY/XOZZuXlRNfhpVPbs6ZA=="
+      "integrity": "sha512-/Ad8+nIOV7Rl++6f1BdKxFSMgmoqEoYbHRpPcx3JEfv8VRsQe9Z4mCXeJBzxs7mbHY/XOZZuXlRNfhpVPbs6ZA==",
+      "dev": true
     },
     "node_modules/@types/unist": {
       "version": "3.0.3",
@@ -5214,16 +5205,6 @@
         "url": "https://github.com/sponsors/sindresorhus"
       }
     },
-    "node_modules/core-js": {
-      "version": "3.38.1",
-      "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.38.1.tgz",
-      "integrity": "sha512-OP35aUorbU3Zvlx7pjsFdu1rGNnD4pgw/CWoYzRY3t2EzoVT7shKHY1dlAy3f41cGIO7ZDPQimhGFTlEYkG/Hw==",
-      "hasInstallScript": true,
-      "funding": {
-        "type": "opencollective",
-        "url": "https://opencollective.com/core-js"
-      }
-    },
     "node_modules/core-util-is": {
       "version": "1.0.3",
       "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz",
@@ -8043,9 +8024,9 @@
       }
     },
     "node_modules/hast-util-to-html": {
-      "version": "9.0.2",
-      "resolved": "https://registry.npmjs.org/hast-util-to-html/-/hast-util-to-html-9.0.2.tgz",
-      "integrity": "sha512-RP5wNpj5nm1Z8cloDv4Sl4RS8jH5HYa0v93YB6Wb4poEzgMo/dAAL0KcT4974dCjcNG5pkLqTImeFHHCwwfY3g==",
+      "version": "9.0.3",
+      "resolved": "https://registry.npmjs.org/hast-util-to-html/-/hast-util-to-html-9.0.3.tgz",
+      "integrity": "sha512-M17uBDzMJ9RPCqLMO92gNNUDuBSq10a25SDBI08iCCxmorf4Yy6sYHK57n9WAbRAAaU+DuR4W6GN9K4DFZesYg==",
       "dev": true,
       "dependencies": {
         "@types/hast": "^3.0.0",
@@ -13312,9 +13293,9 @@
       }
     },
     "node_modules/postcss": {
-      "version": "8.4.45",
-      "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.45.tgz",
-      "integrity": "sha512-7KTLTdzdZZYscUc65XmjFiB73vBhBfbPztCYdUNvlaso9PrzjzcmjqBPR0lNGkcVlcO4BjiO5rK/qNz+XAen1Q==",
+      "version": "8.4.47",
+      "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.47.tgz",
+      "integrity": "sha512-56rxCq7G/XfB4EkXq9Egn5GCqugWvDFjafDOThIdMBsI15iqPqR5r15TfSr1YPYeEI19YeaXMCbY6u88Y76GLQ==",
       "funding": [
         {
           "type": "opencollective",
@@ -13331,8 +13312,8 @@
       ],
       "dependencies": {
         "nanoid": "^3.3.7",
-        "picocolors": "^1.0.1",
-        "source-map-js": "^1.2.0"
+        "picocolors": "^1.1.0",
+        "source-map-js": "^1.2.1"
       },
       "engines": {
         "node": "^10 || ^12 || >=14"
@@ -13692,54 +13673,23 @@
       "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg=="
     },
     "node_modules/react-jsx-parser": {
-      "version": "1.29.0",
-      "resolved": "https://registry.npmjs.org/react-jsx-parser/-/react-jsx-parser-1.29.0.tgz",
-      "integrity": "sha512-u0svZd0UsPffRrIK0sTbox54jhEbTmg6ED9ob5FQahp1DeOpd2Rq+KiSTIFNYkZUL+WZi4Ntia/Oj5T4lDJafQ==",
-      "hasInstallScript": true,
+      "version": "2.1.0",
+      "resolved": "https://registry.npmjs.org/react-jsx-parser/-/react-jsx-parser-2.1.0.tgz",
+      "integrity": "sha512-cGp8ceqA6j7OylsqeK2kuCGRitHpWzximsxsQyqkQO+1fwyG82Mb1l2nx9ImrfdCO6GT2kgt7C6cX9vJ46B7ow==",
       "dependencies": {
-        "@types/jsdom": "^16.2.6",
-        "acorn": "^8.0.5",
-        "acorn-jsx": "^5.3.1",
-        "browserslist": "^4.14.5",
-        "core-js": "^3.8.3"
+        "acorn": "^8.12.1",
+        "acorn-jsx": "^5.3.2"
+      },
+      "engines": {
+        "bun": "^1.1.27"
       },
       "optionalDependencies": {
-        "@types/react": "^17.0.1",
-        "@types/react-dom": "^17.0.0"
+        "@types/react": "^18.3.3",
+        "@types/react-dom": "^18.3.0"
       },
       "peerDependencies": {
-        "react": ">=17",
-        "react-dom": ">=17"
-      }
-    },
-    "node_modules/react-jsx-parser/node_modules/@types/jsdom": {
-      "version": "16.2.15",
-      "resolved": "https://registry.npmjs.org/@types/jsdom/-/jsdom-16.2.15.tgz",
-      "integrity": "sha512-nwF87yjBKuX/roqGYerZZM0Nv1pZDMAT5YhOHYeM/72Fic+VEqJh4nyoqoapzJnW3pUlfxPY5FhgsJtM+dRnQQ==",
-      "dependencies": {
-        "@types/node": "*",
-        "@types/parse5": "^6.0.3",
-        "@types/tough-cookie": "*"
-      }
-    },
-    "node_modules/react-jsx-parser/node_modules/@types/react": {
-      "version": "17.0.80",
-      "resolved": "https://registry.npmjs.org/@types/react/-/react-17.0.80.tgz",
-      "integrity": "sha512-LrgHIu2lEtIo8M7d1FcI3BdwXWoRQwMoXOZ7+dPTW0lYREjmlHl3P0U1VD0i/9tppOuv8/sam7sOjx34TxSFbA==",
-      "optional": true,
-      "dependencies": {
-        "@types/prop-types": "*",
-        "@types/scheduler": "^0.16",
-        "csstype": "^3.0.2"
-      }
-    },
-    "node_modules/react-jsx-parser/node_modules/@types/react-dom": {
-      "version": "17.0.25",
-      "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-17.0.25.tgz",
-      "integrity": "sha512-urx7A7UxkZQmThYA4So0NelOVjx3V4rNFVJwp0WZlbIK5eM4rNJDiN3R/E9ix0MBh6kAEojk/9YL+Te6D9zHNA==",
-      "optional": true,
-      "dependencies": {
-        "@types/react": "^17"
+        "react": ">=18",
+        "react-dom": ">=18"
       }
     },
     "node_modules/react-markdown": {
@@ -14536,15 +14486,15 @@
       }
     },
     "node_modules/shiki": {
-      "version": "1.17.6",
-      "resolved": "https://registry.npmjs.org/shiki/-/shiki-1.17.6.tgz",
-      "integrity": "sha512-RejGugKpDM75vh6YtF9R771acxHRDikC/01kxsUGW+Pnaz3pTY+c8aZB5CnD7p0vuFPs1HaoAIU/4E+NCfS+mQ==",
+      "version": "1.17.7",
+      "resolved": "https://registry.npmjs.org/shiki/-/shiki-1.17.7.tgz",
+      "integrity": "sha512-Zf6hNtWhFyF4XP5OOsXkBTEx9JFPiN0TQx4wSe+Vqeuczewgk2vT4IZhF4gka55uelm052BD5BaHavNqUNZd+A==",
       "dev": true,
       "dependencies": {
-        "@shikijs/core": "1.17.6",
-        "@shikijs/engine-javascript": "1.17.6",
-        "@shikijs/engine-oniguruma": "1.17.6",
-        "@shikijs/types": "1.17.6",
+        "@shikijs/core": "1.17.7",
+        "@shikijs/engine-javascript": "1.17.7",
+        "@shikijs/engine-oniguruma": "1.17.7",
+        "@shikijs/types": "1.17.7",
         "@shikijs/vscode-textmate": "^9.2.2",
         "@types/hast": "^3.0.4"
       }

+ 2 - 2
frontend/taipy-gui/package.json

@@ -21,7 +21,7 @@
     "react-dom": "^18.2.0",
     "react-error-boundary": "^4.0.3",
     "react-helmet-async": "^2.0.1",
-    "react-jsx-parser": "^1.29.0",
+    "react-jsx-parser": "^2.1.0",
     "react-markdown": "^9.0.1",
     "react-plotly.js": "^2.5.1",
     "react-router-dom": "^6.0.1",
@@ -37,7 +37,7 @@
     "react-dom": "$react-dom"
   },
   "scripts": {
-    "inst": "npm i --omit=optional",
+    "inst": "npm i",
     "start": "echo no start see python",
     "build:dev": "webpack --mode development",
     "build": "webpack --mode production",

+ 7 - 16
frontend/taipy/package-lock.json

@@ -20,8 +20,7 @@
         "fast-deep-equal": "^3.1.3",
         "formik": "^2.2.9",
         "react": "^18.2.0",
-        "react-dom": "^18.2.0",
-        "taipy-gui": "file:../../taipy/gui/webapp"
+        "react-dom": "^18.2.0"
       },
       "devDependencies": {
         "@types/react": "^18.0.15",
@@ -40,10 +39,6 @@
         "webpack-cli": "^5.0.1"
       }
     },
-    "../../taipy/gui/webapp": {
-      "name": "taipy-gui",
-      "version": "4.0.0"
-    },
     "node_modules/@babel/code-frame": {
       "version": "7.24.7",
       "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.24.7.tgz",
@@ -338,9 +333,9 @@
       }
     },
     "node_modules/@eslint-community/regexpp": {
-      "version": "4.11.0",
-      "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.11.0.tgz",
-      "integrity": "sha512-G/M/tIiMrTAxEWRfLfQJMmGNX28IxBg4PBz8XqQhqUHLFI6TL2htpIB1iQCj144V5ee/JaKyT9/WZ0MGZWfA7A==",
+      "version": "4.11.1",
+      "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.11.1.tgz",
+      "integrity": "sha512-m4DVN9ZqskZoLU5GlWZadwDnYo3vAEydiUayB9widCl9ffWx2IvPnp6n3on5rJmziJSw9Bv+Z3ChDVdMwXCY8Q==",
       "dev": true,
       "engines": {
         "node": "^12.0.0 || ^14.0.0 || >=16.0.0"
@@ -1292,9 +1287,9 @@
       "integrity": "sha512-5zvhXYtRNRluoE/jAp4GVsSduVUzNWKkOZrCDBWYtE7biZywwdC2AcEzg+cSMLFRfVgeAFqpfNabiPjxFddV1Q=="
     },
     "node_modules/@types/react": {
-      "version": "18.3.5",
-      "resolved": "https://registry.npmjs.org/@types/react/-/react-18.3.5.tgz",
-      "integrity": "sha512-WeqMfGJLGuLCqHGYRGHxnKrXcTitc6L/nBUWfWPcTarG3t9PsquqUMuVeXZeca+mglY4Vo5GZjCi0A3Or2lnxA==",
+      "version": "18.3.6",
+      "resolved": "https://registry.npmjs.org/@types/react/-/react-18.3.6.tgz",
+      "integrity": "sha512-CnGaRYNu2iZlkGXGrOYtdg5mLK8neySj0woZ4e2wF/eli2E6Sazmq5X+Nrj6OBrrFVQfJWTUFeqAzoRhWQXYvg==",
       "dependencies": {
         "@types/prop-types": "*",
         "csstype": "^3.0.2"
@@ -5363,10 +5358,6 @@
         "url": "https://github.com/sponsors/ljharb"
       }
     },
-    "node_modules/taipy-gui": {
-      "resolved": "../../taipy/gui/webapp",
-      "link": true
-    },
     "node_modules/tapable": {
       "version": "2.2.1",
       "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz",

+ 1 - 1
taipy/gui/INSTALLATION.md

@@ -67,7 +67,7 @@ npm i
 - Install the web app dependencies
 ```bash
 cd ..
-npm i --omit=optional
+npm i
 ```
 - Build the web app
 ```bash

+ 1 - 1
taipy/gui/package_desc.md

@@ -90,7 +90,7 @@ npm i
 - Install the web app dependencies
 ```bash
 cd ..
-npm i --omit=optional
+npm i
 ```
 - Build the web app
 ```bash

+ 1 - 1
taipy/gui/setup.py

@@ -52,7 +52,7 @@ def _build_webapp():
     already_exists = Path("./taipy/gui/webapp/index.html").exists()
     if not already_exists:
         os.system("cd ../../frontend/taipy-gui/dom && npm ci")
-        os.system("cd ../../frontend/taipy-gui && npm ci --omit=optional && npm run build")
+        os.system("cd ../../frontend/taipy-gui && npm ci && npm run build")
 
 class NPMInstall(build_py):
     def run(self):

+ 1 - 3
tools/frontend/bundle_build.py

@@ -24,9 +24,7 @@ def build_gui(root_path: Path):
         print(f'Found taipy-gui frontend bundle in {root_path  / "taipy" / "gui" / "webapp"}.')  # noqa: T201
     else:
         subprocess.run(["npm", "ci"], cwd=root_path / "frontend" / "taipy-gui" / "dom", check=True, shell=with_shell)
-        subprocess.run(
-            ["npm", "ci", "--omit=optional"], cwd=root_path / "frontend" / "taipy-gui", check=True, shell=with_shell
-        )
+        subprocess.run(["npm", "ci"], cwd=root_path / "frontend" / "taipy-gui", check=True, shell=with_shell)
         subprocess.run(["npm", "run", "build"], cwd=root_path / "frontend" / "taipy-gui", check=True, shell=with_shell)
 
 

+ 1 - 4
tools/packages/taipy-gui/setup.py

@@ -60,10 +60,7 @@ class NPMInstall(build_py):
                 ["npm", "ci"], cwd=root_folder / "frontend" / "taipy-gui" / "dom", check=True, shell=with_shell
             )
             subprocess.run(
-                ["npm", "ci", "--omit=optional"],
-                cwd=root_folder / "frontend" / "taipy-gui",
-                check=True,
-                shell=with_shell,
+                ["npm", "ci"], cwd=root_folder / "frontend" / "taipy-gui", check=True, shell=with_shell,
             )
             subprocess.run(
                 ["npm", "run", "build"], cwd=root_folder / "frontend" / "taipy-gui", check=True, shell=with_shell

+ 1 - 1
tools/release/setup_project.py

@@ -54,7 +54,7 @@ def _build_webapp(webapp_path: str):
     already_exists = Path(webapp_path).exists()
     if not already_exists:
         os.system("cd ../../frontend/taipy-gui/dom && npm ci")
-        os.system("cd ../../frontend/taipy-gui && npm ci --omit=optional && npm run build")
+        os.system("cd ../../frontend/taipy-gui && npm ci && npm run build")
 
 
 def get_pkg_name(path: str) -> str: