monitor/shared/consts.ts
2025-04-16 22:30:27 +07:00

46 lines
1.6 KiB
TypeScript

//All uppercase and [0,I,O] removed
const actionIdAlphabet = '123456789ABCDEFGHJKLMNPQRSTUVWXYZ';
const regexDiscordSnowflake = /^\d{17,20}$/;
export default {
//Identifier stuff
regexValidHwidToken: /^[0-9A-Fa-f]{1,2}:[0-9A-Fa-f]{64}$/,
validIdentifiers: {
// https://github.com/discordjs/discord.js/pull/9144
// validated in txtracker dataset
discord: /^discord:\d{17,20}$/,
fivem: /^fivem:\d{1,8}$/,
license: /^license:[0-9A-Fa-f]{40}$/,
license2: /^license2:[0-9A-Fa-f]{40}$/,
live: /^live:\d{14,20}$/,
steam: /^steam:1100001[0-9A-Fa-f]{8}$/,
xbl: /^xbl:\d{14,20}$/,
},
validIdentifierParts: {
discord: regexDiscordSnowflake,
fivem: /^\d{1,8}$/,
license: /^[0-9A-Fa-f]{40}$/,
license2: /^[0-9A-Fa-f]{40}$/,
live: /^\d{14,20}$/,
steam: /^1100001[0-9A-Fa-f]{8}$/,
xbl: /^\d{14,20}$/,
},
// Database stuff
adminPasswordMinLength: 6,
adminPasswordMaxLength: 128,
regexValidFivemUsername: /^\w[\w.-]{1,18}\w$/, //also cant have repeated non-alphanum chars
regexActionID: new RegExp(`^[${actionIdAlphabet}]{4}-[${actionIdAlphabet}]{4}$`),
regexWhitelistReqID: new RegExp(`R[${actionIdAlphabet}]{4}`),
//Other stuff
regexDiscordSnowflake,
regexSvLicenseOld: /^\w{32}$/,
regexSvLicenseNew: /^cfxk_\w{1,60}_\w{1,20}$/,
regexValidIP: /^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}$/,
actionIdAlphabet,
nuiWebpipePath: 'https://monitor/WebPipe/',
regexCustomThemeName: /^[a-z0-9]+(-[a-z0-9]+)*$/
} as const;