diff --git a/dist/kettu.js b/dist/kettu.js index 2ec7477..97d75c4 100644 --- a/dist/kettu.js +++ b/dist/kettu.js @@ -4222,88 +4222,36 @@ } }); - // src/core/ui/reporter/utils/isStack.tsx - function isComponentStack(error) { - return "componentStack" in error && typeof error.componentStack === "string"; - } - function hasStack(error) { - return !!error.stack; - } - var init_isStack = __esm({ - "src/core/ui/reporter/utils/isStack.tsx"() { - "use strict"; + // globals:moment + var require_moment = __commonJS({ + "globals:moment"(exports, module) { init_asyncIteratorSymbol(); init_promiseAllSettled(); + module.exports = require_depsModule()["moment"]; } }); - // src/lib/api/assets/index.ts - var assets_exports = {}; - __export(assets_exports, { - filterAssets: () => filterAssets, - findAsset: () => findAsset, - findAssetId: () => findAssetId, - iterateAssets: () => iterateAssets - }); - function* iterateAssets() { - var { flagsIndex } = getMetroCache(); - var yielded = /* @__PURE__ */ new Set(); - for (var id in flagsIndex) { - if (flagsIndex[id] & ModuleFlags.ASSET) { - var assetId = requireModule(Number(id)); - if (typeof assetId !== "number" || yielded.has(assetId)) - continue; - yield getAssetById(assetId); - yielded.add(assetId); - } + // src/core/fixes.ts + function onDispatch({ locale }) { + try { + import_moment.default.locale(locale.toLowerCase()); + } catch (e) { + logger.error("Failed to fix timestamps...", e); } + FluxDispatcher.unsubscribe("I18N_LOAD_SUCCESS", onDispatch); } - function getAssetById(id) { - var asset = assetsModule.getAssetByID(id); - if (!asset) - return asset; - return Object.assign(asset, { - id - }); - } - function findAsset(param) { - if (typeof param === "number") - return getAssetById(param); - if (typeof param === "string" && _nameToAssetCache[param]) { - return _nameToAssetCache[param]; - } - for (var asset of iterateAssets()) { - if (typeof param === "string" && asset.name === param) { - _nameToAssetCache[param] = asset; - return asset; - } else if (typeof param === "function" && param(asset)) { - return asset; - } - } - } - function filterAssets(param) { - var filteredAssets = []; - for (var asset of iterateAssets()) { - if (typeof param === "string" ? asset.name === param : param(asset)) { - filteredAssets.push(asset); - } - } - return filteredAssets; - } - function findAssetId(name) { - return findAsset(name)?.id; - } - var _nameToAssetCache; - var init_assets = __esm({ - "src/lib/api/assets/index.ts"() { + var import_moment, fixes_default; + var init_fixes = __esm({ + "src/core/fixes.ts"() { "use strict"; init_asyncIteratorSymbol(); init_promiseAllSettled(); - init_caches(); - init_enums(); - init_modules2(); - init_patches(); - _nameToAssetCache = {}; + init_logger(); + init_common(); + import_moment = __toESM(require_moment()); + fixes_default = () => { + FluxDispatcher.subscribe("I18N_LOAD_SUCCESS", onDispatch); + }; } }); @@ -4489,181 +4437,81 @@ } }); - // src/lib/ui/toasts.ts - var toasts_exports = {}; - __export(toasts_exports, { - showToast: () => showToast - }); - var uuid4, showToast; - var init_toasts = __esm({ - "src/lib/ui/toasts.ts"() { - "use strict"; - init_asyncIteratorSymbol(); - init_promiseAllSettled(); - init_i18n(); - init_assets(); - init_lazy(); - init_common(); - init_wrappers(); - ({ uuid4 } = lazyDestructure(() => findByProps("uuid4"))); - showToast = (content, asset) => toasts.open({ - // ? In build 182205/44707, Discord changed their toasts, source is no longer used, rather icon, and a key is needed. - // TODO: We could probably have the developer specify a key themselves, but this works to fix toasts - key: `vd-toast-${uuid4()}`, - content, - source: asset, - icon: asset - }); - showToast.showCopyToClipboard = (message = Strings.COPIED_TO_CLIPBOARD) => { - showToast(message, findAssetId("toast_copy_link")); - }; + // src/assets/icons/kettu.png + var kettu_default; + var init_kettu = __esm({ + "src/assets/icons/kettu.png"() { + kettu_default = "data:image/png;base64,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Im1DZW50ZXJYXCI6MC40ODM0NDI1NzQ3Mzk0NTYyLFwibUNlbnRlcllcIjowLjUwOTgzMDY1MzY2NzQ1LFwibVdpZHRoXCI6MC43OTA1NzkxOTk3OTA5NTQ2LFwibUhlaWdodFwiOjAuODAzODg5MzM0MjAxODEyNyxcIm1Sb3RhdGlvblwiOjAsXCJtUm90YXRlXCI6MCxcIm1IRmxpcFwiOjAsXCJtVkZsaXBcIjowLFwibVJvdGF0aW9uRWZmZWN0XCI6MCxcIm1Sb3RhdGVFZmZlY3RcIjowLFwibUhGbGlwRWZmZWN0XCI6MCxcIm1WRmxpcEVmZmVjdFwiOjAsXCJtSG96UGVyc3BlY3RpdmVcIjowLFwibVZlclBlcnNwZWN0aXZlXCI6MH0iLCJ0b25lVmFsdWUiOiJ7XCJicmlnaHRuZXNzXCI6MTAwLFwiZXhwb3N1cmVcIjoxMDAsXCJjb250cmFzdFwiOjEwMCxcInNhdHVyYXRpb25cIjoxMDAsXCJodWVcIjoxMDAsXCJ3Yk1vZGVcIjotMSxcIndiVGVtcGVyYXR1cmVcIjoxMDAsXCJ0aW50XCI6MTAwLFwic2hhZG93XCI6MTAwLFwiaGlnaGxpZ2h0XCI6MTAwLFwibGlnaHRiYWxhbmNlXCI6MTAwLFwic2hhcnBuZXNzXCI6MTAwLFwiZGVmaW5pdGlvblwiOjEwMCxcImlzQnJpZ2h0bmVzc0lQRVwiOmZhbHNlLFwiaXNFeHBvc3VyZUlQRVwiOmZhbHNlLFwiaXNDb250cmFzdElQRVwiOmZhbHNlLFwiaXNTYXR1cmF0aW9uSVBFXCI6ZmFsc2V9IiwiZWZmZWN0VmFsdWUiOiJ7XCJmaWx0ZXJJbmRpY2F0aW9uXCI6NDA5NyxcImFscGhhVmFsdWVcIjoxMDAsXCJmaWx0ZXJUeXBlXCI6MH0iLCJwb3J0cmFpdEVmZmVjdFZhbHVlIjoie1wiZWZmZWN0SWRcIjotMSxcImVmZmVjdExldmVsXCI6LTEsXCJleGlmUm90YXRpb25cIjowLFwibGlnaHRMZXZlbFwiOjAsXCJ0b3VjaFhcIjowLFwidG91Y2hZXCI6MCxcInJlZm9jdXNYXCI6LTEsXCJyZWZvY3VzWVwiOi0xLFwiZWZmZWN0SWRPcmlnaW5hbFwiOi0xLFwiZWZmZWN0TGV2ZWxPcmlnaW5hbFwiOi0xLFwibGlnaHRMZXZlbE9yaWdpbmFsXCI6LTEsXCJ0b3VjaFhPcmlnaW5hbFwiOjAsXCJ0b3VjaFlPcmlnaW5hbFwiOjAsXCJyZWZvY3VzWE9yaWdpbmFsXCI6LTEsXCJyZWZvY3VzWU9yaWdpbmFsXCI6LTEsXCJ3YXRlck1hcmtSZW1vdmVkXCI6ZmFsc2UsXCJ3YXRlck1hcmtSZW1vdmVkT3JpZ2luYWxcIjpmYWxzZX0iLCJpc0JsZW5kaW5nIjp0cnVlLCJpc05vdFJlRWRpdCI6ZmFsc2UsInNlcFZlcnNpb24iOiIxNjAwMDAiLCJuZGVWZXJzaW9uIjoxLCJyZVNpemUiOjQsImlzU2NhbGVBSSI6ZmFsc2UsInJvdGF0aW9uIjoxLCJhZGp1c3RtZW50VmFsdWUiOiJ7XCJtQ3JvcFN0YXRlXCI6MTMxMDc2fSIsImlzQXBwbHlTaGFwZUNvcnJlY3Rpb24iOmZhbHNlLCJpc05ld1JlRWRpdE9ubHkiOmZhbHNlLCJpc0RlY29SZUVkaXRPbmx5IjpmYWxzZSwiaXNBSUZpbHRlclJlRWRpdE9ubHkiOmZhbHNlfQAAoQsWAAAAT3JpZ2luYWxfUGF0aF9IYXNoX0tleTBmYTMxNDVjMzc5MDc4MWI4ZDA2YjdiMThkNmI3Y2Y5YWZmMTY4NTE4NDA5YTFiNTZjMTQ5NTc2MzQ5YjViZmYvMjM4MDNTRUZIawAAAAIAAAAAAKEL7QYAAIkGAAAAAKELZAAAAGQAAAAkAAAAU0VGVA=="; } }); - // src/lib/api/debug.ts - var debug_exports = {}; - __export(debug_exports, { - connectToDebugger: () => connectToDebugger, - getDebugInfo: () => getDebugInfo, - patchLogHook: () => patchLogHook, - toggleSafeMode: () => toggleSafeMode, - versionHash: () => versionHash + // src/lib/api/assets/index.ts + var assets_exports = {}; + __export(assets_exports, { + filterAssets: () => filterAssets, + findAsset: () => findAsset, + findAssetId: () => findAssetId, + iterateAssets: () => iterateAssets }); - function toggleSafeMode() { - return _toggleSafeMode.apply(this, arguments); - } - function _toggleSafeMode() { - _toggleSafeMode = _async_to_generator(function* () { - settings.safeMode = { - ...settings.safeMode, - enabled: !settings.safeMode?.enabled - }; - if (isThemeSupported()) { - if (getThemeFromLoader()?.id) - settings.safeMode.currentThemeId = getThemeFromLoader().id; - if (settings.safeMode?.enabled) { - yield selectTheme(null); - } else if (settings.safeMode?.currentThemeId) { - yield selectTheme(themes[settings.safeMode?.currentThemeId]); - } + function* iterateAssets() { + var { flagsIndex } = getMetroCache(); + var yielded = /* @__PURE__ */ new Set(); + for (var id in flagsIndex) { + if (flagsIndex[id] & ModuleFlags.ASSET) { + var assetId = requireModule(Number(id)); + if (typeof assetId !== "number" || yielded.has(assetId)) + continue; + yield getAssetById(assetId); + yielded.add(assetId); } - setTimeout(BundleUpdaterManager.reload, 400); - }); - return _toggleSafeMode.apply(this, arguments); - } - function connectToDebugger(url2) { - if (socket !== void 0 && socket.readyState !== WebSocket.CLOSED) - socket.close(); - if (!url2) { - showToast("Invalid debugger URL!", findAssetId("Small")); - return; } - socket = new WebSocket(`ws://${url2}`); - socket.addEventListener("open", () => showToast("Connected to debugger.", findAssetId("Check"))); - socket.addEventListener("message", (message) => { - try { - (0, eval)(message.data); - } catch (e) { - console.error(e); + } + function getAssetById(id) { + var asset = assetsModule.getAssetByID(id); + if (!asset) + return asset; + return Object.assign(asset, { + id + }); + } + function findAsset(param) { + if (typeof param === "number") + return getAssetById(param); + if (typeof param === "string" && _nameToAssetCache[param]) { + return _nameToAssetCache[param]; + } + for (var asset of iterateAssets()) { + if (typeof param === "string" && asset.name === param) { + _nameToAssetCache[param] = asset; + return asset; + } else if (typeof param === "function" && param(asset)) { + return asset; } - }); - socket.addEventListener("error", (err) => { - console.log(`Debugger error: ${err.message}`); - showToast("An error occurred with the debugger connection!", findAssetId("Small")); - }); + } } - function patchLogHook() { - var unpatch = after("nativeLoggingHook", globalThis, (args) => { - if (socket?.readyState === WebSocket.OPEN) - socket.send(JSON.stringify({ - message: args[0], - level: args[1] - })); - logger.log(args[0]); - }); - return () => { - socket && socket.close(); - unpatch(); - }; + function filterAssets(param) { + var filteredAssets = []; + for (var asset of iterateAssets()) { + if (typeof param === "string" ? asset.name === param : param(asset)) { + filteredAssets.push(asset); + } + } + return filteredAssets; } - function getDebugInfo() { - var hermesProps = window.HermesInternal.getRuntimeProperties(); - var hermesVer = hermesProps["OSS Release Version"]; - var padding = "for RN "; - var PlatformConstants = import_react_native6.Platform.constants; - var rnVer = PlatformConstants.reactNativeVersion; - return { - /** - * @deprecated use `bunny` field - * */ - vendetta: { - version: versionHash.split("-")[0], - loader: getLoaderName() - }, - bunny: { - version: versionHash, - loader: { - name: getLoaderName(), - version: getLoaderVersion() - } - }, - discord: { - version: NativeClientInfoModule.Version, - build: NativeClientInfoModule.Build - }, - react: { - version: React.version, - nativeVersion: hermesVer.startsWith(padding) ? hermesVer.substring(padding.length) : `${rnVer.major}.${rnVer.minor}.${rnVer.patch}` - }, - hermes: { - version: hermesVer, - buildType: hermesProps.Build, - bytecodeVersion: hermesProps["Bytecode Version"] - }, - ...import_react_native6.Platform.select({ - android: { - os: { - name: "Android", - version: PlatformConstants.Release, - sdk: PlatformConstants.Version - } - }, - ios: { - os: { - name: PlatformConstants.systemName, - version: PlatformConstants.osVersion - } - } - }), - ...import_react_native6.Platform.select({ - android: { - device: { - manufacturer: PlatformConstants.Manufacturer, - brand: PlatformConstants.Brand, - model: PlatformConstants.Model, - codename: NativeDeviceModule.device - } - } - }) - }; + function findAssetId(name) { + return findAsset(name)?.id; } - var import_react_native6, socket, versionHash; - var init_debug = __esm({ - "src/lib/api/debug.ts"() { + var _nameToAssetCache; + var init_assets = __esm({ + "src/lib/api/assets/index.ts"() { "use strict"; init_asyncIteratorSymbol(); init_promiseAllSettled(); - init_async_to_generator(); - init_themes(); - init_assets(); - init_loader(); - init_modules(); - init_patcher(); - init_settings(); - init_logger(); - init_toasts(); - import_react_native6 = __toESM(require_react_native()); - versionHash = "v1.0.5"; + init_caches(); + init_enums(); + init_modules2(); + init_patches(); + _nameToAssetCache = {}; } }); @@ -4671,7 +4519,7 @@ function AlertModal2(props) { var forwardFailedModal = findByFilePath("modules/forwarding/native/ForwardFailedAlertModal.tsx"); if (!forwardFailedModal && "extraContent" in props) { - props.content = /* @__PURE__ */ jsxs(import_react_native7.View, { + props.content = /* @__PURE__ */ jsxs(import_react_native6.View, { style: { gap: 16 }, @@ -4681,7 +4529,7 @@ color: "text-muted", children: props.content }), - /* @__PURE__ */ jsx(import_react_native7.View, { + /* @__PURE__ */ jsx(import_react_native6.View, { children: props.extraContent }) ] @@ -4692,7 +4540,7 @@ ...props }); } - var import_react_native7, _AlertModal, _AlertActionButton, AlertActionButton2; + var import_react_native6, _AlertModal, _AlertActionButton, AlertActionButton2; var init_AlertModal = __esm({ "src/lib/ui/components/wrappers/AlertModal.tsx"() { "use strict"; @@ -4702,7 +4550,7 @@ init_lazy(); init_metro(); init_components(); - import_react_native7 = __toESM(require_react_native()); + import_react_native6 = __toESM(require_react_native()); ({ AlertModal: _AlertModal, AlertActionButton: _AlertActionButton } = lazyDestructure(() => findByProps("AlertModal", "AlertActions"))); AlertActionButton2 = _AlertActionButton; } @@ -4763,7 +4611,7 @@ } function createThemedStyleSheet(sheet) { for (var key in sheet) { - sheet[key] = new Proxy(import_react_native8.StyleSheet.flatten(sheet[key]), { + sheet[key] = new Proxy(import_react_native7.StyleSheet.flatten(sheet[key]), { get(target, prop, receiver) { var res = Reflect.get(target, prop, receiver); return isSemanticColor(res) ? resolveSemanticColor(res) : res; @@ -4772,7 +4620,7 @@ } return sheet; } - var import_react_native8, Styles, ThemeContext, TextStyleSheet; + var import_react_native7, Styles, ThemeContext, TextStyleSheet; var init_styles = __esm({ "src/lib/ui/styles.ts"() { "use strict"; @@ -4781,7 +4629,7 @@ init_lazy(); init_wrappers(); init_color(); - import_react_native8 = __toESM(require_react_native()); + import_react_native7 = __toESM(require_react_native()); Styles = findByPropsLazy("createStyles"); ({ ThemeContext } = lazyDestructure(() => findByProps("ThemeContext"), { hint: "object" @@ -4797,7 +4645,7 @@ style, children }); - return import_react_native9.Platform.select({ + return import_react_native8.Platform.select({ ios: /* @__PURE__ */ jsx(InputBasedCodeblock, { style, children @@ -4809,7 +4657,7 @@ }) }); } - var import_react_native9, useStyles, InputBasedCodeblock, TextBasedCodeblock; + var import_react_native8, useStyles, InputBasedCodeblock, TextBasedCodeblock; var init_Codeblock = __esm({ "src/lib/ui/components/Codeblock.tsx"() { "use strict"; @@ -4819,7 +4667,7 @@ init_common(); init_color(); init_styles(); - import_react_native9 = __toESM(require_react_native()); + import_react_native8 = __toESM(require_react_native()); useStyles = createStyles({ codeBlock: { fontFamily: constants.Fonts.CODE_NORMAL, @@ -4833,7 +4681,7 @@ padding: 10 } }); - InputBasedCodeblock = ({ style, children }) => /* @__PURE__ */ jsx(import_react_native9.TextInput, { + InputBasedCodeblock = ({ style, children }) => /* @__PURE__ */ jsx(import_react_native8.TextInput, { editable: false, multiline: true, style: [ @@ -4842,7 +4690,7 @@ ], value: children }); - TextBasedCodeblock = ({ selectable, style, children }) => /* @__PURE__ */ jsx(import_react_native9.Text, { + TextBasedCodeblock = ({ selectable, style, children }) => /* @__PURE__ */ jsx(import_react_native8.Text, { selectable, style: [ useStyles().codeBlock, @@ -4880,6 +4728,21 @@ } }); + // src/core/ui/reporter/utils/isStack.tsx + function isComponentStack(error) { + return "componentStack" in error && typeof error.componentStack === "string"; + } + function hasStack(error) { + return !!error.stack; + } + var init_isStack = __esm({ + "src/core/ui/reporter/utils/isStack.tsx"() { + "use strict"; + init_asyncIteratorSymbol(); + init_promiseAllSettled(); + } + }); + // src/core/ui/reporter/utils/parseComponentStack.tsx function parseComponentStack(componentStack) { return componentStack.split(/[\s|\n]+?in /).filter(Boolean); @@ -4912,7 +4775,7 @@ return; } return /* @__PURE__ */ jsx(Card, { - children: /* @__PURE__ */ jsxs(import_react_native10.View, { + children: /* @__PURE__ */ jsxs(import_react_native9.View, { style: { gap: 8 }, @@ -4921,11 +4784,11 @@ variant: "heading-lg/bold", children: "Component Stack" }), - /* @__PURE__ */ jsx(import_react_native10.View, { + /* @__PURE__ */ jsx(import_react_native9.View, { style: { gap: 4 }, - children: stack.map((component) => /* @__PURE__ */ jsxs(import_react_native10.View, { + children: stack.map((component) => /* @__PURE__ */ jsxs(import_react_native9.View, { style: { flexDirection: "row" }, @@ -4950,7 +4813,7 @@ collapsed && /* @__PURE__ */ jsx(Text, { children: "..." }), - /* @__PURE__ */ jsxs(import_react_native10.View, { + /* @__PURE__ */ jsxs(import_react_native9.View, { style: { gap: 8, flexDirection: "row", @@ -4961,7 +4824,7 @@ /* @__PURE__ */ jsx(Button, { variant: "secondary", text: `Show ${collapsed ? "more" : "less"}`, - icon: collapsed ? findAssetId("down_arrow") : /* @__PURE__ */ jsx(import_react_native10.Image, { + icon: collapsed ? findAssetId("down_arrow") : /* @__PURE__ */ jsx(import_react_native9.Image, { style: { transform: [ { @@ -4985,7 +4848,7 @@ }) }); } - var import_react, import_react_native10; + var import_react, import_react_native9; var init_ErrorComponentStackCard = __esm({ "src/core/ui/reporter/components/ErrorComponentStackCard.tsx"() { "use strict"; @@ -4997,7 +4860,7 @@ init_common(); init_components(); import_react = __toESM(require_react()); - import_react_native10 = __toESM(require_react_native()); + import_react_native9 = __toESM(require_react_native()); } }); @@ -5114,7 +4977,7 @@ return null; } return /* @__PURE__ */ jsx(Card, { - children: /* @__PURE__ */ jsxs(import_react_native11.View, { + children: /* @__PURE__ */ jsxs(import_react_native10.View, { style: { gap: 12 }, @@ -5123,7 +4986,7 @@ variant: "heading-lg/bold", children: "Call Stack" }), - /* @__PURE__ */ jsx(import_react_native11.View, { + /* @__PURE__ */ jsx(import_react_native10.View, { style: { gap: 4 }, @@ -5135,7 +4998,7 @@ collapsed && /* @__PURE__ */ jsx(Text, { children: "..." }), - /* @__PURE__ */ jsxs(import_react_native11.View, { + /* @__PURE__ */ jsxs(import_react_native10.View, { style: { gap: 8, flexDirection: "row", @@ -5146,7 +5009,7 @@ /* @__PURE__ */ jsx(Button, { variant: "secondary", text: `Show ${collapsed ? "more" : "less"}`, - icon: collapsed ? findAssetId("down_arrow") : /* @__PURE__ */ jsx(import_react_native11.Image, { + icon: collapsed ? findAssetId("down_arrow") : /* @__PURE__ */ jsx(import_react_native10.Image, { style: { transform: [ { @@ -5172,7 +5035,7 @@ } function Line(props) { var [collapsed, setCollapsed] = (0, import_react2.useState)(true); - return /* @__PURE__ */ jsxs(import_react_native11.Pressable, { + return /* @__PURE__ */ jsxs(import_react_native10.Pressable, { onPress: () => setCollapsed((v2) => !v2), children: [ /* @__PURE__ */ jsx(Text, { @@ -5201,7 +5064,7 @@ ] }, props.id); } - var import_react2, import_react_native11; + var import_react2, import_react_native10; var init_ErrorStackCard = __esm({ "src/core/ui/reporter/components/ErrorStackCard.tsx"() { "use strict"; @@ -5213,7 +5076,7 @@ init_common(); init_components(); import_react2 = __toESM(require_react()); - import_react_native11 = __toESM(require_react_native()); + import_react_native10 = __toESM(require_react_native()); init_ErrorCard(); } }); @@ -5221,7 +5084,7 @@ // src/core/ui/reporter/components/ErrorDetailsActionSheet.tsx function ErrorDetailsActionSheet(props) { return /* @__PURE__ */ jsx(ActionSheet, { - children: /* @__PURE__ */ jsxs(import_react_native12.View, { + children: /* @__PURE__ */ jsxs(import_react_native11.View, { style: { gap: 12, paddingVertical: 12 @@ -5245,7 +5108,7 @@ }) }); } - var import_react_native12; + var import_react_native11; var init_ErrorDetailsActionSheet = __esm({ "src/core/ui/reporter/components/ErrorDetailsActionSheet.tsx"() { "use strict"; @@ -5255,7 +5118,7 @@ init_isStack(); init_components2(); init_components(); - import_react_native12 = __toESM(require_react_native()); + import_react_native11 = __toESM(require_react_native()); init_ErrorComponentStackCard(); init_ErrorStackCard(); } @@ -5368,7 +5231,7 @@ // src/lib/ui/components/Search.tsx function SearchIcon() { - return /* @__PURE__ */ jsx(import_react_native13.Image, { + return /* @__PURE__ */ jsx(import_react_native12.Image, { style: { width: 16, height: 16 @@ -5376,7 +5239,7 @@ source: findAssetId("search") }); } - var import_react_native13, Search_default; + var import_react_native12, Search_default; var init_Search = __esm({ "src/lib/ui/components/Search.tsx"() { "use strict"; @@ -5387,7 +5250,7 @@ init_assets(); init_components(); init_ErrorBoundary(); - import_react_native13 = __toESM(require_react_native()); + import_react_native12 = __toESM(require_react_native()); Search_default = ({ onChangeText, placeholder, style, isRound }) => { var [query, setQuery] = React.useState(""); var onChange = (value) => { @@ -5395,7 +5258,7 @@ onChangeText?.(value); }; return /* @__PURE__ */ jsx(ErrorBoundary, { - children: /* @__PURE__ */ jsx(import_react_native13.View, { + children: /* @__PURE__ */ jsx(import_react_native12.View, { style, children: /* @__PURE__ */ jsx(TextInput, { grow: true, @@ -5438,11 +5301,11 @@ onPress: () => { setHidden(!hidden); if (!noAnimation) - import_react_native14.LayoutAnimation.configureNext(import_react_native14.LayoutAnimation.Presets.easeInEaseOut); + import_react_native13.LayoutAnimation.configureNext(import_react_native13.LayoutAnimation.Presets.easeInEaseOut); } }), !hidden && /* @__PURE__ */ jsx(Fragment, { - children: /* @__PURE__ */ jsx(import_react_native14.View, { + children: /* @__PURE__ */ jsx(import_react_native13.View, { style: !noPadding && { paddingHorizontal: 15 }, @@ -5452,7 +5315,7 @@ ] }); } - var import_react_native14; + var import_react_native13; var init_Summary = __esm({ "src/lib/ui/components/Summary.tsx"() { "use strict"; @@ -5461,7 +5324,7 @@ init_jsxRuntime(); init_assets(); init_components(); - import_react_native14 = __toESM(require_react_native()); + import_react_native13 = __toESM(require_react_native()); } }); @@ -5487,189 +5350,6 @@ } }); - // src/core/ui/reporter/components/ErrorBoundaryScreen.tsx - function ErrorBoundaryScreen(props) { - var styles = useStyles2(); - var debugInfo = getDebugInfo(); - return /* @__PURE__ */ jsx(ErrorBoundary, { - children: /* @__PURE__ */ jsx(SafeAreaProvider, { - children: /* @__PURE__ */ jsxs(SafeAreaView, { - style: styles.container, - children: [ - /* @__PURE__ */ jsxs(import_react_native15.View, { - style: { - gap: 4 - }, - children: [ - /* @__PURE__ */ jsx(Text, { - variant: "display-lg", - children: "Uh oh." - }), - /* @__PURE__ */ jsx(Text, { - variant: "text-md/normal", - children: "A crash occurred while rendering a component. This could be caused by a plugin, Bunny or Discord itself." - }), - /* @__PURE__ */ jsxs(Text, { - variant: "text-sm/normal", - color: "text-muted", - children: [ - debugInfo.os.name, - "; ", - debugInfo.discord.build, - " (", - debugInfo.discord.version, - "); ", - debugInfo.bunny.version - ] - }) - ] - }), - /* @__PURE__ */ jsxs(import_react_native15.ScrollView, { - fadingEdgeLength: 64, - contentContainerStyle: { - gap: 12 - }, - children: [ - /* @__PURE__ */ jsx(Codeblock, { - selectable: true, - children: props.error.message - }), - hasStack(props.error) && /* @__PURE__ */ jsx(ErrorStackCard, { - error: props.error - }), - isComponentStack(props.error) ? /* @__PURE__ */ jsx(ErrorComponentStackCard, { - componentStack: props.error.componentStack - }) : null - ] - }), - /* @__PURE__ */ jsxs(Card, { - style: { - gap: 6 - }, - children: [ - /* @__PURE__ */ jsx(Button, { - text: "Reload Discord", - onPress: () => BundleUpdaterManager.reload() - }), - !settings.safeMode?.enabled && /* @__PURE__ */ jsx(Button, { - text: "Reload in Safe Mode", - onPress: () => toggleSafeMode() - }), - /* @__PURE__ */ jsx(Button, { - variant: "destructive", - text: "Retry Render", - onPress: () => props.rerender() - }) - ] - }) - ] - }) - }) - }); - } - var import_react_native15, useStyles2; - var init_ErrorBoundaryScreen = __esm({ - "src/core/ui/reporter/components/ErrorBoundaryScreen.tsx"() { - "use strict"; - init_asyncIteratorSymbol(); - init_promiseAllSettled(); - init_jsxRuntime(); - init_isStack(); - init_debug(); - init_modules(); - init_settings(); - init_components2(); - init_styles(); - init_common(); - init_components(); - import_react_native15 = __toESM(require_react_native()); - init_ErrorComponentStackCard(); - init_ErrorStackCard(); - useStyles2 = createStyles({ - container: { - flex: 1, - backgroundColor: tokens.colors.BG_BASE_SECONDARY, - paddingHorizontal: 16, - height: "100%", - padding: 8, - gap: 12 - } - }); - } - }); - - // src/core/debug/patches/patchErrorBoundary.tsx - function getErrorBoundaryContext() { - var ctxt = findByNameLazy("ErrorBoundary")[_lazyContextSymbol]; - return new Promise((resolve) => ctxt.getExports((exp) => resolve(exp.prototype))); - } - function patchErrorBoundary() { - return after.await("render", getErrorBoundaryContext(), function() { - if (!this.state.error) - return; - return /* @__PURE__ */ jsx(ErrorBoundaryScreen, { - error: this.state.error, - rerender: () => this.setState({ - info: null, - error: null - }) - }); - }); - } - var init_patchErrorBoundary = __esm({ - "src/core/debug/patches/patchErrorBoundary.tsx"() { - "use strict"; - init_asyncIteratorSymbol(); - init_promiseAllSettled(); - init_jsxRuntime(); - init_ErrorBoundaryScreen(); - init_patcher(); - init_lazy2(); - init_wrappers(); - } - }); - - // globals:moment - var require_moment = __commonJS({ - "globals:moment"(exports, module) { - init_asyncIteratorSymbol(); - init_promiseAllSettled(); - module.exports = require_depsModule()["moment"]; - } - }); - - // src/core/fixes.ts - function onDispatch({ locale }) { - try { - import_moment.default.locale(locale.toLowerCase()); - } catch (e) { - logger.error("Failed to fix timestamps...", e); - } - FluxDispatcher.unsubscribe("I18N_LOAD_SUCCESS", onDispatch); - } - var import_moment, fixes_default; - var init_fixes = __esm({ - "src/core/fixes.ts"() { - "use strict"; - init_asyncIteratorSymbol(); - init_promiseAllSettled(); - init_logger(); - init_common(); - import_moment = __toESM(require_moment()); - fixes_default = () => { - FluxDispatcher.subscribe("I18N_LOAD_SUCCESS", onDispatch); - }; - } - }); - - // src/assets/icons/kettu.png - var kettu_default; - var init_kettu = __esm({ - "src/assets/icons/kettu.png"() { - kettu_default = "data:image/png;base64,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Im1DZW50ZXJYXCI6MC40ODM0NDI1NzQ3Mzk0NTYyLFwibUNlbnRlcllcIjowLjUwOTgzMDY1MzY2NzQ1LFwibVdpZHRoXCI6MC43OTA1NzkxOTk3OTA5NTQ2LFwibUhlaWdodFwiOjAuODAzODg5MzM0MjAxODEyNyxcIm1Sb3RhdGlvblwiOjAsXCJtUm90YXRlXCI6MCxcIm1IRmxpcFwiOjAsXCJtVkZsaXBcIjowLFwibVJvdGF0aW9uRWZmZWN0XCI6MCxcIm1Sb3RhdGVFZmZlY3RcIjowLFwibUhGbGlwRWZmZWN0XCI6MCxcIm1WRmxpcEVmZmVjdFwiOjAsXCJtSG96UGVyc3BlY3RpdmVcIjowLFwibVZlclBlcnNwZWN0aXZlXCI6MH0iLCJ0b25lVmFsdWUiOiJ7XCJicmlnaHRuZXNzXCI6MTAwLFwiZXhwb3N1cmVcIjoxMDAsXCJjb250cmFzdFwiOjEwMCxcInNhdHVyYXRpb25cIjoxMDAsXCJodWVcIjoxMDAsXCJ3Yk1vZGVcIjotMSxcIndiVGVtcGVyYXR1cmVcIjoxMDAsXCJ0aW50XCI6MTAwLFwic2hhZG93XCI6MTAwLFwiaGlnaGxpZ2h0XCI6MTAwLFwibGlnaHRiYWxhbmNlXCI6MTAwLFwic2hhcnBuZXNzXCI6MTAwLFwiZGVmaW5pdGlvblwiOjEwMCxcImlzQnJpZ2h0bmVzc0lQRVwiOmZhbHNlLFwiaXNFeHBvc3VyZUlQRVwiOmZhbHNlLFwiaXNDb250cmFzdElQRVwiOmZhbHNlLFwiaXNTYXR1cmF0aW9uSVBFXCI6ZmFsc2V9IiwiZWZmZWN0VmFsdWUiOiJ7XCJmaWx0ZXJJbmRpY2F0aW9uXCI6NDA5NyxcImFscGhhVmFsdWVcIjoxMDAsXCJmaWx0ZXJUeXBlXCI6MH0iLCJwb3J0cmFpdEVmZmVjdFZhbHVlIjoie1wiZWZmZWN0SWRcIjotMSxcImVmZmVjdExldmVsXCI6LTEsXCJleGlmUm90YXRpb25cIjowLFwibGlnaHRMZXZlbFwiOjAsXCJ0b3VjaFhcIjowLFwidG91Y2hZXCI6MCxcInJlZm9jdXNYXCI6LTEsXCJyZWZvY3VzWVwiOi0xLFwiZWZmZWN0SWRPcmlnaW5hbFwiOi0xLFwiZWZmZWN0TGV2ZWxPcmlnaW5hbFwiOi0xLFwibGlnaHRMZXZlbE9yaWdpbmFsXCI6LTEsXCJ0b3VjaFhPcmlnaW5hbFwiOjAsXCJ0b3VjaFlPcmlnaW5hbFwiOjAsXCJyZWZvY3VzWE9yaWdpbmFsXCI6LTEsXCJyZWZvY3VzWU9yaWdpbmFsXCI6LTEsXCJ3YXRlck1hcmtSZW1vdmVkXCI6ZmFsc2UsXCJ3YXRlck1hcmtSZW1vdmVkT3JpZ2luYWxcIjpmYWxzZX0iLCJpc0JsZW5kaW5nIjp0cnVlLCJpc05vdFJlRWRpdCI6ZmFsc2UsInNlcFZlcnNpb24iOiIxNjAwMDAiLCJuZGVWZXJzaW9uIjoxLCJyZVNpemUiOjQsImlzU2NhbGVBSSI6ZmFsc2UsInJvdGF0aW9uIjoxLCJhZGp1c3RtZW50VmFsdWUiOiJ7XCJtQ3JvcFN0YXRlXCI6MTMxMDc2fSIsImlzQXBwbHlTaGFwZUNvcnJlY3Rpb24iOmZhbHNlLCJpc05ld1JlRWRpdE9ubHkiOmZhbHNlLCJpc0RlY29SZUVkaXRPbmx5IjpmYWxzZSwiaXNBSUZpbHRlclJlRWRpdE9ubHkiOmZhbHNlfQAAoQsWAAAAT3JpZ2luYWxfUGF0aF9IYXNoX0tleTBmYTMxNDVjMzc5MDc4MWI4ZDA2YjdiMThkNmI3Y2Y5YWZmMTY4NTE4NDA5YTFiNTZjMTQ5NTc2MzQ5YjViZmYvMjM4MDNTRUZIawAAAAIAAAAAAKEL7QYAAIkGAAAAAKELZAAAAGQAAAAkAAAAU0VGVA=="; - } - }); - // src/lib/ui/settings/patches/shared.tsx function wrapOnPress(onPress, navigation2, renderPromise, screenOptions, props) { return /* @__PURE__ */ _async_to_generator(function* () { @@ -5926,11 +5606,11 @@ function isSafeMode() { return settings.safeMode?.enabled === true; } - function toggleSafeMode2() { - return _toggleSafeMode2.apply(this, arguments); + function toggleSafeMode() { + return _toggleSafeMode.apply(this, arguments); } - function _toggleSafeMode2() { - _toggleSafeMode2 = _async_to_generator(function* ({ to = !isSafeMode(), reload = true } = {}) { + function _toggleSafeMode() { + _toggleSafeMode = _async_to_generator(function* ({ to = !isSafeMode(), reload = true } = {}) { var enabled = (settings.safeMode ??= { enabled: to }).enabled = to; @@ -5939,7 +5619,7 @@ if (reload) setTimeout(() => BundleUpdaterManager.reload(), 500); }); - return _toggleSafeMode2.apply(this, arguments); + return _toggleSafeMode.apply(this, arguments); } var init_safeMode = __esm({ "src/core/debug/safeMode.ts"() { @@ -5953,6 +5633,37 @@ } }); + // src/lib/ui/toasts.ts + var toasts_exports = {}; + __export(toasts_exports, { + showToast: () => showToast + }); + var uuid4, showToast; + var init_toasts = __esm({ + "src/lib/ui/toasts.ts"() { + "use strict"; + init_asyncIteratorSymbol(); + init_promiseAllSettled(); + init_i18n(); + init_assets(); + init_lazy(); + init_common(); + init_wrappers(); + ({ uuid4 } = lazyDestructure(() => findByProps("uuid4"))); + showToast = (content, asset) => toasts.open({ + // ? In build 182205/44707, Discord changed their toasts, source is no longer used, rather icon, and a key is needed. + // TODO: We could probably have the developer specify a key themselves, but this works to fix toasts + key: `vd-toast-${uuid4()}`, + content, + source: asset, + icon: asset + }); + showToast.showCopyToClipboard = (message = Strings.COPIED_TO_CLIPBOARD) => { + showToast(message, findAssetId("toast_copy_link")); + }; + } + }); + // src/core/ui/settings/pages/General/Version.tsx function Version({ label, version, icon }) { return /* @__PURE__ */ jsx(TableRow, { @@ -5982,6 +5693,153 @@ } }); + // src/lib/api/debug.ts + var debug_exports = {}; + __export(debug_exports, { + connectToDebugger: () => connectToDebugger, + getDebugInfo: () => getDebugInfo, + patchLogHook: () => patchLogHook, + toggleSafeMode: () => toggleSafeMode2, + versionHash: () => versionHash + }); + function toggleSafeMode2() { + return _toggleSafeMode2.apply(this, arguments); + } + function _toggleSafeMode2() { + _toggleSafeMode2 = _async_to_generator(function* () { + settings.safeMode = { + ...settings.safeMode, + enabled: !settings.safeMode?.enabled + }; + if (isThemeSupported()) { + if (getThemeFromLoader()?.id) + settings.safeMode.currentThemeId = getThemeFromLoader().id; + if (settings.safeMode?.enabled) { + yield selectTheme(null); + } else if (settings.safeMode?.currentThemeId) { + yield selectTheme(themes[settings.safeMode?.currentThemeId]); + } + } + setTimeout(BundleUpdaterManager.reload, 400); + }); + return _toggleSafeMode2.apply(this, arguments); + } + function connectToDebugger(url2) { + if (socket !== void 0 && socket.readyState !== WebSocket.CLOSED) + socket.close(); + if (!url2) { + showToast("Invalid debugger URL!", findAssetId("Small")); + return; + } + socket = new WebSocket(`ws://${url2}`); + socket.addEventListener("open", () => showToast("Connected to debugger.", findAssetId("Check"))); + socket.addEventListener("message", (message) => { + try { + (0, eval)(message.data); + } catch (e) { + console.error(e); + } + }); + socket.addEventListener("error", (err) => { + console.log(`Debugger error: ${err.message}`); + showToast("An error occurred with the debugger connection!", findAssetId("Small")); + }); + } + function patchLogHook() { + var unpatch = after("nativeLoggingHook", globalThis, (args) => { + if (socket?.readyState === WebSocket.OPEN) + socket.send(JSON.stringify({ + message: args[0], + level: args[1] + })); + logger.log(args[0]); + }); + return () => { + socket && socket.close(); + unpatch(); + }; + } + function getDebugInfo() { + var hermesProps = window.HermesInternal.getRuntimeProperties(); + var hermesVer = hermesProps["OSS Release Version"]; + var padding = "for RN "; + var PlatformConstants = import_react_native14.Platform.constants; + var rnVer = PlatformConstants.reactNativeVersion; + return { + /** + * @deprecated use `bunny` field + * */ + vendetta: { + version: versionHash.split("-")[0], + loader: getLoaderName() + }, + bunny: { + version: versionHash, + loader: { + name: getLoaderName(), + version: getLoaderVersion() + } + }, + discord: { + version: NativeClientInfoModule.Version, + build: NativeClientInfoModule.Build + }, + react: { + version: React.version, + nativeVersion: hermesVer.startsWith(padding) ? hermesVer.substring(padding.length) : `${rnVer.major}.${rnVer.minor}.${rnVer.patch}` + }, + hermes: { + version: hermesVer, + buildType: hermesProps.Build, + bytecodeVersion: hermesProps["Bytecode Version"] + }, + ...import_react_native14.Platform.select({ + android: { + os: { + name: "Android", + version: PlatformConstants.Release, + sdk: PlatformConstants.Version + } + }, + ios: { + os: { + name: PlatformConstants.systemName, + version: PlatformConstants.osVersion + } + } + }), + ...import_react_native14.Platform.select({ + android: { + device: { + manufacturer: PlatformConstants.Manufacturer, + brand: PlatformConstants.Brand, + model: PlatformConstants.Model, + codename: NativeDeviceModule.device + } + } + }) + }; + } + var import_react_native14, socket, versionHash; + var init_debug = __esm({ + "src/lib/api/debug.ts"() { + "use strict"; + init_asyncIteratorSymbol(); + init_promiseAllSettled(); + init_async_to_generator(); + init_themes(); + init_assets(); + init_loader(); + init_modules(); + init_patcher(); + init_settings(); + init_logger(); + init_toasts(); + import_react_native14 = __toESM(require_react_native()); + versionHash = "v1.0.6"; + } + }); + // src/core/ui/settings/pages/General/About.tsx function About() { var debugInfo = getDebugInfo(); @@ -6049,14 +5907,14 @@ icon: "MobilePhoneIcon" }, { - label: import_react_native16.Platform.select({ + label: import_react_native15.Platform.select({ android: Strings.CODENAME }), version: debugInfo.device.codename, icon: "TagIcon" } ]; - return /* @__PURE__ */ jsx(import_react_native16.ScrollView, { + return /* @__PURE__ */ jsx(import_react_native15.ScrollView, { style: { flex: 1 }, @@ -6090,7 +5948,7 @@ }) }); } - var import_react_native16; + var import_react_native15; var init_About = __esm({ "src/core/ui/settings/pages/General/About.tsx"() { "use strict"; @@ -6104,7 +5962,7 @@ init_debug(); init_settings(); init_components(); - import_react_native16 = __toESM(require_react_native()); + import_react_native15 = __toESM(require_react_native()); } }); @@ -6135,7 +5993,7 @@ useProxy(settings); var debugInfo = getDebugInfo(); var navigation2 = NavigationNative.useNavigation(); - return /* @__PURE__ */ jsx(import_react_native17.ScrollView, { + return /* @__PURE__ */ jsx(import_react_native16.ScrollView, { style: { flex: 1 }, @@ -6194,7 +6052,7 @@ icon: /* @__PURE__ */ jsx(TableRow.Icon, { source: findAssetId("Discord") }), - onPress: () => import_react_native17.Linking.openURL(DISCORD_SERVER) + onPress: () => import_react_native16.Linking.openURL(DISCORD_SERVER) }), /* @__PURE__ */ jsx(TableRow, { arrow: true, @@ -6202,7 +6060,7 @@ icon: /* @__PURE__ */ jsx(TableRow.Icon, { source: findAssetId("img_account_sync_github_white") }), - onPress: () => import_react_native17.Linking.openURL(GITHUB) + onPress: () => import_react_native16.Linking.openURL(GITHUB) }) ] }), @@ -6224,7 +6082,7 @@ }), value: isSafeMode(), onValueChange: (to) => { - toggleSafeMode2({ + toggleSafeMode({ to, reload: false }); @@ -6277,7 +6135,7 @@ }) }); } - var import_react_native17; + var import_react_native16; var init_General = __esm({ "src/core/ui/settings/pages/General/index.tsx"() { "use strict"; @@ -6297,7 +6155,7 @@ init_constants(); init_common(); init_components(); - import_react_native17 = __toESM(require_react_native()); + import_react_native16 = __toESM(require_react_native()); } }); @@ -7161,7 +7019,7 @@ state: error ? "error" : void 0, errorMessage: error || void 0 }), - /* @__PURE__ */ jsx(import_react_native18.ScrollView, { + /* @__PURE__ */ jsx(import_react_native17.ScrollView, { horizontal: true, showsHorizontalScrollIndicator: false, style: { @@ -7245,7 +7103,7 @@ } }, []); if (results.length === 0 && !search) { - return /* @__PURE__ */ jsxs(import_react_native18.View, { + return /* @__PURE__ */ jsxs(import_react_native17.View, { style: { gap: 32, flexGrow: 1, @@ -7253,13 +7111,13 @@ alignItems: "center" }, children: [ - /* @__PURE__ */ jsxs(import_react_native18.View, { + /* @__PURE__ */ jsxs(import_react_native17.View, { style: { gap: 8, alignItems: "center" }, children: [ - /* @__PURE__ */ jsx(import_react_native18.Image, { + /* @__PURE__ */ jsx(import_react_native17.Image, { source: findAssetId("empty_quick_switcher") }), /* @__PURE__ */ jsx(Text, { @@ -7278,12 +7136,12 @@ ] }); } - var headerElement = /* @__PURE__ */ jsxs(import_react_native18.View, { + var headerElement = /* @__PURE__ */ jsxs(import_react_native17.View, { style: { paddingBottom: 8 }, children: [ - settings.safeMode?.enabled && /* @__PURE__ */ jsxs(import_react_native18.View, { + settings.safeMode?.enabled && /* @__PURE__ */ jsxs(import_react_native17.View, { style: { marginBottom: 10 }, @@ -7295,7 +7153,7 @@ props.safeModeHint?.footer ] }), - /* @__PURE__ */ jsxs(import_react_native18.View, { + /* @__PURE__ */ jsxs(import_react_native17.View, { style: { flexDirection: "row", gap: 8 @@ -7336,14 +7194,14 @@ extraData: search, estimatedItemSize: 136, ListHeaderComponent: headerElement, - ListEmptyComponent: () => /* @__PURE__ */ jsxs(import_react_native18.View, { + ListEmptyComponent: () => /* @__PURE__ */ jsxs(import_react_native17.View, { style: { gap: 12, padding: 12, alignItems: "center" }, children: [ - /* @__PURE__ */ jsx(import_react_native18.Image, { + /* @__PURE__ */ jsx(import_react_native17.Image, { source: findAssetId("devices_not_found") }), /* @__PURE__ */ jsx(Text, { @@ -7358,7 +7216,7 @@ paddingHorizontal: 12, paddingBottom: 90 }, - ItemSeparatorComponent: () => /* @__PURE__ */ jsx(import_react_native18.View, { + ItemSeparatorComponent: () => /* @__PURE__ */ jsx(import_react_native17.View, { style: { height: 8 } @@ -7377,7 +7235,7 @@ ] }); } - var import_fuzzysort, import_react3, import_react_native18, showSimpleActionSheet, hideActionSheet; + var import_fuzzysort, import_react3, import_react_native17, showSimpleActionSheet, hideActionSheet; var init_AddonPage = __esm({ "src/core/ui/components/AddonPage.tsx"() { "use strict"; @@ -7397,7 +7255,7 @@ init_dist(); import_fuzzysort = __toESM(require_fuzzysort()); import_react3 = __toESM(require_react()); - import_react_native18 = __toESM(require_react_native()); + import_react_native17 = __toESM(require_react_native()); ({ showSimpleActionSheet, hideActionSheet } = lazyDestructure(() => findByProps("showSimpleActionSheet"))); } }); @@ -7452,14 +7310,14 @@ variant: "heading-lg/semibold", children: highlightedNode.length ? highlightedNode : plugin.name }); - return /* @__PURE__ */ jsxs(import_react_native19.View, { + return /* @__PURE__ */ jsxs(import_react_native18.View, { style: { flexDirection: "row", alignItems: "center", gap: 6 }, children: [ - icon && /* @__PURE__ */ jsx(import_react_native19.Image, { + icon && /* @__PURE__ */ jsx(import_react_native18.Image, { style: styles.smallIcon, source: icon }), @@ -7480,7 +7338,7 @@ }, i)); var badges = plugin.getBadges(); var authorText = highlightedNode.length > 0 ? highlightedNode : plugin.authors.map((a) => a.name).join(", "); - return /* @__PURE__ */ jsxs(import_react_native19.View, { + return /* @__PURE__ */ jsxs(import_react_native18.View, { style: { flexDirection: "row", flexWrap: "wrap", @@ -7496,9 +7354,9 @@ authorText ] }), - badges.length > 0 && /* @__PURE__ */ jsx(import_react_native19.View, { + badges.length > 0 && /* @__PURE__ */ jsx(import_react_native18.View, { style: styles.badgesContainer, - children: badges.map((b3, i) => /* @__PURE__ */ jsx(import_react_native19.Image, { + children: badges.map((b3, i) => /* @__PURE__ */ jsx(import_react_native18.Image, { source: b3.source, style: styles.badgeIcon }, i)) @@ -7535,13 +7393,13 @@ children: /* @__PURE__ */ jsxs(Stack, { spacing: 16, children: [ - /* @__PURE__ */ jsxs(import_react_native19.View, { + /* @__PURE__ */ jsxs(import_react_native18.View, { style: { flexDirection: "row", justifyContent: "space-between" }, children: [ - /* @__PURE__ */ jsxs(import_react_native19.View, { + /* @__PURE__ */ jsxs(import_react_native18.View, { style: { flexShrink: 1 }, @@ -7550,7 +7408,7 @@ /* @__PURE__ */ jsx(Authors, {}) ] }), - /* @__PURE__ */ jsx(import_react_native19.View, { + /* @__PURE__ */ jsx(import_react_native18.View, { children: /* @__PURE__ */ jsxs(Stack, { spacing: 12, direction: "horizontal", @@ -7574,7 +7432,7 @@ }) }); } - var import_chroma_js4, import_react4, import_react_native19, CardContext, useCardContext, Actions; + var import_chroma_js4, import_react4, import_react_native18, CardContext, useCardContext, Actions; var init_PluginCard = __esm({ "src/core/ui/settings/pages/Plugins/components/PluginCard.tsx"() { "use strict"; @@ -7588,13 +7446,13 @@ init_sheets(); import_chroma_js4 = __toESM(require_chroma_js()); import_react4 = __toESM(require_react()); - import_react_native19 = __toESM(require_react_native()); + import_react_native18 = __toESM(require_react_native()); CardContext = /* @__PURE__ */ (0, import_react4.createContext)(null); useCardContext = () => (0, import_react4.useContext)(CardContext); Actions = () => { var { plugin } = useCardContext(); var navigation2 = NavigationNative.useNavigation(); - return /* @__PURE__ */ jsxs(import_react_native19.View, { + return /* @__PURE__ */ jsxs(import_react_native18.View, { style: { flexDirection: "row", gap: 6 @@ -8027,7 +7885,7 @@ showToast(e.message, findAssetId("Small")); }); } - var import_react_native20, showSimpleActionSheet2, handleClick, getChannelId, getChannel, url_default; + var import_react_native19, showSimpleActionSheet2, handleClick, getChannelId, getChannel, url_default; var init_url = __esm({ "src/core/plugins/quickinstall/url.tsx"() { "use strict"; @@ -8048,7 +7906,7 @@ init_finders(); init_wrappers(); init_toasts(); - import_react_native20 = __toESM(require_react_native()); + import_react_native19 = __toESM(require_react_native()); showSimpleActionSheet2 = findExports(byMutableProp("showSimpleActionSheet")); handleClick = findByPropsLazy("handleClick"); ({ getChannelId } = lazyDestructure(() => channels)); @@ -8084,7 +7942,7 @@ confirmText: Strings.INSTALL, cancelText: Strings.CANCEL, secondaryConfirmText: Strings.OPEN_IN_BROWSER, - onConfirmSecondary: () => import_react_native20.Linking.openURL(url2) + onConfirmSecondary: () => import_react_native19.Linking.openURL(url2) }); }); return function(args, orig) { @@ -9119,23 +8977,23 @@ _loop2(author); authorTextNode.pop(); } - return /* @__PURE__ */ jsxs(import_react_native21.View, { + return /* @__PURE__ */ jsxs(import_react_native20.View, { style: { gap: 4 }, children: [ - /* @__PURE__ */ jsx(import_react_native21.View, { + /* @__PURE__ */ jsx(import_react_native20.View, { children: /* @__PURE__ */ jsx(Text, { variant: "heading-xl/semibold", children: plugin.name }) }), - /* @__PURE__ */ jsx(import_react_native21.View, { + /* @__PURE__ */ jsx(import_react_native20.View, { style: { flexDirection: "row", flexShrink: 1 }, - children: authors?.length && /* @__PURE__ */ jsxs(import_react_native21.View, { + children: authors?.length && /* @__PURE__ */ jsxs(import_react_native20.View, { style: { flexDirection: "row", gap: 8, @@ -9165,7 +9023,7 @@ ] }); } - var import_react_native21, showUserProfileActionSheet, maybeFetchUser; + var import_react_native20, showUserProfileActionSheet, maybeFetchUser; var init_TitleComponent = __esm({ "src/core/ui/settings/pages/Plugins/sheets/TitleComponent.tsx"() { "use strict"; @@ -9177,7 +9035,7 @@ init_common(); init_components(); init_stores(); - import_react_native21 = __toESM(require_react_native()); + import_react_native20 = __toESM(require_react_native()); showUserProfileActionSheet = findByNameLazy("showUserProfileActionSheet"); ({ getUser: maybeFetchUser } = lazyDestructure(() => findByProps("getUser", "fetchProfile"))); } @@ -9201,13 +9059,13 @@ function PluginInfoActionSheet({ plugin, navigation: navigation2 }) { plugin.usePluginState(); return /* @__PURE__ */ jsx(ActionSheet, { - children: /* @__PURE__ */ jsxs(import_react_native22.ScrollView, { + children: /* @__PURE__ */ jsxs(import_react_native21.ScrollView, { contentContainerStyle: { gap: 12, marginBottom: 12 }, children: [ - /* @__PURE__ */ jsxs(import_react_native22.View, { + /* @__PURE__ */ jsxs(import_react_native21.View, { style: { flexDirection: "row", alignItems: "center", @@ -9258,7 +9116,7 @@ }) ] }), - /* @__PURE__ */ jsxs(import_react_native22.View, { + /* @__PURE__ */ jsxs(import_react_native21.View, { style: { flexDirection: "row", justifyContent: "space-around", @@ -9314,7 +9172,7 @@ }) }); } - var import_react_native22; + var import_react_native21; var init_PluginInfoActionSheet = __esm({ "src/core/ui/settings/pages/Plugins/sheets/PluginInfoActionSheet.tsx"() { "use strict"; @@ -9325,7 +9183,7 @@ init_assets(); init_sheets(); init_components(); - import_react_native22 = __toESM(require_react_native()); + import_react_native21 = __toESM(require_react_native()); init_TitleComponent(); } }); @@ -9389,9 +9247,9 @@ var vdPlugin = VdPluginManager.plugins[plugin.id]; var SettingsComponent = plugin.getPluginSettingsComponent(); return /* @__PURE__ */ jsx(ActionSheet, { - children: /* @__PURE__ */ jsxs(import_react_native23.ScrollView, { + children: /* @__PURE__ */ jsxs(import_react_native22.ScrollView, { children: [ - /* @__PURE__ */ jsxs(import_react_native23.View, { + /* @__PURE__ */ jsxs(import_react_native22.View, { style: { flexDirection: "row", alignItems: "center", @@ -9402,7 +9260,7 @@ variant: "heading-xl/semibold", children: plugin.name }), - /* @__PURE__ */ jsx(import_react_native23.View, { + /* @__PURE__ */ jsx(import_react_native22.View, { style: { marginLeft: "auto" }, @@ -9543,7 +9401,7 @@ }) }); } - var import_react_native23; + var import_react_native22; var init_VdPluginInfoActionSheet = __esm({ "src/core/ui/settings/pages/Plugins/sheets/VdPluginInfoActionSheet.tsx"() { "use strict"; @@ -9560,7 +9418,7 @@ init_components(); init_sheets(); init_toasts(); - import_react_native23 = __toESM(require_react_native()); + import_react_native22 = __toESM(require_react_native()); } }); @@ -13182,14 +13040,14 @@ children: /* @__PURE__ */ jsxs(Stack, { spacing: 16, children: [ - /* @__PURE__ */ jsxs(import_react_native24.View, { + /* @__PURE__ */ jsxs(import_react_native23.View, { style: { flexDirection: "row", justifyContent: "space-between", alignItems: "center" }, children: [ - /* @__PURE__ */ jsxs(import_react_native24.View, { + /* @__PURE__ */ jsxs(import_react_native23.View, { style: { flexShrink: 1 }, @@ -13212,7 +13070,7 @@ }) ] }), - /* @__PURE__ */ jsx(import_react_native24.View, { + /* @__PURE__ */ jsx(import_react_native23.View, { children: /* @__PURE__ */ jsx(TrailingButtons, { id: props.manifest.id }) @@ -13251,7 +13109,7 @@ queryFn: () => getManifests() }); if (error) { - return /* @__PURE__ */ jsx(import_react_native24.View, { + return /* @__PURE__ */ jsx(import_react_native23.View, { style: { flex: 1, paddingHorizontal: 8, @@ -13297,7 +13155,7 @@ paddingBottom: 90, paddingHorizontal: 5 }, - renderItem: ({ item: manifest }) => /* @__PURE__ */ jsx(import_react_native24.View, { + renderItem: ({ item: manifest }) => /* @__PURE__ */ jsx(import_react_native23.View, { style: { paddingVertical: 6, paddingHorizontal: 8 @@ -13420,7 +13278,7 @@ children: /* @__PURE__ */ jsx(BrowserPage, {}) }); } - var import_react6, import_react_native24, queryClient; + var import_react6, import_react_native23, queryClient; var init_PluginBrowser = __esm({ "src/core/ui/settings/pages/PluginBrowser/index.tsx"() { "use strict"; @@ -13441,7 +13299,7 @@ init_components(); init_modern2(); import_react6 = __toESM(require_react()); - import_react_native24 = __toESM(require_react_native()); + import_react_native23 = __toESM(require_react_native()); queryClient = new QueryClient(); } }); @@ -13494,14 +13352,14 @@ var unproxiedPlugins = Object.values(VdPluginManager.plugins).filter((p) => !p.id.startsWith(VD_PROXY_PREFIX) && !p.id.startsWith(BUNNY_PROXY_PREFIX)); if (!unproxiedPlugins.length) return null; - return /* @__PURE__ */ jsx(import_react_native25.View, { + return /* @__PURE__ */ jsx(import_react_native24.View, { style: { marginVertical: 12, marginHorizontal: 10 }, children: /* @__PURE__ */ jsx(Card, { border: "strong", - children: /* @__PURE__ */ jsxs(import_react_native25.View, { + children: /* @__PURE__ */ jsxs(import_react_native24.View, { style: { flex: 1, justifyContent: "center", @@ -13509,7 +13367,7 @@ flexDirection: "row" }, children: [ - /* @__PURE__ */ jsxs(import_react_native25.View, { + /* @__PURE__ */ jsxs(import_react_native24.View, { style: { gap: 6, flexShrink: 1 @@ -13526,7 +13384,7 @@ }) ] }), - /* @__PURE__ */ jsx(import_react_native25.View, { + /* @__PURE__ */ jsx(import_react_native24.View, { style: { marginLeft: "auto" }, @@ -13546,7 +13404,7 @@ contentContainerStyle: { padding: 8 }, - ItemSeparatorComponent: () => /* @__PURE__ */ jsx(import_react_native25.View, { + ItemSeparatorComponent: () => /* @__PURE__ */ jsx(import_react_native24.View, { style: { height: 8 } @@ -13568,7 +13426,7 @@ }) }); }, - ListFooterComponent: () => /* @__PURE__ */ jsx(import_react_native25.View, { + ListFooterComponent: () => /* @__PURE__ */ jsx(import_react_native24.View, { style: { alignItems: "center", justifyContent: "center", @@ -13641,7 +13499,7 @@ } }); } - var import_react_native25, openAlert2, AlertModal3, AlertActions2, AlertActionButton3; + var import_react_native24, openAlert2, AlertModal3, AlertActions2, AlertActionButton3; var init_Plugins = __esm({ "src/core/ui/settings/pages/Plugins/index.tsx"() { "use strict"; @@ -13664,7 +13522,7 @@ init_metro(); init_common(); init_components(); - import_react_native25 = __toESM(require_react_native()); + import_react_native24 = __toESM(require_react_native()); init_bunny(); init_vendetta(); ({ openAlert: openAlert2 } = lazyDestructure(() => findByProps("openAlert", "dismissAlert"))); @@ -13674,18 +13532,18 @@ // src/core/ui/components/AddonCard.tsx function AddonCard(props) { - var styles = useStyles3(); + var styles = useStyles2(); return /* @__PURE__ */ jsx(Card, { children: /* @__PURE__ */ jsxs(Stack, { spacing: 16, children: [ - /* @__PURE__ */ jsxs(import_react_native26.View, { + /* @__PURE__ */ jsxs(import_react_native25.View, { style: { flexDirection: "row", alignItems: "center" }, children: [ - /* @__PURE__ */ jsxs(import_react_native26.View, { + /* @__PURE__ */ jsxs(import_react_native25.View, { style: styles.headerLeading, children: [ /* @__PURE__ */ jsx(Text, { @@ -13698,7 +13556,7 @@ }) ] }), - /* @__PURE__ */ jsxs(import_react_native26.View, { + /* @__PURE__ */ jsxs(import_react_native25.View, { style: [ styles.headerTrailing, { @@ -13706,7 +13564,7 @@ } ], children: [ - /* @__PURE__ */ jsxs(import_react_native26.View, { + /* @__PURE__ */ jsxs(import_react_native25.View, { style: styles.actions, children: [ props.overflowActions && /* @__PURE__ */ jsx(IconButton, { @@ -13743,7 +13601,7 @@ props.toggleType && (props.toggleType === "switch" ? /* @__PURE__ */ jsx(FormSwitch, { value: props.toggleValue(), onValueChange: props.onToggleChange - }) : /* @__PURE__ */ jsx(import_react_native26.TouchableOpacity, { + }) : /* @__PURE__ */ jsx(import_react_native25.TouchableOpacity, { onPress: () => { props.onToggleChange?.(!props.toggleValue()); }, @@ -13763,7 +13621,7 @@ }) }); } - var import_react_native26, hideActionSheet2, showSimpleActionSheet3, useStyles3; + var import_react_native25, hideActionSheet2, showSimpleActionSheet3, useStyles2; var init_AddonCard = __esm({ "src/core/ui/components/AddonCard.tsx"() { "use strict"; @@ -13776,10 +13634,10 @@ init_wrappers(); init_color(); init_styles(); - import_react_native26 = __toESM(require_react_native()); + import_react_native25 = __toESM(require_react_native()); ({ hideActionSheet: hideActionSheet2 } = lazyDestructure(() => findByProps("openLazy", "hideActionSheet"))); ({ showSimpleActionSheet: showSimpleActionSheet3 } = lazyDestructure(() => findByProps("showSimpleActionSheet"))); - useStyles3 = createStyles({ + useStyles2 = createStyles({ card: { backgroundColor: semanticColors?.CARD_SECONDARY_BG, borderRadius: 12, @@ -13964,7 +13822,7 @@ /* @__PURE__ */ jsx(BottomSheetTitleHeader, { title: "Options" }), - /* @__PURE__ */ jsxs(import_react_native27.View, { + /* @__PURE__ */ jsxs(import_react_native26.View, { style: { paddingVertical: 20, gap: 12 @@ -14035,7 +13893,7 @@ } }); } - var import_react_native27; + var import_react_native26; var init_Themes = __esm({ "src/core/ui/settings/pages/Themes/index.tsx"() { "use strict"; @@ -14053,7 +13911,7 @@ init_settings(); init_storage2(); init_components(); - import_react_native27 = __toESM(require_react_native()); + import_react_native26 = __toESM(require_react_native()); } }); @@ -14235,7 +14093,7 @@ var themeFonts = currentTheme.fonts; var [fontName, setFontName] = (0, import_react7.useState)(guessFontName(Object.values(themeFonts))); var [error, setError] = (0, import_react7.useState)(void 0); - return /* @__PURE__ */ jsxs(import_react_native28.View, { + return /* @__PURE__ */ jsxs(import_react_native27.View, { style: { padding: 8, paddingBottom: 16, @@ -14288,7 +14146,7 @@ var [fontLink, setFontLink] = (0, import_react7.useState)(""); var [saving, setSaving] = (0, import_react7.useState)(false); var [error, setError] = (0, import_react7.useState)(void 0); - return /* @__PURE__ */ jsxs(import_react_native28.View, { + return /* @__PURE__ */ jsxs(import_react_native27.View, { style: { padding: 8, paddingBottom: 16, @@ -14331,7 +14189,7 @@ function EntryEditorActionSheet(props) { var [familyName, setFamilyName] = (0, import_react7.useState)(props.name); var [fontUrl, setFontUrl] = (0, import_react7.useState)(props.fontEntries[props.name]); - return /* @__PURE__ */ jsxs(import_react_native28.View, { + return /* @__PURE__ */ jsxs(import_react_native27.View, { style: { padding: 8, paddingBottom: 16, @@ -14387,14 +14245,14 @@ var urlRef = (0, import_react7.useRef)(); var [nameSet, setNameSet] = (0, import_react7.useState)(false); var [error, setError] = (0, import_react7.useState)(); - return /* @__PURE__ */ jsxs(import_react_native28.View, { + return /* @__PURE__ */ jsxs(import_react_native27.View, { style: { flexDirection: "row", gap: 8, justifyContent: "flex-start" }, children: [ - /* @__PURE__ */ jsx(import_react_native28.View, { + /* @__PURE__ */ jsx(import_react_native27.View, { style: { flex: 1 }, @@ -14460,7 +14318,7 @@ ]); var fontEntries = useProxy(memoEntry); var navigation2 = NavigationNative.useNavigation(); - return /* @__PURE__ */ jsx(import_react_native28.ScrollView, { + return /* @__PURE__ */ jsx(import_react_native27.ScrollView, { style: { flex: 1 }, @@ -14569,7 +14427,7 @@ }) ] }), - /* @__PURE__ */ jsx(import_react_native28.View, { + /* @__PURE__ */ jsx(import_react_native27.View, { style: { flexDirection: "row", justifyContent: "flex-end", @@ -14613,7 +14471,7 @@ }) }); } - var import_react7, import_react_native28, actionSheet2; + var import_react7, import_react_native27, actionSheet2; var init_FontEditor = __esm({ "src/core/ui/settings/pages/Fonts/FontEditor.tsx"() { "use strict"; @@ -14632,7 +14490,7 @@ init_wrappers(); init_components2(); import_react7 = __toESM(require_react()); - import_react_native28 = __toESM(require_react_native()); + import_react_native27 = __toESM(require_react_native()); actionSheet2 = findByPropsLazy("hideActionSheet"); } }); @@ -14669,7 +14527,7 @@ ]); return ( // This does not work, actually :woeis: - /* @__PURE__ */ jsx(import_react_native29.View, { + /* @__PURE__ */ jsx(import_react_native28.View, { style: { height: 64 }, @@ -14683,7 +14541,7 @@ y: 0, width: 300 }) - }) : /* @__PURE__ */ jsx(import_react_native29.View, { + }) : /* @__PURE__ */ jsx(import_react_native28.View, { style: { justifyContent: "center", alignItems: "center" @@ -14705,19 +14563,19 @@ children: /* @__PURE__ */ jsxs(Stack, { spacing: 16, children: [ - /* @__PURE__ */ jsxs(import_react_native29.View, { + /* @__PURE__ */ jsxs(import_react_native28.View, { style: { flexDirection: "row", alignItems: "center" }, children: [ - /* @__PURE__ */ jsx(import_react_native29.View, { + /* @__PURE__ */ jsx(import_react_native28.View, { children: /* @__PURE__ */ jsx(Text, { variant: "heading-lg/semibold", children: font.name }) }), - /* @__PURE__ */ jsx(import_react_native29.View, { + /* @__PURE__ */ jsx(import_react_native28.View, { style: { marginLeft: "auto" }, @@ -14767,7 +14625,7 @@ }) }); } - var Skia, import_react8, import_react_native29, useToken2; + var Skia, import_react8, import_react_native28, useToken2; var init_FontCard = __esm({ "src/core/ui/settings/pages/Fonts/FontCard.tsx"() { "use strict"; @@ -14788,7 +14646,7 @@ Skia = __toESM(require_react_native_skia()); init_styles(); import_react8 = __toESM(require_react()); - import_react_native29 = __toESM(require_react_native()); + import_react_native28 = __toESM(require_react_native()); init_FontEditor(); ({ useToken: useToken2 } = lazyDestructure(() => findByProps("useToken"))); } @@ -14894,7 +14752,7 @@ function AssetDisplay({ asset }) { return /* @__PURE__ */ jsx(LegacyFormRow, { label: `${asset.name} - ${asset.id}`, - trailing: /* @__PURE__ */ jsx(import_react_native30.Image, { + trailing: /* @__PURE__ */ jsx(import_react_native29.Image, { source: asset.id, style: { width: 32, @@ -14907,7 +14765,7 @@ } }); } - var import_react_native30; + var import_react_native29; var init_AssetDisplay = __esm({ "src/core/ui/settings/pages/Developer/AssetDisplay.tsx"() { "use strict"; @@ -14917,7 +14775,7 @@ init_common(); init_components(); init_toasts(); - import_react_native30 = __toESM(require_react_native()); + import_react_native29 = __toESM(require_react_native()); } }); @@ -14926,7 +14784,7 @@ var [search, setSearch] = React.useState(""); var all = (0, import_react10.useMemo)(() => Array.from(iterateAssets()), []); return /* @__PURE__ */ jsx(ErrorBoundary, { - children: /* @__PURE__ */ jsxs(import_react_native31.View, { + children: /* @__PURE__ */ jsxs(import_react_native30.View, { style: { flex: 1 }, @@ -14937,7 +14795,7 @@ }, onChangeText: (v2) => setSearch(v2) }), - /* @__PURE__ */ jsx(import_react_native31.FlatList, { + /* @__PURE__ */ jsx(import_react_native30.FlatList, { data: all.filter((a) => a.name.includes(search) || a.id.toString() === search), renderItem: ({ item }) => /* @__PURE__ */ jsx(AssetDisplay, { asset: item @@ -14949,7 +14807,7 @@ }) }); } - var import_react10, import_react_native31; + var import_react10, import_react_native30; var init_AssetBrowser = __esm({ "src/core/ui/settings/pages/Developer/AssetBrowser.tsx"() { "use strict"; @@ -14961,7 +14819,7 @@ init_components(); init_components2(); import_react10 = __toESM(require_react()); - import_react_native31 = __toESM(require_react_native()); + import_react_native30 = __toESM(require_react_native()); } }); @@ -14972,12 +14830,12 @@ }); function Developer() { var [rdtFileExists, fs] = useFileExists("preloads/reactDevtools.js"); - var styles = useStyles4(); + var styles = useStyles3(); var navigation2 = NavigationNative.useNavigation(); useProxy(settings); useProxy(loaderConfig); return /* @__PURE__ */ jsx(ErrorBoundary, { - children: /* @__PURE__ */ jsx(import_react_native32.ScrollView, { + children: /* @__PURE__ */ jsx(import_react_native31.ScrollView, { style: { flex: 1 }, @@ -15020,7 +14878,7 @@ }), onPress: () => window[getReactDevToolsProp() || "__vendetta_rdc"]?.connectToDevTools({ host: settings.debuggerUrl.split(":")?.[0], - resolveRNStyle: import_react_native32.StyleSheet.flatten + resolveRNStyle: import_react_native31.StyleSheet.flatten }) }) }) @@ -15082,7 +14940,7 @@ /* @__PURE__ */ jsx(AlertActionButton4, { text: Strings.RELOAD, variant: "destructive", - onPress: () => import_react_native33.NativeModules.BundleUpdaterManager.reload() + onPress: () => import_react_native32.NativeModules.BundleUpdaterManager.reload() }), /* @__PURE__ */ jsx(AlertActionButton4, { text: Strings.CANCEL, @@ -15185,7 +15043,7 @@ }) }); } - var import_react_native32, import_react_native33, hideActionSheet3, showSimpleActionSheet4, AlertModal4, AlertActionButton4, openAlert3, RDT_EMBED_LINK, useStyles4; + var import_react_native31, import_react_native32, hideActionSheet3, showSimpleActionSheet4, AlertModal4, AlertActionButton4, openAlert3, RDT_EMBED_LINK, useStyles3; var init_Developer = __esm({ "src/core/ui/settings/pages/Developer/index.tsx"() { "use strict"; @@ -15208,14 +15066,14 @@ init_color(); init_components2(); init_styles(); + import_react_native31 = __toESM(require_react_native()); import_react_native32 = __toESM(require_react_native()); - import_react_native33 = __toESM(require_react_native()); ({ hideActionSheet: hideActionSheet3 } = lazyDestructure(() => findByProps("openLazy", "hideActionSheet"))); ({ showSimpleActionSheet: showSimpleActionSheet4 } = lazyDestructure(() => findByProps("showSimpleActionSheet"))); ({ AlertModal: AlertModal4, AlertActionButton: AlertActionButton4 } = lazyDestructure(() => findByProps("AlertModal", "AlertActions"))); ({ openAlert: openAlert3 } = lazyDestructure(() => findByProps("openAlert", "dismissAlert"))); RDT_EMBED_LINK = "https://raw.githubusercontent.com/amsyarasyiq/rdt-embedder/main/dist.js"; - useStyles4 = createStyles({ + useStyles3 = createStyles({ leadingText: { ...TextStyleSheet["heading-md/semibold"], color: semanticColors.TEXT_MUTED, @@ -15237,7 +15095,7 @@ uri: kettu_default }, render: () => Promise.resolve().then(() => (init_General(), General_exports)), - useTrailing: () => `(${"v1.0.5"})` + useTrailing: () => `(${"v1.0.6"})` }, { key: "BUNNY_PLUGINS", @@ -15315,7 +15173,7 @@ }); // src/core/vendetta/api.tsx - var import_react11, import_react_native34, initVendettaObject; + var import_react11, import_react_native33, initVendettaObject; var init_api3 = __esm({ "src/core/vendetta/api.tsx"() { "use strict"; @@ -15345,7 +15203,7 @@ init_toasts(); init_dist(); import_react11 = __toESM(require_react()); - import_react_native34 = __toESM(require_react_native()); + import_react_native33 = __toESM(require_react_native()); init_plugins(); initVendettaObject = () => { var createStackBasedFilter = (fn) => { @@ -15376,7 +15234,7 @@ ActionSheetTitleHeader: module.BottomSheetTitleHeader, ActionSheetContentContainer: ({ children }) => { (0, import_react11.useEffect)(() => console.warn("Discord has removed 'ActionSheetContentContainer', please move into something else. This has been temporarily replaced with View"), []); - return /* @__PURE__ */ (0, import_react11.createElement)(import_react_native34.View, null, children); + return /* @__PURE__ */ (0, import_react11.createElement)(import_react_native33.View, null, children); } }; } @@ -15677,7 +15535,6 @@ init_asyncIteratorSymbol(); init_promiseAllSettled(); init_async_to_generator(); - init_patchErrorBoundary(); init_fixes(); init_i18n(); init_settings3(); @@ -15705,7 +15562,7 @@ initFetchI18nStrings(), initSettings(), fixes_default(), - patchErrorBoundary(), + // patchErrorBoundary(), updatePlugins() ]).then( // Push them all to unloader @@ -15742,7 +15599,7 @@ alert([ "Failed to load Kettu!\n", `Build Number: ${ClientInfoManager.Build}`, - `Kettu: ${"v1.0.5"}`, + `Kettu: ${"v1.0.6"}`, stack || e?.toString?.() ].join("\n")); } diff --git a/scripts/build.mjs b/scripts/build.mjs index 2266021..5960a23 100644 --- a/scripts/build.mjs +++ b/scripts/build.mjs @@ -72,7 +72,7 @@ const config = { constModules: { globals: { "bunny-build-info": { - version: `"v1.0.5"` + version: `"v1.0.6"` } } }, diff --git a/src/index.ts b/src/index.ts index d94d41b..8b5294e 100644 --- a/src/index.ts +++ b/src/index.ts @@ -1,4 +1,4 @@ -import patchErrorBoundary from "@core/debug/patches/patchErrorBoundary"; +// import patchErrorBoundary from "@core/debug/patches/patchErrorBoundary"; import initFixes from "@core/fixes"; import { initFetchI18nStrings } from "@core/i18n"; import initSettings from "@core/ui/settings"; @@ -29,7 +29,7 @@ export default async () => { initFetchI18nStrings(), initSettings(), initFixes(), - patchErrorBoundary(), +// patchErrorBoundary(), updatePlugins() ]).then( // Push them all to unloader