Commit Graph

72 Commits

Author SHA1 Message Date
Chocobozzz
3a4992633e
Migrate server to ESM
Sorry for the very big commit that may lead to git log issues and merge
conflicts, but it's a major step forward:

 * Server can be faster at startup because imports() are async and we can
   easily lazy import big modules
 * Angular doesn't seem to support ES import (with .js extension), so we
   had to correctly organize peertube into a monorepo:
    * Use yarn workspace feature
    * Use typescript reference projects for dependencies
    * Shared projects have been moved into "packages", each one is now a
      node module (with a dedicated package.json/tsconfig.json)
    * server/tools have been moved into apps/ and is now a dedicated app
      bundled and published on NPM so users don't have to build peertube
      cli tools manually
    * server/tests have been moved into packages/ so we don't compile
      them every time we want to run the server
 * Use isolatedModule option:
   * Had to move from const enum to const
     (https://www.typescriptlang.org/docs/handbook/enums.html#objects-vs-enums)
   * Had to explictely specify "type" imports when used in decorators
 * Prefer tsx (that uses esbuild under the hood) instead of ts-node to
   load typescript files (tests with mocha or scripts):
     * To reduce test complexity as esbuild doesn't support decorator
       metadata, we only test server files that do not import server
       models
     * We still build tests files into js files for a faster CI
 * Remove unmaintained peertube CLI import script
 * Removed some barrels to speed up execution (less imports)
2023-08-11 15:02:33 +02:00
Chocobozzz
f5af5feb5a
Use built in toc doc
As we mainly use this file on https://docs.joinpeertube.org/contribute/plugins
2023-07-26 11:47:00 +02:00
Chocobozzz
00ee545c24
Remove $ for bash commands
It prevents easy copy
2023-04-04 09:18:06 +02:00
Chocobozzz
c3441b0320
Add video AP hooks 2023-03-16 10:36:33 +01:00
Chocobozzz
4857f887f7
Fix plugin guide 2023-03-10 10:06:29 +01:00
Chocobozzz
c5c95361e6
Move to new documentation links 2023-02-22 16:15:14 +01:00
Chocobozzz
1ab94472d5
Prefer absolute links in doc 2023-02-22 10:46:12 +01:00
Chocobozzz
60b880acdf
External auth can update user on login 2023-01-04 11:41:29 +01:00
John Livingston
fbe3fa54b4 Fix: missing peertube version in documentation 2022-11-02 10:39:40 +01:00
Chocobozzz
9d4c60dccc
Add ability for plugins to register ws routes 2022-10-11 11:11:04 +02:00
John Livingston
56162c6a06 Adding peertube-plugin-quickstart-typescript in the documentation. 2022-09-16 10:20:04 +02:00
Chocobozzz
9452d4fd33
/!\ Use a dedicated config file for development
It means you have to replace NODE_ENV=test to NODE_ENV=dev if you use it
npm run dev:* commands are already updated
2022-07-06 16:12:17 +02:00
Chocobozzz
09f33366a7
Add note about dev mode when testing a plugin 2022-05-23 09:09:31 +02:00
Chocobozzz
3c33d71474
Add "Create client page" plugin doc 2022-01-10 11:38:58 +01:00
Chocobozzz
3c065fe3b3
Enhance plugin video fields
Add video form tab selection
Add ability to display an error
2021-12-29 10:10:01 +01:00
Chocobozzz
b969539c83
Fix types dist paths 2021-12-24 13:28:33 +01:00
Chocobozzz
499be42ca2
Update plugin guide 2021-12-24 11:30:03 +01:00
lutangar
b8fa3e8c73 refactor(types): create dedicated folder for types package src
fix guide examples and add types package readme

refactor(tsconfig): move back base tsconfig to base directory
2021-12-16 10:08:43 +01:00
lutangar
8b03e2ce1a feat(types): create peertube-types package
Create dedicated Typescript "types" configuration file for each "projects".
Create a types folder which includes every useful ts definition:
- client
- server
- shared
Add tooling to create a proper package, extract dependencies, etc...
Add CI Github task.

refactor(types): publish types package in release script
2021-12-16 10:08:43 +01:00
Chocobozzz
03a65456f4
Add 'input-checkbox' value warning in doc 2021-12-10 14:13:33 +01:00
Chocobozzz
8afade2607
Introduce plugin id selectors 2021-11-26 17:36:55 +01:00
lutangar
7226e90fdc Add req and res as controllers hooks parameters
Hooks prefixed by `action:api` now give access the original express req and res.
Checkout guide.md for possible usage.
2021-11-25 09:54:22 +01:00
Chocobozzz
2bee9db56a
Update plugin doc 2021-07-30 13:58:18 +02:00
lutangar
dc3d902234 Introduce generic video constant manager for plugins
Allow a plugin developer to get back constants values,
and reset constants deletions or additions.
2021-07-16 17:49:40 +02:00
lutangar
4c0a6954fb Document a way to update the last available version of a plugin manually
May comes in very handy to quickly test a plugin in a production like environment before it reaches a greater world.

> This magic trick comes from @Chocobozzz himself, who passed it on to @JohnXLivingston, who then passed it down to me.
2021-06-30 11:44:54 +02:00
Chocobozzz
754c73f32b
Improve plugin guide doc for plugin index 2021-06-08 17:57:33 +02:00
Chocobozzz
8beea2d37d
Add ability to filter menu links 2021-06-07 13:20:08 +02:00
John Livingston
9777fe9eeb
Adding frontend peertubeHelpers.getBaseRouterRoute. (#4153)
* Adding frontend peertubeHelpers.getBaseRouterRoute.

* Fix doctoc.
2021-06-03 12:28:26 +02:00
Chocobozzz
d61515e12a
Add doc to unpublish a plugin 2021-05-10 18:35:38 +02:00
Chocobozzz
b31d72625d
Plugin user.getAuthUser is now async
So we can load the full user
2021-05-05 15:26:28 +02:00
Chocobozzz
248875d243
Fix plugins doc 2021-04-27 09:28:05 +02:00
Chocobozzz
0f31933406
Add ability to hide plugin form fields 2021-04-22 14:35:49 +02:00
Chocobozzz
87e0b71d36
Add go-live example for plugin form fields 2021-04-22 12:00:23 +02:00
Chocobozzz
096231d00e
Add auth header in plugins guide 2021-04-22 11:43:03 +02:00
Chocobozzz
302eba0d89
Add data directory for plugins and some helpers 2021-04-22 10:55:28 +02:00
Chocobozzz
67baf6478a
Allow plugins to set short translation locale 2021-04-20 16:14:09 +02:00
Chocobozzz
b044cb188d
Fix plugins example color 2021-04-12 11:24:01 +02:00
Chocobozzz
62bc0352d9
Add plugin placeholder elements support 2021-04-12 11:19:15 +02:00
Chocobozzz
a60696ab18 Add scale filter to documentation 2021-04-09 15:53:18 +02:00
Chocobozzz
3e03b961b8 Add ability for plugins to specify scale filter 2021-04-09 15:53:18 +02:00
Théo Le Calvar
d5fc35c24d improve documentation plugin-transcode
- add example of videoFilters
- add warning about videoFilters and inputOptions in live profile
2021-04-09 15:53:18 +02:00
Théo Le Calvar
5fb7cfbac5 add support for inputOptions in trancode plugins 2021-04-09 15:53:18 +02:00
Chocobozzz
d2466f0ac9
Update plugins doc 2021-04-09 15:21:06 +02:00
Chocobozzz
ec99e8486a
Add server config helper in plugin guide 2021-03-24 18:18:41 +01:00
Chocobozzz
7aca6b249a
Fix plugin api guide transcoding section 2021-03-03 17:21:40 +01:00
Chocobozzz
789951460b
Try to support other codecs 2021-01-29 14:05:41 +01:00
Chocobozzz
2498aaead1
Add plugin transcoding profile guide 2021-01-29 14:05:41 +01:00
Chocobozzz
7cf88d098a
Use new doc links 2021-01-05 11:01:12 +01:00
madmath03
972de8f111 Add input-password #3375 2020-11-30 14:49:44 +01:00
Rigel Kent
a4879b5375
add github PR template and late crowdfunding link 2020-11-07 21:14:42 +01:00