{
  "name": "iptv",
  "scripts": {
    "act:check": "gh act pull_request -W .github/workflows/check.yml",
    "act:format": "gh act workflow_dispatch -W .github/workflows/format.yml",
    "act:update": "gh act workflow_dispatch -W .github/workflows/update.yml",
    "api:load": "tsx scripts/commands/api/load.ts",
    "api:generate": "tsx scripts/commands/api/generate.ts",
    "api:deploy": "npx gh-pages-clean && npx gh-pages -a -m \"Deploy to iptv-org/api\" -d .api -r https://$GITHUB_TOKEN@github.com/iptv-org/api.git",
    "playlist:format": "tsx scripts/commands/playlist/format.ts",
    "playlist:update": "tsx scripts/commands/playlist/update.ts",
    "playlist:generate": "tsx scripts/commands/playlist/generate.ts",
    "playlist:validate": "tsx scripts/commands/playlist/validate.ts",
    "playlist:lint": "npx m3u-linter -c m3u-linter.json",
    "playlist:test": "tsx scripts/commands/playlist/test.ts",
    "playlist:edit": "tsx scripts/commands/playlist/edit.ts",
    "playlist:deploy": "npx gh-pages-clean && npx gh-pages -m \"Deploy to GitHub Pages\" -d .gh-pages -r https://$GITHUB_TOKEN@github.com/iptv-org/iptv.git",
    "readme:update": "tsx scripts/commands/readme/update.ts",
    "report:create": "tsx scripts/commands/report/create.ts",
    "check": "npm run playlist:lint && npm run playlist:validate",
    "format": "npm run playlist:format",
    "update": "npm run playlist:generate && npm run api:generate && npm run readme:update",
    "deploy": "npm run playlist:deploy && npm run api:deploy",
    "lint": "npx eslint \"scripts/**/*.{ts,js}\" \"tests/**/*.{ts,js}\"",
    "test": "jest --runInBand",
    "postinstall": "npm run api:load"
  },
  "jest": {
    "transform": {
      "^.+\\.ts$": "@swc/jest"
    },
    "testRegex": "tests/(.*?/)?.*test.ts$",
    "setupFilesAfterEnv": [
      "jest-expect-message"
    ]
  },
  "author": "Arhey",
  "private": true,
  "license": "MIT",
  "dependencies": {
    "@alex_neo/jest-expect-message": "^1.0.5",
    "@eslint/eslintrc": "^3.3.1",
    "@eslint/js": "^9.32.0",
    "@freearhey/core": "^0.14.3",
    "@freearhey/search-js": "^0.1.2",
    "@freearhey/storage-js": "^0.1.0",
    "@inquirer/prompts": "^7.8.0",
    "@iptv-org/sdk": "^1.0.2",
    "@octokit/core": "^7.0.3",
    "@octokit/plugin-paginate-rest": "^13.1.1",
    "@octokit/plugin-rest-endpoint-methods": "^16.0.0",
    "@octokit/types": "^14.1.0",
    "@stylistic/eslint-plugin": "^5.2.2",
    "@swc/jest": "^0.2.39",
    "@types/async": "^3.2.25",
    "@types/cli-progress": "^3.11.6",
    "@types/fs-extra": "^11.0.4",
    "@types/jest": "^30.0.0",
    "@types/lodash.uniqueid": "^4.0.9",
    "@types/node-cleanup": "^2.1.5",
    "@typescript-eslint/eslint-plugin": "^8.38.0",
    "@typescript-eslint/parser": "^8.38.0",
    "async": "^3.2.6",
    "axios": "^1.11.0",
    "chalk": "^5.4.1",
    "cli-progress": "^3.12.0",
    "commander": "^14.0.0",
    "console-table-printer": "^2.14.6",
    "cross-env": "^10.0.0",
    "eslint": "^9.32.0",
    "glob": "^11.0.3",
    "globals": "^16.3.0",
    "iptv-playlist-parser": "^0.15.1",
    "jest": "^30.0.5",
    "jest-expect-message": "^1.1.3",
    "lodash.uniqueid": "^4.0.1",
    "m3u-linter": "^0.4.2",
    "mediainfo.js": "^0.3.6",
    "node-cleanup": "^2.1.2",
    "normalize-url": "^8.1.0",
    "socks-proxy-agent": "^8.0.5",
    "tsx": "^4.20.3"
  }
}
