Commit Graph

76 Commits

Author SHA1 Message Date
kontrollanten cd42491cf0
feat: add support for sub routes under /my-account (#6218)
* feat: add support for sub routes under /my-account

closes #6217

* feat(plugins/client-routes): page titles

Add support for adding custom page titles in client routes.

* fix(client/PluginPages): reload component upon URL change

* Styling

* docs(plugins): update registerClientRoute

---------

Co-authored-by: Chocobozzz <me@florianbigard.com>
2024-04-04 08:17:59 +02:00
kontrollanten 1b323f4f65 feat(plugins): add req.rawBody for routes
Stripe webhooks endpoints requires to read the raw request body.
https://docs.stripe.com/webhooks#verify-webhook-signatures-with-official-libraries
2024-04-02 11:06:34 +02:00
Alejandro cf843c3f12 Text corrections 2023-12-06 08:45:06 +01:00
Chocobozzz 5ab73a4570
Improve plugin guide 2023-08-17 15:18:27 +02:00
John Livingston e6c12444aa Enhance registerClientRoute documentation:
Adding the path on which routes created with registerClientRoute are
available.
2023-08-17 13:38:26 +02:00
Chocobozzz cb78deba47
Fix broken links 2023-08-17 09:46:24 +02:00
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