Files
iptvnator/package.json
T
4gray 5b697f458a feat(electron): load epg worker from asar.unpacked in prod
Update EPG worker path handling and unpack worker files for production
builds so the worker can be spawned when the app is packaged with ASAR.
- Change workerPath to let and, when the resolved path includes
  app.asar, replace it with app.asar.unpacked. This ensures the spawned
  worker points to the unpacked resource in production.
- Add electron-builder asarUnpack pattern for workers/** so worker files
  are packaged outside the ASAR archive.
These changes fix runtime errors where worker threads cannot be started
from inside app.asar and ensure the EPG parser can run in packaged apps.
2025-11-23 22:16:33 +01:00

216 lines
7.3 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}",
"asarUnpack": [
"**/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",
"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"
}
}