mirror of
https://github.com/monkeytypegame/monkeytype.git
synced 2025-02-27 08:13:28 +08:00
110 lines
2.4 KiB
TypeScript
110 lines
2.4 KiB
TypeScript
// Shared types between server/client.
|
|
declare namespace SharedTypes {
|
|
interface ValidModeRule {
|
|
language: string;
|
|
mode: string;
|
|
mode2: string;
|
|
}
|
|
interface RewardBracket {
|
|
minRank: number;
|
|
maxRank: number;
|
|
minReward: number;
|
|
maxReward: number;
|
|
}
|
|
|
|
interface Configuration {
|
|
maintenance: boolean;
|
|
quotes: {
|
|
reporting: {
|
|
enabled: boolean;
|
|
maxReports: number;
|
|
contentReportLimit: number;
|
|
};
|
|
submissionsEnabled: boolean;
|
|
maxFavorites: number;
|
|
};
|
|
results: {
|
|
savingEnabled: boolean;
|
|
objectHashCheckEnabled: boolean;
|
|
filterPresets: {
|
|
enabled: boolean;
|
|
maxPresetsPerUser: number;
|
|
};
|
|
limits: {
|
|
regularUser: number;
|
|
premiumUser: number;
|
|
};
|
|
maxBatchSize: number;
|
|
};
|
|
users: {
|
|
signUp: boolean;
|
|
lastHashesCheck: {
|
|
enabled: boolean;
|
|
maxHashes: number;
|
|
};
|
|
autoBan: {
|
|
enabled: boolean;
|
|
maxCount: number;
|
|
maxHours: number;
|
|
};
|
|
profiles: {
|
|
enabled: boolean;
|
|
};
|
|
discordIntegration: {
|
|
enabled: boolean;
|
|
};
|
|
xp: {
|
|
enabled: boolean;
|
|
funboxBonus: number;
|
|
gainMultiplier: number;
|
|
maxDailyBonus: number;
|
|
minDailyBonus: number;
|
|
streak: {
|
|
enabled: boolean;
|
|
maxStreakDays: number;
|
|
maxStreakMultiplier: number;
|
|
};
|
|
};
|
|
inbox: {
|
|
enabled: boolean;
|
|
maxMail: number;
|
|
};
|
|
premium: {
|
|
enabled: boolean;
|
|
};
|
|
};
|
|
admin: {
|
|
endpointsEnabled: boolean;
|
|
};
|
|
apeKeys: {
|
|
endpointsEnabled: boolean;
|
|
acceptKeys: boolean;
|
|
maxKeysPerUser: number;
|
|
apeKeyBytes: number;
|
|
apeKeySaltRounds: number;
|
|
};
|
|
rateLimiting: {
|
|
badAuthentication: {
|
|
enabled: boolean;
|
|
penalty: number;
|
|
flaggedStatusCodes: number[];
|
|
};
|
|
};
|
|
dailyLeaderboards: {
|
|
enabled: boolean;
|
|
leaderboardExpirationTimeInDays: number;
|
|
maxResults: number;
|
|
validModeRules: ValidModeRule[];
|
|
scheduleRewardsModeRules: ValidModeRule[];
|
|
topResultsToAnnounce: number;
|
|
xpRewardBrackets: RewardBracket[];
|
|
};
|
|
leaderboards: {
|
|
weeklyXp: {
|
|
enabled: boolean;
|
|
expirationTimeInDays: number;
|
|
xpRewardBrackets: RewardBracket[];
|
|
};
|
|
};
|
|
}
|
|
}
|