mirror of
https://github.com/4gray/iptvnator.git
synced 2026-10-08 17:06:15 -08:00
Add webpack config and include it in the electron backend build so worker scripts are correctly bundled for packaged apps. Move worker files to be packaged as extraResources instead of asar unpack patterns so the packaged app can load worker JS from Resources/dist/... at runtime. Fix worker path resolution in epg.events: compute resourcesPath from app.getAppPath() and point to dist/apps/electron-backend/workers when app.isPackaged. Remove verbose app path logging and update comments to reflect the actual packaged layout. Why: ensure webworker entry points are included in the renderer/backend bundle and accessible when the Electron app is packaged, preventing worker loading failures in production builds.
230 lines
7.7 KiB
JSON
230 lines
7.7 KiB
JSON
{
|
|
"name": "iptvnator",
|
|
"version": "0.17.0",
|
|
"license": "MIT",
|
|
"description": "IPTV player application.",
|
|
"homepage": "https://github.com/4gray/iptvnator",
|
|
"author": {
|
|
"name": "4gray",
|
|
"email": "fourgray@proton.me"
|
|
},
|
|
"keywords": [
|
|
"angular",
|
|
"electron",
|
|
"typescript",
|
|
"m3u",
|
|
"m3u8",
|
|
"player",
|
|
"iptv",
|
|
"video",
|
|
"tv"
|
|
],
|
|
"build": {
|
|
"appId": "com.fourgray.iptvnator",
|
|
"productName": "IPTVnator",
|
|
"artifactName": "${name}-${version}-${os}-${arch}.${ext}",
|
|
"directories": {
|
|
"buildResources": "dist/apps",
|
|
"output": "dist/executables"
|
|
},
|
|
"files": [
|
|
"electron-backend/**/*",
|
|
"web/**/*",
|
|
"remote-control-web/**/*",
|
|
"!**/*.map"
|
|
],
|
|
"extraMetadata": {
|
|
"main": "electron-backend/main.js"
|
|
},
|
|
"extraResources": [
|
|
"dist/apps/electron-backend/workers"
|
|
],
|
|
"mac": {
|
|
"target": {
|
|
"target": "dmg",
|
|
"arch": [
|
|
"x64",
|
|
"arm64"
|
|
]
|
|
},
|
|
"category": "public.app-category.video",
|
|
"identity": null,
|
|
"gatekeeperAssess": false,
|
|
"hardenedRuntime": false,
|
|
"entitlements": null,
|
|
"entitlementsInherit": null,
|
|
"icon": "apps/web/src/assets/icons/favicon.icns"
|
|
},
|
|
"linux": {
|
|
"category": "Video",
|
|
"target": [
|
|
"AppImage",
|
|
"Snap",
|
|
"deb",
|
|
"rpm"
|
|
],
|
|
"artifactName": "${name}-${version}-${os}-${arch}.${ext}",
|
|
"icon": "apps/web/src/assets/icons"
|
|
},
|
|
"win": {
|
|
"compression": "maximum",
|
|
"target": [
|
|
{
|
|
"target": "nsis",
|
|
"arch": [
|
|
"ia32",
|
|
"x64"
|
|
]
|
|
}
|
|
],
|
|
"artifactName": "${name}-${version}-windows-${arch}-setup.${ext}",
|
|
"icon": "apps/web/src/assets/icons/icon.png"
|
|
},
|
|
"nsis": {
|
|
"artifactName": "${name}-${version}-windows-${arch}-setup.${ext}"
|
|
}
|
|
},
|
|
"scripts": {
|
|
"postinstall": "electron-builder install-app-deps",
|
|
"build:frontend": "nx build web",
|
|
"build:frontend:pwa": "nx build web --configuration=pwa",
|
|
"build:backend": "nx build electron-backend",
|
|
"serve:frontend": "nx serve web --no-tui",
|
|
"serve:frontend:pwa": "nx serve web --configuration=pwa --no-tui",
|
|
"serve:backend": "nx serve electron-backend",
|
|
"test:frontend": "nx test web",
|
|
"test:backend": "nx test electron-backend",
|
|
"package:app": "nx run electron-backend:make --prepackageOnly",
|
|
"make:app": "nx run electron-backend:make"
|
|
},
|
|
"private": true,
|
|
"dependencies": {
|
|
"@angular/animations": "^20.3.10",
|
|
"@angular/cdk": "^20.2.12",
|
|
"@angular/common": "~20.3.10",
|
|
"@angular/compiler": "~20.3.10",
|
|
"@angular/core": "~20.3.10",
|
|
"@angular/forms": "~20.3.10",
|
|
"@angular/material": "^20.2.12",
|
|
"@angular/platform-browser": "~20.3.10",
|
|
"@angular/platform-browser-dynamic": "~20.3.10",
|
|
"@angular/router": "~20.3.10",
|
|
"@libsql/client": "0.15.15",
|
|
"@ngrx/component-store": "20.0.0",
|
|
"@ngrx/effects": "20.0.0",
|
|
"@ngrx/entity": "20.0.0",
|
|
"@ngrx/router-store": "20.0.0",
|
|
"@ngrx/signals": "20.0.0",
|
|
"@ngrx/store": "20.0.0",
|
|
"@ngrx/store-devtools": "20.0.0",
|
|
"@ngx-pwa/local-storage": "20.0.0",
|
|
"@rx-angular/cdk": "20.0.0",
|
|
"@rx-angular/template": "20.0.0",
|
|
"@videojs/http-streaming": "2.15.0",
|
|
"@yangkghjh/videojs-aspect-ratio-panel": "0.0.1",
|
|
"artplayer": "5.3.0",
|
|
"axios": "1.12.2",
|
|
"date-fns": "4.1.0",
|
|
"drizzle-orm": "0.44.6",
|
|
"electron-conf": "1.3.0",
|
|
"electron-store": "11.0.2",
|
|
"epg-parser": "0.4.0",
|
|
"fix-path": "5.0.0",
|
|
"hls.js": "1.6.13",
|
|
"iptv-playlist-parser": "github:4gray/iptv-playlist-parser",
|
|
"lodash": "4.17.21",
|
|
"moment": "2.30.1",
|
|
"ngx-indexed-db": "21.0.0",
|
|
"ngx-skeleton-loader": "11.3.0",
|
|
"rxjs": "7.8.2",
|
|
"semver": "7.7.3",
|
|
"uuid": "9.0.0",
|
|
"video.js": "8.23.4",
|
|
"videojs-contrib-quality-levels": "4.1.0",
|
|
"videojs-hls-quality-selector": "2.0.0",
|
|
"zone.js": "~0.15.1"
|
|
},
|
|
"devDependencies": {
|
|
"@angular-devkit/core": "~20.3.9",
|
|
"@angular-devkit/schematics": "~20.3.9",
|
|
"@angular-eslint/builder": "20.5.2",
|
|
"@angular-eslint/eslint-plugin": "20.5.2",
|
|
"@angular-eslint/eslint-plugin-template": "20.5.2",
|
|
"@angular-eslint/schematics": "20.5.2",
|
|
"@angular-eslint/template-parser": "20.5.2",
|
|
"@angular/build": "~20.3.9",
|
|
"@angular/cli": "~20.3.9",
|
|
"@angular/common": "20.3.10",
|
|
"@angular/compiler": "20.3.10",
|
|
"@angular/compiler-cli": "~20.3.10",
|
|
"@angular/core": "20.3.10",
|
|
"@angular/forms": "20.3.10",
|
|
"@angular/language-service": "~20.3.10",
|
|
"@angular/platform-browser": "20.3.10",
|
|
"@angular/platform-browser-dynamic": "20.3.10",
|
|
"@angular/router": "20.3.10",
|
|
"@angular/service-worker": "20.3.10",
|
|
"@eslint/eslintrc": "3.3.1",
|
|
"@eslint/js": "^9.38.0",
|
|
"@ngrx/eslint-plugin": "^20.0.0",
|
|
"@ngx-translate/core": "16.0.4",
|
|
"@ngx-translate/http-loader": "16.0.1",
|
|
"@nx/angular": "22.0.2",
|
|
"@nx/devkit": "22.0.2",
|
|
"@nx/eslint": "22.0.2",
|
|
"@nx/eslint-plugin": "22.0.2",
|
|
"@nx/jest": "22.0.2",
|
|
"@nx/js": "22.0.2",
|
|
"@nx/playwright": "22.0.2",
|
|
"@nx/web": "22.0.2",
|
|
"@nx/workspace": "22.0.2",
|
|
"@playwright/test": "^1.36.0",
|
|
"@schematics/angular": "~20.1.0",
|
|
"@semantic-release/changelog": "6.0.3",
|
|
"@semantic-release/git": "10.0.1",
|
|
"@semantic-release/npm": "12.0.1",
|
|
"@swc-node/register": "~1.9.1",
|
|
"@swc/core": "~1.5.7",
|
|
"@swc/helpers": "~0.5.11",
|
|
"@types/jest": "^30.0.0",
|
|
"@types/lodash": "4.17.20",
|
|
"@types/mocha": "9.0.0",
|
|
"@types/node": "20.19.9",
|
|
"@types/uuid": "^10.0.0",
|
|
"@types/video.js": "7.3.29",
|
|
"@types/videojs-hls-quality-selector": "1.1.0",
|
|
"@typescript-eslint/eslint-plugin": "^8.46.2",
|
|
"@typescript-eslint/parser": "^8.46.2",
|
|
"@typescript-eslint/utils": "^8.46.2",
|
|
"angular-eslint": "20.5.2",
|
|
"conventional-changelog-cli": "5.0.0",
|
|
"drizzle-kit": "0.31.5",
|
|
"electron": "^39.0.0",
|
|
"electron-builder": "^26.0.12",
|
|
"esbuild": "0.27.0",
|
|
"eslint": "^9.8.0",
|
|
"eslint-config-prettier": "^10.1.8",
|
|
"eslint-plugin-import": "2.32.0",
|
|
"eslint-plugin-playwright": "^1.6.2",
|
|
"globals": "15.9.0",
|
|
"jest": "^30.0.2",
|
|
"jest-environment-jsdom": "^30.0.2",
|
|
"jest-environment-node": "^30.0.2",
|
|
"jest-preset-angular": "~15.0.0",
|
|
"jest-util": "^30.0.2",
|
|
"jsonc-eslint-parser": "^2.1.0",
|
|
"ng-mocks": "14.14.0",
|
|
"nx": "22.0.2",
|
|
"nx-electron": "^21.0.1",
|
|
"playwright": "1.56.1",
|
|
"playwright-core": "1.56.1",
|
|
"prettier": "^3.6.2",
|
|
"semantic-release": "24.2.9",
|
|
"ts-jest": "^29.4.5",
|
|
"ts-node": "10.9.2",
|
|
"tslib": "^2.8.1",
|
|
"typescript": "5.9.3",
|
|
"typescript-eslint": "^8.46.2"
|
|
}
|
|
}
|