Detailed Dependency Analysis by Package
This document provides a comprehensive breakdown of dependencies for each package in the OpenNoodl monorepo.
Table of Contents
- Root Package
- noodl-editor
- noodl-core-ui
- noodl-viewer-react
- noodl-viewer-cloud
- noodl-runtime
- noodl-git
- noodl-platform
- noodl-platform-electron
- noodl-platform-node
- noodl-parse-dashboard
- noodl-types
- Cross-Package Issues
1. Root Package
Location: /package.json
Current State
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
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
3. noodl-core-ui
Location: /packages/noodl-core-ui/package.json
Critical Issue: Broken Storybook
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
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
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
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