1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
|
{
"name": "peertube",
"description": "PeerTube, an ActivityPub-federated video streaming platform using P2P directly in your web browser.",
"version": "4.2.2",
"private": true,
"licence": "AGPL-3.0",
"engines": {
"node": ">=12.x",
"yarn": ">=1.x"
},
"bin": {
"peertube": "dist/server/tools/peertube.js"
},
"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": {
"e2e:browserstack": "bash ./scripts/e2e/browserstack.sh",
"e2e:local": "bash ./scripts/e2e/local.sh",
"setup:cli": "bash ./scripts/setup/cli.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",
"clean:client": "bash ./scripts/clean/client/index.sh",
"clean:server:test": "bash ./scripts/clean/server/test.sh",
"i18n:update": "bash ./scripts/i18n/update.sh",
"plugin:install": "node ./dist/scripts/plugin/install.js",
"plugin:uninstall": "node ./dist/scripts/plugin/uninstall.js",
"i18n:create-custom-files": "node ./dist/scripts/i18n/create-custom-files.js",
"reset-password": "node ./dist/scripts/reset-password.js",
"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:cli": "bash ./scripts/dev/cli.sh",
"start": "node dist/server",
"start:server": "node dist/server --no-client",
"update-host": "node ./dist/scripts/update-host.js",
"create-transcoding-job": "node ./dist/scripts/create-transcoding-job.js",
"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",
"print-transcode-command": "node ./dist/scripts/print-transcode-command.js",
"test": "bash ./scripts/test.sh",
"help": "bash ./scripts/help.sh",
"generate-cli-doc": "bash ./scripts/generate-cli-doc.sh",
"generate-types-package": "ts-node ./packages/types/generate-package.ts",
"parse-log": "node ./dist/scripts/parse-log.js",
"prune-storage": "node ./dist/scripts/prune-storage.js",
"postinstall": "test -n \"$NOCLIENT\" || (cd client && yarn install --pure-lockfile)",
"tsc": "tsc",
"commander": "commander",
"lint": "npm run ci -- lint",
"ng": "ng",
"ts-node": "ts-node",
"eslint": "eslint",
"resolve-tspaths": "resolve-tspaths",
"resolve-tspaths:all": "npm run resolve-tspaths:server && npm run resolve-tspaths:cli",
"resolve-tspaths:server": "npm run resolve-tspaths -- --project tsconfig.json --src . --out dist",
"resolve-tspaths:cli": "npm run resolve-tspaths -- --project ./server/tools/tsconfig.json --src ./server/tools --out ./dist/server/tools",
"concurrently": "concurrently",
"mocha": "mocha",
"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",
"swagger-cli": "swagger-cli"
},
"resolutions": {
"jpeg-js": "0.4.4"
},
"dependencies": {
"@aws-sdk/client-s3": "^3.23.0",
"@aws-sdk/lib-storage": "^3.72.0",
"@aws-sdk/node-http-handler": "^3.82.0",
"@babel/parser": "^7.17.8",
"@node-oauth/oauth2-server": "^4.2.0",
"@opentelemetry/api": "^1.1.0",
"@opentelemetry/api-metrics": "^0.30.0",
"@opentelemetry/exporter-jaeger": "^1.3.1",
"@opentelemetry/exporter-prometheus": "~0.30.0",
"@opentelemetry/instrumentation": "^0.30.0",
"@opentelemetry/instrumentation-dns": "^0.29.0",
"@opentelemetry/instrumentation-express": "^0.30.0",
"@opentelemetry/instrumentation-fs": "^0.4.0",
"@opentelemetry/instrumentation-http": "^0.30.0",
"@opentelemetry/instrumentation-pg": "^0.30.0",
"@opentelemetry/instrumentation-redis-4": "^0.31.0",
"@opentelemetry/resources": "^1.3.1",
"@opentelemetry/sdk-metrics-base": "~0.30.0",
"@opentelemetry/sdk-trace-base": "^1.3.1",
"@opentelemetry/sdk-trace-node": "^1.3.1",
"@opentelemetry/semantic-conventions": "^1.3.1",
"@peertube/feed": "^5.0.1",
"@peertube/http-signature": "^1.7.0",
"@uploadx/core": "^5.1.2",
"async": "^3.0.1",
"async-lru": "^1.1.1",
"bcrypt": "5.0.1",
"bencode": "^2.0.2",
"bittorrent-tracker": "^9.0.0",
"bluebird": "^3.5.0",
"bull": "^4.1.0",
"bytes": "^3.0.0",
"chokidar": "^3.4.2",
"commander": "^9.0.0",
"config": "^3.0.0",
"cookie-parser": "^1.4.3",
"cors": "^2.8.1",
"create-torrent": "^5.0.0",
"deep-object-diff": "^1.1.0",
"email-templates": "^10.0.0",
"execa": "^5.1.1",
"express": "^4.18.1",
"express-rate-limit": "^6.1.0",
"express-validator": "^6.4.0",
"flat": "^5.0.0",
"fluent-ffmpeg": "^2.1.0",
"fs-extra": "^10.0.0",
"got": "^11.8.2",
"helmet": "^5.0.1",
"hpagent": "^1.0.0",
"http-problem-details": "^0.1.5",
"ip-anonymize": "^0.1.0",
"ipaddr.js": "2.0.1",
"is-cidr": "^4.0.0",
"iso-639-3": "2.2.0",
"jimp": "^0.16.0",
"js-yaml": "^4.0.0",
"jsonld": "~6.0.0",
"lodash": "^4.17.10",
"lru-cache": "^7.13.0",
"magnet-uri": "^6.1.0",
"markdown-it": "^13.0.1",
"markdown-it-emoji": "^2.0.0",
"maxmind": "^4.3.6",
"memoizee": "^0.4.14",
"morgan": "^1.5.3",
"multer": "^1.4.5-lts.1",
"node-media-server": "^2.1.4",
"nodemailer": "^6.0.0",
"parse-torrent": "^9.1.0",
"password-generator": "^2.0.2",
"pg": "^8.2.1",
"piscina": "^3.2.0",
"prompt": "^1.0.0",
"proxy-addr": "^2.0.7",
"pug": "^3.0.0",
"redis": "^4.0.1",
"reflect-metadata": "^0.1.12",
"sanitize-html": "2.x",
"sequelize": "6.21.3",
"sequelize-typescript": "^2.0.0-beta.1",
"short-uuid": "^4.2.0",
"sitemap": "^7.0.0",
"socket.io": "^4.0.1",
"sql-formatter": "^8.1.0",
"srt-to-vtt": "^1.1.2",
"tsconfig-paths": "^4.0.0",
"tslib": "^2.0.0",
"useragent": "^2.3.0",
"validator": "^13.0.0",
"webfinger.js": "^2.6.6",
"webtorrent": "^1.0.0",
"winston": "3.8.1",
"ws": "^8.0.0"
},
"devDependencies": {
"@peertube/maildev": "^1.2.0",
"@types/async": "^3.0.0",
"@types/async-lock": "^1.1.0",
"@types/bcrypt": "^5.0.0",
"@types/bencode": "^2.0.0",
"@types/bluebird": "^3.5.33",
"@types/body-parser": "^1.16.3",
"@types/bull": "^3.15.0",
"@types/bytes": "^3.0.0",
"@types/chai": "^4.0.4",
"@types/chai-json-schema": "^1.4.3",
"@types/chai-xml": "^0.3.1",
"@types/config": "^0.0.41",
"@types/create-torrent": "^5.0.0",
"@types/express": "4.17.9",
"@types/fluent-ffmpeg": "^2.1.16",
"@types/fs-extra": "^9.0.1",
"@types/lodash": "^4.14.64",
"@types/magnet-uri": "^5.1.1",
"@types/maildev": "^0.0.3",
"@types/memoizee": "^0.4.2",
"@types/mkdirp": "^1.0.0",
"@types/mocha": "^9.0.0",
"@types/morgan": "^1.7.32",
"@types/multer": "^1.3.3",
"@types/node": "^14.14.31",
"@types/nodemailer": "^6.2.0",
"@types/oauth2-server": "^3.0.8",
"@types/request": "^2.0.3",
"@types/supertest": "^2.0.3",
"@types/validator": "^13.0.0",
"@types/webtorrent": "^0.109.0",
"@types/ws": "^8.2.0",
"@typescript-eslint/eslint-plugin": "^5.0.0",
"autocannon": "^7.0.4",
"chai": "^4.1.1",
"chai-json-schema": "^1.5.0",
"chai-xml": "^0.4.0",
"concurrently": "^7.0.0",
"depcheck": "^1.4.2",
"eslint": "^8.0.0",
"eslint-config-standard-with-typescript": "^22.0.0",
"eslint-plugin-import": "^2.20.1",
"eslint-plugin-n": "^15.2.4",
"eslint-plugin-node": "^11.0.0",
"eslint-plugin-promise": "^6.0.0",
"fast-xml-parser": "^4.0.0-beta.8",
"mocha": "^10.0.0",
"proxy": "^1.0.2",
"resolve-tspaths": "^0.7.0",
"socket.io-client": "^4.0.1",
"supertest": "^6.0.1",
"swagger-cli": "^4.0.2",
"ts-node": "^10.8.1",
"tsc-watch": "^5.0.3",
"typescript": "^4.0.5"
},
"bundlewatch": {
"files": [
{
"path": "client/dist/en-US/*.js",
"maxSize": "1mb"
},
{
"path": "client/dist/standalone/videos/video-embed.bundle.js",
"maxSize": "1mb"
},
{
"path": "client/dist/standalone/videos/video-embed.css",
"maxSize": "1mb"
}
]
}
}
|