* fix: replace ReadAllLines with ReadAllText in MigrationChecks.targets (fixes#1035)
System.IO.File::ReadAllLines is not available as an MSBuild property function on
all platforms (e.g. macOS GitHub Actions), causing MSB4185.
ReadAllText is universally supported by MSBuild and sufficient for the regex check
that detects 'electron' references in a root package.json (ELECTRON008).
The intermediate ItemGroup for line accumulation is no longer needed.
* test: strengthen migration checks test with exit code assertion and remove reserved MSBuildProjectDirectory override
* test: locate MigrationChecks.targets via directory walk for path robustness
* test: replace em-dashes with ASCII hyphens to avoid bidi/hidden Unicode warning
* test: split build test into clean and electron-containing package.json scenarios
* fix: correct ReleaseNotes deserialization for AutoUpdater (fixes#1039)
- TypeScript normalize() now maps string releaseNotes to { note } objects
and also handles arrays of strings (both cases were broken in PR #1041)
- Added ReleaseNotesConverter (JsonConverter<ReleaseNoteInfo[]>) as defensive
C# layer that handles all shapes: null, string, string[], object[]
- Added [JsonConverter] attribute on UpdateInfo.ReleaseNotes
- Added unit tests (no Electron required) covering all four input shapes
* chore: sync generated autoUpdater.js and .map with updated TypeScript source
* refactor: address Copilot PR review comments
- Fix namespace: ElectronNET.Converter -> ElectronNET.API.Converter
- Replace JsonDocument.ParseValue() with JsonSerializer.Deserialize<ReleaseNoteInfo>()
for cleaner, allocation-free object array parsing
- Fix Write(): empty ReleaseNoteInfo[] now serializes as [] instead of null
- Use Array.Empty<ReleaseNoteInfo>() in UpdateInfo default initializer
- Add tests: Serialize_WithEmptyReleaseNotes and Serialize_WithNullReleaseNotes