{ "name": "kiratv", "version": "0.20.0", "license": "MIT", "description": "KiraTV — cliente IPTV para Kira Cloud (Windows y Linux).", "homepage": "https://play.kiracloud.es", "author": { "name": "Kira Cloud", "email": "jnavajascordobes@gmail.com" }, "keywords": [ "angular", "electron", "typescript", "m3u", "m3u8", "player", "iptv", "video", "tv" ], "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 --configuration=production", "build:kiratv": "nx run electron-backend:build --configuration=kiratv", "make:kiratv": "nx run electron-backend:make --configuration=kiratv", "make:kiratv:linux-deb": "node tools/packaging/make-kiratv-linux-deb.mjs", "make:kiratv:linux-deb-appimage": "node tools/packaging/make-kiratv-linux-deb-appimage.mjs", "packaging:download-vlc-windows": "node tools/packaging/download-vlc-windows.mjs", "make:kiratv:windows-nsis": "node tools/packaging/make-kiratv-windows-nsis.mjs", "make:kiratv:release": "node tools/packaging/make-kiratv-release-artifacts.mjs", "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", "test:unit:all": "nx run-many --target=test --all --parallel=3", "test:unit:ci": "nx run-many --target=test --projects=electron-backend,web,services,m3u-state,portal-stalker-data-access,portal-shared-util,playlist-shared-ui,portal-xtream-data-access,portal-xtream-feature,workspace-dashboard-data-access,components,@iptvnator/pipes --parallel=3 --output-style=static", "typecheck:web": "tsc -p apps/web/tsconfig.app.json --noEmit", "typecheck:backend": "tsc -p apps/electron-backend/tsconfig.app.json --noEmit", "typecheck:ci": "pnpm run typecheck:web && pnpm run typecheck:backend", "verify:package-layout": "node tools/packaging/verify-electron-package-layout.mjs", "package:app": "nx run electron-backend:make --prepackageOnly", "make:app": "nx run electron-backend:make", "smoke:packaged": "node tools/testing/launch-packaged-electron.mjs", "serve:website": "nx serve website", "build:website": "nx build website", "lint": "nx lint electron-backend", "build": "nx build electron-backend", "wiki:export": "node tools/wiki/export-wiki-context.mjs", "test:wiki-export": "node --test tools/wiki/export-wiki-context.test.mjs" }, "private": true, "packageManager": "pnpm@10.33.0+sha512.10568bb4a6afb58c9eb3630da90cc9516417abebd3fabbe6739f0ae795728da1491e9db5a544c76ad8eb7570f5c4bb3d6c637b2cb41bfdcdb47fa823c8649319", "dependencies": { "@angular/animations": "21.1.5", "@angular/cdk": "^21.1.5", "@angular/common": "~21.1.5", "@angular/compiler": "~21.1.5", "@angular/core": "~21.1.5", "@angular/forms": "~21.1.5", "@angular/material": "^21.1.5", "@angular/platform-browser": "~21.1.5", "@angular/platform-browser-dynamic": "~21.1.5", "@angular/router": "~21.1.5", "@ngrx/component-store": "21.0.1", "@ngrx/effects": "21.0.1", "@ngrx/entity": "21.0.1", "@ngrx/router-store": "21.0.1", "@ngrx/signals": "21.0.1", "@ngrx/store": "21.0.1", "@ngrx/store-devtools": "21.0.1", "@ngx-pwa/local-storage": "21.0.0", "@videojs/http-streaming": "2.15.0", "@yangkghjh/videojs-aspect-ratio-panel": "0.0.1", "angularx-qrcode": "21.0.4", "artplayer": "5.3.0", "axios": "1.15.0", "better-sqlite3": "^12.5.0", "date-fns": "4.1.0", "drizzle-orm": "0.45.2", "electron-conf": "1.3.0", "electron-dl": "4.0.0", "fix-path": "5.0.0", "hls.js": "1.6.13", "iptv-playlist-parser": "github:4gray/iptv-playlist-parser", "lodash": "4.18.1", "mpegts.js": "1.8.0", "ngx-indexed-db": "21.0.0", "ngx-skeleton-loader": "11.3.0", "rxjs": "7.8.2", "saxes": "6.0.0", "semver": "7.7.3", "uuid": "9.0.0", "video.js": "8.23.4", "videojs-contrib-quality-levels": "4.1.0", "videojs-quality-selector-hls": "1.1.1", "zone.js": "~0.15.1" }, "devDependencies": { "@angular-devkit/core": "~21.1.4", "@angular-devkit/schematics": "~21.1.4", "@angular-eslint/builder": "21.2.0", "@angular-eslint/eslint-plugin": "21.2.0", "@angular-eslint/eslint-plugin-template": "21.2.0", "@angular-eslint/schematics": "21.2.0", "@angular-eslint/template-parser": "21.2.0", "@angular/build": "~21.1.4", "@angular/cli": "~21.1.4", "@angular/common": "21.1.5", "@angular/compiler": "21.1.5", "@angular/compiler-cli": "21.1.5", "@angular/core": "21.1.5", "@angular/forms": "21.1.5", "@angular/language-service": "21.1.5", "@angular/platform-browser": "21.1.5", "@angular/platform-browser-dynamic": "21.1.5", "@angular/router": "21.1.5", "@angular/service-worker": "21.1.5", "@astrojs/mdx": "4.3.13", "@astrojs/sitemap": "3.7.0", "@astrojs/tailwind": "6.0.2", "@eslint/eslintrc": "3.3.1", "@eslint/js": "^9.38.0", "@faker-js/faker": "10.3.0", "@fontsource/crimson-pro": "5.2.8", "@fontsource/dm-sans": "5.2.8", "@fontsource/jetbrains-mono": "5.2.8", "@fontsource/roboto": "5.2.10", "@ngrx/eslint-plugin": "^21.0.1", "@ngx-translate/core": "16.0.4", "@ngx-translate/http-loader": "16.0.1", "@nx/angular": "22.5.1", "@nx/devkit": "22.5.1", "@nx/eslint": "22.5.1", "@nx/eslint-plugin": "22.5.1", "@nx/jest": "22.5.1", "@nx/js": "22.5.1", "@nx/playwright": "22.5.1", "@nx/web": "22.5.1", "@nx/workspace": "22.5.1", "@playwright/test": "^1.36.0", "@schematics/angular": "~21.1.4", "@semantic-release/changelog": "6.0.3", "@semantic-release/git": "10.0.1", "@semantic-release/npm": "12.0.1", "@swc-node/register": "1.11.1", "@swc/core": "1.15.8", "@swc/helpers": "0.5.18", "@tailwindcss/typography": "0.5.19", "@types/better-sqlite3": "^7.6.12", "@types/cors": "2.8.19", "@types/express": "5.0.6", "@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", "@typescript-eslint/eslint-plugin": "^8.46.2", "@typescript-eslint/parser": "^8.46.2", "@typescript-eslint/utils": "^8.46.2", "angular-eslint": "20.5.2", "astro": "5.18.1", "conventional-changelog-cli": "5.0.0", "cors": "2.8.6", "drizzle-kit": "0.31.5", "electron": "^39.8.5", "electron-builder": "^26.0.12", "electron-playwright-helpers": "1.8.2", "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", "express": "5.2.1", "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", "material-design-icons-iconfont": "6.7.0", "ng-mocks": "14.15.1", "nx": "22.5.1", "nx-electron": "^21.0.1", "prettier": "^3.8.1", "semantic-release": "24.2.9", "sharp": "0.34.5", "tailwindcss": "^3.4.19", "ts-jest": "^29.4.5", "ts-node": "10.9.2", "tslib": "^2.8.1", "tsx": "4.21.0", "typescript": "5.9.3", "typescript-eslint": "^8.46.2" }, "pnpm": { "overrides": { "@hono/node-server@1.19.9": "1.19.14", "ajv@6.12.6": "6.14.0", "brace-expansion@1.1.12": "1.1.13", "defu@6.1.4": "6.1.6", "devalue@5.6.2": "5.6.4", "express-rate-limit@8.2.1": "8.3.0", "flatted@3.3.3": "3.4.2", "follow-redirects@1.15.11": "1.16.0", "h3@1.15.5": "1.15.10", "hono@4.12.0": "4.12.14", "immutable@5.1.4": "5.1.5", "lodash-es@4.17.22": "4.18.1", "node-forge@1.3.3": "1.4.0", "path-to-regexp@0.1.12": "0.1.13", "picomatch@2.3.1": "2.3.2", "rollup@4.52.3": "4.59.0", "smol-toml@1.6.0": "1.6.1", "svgo@3.3.2": "3.3.3", "yaml@1.10.2": "1.10.3" } } }