diff --git a/build.mjs b/build.mjs index fa83b0d..9c7f1df 100644 --- a/build.mjs +++ b/build.mjs @@ -70,11 +70,10 @@ try { jsc: { externalHelpers: true, transform: { - optimizer: { + constModules: { globals: { - vars: { - __vendettaIsDev: `${!isRelease}`, - __vendettaVersion: `"${isRelease ? commitHash : timeString}"`, + "bunny-build": { + version: `"${isRelease ? commitHash : timeString}"` } } } @@ -86,6 +85,9 @@ try { "transform-classes", "transform-arrow-functions", "transform-block-scoping" + ], + exclude: [ + "transform-parameters" ] }, }); diff --git a/src/entry.ts b/src/entry.ts index b1bed63..3eccf77 100644 --- a/src/entry.ts +++ b/src/entry.ts @@ -1,4 +1,5 @@ import { instead } from "spitroast"; +import { version } from "bunny-build"; // @ts-ignore - shut up fr globalThis.window = globalThis; @@ -18,9 +19,9 @@ const init = (async () => { console.log(stack ?? e?.toString?.() ?? e); alert([ - "Failed to load Vendetta!\n", + "Failed to load Bunny!\n", `Build Number: ${ClientInfoManager.Build}`, - `Vendetta: ${__vendettaVersion}`, + `Bunny: ${version}`, stack || e?.toString?.(), ].join("\n")); } diff --git a/src/global.d.ts b/src/global.d.ts index d748468..07aad2d 100644 --- a/src/global.d.ts +++ b/src/global.d.ts @@ -3,7 +3,6 @@ import { BunnyObject } from "@lib/windowObject"; declare global { type React = typeof import("react"); - const __vendettaVersion: string; interface Window { [key: string]: any; diff --git a/src/lib/debug.ts b/src/lib/debug.ts index 8dc35e2..b6a7b1c 100644 --- a/src/lib/debug.ts +++ b/src/lib/debug.ts @@ -8,6 +8,7 @@ import settings from "@lib/settings"; import logger from "@lib/logger"; import { getLoaderName, isThemeSupported } from "./loader"; import type { PlatformConstants } from "react-native"; +import { version } from "bunny-build"; export let socket: WebSocket; export interface RNConstants extends PlatformConstants { @@ -78,7 +79,7 @@ export function patchLogHook() { } } -export const versionHash: string = __vendettaVersion; +export const versionHash: string = version; export function getDebugInfo() { // Hermes diff --git a/src/lib/metro/filters.ts b/src/lib/metro/filters.ts index 98d6305..39be16a 100644 --- a/src/lib/metro/filters.ts +++ b/src/lib/metro/filters.ts @@ -1,18 +1,20 @@ import { instead } from "@lib/patcher"; -export type MetroModules = { [id: number]: any }; +type MetroModulesIndex = `${number}` | number; + +export type MetroModules = { [id: MetroModulesIndex]: any }; export type PropIntellisense

= Record & Record; export type PropsFinder = (...props: T[]) => PropIntellisense; export type PropsFinderAll = (...props: T[]) => PropIntellisense[]; // Metro require -declare const __r: (moduleId: number) => any; +declare const __r: (moduleId: MetroModulesIndex) => any; // Internal Metro error reporting logic const originalHandler = window.ErrorUtils.getGlobalHandler(); // Function to blacklist a module, preventing it from being searched again -const blacklist = (id: number) => Object.defineProperty(window.modules, id, { +const blacklist = (id: MetroModulesIndex) => Object.defineProperty(window.modules, id, { value: window.modules[id], enumerable: false, configurable: true, @@ -21,7 +23,7 @@ const blacklist = (id: number) => Object.defineProperty(window.modules, id, { // Blacklist any "bad-actor" modules, e.g. the dreaded null proxy, the window itself, or undefined modules for (const key in window.modules) { - const id = Number(key); + const id = key as MetroModulesIndex; const module = window.modules[id]?.publicModule?.exports; if (!module || module === window || module["proxygone"] === null) { @@ -51,7 +53,7 @@ const filterModules = (modules: MetroModules, single = false) => (filter: (m: an const found = []; for (const key in modules) { - const id = Number(key); + const id = key as MetroModulesIndex; const module = modules[id]?.publicModule?.exports; if (!modules[id].isInitialized) try { diff --git a/src/lib/windowObject.ts b/src/lib/windowObject.ts index 6059044..746c9e8 100644 --- a/src/lib/windowObject.ts +++ b/src/lib/windowObject.ts @@ -42,7 +42,7 @@ function createBunnyObject(unloads: any[]) { storage: { ...storage }, settings: settings, loader: { - identity: window.__vendetta_loader, + identity: null, config: loaderConfig, }, logger: { ...logger }, diff --git a/src/modules.d.ts b/src/modules.d.ts new file mode 100644 index 0000000..633eb9f --- /dev/null +++ b/src/modules.d.ts @@ -0,0 +1,3 @@ +declare module "bunny-build" { + const version: string; +} \ No newline at end of file