119 lines
3.5 KiB
TypeScript
119 lines
3.5 KiB
TypeScript
// Metro module 13558 (f13559).
|
|
import { RPCCommands, RPCErrors, AnalyticEvents } from "../../../../Constants";
|
|
import RPCError from "../../RPCError";
|
|
import validateScope from "../../helpers/validateScope";
|
|
import AnalyticsUtils from "../../../../utils/AnalyticsUtils";
|
|
import { getInitialSubscriptionPayload } from "../events/subscriptionHelpers";
|
|
function $mk116546($env) {
|
|
return (a0) => {
|
|
setImmediate($mk118396($env));
|
|
a0({
|
|
evt: $env.$parent[2]
|
|
});
|
|
};
|
|
}
|
|
function $mk118396($env) {
|
|
return () => {
|
|
const r2 = $env;
|
|
const r1 = $env.$parent;
|
|
const r5 = r1[0];
|
|
const r12 = r1[1];
|
|
const r4 = r1[2];
|
|
r5.addSubscription(r12, r4, r1[3], r2[2]);
|
|
if (r2[3] != null) {
|
|
const r16 = r2[3];
|
|
r5.dispatchToSubscriptions(r4, $mk118909(r1), r16);
|
|
}
|
|
};
|
|
}
|
|
function $mk118909($env) {
|
|
return (a0) => a0.socket.id === $env[1].id;
|
|
}
|
|
let env9416 = {};
|
|
const r19 = {};
|
|
r19[RPCCommands.SUBSCRIBE] = {
|
|
handler: async (a0) => {
|
|
let promise;
|
|
let env20532 = {
|
|
$parent: env9416
|
|
};
|
|
env20532[0] = a0.server;
|
|
env20532[1] = a0.socket;
|
|
env20532[2] = a0.evt;
|
|
env20532[3] = a0.args;
|
|
let c27510_0, c27510_1;
|
|
L21: {
|
|
let env30645;
|
|
const r34 = env20532;
|
|
c27510_1 = r34;
|
|
const r13 = env30645 = {
|
|
$parent: r34
|
|
};
|
|
c27510_0 = r13;
|
|
env30645[0] = void 0;
|
|
env30645[1] = void 0;
|
|
env30645[2] = void 0;
|
|
env30645[3] = void 0;
|
|
const r11 = env20532[0];
|
|
const r35 = r11.events[env20532[2]];
|
|
env30645[0] = r35;
|
|
if (r35 == null) {
|
|
throw new RPCError({
|
|
errorCode: RPCErrors.INVALID_EVENT
|
|
}, `Invalid event: ${env20532[2]}`);
|
|
}
|
|
if (!validateScope(env20532[1].authorization.scopes, r35.scope)) {
|
|
throw new RPCError({
|
|
errorCode: RPCErrors.INVALID_PERMISSIONS
|
|
}, "Not authenticated or invalid scope");
|
|
}
|
|
AnalyticsUtils.track(AnalyticEvents.RPC_SUBSCRIPTION_REQUESTED, {
|
|
event: env20532[2],
|
|
scope: typeof r35.scope === "object" ? JSON.stringify(r35.scope) : r35.scope,
|
|
application_id: env20532[1].application.id,
|
|
socket_scope: env20532[1].authorization.scopes.toString()
|
|
});
|
|
if (r35.validation != null) {
|
|
env30645[1] = await r11.getJoi();
|
|
if (env30645[1].validate(env20532[3], env30645[0].validation(env30645[1]), {
|
|
convert: false
|
|
}).error == null) {
|
|
const r147 = c27510_0;
|
|
env30645[2] = env30645[0].handler({
|
|
args: env20532[3],
|
|
socket: env20532[1]
|
|
});
|
|
env30645[3] = getInitialSubscriptionPayload(env20532[1], env20532[2], env20532[3]);
|
|
promise = new Promise($mk116546(r147));
|
|
break L21;
|
|
}
|
|
throw new RPCError({
|
|
errorCode: RPCErrors.INVALID_PAYLOAD
|
|
}, "Invalid subscription parameters provided");
|
|
}
|
|
const r95 = c27510_0;
|
|
env30645[2] = env30645[0].handler({
|
|
args: env20532[3],
|
|
socket: env20532[1]
|
|
});
|
|
env30645[3] = getInitialSubscriptionPayload(env20532[1], env20532[2], env20532[3]);
|
|
return new Promise($mk116546(r95));
|
|
}
|
|
return promise;
|
|
}
|
|
};
|
|
r19[RPCCommands.UNSUBSCRIBE] = {
|
|
handler: ({ server, socket, evt, args }) => {
|
|
if (server.events[evt] == null) {
|
|
throw new RPCError({
|
|
errorCode: RPCErrors.INVALID_EVENT
|
|
}, `Invalid event: ${evt}`);
|
|
}
|
|
server.removeSubscription(socket, evt, args);
|
|
return {
|
|
evt
|
|
};
|
|
}
|
|
};
|
|
export default r19;
|