@lumiastream/ui 0.6.6 → 0.6.8

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
@@ -3170,40 +3170,40 @@ var TWITCH_CONTEXTS = {
3170
3170
  name: "twitch_last_gifted",
3171
3171
  username: "twitch_last_gifted",
3172
3172
  sender: "twitch_last_gifter",
3173
- amount: "twitch_last_gifter_amount",
3174
- count: "twitch_last_gifter_amount"
3173
+ amount: "twitch_last_gifter.amount",
3174
+ count: "twitch_last_gifter.amount"
3175
3175
  },
3176
3176
  "subscriber-alltime-gifter": {
3177
3177
  name: "twitch_alltime_top_gifter",
3178
3178
  username: "twitch_alltime_top_gifter",
3179
- amount: "twitch_alltime_top_gifter_amount",
3180
- count: "twitch_alltime_top_gifter_amount"
3179
+ amount: "twitch_alltime_top_gifter.amount",
3180
+ count: "twitch_alltime_top_gifter.amount"
3181
3181
  },
3182
3182
  "cheer-latest": {
3183
3183
  name: "twitch_last_bit",
3184
3184
  username: "twitch_last_bit",
3185
- amount: "twitch_last_bit_amount",
3186
- count: "twitch_last_bit_amount"
3185
+ amount: "twitch_last_bit.amount",
3186
+ count: "twitch_last_bit.amount"
3187
3187
  },
3188
3188
  "tip-latest": {
3189
3189
  name: "latest_donator",
3190
3190
  username: "latest_donator",
3191
- amount: "latest_donator_amount",
3192
- count: "latest_donator_amount",
3193
- currency: "latest_donator_currency_symbol"
3191
+ amount: "latest_donator.amount",
3192
+ count: "latest_donator.amount",
3193
+ currency: "latest_donator.currencySymbol"
3194
3194
  },
3195
3195
  latest_donator: {
3196
3196
  name: "latest_donator",
3197
3197
  username: "latest_donator",
3198
- amount: "latest_donator_amount",
3199
- count: "latest_donator_amount",
3200
- currency: "latest_donator_currency_symbol"
3198
+ amount: "latest_donator.amount",
3199
+ count: "latest_donator.amount",
3200
+ currency: "latest_donator.currencySymbol"
3201
3201
  },
3202
3202
  "raid-latest": {
3203
3203
  name: "twitch_last_raider",
3204
3204
  username: "twitch_last_raider",
3205
- amount: "twitch_last_raid_amount",
3206
- count: "twitch_last_raid_amount"
3205
+ amount: "twitch_last_raider.amount",
3206
+ count: "twitch_last_raider.amount"
3207
3207
  },
3208
3208
  // Period counters: count/amount = the running counter for that window.
3209
3209
  // SE lets the streamer pick session / week / month / total on the same widget
@@ -3302,7 +3302,7 @@ var TWITCH_CONTEXTS = {
3302
3302
  // `*-top-donation` and `*-top-donator` are paired: SE nominally treats them
3303
3303
  // as "top single event" vs "top cumulative contributor", but the data
3304
3304
  // rendered for both lives in the same Lumia variable pair (`*_top_donator`
3305
- // / `*_top_donator_amount`, `twitch_*_top_cheerer` / `..._amount`). SE
3305
+ // / `*_top_donator.amount`, `twitch_*_top_cheerer` / `..._amount`). SE
3306
3306
  // widgets routinely use `{name}` against the `-donation` listener to mean
3307
3307
  // "the user who made the top donation", so the two rows below carry the
3308
3308
  // same name/username mapping — anything else falls through to the unscoped
@@ -3310,106 +3310,109 @@ var TWITCH_CONTEXTS = {
3310
3310
  "cheer-session-top-donation": {
3311
3311
  name: "twitch_session_top_cheerer",
3312
3312
  username: "twitch_session_top_cheerer",
3313
- amount: "twitch_session_top_cheer_amount",
3314
- count: "twitch_session_top_cheer_amount"
3313
+ amount: "twitch_session_top_cheer.amount",
3314
+ count: "twitch_session_top_cheer.amount"
3315
3315
  },
3316
3316
  "cheer-session-top-donator": {
3317
3317
  name: "twitch_session_top_cheerer",
3318
3318
  username: "twitch_session_top_cheerer",
3319
- amount: "twitch_session_top_cheerer_amount",
3320
- count: "twitch_session_top_cheerer_amount"
3319
+ amount: "twitch_session_top_cheerer.amount",
3320
+ count: "twitch_session_top_cheerer.amount"
3321
3321
  },
3322
+ // SE semantics: `top-donation` = largest single cheer this period;
3323
+ // `top-donator` = cumulative top giver this period. Map them to the
3324
+ // distinct Lumia vars (`*_TOP_CHEER` vs `*_TOP_CHEERER`) so a widget
3325
+ // configured for either one renders the right metric.
3322
3326
  "cheer-weekly-top-donation": {
3323
- name: "twitch_week_top_cheerer",
3324
- username: "twitch_week_top_cheerer",
3325
- amount: "twitch_week_top_cheerer_amount",
3326
- count: "twitch_week_top_cheerer_amount"
3327
+ name: "twitch_week_top_cheer",
3328
+ username: "twitch_week_top_cheer",
3329
+ amount: "twitch_week_top_cheer.amount",
3330
+ count: "twitch_week_top_cheer.amount"
3327
3331
  },
3328
3332
  "cheer-weekly-top-donator": {
3329
3333
  name: "twitch_week_top_cheerer",
3330
3334
  username: "twitch_week_top_cheerer",
3331
- amount: "twitch_week_top_cheerer_amount",
3332
- count: "twitch_week_top_cheerer_amount"
3335
+ amount: "twitch_week_top_cheerer.amount",
3336
+ count: "twitch_week_top_cheerer.amount"
3333
3337
  },
3334
3338
  "cheer-monthly-top-donation": {
3335
- name: "twitch_month_top_cheerer",
3336
- username: "twitch_month_top_cheerer",
3337
- amount: "twitch_month_top_cheerer_amount",
3338
- count: "twitch_month_top_cheerer_amount"
3339
+ name: "twitch_month_top_cheer",
3340
+ username: "twitch_month_top_cheer",
3341
+ amount: "twitch_month_top_cheer.amount",
3342
+ count: "twitch_month_top_cheer.amount"
3339
3343
  },
3340
3344
  "cheer-monthly-top-donator": {
3341
3345
  name: "twitch_month_top_cheerer",
3342
3346
  username: "twitch_month_top_cheerer",
3343
- amount: "twitch_month_top_cheerer_amount",
3344
- count: "twitch_month_top_cheerer_amount"
3347
+ amount: "twitch_month_top_cheerer.amount",
3348
+ count: "twitch_month_top_cheerer.amount"
3345
3349
  },
3346
3350
  "cheer-alltime-top-donation": {
3347
- name: "twitch_alltime_top_cheerer",
3348
- username: "twitch_alltime_top_cheerer",
3349
- amount: "twitch_alltime_top_cheerer_amount",
3350
- count: "twitch_alltime_top_cheerer_amount"
3351
+ name: "twitch_alltime_top_cheer",
3352
+ username: "twitch_alltime_top_cheer",
3353
+ amount: "twitch_alltime_top_cheer.amount",
3354
+ count: "twitch_alltime_top_cheer.amount"
3351
3355
  },
3352
3356
  "cheer-alltime-top-donator": {
3353
3357
  name: "twitch_alltime_top_cheerer",
3354
3358
  username: "twitch_alltime_top_cheerer",
3355
- amount: "twitch_alltime_top_cheerer_amount",
3356
- count: "twitch_alltime_top_cheerer_amount"
3359
+ amount: "twitch_alltime_top_cheerer.amount",
3360
+ count: "twitch_alltime_top_cheerer.amount"
3357
3361
  },
3362
+ // Same single-vs-cumulative distinction for tips: `top-donation` =
3363
+ // biggest single tip (`*_TOP_DONATOR`); `top-donator` = cumulative top
3364
+ // giver (`*_TOP_TIPPER`).
3358
3365
  "tip-session-top-donation": {
3359
3366
  name: "session_top_donator",
3360
3367
  username: "session_top_donator",
3361
- amount: "session_top_donator_amount",
3362
- count: "session_top_donator_amount",
3363
- currency: "session_top_donator_currency_symbol"
3368
+ amount: "session_top_donator.amount",
3369
+ count: "session_top_donator.amount",
3370
+ currency: "session_top_donator.currencySymbol"
3364
3371
  },
3365
3372
  "tip-session-top-donator": {
3366
- name: "session_top_donator",
3367
- username: "session_top_donator",
3368
- amount: "session_top_donator_amount",
3369
- count: "session_top_donator_amount",
3370
- currency: "session_top_donator_currency_symbol"
3373
+ name: "session_top_tipper",
3374
+ username: "session_top_tipper",
3375
+ amount: "session_top_tipper_amount",
3376
+ count: "session_top_tipper_amount"
3371
3377
  },
3372
3378
  "tip-weekly-top-donation": {
3373
3379
  name: "week_top_donator",
3374
3380
  username: "week_top_donator",
3375
- amount: "week_top_donator_amount",
3376
- count: "week_top_donator_amount",
3377
- currency: "week_top_donator_currency_symbol"
3381
+ amount: "week_top_donator.amount",
3382
+ count: "week_top_donator.amount",
3383
+ currency: "week_top_donator.currencySymbol"
3378
3384
  },
3379
3385
  "tip-weekly-top-donator": {
3380
- name: "week_top_donator",
3381
- username: "week_top_donator",
3382
- amount: "week_top_donator_amount",
3383
- count: "week_top_donator_amount",
3384
- currency: "week_top_donator_currency_symbol"
3386
+ name: "week_top_tipper",
3387
+ username: "week_top_tipper",
3388
+ amount: "week_top_tipper_amount",
3389
+ count: "week_top_tipper_amount"
3385
3390
  },
3386
3391
  "tip-monthly-top-donation": {
3387
3392
  name: "month_top_donator",
3388
3393
  username: "month_top_donator",
3389
- amount: "month_top_donator_amount",
3390
- count: "month_top_donator_amount",
3391
- currency: "month_top_donator_currency_symbol"
3394
+ amount: "month_top_donator.amount",
3395
+ count: "month_top_donator.amount",
3396
+ currency: "month_top_donator.currencySymbol"
3392
3397
  },
3393
3398
  "tip-monthly-top-donator": {
3394
- name: "month_top_donator",
3395
- username: "month_top_donator",
3396
- amount: "month_top_donator_amount",
3397
- count: "month_top_donator_amount",
3398
- currency: "month_top_donator_currency_symbol"
3399
+ name: "month_top_tipper",
3400
+ username: "month_top_tipper",
3401
+ amount: "month_top_tipper_amount",
3402
+ count: "month_top_tipper_amount"
3399
3403
  },
3400
3404
  "tip-alltime-top-donation": {
3401
3405
  name: "top_donator",
3402
3406
  username: "top_donator",
3403
- amount: "top_donator_amount",
3404
- count: "top_donator_amount",
3405
- currency: "top_donator_currency_symbol"
3407
+ amount: "top_donator.amount",
3408
+ count: "top_donator.amount",
3409
+ currency: "top_donator.currencySymbol"
3406
3410
  },
3407
3411
  "tip-alltime-top-donator": {
3408
- name: "top_donator",
3409
- username: "top_donator",
3410
- amount: "top_donator_amount",
3411
- count: "top_donator_amount",
3412
- currency: "top_donator_currency_symbol"
3412
+ name: "alltime_top_tipper",
3413
+ username: "alltime_top_tipper",
3414
+ amount: "alltime_top_tipper_amount",
3415
+ count: "alltime_top_tipper_amount"
3413
3416
  },
3414
3417
  // Botcounter — SE uses `{wins}` for the running chat count; the dispatcher's
3415
3418
  // fallbackVar for `se-widget-botcounter` is `twitch_session_chat_count`, so
@@ -3444,7 +3447,84 @@ var TWITCH_CONTEXTS = {
3444
3447
  items: "fourthwall_last_order.items",
3445
3448
  item: "fourthwall_last_order.firstItem.name",
3446
3449
  message: "fourthwall_last_order.message"
3447
- }
3450
+ },
3451
+ "follower-goal": { amount: "follower_goal", count: "follower_goal" },
3452
+ "subscriber-goal": { amount: "subscriber_goal", count: "subscriber_goal" },
3453
+ "cheer-goal": { amount: "cheer_goal", count: "cheer_goal" },
3454
+ "tip-goal": { amount: "tip_goal", count: "tip_goal" },
3455
+ "superchat-goal": { amount: "superchat_goal", count: "superchat_goal" },
3456
+ "merch-goal-orders": { amount: "merch_goal_orders", count: "merch_goal_orders" },
3457
+ "merch-goal-items": { amount: "merch_goal_items", count: "merch_goal_items" },
3458
+ "merch-goal-total": { amount: "merch_goal_total", count: "merch_goal_total" },
3459
+ "hypetrain-latest": { amount: "twitch_hypetrain_level", count: "twitch_hypetrain_level" },
3460
+ "hypetrain-level-progress": { amount: "twitch_hypetrain_progress", count: "twitch_hypetrain_progress" },
3461
+ "hypetrain-level-goal": { amount: "twitch_hypetrain_level_goal", count: "twitch_hypetrain_level_goal" },
3462
+ "hypetrain-total": { amount: "twitch_hypetrain_total", count: "twitch_hypetrain_total" },
3463
+ "hypetrain-latest-top-contributors": {
3464
+ name: "twitch_hypetrain_top_contributor",
3465
+ username: "twitch_hypetrain_top_contributor",
3466
+ amount: "twitch_hypetrain_top_contributor_amount",
3467
+ count: "twitch_hypetrain_top_contributor_amount"
3468
+ },
3469
+ "community-gift-latest": {
3470
+ name: "twitch_last_gifter",
3471
+ username: "twitch_last_gifter",
3472
+ amount: "twitch_last_gifter_amount",
3473
+ count: "twitch_last_gifter_amount"
3474
+ },
3475
+ "channel-points-latest": {
3476
+ name: "twitch_last_channel_points_redeemer",
3477
+ username: "twitch_last_channel_points_redeemer",
3478
+ amount: "twitch_last_channel_points_amount",
3479
+ count: "twitch_last_channel_points_amount"
3480
+ },
3481
+ "charityCampaignDonation-latest": {
3482
+ name: "last_charity_donator",
3483
+ username: "last_charity_donator",
3484
+ amount: "last_charity_donation_amount",
3485
+ count: "last_charity_donation_amount"
3486
+ },
3487
+ "charityCampaignDonation-session-top-donation": {
3488
+ name: "session_top_charity_donation",
3489
+ amount: "session_top_charity_donation_amount",
3490
+ count: "session_top_charity_donation_amount"
3491
+ },
3492
+ "charityCampaignDonation-weekly-top-donation": {
3493
+ name: "week_top_charity_donation",
3494
+ amount: "week_top_charity_donation_amount",
3495
+ count: "week_top_charity_donation_amount"
3496
+ },
3497
+ "charityCampaignDonation-monthly-top-donation": {
3498
+ name: "month_top_charity_donation",
3499
+ amount: "month_top_charity_donation_amount",
3500
+ count: "month_top_charity_donation_amount"
3501
+ },
3502
+ "charityCampaignDonation-alltime-top-donation": {
3503
+ name: "alltime_top_charity_donation",
3504
+ amount: "alltime_top_charity_donation_amount",
3505
+ count: "alltime_top_charity_donation_amount"
3506
+ },
3507
+ "charityCampaignDonation-session-top-donator": {
3508
+ name: "session_top_charity_donator",
3509
+ amount: "session_top_charity_donator_amount",
3510
+ count: "session_top_charity_donator_amount"
3511
+ },
3512
+ "charityCampaignDonation-weekly-top-donator": {
3513
+ name: "week_top_charity_donator",
3514
+ amount: "week_top_charity_donator_amount",
3515
+ count: "week_top_charity_donator_amount"
3516
+ },
3517
+ "charityCampaignDonation-monthly-top-donator": {
3518
+ name: "month_top_charity_donator",
3519
+ amount: "month_top_charity_donator_amount",
3520
+ count: "month_top_charity_donator_amount"
3521
+ },
3522
+ "charityCampaignDonation-alltime-top-donator": {
3523
+ name: "alltime_top_charity_donator",
3524
+ amount: "alltime_top_charity_donator_amount",
3525
+ count: "alltime_top_charity_donator_amount"
3526
+ },
3527
+ "host-latest": { name: "kick_last_host", username: "kick_last_host" }
3448
3528
  };
3449
3529
  var KICK_CONTEXTS = {
3450
3530
  "follower-latest": {
@@ -3471,20 +3551,20 @@ var KICK_CONTEXTS = {
3471
3551
  name: "kick_last_gifted",
3472
3552
  username: "kick_last_gifted",
3473
3553
  sender: "kick_last_gifter",
3474
- amount: "kick_last_gifter_amount",
3475
- count: "kick_last_gifter_amount"
3554
+ amount: "kick_last_gifter.amount",
3555
+ count: "kick_last_gifter.amount"
3476
3556
  },
3477
3557
  "cheer-latest": {
3478
3558
  name: "kick_last_kicks",
3479
3559
  username: "kick_last_kicks",
3480
- amount: "kick_last_kicks_amount",
3481
- count: "kick_last_kicks_amount"
3560
+ amount: "kick_last_kicks.amount",
3561
+ count: "kick_last_kicks.amount"
3482
3562
  },
3483
3563
  "raid-latest": {
3484
3564
  name: "kick_last_host",
3485
3565
  username: "kick_last_host",
3486
- amount: "kick_last_host_amount",
3487
- count: "kick_last_host_amount"
3566
+ amount: "kick_last_host.amount",
3567
+ count: "kick_last_host.amount"
3488
3568
  },
3489
3569
  "follower-session": {
3490
3570
  amount: "kick_session_follower_count",
@@ -3644,6 +3724,59 @@ var YOUTUBE_CONTEXTS = {
3644
3724
  "sponsor-gifted-session": {
3645
3725
  amount: "youtube_session_gift_members_count",
3646
3726
  count: "youtube_session_gift_members_count"
3727
+ },
3728
+ "superchat-latest": {
3729
+ name: "youtube_last_superchatter",
3730
+ username: "youtube_last_superchatter"
3731
+ },
3732
+ "superchat-session": { amount: "youtube_session_superchat_amount", count: "youtube_session_superchat_count" },
3733
+ "superchat-week": { amount: "youtube_week_superchat_amount", count: "youtube_week_superchat_amount" },
3734
+ "superchat-month": { amount: "youtube_month_superchat_amount", count: "youtube_month_superchat_amount" },
3735
+ "superchat-total": { amount: "youtube_total_superchat_amount", count: "youtube_total_superchat_amount" },
3736
+ "superchat-count": { amount: "youtube_session_superchat_count", count: "youtube_session_superchat_count" },
3737
+ "superchat-session-top-donation": {
3738
+ name: "youtube_session_top_superchat",
3739
+ amount: "youtube_session_top_superchat_amount",
3740
+ count: "youtube_session_top_superchat_amount"
3741
+ },
3742
+ "superchat-weekly-top-donation": {
3743
+ name: "youtube_week_top_superchat",
3744
+ amount: "youtube_week_top_superchat_amount",
3745
+ count: "youtube_week_top_superchat_amount"
3746
+ },
3747
+ "superchat-monthly-top-donation": {
3748
+ name: "youtube_month_top_superchat",
3749
+ amount: "youtube_month_top_superchat_amount",
3750
+ count: "youtube_month_top_superchat_amount"
3751
+ },
3752
+ "superchat-alltime-top-donation": {
3753
+ name: "youtube_alltime_top_superchat",
3754
+ amount: "youtube_alltime_top_superchat_amount",
3755
+ count: "youtube_alltime_top_superchat_amount"
3756
+ },
3757
+ "superchat-session-top-donator": {
3758
+ name: "youtube_session_top_superchatter",
3759
+ username: "youtube_session_top_superchatter",
3760
+ amount: "youtube_session_top_superchatter_amount",
3761
+ count: "youtube_session_top_superchatter_amount"
3762
+ },
3763
+ "superchat-weekly-top-donator": {
3764
+ name: "youtube_week_top_superchatter",
3765
+ username: "youtube_week_top_superchatter",
3766
+ amount: "youtube_week_top_superchatter_amount",
3767
+ count: "youtube_week_top_superchatter_amount"
3768
+ },
3769
+ "superchat-monthly-top-donator": {
3770
+ name: "youtube_month_top_superchatter",
3771
+ username: "youtube_month_top_superchatter",
3772
+ amount: "youtube_month_top_superchatter_amount",
3773
+ count: "youtube_month_top_superchatter_amount"
3774
+ },
3775
+ "superchat-alltime-top-donator": {
3776
+ name: "youtube_alltime_top_superchatter",
3777
+ username: "youtube_alltime_top_superchatter",
3778
+ amount: "youtube_alltime_top_superchatter_amount",
3779
+ count: "youtube_alltime_top_superchatter_amount"
3647
3780
  }
3648
3781
  };
3649
3782
  var RECENT_TO_LATEST_LISTENER = {
@@ -3652,6 +3785,9 @@ var RECENT_TO_LATEST_LISTENER = {
3652
3785
  "cheer-recent": "cheer-latest",
3653
3786
  "tip-recent": "tip-latest",
3654
3787
  "raid-recent": "raid-latest",
3788
+ "host-recent": "host-latest",
3789
+ "superchat-recent": "superchat-latest",
3790
+ "charityCampaignDonation-recent": "charityCampaignDonation-latest",
3655
3791
  // SE's YouTube "sponsor" aliases (legacy YouTube member terminology).
3656
3792
  "sponsor-recent": "sponsor-latest"
3657
3793
  };
@@ -3725,7 +3861,13 @@ var KICK_LISTENER_VARS = {
3725
3861
  "subscriber-total": "kick_total_subscriber_count",
3726
3862
  "subscriber-gifted-session": "kick_session_gifts_count",
3727
3863
  "cheer-session": "kick_session_kicks_count",
3728
- "cheer-total": "kick_total_kicks_count"
3864
+ "cheer-total": "kick_total_kicks_count",
3865
+ "host-latest": "kick_last_host",
3866
+ "follower-goal": "follower_goal",
3867
+ "subscriber-goal": "subscriber_goal",
3868
+ "cheer-goal": "cheer_goal",
3869
+ "tip-goal": "tip_goal",
3870
+ "superchat-goal": "superchat_goal"
3729
3871
  };
3730
3872
  var YOUTUBE_LISTENER_VARS = {
3731
3873
  "follower-latest": "youtube_last_subscriber",
@@ -3756,7 +3898,25 @@ var YOUTUBE_LISTENER_VARS = {
3756
3898
  "subscriber-month": "youtube_month_member_count",
3757
3899
  "subscriber-total": "youtube_total_member_count",
3758
3900
  "subscriber-gifted-session": "youtube_session_gift_members_count",
3759
- "cheer-session": "youtube_session_superchat_count"
3901
+ "cheer-session": "youtube_session_superchat_count",
3902
+ "superchat-latest": "youtube_last_superchatter",
3903
+ "superchat-session": "youtube_session_superchat_amount",
3904
+ "superchat-week": "youtube_week_superchat_amount",
3905
+ "superchat-month": "youtube_month_superchat_amount",
3906
+ "superchat-total": "youtube_total_superchat_amount",
3907
+ "superchat-count": "youtube_session_superchat_count",
3908
+ "superchat-session-top-donation": "youtube_session_top_superchat",
3909
+ "superchat-weekly-top-donation": "youtube_week_top_superchat",
3910
+ "superchat-monthly-top-donation": "youtube_month_top_superchat",
3911
+ "superchat-alltime-top-donation": "youtube_alltime_top_superchat",
3912
+ "superchat-session-top-donator": "youtube_session_top_superchatter",
3913
+ "superchat-weekly-top-donator": "youtube_week_top_superchatter",
3914
+ "superchat-monthly-top-donator": "youtube_month_top_superchatter",
3915
+ "superchat-alltime-top-donator": "youtube_alltime_top_superchatter",
3916
+ "follower-goal": "follower_goal",
3917
+ "subscriber-goal": "subscriber_goal",
3918
+ "superchat-goal": "superchat_goal",
3919
+ "tip-goal": "tip_goal"
3760
3920
  };
3761
3921
  function listenerToLumiaVariable(listener, provider = "twitch") {
3762
3922
  if (typeof listener !== "string" || !listener) return "username";
@@ -3813,15 +3973,15 @@ function listenerToLumiaVariable(listener, provider = "twitch") {
3813
3973
  "tip-total": "total_donation_amount",
3814
3974
  "tip-count": "donation_count",
3815
3975
  // Top donors / cheerers — session / week / month / all-time
3816
- "tip-session-top-donation": "session_top_donator_amount",
3976
+ "tip-session-top-donation": "session_top_donator.amount",
3817
3977
  "tip-session-top-donator": "session_top_donator",
3818
- "tip-weekly-top-donation": "week_top_donator_amount",
3978
+ "tip-weekly-top-donation": "week_top_donator.amount",
3819
3979
  "tip-weekly-top-donator": "week_top_donator",
3820
- "tip-monthly-top-donation": "month_top_donator_amount",
3980
+ "tip-monthly-top-donation": "month_top_donator.amount",
3821
3981
  "tip-monthly-top-donator": "month_top_donator",
3822
- "tip-alltime-top-donation": "top_donator_amount",
3982
+ "tip-alltime-top-donation": "top_donator.amount",
3823
3983
  "tip-alltime-top-donator": "top_donator",
3824
- "cheer-session-top-donation": "twitch_session_top_cheer_amount",
3984
+ "cheer-session-top-donation": "twitch_session_top_cheer.amount",
3825
3985
  "cheer-session-top-donator": "twitch_session_top_cheerer",
3826
3986
  // Hype train readouts (SE captures these as listener keys on text widgets)
3827
3987
  "hypetrain-latest": "twitch_hypetrain_total",
@@ -3829,11 +3989,11 @@ function listenerToLumiaVariable(listener, provider = "twitch") {
3829
3989
  "hypetrain-level-goal": "twitch_hypetrain_level_goal",
3830
3990
  "hypetrain-total": "twitch_hypetrain_total",
3831
3991
  "hypetrain-latest-top-contributors": "twitch_hypetrain_top_contributor",
3832
- "cheer-weekly-top-donation": "twitch_week_top_cheerer_amount",
3992
+ "cheer-weekly-top-donation": "twitch_week_top_cheerer.amount",
3833
3993
  "cheer-weekly-top-donator": "twitch_week_top_cheerer",
3834
- "cheer-monthly-top-donation": "twitch_month_top_cheerer_amount",
3994
+ "cheer-monthly-top-donation": "twitch_month_top_cheerer.amount",
3835
3995
  "cheer-monthly-top-donator": "twitch_month_top_cheerer",
3836
- "cheer-alltime-top-donation": "twitch_alltime_top_cheerer_amount",
3996
+ "cheer-alltime-top-donation": "twitch_alltime_top_cheerer.amount",
3837
3997
  "cheer-alltime-top-donator": "twitch_alltime_top_cheerer"
3838
3998
  };
3839
3999
  return m[resolvedListener] ?? resolvedListener.replace(/-/g, "_");
@@ -5329,7 +5489,6 @@ var SE_LISTENER_TO_LUMIA_CATEGORY = {
5329
5489
  "community-gift-latest": "gifts",
5330
5490
  "cheer-latest": "bits",
5331
5491
  "cheer-recent": "bits",
5332
- "cheerPurchase-latest": "bits",
5333
5492
  "tip-latest": "donation",
5334
5493
  "tip-recent": "donation",
5335
5494
  "raid-latest": "raids",
@@ -11372,11 +11531,10 @@ function substituteElementTokens(input, options = {}) {
11372
11531
  listener,
11373
11532
  isKnownProvider(tokenProvider) ? tokenProvider : provider
11374
11533
  );
11375
- if (field === "currency" && lumiaVar.endsWith("_amount")) {
11376
- return `{{${lumiaVar}_currency_symbol}}`;
11377
- }
11378
- if (field === "currency" && !lumiaVar.endsWith("_currency_symbol")) {
11379
- return `{{${lumiaVar}_currency_symbol}}`;
11534
+ if (field === "currency") {
11535
+ if (lumiaVar.endsWith("_amount")) return `{{${lumiaVar}_currency_symbol}}`;
11536
+ const base = lumiaVar.endsWith(".amount") ? lumiaVar.slice(0, -".amount".length) : lumiaVar;
11537
+ return `{{${base}.currencySymbol}}`;
11380
11538
  }
11381
11539
  return `{{${lumiaVar}}}`;
11382
11540
  }
package/dist/se-import.js CHANGED
@@ -90,40 +90,40 @@ var TWITCH_CONTEXTS = {
90
90
  name: "twitch_last_gifted",
91
91
  username: "twitch_last_gifted",
92
92
  sender: "twitch_last_gifter",
93
- amount: "twitch_last_gifter_amount",
94
- count: "twitch_last_gifter_amount"
93
+ amount: "twitch_last_gifter.amount",
94
+ count: "twitch_last_gifter.amount"
95
95
  },
96
96
  "subscriber-alltime-gifter": {
97
97
  name: "twitch_alltime_top_gifter",
98
98
  username: "twitch_alltime_top_gifter",
99
- amount: "twitch_alltime_top_gifter_amount",
100
- count: "twitch_alltime_top_gifter_amount"
99
+ amount: "twitch_alltime_top_gifter.amount",
100
+ count: "twitch_alltime_top_gifter.amount"
101
101
  },
102
102
  "cheer-latest": {
103
103
  name: "twitch_last_bit",
104
104
  username: "twitch_last_bit",
105
- amount: "twitch_last_bit_amount",
106
- count: "twitch_last_bit_amount"
105
+ amount: "twitch_last_bit.amount",
106
+ count: "twitch_last_bit.amount"
107
107
  },
108
108
  "tip-latest": {
109
109
  name: "latest_donator",
110
110
  username: "latest_donator",
111
- amount: "latest_donator_amount",
112
- count: "latest_donator_amount",
113
- currency: "latest_donator_currency_symbol"
111
+ amount: "latest_donator.amount",
112
+ count: "latest_donator.amount",
113
+ currency: "latest_donator.currencySymbol"
114
114
  },
115
115
  latest_donator: {
116
116
  name: "latest_donator",
117
117
  username: "latest_donator",
118
- amount: "latest_donator_amount",
119
- count: "latest_donator_amount",
120
- currency: "latest_donator_currency_symbol"
118
+ amount: "latest_donator.amount",
119
+ count: "latest_donator.amount",
120
+ currency: "latest_donator.currencySymbol"
121
121
  },
122
122
  "raid-latest": {
123
123
  name: "twitch_last_raider",
124
124
  username: "twitch_last_raider",
125
- amount: "twitch_last_raid_amount",
126
- count: "twitch_last_raid_amount"
125
+ amount: "twitch_last_raider.amount",
126
+ count: "twitch_last_raider.amount"
127
127
  },
128
128
  // Period counters: count/amount = the running counter for that window.
129
129
  // SE lets the streamer pick session / week / month / total on the same widget
@@ -222,7 +222,7 @@ var TWITCH_CONTEXTS = {
222
222
  // `*-top-donation` and `*-top-donator` are paired: SE nominally treats them
223
223
  // as "top single event" vs "top cumulative contributor", but the data
224
224
  // rendered for both lives in the same Lumia variable pair (`*_top_donator`
225
- // / `*_top_donator_amount`, `twitch_*_top_cheerer` / `..._amount`). SE
225
+ // / `*_top_donator.amount`, `twitch_*_top_cheerer` / `..._amount`). SE
226
226
  // widgets routinely use `{name}` against the `-donation` listener to mean
227
227
  // "the user who made the top donation", so the two rows below carry the
228
228
  // same name/username mapping — anything else falls through to the unscoped
@@ -230,106 +230,109 @@ var TWITCH_CONTEXTS = {
230
230
  "cheer-session-top-donation": {
231
231
  name: "twitch_session_top_cheerer",
232
232
  username: "twitch_session_top_cheerer",
233
- amount: "twitch_session_top_cheer_amount",
234
- count: "twitch_session_top_cheer_amount"
233
+ amount: "twitch_session_top_cheer.amount",
234
+ count: "twitch_session_top_cheer.amount"
235
235
  },
236
236
  "cheer-session-top-donator": {
237
237
  name: "twitch_session_top_cheerer",
238
238
  username: "twitch_session_top_cheerer",
239
- amount: "twitch_session_top_cheerer_amount",
240
- count: "twitch_session_top_cheerer_amount"
239
+ amount: "twitch_session_top_cheerer.amount",
240
+ count: "twitch_session_top_cheerer.amount"
241
241
  },
242
+ // SE semantics: `top-donation` = largest single cheer this period;
243
+ // `top-donator` = cumulative top giver this period. Map them to the
244
+ // distinct Lumia vars (`*_TOP_CHEER` vs `*_TOP_CHEERER`) so a widget
245
+ // configured for either one renders the right metric.
242
246
  "cheer-weekly-top-donation": {
243
- name: "twitch_week_top_cheerer",
244
- username: "twitch_week_top_cheerer",
245
- amount: "twitch_week_top_cheerer_amount",
246
- count: "twitch_week_top_cheerer_amount"
247
+ name: "twitch_week_top_cheer",
248
+ username: "twitch_week_top_cheer",
249
+ amount: "twitch_week_top_cheer.amount",
250
+ count: "twitch_week_top_cheer.amount"
247
251
  },
248
252
  "cheer-weekly-top-donator": {
249
253
  name: "twitch_week_top_cheerer",
250
254
  username: "twitch_week_top_cheerer",
251
- amount: "twitch_week_top_cheerer_amount",
252
- count: "twitch_week_top_cheerer_amount"
255
+ amount: "twitch_week_top_cheerer.amount",
256
+ count: "twitch_week_top_cheerer.amount"
253
257
  },
254
258
  "cheer-monthly-top-donation": {
255
- name: "twitch_month_top_cheerer",
256
- username: "twitch_month_top_cheerer",
257
- amount: "twitch_month_top_cheerer_amount",
258
- count: "twitch_month_top_cheerer_amount"
259
+ name: "twitch_month_top_cheer",
260
+ username: "twitch_month_top_cheer",
261
+ amount: "twitch_month_top_cheer.amount",
262
+ count: "twitch_month_top_cheer.amount"
259
263
  },
260
264
  "cheer-monthly-top-donator": {
261
265
  name: "twitch_month_top_cheerer",
262
266
  username: "twitch_month_top_cheerer",
263
- amount: "twitch_month_top_cheerer_amount",
264
- count: "twitch_month_top_cheerer_amount"
267
+ amount: "twitch_month_top_cheerer.amount",
268
+ count: "twitch_month_top_cheerer.amount"
265
269
  },
266
270
  "cheer-alltime-top-donation": {
267
- name: "twitch_alltime_top_cheerer",
268
- username: "twitch_alltime_top_cheerer",
269
- amount: "twitch_alltime_top_cheerer_amount",
270
- count: "twitch_alltime_top_cheerer_amount"
271
+ name: "twitch_alltime_top_cheer",
272
+ username: "twitch_alltime_top_cheer",
273
+ amount: "twitch_alltime_top_cheer.amount",
274
+ count: "twitch_alltime_top_cheer.amount"
271
275
  },
272
276
  "cheer-alltime-top-donator": {
273
277
  name: "twitch_alltime_top_cheerer",
274
278
  username: "twitch_alltime_top_cheerer",
275
- amount: "twitch_alltime_top_cheerer_amount",
276
- count: "twitch_alltime_top_cheerer_amount"
279
+ amount: "twitch_alltime_top_cheerer.amount",
280
+ count: "twitch_alltime_top_cheerer.amount"
277
281
  },
282
+ // Same single-vs-cumulative distinction for tips: `top-donation` =
283
+ // biggest single tip (`*_TOP_DONATOR`); `top-donator` = cumulative top
284
+ // giver (`*_TOP_TIPPER`).
278
285
  "tip-session-top-donation": {
279
286
  name: "session_top_donator",
280
287
  username: "session_top_donator",
281
- amount: "session_top_donator_amount",
282
- count: "session_top_donator_amount",
283
- currency: "session_top_donator_currency_symbol"
288
+ amount: "session_top_donator.amount",
289
+ count: "session_top_donator.amount",
290
+ currency: "session_top_donator.currencySymbol"
284
291
  },
285
292
  "tip-session-top-donator": {
286
- name: "session_top_donator",
287
- username: "session_top_donator",
288
- amount: "session_top_donator_amount",
289
- count: "session_top_donator_amount",
290
- currency: "session_top_donator_currency_symbol"
293
+ name: "session_top_tipper",
294
+ username: "session_top_tipper",
295
+ amount: "session_top_tipper_amount",
296
+ count: "session_top_tipper_amount"
291
297
  },
292
298
  "tip-weekly-top-donation": {
293
299
  name: "week_top_donator",
294
300
  username: "week_top_donator",
295
- amount: "week_top_donator_amount",
296
- count: "week_top_donator_amount",
297
- currency: "week_top_donator_currency_symbol"
301
+ amount: "week_top_donator.amount",
302
+ count: "week_top_donator.amount",
303
+ currency: "week_top_donator.currencySymbol"
298
304
  },
299
305
  "tip-weekly-top-donator": {
300
- name: "week_top_donator",
301
- username: "week_top_donator",
302
- amount: "week_top_donator_amount",
303
- count: "week_top_donator_amount",
304
- currency: "week_top_donator_currency_symbol"
306
+ name: "week_top_tipper",
307
+ username: "week_top_tipper",
308
+ amount: "week_top_tipper_amount",
309
+ count: "week_top_tipper_amount"
305
310
  },
306
311
  "tip-monthly-top-donation": {
307
312
  name: "month_top_donator",
308
313
  username: "month_top_donator",
309
- amount: "month_top_donator_amount",
310
- count: "month_top_donator_amount",
311
- currency: "month_top_donator_currency_symbol"
314
+ amount: "month_top_donator.amount",
315
+ count: "month_top_donator.amount",
316
+ currency: "month_top_donator.currencySymbol"
312
317
  },
313
318
  "tip-monthly-top-donator": {
314
- name: "month_top_donator",
315
- username: "month_top_donator",
316
- amount: "month_top_donator_amount",
317
- count: "month_top_donator_amount",
318
- currency: "month_top_donator_currency_symbol"
319
+ name: "month_top_tipper",
320
+ username: "month_top_tipper",
321
+ amount: "month_top_tipper_amount",
322
+ count: "month_top_tipper_amount"
319
323
  },
320
324
  "tip-alltime-top-donation": {
321
325
  name: "top_donator",
322
326
  username: "top_donator",
323
- amount: "top_donator_amount",
324
- count: "top_donator_amount",
325
- currency: "top_donator_currency_symbol"
327
+ amount: "top_donator.amount",
328
+ count: "top_donator.amount",
329
+ currency: "top_donator.currencySymbol"
326
330
  },
327
331
  "tip-alltime-top-donator": {
328
- name: "top_donator",
329
- username: "top_donator",
330
- amount: "top_donator_amount",
331
- count: "top_donator_amount",
332
- currency: "top_donator_currency_symbol"
332
+ name: "alltime_top_tipper",
333
+ username: "alltime_top_tipper",
334
+ amount: "alltime_top_tipper_amount",
335
+ count: "alltime_top_tipper_amount"
333
336
  },
334
337
  // Botcounter — SE uses `{wins}` for the running chat count; the dispatcher's
335
338
  // fallbackVar for `se-widget-botcounter` is `twitch_session_chat_count`, so
@@ -364,7 +367,84 @@ var TWITCH_CONTEXTS = {
364
367
  items: "fourthwall_last_order.items",
365
368
  item: "fourthwall_last_order.firstItem.name",
366
369
  message: "fourthwall_last_order.message"
367
- }
370
+ },
371
+ "follower-goal": { amount: "follower_goal", count: "follower_goal" },
372
+ "subscriber-goal": { amount: "subscriber_goal", count: "subscriber_goal" },
373
+ "cheer-goal": { amount: "cheer_goal", count: "cheer_goal" },
374
+ "tip-goal": { amount: "tip_goal", count: "tip_goal" },
375
+ "superchat-goal": { amount: "superchat_goal", count: "superchat_goal" },
376
+ "merch-goal-orders": { amount: "merch_goal_orders", count: "merch_goal_orders" },
377
+ "merch-goal-items": { amount: "merch_goal_items", count: "merch_goal_items" },
378
+ "merch-goal-total": { amount: "merch_goal_total", count: "merch_goal_total" },
379
+ "hypetrain-latest": { amount: "twitch_hypetrain_level", count: "twitch_hypetrain_level" },
380
+ "hypetrain-level-progress": { amount: "twitch_hypetrain_progress", count: "twitch_hypetrain_progress" },
381
+ "hypetrain-level-goal": { amount: "twitch_hypetrain_level_goal", count: "twitch_hypetrain_level_goal" },
382
+ "hypetrain-total": { amount: "twitch_hypetrain_total", count: "twitch_hypetrain_total" },
383
+ "hypetrain-latest-top-contributors": {
384
+ name: "twitch_hypetrain_top_contributor",
385
+ username: "twitch_hypetrain_top_contributor",
386
+ amount: "twitch_hypetrain_top_contributor_amount",
387
+ count: "twitch_hypetrain_top_contributor_amount"
388
+ },
389
+ "community-gift-latest": {
390
+ name: "twitch_last_gifter",
391
+ username: "twitch_last_gifter",
392
+ amount: "twitch_last_gifter_amount",
393
+ count: "twitch_last_gifter_amount"
394
+ },
395
+ "channel-points-latest": {
396
+ name: "twitch_last_channel_points_redeemer",
397
+ username: "twitch_last_channel_points_redeemer",
398
+ amount: "twitch_last_channel_points_amount",
399
+ count: "twitch_last_channel_points_amount"
400
+ },
401
+ "charityCampaignDonation-latest": {
402
+ name: "last_charity_donator",
403
+ username: "last_charity_donator",
404
+ amount: "last_charity_donation_amount",
405
+ count: "last_charity_donation_amount"
406
+ },
407
+ "charityCampaignDonation-session-top-donation": {
408
+ name: "session_top_charity_donation",
409
+ amount: "session_top_charity_donation_amount",
410
+ count: "session_top_charity_donation_amount"
411
+ },
412
+ "charityCampaignDonation-weekly-top-donation": {
413
+ name: "week_top_charity_donation",
414
+ amount: "week_top_charity_donation_amount",
415
+ count: "week_top_charity_donation_amount"
416
+ },
417
+ "charityCampaignDonation-monthly-top-donation": {
418
+ name: "month_top_charity_donation",
419
+ amount: "month_top_charity_donation_amount",
420
+ count: "month_top_charity_donation_amount"
421
+ },
422
+ "charityCampaignDonation-alltime-top-donation": {
423
+ name: "alltime_top_charity_donation",
424
+ amount: "alltime_top_charity_donation_amount",
425
+ count: "alltime_top_charity_donation_amount"
426
+ },
427
+ "charityCampaignDonation-session-top-donator": {
428
+ name: "session_top_charity_donator",
429
+ amount: "session_top_charity_donator_amount",
430
+ count: "session_top_charity_donator_amount"
431
+ },
432
+ "charityCampaignDonation-weekly-top-donator": {
433
+ name: "week_top_charity_donator",
434
+ amount: "week_top_charity_donator_amount",
435
+ count: "week_top_charity_donator_amount"
436
+ },
437
+ "charityCampaignDonation-monthly-top-donator": {
438
+ name: "month_top_charity_donator",
439
+ amount: "month_top_charity_donator_amount",
440
+ count: "month_top_charity_donator_amount"
441
+ },
442
+ "charityCampaignDonation-alltime-top-donator": {
443
+ name: "alltime_top_charity_donator",
444
+ amount: "alltime_top_charity_donator_amount",
445
+ count: "alltime_top_charity_donator_amount"
446
+ },
447
+ "host-latest": { name: "kick_last_host", username: "kick_last_host" }
368
448
  };
369
449
  var KICK_CONTEXTS = {
370
450
  "follower-latest": {
@@ -391,20 +471,20 @@ var KICK_CONTEXTS = {
391
471
  name: "kick_last_gifted",
392
472
  username: "kick_last_gifted",
393
473
  sender: "kick_last_gifter",
394
- amount: "kick_last_gifter_amount",
395
- count: "kick_last_gifter_amount"
474
+ amount: "kick_last_gifter.amount",
475
+ count: "kick_last_gifter.amount"
396
476
  },
397
477
  "cheer-latest": {
398
478
  name: "kick_last_kicks",
399
479
  username: "kick_last_kicks",
400
- amount: "kick_last_kicks_amount",
401
- count: "kick_last_kicks_amount"
480
+ amount: "kick_last_kicks.amount",
481
+ count: "kick_last_kicks.amount"
402
482
  },
403
483
  "raid-latest": {
404
484
  name: "kick_last_host",
405
485
  username: "kick_last_host",
406
- amount: "kick_last_host_amount",
407
- count: "kick_last_host_amount"
486
+ amount: "kick_last_host.amount",
487
+ count: "kick_last_host.amount"
408
488
  },
409
489
  "follower-session": {
410
490
  amount: "kick_session_follower_count",
@@ -564,6 +644,59 @@ var YOUTUBE_CONTEXTS = {
564
644
  "sponsor-gifted-session": {
565
645
  amount: "youtube_session_gift_members_count",
566
646
  count: "youtube_session_gift_members_count"
647
+ },
648
+ "superchat-latest": {
649
+ name: "youtube_last_superchatter",
650
+ username: "youtube_last_superchatter"
651
+ },
652
+ "superchat-session": { amount: "youtube_session_superchat_amount", count: "youtube_session_superchat_count" },
653
+ "superchat-week": { amount: "youtube_week_superchat_amount", count: "youtube_week_superchat_amount" },
654
+ "superchat-month": { amount: "youtube_month_superchat_amount", count: "youtube_month_superchat_amount" },
655
+ "superchat-total": { amount: "youtube_total_superchat_amount", count: "youtube_total_superchat_amount" },
656
+ "superchat-count": { amount: "youtube_session_superchat_count", count: "youtube_session_superchat_count" },
657
+ "superchat-session-top-donation": {
658
+ name: "youtube_session_top_superchat",
659
+ amount: "youtube_session_top_superchat_amount",
660
+ count: "youtube_session_top_superchat_amount"
661
+ },
662
+ "superchat-weekly-top-donation": {
663
+ name: "youtube_week_top_superchat",
664
+ amount: "youtube_week_top_superchat_amount",
665
+ count: "youtube_week_top_superchat_amount"
666
+ },
667
+ "superchat-monthly-top-donation": {
668
+ name: "youtube_month_top_superchat",
669
+ amount: "youtube_month_top_superchat_amount",
670
+ count: "youtube_month_top_superchat_amount"
671
+ },
672
+ "superchat-alltime-top-donation": {
673
+ name: "youtube_alltime_top_superchat",
674
+ amount: "youtube_alltime_top_superchat_amount",
675
+ count: "youtube_alltime_top_superchat_amount"
676
+ },
677
+ "superchat-session-top-donator": {
678
+ name: "youtube_session_top_superchatter",
679
+ username: "youtube_session_top_superchatter",
680
+ amount: "youtube_session_top_superchatter_amount",
681
+ count: "youtube_session_top_superchatter_amount"
682
+ },
683
+ "superchat-weekly-top-donator": {
684
+ name: "youtube_week_top_superchatter",
685
+ username: "youtube_week_top_superchatter",
686
+ amount: "youtube_week_top_superchatter_amount",
687
+ count: "youtube_week_top_superchatter_amount"
688
+ },
689
+ "superchat-monthly-top-donator": {
690
+ name: "youtube_month_top_superchatter",
691
+ username: "youtube_month_top_superchatter",
692
+ amount: "youtube_month_top_superchatter_amount",
693
+ count: "youtube_month_top_superchatter_amount"
694
+ },
695
+ "superchat-alltime-top-donator": {
696
+ name: "youtube_alltime_top_superchatter",
697
+ username: "youtube_alltime_top_superchatter",
698
+ amount: "youtube_alltime_top_superchatter_amount",
699
+ count: "youtube_alltime_top_superchatter_amount"
567
700
  }
568
701
  };
569
702
  var RECENT_TO_LATEST_LISTENER = {
@@ -572,6 +705,9 @@ var RECENT_TO_LATEST_LISTENER = {
572
705
  "cheer-recent": "cheer-latest",
573
706
  "tip-recent": "tip-latest",
574
707
  "raid-recent": "raid-latest",
708
+ "host-recent": "host-latest",
709
+ "superchat-recent": "superchat-latest",
710
+ "charityCampaignDonation-recent": "charityCampaignDonation-latest",
575
711
  // SE's YouTube "sponsor" aliases (legacy YouTube member terminology).
576
712
  "sponsor-recent": "sponsor-latest"
577
713
  };
@@ -645,7 +781,13 @@ var KICK_LISTENER_VARS = {
645
781
  "subscriber-total": "kick_total_subscriber_count",
646
782
  "subscriber-gifted-session": "kick_session_gifts_count",
647
783
  "cheer-session": "kick_session_kicks_count",
648
- "cheer-total": "kick_total_kicks_count"
784
+ "cheer-total": "kick_total_kicks_count",
785
+ "host-latest": "kick_last_host",
786
+ "follower-goal": "follower_goal",
787
+ "subscriber-goal": "subscriber_goal",
788
+ "cheer-goal": "cheer_goal",
789
+ "tip-goal": "tip_goal",
790
+ "superchat-goal": "superchat_goal"
649
791
  };
650
792
  var YOUTUBE_LISTENER_VARS = {
651
793
  "follower-latest": "youtube_last_subscriber",
@@ -676,7 +818,25 @@ var YOUTUBE_LISTENER_VARS = {
676
818
  "subscriber-month": "youtube_month_member_count",
677
819
  "subscriber-total": "youtube_total_member_count",
678
820
  "subscriber-gifted-session": "youtube_session_gift_members_count",
679
- "cheer-session": "youtube_session_superchat_count"
821
+ "cheer-session": "youtube_session_superchat_count",
822
+ "superchat-latest": "youtube_last_superchatter",
823
+ "superchat-session": "youtube_session_superchat_amount",
824
+ "superchat-week": "youtube_week_superchat_amount",
825
+ "superchat-month": "youtube_month_superchat_amount",
826
+ "superchat-total": "youtube_total_superchat_amount",
827
+ "superchat-count": "youtube_session_superchat_count",
828
+ "superchat-session-top-donation": "youtube_session_top_superchat",
829
+ "superchat-weekly-top-donation": "youtube_week_top_superchat",
830
+ "superchat-monthly-top-donation": "youtube_month_top_superchat",
831
+ "superchat-alltime-top-donation": "youtube_alltime_top_superchat",
832
+ "superchat-session-top-donator": "youtube_session_top_superchatter",
833
+ "superchat-weekly-top-donator": "youtube_week_top_superchatter",
834
+ "superchat-monthly-top-donator": "youtube_month_top_superchatter",
835
+ "superchat-alltime-top-donator": "youtube_alltime_top_superchatter",
836
+ "follower-goal": "follower_goal",
837
+ "subscriber-goal": "subscriber_goal",
838
+ "superchat-goal": "superchat_goal",
839
+ "tip-goal": "tip_goal"
680
840
  };
681
841
  function listenerToLumiaVariable(listener, provider = "twitch") {
682
842
  if (typeof listener !== "string" || !listener) return "username";
@@ -733,15 +893,15 @@ function listenerToLumiaVariable(listener, provider = "twitch") {
733
893
  "tip-total": "total_donation_amount",
734
894
  "tip-count": "donation_count",
735
895
  // Top donors / cheerers — session / week / month / all-time
736
- "tip-session-top-donation": "session_top_donator_amount",
896
+ "tip-session-top-donation": "session_top_donator.amount",
737
897
  "tip-session-top-donator": "session_top_donator",
738
- "tip-weekly-top-donation": "week_top_donator_amount",
898
+ "tip-weekly-top-donation": "week_top_donator.amount",
739
899
  "tip-weekly-top-donator": "week_top_donator",
740
- "tip-monthly-top-donation": "month_top_donator_amount",
900
+ "tip-monthly-top-donation": "month_top_donator.amount",
741
901
  "tip-monthly-top-donator": "month_top_donator",
742
- "tip-alltime-top-donation": "top_donator_amount",
902
+ "tip-alltime-top-donation": "top_donator.amount",
743
903
  "tip-alltime-top-donator": "top_donator",
744
- "cheer-session-top-donation": "twitch_session_top_cheer_amount",
904
+ "cheer-session-top-donation": "twitch_session_top_cheer.amount",
745
905
  "cheer-session-top-donator": "twitch_session_top_cheerer",
746
906
  // Hype train readouts (SE captures these as listener keys on text widgets)
747
907
  "hypetrain-latest": "twitch_hypetrain_total",
@@ -749,11 +909,11 @@ function listenerToLumiaVariable(listener, provider = "twitch") {
749
909
  "hypetrain-level-goal": "twitch_hypetrain_level_goal",
750
910
  "hypetrain-total": "twitch_hypetrain_total",
751
911
  "hypetrain-latest-top-contributors": "twitch_hypetrain_top_contributor",
752
- "cheer-weekly-top-donation": "twitch_week_top_cheerer_amount",
912
+ "cheer-weekly-top-donation": "twitch_week_top_cheerer.amount",
753
913
  "cheer-weekly-top-donator": "twitch_week_top_cheerer",
754
- "cheer-monthly-top-donation": "twitch_month_top_cheerer_amount",
914
+ "cheer-monthly-top-donation": "twitch_month_top_cheerer.amount",
755
915
  "cheer-monthly-top-donator": "twitch_month_top_cheerer",
756
- "cheer-alltime-top-donation": "twitch_alltime_top_cheerer_amount",
916
+ "cheer-alltime-top-donation": "twitch_alltime_top_cheerer.amount",
757
917
  "cheer-alltime-top-donator": "twitch_alltime_top_cheerer"
758
918
  };
759
919
  return m[resolvedListener] ?? resolvedListener.replace(/-/g, "_");
@@ -2249,7 +2409,6 @@ var SE_LISTENER_TO_LUMIA_CATEGORY = {
2249
2409
  "community-gift-latest": "gifts",
2250
2410
  "cheer-latest": "bits",
2251
2411
  "cheer-recent": "bits",
2252
- "cheerPurchase-latest": "bits",
2253
2412
  "tip-latest": "donation",
2254
2413
  "tip-recent": "donation",
2255
2414
  "raid-latest": "raids",
@@ -10248,11 +10407,10 @@ function substituteElementTokens(input, options = {}) {
10248
10407
  listener,
10249
10408
  isKnownProvider(tokenProvider) ? tokenProvider : provider
10250
10409
  );
10251
- if (field === "currency" && lumiaVar.endsWith("_amount")) {
10252
- return `{{${lumiaVar}_currency_symbol}}`;
10253
- }
10254
- if (field === "currency" && !lumiaVar.endsWith("_currency_symbol")) {
10255
- return `{{${lumiaVar}_currency_symbol}}`;
10410
+ if (field === "currency") {
10411
+ if (lumiaVar.endsWith("_amount")) return `{{${lumiaVar}_currency_symbol}}`;
10412
+ const base = lumiaVar.endsWith(".amount") ? lumiaVar.slice(0, -".amount".length) : lumiaVar;
10413
+ return `{{${base}.currencySymbol}}`;
10256
10414
  }
10257
10415
  return `{{${lumiaVar}}}`;
10258
10416
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lumiastream/ui",
3
- "version": "0.6.6",
3
+ "version": "0.6.8",
4
4
  "author": "Lumia Stream",
5
5
  "license": "ISC",
6
6
  "description": "Lumia UI Kit",
@@ -128,8 +128,8 @@
128
128
  "vitest": "^4.1.6"
129
129
  },
130
130
  "dependencies": {
131
- "@lumiastream/lumia-translations": "1.16.1",
132
- "@lumiastream/lumia-types": "^3.3.7-alpha.2",
131
+ "@lumiastream/lumia-translations": "1.16.5",
132
+ "@lumiastream/lumia-types": "3.6.3",
133
133
  "classnames": "^2.5.1",
134
134
  "globals": "^17.4.0",
135
135
  "nanoid": "^5.1.11",