PeerTube/package.json

261 lines
9.4 KiB
JSON
Raw Normal View History

2015-06-09 17:41:40 +02:00
{
"name": "peertube",
2021-01-14 09:43:06 +01:00
"description": "PeerTube, an ActivityPub-federated video streaming platform using P2P directly in your web browser.",
2023-06-21 09:06:13 +02:00
"version": "5.2.0",
2015-06-09 17:41:40 +02:00
"private": true,
2019-12-17 15:19:42 +01:00
"licence": "AGPL-3.0",
2015-06-09 17:41:40 +02:00
"engines": {
2023-05-25 08:46:13 +02:00
"node": ">=16.x",
"yarn": ">=1.x"
},
"type": "module",
"author": {
2018-10-03 16:43:57 +02:00
"name": "Chocobozzz",
2020-11-12 11:12:41 +01:00
"email": "chocobozzz@framasoft.org",
"url": "http://github.com/Chocobozzz"
},
"repository": {
"type": "git",
2018-08-16 10:57:57 +02:00
"url": "git+https://github.com/Chocobozzz/PeerTube.git"
2015-06-09 17:41:40 +02:00
},
"typings": "*.d.ts",
"workspaces": [
"packages/*",
"server"
],
2015-06-09 17:41:40 +02:00
"scripts": {
2021-09-02 08:57:59 +02:00
"e2e:browserstack": "bash ./scripts/e2e/browserstack.sh",
2021-05-05 10:56:40 +02:00
"e2e:local": "bash ./scripts/e2e/local.sh",
"build": "bash ./scripts/build/index.sh",
"build:embed": "bash ./scripts/build/embed.sh",
"build:server": "bash ./scripts/build/server.sh",
"build:client": "bash ./scripts/build/client.sh",
2023-04-21 15:05:27 +02:00
"build:peertube-runner": "bash ./scripts/build/peertube-runner.sh",
"build:peertube-cli": "bash ./scripts/build/peertube-cli.sh",
"build:tests": "bash ./scripts/build/tests.sh",
2021-05-05 10:56:40 +02:00
"clean:client": "bash ./scripts/clean/client/index.sh",
"clean:server:test": "bash ./scripts/clean/server/test.sh",
"i18n:update": "bash ./scripts/i18n/update.sh",
"dev": "bash ./scripts/dev/index.sh",
"dev:server": "bash ./scripts/dev/server.sh",
"dev:embed": "bash ./scripts/dev/embed.sh",
"dev:client": "bash ./scripts/dev/client.sh",
"dev:peertube-cli": "bash ./scripts/dev/peertube-cli.sh",
2023-04-21 15:05:27 +02:00
"dev:peertube-runner": "bash ./scripts/dev/peertube-runner.sh",
2017-06-10 22:57:31 +02:00
"start": "node dist/server",
2018-11-14 15:27:47 +01:00
"start:server": "node dist/server --no-client",
"plugin:install": "node ./dist/scripts/plugin/install.js",
"plugin:uninstall": "node ./dist/scripts/plugin/uninstall.js",
"reset-password": "node ./dist/scripts/reset-password.js",
2018-01-26 09:50:43 +01:00
"update-host": "node ./dist/scripts/update-host.js",
2021-03-12 17:04:49 +01:00
"regenerate-thumbnails": "node ./dist/scripts/regenerate-thumbnails.js",
"create-import-video-file-job": "node ./dist/scripts/create-import-video-file-job.js",
"create-move-video-storage-job": "node ./dist/scripts/create-move-video-storage-job.js",
2023-06-02 15:18:39 +02:00
"create-generate-storyboard-job": "node ./dist/scripts/create-generate-storyboard-job.js",
2018-01-26 09:50:43 +01:00
"parse-log": "node ./dist/scripts/parse-log.js",
2018-05-29 11:11:52 +02:00
"prune-storage": "node ./dist/scripts/prune-storage.js",
"test": "bash ./scripts/test.sh",
"generate-cli-doc": "bash ./scripts/generate-cli-doc.sh",
"generate-types-package": "tsx --conditions=peertube:tsx ./packages/types-generator/generate-package.ts",
2023-08-18 14:12:32 +02:00
"i18n:create-custom-files": "tsx --tsconfig ./scripts/tsconfig.json --conditions=peertube:tsx ./scripts/i18n/create-custom-files.ts",
"benchmark-server": "tsx --conditions=peertube:tsx ./scripts/benchmark.ts",
"client:build-stats": "tsx --conditions=peertube:tsx ./scripts/client-build-stats.ts",
"generate-code-contributors": "tsx --conditions=peertube:tsx ./scripts/generate-code-contributors.ts",
"simulate-many-viewers": "tsx --conditions=peertube:tsx ./scripts/simulate-many-viewers.ts",
"postinstall": "test -n \"$NOCLIENT\" || (cd client && yarn install --pure-lockfile)",
2017-06-10 22:57:31 +02:00
"tsc": "tsc",
"commander": "commander",
2019-07-29 11:59:29 +02:00
"lint": "npm run ci -- lint",
"ng": "ng",
"tsx": "tsx",
2020-01-31 16:56:52 +01:00
"eslint": "eslint",
2021-12-24 13:16:55 +01:00
"resolve-tspaths": "resolve-tspaths",
"resolve-tspaths:server": "npm run resolve-tspaths -- --project server/tsconfig.json --src server --out dist",
"resolve-tspaths:server-lib": "npm run resolve-tspaths -- --project server/tsconfig.lib.json --src server --out server/dist",
"resolve-tspaths:tests": "npm run resolve-tspaths -- --project packages/tests/tsconfig.json --src packages/tests/src --out packages/tests/dist",
2018-06-07 16:50:33 +02:00
"concurrently": "concurrently",
2018-04-19 16:23:09 +02:00
"mocha": "mocha",
2021-05-05 10:56:40 +02:00
"ci": "bash ./scripts/ci.sh",
"release": "bash ./scripts/release.sh",
"release-embed-api": "bash ./scripts/release-embed-api.sh",
"nightly": "bash ./scripts/nightly.sh",
"openapi-clients": "bash ./scripts/openapi-clients.sh",
"client-report": "bash ./scripts/client-report.sh",
2021-04-28 16:41:07 +02:00
"swagger-cli": "swagger-cli"
},
2015-06-09 17:41:40 +02:00
"dependencies": {
"@aws-sdk/client-s3": "^3.190.0",
"@aws-sdk/lib-storage": "^3.190.0",
"@aws-sdk/node-http-handler": "^3.190.0",
"@aws-sdk/s3-request-presigner": "^3.345.0",
2022-07-13 09:58:34 +02:00
"@babel/parser": "^7.17.8",
"@commander-js/extra-typings": "^11.0.0",
2022-06-28 15:32:57 +02:00
"@node-oauth/oauth2-server": "^4.2.0",
2022-07-05 15:43:21 +02:00
"@opentelemetry/api": "^1.1.0",
"@opentelemetry/exporter-jaeger": "^1.15.1",
"@opentelemetry/exporter-prometheus": "~0.41.1",
"@opentelemetry/instrumentation": "^0.41.1",
"@opentelemetry/instrumentation-dns": "^0.32.0",
"@opentelemetry/instrumentation-express": "^0.33.0",
"@opentelemetry/instrumentation-fs": "^0.8.0",
"@opentelemetry/instrumentation-http": "^0.41.1",
"@opentelemetry/instrumentation-ioredis": "^0.35.0",
"@opentelemetry/instrumentation-pg": "^0.36.0",
"@opentelemetry/resources": "^1.15.1",
"@opentelemetry/sdk-metrics": "^1.15.1",
"@opentelemetry/sdk-trace-base": "^1.15.1",
"@opentelemetry/sdk-trace-node": "^1.15.1",
"@opentelemetry/semantic-conventions": "^1.15.1",
Add Podcast RSS feeds (#5487) * Initial test implementation of Podcast RSS This is a pretty simple implementation to add support for The Podcast Namespace in RSS -- instead of affecting the existing RSS implementation, this adds a new UI option. I attempted to retain compatibility with the rest of the RSS feed implementation as much as possible and have created a temporary fork of the "pfeed" library to support this effort. * Update to pfeed-podcast 1.2.2 * Initial test implementation of Podcast RSS This is a pretty simple implementation to add support for The Podcast Namespace in RSS -- instead of affecting the existing RSS implementation, this adds a new UI option. I attempted to retain compatibility with the rest of the RSS feed implementation as much as possible and have created a temporary fork of the "pfeed" library to support this effort. * Update to pfeed-podcast 1.2.2 * Initial test implementation of Podcast RSS This is a pretty simple implementation to add support for The Podcast Namespace in RSS -- instead of affecting the existing RSS implementation, this adds a new UI option. I attempted to retain compatibility with the rest of the RSS feed implementation as much as possible and have created a temporary fork of the "pfeed" library to support this effort. * Update to pfeed-podcast 1.2.2 * Add correct feed image to RSS channel * Prefer HLS videos for podcast RSS Remove video/stream titles, add optional height attribute to podcast RSS * Prefix podcast RSS images with root server URL * Add optional video query support to include captions * Add transcripts & person images to podcast RSS feed * Prefer webseed/webtorrent files over HLS fragmented mp4s * Experimentally adding podcast fields to basic config page * Add validation for new basic config fields * Don't include "content" in podcast feed, use full description for "description" * Initial test implementation of Podcast RSS This is a pretty simple implementation to add support for The Podcast Namespace in RSS -- instead of affecting the existing RSS implementation, this adds a new UI option. I attempted to retain compatibility with the rest of the RSS feed implementation as much as possible and have created a temporary fork of the "pfeed" library to support this effort. * Update to pfeed-podcast 1.2.2 * Add correct feed image to RSS channel * Prefer HLS videos for podcast RSS Remove video/stream titles, add optional height attribute to podcast RSS * Prefix podcast RSS images with root server URL * Add optional video query support to include captions * Add transcripts & person images to podcast RSS feed * Prefer webseed/webtorrent files over HLS fragmented mp4s * Experimentally adding podcast fields to basic config page * Add validation for new basic config fields * Don't include "content" in podcast feed, use full description for "description" * Add medium/socialInteract to podcast RSS feeds. Use HTML for description * Change base production image to bullseye, install prosody in image * Add liveItem and trackers to Podcast RSS feeds Remove height from alternateEnclosure, replaced with title. * Clear Podcast RSS feed cache when live streams start/end * Upgrade to Node 16 * Refactor clearCacheRoute to use ApiCache * Remove unnecessary type hint * Update dockerfile to node 16, install python-is-python2 * Use new file paths for captions/playlists * Fix legacy videos in RSS after migration to object storage * Improve method of identifying non-fragmented mp4s in podcast RSS feeds * Don't include fragmented MP4s in podcast RSS feeds * Add experimental support for podcast:categories on the podcast RSS item * Fix undefined category when no videos exist Allows for empty feeds to exist (important for feeds that might only go live) * Add support for podcast:locked -- user has to opt in to show their email * Use comma for podcast:categories delimiter * Make cache clearing async * Fix merge, temporarily test with pfeed-podcast * Syntax changes * Add EXT_MIMETYPE constants for captions * Update & fix tests, fix enclosure mimetypes, remove admin email * Add test for podacst:socialInteract * Add filters hooks for podcast customTags * Remove showdown, updated to pfeed-podcast 6.1.2 * Add 'action:api.live-video.state.updated' hook * Avoid assigning undefined category to podcast feeds * Remove nvmrc * Remove comment * Remove unused podcast config * Remove more unused podcast config * Fix MChannelAccountDefault type hint missed in merge * Remove extra line * Re-add newline in config * Fix lint errors for isEmailPublic * Fix thumbnails in podcast feeds * Requested changes based on review * Provide podcast rss 2.0 only on video channels * Misc cleanup for a less messy PR * Lint fixes * Remove pfeed-podcast * Add peertube version to new hooks * Don't use query include, remove TODO * Remove film medium hack * Clear podcast rss cache before video/channel update hooks * Clear podcast rss cache before video uploaded/deleted hooks * Refactor podcast feed cache clearing * Set correct person name from video channel * Styling * Fix tests --------- Co-authored-by: Chocobozzz <me@florianbigard.com>
2023-05-22 16:00:05 +02:00
"@peertube/feed": "^5.1.0",
2022-07-12 10:54:21 +02:00
"@peertube/http-signature": "^1.7.0",
2022-09-09 11:11:47 +02:00
"@uploadx/core": "^6.0.0",
2017-07-12 11:56:02 +02:00
"async-lru": "^1.1.1",
"async-mutex": "^0.4.0",
2022-11-15 13:27:46 +01:00
"bcrypt": "5.1.0",
"bencode": "^3.1.1",
2023-05-22 17:04:39 +02:00
"bittorrent-tracker": "^9",
"bluebird": "^3.5.0",
2023-02-16 14:10:11 +01:00
"bullmq": "^3.6.6",
2018-09-11 16:27:07 +02:00
"bytes": "^3.0.0",
"chokidar": "^3.4.2",
2023-02-16 11:56:58 +01:00
"commander": "^10.0.0",
2018-12-04 09:34:29 +01:00
"config": "^3.0.0",
2018-06-28 13:59:48 +02:00
"cookie-parser": "^1.4.3",
"cors": "^2.8.1",
2023-05-22 17:04:39 +02:00
"create-torrent": "^5",
2018-07-31 14:02:47 +02:00
"deep-object-diff": "^1.1.0",
2023-02-16 11:56:58 +01:00
"email-templates": "^11.0.3",
"execa": "^5.1.1",
2022-06-21 10:59:46 +02:00
"express": "^4.18.1",
2022-01-14 14:15:23 +01:00
"express-rate-limit": "^6.1.0",
2023-05-22 17:04:39 +02:00
"express-validator": "^7.0.1",
2019-12-03 14:12:47 +01:00
"flat": "^5.0.0",
2016-05-03 22:41:46 +02:00
"fluent-ffmpeg": "^2.1.0",
2023-02-16 11:56:58 +01:00
"fs-extra": "^11.1.0",
"got": "^13.0.0",
2023-05-22 17:04:39 +02:00
"helmet": "^7.0.0",
2022-06-21 11:10:58 +02:00
"hpagent": "^1.0.0",
"http-problem-details": "^0.1.5",
"ioredis": "^5.2.3",
2019-06-06 15:39:11 +02:00
"ip-anonymize": "^0.1.0",
2021-06-15 16:14:57 +02:00
"ipaddr.js": "2.0.1",
2020-06-17 10:55:40 +02:00
"is-cidr": "^4.0.0",
"iso-639-3": "3.0.1",
2023-02-16 11:56:58 +01:00
"jimp": "^0.22.4",
2021-02-03 09:33:05 +01:00
"js-yaml": "^4.0.0",
2023-05-22 17:04:39 +02:00
"jsonld": "~8.2.0",
"lodash-es": "^4.17.21",
2023-05-22 17:04:39 +02:00
"lru-cache": "^9.1.1",
"magnet-uri": "^6",
2022-06-21 11:10:58 +02:00
"markdown-it": "^13.0.1",
2020-11-10 10:09:11 +01:00
"markdown-it-emoji": "^2.0.0",
"maxmind": "^4.3.6",
2018-09-14 11:52:23 +02:00
"memoizee": "^0.4.14",
2015-06-09 17:41:40 +02:00
"morgan": "^1.5.3",
2022-06-21 10:59:46 +02:00
"multer": "^1.4.5-lts.1",
"node-media-server": "^2.1.4",
2019-04-02 16:42:13 +02:00
"nodemailer": "^6.0.0",
"opentelemetry-instrumentation-sequelize": "^0.39.1",
2022-11-15 13:27:46 +01:00
"otpauth": "^9.0.2",
"p-queue": "^7.3.4",
2023-05-22 17:04:39 +02:00
"parse-torrent": "^9",
"password-generator": "^2.0.2",
2020-06-17 10:55:40 +02:00
"pg": "^8.2.1",
"piscina": "^3.2.0",
"prompt": "^1.0.0",
2021-10-26 09:57:38 +02:00
"proxy-addr": "^2.0.7",
2020-06-17 10:55:40 +02:00
"pug": "^3.0.0",
2018-12-06 11:50:40 +01:00
"reflect-metadata": "^0.1.12",
"sanitize-html": "2.x",
2023-05-22 17:04:39 +02:00
"sequelize": "6.31.1",
2020-12-08 14:30:29 +01:00
"sequelize-typescript": "^2.0.0-beta.1",
"short-uuid": "^4.2.0",
2021-05-05 11:08:02 +02:00
"sitemap": "^7.0.0",
2022-11-28 09:16:34 +01:00
"socket.io": "^4.5.4",
2022-11-15 13:27:46 +01:00
"sql-formatter": "^12.0.1",
2018-07-16 14:22:16 +02:00
"srt-to-vtt": "^1.1.2",
2020-06-05 10:03:53 +02:00
"tslib": "^2.0.0",
"useragent": "^2.3.0",
2020-04-01 14:16:19 +02:00
"validator": "^13.0.0",
2017-11-09 17:51:58 +01:00
"webfinger.js": "^2.6.6",
2023-05-22 17:04:39 +02:00
"webtorrent": "^1.9",
2022-09-09 11:11:47 +02:00
"winston": "3.8.2",
"ws": "^8.0.0"
2015-06-09 17:41:40 +02:00
},
"devDependencies": {
2021-10-26 16:03:53 +02:00
"@peertube/maildev": "^1.2.0",
"@peertube/resolve-tspaths": "^0.8.14",
2021-06-25 17:39:27 +02:00
"@types/bcrypt": "^5.0.0",
2021-08-27 14:32:44 +02:00
"@types/bencode": "^2.0.0",
2021-05-05 11:08:02 +02:00
"@types/bluebird": "^3.5.33",
2017-05-15 22:22:03 +02:00
"@types/body-parser": "^1.16.3",
2018-09-11 16:27:07 +02:00
"@types/bytes": "^3.0.0",
2017-09-04 21:21:47 +02:00
"@types/chai": "^4.0.4",
"@types/chai-json-schema": "^1.4.3",
"@types/chai-xml": "^0.3.1",
2022-09-09 11:11:47 +02:00
"@types/config": "^3.3.0",
2021-08-27 14:32:44 +02:00
"@types/create-torrent": "^5.0.0",
2021-02-03 09:33:05 +01:00
"@types/express": "4.17.9",
"@types/fluent-ffmpeg": "^2.1.16",
2023-02-16 11:56:58 +01:00
"@types/fs-extra": "^11.0.1",
"@types/jsonld": "^1.5.9",
"@types/lodash-es": "^4.17.8",
2017-06-10 22:15:25 +02:00
"@types/magnet-uri": "^5.1.1",
2023-02-16 11:56:58 +01:00
"@types/maildev": "^0.0.4",
2018-09-14 11:52:23 +02:00
"@types/memoizee": "^0.4.2",
2022-11-15 13:27:46 +01:00
"@types/mocha": "^10.0.0",
2017-05-15 22:22:03 +02:00
"@types/morgan": "^1.7.32",
2017-08-25 18:36:49 +02:00
"@types/multer": "^1.3.3",
2023-02-17 09:21:11 +01:00
"@types/node": "^18.13.0",
2019-06-06 15:39:11 +02:00
"@types/nodemailer": "^6.2.0",
2018-08-27 16:34:41 +02:00
"@types/oauth2-server": "^3.0.8",
2017-08-25 18:36:49 +02:00
"@types/request": "^2.0.3",
2017-09-04 21:21:47 +02:00
"@types/supertest": "^2.0.3",
"@types/validator": "^13.9.0",
2020-11-19 08:58:34 +01:00
"@types/webtorrent": "^0.109.0",
2021-10-12 14:31:59 +02:00
"@types/ws": "^8.2.0",
"@typescript-eslint/eslint-plugin": "^5.0.0",
2021-02-22 15:34:32 +01:00
"autocannon": "^7.0.4",
2017-08-25 18:36:49 +02:00
"chai": "^4.1.1",
"chai-json-schema": "^1.5.0",
2020-11-19 08:58:34 +01:00
"chai-xml": "^0.4.0",
2023-05-22 17:04:39 +02:00
"concurrently": "^8.0.1",
"depcheck": "^1.4.2",
"esbuild": "^0.19.0",
2023-05-22 17:04:39 +02:00
"eslint": "8.41.0",
"eslint-config-standard-with-typescript": "34.0.1",
2020-01-31 16:56:52 +01:00
"eslint-plugin-import": "^2.20.1",
2023-05-22 17:04:39 +02:00
"eslint-plugin-n": "^16.0.0",
2020-01-31 16:56:52 +01:00
"eslint-plugin-node": "^11.0.0",
2021-12-24 13:53:19 +01:00
"eslint-plugin-promise": "^6.0.0",
"fast-xml-parser": "^4.0.0-beta.8",
2023-02-24 14:48:15 +01:00
"jpeg-js": "^0.4.4",
2022-06-21 11:10:58 +02:00
"mocha": "^10.0.0",
2023-02-24 14:48:15 +01:00
"pixelmatch": "^5.3.0",
"pngjs": "^7.0.0",
2023-05-22 17:04:39 +02:00
"proxy": "^2.1.1",
2022-11-28 09:16:34 +01:00
"socket.io-client": "^4.5.4",
2020-11-19 08:58:34 +01:00
"supertest": "^6.0.1",
2020-04-01 14:16:19 +02:00
"swagger-cli": "^4.0.2",
2023-02-16 11:56:58 +01:00
"tsc-watch": "^6.0.0",
"tsx": "^3.12.7",
2023-05-22 17:04:39 +02:00
"typescript": "~5.0.4"
2015-06-09 17:41:40 +02:00
},
2020-08-08 12:01:28 +02:00
"bundlewatch": {
2020-08-05 16:44:48 +02:00
"files": [
{
"path": "client/dist/en-US/*.js",
2020-08-05 16:44:48 +02:00
"maxSize": "1mb"
2020-08-06 10:26:39 +02:00
},
{
"path": "client/dist/standalone/videos/video-embed.bundle.js",
"maxSize": "1mb"
},
{
"path": "client/dist/standalone/videos/video-embed.css",
"maxSize": "1mb"
2020-08-05 16:44:48 +02:00
}
]
}
2015-06-09 17:41:40 +02:00
}