chore: modernize build system and dependencies#131
Open
isamu wants to merge 13 commits into
Open
Conversation
- 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
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Modernized the build toolchain and updated all dependencies to their latest versions, without changing any runtime behavior or implementation logic.
Build system
tscrollup-plugin-terserwith@rollup/plugin-terserDependencies
tarvulnerability via yarn resolutionsCode quality
anytypes — replaced with proper types (VoiceWithMidi,unknown,Note[], etc.)@ts-ignorewith type-safe alternativesopensheetmusicdisplay/build/dist/src) with main package exportslet→constwhere appropriate.gitattributesfor consistent LF line endingsWhat's NOT changed
Test plan
yarn buildsucceedsyarn test— all 8 tests passyarn build-umdsucceedsyarn lint— 0 errors, 0 warnings