Skip to content

Upgrade dependencies and modernize testing infrastructure#767

Open
JustinBeckwith wants to merge 1 commit intoNaturalNode:masterfrom
JustinBeckwith:upgrade-deps-modernize-testing
Open

Upgrade dependencies and modernize testing infrastructure#767
JustinBeckwith wants to merge 1 commit intoNaturalNode:masterfrom
JustinBeckwith:upgrade-deps-modernize-testing

Conversation

@JustinBeckwith
Copy link

@JustinBeckwith JustinBeckwith commented Feb 7, 2026

Greetings folks, and thanks for the wonderful library! I was trying to chase down a deprecation warning in my own library, and it was a transitive dependency on http-server. Turns out ... you weren't using it!

While I was in here, figured I'd burn some tokens upgrading your dev infrastructure and getting rid of all those deprecation and security warnings :)

Feedback welcomed!

Summary

This PR upgrades major dev dependencies, modernizes the browser testing infrastructure, and achieves zero npm vulnerabilities.

Changes

Dependency Upgrades

  • webpack: 4 → 5 with proper Node.js polyfill configuration
  • jasmine: 3 → 6 with jasmine-core 6
  • TypeScript: → 5.9.3
  • @types/node: Updated to latest
  • gulp: 4 → 5 (then removed, see below)

Testing Infrastructure

  • Replaced gulp-based browser testing with modern jasmine-browser-runner
  • Configured webpack 5 fallback for Node.js core modules
  • Added browserify util polyfill for proper browser compatibility
  • Created spec/support/jasmine-browser.json configuration

Dependency Cleanup

Removed unused dependencies:

  • standard (redundant with eslint)
  • ts-standard (redundant with @typescript-eslint)
  • gulp and gulp-jasmine-browser (replaced with jasmine-browser-runner)
  • inherits (transitive dependency, not directly used)

Jasmine 6 Compatibility

Fixed duplicate test suite and spec names to comply with Jasmine 6's strict duplicate checking:

  • Updated suite names to include language/context identifiers
  • Added indices to forEach loops in parametric tests
  • Differentiated similar test cases

Security

  • Reduced npm vulnerabilities from 23 to 0 🎉

Test Results

  • ✅ All 868 specs passing in Node.js
  • ✅ All 868 specs passing in browser
  • ✅ ESLint passing with no issues
  • ✅ 0 vulnerabilities

Breaking Changes

None - all tests pass and the API remains unchanged.

🤖 Generated with Claude Code

- Upgrade webpack 4 -> 5 with proper Node.js polyfill configuration
- Upgrade jasmine 3 -> 6 and fix duplicate test names
- Upgrade TypeScript to 5.9.3
- Replace gulp-based browser testing with jasmine-browser-runner
- Remove unused dependencies: standard, ts-standard, gulp, gulp-jasmine-browser, inherits
- Configure webpack to use browserify util polyfill for browser compatibility
- Reduce npm vulnerabilities from 23 to 0
- All 868 specs passing in both Node.js and browser environments

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant