mirror of
https://github.com/The-Low-Code-Foundation/OpenNoodl.git
synced 2026-01-12 07:12:54 +01:00
464 lines
14 KiB
Markdown
464 lines
14 KiB
Markdown
# Detailed Dependency Analysis by Package
|
|
|
|
This document provides a comprehensive breakdown of dependencies for each package in the OpenNoodl monorepo.
|
|
|
|
---
|
|
|
|
## Table of Contents
|
|
|
|
1. [Root Package](#1-root-package)
|
|
2. [noodl-editor](#2-noodl-editor)
|
|
3. [noodl-core-ui](#3-noodl-core-ui)
|
|
4. [noodl-viewer-react](#4-noodl-viewer-react)
|
|
5. [noodl-viewer-cloud](#5-noodl-viewer-cloud)
|
|
6. [noodl-runtime](#6-noodl-runtime)
|
|
7. [noodl-git](#7-noodl-git)
|
|
8. [noodl-platform](#8-noodl-platform)
|
|
9. [noodl-platform-electron](#9-noodl-platform-electron)
|
|
10. [noodl-platform-node](#10-noodl-platform-node)
|
|
11. [noodl-parse-dashboard](#11-noodl-parse-dashboard)
|
|
12. [noodl-types](#12-noodl-types)
|
|
13. [Cross-Package Issues](#13-cross-package-issues)
|
|
|
|
---
|
|
|
|
## 1. Root Package
|
|
|
|
**Location:** `/package.json`
|
|
|
|
### Current State
|
|
|
|
```json
|
|
{
|
|
"name": "@thelowcodefoundation/repo",
|
|
"engines": {
|
|
"npm": ">=6.0.0",
|
|
"node": ">=16.0.0"
|
|
}
|
|
}
|
|
```
|
|
|
|
### Dev Dependencies
|
|
|
|
| Package | Current | Latest | Status | Notes |
|
|
|---------|---------|--------|--------|-------|
|
|
| @ianvs/prettier-plugin-sort-imports | 3.7.2 | 4.7.0 | 🟡 Major | Breaking changes in v4 |
|
|
| @types/keyv | 3.1.4 | 3.1.4 | ✅ OK | |
|
|
| @types/node | 18.19.123 | 24.10.1 | 🔴 Major | Node 24 types, significant jump |
|
|
| @typescript-eslint/eslint-plugin | 5.62.0 | 8.48.1 | 🔴 Major | 3 major versions behind |
|
|
| @typescript-eslint/parser | 5.62.0 | 8.48.1 | 🔴 Major | Must match plugin |
|
|
| eslint | 8.57.1 | 9.39.1 | 🔴 Major | ESLint 9 is flat config only |
|
|
| eslint-plugin-react | 7.37.5 | 7.37.5 | ✅ OK | |
|
|
| fs-extra | 10.1.0 | 11.3.2 | 🟡 Major | Minor breaking changes |
|
|
| lerna | 7.4.2 | 7.4.2 | ✅ OK | |
|
|
| rimraf | 3.0.2 | 3.0.2 | 🟡 Note | v5+ is ESM-only |
|
|
| ts-node | 10.9.2 | 10.9.2 | ✅ OK | |
|
|
| typescript | 4.9.5 | 5.8.3 | 🟡 Major | TS 5.x has minor breaking |
|
|
| webpack | 5.101.3 | 5.101.3 | ✅ OK | |
|
|
| webpack-cli | 5.1.4 | 5.1.4 | ✅ OK | |
|
|
| webpack-dev-server | 4.15.2 | 4.15.2 | ✅ OK | v5 available but major |
|
|
|
|
### Action Items
|
|
- [ ] Consider ESLint 9 migration (significant effort)
|
|
- [ ] Update @typescript-eslint/* when ESLint is updated
|
|
- [ ] TypeScript 5.x upgrade evaluate
|
|
|
|
---
|
|
|
|
## 2. noodl-editor
|
|
|
|
**Location:** `/packages/noodl-editor/package.json`
|
|
|
|
### Critical Dependencies
|
|
|
|
| Package | Current | Latest | Status | Notes |
|
|
|---------|---------|--------|--------|-------|
|
|
| react | 19.0.0 | 19.2.0 | ✅ OK | Updated by previous dev |
|
|
| react-dom | 19.0.0 | 19.2.0 | ✅ OK | Updated by previous dev |
|
|
| electron | 31.3.1 | 39.2.6 | 🔴 Major | 8 major versions behind |
|
|
| monaco-editor | 0.34.1 | 0.52.2 | 🟡 Outdated | Many features added |
|
|
|
|
### Production Dependencies
|
|
|
|
| Package | Current | Latest | Status | Notes |
|
|
|---------|---------|--------|--------|-------|
|
|
| @electron/remote | 2.1.3 | 2.1.3 | ✅ OK | |
|
|
| @jaames/iro | 5.5.2 | 5.5.2 | ✅ OK | Color picker |
|
|
| @microlink/react-json-view | 1.27.0 | 1.27.0 | ✅ OK | Fork of react-json-view |
|
|
| @microsoft/fetch-event-source | 2.0.1 | 2.0.1 | ✅ OK | SSE client |
|
|
| about-window | 1.15.2 | 1.15.2 | ✅ OK | |
|
|
| algoliasearch | 5.35.0 | 5.46.0 | 🟢 Minor | |
|
|
| archiver | 5.3.2 | 7.0.1 | 🟡 Major | Breaking changes |
|
|
| async | 3.2.6 | 3.2.6 | ✅ OK | |
|
|
| classnames | 2.5.1 | 2.5.1 | ✅ OK | |
|
|
| electron-store | 8.2.0 | 11.0.2 | 🟡 Major | Breaking changes |
|
|
| electron-updater | 6.6.2 | 6.6.2 | ✅ OK | |
|
|
| express | 4.21.2 | 5.2.1 | 🔴 Major | Express 5 breaking |
|
|
| highlight.js | 11.11.1 | 11.11.1 | ✅ OK | |
|
|
| isbinaryfile | 5.0.4 | 5.0.7 | 🟢 Patch | |
|
|
| mixpanel-browser | 2.69.1 | 2.69.1 | ✅ OK | Analytics |
|
|
| react-hot-toast | 2.6.0 | 2.6.0 | ✅ OK | |
|
|
| react-instantsearch | 7.16.2 | 7.18.0 | 🟢 Minor | Renamed from hooks-web |
|
|
| react-rnd | 10.5.2 | 10.5.2 | ✅ OK | |
|
|
| remarkable | 2.0.1 | 2.0.1 | ✅ OK | Markdown |
|
|
| underscore | 1.13.7 | 1.13.7 | ✅ OK | |
|
|
| ws | 8.18.3 | 8.18.3 | ✅ OK | WebSocket |
|
|
|
|
### Dev Dependencies
|
|
|
|
| Package | Current | Latest | Status | Notes |
|
|
|---------|---------|--------|--------|-------|
|
|
| @babel/core | 7.28.3 | 7.28.5 | 🟢 Patch | |
|
|
| @babel/preset-react | 7.27.1 | 7.28.5 | 🟢 Patch | |
|
|
| @svgr/webpack | 6.5.1 | 8.1.0 | 🟡 Major | |
|
|
| @types/react | 19.0.0 | 19.2.7 | 🟢 Minor | |
|
|
| @types/react-dom | 19.0.0 | 19.2.3 | 🟢 Minor | |
|
|
| babel-loader | 8.4.1 | 10.0.0 | 🟡 Major | |
|
|
| concurrently | 7.6.0 | 9.2.1 | 🟡 Major | |
|
|
| css-loader | 6.11.0 | 7.1.2 | 🟡 Major | |
|
|
| electron-builder | 24.13.3 | 26.0.12 | 🟡 Major | |
|
|
| html-loader | 3.1.2 | 5.1.0 | 🟡 Major | |
|
|
| monaco-editor-webpack-plugin | 7.1.0 | 7.1.0 | ✅ OK | |
|
|
| sass | 1.90.0 | 1.90.0 | ✅ OK | |
|
|
| style-loader | 3.3.4 | 3.3.4 | ✅ OK | v4 available |
|
|
| ts-loader | 9.5.4 | 9.5.4 | ✅ OK | |
|
|
| typescript | 4.9.5 | 5.8.3 | 🟡 Major | |
|
|
| webpack-merge | 5.10.0 | 5.10.0 | ✅ OK | |
|
|
|
|
### Action Items
|
|
- [ ] Update @types/react and @types/react-dom
|
|
- [ ] Evaluate electron upgrade path
|
|
- [ ] Update babel packages
|
|
- [ ] Consider css-loader 7.x
|
|
|
|
---
|
|
|
|
## 3. noodl-core-ui
|
|
|
|
**Location:** `/packages/noodl-core-ui/package.json`
|
|
|
|
### Critical Issue: Broken Storybook
|
|
|
|
```json
|
|
// CURRENT (BROKEN)
|
|
"scripts": {
|
|
"start": "start-storybook -p 6006 -s public",
|
|
"build": "build-storybook -s public"
|
|
}
|
|
|
|
// REQUIRED FIX
|
|
"scripts": {
|
|
"start": "storybook dev -p 6006",
|
|
"build": "storybook build"
|
|
}
|
|
```
|
|
|
|
### Dependencies
|
|
|
|
| Package | Current | Latest | Status | Notes |
|
|
|---------|---------|--------|--------|-------|
|
|
| classnames | 2.5.1 | 2.5.1 | ✅ OK | |
|
|
|
|
### Peer Dependencies
|
|
|
|
| Package | Current | Latest | Status | Notes |
|
|
|---------|---------|--------|--------|-------|
|
|
| react | 19.0.0 | 19.2.0 | ✅ OK | |
|
|
| react-dom | 19.0.0 | 19.2.0 | ✅ OK | |
|
|
|
|
### Dev Dependencies
|
|
|
|
| Package | Current | Latest | Status | Notes |
|
|
|---------|---------|--------|--------|-------|
|
|
| @types/jest | 27.5.2 | 30.0.0 | 🔴 Major | |
|
|
| @types/node | 16.11.42 | 24.10.1 | 🔴 Major | Very outdated |
|
|
| @types/react | 19.0.0 | 19.2.7 | 🟢 Minor | |
|
|
| @types/react-dom | 19.0.0 | 19.2.3 | 🟢 Minor | |
|
|
| sass | 1.90.0 | 1.90.0 | ✅ OK | |
|
|
| storybook | 9.1.3 | 9.1.3 | ✅ OK | But scripts broken! |
|
|
| ts-loader | 9.5.4 | 9.5.4 | ✅ OK | |
|
|
| typescript | 4.9.5 | 5.8.3 | 🟡 Major | |
|
|
| web-vitals | 3.5.2 | 3.5.2 | ✅ OK | v4 available |
|
|
| webpack | 5.101.3 | 5.101.3 | ✅ OK | |
|
|
|
|
### Action Items
|
|
- [ ] **FIX STORYBOOK SCRIPTS** (Critical)
|
|
- [ ] Update @types/node
|
|
- [ ] Update @types/jest
|
|
- [ ] Align typescript version
|
|
|
|
---
|
|
|
|
## 4. noodl-viewer-react
|
|
|
|
**Location:** `/packages/noodl-viewer-react/package.json`
|
|
|
|
### Version Inconsistencies
|
|
|
|
This package has several dependencies that are different versions from other packages:
|
|
|
|
| Package | This Package | noodl-editor | Status |
|
|
|---------|-------------|--------------|--------|
|
|
| typescript | **5.1.3** | 4.9.5 | ⚠️ Inconsistent |
|
|
| css-loader | **5.0.0** | 6.11.0 | ⚠️ Inconsistent |
|
|
| style-loader | **2.0.0** | 3.3.4 | ⚠️ Inconsistent |
|
|
| webpack-dev-server | **3.11.2** | 4.15.2 | ⚠️ Inconsistent |
|
|
|
|
### Dependencies
|
|
|
|
| Package | Current | Latest | Status | Notes |
|
|
|---------|---------|--------|--------|-------|
|
|
| @better-scroll/* | 2.5.1 | 2.5.1 | ✅ OK | Scroll library |
|
|
| bezier-easing | 1.1.1 | 2.1.0 | 🟡 Major | |
|
|
| buffer | 6.0.3 | 6.0.3 | ✅ OK | |
|
|
| core-js | 3.45.1 | 3.47.0 | 🟢 Minor | |
|
|
| events | 3.3.0 | 3.3.0 | ✅ OK | |
|
|
| lodash.difference | 4.5.0 | 4.5.0 | ✅ OK | |
|
|
| lodash.isequal | 4.5.0 | 4.5.0 | ✅ OK | |
|
|
| react-draggable | 4.5.0 | 4.5.0 | ✅ OK | |
|
|
| react-rnd | 10.5.2 | 10.5.2 | ✅ OK | |
|
|
| webfontloader | 1.6.28 | 1.6.28 | ✅ OK | |
|
|
|
|
### Dev Dependencies
|
|
|
|
| Package | Current | Latest | Status | Notes |
|
|
|---------|---------|--------|--------|-------|
|
|
| @babel/core | 7.28.3 | 7.28.5 | 🟢 Patch | |
|
|
| @babel/preset-env | 7.28.3 | 7.28.5 | 🟢 Patch | |
|
|
| @babel/preset-react | 7.27.1 | 7.28.5 | 🟢 Patch | |
|
|
| @types/jest | 27.5.2 | 30.0.0 | 🔴 Major | |
|
|
| babel-loader | 8.4.1 | 10.0.0 | 🟡 Major | |
|
|
| clean-webpack-plugin | 1.0.1 | 4.0.0 | 🔴 Major | Very outdated |
|
|
| copy-webpack-plugin | 4.6.0 | 13.0.1 | 🔴 Major | Very outdated |
|
|
| css-loader | 5.0.0 | 7.1.2 | 🔴 Major | |
|
|
| jest | 28.1.0 | 29.7.0 | 🟡 Major | |
|
|
| style-loader | 2.0.0 | 3.3.4 | 🟡 Major | |
|
|
| ts-jest | 28.0.3 | 29.3.4 | 🟡 Major | Must match jest |
|
|
| ts-loader | 9.5.4 | 9.5.4 | ✅ OK | |
|
|
| typescript | 5.1.3 | 5.8.3 | 🟢 Minor | |
|
|
| webpack | 5.101.3 | 5.101.3 | ✅ OK | |
|
|
| webpack-bundle-analyzer | 4.10.2 | 4.10.2 | ✅ OK | |
|
|
| webpack-cli | 4.10.0 | 5.1.4 | 🟡 Major | |
|
|
| webpack-dev-server | 3.11.2 | 5.3.0 | 🔴 Major | 2 versions behind |
|
|
| webpack-merge | 5.10.0 | 5.10.0 | ✅ OK | |
|
|
|
|
### Action Items
|
|
- [ ] Align TypeScript version (decide 4.9.5 or 5.x)
|
|
- [ ] Update webpack-dev-server to 4.x
|
|
- [ ] Update clean-webpack-plugin to 4.x
|
|
- [ ] Update copy-webpack-plugin (significant API changes)
|
|
- [ ] Update css-loader and style-loader
|
|
- [ ] Update Jest to 29.x
|
|
|
|
---
|
|
|
|
## 5. noodl-viewer-cloud
|
|
|
|
**Location:** `/packages/noodl-viewer-cloud/package.json`
|
|
|
|
### Dependencies
|
|
|
|
| Package | Current | Latest | Status | Notes |
|
|
|---------|---------|--------|--------|-------|
|
|
| @noodl/runtime | file: | - | ✅ OK | Local |
|
|
|
|
### Dev Dependencies
|
|
|
|
| Package | Current | Latest | Status | Notes |
|
|
|---------|---------|--------|--------|-------|
|
|
| copy-webpack-plugin | 4.6.0 | 13.0.1 | 🔴 Major | Very outdated |
|
|
| generate-json-webpack-plugin | 2.0.0 | 2.0.0 | ✅ OK | |
|
|
| ts-loader | 9.5.4 | 9.5.4 | ✅ OK | |
|
|
| typescript | 4.9.5 | 5.8.3 | 🟡 Major | |
|
|
|
|
### Action Items
|
|
- [ ] Update copy-webpack-plugin
|
|
|
|
---
|
|
|
|
## 6. noodl-runtime
|
|
|
|
**Location:** `/packages/noodl-runtime/package.json`
|
|
|
|
### Dependencies
|
|
|
|
| Package | Current | Latest | Status | Notes |
|
|
|---------|---------|--------|--------|-------|
|
|
| lodash.difference | 4.5.0 | 4.5.0 | ✅ OK | |
|
|
| lodash.isequal | 4.5.0 | 4.5.0 | ✅ OK | |
|
|
|
|
### Dev Dependencies
|
|
|
|
| Package | Current | Latest | Status | Notes |
|
|
|---------|---------|--------|--------|-------|
|
|
| jest | 28.1.0 | 29.7.0 | 🟡 Major | |
|
|
|
|
### Notes
|
|
- Very minimal dependencies
|
|
- Consider updating Jest to 29.x for consistency
|
|
|
|
---
|
|
|
|
## 7. noodl-git
|
|
|
|
**Location:** `/packages/noodl-git/package.json`
|
|
|
|
### Dependencies
|
|
|
|
| Package | Current | Latest | Status | Notes |
|
|
|---------|---------|--------|--------|-------|
|
|
| desktop-trampoline | 0.9.8 | 0.9.8 | ✅ OK | Git auth helper |
|
|
| double-ended-queue | 2.1.0-0 | 2.1.0-0 | ✅ OK | |
|
|
| dugite | 1.110.0 | 3.0.0 | 🔴 Major | Breaking API changes |
|
|
| split2 | 4.1.0 | 4.2.0 | 🟢 Minor | |
|
|
|
|
### Notes
|
|
- **dugite 3.0** has significant breaking changes
|
|
- Affects git operations throughout the editor
|
|
- Upgrade should be carefully planned
|
|
|
|
---
|
|
|
|
## 8. noodl-platform
|
|
|
|
**Location:** `/packages/noodl-platform/package.json`
|
|
|
|
### Dependencies
|
|
None (interface definitions only)
|
|
|
|
### Notes
|
|
- This is primarily a TypeScript definitions package
|
|
- No external dependencies
|
|
|
|
---
|
|
|
|
## 9. noodl-platform-electron
|
|
|
|
**Location:** `/packages/noodl-platform-electron/package.json`
|
|
|
|
### Dependencies
|
|
|
|
| Package | Current | Latest | Status | Notes |
|
|
|---------|---------|--------|--------|-------|
|
|
| @noodl/platform-node | file: | - | ✅ OK | Local |
|
|
|
|
### Peer Dependencies
|
|
|
|
| Package | Current | Latest | Status | Notes |
|
|
|---------|---------|--------|--------|-------|
|
|
| @electron/remote | >=2.1.3 | 2.1.3 | ✅ OK | |
|
|
| electron | >=20.1.0 | 39.2.6 | 🔴 Note | Peer constraint |
|
|
|
|
---
|
|
|
|
## 10. noodl-platform-node
|
|
|
|
**Location:** `/packages/noodl-platform-node/package.json`
|
|
|
|
### Dependencies
|
|
|
|
| Package | Current | Latest | Status | Notes |
|
|
|---------|---------|--------|--------|-------|
|
|
| @noodl/platform | file: | - | ✅ OK | Local |
|
|
| fs-extra | 10.0.1 | 11.3.2 | 🟡 Major | |
|
|
|
|
### Dev Dependencies
|
|
|
|
| Package | Current | Latest | Status | Notes |
|
|
|---------|---------|--------|--------|-------|
|
|
| @types/fs-extra | 9.0.13 | 11.0.4 | 🟡 Major | Should match fs-extra |
|
|
| @types/jest | 29.5.14 | 30.0.0 | 🟡 Major | |
|
|
| jest | 29.7.0 | 29.7.0 | ✅ OK | Latest jest here |
|
|
| ts-jest | 29.1.1 | 29.3.4 | 🟢 Patch | |
|
|
| typescript | 5.5.4 | 5.8.3 | 🟢 Minor | Different from others |
|
|
|
|
### Notes
|
|
- This package has Jest 29 (unlike others with 28)
|
|
- Consider aligning all packages to Jest 29
|
|
|
|
---
|
|
|
|
## 11. noodl-parse-dashboard
|
|
|
|
**Location:** `/packages/noodl-parse-dashboard/package.json`
|
|
|
|
### Dependencies
|
|
|
|
| Package | Current | Latest | Status | Notes |
|
|
|---------|---------|--------|--------|-------|
|
|
| bcryptjs | 2.4.3 | 3.0.3 | 🟡 Major | |
|
|
| connect-flash | 0.1.1 | 0.1.1 | ✅ OK | |
|
|
| cookie-session | 2.0.0 | 2.1.1 | 🟢 Minor | |
|
|
| express | 4.21.2 | 5.2.1 | 🔴 Major | Express 5 breaking |
|
|
| lodash | 4.17.21 | 4.17.21 | ✅ OK | |
|
|
| otpauth | 7.1.3 | 9.4.3 | 🟡 Major | |
|
|
| package-json | 7.0.0 | 10.0.2 | 🔴 Major | |
|
|
| parse-dashboard | 5.2.0 | 6.1.0 | 🟡 Major | |
|
|
| passport | 0.6.0 | 0.7.0 | 🟢 Minor | |
|
|
| passport-local | 1.0.0 | 1.0.0 | ✅ OK | |
|
|
|
|
### Dev Dependencies
|
|
|
|
| Package | Current | Latest | Status | Notes |
|
|
|---------|---------|--------|--------|-------|
|
|
| keyv | 4.5.4 | 5.5.5 | 🔴 Major | |
|
|
|
|
### Notes
|
|
- Parse Dashboard has many outdated dependencies
|
|
- Express 5.x migration is significant undertaking
|
|
- parse-dashboard 6.x may have breaking changes
|
|
|
|
---
|
|
|
|
## 12. noodl-types
|
|
|
|
**Location:** `/packages/noodl-types/package.json`
|
|
|
|
### Dependencies
|
|
None (type definitions only)
|
|
|
|
### Notes
|
|
- Purely TypeScript definition package
|
|
- No runtime dependencies
|
|
|
|
---
|
|
|
|
## 13. Cross-Package Issues
|
|
|
|
### TypeScript Version Matrix
|
|
|
|
| Package | Version | Notes |
|
|
|---------|---------|-------|
|
|
| Root | 4.9.5 | |
|
|
| noodl-editor | 4.9.5 | |
|
|
| noodl-core-ui | 4.9.5 | |
|
|
| noodl-viewer-react | **5.1.3** | ⚠️ Different |
|
|
| noodl-viewer-cloud | 4.9.5 | |
|
|
| noodl-platform-node | **5.5.4** | ⚠️ Different |
|
|
|
|
**Recommendation:** Standardize on either:
|
|
- 4.9.5 for stability (all packages)
|
|
- 5.x for latest features (requires testing)
|
|
|
|
### Jest Version Matrix
|
|
|
|
| Package | Version | Notes |
|
|
|---------|---------|-------|
|
|
| noodl-runtime | 28.1.0 | |
|
|
| noodl-viewer-react | 28.1.0 | |
|
|
| noodl-platform-node | **29.7.0** | ⚠️ Different |
|
|
|
|
**Recommendation:** Update all to Jest 29.7.0
|
|
|
|
### Webpack Ecosystem Matrix
|
|
|
|
| Package | webpack | dev-server | css-loader | style-loader |
|
|
|---------|---------|------------|------------|--------------|
|
|
| Root | 5.101.3 | 4.15.2 | - | - |
|
|
| noodl-editor | 5.101.3 | 4.15.2 | 6.11.0 | 3.3.4 |
|
|
| noodl-viewer-react | 5.101.3 | **3.11.2** | **5.0.0** | **2.0.0** |
|
|
|
|
**Issues:**
|
|
- noodl-viewer-react using webpack-dev-server 3.x (2 major behind)
|
|
- css-loader and style-loader versions mismatched
|