mirror of
https://github.com/4gray/iptvnator.git
synced 2026-10-08 17:06:15 -08:00
* fix(playback): harden embedded mpv session handling and support detection - guard the session controller against late startup rejections clobbering a newer session during fast channel zapping - exclude the refresh timestamp from the session-update dedup key so idle sessions stop re-emitting IPC updates every 500 ms - macOS: reconcile async loadfile replies by request id so a rejected seek/aid/speed on a live stream no longer flips the session to error - append --ozone-platform=x11 on Linux in main.ts so direct binary and AppImage launches match the packaged .desktop launcher behavior - return a sandbox-specific unsupported reason in Flatpak/Snap instead of asking the user to install mpv inside the sandbox - update the stale "macOS only" embedded MPV claim in CLAUDE.md Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> * feat(playback): populate Linux audio tracks and fix ARM Linux packaging - Linux poller now reads track-list/count each tick and walks the scalar track-list/N/* sub-properties when the count changes, so the audio-track menu is no longer empty; selection reconciles from the aid property - afterPack replaces the x64 embedded_mpv.node with an embedded-mpv-unavailable.txt marker in arm64/armv7l Linux packages, and package-layout verification rejects foreign-architecture addons while requiring the marker - extend native source invariants for the non-fatal async-reply rule (macOS) and the Linux track-list polling contract - document the Linux track-list mechanics and ARM packaging behavior in docs/architecture/embedded-mpv-native.md Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> * feat(playback): embedded mpv player UX polish and full localization - click on the video toggles pause (same action as Space) with a 250 ms grace period so double-click fullscreen cancels the pending pause; no DOM overlay is drawn — the dock transport icon is the feedback - timeline scrubbing previews the drag position locally and commits a single seek on release instead of one IPC seek per drag pixel - translate all player UI strings (controls, tooltips, aria-labels, status and recording messages) via new EMBEDDED_MPV.PLAYER.* keys, synced across en + 17 locales through the i18n-fill workflow - replace the legacy @Output() EventEmitter with the signal output() API Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> * fix(playback): react to language changes and respect ozone platform hint Address review feedback on #1122: - add a translationsTick signal (onLangChange/onTranslationChange/ onDefaultLangChange) read by every computed() and template helper that calls translate.instant(), so labels re-evaluate on a runtime language switch and when the translation file finishes loading after mount - suppress the Linux --ozone-platform=x11 fallback when the user set ELECTRON_OZONE_PLATFORM_HINT, matching the existing respect for an explicit --ozone-platform switch Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> --------- Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
38 lines
1.8 KiB
JSON
38 lines
1.8 KiB
JSON
{
|
|
"$schema": "../../node_modules/nx/schemas/project-schema.json",
|
|
"name": "packaging",
|
|
"projectType": "library",
|
|
"sourceRoot": "tools/packaging",
|
|
"targets": {
|
|
"test": {
|
|
"executor": "nx:run-commands",
|
|
"cache": true,
|
|
"inputs": [
|
|
"default",
|
|
"{workspaceRoot}/package.json",
|
|
"{workspaceRoot}/electron-builder.json",
|
|
"{workspaceRoot}/.github/workflows/build-and-make.yaml",
|
|
"{workspaceRoot}/apps/electron-backend/build-embedded-mpv.js",
|
|
"{workspaceRoot}/apps/electron-backend/project.json",
|
|
"{workspaceRoot}/apps/electron-backend/native/src/embedded_mpv_win32.cc",
|
|
"{workspaceRoot}/apps/electron-backend/src/app/options/maker.options.json",
|
|
"{workspaceRoot}/tools/packaging/generate-electron-builder-metadata.mjs",
|
|
"{workspaceRoot}/tools/packaging/asar-dependency-closure.mjs",
|
|
"{workspaceRoot}/tools/packaging/asar-dependency-closure.test.mjs",
|
|
"{workspaceRoot}/tools/packaging/embedded-mpv-packaging.cjs",
|
|
"{workspaceRoot}/tools/packaging/embedded-mpv-arch.test.mjs",
|
|
"{workspaceRoot}/tools/embedded-mpv/stage-runtime.mjs",
|
|
"{workspaceRoot}/tools/embedded-mpv/stage-windows-runtime-archive.mjs"
|
|
],
|
|
"options": {
|
|
"command": "node --test tools/packaging/electron-package-identity.test.mjs tools/packaging/asar-dependency-closure.test.mjs tools/packaging/embedded-mpv-arch.test.mjs",
|
|
"cwd": "{workspaceRoot}"
|
|
}
|
|
},
|
|
"lint": {
|
|
"command": "eslint \"tools/packaging/**/*.{js,cjs,mjs,ts}\""
|
|
}
|
|
},
|
|
"tags": ["scope:tools", "domain:packaging", "type:tool"]
|
|
}
|