{"version":3,"file":"utils.mjs","names":[],"sources":["../../../src/mixins/ratelimiters/utils.ts"],"sourcesContent":["import type { UserState } from \"~/message/twitch-types/userstate\";\nimport { UserStateTracker } from \"../userstate-tracker\";\n\ninterface FastSpamResult {\n  fastSpam: boolean;\n  certain: boolean;\n}\n\nexport function canSpamFast(\n  channelName: string,\n  loggedInUsername: string,\n  userStateInput: UserStateTracker | UserState,\n): FastSpamResult {\n  // broadcaster?\n  if (channelName === loggedInUsername) {\n    return { fastSpam: true, certain: true };\n  }\n\n  const userState =\n    userStateInput instanceof UserStateTracker\n      ? userStateInput.getChannelState(channelName)\n      : userStateInput;\n\n  // no data\n  if (userState == null) {\n    return { fastSpam: false, certain: false };\n  }\n\n  // any of these?\n  return {\n    fastSpam:\n      userState.isMod ||\n      userState.badges.hasVIP ||\n      userState.badges.hasModerator ||\n      userState.badges.hasBroadcaster,\n    certain: true,\n  };\n}\n"],"mappings":";;AAQA,SAAgB,YACd,aACA,kBACA,gBACgB;AAEhB,KAAI,gBAAgB,iBAClB,QAAO;EAAE,UAAU;EAAM,SAAS;EAAM;CAG1C,MAAM,YACJ,0BAA0B,mBACtB,eAAe,gBAAgB,YAAY,GAC3C;AAGN,KAAI,aAAa,KACf,QAAO;EAAE,UAAU;EAAO,SAAS;EAAO;AAI5C,QAAO;EACL,UACE,UAAU,SACV,UAAU,OAAO,UACjB,UAAU,OAAO,gBACjB,UAAU,OAAO;EACnB,SAAS;EACV"}