UNPKG

@u1terior/roblox.js

Version:

A package dedicated to simplifying the ROBLOX API

215 lines (212 loc) 5.53 kB
import { ISODateTimeString } from "./interfaces_universal.js"; export interface UserGroupsResponse_v2 { data: [GroupsResponse_v2]; } export type UserGroups_v2 = Pick<UserGroupsResponse_v2, "data">; export interface UserGroupsResponse_v1 { data: [GroupsResponse_v1]; } export type UserGroups_v1 = Pick<UserGroupsResponse_v1, "data">; export interface GroupsResponse_v1 { id: number | bigint; name: string; description: string; owner: { buildersClubMembershipType: boolean; hasVerifiedBadge: boolean; userId: number | bigint; username: string; displayName: string; }; shout: { body: string; poster: { buildersClubMembershipType: boolean; hasVerifiedBadge: boolean; userId: number | bigint; username: string; displayName: string; }; created: ISODateTimeString; updated: ISODateTimeString; }; memberCount: number; isBuildersClubOnly: boolean; publicEntryAllowed: boolean; isLocked: boolean; hasVerifiedBadge: boolean; } export type GroupName = Pick<GroupsResponse_v1, "name">; export type GroupDescription = Pick<GroupsResponse_v1, "description">; export type GroupOwnerInformation = Pick<GroupsResponse_v1, "owner">; export type GroupShoutInformation = Pick<GroupsResponse_v1, "shout">; export type GroupMemberCount = Pick<GroupsResponse_v1, "memberCount">; export interface GroupsResponse_v2 { data: [ { id: number | bigint; name: string; description: string; owner: { id: number | bigint; type: number; name: string; }; memberCount: number; created: ISODateTimeString; hasVerifiedBadge: boolean; }, ]; } export interface multiGroupResponse_v2 { data: [GroupsResponse_v2]; } export type multiGroup_v2 = Pick<multiGroupResponse_v2, "data">; export interface GroupNameHistoryResponse { previousPageCursor: string; nextPageCursor: string; data: [ { name: string; created: ISODateTimeString; }, ]; } export type GroupNameHistory = Pick<GroupNameHistoryResponse, "data">; export interface GroupConfigMetadataResponse { groupConfiguration: { nameMaxLength: number; descriptionMaxLength: number; iconMaxFileSizeMb: number; cost: number; isUsingTwoStepWebviewComponent: boolean; }; recurringPayoutsConfiguration: { maxPayoutPartners: number; }; roleConfiguration: { nameMaxLength: number; descriptionMaxLength: number; limit: number; cost: number; minRank: number; maxRank: number; }; groupNameChangeConfiguration: { cost: number; cooldownInDays: number; ownershipCooldownInDays: number; }; isPremiumPayoutsEnabled: boolean; isDefaultEmblemPolicyEnabled: boolean; } export interface GroupMetadataResponse { groupLimit: number; currentGroupCount: number; groupStatusMaxLength: number; groupPostMaxLength: number; isGroupWallNotificationsEnabled: boolean; groupWallNotificationsSubscribeIntervalInMilliseconds: number; areProfileGroupsHidden: boolean; isGroupDetailsPolicyEnabled: boolean; showPreviousGroupNames: boolean; } export interface GroupRolesResponse { groupId: number | bigint; role: [ { id: number | bigint; name: string; rank: number; memberCount: number; }, ]; } export type GroupRoles = Pick<GroupRolesResponse, "role">; export interface UsersInRolesetResponse { previousPageCursor: string; nextPageCursor: string; data: [ { buildersClubMembershipType: number; hasVerifiedBadge: boolean; userId: number | bigint; username: string; displayName: string; }, ]; } export type UsersInRoleset = Pick<UsersInRolesetResponse, "data">; export interface GroupUsersResponse { previousPageResponse: string; nextPageResponse: string; data: [ { user: { buildersClubMembershipType: number; hasVerifiedBadge: boolean; userId: number | bigint; username: string; displayName: string; }; role: { id: number | bigint; name: string; description: string; rank: number; memberCount: number; }; }, ]; } export type GroupUsers = Pick<GroupUsersResponse, "data">; export interface GroupRelationsResponse { groupId: number | bigint; relationshipType: number; totalGroupCount: number; relatedGroups: [GroupsResponse_v1]; nextRowIndex: number; } export type GroupRelations = Pick<GroupRelationsResponse, "relatedGroups">; interface RolePermissions { groupPostsPermissions: { viewWall: boolean; postToWall: boolean; deleteFromWall: boolean; viewStatus: boolean; postToStatus: boolean; }; groupMembershipPermissions: { changeRank: boolean; inviteMembers: boolean; removeMembers: boolean; }; groupEconomyPermissions: { spendGroupFunds: boolean; advertiseGroup: boolean; createItems: boolean; manageItems: boolean; addGroupPlaces: boolean; manageGroupGames: boolean; viewGroupPayouts: boolean; viewAnalytics: boolean; }; groupOpenCloudPermissions: { useCloudAuthentication: boolean; administerCloudAuthentication: boolean; }; } export interface GroupRolePermissionsResponse { groupId: number | bigint; role: { id: number | bigint; name: string; description: string; rank: number; memberCount: number; }; permissions: RolePermissions; } export interface GroupRolesPermissions { data: [GroupRolePermissionsResponse]; }