//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;
