@smartico/public-api 0.0.322 → 0.0.323
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/Missions/BadgesTimeLimitStates.d.ts +14 -0
- package/dist/Missions/MissionsUtils.d.ts +2 -0
- package/dist/Missions/UserAchievement.d.ts +3 -0
- package/dist/Missions/index.d.ts +2 -0
- package/dist/SmarticoLib/index.d.ts +2 -0
- package/dist/WSAPI/WSAPITypes.d.ts +3 -1
- package/dist/index.js +60 -1
- package/dist/index.js.map +1 -1
- package/dist/index.modern.mjs +62 -2
- package/dist/index.modern.mjs.map +1 -1
- package/package.json +1 -1
- package/src/Missions/BadgesTimeLimitStates.ts +15 -0
- package/src/Missions/MissionsUtils.ts +38 -0
- package/src/Missions/UserAchievement.ts +12 -0
- package/src/Missions/index.ts +3 -1
- package/src/SmarticoAPI.ts +2 -0
- package/src/SmarticoLib/index.ts +3 -0
- package/src/WSAPI/WSAPITypes.ts +4 -1
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
export declare enum BadgesTimeLimitStates {
|
|
2
|
+
/** Before Start Date */
|
|
3
|
+
BeforeStartDate = 0,
|
|
4
|
+
/** After Start Date but before earned */
|
|
5
|
+
AfterStartDateNoProgress = 1,
|
|
6
|
+
/** After Start Date but before started (no progress) + End date */
|
|
7
|
+
AfterStartDateNoProgressAndEndDate = 2,
|
|
8
|
+
/** After Start Date, but with some progress + End date */
|
|
9
|
+
AfterStartDateWithProgressAndEndDate = 3,
|
|
10
|
+
/** After End Date (not started) */
|
|
11
|
+
AfterEndDateNotStarted = 4,
|
|
12
|
+
/** After End Date (player has some progress, but not completed) */
|
|
13
|
+
AfterEndDateWithProgress = 5
|
|
14
|
+
}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { AchievementAvailabilityStatus } from "./AchievementAvailabilityStatus";
|
|
2
2
|
import { UserAchievement } from "./UserAchievement";
|
|
3
3
|
import { UserAchievementTask } from "./UserAchievementTask";
|
|
4
|
+
import { BadgesTimeLimitStates } from "./BadgesTimeLimitStates";
|
|
4
5
|
export declare class MissionUtils {
|
|
5
6
|
static getAvailabilityStatus: (mission: UserAchievement) => AchievementAvailabilityStatus;
|
|
6
7
|
static getMs: (ts: number) => number;
|
|
@@ -13,4 +14,5 @@ export declare class MissionUtils {
|
|
|
13
14
|
task: UserAchievementTask;
|
|
14
15
|
currencySymbol?: string;
|
|
15
16
|
}) => UserAchievementTask;
|
|
17
|
+
static determineBadgeState: (badge: UserAchievement) => BadgesTimeLimitStates;
|
|
16
18
|
}
|
|
@@ -5,6 +5,7 @@ import { AchievementStatus } from './AchievementStatus';
|
|
|
5
5
|
import { AchievementType } from './AchievementType';
|
|
6
6
|
import { ScheduledMissionType } from './ScheduledMissionType';
|
|
7
7
|
import { UserAchievementTask } from './UserAchievementTask';
|
|
8
|
+
import { BadgesTimeLimitStates } from './BadgesTimeLimitStates';
|
|
8
9
|
export interface UserAchievement {
|
|
9
10
|
ach_id?: number;
|
|
10
11
|
ach_type_id?: AchievementType;
|
|
@@ -39,5 +40,7 @@ export interface UserAchievement {
|
|
|
39
40
|
completed_this_week?: boolean;
|
|
40
41
|
completed_this_month?: boolean;
|
|
41
42
|
custom_section_type_id?: number;
|
|
43
|
+
badgeTimeLimitState?: BadgesTimeLimitStates;
|
|
42
44
|
}
|
|
45
|
+
export declare const enrichUserAchievementsWithBadgeState: (items: UserAchievement[]) => UserAchievement[];
|
|
43
46
|
export declare const UserAchievementTransform: (items: UserAchievement[]) => TMissionOrBadge[];
|
package/dist/Missions/index.d.ts
CHANGED
|
@@ -9,6 +9,7 @@ export * from './GetAchievementMapRequest';
|
|
|
9
9
|
export * from './GetAchievementMapResponse';
|
|
10
10
|
export * from './ReloadAchievementsEvent';
|
|
11
11
|
export * from './UserAchievement';
|
|
12
|
+
export { enrichUserAchievementsWithBadgeState } from './UserAchievement';
|
|
12
13
|
export * from './UserAchievementTask';
|
|
13
14
|
export * from './ScheduledMissionType';
|
|
14
15
|
export * from './AchCategoryPublicMeta';
|
|
@@ -22,3 +23,4 @@ export * from './GetRelatedAchTourResponse';
|
|
|
22
23
|
export * from './MissionsUtils';
|
|
23
24
|
export * from './MissionCategory';
|
|
24
25
|
export * from './UserAchievementTaskAffectsProgress';
|
|
26
|
+
export * from './BadgesTimeLimitStates';
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { BadgesTimeLimitStates } from "src/Missions";
|
|
1
2
|
declare enum CJMActivityType {
|
|
2
3
|
Root = 0,
|
|
3
4
|
Journey_Started = 1,
|
|
@@ -1539,6 +1540,7 @@ export interface UserAchievement {
|
|
|
1539
1540
|
completed_this_week?: boolean;
|
|
1540
1541
|
completed_this_month?: boolean;
|
|
1541
1542
|
custom_section_type_id?: number;
|
|
1543
|
+
badgeTimeLimitState?: BadgesTimeLimitStates;
|
|
1542
1544
|
}
|
|
1543
1545
|
export interface GetAchievementMapResponse extends ProtocolResponse {
|
|
1544
1546
|
achievements?: UserAchievement[];
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { BuyStoreItemErrorCode } from '../Store';
|
|
2
2
|
import { MiniGamePrizeTypeName, SAWAcknowledgeTypeName, SAWAskForUsername, SAWBuyInTypeName, SAWGameLayout, SAWGameTypeName, SAWSpinErrorCode, SAWTemplate, SAWTemplateUI } from '../MiniGames';
|
|
3
3
|
import { TournamentRegistrationError, TournamentRegistrationStatusName, TournamentRegistrationTypeName } from '../Tournaments';
|
|
4
|
-
import { AchievementAvailabilityStatus } from '../Missions';
|
|
4
|
+
import { AchievementAvailabilityStatus, BadgesTimeLimitStates } from '../Missions';
|
|
5
5
|
import { LeaderBoardPeriodType } from '../Leaderboard';
|
|
6
6
|
import { AchCustomLayoutTheme, AchCustomSectionType, AchMissionsTabsOptions, AchOverviewMissionsFilter, LiquidEntityData } from '../CustomSections';
|
|
7
7
|
import { PrizeModifiers } from '../MiniGames/PrizeModifiers';
|
|
@@ -614,6 +614,8 @@ export interface TMissionOrBadge {
|
|
|
614
614
|
claim_button_title?: string;
|
|
615
615
|
/** Action for the claim reward button */
|
|
616
616
|
claim_button_action?: string;
|
|
617
|
+
/** Badge time limit state for badges with time restrictions */
|
|
618
|
+
badgeTimeLimitState?: BadgesTimeLimitStates;
|
|
617
619
|
}
|
|
618
620
|
export interface AchRelatedGame {
|
|
619
621
|
/** The ID of the related game */
|
package/dist/index.js
CHANGED
|
@@ -1144,6 +1144,22 @@ exports.AchievementAvailabilityStatus = void 0;
|
|
|
1144
1144
|
AchievementAvailabilityStatus[AchievementAvailabilityStatus["MissedByLimitInTime"] = 14] = "MissedByLimitInTime";
|
|
1145
1145
|
})(exports.AchievementAvailabilityStatus || (exports.AchievementAvailabilityStatus = {}));
|
|
1146
1146
|
|
|
1147
|
+
exports.BadgesTimeLimitStates = void 0;
|
|
1148
|
+
(function (BadgesTimeLimitStates) {
|
|
1149
|
+
/** Before Start Date */
|
|
1150
|
+
BadgesTimeLimitStates[BadgesTimeLimitStates["BeforeStartDate"] = 0] = "BeforeStartDate";
|
|
1151
|
+
/** After Start Date but before earned */
|
|
1152
|
+
BadgesTimeLimitStates[BadgesTimeLimitStates["AfterStartDateNoProgress"] = 1] = "AfterStartDateNoProgress";
|
|
1153
|
+
/** After Start Date but before started (no progress) + End date */
|
|
1154
|
+
BadgesTimeLimitStates[BadgesTimeLimitStates["AfterStartDateNoProgressAndEndDate"] = 2] = "AfterStartDateNoProgressAndEndDate";
|
|
1155
|
+
/** After Start Date, but with some progress + End date */
|
|
1156
|
+
BadgesTimeLimitStates[BadgesTimeLimitStates["AfterStartDateWithProgressAndEndDate"] = 3] = "AfterStartDateWithProgressAndEndDate";
|
|
1157
|
+
/** After End Date (not started) */
|
|
1158
|
+
BadgesTimeLimitStates[BadgesTimeLimitStates["AfterEndDateNotStarted"] = 4] = "AfterEndDateNotStarted";
|
|
1159
|
+
/** After End Date (player has some progress, but not completed) */
|
|
1160
|
+
BadgesTimeLimitStates[BadgesTimeLimitStates["AfterEndDateWithProgress"] = 5] = "AfterEndDateWithProgress";
|
|
1161
|
+
})(exports.BadgesTimeLimitStates || (exports.BadgesTimeLimitStates = {}));
|
|
1162
|
+
|
|
1147
1163
|
var _class;
|
|
1148
1164
|
var MissionUtils = function MissionUtils() {};
|
|
1149
1165
|
_class = MissionUtils;
|
|
@@ -1366,7 +1382,47 @@ MissionUtils.replaceFavGameNameTag = function (_ref2) {
|
|
|
1366
1382
|
}
|
|
1367
1383
|
return task;
|
|
1368
1384
|
};
|
|
1385
|
+
MissionUtils.determineBadgeState = function (badge) {
|
|
1386
|
+
var now = Date.now();
|
|
1387
|
+
var active_from_ts = badge.active_from_ts,
|
|
1388
|
+
active_till_ts = badge.active_till_ts,
|
|
1389
|
+
progress = badge.progress;
|
|
1390
|
+
// 1. BEFORE START
|
|
1391
|
+
if (active_from_ts > now) {
|
|
1392
|
+
return exports.BadgesTimeLimitStates.BeforeStartDate;
|
|
1393
|
+
}
|
|
1394
|
+
// 2. AFTER START, NO END DATE (infinite badge)
|
|
1395
|
+
// → grey, no locked, no date chip
|
|
1396
|
+
if (!active_till_ts) {
|
|
1397
|
+
if (progress === 0) {
|
|
1398
|
+
return exports.BadgesTimeLimitStates.AfterStartDateNoProgress;
|
|
1399
|
+
}
|
|
1400
|
+
// If infinite and with progress → this state does not exist in enum
|
|
1401
|
+
// (but if needed we can add one)
|
|
1402
|
+
}
|
|
1403
|
+
// 3. AFTER START, BEFORE END DATE
|
|
1404
|
+
if (now < active_till_ts) {
|
|
1405
|
+
if (progress === 0) {
|
|
1406
|
+
// now < end + has end date → must show chip
|
|
1407
|
+
return exports.BadgesTimeLimitStates.AfterStartDateNoProgressAndEndDate;
|
|
1408
|
+
}
|
|
1409
|
+
return exports.BadgesTimeLimitStates.AfterStartDateWithProgressAndEndDate;
|
|
1410
|
+
}
|
|
1411
|
+
// 4. AFTER END DATE
|
|
1412
|
+
if (progress === 0) {
|
|
1413
|
+
return exports.BadgesTimeLimitStates.AfterEndDateNotStarted;
|
|
1414
|
+
}
|
|
1415
|
+
return exports.BadgesTimeLimitStates.AfterEndDateWithProgress;
|
|
1416
|
+
};
|
|
1369
1417
|
|
|
1418
|
+
var enrichUserAchievementsWithBadgeState = function enrichUserAchievementsWithBadgeState(items) {
|
|
1419
|
+
return items.map(function (item) {
|
|
1420
|
+
if (item.ach_type_id === exports.AchievementType.Badge && (item.active_from_ts || item.active_till_ts)) {
|
|
1421
|
+
item.badgeTimeLimitState = MissionUtils.determineBadgeState(item);
|
|
1422
|
+
}
|
|
1423
|
+
return item;
|
|
1424
|
+
});
|
|
1425
|
+
};
|
|
1370
1426
|
var UserAchievementTransform = function UserAchievementTransform(items) {
|
|
1371
1427
|
return items.filter(function (r) {
|
|
1372
1428
|
return r.ach_id >= 1;
|
|
@@ -1472,7 +1528,8 @@ var UserAchievementTransform = function UserAchievementTransform(items) {
|
|
|
1472
1528
|
custom_section_type_id: r.ach_public_meta.custom_section_type_id,
|
|
1473
1529
|
availability_status: MissionUtils.getAvailabilityStatus(r),
|
|
1474
1530
|
claim_button_title: r.ach_public_meta.claim_button_title,
|
|
1475
|
-
claim_button_action: r.ach_public_meta.claim_button_action
|
|
1531
|
+
claim_button_action: r.ach_public_meta.claim_button_action,
|
|
1532
|
+
badgeTimeLimitState: r.badgeTimeLimitState
|
|
1476
1533
|
};
|
|
1477
1534
|
if (r.ach_status_id === exports.AchievementStatus.Recurring) {
|
|
1478
1535
|
x.next_recurrence_date_ts = Date.now() + (r == null ? void 0 : r.milliseconds_till_available);
|
|
@@ -4484,6 +4541,7 @@ var SmarticoAPI = /*#__PURE__*/function () {
|
|
|
4484
4541
|
responseClone.achievements = responseClone.achievements.filter(function (a) {
|
|
4485
4542
|
return a.ach_type_id === exports.AchievementType.Badge;
|
|
4486
4543
|
});
|
|
4544
|
+
responseClone.achievements = enrichUserAchievementsWithBadgeState(responseClone.achievements);
|
|
4487
4545
|
}
|
|
4488
4546
|
return responseClone;
|
|
4489
4547
|
});
|
|
@@ -5415,6 +5473,7 @@ exports.TournamentRegistrationTypeGetName = TournamentRegistrationTypeGetName;
|
|
|
5415
5473
|
exports.TournamentUtils = TournamentUtils;
|
|
5416
5474
|
exports.UICustomSectionTransform = UICustomSectionTransform;
|
|
5417
5475
|
exports.UserAchievementTransform = UserAchievementTransform;
|
|
5476
|
+
exports.enrichUserAchievementsWithBadgeState = enrichUserAchievementsWithBadgeState;
|
|
5418
5477
|
exports.getLeaderBoardTransform = getLeaderBoardTransform;
|
|
5419
5478
|
exports.marketsInfo = marketsInfo;
|
|
5420
5479
|
exports.quizAnswerAwayTeamReplacementText = quizAnswerAwayTeamReplacementText;
|