// Metro module 13539 (f13540). import EmbeddedActivitiesStore from "../../../activities/EmbeddedActivitiesStore"; import ApplicationStore from "../../../applications/ApplicationStore"; import * as _Constants from "../../Constants"; import { RPCCommands, PopoutWindowKeys, AnalyticEvents, RPCErrors, UserSettingsSections, ApplicationFlags } from "../../../../Constants"; import { AM_HARMONY_PRD_APPLICATION_ID, AM_HARMONY_STG_APPLICATION_ID } from "../../../activities/Constants"; import createRpcJoiSchemaObject from "../../helpers/createRpcJoiSchemaObject"; import { validatePostMessageTransport, validateApplication } from "../../RPCHelpers"; import { isPlatformEmbedded } from "../../../../utils/PlatformUtils"; import { shouldOpenActivityInPopoutWindow } from "../../../activities/ActivityPopoutUtils.native"; import CrossPlatformNativeUtils_native from "../../../../utils/CrossPlatformNativeUtils.native"; import { getEmbeddedActivityLocationChannelId } from "../../../activities/utils/embeddedActivityLocationUtils"; import { fetchIsLinkTrusted } from "../../../activities/utils/fetchIsLinkTrusted"; import openURL from "../../../../lib/openURL"; import AnalyticsUtils from "../../../../utils/AnalyticsUtils"; import { handleClick } from "../../../../utils/MaskedLinkUtils"; import { getActivitiesModalContextKey } from "../../../activities/getActivitiesModalContextKey.native"; import RPCError from "../../RPCError"; import { openUserSettings } from "../../../user_settings/core/native/openUserSettings"; import { createRPCCommand } from "../../../../_bundle/Module13535"; import { hasApplicationFlag } from "../../../applications/utils/ApplicationFlagUtils"; import { openActivityShareLinkModal } from "../../../activities/openActivityShareLinkModal.native"; function $mk116534($env) { return (a0) => { const r7 = $env; let env31688 = { $parent: $env }; env31688[0] = a0; return handleClick({ href: r7[0], shouldConfirm: true, onConfirm: () => { const r2 = env31688.$parent.$parent.$parent; const r4 = r2[1]; const r3 = r2[2]; const r9 = r4(r3[13]); const url = env31688.$parent[0]; r9(url); r4(r3[14]).track(r2[10].RPC_OPEN_EXTERNAL_LINK_CALLED, { application_id: env31688.$parent.$parent[0].application?.id, url, opened: true }); (0, env31688[0])({ opened: true }); }, onCancel: () => { const r2 = env31688.$parent.$parent.$parent; (0, r2[1])(r2[2][14]).track(r2[10].RPC_OPEN_EXTERNAL_LINK_CALLED, { application_id: env31688.$parent.$parent[0].application?.id, url: env31688.$parent[0], opened: false }); (0, env31688[0])({ opened: false }); } }, void 0, void 0, getActivitiesModalContextKey({ application: r7[1], channelId: r7[2] })); }; } let env9399 = {}; const { RPC_AUTHENTICATED_SCOPE, RPC_EMBEDDED_APP_SCOPE, RPC_SCOPE_CONFIG } = _Constants; const c9399_11 = new Set([AM_HARMONY_PRD_APPLICATION_ID, AM_HARMONY_STG_APPLICATION_ID]); const r45 = {}; const OPEN_EXTERNAL_LINK = RPCCommands.OPEN_EXTERNAL_LINK; const scope = {}; scope[RPC_SCOPE_CONFIG.ANY] = [RPC_AUTHENTICATED_SCOPE, RPC_EMBEDDED_APP_SCOPE]; r45[OPEN_EXTERNAL_LINK] = { scope, validation: (a0) => createRpcJoiSchemaObject(a0).required().keys({ url: a0.string().required() }), handler: async (a0) => { let r130; let env20521 = { $parent: env9399 }; env20521[0] = a0.socket; env20521[1] = a0.args.url; let c27497_0, c27497_1, c27497_2; let c27497_3 = 0; const r13 = env20521; try { let env30636; c27497_1 = r13; const r20 = env30636 = { $parent: r13 }; c27497_0 = r20; env30636[0] = void 0; env30636[1] = void 0; env30636[2] = void 0; validatePostMessageTransport(env20521[0].transport); const currentEmbeddedActivity = EmbeddedActivitiesStore.getCurrentEmbeddedActivity(); c27497_3 = 1; const r49 = new URL(env20521[1]).toString(); env30636[0] = r49; if (isPlatformEmbedded) { CrossPlatformNativeUtils_native.focus(shouldOpenActivityInPopoutWindow() ? PopoutWindowKeys.ACTIVITY_POPOUT : null, true); } const application = ApplicationStore.getApplication(env20521[0].application?.id); env30636[1] = application; env30636[2] = getEmbeddedActivityLocationChannelId(currentEmbeddedActivity?.location); const isLinkTrusted = await fetchIsLinkTrusted(application?.id, r49); const r105 = c27497_0; if (isLinkTrusted) { openURL(env30636[0]); AnalyticsUtils.track(AnalyticEvents.RPC_OPEN_EXTERNAL_LINK_CALLED, { application_id: env20521[0].application?.id, url: env30636[0], opened: true }); r130 = Promise.resolve({ opened: true }); } else { r130 = new Promise($mk116534(r105)); } c27497_3 = 0; } catch ($e) { const r35 = $e; let r8 = r35; c27497_2 = r35; if (c27497_3 !== 0) { while (true) { try { c27497_3 = 0; throw new RPCError({ errorCode: RPCErrors.INVALID_COMMAND }, `Invalid URL: ${env20521[1]}`); } catch (r142) { r8 = r142; c27497_2 = r142; if (c27497_3 === 0) { break; } } } } throw r8; } return r130; } }; const NAVIGATE_TO_CONNECTIONS = RPCCommands.NAVIGATE_TO_CONNECTIONS; const scope2 = {}; scope2[RPC_SCOPE_CONFIG.ANY] = [RPC_AUTHENTICATED_SCOPE]; r45[NAVIGATE_TO_CONNECTIONS] = { validation: (a0) => createRpcJoiSchemaObject(a0), scope: scope2, handler: ({ socket }) => { validatePostMessageTransport(socket.transport); if (c9399_11.has(validateApplication(socket.application))) { (0, openUserSettings)({ screen: UserSettingsSections.CONNECTIONS }); return void 0; } throw new RPCError({ errorCode: RPCErrors.UNAUTHORIZED_FOR_APPLICATION }, "Command not available for this application"); } }; const { SHARE_LINK, SHARE_LINK: SHARE_LINK2 } = RPCCommands; const scope3 = {}; scope3[RPC_SCOPE_CONFIG.ANY] = [RPC_AUTHENTICATED_SCOPE]; r45[SHARE_LINK] = createRPCCommand(SHARE_LINK2, { scope: scope3, handler: ({ socket, args }) => { const { custom_id, message, link_id } = args; validatePostMessageTransport(socket.transport); const applicationId = validateApplication(socket.application); if (applicationId == null) { throw new RPCError({ errorCode: RPCErrors.INVALID_COMMAND }, "No application."); } if (hasApplicationFlag(socket.application, ApplicationFlags.EMBEDDED)) { return new Promise((c27498_0) => { openActivityShareLinkModal({ applicationId, customId: custom_id, linkId: link_id, message, onShare: function onShare(a0, a1) { c27498_0({ success: a1 ? a1 : a0, didCopyLink: a1, didSendMessage: a0 }); } }); }); } throw new RPCError({ errorCode: RPCErrors.INVALID_COMMAND }, "This application cannot access this API"); } }); export default r45;