mirror of
https://github.com/roleypoly/roleypoly.git
synced 2025-06-15 09:09:10 +00:00
Refactor node packages to yarn workspaces & ditch next.js for CRA. (#161)
* chore: restructure project into yarn workspaces, remove next * fix tests, remove webapp from terraform * remove more ui deployment bits * remove pages, fix FUNDING.yml * remove isomorphism * remove next providers * fix linting issues * feat: start basis of new web ui system on CRA * chore: move types to @roleypoly/types package * chore: move src/common/utils to @roleypoly/misc-utils * chore: remove roleypoly/ path remappers * chore: renmove vercel config * chore: re-add worker-types to api package * chore: fix type linting scope for api * fix(web): craco should include all of packages dir * fix(ci): change api webpack path for wrangler * chore: remove GAR actions from CI * chore: update codeql job * chore: test better github dar matcher in lint-staged
This commit is contained in:
parent
49e308507e
commit
2ff6588030
328 changed files with 16624 additions and 3525 deletions
13
packages/types/Category.ts
Normal file
13
packages/types/Category.ts
Normal file
|
@ -0,0 +1,13 @@
|
|||
export enum CategoryType {
|
||||
Single = 0,
|
||||
Multi,
|
||||
}
|
||||
|
||||
export type Category = {
|
||||
id: string;
|
||||
name: string;
|
||||
roles: string[];
|
||||
hidden: boolean;
|
||||
type: CategoryType;
|
||||
position: number;
|
||||
};
|
47
packages/types/Guild.ts
Normal file
47
packages/types/Guild.ts
Normal file
|
@ -0,0 +1,47 @@
|
|||
import { Category } from './Category';
|
||||
import { Role } from './Role';
|
||||
import { Member } from './User';
|
||||
|
||||
export type Guild = {
|
||||
id: string;
|
||||
name: string;
|
||||
icon: string;
|
||||
roles: Role[];
|
||||
};
|
||||
|
||||
export enum Features {
|
||||
None,
|
||||
Preview = None,
|
||||
}
|
||||
|
||||
export type GuildData = {
|
||||
id: string;
|
||||
message: string;
|
||||
categories: Category[];
|
||||
features: Features;
|
||||
};
|
||||
|
||||
export type PresentableGuild = {
|
||||
id: string;
|
||||
guild: GuildSlug;
|
||||
member: Member;
|
||||
data: GuildData;
|
||||
roles: Role[];
|
||||
};
|
||||
|
||||
export type GuildEnumeration = {
|
||||
guilds: PresentableGuild[];
|
||||
};
|
||||
|
||||
export enum UserGuildPermissions {
|
||||
User,
|
||||
Manager = 1 << 1,
|
||||
Admin = 1 << 2,
|
||||
}
|
||||
|
||||
export type GuildSlug = {
|
||||
id: string;
|
||||
name: string;
|
||||
icon: string;
|
||||
permissionLevel: UserGuildPermissions;
|
||||
};
|
37
packages/types/Role.ts
Normal file
37
packages/types/Role.ts
Normal file
|
@ -0,0 +1,37 @@
|
|||
export enum RoleSafety {
|
||||
Safe = 0,
|
||||
HigherThanBot = 1 << 1,
|
||||
DangerousPermissions = 1 << 2,
|
||||
ManagedRole = 1 << 3,
|
||||
}
|
||||
|
||||
export type Role = {
|
||||
id: string;
|
||||
name: string;
|
||||
color: number;
|
||||
managed: boolean;
|
||||
position: number;
|
||||
safety: RoleSafety;
|
||||
/** Permissions is should be used as a BigInt, NOT a number. */
|
||||
permissions: string;
|
||||
};
|
||||
|
||||
export type OwnRoleInfo = {
|
||||
highestRolePosition: number;
|
||||
};
|
||||
|
||||
export enum TransactionType {
|
||||
None = 0,
|
||||
Remove = 1 << 1,
|
||||
Add = 1 << 2,
|
||||
}
|
||||
|
||||
export type RoleTransaction = {
|
||||
id: string;
|
||||
action: TransactionType;
|
||||
};
|
||||
|
||||
export type RoleUpdate = {
|
||||
knownState: Role['id'][];
|
||||
transactions: RoleTransaction[];
|
||||
};
|
18
packages/types/Session.ts
Normal file
18
packages/types/Session.ts
Normal file
|
@ -0,0 +1,18 @@
|
|||
import { GuildSlug } from './Guild';
|
||||
import { DiscordUser } from './User';
|
||||
|
||||
export type AuthTokenResponse = {
|
||||
access_token: string;
|
||||
token_type: 'Bearer';
|
||||
expires_in: number;
|
||||
refresh_token: string;
|
||||
scope: string;
|
||||
};
|
||||
|
||||
export type SessionData = {
|
||||
/** sessionID is a KSUID */
|
||||
sessionID: string;
|
||||
tokens: AuthTokenResponse;
|
||||
user: DiscordUser;
|
||||
guilds: GuildSlug[];
|
||||
};
|
18
packages/types/User.ts
Normal file
18
packages/types/User.ts
Normal file
|
@ -0,0 +1,18 @@
|
|||
export type DiscordUser = {
|
||||
id: string;
|
||||
username: string;
|
||||
discriminator: string;
|
||||
avatar: string;
|
||||
bot: boolean;
|
||||
};
|
||||
|
||||
export type Member = {
|
||||
guildid?: string;
|
||||
roles: string[];
|
||||
nick?: string;
|
||||
user?: DiscordUser;
|
||||
};
|
||||
|
||||
export type RoleypolyUser = {
|
||||
discorduser: DiscordUser;
|
||||
};
|
58
packages/types/demoData.ts
Normal file
58
packages/types/demoData.ts
Normal file
|
@ -0,0 +1,58 @@
|
|||
import { Role } from '.';
|
||||
|
||||
export const demoData: Role[] = [
|
||||
{
|
||||
id: '557812805546541066',
|
||||
name: 'a cute role ♡',
|
||||
color: 0xd19494,
|
||||
permissions: '0',
|
||||
safety: 0,
|
||||
managed: false,
|
||||
position: 0,
|
||||
},
|
||||
{
|
||||
id: '557812901717737472',
|
||||
name: 'a vanity role ♡',
|
||||
color: 0xd1d194,
|
||||
permissions: '0',
|
||||
safety: 0,
|
||||
managed: false,
|
||||
position: 0,
|
||||
},
|
||||
{
|
||||
id: '557812915386843170',
|
||||
name: 'a brave role ♡',
|
||||
color: 0x94d194,
|
||||
permissions: '0',
|
||||
safety: 0,
|
||||
managed: false,
|
||||
position: 0,
|
||||
},
|
||||
{
|
||||
id: '557824893241131029',
|
||||
name: 'a proud role ♡',
|
||||
color: 0x94d1d1,
|
||||
permissions: '0',
|
||||
safety: 0,
|
||||
managed: false,
|
||||
position: 0,
|
||||
},
|
||||
{
|
||||
id: '557824994269200384',
|
||||
name: 'a wonderful role ♡',
|
||||
color: 0x9494d1,
|
||||
permissions: '0',
|
||||
safety: 0,
|
||||
managed: false,
|
||||
position: 0,
|
||||
},
|
||||
{
|
||||
id: '557825026406088717',
|
||||
name: 'a 日本語 role ♡',
|
||||
color: 0xd194d1,
|
||||
permissions: '0',
|
||||
safety: 0,
|
||||
managed: false,
|
||||
position: 0,
|
||||
},
|
||||
];
|
5
packages/types/index.ts
Normal file
5
packages/types/index.ts
Normal file
|
@ -0,0 +1,5 @@
|
|||
export * from './Category';
|
||||
export * from './Guild';
|
||||
export * from './Role';
|
||||
export * from './Session';
|
||||
export * from './User';
|
4
packages/types/package.json
Normal file
4
packages/types/package.json
Normal file
|
@ -0,0 +1,4 @@
|
|||
{
|
||||
"name": "@roleypoly/types",
|
||||
"version": "0.1.0"
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue