@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
package/dist/index.modern.mjs
CHANGED
|
@@ -480,6 +480,22 @@ const MiniGamePrizeTypeNamed = type => {
|
|
|
480
480
|
}[type] || MiniGamePrizeTypeName.UNKNOWN;
|
|
481
481
|
};
|
|
482
482
|
|
|
483
|
+
/**
|
|
484
|
+
* The amount a prize gives. Gems/diamonds and raffle-ticket prizes carry it in
|
|
485
|
+
* `prize_details_json` (their `prize_value` is only a default), the same way the
|
|
486
|
+
* default Smartico UI reads it; every other type keeps `prize_value`.
|
|
487
|
+
*/
|
|
488
|
+
const sawPrizeValue = p => {
|
|
489
|
+
const d = p.prize_details_json;
|
|
490
|
+
let n = 0;
|
|
491
|
+
if (p.prize_type_id === SAWPrizeType.GEMS_AND_DIAMONDS && d) {
|
|
492
|
+
// _gems_diamonds_type: 0 gems, 1 diamonds, 2 both
|
|
493
|
+
n = (d._gems_diamonds_type === 1 ? 0 : d.gems || 0) + (d._gems_diamonds_type === 0 ? 0 : d.diamonds || 0);
|
|
494
|
+
} else if (p.prize_type_id === SAWPrizeType.RAFFLE_TICKET && d) {
|
|
495
|
+
n = d.tickets_count || 0;
|
|
496
|
+
}
|
|
497
|
+
return n > 0 ? n : p.prize_value;
|
|
498
|
+
};
|
|
483
499
|
const SAWTemplatesTransform = items => {
|
|
484
500
|
return items.map(r => {
|
|
485
501
|
var _r$saw_skin_ui_defini;
|
|
@@ -533,7 +549,7 @@ const SAWTemplatesTransform = items => {
|
|
|
533
549
|
id: p.saw_prize_id,
|
|
534
550
|
name: p.saw_prize_ui_definition.name,
|
|
535
551
|
prize_type: MiniGamePrizeTypeNamed(p.prize_type_id),
|
|
536
|
-
prize_value: p
|
|
552
|
+
prize_value: sawPrizeValue(p),
|
|
537
553
|
font_size: p.saw_prize_ui_definition.font_size,
|
|
538
554
|
font_size_mobile: p.saw_prize_ui_definition.font_size_mobile,
|
|
539
555
|
icon: p.saw_prize_ui_definition.icon,
|
|
@@ -1302,7 +1318,8 @@ var BadgesTimeLimitStates;
|
|
|
1302
1318
|
})(BadgesTimeLimitStates || (BadgesTimeLimitStates = {}));
|
|
1303
1319
|
|
|
1304
1320
|
var _MissionUtils;
|
|
1305
|
-
|
|
1321
|
+
// tag -> favorites (top 3 arrays) that fill it; a task has at most one condition per tag (enforced in the BO)
|
|
1322
|
+
const 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']]];
|
|
1306
1323
|
const USER_STATE_PARAMS_KEYS_BET_AMOUNT = ['core_recommended_deposit_amount', 'core_recommended_casino_bet_amount', 'core_recommended_sport_bet_amount'];
|
|
1307
1324
|
const 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']);
|
|
1308
1325
|
function toGameTitleCase(raw) {
|
|
@@ -1480,52 +1497,37 @@ MissionUtils.replaceTagsFavMissionTask = ({
|
|
|
1480
1497
|
}
|
|
1481
1498
|
const userStateParams = task.user_state_params || {};
|
|
1482
1499
|
const userStateOperator = (_task$task_public_met = task.task_public_meta) == null ? void 0 : _task$task_public_met.user_state_operations;
|
|
1483
|
-
|
|
1484
|
-
if (userStateParamsKeys.length === 0 || !userStateOperator) {
|
|
1500
|
+
if (Object.keys(userStateParams).length === 0 || !userStateOperator) {
|
|
1485
1501
|
return result;
|
|
1486
1502
|
}
|
|
1487
|
-
const
|
|
1488
|
-
|
|
1489
|
-
|
|
1490
|
-
let suggestedValue = '';
|
|
1491
|
-
userStateParamsKeys.forEach(k => {
|
|
1503
|
+
const formatFav = v => toGameTitleCase(v.replace(/_/g, ' '));
|
|
1504
|
+
// 'has' / '!has' -> all favorites, 'posN' -> the N-th one
|
|
1505
|
+
const favValue = k => {
|
|
1492
1506
|
var _userStateOperator$k;
|
|
1507
|
+
const values = userStateParams[k];
|
|
1493
1508
|
const operator = (_userStateOperator$k = userStateOperator[k]) == null ? void 0 : _userStateOperator$k.op;
|
|
1494
|
-
if (
|
|
1495
|
-
|
|
1496
|
-
var _userStateParams$k;
|
|
1497
|
-
const value = (_userStateParams$k = userStateParams[k]) == null ? void 0 : _userStateParams$k.filter(v => Boolean(v));
|
|
1498
|
-
if (value && value.length > 0) {
|
|
1499
|
-
suggestedGames = value.map(v => {
|
|
1500
|
-
const cleaned = v.replace(/_/g, ' ');
|
|
1501
|
-
return toGameTitleCase(cleaned);
|
|
1502
|
-
}).join(', ');
|
|
1503
|
-
}
|
|
1504
|
-
}
|
|
1505
|
-
if (operatorsPos.includes(operator)) {
|
|
1506
|
-
const value = userStateParams[k];
|
|
1507
|
-
const pos = Number(operator.replace('pos', '')) - 1;
|
|
1508
|
-
if (IntUtils.isNotNull(pos) && value && value[pos]) {
|
|
1509
|
-
suggestedGames = value[pos];
|
|
1510
|
-
if (suggestedGames) {
|
|
1511
|
-
suggestedGames = toGameTitleCase(suggestedGames.replace(/_/g, ' '));
|
|
1512
|
-
}
|
|
1513
|
-
}
|
|
1514
|
-
}
|
|
1509
|
+
if (!Array.isArray(values)) {
|
|
1510
|
+
return '';
|
|
1515
1511
|
}
|
|
1516
|
-
if (
|
|
1517
|
-
|
|
1518
|
-
|
|
1519
|
-
|
|
1520
|
-
|
|
1521
|
-
|
|
1512
|
+
if (operator === 'has' || operator === '!has') {
|
|
1513
|
+
return values.filter(Boolean).map(formatFav).join(', ');
|
|
1514
|
+
}
|
|
1515
|
+
const pos = /^pos[1-3]$/.test(operator) ? values[Number(operator.substring(3)) - 1] : null;
|
|
1516
|
+
return pos ? formatFav(pos) : '';
|
|
1517
|
+
};
|
|
1518
|
+
// split/join replaces every occurrence of the tag, not only the first one
|
|
1519
|
+
const replaceTag = (tag, value) => {
|
|
1520
|
+
if (value && result) {
|
|
1521
|
+
result = result.split(tag).join(value);
|
|
1522
1522
|
}
|
|
1523
|
+
};
|
|
1524
|
+
FAV_TAGS.forEach(([tag, keys]) => {
|
|
1525
|
+
replaceTag(tag, keys.map(favValue).find(Boolean));
|
|
1523
1526
|
});
|
|
1524
|
-
|
|
1525
|
-
|
|
1526
|
-
|
|
1527
|
-
|
|
1528
|
-
result = result.replace('{{suggested_value}}', suggestedValue);
|
|
1527
|
+
const amountKey = USER_STATE_PARAMS_KEYS_BET_AMOUNT.find(k => userStateParams[k]);
|
|
1528
|
+
if (amountKey) {
|
|
1529
|
+
const currencyFromTheTask = userStateParams.core_wallet_currency;
|
|
1530
|
+
replaceTag('{{suggested_value}}', `${userStateParams[amountKey]} ${currencySymbol || currencyFromTheTask || ''}`);
|
|
1529
1531
|
}
|
|
1530
1532
|
return result;
|
|
1531
1533
|
};
|
|
@@ -1605,19 +1607,19 @@ const UserAchievementTransform = items => {
|
|
|
1605
1607
|
if ((_r$ach_public_meta$na = r.ach_public_meta.name) != null && _r$ach_public_meta$na.includes('{{suggested_')) {
|
|
1606
1608
|
missionName = MissionUtils.replaceTagsFavMissionTask({
|
|
1607
1609
|
task: t,
|
|
1608
|
-
valueToReplace:
|
|
1610
|
+
valueToReplace: missionName
|
|
1609
1611
|
});
|
|
1610
1612
|
}
|
|
1611
1613
|
if ((_r$ach_public_meta$su = r.ach_public_meta.sub_header) != null && _r$ach_public_meta$su.includes('{{suggested_')) {
|
|
1612
1614
|
missionSubHeader = MissionUtils.replaceTagsFavMissionTask({
|
|
1613
1615
|
task: t,
|
|
1614
|
-
valueToReplace:
|
|
1616
|
+
valueToReplace: missionSubHeader
|
|
1615
1617
|
});
|
|
1616
1618
|
}
|
|
1617
1619
|
if ((_r$ach_public_meta$de = r.ach_public_meta.description) != null && _r$ach_public_meta$de.includes('{{suggested_')) {
|
|
1618
1620
|
missionDescription = MissionUtils.replaceTagsFavMissionTask({
|
|
1619
1621
|
task: t,
|
|
1620
|
-
valueToReplace:
|
|
1622
|
+
valueToReplace: missionDescription
|
|
1621
1623
|
});
|
|
1622
1624
|
}
|
|
1623
1625
|
});
|