@smartico/public-api 0.0.47 → 0.0.49
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/README.md +36 -11
- package/dist/IntUtils.d.ts +1 -0
- package/dist/Level/GetLevelMapResponse.d.ts +2 -0
- package/dist/Missions/UserAchievement.d.ts +3 -0
- package/dist/SmarticoAPI.d.ts +10 -1
- package/dist/WSAPI/WSAPI.d.ts +8 -3
- package/dist/WSAPI/WSAPITypes.d.ts +124 -5
- package/dist/index.js +128 -32
- package/dist/index.js.map +1 -1
- package/dist/index.modern.mjs +85 -19
- package/dist/index.modern.mjs.map +1 -1
- package/docs/README.md +12 -0
- package/docs/classes/WSAPI.md +37 -0
- package/docs/interfaces/TLevel.md +74 -0
- package/docs/interfaces/TMissionOrBadge.md +167 -0
- package/docs/interfaces/TMissionOrBadgeTask.md +35 -0
- package/docs/interfaces/TUserProfile.md +81 -0
- package/package.json +1 -1
- package/src/IntUtils.ts +19 -0
- package/src/Level/GetLevelMapResponse.ts +16 -0
- package/src/Missions/UserAchievement.ts +39 -0
- package/src/SmarticoAPI.ts +32 -17
- package/src/WSAPI/WSAPI.ts +24 -8
- package/src/WSAPI/WSAPITypes.ts +126 -16
- package/tsconfig.json +7 -2
- package/docs_test/README_TWO.md +0 -57
- package/docs_test/classes/WSAPI.md +0 -19
- package/docs_test/interfaces/GetLevelMapClearedResponse.md +0 -57
- package/docs_test/modules.md +0 -13
- /package/{docs_test → docs}/.nojekyll +0 -0
package/dist/index.modern.mjs
CHANGED
|
@@ -121,6 +121,16 @@ class IntUtils {
|
|
|
121
121
|
return v;
|
|
122
122
|
}
|
|
123
123
|
}
|
|
124
|
+
IntUtils.JsonOrText = str => {
|
|
125
|
+
if (str && str.includes && (str.includes('{') || str.includes('['))) {
|
|
126
|
+
try {
|
|
127
|
+
return JSON.parse(str);
|
|
128
|
+
} catch (e) {
|
|
129
|
+
return str;
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
return str;
|
|
133
|
+
};
|
|
124
134
|
|
|
125
135
|
var SAWBuyInType;
|
|
126
136
|
(function (SAWBuyInType) {
|
|
@@ -379,14 +389,47 @@ var AchievementType;
|
|
|
379
389
|
AchievementType[AchievementType["Badge"] = 2] = "Badge";
|
|
380
390
|
})(AchievementType || (AchievementType = {}));
|
|
381
391
|
|
|
382
|
-
|
|
383
|
-
|
|
392
|
+
const UserAchievementTransform = items => {
|
|
393
|
+
return items.filter(r => r.ach_id >= 1).map(r => ({
|
|
394
|
+
id: r.ach_id,
|
|
395
|
+
name: r.ach_public_meta.name,
|
|
396
|
+
desription: r.ach_public_meta.description,
|
|
397
|
+
unlock_mission_description: r.ach_public_meta.unlock_mission_description,
|
|
398
|
+
image: r.ach_public_meta.image_url,
|
|
399
|
+
is_completed: r.isCompleted,
|
|
400
|
+
is_locked: r.isLocked,
|
|
401
|
+
is_requires_optin: r.requiresOptin,
|
|
402
|
+
is_opted_in: r.isOptedIn,
|
|
403
|
+
time_limit_ms: r.time_limit_ms,
|
|
404
|
+
dt_start: r.start_date_ts,
|
|
405
|
+
reward: r.ach_public_meta.reward,
|
|
406
|
+
progress: r.progress,
|
|
407
|
+
type: r.ach_type_id === AchievementType.Mission ? 'mission' : 'badge',
|
|
408
|
+
cta_action: r.ach_public_meta.cta_action,
|
|
409
|
+
cta_text: r.ach_public_meta.cta_text,
|
|
410
|
+
custom_section_id: r.ach_public_meta.custom_section_id,
|
|
411
|
+
only_in_custom_section: r.ach_public_meta.only_in_custom_section,
|
|
412
|
+
custom_data: IntUtils.JsonOrText(r.ach_public_meta.custom_data),
|
|
413
|
+
tasks: (r.achievementTasks || []).filter(t => t.task_type_id === AchievementTaskType.CompleteAchievement).map(t => {
|
|
414
|
+
var _t$task_public_meta;
|
|
415
|
+
return {
|
|
416
|
+
id: t.task_id,
|
|
417
|
+
name: (_t$task_public_meta = t.task_public_meta) == null ? void 0 : _t$task_public_meta.name,
|
|
418
|
+
is_completed: t.isCompleted,
|
|
419
|
+
progress: t.userProgress
|
|
420
|
+
};
|
|
421
|
+
})
|
|
422
|
+
}));
|
|
423
|
+
};
|
|
424
|
+
|
|
425
|
+
const GetLevelMapResponseTransform = levels => {
|
|
384
426
|
return levels == null ? void 0 : levels.levels.map(l => ({
|
|
385
427
|
id: l.level_id,
|
|
386
428
|
name: l.level_public_meta.name,
|
|
387
429
|
description: l.level_public_meta.description,
|
|
388
430
|
image: l.level_public_meta.image_url,
|
|
389
431
|
required_points: l.required_points,
|
|
432
|
+
visibility_points: parseInt(l.level_public_meta.visibility_points),
|
|
390
433
|
required_level_counter_1: l.required_level_counter_1,
|
|
391
434
|
required_level_counter_2: l.required_level_counter_2
|
|
392
435
|
}));
|
|
@@ -396,14 +439,28 @@ const levelCleaner = levels => {
|
|
|
396
439
|
class WSAPI {
|
|
397
440
|
/** @private */
|
|
398
441
|
constructor(api) {
|
|
399
|
-
|
|
442
|
+
this.api = void 0;
|
|
443
|
+
this.api = api;
|
|
444
|
+
}
|
|
445
|
+
/** Returns all the levels available the current user */
|
|
446
|
+
async getUserProfile() {
|
|
447
|
+
if (this.api.tracker) {
|
|
448
|
+
const o = Object.assign({}, this.api.tracker.userPublicProps);
|
|
449
|
+
o.avatar_url = CoreUtils.avatarUrl(this.api.tracker.userPublicProps.avatar_id, this.api.avatarDomain);
|
|
450
|
+
return o;
|
|
451
|
+
} else {
|
|
452
|
+
throw new Error('Tracker is not initialized, cannot getUserProfile');
|
|
453
|
+
}
|
|
400
454
|
}
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
return
|
|
455
|
+
/** Returns all the levels available the current user */
|
|
456
|
+
async getLevels() {
|
|
457
|
+
return this.api.levelsGetT(null);
|
|
458
|
+
}
|
|
459
|
+
/** Returns all the missions available the current user */
|
|
460
|
+
async getMissions() {
|
|
461
|
+
return this.api.missionsGetItemsT(null);
|
|
404
462
|
}
|
|
405
463
|
}
|
|
406
|
-
WSAPI.api = void 0;
|
|
407
464
|
|
|
408
465
|
const PUBLIC_API_URL = 'https://papi{ENV_ID}.smartico.ai/services/public';
|
|
409
466
|
const C_SOCKET_PROD = 'wss://api{ENV_ID}.smartico.ai/websocket/services';
|
|
@@ -411,6 +468,7 @@ const AVATAR_DOMAIN = 'https://img{ENV_ID}.smr.vc';
|
|
|
411
468
|
const DEFAULT_LANG_EN = "EN";
|
|
412
469
|
class SmarticoAPI {
|
|
413
470
|
constructor(label_api_key, brand_api_key, messageSender, options = {}) {
|
|
471
|
+
var _options$tracker;
|
|
414
472
|
this.label_api_key = void 0;
|
|
415
473
|
this.brand_api_key = void 0;
|
|
416
474
|
this.messageSender = void 0;
|
|
@@ -421,6 +479,7 @@ class SmarticoAPI {
|
|
|
421
479
|
this.logger = void 0;
|
|
422
480
|
this.logCIDs = void 0;
|
|
423
481
|
this.logHTTPTiming = void 0;
|
|
482
|
+
this.tracker = void 0;
|
|
424
483
|
this.label_api_key = label_api_key;
|
|
425
484
|
this.brand_api_key = brand_api_key;
|
|
426
485
|
this.messageSender = messageSender;
|
|
@@ -430,9 +489,10 @@ class SmarticoAPI {
|
|
|
430
489
|
}
|
|
431
490
|
this.logCIDs = options.logCIDs || [];
|
|
432
491
|
this.logHTTPTiming = options.logHTTPTiming || false;
|
|
492
|
+
this.tracker = options.tracker;
|
|
433
493
|
this.publicUrl = SmarticoAPI.getPublicUrl(label_api_key);
|
|
434
494
|
this.wsUrl = SmarticoAPI.getPublicWsUrl(label_api_key);
|
|
435
|
-
this.avatarDomain = SmarticoAPI.getAvatarUrl(label_api_key);
|
|
495
|
+
this.avatarDomain = SmarticoAPI.getAvatarUrl(label_api_key || ((_options$tracker = options.tracker) == null ? void 0 : _options$tracker.label_api_key));
|
|
436
496
|
this.label_api_key = SmarticoAPI.getCleanLabelApiKey(label_api_key);
|
|
437
497
|
}
|
|
438
498
|
static getEnvId(label_api_key) {
|
|
@@ -549,7 +609,7 @@ class SmarticoAPI {
|
|
|
549
609
|
hash_code: 0,
|
|
550
610
|
areas
|
|
551
611
|
});
|
|
552
|
-
const trBase = await _this.send(tsBaseRQ);
|
|
612
|
+
const trBase = await _this.send(tsBaseRQ, ClassId.GET_TRANSLATIONS_RESPONSE);
|
|
553
613
|
if (lang_code !== DEFAULT_LANG_EN) {
|
|
554
614
|
var _trUser$translations;
|
|
555
615
|
const trUserRQ = _this.buildMessage(user_ext_id, ClassId.GET_TRANSLATIONS_REQUEST, {
|
|
@@ -557,7 +617,7 @@ class SmarticoAPI {
|
|
|
557
617
|
hash_code: 0,
|
|
558
618
|
areas
|
|
559
619
|
});
|
|
560
|
-
const trUser = await _this.send(trUserRQ);
|
|
620
|
+
const trUser = await _this.send(trUserRQ, ClassId.GET_TRANSLATIONS_RESPONSE);
|
|
561
621
|
Object.keys((_trUser$translations = trUser == null ? void 0 : trUser.translations) != null ? _trUser$translations : {}).forEach(k => {
|
|
562
622
|
trBase.translations[k] = trUser.translations[k];
|
|
563
623
|
});
|
|
@@ -595,7 +655,7 @@ class SmarticoAPI {
|
|
|
595
655
|
} : {
|
|
596
656
|
is_visitor_mode
|
|
597
657
|
});
|
|
598
|
-
const response = await this.send(message);
|
|
658
|
+
const response = await this.send(message, ClassId.SAW_GET_SPINS_RESPONSE);
|
|
599
659
|
if (response && response.templates) {
|
|
600
660
|
response.templates.forEach(t => {
|
|
601
661
|
if (t.jackpot_current !== undefined && t.jackpot_current !== null) {
|
|
@@ -640,23 +700,26 @@ class SmarticoAPI {
|
|
|
640
700
|
limit,
|
|
641
701
|
offset
|
|
642
702
|
});
|
|
643
|
-
return await this.send(message);
|
|
703
|
+
return await this.send(message, ClassId.GET_INBOX_MESSAGES_RESPONSE);
|
|
644
704
|
}
|
|
645
705
|
async storeGetItems(user_ext_id) {
|
|
646
706
|
const message = this.buildMessage(user_ext_id, ClassId.GET_SHOP_ITEMS_REQUEST);
|
|
647
|
-
return await this.send(message);
|
|
707
|
+
return await this.send(message, ClassId.GET_SHOP_ITEMS_RESPONSE);
|
|
648
708
|
}
|
|
649
709
|
async missionsGetItems(user_ext_id) {
|
|
650
710
|
const message = this.buildMessage(user_ext_id, ClassId.GET_ACHIEVEMENT_MAP_REQUEST);
|
|
651
|
-
const response = await this.send(message);
|
|
711
|
+
const response = await this.send(message, ClassId.GET_ACHIEVEMENT_MAP_RESPONSE);
|
|
652
712
|
if (response.achievements) {
|
|
653
713
|
response.achievements = response.achievements.filter(a => a.ach_type_id === AchievementType.Mission);
|
|
654
714
|
}
|
|
655
715
|
return response;
|
|
656
716
|
}
|
|
717
|
+
async missionsGetItemsT(user_ext_id) {
|
|
718
|
+
return UserAchievementTransform((await this.missionsGetItems(user_ext_id)).achievements);
|
|
719
|
+
}
|
|
657
720
|
async badgetsGetItems(user_ext_id) {
|
|
658
721
|
const message = this.buildMessage(user_ext_id, ClassId.GET_ACHIEVEMENT_MAP_REQUEST);
|
|
659
|
-
const response = await this.send(message);
|
|
722
|
+
const response = await this.send(message, ClassId.GET_ACHIEVEMENT_MAP_RESPONSE);
|
|
660
723
|
if (response.achievements) {
|
|
661
724
|
response.achievements = response.achievements.filter(a => a.ach_type_id === AchievementType.Badge);
|
|
662
725
|
}
|
|
@@ -664,14 +727,14 @@ class SmarticoAPI {
|
|
|
664
727
|
}
|
|
665
728
|
async tournamentsGetLobby(user_ext_id) {
|
|
666
729
|
const message = this.buildMessage(user_ext_id, ClassId.GET_TOURNAMENT_LOBBY_REQUEST);
|
|
667
|
-
return await this.send(message);
|
|
730
|
+
return await this.send(message, ClassId.GET_TOURNAMENT_LOBBY_RESPONSE);
|
|
668
731
|
}
|
|
669
732
|
async tournamentsGetInfo(user_ext_id, tournamentInstanceId) {
|
|
670
733
|
var _response$userPositio, _response$tournamentI;
|
|
671
734
|
const message = this.buildMessage(user_ext_id, ClassId.GET_TOURNAMENT_INFO_REQUEST, {
|
|
672
735
|
tournamentInstanceId
|
|
673
736
|
});
|
|
674
|
-
const response = await this.send(message);
|
|
737
|
+
const response = await this.send(message, ClassId.GET_TOURNAMENT_LOBBY_RESPONSE);
|
|
675
738
|
if ((_response$userPositio = response.userPosition) != null && _response$userPositio.avatar_id) {
|
|
676
739
|
response.userPosition.avatar_url = CoreUtils.avatarUrl(response.userPosition.avatar_id, this.avatarDomain);
|
|
677
740
|
}
|
|
@@ -689,7 +752,7 @@ class SmarticoAPI {
|
|
|
689
752
|
snapshot_offset: prevPeriod ? 1 : 0,
|
|
690
753
|
include_users: true
|
|
691
754
|
});
|
|
692
|
-
const response = await this.send(message);
|
|
755
|
+
const response = await this.send(message, ClassId.GET_LEADERS_BOARD_RESPONSE);
|
|
693
756
|
const boardKey = Object.keys(response.map).find(k => period_type_id === undefined || k === (period_type_id == null ? void 0 : period_type_id.toString()));
|
|
694
757
|
if (boardKey === undefined) {
|
|
695
758
|
return undefined;
|
|
@@ -708,6 +771,9 @@ class SmarticoAPI {
|
|
|
708
771
|
const message = this.buildMessage(user_ext_id, ClassId.GET_LEVEL_MAP_REQUEST);
|
|
709
772
|
return await this.send(message, ClassId.GET_LEVEL_MAP_RESPONSE);
|
|
710
773
|
}
|
|
774
|
+
async levelsGetT(user_ext_id) {
|
|
775
|
+
return GetLevelMapResponseTransform(await this.levelsGet(user_ext_id));
|
|
776
|
+
}
|
|
711
777
|
getWSCalls() {
|
|
712
778
|
return new WSAPI(this);
|
|
713
779
|
}
|
|
@@ -867,5 +933,5 @@ TournamentUtils.isUpcoming = tournament => {
|
|
|
867
933
|
return false;
|
|
868
934
|
};
|
|
869
935
|
|
|
870
|
-
export { AchievementStatus, AchievementTaskType, AchievementType, ActivityTypeLimited, BuyStoreItemErrorCode, ClassId, CookieStore, CoreUtils, InboxMessageType, LeaderBoardPeriodType, PublicLabelSettings, SAWAcknowledgeType, SAWAskForUsername, SAWBuyInType, SAWBuyInTypeName, SAWGameType, SAWGameTypeName, SAWPrizeType, SAWSpinErrorCode, SAWUtils, SAWWinSoundFiles, SAWWinSoundType, SmarticoAPI, StoreItemType, TournamentInstanceStatus, TournamentInstanceStatusName, TournamentRegistrationError, TournamentRegistrationStatus, TournamentRegistrationType, TournamentType, TournamentUtils, TranslationArea };
|
|
936
|
+
export { AchievementStatus, AchievementTaskType, AchievementType, ActivityTypeLimited, BuyStoreItemErrorCode, ClassId, CookieStore, CoreUtils, GetLevelMapResponseTransform, InboxMessageType, LeaderBoardPeriodType, PublicLabelSettings, SAWAcknowledgeType, SAWAskForUsername, SAWBuyInType, SAWBuyInTypeName, SAWGameType, SAWGameTypeName, SAWPrizeType, SAWSpinErrorCode, SAWUtils, SAWWinSoundFiles, SAWWinSoundType, SmarticoAPI, StoreItemType, TournamentInstanceStatus, TournamentInstanceStatusName, TournamentRegistrationError, TournamentRegistrationStatus, TournamentRegistrationType, TournamentType, TournamentUtils, TranslationArea, UserAchievementTransform };
|
|
871
937
|
//# sourceMappingURL=index.modern.mjs.map
|