38773-vm/changelog.md
2026-05-11 17:27:17 +02:00

335 lines
15 KiB
Markdown

# Changelog
## [Unreleased]
## [8.3.3] - 2026-02-23
- Dependency and runtime cleanup:
- removed Vite Node polyfill plugin and legacy browserify/polyfill packages (`assert`, `crypto-browserify`, `os-browserify`, `process`, `stream-browserify`, `stream-http`, `url`, `vm-browserify`);
- removed direct `lodash` usage from app code paths and replaced it with local utility helpers in form/user formatters;
- pinned transitive `lodash` to a safe version via npm override (`^4.17.23`).
- Lockfile update:
- added `yarn.lock` for Yarn install parity while keeping npm lockfile in place.
## [8.3.2] - 2026-02-23
- Phase 1 modernization baseline fixes:
- fixed dead fallback redirect in app shell (`/app/main/visits` -> `/app/main/dashboard`);
- hardened `AuthRoute` against missing `location.state`;
- normalized login/register/forgot links to absolute auth routes;
- replaced obsolete layout test with route-guard smoke tests;
- removed conflicting project-level `babel.config.js` to align with CRA toolchain.
- Tooling baseline updates:
- added explicit `ajv@^8.18.0` dev dependency to fix webpack/schema-utils `ajv` resolution during build;
- documented working install path (`npm install --force`) in README.
- Phase 2 modernization updates:
- migrated build/dev/preview workflow to Vite + SWC (`vite.config.js`, root `index.html`);
- removed CRA/rewired build overrides (`config-overrides.js`, `public/index.html`, `react-app-rewired`, `react-scripts`);
- migrated test runner to Vitest and retained route-guard smoke coverage;
- migrated runtime env handling to Vite-compatible app env bridge (`VITE_BACKEND` + `__APP_ENV__`);
- kept build output compatibility (`build/`) and added Node memory guard for large production bundle builds;
- standardized lockfile strategy to npm (`package-lock.json`).
- Dependency refresh batch 1:
- low-risk update: `bootstrap` upgraded within major (`5.2.3` -> `5.3.8`);
- major update block A: `axios` (`0.27.2` -> `1.13.5`), `jsonwebtoken` (`8.5.1` -> `9.0.3`), `cross-env` (`7.0.3` -> `10.1.0`);
- adjusted SCSS override to keep build compatibility with Bootstrap 5.3 variable changes.
- Dependency refresh batch 2:
- updated `react-slick` (`0.30.3` -> `0.31.0`), `showdown` (`1.9.1` -> `2.1.0`), and `uuid` (`8.3.2` -> `13.0.0`);
- fixed `redux-thunk` import usage for v3 named export (`ReduxThunk` -> `thunk`) to restore production build compatibility.
- Dependency refresh batch 3:
- updated form/data libs: `formik` (`1.5.8` -> `2.4.9`), `yup` (`0.32.11` -> `1.7.1`), `react-toastify` (`6.2.0` -> `11.0.5`), `react-select` (`3.2.0` -> `5.10.2`), `filesize` (`6.4.0` -> `11.0.13`);
- updated utility libs: `formsy-react` (`0.19.5` -> `2.3.2`) and `styled-components` (`5.3.11` -> `6.3.11`).
- Dependency refresh batch 4:
- updated UI/demo libs: `react-dropzone` (`11.7.1` -> `15.0.0`), `react-autosize-textarea` (`5.0.1` -> `7.1.0`), `react-syntax-highlighter` (`13.5.3` -> `16.1.0`), `react-animate-height` (`2.1.2` -> `3.2.3`), `rc-slider` (`9.7.5` -> `11.1.9`), `react-bootstrap-table-next` (`3.3.5` -> `4.0.3`), `react-bootstrap-table2-toolkit` (`1.4.2` -> `2.1.3`);
- migrated removed `rc-slider` tooltip helper API usage to v11-compatible slider usage in documentation/forms pages.
- Dependency refresh batch 5:
- updated chart libs: `highcharts` (`10.3.3` -> `12.5.0`), `apexcharts` (`3.54.1` -> `5.6.0`), `react-apexcharts` (`1.9.0` -> `2.0.1`);
- updated calendar stack to `@fullcalendar/*` `6.1.20` and adapted calendar config for v6 (`initialView`, list view target `listWeek`, removed deprecated plugin CSS imports).
- Dependency refresh batch 6:
- removed React-16/17-locked dependencies: `connected-react-router`, `react-bootstrap-table-next`, `react-bootstrap-table2-toolkit`, `react-bootstrap-table2-paginator`, `react-google-maps`, `react-images`, `react-maskedinput`, `react-mde`, `react-shuffle`, `react-sortable-hoc`, `react-sortable-tree`, `react-table`;
- replaced dependency-driven implementations with local/runtime-safe equivalents:
- custom navigation action boundary + shared history singleton (no `connected-react-router`);
- native/Reactstrap tables in users/management/dynamic pages (search + pagination preserved);
- iframe-based map component for maps/timeline pages;
- modal-based gallery image viewer;
- local masked input and auto-resize textarea components;
- local markdown editor (write/preview with Showdown);
- native drag-and-drop sortable list implementation for list groups demo;
- removed stale third-party CSS imports tied to deleted packages.
- Dependency refresh batch 7:
- migrated router runtime to `react-router-dom` v7 (`Routes`/`Route`/`Navigate`) across app shell, main layout, and documentation layout;
- removed deprecated router dependencies: `react-router`, `history`, `react-router-hash-link`;
- replaced route guard implementation (`AdminRoute`, `UserRoute`, `AuthRoute`) with v7-compatible wrapper components and refreshed route smoke tests;
- introduced local `withRouter` bridge (`src/components/withRouter.js`) to keep class-component routes working during phased hooks migration;
- replaced hash-link usage in docs scrollspy with `react-router-dom` `Link`.
- Dependency refresh batch 8:
- upgraded framework/tooling stack: `react`/`react-dom` (`18.3.1` -> `19.2.4`), `eslint` (`9.39.x` -> `10.0.1`);
- upgraded chart/sortable stack: `echarts` (`4.9.0` -> `6.0.0`), `echarts-for-react` (`2.0.16` -> `3.0.6`), `react-sortablejs` (`1.5.1` -> `6.1.4`);
- removed obsolete CRA-era dependencies no longer used under Vite: `react-app-polyfill`, `react-dev-utils`, `sass-loader`;
- migrated ECharts imports to modular `echarts/core` registration compatible with ECharts 6.
- Phase 5 legacy cleanup batch:
- migrated app shell entry and docs shell from `class`/`connect`/`withRouter` to hooks (`App`, `DocumentationLayout`, `DocumentationHeader`, `DocumentationSidebar`);
- completed migration away from `react-redux` `connect(...)` HOC to hooks across app-level screens/components;
- converted all header/sidebar icon components to functional React components;
- migrated ecommerce pages/components (`Products`, `Product`, `ProductCard`) to hooks and removed router HOC usage;
- migrated ecommerce management flows (`Management`, `ProductEdit`) to hooks and `useNavigate`/`useLocation` adapter for existing product thunks;
- migrated legacy auth pages (`/pages/login`, `/pages/register`) and users form page to hooks-based implementation;
- migrated users view and rickshaw-based widgets/charts (`UsersViewItem`, `ChangesChart`, `RealtimeTraffic`, dashboard `Rickshaw`) away from `connect` classes;
- replaced sidebar `LinksGroup` HOC routing dependency with native `useLocation` hook and removed obsolete local `withRouter` bridge.
- Phase 4 state modernization:
- moved auth/users side effects to reusable service layer (`src/services/authService.js`, `src/services/usersService.js`);
- migrated users auth-domain thunks to `async/await` with safer shared error-message handling;
- consolidated registration state ownership in `auth` reducer and removed duplicated legacy `register` reducer/actions;
- cleaned users state compatibility fields (`findLoading`/`loading`, list modal/delete metadata) and removed stale empty `dashboard` reducer.
- Phase 5 progress:
- removed deprecated lifecycle methods from source components (`componentWillMount`, `componentWillReceiveProps`);
- migrated users route-level pages (`UsersListPage`, `UsersViewPage`, `ChangePasswordFormPage`) from class components to hooks-based functional components;
- migrated auth route-level pages (`Login`, `Register`, `Forgot`, `Reset`, `Verify`) from class components to hooks-based functional components;
- migrated app shell components (`Layout`, `Header`, `Sidebar`) from class components to hooks-based functional components.
- Phase 6 quality hardening:
- introduced repository lint gate with ESLint flat config and `npm run lint` command;
- added GitHub Actions CI workflow (`.github/workflows/ci.yml`) for `npm ci`, `npm run lint`, `npm run build`, and `npm test`.
- Dependency cleanup and release docs:
- removed unused direct dependencies from runtime manifest: `buffer`, `https-browserify`, `jsonwebtoken`, `md5`, `rc-hammerjs`;
- removed `yarn.lock` to keep npm as the single package manager lock source;
- added migration and release docs (`docs/migration-notes.md`, `docs/adr/0001-routing-and-runtime-baseline.md`, `docs/release-checklist.md`, `docs/rollback-recovery.md`).
- Runtime/tooling compatibility:
- aligned Node engine range to `^20.19.0 || >=22.12.0` to support current Node 22 environments and Vite 7 requirements.
- React 19 is active; some legacy demo dependencies still declare React 18 peer ranges, so install currently uses npm peer override behavior (`npm install --force`) until those packages are replaced.
## [8.3.1] - 26.11.2024
- Update dependencies
## [8.3.0] - 05/09/2024
- Added react-scripts version 5 along with webpack version 5 support.
- Added support for node.js version > 20
- Removed old webpack configs.
- Removed unnecessary dev dependencies.
- Replaced deprecated glyphicons-halflings icon library with bootstrap-icons
## [8.2.3] - 21.12.2023
- Update dependencies
## [8.2.2] - 18.05.2023
- Update dependencies
- Update react version
- Corrected minor errors
## [8.2.1] - 01.07.2022
- UI Adjust
## [8.2.0] - 17.06.2022
- Updated Bootstrap/Reactstrap
- Add theme swicther
- Updated dependencies
## [8.1.6] - 13.05.2021
- Updated blocks position in Typography, Form Validations, LB Packages,
- Products Grid: Customize dropdowns in E-Commerce
- Alerts: Customize alerts notifications
- Dashboard: Fixed position pop-up alert in header
- Add function LoginOut in Login Page,
- Following dependencies and devDependencies was updated to the recent versions
###Dependencies:
"@fullcalendar/core": "5.3.0" -> "5.6.0",
"@fullcalendar/daygrid": "5.3.0" -> "5.6.0",
"@fullcalendar/interaction": "5.3.0" -> "5.6.0",
"@fullcalendar/list": "5.3.0" -> "5.6.0",
"@fullcalendar/react": "5.3.0" -> "5.6.0",
"@fullcalendar/timegrid": "5.3.0" -> "5.6.0",
"axios": "^0.19.2" -> "^0.21.1",
"bootstrap": "4.5.0" -> "4.6.0",`
"classnames": "^2.2.6" -> "^2.3.1",
"connected-react-router": "^6.8.0" -> "6.9.1",
"draft-js": "^0.11.6" -> "^0.11.7",
"echarts-for-react": "^2.0.16",
"file-saver": "^2.0.2" -> "^2.0.5",
"filesize": "^6.1.0" -> "^6.3.0",
"md5": "^2.2.1" -> "^2.3.0",
"rc-slider": "^9.5.1" -> "^9.7.2",
"react": "^16.13.1" -> "^16.14.0",
"react-animate-height": "^2.0.21" -> "^2.0.23",
"react-animated-number": "^0.4.4",
"react-apexcharts": "^1.3.7" -> "^1.3.9",
"react-app-polyfill": "^0.1.3" -> "^0.2.0",
"react-dev-utils": "^6.0.5" -> "^6.1.1",
"react-dom": "^16.5.2" -> "^16.14.0",
"react-draft-wysiwyg": "1.10.12" -> "1.14.7",
"react-dropzone": "^11.2.0" -> "^11.3.2",
"react-mde": "^11.0.0" -> "^11.5.0",
"react-redux": "7.2.0" -> "7.2.4",
"react-router-hash-link": "^2.1.0" -> "^2.4.1",
"react-scrollspy": "^3.4.2" -> "^3.4.3",
"react-select": "^3.1.0" -> "^3.2.0",
"react-slick": "^0.26.1" -> "^0.28.1",
"react-sortable-tree": "^2.7.1" -> "^2.8.0",
"react-toastify": "^6.0.8" -> "^6.2.0",
"react-transition-group": "^4.4.1",
"redux": "^4.0.5" -> "^4.1.0",
"sortablejs": "1.10.2" -> "1.13.0",
"styled-components": "^5.1.1" -> "^5.3.0",
"uuid": "^8.3.0" -> "^8.3.2",
"yup": "^0.29.1" -> "^0.32.9"
###DevDependencies:
"@babel/core": "7.4.4" -> "7.14.0",
"@babel/plugin-proposal-class-properties": "7.4.4" -> "7.13.0",
"@babel/plugin-proposal-optional-chaining": "7.2.0" -> "^7.13.12",
"@svgr/webpack": "4.2.0" ->"4.3.3",
"babel-core": "7.0.0-bridge.0",
"babel-eslint": "10.0.1" -> "10.1.0",
"babel-jest": "24.8.0" -> "24.9.0",
"babel-loader": "8.0.5" -> "8.2.2",
"babel-plugin-named-asset-import": "1.0.0-next.103" -> "1.0.0-next.154",
"babel-preset-react-app": "9.0.0" -> "9.1.2",
"bfj": "6.1.1" -> "6.1.2",
"case-sensitive-paths-webpack-plugin": "2.2.0" -> "2.4.0",
"cross-env": "^7.0.2" -> "^7.0.3",
"dotenv": "8.5.1" -> "8.5.1",
"eslint-plugin-flowtype": "3.8.1" -> "3.13.0",
"eslint-plugin-import": "2.17.2" -> "2.22.1",
"eslint-plugin-jsx-a11y": "6.2.1" -> "6.4.1",
"eslint-plugin-react": "7.13.0" -> "7.23.2",
"eslint-plugin-react-hooks": "1.6.0" -> "1.7.0",
"jest": "24.8.0" -> "24.9.0",
"jest-pnp-resolver": "1.2.1" -> "1.2.2",
"jest-resolve": "24.8.0" -> "24.9.0",
"mini-css-extract-plugin": "0.6.0" -> "0.12.0",
"node-sass": "4.14.0" -> "4.14.1",
"optimize-css-assets-webpack-plugin": "5.0.1" -> "5.0.4",
"pnp-webpack-plugin": "1.4.3" -> "1.6.4",
"postcss-flexbugs-fixes": "4.1.0" -> "4.2.1",
"postcss-preset-env": "6.6.0" -> "6.7.0",
"postcss-safe-parser": "4.0.1" -> "4.0.2",
"resolve": "1.10.1" -> "1.20.0",
"sass-loader": "7.1.0" -> "7.3.1",
"style-loader": "0.23.0" -> "0.23.1",
"terser-webpack-plugin": "1.2.3" -> "1.4.4",
"webpack": "4.31.0" -> "4.44.0",
"webpack-dev-server": "3.3.1" -> "3.11.2",
"webpack-manifest-plugin": "2.0.4" -> "2.2.0",
## [8.1.5]
- Updated documentation
## [8.1.4]
### Updated
- Updated sidebar and header icons
- Updated sidebar and header layout
## [8.1.3]
### Fixed
- Change badge text in the sidebar
- Change alert text in the usermanager/ecommerce
## [8.1.2]
### Fixed bugs and layout issues
- Add new images to Documentation and LB Package pages
- Change progress bars bg color
- Update main colors
- Badges and buttons: fix margins, change font colors
- Dropdowns: change paddings
- Header component: change dropdown hover states
- Charts: fix charts issues
- Fix adaptive and layout issues on pages
- Charts: fix label colors, apex dropdown text
## [8.1.1]
- Added link to flatlogic on login page
## [8.1.0]
- Updated all dependencies, cleaned up dependency tree
## [8.0.5]
- Updated fullcalendar package to v5.3.0
## [8.0.4]
- Add animation to alert in header
- Fix animated classes
- Fix colors in notifications, chart dropdown menu, tables
## [8.0.3]
- Updated line-awesome package
## [8.0.2]
### Fixed bug
- Fixed sidebar caret for Safari
## [8.0.1]
### New Features
- Added sample formik widget
## [8.0.0]
### New Features
- Added brand new Backend
- New tab to mange users
- Social login
- Manage users functionality
- Update password route
- Reset password route
- Upload avatar
- Refactored architecture
## [7.2.0]
### New Features
- Added re-usable breadcrumbs component
## [7.1.2]
### Fixed
- Fixed small calendar events
## [7.1.1]
### Fixed
- Added css fixes
## [7.1.0]
### New Features
- New color scheme
## [7.0.1]
### Fixed
- Fix bugs and css improvements
## [7.0.0]
### Updated
- Removed Jquery from core layout
### New Features
- New charts
## [6.1.0]
### New Features
- Make an api stub for non-backend mode