@lumiastream/ui 0.6.6-beta.1 → 0.6.7

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,138 @@ 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
+ "cheerPurchase-latest": {
3470
+ name: "twitch_last_bit",
3471
+ username: "twitch_last_bit",
3472
+ amount: "twitch_last_bit.amount",
3473
+ count: "twitch_last_bit.amount"
3474
+ },
3475
+ "cheerPurchase-session-top-donator": {
3476
+ name: "twitch_session_top_cheerer",
3477
+ username: "twitch_session_top_cheerer",
3478
+ amount: "twitch_session_top_cheerer.amount",
3479
+ count: "twitch_session_top_cheerer.amount"
3480
+ },
3481
+ "cheerPurchase-weekly-top-donator": {
3482
+ name: "twitch_week_top_cheerer",
3483
+ username: "twitch_week_top_cheerer",
3484
+ amount: "twitch_week_top_cheerer.amount",
3485
+ count: "twitch_week_top_cheerer.amount"
3486
+ },
3487
+ "cheerPurchase-monthly-top-donator": {
3488
+ name: "twitch_month_top_cheerer",
3489
+ username: "twitch_month_top_cheerer",
3490
+ amount: "twitch_month_top_cheerer.amount",
3491
+ count: "twitch_month_top_cheerer.amount"
3492
+ },
3493
+ "cheerPurchase-alltime-top-donator": {
3494
+ name: "twitch_alltime_top_cheerer",
3495
+ username: "twitch_alltime_top_cheerer",
3496
+ amount: "twitch_alltime_top_cheerer.amount",
3497
+ count: "twitch_alltime_top_cheerer.amount"
3498
+ },
3499
+ "cheerPurchase-session-top-donation": {
3500
+ name: "twitch_session_top_cheer",
3501
+ username: "twitch_session_top_cheer",
3502
+ amount: "twitch_session_top_cheer.amount",
3503
+ count: "twitch_session_top_cheer.amount"
3504
+ },
3505
+ "cheerPurchase-weekly-top-donation": {
3506
+ name: "twitch_week_top_cheer",
3507
+ username: "twitch_week_top_cheer",
3508
+ amount: "twitch_week_top_cheer.amount",
3509
+ count: "twitch_week_top_cheer.amount"
3510
+ },
3511
+ "cheerPurchase-monthly-top-donation": {
3512
+ name: "twitch_month_top_cheer",
3513
+ username: "twitch_month_top_cheer",
3514
+ amount: "twitch_month_top_cheer.amount",
3515
+ count: "twitch_month_top_cheer.amount"
3516
+ },
3517
+ "cheerPurchase-alltime-top-donation": {
3518
+ name: "twitch_alltime_top_cheer",
3519
+ username: "twitch_alltime_top_cheer",
3520
+ amount: "twitch_alltime_top_cheer.amount",
3521
+ count: "twitch_alltime_top_cheer.amount"
3522
+ },
3523
+ "community-gift-latest": {
3524
+ name: "twitch_last_gifter",
3525
+ username: "twitch_last_gifter",
3526
+ amount: "twitch_last_gifter_amount",
3527
+ count: "twitch_last_gifter_amount"
3528
+ },
3529
+ "channel-points-latest": {
3530
+ name: "twitch_last_channel_points_redeemer",
3531
+ username: "twitch_last_channel_points_redeemer",
3532
+ amount: "twitch_last_channel_points_amount",
3533
+ count: "twitch_last_channel_points_amount"
3534
+ },
3535
+ "charityCampaignDonation-latest": {
3536
+ name: "last_charity_donator",
3537
+ username: "last_charity_donator",
3538
+ amount: "last_charity_donation_amount",
3539
+ count: "last_charity_donation_amount"
3540
+ },
3541
+ "charityCampaignDonation-session-top-donation": {
3542
+ name: "session_top_charity_donation",
3543
+ amount: "session_top_charity_donation_amount",
3544
+ count: "session_top_charity_donation_amount"
3545
+ },
3546
+ "charityCampaignDonation-weekly-top-donation": {
3547
+ name: "week_top_charity_donation",
3548
+ amount: "week_top_charity_donation_amount",
3549
+ count: "week_top_charity_donation_amount"
3550
+ },
3551
+ "charityCampaignDonation-monthly-top-donation": {
3552
+ name: "month_top_charity_donation",
3553
+ amount: "month_top_charity_donation_amount",
3554
+ count: "month_top_charity_donation_amount"
3555
+ },
3556
+ "charityCampaignDonation-alltime-top-donation": {
3557
+ name: "alltime_top_charity_donation",
3558
+ amount: "alltime_top_charity_donation_amount",
3559
+ count: "alltime_top_charity_donation_amount"
3560
+ },
3561
+ "charityCampaignDonation-session-top-donator": {
3562
+ name: "session_top_charity_donator",
3563
+ amount: "session_top_charity_donator_amount",
3564
+ count: "session_top_charity_donator_amount"
3565
+ },
3566
+ "charityCampaignDonation-weekly-top-donator": {
3567
+ name: "week_top_charity_donator",
3568
+ amount: "week_top_charity_donator_amount",
3569
+ count: "week_top_charity_donator_amount"
3570
+ },
3571
+ "charityCampaignDonation-monthly-top-donator": {
3572
+ name: "month_top_charity_donator",
3573
+ amount: "month_top_charity_donator_amount",
3574
+ count: "month_top_charity_donator_amount"
3575
+ },
3576
+ "charityCampaignDonation-alltime-top-donator": {
3577
+ name: "alltime_top_charity_donator",
3578
+ amount: "alltime_top_charity_donator_amount",
3579
+ count: "alltime_top_charity_donator_amount"
3580
+ },
3581
+ "host-latest": { name: "kick_last_host", username: "kick_last_host" }
3448
3582
  };
3449
3583
  var KICK_CONTEXTS = {
3450
3584
  "follower-latest": {
@@ -3471,20 +3605,20 @@ var KICK_CONTEXTS = {
3471
3605
  name: "kick_last_gifted",
3472
3606
  username: "kick_last_gifted",
3473
3607
  sender: "kick_last_gifter",
3474
- amount: "kick_last_gifter_amount",
3475
- count: "kick_last_gifter_amount"
3608
+ amount: "kick_last_gifter.amount",
3609
+ count: "kick_last_gifter.amount"
3476
3610
  },
3477
3611
  "cheer-latest": {
3478
3612
  name: "kick_last_kicks",
3479
3613
  username: "kick_last_kicks",
3480
- amount: "kick_last_kicks_amount",
3481
- count: "kick_last_kicks_amount"
3614
+ amount: "kick_last_kicks.amount",
3615
+ count: "kick_last_kicks.amount"
3482
3616
  },
3483
3617
  "raid-latest": {
3484
3618
  name: "kick_last_host",
3485
3619
  username: "kick_last_host",
3486
- amount: "kick_last_host_amount",
3487
- count: "kick_last_host_amount"
3620
+ amount: "kick_last_host.amount",
3621
+ count: "kick_last_host.amount"
3488
3622
  },
3489
3623
  "follower-session": {
3490
3624
  amount: "kick_session_follower_count",
@@ -3644,14 +3778,71 @@ var YOUTUBE_CONTEXTS = {
3644
3778
  "sponsor-gifted-session": {
3645
3779
  amount: "youtube_session_gift_members_count",
3646
3780
  count: "youtube_session_gift_members_count"
3781
+ },
3782
+ "superchat-latest": {
3783
+ name: "youtube_last_superchatter",
3784
+ username: "youtube_last_superchatter"
3785
+ },
3786
+ "superchat-session": { amount: "youtube_session_superchat_amount", count: "youtube_session_superchat_count" },
3787
+ "superchat-week": { amount: "youtube_week_superchat_amount", count: "youtube_week_superchat_amount" },
3788
+ "superchat-month": { amount: "youtube_month_superchat_amount", count: "youtube_month_superchat_amount" },
3789
+ "superchat-total": { amount: "youtube_total_superchat_amount", count: "youtube_total_superchat_amount" },
3790
+ "superchat-count": { amount: "youtube_session_superchat_count", count: "youtube_session_superchat_count" },
3791
+ "superchat-session-top-donation": {
3792
+ name: "youtube_session_top_superchat",
3793
+ amount: "youtube_session_top_superchat_amount",
3794
+ count: "youtube_session_top_superchat_amount"
3795
+ },
3796
+ "superchat-weekly-top-donation": {
3797
+ name: "youtube_week_top_superchat",
3798
+ amount: "youtube_week_top_superchat_amount",
3799
+ count: "youtube_week_top_superchat_amount"
3800
+ },
3801
+ "superchat-monthly-top-donation": {
3802
+ name: "youtube_month_top_superchat",
3803
+ amount: "youtube_month_top_superchat_amount",
3804
+ count: "youtube_month_top_superchat_amount"
3805
+ },
3806
+ "superchat-alltime-top-donation": {
3807
+ name: "youtube_alltime_top_superchat",
3808
+ amount: "youtube_alltime_top_superchat_amount",
3809
+ count: "youtube_alltime_top_superchat_amount"
3810
+ },
3811
+ "superchat-session-top-donator": {
3812
+ name: "youtube_session_top_superchatter",
3813
+ username: "youtube_session_top_superchatter",
3814
+ amount: "youtube_session_top_superchatter_amount",
3815
+ count: "youtube_session_top_superchatter_amount"
3816
+ },
3817
+ "superchat-weekly-top-donator": {
3818
+ name: "youtube_week_top_superchatter",
3819
+ username: "youtube_week_top_superchatter",
3820
+ amount: "youtube_week_top_superchatter_amount",
3821
+ count: "youtube_week_top_superchatter_amount"
3822
+ },
3823
+ "superchat-monthly-top-donator": {
3824
+ name: "youtube_month_top_superchatter",
3825
+ username: "youtube_month_top_superchatter",
3826
+ amount: "youtube_month_top_superchatter_amount",
3827
+ count: "youtube_month_top_superchatter_amount"
3828
+ },
3829
+ "superchat-alltime-top-donator": {
3830
+ name: "youtube_alltime_top_superchatter",
3831
+ username: "youtube_alltime_top_superchatter",
3832
+ amount: "youtube_alltime_top_superchatter_amount",
3833
+ count: "youtube_alltime_top_superchatter_amount"
3647
3834
  }
3648
3835
  };
3649
3836
  var RECENT_TO_LATEST_LISTENER = {
3650
3837
  "follower-recent": "follower-latest",
3651
3838
  "subscriber-recent": "subscriber-latest",
3652
3839
  "cheer-recent": "cheer-latest",
3840
+ "cheerPurchase-recent": "cheerPurchase-latest",
3653
3841
  "tip-recent": "tip-latest",
3654
3842
  "raid-recent": "raid-latest",
3843
+ "host-recent": "host-latest",
3844
+ "superchat-recent": "superchat-latest",
3845
+ "charityCampaignDonation-recent": "charityCampaignDonation-latest",
3655
3846
  // SE's YouTube "sponsor" aliases (legacy YouTube member terminology).
3656
3847
  "sponsor-recent": "sponsor-latest"
3657
3848
  };
@@ -3725,7 +3916,13 @@ var KICK_LISTENER_VARS = {
3725
3916
  "subscriber-total": "kick_total_subscriber_count",
3726
3917
  "subscriber-gifted-session": "kick_session_gifts_count",
3727
3918
  "cheer-session": "kick_session_kicks_count",
3728
- "cheer-total": "kick_total_kicks_count"
3919
+ "cheer-total": "kick_total_kicks_count",
3920
+ "host-latest": "kick_last_host",
3921
+ "follower-goal": "follower_goal",
3922
+ "subscriber-goal": "subscriber_goal",
3923
+ "cheer-goal": "cheer_goal",
3924
+ "tip-goal": "tip_goal",
3925
+ "superchat-goal": "superchat_goal"
3729
3926
  };
3730
3927
  var YOUTUBE_LISTENER_VARS = {
3731
3928
  "follower-latest": "youtube_last_subscriber",
@@ -3756,7 +3953,25 @@ var YOUTUBE_LISTENER_VARS = {
3756
3953
  "subscriber-month": "youtube_month_member_count",
3757
3954
  "subscriber-total": "youtube_total_member_count",
3758
3955
  "subscriber-gifted-session": "youtube_session_gift_members_count",
3759
- "cheer-session": "youtube_session_superchat_count"
3956
+ "cheer-session": "youtube_session_superchat_count",
3957
+ "superchat-latest": "youtube_last_superchatter",
3958
+ "superchat-session": "youtube_session_superchat_amount",
3959
+ "superchat-week": "youtube_week_superchat_amount",
3960
+ "superchat-month": "youtube_month_superchat_amount",
3961
+ "superchat-total": "youtube_total_superchat_amount",
3962
+ "superchat-count": "youtube_session_superchat_count",
3963
+ "superchat-session-top-donation": "youtube_session_top_superchat",
3964
+ "superchat-weekly-top-donation": "youtube_week_top_superchat",
3965
+ "superchat-monthly-top-donation": "youtube_month_top_superchat",
3966
+ "superchat-alltime-top-donation": "youtube_alltime_top_superchat",
3967
+ "superchat-session-top-donator": "youtube_session_top_superchatter",
3968
+ "superchat-weekly-top-donator": "youtube_week_top_superchatter",
3969
+ "superchat-monthly-top-donator": "youtube_month_top_superchatter",
3970
+ "superchat-alltime-top-donator": "youtube_alltime_top_superchatter",
3971
+ "follower-goal": "follower_goal",
3972
+ "subscriber-goal": "subscriber_goal",
3973
+ "superchat-goal": "superchat_goal",
3974
+ "tip-goal": "tip_goal"
3760
3975
  };
3761
3976
  function listenerToLumiaVariable(listener, provider = "twitch") {
3762
3977
  if (typeof listener !== "string" || !listener) return "username";
@@ -3813,15 +4028,15 @@ function listenerToLumiaVariable(listener, provider = "twitch") {
3813
4028
  "tip-total": "total_donation_amount",
3814
4029
  "tip-count": "donation_count",
3815
4030
  // Top donors / cheerers — session / week / month / all-time
3816
- "tip-session-top-donation": "session_top_donator_amount",
4031
+ "tip-session-top-donation": "session_top_donator.amount",
3817
4032
  "tip-session-top-donator": "session_top_donator",
3818
- "tip-weekly-top-donation": "week_top_donator_amount",
4033
+ "tip-weekly-top-donation": "week_top_donator.amount",
3819
4034
  "tip-weekly-top-donator": "week_top_donator",
3820
- "tip-monthly-top-donation": "month_top_donator_amount",
4035
+ "tip-monthly-top-donation": "month_top_donator.amount",
3821
4036
  "tip-monthly-top-donator": "month_top_donator",
3822
- "tip-alltime-top-donation": "top_donator_amount",
4037
+ "tip-alltime-top-donation": "top_donator.amount",
3823
4038
  "tip-alltime-top-donator": "top_donator",
3824
- "cheer-session-top-donation": "twitch_session_top_cheer_amount",
4039
+ "cheer-session-top-donation": "twitch_session_top_cheer.amount",
3825
4040
  "cheer-session-top-donator": "twitch_session_top_cheerer",
3826
4041
  // Hype train readouts (SE captures these as listener keys on text widgets)
3827
4042
  "hypetrain-latest": "twitch_hypetrain_total",
@@ -3829,11 +4044,11 @@ function listenerToLumiaVariable(listener, provider = "twitch") {
3829
4044
  "hypetrain-level-goal": "twitch_hypetrain_level_goal",
3830
4045
  "hypetrain-total": "twitch_hypetrain_total",
3831
4046
  "hypetrain-latest-top-contributors": "twitch_hypetrain_top_contributor",
3832
- "cheer-weekly-top-donation": "twitch_week_top_cheerer_amount",
4047
+ "cheer-weekly-top-donation": "twitch_week_top_cheerer.amount",
3833
4048
  "cheer-weekly-top-donator": "twitch_week_top_cheerer",
3834
- "cheer-monthly-top-donation": "twitch_month_top_cheerer_amount",
4049
+ "cheer-monthly-top-donation": "twitch_month_top_cheerer.amount",
3835
4050
  "cheer-monthly-top-donator": "twitch_month_top_cheerer",
3836
- "cheer-alltime-top-donation": "twitch_alltime_top_cheerer_amount",
4051
+ "cheer-alltime-top-donation": "twitch_alltime_top_cheerer.amount",
3837
4052
  "cheer-alltime-top-donator": "twitch_alltime_top_cheerer"
3838
4053
  };
3839
4054
  return m[resolvedListener] ?? resolvedListener.replace(/-/g, "_");
@@ -11372,11 +11587,10 @@ function substituteElementTokens(input, options = {}) {
11372
11587
  listener,
11373
11588
  isKnownProvider(tokenProvider) ? tokenProvider : provider
11374
11589
  );
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}}`;
11590
+ if (field === "currency") {
11591
+ if (lumiaVar.endsWith("_amount")) return `{{${lumiaVar}_currency_symbol}}`;
11592
+ const base = lumiaVar.endsWith(".amount") ? lumiaVar.slice(0, -".amount".length) : lumiaVar;
11593
+ return `{{${base}.currencySymbol}}`;
11380
11594
  }
11381
11595
  return `{{${lumiaVar}}}`;
11382
11596
  }
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,138 @@ 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
+ "cheerPurchase-latest": {
390
+ name: "twitch_last_bit",
391
+ username: "twitch_last_bit",
392
+ amount: "twitch_last_bit.amount",
393
+ count: "twitch_last_bit.amount"
394
+ },
395
+ "cheerPurchase-session-top-donator": {
396
+ name: "twitch_session_top_cheerer",
397
+ username: "twitch_session_top_cheerer",
398
+ amount: "twitch_session_top_cheerer.amount",
399
+ count: "twitch_session_top_cheerer.amount"
400
+ },
401
+ "cheerPurchase-weekly-top-donator": {
402
+ name: "twitch_week_top_cheerer",
403
+ username: "twitch_week_top_cheerer",
404
+ amount: "twitch_week_top_cheerer.amount",
405
+ count: "twitch_week_top_cheerer.amount"
406
+ },
407
+ "cheerPurchase-monthly-top-donator": {
408
+ name: "twitch_month_top_cheerer",
409
+ username: "twitch_month_top_cheerer",
410
+ amount: "twitch_month_top_cheerer.amount",
411
+ count: "twitch_month_top_cheerer.amount"
412
+ },
413
+ "cheerPurchase-alltime-top-donator": {
414
+ name: "twitch_alltime_top_cheerer",
415
+ username: "twitch_alltime_top_cheerer",
416
+ amount: "twitch_alltime_top_cheerer.amount",
417
+ count: "twitch_alltime_top_cheerer.amount"
418
+ },
419
+ "cheerPurchase-session-top-donation": {
420
+ name: "twitch_session_top_cheer",
421
+ username: "twitch_session_top_cheer",
422
+ amount: "twitch_session_top_cheer.amount",
423
+ count: "twitch_session_top_cheer.amount"
424
+ },
425
+ "cheerPurchase-weekly-top-donation": {
426
+ name: "twitch_week_top_cheer",
427
+ username: "twitch_week_top_cheer",
428
+ amount: "twitch_week_top_cheer.amount",
429
+ count: "twitch_week_top_cheer.amount"
430
+ },
431
+ "cheerPurchase-monthly-top-donation": {
432
+ name: "twitch_month_top_cheer",
433
+ username: "twitch_month_top_cheer",
434
+ amount: "twitch_month_top_cheer.amount",
435
+ count: "twitch_month_top_cheer.amount"
436
+ },
437
+ "cheerPurchase-alltime-top-donation": {
438
+ name: "twitch_alltime_top_cheer",
439
+ username: "twitch_alltime_top_cheer",
440
+ amount: "twitch_alltime_top_cheer.amount",
441
+ count: "twitch_alltime_top_cheer.amount"
442
+ },
443
+ "community-gift-latest": {
444
+ name: "twitch_last_gifter",
445
+ username: "twitch_last_gifter",
446
+ amount: "twitch_last_gifter_amount",
447
+ count: "twitch_last_gifter_amount"
448
+ },
449
+ "channel-points-latest": {
450
+ name: "twitch_last_channel_points_redeemer",
451
+ username: "twitch_last_channel_points_redeemer",
452
+ amount: "twitch_last_channel_points_amount",
453
+ count: "twitch_last_channel_points_amount"
454
+ },
455
+ "charityCampaignDonation-latest": {
456
+ name: "last_charity_donator",
457
+ username: "last_charity_donator",
458
+ amount: "last_charity_donation_amount",
459
+ count: "last_charity_donation_amount"
460
+ },
461
+ "charityCampaignDonation-session-top-donation": {
462
+ name: "session_top_charity_donation",
463
+ amount: "session_top_charity_donation_amount",
464
+ count: "session_top_charity_donation_amount"
465
+ },
466
+ "charityCampaignDonation-weekly-top-donation": {
467
+ name: "week_top_charity_donation",
468
+ amount: "week_top_charity_donation_amount",
469
+ count: "week_top_charity_donation_amount"
470
+ },
471
+ "charityCampaignDonation-monthly-top-donation": {
472
+ name: "month_top_charity_donation",
473
+ amount: "month_top_charity_donation_amount",
474
+ count: "month_top_charity_donation_amount"
475
+ },
476
+ "charityCampaignDonation-alltime-top-donation": {
477
+ name: "alltime_top_charity_donation",
478
+ amount: "alltime_top_charity_donation_amount",
479
+ count: "alltime_top_charity_donation_amount"
480
+ },
481
+ "charityCampaignDonation-session-top-donator": {
482
+ name: "session_top_charity_donator",
483
+ amount: "session_top_charity_donator_amount",
484
+ count: "session_top_charity_donator_amount"
485
+ },
486
+ "charityCampaignDonation-weekly-top-donator": {
487
+ name: "week_top_charity_donator",
488
+ amount: "week_top_charity_donator_amount",
489
+ count: "week_top_charity_donator_amount"
490
+ },
491
+ "charityCampaignDonation-monthly-top-donator": {
492
+ name: "month_top_charity_donator",
493
+ amount: "month_top_charity_donator_amount",
494
+ count: "month_top_charity_donator_amount"
495
+ },
496
+ "charityCampaignDonation-alltime-top-donator": {
497
+ name: "alltime_top_charity_donator",
498
+ amount: "alltime_top_charity_donator_amount",
499
+ count: "alltime_top_charity_donator_amount"
500
+ },
501
+ "host-latest": { name: "kick_last_host", username: "kick_last_host" }
368
502
  };
369
503
  var KICK_CONTEXTS = {
370
504
  "follower-latest": {
@@ -391,20 +525,20 @@ var KICK_CONTEXTS = {
391
525
  name: "kick_last_gifted",
392
526
  username: "kick_last_gifted",
393
527
  sender: "kick_last_gifter",
394
- amount: "kick_last_gifter_amount",
395
- count: "kick_last_gifter_amount"
528
+ amount: "kick_last_gifter.amount",
529
+ count: "kick_last_gifter.amount"
396
530
  },
397
531
  "cheer-latest": {
398
532
  name: "kick_last_kicks",
399
533
  username: "kick_last_kicks",
400
- amount: "kick_last_kicks_amount",
401
- count: "kick_last_kicks_amount"
534
+ amount: "kick_last_kicks.amount",
535
+ count: "kick_last_kicks.amount"
402
536
  },
403
537
  "raid-latest": {
404
538
  name: "kick_last_host",
405
539
  username: "kick_last_host",
406
- amount: "kick_last_host_amount",
407
- count: "kick_last_host_amount"
540
+ amount: "kick_last_host.amount",
541
+ count: "kick_last_host.amount"
408
542
  },
409
543
  "follower-session": {
410
544
  amount: "kick_session_follower_count",
@@ -564,14 +698,71 @@ var YOUTUBE_CONTEXTS = {
564
698
  "sponsor-gifted-session": {
565
699
  amount: "youtube_session_gift_members_count",
566
700
  count: "youtube_session_gift_members_count"
701
+ },
702
+ "superchat-latest": {
703
+ name: "youtube_last_superchatter",
704
+ username: "youtube_last_superchatter"
705
+ },
706
+ "superchat-session": { amount: "youtube_session_superchat_amount", count: "youtube_session_superchat_count" },
707
+ "superchat-week": { amount: "youtube_week_superchat_amount", count: "youtube_week_superchat_amount" },
708
+ "superchat-month": { amount: "youtube_month_superchat_amount", count: "youtube_month_superchat_amount" },
709
+ "superchat-total": { amount: "youtube_total_superchat_amount", count: "youtube_total_superchat_amount" },
710
+ "superchat-count": { amount: "youtube_session_superchat_count", count: "youtube_session_superchat_count" },
711
+ "superchat-session-top-donation": {
712
+ name: "youtube_session_top_superchat",
713
+ amount: "youtube_session_top_superchat_amount",
714
+ count: "youtube_session_top_superchat_amount"
715
+ },
716
+ "superchat-weekly-top-donation": {
717
+ name: "youtube_week_top_superchat",
718
+ amount: "youtube_week_top_superchat_amount",
719
+ count: "youtube_week_top_superchat_amount"
720
+ },
721
+ "superchat-monthly-top-donation": {
722
+ name: "youtube_month_top_superchat",
723
+ amount: "youtube_month_top_superchat_amount",
724
+ count: "youtube_month_top_superchat_amount"
725
+ },
726
+ "superchat-alltime-top-donation": {
727
+ name: "youtube_alltime_top_superchat",
728
+ amount: "youtube_alltime_top_superchat_amount",
729
+ count: "youtube_alltime_top_superchat_amount"
730
+ },
731
+ "superchat-session-top-donator": {
732
+ name: "youtube_session_top_superchatter",
733
+ username: "youtube_session_top_superchatter",
734
+ amount: "youtube_session_top_superchatter_amount",
735
+ count: "youtube_session_top_superchatter_amount"
736
+ },
737
+ "superchat-weekly-top-donator": {
738
+ name: "youtube_week_top_superchatter",
739
+ username: "youtube_week_top_superchatter",
740
+ amount: "youtube_week_top_superchatter_amount",
741
+ count: "youtube_week_top_superchatter_amount"
742
+ },
743
+ "superchat-monthly-top-donator": {
744
+ name: "youtube_month_top_superchatter",
745
+ username: "youtube_month_top_superchatter",
746
+ amount: "youtube_month_top_superchatter_amount",
747
+ count: "youtube_month_top_superchatter_amount"
748
+ },
749
+ "superchat-alltime-top-donator": {
750
+ name: "youtube_alltime_top_superchatter",
751
+ username: "youtube_alltime_top_superchatter",
752
+ amount: "youtube_alltime_top_superchatter_amount",
753
+ count: "youtube_alltime_top_superchatter_amount"
567
754
  }
568
755
  };
569
756
  var RECENT_TO_LATEST_LISTENER = {
570
757
  "follower-recent": "follower-latest",
571
758
  "subscriber-recent": "subscriber-latest",
572
759
  "cheer-recent": "cheer-latest",
760
+ "cheerPurchase-recent": "cheerPurchase-latest",
573
761
  "tip-recent": "tip-latest",
574
762
  "raid-recent": "raid-latest",
763
+ "host-recent": "host-latest",
764
+ "superchat-recent": "superchat-latest",
765
+ "charityCampaignDonation-recent": "charityCampaignDonation-latest",
575
766
  // SE's YouTube "sponsor" aliases (legacy YouTube member terminology).
576
767
  "sponsor-recent": "sponsor-latest"
577
768
  };
@@ -645,7 +836,13 @@ var KICK_LISTENER_VARS = {
645
836
  "subscriber-total": "kick_total_subscriber_count",
646
837
  "subscriber-gifted-session": "kick_session_gifts_count",
647
838
  "cheer-session": "kick_session_kicks_count",
648
- "cheer-total": "kick_total_kicks_count"
839
+ "cheer-total": "kick_total_kicks_count",
840
+ "host-latest": "kick_last_host",
841
+ "follower-goal": "follower_goal",
842
+ "subscriber-goal": "subscriber_goal",
843
+ "cheer-goal": "cheer_goal",
844
+ "tip-goal": "tip_goal",
845
+ "superchat-goal": "superchat_goal"
649
846
  };
650
847
  var YOUTUBE_LISTENER_VARS = {
651
848
  "follower-latest": "youtube_last_subscriber",
@@ -676,7 +873,25 @@ var YOUTUBE_LISTENER_VARS = {
676
873
  "subscriber-month": "youtube_month_member_count",
677
874
  "subscriber-total": "youtube_total_member_count",
678
875
  "subscriber-gifted-session": "youtube_session_gift_members_count",
679
- "cheer-session": "youtube_session_superchat_count"
876
+ "cheer-session": "youtube_session_superchat_count",
877
+ "superchat-latest": "youtube_last_superchatter",
878
+ "superchat-session": "youtube_session_superchat_amount",
879
+ "superchat-week": "youtube_week_superchat_amount",
880
+ "superchat-month": "youtube_month_superchat_amount",
881
+ "superchat-total": "youtube_total_superchat_amount",
882
+ "superchat-count": "youtube_session_superchat_count",
883
+ "superchat-session-top-donation": "youtube_session_top_superchat",
884
+ "superchat-weekly-top-donation": "youtube_week_top_superchat",
885
+ "superchat-monthly-top-donation": "youtube_month_top_superchat",
886
+ "superchat-alltime-top-donation": "youtube_alltime_top_superchat",
887
+ "superchat-session-top-donator": "youtube_session_top_superchatter",
888
+ "superchat-weekly-top-donator": "youtube_week_top_superchatter",
889
+ "superchat-monthly-top-donator": "youtube_month_top_superchatter",
890
+ "superchat-alltime-top-donator": "youtube_alltime_top_superchatter",
891
+ "follower-goal": "follower_goal",
892
+ "subscriber-goal": "subscriber_goal",
893
+ "superchat-goal": "superchat_goal",
894
+ "tip-goal": "tip_goal"
680
895
  };
681
896
  function listenerToLumiaVariable(listener, provider = "twitch") {
682
897
  if (typeof listener !== "string" || !listener) return "username";
@@ -733,15 +948,15 @@ function listenerToLumiaVariable(listener, provider = "twitch") {
733
948
  "tip-total": "total_donation_amount",
734
949
  "tip-count": "donation_count",
735
950
  // Top donors / cheerers — session / week / month / all-time
736
- "tip-session-top-donation": "session_top_donator_amount",
951
+ "tip-session-top-donation": "session_top_donator.amount",
737
952
  "tip-session-top-donator": "session_top_donator",
738
- "tip-weekly-top-donation": "week_top_donator_amount",
953
+ "tip-weekly-top-donation": "week_top_donator.amount",
739
954
  "tip-weekly-top-donator": "week_top_donator",
740
- "tip-monthly-top-donation": "month_top_donator_amount",
955
+ "tip-monthly-top-donation": "month_top_donator.amount",
741
956
  "tip-monthly-top-donator": "month_top_donator",
742
- "tip-alltime-top-donation": "top_donator_amount",
957
+ "tip-alltime-top-donation": "top_donator.amount",
743
958
  "tip-alltime-top-donator": "top_donator",
744
- "cheer-session-top-donation": "twitch_session_top_cheer_amount",
959
+ "cheer-session-top-donation": "twitch_session_top_cheer.amount",
745
960
  "cheer-session-top-donator": "twitch_session_top_cheerer",
746
961
  // Hype train readouts (SE captures these as listener keys on text widgets)
747
962
  "hypetrain-latest": "twitch_hypetrain_total",
@@ -749,11 +964,11 @@ function listenerToLumiaVariable(listener, provider = "twitch") {
749
964
  "hypetrain-level-goal": "twitch_hypetrain_level_goal",
750
965
  "hypetrain-total": "twitch_hypetrain_total",
751
966
  "hypetrain-latest-top-contributors": "twitch_hypetrain_top_contributor",
752
- "cheer-weekly-top-donation": "twitch_week_top_cheerer_amount",
967
+ "cheer-weekly-top-donation": "twitch_week_top_cheerer.amount",
753
968
  "cheer-weekly-top-donator": "twitch_week_top_cheerer",
754
- "cheer-monthly-top-donation": "twitch_month_top_cheerer_amount",
969
+ "cheer-monthly-top-donation": "twitch_month_top_cheerer.amount",
755
970
  "cheer-monthly-top-donator": "twitch_month_top_cheerer",
756
- "cheer-alltime-top-donation": "twitch_alltime_top_cheerer_amount",
971
+ "cheer-alltime-top-donation": "twitch_alltime_top_cheerer.amount",
757
972
  "cheer-alltime-top-donator": "twitch_alltime_top_cheerer"
758
973
  };
759
974
  return m[resolvedListener] ?? resolvedListener.replace(/-/g, "_");
@@ -10248,11 +10463,10 @@ function substituteElementTokens(input, options = {}) {
10248
10463
  listener,
10249
10464
  isKnownProvider(tokenProvider) ? tokenProvider : provider
10250
10465
  );
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}}`;
10466
+ if (field === "currency") {
10467
+ if (lumiaVar.endsWith("_amount")) return `{{${lumiaVar}_currency_symbol}}`;
10468
+ const base = lumiaVar.endsWith(".amount") ? lumiaVar.slice(0, -".amount".length) : lumiaVar;
10469
+ return `{{${base}.currencySymbol}}`;
10256
10470
  }
10257
10471
  return `{{${lumiaVar}}}`;
10258
10472
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lumiastream/ui",
3
- "version": "0.6.6-beta.1",
3
+ "version": "0.6.7",
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.2",
132
+ "@lumiastream/lumia-types": "3.6.2",
133
133
  "classnames": "^2.5.1",
134
134
  "globals": "^17.4.0",
135
135
  "nanoid": "^5.1.11",