decord/source/modules/application_commands/CommandPermissionUtils.tsx
2026-07-25 08:10:48 +00:00

306 lines
11 KiB
TypeScript

// Module ID: 7963
// Function ID: 63424
// Name: _createForOfIteratorHelperLoose
// Dependencies: [1352, 1838, 4567, 653, 7964, 5677, 5676, 1882, 483, 5655, 44, 5674, 5675, 2]
// Exports: hasAccess
// Module 7963 (_createForOfIteratorHelperLoose)
import { ChannelRecordBase } from "_callSuper";
import _createForOfIteratorHelperLoose from "_createForOfIteratorHelperLoose";
import { BuiltInSectionId } from "TRUE_OPTION_NAME";
import { Permissions } from "ME";
function _createForOfIteratorHelperLoose(iterable) {
let closure_0 = iterable;
iterable = "undefined" !== typeof Symbol;
if (iterable) {
const _Symbol = Symbol;
iterable = iterable[Symbol.iterator];
}
if (!iterable) {
iterable = iterable[Symbol.iterator];
}
if (iterable) {
const iter = iterable.call(iterable);
const next = iter.next;
return next.bind(iter);
} else {
const _Array = Array;
let tmp = iterable;
if (!Array.isArray(iterable)) {
let tmp2;
if (iterable) {
if ("string" === typeof iterable) {
tmp2 = _arrayLikeToArray(iterable, undefined);
} else {
const toString = {}.toString;
const substr = toString.call(iterable).slice(8, -1);
let name = substr;
if (tmp3) {
name = iterable.constructor.name;
}
if ("Map" !== name) {
if ("Set" !== name) {
if ("Arguments" === name) {
let arr = _arrayLikeToArray(iterable, undefined);
} else {
let obj = /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/;
}
}
tmp2 = arr;
}
const _Array2 = Array;
arr = Array.from(iterable);
const callResult = toString.call(iterable);
tmp3 = "Object" === substr && iterable.constructor;
}
}
tmp = tmp2;
if (!tmp2) {
const _TypeError = TypeError;
const typeError = new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
throw typeError;
}
}
if (tmp) {
closure_0 = tmp;
}
let c1 = 0;
return () => {
if (closure_1 >= length.length) {
let obj = { done: true };
} else {
obj = { done: false };
closure_1 = tmp3 + 1;
obj.value = length[+closure_1];
}
return obj;
};
}
}
function _arrayLikeToArray(arg0, arg1) {
let length;
if (tmp) {
length = arg0.length;
}
const ArrayResult = Array(length);
for (let num = 0; num < length; num = num + 1) {
ArrayResult[num] = arg0[num];
}
return ArrayResult;
}
function isExplicitAllow(arg0) {
return true === arg0;
}
function isExplicitDeny(applicationAllowedForChannel) {
return false === applicationAllowedForChannel;
}
function computeAllowedForChannel(permissions, context, guild_id) {
if (null == permissions) {
return null;
} else {
let id2 = context.id;
if (context.isThread()) {
let id = context.parent_id;
if (null == id) {
id = context.id;
}
id2 = id;
}
const obj = require(5675) /* toPermissionKey */;
const tmp3 = permissions[obj.toPermissionKey(obj, id2, require(undefined, 5676) /* ApplicationCommandSectionType */.ApplicationCommandPermissionType.CHANNEL)];
if (null != tmp3) {
return tmp3.permission;
} else {
const obj2 = require(5675) /* toPermissionKey */;
const obj3 = require(5674) /* _createForOfIteratorHelperLoose */;
const tmp8 = permissions[obj2.toPermissionKey(obj2, require(5674) /* _createForOfIteratorHelperLoose */.allChannelsSentinel(guild_id), require(undefined, 5676) /* ApplicationCommandSectionType */.ApplicationCommandPermissionType.CHANNEL)];
let permission = null;
if (null != tmp8) {
permission = tmp8.permission;
}
return permission;
}
}
}
function computeAllowedForUser(permissions, guild_id, userId, roleIds, isImpersonating) {
if (null == permissions) {
return null;
} else {
if (!isImpersonating) {
const obj = require(5675) /* toPermissionKey */;
const tmp4 = permissions[obj.toPermissionKey(obj, userId, require(undefined, 5676) /* ApplicationCommandSectionType */.ApplicationCommandPermissionType.USER)];
if (null != tmp4) {
return tmp4.permission;
}
}
const tmp7 = _createForOfIteratorHelperLoose(roleIds);
const iter = tmp7();
let iter2 = iter;
let flag3 = false;
let flag4 = false;
if (!iter.done) {
while (true) {
let tmp8 = require;
let tmp9 = dependencyMap;
let obj2 = require(5675) /* toPermissionKey */;
let tmp10 = permissions[obj2.toPermissionKey(obj2, iter2.value, require(undefined, 5676) /* ApplicationCommandSectionType */.ApplicationCommandPermissionType.ROLE)];
if (null != tmp10) {
flag3 = true;
if (tmp10.permission) {
break;
}
}
let iter3 = tmp7();
iter2 = iter3;
flag4 = flag3;
}
return true;
}
if (flag4) {
return false;
} else {
let tmp11 = null;
if (null != guild_id) {
const obj3 = require(5675) /* toPermissionKey */;
tmp11 = permissions[obj3.toPermissionKey(obj3, guild_id, require(undefined, 5676) /* ApplicationCommandSectionType */.ApplicationCommandPermissionType.ROLE)];
}
let permission = null;
if (null != tmp11) {
permission = tmp11.permission;
}
return permission;
}
}
}
let obj = { ALLOWED: 0, [0]: "ALLOWED", NSFW_NOT_ALLOWED: 1, [1]: "NSFW_NOT_ALLOWED", WRONG_COMMAND_TYPE: 2, [2]: "WRONG_COMMAND_TYPE", PREDICATE_FAILED: 3, [3]: "PREDICATE_FAILED", CONTEXT_NOT_ALLOWED: 4, [4]: "CONTEXT_NOT_ALLOWED", MISSING_BASE_PERMISSIONS: 5, [5]: "MISSING_BASE_PERMISSIONS", CHANNEL_DENIED: 6, [6]: "CHANNEL_DENIED", USER_DENIED: 7, [7]: "USER_DENIED" };
const result = require("TRUE_OPTION_NAME").fileFinishedImporting("modules/application_commands/CommandPermissionUtils.tsx");
export const HasAccessResult = obj;
export const hasAccess = function hasAccess(type, arg1, applicationAllowedForChannel) {
let allowNsfw;
let applicationAllowedForUser;
let commandBotId;
let commandTypes;
let computedPermissions;
let context;
let hasBaseAccessPermissions;
let hasSendMessagesPermission;
let isGuildInstalled;
let isImpersonating;
let isUserInstalled;
let roleIds;
let userId;
({ context, commandTypes, computedPermissions, userId, roleIds, isImpersonating } = arg1);
applicationAllowedForChannel = applicationAllowedForChannel.applicationAllowedForChannel;
({ allowNsfw, hasBaseAccessPermissions, hasSendMessagesPermission } = arg1);
({ applicationAllowedForUser, isGuildInstalled, isUserInstalled, commandBotId } = applicationAllowedForChannel);
if (commandTypes.includes(type.type)) {
if (type.nsfw) {
if (!allowNsfw) {
return obj.NSFW_NOT_ALLOWED;
}
}
if (null != context) {
obj = require(5677) /* computeAllowNsfw */;
const commandContextType = obj.computeCommandContextType(context, commandBotId);
}
if (null != type.contexts) {
if (null != commandContextType) {
const contexts = type.contexts;
if (!contexts.includes(commandContextType)) {
return obj.CONTEXT_NOT_ALLOWED;
}
}
} else if (type.inputType === require(5676) /* ApplicationCommandSectionType */.ApplicationCommandInputType.BOT) {
if (false === type.dmPermission) {
if (commandContextType === require(1882) /* PermissionOverwriteType */.InteractionContextType.BOT_DM) {
return obj.CONTEXT_NOT_ALLOWED;
}
}
if (commandContextType === require(1882) /* PermissionOverwriteType */.InteractionContextType.PRIVATE_CHANNEL) {
return obj.CONTEXT_NOT_ALLOWED;
}
}
if (null != type.predicate) {
if (context instanceof ChannelRecordBase) {
obj = { channel: context, guild: guild.getGuild(context.guild_id) };
if (!type.predicate(obj)) {
return obj.PREDICATE_FAILED;
}
}
}
if (type.applicationId === BuiltInSectionId.BUILT_IN) {
return obj.ALLOWED;
} else {
let contextGuildId;
if (null != context) {
contextGuildId = require(5677) /* computeAllowNsfw */.getContextGuildId(context);
const obj3 = require(5677) /* computeAllowNsfw */;
}
if (null == contextGuildId) {
return obj.ALLOWED;
} else {
if (obj6.has(computedPermissions, Permissions.ADMINISTRATOR)) {
return obj.ALLOWED;
} else {
if (isUserInstalled) {
const integration_types = type.integration_types;
if (null != integration_types) {
if (integration_types.includes(require(5655) /* ApplicationIntegrationType */.ApplicationIntegrationType.USER_INSTALL)) {
return obj.ALLOWED;
}
}
}
if (!hasBaseAccessPermissions) {
if (isGuildInstalled) {
if (null != type.integration_types) {
const integration_types2 = type.integration_types;
}
return obj.MISSING_BASE_PERMISSIONS;
}
}
if (context instanceof ChannelRecordBase) {
importDefault(44)(undefined !== applicationAllowedForChannel, "missing applicationAllowedForChannel");
const tmp33 = computeAllowedForChannel(type.permissions, context, contextGuildId);
if (isExplicitDeny(tmp33)) {
return obj.CHANNEL_DENIED;
} else if (!isExplicitAllow(tmp33)) {
if (isExplicitDeny(applicationAllowedForChannel)) {
return obj.CHANNEL_DENIED;
}
}
}
const tmp43 = computeAllowedForUser(type.permissions, contextGuildId, userId, roleIds, isImpersonating);
if (isExplicitAllow(tmp43)) {
let USER_DENIED = obj.ALLOWED;
} else {
if (!isExplicitDeny(tmp43)) {
if (!isExplicitDeny(applicationAllowedForUser)) {
if (null != type.defaultMemberPermissions) {
if (!obj4.equals(type.defaultMemberPermissions, require(5674) /* _createForOfIteratorHelperLoose */.DISABLED_BY_DEFAULT_PERMISSION_FLAG)) {
if (obj5.has(computedPermissions, type.defaultMemberPermissions)) {
let USER_DENIED2 = obj.ALLOWED;
}
obj5 = importAll(483);
}
USER_DENIED2 = obj.USER_DENIED;
obj4 = importAll(483);
} else {
USER_DENIED = obj.ALLOWED;
}
}
}
USER_DENIED = obj.USER_DENIED;
}
return USER_DENIED;
}
obj6 = importAll(483);
}
}
} else {
return obj.WRONG_COMMAND_TYPE;
}
};
export { computeAllowedForChannel };
export { computeAllowedForUser };