Commit graph

189 commits

Author SHA1 Message Date
PalmDevs
da8c535544
fix(plugins/settings): clear storage properly on errored plugins
Previous code did not handle API being undefined after plugin is stopped.
Code has also been abstracted to be inside the storage API provider.
2025-10-23 17:05:25 +07:00
PalmDevs
079577922e
feat(plugins/settings): notify user on plugin error 2025-10-23 00:55:24 +07:00
PalmDevs
acac384f8b
feat(plugins/settings): improve styling for additional plugin options sheet 2025-10-23 00:53:35 +07:00
PalmDevs
fa0e480974
feat(plugins/settings): add plugin filtering by error status, derive and set route params directly 2025-10-23 00:52:25 +07:00
PalmDevs
a2f330e7e2
chore: remove #lib syntax
Autocomplete is annoying.
2025-10-22 22:24:26 +07:00
PalmDevs
de063fe260
feat(plugins/settings): add sheet for additional plugin options 2025-10-22 22:20:58 +07:00
PalmDevs
2bc2a9fd08
fix(lib/plugins): expose internal metadata via function instead 2025-10-22 22:19:42 +07:00
PalmDevs
0583c97ae2
fix(plugins/user-badges): remove dummy badge correctly 2025-10-22 22:16:15 +07:00
PalmDevs
de3134f1f3
fix(plugins/developer-kit): make address fields no longer sticky 2025-10-18 19:07:09 +07:00
PalmDevs
0bdf191fc9
fix(plugins/developer-kit): listen for correct setting, send log in correct level 2025-10-18 11:35:35 +07:00
PalmDevs
cb3b12f2ee
fix(plugins/no-track): correctly block AnalyticsTrackingActionCreators 2025-10-17 17:47:43 +07:00
PalmDevs
fbf2396d94
feat: catch and report fatal initialization errors 2025-10-17 15:49:50 +07:00
PalmDevs
67c3d9ec8d
chore(lib/plugins): update internal names with correct terminology 2025-10-14 00:37:24 +07:00
PalmDevs
0df3530788
feat(plugins/developer-kit): devtools integration + some fixes 2025-10-14 00:16:49 +07:00
PalmDevs
17fd1ec0bd
fix(plugins/settings): correct path for SettingsNavigator patch 2025-10-13 00:45:07 +07:00
PalmDevs
6dfeccb26a
fix(plugins/developer-kit): access property from globalThis
Prevents "Property '__REACT_DEVTOOLS__' does not exist" on builds without React DevTools.
2025-09-17 18:00:26 +07:00
PalmDevs
6df0716ec5
fix(plugins/settings): show Reload Required dialog before settings modules load 2025-09-17 17:14:25 +07:00
PalmDevs
d54623aa20
fix(plugins/developer-kit): refresh SettingsNavigator on state change 2025-09-17 17:14:23 +07:00
PalmDevs
349c23eced
fix: correct misleading terms 2025-09-17 17:14:22 +07:00
PalmDevs
56cb524aeb
chore(preinit): correct arg name for native method 2025-09-16 01:02:44 +07:00
PalmDevs
5684fa9d8b
feat: use native bridge for alerting errors 2025-09-16 01:02:22 +07:00
PalmDevs
d33f68ebad
feat(plugins/settings): add Loader info in Revenge page 2025-09-16 01:02:20 +07:00
PalmDevs
c03b87723e
fix(plugins/settings): debounce showing "Reload required" dialog 2025-09-10 00:52:13 +07:00
PalmDevs
5956d19125
chore: use import defer 2025-09-10 00:51:28 +07:00
PalmDevs
622df65cbf
chore: replace side-effect requires with imports mapping to requires
So the code editor can report errors for bad imports.
import statements are mapped to require statements via a bundler plugin.
2025-09-10 00:47:39 +07:00
PalmDevs
d842c16903
feat(plugins/api.storage): remove gotcha with load: true 2025-09-02 10:24:15 +07:00
PalmDevs
ab81c4b726
feat(plugins/settings): add optional descriptions for plugin list filters 2025-08-31 20:04:10 +07:00
PalmDevs
408c8463ac
feat(plugins/settings): exclude API plugins, turn on match all by default for plugin list 2025-08-31 20:04:03 +07:00
PalmDevs
83cd04d5b1
fix(plugins/settings): key FormSwitch to prevent animation on fast scrolls 2025-08-30 23:23:37 +07:00
Palm
5f5fc6f2b2
feat!: module finders refactor (#6)
- Renamed `byX` filters to `withX`.
  It is more correct. For example: You don't lookup, wait for, or get modules **BY** props. You lookup, wait for, and get modules **WITH** props.
- Renamed `*byImportedPath` to `*withImportedPath`
  For consistency with the above change.
- Renamed `getModule` to `getModules`.
  The API allows getting multiple modules and not just a single one. Types are renamed as well.
  `getModuleByImportedPath` remains the same as it only gets one single module with a unique imported path.
- `withX` filter **helpers** removed.
  They can now be replaced with the new capability-based `and` filter.
- `preferExports` and `moduleStateAware` filters removed.
  They can now be replaced with the new capability-based `and` filter.
- Composite finders renamed.
  `some` -> `or`, `every` -> `and`
- Composite finders takes a capability-based approach.
- Filter generators now need to attach runtime flag to let the system know whether the generated filter can be used to filter modules without proper exports or not.

## Misc.

- Removed useless unsub call in Profile Badges
- Use `queueMicrotask` with `asap`

# Features

## Capability-based approach to composite filters

```js
// Old
byProps(...).withDependencies(...)
// Old, same as: preferExports(byProps(...), byDependencies(...))
every(byDependencies(...), byProps(...))
// Old, ordering matters, this would fail unexpectedly!
every(byProps(...), byDependencies(...))

// New
withProps(...).and(withDependencies(...))
// New (as well), ordering doesn't matter, this has the same result as above
withDependencies(...).and(withProps(...))
```
2025-08-30 09:19:57 +07:00
PalmDevs
497bb232ea
chore: update dependencies 2025-08-25 19:19:22 +07:00
PalmDevs
68b84ea203
fix(plugins/developer-kit): move IconComponent lookup outside function 2025-08-20 20:51:05 +07:00
PalmDevs
50a3804709
fix(plugins/developer-kit): use new icons for fallback displays 2025-08-20 20:49:23 +07:00
PalmDevs
180b8b858d
chore(plugins/user-badges): use push + pop instead of unshift + shift 2025-08-19 21:45:48 +07:00
PalmDevs
c2d12321f6
chore(lib/modules): simplify imports 2025-08-13 01:27:49 +07:00
PalmDevs
2b69e17d68
feat(plugins/settings): show Reload required dialog immediately after flag update 2025-08-13 00:54:14 +07:00
PalmDevs
d38a0394f6
fix(plugins/settings): trailing comma in Reload required dialog content 2025-08-13 00:54:01 +07:00
PalmDevs
d386035342
chore(lib/storage): move Storage#use initialization back to library 2025-08-12 16:56:10 +07:00
PalmDevs
4193661de8
fix(plugins/settings): make sure plugin name does not overflow 2025-08-11 20:10:52 +07:00
PalmDevs
7712b818f8
feat(lib/discord)!: flatten api structure 2025-08-11 17:21:12 +07:00
PalmDevs
2c6e54a81b
chore: setup lifecycles before initializing plugins 2025-08-11 16:52:26 +07:00
PalmDevs
dcfe40c1d7
feat(lib/storage): add Storage#subscribe 2025-08-11 16:39:23 +07:00
PalmDevs
02c1c69abc
chore: cleanup 2025-08-09 02:12:29 +07:00
PalmDevs
ce188950cd
feat(lib/discord): add flux APIs 2025-08-05 20:36:08 +07:00
PalmDevs
15ed4c551b
fix(plugins/developer-kit): use eval 2025-08-03 14:19:19 +07:00
PalmDevs
578b78dd7e
feat(lib/modules/finders/waits): cached-only waits 2025-07-31 19:15:08 +07:00
PalmDevs
00e9794baf
chore(plugins/no-track): make AnalyticsActionHandlers patch more readable 2025-07-30 20:17:57 +07:00
PalmDevs
8f4305e767
feat(lib/discord/types): type TableCheckboxRow TableRadioGroup TableRadioRow in Design 2025-07-26 20:01:30 +07:00
PalmDevs
7a7345d433
fix(plugins/developer-kit): correct Evaluate JavaScript placeholder code 2025-07-26 12:36:43 +07:00
PalmDevs
7ecce136a8
chore: remove useless Object.freeze patch 2025-07-26 12:13:33 +07:00