Files
OpenNoodl/dev-docs/tasks/phase-1-dependency-updates/TASK-000-dependency-analysis/DETAILED-ANALYSIS.md

14 KiB

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
  2. noodl-editor
  3. noodl-core-ui
  4. noodl-viewer-react
  5. noodl-viewer-cloud
  6. noodl-runtime
  7. noodl-git
  8. noodl-platform
  9. noodl-platform-electron
  10. noodl-platform-node
  11. noodl-parse-dashboard
  12. noodl-types
  13. Cross-Package Issues

1. Root Package

Location: /package.json

Current State

{
  "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

// 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