@lumiastream/ui 0.6.0 → 0.6.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.js CHANGED
@@ -4865,6 +4865,42 @@ var RESERVED_FIELD_KEYS = /* @__PURE__ */ new Set([
4865
4865
  "widgetAuthor",
4866
4866
  "widgetDuration"
4867
4867
  ]);
4868
+ var SE_LISTENER_TO_LUMIA_EVENTS = {
4869
+ message: ["chat"],
4870
+ "tip-latest": ["alert", "alert.trigger"],
4871
+ "merch-latest": ["alert", "alert.trigger"],
4872
+ "subscriber-latest": ["alert", "alert.trigger"],
4873
+ "subscriber-resub-latest": ["alert", "alert.trigger"],
4874
+ "subscriber-gifted-latest": ["alert", "alert.trigger"],
4875
+ "subscriber-bomb-latest": ["alert", "alert.trigger"],
4876
+ "follower-latest": ["alert", "alert.trigger"],
4877
+ "cheer-latest": ["alert", "alert.trigger"],
4878
+ "raid-latest": ["alert", "alert.trigger"],
4879
+ "host-latest": ["alert", "alert.trigger"],
4880
+ "redemption-latest": ["alert", "alert.trigger"],
4881
+ "hypetrain-start": ["alert", "alert.trigger"],
4882
+ "hypetrain-level-progress": ["alert", "alert.trigger"],
4883
+ "hypetrain-end": ["alert", "alert.trigger"],
4884
+ "sponsor-latest": ["alert", "alert.trigger"],
4885
+ "member-latest": ["alert", "alert.trigger"],
4886
+ "superchat-latest": ["alert", "alert.trigger"],
4887
+ "kappagen-launched": ["alert", "alert.trigger"]
4888
+ };
4889
+ function listenersToLumiaEvents(listeners, listener) {
4890
+ const keys = /* @__PURE__ */ new Set();
4891
+ if (Array.isArray(listeners)) {
4892
+ for (const k of listeners) if (typeof k === "string") keys.add(k);
4893
+ } else if (listeners && typeof listeners === "object") {
4894
+ for (const [k, v] of Object.entries(listeners)) if (v) keys.add(k);
4895
+ }
4896
+ if (typeof listener === "string" && listener) keys.add(listener);
4897
+ const out = /* @__PURE__ */ new Set();
4898
+ for (const k of keys) {
4899
+ const mapped = SE_LISTENER_TO_LUMIA_EVENTS[k];
4900
+ if (mapped) for (const e of mapped) out.add(e);
4901
+ }
4902
+ return [...out];
4903
+ }
4868
4904
  function translateConfigs(sourceFields) {
4869
4905
  if (!sourceFields) return [];
4870
4906
  return Object.entries(sourceFields).filter(([key]) => !RESERVED_FIELD_KEYS.has(key)).map(([key, f]) => {
@@ -4913,6 +4949,12 @@ function mapCustom(widget, ctx) {
4913
4949
  const fieldData = parse(v.fieldData) ?? v.fieldData;
4914
4950
  const widgetProvider = widget.provider;
4915
4951
  const provider = widgetProvider === "kick" || widgetProvider === "youtube" || widgetProvider === "twitch" ? widgetProvider : ctx?.provider ?? "twitch";
4952
+ const eventsList = listenersToLumiaEvents(
4953
+ widget.listeners,
4954
+ widget.listener
4955
+ );
4956
+ const data = { ...fieldData ?? {} };
4957
+ if (eventsList.length > 0) data.events = eventsList;
4916
4958
  return buildUnit(
4917
4959
  widget,
4918
4960
  "custom",
@@ -4928,7 +4970,7 @@ function mapCustom(widget, ctx) {
4928
4970
  css: v.css ?? "",
4929
4971
  js: v.js ?? "",
4930
4972
  configs: translateConfigs(fields),
4931
- data: fieldData ?? {},
4973
+ data,
4932
4974
  flavor: "streamelements",
4933
4975
  // Native field on the Custom module content. The compatibility
4934
4976
  // shim in Embed.tsx reads this to pick the right listener-name
package/dist/se-import.js CHANGED
@@ -1785,6 +1785,42 @@ var RESERVED_FIELD_KEYS = /* @__PURE__ */ new Set([
1785
1785
  "widgetAuthor",
1786
1786
  "widgetDuration"
1787
1787
  ]);
1788
+ var SE_LISTENER_TO_LUMIA_EVENTS = {
1789
+ message: ["chat"],
1790
+ "tip-latest": ["alert", "alert.trigger"],
1791
+ "merch-latest": ["alert", "alert.trigger"],
1792
+ "subscriber-latest": ["alert", "alert.trigger"],
1793
+ "subscriber-resub-latest": ["alert", "alert.trigger"],
1794
+ "subscriber-gifted-latest": ["alert", "alert.trigger"],
1795
+ "subscriber-bomb-latest": ["alert", "alert.trigger"],
1796
+ "follower-latest": ["alert", "alert.trigger"],
1797
+ "cheer-latest": ["alert", "alert.trigger"],
1798
+ "raid-latest": ["alert", "alert.trigger"],
1799
+ "host-latest": ["alert", "alert.trigger"],
1800
+ "redemption-latest": ["alert", "alert.trigger"],
1801
+ "hypetrain-start": ["alert", "alert.trigger"],
1802
+ "hypetrain-level-progress": ["alert", "alert.trigger"],
1803
+ "hypetrain-end": ["alert", "alert.trigger"],
1804
+ "sponsor-latest": ["alert", "alert.trigger"],
1805
+ "member-latest": ["alert", "alert.trigger"],
1806
+ "superchat-latest": ["alert", "alert.trigger"],
1807
+ "kappagen-launched": ["alert", "alert.trigger"]
1808
+ };
1809
+ function listenersToLumiaEvents(listeners, listener) {
1810
+ const keys = /* @__PURE__ */ new Set();
1811
+ if (Array.isArray(listeners)) {
1812
+ for (const k of listeners) if (typeof k === "string") keys.add(k);
1813
+ } else if (listeners && typeof listeners === "object") {
1814
+ for (const [k, v] of Object.entries(listeners)) if (v) keys.add(k);
1815
+ }
1816
+ if (typeof listener === "string" && listener) keys.add(listener);
1817
+ const out = /* @__PURE__ */ new Set();
1818
+ for (const k of keys) {
1819
+ const mapped = SE_LISTENER_TO_LUMIA_EVENTS[k];
1820
+ if (mapped) for (const e of mapped) out.add(e);
1821
+ }
1822
+ return [...out];
1823
+ }
1788
1824
  function translateConfigs(sourceFields) {
1789
1825
  if (!sourceFields) return [];
1790
1826
  return Object.entries(sourceFields).filter(([key]) => !RESERVED_FIELD_KEYS.has(key)).map(([key, f]) => {
@@ -1833,6 +1869,12 @@ function mapCustom(widget, ctx) {
1833
1869
  const fieldData = parse(v.fieldData) ?? v.fieldData;
1834
1870
  const widgetProvider = widget.provider;
1835
1871
  const provider = widgetProvider === "kick" || widgetProvider === "youtube" || widgetProvider === "twitch" ? widgetProvider : ctx?.provider ?? "twitch";
1872
+ const eventsList = listenersToLumiaEvents(
1873
+ widget.listeners,
1874
+ widget.listener
1875
+ );
1876
+ const data = { ...fieldData ?? {} };
1877
+ if (eventsList.length > 0) data.events = eventsList;
1836
1878
  return buildUnit(
1837
1879
  widget,
1838
1880
  "custom",
@@ -1848,7 +1890,7 @@ function mapCustom(widget, ctx) {
1848
1890
  css: v.css ?? "",
1849
1891
  js: v.js ?? "",
1850
1892
  configs: translateConfigs(fields),
1851
- data: fieldData ?? {},
1893
+ data,
1852
1894
  flavor: "streamelements",
1853
1895
  // Native field on the Custom module content. The compatibility
1854
1896
  // shim in Embed.tsx reads this to pick the right listener-name
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lumiastream/ui",
3
- "version": "0.6.0",
3
+ "version": "0.6.1",
4
4
  "author": "Lumia Stream",
5
5
  "license": "ISC",
6
6
  "description": "Lumia UI Kit",