summary refs log tree commit diff
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--.github/ISSUE_TEMPLATE/bug_report.md30
-rw-r--r--.github/ISSUE_TEMPLATE/feature_request.md7
-rw-r--r--assets/index.html2
-rw-r--r--assets/schemas.json2714
-rw-r--r--src/Server.ts2
-rw-r--r--src/api/middlewares/TestClient.ts4
-rw-r--r--src/api/routes/applications/#id/bot/index.ts2
-rw-r--r--src/api/routes/auth/login.ts8
-rw-r--r--src/api/routes/auth/mfa/totp.ts2
-rw-r--r--src/api/routes/auth/verify/view-backup-codes-challenge.ts8
-rw-r--r--src/api/routes/guilds/#guild_id/member-verification.ts4
-rw-r--r--src/api/routes/store/published-listings/skus/#sku_id/subscription-plans.ts150
-rw-r--r--src/api/routes/users/@me/mfa/codes-verification.ts20
-rw-r--r--src/api/routes/users/@me/mfa/totp/disable.ts2
-rw-r--r--src/api/routes/users/@me/mfa/totp/enable.ts2
-rw-r--r--src/api/util/index.ts2
-rw-r--r--src/api/util/utility/captcha.ts23
-rw-r--r--src/util/entities/Member.ts15
-rw-r--r--src/util/migrations/mariadb/1661885910534-guild-member-profiles.ts27
-rw-r--r--src/util/migrations/postgres/1661885830688-guild-member-profiles.ts27
-rw-r--r--src/util/migrations/sqlite/1661885742207-guild-member-profiles.ts35
-rw-r--r--src/util/schemas/BackupCodesChallengeSchema.ts2
-rw-r--r--src/util/schemas/CodesVerificationSchema.ts2
-rw-r--r--src/util/schemas/index.ts2
24 files changed, 1447 insertions, 1645 deletions
diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md
index 4684dec8..48c5d0a0 100644
--- a/.github/ISSUE_TEMPLATE/bug_report.md
+++ b/.github/ISSUE_TEMPLATE/bug_report.md
@@ -1,10 +1,9 @@
 ---
 name: Bug report
 about: Create a report to help us improve
-title: ''
-labels: ''
-assignees: ''
-
+title: ""
+labels: ""
+assignees: ""
 ---
 
 **Describe the bug**
@@ -12,6 +11,7 @@ A clear and concise description of what the bug is.
 
 **To Reproduce**
 Steps to reproduce the behavior:
+
 1. Go to '...'
 2. Click on '....'
 3. Scroll down to '....'
@@ -24,18 +24,20 @@ A clear and concise description of what you expected to happen.
 If applicable, add console logs to help give more information about your problem.
 
 **System Information (please complete the following information):**
- - OS: [e.g. Debian Linux, Arch Linux etc.]
- - Version (If not applicable skip): [e.g Ubuntu 22.04 LTS/Windows Server 2022]
- - Node Version: [e.g Node v18.7.0]
- - Python 3 Version: [e.g Python 3.10.6]
+
+-   OS: [e.g. Debian Linux, Arch Linux etc.]
+-   Version (If not applicable skip): [e.g Ubuntu 22.04 LTS/Windows Server 2022]
+-   Node Version: [e.g Node v18.7.0]
+-   Python 3 Version: [e.g Python 3.10.6]
 
 **Env and Software info**
- - Release: [e.g. 0.1.0]
- - Branch (if release is not applicable): [e.g Staging]
- - Commit Hash (if release is not applicable): [e.g 401eda069a3ced17f1c43294d19765663cb8dcb7]
- - Database: [e.g Postgres 14]
- - Reverse Proxy: [e.g ngnix]
- - Thread Count: [e.g 1]
+
+-   Release: [e.g. 0.1.0]
+-   Branch (if release is not applicable): [e.g Staging]
+-   Commit Hash (if release is not applicable): [e.g 401eda069a3ced17f1c43294d19765663cb8dcb7]
+-   Database: [e.g Postgres 14]
+-   Reverse Proxy: [e.g ngnix]
+-   Thread Count: [e.g 1]
 
 **Additional context**
 Add any other context about the problem here.
diff --git a/.github/ISSUE_TEMPLATE/feature_request.md b/.github/ISSUE_TEMPLATE/feature_request.md
index bd1f64b6..e553e964 100644
--- a/.github/ISSUE_TEMPLATE/feature_request.md
+++ b/.github/ISSUE_TEMPLATE/feature_request.md
@@ -1,10 +1,9 @@
 ---
 name: Feature request
 about: Suggest an feature for Fosscord Server
-title: ''
-labels: ''
-assignees: ''
-
+title: ""
+labels: ""
+assignees: ""
 ---
 
 **Is your feature request related to a problem? Please describe.**
diff --git a/assets/index.html b/assets/index.html
index f73fe99f..4513d0d2 100644
--- a/assets/index.html
+++ b/assets/index.html
@@ -72,7 +72,7 @@
 				localStorage.setItem("UserSettingsStore", JSON.stringify(settings));
 			}
 		</script>
-		
+
 		<script src="/assets/checkLocale.js"></script>
 		<script src="/assets/2f2e0c25e45eb2f5a6f1.js"></script>
 		<script src="/assets/006e72c08a4c69cb66fc.js"></script>
diff --git a/assets/schemas.json b/assets/schemas.json
index f3d96959..9ed4b27e 100644
--- a/assets/schemas.json
+++ b/assets/schemas.json
@@ -1,1458 +1,1258 @@
 {
-    "ActivitySchema": {
-        "type": "object",
-        "properties": {
-            "afk": {
-                "type": "boolean"
-            },
-            "status": {},
-            "activities": {
-                "type": "array",
-                "items": {}
-            },
-            "since": {
-                "type": "integer"
-            }
-        },
-        "additionalProperties": false,
-        "required": [
-            "afk",
-            "status"
-        ],
-        "$schema": "http://json-schema.org/draft-07/schema#"
-    },
-    "BackupCodesChallengeSchema": {
-        "type": "object",
-        "properties": {
-            "password": {
-                "type": "string"
-            }
-        },
-        "additionalProperties": false,
-        "required": [
-            "password"
-        ],
-        "$schema": "http://json-schema.org/draft-07/schema#"
-    },
-    "BanCreateSchema": {
-        "type": "object",
-        "properties": {
-            "delete_message_days": {
-                "type": "string"
-            },
-            "reason": {
-                "type": "string"
-            }
-        },
-        "additionalProperties": false,
-        "$schema": "http://json-schema.org/draft-07/schema#"
-    },
-    "BanModeratorSchema": {
-        "type": "object",
-        "properties": {
-            "id": {
-                "type": "string"
-            },
-            "user_id": {
-                "type": "string"
-            },
-            "guild_id": {
-                "type": "string"
-            },
-            "executor_id": {
-                "type": "string"
-            },
-            "reason": {
-                "type": "string"
-            }
-        },
-        "additionalProperties": false,
-        "required": [
-            "executor_id",
-            "guild_id",
-            "id",
-            "user_id"
-        ],
-        "$schema": "http://json-schema.org/draft-07/schema#"
-    },
-    "BanRegistrySchema": {
-        "type": "object",
-        "properties": {
-            "id": {
-                "type": "string"
-            },
-            "user_id": {
-                "type": "string"
-            },
-            "guild_id": {
-                "type": "string"
-            },
-            "executor_id": {
-                "type": "string"
-            },
-            "ip": {
-                "type": "string"
-            },
-            "reason": {
-                "type": "string"
-            }
-        },
-        "additionalProperties": false,
-        "required": [
-            "executor_id",
-            "guild_id",
-            "id",
-            "user_id"
-        ],
-        "$schema": "http://json-schema.org/draft-07/schema#"
-    },
-    "BulkDeleteSchema": {
-        "type": "object",
-        "properties": {
-            "messages": {
-                "type": "array",
-                "items": {
-                    "type": "string"
-                }
-            }
-        },
-        "additionalProperties": false,
-        "required": [
-            "messages"
-        ],
-        "$schema": "http://json-schema.org/draft-07/schema#"
-    },
-    "ChannelPermissionOverwriteSchema": {
-        "type": "object",
-        "additionalProperties": false,
-        "$schema": "http://json-schema.org/draft-07/schema#"
-    },
-    "ChannelReorderSchema": {
-        "type": "array",
-        "items": {
-            "type": "object",
-            "properties": {
-                "id": {
-                    "type": "string"
-                },
-                "position": {
-                    "type": "integer"
-                },
-                "lock_permissions": {
-                    "type": "boolean"
-                },
-                "parent_id": {
-                    "type": "string"
-                }
-            },
-            "additionalProperties": false,
-            "required": [
-                "id"
-            ]
-        },
-        "$schema": "http://json-schema.org/draft-07/schema#"
-    },
-    "CodesVerificationSchema": {
-        "type": "object",
-        "properties": {
-            "key": {
-                "type": "string"
-            },
-            "nonce": {
-                "type": "string"
-            },
-            "regenerate": {
-                "type": "boolean"
-            }
-        },
-        "additionalProperties": false,
-        "required": [
-            "key",
-            "nonce"
-        ],
-        "$schema": "http://json-schema.org/draft-07/schema#"
-    },
-    "DmChannelCreateSchema": {
-        "type": "object",
-        "properties": {
-            "name": {
-                "type": "string"
-            },
-            "recipients": {
-                "type": "array",
-                "items": {
-                    "type": "string"
-                }
-            }
-        },
-        "additionalProperties": false,
-        "required": [
-            "recipients"
-        ],
-        "$schema": "http://json-schema.org/draft-07/schema#"
-    },
-    "EmojiCreateSchema": {
-        "type": "object",
-        "properties": {
-            "name": {
-                "type": "string"
-            },
-            "image": {
-                "type": "string"
-            },
-            "require_colons": {
-                "type": [
-                    "null",
-                    "boolean"
-                ]
-            },
-            "roles": {
-                "type": "array",
-                "items": {
-                    "type": "string"
-                }
-            }
-        },
-        "additionalProperties": false,
-        "required": [
-            "image"
-        ],
-        "$schema": "http://json-schema.org/draft-07/schema#"
-    },
-    "EmojiModifySchema": {
-        "type": "object",
-        "properties": {
-            "name": {
-                "type": "string"
-            },
-            "roles": {
-                "type": "array",
-                "items": {
-                    "type": "string"
-                }
-            }
-        },
-        "additionalProperties": false,
-        "$schema": "http://json-schema.org/draft-07/schema#"
-    },
-    "GuildCreateSchema": {
-        "type": "object",
-        "properties": {
-            "name": {
-                "maxLength": 100,
-                "type": "string"
-            },
-            "region": {
-                "type": "string"
-            },
-            "icon": {
-                "type": [
-                    "null",
-                    "string"
-                ]
-            },
-            "channels": {
-                "type": "array",
-                "items": {
-                    "$ref": "#/definitions/ChannelModifySchema"
-                }
-            },
-            "guild_template_code": {
-                "type": "string"
-            },
-            "system_channel_id": {
-                "type": "string"
-            },
-            "rules_channel_id": {
-                "type": "string"
-            }
-        },
-        "additionalProperties": false,
-        "required": [
-            "name"
-        ],
-        "definitions": {
-            "ChannelModifySchema": {
-                "type": "object",
-                "properties": {
-                    "name": {
-                        "maxLength": 100,
-                        "type": "string"
-                    },
-                    "type": {
-                        "enum": [
-                            0,
-                            1,
-                            10,
-                            11,
-                            12,
-                            13,
-                            14,
-                            15,
-                            2,
-                            255,
-                            3,
-                            33,
-                            34,
-                            35,
-                            4,
-                            5,
-                            6,
-                            64,
-                            7,
-                            8,
-                            9
-                        ],
-                        "type": "number"
-                    },
-                    "topic": {
-                        "type": "string"
-                    },
-                    "icon": {
-                        "type": [
-                            "null",
-                            "string"
-                        ]
-                    },
-                    "bitrate": {
-                        "type": "integer"
-                    },
-                    "user_limit": {
-                        "type": "integer"
-                    },
-                    "rate_limit_per_user": {
-                        "type": "integer"
-                    },
-                    "position": {
-                        "type": "integer"
-                    },
-                    "permission_overwrites": {
-                        "type": "array",
-                        "items": {
-                            "type": "object",
-                            "properties": {
-                                "id": {
-                                    "type": "string"
-                                },
-                                "type": {
-                                    "$ref": "#/definitions/ChannelPermissionOverwriteType"
-                                },
-                                "allow": {
-                                    "type": "string"
-                                },
-                                "deny": {
-                                    "type": "string"
-                                }
-                            },
-                            "additionalProperties": false,
-                            "required": [
-                                "allow",
-                                "deny",
-                                "id",
-                                "type"
-                            ]
-                        }
-                    },
-                    "parent_id": {
-                        "type": "string"
-                    },
-                    "id": {
-                        "type": "string"
-                    },
-                    "nsfw": {
-                        "type": "boolean"
-                    },
-                    "rtc_region": {
-                        "type": "string"
-                    },
-                    "default_auto_archive_duration": {
-                        "type": "integer"
-                    },
-                    "flags": {
-                        "type": "integer"
-                    },
-                    "default_thread_rate_limit_per_user": {
-                        "type": "integer"
-                    }
-                },
-                "additionalProperties": false
-            },
-            "ChannelPermissionOverwriteType": {
-                "enum": [
-                    0,
-                    1,
-                    2
-                ],
-                "type": "number"
-            }
-        },
-        "$schema": "http://json-schema.org/draft-07/schema#"
-    },
-    "GuildTemplateCreateSchema": {
-        "type": "object",
-        "properties": {
-            "name": {
-                "type": "string"
-            },
-            "avatar": {
-                "type": [
-                    "null",
-                    "string"
-                ]
-            }
-        },
-        "additionalProperties": false,
-        "required": [
-            "name"
-        ],
-        "$schema": "http://json-schema.org/draft-07/schema#"
-    },
-    "GuildUpdateSchema": {
-        "type": "object",
-        "properties": {
-            "name": {
-                "type": "string"
-            },
-            "banner": {
-                "type": [
-                    "null",
-                    "string"
-                ]
-            },
-            "splash": {
-                "type": [
-                    "null",
-                    "string"
-                ]
-            },
-            "description": {
-                "type": "string"
-            },
-            "features": {
-                "type": "array",
-                "items": {
-                    "type": "string"
-                }
-            },
-            "verification_level": {
-                "type": "integer"
-            },
-            "default_message_notifications": {
-                "type": "integer"
-            },
-            "system_channel_flags": {
-                "type": "integer"
-            },
-            "explicit_content_filter": {
-                "type": "integer"
-            },
-            "public_updates_channel_id": {
-                "type": "string"
-            },
-            "afk_timeout": {
-                "type": "integer"
-            },
-            "afk_channel_id": {
-                "type": "string"
-            },
-            "preferred_locale": {
-                "type": "string"
-            },
-            "premium_progress_bar_enabled": {
-                "type": "boolean"
-            },
-            "region": {
-                "type": "string"
-            },
-            "icon": {
-                "type": [
-                    "null",
-                    "string"
-                ]
-            },
-            "guild_template_code": {
-                "type": "string"
-            },
-            "system_channel_id": {
-                "type": "string"
-            },
-            "rules_channel_id": {
-                "type": "string"
-            }
-        },
-        "additionalProperties": false,
-        "$schema": "http://json-schema.org/draft-07/schema#"
-    },
-    "GuildUpdateWelcomeScreenSchema": {
-        "type": "object",
-        "properties": {
-            "welcome_channels": {
-                "type": "array",
-                "items": {
-                    "type": "object",
-                    "properties": {
-                        "channel_id": {
-                            "type": "string"
-                        },
-                        "description": {
-                            "type": "string"
-                        },
-                        "emoji_id": {
-                            "type": "string"
-                        },
-                        "emoji_name": {
-                            "type": "string"
-                        }
-                    },
-                    "additionalProperties": false,
-                    "required": [
-                        "channel_id",
-                        "description",
-                        "emoji_name"
-                    ]
-                }
-            },
-            "enabled": {
-                "type": "boolean"
-            },
-            "description": {
-                "type": "string"
-            }
-        },
-        "additionalProperties": false,
-        "$schema": "http://json-schema.org/draft-07/schema#"
-    },
-    "IdentifySchema": {
-        "type": "object",
-        "properties": {
-            "token": {
-                "type": "string"
-            },
-            "properties": {
-                "type": "object",
-                "properties": {
-                    "os": {
-                        "type": "string"
-                    },
-                    "os_atch": {
-                        "type": "string"
-                    },
-                    "browser": {
-                        "type": "string"
-                    },
-                    "device": {
-                        "type": "string"
-                    },
-                    "$os": {
-                        "type": "string"
-                    },
-                    "$browser": {
-                        "type": "string"
-                    },
-                    "$device": {
-                        "type": "string"
-                    },
-                    "browser_user_agent": {
-                        "type": "string"
-                    },
-                    "browser_version": {
-                        "type": "string"
-                    },
-                    "os_version": {
-                        "type": "string"
-                    },
-                    "referrer": {
-                        "type": "string"
-                    },
-                    "referring_domain": {
-                        "type": "string"
-                    },
-                    "referrer_current": {
-                        "type": "string"
-                    },
-                    "referring_domain_current": {
-                        "type": "string"
-                    },
-                    "release_channel": {
-                        "enum": [
-                            "canary",
-                            "dev",
-                            "ptb",
-                            "stable"
-                        ],
-                        "type": "string"
-                    },
-                    "client_build_number": {
-                        "type": "integer"
-                    },
-                    "client_event_source": {},
-                    "client_version": {
-                        "type": "string"
-                    },
-                    "system_locale": {
-                        "type": "string"
-                    }
-                },
-                "additionalProperties": false
-            },
-            "intents": {
-                "type": "string"
-            },
-            "presence": {
-                "$ref": "#/definitions/ActivitySchema"
-            },
-            "compress": {
-                "type": "boolean"
-            },
-            "large_threshold": {
-                "type": "integer"
-            },
-            "shard": {
-                "type": "array",
-                "items": [
-                    {
-                        "type": "integer"
-                    },
-                    {
-                        "type": "integer"
-                    }
-                ],
-                "minItems": 2,
-                "maxItems": 2
-            },
-            "guild_subscriptions": {
-                "type": "boolean"
-            },
-            "capabilities": {
-                "type": "integer"
-            },
-            "client_state": {
-                "type": "object",
-                "properties": {
-                    "guild_hashes": {},
-                    "highest_last_message_id": {
-                        "type": "string"
-                    },
-                    "read_state_version": {
-                        "type": "integer"
-                    },
-                    "user_guild_settings_version": {
-                        "type": "integer"
-                    },
-                    "user_settings_version": {
-                        "type": "integer"
-                    }
-                },
-                "additionalProperties": false
-            },
-            "v": {
-                "type": "integer"
-            }
-        },
-        "additionalProperties": false,
-        "required": [
-            "properties",
-            "token"
-        ],
-        "definitions": {
-            "ActivitySchema": {
-                "type": "object",
-                "properties": {
-                    "afk": {
-                        "type": "boolean"
-                    },
-                    "status": {},
-                    "activities": {
-                        "type": "array",
-                        "items": {}
-                    },
-                    "since": {
-                        "type": "integer"
-                    }
-                },
-                "additionalProperties": false,
-                "required": [
-                    "afk",
-                    "status"
-                ]
-            }
-        },
-        "$schema": "http://json-schema.org/draft-07/schema#"
-    },
-    "InviteCreateSchema": {
-        "type": "object",
-        "properties": {
-            "target_user_id": {
-                "type": "string"
-            },
-            "target_type": {
-                "type": "string"
-            },
-            "validate": {
-                "type": "string"
-            },
-            "max_age": {
-                "type": "integer"
-            },
-            "max_uses": {
-                "type": "integer"
-            },
-            "temporary": {
-                "type": "boolean"
-            },
-            "unique": {
-                "type": "boolean"
-            },
-            "target_user": {
-                "type": "string"
-            },
-            "target_user_type": {
-                "type": "integer"
-            }
-        },
-        "additionalProperties": false,
-        "$schema": "http://json-schema.org/draft-07/schema#"
-    },
-    "LoginSchema": {
-        "type": "object",
-        "properties": {
-            "login": {
-                "type": "string"
-            },
-            "password": {
-                "type": "string"
-            },
-            "undelete": {
-                "type": "boolean"
-            },
-            "captcha_key": {
-                "type": "string"
-            },
-            "login_source": {
-                "type": "string"
-            },
-            "gift_code_sku_id": {
-                "type": "string"
-            }
-        },
-        "additionalProperties": false,
-        "required": [
-            "login",
-            "password"
-        ],
-        "$schema": "http://json-schema.org/draft-07/schema#"
-    },
-    "MemberChangeProfileSchema": {
-        "type": "object",
-        "properties": {
-            "banner": {
-                "type": [
-                    "null",
-                    "string"
-                ]
-            },
-            "nick": {
-                "type": "string"
-            },
-            "bio": {
-                "type": "string"
-            }
-        },
-        "additionalProperties": false,
-        "$schema": "http://json-schema.org/draft-07/schema#"
-    },
-    "MemberChangeSchema": {
-        "type": "object",
-        "properties": {
-            "roles": {
-                "type": "array",
-                "items": {
-                    "type": "string"
-                }
-            },
-            "nick": {
-                "type": "string"
-            },
-            "avatar": {
-                "type": [
-                    "null",
-                    "string"
-                ]
-            }
-        },
-        "additionalProperties": false,
-        "$schema": "http://json-schema.org/draft-07/schema#"
-    },
-    "MemberNickChangeSchema": {
-        "type": "object",
-        "properties": {
-            "nick": {
-                "type": "string"
-            }
-        },
-        "additionalProperties": false,
-        "required": [
-            "nick"
-        ],
-        "$schema": "http://json-schema.org/draft-07/schema#"
-    },
-    "MessageAcknowledgeSchema": {
-        "type": "object",
-        "properties": {
-            "manual": {
-                "type": "boolean"
-            },
-            "mention_count": {
-                "type": "integer"
-            }
-        },
-        "additionalProperties": false,
-        "$schema": "http://json-schema.org/draft-07/schema#"
-    },
-    "MessageCreateSchema": {
-        "type": "object",
-        "properties": {
-            "type": {
-                "type": "integer"
-            },
-            "content": {
-                "type": "string"
-            },
-            "nonce": {
-                "type": "string"
-            },
-            "channel_id": {
-                "type": "string"
-            },
-            "tts": {
-                "type": "boolean"
-            },
-            "flags": {
-                "type": "string"
-            },
-            "embeds": {
-                "type": "array",
-                "items": {}
-            },
-            "embed": {},
-            "allowed_mentions": {
-                "type": "object",
-                "properties": {
-                    "parse": {
-                        "type": "array",
-                        "items": {
-                            "type": "string"
-                        }
-                    },
-                    "roles": {
-                        "type": "array",
-                        "items": {
-                            "type": "string"
-                        }
-                    },
-                    "users": {
-                        "type": "array",
-                        "items": {
-                            "type": "string"
-                        }
-                    },
-                    "replied_user": {
-                        "type": "boolean"
-                    }
-                },
-                "additionalProperties": false
-            },
-            "message_reference": {
-                "type": "object",
-                "properties": {
-                    "message_id": {
-                        "type": "string"
-                    },
-                    "channel_id": {
-                        "type": "string"
-                    },
-                    "guild_id": {
-                        "type": "string"
-                    },
-                    "fail_if_not_exists": {
-                        "type": "boolean"
-                    }
-                },
-                "additionalProperties": false,
-                "required": [
-                    "channel_id",
-                    "message_id"
-                ]
-            },
-            "payload_json": {
-                "type": "string"
-            },
-            "file": {},
-            "attachments": {
-                "description": "TODO: we should create an interface for attachments\nTODO: OpenWAAO<-->attachment-style metadata conversion",
-                "type": "array",
-                "items": {}
-            },
-            "sticker_ids": {
-                "type": "array",
-                "items": {
-                    "type": "string"
-                }
-            }
-        },
-        "additionalProperties": false,
-        "$schema": "http://json-schema.org/draft-07/schema#"
-    },
-    "MfaCodesSchema": {
-        "type": "object",
-        "properties": {
-            "password": {
-                "type": "string"
-            },
-            "regenerate": {
-                "type": "boolean"
-            }
-        },
-        "additionalProperties": false,
-        "required": [
-            "password"
-        ],
-        "$schema": "http://json-schema.org/draft-07/schema#"
-    },
-    "ModifyGuildStickerSchema": {
-        "type": "object",
-        "properties": {
-            "name": {
-                "minLength": 2,
-                "maxLength": 30,
-                "type": "string"
-            },
-            "description": {
-                "maxLength": 100,
-                "type": "string"
-            },
-            "tags": {
-                "maxLength": 200,
-                "type": "string"
-            }
-        },
-        "additionalProperties": false,
-        "required": [
-            "name",
-            "tags"
-        ],
-        "$schema": "http://json-schema.org/draft-07/schema#"
-    },
-    "PruneSchema": {
-        "type": "object",
-        "properties": {
-            "days": {
-                "type": "integer"
-            }
-        },
-        "additionalProperties": false,
-        "required": [
-            "days"
-        ],
-        "$schema": "http://json-schema.org/draft-07/schema#"
-    },
-    "PurgeSchema": {
-        "type": "object",
-        "properties": {
-            "before": {
-                "type": "string"
-            },
-            "after": {
-                "type": "string"
-            }
-        },
-        "additionalProperties": false,
-        "required": [
-            "after",
-            "before"
-        ],
-        "$schema": "http://json-schema.org/draft-07/schema#"
-    },
-    "RegisterSchema": {
-        "type": "object",
-        "properties": {
-            "username": {
-                "minLength": 2,
-                "maxLength": 32,
-                "type": "string"
-            },
-            "password": {
-                "minLength": 1,
-                "maxLength": 72,
-                "type": "string"
-            },
-            "consent": {
-                "type": "boolean"
-            },
-            "email": {
-                "format": "email",
-                "type": "string"
-            },
-            "fingerprint": {
-                "type": "string"
-            },
-            "invite": {
-                "type": "string"
-            },
-            "date_of_birth": {
-                "type": "string"
-            },
-            "gift_code_sku_id": {
-                "type": "string"
-            },
-            "captcha_key": {
-                "type": "string"
-            },
-            "promotional_email_opt_in": {
-                "type": "boolean"
-            }
-        },
-        "additionalProperties": false,
-        "required": [
-            "consent",
-            "username"
-        ],
-        "$schema": "http://json-schema.org/draft-07/schema#"
-    },
-    "RelationshipPostSchema": {
-        "type": "object",
-        "properties": {
-            "discriminator": {
-                "type": "string"
-            },
-            "username": {
-                "type": "string"
-            }
-        },
-        "additionalProperties": false,
-        "required": [
-            "discriminator",
-            "username"
-        ],
-        "$schema": "http://json-schema.org/draft-07/schema#"
-    },
-    "RelationshipPutSchema": {
-        "type": "object",
-        "properties": {
-            "type": {}
-        },
-        "additionalProperties": false,
-        "$schema": "http://json-schema.org/draft-07/schema#"
-    },
-    "RoleModifySchema": {
-        "type": "object",
-        "properties": {
-            "name": {
-                "type": "string"
-            },
-            "permissions": {
-                "type": "string"
-            },
-            "color": {
-                "type": "integer"
-            },
-            "hoist": {
-                "type": "boolean"
-            },
-            "mentionable": {
-                "type": "boolean"
-            },
-            "position": {
-                "type": "integer"
-            },
-            "icon": {
-                "type": "string"
-            },
-            "unicode_emoji": {
-                "type": "string"
-            }
-        },
-        "additionalProperties": false,
-        "$schema": "http://json-schema.org/draft-07/schema#"
-    },
-    "RolePositionUpdateSchema": {
-        "type": "array",
-        "items": {
-            "type": "object",
-            "properties": {
-                "id": {
-                    "type": "string"
-                },
-                "position": {
-                    "type": "integer"
-                }
-            },
-            "additionalProperties": false,
-            "required": [
-                "id",
-                "position"
-            ]
-        },
-        "$schema": "http://json-schema.org/draft-07/schema#"
-    },
-    "TemplateCreateSchema": {
-        "type": "object",
-        "properties": {
-            "name": {
-                "type": "string"
-            },
-            "description": {
-                "type": "string"
-            }
-        },
-        "additionalProperties": false,
-        "required": [
-            "name"
-        ],
-        "$schema": "http://json-schema.org/draft-07/schema#"
-    },
-    "TemplateModifySchema": {
-        "type": "object",
-        "properties": {
-            "name": {
-                "type": "string"
-            },
-            "description": {
-                "type": "string"
-            }
-        },
-        "additionalProperties": false,
-        "required": [
-            "name"
-        ],
-        "$schema": "http://json-schema.org/draft-07/schema#"
-    },
-    "TotpDisableSchema": {
-        "type": "object",
-        "properties": {
-            "code": {
-                "type": "string"
-            }
-        },
-        "additionalProperties": false,
-        "required": [
-            "code"
-        ],
-        "$schema": "http://json-schema.org/draft-07/schema#"
-    },
-    "TotpEnableSchema": {
-        "type": "object",
-        "properties": {
-            "password": {
-                "type": "string"
-            },
-            "code": {
-                "type": "string"
-            },
-            "secret": {
-                "type": "string"
-            }
-        },
-        "additionalProperties": false,
-        "required": [
-            "password"
-        ],
-        "$schema": "http://json-schema.org/draft-07/schema#"
-    },
-    "TotpSchema": {
-        "type": "object",
-        "properties": {
-            "code": {
-                "type": "string"
-            },
-            "ticket": {
-                "type": "string"
-            },
-            "gift_code_sku_id": {
-                "type": [
-                    "null",
-                    "string"
-                ]
-            },
-            "login_source": {
-                "type": [
-                    "null",
-                    "string"
-                ]
-            }
-        },
-        "additionalProperties": false,
-        "required": [
-            "code",
-            "ticket"
-        ],
-        "$schema": "http://json-schema.org/draft-07/schema#"
-    },
-    "UserModifySchema": {
-        "type": "object",
-        "properties": {
-            "username": {
-                "minLength": 1,
-                "maxLength": 100,
-                "type": "string"
-            },
-            "discriminator": {
-                "type": "string"
-            },
-            "avatar": {
-                "type": [
-                    "null",
-                    "string"
-                ]
-            },
-            "bio": {
-                "maxLength": 1024,
-                "type": "string"
-            },
-            "accent_color": {
-                "type": "integer"
-            },
-            "banner": {
-                "type": [
-                    "null",
-                    "string"
-                ]
-            },
-            "password": {
-                "type": "string"
-            },
-            "new_password": {
-                "type": "string"
-            },
-            "code": {
-                "type": "string"
-            },
-            "email": {
-                "type": "string"
-            }
-        },
-        "additionalProperties": false,
-        "$schema": "http://json-schema.org/draft-07/schema#"
-    },
-    "UserProfileModifySchema": {
-        "type": "object",
-        "properties": {
-            "bio": {
-                "type": "string"
-            },
-            "accent_color": {
-                "type": [
-                    "null",
-                    "integer"
-                ]
-            },
-            "banner": {
-                "type": [
-                    "null",
-                    "string"
-                ]
-            }
-        },
-        "additionalProperties": false,
-        "$schema": "http://json-schema.org/draft-07/schema#"
-    },
-    "UserSettingsSchema": {
-        "type": "object",
-        "additionalProperties": false,
-        "$schema": "http://json-schema.org/draft-07/schema#"
-    },
-    "VanityUrlSchema": {
-        "type": "object",
-        "properties": {
-            "code": {
-                "minLength": 1,
-                "maxLength": 20,
-                "type": "string"
-            }
-        },
-        "additionalProperties": false,
-        "$schema": "http://json-schema.org/draft-07/schema#"
-    },
-    "VoiceStateUpdateSchema": {
-        "type": "object",
-        "properties": {
-            "channel_id": {
-                "type": "string"
-            },
-            "guild_id": {
-                "type": "string"
-            },
-            "suppress": {
-                "type": "boolean"
-            },
-            "request_to_speak_timestamp": {
-                "type": "string",
-                "format": "date-time"
-            },
-            "self_mute": {
-                "type": "boolean"
-            },
-            "self_deaf": {
-                "type": "boolean"
-            },
-            "self_video": {
-                "type": "boolean"
-            }
-        },
-        "additionalProperties": false,
-        "required": [
-            "channel_id"
-        ],
-        "$schema": "http://json-schema.org/draft-07/schema#"
-    },
-    "WebhookCreateSchema": {
-        "type": "object",
-        "properties": {
-            "name": {
-                "maxLength": 80,
-                "type": "string"
-            },
-            "avatar": {
-                "type": "string"
-            }
-        },
-        "additionalProperties": false,
-        "required": [
-            "name"
-        ],
-        "$schema": "http://json-schema.org/draft-07/schema#"
-    },
-    "WidgetModifySchema": {
-        "type": "object",
-        "properties": {
-            "enabled": {
-                "type": "boolean"
-            },
-            "channel_id": {
-                "type": "string"
-            }
-        },
-        "additionalProperties": false,
-        "required": [
-            "channel_id",
-            "enabled"
-        ],
-        "$schema": "http://json-schema.org/draft-07/schema#"
-    },
-    "ChannelModifySchema": {
-        "type": "object",
-        "properties": {
-            "name": {
-                "maxLength": 100,
-                "type": "string"
-            },
-            "type": {
-                "enum": [
-                    0,
-                    1,
-                    10,
-                    11,
-                    12,
-                    13,
-                    14,
-                    15,
-                    2,
-                    255,
-                    3,
-                    33,
-                    34,
-                    35,
-                    4,
-                    5,
-                    6,
-                    64,
-                    7,
-                    8,
-                    9
-                ],
-                "type": "number"
-            },
-            "topic": {
-                "type": "string"
-            },
-            "icon": {
-                "type": [
-                    "null",
-                    "string"
-                ]
-            },
-            "bitrate": {
-                "type": "integer"
-            },
-            "user_limit": {
-                "type": "integer"
-            },
-            "rate_limit_per_user": {
-                "type": "integer"
-            },
-            "position": {
-                "type": "integer"
-            },
-            "permission_overwrites": {
-                "type": "array",
-                "items": {
-                    "type": "object",
-                    "properties": {
-                        "id": {
-                            "type": "string"
-                        },
-                        "type": {
-                            "$ref": "#/definitions/ChannelPermissionOverwriteType"
-                        },
-                        "allow": {
-                            "type": "string"
-                        },
-                        "deny": {
-                            "type": "string"
-                        }
-                    },
-                    "additionalProperties": false,
-                    "required": [
-                        "allow",
-                        "deny",
-                        "id",
-                        "type"
-                    ]
-                }
-            },
-            "parent_id": {
-                "type": "string"
-            },
-            "id": {
-                "type": "string"
-            },
-            "nsfw": {
-                "type": "boolean"
-            },
-            "rtc_region": {
-                "type": "string"
-            },
-            "default_auto_archive_duration": {
-                "type": "integer"
-            },
-            "flags": {
-                "type": "integer"
-            },
-            "default_thread_rate_limit_per_user": {
-                "type": "integer"
-            }
-        },
-        "additionalProperties": false,
-        "definitions": {
-            "ChannelPermissionOverwriteType": {
-                "enum": [
-                    0,
-                    1,
-                    2
-                ],
-                "type": "number"
-            }
-        },
-        "$schema": "http://json-schema.org/draft-07/schema#"
-    }
-}
\ No newline at end of file
+	"ActivitySchema": {
+		"type": "object",
+		"properties": {
+			"afk": {
+				"type": "boolean"
+			},
+			"status": {},
+			"activities": {
+				"type": "array",
+				"items": {}
+			},
+			"since": {
+				"type": "integer"
+			}
+		},
+		"additionalProperties": false,
+		"required": ["afk", "status"],
+		"$schema": "http://json-schema.org/draft-07/schema#"
+	},
+	"BackupCodesChallengeSchema": {
+		"type": "object",
+		"properties": {
+			"password": {
+				"type": "string"
+			}
+		},
+		"additionalProperties": false,
+		"required": ["password"],
+		"$schema": "http://json-schema.org/draft-07/schema#"
+	},
+	"BanCreateSchema": {
+		"type": "object",
+		"properties": {
+			"delete_message_days": {
+				"type": "string"
+			},
+			"reason": {
+				"type": "string"
+			}
+		},
+		"additionalProperties": false,
+		"$schema": "http://json-schema.org/draft-07/schema#"
+	},
+	"BanModeratorSchema": {
+		"type": "object",
+		"properties": {
+			"id": {
+				"type": "string"
+			},
+			"user_id": {
+				"type": "string"
+			},
+			"guild_id": {
+				"type": "string"
+			},
+			"executor_id": {
+				"type": "string"
+			},
+			"reason": {
+				"type": "string"
+			}
+		},
+		"additionalProperties": false,
+		"required": ["executor_id", "guild_id", "id", "user_id"],
+		"$schema": "http://json-schema.org/draft-07/schema#"
+	},
+	"BanRegistrySchema": {
+		"type": "object",
+		"properties": {
+			"id": {
+				"type": "string"
+			},
+			"user_id": {
+				"type": "string"
+			},
+			"guild_id": {
+				"type": "string"
+			},
+			"executor_id": {
+				"type": "string"
+			},
+			"ip": {
+				"type": "string"
+			},
+			"reason": {
+				"type": "string"
+			}
+		},
+		"additionalProperties": false,
+		"required": ["executor_id", "guild_id", "id", "user_id"],
+		"$schema": "http://json-schema.org/draft-07/schema#"
+	},
+	"BulkDeleteSchema": {
+		"type": "object",
+		"properties": {
+			"messages": {
+				"type": "array",
+				"items": {
+					"type": "string"
+				}
+			}
+		},
+		"additionalProperties": false,
+		"required": ["messages"],
+		"$schema": "http://json-schema.org/draft-07/schema#"
+	},
+	"ChannelPermissionOverwriteSchema": {
+		"type": "object",
+		"additionalProperties": false,
+		"$schema": "http://json-schema.org/draft-07/schema#"
+	},
+	"ChannelReorderSchema": {
+		"type": "array",
+		"items": {
+			"type": "object",
+			"properties": {
+				"id": {
+					"type": "string"
+				},
+				"position": {
+					"type": "integer"
+				},
+				"lock_permissions": {
+					"type": "boolean"
+				},
+				"parent_id": {
+					"type": "string"
+				}
+			},
+			"additionalProperties": false,
+			"required": ["id"]
+		},
+		"$schema": "http://json-schema.org/draft-07/schema#"
+	},
+	"CodesVerificationSchema": {
+		"type": "object",
+		"properties": {
+			"key": {
+				"type": "string"
+			},
+			"nonce": {
+				"type": "string"
+			},
+			"regenerate": {
+				"type": "boolean"
+			}
+		},
+		"additionalProperties": false,
+		"required": ["key", "nonce"],
+		"$schema": "http://json-schema.org/draft-07/schema#"
+	},
+	"DmChannelCreateSchema": {
+		"type": "object",
+		"properties": {
+			"name": {
+				"type": "string"
+			},
+			"recipients": {
+				"type": "array",
+				"items": {
+					"type": "string"
+				}
+			}
+		},
+		"additionalProperties": false,
+		"required": ["recipients"],
+		"$schema": "http://json-schema.org/draft-07/schema#"
+	},
+	"EmojiCreateSchema": {
+		"type": "object",
+		"properties": {
+			"name": {
+				"type": "string"
+			},
+			"image": {
+				"type": "string"
+			},
+			"require_colons": {
+				"type": ["null", "boolean"]
+			},
+			"roles": {
+				"type": "array",
+				"items": {
+					"type": "string"
+				}
+			}
+		},
+		"additionalProperties": false,
+		"required": ["image"],
+		"$schema": "http://json-schema.org/draft-07/schema#"
+	},
+	"EmojiModifySchema": {
+		"type": "object",
+		"properties": {
+			"name": {
+				"type": "string"
+			},
+			"roles": {
+				"type": "array",
+				"items": {
+					"type": "string"
+				}
+			}
+		},
+		"additionalProperties": false,
+		"$schema": "http://json-schema.org/draft-07/schema#"
+	},
+	"GuildCreateSchema": {
+		"type": "object",
+		"properties": {
+			"name": {
+				"maxLength": 100,
+				"type": "string"
+			},
+			"region": {
+				"type": "string"
+			},
+			"icon": {
+				"type": ["null", "string"]
+			},
+			"channels": {
+				"type": "array",
+				"items": {
+					"$ref": "#/definitions/ChannelModifySchema"
+				}
+			},
+			"guild_template_code": {
+				"type": "string"
+			},
+			"system_channel_id": {
+				"type": "string"
+			},
+			"rules_channel_id": {
+				"type": "string"
+			}
+		},
+		"additionalProperties": false,
+		"required": ["name"],
+		"definitions": {
+			"ChannelModifySchema": {
+				"type": "object",
+				"properties": {
+					"name": {
+						"maxLength": 100,
+						"type": "string"
+					},
+					"type": {
+						"enum": [0, 1, 10, 11, 12, 13, 14, 15, 2, 255, 3, 33, 34, 35, 4, 5, 6, 64, 7, 8, 9],
+						"type": "number"
+					},
+					"topic": {
+						"type": "string"
+					},
+					"icon": {
+						"type": ["null", "string"]
+					},
+					"bitrate": {
+						"type": "integer"
+					},
+					"user_limit": {
+						"type": "integer"
+					},
+					"rate_limit_per_user": {
+						"type": "integer"
+					},
+					"position": {
+						"type": "integer"
+					},
+					"permission_overwrites": {
+						"type": "array",
+						"items": {
+							"type": "object",
+							"properties": {
+								"id": {
+									"type": "string"
+								},
+								"type": {
+									"$ref": "#/definitions/ChannelPermissionOverwriteType"
+								},
+								"allow": {
+									"type": "string"
+								},
+								"deny": {
+									"type": "string"
+								}
+							},
+							"additionalProperties": false,
+							"required": ["allow", "deny", "id", "type"]
+						}
+					},
+					"parent_id": {
+						"type": "string"
+					},
+					"id": {
+						"type": "string"
+					},
+					"nsfw": {
+						"type": "boolean"
+					},
+					"rtc_region": {
+						"type": "string"
+					},
+					"default_auto_archive_duration": {
+						"type": "integer"
+					},
+					"flags": {
+						"type": "integer"
+					},
+					"default_thread_rate_limit_per_user": {
+						"type": "integer"
+					}
+				},
+				"additionalProperties": false
+			},
+			"ChannelPermissionOverwriteType": {
+				"enum": [0, 1, 2],
+				"type": "number"
+			}
+		},
+		"$schema": "http://json-schema.org/draft-07/schema#"
+	},
+	"GuildTemplateCreateSchema": {
+		"type": "object",
+		"properties": {
+			"name": {
+				"type": "string"
+			},
+			"avatar": {
+				"type": ["null", "string"]
+			}
+		},
+		"additionalProperties": false,
+		"required": ["name"],
+		"$schema": "http://json-schema.org/draft-07/schema#"
+	},
+	"GuildUpdateSchema": {
+		"type": "object",
+		"properties": {
+			"name": {
+				"type": "string"
+			},
+			"banner": {
+				"type": ["null", "string"]
+			},
+			"splash": {
+				"type": ["null", "string"]
+			},
+			"description": {
+				"type": "string"
+			},
+			"features": {
+				"type": "array",
+				"items": {
+					"type": "string"
+				}
+			},
+			"verification_level": {
+				"type": "integer"
+			},
+			"default_message_notifications": {
+				"type": "integer"
+			},
+			"system_channel_flags": {
+				"type": "integer"
+			},
+			"explicit_content_filter": {
+				"type": "integer"
+			},
+			"public_updates_channel_id": {
+				"type": "string"
+			},
+			"afk_timeout": {
+				"type": "integer"
+			},
+			"afk_channel_id": {
+				"type": "string"
+			},
+			"preferred_locale": {
+				"type": "string"
+			},
+			"premium_progress_bar_enabled": {
+				"type": "boolean"
+			},
+			"region": {
+				"type": "string"
+			},
+			"icon": {
+				"type": ["null", "string"]
+			},
+			"guild_template_code": {
+				"type": "string"
+			},
+			"system_channel_id": {
+				"type": "string"
+			},
+			"rules_channel_id": {
+				"type": "string"
+			}
+		},
+		"additionalProperties": false,
+		"$schema": "http://json-schema.org/draft-07/schema#"
+	},
+	"GuildUpdateWelcomeScreenSchema": {
+		"type": "object",
+		"properties": {
+			"welcome_channels": {
+				"type": "array",
+				"items": {
+					"type": "object",
+					"properties": {
+						"channel_id": {
+							"type": "string"
+						},
+						"description": {
+							"type": "string"
+						},
+						"emoji_id": {
+							"type": "string"
+						},
+						"emoji_name": {
+							"type": "string"
+						}
+					},
+					"additionalProperties": false,
+					"required": ["channel_id", "description", "emoji_name"]
+				}
+			},
+			"enabled": {
+				"type": "boolean"
+			},
+			"description": {
+				"type": "string"
+			}
+		},
+		"additionalProperties": false,
+		"$schema": "http://json-schema.org/draft-07/schema#"
+	},
+	"IdentifySchema": {
+		"type": "object",
+		"properties": {
+			"token": {
+				"type": "string"
+			},
+			"properties": {
+				"type": "object",
+				"properties": {
+					"os": {
+						"type": "string"
+					},
+					"os_atch": {
+						"type": "string"
+					},
+					"browser": {
+						"type": "string"
+					},
+					"device": {
+						"type": "string"
+					},
+					"$os": {
+						"type": "string"
+					},
+					"$browser": {
+						"type": "string"
+					},
+					"$device": {
+						"type": "string"
+					},
+					"browser_user_agent": {
+						"type": "string"
+					},
+					"browser_version": {
+						"type": "string"
+					},
+					"os_version": {
+						"type": "string"
+					},
+					"referrer": {
+						"type": "string"
+					},
+					"referring_domain": {
+						"type": "string"
+					},
+					"referrer_current": {
+						"type": "string"
+					},
+					"referring_domain_current": {
+						"type": "string"
+					},
+					"release_channel": {
+						"enum": ["canary", "dev", "ptb", "stable"],
+						"type": "string"
+					},
+					"client_build_number": {
+						"type": "integer"
+					},
+					"client_event_source": {},
+					"client_version": {
+						"type": "string"
+					},
+					"system_locale": {
+						"type": "string"
+					}
+				},
+				"additionalProperties": false
+			},
+			"intents": {
+				"type": "string"
+			},
+			"presence": {
+				"$ref": "#/definitions/ActivitySchema"
+			},
+			"compress": {
+				"type": "boolean"
+			},
+			"large_threshold": {
+				"type": "integer"
+			},
+			"shard": {
+				"type": "array",
+				"items": [
+					{
+						"type": "integer"
+					},
+					{
+						"type": "integer"
+					}
+				],
+				"minItems": 2,
+				"maxItems": 2
+			},
+			"guild_subscriptions": {
+				"type": "boolean"
+			},
+			"capabilities": {
+				"type": "integer"
+			},
+			"client_state": {
+				"type": "object",
+				"properties": {
+					"guild_hashes": {},
+					"highest_last_message_id": {
+						"type": "string"
+					},
+					"read_state_version": {
+						"type": "integer"
+					},
+					"user_guild_settings_version": {
+						"type": "integer"
+					},
+					"user_settings_version": {
+						"type": "integer"
+					}
+				},
+				"additionalProperties": false
+			},
+			"v": {
+				"type": "integer"
+			}
+		},
+		"additionalProperties": false,
+		"required": ["properties", "token"],
+		"definitions": {
+			"ActivitySchema": {
+				"type": "object",
+				"properties": {
+					"afk": {
+						"type": "boolean"
+					},
+					"status": {},
+					"activities": {
+						"type": "array",
+						"items": {}
+					},
+					"since": {
+						"type": "integer"
+					}
+				},
+				"additionalProperties": false,
+				"required": ["afk", "status"]
+			}
+		},
+		"$schema": "http://json-schema.org/draft-07/schema#"
+	},
+	"InviteCreateSchema": {
+		"type": "object",
+		"properties": {
+			"target_user_id": {
+				"type": "string"
+			},
+			"target_type": {
+				"type": "string"
+			},
+			"validate": {
+				"type": "string"
+			},
+			"max_age": {
+				"type": "integer"
+			},
+			"max_uses": {
+				"type": "integer"
+			},
+			"temporary": {
+				"type": "boolean"
+			},
+			"unique": {
+				"type": "boolean"
+			},
+			"target_user": {
+				"type": "string"
+			},
+			"target_user_type": {
+				"type": "integer"
+			}
+		},
+		"additionalProperties": false,
+		"$schema": "http://json-schema.org/draft-07/schema#"
+	},
+	"LoginSchema": {
+		"type": "object",
+		"properties": {
+			"login": {
+				"type": "string"
+			},
+			"password": {
+				"type": "string"
+			},
+			"undelete": {
+				"type": "boolean"
+			},
+			"captcha_key": {
+				"type": "string"
+			},
+			"login_source": {
+				"type": "string"
+			},
+			"gift_code_sku_id": {
+				"type": "string"
+			}
+		},
+		"additionalProperties": false,
+		"required": ["login", "password"],
+		"$schema": "http://json-schema.org/draft-07/schema#"
+	},
+	"MemberChangeProfileSchema": {
+		"type": "object",
+		"properties": {
+			"banner": {
+				"type": ["null", "string"]
+			},
+			"nick": {
+				"type": "string"
+			},
+			"bio": {
+				"type": "string"
+			}
+		},
+		"additionalProperties": false,
+		"$schema": "http://json-schema.org/draft-07/schema#"
+	},
+	"MemberChangeSchema": {
+		"type": "object",
+		"properties": {
+			"roles": {
+				"type": "array",
+				"items": {
+					"type": "string"
+				}
+			},
+			"nick": {
+				"type": "string"
+			},
+			"avatar": {
+				"type": ["null", "string"]
+			}
+		},
+		"additionalProperties": false,
+		"$schema": "http://json-schema.org/draft-07/schema#"
+	},
+	"MemberNickChangeSchema": {
+		"type": "object",
+		"properties": {
+			"nick": {
+				"type": "string"
+			}
+		},
+		"additionalProperties": false,
+		"required": ["nick"],
+		"$schema": "http://json-schema.org/draft-07/schema#"
+	},
+	"MessageAcknowledgeSchema": {
+		"type": "object",
+		"properties": {
+			"manual": {
+				"type": "boolean"
+			},
+			"mention_count": {
+				"type": "integer"
+			}
+		},
+		"additionalProperties": false,
+		"$schema": "http://json-schema.org/draft-07/schema#"
+	},
+	"MessageCreateSchema": {
+		"type": "object",
+		"properties": {
+			"type": {
+				"type": "integer"
+			},
+			"content": {
+				"type": "string"
+			},
+			"nonce": {
+				"type": "string"
+			},
+			"channel_id": {
+				"type": "string"
+			},
+			"tts": {
+				"type": "boolean"
+			},
+			"flags": {
+				"type": "string"
+			},
+			"embeds": {
+				"type": "array",
+				"items": {}
+			},
+			"embed": {},
+			"allowed_mentions": {
+				"type": "object",
+				"properties": {
+					"parse": {
+						"type": "array",
+						"items": {
+							"type": "string"
+						}
+					},
+					"roles": {
+						"type": "array",
+						"items": {
+							"type": "string"
+						}
+					},
+					"users": {
+						"type": "array",
+						"items": {
+							"type": "string"
+						}
+					},
+					"replied_user": {
+						"type": "boolean"
+					}
+				},
+				"additionalProperties": false
+			},
+			"message_reference": {
+				"type": "object",
+				"properties": {
+					"message_id": {
+						"type": "string"
+					},
+					"channel_id": {
+						"type": "string"
+					},
+					"guild_id": {
+						"type": "string"
+					},
+					"fail_if_not_exists": {
+						"type": "boolean"
+					}
+				},
+				"additionalProperties": false,
+				"required": ["channel_id", "message_id"]
+			},
+			"payload_json": {
+				"type": "string"
+			},
+			"file": {},
+			"attachments": {
+				"description": "TODO: we should create an interface for attachments\nTODO: OpenWAAO<-->attachment-style metadata conversion",
+				"type": "array",
+				"items": {}
+			},
+			"sticker_ids": {
+				"type": "array",
+				"items": {
+					"type": "string"
+				}
+			}
+		},
+		"additionalProperties": false,
+		"$schema": "http://json-schema.org/draft-07/schema#"
+	},
+	"MfaCodesSchema": {
+		"type": "object",
+		"properties": {
+			"password": {
+				"type": "string"
+			},
+			"regenerate": {
+				"type": "boolean"
+			}
+		},
+		"additionalProperties": false,
+		"required": ["password"],
+		"$schema": "http://json-schema.org/draft-07/schema#"
+	},
+	"ModifyGuildStickerSchema": {
+		"type": "object",
+		"properties": {
+			"name": {
+				"minLength": 2,
+				"maxLength": 30,
+				"type": "string"
+			},
+			"description": {
+				"maxLength": 100,
+				"type": "string"
+			},
+			"tags": {
+				"maxLength": 200,
+				"type": "string"
+			}
+		},
+		"additionalProperties": false,
+		"required": ["name", "tags"],
+		"$schema": "http://json-schema.org/draft-07/schema#"
+	},
+	"PruneSchema": {
+		"type": "object",
+		"properties": {
+			"days": {
+				"type": "integer"
+			}
+		},
+		"additionalProperties": false,
+		"required": ["days"],
+		"$schema": "http://json-schema.org/draft-07/schema#"
+	},
+	"PurgeSchema": {
+		"type": "object",
+		"properties": {
+			"before": {
+				"type": "string"
+			},
+			"after": {
+				"type": "string"
+			}
+		},
+		"additionalProperties": false,
+		"required": ["after", "before"],
+		"$schema": "http://json-schema.org/draft-07/schema#"
+	},
+	"RegisterSchema": {
+		"type": "object",
+		"properties": {
+			"username": {
+				"minLength": 2,
+				"maxLength": 32,
+				"type": "string"
+			},
+			"password": {
+				"minLength": 1,
+				"maxLength": 72,
+				"type": "string"
+			},
+			"consent": {
+				"type": "boolean"
+			},
+			"email": {
+				"format": "email",
+				"type": "string"
+			},
+			"fingerprint": {
+				"type": "string"
+			},
+			"invite": {
+				"type": "string"
+			},
+			"date_of_birth": {
+				"type": "string"
+			},
+			"gift_code_sku_id": {
+				"type": "string"
+			},
+			"captcha_key": {
+				"type": "string"
+			},
+			"promotional_email_opt_in": {
+				"type": "boolean"
+			}
+		},
+		"additionalProperties": false,
+		"required": ["consent", "username"],
+		"$schema": "http://json-schema.org/draft-07/schema#"
+	},
+	"RelationshipPostSchema": {
+		"type": "object",
+		"properties": {
+			"discriminator": {
+				"type": "string"
+			},
+			"username": {
+				"type": "string"
+			}
+		},
+		"additionalProperties": false,
+		"required": ["discriminator", "username"],
+		"$schema": "http://json-schema.org/draft-07/schema#"
+	},
+	"RelationshipPutSchema": {
+		"type": "object",
+		"properties": {
+			"type": {}
+		},
+		"additionalProperties": false,
+		"$schema": "http://json-schema.org/draft-07/schema#"
+	},
+	"RoleModifySchema": {
+		"type": "object",
+		"properties": {
+			"name": {
+				"type": "string"
+			},
+			"permissions": {
+				"type": "string"
+			},
+			"color": {
+				"type": "integer"
+			},
+			"hoist": {
+				"type": "boolean"
+			},
+			"mentionable": {
+				"type": "boolean"
+			},
+			"position": {
+				"type": "integer"
+			},
+			"icon": {
+				"type": "string"
+			},
+			"unicode_emoji": {
+				"type": "string"
+			}
+		},
+		"additionalProperties": false,
+		"$schema": "http://json-schema.org/draft-07/schema#"
+	},
+	"RolePositionUpdateSchema": {
+		"type": "array",
+		"items": {
+			"type": "object",
+			"properties": {
+				"id": {
+					"type": "string"
+				},
+				"position": {
+					"type": "integer"
+				}
+			},
+			"additionalProperties": false,
+			"required": ["id", "position"]
+		},
+		"$schema": "http://json-schema.org/draft-07/schema#"
+	},
+	"TemplateCreateSchema": {
+		"type": "object",
+		"properties": {
+			"name": {
+				"type": "string"
+			},
+			"description": {
+				"type": "string"
+			}
+		},
+		"additionalProperties": false,
+		"required": ["name"],
+		"$schema": "http://json-schema.org/draft-07/schema#"
+	},
+	"TemplateModifySchema": {
+		"type": "object",
+		"properties": {
+			"name": {
+				"type": "string"
+			},
+			"description": {
+				"type": "string"
+			}
+		},
+		"additionalProperties": false,
+		"required": ["name"],
+		"$schema": "http://json-schema.org/draft-07/schema#"
+	},
+	"TotpDisableSchema": {
+		"type": "object",
+		"properties": {
+			"code": {
+				"type": "string"
+			}
+		},
+		"additionalProperties": false,
+		"required": ["code"],
+		"$schema": "http://json-schema.org/draft-07/schema#"
+	},
+	"TotpEnableSchema": {
+		"type": "object",
+		"properties": {
+			"password": {
+				"type": "string"
+			},
+			"code": {
+				"type": "string"
+			},
+			"secret": {
+				"type": "string"
+			}
+		},
+		"additionalProperties": false,
+		"required": ["password"],
+		"$schema": "http://json-schema.org/draft-07/schema#"
+	},
+	"TotpSchema": {
+		"type": "object",
+		"properties": {
+			"code": {
+				"type": "string"
+			},
+			"ticket": {
+				"type": "string"
+			},
+			"gift_code_sku_id": {
+				"type": ["null", "string"]
+			},
+			"login_source": {
+				"type": ["null", "string"]
+			}
+		},
+		"additionalProperties": false,
+		"required": ["code", "ticket"],
+		"$schema": "http://json-schema.org/draft-07/schema#"
+	},
+	"UserModifySchema": {
+		"type": "object",
+		"properties": {
+			"username": {
+				"minLength": 1,
+				"maxLength": 100,
+				"type": "string"
+			},
+			"discriminator": {
+				"type": "string"
+			},
+			"avatar": {
+				"type": ["null", "string"]
+			},
+			"bio": {
+				"maxLength": 1024,
+				"type": "string"
+			},
+			"accent_color": {
+				"type": "integer"
+			},
+			"banner": {
+				"type": ["null", "string"]
+			},
+			"password": {
+				"type": "string"
+			},
+			"new_password": {
+				"type": "string"
+			},
+			"code": {
+				"type": "string"
+			},
+			"email": {
+				"type": "string"
+			}
+		},
+		"additionalProperties": false,
+		"$schema": "http://json-schema.org/draft-07/schema#"
+	},
+	"UserProfileModifySchema": {
+		"type": "object",
+		"properties": {
+			"bio": {
+				"type": "string"
+			},
+			"accent_color": {
+				"type": ["null", "integer"]
+			},
+			"banner": {
+				"type": ["null", "string"]
+			}
+		},
+		"additionalProperties": false,
+		"$schema": "http://json-schema.org/draft-07/schema#"
+	},
+	"UserSettingsSchema": {
+		"type": "object",
+		"additionalProperties": false,
+		"$schema": "http://json-schema.org/draft-07/schema#"
+	},
+	"VanityUrlSchema": {
+		"type": "object",
+		"properties": {
+			"code": {
+				"minLength": 1,
+				"maxLength": 20,
+				"type": "string"
+			}
+		},
+		"additionalProperties": false,
+		"$schema": "http://json-schema.org/draft-07/schema#"
+	},
+	"VoiceStateUpdateSchema": {
+		"type": "object",
+		"properties": {
+			"channel_id": {
+				"type": "string"
+			},
+			"guild_id": {
+				"type": "string"
+			},
+			"suppress": {
+				"type": "boolean"
+			},
+			"request_to_speak_timestamp": {
+				"type": "string",
+				"format": "date-time"
+			},
+			"self_mute": {
+				"type": "boolean"
+			},
+			"self_deaf": {
+				"type": "boolean"
+			},
+			"self_video": {
+				"type": "boolean"
+			}
+		},
+		"additionalProperties": false,
+		"required": ["channel_id"],
+		"$schema": "http://json-schema.org/draft-07/schema#"
+	},
+	"WebhookCreateSchema": {
+		"type": "object",
+		"properties": {
+			"name": {
+				"maxLength": 80,
+				"type": "string"
+			},
+			"avatar": {
+				"type": "string"
+			}
+		},
+		"additionalProperties": false,
+		"required": ["name"],
+		"$schema": "http://json-schema.org/draft-07/schema#"
+	},
+	"WidgetModifySchema": {
+		"type": "object",
+		"properties": {
+			"enabled": {
+				"type": "boolean"
+			},
+			"channel_id": {
+				"type": "string"
+			}
+		},
+		"additionalProperties": false,
+		"required": ["channel_id", "enabled"],
+		"$schema": "http://json-schema.org/draft-07/schema#"
+	},
+	"ChannelModifySchema": {
+		"type": "object",
+		"properties": {
+			"name": {
+				"maxLength": 100,
+				"type": "string"
+			},
+			"type": {
+				"enum": [0, 1, 10, 11, 12, 13, 14, 15, 2, 255, 3, 33, 34, 35, 4, 5, 6, 64, 7, 8, 9],
+				"type": "number"
+			},
+			"topic": {
+				"type": "string"
+			},
+			"icon": {
+				"type": ["null", "string"]
+			},
+			"bitrate": {
+				"type": "integer"
+			},
+			"user_limit": {
+				"type": "integer"
+			},
+			"rate_limit_per_user": {
+				"type": "integer"
+			},
+			"position": {
+				"type": "integer"
+			},
+			"permission_overwrites": {
+				"type": "array",
+				"items": {
+					"type": "object",
+					"properties": {
+						"id": {
+							"type": "string"
+						},
+						"type": {
+							"$ref": "#/definitions/ChannelPermissionOverwriteType"
+						},
+						"allow": {
+							"type": "string"
+						},
+						"deny": {
+							"type": "string"
+						}
+					},
+					"additionalProperties": false,
+					"required": ["allow", "deny", "id", "type"]
+				}
+			},
+			"parent_id": {
+				"type": "string"
+			},
+			"id": {
+				"type": "string"
+			},
+			"nsfw": {
+				"type": "boolean"
+			},
+			"rtc_region": {
+				"type": "string"
+			},
+			"default_auto_archive_duration": {
+				"type": "integer"
+			},
+			"flags": {
+				"type": "integer"
+			},
+			"default_thread_rate_limit_per_user": {
+				"type": "integer"
+			}
+		},
+		"additionalProperties": false,
+		"definitions": {
+			"ChannelPermissionOverwriteType": {
+				"enum": [0, 1, 2],
+				"type": "number"
+			}
+		},
+		"$schema": "http://json-schema.org/draft-07/schema#"
+	}
+}
diff --git a/src/Server.ts b/src/Server.ts
index c28ca0f9..83120412 100644
--- a/src/Server.ts
+++ b/src/Server.ts
@@ -51,7 +51,7 @@ async function main() {
 		app.use(Sentry.Handlers.requestHandler());
 		app.use(Sentry.Handlers.tracingHandler());
 	}
-	
+
 	server.listen(port);
 	await Promise.all([api.start(), cdn.start(), gateway.start()]);
 
diff --git a/src/api/middlewares/TestClient.ts b/src/api/middlewares/TestClient.ts
index 2c195994..3afd0339 100644
--- a/src/api/middlewares/TestClient.ts
+++ b/src/api/middlewares/TestClient.ts
@@ -45,8 +45,8 @@ export default function TestClient(app: Application) {
 				res.set(name, value);
 			});
 		} else {
-			if(req.params.file.endsWith(".map")) {
-				return res.status(404).send("Not found");	
+			if (req.params.file.endsWith(".map")) {
+				return res.status(404).send("Not found");
 			}
 			console.log(`[TestClient] Downloading file not yet cached! Asset file: ${req.params.file}`);
 			response = await fetch(`https://discord.com/assets/${req.params.file}`, {
diff --git a/src/api/routes/applications/#id/bot/index.ts b/src/api/routes/applications/#id/bot/index.ts
index 2ac3523b..6d054c75 100644
--- a/src/api/routes/applications/#id/bot/index.ts
+++ b/src/api/routes/applications/#id/bot/index.ts
@@ -1,5 +1,5 @@
 import { route } from "@fosscord/api";
-import { Application, Config, FieldErrors, generateToken, handleFile, OrmUtils, trimSpecial, User, HTTPError } from "@fosscord/util";
+import { Application, Config, FieldErrors, generateToken, handleFile, HTTPError, OrmUtils, trimSpecial, User } from "@fosscord/util";
 import { Request, Response, Router } from "express";
 import { verifyToken } from "node-2fa";
 
diff --git a/src/api/routes/auth/login.ts b/src/api/routes/auth/login.ts
index 68b2656a..045b86eb 100644
--- a/src/api/routes/auth/login.ts
+++ b/src/api/routes/auth/login.ts
@@ -1,7 +1,7 @@
-import { Request, Response, Router } from "express";
-import { route, getIpAdress, verifyCaptcha } from "@fosscord/api";
-import { Config, User, generateToken, adjustEmail, FieldErrors, LoginSchema } from "@fosscord/util";
+import { getIpAdress, route, verifyCaptcha } from "@fosscord/api";
+import { adjustEmail, Config, FieldErrors, generateToken, LoginSchema, User } from "@fosscord/util";
 import crypto from "crypto";
+import { Request, Response, Router } from "express";
 
 let bcrypt: any;
 try {
@@ -38,7 +38,7 @@ router.post("/", route({ body: "LoginSchema" }), async (req: Request, res: Respo
 				captcha_key: verify["error-codes"],
 				captcha_sitekey: sitekey,
 				captcha_service: service
-			})
+			});
 		}
 	}
 
diff --git a/src/api/routes/auth/mfa/totp.ts b/src/api/routes/auth/mfa/totp.ts
index 4b080af6..65ec7f2f 100644
--- a/src/api/routes/auth/mfa/totp.ts
+++ b/src/api/routes/auth/mfa/totp.ts
@@ -1,5 +1,5 @@
 import { route } from "@fosscord/api";
-import { BackupCode, generateToken, TotpSchema, User, HTTPError } from "@fosscord/util";
+import { BackupCode, generateToken, HTTPError, TotpSchema, User } from "@fosscord/util";
 import { Request, Response, Router } from "express";
 import { verifyToken } from "node-2fa";
 const router = Router();
diff --git a/src/api/routes/auth/verify/view-backup-codes-challenge.ts b/src/api/routes/auth/verify/view-backup-codes-challenge.ts
index d524e0f7..846e186b 100644
--- a/src/api/routes/auth/verify/view-backup-codes-challenge.ts
+++ b/src/api/routes/auth/verify/view-backup-codes-challenge.ts
@@ -1,6 +1,6 @@
-import { Router, Request, Response } from "express";
 import { route } from "@fosscord/api";
-import { FieldErrors, User, BackupCodesChallengeSchema } from "@fosscord/util";
+import { BackupCodesChallengeSchema, FieldErrors, User } from "@fosscord/util";
+import { Request, Response, Router } from "express";
 
 let bcrypt: any;
 try {
@@ -17,13 +17,13 @@ router.post("/", route({ body: "BackupCodesChallengeSchema" }), async (req: Requ
 
 	const user = await User.findOneOrFail({ where: { id: req.user_id }, select: ["data"] });
 
-	if (!await bcrypt.compare(password, user.data.hash || "")) {
+	if (!(await bcrypt.compare(password, user.data.hash || ""))) {
 		throw FieldErrors({ password: { message: req.t("auth:login.INVALID_PASSWORD"), code: "INVALID_PASSWORD" } });
 	}
 
 	return res.json({
 		nonce: "NoncePlaceholder",
-		regenerate_nonce: "RegenNoncePlaceholder",
+		regenerate_nonce: "RegenNoncePlaceholder"
 	});
 });
 
diff --git a/src/api/routes/guilds/#guild_id/member-verification.ts b/src/api/routes/guilds/#guild_id/member-verification.ts
index 265a1b35..bb3ffb0a 100644
--- a/src/api/routes/guilds/#guild_id/member-verification.ts
+++ b/src/api/routes/guilds/#guild_id/member-verification.ts
@@ -1,8 +1,8 @@
-import { Router, Request, Response } from "express";
 import { route } from "@fosscord/api";
+import { Request, Response, Router } from "express";
 const router = Router();
 
-router.get("/",route({}), async (req: Request, res: Response) => {
+router.get("/", route({}), async (req: Request, res: Response) => {
 	// TODO: member verification
 
 	res.status(404).json({
diff --git a/src/api/routes/store/published-listings/skus/#sku_id/subscription-plans.ts b/src/api/routes/store/published-listings/skus/#sku_id/subscription-plans.ts
index f8c78bc5..a5fe0cf2 100644
--- a/src/api/routes/store/published-listings/skus/#sku_id/subscription-plans.ts
+++ b/src/api/routes/store/published-listings/skus/#sku_id/subscription-plans.ts
@@ -134,159 +134,159 @@ const skus = new Map([
 				price: 0,
 				price_tier: null
 			}
-		],
+		]
 	],
 	[
 		"978380684370378762",
 		[
 			[
 				{
-					"id": "978380692553465866",
-					"name": "Premium Tier 0 Monthly",
-					"interval": 1,
-					"interval_count": 1,
-					"tax_inclusive": true,
-					"sku_id": "978380684370378762",
-					"currency": "usd",
-					"price": 299,
-					"price_tier": null,
-					"prices": {
+					id: "978380692553465866",
+					name: "Premium Tier 0 Monthly",
+					interval: 1,
+					interval_count: 1,
+					tax_inclusive: true,
+					sku_id: "978380684370378762",
+					currency: "usd",
+					price: 299,
+					price_tier: null,
+					prices: {
 						"0": {
-							"country_prices": {
-								"country_code": "US",
-								"prices": [
+							country_prices: {
+								country_code: "US",
+								prices: [
 									{
-										"currency": "usd",
-										"amount": 0,
-										"exponent": 2
+										currency: "usd",
+										amount: 0,
+										exponent: 2
 									}
 								]
 							},
-							"payment_source_prices": {
+							payment_source_prices: {
 								"775487223059316758": [
 									{
-										"currency": "usd",
-										"amount": 0,
-										"exponent": 2
+										currency: "usd",
+										amount: 0,
+										exponent: 2
 									}
 								],
 								"736345864146255982": [
 									{
-										"currency": "usd",
-										"amount": 0,
-										"exponent": 2
+										currency: "usd",
+										amount: 0,
+										exponent: 2
 									}
 								],
 								"683074999590060249": [
 									{
-										"currency": "usd",
-										"amount": 0,
-										"exponent": 2
+										currency: "usd",
+										amount: 0,
+										exponent: 2
 									}
 								]
 							}
 						},
 						"3": {
-							"country_prices": {
-								"country_code": "US",
-								"prices": [
+							country_prices: {
+								country_code: "US",
+								prices: [
 									{
-										"currency": "usd",
-										"amount": 0,
-										"exponent": 2
+										currency: "usd",
+										amount: 0,
+										exponent: 2
 									}
 								]
 							},
-							"payment_source_prices": {
+							payment_source_prices: {
 								"775487223059316758": [
 									{
-										"currency": "usd",
-										"amount": 0,
-										"exponent": 2
+										currency: "usd",
+										amount: 0,
+										exponent: 2
 									}
 								],
 								"736345864146255982": [
 									{
-										"currency": "usd",
-										"amount": 0,
-										"exponent": 2
+										currency: "usd",
+										amount: 0,
+										exponent: 2
 									}
 								],
 								"683074999590060249": [
 									{
-										"currency": "usd",
-										"amount": 0,
-										"exponent": 2
+										currency: "usd",
+										amount: 0,
+										exponent: 2
 									}
 								]
 							}
 						},
 						"4": {
-							"country_prices": {
-								"country_code": "US",
-								"prices": [
+							country_prices: {
+								country_code: "US",
+								prices: [
 									{
-										"currency": "usd",
-										"amount": 0,
-										"exponent": 2
+										currency: "usd",
+										amount: 0,
+										exponent: 2
 									}
 								]
 							},
-							"payment_source_prices": {
+							payment_source_prices: {
 								"775487223059316758": [
 									{
-										"currency": "usd",
-										"amount": 0,
-										"exponent": 2
+										currency: "usd",
+										amount: 0,
+										exponent: 2
 									}
 								],
 								"736345864146255982": [
 									{
-										"currency": "usd",
-										"amount": 0,
-										"exponent": 2
+										currency: "usd",
+										amount: 0,
+										exponent: 2
 									}
 								],
 								"683074999590060249": [
 									{
-										"currency": "usd",
-										"amount": 0,
-										"exponent": 2
+										currency: "usd",
+										amount: 0,
+										exponent: 2
 									}
 								]
 							}
 						},
 						"1": {
-							"country_prices": {
-								"country_code": "US",
-								"prices": [
+							country_prices: {
+								country_code: "US",
+								prices: [
 									{
-										"currency": "usd",
-										"amount": 0,
-										"exponent": 2
+										currency: "usd",
+										amount: 0,
+										exponent: 2
 									}
 								]
 							},
-							"payment_source_prices": {
+							payment_source_prices: {
 								"775487223059316758": [
 									{
-										"currency": "usd",
-										"amount": 0,
-										"exponent": 2
+										currency: "usd",
+										amount: 0,
+										exponent: 2
 									}
 								],
 								"736345864146255982": [
 									{
-										"currency": "usd",
-										"amount": 0,
-										"exponent": 2
+										currency: "usd",
+										amount: 0,
+										exponent: 2
 									}
 								],
 								"683074999590060249": [
 									{
-										"currency": "usd",
-										"amount": 0,
-										"exponent": 2
+										currency: "usd",
+										amount: 0,
+										exponent: 2
 									}
 								]
 							}
diff --git a/src/api/routes/users/@me/mfa/codes-verification.ts b/src/api/routes/users/@me/mfa/codes-verification.ts
index 071c71fa..570606e0 100644
--- a/src/api/routes/users/@me/mfa/codes-verification.ts
+++ b/src/api/routes/users/@me/mfa/codes-verification.ts
@@ -1,6 +1,6 @@
-import { Router, Request, Response } from "express";
 import { route } from "@fosscord/api";
-import { BackupCode, generateMfaBackupCodes, User, CodesVerificationSchema } from "@fosscord/util";
+import { BackupCode, CodesVerificationSchema, generateMfaBackupCodes, User } from "@fosscord/util";
+import { Request, Response, Router } from "express";
 
 const router = Router();
 
@@ -14,27 +14,23 @@ router.post("/", route({ body: "CodesVerificationSchema" }), async (req: Request
 
 	var codes: BackupCode[];
 	if (regenerate) {
-		await BackupCode.update(
-			{ user: { id: req.user_id } },
-			{ expired: true }
-		);
+		await BackupCode.update({ user: { id: req.user_id } }, { expired: true });
 
 		codes = generateMfaBackupCodes(req.user_id);
-		await Promise.all(codes.map(x => x.save()));
-	}
-	else {
+		await Promise.all(codes.map((x) => x.save()));
+	} else {
 		codes = await BackupCode.find({
 			where: {
 				user: {
-					id: req.user_id,
+					id: req.user_id
 				},
-				expired: false,
+				expired: false
 			}
 		});
 	}
 
 	return res.json({
-		backup_codes: codes.map(x => ({ ...x, expired: undefined })),
+		backup_codes: codes.map((x) => ({ ...x, expired: undefined }))
 	});
 });
 
diff --git a/src/api/routes/users/@me/mfa/totp/disable.ts b/src/api/routes/users/@me/mfa/totp/disable.ts
index 07fdbb05..a53fa816 100644
--- a/src/api/routes/users/@me/mfa/totp/disable.ts
+++ b/src/api/routes/users/@me/mfa/totp/disable.ts
@@ -1,5 +1,5 @@
 import { route } from "@fosscord/api";
-import { BackupCode, generateToken, TotpDisableSchema, User, HTTPError } from "@fosscord/util";
+import { BackupCode, generateToken, HTTPError, TotpDisableSchema, User } from "@fosscord/util";
 import { Request, Response, Router } from "express";
 import { verifyToken } from "node-2fa";
 
diff --git a/src/api/routes/users/@me/mfa/totp/enable.ts b/src/api/routes/users/@me/mfa/totp/enable.ts
index adf51d6e..0bf1a188 100644
--- a/src/api/routes/users/@me/mfa/totp/enable.ts
+++ b/src/api/routes/users/@me/mfa/totp/enable.ts
@@ -1,5 +1,5 @@
 import { route } from "@fosscord/api";
-import { BackupCode, Config, generateMfaBackupCodes, generateToken, TotpEnableSchema, User, HTTPError } from "@fosscord/util";
+import { BackupCode, Config, generateMfaBackupCodes, generateToken, HTTPError, TotpEnableSchema, User } from "@fosscord/util";
 import { Request, Response, Router } from "express";
 import { verifyToken } from "node-2fa";
 
diff --git a/src/api/util/index.ts b/src/api/util/index.ts
index 31e75325..d06860cd 100644
--- a/src/api/util/index.ts
+++ b/src/api/util/index.ts
@@ -3,8 +3,8 @@ export * from "./handlers/Message";
 export * from "./handlers/route";
 export * from "./handlers/Voice";
 export * from "./utility/Base64";
+export * from "./utility/captcha";
 export * from "./utility/ipAddress";
 export * from "./utility/passwordStrength";
 export * from "./utility/RandomInviteID";
 export * from "./utility/String";
-export * from "./utility/captcha";
\ No newline at end of file
diff --git a/src/api/util/utility/captcha.ts b/src/api/util/utility/captcha.ts
index 739647d2..02983f3f 100644
--- a/src/api/util/utility/captcha.ts
+++ b/src/api/util/utility/captcha.ts
@@ -7,8 +7,8 @@ export interface hcaptchaResponse {
 	hostname: string;
 	credit: boolean;
 	"error-codes": string[];
-	score: number;	// enterprise only
-	score_reason: string[];	// enterprise only
+	score: number; // enterprise only
+	score_reason: string[]; // enterprise only
 }
 
 export interface recaptchaResponse {
@@ -22,8 +22,8 @@ export interface recaptchaResponse {
 
 const verifyEndpoints = {
 	hcaptcha: "https://hcaptcha.com/siteverify",
-	recaptcha: "https://www.google.com/recaptcha/api/siteverify",
-}
+	recaptcha: "https://www.google.com/recaptcha/api/siteverify"
+};
 
 export async function verifyCaptcha(response: string, ip?: string) {
 	const { security } = Config.get();
@@ -34,13 +34,14 @@ export async function verifyCaptcha(response: string, ip?: string) {
 	const res = await fetch(verifyEndpoints[service], {
 		method: "POST",
 		headers: {
-			"Content-Type": "application/x-www-form-urlencoded",
+			"Content-Type": "application/x-www-form-urlencoded"
 		},
-		body: `response=${encodeURIComponent(response)}`
-			+ `&secret=${encodeURIComponent(secret!)}`
-			+ `&sitekey=${encodeURIComponent(sitekey!)}`
-			+ (ip ? `&remoteip=${encodeURIComponent(ip!)}` : ""),
+		body:
+			`response=${encodeURIComponent(response)}` +
+			`&secret=${encodeURIComponent(secret!)}` +
+			`&sitekey=${encodeURIComponent(sitekey!)}` +
+			(ip ? `&remoteip=${encodeURIComponent(ip!)}` : "")
 	});
 
-	return await res.json() as hcaptchaResponse | recaptchaResponse;
-}
\ No newline at end of file
+	return (await res.json()) as hcaptchaResponse | recaptchaResponse;
+}
diff --git a/src/util/entities/Member.ts b/src/util/entities/Member.ts
index 9e9131fe..da0b240e 100644
--- a/src/util/entities/Member.ts
+++ b/src/util/entities/Member.ts
@@ -1,6 +1,13 @@
 import { Column, Entity, Index, JoinColumn, JoinTable, ManyToMany, ManyToOne, PrimaryGeneratedColumn, RelationId } from "typeorm";
-import { Ban, PublicGuildRelations, Message } from ".";
-import { GuildCreateEvent, GuildDeleteEvent, GuildMemberAddEvent, GuildMemberRemoveEvent, GuildMemberUpdateEvent, MessageCreateEvent } from "../interfaces";
+import { Ban, Message, PublicGuildRelations } from ".";
+import {
+	GuildCreateEvent,
+	GuildDeleteEvent,
+	GuildMemberAddEvent,
+	GuildMemberRemoveEvent,
+	GuildMemberUpdateEvent,
+	MessageCreateEvent
+} from "../interfaces";
 import { Config, emitEvent } from "../util";
 import { DiscordApiErrors } from "../util/Constants";
 import { HTTPError } from "../util/imports/HTTPError";
@@ -301,7 +308,7 @@ export class Member extends BaseClassWithoutId {
 					presences: [],
 					stage_instances: [],
 					threads: [],
-					embedded_activities: [],
+					embedded_activities: []
 				},
 				user_id
 			} as GuildCreateEvent)
@@ -320,7 +327,7 @@ export class Member extends BaseClassWithoutId {
 				attachments: [],
 				embeds: [],
 				sticker_items: [],
-				edited_timestamp: undefined,
+				edited_timestamp: undefined
 			});
 			await Promise.all([
 				message.save(),
diff --git a/src/util/migrations/mariadb/1661885910534-guild-member-profiles.ts b/src/util/migrations/mariadb/1661885910534-guild-member-profiles.ts
index 6e1ac3f8..21ee2027 100644
--- a/src/util/migrations/mariadb/1661885910534-guild-member-profiles.ts
+++ b/src/util/migrations/mariadb/1661885910534-guild-member-profiles.ts
@@ -1,40 +1,39 @@
 import { MigrationInterface, QueryRunner } from "typeorm";
 
 export class guildMemberProfiles1661885910534 implements MigrationInterface {
-    name = 'guildMemberProfiles1661885910534'
+	name = "guildMemberProfiles1661885910534";
 
-    public async up(queryRunner: QueryRunner): Promise<void> {
-        await queryRunner.query(`
+	public async up(queryRunner: QueryRunner): Promise<void> {
+		await queryRunner.query(`
             ALTER TABLE \`members\`
             ADD \`avatar\` varchar(255) NULL
         `);
-        await queryRunner.query(`
+		await queryRunner.query(`
             ALTER TABLE \`members\`
             ADD \`banner\` varchar(255) NULL
         `);
-        await queryRunner.query(`
+		await queryRunner.query(`
             ALTER TABLE \`members\`
             ADD \`bio\` varchar(255) NOT NULL
         `);
-        await queryRunner.query(`
+		await queryRunner.query(`
             ALTER TABLE \`members\`
             ADD \`communication_disabled_until\` datetime NULL
         `);
-    }
+	}
 
-    public async down(queryRunner: QueryRunner): Promise<void> {
-        await queryRunner.query(`
+	public async down(queryRunner: QueryRunner): Promise<void> {
+		await queryRunner.query(`
             ALTER TABLE \`members\` DROP COLUMN \`communication_disabled_until\`
         `);
-        await queryRunner.query(`
+		await queryRunner.query(`
             ALTER TABLE \`members\` DROP COLUMN \`bio\`
         `);
-        await queryRunner.query(`
+		await queryRunner.query(`
             ALTER TABLE \`members\` DROP COLUMN \`banner\`
         `);
-        await queryRunner.query(`
+		await queryRunner.query(`
             ALTER TABLE \`members\` DROP COLUMN \`avatar\`
         `);
-    }
-
+	}
 }
diff --git a/src/util/migrations/postgres/1661885830688-guild-member-profiles.ts b/src/util/migrations/postgres/1661885830688-guild-member-profiles.ts
index 81671250..c6b69234 100644
--- a/src/util/migrations/postgres/1661885830688-guild-member-profiles.ts
+++ b/src/util/migrations/postgres/1661885830688-guild-member-profiles.ts
@@ -1,40 +1,39 @@
 import { MigrationInterface, QueryRunner } from "typeorm";
 
 export class guildMemberProfiles1661885830688 implements MigrationInterface {
-    name = 'guildMemberProfiles1661885830688'
+	name = "guildMemberProfiles1661885830688";
 
-    public async up(queryRunner: QueryRunner): Promise<void> {
-        await queryRunner.query(`
+	public async up(queryRunner: QueryRunner): Promise<void> {
+		await queryRunner.query(`
             ALTER TABLE "members"
             ADD "avatar" character varying
         `);
-        await queryRunner.query(`
+		await queryRunner.query(`
             ALTER TABLE "members"
             ADD "banner" character varying
         `);
-        await queryRunner.query(`
+		await queryRunner.query(`
             ALTER TABLE "members"
             ADD "bio" character varying NOT NULL default ''
         `);
-        await queryRunner.query(`
+		await queryRunner.query(`
             ALTER TABLE "members"
             ADD "communication_disabled_until" TIMESTAMP
         `);
-    }
+	}
 
-    public async down(queryRunner: QueryRunner): Promise<void> {
-        await queryRunner.query(`
+	public async down(queryRunner: QueryRunner): Promise<void> {
+		await queryRunner.query(`
             ALTER TABLE "members" DROP COLUMN "communication_disabled_until"
         `);
-        await queryRunner.query(`
+		await queryRunner.query(`
             ALTER TABLE "members" DROP COLUMN "bio"
         `);
-        await queryRunner.query(`
+		await queryRunner.query(`
             ALTER TABLE "members" DROP COLUMN "banner"
         `);
-        await queryRunner.query(`
+		await queryRunner.query(`
             ALTER TABLE "members" DROP COLUMN "avatar"
         `);
-    }
-
+	}
 }
diff --git a/src/util/migrations/sqlite/1661885742207-guild-member-profiles.ts b/src/util/migrations/sqlite/1661885742207-guild-member-profiles.ts
index 24ec9c72..03932c3a 100644
--- a/src/util/migrations/sqlite/1661885742207-guild-member-profiles.ts
+++ b/src/util/migrations/sqlite/1661885742207-guild-member-profiles.ts
@@ -1,13 +1,13 @@
 import { MigrationInterface, QueryRunner } from "typeorm";
 
 export class guildMemberProfiles1661885742207 implements MigrationInterface {
-    name = 'guildMemberProfiles1661885742207'
+	name = "guildMemberProfiles1661885742207";
 
-    public async up(queryRunner: QueryRunner): Promise<void> {
-        await queryRunner.query(`
+	public async up(queryRunner: QueryRunner): Promise<void> {
+		await queryRunner.query(`
             DROP INDEX "IDX_bb2bf9386ac443afbbbf9f12d3"
         `);
-        await queryRunner.query(`
+		await queryRunner.query(`
             CREATE TABLE "temporary_members" (
                 "index" integer PRIMARY KEY AUTOINCREMENT NOT NULL,
                 "id" varchar NOT NULL,
@@ -29,7 +29,7 @@ export class guildMemberProfiles1661885742207 implements MigrationInterface {
                 CONSTRAINT "FK_16aceddd5b89825b8ed6029ad1c" FOREIGN KEY ("guild_id") REFERENCES "guilds" ("id") ON DELETE CASCADE ON UPDATE NO ACTION
             )
         `);
-        await queryRunner.query(`
+		await queryRunner.query(`
             INSERT INTO "temporary_members"(
                     "index",
                     "id",
@@ -58,27 +58,27 @@ export class guildMemberProfiles1661885742207 implements MigrationInterface {
                 "joined_by"
             FROM "members"
         `);
-        await queryRunner.query(`
+		await queryRunner.query(`
             DROP TABLE "members"
         `);
-        await queryRunner.query(`
+		await queryRunner.query(`
             ALTER TABLE "temporary_members"
                 RENAME TO "members"
         `);
-        await queryRunner.query(`
+		await queryRunner.query(`
             CREATE UNIQUE INDEX "IDX_bb2bf9386ac443afbbbf9f12d3" ON "members" ("id", "guild_id")
         `);
-    }
+	}
 
-    public async down(queryRunner: QueryRunner): Promise<void> {
-        await queryRunner.query(`
+	public async down(queryRunner: QueryRunner): Promise<void> {
+		await queryRunner.query(`
             DROP INDEX "IDX_bb2bf9386ac443afbbbf9f12d3"
         `);
-        await queryRunner.query(`
+		await queryRunner.query(`
             ALTER TABLE "members"
                 RENAME TO "temporary_members"
         `);
-        await queryRunner.query(`
+		await queryRunner.query(`
             CREATE TABLE "members" (
                 "index" integer PRIMARY KEY AUTOINCREMENT NOT NULL,
                 "id" varchar NOT NULL,
@@ -96,7 +96,7 @@ export class guildMemberProfiles1661885742207 implements MigrationInterface {
                 CONSTRAINT "FK_16aceddd5b89825b8ed6029ad1c" FOREIGN KEY ("guild_id") REFERENCES "guilds" ("id") ON DELETE CASCADE ON UPDATE NO ACTION
             )
         `);
-        await queryRunner.query(`
+		await queryRunner.query(`
             INSERT INTO "members"(
                     "index",
                     "id",
@@ -125,12 +125,11 @@ export class guildMemberProfiles1661885742207 implements MigrationInterface {
                 "joined_by"
             FROM "temporary_members"
         `);
-        await queryRunner.query(`
+		await queryRunner.query(`
             DROP TABLE "temporary_members"
         `);
-        await queryRunner.query(`
+		await queryRunner.query(`
             CREATE UNIQUE INDEX "IDX_bb2bf9386ac443afbbbf9f12d3" ON "members" ("id", "guild_id")
         `);
-    }
-
+	}
 }
diff --git a/src/util/schemas/BackupCodesChallengeSchema.ts b/src/util/schemas/BackupCodesChallengeSchema.ts
index d6b519b7..8e2f0649 100644
--- a/src/util/schemas/BackupCodesChallengeSchema.ts
+++ b/src/util/schemas/BackupCodesChallengeSchema.ts
@@ -1,3 +1,3 @@
 export interface BackupCodesChallengeSchema {
 	password: string;
-}
\ No newline at end of file
+}
diff --git a/src/util/schemas/CodesVerificationSchema.ts b/src/util/schemas/CodesVerificationSchema.ts
index e8e2e7b4..73c371eb 100644
--- a/src/util/schemas/CodesVerificationSchema.ts
+++ b/src/util/schemas/CodesVerificationSchema.ts
@@ -2,4 +2,4 @@ export interface CodesVerificationSchema {
 	key: string;
 	nonce: string;
 	regenerate?: boolean;
-}
\ No newline at end of file
+}
diff --git a/src/util/schemas/index.ts b/src/util/schemas/index.ts
index 320593ec..4e0acb22 100644
--- a/src/util/schemas/index.ts
+++ b/src/util/schemas/index.ts
@@ -44,4 +44,4 @@ export * from "./UserSettingsSchema";
 export * from "./VanityUrlSchema";
 export * from "./VoiceStateUpdateSchema";
 export * from "./WebhookCreateSchema";
-export * from "./WidgetModifySchema";
\ No newline at end of file
+export * from "./WidgetModifySchema";