Files
discord-decomp/sources/modules/application_commands/CommandPermissionUtils.tsx
T
2026-07-27 16:20:00 +03:00

874 lines
42 KiB
TypeScript

/* Metro module 8039; source: modules/application_commands/CommandPermissionUtils.tsx; dependencies: [1383, 1867, 5066, 661, 8040, 7866, 5068, 1909, 483, 8042, 44, 5065, 5067, 2] */
function _fun63731(global, require, importDefault, importAll, module, exports, dependencyMap) { // fn#63731, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:8217:6, offset: 0x01b8e615, size: 391 bytes, params: 8, frame: 23
var object2;
const env0_0 = require;
const _arrayLikeToArray_63734 = function(a0, a1) {
var r0;
var r1;
var r2;
var value3;
var length;
var value5;
var value = undefined;
var value2 = value == null;
reducibleJoin2: while (true) {
if (value2) {
r0 = value2;
break reducibleJoin2;
}
value3 = value > a0.length;
r0 = value3;
break reducibleJoin2;
}
reducibleJoin4: while (true) {
if (r0) {
length = a0.length;
r1 = length;
break reducibleJoin4;
}
r1 = value;
break reducibleJoin4;
}
value = (0, global.Array)(r1);
var value4 = 0;
if (value4 < r1) {
r2 = value4;
reducibleLoop5: while (true) {
value[r2] = a0[r2];
value5 = typeof r2 === 'bigint' ? r2 + 1n : +r2 + 1;
if (value5 < r1) {
r2 = value5;
continue reducibleLoop5;
}
break reducibleLoop5;
}
}
return value;
};
const isExplicitAllow = function(a0) {
return a0 === true;
};
const isExplicitDeny = function(a0) {
return a0 === false;
};
const closure = computeAllowedForChannel;
const closure2 = computeAllowedForUser;
const Object = global.Object;
Object.defineProperty(exports, '__esModule', {value: true});
const env0_4 = (require(1383) /* metro dependency 1383: ChannelRecord */).ChannelRecordBase;
const guildStore = importDefault(1867) /* metro dependency 1867: GuildStore */;
const env0_6 = (require(5066) /* metro dependency 5066: ApplicationCommandConstants */).BuiltInSectionId;
const env0_7 = (require(661) /* metro dependency 661: Constants */).Permissions;
object2 = {ALLOWED: 0};
object2[0] = 'ALLOWED';
object2.NSFW_NOT_ALLOWED = 1;
object2[1] = 'NSFW_NOT_ALLOWED';
object2.WRONG_COMMAND_TYPE = 2;
object2[2] = 'WRONG_COMMAND_TYPE';
object2.PREDICATE_FAILED = 3;
object2[3] = 'PREDICATE_FAILED';
object2.CONTEXT_NOT_ALLOWED = 4;
object2[4] = 'CONTEXT_NOT_ALLOWED';
object2.MISSING_BASE_PERMISSIONS = 5;
object2[5] = 'MISSING_BASE_PERMISSIONS';
object2.CHANNEL_DENIED = 6;
object2[6] = 'CHANNEL_DENIED';
object2.USER_DENIED = 7;
object2[7] = 'USER_DENIED';
(require(2) /* metro dependency 2 */).fileFinishedImporting('modules/application_commands/CommandPermissionUtils.tsx');
exports.HasAccessResult = object2;
exports.hasAccess = hasAccess_63739;
exports.computeAllowedForChannel = closure;
exports.computeAllowedForUser = closure2;
}
function _createForOfIteratorHelperLoose_63732(a0, a1) { // fn#63732, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:8217:190, offset: 0x01b8e79c, size: 370 bytes, params: 3, frame: 20
var r6;
var r9;
var r5;
var value3;
var regexp;
const env0_0 = a0;
const Symbol = global.Symbol;
let value = typeof Symbol !== 'undefined';
let r1 = value && a0[global.Symbol.iterator];
r1 = !r1 ? a0['@@iterator'] : r1;
if (r1) {
value = r1.call(a0);
return value.next.bind(value);
}
const Array = global.Array;
if (Array.isArray(a0)) {
if (r1) {
}
return _fun63733;
}
value = undefined;
if (a0) {
if (typeof a0 === 'string') {
value = _arrayLikeToArray_63734(a0, value);
r5 = value;
} else {
value3 = ({}).toString.call(a0).slice(8, -1);
r6 = value3 === 'Object' && a0.constructor;
r9 = r6 ? a0.constructor.name : value3;
if (r9 === 'Map') {
r6 = global.Array.from(a0);
} else if (r9 === 'Set') {
r6 = global.Array.from(a0);
} else if (r9 === 'Arguments') {
value = _arrayLikeToArray_63734(a0, value);
r6 = value;
} else {
regexp = RegExp('^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$', '');
if (regexp.test(r9)) {
value = _arrayLikeToArray_63734(a0, value);
r6 = value;
} else {
r6 = value;
}
}
r5 = r6;
}
} else {
r5 = value;
}
if (r5) {
if (r5) {
}
return _fun63733;
}
const TypeError = global.TypeError;
throw new TypeError('Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.');
}
function computeAllowedForChannel(a0, a1, a2) { // fn#63737, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:8217:1551, offset: 0x01b8e924, size: 227 bytes, params: 4, frame: 21
const value = null;
if (value == a0) {
return value;
}
const r7 = a1.isThread() && value != a1.parent_id ? a1.parent_id : a1.id;
const integrationPermissionUtilsModule = require(5067) /* metro dependency 5067: IntegrationPermissionUtils */;
let toPermissionKey = integrationPermissionUtilsModule.toPermissionKey;
const ApplicationCommandPermissionType = (require(5068) /* metro dependency 5068: ApplicationCommandTypes */).ApplicationCommandPermissionType;
let CHANNEL = ApplicationCommandPermissionType.CHANNEL;
let property = a0[Reflect.apply(toPermissionKey, integrationPermissionUtilsModule, [r7, CHANNEL])];
if (value != property) {
return property.permission;
}
const moduleValue2 = integrationPermissionUtilsModule;
toPermissionKey = moduleValue2.toPermissionKey;
const value3 = (require(5065) /* metro dependency 5065: ApplicationCommandUtils */).allChannelsSentinel(a2);
CHANNEL = ApplicationCommandPermissionType.CHANNEL;
property = a0[Reflect.apply(toPermissionKey, moduleValue2, [value3, CHANNEL])];
return value != property ? property.permission : value;
}
function computeAllowedForUser(a0, a1, a2, a3, a4) { // fn#63738, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:8217:1946, offset: 0x01b8ea07, size: 330 bytes, params: 6, frame: 27
var r11;
var r12;
var r3;
var permission;
var moduleValue;
var toPermissionKey;
const ApplicationCommandPermissionType = (require(5068) /* metro dependency 5068: ApplicationCommandTypes */).ApplicationCommandPermissionType;
var property;
var value8;
var moduleValue2;
var ROLE;
var value9;
var moduleValue3;
const value = null;
if (value == a0) {
return value;
}
if (!a4) {
moduleValue = require(5067) /* metro dependency 5067: IntegrationPermissionUtils */;
toPermissionKey = moduleValue.toPermissionKey;
property = a0[Reflect.apply(toPermissionKey, moduleValue, [a2, ApplicationCommandPermissionType.USER])];
reducibleJoin4: while (true) {
if (value != property) {
return property.permission;
}
break reducibleJoin4;
}
}
const value4 = _createForOfIteratorHelperLoose_63732(a3);
const value5 = value4();
let done = value5.done;
const value6 = false;
const value7 = true;
if (done) {
r3 = value6;
} else {
r11 = value6;
r12 = value5;
reducibleLoop5: while (true) {
value8 = r12.value;
moduleValue2 = require(5067) /* metro dependency 5067: IntegrationPermissionUtils */;
toPermissionKey = moduleValue2.toPermissionKey;
ROLE = ApplicationCommandPermissionType.ROLE;
property = a0[Reflect.apply(toPermissionKey, moduleValue2, [value8, ROLE])];
if (value != property) {
permission = property.permission;
reducibleJoin7: while (true) {
if (permission) {
return value7;
}
r11 = value7;
break reducibleJoin7;
}
}
value9 = value4();
done = value9.done;
if (done) {
r3 = r11;
break reducibleLoop5;
}
r12 = value9;
continue reducibleLoop5;
}
}
if (r3) {
return value6;
}
reducibleJoin12: while (true) {
if (value != a1) {
moduleValue3 = require(5067) /* metro dependency 5067: IntegrationPermissionUtils */;
toPermissionKey = moduleValue3.toPermissionKey;
ROLE = ApplicationCommandPermissionType.ROLE;
property = a0[Reflect.apply(toPermissionKey, moduleValue3, [a1, ROLE])];
r3 = property;
break reducibleJoin12;
}
r3 = value;
break reducibleJoin12;
}
reducibleJoin14: while (true) {
if (value != r3) {
permission = r3.permission;
break reducibleJoin14;
}
permission = value;
break reducibleJoin14;
}
return permission;
}
function hasAccess_63739(a0, {context, commandTypes, allowNsfw, computedPermissions, userId, roleIds, isImpersonating, hasBaseAccessPermissions, hasSendMessagesPermission}, {applicationAllowedForUser, applicationAllowedForChannel, isGuildInstalled, isUserInstalled, commandBotId}) { // fn#63739, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:8217:2610, offset: 0x01b8eb51, size: 1204 bytes, params: 4, frame: 33
var r9;
var r2;
var r1;
var value;
var applicationId;
var value2;
var moduleValue;
var computeCommandContextType;
var commandContextType;
var contexts;
var inputType;
var value3;
const ApplicationCommandInputType = (require(5068) /* metro dependency 5068: ApplicationCommandTypes */).ApplicationCommandInputType;
var BOT;
var dmPermission;
const InteractionContextType = (require(1909) /* metro dependency 1909: Server */).InteractionContextType;
var BOT_DM;
var PRIVATE_CHANNEL;
var predicate;
var value4;
var getGuild;
var guild_id;
var value5;
var object2;
var value6;
var BUILT_IN;
var moduleValue2;
var getContextGuildId;
var value7;
var moduleValue3;
var has;
var ADMINISTRATOR;
var integration_types;
const ApplicationIntegrationType = (require(8042) /* metro dependency 8042: ApplicationIntegrationType */).ApplicationIntegrationType;
var USER_INSTALL;
var GUILD_INSTALL;
var defaultImport;
var permissions;
var allowedForChannel;
var computeAllowedForUserBinding;
var allowedForUser;
var defaultMemberPermissions;
var ALLOWED;
var moduleValue4;
var equals;
const DISABLED_BY_DEFAULT_PERMISSION_FLAG = (require(5065) /* metro dependency 5065: ApplicationCommandUtils */).DISABLED_BY_DEFAULT_PERMISSION_FLAG;
var USER_DENIED;
let includes = commandTypes.includes;
if (Reflect.apply(includes, commandTypes, [a0.type])) {
if (!a0.nsfw) {
value = importDefault(8040) /* metro dependency 8040: isApplicationAgeRestricted */;
applicationId = a0.applicationId;
reducibleJoin4: while (true) {
if (!value(applicationId)) {
value = undefined;
reducibleJoin8: while (true) {
if (context != null) {
value2 = environment;
moduleValue = require(7866) /* metro dependency 7866: CommandPermissionContext */;
computeCommandContextType = moduleValue.computeCommandContextType;
commandContextType = Reflect.apply(computeCommandContextType, moduleValue, [context,
commandBotId]);
r9 = commandContextType;
break reducibleJoin8;
}
r9 = value;
break reducibleJoin8;
}
contexts = a0.contexts;
if (contexts != null) {
reducibleJoin18: while (true) {
if (r9 == null) {
break reducibleJoin18;
}
contexts = a0.contexts;
includes = contexts.includes;
if (!Reflect.apply(includes, contexts, [r9])) {
value = environment;
return env0_8.CONTEXT_NOT_ALLOWED;
}
break reducibleJoin18;
}
} else {
inputType = a0.inputType;
value3 = environment;
BOT = ApplicationCommandInputType.BOT;
reducibleJoin18: while (true) {
if (inputType !== BOT) {
break reducibleJoin18;
}
dmPermission = a0.dmPermission;
if (dmPermission === false) {
BOT_DM = InteractionContextType.BOT_DM;
reducibleJoin12: while (true) {
if (r9 === BOT_DM) {
return env0_8.CONTEXT_NOT_ALLOWED;
}
break reducibleJoin12;
}
}
PRIVATE_CHANNEL = InteractionContextType.PRIVATE_CHANNEL;
if (r9 === PRIVATE_CHANNEL) {
return env0_8.CONTEXT_NOT_ALLOWED;
}
break reducibleJoin18;
}
}
predicate = a0.predicate;
if (predicate != null) {
value4 = environment;
reducibleJoin22: while (true) {
if (context instanceof ChannelRecordBase) {
getGuild = GuildStore.getGuild;
guild_id = context.guild_id;
value5 = Reflect.apply(getGuild, GuildStore, [guild_id]);
predicate = a0.predicate;
object2 = {channel: context, guild: value5};
if (!Reflect.apply(predicate, a0, [object2])) {
return env0_8.PREDICATE_FAILED;
}
break reducibleJoin22;
}
break reducibleJoin22;
}
}
applicationId = a0.applicationId;
value6 = environment;
BUILT_IN = BuiltInSectionId.BUILT_IN;
if (applicationId === BUILT_IN) {
return env0_8.ALLOWED;
}
reducibleJoin25: while (true) {
if (context != null) {
moduleValue2 = require(7866) /* metro dependency 7866: CommandPermissionContext */;
getContextGuildId = moduleValue2.getContextGuildId;
value7 = Reflect.apply(getContextGuildId, moduleValue2, [context]);
r9 = value7;
break reducibleJoin25;
}
r9 = value;
break reducibleJoin25;
}
if (r9 == null) {
return env0_8.ALLOWED;
}
moduleValue3 = importAll(483) /* metro dependency 483: BigFlagUtils */;
has = moduleValue3.has;
ADMINISTRATOR = Permissions.ADMINISTRATOR;
if (Reflect.apply(has, moduleValue3, [computedPermissions, ADMINISTRATOR])) {
return env0_8.ALLOWED;
}
if (isUserInstalled) {
integration_types = a0.integration_types;
reducibleJoin30: while (true) {
if (integration_types == null) {
break reducibleJoin30;
}
includes = integration_types.includes;
USER_INSTALL = ApplicationIntegrationType.USER_INSTALL;
if (Reflect.apply(includes, integration_types, [USER_INSTALL])) {
return env0_8.ALLOWED;
}
break reducibleJoin30;
}
}
if (hasBaseAccessPermissions) {
reducibleJoin32: while (true) {
if (hasSendMessagesPermission) {
if (context instanceof ChannelRecordBase) {
defaultImport = importDefault(44) /* metro dependency 44 */;
defaultImport(value !== applicationAllowedForChannel,
'missing applicationAllowedForChannel');
allowedForChannel = computeAllowedForChannel(a0.permissions, context, r9);
if (isExplicitDeny(allowedForChannel)) {
return env0_8.CHANNEL_DENIED;
}
reducibleJoin41: while (true) {
if (isExplicitAllow(allowedForChannel)) {
break reducibleJoin41;
}
if (isExplicitDeny(applicationAllowedForChannel)) {
return env0_8.CHANNEL_DENIED;
}
break reducibleJoin41;
}
}
computeAllowedForUserBinding = computeAllowedForUser;
permissions = a0.permissions;
allowedForUser = computeAllowedForUserBinding(permissions, r9, userId, roleIds,
isImpersonating);
if (isExplicitAllow(allowedForUser)) {
ALLOWED = env0_8.ALLOWED;
r1 = ALLOWED;
} else {
reducibleJoin53: while (true) {
reducibleJoin52: while (true) {
if (isExplicitDeny(allowedForUser)) {
break reducibleJoin52;
}
if (isExplicitDeny(applicationAllowedForUser)) {
break reducibleJoin52;
}
defaultMemberPermissions = a0.defaultMemberPermissions;
if (defaultMemberPermissions != null) {
moduleValue4 = importAll(483) /* metro dependency 483: BigFlagUtils */;
equals = moduleValue4.equals;
defaultMemberPermissions = a0.defaultMemberPermissions;
reducibleJoin50: while (true) {
reducibleJoin49: while (true) {
if (Reflect.apply(equals, moduleValue4,
[defaultMemberPermissions,
DISABLED_BY_DEFAULT_PERMISSION_FLAG])) {
break reducibleJoin49;
}
value = importAll(483) /* metro dependency 483: BigFlagUtils */;
has = value.has;
defaultMemberPermissions = a0.defaultMemberPermissions;
if (Reflect.apply(has, value, [computedPermissions,
defaultMemberPermissions])) {
ALLOWED = env0_8.ALLOWED;
r2 = ALLOWED;
break reducibleJoin50;
}
break reducibleJoin49;
}
USER_DENIED = env0_8.USER_DENIED;
r2 = USER_DENIED;
break reducibleJoin50;
}
r1 = r2;
} else {
ALLOWED = env0_8.ALLOWED;
r1 = ALLOWED;
}
break reducibleJoin53;
}
USER_DENIED = env0_8.USER_DENIED;
r1 = USER_DENIED;
break reducibleJoin53;
}
}
return r1;
}
break reducibleJoin32;
}
}
if (isGuildInstalled) {
integration_types = a0.integration_types;
reducibleJoin36: while (true) {
reducibleJoin35: while (true) {
if (integration_types == null) {
break reducibleJoin35;
}
integration_types = a0.integration_types;
includes = integration_types.includes;
GUILD_INSTALL = ApplicationIntegrationType.GUILD_INSTALL;
if (Reflect.apply(includes, integration_types, [GUILD_INSTALL])) {
break reducibleJoin35;
}
break reducibleJoin36;
}
return env0_8.MISSING_BASE_PERMISSIONS;
}
}
if (context instanceof ChannelRecordBase) {
defaultImport = importDefault(44) /* metro dependency 44 */;
defaultImport(value !== applicationAllowedForChannel, 'missing applicationAllowedForChannel');
allowedForChannel = computeAllowedForChannel(a0.permissions, context, r9);
if (isExplicitDeny(allowedForChannel)) {
return env0_8.CHANNEL_DENIED;
}
reducibleJoin41: while (true) {
if (isExplicitAllow(allowedForChannel)) {
break reducibleJoin41;
}
if (isExplicitDeny(applicationAllowedForChannel)) {
return env0_8.CHANNEL_DENIED;
}
break reducibleJoin41;
}
}
computeAllowedForUserBinding = computeAllowedForUser;
permissions = a0.permissions;
allowedForUser = computeAllowedForUserBinding(permissions, r9, userId, roleIds, isImpersonating);
if (isExplicitAllow(allowedForUser)) {
ALLOWED = env0_8.ALLOWED;
r1 = ALLOWED;
} else {
reducibleJoin53: while (true) {
reducibleJoin52: while (true) {
if (isExplicitDeny(allowedForUser)) {
break reducibleJoin52;
}
if (isExplicitDeny(applicationAllowedForUser)) {
break reducibleJoin52;
}
defaultMemberPermissions = a0.defaultMemberPermissions;
if (defaultMemberPermissions != null) {
moduleValue4 = importAll(483) /* metro dependency 483: BigFlagUtils */;
equals = moduleValue4.equals;
defaultMemberPermissions = a0.defaultMemberPermissions;
reducibleJoin50: while (true) {
reducibleJoin49: while (true) {
if (Reflect.apply(equals, moduleValue4, [defaultMemberPermissions,
DISABLED_BY_DEFAULT_PERMISSION_FLAG])) {
break reducibleJoin49;
}
value = importAll(483) /* metro dependency 483: BigFlagUtils */;
has = value.has;
defaultMemberPermissions = a0.defaultMemberPermissions;
if (Reflect.apply(has, value, [computedPermissions,
defaultMemberPermissions])) {
ALLOWED = env0_8.ALLOWED;
r2 = ALLOWED;
break reducibleJoin50;
}
break reducibleJoin49;
}
USER_DENIED = env0_8.USER_DENIED;
r2 = USER_DENIED;
break reducibleJoin50;
}
r1 = r2;
} else {
ALLOWED = env0_8.ALLOWED;
r1 = ALLOWED;
}
break reducibleJoin53;
}
USER_DENIED = env0_8.USER_DENIED;
r1 = USER_DENIED;
break reducibleJoin53;
}
}
return r1;
}
break reducibleJoin4;
}
}
if (allowNsfw) {
value = undefined;
reducibleJoin8: while (true) {
if (context != null) {
value2 = environment;
moduleValue = require(7866) /* metro dependency 7866: CommandPermissionContext */;
computeCommandContextType = moduleValue.computeCommandContextType;
commandContextType = Reflect.apply(computeCommandContextType, moduleValue, [context, commandBotId]);
r9 = commandContextType;
break reducibleJoin8;
}
r9 = value;
break reducibleJoin8;
}
contexts = a0.contexts;
if (contexts != null) {
reducibleJoin18: while (true) {
if (r9 == null) {
break reducibleJoin18;
}
contexts = a0.contexts;
includes = contexts.includes;
if (!Reflect.apply(includes, contexts, [r9])) {
value = environment;
return env0_8.CONTEXT_NOT_ALLOWED;
}
break reducibleJoin18;
}
} else {
reducibleJoin18: while (true) {
if (a0.inputType !== ApplicationCommandInputType.BOT) {
break reducibleJoin18;
}
dmPermission = a0.dmPermission;
if (dmPermission === false) {
BOT_DM = InteractionContextType.BOT_DM;
reducibleJoin12: while (true) {
if (r9 === BOT_DM) {
return env0_8.CONTEXT_NOT_ALLOWED;
}
break reducibleJoin12;
}
}
PRIVATE_CHANNEL = InteractionContextType.PRIVATE_CHANNEL;
if (r9 === PRIVATE_CHANNEL) {
return env0_8.CONTEXT_NOT_ALLOWED;
}
break reducibleJoin18;
}
}
predicate = a0.predicate;
if (predicate != null) {
reducibleJoin22: while (true) {
if (context instanceof ChannelRecordBase) {
getGuild = GuildStore.getGuild;
guild_id = context.guild_id;
value5 = Reflect.apply(getGuild, GuildStore, [guild_id]);
predicate = a0.predicate;
object2 = {channel: context, guild: value5};
if (!Reflect.apply(predicate, a0, [object2])) {
return env0_8.PREDICATE_FAILED;
}
break reducibleJoin22;
}
break reducibleJoin22;
}
}
if (a0.applicationId === BuiltInSectionId.BUILT_IN) {
return env0_8.ALLOWED;
}
reducibleJoin25: while (true) {
if (context != null) {
moduleValue2 = require(7866) /* metro dependency 7866: CommandPermissionContext */;
getContextGuildId = moduleValue2.getContextGuildId;
value7 = Reflect.apply(getContextGuildId, moduleValue2, [context]);
r9 = value7;
break reducibleJoin25;
}
r9 = value;
break reducibleJoin25;
}
if (r9 == null) {
return env0_8.ALLOWED;
}
moduleValue3 = importAll(483) /* metro dependency 483: BigFlagUtils */;
has = moduleValue3.has;
if (Reflect.apply(has, moduleValue3, [computedPermissions, Permissions.ADMINISTRATOR])) {
return env0_8.ALLOWED;
}
if (isUserInstalled) {
integration_types = a0.integration_types;
reducibleJoin30: while (true) {
if (integration_types == null) {
break reducibleJoin30;
}
includes = integration_types.includes;
USER_INSTALL = ApplicationIntegrationType.USER_INSTALL;
if (Reflect.apply(includes, integration_types, [USER_INSTALL])) {
return env0_8.ALLOWED;
}
break reducibleJoin30;
}
}
if (hasBaseAccessPermissions) {
reducibleJoin32: while (true) {
if (hasSendMessagesPermission) {
if (context instanceof ChannelRecordBase) {
defaultImport = importDefault(44) /* metro dependency 44 */;
defaultImport(value !== applicationAllowedForChannel,
'missing applicationAllowedForChannel');
allowedForChannel = computeAllowedForChannel(a0.permissions, context, r9);
if (isExplicitDeny(allowedForChannel)) {
return env0_8.CHANNEL_DENIED;
}
reducibleJoin41: while (true) {
if (isExplicitAllow(allowedForChannel)) {
break reducibleJoin41;
}
if (isExplicitDeny(applicationAllowedForChannel)) {
return env0_8.CHANNEL_DENIED;
}
break reducibleJoin41;
}
}
computeAllowedForUserBinding = computeAllowedForUser;
permissions = a0.permissions;
allowedForUser = computeAllowedForUserBinding(permissions, r9, userId, roleIds,
isImpersonating);
if (isExplicitAllow(allowedForUser)) {
ALLOWED = env0_8.ALLOWED;
r1 = ALLOWED;
} else {
reducibleJoin53: while (true) {
reducibleJoin52: while (true) {
if (isExplicitDeny(allowedForUser)) {
break reducibleJoin52;
}
if (isExplicitDeny(applicationAllowedForUser)) {
break reducibleJoin52;
}
defaultMemberPermissions = a0.defaultMemberPermissions;
if (defaultMemberPermissions != null) {
moduleValue4 = importAll(483) /* metro dependency 483: BigFlagUtils */;
equals = moduleValue4.equals;
defaultMemberPermissions = a0.defaultMemberPermissions;
reducibleJoin50: while (true) {
reducibleJoin49: while (true) {
if (Reflect.apply(equals, moduleValue4, [defaultMemberPermissions,
DISABLED_BY_DEFAULT_PERMISSION_FLAG])) {
break reducibleJoin49;
}
value = importAll(483) /* metro dependency 483: BigFlagUtils */;
has = value.has;
defaultMemberPermissions = a0.defaultMemberPermissions;
if (Reflect.apply(has, value, [computedPermissions,
defaultMemberPermissions])) {
ALLOWED = env0_8.ALLOWED;
r2 = ALLOWED;
break reducibleJoin50;
}
break reducibleJoin49;
}
USER_DENIED = env0_8.USER_DENIED;
r2 = USER_DENIED;
break reducibleJoin50;
}
r1 = r2;
} else {
ALLOWED = env0_8.ALLOWED;
r1 = ALLOWED;
}
break reducibleJoin53;
}
USER_DENIED = env0_8.USER_DENIED;
r1 = USER_DENIED;
break reducibleJoin53;
}
}
return r1;
}
break reducibleJoin32;
}
}
if (isGuildInstalled) {
integration_types = a0.integration_types;
reducibleJoin36: while (true) {
reducibleJoin35: while (true) {
if (integration_types == null) {
break reducibleJoin35;
}
integration_types = a0.integration_types;
includes = integration_types.includes;
GUILD_INSTALL = ApplicationIntegrationType.GUILD_INSTALL;
if (Reflect.apply(includes, integration_types, [GUILD_INSTALL])) {
break reducibleJoin35;
}
break reducibleJoin36;
}
return env0_8.MISSING_BASE_PERMISSIONS;
}
}
if (context instanceof ChannelRecordBase) {
(importDefault(44) /* metro dependency 44 */)(value !== applicationAllowedForChannel,
'missing applicationAllowedForChannel');
allowedForChannel = computeAllowedForChannel(a0.permissions, context, r9);
if (isExplicitDeny(allowedForChannel)) {
return env0_8.CHANNEL_DENIED;
}
reducibleJoin41: while (true) {
if (isExplicitAllow(allowedForChannel)) {
break reducibleJoin41;
}
if (isExplicitDeny(applicationAllowedForChannel)) {
return env0_8.CHANNEL_DENIED;
}
break reducibleJoin41;
}
}
computeAllowedForUserBinding = computeAllowedForUser;
permissions = a0.permissions;
allowedForUser = computeAllowedForUserBinding(permissions, r9, userId, roleIds, isImpersonating);
if (isExplicitAllow(allowedForUser)) {
r1 = env0_8.ALLOWED;
} else {
reducibleJoin53: while (true) {
reducibleJoin52: while (true) {
if (isExplicitDeny(allowedForUser)) {
break reducibleJoin52;
}
if (isExplicitDeny(applicationAllowedForUser)) {
break reducibleJoin52;
}
defaultMemberPermissions = a0.defaultMemberPermissions;
if (defaultMemberPermissions != null) {
moduleValue4 = importAll(483) /* metro dependency 483: BigFlagUtils */;
equals = moduleValue4.equals;
defaultMemberPermissions = a0.defaultMemberPermissions;
reducibleJoin50: while (true) {
reducibleJoin49: while (true) {
if (Reflect.apply(equals, moduleValue4, [defaultMemberPermissions,
DISABLED_BY_DEFAULT_PERMISSION_FLAG])) {
break reducibleJoin49;
}
value = importAll(483) /* metro dependency 483: BigFlagUtils */;
has = value.has;
defaultMemberPermissions = a0.defaultMemberPermissions;
if (Reflect.apply(has, value, [computedPermissions, defaultMemberPermissions])) {
ALLOWED = env0_8.ALLOWED;
r2 = ALLOWED;
break reducibleJoin50;
}
break reducibleJoin49;
}
USER_DENIED = env0_8.USER_DENIED;
r2 = USER_DENIED;
break reducibleJoin50;
}
r1 = r2;
} else {
ALLOWED = env0_8.ALLOWED;
r1 = ALLOWED;
}
break reducibleJoin53;
}
USER_DENIED = env0_8.USER_DENIED;
r1 = USER_DENIED;
break reducibleJoin53;
}
}
return r1;
}
return env0_8.NSFW_NOT_ALLOWED;
}
return env0_8.WRONG_COMMAND_TYPE;
}