@tixyel/streamelements 7.2.1 → 7.3.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.ts CHANGED
@@ -2717,7 +2717,7 @@ declare class EventHelper {
2717
2717
  * @param detail - The event detail object received from the StreamElements event.
2718
2718
  * @returns An object containing the provider and the original event data.
2719
2719
  */
2720
- parseProvider(detail: StreamElements.Event.onEventReceived, _provider?: Provider$1): ClientEvents$1;
2720
+ parseProvider(detail: StreamElements.Event.onEventReceived, overrideProvider?: Provider$1): ClientEvents$1;
2721
2721
  }
2722
2722
 
2723
2723
  type Modifier = (value: string, param: string | null | undefined, values: {
@@ -2999,7 +2999,7 @@ declare class UtilsHelper {
2999
2999
  userId: string;
3000
3000
  name: string;
3001
3001
  broadcasterId?: string;
3002
- }, session: StreamElements.Session.Data, checkWithAPI?: boolean): Promise<3 | 1 | 2>;
3002
+ }, session: StreamElements.Session.Data, checkWithAPI?: boolean): Promise<1 | 2 | 3>;
3003
3003
  /**
3004
3004
  * Identifies a user based on the received event and session data, returning their ID, name, role, badges, and top status.
3005
3005
  * @param receivedEvent - The event received from the provider (Twitch or YouTube) containing user information.
@@ -3028,8 +3028,31 @@ declare class UtilsHelper {
3028
3028
  * // }
3029
3029
  * ```
3030
3030
  */
3031
- identifyUser(provider: 'twitch', receivedEvent: StreamElements.Event.Provider.Twitch.Message, session: StreamElements.Session.Data): Promise<IdentifyTwitchResult | undefined>;
3032
- identifyUser(provider: 'youtube', receivedEvent: StreamElements.Event.Provider.YouTube.Message, session: StreamElements.Session.Data): Promise<IdentifyYouTubeResult | undefined>;
3031
+ identifyUser(provider: 'twitch', receivedEvent: StreamElements.Event.Provider.Twitch.Message, session: StreamElements.Session.Data): Promise<IdentifyTwitchResult>;
3032
+ identifyUser(provider: 'youtube', receivedEvent: StreamElements.Event.Provider.YouTube.Message, session: StreamElements.Session.Data): Promise<IdentifyYouTubeResult>;
3033
+ identifyMessage(provider: 'twitch', receivedEvent: StreamElements.Event.Provider.Twitch.Message, options?: {
3034
+ mapEmote?: (emote: {
3035
+ src: string;
3036
+ alt: string;
3037
+ }) => string;
3038
+ allowedRoles: RequireAtLeastOne<Twitch.tags>[];
3039
+ }): {
3040
+ username: string;
3041
+ text: string;
3042
+ reply: {
3043
+ login: string;
3044
+ name: string;
3045
+ userId: string;
3046
+ msgId: string;
3047
+ text: string;
3048
+ } | undefined;
3049
+ msgId: string;
3050
+ userId: string;
3051
+ emote: {
3052
+ only: boolean;
3053
+ amount: number;
3054
+ };
3055
+ };
3033
3056
  }
3034
3057
  type TopType = {
3035
3058
  gifter: boolean;
package/dist/index.es.js CHANGED
@@ -9492,7 +9492,7 @@ var T = class {
9492
9492
  }
9493
9493
  }, D = class {
9494
9494
  parseProvider(e, t) {
9495
- var n = t || e.event?.provider || e.event?.service || e.event?.data?.provider || window?.client?.details?.provider || "twitch";
9495
+ var n = e?.provider || e.event?.provider || e.event?.service || e.event?.data?.provider || t || window?.client?.details?.provider || "twitch";
9496
9496
  return [
9497
9497
  "kvstore:update",
9498
9498
  "bot:counter",
@@ -10448,19 +10448,19 @@ var M = class {
10448
10448
  });
10449
10449
  switch (e) {
10450
10450
  case "twitch": {
10451
- let e = t.event.data, i = await this.findSubscriptionTier({
10451
+ let e = t.event.data, i = !1;
10452
+ return e.tags["badge-info"]?.includes("subscriber") && (i = await this.findSubscriptionTier({
10452
10453
  userId: e.userId,
10453
10454
  name: e.displayName,
10454
10455
  broadcasterId: e.tags["room-id"]
10455
- }, n ?? {}, !1);
10456
- return {
10456
+ }, n ?? {}, !1)), {
10457
10457
  id: e.userId,
10458
10458
  name: e.displayName,
10459
10459
  color: e.displayColor,
10460
10460
  role: e.tags.badges.split(",")[0].split("/")[0],
10461
10461
  tags: e.tags.badges.split(",").map((e) => e.split("/")[0]),
10462
10462
  badges: e.badges,
10463
- tier: e.tags.badges.includes("subscriber") ? i : void 0,
10463
+ tier: i || void 0,
10464
10464
  top: r(e.displayName)
10465
10465
  };
10466
10466
  }
@@ -10476,6 +10476,39 @@ var M = class {
10476
10476
  }
10477
10477
  }
10478
10478
  }
10479
+ identifyMessage(e, t, n) {
10480
+ let r = /<img[^>]*class="emote"[^>]*>/gi;
10481
+ switch (e) {
10482
+ case "twitch": {
10483
+ let e = t.event, i = new E().replaceEmotesWithHTML(t.event.data.text, t.event.data.emotes), a = i.replaceAll(r, "").trim() === "", o = (i.match(r) || []).length;
10484
+ i = i.replace(r, (e) => {
10485
+ let t = e.match(/src="([^"]*)"/), r = e.match(/alt="([^"]*)"/), i = t ? t[1] : "", a = r ? r[1] : "";
10486
+ return n?.mapEmote ? n.mapEmote({
10487
+ src: i,
10488
+ alt: a
10489
+ }) : `<img src="${i}" alt="${a}" class="emote" style="display: inline-block; width: auto; height: 1em; vertical-align: middle;">`;
10490
+ });
10491
+ let s = t.event.data.tags["reply-parent-msg-id"] ? {
10492
+ login: t.event.data.tags["reply-parent-user-login"],
10493
+ name: t.event.data.tags["reply-parent-display-name"],
10494
+ userId: t.event.data.tags["reply-parent-user-id"],
10495
+ msgId: t.event.data.tags["reply-parent-msg-id"],
10496
+ text: t.event.data.tags["reply-parent-msg-body"]
10497
+ } : void 0;
10498
+ return {
10499
+ username: t.event.data.displayName,
10500
+ text: i,
10501
+ reply: s,
10502
+ msgId: e.data.msgId,
10503
+ userId: e.data.userId,
10504
+ emote: {
10505
+ only: a,
10506
+ amount: o
10507
+ }
10508
+ };
10509
+ }
10510
+ }
10511
+ }
10479
10512
  }, ne = class {
10480
10513
  lerp(e, t, n) {
10481
10514
  let r = Math.max(0, Math.min(1, n));