@smartico/public-api 0.0.208 → 0.0.210

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.
Files changed (70) hide show
  1. package/dist/Missions/AchievementAvailabilityStatus.d.ts +61 -0
  2. package/dist/Missions/MissionsUtils.d.ts +6 -0
  3. package/dist/Missions/index.d.ts +1 -0
  4. package/dist/SmarticoLib/index.d.ts +9 -0
  5. package/dist/WSAPI/WSAPITypes.d.ts +10 -2
  6. package/dist/index.js +218 -2
  7. package/dist/index.js.map +1 -1
  8. package/dist/index.modern.mjs +219 -3
  9. package/dist/index.modern.mjs.map +1 -1
  10. package/docs/README.md +1 -0
  11. package/docs/classes/WSAPI.md +3 -3
  12. package/docs/enums/AchievementAvailabilityStatus.md +139 -0
  13. package/docs/interfaces/TMissionOrBadge.md +18 -1
  14. package/docs/interfaces/TTournamentDetailed.md +20 -0
  15. package/package.json +1 -1
  16. package/src/MiniGames/SAWGetTemplatesResponse.ts +1 -0
  17. package/src/Missions/AchievementAvailabilityStatus.ts +76 -0
  18. package/src/Missions/MissionsUtils.ts +166 -0
  19. package/src/Missions/UserAchievement.ts +7 -1
  20. package/src/Missions/index.ts +1 -0
  21. package/src/SmarticoLib/index.ts +16 -5
  22. package/src/WSAPI/WSAPITypes.ts +13 -3
  23. package/tsconfig.json +2 -1
  24. package/dist/Quiz/MarketsAnswersType.d.ts +0 -22
  25. package/dist/SmarticoPublicAPI.d.ts +0 -23
  26. package/dist/Store/BuyShopItemErrorCode.d.ts +0 -10
  27. package/dist/Store/BuyShopItemRequest.d.ts +0 -4
  28. package/dist/Store/BuyShopItemResponse.d.ts +0 -4
  29. package/dist/Store/GetCategoriesShopResponse.d.ts +0 -5
  30. package/dist/Store/GetShopItemsResponse.d.ts +0 -5
  31. package/dist/Store/ShopCategory.d.ts +0 -5
  32. package/dist/Store/ShopCategoryPublicMeta.d.ts +0 -4
  33. package/dist/Store/ShopItem.d.ts +0 -9
  34. package/dist/Store/ShopItemPublicMeta.d.ts +0 -10
  35. package/dist/Store/ShopItemType.d.ts +0 -4
  36. package/dist/Store/StorItemPruchased.d.ts +0 -6
  37. package/dist/service/index.d.ts +0 -5
  38. package/dist/service/types/ErrorCodes.d.ts +0 -13
  39. package/dist/service/types/GRequest.d.ts +0 -16
  40. package/dist/service/types/GResponse.d.ts +0 -10
  41. package/dist/service/types/Game/GameAttemptType.d.ts +0 -6
  42. package/dist/service/types/Game/GameCanPlayType.d.ts +0 -10
  43. package/dist/service/types/Game/GameExternalStatus.d.ts +0 -6
  44. package/dist/service/types/Game/GameInfo.d.ts +0 -9
  45. package/dist/service/types/Game/GamePick.d.ts +0 -90
  46. package/dist/service/types/Game/GameUtil.d.ts +0 -7
  47. package/dist/service/types/SmarticoProto/GetTranslationsRequest.d.ts +0 -7
  48. package/dist/service/types/SmarticoProto/GetTranslationsResponse.d.ts +0 -7
  49. package/dist/service/types/SmarticoProto/ProtocolMessage.d.ts +0 -5
  50. package/dist/service/types/SmarticoProto/ProtocolRequest.d.ts +0 -6
  51. package/dist/service/types/SmarticoProto/ProtocolResponse.d.ts +0 -5
  52. package/dist/service/types/SmarticoProto/PublicLabelInfo.d.ts +0 -34
  53. package/dist/service/types/SmarticoProto/PublicProperties.d.ts +0 -11
  54. package/dist/service/types/SmarticoProto/ResponseIdentify.d.ts +0 -12
  55. package/dist/service/types/SmarticoProto/SAW/SAWAcknowledgeType.d.ts +0 -5
  56. package/dist/service/types/SmarticoProto/SAW/SAWBuyInType.d.ts +0 -5
  57. package/dist/service/types/SmarticoProto/SAW/SAWDoSpinRequest.d.ts +0 -5
  58. package/dist/service/types/SmarticoProto/SAW/SAWDoSpinResponse.d.ts +0 -15
  59. package/dist/service/types/SmarticoProto/SAW/SAWGameType.d.ts +0 -10
  60. package/dist/service/types/SmarticoProto/SAW/SAWGetTemplatesRequest.d.ts +0 -3
  61. package/dist/service/types/SmarticoProto/SAW/SAWGetTemplatesResponse.d.ts +0 -5
  62. package/dist/service/types/SmarticoProto/SAW/SAWPrize.d.ts +0 -11
  63. package/dist/service/types/SmarticoProto/SAW/SAWPrizeType.d.ts +0 -8
  64. package/dist/service/types/SmarticoProto/SAW/SAWPrizeUI.d.ts +0 -13
  65. package/dist/service/types/SmarticoProto/SAW/SAWTemplate.d.ts +0 -21
  66. package/dist/service/types/SmarticoProto/SAW/SAWTemplateUI.d.ts +0 -31
  67. package/dist/service/types/SmarticoProto/SAW/SAWWinSoundType.d.ts +0 -12
  68. package/dist/service/types/SmarticoProto/TranslationArea.d.ts +0 -9
  69. package/dist/service/types/User/UserInfo.d.ts +0 -10
  70. package/dist/util/Util.d.ts +0 -51
@@ -400,6 +400,7 @@ const SAWTemplatesTransform = items => {
400
400
  activeTillDate: r.activeTillDate,
401
401
  next_available_spin_ts: r.next_available_spin_ts,
402
402
  steps_to_finish_game: r.saw_template_ui_definition.steps_to_finish_game,
403
+ custom_section_id: r.saw_template_ui_definition.custom_section_id,
403
404
  prizes: r.prizes.map(p => {
404
405
  const y = {
405
406
  id: p.saw_prize_id,
@@ -905,6 +906,217 @@ var AchievementType;
905
906
  AchievementType[AchievementType["Badge"] = 2] = "Badge";
906
907
  })(AchievementType || (AchievementType = {}));
907
908
 
909
+ /** Possible statuses of the mission availability.
910
+ * Notes:
911
+ * - Recurring missions have a special field next_recurrence_date_ts, but it's only relevant if the mission has no active till date or the next recurrence date is before the active till date.
912
+ * - For a locked mission or mission that requires opt-in, the time limit should be calculated as dt_start + time_limit_ms. For a mission that does not require opt-in or type is not Locked, it should be the highest value of dt_start and active_from_ts (if defined) + time_limit_ms.
913
+ * */
914
+ var AchievementAvailabilityStatus;
915
+ (function (AchievementAvailabilityStatus) {
916
+ /** Mission without date/time restrictions or with passed active from date and no opt-in required and mission is unlocked */
917
+ AchievementAvailabilityStatus[AchievementAvailabilityStatus["Available"] = 0] = "Available";
918
+ /** Mission without date/time restrictions or with passed active from date, opt-in is required, user is not opted-in or mission is locked */
919
+ AchievementAvailabilityStatus[AchievementAvailabilityStatus["AvailableInactive"] = 1] = "AvailableInactive";
920
+ /** Mission without date/time restrictions or with passed active from date, opt-in is required, user is opted-in or mission is unlocked*/
921
+ AchievementAvailabilityStatus[AchievementAvailabilityStatus["AvailableActive"] = 2] = "AvailableActive";
922
+ /** Mission with active from date defined, date is in future.
923
+ * Field: active_from_ts
924
+ */
925
+ AchievementAvailabilityStatus[AchievementAvailabilityStatus["UnavailableWithActiveFrom"] = 3] = "UnavailableWithActiveFrom";
926
+ /** Mission with active till date defined, date is in future, and no opt-in required and mission is unlocked.
927
+ * Field: active_till_ts
928
+ */
929
+ AchievementAvailabilityStatus[AchievementAvailabilityStatus["AvailableWithActiveTill"] = 4] = "AvailableWithActiveTill";
930
+ /** Mission with active till date defined, date is in future, and opt-in is required, user is not opted in or mission is locked.
931
+ * Fields: active_till_ts, is_requires_optin, is_opted_in, is_locked.
932
+ */
933
+ AchievementAvailabilityStatus[AchievementAvailabilityStatus["AvailableWithActiveTillInactive"] = 5] = "AvailableWithActiveTillInactive";
934
+ /** Mission with active till date defined, date is in future, and opt-in is required, user is opted in or mission is unlocked.
935
+ * Fields: active_till_ts, is_requires_optin, is_opted_in, is_locked.
936
+ */
937
+ AchievementAvailabilityStatus[AchievementAvailabilityStatus["AvailableWithActiveTillActive"] = 6] = "AvailableWithActiveTillActive";
938
+ /** Available mission with time limit, and opt-in is required or mission is unlocked.
939
+ * The time limit is calculated as the sum of two properties: (highest value from dt_start and active_from_ts) + time_limit_ms.
940
+ *
941
+ */
942
+ AchievementAvailabilityStatus[AchievementAvailabilityStatus["AvailableLimited"] = 7] = "AvailableLimited";
943
+ /** Available mission with time limit, opt-in is required, user is not opted-in or mission is locked.
944
+ * Time limit at this stage is not relevant, user should be opted-in or mission should be unlocked.
945
+ */
946
+ AchievementAvailabilityStatus[AchievementAvailabilityStatus["AvailableLimitedInactive"] = 8] = "AvailableLimitedInactive";
947
+ /** Available mission with time limit, opt-in is required, user is opted-in or mission unlocked.
948
+ * The time limit is calculated as the sum of two properties: dt_start + time_limit_ms.
949
+ */
950
+ AchievementAvailabilityStatus[AchievementAvailabilityStatus["AvailableLimitedActive"] = 9] = "AvailableLimitedActive";
951
+ /** Available mission with time limit and active till date, opt-in is not required and mission is unlocked.
952
+ * Fields: active_till_ts, time_limit_ms, dt_start, active_from_ts;
953
+ * The time limit is calculated as the sum of two properties: (highest value from dt_start and active_from_ts) + time_limit_ms.
954
+ */
955
+ AchievementAvailabilityStatus[AchievementAvailabilityStatus["AvailableFullyLimited"] = 10] = "AvailableFullyLimited";
956
+ /** Available mission with time limit and active till date, opt-in is required, user is not opted in or mission is locked.
957
+ * Fields: active_till_ts, time_limit_ms, dt_start, active_from_ts, is_requires_optin, is_opted_in, is_locked.
958
+ * On this stage only active_till_ts is relevant. time_limit_ms is ignored because user should be opted in.
959
+ */
960
+ AchievementAvailabilityStatus[AchievementAvailabilityStatus["AvailableFullyLimitedInactive"] = 11] = "AvailableFullyLimitedInactive";
961
+ /** Available mission with time limit and active till date, opt-in is required, user is opted in or mission is unlocked.
962
+ * Fields: active_till_ts, time_limit_ms, dt_start, is_requires_optin, is_opted_in, is_locked.
963
+ * The time limit is calculated as the sum of two properties: dt_start + time_limit_ms.
964
+ */
965
+ AchievementAvailabilityStatus[AchievementAvailabilityStatus["AvailableFullyLimitedActive"] = 12] = "AvailableFullyLimitedActive";
966
+ /** Missed mission when active till date is already passed. is_completed field indicating if mission is completed or just missed */
967
+ AchievementAvailabilityStatus[AchievementAvailabilityStatus["MissedByActiveTill"] = 13] = "MissedByActiveTill";
968
+ /** Missed mission when start_date + time_limit_ms is already passed. is_completed field indicating if mission is completed or just missed */
969
+ AchievementAvailabilityStatus[AchievementAvailabilityStatus["MissedByLimitInTime"] = 14] = "MissedByLimitInTime";
970
+ })(AchievementAvailabilityStatus || (AchievementAvailabilityStatus = {}));
971
+
972
+ var _class;
973
+ class MissionUtils {}
974
+ _class = MissionUtils;
975
+ MissionUtils.getAvailabilityStatus = mission => {
976
+ if (!mission) {
977
+ return null;
978
+ }
979
+ const activeFrom = mission.active_from_ts ? _class.getMs(mission.active_from_ts) : null;
980
+ const activeTill = mission.active_till_ts ? _class.getMs(mission.active_till_ts) : null;
981
+ const startDate = mission.start_date_ts ? _class.getMs(mission.start_date_ts) : null;
982
+ const timeLimit = mission.time_limit_ms;
983
+ const requiresOptIn = mission.requiresOptin;
984
+ const optedIn = mission.isOptedIn;
985
+ const isLockedMission = mission.ach_status_id === AchievementStatus.AvailableLocked;
986
+ const isLocked = mission.isLocked;
987
+ if (!activeFrom && !activeTill && !timeLimit) {
988
+ if (requiresOptIn) {
989
+ if (optedIn) {
990
+ return AchievementAvailabilityStatus.AvailableActive;
991
+ } else {
992
+ return AchievementAvailabilityStatus.AvailableInactive;
993
+ }
994
+ } else if (isLockedMission) {
995
+ if (!isLocked) {
996
+ return AchievementAvailabilityStatus.AvailableActive;
997
+ } else {
998
+ return AchievementAvailabilityStatus.AvailableInactive;
999
+ }
1000
+ } else {
1001
+ return AchievementAvailabilityStatus.Available;
1002
+ }
1003
+ }
1004
+ if (activeFrom && activeFrom > Date.now()) {
1005
+ return AchievementAvailabilityStatus.UnavailableWithActiveFrom;
1006
+ }
1007
+ if (activeFrom && activeFrom < Date.now() || !activeFrom) {
1008
+ if (!activeTill && !timeLimit) {
1009
+ if (requiresOptIn) {
1010
+ if (optedIn) {
1011
+ return AchievementAvailabilityStatus.AvailableActive;
1012
+ } else {
1013
+ return AchievementAvailabilityStatus.AvailableInactive;
1014
+ }
1015
+ } else if (isLockedMission) {
1016
+ if (!isLocked) {
1017
+ return AchievementAvailabilityStatus.AvailableActive;
1018
+ } else {
1019
+ return AchievementAvailabilityStatus.AvailableInactive;
1020
+ }
1021
+ } else {
1022
+ return AchievementAvailabilityStatus.Available;
1023
+ }
1024
+ }
1025
+ if (activeTill && !timeLimit) {
1026
+ if (activeTill > Date.now()) {
1027
+ if (requiresOptIn) {
1028
+ if (optedIn) {
1029
+ return AchievementAvailabilityStatus.AvailableWithActiveTillActive;
1030
+ } else {
1031
+ return AchievementAvailabilityStatus.AvailableWithActiveTillInactive;
1032
+ }
1033
+ } else if (isLockedMission) {
1034
+ if (!isLocked) {
1035
+ return AchievementAvailabilityStatus.AvailableWithActiveTillActive;
1036
+ } else {
1037
+ return AchievementAvailabilityStatus.AvailableWithActiveTillInactive;
1038
+ }
1039
+ } else {
1040
+ return AchievementAvailabilityStatus.AvailableWithActiveTill;
1041
+ }
1042
+ } else {
1043
+ return AchievementAvailabilityStatus.MissedByActiveTill;
1044
+ }
1045
+ }
1046
+ if (timeLimit && !activeTill) {
1047
+ if (requiresOptIn) {
1048
+ const endDate = startDate + timeLimit;
1049
+ if (optedIn) {
1050
+ if (endDate > Date.now()) {
1051
+ return AchievementAvailabilityStatus.AvailableLimitedActive;
1052
+ } else {
1053
+ return AchievementAvailabilityStatus.MissedByLimitInTime;
1054
+ }
1055
+ } else {
1056
+ return AchievementAvailabilityStatus.AvailableLimitedInactive;
1057
+ }
1058
+ } else if (isLockedMission) {
1059
+ const endDate = startDate + timeLimit;
1060
+ if (!isLocked) {
1061
+ if (endDate > Date.now()) {
1062
+ return AchievementAvailabilityStatus.AvailableLimitedActive;
1063
+ } else {
1064
+ return AchievementAvailabilityStatus.MissedByLimitInTime;
1065
+ }
1066
+ } else {
1067
+ return AchievementAvailabilityStatus.AvailableLimitedInactive;
1068
+ }
1069
+ } else {
1070
+ const endDate = activeFrom && activeFrom > startDate ? activeFrom + timeLimit : startDate + timeLimit;
1071
+ if (endDate > Date.now()) {
1072
+ return AchievementAvailabilityStatus.AvailableLimited;
1073
+ } else {
1074
+ return AchievementAvailabilityStatus.MissedByLimitInTime;
1075
+ }
1076
+ }
1077
+ }
1078
+ if (timeLimit && activeTill) {
1079
+ if (activeTill > Date.now()) {
1080
+ if (requiresOptIn) {
1081
+ if (optedIn) {
1082
+ const endDate = startDate + timeLimit;
1083
+ if (endDate > Date.now()) {
1084
+ return AchievementAvailabilityStatus.AvailableFullyLimitedActive;
1085
+ } else {
1086
+ return AchievementAvailabilityStatus.MissedByLimitInTime;
1087
+ }
1088
+ } else {
1089
+ return AchievementAvailabilityStatus.AvailableFullyLimitedInactive;
1090
+ }
1091
+ } else if (isLockedMission) {
1092
+ if (!isLocked) {
1093
+ const endDate = startDate + timeLimit;
1094
+ if (endDate > Date.now()) {
1095
+ return AchievementAvailabilityStatus.AvailableFullyLimitedActive;
1096
+ } else {
1097
+ return AchievementAvailabilityStatus.MissedByLimitInTime;
1098
+ }
1099
+ } else {
1100
+ return AchievementAvailabilityStatus.AvailableFullyLimitedInactive;
1101
+ }
1102
+ } else {
1103
+ const endDate = activeFrom && activeFrom > startDate ? activeFrom + timeLimit : startDate + timeLimit;
1104
+ if (endDate > Date.now()) {
1105
+ return AchievementAvailabilityStatus.AvailableFullyLimited;
1106
+ } else {
1107
+ return AchievementAvailabilityStatus.MissedByLimitInTime;
1108
+ }
1109
+ }
1110
+ } else {
1111
+ return AchievementAvailabilityStatus.MissedByActiveTill;
1112
+ }
1113
+ }
1114
+ }
1115
+ };
1116
+ MissionUtils.getMs = ts => {
1117
+ return new Date(ts).getTime();
1118
+ };
1119
+
908
1120
  const UserAchievementTransform = items => {
909
1121
  return items.filter(r => r.ach_id >= 1).map(r => {
910
1122
  var _r$ach_categories;
@@ -924,7 +1136,7 @@ const UserAchievementTransform = items => {
924
1136
  is_opted_in: r.isOptedIn,
925
1137
  time_limit_ms: r.time_limit_ms,
926
1138
  active_from_ts: r.active_from_ts,
927
- active_till_ts: r.active_from_ts,
1139
+ active_till_ts: r.active_till_ts,
928
1140
  dt_start: r.start_date_ts,
929
1141
  reward: r.ach_public_meta.reward,
930
1142
  progress: r.progress,
@@ -970,8 +1182,12 @@ const UserAchievementTransform = items => {
970
1182
  completed_today: completedToday,
971
1183
  completed_this_week: completedThisWeek,
972
1184
  completed_this_month: completedThisMonth,
973
- custom_section_type_id: r.ach_public_meta.custom_section_type_id
1185
+ custom_section_type_id: r.ach_public_meta.custom_section_type_id,
1186
+ availability_status: MissionUtils.getAvailabilityStatus(r)
974
1187
  };
1188
+ if (r.ach_status_id === AchievementStatus.Recurring) {
1189
+ x.next_recurrence_date_ts = r.next_recurrence_date_ts;
1190
+ }
975
1191
  if (r.ach_status_id === AchievementStatus.RecurringUponCompletion) {
976
1192
  x.completion_count = r.completed_count;
977
1193
  x.max_completion_count = r.recurring_quantity;
@@ -3230,5 +3446,5 @@ var JackpotType;
3230
3446
  JackpotType[JackpotType["Personal"] = 2] = "Personal";
3231
3447
  })(JackpotType || (JackpotType = {}));
3232
3448
 
3233
- export { AchCategoryTransform, AchievementStatus, AchievementTaskType, AchievementType, ActivityTypeLimited, BonusItemsTransform, BonusStatus, BuyStoreItemErrorCode, ClassId, CookieStore, CoreUtils, ECacheContext, GetLevelMapResponseTransform, InboxMessageBodyTransform, InboxMessageType, InboxMessagesTransform, JackpotContributionType, JackpotType, LeaderBoardPeriodType, MiniGamePrizeTypeName, MiniGamePrizeTypeNamed, OCache, OpenLinksType, PrizeModifiers, PrizeModifiersKeysNames, PublicLabelSettings, QuizAnswersValueType, QuizMarketPerSport, QuizSportType, SAWAcknowledgeType, SAWAcknowledgeTypeName, SAWAcknowledgeTypeNamed, SAWAskForUsername, SAWBuyInType, SAWBuyInTypeName, SAWBuyInTypeNamed, SAWGPMarketType, SAWGameLayout, SAWGameType, SAWGameTypeName, SAWGameTypeNamed, SAWHistoryTransform, SAWPrizeType, SAWSpinErrorCode, SAWTemplatesTransform, SAWUtils, SAWWinSoundFiles, SAWWinSoundType, ScheduledMissionType, SmarticoAPI, StoreCategoryTransform, StoreItemPurchasedTransform, StoreItemTransform, StoreItemType, StoreItemTypeName, StoreItemTypeNamed, TournamentInstanceStatus, TournamentInstanceStatusName, TournamentItemsTransform, TournamentRegistrationError, TournamentRegistrationStatus, TournamentRegistrationStatusName, TournamentRegistrationStatusNamed, TournamentRegistrationType, TournamentRegistrationTypeGetName, TournamentType, TournamentUtils, TranslationArea, UserAchievementTransform, marketsInfo, quizAnswerAwayTeamReplacementText, quizAnswerHomeTeamReplacementText, quizAnswersTrKeys, quizDrawReplacementText, quizEvenReplacementText, quizNoGoalsReplacementText, quizNoReplacementText, quizOddReplacementText, quizOrReplacementText, quizSupportedSports, quizYesReplacementText, tournamentInfoItemTransform };
3449
+ export { AchCategoryTransform, AchievementAvailabilityStatus, AchievementStatus, AchievementTaskType, AchievementType, ActivityTypeLimited, BonusItemsTransform, BonusStatus, BuyStoreItemErrorCode, ClassId, CookieStore, CoreUtils, ECacheContext, GetLevelMapResponseTransform, InboxMessageBodyTransform, InboxMessageType, InboxMessagesTransform, JackpotContributionType, JackpotType, LeaderBoardPeriodType, MiniGamePrizeTypeName, MiniGamePrizeTypeNamed, OCache, OpenLinksType, PrizeModifiers, PrizeModifiersKeysNames, PublicLabelSettings, QuizAnswersValueType, QuizMarketPerSport, QuizSportType, SAWAcknowledgeType, SAWAcknowledgeTypeName, SAWAcknowledgeTypeNamed, SAWAskForUsername, SAWBuyInType, SAWBuyInTypeName, SAWBuyInTypeNamed, SAWGPMarketType, SAWGameLayout, SAWGameType, SAWGameTypeName, SAWGameTypeNamed, SAWHistoryTransform, SAWPrizeType, SAWSpinErrorCode, SAWTemplatesTransform, SAWUtils, SAWWinSoundFiles, SAWWinSoundType, ScheduledMissionType, SmarticoAPI, StoreCategoryTransform, StoreItemPurchasedTransform, StoreItemTransform, StoreItemType, StoreItemTypeName, StoreItemTypeNamed, TournamentInstanceStatus, TournamentInstanceStatusName, TournamentItemsTransform, TournamentRegistrationError, TournamentRegistrationStatus, TournamentRegistrationStatusName, TournamentRegistrationStatusNamed, TournamentRegistrationType, TournamentRegistrationTypeGetName, TournamentType, TournamentUtils, TranslationArea, UserAchievementTransform, marketsInfo, quizAnswerAwayTeamReplacementText, quizAnswerHomeTeamReplacementText, quizAnswersTrKeys, quizDrawReplacementText, quizEvenReplacementText, quizNoGoalsReplacementText, quizNoReplacementText, quizOddReplacementText, quizOrReplacementText, quizSupportedSports, quizYesReplacementText, tournamentInfoItemTransform };
3234
3450
  //# sourceMappingURL=index.modern.mjs.map