@allior/wmake-emotes 1.0.2 → 1.0.3

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.
@@ -51,12 +51,12 @@ const m = async (t) => (await (await fetch(`https://7tv.io/v3/users/twitch/${t}`
51
51
  var h = /* @__PURE__ */ ((t) => (t.Twitch = "twitch", t.Youtube = "youtube", t))(h || {});
52
52
  export {
53
53
  h as E,
54
- i as a,
55
- p as b,
56
- u as c,
57
- f as d,
54
+ m as a,
55
+ u as b,
56
+ p as c,
57
+ b as d,
58
58
  l as e,
59
- b as f,
60
- m as g
59
+ f,
60
+ i as g
61
61
  };
62
- //# sourceMappingURL=provider-CDtB3U-Z.js.map
62
+ //# sourceMappingURL=provider-DBZ3iJv2.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"provider-CDtB3U-Z.js","sources":["../src/root/7tv/set.ts","../src/root/7tv/utils.ts","../src/root/betterttv/set.ts","../src/root/frankerfacez/set.ts","../src/root/common/enums/provider.ts"],"sourcesContent":["import type { SevenTV } from \"./types\";\r\n\r\nexport const get7TVUserEmoteSet = async (\r\n providerId: string,\r\n): Promise<SevenTV.Emote[]> => {\r\n const response = await fetch(`https://7tv.io/v3/users/twitch/${providerId}`);\r\n const data = await response.json();\r\n return data.emote_set.emotes;\r\n};\r\n\r\nexport const get7TVGlobalEmoteSet = async (): Promise<SevenTV.Emote[]> => {\r\n const emotesUrl = \"https://7tv.io/v3/emote-sets/global\";\r\n const response = await fetch(emotesUrl);\r\n const data = await response.json();\r\n return data.emotes;\r\n};\r\n","import type { SevenTV } from \"./types\";\r\n\r\nexport const extractZeroWidthEmotes = (\r\n emotes: SevenTV.Emote[],\r\n): SevenTV.Emote[] => emotes.filter((e) => e.flags === 1 && e.id);\r\n","import type { EmotesProvider } from \"../common\";\r\nimport type { BetterTTV } from \"./types\";\r\n\r\n/** Один запрос на URL — повторные вызовы получают тот же промис. */\r\nconst byKey = new Map<string, Promise<unknown>>();\r\n\r\nexport const getBetterTTVUserEmoteCacheResponse = async (\r\n provider: EmotesProvider,\r\n providerId: string,\r\n): Promise<BetterTTV.CachedUserResponse> => {\r\n const key = `user:${provider}:${providerId}`;\r\n let p = byKey.get(key);\r\n if (p) return p as Promise<BetterTTV.CachedUserResponse>;\r\n p = (async () => {\r\n const res = await fetch(\r\n `https://api.betterttv.net/3/${provider}/${providerId}`,\r\n );\r\n if (!res.ok) {\r\n return {\r\n id: \"\",\r\n bots: [],\r\n avatar: \"\",\r\n channelEmotes: [],\r\n sharedEmotes: [],\r\n };\r\n }\r\n const data = await res.json();\r\n return {\r\n ...data,\r\n channelEmotes: data.channelEmotes ?? [],\r\n sharedEmotes: data.sharedEmotes ?? [],\r\n };\r\n })();\r\n byKey.set(key, p);\r\n return p as Promise<BetterTTV.CachedUserResponse>;\r\n};\r\n\r\nexport const getBetterTTVGlobalEmoteSet = async (): Promise<\r\n BetterTTV.Emote[]\r\n> => {\r\n const key = \"global\";\r\n let p = byKey.get(key);\r\n if (p) return p as Promise<BetterTTV.Emote[]>;\r\n p = fetch(\"https://api.betterttv.net/3/cached/emotes/global\").then((r) =>\r\n r.json(),\r\n );\r\n byKey.set(key, p);\r\n return p as Promise<BetterTTV.Emote[]>;\r\n};\r\n","import type { FrankerFaceZ } from \"./types\";\r\n\r\n/**\r\n * Получить все эмоуты из наборов\r\n */\r\nconst getEmotesFromSets = (\r\n sets: Record<string, FrankerFaceZ.EmoteSet>,\r\n): FrankerFaceZ.Emote[] => {\r\n const emotes: FrankerFaceZ.Emote[] = [];\r\n for (const set of Object.values(sets)) {\r\n emotes.push(...(set.emoticons || []));\r\n }\r\n return emotes;\r\n};\r\n\r\n/**\r\n * Получить набор эмоутов пользователя FrankerFaceZ\r\n */\r\nexport const getFrankerFaceZUserEmoteSet = async (\r\n username: string,\r\n): Promise<FrankerFaceZ.Emote[]> => {\r\n try {\r\n const response = await fetch(\r\n `https://api.frankerfacez.com/v1/room/twitch/${username}`,\r\n );\r\n const data: FrankerFaceZ.RoomResponse = await response.json();\r\n return getEmotesFromSets(data.sets);\r\n } catch {\r\n return [];\r\n }\r\n};\r\n\r\n/**\r\n * Получить глобальные эмоуты FrankerFaceZ\r\n */\r\nexport const getFrankerFaceZGlobalEmoteSet = async (): Promise<\r\n FrankerFaceZ.Emote[]\r\n> => {\r\n try {\r\n const response = await fetch(\"https://api.frankerfacez.com/v1/set/global\");\r\n const data: FrankerFaceZ.GlobalEmotesResponse = await response.json();\r\n return getEmotesFromSets(data.sets);\r\n } catch {\r\n return [];\r\n }\r\n};\r\n","export enum EmotesProvider {\r\n Twitch = \"twitch\",\r\n Youtube = \"youtube\",\r\n}\r\n"],"names":["get7TVUserEmoteSet","providerId","get7TVGlobalEmoteSet","extractZeroWidthEmotes","emotes","byKey","getBetterTTVUserEmoteCacheResponse","provider","key","p","res","data","getBetterTTVGlobalEmoteSet","r","getEmotesFromSets","sets","set","getFrankerFaceZUserEmoteSet","username","getFrankerFaceZGlobalEmoteSet","EmotesProvider"],"mappings":"AAEO,MAAMA,IAAqB,OAChCC,OAGa,OADI,MAAM,MAAM,kCAAkCA,CAAU,EAAE,GAC/C,KAAA,GAChB,UAAU,QAGXC,IAAuB,aAGrB,OADI,MAAM,MADL,qCACoB,GACV,KAAA,GAChB,QCZDC,IAAyB,CACpCC,MACoBA,EAAO,OAAO,CAAC,MAAM,EAAE,UAAU,KAAK,EAAE,EAAE,GCA1DC,wBAAY,IAAA,GAELC,IAAqC,OAChDC,GACAN,MAC0C;AAC1C,QAAMO,IAAM,QAAQD,CAAQ,IAAIN,CAAU;AAC1C,MAAIQ,IAAIJ,EAAM,IAAIG,CAAG;AACrB,SAAIC,MACJA,KAAK,YAAY;AACf,UAAMC,IAAM,MAAM;AAAA,MAChB,+BAA+BH,CAAQ,IAAIN,CAAU;AAAA,IAAA;AAEvD,QAAI,CAACS,EAAI;AACP,aAAO;AAAA,QACL,IAAI;AAAA,QACJ,MAAM,CAAA;AAAA,QACN,QAAQ;AAAA,QACR,eAAe,CAAA;AAAA,QACf,cAAc,CAAA;AAAA,MAAC;AAGnB,UAAMC,IAAO,MAAMD,EAAI,KAAA;AACvB,WAAO;AAAA,MACL,GAAGC;AAAA,MACH,eAAeA,EAAK,iBAAiB,CAAA;AAAA,MACrC,cAAcA,EAAK,gBAAgB,CAAA;AAAA,IAAC;AAAA,EAExC,GAAA,GACAN,EAAM,IAAIG,GAAKC,CAAC,GACTA;AACT,GAEaG,IAA6B,YAErC;AACH,QAAMJ,IAAM;AACZ,MAAIC,IAAIJ,EAAM,IAAIG,CAAG;AACrB,SAAIC,MACJA,IAAI,MAAM,kDAAkD,EAAE;AAAA,IAAK,CAACI,MAClEA,EAAE,KAAA;AAAA,EAAK,GAETR,EAAM,IAAIG,GAAKC,CAAC,GACTA;AACT,GC3CMK,IAAoB,CACxBC,MACyB;AACzB,QAAMX,IAA+B,CAAA;AACrC,aAAWY,KAAO,OAAO,OAAOD,CAAI;AAClC,IAAAX,EAAO,KAAK,GAAIY,EAAI,aAAa,CAAA,CAAG;AAEtC,SAAOZ;AACT,GAKaa,IAA8B,OACzCC,MACkC;AAClC,MAAI;AAIF,UAAMP,IAAkC,OAHvB,MAAM;AAAA,MACrB,+CAA+CO,CAAQ;AAAA,IAAA,GAEF,KAAA;AACvD,WAAOJ,EAAkBH,EAAK,IAAI;AAAA,EACpC,QAAQ;AACN,WAAO,CAAA;AAAA,EACT;AACF,GAKaQ,IAAgC,YAExC;AACH,MAAI;AAEF,UAAMR,IAA0C,OAD/B,MAAM,MAAM,4CAA4C,GACV,KAAA;AAC/D,WAAOG,EAAkBH,EAAK,IAAI;AAAA,EACpC,QAAQ;AACN,WAAO,CAAA;AAAA,EACT;AACF;AC7CO,IAAKS,sBAAAA,OACVA,EAAA,SAAS,UACTA,EAAA,UAAU,WAFAA,IAAAA,KAAA,CAAA,CAAA;"}
1
+ {"version":3,"file":"provider-DBZ3iJv2.js","sources":["../src/root/7tv/set.ts","../src/root/7tv/utils.ts","../src/root/betterttv/set.ts","../src/root/frankerfacez/set.ts","../src/root/common/enums/provider.ts"],"sourcesContent":["import type { SevenTV } from \"./types\";\r\n\r\nexport const get7TVUserEmoteSet = async (\r\n providerId: string,\r\n): Promise<SevenTV.Emote[]> => {\r\n const response = await fetch(`https://7tv.io/v3/users/twitch/${providerId}`);\r\n const data = await response.json();\r\n return data.emote_set.emotes;\r\n};\r\n\r\nexport const get7TVGlobalEmoteSet = async (): Promise<SevenTV.Emote[]> => {\r\n const emotesUrl = \"https://7tv.io/v3/emote-sets/global\";\r\n const response = await fetch(emotesUrl);\r\n const data = await response.json();\r\n return data.emotes;\r\n};\r\n","import type { SevenTV } from \"./types\";\r\n\r\nexport const extractZeroWidthEmotes = (\r\n emotes: SevenTV.Emote[],\r\n): SevenTV.Emote[] => emotes.filter((e) => e.flags === 1 && e.id);\r\n","import type { EmotesProvider } from \"../common\";\r\nimport type { BetterTTV } from \"./types\";\r\n\r\n/** Один запрос на URL — повторные вызовы получают тот же промис. */\r\nconst byKey = new Map<string, Promise<unknown>>();\r\n\r\nexport const getBetterTTVUserEmoteCacheResponse = async (\r\n provider: EmotesProvider,\r\n providerId: string,\r\n): Promise<BetterTTV.CachedUserResponse> => {\r\n const key = `user:${provider}:${providerId}`;\r\n let p = byKey.get(key);\r\n if (p) return p as Promise<BetterTTV.CachedUserResponse>;\r\n p = (async () => {\r\n const res = await fetch(\r\n `https://api.betterttv.net/3/${provider}/${providerId}`,\r\n );\r\n if (!res.ok) {\r\n return {\r\n id: \"\",\r\n bots: [],\r\n avatar: \"\",\r\n channelEmotes: [],\r\n sharedEmotes: [],\r\n };\r\n }\r\n const data = await res.json();\r\n return {\r\n ...data,\r\n channelEmotes: data.channelEmotes ?? [],\r\n sharedEmotes: data.sharedEmotes ?? [],\r\n };\r\n })();\r\n byKey.set(key, p);\r\n return p as Promise<BetterTTV.CachedUserResponse>;\r\n};\r\n\r\nexport const getBetterTTVGlobalEmoteSet = async (): Promise<\r\n BetterTTV.Emote[]\r\n> => {\r\n const key = \"global\";\r\n let p = byKey.get(key);\r\n if (p) return p as Promise<BetterTTV.Emote[]>;\r\n p = fetch(\"https://api.betterttv.net/3/cached/emotes/global\").then((r) =>\r\n r.json(),\r\n );\r\n byKey.set(key, p);\r\n return p as Promise<BetterTTV.Emote[]>;\r\n};\r\n","import type { FrankerFaceZ } from \"./types\";\r\n\r\n/**\r\n * Получить все эмоуты из наборов\r\n */\r\nconst getEmotesFromSets = (\r\n sets: Record<string, FrankerFaceZ.EmoteSet>,\r\n): FrankerFaceZ.Emote[] => {\r\n const emotes: FrankerFaceZ.Emote[] = [];\r\n for (const set of Object.values(sets)) {\r\n emotes.push(...(set.emoticons || []));\r\n }\r\n return emotes;\r\n};\r\n\r\n/**\r\n * Получить набор эмоутов пользователя FrankerFaceZ\r\n */\r\nexport const getFrankerFaceZUserEmoteSet = async (\r\n username: string,\r\n): Promise<FrankerFaceZ.Emote[]> => {\r\n try {\r\n const response = await fetch(\r\n `https://api.frankerfacez.com/v1/room/twitch/${username}`,\r\n );\r\n const data: FrankerFaceZ.RoomResponse = await response.json();\r\n return getEmotesFromSets(data.sets);\r\n } catch {\r\n return [];\r\n }\r\n};\r\n\r\n/**\r\n * Получить глобальные эмоуты FrankerFaceZ\r\n */\r\nexport const getFrankerFaceZGlobalEmoteSet = async (): Promise<\r\n FrankerFaceZ.Emote[]\r\n> => {\r\n try {\r\n const response = await fetch(\"https://api.frankerfacez.com/v1/set/global\");\r\n const data: FrankerFaceZ.GlobalEmotesResponse = await response.json();\r\n return getEmotesFromSets(data.sets);\r\n } catch {\r\n return [];\r\n }\r\n};\r\n","export enum EmotesProvider {\r\n Twitch = \"twitch\",\r\n Youtube = \"youtube\",\r\n}\r\n"],"names":["get7TVUserEmoteSet","providerId","get7TVGlobalEmoteSet","extractZeroWidthEmotes","emotes","byKey","getBetterTTVUserEmoteCacheResponse","provider","key","p","res","data","getBetterTTVGlobalEmoteSet","r","getEmotesFromSets","sets","set","getFrankerFaceZUserEmoteSet","username","getFrankerFaceZGlobalEmoteSet","EmotesProvider"],"mappings":"AAEO,MAAMA,IAAqB,OAChCC,OAGa,OADI,MAAM,MAAM,kCAAkCA,CAAU,EAAE,GAC/C,KAAA,GAChB,UAAU,QAGXC,IAAuB,aAGrB,OADI,MAAM,MADL,qCACoB,GACV,KAAA,GAChB,QCZDC,IAAyB,CACpCC,MACoBA,EAAO,OAAO,CAAC,MAAM,EAAE,UAAU,KAAK,EAAE,EAAE,GCA1DC,wBAAY,IAAA,GAELC,IAAqC,OAChDC,GACAN,MAC0C;AAC1C,QAAMO,IAAM,QAAQD,CAAQ,IAAIN,CAAU;AAC1C,MAAIQ,IAAIJ,EAAM,IAAIG,CAAG;AACrB,SAAIC,MACJA,KAAK,YAAY;AACf,UAAMC,IAAM,MAAM;AAAA,MAChB,+BAA+BH,CAAQ,IAAIN,CAAU;AAAA,IAAA;AAEvD,QAAI,CAACS,EAAI;AACP,aAAO;AAAA,QACL,IAAI;AAAA,QACJ,MAAM,CAAA;AAAA,QACN,QAAQ;AAAA,QACR,eAAe,CAAA;AAAA,QACf,cAAc,CAAA;AAAA,MAAC;AAGnB,UAAMC,IAAO,MAAMD,EAAI,KAAA;AACvB,WAAO;AAAA,MACL,GAAGC;AAAA,MACH,eAAeA,EAAK,iBAAiB,CAAA;AAAA,MACrC,cAAcA,EAAK,gBAAgB,CAAA;AAAA,IAAC;AAAA,EAExC,GAAA,GACAN,EAAM,IAAIG,GAAKC,CAAC,GACTA;AACT,GAEaG,IAA6B,YAErC;AACH,QAAMJ,IAAM;AACZ,MAAIC,IAAIJ,EAAM,IAAIG,CAAG;AACrB,SAAIC,MACJA,IAAI,MAAM,kDAAkD,EAAE;AAAA,IAAK,CAACI,MAClEA,EAAE,KAAA;AAAA,EAAK,GAETR,EAAM,IAAIG,GAAKC,CAAC,GACTA;AACT,GC3CMK,IAAoB,CACxBC,MACyB;AACzB,QAAMX,IAA+B,CAAA;AACrC,aAAWY,KAAO,OAAO,OAAOD,CAAI;AAClC,IAAAX,EAAO,KAAK,GAAIY,EAAI,aAAa,CAAA,CAAG;AAEtC,SAAOZ;AACT,GAKaa,IAA8B,OACzCC,MACkC;AAClC,MAAI;AAIF,UAAMP,IAAkC,OAHvB,MAAM;AAAA,MACrB,+CAA+CO,CAAQ;AAAA,IAAA,GAEF,KAAA;AACvD,WAAOJ,EAAkBH,EAAK,IAAI;AAAA,EACpC,QAAQ;AACN,WAAO,CAAA;AAAA,EACT;AACF,GAKaQ,IAAgC,YAExC;AACH,MAAI;AAEF,UAAMR,IAA0C,OAD/B,MAAM,MAAM,4CAA4C,GACV,KAAA;AAC/D,WAAOG,EAAkBH,EAAK,IAAI;AAAA,EACpC,QAAQ;AACN,WAAO,CAAA;AAAA,EACT;AACF;AC7CO,IAAKS,sBAAAA,OACVA,EAAA,SAAS,UACTA,EAAA,UAAU,WAFAA,IAAAA,KAAA,CAAA,CAAA;"}
@@ -1,4 +1,4 @@
1
- import { E as i, c as V, b, a as k, g as v, e as Z, f as R, d as W } from "../provider-CDtB3U-Z.js";
1
+ import { E as i, b as V, c as b, g as k, a as v, e as Z, d as R, f as W } from "../provider-DBZ3iJv2.js";
2
2
  import { useState as o, useRef as y, useCallback as z, useEffect as B } from "react";
3
3
  const U = [i.Twitch], x = ({
4
4
  username: r,
@@ -1,4 +1,4 @@
1
- import { E as o, e as s, a as c, g as n, c as m, b as E, f as p, d as f } from "../provider-CDtB3U-Z.js";
1
+ import { E as o, e as s, g as c, a as n, b as m, c as E, d as p, f } from "../provider-DBZ3iJv2.js";
2
2
  function t(e) {
3
3
  return e.includes("cdn.frankerfacez.com") ? e.replace("https:https:", "https:") : e;
4
4
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@allior/wmake-emotes",
3
- "version": "1.0.2",
3
+ "version": "1.0.3",
4
4
  "description": "Emote providers: 7TV, BetterTTV, FrankerFaceZ.",
5
5
  "type": "module",
6
6
  "types": "./dist/root/index.d.ts",
@@ -21,6 +21,13 @@
21
21
  "src",
22
22
  "README.md"
23
23
  ],
24
+ "scripts": {
25
+ "pub": "npm publish --access public",
26
+ "build": "rimraf dist && vite build && cross-env VITE_IIFE_ENTRY=root vite build --config vite.iife.config.ts && cross-env VITE_IIFE_ENTRY=react vite build --config vite.iife.config.ts && tsc -p tsconfig.types.json",
27
+ "build:iife": "cross-env VITE_IIFE_ENTRY=root vite build --config vite.iife.config.ts && cross-env VITE_IIFE_ENTRY=react vite build --config vite.iife.config.ts",
28
+ "clean": "rimraf dist",
29
+ "prepublishOnly": "pnpm run build"
30
+ },
24
31
  "keywords": [],
25
32
  "author": "An1by",
26
33
  "license": "ISC",
@@ -31,10 +38,5 @@
31
38
  "dependencies": {
32
39
  "react": "^19.2.0",
33
40
  "react-dom": "^19.2.0"
34
- },
35
- "scripts": {
36
- "build": "rimraf dist && vite build && cross-env VITE_IIFE_ENTRY=root vite build --config vite.iife.config.ts && cross-env VITE_IIFE_ENTRY=react vite build --config vite.iife.config.ts && tsc -p tsconfig.types.json",
37
- "build:iife": "cross-env VITE_IIFE_ENTRY=root vite build --config vite.iife.config.ts && cross-env VITE_IIFE_ENTRY=react vite build --config vite.iife.config.ts",
38
- "clean": "rimraf dist"
39
41
  }
40
- }
42
+ }