mirror of
https://github.com/4gray/iptvnator.git
synced 2026-10-08 17:06:15 -08:00
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.
216 lines
7.3 KiB
JSON
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"
|
|
}
|
|
}
|