206 lines
7.2 KiB
TypeScript
206 lines
7.2 KiB
TypeScript
// 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;
|