Skip to content

chore: modernize build system and dependencies#131

Open
isamu wants to merge 13 commits into
jimutt:masterfrom
modernized-js:upstream-pr
Open

chore: modernize build system and dependencies#131
isamu wants to merge 13 commits into
jimutt:masterfrom
modernized-js:upstream-pr

Conversation

@isamu
Copy link
Copy Markdown

@isamu isamu commented Apr 7, 2026

Summary

Modernized the build toolchain and updated all dependencies to their latest versions, without changing any runtime behavior or implementation logic.

Build system

  • Migrated from npm to yarn (package-lock.json → yarn.lock)
  • Removed Babel — TypeScript compiles directly via tsc
  • Replaced Jest + babel-jest with Vitest (native TypeScript support)
  • Replaced rollup-plugin-terser with @rollup/plugin-terser
  • Migrated CI from CircleCI to GitHub Actions (ubuntu/windows/macos matrix)

Dependencies

  • TypeScript 3.7 → 5.x
  • opensheetmusicdisplay 0.8 → 1.9
  • standardized-audio-context 24 → 25
  • @rollup/plugin-terser 0.4 → 1.0
  • Vitest 4.x (replaces Jest 26)
  • Resolved tar vulnerability via yarn resolutions

Code quality

  • Added ESLint (flat config) + typescript-eslint + Prettier
  • Removed all any types — replaced with proper types (VoiceWithMidi, unknown, Note[], etc.)
  • Replaced @ts-ignore with type-safe alternatives
  • Replaced ts-mockito with plain object mocks (removed dependency)
  • Replaced fragile deep import paths (opensheetmusicdisplay/build/dist/src) with main package exports
  • Auto-fixed letconst where appropriate
  • Added .gitattributes for consistent LF line endings

What's NOT changed

  • No runtime behavior changes
  • No API changes
  • All existing tests pass
  • Demo apps unchanged

Test plan

  • yarn build succeeds
  • yarn test — all 8 tests pass
  • yarn build-umd succeeds
  • yarn lint — 0 errors, 0 warnings
  • Browser demo verified working

isamu and others added 13 commits April 7, 2026 07:07
- Migrate CircleCI to GitHub Actions (ubuntu/windows/macos matrix)
- Switch from npm to yarn (package-lock.json → yarn.lock)
- Remove Babel, migrate Jest to Vitest
- Upgrade TypeScript 3.7 → 5.7
- Replace rollup-plugin-terser with @rollup/plugin-terser
- Fix Set<number> type for TS5 strictness
- Add CLAUDE.md with package overview

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
The OSMD demo sheets URL changed from /demo/sheets/ to /demo/.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
chore: modernize build system and CI
- @rollup/plugin-terser 0.4.4 → 1.0.0
- vitest 3.2.4 → 4.1.2
- opensheetmusicdisplay 0.8.7 → 1.9.7
- standardized-audio-context 24.1.26 → 25.3.77
- Replace deep import paths with main package exports
- Fix PlaybackSettings mock (no longer exported from main)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
chore: upgrade dependencies to latest
Add resolutions for tar >=7.5.7 to fix 12 high severity
vulnerabilities in opensheetmusicdisplay > gl > node-gyp > tar.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
fix: resolve tar vulnerability via yarn resolutions
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Add ESLint (flat config) with typescript-eslint and eslint-config-prettier
- Add Prettier with yarn format script
- Add .gitattributes to enforce LF line endings
- Add "type": "module" to package.json
- Auto-fix existing code (let → const, formatting)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
chore: update CI Node.js version to 24
chore: add ESLint, Prettier, and .gitattributes
- Replace all `any` with proper types (VoiceWithMidi, unknown, Note[], number)
- Replace `Function` type with explicit callback signature
- Remove all `@ts-expect-error` / `@ts-ignore` comments
- Replace ts-mockito with plain object mocks, remove ts-mockito dep
- Remove ESLint rule relaxations (strict config now passes cleanly)
- Fix StepQueue deep import path

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
refactor: remove all any types and fix eslint warnings
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