@lumiastream/ui 0.3.2 → 0.3.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.
- package/dist/index.js +215 -66
- package/dist/se-import.js +214 -65
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -4196,9 +4196,11 @@ function mapGoal(widget, ctx) {
|
|
|
4196
4196
|
source: charity ? charity.source : sourceFromListener(listener),
|
|
4197
4197
|
image: "",
|
|
4198
4198
|
audio: { decrement: "", increment: "", goal: "", goalFailed: "", volume: 1 },
|
|
4199
|
-
// `null` (rather than `''`) is the cleaner contract —
|
|
4200
|
-
//
|
|
4201
|
-
// but `null` survives JSON round-trips without
|
|
4199
|
+
// `null` (rather than `''`) is the cleaner contract — `formatEndsIn`
|
|
4200
|
+
// in Goal/index.tsx treats both as "no deadline" so both work at
|
|
4201
|
+
// render time, but `null` survives JSON round-trips without
|
|
4202
|
+
// ambiguity ('' vs unset). The Goal module no longer hides itself
|
|
4203
|
+
// when the date passes; the "Ends in…" sublabel just disappears.
|
|
4202
4204
|
endDate: v.endDate ?? null,
|
|
4203
4205
|
goalAnimation: "",
|
|
4204
4206
|
goalAnimationLoop: true,
|
|
@@ -5847,7 +5849,13 @@ var READOUT_TYPES = {
|
|
|
5847
5849
|
// twitch_session_chat_count, so we render it as a text layer with the variable inline.
|
|
5848
5850
|
"se-widget-botcounter": "twitch_session_chat_count"
|
|
5849
5851
|
};
|
|
5850
|
-
var SEASONAL_IMAGE_TYPES = /* @__PURE__ */ new Set([
|
|
5852
|
+
var SEASONAL_IMAGE_TYPES = /* @__PURE__ */ new Set([
|
|
5853
|
+
"se-widget-halloween",
|
|
5854
|
+
"se-widget-xmas",
|
|
5855
|
+
"se-widget-valentine",
|
|
5856
|
+
"se-widget-easter",
|
|
5857
|
+
"se-widget-world-cup"
|
|
5858
|
+
]);
|
|
5851
5859
|
var GOAL_TYPES = /* @__PURE__ */ new Set([
|
|
5852
5860
|
"se-widget-follower-goal",
|
|
5853
5861
|
"se-widget-subscriber-goal",
|
|
@@ -5858,59 +5866,212 @@ var GOAL_TYPES = /* @__PURE__ */ new Set([
|
|
|
5858
5866
|
"se-widget-tiltify-goal",
|
|
5859
5867
|
"se-widget-merch-goal"
|
|
5860
5868
|
]);
|
|
5861
|
-
var EVENTLIST_TYPES = /* @__PURE__ */ new Set([
|
|
5869
|
+
var EVENTLIST_TYPES = /* @__PURE__ */ new Set([
|
|
5870
|
+
"se-widget-event-list",
|
|
5871
|
+
"se-widget-follower-recent",
|
|
5872
|
+
"se-widget-subscriber-recent",
|
|
5873
|
+
"se-widget-cheer-recent",
|
|
5874
|
+
"se-widget-tip-recent"
|
|
5875
|
+
]);
|
|
5862
5876
|
function dispatch(widget, ctx) {
|
|
5863
5877
|
const t = widget.type;
|
|
5864
|
-
console.log("[SE-IMPORT] dispatch widget", {
|
|
5865
|
-
seType: t,
|
|
5866
|
-
name: widget.name,
|
|
5867
|
-
listener: widget.listener,
|
|
5868
|
-
listeners: widget.listeners,
|
|
5869
|
-
variableKeys: widget.variables ? Object.keys(widget.variables) : [],
|
|
5870
|
-
hasCss: !!widget.css
|
|
5871
|
-
});
|
|
5872
5878
|
if (isWidgetFlaggedOff(t)) {
|
|
5873
|
-
return {
|
|
5879
|
+
return {
|
|
5880
|
+
unit: mapUnsupportedAsText(widget, ctx),
|
|
5881
|
+
status: "placeholder",
|
|
5882
|
+
lumiaType: "text",
|
|
5883
|
+
flaggedOff: true
|
|
5884
|
+
};
|
|
5874
5885
|
}
|
|
5875
|
-
if (t === "text")
|
|
5876
|
-
|
|
5877
|
-
if (t === "
|
|
5886
|
+
if (t === "text")
|
|
5887
|
+
return { unit: mapText(widget, ctx), status: "direct", lumiaType: "text" };
|
|
5888
|
+
if (t === "image")
|
|
5889
|
+
return {
|
|
5890
|
+
unit: mapImage(widget, ctx),
|
|
5891
|
+
status: "direct",
|
|
5892
|
+
lumiaType: "image"
|
|
5893
|
+
};
|
|
5894
|
+
if (t === "video")
|
|
5895
|
+
return {
|
|
5896
|
+
unit: mapVideo(widget, ctx),
|
|
5897
|
+
status: "direct",
|
|
5898
|
+
lumiaType: "video"
|
|
5899
|
+
};
|
|
5878
5900
|
if (t in READOUT_TYPES) {
|
|
5879
|
-
return {
|
|
5901
|
+
return {
|
|
5902
|
+
unit: mapReadout(widget, READOUT_TYPES[t], ctx),
|
|
5903
|
+
status: "direct",
|
|
5904
|
+
lumiaType: "text"
|
|
5905
|
+
};
|
|
5880
5906
|
}
|
|
5881
|
-
if (GOAL_TYPES.has(t))
|
|
5907
|
+
if (GOAL_TYPES.has(t))
|
|
5908
|
+
return { unit: mapGoal(widget, ctx), status: "direct", lumiaType: "goal" };
|
|
5882
5909
|
if ((t === "se-widget-alert-box" || t === "se-widget-alert-box-merch") && hasSECustomCode(widget)) {
|
|
5883
|
-
return {
|
|
5884
|
-
|
|
5885
|
-
|
|
5886
|
-
|
|
5887
|
-
|
|
5888
|
-
|
|
5889
|
-
|
|
5890
|
-
if (
|
|
5891
|
-
|
|
5892
|
-
|
|
5893
|
-
|
|
5894
|
-
|
|
5895
|
-
|
|
5896
|
-
if (t === "se-widget-
|
|
5897
|
-
|
|
5898
|
-
|
|
5899
|
-
|
|
5900
|
-
|
|
5901
|
-
|
|
5902
|
-
if (t === "se-widget-
|
|
5903
|
-
|
|
5904
|
-
|
|
5905
|
-
|
|
5910
|
+
return {
|
|
5911
|
+
unit: mapUnsupportedAsText(widget, ctx),
|
|
5912
|
+
status: "placeholder",
|
|
5913
|
+
lumiaType: "text",
|
|
5914
|
+
flaggedOff: true
|
|
5915
|
+
};
|
|
5916
|
+
}
|
|
5917
|
+
if (t === "se-widget-alert-box")
|
|
5918
|
+
return {
|
|
5919
|
+
unit: mapAlertBox(widget, {}, ctx),
|
|
5920
|
+
status: "direct",
|
|
5921
|
+
lumiaType: "alert"
|
|
5922
|
+
};
|
|
5923
|
+
if (t === "se-widget-alert-box-merch")
|
|
5924
|
+
return {
|
|
5925
|
+
unit: mapAlertBox(widget, { onlyEvents: ["merch"] }, ctx),
|
|
5926
|
+
status: "direct",
|
|
5927
|
+
lumiaType: "alert"
|
|
5928
|
+
};
|
|
5929
|
+
if (t === "se-widget-donor-drive-alert")
|
|
5930
|
+
return {
|
|
5931
|
+
unit: mapSingleAlert(widget, "donordrive-donation", ctx),
|
|
5932
|
+
status: "direct",
|
|
5933
|
+
lumiaType: "alert"
|
|
5934
|
+
};
|
|
5935
|
+
if (t === "se-widget-extralife-alert")
|
|
5936
|
+
return {
|
|
5937
|
+
unit: mapSingleAlert(widget, "extralife-donation", ctx),
|
|
5938
|
+
status: "direct",
|
|
5939
|
+
lumiaType: "alert"
|
|
5940
|
+
};
|
|
5941
|
+
if (t === "se-widget-tiltify-alert")
|
|
5942
|
+
return {
|
|
5943
|
+
unit: mapSingleAlert(widget, "tiltify-campaignDonation", ctx),
|
|
5944
|
+
status: "direct",
|
|
5945
|
+
lumiaType: "alert"
|
|
5946
|
+
};
|
|
5947
|
+
if (EVENTLIST_TYPES.has(t))
|
|
5948
|
+
return {
|
|
5949
|
+
unit: mapEventList(widget, ctx),
|
|
5950
|
+
status: "direct",
|
|
5951
|
+
lumiaType: "eventlist"
|
|
5952
|
+
};
|
|
5953
|
+
if (t === "se-widget-top-tippers-list")
|
|
5954
|
+
return {
|
|
5955
|
+
unit: mapViewerProfilesLeaderboard(widget, "tips", ctx),
|
|
5956
|
+
status: "direct",
|
|
5957
|
+
lumiaType: "viewerprofiles"
|
|
5958
|
+
};
|
|
5959
|
+
if (t === "se-widget-top-cheerers-list")
|
|
5960
|
+
return {
|
|
5961
|
+
unit: mapViewerProfilesLeaderboard(widget, "cheers", ctx),
|
|
5962
|
+
status: "direct",
|
|
5963
|
+
lumiaType: "viewerprofiles"
|
|
5964
|
+
};
|
|
5965
|
+
if (t === "se-widget-top-gifters-list")
|
|
5966
|
+
return {
|
|
5967
|
+
unit: mapViewerProfilesLeaderboard(widget, "gifts", ctx),
|
|
5968
|
+
status: "direct",
|
|
5969
|
+
lumiaType: "viewerprofiles"
|
|
5970
|
+
};
|
|
5971
|
+
if (t === "se-widget-credit-roll")
|
|
5972
|
+
return {
|
|
5973
|
+
unit: mapCredits(widget, ctx),
|
|
5974
|
+
status: "partial",
|
|
5975
|
+
lumiaType: "credits"
|
|
5976
|
+
};
|
|
5977
|
+
if (t === "se-widget-twitch-chat")
|
|
5978
|
+
return {
|
|
5979
|
+
unit: mapChatbox(widget, ctx),
|
|
5980
|
+
status: "partial",
|
|
5981
|
+
lumiaType: "chatbox"
|
|
5982
|
+
};
|
|
5983
|
+
if (t === "se-widget-image-rotator" || t === "se-widget-merch-products-rotator")
|
|
5984
|
+
return {
|
|
5985
|
+
unit: mapSlideshow(widget, ctx),
|
|
5986
|
+
status: t === "se-widget-merch-products-rotator" ? "partial" : "direct",
|
|
5987
|
+
lumiaType: "slideshow"
|
|
5988
|
+
};
|
|
5989
|
+
if (t === "se-widget-countdown")
|
|
5990
|
+
return {
|
|
5991
|
+
unit: mapTimer(widget, ctx),
|
|
5992
|
+
status: "partial",
|
|
5993
|
+
lumiaType: "timer"
|
|
5994
|
+
};
|
|
5995
|
+
if (t === "se-widget-current-song")
|
|
5996
|
+
return {
|
|
5997
|
+
unit: mapNowPlaying(widget, ctx),
|
|
5998
|
+
status: "partial",
|
|
5999
|
+
lumiaType: "nowplaying"
|
|
6000
|
+
};
|
|
6001
|
+
if (t === "se-widget-kappagen")
|
|
6002
|
+
return {
|
|
6003
|
+
unit: mapKappagen(widget, ctx),
|
|
6004
|
+
status: "partial",
|
|
6005
|
+
lumiaType: "emotealert"
|
|
6006
|
+
};
|
|
6007
|
+
if (t === "se-widget-emote-wall")
|
|
6008
|
+
return {
|
|
6009
|
+
unit: mapEmoteWall(widget, ctx),
|
|
6010
|
+
status: "partial",
|
|
6011
|
+
lumiaType: "emotebox"
|
|
6012
|
+
};
|
|
6013
|
+
if (t === "se-widget-giveaway")
|
|
6014
|
+
return {
|
|
6015
|
+
unit: mapGiveaway(widget, ctx),
|
|
6016
|
+
status: "direct",
|
|
6017
|
+
lumiaType: "raffle"
|
|
6018
|
+
};
|
|
6019
|
+
if (t === "se-widget-media-share")
|
|
6020
|
+
return {
|
|
6021
|
+
unit: mapMediaShare(widget, ctx),
|
|
6022
|
+
status: "partial",
|
|
6023
|
+
lumiaType: "songrequest"
|
|
6024
|
+
};
|
|
6025
|
+
if (t === "se-widget-hype-cup")
|
|
6026
|
+
return {
|
|
6027
|
+
unit: mapHypeCup(widget, ctx),
|
|
6028
|
+
status: "partial",
|
|
6029
|
+
lumiaType: "tipjar"
|
|
6030
|
+
};
|
|
6031
|
+
if (t === "se-widget-bit-boss")
|
|
6032
|
+
return {
|
|
6033
|
+
unit: mapStreamBoss(widget, ctx),
|
|
6034
|
+
status: "partial",
|
|
6035
|
+
lumiaType: "streamboss"
|
|
6036
|
+
};
|
|
6037
|
+
if (t === "se-widget-hype-train")
|
|
6038
|
+
return {
|
|
6039
|
+
unit: mapHypetrain(widget, ctx),
|
|
6040
|
+
status: "partial",
|
|
6041
|
+
lumiaType: "hypetrain"
|
|
6042
|
+
};
|
|
5906
6043
|
if (t === "se-widget-custom-event-list" && isHypetrainCustomWidget(widget)) {
|
|
5907
|
-
return {
|
|
6044
|
+
return {
|
|
6045
|
+
unit: mapHypetrain(widget, ctx),
|
|
6046
|
+
status: "partial",
|
|
6047
|
+
lumiaType: "hypetrain"
|
|
6048
|
+
};
|
|
5908
6049
|
}
|
|
5909
|
-
if (t === "se-widget-custom-event-list")
|
|
5910
|
-
|
|
5911
|
-
|
|
5912
|
-
|
|
5913
|
-
|
|
6050
|
+
if (t === "se-widget-custom-event-list")
|
|
6051
|
+
return {
|
|
6052
|
+
unit: mapCustom(widget, ctx),
|
|
6053
|
+
status: "partial",
|
|
6054
|
+
lumiaType: "custom"
|
|
6055
|
+
};
|
|
6056
|
+
if (t === "se-widget-snow")
|
|
6057
|
+
return { unit: mapSnow(widget, ctx), status: "direct", lumiaType: "video" };
|
|
6058
|
+
if (t === "se-widget-halloween-2019")
|
|
6059
|
+
return {
|
|
6060
|
+
unit: mapSlideshow(widget, ctx),
|
|
6061
|
+
status: "direct",
|
|
6062
|
+
lumiaType: "slideshow"
|
|
6063
|
+
};
|
|
6064
|
+
if (SEASONAL_IMAGE_TYPES.has(t))
|
|
6065
|
+
return {
|
|
6066
|
+
unit: mapImage(widget, ctx),
|
|
6067
|
+
status: "direct",
|
|
6068
|
+
lumiaType: "image"
|
|
6069
|
+
};
|
|
6070
|
+
return {
|
|
6071
|
+
unit: mapUnsupportedAsText(widget, ctx),
|
|
6072
|
+
status: "placeholder",
|
|
6073
|
+
lumiaType: "text"
|
|
6074
|
+
};
|
|
5914
6075
|
}
|
|
5915
6076
|
function recordCoverage(coverage, result, seType) {
|
|
5916
6077
|
const existing = coverage.mappings.find((m) => m.seType === seType);
|
|
@@ -5918,7 +6079,12 @@ function recordCoverage(coverage, result, seType) {
|
|
|
5918
6079
|
existing.count += 1;
|
|
5919
6080
|
return;
|
|
5920
6081
|
}
|
|
5921
|
-
coverage.mappings.push({
|
|
6082
|
+
coverage.mappings.push({
|
|
6083
|
+
seType,
|
|
6084
|
+
lumiaType: result.lumiaType,
|
|
6085
|
+
status: result.status,
|
|
6086
|
+
count: 1
|
|
6087
|
+
});
|
|
5922
6088
|
}
|
|
5923
6089
|
|
|
5924
6090
|
// src/se-import/assets.ts
|
|
@@ -9003,17 +9169,6 @@ function importSEBootstrap(bootstrap) {
|
|
|
9003
9169
|
notes: []
|
|
9004
9170
|
};
|
|
9005
9171
|
const provider = readBootstrapProvider(bootstrap);
|
|
9006
|
-
console.log("[SE-IMPORT] bootstrap received", {
|
|
9007
|
-
overlayId: seOverlay?._id,
|
|
9008
|
-
name: seOverlay?.name,
|
|
9009
|
-
canvas: {
|
|
9010
|
-
width: seOverlay?.settings?.width,
|
|
9011
|
-
height: seOverlay?.settings?.height
|
|
9012
|
-
},
|
|
9013
|
-
widgetCount: widgets.length,
|
|
9014
|
-
widgetTypes: widgets.map((w) => w.type),
|
|
9015
|
-
provider
|
|
9016
|
-
});
|
|
9017
9172
|
const importCanvas = {
|
|
9018
9173
|
width: seOverlay?.settings?.width ?? 1920,
|
|
9019
9174
|
height: seOverlay?.settings?.height ?? 1080
|
|
@@ -9165,12 +9320,6 @@ function importSEBootstrap(bootstrap) {
|
|
|
9165
9320
|
layers_count: layers.length,
|
|
9166
9321
|
hasFullSettings: true
|
|
9167
9322
|
};
|
|
9168
|
-
console.log("[SE-IMPORT] import complete", {
|
|
9169
|
-
overlayName: overlay.name,
|
|
9170
|
-
layerCount: overlay.layers_count,
|
|
9171
|
-
coverage,
|
|
9172
|
-
reviewItemCount: reviewItems.length
|
|
9173
|
-
});
|
|
9174
9323
|
return { overlay, coverage, reviewItems };
|
|
9175
9324
|
}
|
|
9176
9325
|
function applyReviewAction(result, moduleId, action, payload) {
|
package/dist/se-import.js
CHANGED
|
@@ -1081,9 +1081,11 @@ function mapGoal(widget, ctx) {
|
|
|
1081
1081
|
source: charity ? charity.source : sourceFromListener(listener),
|
|
1082
1082
|
image: "",
|
|
1083
1083
|
audio: { decrement: "", increment: "", goal: "", goalFailed: "", volume: 1 },
|
|
1084
|
-
// `null` (rather than `''`) is the cleaner contract —
|
|
1085
|
-
//
|
|
1086
|
-
// but `null` survives JSON round-trips without
|
|
1084
|
+
// `null` (rather than `''`) is the cleaner contract — `formatEndsIn`
|
|
1085
|
+
// in Goal/index.tsx treats both as "no deadline" so both work at
|
|
1086
|
+
// render time, but `null` survives JSON round-trips without
|
|
1087
|
+
// ambiguity ('' vs unset). The Goal module no longer hides itself
|
|
1088
|
+
// when the date passes; the "Ends in…" sublabel just disappears.
|
|
1087
1089
|
endDate: v.endDate ?? null,
|
|
1088
1090
|
goalAnimation: "",
|
|
1089
1091
|
goalAnimationLoop: true,
|
|
@@ -2732,7 +2734,13 @@ var READOUT_TYPES = {
|
|
|
2732
2734
|
// twitch_session_chat_count, so we render it as a text layer with the variable inline.
|
|
2733
2735
|
"se-widget-botcounter": "twitch_session_chat_count"
|
|
2734
2736
|
};
|
|
2735
|
-
var SEASONAL_IMAGE_TYPES = /* @__PURE__ */ new Set([
|
|
2737
|
+
var SEASONAL_IMAGE_TYPES = /* @__PURE__ */ new Set([
|
|
2738
|
+
"se-widget-halloween",
|
|
2739
|
+
"se-widget-xmas",
|
|
2740
|
+
"se-widget-valentine",
|
|
2741
|
+
"se-widget-easter",
|
|
2742
|
+
"se-widget-world-cup"
|
|
2743
|
+
]);
|
|
2736
2744
|
var GOAL_TYPES = /* @__PURE__ */ new Set([
|
|
2737
2745
|
"se-widget-follower-goal",
|
|
2738
2746
|
"se-widget-subscriber-goal",
|
|
@@ -2743,59 +2751,212 @@ var GOAL_TYPES = /* @__PURE__ */ new Set([
|
|
|
2743
2751
|
"se-widget-tiltify-goal",
|
|
2744
2752
|
"se-widget-merch-goal"
|
|
2745
2753
|
]);
|
|
2746
|
-
var EVENTLIST_TYPES = /* @__PURE__ */ new Set([
|
|
2754
|
+
var EVENTLIST_TYPES = /* @__PURE__ */ new Set([
|
|
2755
|
+
"se-widget-event-list",
|
|
2756
|
+
"se-widget-follower-recent",
|
|
2757
|
+
"se-widget-subscriber-recent",
|
|
2758
|
+
"se-widget-cheer-recent",
|
|
2759
|
+
"se-widget-tip-recent"
|
|
2760
|
+
]);
|
|
2747
2761
|
function dispatch(widget, ctx) {
|
|
2748
2762
|
const t = widget.type;
|
|
2749
|
-
console.log("[SE-IMPORT] dispatch widget", {
|
|
2750
|
-
seType: t,
|
|
2751
|
-
name: widget.name,
|
|
2752
|
-
listener: widget.listener,
|
|
2753
|
-
listeners: widget.listeners,
|
|
2754
|
-
variableKeys: widget.variables ? Object.keys(widget.variables) : [],
|
|
2755
|
-
hasCss: !!widget.css
|
|
2756
|
-
});
|
|
2757
2763
|
if (isWidgetFlaggedOff(t)) {
|
|
2758
|
-
return {
|
|
2764
|
+
return {
|
|
2765
|
+
unit: mapUnsupportedAsText(widget, ctx),
|
|
2766
|
+
status: "placeholder",
|
|
2767
|
+
lumiaType: "text",
|
|
2768
|
+
flaggedOff: true
|
|
2769
|
+
};
|
|
2759
2770
|
}
|
|
2760
|
-
if (t === "text")
|
|
2761
|
-
|
|
2762
|
-
if (t === "
|
|
2771
|
+
if (t === "text")
|
|
2772
|
+
return { unit: mapText(widget, ctx), status: "direct", lumiaType: "text" };
|
|
2773
|
+
if (t === "image")
|
|
2774
|
+
return {
|
|
2775
|
+
unit: mapImage(widget, ctx),
|
|
2776
|
+
status: "direct",
|
|
2777
|
+
lumiaType: "image"
|
|
2778
|
+
};
|
|
2779
|
+
if (t === "video")
|
|
2780
|
+
return {
|
|
2781
|
+
unit: mapVideo(widget, ctx),
|
|
2782
|
+
status: "direct",
|
|
2783
|
+
lumiaType: "video"
|
|
2784
|
+
};
|
|
2763
2785
|
if (t in READOUT_TYPES) {
|
|
2764
|
-
return {
|
|
2786
|
+
return {
|
|
2787
|
+
unit: mapReadout(widget, READOUT_TYPES[t], ctx),
|
|
2788
|
+
status: "direct",
|
|
2789
|
+
lumiaType: "text"
|
|
2790
|
+
};
|
|
2765
2791
|
}
|
|
2766
|
-
if (GOAL_TYPES.has(t))
|
|
2792
|
+
if (GOAL_TYPES.has(t))
|
|
2793
|
+
return { unit: mapGoal(widget, ctx), status: "direct", lumiaType: "goal" };
|
|
2767
2794
|
if ((t === "se-widget-alert-box" || t === "se-widget-alert-box-merch") && hasSECustomCode(widget)) {
|
|
2768
|
-
return {
|
|
2795
|
+
return {
|
|
2796
|
+
unit: mapUnsupportedAsText(widget, ctx),
|
|
2797
|
+
status: "placeholder",
|
|
2798
|
+
lumiaType: "text",
|
|
2799
|
+
flaggedOff: true
|
|
2800
|
+
};
|
|
2769
2801
|
}
|
|
2770
|
-
if (t === "se-widget-alert-box")
|
|
2771
|
-
|
|
2772
|
-
|
|
2773
|
-
|
|
2774
|
-
|
|
2775
|
-
|
|
2776
|
-
if (t === "se-widget-
|
|
2777
|
-
|
|
2778
|
-
|
|
2779
|
-
|
|
2780
|
-
|
|
2781
|
-
|
|
2782
|
-
if (t === "se-widget-
|
|
2783
|
-
|
|
2784
|
-
|
|
2785
|
-
|
|
2786
|
-
|
|
2787
|
-
|
|
2788
|
-
if (t === "se-widget-
|
|
2789
|
-
|
|
2790
|
-
|
|
2802
|
+
if (t === "se-widget-alert-box")
|
|
2803
|
+
return {
|
|
2804
|
+
unit: mapAlertBox(widget, {}, ctx),
|
|
2805
|
+
status: "direct",
|
|
2806
|
+
lumiaType: "alert"
|
|
2807
|
+
};
|
|
2808
|
+
if (t === "se-widget-alert-box-merch")
|
|
2809
|
+
return {
|
|
2810
|
+
unit: mapAlertBox(widget, { onlyEvents: ["merch"] }, ctx),
|
|
2811
|
+
status: "direct",
|
|
2812
|
+
lumiaType: "alert"
|
|
2813
|
+
};
|
|
2814
|
+
if (t === "se-widget-donor-drive-alert")
|
|
2815
|
+
return {
|
|
2816
|
+
unit: mapSingleAlert(widget, "donordrive-donation", ctx),
|
|
2817
|
+
status: "direct",
|
|
2818
|
+
lumiaType: "alert"
|
|
2819
|
+
};
|
|
2820
|
+
if (t === "se-widget-extralife-alert")
|
|
2821
|
+
return {
|
|
2822
|
+
unit: mapSingleAlert(widget, "extralife-donation", ctx),
|
|
2823
|
+
status: "direct",
|
|
2824
|
+
lumiaType: "alert"
|
|
2825
|
+
};
|
|
2826
|
+
if (t === "se-widget-tiltify-alert")
|
|
2827
|
+
return {
|
|
2828
|
+
unit: mapSingleAlert(widget, "tiltify-campaignDonation", ctx),
|
|
2829
|
+
status: "direct",
|
|
2830
|
+
lumiaType: "alert"
|
|
2831
|
+
};
|
|
2832
|
+
if (EVENTLIST_TYPES.has(t))
|
|
2833
|
+
return {
|
|
2834
|
+
unit: mapEventList(widget, ctx),
|
|
2835
|
+
status: "direct",
|
|
2836
|
+
lumiaType: "eventlist"
|
|
2837
|
+
};
|
|
2838
|
+
if (t === "se-widget-top-tippers-list")
|
|
2839
|
+
return {
|
|
2840
|
+
unit: mapViewerProfilesLeaderboard(widget, "tips", ctx),
|
|
2841
|
+
status: "direct",
|
|
2842
|
+
lumiaType: "viewerprofiles"
|
|
2843
|
+
};
|
|
2844
|
+
if (t === "se-widget-top-cheerers-list")
|
|
2845
|
+
return {
|
|
2846
|
+
unit: mapViewerProfilesLeaderboard(widget, "cheers", ctx),
|
|
2847
|
+
status: "direct",
|
|
2848
|
+
lumiaType: "viewerprofiles"
|
|
2849
|
+
};
|
|
2850
|
+
if (t === "se-widget-top-gifters-list")
|
|
2851
|
+
return {
|
|
2852
|
+
unit: mapViewerProfilesLeaderboard(widget, "gifts", ctx),
|
|
2853
|
+
status: "direct",
|
|
2854
|
+
lumiaType: "viewerprofiles"
|
|
2855
|
+
};
|
|
2856
|
+
if (t === "se-widget-credit-roll")
|
|
2857
|
+
return {
|
|
2858
|
+
unit: mapCredits(widget, ctx),
|
|
2859
|
+
status: "partial",
|
|
2860
|
+
lumiaType: "credits"
|
|
2861
|
+
};
|
|
2862
|
+
if (t === "se-widget-twitch-chat")
|
|
2863
|
+
return {
|
|
2864
|
+
unit: mapChatbox(widget, ctx),
|
|
2865
|
+
status: "partial",
|
|
2866
|
+
lumiaType: "chatbox"
|
|
2867
|
+
};
|
|
2868
|
+
if (t === "se-widget-image-rotator" || t === "se-widget-merch-products-rotator")
|
|
2869
|
+
return {
|
|
2870
|
+
unit: mapSlideshow(widget, ctx),
|
|
2871
|
+
status: t === "se-widget-merch-products-rotator" ? "partial" : "direct",
|
|
2872
|
+
lumiaType: "slideshow"
|
|
2873
|
+
};
|
|
2874
|
+
if (t === "se-widget-countdown")
|
|
2875
|
+
return {
|
|
2876
|
+
unit: mapTimer(widget, ctx),
|
|
2877
|
+
status: "partial",
|
|
2878
|
+
lumiaType: "timer"
|
|
2879
|
+
};
|
|
2880
|
+
if (t === "se-widget-current-song")
|
|
2881
|
+
return {
|
|
2882
|
+
unit: mapNowPlaying(widget, ctx),
|
|
2883
|
+
status: "partial",
|
|
2884
|
+
lumiaType: "nowplaying"
|
|
2885
|
+
};
|
|
2886
|
+
if (t === "se-widget-kappagen")
|
|
2887
|
+
return {
|
|
2888
|
+
unit: mapKappagen(widget, ctx),
|
|
2889
|
+
status: "partial",
|
|
2890
|
+
lumiaType: "emotealert"
|
|
2891
|
+
};
|
|
2892
|
+
if (t === "se-widget-emote-wall")
|
|
2893
|
+
return {
|
|
2894
|
+
unit: mapEmoteWall(widget, ctx),
|
|
2895
|
+
status: "partial",
|
|
2896
|
+
lumiaType: "emotebox"
|
|
2897
|
+
};
|
|
2898
|
+
if (t === "se-widget-giveaway")
|
|
2899
|
+
return {
|
|
2900
|
+
unit: mapGiveaway(widget, ctx),
|
|
2901
|
+
status: "direct",
|
|
2902
|
+
lumiaType: "raffle"
|
|
2903
|
+
};
|
|
2904
|
+
if (t === "se-widget-media-share")
|
|
2905
|
+
return {
|
|
2906
|
+
unit: mapMediaShare(widget, ctx),
|
|
2907
|
+
status: "partial",
|
|
2908
|
+
lumiaType: "songrequest"
|
|
2909
|
+
};
|
|
2910
|
+
if (t === "se-widget-hype-cup")
|
|
2911
|
+
return {
|
|
2912
|
+
unit: mapHypeCup(widget, ctx),
|
|
2913
|
+
status: "partial",
|
|
2914
|
+
lumiaType: "tipjar"
|
|
2915
|
+
};
|
|
2916
|
+
if (t === "se-widget-bit-boss")
|
|
2917
|
+
return {
|
|
2918
|
+
unit: mapStreamBoss(widget, ctx),
|
|
2919
|
+
status: "partial",
|
|
2920
|
+
lumiaType: "streamboss"
|
|
2921
|
+
};
|
|
2922
|
+
if (t === "se-widget-hype-train")
|
|
2923
|
+
return {
|
|
2924
|
+
unit: mapHypetrain(widget, ctx),
|
|
2925
|
+
status: "partial",
|
|
2926
|
+
lumiaType: "hypetrain"
|
|
2927
|
+
};
|
|
2791
2928
|
if (t === "se-widget-custom-event-list" && isHypetrainCustomWidget(widget)) {
|
|
2792
|
-
return {
|
|
2929
|
+
return {
|
|
2930
|
+
unit: mapHypetrain(widget, ctx),
|
|
2931
|
+
status: "partial",
|
|
2932
|
+
lumiaType: "hypetrain"
|
|
2933
|
+
};
|
|
2793
2934
|
}
|
|
2794
|
-
if (t === "se-widget-custom-event-list")
|
|
2795
|
-
|
|
2796
|
-
|
|
2797
|
-
|
|
2798
|
-
|
|
2935
|
+
if (t === "se-widget-custom-event-list")
|
|
2936
|
+
return {
|
|
2937
|
+
unit: mapCustom(widget, ctx),
|
|
2938
|
+
status: "partial",
|
|
2939
|
+
lumiaType: "custom"
|
|
2940
|
+
};
|
|
2941
|
+
if (t === "se-widget-snow")
|
|
2942
|
+
return { unit: mapSnow(widget, ctx), status: "direct", lumiaType: "video" };
|
|
2943
|
+
if (t === "se-widget-halloween-2019")
|
|
2944
|
+
return {
|
|
2945
|
+
unit: mapSlideshow(widget, ctx),
|
|
2946
|
+
status: "direct",
|
|
2947
|
+
lumiaType: "slideshow"
|
|
2948
|
+
};
|
|
2949
|
+
if (SEASONAL_IMAGE_TYPES.has(t))
|
|
2950
|
+
return {
|
|
2951
|
+
unit: mapImage(widget, ctx),
|
|
2952
|
+
status: "direct",
|
|
2953
|
+
lumiaType: "image"
|
|
2954
|
+
};
|
|
2955
|
+
return {
|
|
2956
|
+
unit: mapUnsupportedAsText(widget, ctx),
|
|
2957
|
+
status: "placeholder",
|
|
2958
|
+
lumiaType: "text"
|
|
2959
|
+
};
|
|
2799
2960
|
}
|
|
2800
2961
|
function recordCoverage(coverage, result, seType) {
|
|
2801
2962
|
const existing = coverage.mappings.find((m) => m.seType === seType);
|
|
@@ -2803,7 +2964,12 @@ function recordCoverage(coverage, result, seType) {
|
|
|
2803
2964
|
existing.count += 1;
|
|
2804
2965
|
return;
|
|
2805
2966
|
}
|
|
2806
|
-
coverage.mappings.push({
|
|
2967
|
+
coverage.mappings.push({
|
|
2968
|
+
seType,
|
|
2969
|
+
lumiaType: result.lumiaType,
|
|
2970
|
+
status: result.status,
|
|
2971
|
+
count: 1
|
|
2972
|
+
});
|
|
2807
2973
|
}
|
|
2808
2974
|
|
|
2809
2975
|
// src/se-import/assets.ts
|
|
@@ -7873,17 +8039,6 @@ function importSEBootstrap(bootstrap) {
|
|
|
7873
8039
|
notes: []
|
|
7874
8040
|
};
|
|
7875
8041
|
const provider = readBootstrapProvider(bootstrap);
|
|
7876
|
-
console.log("[SE-IMPORT] bootstrap received", {
|
|
7877
|
-
overlayId: seOverlay?._id,
|
|
7878
|
-
name: seOverlay?.name,
|
|
7879
|
-
canvas: {
|
|
7880
|
-
width: seOverlay?.settings?.width,
|
|
7881
|
-
height: seOverlay?.settings?.height
|
|
7882
|
-
},
|
|
7883
|
-
widgetCount: widgets.length,
|
|
7884
|
-
widgetTypes: widgets.map((w) => w.type),
|
|
7885
|
-
provider
|
|
7886
|
-
});
|
|
7887
8042
|
const importCanvas = {
|
|
7888
8043
|
width: seOverlay?.settings?.width ?? 1920,
|
|
7889
8044
|
height: seOverlay?.settings?.height ?? 1080
|
|
@@ -8035,12 +8190,6 @@ function importSEBootstrap(bootstrap) {
|
|
|
8035
8190
|
layers_count: layers.length,
|
|
8036
8191
|
hasFullSettings: true
|
|
8037
8192
|
};
|
|
8038
|
-
console.log("[SE-IMPORT] import complete", {
|
|
8039
|
-
overlayName: overlay.name,
|
|
8040
|
-
layerCount: overlay.layers_count,
|
|
8041
|
-
coverage,
|
|
8042
|
-
reviewItemCount: reviewItems.length
|
|
8043
|
-
});
|
|
8044
8193
|
return { overlay, coverage, reviewItems };
|
|
8045
8194
|
}
|
|
8046
8195
|
function applyReviewAction(result, moduleId, action, payload) {
|