{ "name": "peertube", "description": "PeerTube, an ActivityPub-federated video streaming platform using P2P directly in your web browser.", "version": "9.0.0-rc.1", "private": true, "license": "AGPL-3.0", "engines": { "node": ">=22.x", "pnpm": ">=12" }, "type": "module", "author": { "name": "Chocobozzz", "email": "chocobozzz@framasoft.org", "url": "http://github.com/Chocobozzz" }, "repository": { "type": "git", "url": "git+https://github.com/Chocobozzz/PeerTube.git" }, "typings": "*.d.ts", "scripts": { "install-node-dependencies": "pnpm install --frozen-lockfile", "generate-config-schema": "tsx --conditions=peertube:tsx ./scripts/generate-config-schema.ts", "validate-config-schema": "tsx --conditions=peertube:tsx ./scripts/validate-config-schema.ts", "benchmark-server": "tsx --conditions=peertube:tsx ./scripts/benchmark.ts", "benchmark-transcription": "tsx --conditions=peertube:tsx --tsconfig ./packages/transcription/tsconfig.json ./packages/transcription/src/benchmark.ts", "build:client": "bash ./scripts/build/client.sh", "build:embed": "bash ./scripts/build/embed.sh", "build:peertube-cli": "bash ./scripts/build/peertube-cli.sh", "build:peertube-runner": "bash ./scripts/build/peertube-runner.sh", "build:server": "bash ./scripts/build/server.sh", "build:tests": "bash ./scripts/build/tests.sh", "build": "bash ./scripts/build/index.sh", "ci": "bash ./scripts/ci.sh", "clean:client": "bash ./scripts/clean/client/index.sh", "clean:server:test": "bash ./scripts/clean/server/test.sh", "client-report": "bash ./scripts/client-report.sh", "client:build-stats": "tsx --conditions=peertube:tsx ./scripts/client-build-stats.ts", "commander": "commander", "concurrently": "concurrently", "create-generate-storyboard-job": "node ./dist/scripts/create-generate-storyboard-job.js", "create-import-video-file-job": "node ./dist/scripts/create-import-video-file-job.js", "create-move-file-storage-job": "node ./dist/scripts/create-move-file-storage-job.js", "create-move-video-storage-job": "node ./dist/scripts/create-move-video-storage-job.js", "dev:client": "bash ./scripts/dev/client.sh", "dev:embed": "bash ./scripts/dev/embed.sh", "dev:peertube-cli": "bash ./scripts/dev/peertube-cli.sh", "dev:peertube-runner": "bash ./scripts/dev/peertube-runner.sh", "dev:server": "bash ./scripts/dev/server.sh", "dev": "bash ./scripts/dev/index.sh", "e2e:browserstack": "bash ./scripts/e2e/browserstack.sh", "e2e:local": "bash ./scripts/e2e/local.sh", "oxlint": "oxlint", "generate-cli-doc": "bash ./scripts/generate-cli-doc.sh", "generate-code-contributors": "tsx --conditions=peertube:tsx ./scripts/generate-code-contributors.ts", "generate-types-package": "tsx --conditions=peertube:tsx ./packages/types-generator/generate-package.ts", "house-keeping": "LOGGER_LEVEL=warn node ./dist/scripts/house-keeping.js", "i18n:create-custom-files": "tsx --tsconfig ./scripts/tsconfig.json --conditions=peertube:tsx ./scripts/i18n/create-custom-files.ts", "i18n:update": "bash ./scripts/i18n/update.sh", "lint": "npm run ci -- lint", "mocha": "mocha", "ng": "ng", "nightly": "bash ./scripts/nightly.sh", "openapi-clients": "bash ./scripts/openapi-clients.sh", "parse-log": "node ./dist/scripts/parse-log.js", "plugin:install": "node ./dist/scripts/plugin/install.js", "plugin:uninstall": "node ./dist/scripts/plugin/uninstall.js", "prune-storage": "LOGGER_LEVEL=warn node ./dist/scripts/prune-storage.js", "regenerate-thumbnails": "node ./dist/scripts/regenerate-thumbnails.js", "release-embed-api": "bash ./scripts/release-embed-api.sh", "release": "bash ./scripts/release.sh", "reset-password": "node ./dist/scripts/reset-password.js", "simulate-many-viewers": "tsx --conditions=peertube:tsx ./scripts/simulate-many-viewers.ts", "start:server": "node dist/server --no-client", "start": "node dist/server", "swagger-cli": "swagger-cli", "test": "bash ./scripts/test.sh", "tsc-alias:server-lib": "npm run tsc-alias -- --project server/tsconfig.lib.json", "tsc-alias:server": "npm run tsc-alias -- --project server/tsconfig.json", "tsc-alias:tests": "npm run tsc-alias -- --project packages/tests/tsconfig.json", "tsc-alias": "tsc-alias", "tsc": "tsc", "tsx": "tsx", "update-host": "node ./dist/scripts/update-host.js" }, "resolutions": { "@types/express": "4.17.9", "@types/express-serve-static-core": "4.19.5" }, "optionalDependencies": { "webtorrent": "^3.0.21" }, "dependencies": { "@aws-sdk/client-s3": "^3.1161.0", "@aws-sdk/lib-storage": "^3.1161.0", "@aws-sdk/s3-request-presigner": "^3.1161.0", "@commander-js/extra-typings": "^15.0.0", "@img/sharp-wasm32": "^0.35.5", "@logtape/adaptor-winston": "^2.4.2", "@misskey-dev/node-http-message-signatures": "^1.1.2", "@node-oauth/oauth2-server": "^5.3.1", "@opentelemetry/api": "^1.10.0", "@opentelemetry/context-async-hooks": "^3.0.0", "@opentelemetry/core": "^3.0.0", "@opentelemetry/exporter-prometheus": "~0.300.0", "@opentelemetry/exporter-trace-otlp-http": "^0.300.0", "@opentelemetry/instrumentation": "^0.300.0", "@opentelemetry/instrumentation-dns": "^0.67.0", "@opentelemetry/instrumentation-express": "^0.72.0", "@opentelemetry/instrumentation-fs": "^0.43.0", "@opentelemetry/instrumentation-http": "^0.300.0", "@opentelemetry/instrumentation-ioredis": "^0.72.0", "@opentelemetry/instrumentation-pg": "^0.77.0", "@opentelemetry/instrumentation-sequelize": "^0.17.0", "@opentelemetry/resources": "^3.0.0", "@opentelemetry/sdk-metrics": "^3.0.0", "@opentelemetry/sdk-trace": "^3.0.0", "@opentelemetry/semantic-conventions": "^1.44.0", "@peertube/bittorrent-tracker-server": "^11.1.2", "@peertube/feed": "^5.6.0", "@peertube/peertube-core-utils": "workspace:*", "@peertube/peertube-ffmpeg": "workspace:*", "@peertube/peertube-models": "workspace:*", "@peertube/peertube-node-utils": "workspace:*", "@peertube/peertube-server-commands": "workspace:*", "@peertube/peertube-transcription": "workspace:*", "@peertube/peertube-typescript-utils": "workspace:*", "@smithy/node-http-handler": "^4.14.1", "@socket.io/redis-adapter": "^8.3.0", "@types/parse-torrent": "^11.0.1", "@uploadx/core": "^7.0.3", "@uploadx/s3": "^7.0.3", "archiver": "^8.0.0", "async-mutex": "^0.5.0", "bcrypt": "6.0.0", "bencode": "^4.0.1", "bullmq": "^6.5.3", "bytes": "^3.1.2", "cacheable-lookup": "^7.0.0", "commander": "^15.0.0", "config": "^5.0.1", "content-disposition": "^3.0.0", "cookie-parser": "^1.4.7", "cors": "^2.8.6", "create-torrent": "^6.1.3", "email-templates": "^13.0.1", "execa": "^10.2.1", "express": "^4.22.2", "express-rate-limit": "^8.7.2", "express-validator": "^7.3.2", "fluent-ffmpeg": "^2.1.3", "fs-extra": "^11.4.1", "got": "^16.2.0", "handlebars": "^4.7.10", "helmet": "^8.3.0", "http-problem-details": "^0.1.7", "i18next": "^26.7.1", "i18next-icu": "^2.6.1", "intl-messageformat": "^12.1.4", "ioredis": "^6.0.0", "ip-anonymize": "^0.1.0", "ipaddr.js": "^2.5.0", "iso-639-3": "3.0.1", "js-yaml": "^5.5.0", "jsonld": "~9.0.0", "jsonwebtoken": "^9.0.3", "linkify-it": "^6.1.0", "lodash-es": "^4.18.1", "lru-cache": "^11.5.3", "magnet-uri": "^7.0.10", "markdown-it": "^15.0.3", "markdown-it-emoji": "^3.1.0", "maxmind": "^5.0.8", "memoizee": "^0.4.17", "morgan": "^1.12.1", "multer": "^2.5.0", "node-html-parser": "^9.0.6", "node-media-server": "^2.7.4", "nodemailer": "^10.3.1", "otpauth": "^9.5.2", "p-queue": "^10.0.0", "parse-torrent": "^11.0.24", "password-generator": "^3.0.0", "pg": "^8.23.1", "piscina": "^5.3.2", "prompts": "^2.4.2", "proxy-addr": "^2.0.8", "pug": "^3.0.4", "reflect-metadata": "^0.2.2", "sanitize-html": "~2.18.1", "sequelize": "~6.37.8", "sequelize-pool": "^8.0.1", "sequelize-typescript": "^2.1.6", "sharp": "^0.35.5", "short-uuid": "^6.0.3", "sitemap": "^10.0.0", "socket.io": "^4.8.4", "sql-formatter": "^15.9.0", "srt-to-vtt": "^1.1.3", "tslib": "^2.9.1", "ua-parser-js": "^2.0.10", "uuid": "^14.0.3", "validator": "^13.15.35", "winston": "3.19.0", "ws": "^8.22.1", "yauzl": "^3.4.0" }, "devDependencies": { "@stylistic/eslint-plugin": "^5.10.0", "@types/archiver": "^8.0.0", "@types/bcrypt": "^6.0.0", "@types/bencode": "^4.0.0", "@types/body-parser": "^1.19.6", "@types/bytes": "^3.1.6", "@types/chai": "^5.2.3", "@types/chai-json-schema": "^1.4.10", "@types/chai-xml": "^0.3.6", "@types/content-disposition": "^0.5.9", "@types/create-torrent": "^6.1.1", "@types/express": "4.17.9", "@types/express-serve-static-core": "4.19.5", "@types/fluent-ffmpeg": "^2.1.28", "@types/fs-extra": "^11.0.4", "@types/jsonld": "^1.5.15", "@types/jsonwebtoken": "^9.0.10", "@types/linkify-it": "^5.0.0", "@types/lodash-es": "^4.17.12", "@types/magnet-uri": "^7.0.0", "@types/memoizee": "^0.4.12", "@types/mocha": "^10.0.10", "@types/morgan": "^1.9.10", "@types/multer": "^2.3.0", "@types/node": "22.20.5", "@types/prompts": "^2.4.9", "@types/pug": "^2.0.10", "@types/validator": "^13.15.10", "@types/webtorrent": "^3.0.0", "@types/ws": "^8.18.2", "@types/yauzl": "^3.4.0", "@typescript/typescript6": "^6.0.2", "ajv": "^8.20.0", "autocannon": "^8.0.0", "chai": "^6.3.0", "chai-json-schema": "^2.0.1", "chai-xml": "^0.4.1", "concurrently": "^10.0.6", "depcheck": "^1.4.7", "eslint-plugin-eslint-comments": "^3.2.0", "i18next-cli": "^1.82.0", "jszip": "^3.10.2", "maildev": "^3.0.0", "mocha": "^12.0.3", "oxlint": "^1.90.0", "oxlint-tsgolint": "^7.0.2005", "pixelmatch": "^7.2.0", "proxy": "^4.1.0", "rollup": "^4.67.4", "rollup-plugin-dts": "^6.5.1", "socket.io-client": "^4.8.4", "swagger-cli": "^4.0.4", "tsc-alias": "^1.9.10", "tsc-watch": "^7.2.1", "tsx": "^4.23.15", "type-fest": "^5.10.0", "typescript": "~7.0.2" }, "packageManager": "pnpm@12.15.0+sha512.b3951d6d6ff4a9f13dc7cf56cd28d2b8eb37dbcc9c68e52e1e1191873ea9f82a017287ab50baadc5ccc494f036c67c0e47eb13608c2fa36f47711b61ea128e61" }