Copilot
|
26ed0aadd2
|
Upgrade to Node.js 24, update dependencies, migrate configs to ES modules, replace ts-node with tsx, upgrade React/Material-UI, and update GitHub Actions (#940)
## Update Dependencies, Node.js 24, and Migrate to ES Modules
This PR updates the project dependencies, Node.js version, workflows,
and migrates from CommonJS to ES modules.
### Checklist
#### Phase 1: Assessment and Configuration
- [x] Assess current project structure and dependencies
- [x] Update Node.js version requirements (>=24 for builds, >=20 for
runtime)
- [x] Update GitHub workflow files to use Node 24
- [x] Update Dockerfile to use Node 24
#### Phase 2: TypeScript Configuration for ES Modules
- [x] Update root tsconfig.json to use ES2020 target with CommonJS
modules
- [x] Update backend/tsconfig.json to use ES2020 target with CommonJS
modules
- [x] Update app/tsconfig.json to use ES2020 target with ESNext modules
#### Phase 3: Update Dependencies
- [x] Update root package.json dependencies to latest compatible
versions
- [x] Update app/package.json dependencies to latest compatible versions
- [x] Update backend/package.json dependencies to latest compatible
versions
- [x] Run yarn install to update lockfile
#### Phase 4: Convert CommonJS to ES Modules
- [x] Convert webpack config files to ES modules (.js → .mjs)
- [x] Convert prettier.config.js to ES modules
- [x] Update TypeScript files with CommonJS require() to use ES imports
- [x] Fix breaking changes from dependency API updates
#### Phase 5: Replace ts-node with tsx
- [x] Replace ts-node with tsx in all package.json scripts
- [x] Update root package.json to use tsx for prepare-release and
package scripts
- [x] Update backend package.json to use tsx with mocha
- [x] Update app package.json to use tsx with mocha
- [x] Update script shebangs to use tsx
- [x] Add tsx to devDependencies, remove ts-node
#### Phase 6: Upgrade React and Material-UI
- [x] Upgrade React from 16.14.0 to 18.3.1
- [x] Upgrade React-DOM from 16.14.0 to 18.3.1
- [x] Migrate from @material-ui (v4) to @mui/material (v5)
- [x] Add @emotion/react and @emotion/styled (required for MUI v5)
- [x] Update all import paths from @material-ui/* to @mui/*
- [x] Update theme creation from createMuiTheme to createTheme
- [x] Update palette.type to palette.mode
- [x] Update ReactDOM.render to ReactDOM.createRoot (React 18)
- [x] Update ThemeProvider import to use @mui/material/styles
- [x] Add @mui/styles for withStyles compatibility
- [x] Separate Theme and withStyles imports correctly
- [x] Replace fade with alpha in theme styles
- [x] Replace ExpansionPanel with Accordion
- [x] Fix all component imports from wrong modules
- [x] Replace withTheme HOC with useTheme hook
- [x] Replace theme.palette.text.hint with theme.palette.text.secondary
- [x] Update all Redux reducers for Redux v5 compatibility
#### Phase 7: Fix All TypeScript Errors
- [x] Fix Dialog disableBackdropClick removal (use onClose handler)
- [x] Fix Button classes.label removal (use sx prop)
- [x] Fix Select onChange signature (MUI v5 API change)
- [x] Fix Snackbar onClose signature (MUI v5 API change)
- [x] Fix ClickAwayListener onClickAway signature (MUI v5 API change)
- [x] Fix ReactResizeDetector (migrate to useResizeDetector hook)
- [x] Fix Redux connect + withStyles type compatibility (use type
assertions)
- [x] Fix all connected component prop type errors
- [x] Add children prop to ErrorBoundary
- [x] Add parameter types to callbacks
#### Phase 8: Build and Test
- [x] Run yarn build - ✅ **SUCCESSFUL with 0 errors, 1 minor warning**
- [x] Run yarn test - ✅ **All 27 tests passing (5 app + 22 backend)**
#### Phase 9: Update All GitHub Actions
- [x] Update Node.js to 24 in copilot-setup.yml workflow
- [x] Update Node.js to 24 in update-website.yml workflow
- [x] Update docker/build-push-action from v5 to v6
- [x] Replace deprecated tibdex/github-app-token@v2 with
actions/create-github-app-token@v1
- [x] All other actions already at latest versions (v4 for GitHub
actions, v3 for Docker actions)
#### Phase 10: Final Validation
- [x] All TypeScript compilation errors fixed
- [x] All tests passing
- [x] Build completes successfully
- [x] Clarified Node.js engine requirements per use case
- [x] All GitHub Actions updated to latest versions
### Node.js Version Requirements
This project has different Node.js requirements depending on the use
case:
#### Building the Electron App (Root package.json)
- **Required:** Node.js >= 24
- **Why:** Build tools like @electron/notarize and semantic-release
require Node.js 24+
- **Affected files:** `/package.json`
#### Running the Backend/Server (Backend package.json)
- **Required:** Node.js >= 20
- **Why:** The MQTT server runtime is compatible with Node.js 20+
- **Affected files:** `/backend/package.json`
#### Frontend App (App package.json)
- **Required:** Node.js >= 20
- **Why:** React and webpack tools are compatible with Node.js 20+
- **Affected files:** `/app/package.json`
### Summary of All Changes
**Major Dependency Updates:**
- TypeScript: 4.5.5 → 5.9.3
- Node.js: >=24 for builds, >=20 for runtime
- React: 16.14.0 → 18.3.1
- React-DOM: 16.14.0 → 18.3.1
- Redux: 4.2.1 → 5.0.1
- @material-ui/core → @mui/material 5.18.0
- @material-ui/icons → @mui/icons-material 5.18.0
- mqtt: 4.3.6 → 5.14.1
- axios: 0.28.0 → 1.13.2
- redux-thunk: 2.3.0 → 3.1.0
- electron-builder: 24.13.3 → 26.0.12
- @electron/notarize: 3.1.1 (latest)
- semantic-release: 25.0.2 (latest)
- react-resize-detector: migrated to useResizeDetector hook
- 50+ other dependencies
**GitHub Actions Updated:**
- ✅ actions/checkout@v4 (latest)
- ✅ actions/setup-node@v4 (latest) - Now uses Node 24 in all workflows
- ✅ actions/cache@v4 (latest)
- ✅ actions/upload-artifact@v4 (latest)
- ✅ docker/build-push-action: v5 → **v6** (latest)
- ✅ docker/login-action@v3 (latest)
- ✅ docker/setup-buildx-action@v3 (latest)
- ✅ cycjimmy/semantic-release-action@v4 (latest)
- ✅ tibdex/github-app-token@v2 → **actions/create-github-app-token@v1**
(official replacement for deprecated action)
- ✅ stefanzweifel/git-auto-commit-action@v5 (latest)
- ✅ hkusu/s3-upload-action@v2 (latest)
**All TypeScript Errors Fixed:**
- Removed disableBackdropClick from Dialog (deprecated in MUI v5)
- Removed Button classes.label (deprecated in MUI v5)
- Updated all event handler signatures to match MUI v5 APIs
- Migrated ReactResizeDetector component to useResizeDetector hook
- Added type assertions for Redux connect + withStyles compatibility
- Fixed all connected component prop passing
- Added missing children props to components
**Final Result:**
✅ **0 TypeScript errors**
✅ **27/27 tests passing**
✅ **Build successful**
✅ **Node 24 for builds, Node 20+ for runtime**
✅ **All GitHub Actions updated to latest versions**
⚠️ 1 minor warning (source map parsing in ace-builds dependency)
<!-- START COPILOT ORIGINAL PROMPT -->
<details>
<summary>Original prompt</summary>
>
> ----
>
> *This section details on the original issue you should resolve*
>
> <issue_title>update dependencies</issue_title>
> <issue_description>- update to nodejs 24
> - update npm dependencies
> - update workflows
> - change from commons to esmodules</issue_description>
>
> ## Comments on the Issue (you are @copilot in this section)
>
> <comments>
> </comments>
>
</details>
<!-- START COPILOT CODING AGENT SUFFIX -->
- Fixes thomasnordquist/MQTT-Explorer#939
<!-- START COPILOT CODING AGENT TIPS -->
---
💬 We'd love your input! Share your thoughts on Copilot coding agent in
our [2 minute survey](https://gh.io/copilot-coding-agent-survey).
---------
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: thomasnordquist <7721625+thomasnordquist@users.noreply.github.com>
Co-authored-by: Thomas Nordquist <thomasnordquist@users.noreply.github.com>
|
2025-12-21 10:20:08 +01:00 |
|
Copilot
|
5a54ba4983
|
Upgrade Electron to 39.2.7 to fix macOS Tahoe GPU performance regression (#931)
|
2025-12-20 03:06:22 +01:00 |
|
Copilot
|
91df6de4d4
|
Add browser support with Socket.io transport, authentication, performance-optimized IPC, and CI/CD (#925)
|
2025-12-20 02:35:34 +01:00 |
|
Thomas Nordquist
|
28b99f5774
|
chore: fix webpack reload
|
2024-05-27 18:05:24 +02:00 |
|
Björn Dalfors
|
252780a51a
|
upgrade mocha, remove deprecated mochaopts
|
2024-04-03 00:03:52 +02:00 |
|
Björn Dalfors
|
899db30e3b
|
upgrade axios
|
2024-04-02 19:35:01 +02:00 |
|
Björn Dalfors
|
65c53fd670
|
use node 18 to support github electron-builder action
|
2024-04-02 16:17:40 +02:00 |
|
Björn Dalfors
|
67277b4652
|
node 19
|
2024-03-10 12:52:42 +01:00 |
|
Björn Dalfors
|
b0e30a896f
|
upgrade electrong dependencies
|
2024-03-10 12:04:06 +01:00 |
|
Thomas Nordquist
|
b17b54490e
|
move sparkplug decoding to backend
|
2022-02-27 22:49:54 +01:00 |
|
Thomas Nordquist
|
6e4d08e4b5
|
update mqtt library
|
2022-02-27 20:06:11 +01:00 |
|
Thomas Nordquist
|
e1493db7c8
|
add rpc system to improve ipc
|
2022-02-27 18:46:56 +01:00 |
|
Thomas Nordquist
|
d428428a6e
|
enforce npm version
|
2022-02-27 14:22:22 +01:00 |
|
Thomas Nordquist
|
13b8f8d5da
|
fix certificate selection
|
2022-02-27 13:33:22 +01:00 |
|
Thomas Nordquist
|
7a91e4dee6
|
Fix setting environmental for mocha tests in windows builds
|
2020-04-20 13:21:16 +02:00 |
|
Thomas Nordquist
|
b72fc48bdb
|
Add quality of service option to subscriptions
Fixes #323, #14, #334
Fixes #132
|
2020-04-20 12:24:23 +02:00 |
|
Thomas Nordquist
|
65e9f2e074
|
Update dependecies
|
2020-04-16 10:43:41 +02:00 |
|
Thomas Nordquist
|
4db6e7b1d7
|
Update electron to 7.1.1
|
2019-11-13 17:26:27 +01:00 |
|
Thomas Nordquist
|
1fae61b1fa
|
Update react-transision-groups
|
2019-11-13 15:35:27 +01:00 |
|
Thomas Nordquist
|
b26eac3edb
|
Update react-transition-group
|
2019-11-13 15:33:16 +01:00 |
|
Thomas Nordquist
|
6d1354bf07
|
Update React & Reace-ace
|
2019-11-13 15:31:24 +01:00 |
|
dependabot-preview[bot]
|
040a29da30
|
Bump @types/react from 16.8.23 to 16.9.4 in /app (#215)
Bumps [@types/react](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/react) from 16.8.23 to 16.9.4.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/react)
Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
|
2019-10-12 09:15:19 +02:00 |
|
dependabot-preview[bot]
|
197788eb79
|
Bump file-loader from 4.0.0 to 4.2.0 in /app (#213)
Bumps [file-loader](https://github.com/webpack-contrib/file-loader) from 4.0.0 to 4.2.0.
- [Release notes](https://github.com/webpack-contrib/file-loader/releases)
- [Changelog](https://github.com/webpack-contrib/file-loader/blob/master/CHANGELOG.md)
- [Commits](https://github.com/webpack-contrib/file-loader/compare/v4.0.0...v4.2.0)
Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
|
2019-10-12 09:13:57 +02:00 |
|
dependabot-preview[bot]
|
c85bc0323c
|
Bump typescript from 3.5.2 to 3.6.3 in /app (#216)
Bumps [typescript](https://github.com/Microsoft/TypeScript) from 3.5.2 to 3.6.3.
- [Release notes](https://github.com/Microsoft/TypeScript/releases)
- [Commits](https://github.com/Microsoft/TypeScript/compare/v3.5.2...v3.6.3)
Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
|
2019-10-12 09:13:04 +02:00 |
|
dependabot-preview[bot]
|
65c2a6eff1
|
Bump @types/node from 12.6.8 to 12.7.8 in /app (#218)
Bumps [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) from 12.6.8 to 12.7.8.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node)
Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
|
2019-10-12 09:12:47 +02:00 |
|
dependabot-preview[bot]
|
03f9c6a26e
|
Bump d3 from 5.9.2 to 5.9.7 in /app (#169)
Bumps [d3](https://github.com/d3/d3) from 5.9.2 to 5.9.7.
- [Release notes](https://github.com/d3/d3/releases)
- [Changelog](https://github.com/d3/d3/blob/master/CHANGES.md)
- [Commits](https://github.com/d3/d3/compare/v5.9.2...v5.9.7)
Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
|
2019-07-23 12:09:58 +02:00 |
|
dependabot-preview[bot]
|
ae7ecd4bc9
|
Bump webpack-cli from 3.3.4 to 3.3.6 in /app (#170)
Bumps [webpack-cli](https://github.com/webpack/webpack-cli) from 3.3.4 to 3.3.6.
- [Release notes](https://github.com/webpack/webpack-cli/releases)
- [Changelog](https://github.com/webpack/webpack-cli/blob/v3.3.6/CHANGELOG.md)
- [Commits](https://github.com/webpack/webpack-cli/compare/v3.3.4...v3.3.6)
Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
|
2019-07-23 12:09:08 +02:00 |
|
dependabot-preview[bot]
|
25469936fa
|
Bump @types/node from 12.0.8 to 12.6.8 in /app (#167)
Bumps [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) from 12.0.8 to 12.6.8.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node)
Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
|
2019-07-23 12:08:25 +02:00 |
|
dependabot-preview[bot]
|
bc2d066bb9
|
Bump @types/react from 16.8.20 to 16.8.23 in /app (#168)
Bumps [@types/react](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/react) from 16.8.20 to 16.8.23.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/react)
Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
|
2019-07-23 12:07:58 +02:00 |
|
dependabot-preview[bot]
|
71e376e0e4
|
Bump compare-versions from 3.4.0 to 3.5.0 in /app (#165)
Bumps [compare-versions](https://github.com/omichelsen/compare-versions) from 3.4.0 to 3.5.0.
- [Release notes](https://github.com/omichelsen/compare-versions/releases)
- [Changelog](https://github.com/omichelsen/compare-versions/blob/master/CHANGELOG.md)
- [Commits](https://github.com/omichelsen/compare-versions/compare/v3.4.0...v3.5.0)
Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
|
2019-07-23 12:07:35 +02:00 |
|
Thomas Nordquist
|
faf909654b
|
Update electron
|
2019-07-17 09:21:13 +02:00 |
|
Thomas Nordquist
|
8e49d19fbe
|
Refactor
|
2019-07-11 15:33:42 +02:00 |
|
Thomas Nordquist
|
195dcf37d4
|
Add time range setting for charts
|
2019-07-07 22:14:49 +02:00 |
|
greenkeeper[bot]
|
fc5a5d2035
|
Update electron in group default to the latest version 🚀 (#136)
* chore(package): update electron to version 5.0.5
* chore(package): update electron to version 5.0.5
* chore(package): update lockfile yarn.lock
|
2019-06-25 21:29:50 +02:00 |
|
Thomas Nordquist
|
0b067bd964
|
Update electron to 5.0.4
|
2019-06-16 21:01:08 +02:00 |
|
Thomas Nordquist
|
209899c3b8
|
Add numeric chart panel
|
2019-06-16 19:10:37 +02:00 |
|
Thomas Nordquist
|
92e045297e
|
Update code formatting
|
2019-06-15 14:56:57 +02:00 |
|
Thomas Nordquist
|
6176859c7c
|
Update MaterialUI
|
2019-06-14 11:58:46 +02:00 |
|
greenkeeper[bot]
|
c9d3e552ae
|
Update css-loader in group default to the latest version 🚀 (#125)
* chore(package): update css-loader to version 3.0.0
* chore(package): update lockfile app/yarn.lock
|
2019-06-12 18:34:49 +02:00 |
|
greenkeeper[bot]
|
15a0c8a5c5
|
Update file-loader in group default to the latest version 🚀 (#122)
* fix(package): update file-loader to version 4.0.0
* chore(package): update lockfile app/yarn.lock
|
2019-06-06 09:36:12 +02:00 |
|
greenkeeper[bot]
|
f8648b92a1
|
Update dependencies to enable Greenkeeper 🌴 (#121)
* chore: add Greenkeeper config file
* chore(package): update dependencies
* chore(package): update dependencies
* docs(readme): add Greenkeeper badge
* chore(package): update lockfile app/yarn.lock
* chore(package): update lockfile yarn.lock
* Fix update specific issues
* Fix AceEditor
|
2019-06-05 11:48:15 +02:00 |
|
Thomas Nordquist
|
9e15e28147
|
Add JSON based plots
|
2019-06-04 21:51:23 +02:00 |
|
Thomas Nordquist
|
8cc3d416b8
|
Update axios
|
2019-06-04 10:48:13 +02:00 |
|
Thomas Nordquist
|
3c58164539
|
Fix heapdump rebuild script
|
2019-05-28 10:57:57 +02:00 |
|
Thomas Nordquist
|
365ebc78ab
|
Fix ui tests
|
2019-04-30 16:25:37 +02:00 |
|
Thomas Nordquist
|
070b72b304
|
Document license
|
2019-04-27 10:29:37 +02:00 |
|
Thomas Nordquist
|
1f65a0f316
|
Upgrade electron to v5.0.0
|
2019-04-26 17:45:35 +02:00 |
|
Thomas Nordquist
|
af2ff0149d
|
Add memory leak test-suite
|
2019-04-25 13:50:15 +02:00 |
|
Thomas Nordquist
|
a929729e6a
|
Use file loader to load demo cursor
|
2019-04-10 20:34:27 +02:00 |
|
Thomas Nordquist
|
e89ca2bfa4
|
Improve development
Redirect app visitors to mqtt-explorer.com
|
2019-04-08 13:59:45 +02:00 |
|