From edbec62a5534bd4e59791f62408c75939eadbfdd Mon Sep 17 00:00:00 2001 From: edideaur Date: Fri, 10 Apr 2026 16:20:04 +0300 Subject: [PATCH] fix lockfiles --- .../music/AudioPlaybackService.java | 2 +- bun.lock | 4 ++-- ios/App/App/AppDelegate.swift | 6 +++--- js/HiFi.ts | 20 +++++++++---------- js/app.js | 2 +- js/audio-context.js | 10 +++++----- js/binaural-dsp.js | 2 +- js/downloads.js | 10 +++++----- js/hrtf-generator.js | 2 +- js/player.js | 2 +- js/settings.js | 2 +- js/storage.js | 2 +- js/visualizer.js | 2 +- 13 files changed, 33 insertions(+), 33 deletions(-) diff --git a/android/app/src/main/java/tf/monochrome/music/AudioPlaybackService.java b/android/app/src/main/java/tf/monochrome/music/AudioPlaybackService.java index 11998e0..2444f44 100644 --- a/android/app/src/main/java/tf/monochrome/music/AudioPlaybackService.java +++ b/android/app/src/main/java/tf/monochrome/music/AudioPlaybackService.java @@ -49,7 +49,7 @@ public class AudioPlaybackService extends Service { acquireWakeLock(); - // If the system kills this service, don't restart it automatically — + // If the system kills this service, don't restart it automatically - // MainActivity will re-start it when audio resumes. return START_NOT_STICKY; } diff --git a/bun.lock b/bun.lock index 8494616..68abd7d 100644 --- a/bun.lock +++ b/bun.lock @@ -18,7 +18,7 @@ "@svta/common-media-library": "^0.18.1", "@types/wicg-file-system-access": "^2023.10.7", "@typescript-eslint/eslint-plugin": "^8.57.2", - "@uimaxbai/am-lyrics": "^1.1.7", + "@uimaxbai/am-lyrics": "^1.1.8", "@vitest/web-worker": "^4.1.2", "appwrite": "^23.0.0", "butterchurn": "^2.6.7", @@ -675,7 +675,7 @@ "@typescript-eslint/visitor-keys": ["@typescript-eslint/visitor-keys@8.58.0", "", { "dependencies": { "@typescript-eslint/types": "8.58.0", "eslint-visitor-keys": "^5.0.0" } }, "sha512-XJ9UD9+bbDo4a4epraTwG3TsNPeiB9aShrUneAVXy8q4LuwowN+qu89/6ByLMINqvIMeI9H9hOHQtg/ijrYXzQ=="], - "@uimaxbai/am-lyrics": ["@uimaxbai/am-lyrics@1.1.7", "", { "dependencies": { "@babel/runtime": "^7.27.6", "lit": "^3.1.4" }, "peerDependencies": { "@lit/react": "^1.0.0", "react": ">=17.0.0" }, "optionalPeers": ["@lit/react", "react"] }, "sha512-hEwPl4dFmJ08sJf4VBaR7k7yxA3BNaoINS89j0KrkSFJYpCkohHDy24AIfzEMonPloJ3H6HBA55nCFMnAzm50w=="], + "@uimaxbai/am-lyrics": ["@uimaxbai/am-lyrics@1.1.8", "", { "dependencies": { "@babel/runtime": "^7.27.6", "lit": "^3.1.4" }, "peerDependencies": { "@lit/react": "^1.0.0", "react": ">=17.0.0" }, "optionalPeers": ["@lit/react", "react"] }, "sha512-VcbrlB2cOmkOjElmivf2SZujDmj8UAUaBkXyIfJ8dYq/Iv4H3PxmQY/s9VaRfF6UTnCgfix8ZPll1T1MA8eS4A=="], "@vitest/browser": ["@vitest/browser@4.1.2", "", { "dependencies": { "@blazediff/core": "1.9.1", "@vitest/mocker": "4.1.2", "@vitest/utils": "4.1.2", "magic-string": "^0.30.21", "pngjs": "^7.0.0", "sirv": "^3.0.2", "tinyrainbow": "^3.1.0", "ws": "^8.19.0" }, "peerDependencies": { "vitest": "4.1.2" } }, "sha512-CwdIf90LNf1Zitgqy63ciMAzmyb4oIGs8WZ40VGYrWkssQKeEKr32EzO8MKUrDPPcPVHFI9oQ5ni2Hp24NaNRQ=="], diff --git a/ios/App/App/AppDelegate.swift b/ios/App/App/AppDelegate.swift index 88e35b1..7b0e5aa 100644 --- a/ios/App/App/AppDelegate.swift +++ b/ios/App/App/AppDelegate.swift @@ -48,10 +48,10 @@ class AppDelegate: UIResponder, UIApplicationDelegate { switch type { case .began: - // Interruption began — system pauses audio automatically + // Interruption began - system pauses audio automatically break case .ended: - // Interruption ended — reactivate session so playback can resume + // Interruption ended - reactivate session so playback can resume if let optionsValue = userInfo[AVAudioSessionInterruptionOptionKey] as? UInt { let options = AVAudioSession.InterruptionOptions(rawValue: optionsValue) if options.contains(.shouldResume) { @@ -75,7 +75,7 @@ class AppDelegate: UIResponder, UIApplicationDelegate { } if reason == .oldDeviceUnavailable { - // Headphones/Bluetooth disconnected — reactivate session to keep background alive + // Headphones/Bluetooth disconnected - reactivate session to keep background alive do { try AVAudioSession.sharedInstance().setActive(true) } catch { diff --git a/js/HiFi.ts b/js/HiFi.ts index df33f49..255968e 100644 --- a/js/HiFi.ts +++ b/js/HiFi.ts @@ -108,7 +108,7 @@ export interface TidalArtistProfile { picture: string | null; /** Fallback album cover UUID used when no artist picture exists, or `null`. */ selectedAlbumCoverFallback: string | null; - /** Popularity score (0–100). */ + /** Popularity score (0-100). */ popularity: number; /** List of credited roles for this artist. */ artistRoles: TidalArtistRole[]; @@ -150,7 +150,7 @@ export interface TidalTrackAlbumRef { * Full track object as returned by the `/info` route and embedded in albums, playlists, and mixes. * * @remarks - * Fields `bpm`, `key`, and `keyScale` are nullable — they are absent for some tracks. + * Fields `bpm`, `key`, and `keyScale` are nullable - they are absent for some tracks. * `version` is present in the payload but may be `null`. */ export interface TidalTrack { @@ -162,7 +162,7 @@ export interface TidalTrack { duration: number; /** Track replay-gain value in dB. */ replayGain: number; - /** Track peak amplitude (0–1). */ + /** Track peak amplitude (0-1). */ peak: number; /** Whether the track is available for streaming. */ allowStreaming: boolean; @@ -186,7 +186,7 @@ export interface TidalTrack { volumeNumber: number; /** Version suffix (e.g. `"Remastered"`), or `null`. */ version: string | null; - /** Popularity score (0–100). */ + /** Popularity score (0-100). */ popularity: number; /** Copyright notice. */ copyright: string; @@ -299,7 +299,7 @@ export interface TidalAlbum { explicit: boolean; /** UPC barcode. */ upc: string; - /** Popularity score (0–100). */ + /** Popularity score (0-100). */ popularity: number; /** Highest available audio quality. */ audioQuality: string; @@ -339,7 +339,7 @@ export interface TidalVideoItem { volumeNumber: number; /** Track number on the disc. */ trackNumber: number; - /** Popularity score (0–100). */ + /** Popularity score (0-100). */ popularity: number; /** Double-precision popularity score (present in topvideos). */ doublePopularity?: number; @@ -452,7 +452,7 @@ export interface TidalSimilarAlbum { releaseDate: string; /** Copyright information. */ copyright: { text: string }; - /** Popularity score (0–1 float). */ + /** Popularity score (0-1 float). */ popularity: number; /** Access type, e.g. `"PUBLIC"`. */ accessType: string; @@ -533,7 +533,7 @@ export interface SimilarArtist { url: string; /** Relation type, e.g. `"SIMILAR_ARTIST"`. */ relationType: string; - /** Popularity score (0–1 float). */ + /** Popularity score (0-1 float). */ popularity: number; /** External link entries (e.g. TIDAL sharing URL). */ externalLinks: Array<{ href: string; meta: { type: string } }>; @@ -911,7 +911,7 @@ export interface TopVideosResponse extends VersionedResponse { export interface TidalAudioNormData { /** Replay gain value in dB. */ replayGain: number; - /** Peak amplitude (0–1). */ + /** Peak amplitude (0-1). */ peakAmplitude: number; } @@ -961,7 +961,7 @@ export interface TrackManifestAttributes { export interface TrackManifestResource { /** Resource identifier (track ID as a string). */ id: string; - /** JSON:API resource type — always `"trackManifests"`. */ + /** JSON:API resource type - always `"trackManifests"`. */ type: string; /** Manifest attributes. */ attributes: TrackManifestAttributes; diff --git a/js/app.js b/js/app.js index 8293949..c60adaf 100644 --- a/js/app.js +++ b/js/app.js @@ -513,7 +513,7 @@ document.addEventListener('DOMContentLoaded', async () => { * visited the local tab yet). */ async function scanLocalMediaFolder(onlyIfAlreadyScanned = false) { - // Skip the scan if the user has never visited the local tab – they'll + // Skip the scan if the user has never visited the local tab - they'll // get a fresh scan when they navigate there for the first time. if (onlyIfAlreadyScanned && !window.localFilesCache) return; diff --git a/js/audio-context.js b/js/audio-context.js index d17f95c..cc4dce5 100644 --- a/js/audio-context.js +++ b/js/audio-context.js @@ -1252,7 +1252,7 @@ class AudioContextManager { msChanged || this.filters.length !== count || (needsMS && this.midFilters.length !== count); if (needsRebuild) { - // M/S state changed or band count changed — full rebuild + // M/S state changed or band count changed - full rebuild this._destroyMSFilters(); this._destroyEQ(); this._createEQ(); @@ -1261,7 +1261,7 @@ class AudioContextManager { } this._connectGraph(); } else if (needsMS) { - // M/S active — update both parallel chains in-place + // M/S active - update both parallel chains in-place const now = this.audioContext.currentTime; // Update main filters (not connected in M/S mode, kept in sync for stereo fallback) @@ -1275,11 +1275,11 @@ class AudioContextManager { const sideGains = newGains.map((g, i) => (newChannels[i] === 'mid' ? 0 : g)); this._updateFilterChain(this.sideFilters, newFrequencies, newTypes, newQs, sideGains, now); } else if (this.filters.length === count) { - // Normal stereo — update in-place + // Normal stereo - update in-place const now = this.audioContext.currentTime; this._updateFilterChain(this.filters, newFrequencies, newTypes, newQs, newGains, now); } else { - // Band count changed — must rebuild + // Band count changed - must rebuild this._destroyMSFilters(); this._destroyEQ(); this._createEQ(); @@ -1423,7 +1423,7 @@ class AudioContextManager { this.currentQs = qs; this.currentGains = gains; - // Reset M/S channel assignments — imported config has no channel info + // Reset M/S channel assignments - imported config has no channel info this.currentChannels = new Array(this.bandCount).fill('stereo'); this.msEnabled = false; diff --git a/js/binaural-dsp.js b/js/binaural-dsp.js index 402e9ae..78239a6 100644 --- a/js/binaural-dsp.js +++ b/js/binaural-dsp.js @@ -410,7 +410,7 @@ export class BinauralDSP { for (let i = 0; i < numChannels; i++) { const chInfo = CHANNEL_ANGLES_51[i]; if (chInfo.isLFE) { - // Placeholder — LFE uses gain node instead + // Placeholder - LFE uses gain node instead this._mcConvolversL.push(null); this._mcConvolversR.push(null); continue; diff --git a/js/downloads.js b/js/downloads.js index b8ec561..65476e4 100644 --- a/js/downloads.js +++ b/js/downloads.js @@ -499,7 +499,7 @@ async function bulkDownload({ * to the configured folder (Local Media Folder or saved Folder Picker handle), * or `null` if the feature is not active / no folder is configured. * - * In contrast to {@link createBulkWriter}, this never prompts the user – it + * In contrast to {@link createBulkWriter}, this never prompts the user - it * only succeeds when the folder is already known. */ async function createSingleTrackFolderWriter() { @@ -533,7 +533,7 @@ async function createSingleTrackFolderWriter() { // fall through to picker } } - // No usable saved handle – open the picker so the user can choose a folder. + // No usable saved handle - open the picker so the user can choose a folder. try { const writer = await FolderPickerWriter.create(); if (rememberFolder) { @@ -542,7 +542,7 @@ async function createSingleTrackFolderWriter() { return writer; } catch (error) { if (error instanceof DOMException && error.name === 'AbortError') { - // User cancelled the picker – return null so we fall back to the + // User cancelled the picker - return null so we fall back to the // normal browser download instead of erroring out. return null; } @@ -578,7 +578,7 @@ async function createBulkWriter(folderName) { // fall through to picker } } - // No usable handle – prompt and persist + // No usable handle - prompt and persist try { const writer = await FolderPickerWriter.create(); await db.saveSetting('local_folder_handle', writer.getDirHandle()); @@ -590,7 +590,7 @@ async function createBulkWriter(folderName) { return null; } } - // Browser without File System Access API – fall through to ZIP + // Browser without File System Access API - fall through to ZIP } // ── Folder Picker method ───────────────────────────────────────────────── diff --git a/js/hrtf-generator.js b/js/hrtf-generator.js index 1bf03f6..795f610 100644 --- a/js/hrtf-generator.js +++ b/js/hrtf-generator.js @@ -64,7 +64,7 @@ export function generateHRTF(audioContext, azimuthDeg, elevationDeg = 0) { const ipsiData = sourceOnRight ? rightData : leftData; const contraData = sourceOnRight ? leftData : rightData; - // Generate ipsilateral (near ear) IR — mostly a delayed impulse with slight coloring + // Generate ipsilateral (near ear) IR - mostly a delayed impulse with slight coloring // Ipsilateral ear (near source) receives sound first; contralateral ear is delayed by ITD const ipsiDelay = 0; const contraDelay = Math.abs(itdSamples); diff --git a/js/player.js b/js/player.js index 17d92c9..b9023a4 100644 --- a/js/player.js +++ b/js/player.js @@ -2150,7 +2150,7 @@ export class Player { await this._bgAudioPlugin.stop(); } } catch { - // Not running in Capacitor or plugin unavailable — ignore + // Not running in Capacitor or plugin unavailable - ignore } finally { this._bgAudioPending = false; } diff --git a/js/settings.js b/js/settings.js index 246528c..5fcdf4d 100644 --- a/js/settings.js +++ b/js/settings.js @@ -1354,7 +1354,7 @@ export async function initializeSettings(scrobbler, player, api, ui) { for (let i = 0; i < count; i++) { const t = i / (count - 1); let freq = Math.round(min * Math.pow(max / min, t)); - // Ensure strictly increasing — rounding can produce duplicates at high band counts + // Ensure strictly increasing - rounding can produce duplicates at high band counts if (freqs.length > 0 && freq <= freqs[freqs.length - 1]) { freq = freqs[freqs.length - 1] + 1; } diff --git a/js/storage.js b/js/storage.js index 74237b2..2dab6ee 100644 --- a/js/storage.js +++ b/js/storage.js @@ -1881,7 +1881,7 @@ export const binauralDspSettings = { try { localStorage.setItem(this.STORAGE_KEY, JSON.stringify(obj)); } catch { - // QuotaExceededError — storage full + // QuotaExceededError - storage full } }, diff --git a/js/visualizer.js b/js/visualizer.js index 2fb557c..bf099a4 100644 --- a/js/visualizer.js +++ b/js/visualizer.js @@ -37,7 +37,7 @@ export class Visualizer { // Pause animation loop when the app is backgrounded so the analyser's // FFT reads don't compete with the EQ biquad filter chain for audio - // thread time — the main cause of audio skipping with AutoEQ in background. + // thread time - the main cause of audio skipping with AutoEQ in background. document.addEventListener('visibilitychange', () => { if (document.visibilityState === 'hidden' && this.isActive) { this._backgroundPaused = true;