{"version":3,"file":"whisper.mjs","names":[],"sources":["../../../src/message/twitch-types/whisper.ts"],"sourcesContent":["import type { TwitchBadgesList } from \"../badges\";\nimport type { Color } from \"../color\";\nimport type { TwitchEmoteList } from \"../emotes\";\nimport type { MessageSender } from \"./privmsg\";\nimport {\n  IRCMessage,\n  requireNickname,\n  requireParameter,\n} from \"../irc/irc-message\";\nimport { parseBadges } from \"../parser/badges\";\nimport { tagParserFor } from \"../parser/tag-values\";\n\n// @badges=;color=#1E90FF;display-name=BotFactory;emotes=;message-id=6134;thread-id=40286300_403015524;turbo=0;\n// user-id=403015524;user-type= :botfactory!botfactory@botfactory.tmi.twitch.tv WHISPER randers :Pong\nexport class WhisperMessage extends IRCMessage {\n  private readonly _content: string;\n  private readonly _senderLogin: string;\n  private readonly _senderId: string;\n  private readonly _recipientUsername: string;\n  private readonly _badges: TwitchBadgesList;\n  private readonly _badgesRaw: string;\n  private readonly _color: Color | undefined;\n  private readonly _colorRaw: string;\n  private readonly _displayName: string;\n  private readonly _emotes: TwitchEmoteList;\n  private readonly _emotesRaw: string;\n  private readonly _id: string;\n  private readonly _threadId: string;\n\n  public get content(): string {\n    return this._content;\n  }\n\n  public get id(): string {\n    return this._id;\n  }\n\n  public get threadId(): string {\n    return this._threadId;\n  }\n\n  public get emotes(): TwitchEmoteList {\n    return this._emotes;\n  }\n\n  public get emotesRaw(): string {\n    return this._emotesRaw;\n  }\n\n  public get recipientUsername(): string {\n    return this._recipientUsername;\n  }\n\n  public get sender(): MessageSender {\n    const emptyBadgeInfo = parseBadges(\"\");\n    return {\n      login: this._senderLogin,\n      username: this._senderLogin,\n      id: this._senderId,\n      displayName: this._displayName,\n      color: this._color,\n      colorRaw: this._colorRaw,\n      badgeInfo: emptyBadgeInfo,\n      badgeInfoRaw: \"\",\n      badges: this._badges,\n      badgesRaw: this._badgesRaw,\n      isMod: false,\n      isModRaw: \"0\",\n    };\n  }\n\n  // ---- Deprecated aliases ----\n\n  /** @deprecated Use {@link content} instead. */\n  public get messageText(): string {\n    return this._content;\n  }\n\n  /** @deprecated Use {@link sender.login} instead. */\n  public get senderUsername(): string {\n    return this._senderLogin;\n  }\n\n  /** @deprecated Use {@link sender.id} instead. */\n  public get senderUserID(): string {\n    return this._senderId;\n  }\n\n  /** @deprecated Use {@link sender.id} instead. */\n  public get senderUserId(): string {\n    return this._senderId;\n  }\n\n  /** @deprecated Use {@link sender.badges} instead. */\n  public get badges(): TwitchBadgesList {\n    return this._badges;\n  }\n\n  /** @deprecated Use {@link sender.badgesRaw} instead. */\n  public get badgesRaw(): string {\n    return this._badgesRaw;\n  }\n\n  /** @deprecated Use {@link sender.color} instead. */\n  public get color(): Color | undefined {\n    return this._color;\n  }\n\n  /** @deprecated Use {@link sender.colorRaw} instead. */\n  public get colorRaw(): string {\n    return this._colorRaw;\n  }\n\n  /** @deprecated Use {@link sender.displayName} instead. */\n  public get displayName(): string {\n    return this._displayName;\n  }\n\n  /** @deprecated Use {@link id} instead. */\n  public get messageID(): string {\n    return this._id;\n  }\n\n  /** @deprecated Use {@link id} instead. */\n  public get messageId(): string {\n    return this._id;\n  }\n\n  /** @deprecated Use {@link threadId} instead. */\n  public get threadID(): string {\n    return this._threadId;\n  }\n\n  public constructor(ircMessage: IRCMessage) {\n    super(ircMessage);\n\n    this._content = requireParameter(this, 1);\n\n    this._senderLogin = requireNickname(this);\n\n    const tagParser = tagParserFor(this.ircTags);\n    this._senderId = tagParser.requireString(\"user-id\");\n\n    this._recipientUsername = this.ircParameters[0]!;\n\n    this._badges = tagParser.requireBadges(\"badges\");\n    this._badgesRaw = tagParser.requireString(\"badges\");\n    this._color = tagParser.getColor(\"color\");\n    this._colorRaw = tagParser.requireString(\"color\");\n\n    // trim: Twitch workaround for unsanitized data, see https://github.com/robotty/dank-twitch-irc/issues/33\n    this._displayName = tagParser.requireString(\"display-name\").trim();\n    this._emotes = tagParser.requireEmotes(\"emotes\", this._content);\n    this._emotesRaw = tagParser.requireString(\"emotes\");\n\n    this._id = tagParser.requireString(\"message-id\");\n    this._threadId = tagParser.requireString(\"thread-id\");\n  }\n}\n"],"mappings":";;;;AAcA,IAAa,iBAAb,cAAoC,WAAW;CAC7C;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CAEA,IAAW,UAAkB;AAC3B,SAAO,KAAK;;CAGd,IAAW,KAAa;AACtB,SAAO,KAAK;;CAGd,IAAW,WAAmB;AAC5B,SAAO,KAAK;;CAGd,IAAW,SAA0B;AACnC,SAAO,KAAK;;CAGd,IAAW,YAAoB;AAC7B,SAAO,KAAK;;CAGd,IAAW,oBAA4B;AACrC,SAAO,KAAK;;CAGd,IAAW,SAAwB;EACjC,MAAM,iBAAiB,YAAY,GAAG;AACtC,SAAO;GACL,OAAO,KAAK;GACZ,UAAU,KAAK;GACf,IAAI,KAAK;GACT,aAAa,KAAK;GAClB,OAAO,KAAK;GACZ,UAAU,KAAK;GACf,WAAW;GACX,cAAc;GACd,QAAQ,KAAK;GACb,WAAW,KAAK;GAChB,OAAO;GACP,UAAU;GACX;;;CAMH,IAAW,cAAsB;AAC/B,SAAO,KAAK;;;CAId,IAAW,iBAAyB;AAClC,SAAO,KAAK;;;CAId,IAAW,eAAuB;AAChC,SAAO,KAAK;;;CAId,IAAW,eAAuB;AAChC,SAAO,KAAK;;;CAId,IAAW,SAA2B;AACpC,SAAO,KAAK;;;CAId,IAAW,YAAoB;AAC7B,SAAO,KAAK;;;CAId,IAAW,QAA2B;AACpC,SAAO,KAAK;;;CAId,IAAW,WAAmB;AAC5B,SAAO,KAAK;;;CAId,IAAW,cAAsB;AAC/B,SAAO,KAAK;;;CAId,IAAW,YAAoB;AAC7B,SAAO,KAAK;;;CAId,IAAW,YAAoB;AAC7B,SAAO,KAAK;;;CAId,IAAW,WAAmB;AAC5B,SAAO,KAAK;;CAGd,YAAmB,YAAwB;AACzC,QAAM,WAAW;AAEjB,OAAK,WAAW,iBAAiB,MAAM,EAAE;AAEzC,OAAK,eAAe,gBAAgB,KAAK;EAEzC,MAAM,YAAY,aAAa,KAAK,QAAQ;AAC5C,OAAK,YAAY,UAAU,cAAc,UAAU;AAEnD,OAAK,qBAAqB,KAAK,cAAc;AAE7C,OAAK,UAAU,UAAU,cAAc,SAAS;AAChD,OAAK,aAAa,UAAU,cAAc,SAAS;AACnD,OAAK,SAAS,UAAU,SAAS,QAAQ;AACzC,OAAK,YAAY,UAAU,cAAc,QAAQ;AAGjD,OAAK,eAAe,UAAU,cAAc,eAAe,CAAC,MAAM;AAClE,OAAK,UAAU,UAAU,cAAc,UAAU,KAAK,SAAS;AAC/D,OAAK,aAAa,UAAU,cAAc,SAAS;AAEnD,OAAK,MAAM,UAAU,cAAc,aAAa;AAChD,OAAK,YAAY,UAAU,cAAc,YAAY"}