Commit graph

527 commits

Author SHA1 Message Date
PalmDevs
4247a75567
feat(lib/discord/types): type ActionSheet related exports more accurately 2026-08-13 01:43:43 +07:00
PalmDevs
6f50a92c71
fix(lib/plugins): don't add own IDs to dependency map of reserved dependencies 2026-08-13 01:42:43 +07:00
PalmDevs
1df184bc1f
fix(lib/discord/flux/stores): busy wait when withStore can't match anything + minor issues
- Updated `withStore` dependencies filter
- Check if exports are bad within `withStore` and `withStoreName`
2026-08-12 23:17:50 +07:00
PalmDevs
3ac922a817
fix(lib/modules/metro/utils): detect proxies better in isModuleExportBad 2026-08-12 23:15:10 +07:00
PalmDevs
c16dcaa654
feat(lib/discord/types): add expressive Button type 2026-08-12 15:52:18 +07:00
PalmDevs
ecb2cf810b
fix(lib): migrate to new withDependencies APIs 2026-08-12 15:47:36 +07:00
PalmDevs
d3fb84b76d
feat(lib/modules/finders): new withDependencies builders
- `skip` and `last`: Skips the first N/to the end of dependencies before doing comparisons.
- `atLeast` and `atMost`: Length check before doing comparisons.
- `includes`: Simply checks if the depedencies exist. This is performance intensive though.
2026-08-12 15:21:22 +07:00
PalmDevs
07291f6c20
fix(lib/modules/metro/runtime): use module ID from closure
mInitializingId will never match the actual ID outside of the factory call.
2026-08-12 01:33:39 +07:00
PalmDevs
9258695ec7
feat(lib/modules/finders)!: initialized boolean for filter predicates + remove FilterFlag and weird assumptions + fix partial matches causing modules skip in lookup 2026-08-12 01:12:48 +07:00
PalmDevs
51647ef513
fix(lib/discord): TextStyleSheet types and export in Design 2026-08-04 23:41:13 +07:00
PalmDevs
54f5d94205
feat: warn user to update loader if native cache format is outdated 2026-08-02 17:10:53 +07:00
PalmDevs
ed9f4dee43
fix(lib/utils/proxy)!: remove proxy patch and isProxy getProxyTarget 2026-08-02 17:03:57 +07:00
PalmDevs
cb334d0b9c
fix(lib/utils): use Reflect.ownKeys and PropertyKey for correctness 2026-08-02 16:58:03 +07:00
PalmDevs
c096b80225
fix(lib/modules/finders): don't let one bad filter take down the whole process 2026-08-02 16:57:23 +07:00
PalmDevs
9a10e9d509
fix(lib/modules): don't make assumptions about what consumers are filtering 2026-08-02 16:57:18 +07:00
PalmDevs
215cd487b9
fix(lib/modules/metro/patches): don't blacklist objects with no enumerable keys 2026-08-02 16:19:34 +07:00
PalmDevs
e2dcc294e9
fix(lib/modules/metro): handle all subscription tasks in runtime 2026-08-02 16:18:36 +07:00
PalmDevs
57961ae5d7
fix(lib/plugins): ignore re-registration for internal plugins 2026-08-02 00:05:18 +07:00
PalmDevs
2dd77f24b5
fix(lib/plugins)!: incorrect API structure for unscoped.discord.utils 2026-08-01 21:44:47 +07:00
PalmDevs
912fa8e896
chore(lib/plugins): update init+ error message with hints 2026-08-01 15:45:31 +07:00
PalmDevs
73534bda6a
fix(lib/plugins): restrict unscoped.discord.(actions|design) to init+ 2026-08-01 15:42:30 +07:00
PalmDevs
ff410cbb25
chore(lib/modules/finders/lookup): move LookupModulesOptions.initialize clarification comment 2026-08-01 15:32:11 +07:00
PalmDevs
752f3b1c7e
fix(lib/discord/design): improve perf for Design filter 2026-08-01 15:31:33 +07:00
PalmDevs
bd5ee5c1f1
chore(lib): clarify doc 2026-08-01 14:49:54 +07:00
PalmDevs
acdf865cc7
fix(lib): improve Discord-related filtering 2026-08-01 14:49:20 +07:00
PalmDevs
944dbb6838
feat: improve recovery mode + small lib additions
Improved Recovery Mode features generally:
- Ability to view and modify saved states while not actually running any additional plugins
- Better Recovery Mode banner display
- Enter Recovery Mode option in Revenge Settings UI
- Fixed freeze detection false positives

New APIs:
- lib/discord: `disabled` in `DiscordModules.Components.FloatingActionButtonProps`
- lib/modules/native/app: new submodule with `reloadApp()` method

Fixes:
- Use `reloadApp()` instead of `BundleUpdaterManager.reload()`
2026-08-01 01:51:34 +07:00
PalmDevs
6d7e017c0b
fix(lib/modules/metro): move all error handling to metroRequire 2026-08-01 00:18:32 +07:00
PalmDevs
ffce0e2cf2
feat(lib/plugins): add sourceURL to external plugin scripts 2026-07-31 17:46:42 +07:00
PalmDevs
1497e8ef8d
feat: app freeze detection and recovery mode
This requires loader support and can only be triggered from a native dialog.
Recovery mode toggle won't be a functionality for now. If there's a use, such as binary searching problematic plugins, then it'll be added (similar to VSCode extension bisect).
2026-07-31 17:46:08 +07:00
PalmDevs
c49f3eb471
fix(lib/discord/common)!: split to own submodules + don't restrict everything to init+ 2026-07-31 14:51:15 +07:00
PalmDevs
217617a663
fix(plugin/settings): remount instead of recomputing SettingHookHarness memos
Recomputing causes a React crash because the harness calls additional hooks for every setting.
When we add/remove setting items, hooks are not called the same amount.

React expects the same amount of hooks to be called after each render, so this breaks adding settings items while in Settings.
We can remount it instead to avoid this crash.
2026-07-31 03:26:04 +07:00
PalmDevs
1c58b7a5a1
chore: use AnyFunction from lib everywhere 2026-07-31 02:38:45 +07:00
PalmDevs
10371ff000
fix: settings UI refreshing 2026-07-31 02:38:41 +07:00
PalmDevs
8040d3be07
fix(lib/externals/react-native-safe-area-context): update filters for 341202+ 2026-07-29 23:42:44 +07:00
PalmDevs
bb0919ef0a
fix(lib/discord): bring back support for <341202 2026-07-29 23:18:11 +07:00
PalmDevs
6bdff25482
feat: better types + typegen output
- Add dependencies to types package.json
- Make temp file names deterministic
2026-07-29 22:15:23 +07:00
PalmDevs
2e944b0f25
fix: support 341202+
First Android Static Hermes version incoming, with Metro issues.

- scripts/plugins/hermesc: use hermes-compiler
- plugins/settings: get React Native version correctly
- lib/modules/finders/filters: support null ID in DependencyMap for `withDependencies`
- lib/discord: update filters for 341202+
2026-07-29 21:48:18 +07:00
PalmDevs
49c1b1e68d
fix(lib/utils/object): lazy properties shouldn't delete itself when loader errors 2026-07-29 21:48:15 +07:00
PalmDevs
c7b5ae8ee6
fix(lib/plugins): external JS plugins not loading 2026-07-29 21:48:10 +07:00
PalmDevs
e73bbc03ba
fix(lib/json-storage): clarify how JsonStorage.get() and JsonStorageUpdateMode.Load works 2026-07-28 12:44:31 +07:00
PalmDevs
da08b94f76
fix(lib/assets): skip useless comparison during pre-init 2026-07-28 12:12:22 +07:00
PalmDevs
0fdc1f1cff
fix: plugin API types + JS options validation 2026-07-28 12:07:28 +07:00
PalmDevs
a629b2ad44
fix(lib/discord/types): export API types to expose plugin API decoration 2026-07-26 16:13:13 +07:00
PalmDevs
b250450367
feat(lib/plugins): reexpose EnabledLate flags property as startedLate 2026-07-26 16:01:09 +07:00
PalmDevs
f6d119a210
fix(lib/externals/shopify): update filters for 340206+ 2026-07-26 13:47:31 +07:00
PalmDevs
d2c7f47fe7
fix(plugins/settings.plugins): match the version, channel, and repo exactly from the card when installing plugins from the Browse screen 2026-07-26 02:01:58 +07:00
PalmDevs
5432276ab0
fix(plugins/settings.plugins): small errors & inconsistencies
- Soft errors now nudge UI to rerender.
- `runPluginLate` will throw anyway, so early return is cleaner.
- `confirmInstall` returns a `Promise` which the AlertModal should await before closing.
2026-07-26 02:01:57 +07:00
PalmDevs
ff263a2282
chore: remove dead code and correct comments 2026-07-26 02:01:56 +07:00
PalmDevs
da1e34dc62
fix(plugins/settings.plugins): last updated date logic
Only update when repos are actually refreshed, and when no errors occurred.
2026-07-26 02:01:37 +07:00
PalmDevs
a5290d314f
fix(lib/plugins): forget initial persisted states when un/reinstalling a plugin 2026-07-26 01:21:02 +07:00