UNPKG

openblox

Version:

Roblox API Wrapper For Both Classic And OpenCloud APIs.

92 lines (91 loc) 3.74 kB
import type { Identifier, ISODateTime, ObjectEither, ObjectPrettify, ObjectPrettifyDeep } from "typeforge"; type GroupInfoData<GroupId extends Identifier, TemporalType> = { path: `groups/${GroupId}`; createTime: TemporalType; updateTime: TemporalType; id: GroupId; displayName: string; description: string; owner: `users/${Identifier}`; memberCount: number; publicEntryAllowed: boolean; locked: boolean; verified: boolean; }; export type RawGroupInfoData<GroupId extends Identifier> = GroupInfoData<GroupId, ISODateTime>; export type PrettifiedGroupInfoData<GroupId extends Identifier> = GroupInfoData<GroupId, Date>; type GroupJoinRequestData<GroupId extends Identifier, TemporalType> = ObjectPrettify<{ path: `groups/${GroupId}/join-requests/${Identifier}`; createTime: TemporalType; user: `users/${Identifier}`; }>; export type RawGroupJoinRequestsData<GroupId extends Identifier> = ObjectPrettifyDeep<{ groupJoinRequests: GroupJoinRequestData<GroupId, ISODateTime>[]; nextPageToken: string; }>; export type PrettifiedGroupJoinRequestsData<GroupId extends Identifier> = GroupJoinRequestData<GroupId, Date>[]; export type GroupMembers_Filter = ObjectEither<{ userId: Identifier; }, { roleId: Identifier; }>; export type GroupMembers_WildcardFilter = ObjectPrettify<{ userIds: Identifier[]; }>; type GroupMember<GroupId extends Identifier | "-", TemporalType, UserId extends Identifier = Identifier> = ObjectPrettify<{ path: `groups/${GroupId extends "-" ? Identifier : GroupId}/memberships/${string}`; createTime: TemporalType; updateTime: TemporalType; user: `users/${UserId}`; role: `groups/${GroupId extends "-" ? Identifier : GroupId}/roles/${string}`; }>; export type RawGroupMembersData<GroupId extends Identifier | "-", UserId extends Identifier = Identifier> = ObjectPrettify<{ groupMemberships: GroupMember<GroupId, ISODateTime, UserId>[]; nextPageToken: string; }>; export type PrettifiedGroupMembersData<GroupId extends Identifier | "-", UserId extends Identifier = Identifier> = GroupMember<GroupId, Date, UserId>[]; type GroupRole<GroupId extends Identifier, TemporalType> = ObjectPrettify<{ path: `groups/${GroupId}/roles/${Identifier}`; createTime: TemporalType; updateTime: TemporalType; id: Identifier; displayName: string; description: string; rank: number; memberCount: number; permissions: { viewWallPosts: boolean; createWallPosts: boolean; deleteWallPosts: boolean; viewGroupShout: boolean; createGroupShout: boolean; changeRank: boolean; acceptRequests: boolean; exileMembers: boolean; manageRelationships: boolean; viewAuditLog: boolean; spendGroupFunds: boolean; advertiseGroup: boolean; createAvatarItems: boolean; manageAvatarItems: boolean; manageGroupUniverses: boolean; viewUniverseAnalytics: boolean; createApiKeys: boolean; manageApiKeys: boolean; }; }>; export type RawGroupRolesData<GroupId extends Identifier> = { groupRoles: GroupRole<GroupId, ISODateTime>[]; nextPageToken: string; }; export type PrettifiedGroupRolesData<GroupId extends Identifier> = GroupRole<GroupId, Date>[]; type GroupShoutData<GroupId extends Identifier, TemporalType> = { path: `groups/${GroupId}/shout`; createTime: TemporalType; updateTime: TemporalType; content: string; poster: `users/${Identifier}`; }; export type RawGroupShoutData<GroupId extends Identifier> = GroupShoutData<GroupId, ISODateTime>; export type PrettifiedGroupShoutData<GroupId extends Identifier> = GroupShoutData<GroupId, Date>; export {};