Commit graph

28 commits

Author SHA1 Message Date
PalmDevs
3f60b4dfb7
feat!: more plugin system improvements + API changes + other fixes
BREAKING CHANGES:

- lib/modules!: Renamed `callBridgeMethod*` to `callNativeMethod*` and interface `Methods` to `NativeMethods`. This is to achieve naming consistency with the native API and be more clear.
- lib/storage!: Renamed to `@revenge-mod/json-storage`. A storage can be in any arbitrary format. While there's little potential for non-JSON storage formats, but the naming should allow for it regardless. This is not a drop-in replacements. There are breaking changes in export names and new APIs.
- plugins/revenge.api.storage!: Renamed to `revenge.api.jsonStorage`. Plugin options are renamed and its structure has changed as well.
- Native now holds the path for official storage APIs. This update uses new paths without any migration!
- lib/plugins!: `Plugin.errors` is now read-only. Use `Plugin.reportError(e)` instead.
- lib/plugins!: `Plugin.flags` has been completely removed in favor of these methods: `Plugin.requireReload()`, `Plugin.disable()`.

OTHER CHANGES:

- Fixed sorting for 'Enabled first'
- Updated native method names to be more consistent
- Cleand up dead code
- Make methods more 'safe' by removing non-null assertion casts
2026-07-09 23:47:53 +07:00
PalmDevs
fb3692bc2d
feat: plugin system improvement
- Stop plugins prior to an update
- Native calls are now awaited in relevant places
- External plugin install feedback
- Plugins that are pending reloads now can't be started after an update
2026-07-07 23:19:58 +07:00
PalmDevs
bf8b99efb9
feat(lib/plugins): external plugins support
This is the first draft. Things may change in the future.
Loader changes are required as well.
2026-07-07 00:03:46 +07:00
PalmDevs
7b651154a2
fix(lib/plugins): prepend API plugins last 2026-04-07 22:34:34 +07:00
PalmDevs
c8906b442a
feat(lib/plugins)!: bind lifecycle this to plugin 2025-10-26 23:08:36 +07:00
PalmDevs
0f0c5f85eb
fix(lib/plugins): clear Errored flag properly on prepare 2025-10-23 17:02:19 +07:00
PalmDevs
2bc2a9fd08
fix(lib/plugins): expose internal metadata via function instead 2025-10-22 22:19:42 +07:00
PalmDevs
67c3d9ec8d
chore(lib/plugins): update internal names with correct terminology 2025-10-14 00:37:24 +07:00
PalmDevs
fc679a4d15
fix(lib/plugins): do not incorrectly mark plugin status + do not race on rejected promises, if errored 2025-10-14 00:35:45 +07:00
PalmDevs
4f612edda4
fix(lib/plugins): do not emit flagUpdate if new flag is same 2025-09-17 17:14:21 +07:00
PalmDevs
e4cb41fa2b
feat(lib/plugins): save plugin states 2025-09-16 01:02:29 +07:00
PalmDevs
3563daed39
fix(lib/plugins): only run dependencies that aren't already running 2025-08-13 00:56:23 +07:00
PalmDevs
2b69e17d68
feat(plugins/settings): show Reload required dialog immediately after flag update 2025-08-13 00:54:14 +07:00
PalmDevs
fca5dd1559
chore(lib/plugins): set arrays lengths to zero to reset states 2025-08-11 16:48:33 +07:00
PalmDevs
b40e2f51ab
fix(lib/plugins): only run dependencies in runPluginLate 2025-07-26 01:58:17 +07:00
PalmDevs
8eea0d12ea
feat: plugin dependencies and dependent dialogs, refactor plugins library and settings plugin
- Refactored the plugins library
- Refactored the settings plugin
2025-07-25 21:19:59 +07:00
PalmDevs
5d7ac417ba
fix(lib/plugins): some plugins with dependents being duplicated in ordered plugin list 2025-07-25 20:10:33 +07:00
PalmDevs
51125ef39f
feat(lib/plugins): return PluginDependency in registerPlugin 2025-07-21 22:04:06 +07:00
PalmDevs
831636f14c
fix(lib/plugins): fix depedency graphing logic 2025-07-21 21:27:17 +07:00
PalmDevs
5bde44a14c
fix(lib/plugins): compile error because arrow async function 2025-07-21 15:35:06 +07:00
PalmDevs
825f29ce52
chore(lib/plugins): cleanup 2025-07-21 15:33:00 +07:00
PalmDevs
a3ebccf1d6
fix(lib/plugins): resolve dependency graph before pushing nodes to ordered list 2025-07-21 15:32:38 +07:00
PalmDevs
601d5a28f5
feat(lib/plugins): improve types and documentation 2025-07-21 14:45:03 +07:00
PalmDevs
84bb9992f5
feat(lib/plugins): do API decorator filtering 2025-07-21 14:02:00 +07:00
PalmDevs
72035286a9
feat(lib/plugins): cache resolved dependencies 2025-07-21 14:01:21 +07:00
PalmDevs
a1316e720e
fix(lib/plugins): error during preinit stage not being logged 2025-07-20 23:34:52 +07:00
PalmDevs
2bb51b7782
fix(lib/plugins): internal plugins marked ImplicitDependency not being added to head of list 2025-07-20 23:34:31 +07:00
PalmDevs
2e455cf2c5
feat: add ability to decorate plugin APIs, move private properties to WeakMap stores 2025-07-20 23:06:56 +07:00