@smartico/public-api 0.0.434 → 0.0.436
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/WSAPI/WSAPITypes.d.ts +2 -2
- package/dist/index.js +55 -49
- package/dist/index.js.map +1 -1
- package/dist/index.modern.mjs +46 -44
- package/dist/index.modern.mjs.map +1 -1
- package/docs/ui/minigames/UIGuide_getMiniGamesHistory.md +1 -1
- package/package.json +1 -1
- package/src/MiniGames/SAWGetTemplatesResponse.ts +20 -2
- package/src/Missions/MissionsUtils.ts +37 -47
- package/src/Missions/UserAchievement.ts +3 -3
- package/src/WSAPI/WSAPITypes.ts +2 -2
|
@@ -26,8 +26,8 @@ export interface TMiniGamePrize {
|
|
|
26
26
|
name: string;
|
|
27
27
|
/** The type of the prize — see {@link MiniGamePrizeTypeName} ('no-prize', 'points', 'gems-and-diamonds', 'spin', 'bonus', 'jackpot', 'raffle-ticket', 'mission', 'change-level', 'manual') */
|
|
28
28
|
prize_type: MiniGamePrizeTypeName;
|
|
29
|
-
/**
|
|
30
|
-
* For example for prize
|
|
29
|
+
/** Amount of the prize: points for 'points', attempts for 'spin', gems or diamonds for 'gems-and-diamonds' (their sum when the prize gives both), tickets for 'raffle-ticket'. Not relevant for other types.
|
|
30
|
+
* For example for prize '100 points' the prize_value will be 100, for '100 free spins' 100, for '50 Diamonds' 50.
|
|
31
31
|
*/
|
|
32
32
|
prize_value?: number;
|
|
33
33
|
/** Custom font size in px for rendering the prize name on the game surface (e.g. a wheel sector), desktop */
|
package/dist/index.js
CHANGED
|
@@ -483,6 +483,22 @@ var MiniGamePrizeTypeNamed = function MiniGamePrizeTypeNamed(type) {
|
|
|
483
483
|
return (_SAWPrizeType$NO_PRIZ = {}, _SAWPrizeType$NO_PRIZ[exports.SAWPrizeType.NO_PRIZE] = exports.MiniGamePrizeTypeName.NO_PRIZE, _SAWPrizeType$NO_PRIZ[exports.SAWPrizeType.POINTS] = exports.MiniGamePrizeTypeName.POINTS, _SAWPrizeType$NO_PRIZ[exports.SAWPrizeType.BONUS] = exports.MiniGamePrizeTypeName.BONUS, _SAWPrizeType$NO_PRIZ[exports.SAWPrizeType.MANUAL] = exports.MiniGamePrizeTypeName.MANUAL, _SAWPrizeType$NO_PRIZ[exports.SAWPrizeType.SPIN] = exports.MiniGamePrizeTypeName.SPIN, _SAWPrizeType$NO_PRIZ[exports.SAWPrizeType.JACKPOT] = exports.MiniGamePrizeTypeName.JACKPOT, _SAWPrizeType$NO_PRIZ[exports.SAWPrizeType.CHANGE_LEVEL] = exports.MiniGamePrizeTypeName.CHANGE_LEVEL, _SAWPrizeType$NO_PRIZ[exports.SAWPrizeType.MISSION] = exports.MiniGamePrizeTypeName.MISSION, _SAWPrizeType$NO_PRIZ[exports.SAWPrizeType.RAFFLE_TICKET] = exports.MiniGamePrizeTypeName.RAFFLE_TICKET, _SAWPrizeType$NO_PRIZ[exports.SAWPrizeType.GEMS_AND_DIAMONDS] = exports.MiniGamePrizeTypeName.GEMS_AND_DIAMONDS, _SAWPrizeType$NO_PRIZ)[type] || exports.MiniGamePrizeTypeName.UNKNOWN;
|
|
484
484
|
};
|
|
485
485
|
|
|
486
|
+
/**
|
|
487
|
+
* The amount a prize gives. Gems/diamonds and raffle-ticket prizes carry it in
|
|
488
|
+
* `prize_details_json` (their `prize_value` is only a default), the same way the
|
|
489
|
+
* default Smartico UI reads it; every other type keeps `prize_value`.
|
|
490
|
+
*/
|
|
491
|
+
var sawPrizeValue = function sawPrizeValue(p) {
|
|
492
|
+
var d = p.prize_details_json;
|
|
493
|
+
var n = 0;
|
|
494
|
+
if (p.prize_type_id === exports.SAWPrizeType.GEMS_AND_DIAMONDS && d) {
|
|
495
|
+
// _gems_diamonds_type: 0 gems, 1 diamonds, 2 both
|
|
496
|
+
n = (d._gems_diamonds_type === 1 ? 0 : d.gems || 0) + (d._gems_diamonds_type === 0 ? 0 : d.diamonds || 0);
|
|
497
|
+
} else if (p.prize_type_id === exports.SAWPrizeType.RAFFLE_TICKET && d) {
|
|
498
|
+
n = d.tickets_count || 0;
|
|
499
|
+
}
|
|
500
|
+
return n > 0 ? n : p.prize_value;
|
|
501
|
+
};
|
|
486
502
|
var SAWTemplatesTransform = function SAWTemplatesTransform(items) {
|
|
487
503
|
return items.map(function (r) {
|
|
488
504
|
var _r$saw_skin_ui_defini;
|
|
@@ -536,7 +552,7 @@ var SAWTemplatesTransform = function SAWTemplatesTransform(items) {
|
|
|
536
552
|
id: p.saw_prize_id,
|
|
537
553
|
name: p.saw_prize_ui_definition.name,
|
|
538
554
|
prize_type: MiniGamePrizeTypeNamed(p.prize_type_id),
|
|
539
|
-
prize_value: p
|
|
555
|
+
prize_value: sawPrizeValue(p),
|
|
540
556
|
font_size: p.saw_prize_ui_definition.font_size,
|
|
541
557
|
font_size_mobile: p.saw_prize_ui_definition.font_size_mobile,
|
|
542
558
|
icon: p.saw_prize_ui_definition.icon,
|
|
@@ -1328,7 +1344,8 @@ exports.BadgesTimeLimitStates = void 0;
|
|
|
1328
1344
|
})(exports.BadgesTimeLimitStates || (exports.BadgesTimeLimitStates = {}));
|
|
1329
1345
|
|
|
1330
1346
|
var _MissionUtils;
|
|
1331
|
-
|
|
1347
|
+
// tag -> favorites (top 3 arrays) that fill it; a task has at most one condition per tag (enforced in the BO)
|
|
1348
|
+
var FAV_TAGS = [['{{suggested_games}}', ['core_fav_game_top3', 'core_fav_game_type_top3', 'core_fav_game_provider_top3']], ['{{suggested_sport}}', ['core_fav_sport_type_top3', 'core_fav_sport_league_top3']]];
|
|
1332
1349
|
var USER_STATE_PARAMS_KEYS_BET_AMOUNT = ['core_recommended_deposit_amount', 'core_recommended_casino_bet_amount', 'core_recommended_sport_bet_amount'];
|
|
1333
1350
|
var MINOR_WORDS = new Set(['of', 'at', 'in', 'on', 'to', 'up', 'as', 'by', 'for', 'from', 'into', 'onto', 'with', 'upon', 'via', 'and', 'but', 'or', 'nor', 'so', 'yet', 'vs', 'v', 'a', 'an', 'the']);
|
|
1334
1351
|
function toGameTitleCase(raw) {
|
|
@@ -1507,60 +1524,49 @@ MissionUtils.replaceTagsFavMissionTask = function (_ref) {
|
|
|
1507
1524
|
}
|
|
1508
1525
|
var userStateParams = task.user_state_params || {};
|
|
1509
1526
|
var userStateOperator = (_task$task_public_met = task.task_public_meta) == null ? void 0 : _task$task_public_met.user_state_operations;
|
|
1510
|
-
|
|
1511
|
-
if (userStateParamsKeys.length === 0 || !userStateOperator) {
|
|
1527
|
+
if (Object.keys(userStateParams).length === 0 || !userStateOperator) {
|
|
1512
1528
|
return result;
|
|
1513
1529
|
}
|
|
1514
|
-
var
|
|
1515
|
-
|
|
1516
|
-
|
|
1517
|
-
|
|
1518
|
-
|
|
1530
|
+
var formatFav = function formatFav(v) {
|
|
1531
|
+
return toGameTitleCase(v.replace(/_/g, ' '));
|
|
1532
|
+
};
|
|
1533
|
+
// 'has' / '!has' -> all favorites, 'posN' -> the N-th one
|
|
1534
|
+
var favValue = function favValue(k) {
|
|
1519
1535
|
var _userStateOperator$k;
|
|
1536
|
+
var values = userStateParams[k];
|
|
1520
1537
|
var operator = (_userStateOperator$k = userStateOperator[k]) == null ? void 0 : _userStateOperator$k.op;
|
|
1521
|
-
if (
|
|
1522
|
-
|
|
1523
|
-
var _userStateParams$k;
|
|
1524
|
-
var value = (_userStateParams$k = userStateParams[k]) == null ? void 0 : _userStateParams$k.filter(function (v) {
|
|
1525
|
-
return Boolean(v);
|
|
1526
|
-
});
|
|
1527
|
-
if (value && value.length > 0) {
|
|
1528
|
-
suggestedGames = value.map(function (v) {
|
|
1529
|
-
var cleaned = v.replace(/_/g, ' ');
|
|
1530
|
-
return toGameTitleCase(cleaned);
|
|
1531
|
-
}).join(', ');
|
|
1532
|
-
}
|
|
1533
|
-
}
|
|
1534
|
-
if (operatorsPos.includes(operator)) {
|
|
1535
|
-
var _value = userStateParams[k];
|
|
1536
|
-
var pos = Number(operator.replace('pos', '')) - 1;
|
|
1537
|
-
if (IntUtils.isNotNull(pos) && _value && _value[pos]) {
|
|
1538
|
-
suggestedGames = _value[pos];
|
|
1539
|
-
if (suggestedGames) {
|
|
1540
|
-
suggestedGames = toGameTitleCase(suggestedGames.replace(/_/g, ' '));
|
|
1541
|
-
}
|
|
1542
|
-
}
|
|
1543
|
-
}
|
|
1538
|
+
if (!Array.isArray(values)) {
|
|
1539
|
+
return '';
|
|
1544
1540
|
}
|
|
1545
|
-
if (
|
|
1546
|
-
|
|
1547
|
-
|
|
1548
|
-
|
|
1549
|
-
|
|
1550
|
-
|
|
1541
|
+
if (operator === 'has' || operator === '!has') {
|
|
1542
|
+
return values.filter(Boolean).map(formatFav).join(', ');
|
|
1543
|
+
}
|
|
1544
|
+
var pos = /^pos[1-3]$/.test(operator) ? values[Number(operator.substring(3)) - 1] : null;
|
|
1545
|
+
return pos ? formatFav(pos) : '';
|
|
1546
|
+
};
|
|
1547
|
+
// split/join replaces every occurrence of the tag, not only the first one
|
|
1548
|
+
var replaceTag = function replaceTag(tag, value) {
|
|
1549
|
+
if (value && result) {
|
|
1550
|
+
result = result.split(tag).join(value);
|
|
1551
1551
|
}
|
|
1552
|
+
};
|
|
1553
|
+
FAV_TAGS.forEach(function (_ref2) {
|
|
1554
|
+
var tag = _ref2[0],
|
|
1555
|
+
keys = _ref2[1];
|
|
1556
|
+
replaceTag(tag, keys.map(favValue).find(Boolean));
|
|
1552
1557
|
});
|
|
1553
|
-
|
|
1554
|
-
|
|
1555
|
-
}
|
|
1556
|
-
if (
|
|
1557
|
-
|
|
1558
|
+
var amountKey = USER_STATE_PARAMS_KEYS_BET_AMOUNT.find(function (k) {
|
|
1559
|
+
return userStateParams[k];
|
|
1560
|
+
});
|
|
1561
|
+
if (amountKey) {
|
|
1562
|
+
var currencyFromTheTask = userStateParams.core_wallet_currency;
|
|
1563
|
+
replaceTag('{{suggested_value}}', userStateParams[amountKey] + " " + (currencySymbol || currencyFromTheTask || ''));
|
|
1558
1564
|
}
|
|
1559
1565
|
return result;
|
|
1560
1566
|
};
|
|
1561
|
-
MissionUtils.replaceFavGameNameTag = function (
|
|
1562
|
-
var task =
|
|
1563
|
-
currencySymbol =
|
|
1567
|
+
MissionUtils.replaceFavGameNameTag = function (_ref3) {
|
|
1568
|
+
var task = _ref3.task,
|
|
1569
|
+
currencySymbol = _ref3.currencySymbol;
|
|
1564
1570
|
if (task && task.task_public_meta && task.task_public_meta.name) {
|
|
1565
1571
|
task.task_public_meta.name = _MissionUtils.replaceTagsFavMissionTask({
|
|
1566
1572
|
task: task,
|
|
@@ -1633,19 +1639,19 @@ var UserAchievementTransform = function UserAchievementTransform(items) {
|
|
|
1633
1639
|
if ((_r$ach_public_meta$na = r.ach_public_meta.name) != null && _r$ach_public_meta$na.includes('{{suggested_')) {
|
|
1634
1640
|
missionName = MissionUtils.replaceTagsFavMissionTask({
|
|
1635
1641
|
task: t,
|
|
1636
|
-
valueToReplace:
|
|
1642
|
+
valueToReplace: missionName
|
|
1637
1643
|
});
|
|
1638
1644
|
}
|
|
1639
1645
|
if ((_r$ach_public_meta$su = r.ach_public_meta.sub_header) != null && _r$ach_public_meta$su.includes('{{suggested_')) {
|
|
1640
1646
|
missionSubHeader = MissionUtils.replaceTagsFavMissionTask({
|
|
1641
1647
|
task: t,
|
|
1642
|
-
valueToReplace:
|
|
1648
|
+
valueToReplace: missionSubHeader
|
|
1643
1649
|
});
|
|
1644
1650
|
}
|
|
1645
1651
|
if ((_r$ach_public_meta$de = r.ach_public_meta.description) != null && _r$ach_public_meta$de.includes('{{suggested_')) {
|
|
1646
1652
|
missionDescription = MissionUtils.replaceTagsFavMissionTask({
|
|
1647
1653
|
task: t,
|
|
1648
|
-
valueToReplace:
|
|
1654
|
+
valueToReplace: missionDescription
|
|
1649
1655
|
});
|
|
1650
1656
|
}
|
|
1651
1657
|
});
|