maplestory-openapi 2.10.0 → 2.11.1

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/index.js CHANGED
@@ -2559,7 +2559,11 @@ class CharacterAndroidCashItemEquipmentDto {
2559
2559
  /**
2560
2560
  * 안드로이드 캐시 아이템 옵션 유효 기간 (KST, 시간 단위 데이터로 분은 일괄 0으로 표기)
2561
2561
  */
2562
- dateOptionExpire;
2562
+ dateOptionExpire = null;
2563
+ /**
2564
+ * 안드로이드 캐시 아이템 옵션 유효 기간 만료 여부
2565
+ */
2566
+ isOptionExpired = null;
2563
2567
  /**
2564
2568
  * 안드로이드 캐시 아이템 라벨 정보 (스페셜라벨, 레드라벨, 블랙라벨, 마스터라벨)
2565
2569
  */
@@ -2577,13 +2581,18 @@ class CharacterAndroidCashItemEquipmentDto {
2577
2581
  this.cashItemDescription = cash_item_description;
2578
2582
  this.cashItemOption = cash_item_option.map((option) => new CharacterAndroidCashItemEquipmentOptionDto(option));
2579
2583
  this.dateExpire = date_expire ? new Date(date_expire) : null;
2580
- this.dateOptionExpire = date_option_expire
2581
- ? new Date(date_option_expire)
2582
- : null;
2583
2584
  this.cashItemLabel = cash_item_label;
2584
2585
  this.cashItemColoringPrism = cash_item_coloring_prism
2585
2586
  ? new CharacterAndroidCashItemEquipmentColoringPrismDto(cash_item_coloring_prism)
2586
2587
  : null;
2588
+ if (date_option_expire === 'expired') {
2589
+ this.isOptionExpired = true;
2590
+ }
2591
+ else if (typeof date_option_expire === 'string') {
2592
+ this.dateOptionExpire = date_option_expire
2593
+ ? new Date(date_option_expire)
2594
+ : null;
2595
+ }
2587
2596
  }
2588
2597
  }
2589
2598
 
@@ -3173,7 +3182,11 @@ class CharacterCashItemEquipmentPresetDto {
3173
3182
  /**
3174
3183
  * 캐시 장비 옵션 유효 기간 (KST, 시간 단위 데이터로 분은 일괄 0으로 표기)
3175
3184
  */
3176
- dateOptionExpire;
3185
+ dateOptionExpire = null;
3186
+ /**
3187
+ * 캐시 장비 옵션 유효 기간 만료 여부
3188
+ */
3189
+ isOptionExpired = null;
3177
3190
  /**
3178
3191
  * 캐시 장비 라벨 정보
3179
3192
  */
@@ -3186,21 +3199,33 @@ class CharacterCashItemEquipmentPresetDto {
3186
3199
  * 아이템 장착 가능 성별
3187
3200
  */
3188
3201
  itemGender;
3202
+ /**
3203
+ * 스킬명
3204
+ */
3205
+ skills;
3189
3206
  constructor(obj) {
3190
- const { cash_item_equipment_part, cash_item_equipment_slot, cash_item_name, cash_item_icon, cash_item_description, cash_item_option, date_expire, date_option_expire, cash_item_label, cash_item_coloring_prism, item_gender, } = obj;
3207
+ const { cash_item_equipment_part, cash_item_equipment_slot, cash_item_name, cash_item_icon, cash_item_description, cash_item_option, date_expire, date_option_expire, cash_item_label, cash_item_coloring_prism, item_gender, skills, } = obj;
3191
3208
  this.cashItemEquipmentPart = cash_item_equipment_part;
3192
3209
  this.cashItemEquipmentSlot = cash_item_equipment_slot;
3193
3210
  this.cashItemName = cash_item_name;
3194
3211
  this.cashItemIcon = cash_item_icon;
3195
3212
  this.cashItemDescription = cash_item_description;
3196
3213
  this.cashItemOption = cash_item_option.map((option) => new CharacterCashItemEquipmentOptionDto(option));
3197
- this.dateExpire = date_expire;
3198
- this.dateOptionExpire = date_option_expire;
3214
+ this.dateExpire = date_expire ? new Date(date_expire) : null;
3199
3215
  this.cashItemLabel = cash_item_label;
3200
3216
  this.cashItemColoringPrism = cash_item_coloring_prism
3201
3217
  ? new CharacterCashItemEquipmentColoringPrismDto(cash_item_coloring_prism)
3202
3218
  : null;
3203
3219
  this.itemGender = item_gender;
3220
+ this.skills = skills;
3221
+ if (date_option_expire === 'expired') {
3222
+ this.isOptionExpired = true;
3223
+ }
3224
+ else if (typeof date_option_expire === 'string') {
3225
+ this.dateOptionExpire = date_option_expire
3226
+ ? new Date(date_option_expire)
3227
+ : null;
3228
+ }
3204
3229
  }
3205
3230
  }
3206
3231
 
@@ -4030,7 +4055,7 @@ class CharacterItemEquipmentExceptionalOptionDto {
4030
4055
  this.maxMp = max_mp;
4031
4056
  this.attackPower = attack_power;
4032
4057
  this.magicPower = magic_power;
4033
- this.exceptionalUpgrade = exceptional_upgrade;
4058
+ this.exceptionalUpgrade = exceptional_upgrade ?? 0;
4034
4059
  }
4035
4060
  }
4036
4061
 
@@ -4684,6 +4709,45 @@ class CharacterItemEquipmentMechanicInfoDto {
4684
4709
  }
4685
4710
  }
4686
4711
 
4712
+ /**
4713
+ * 캐릭터 외형 설정에 등록한 훈장 외형 정보
4714
+ */
4715
+ class CharacterItemEquipmentMedalShapeDto {
4716
+ /**
4717
+ * 외형 설정에 등록한 훈장 장비 명
4718
+ */
4719
+ medalShapeName;
4720
+ /**
4721
+ * 외형 설정에 등록한 훈장 아이콘
4722
+ */
4723
+ medalShapeIcon;
4724
+ /**
4725
+ * 외형 설정에 등록한 훈장 설명
4726
+ */
4727
+ medalShapeDescription;
4728
+ /**
4729
+ * 외형 설정에 등록한 훈장의 모루 적용 장비 명
4730
+ */
4731
+ medalShapeChangedName;
4732
+ /**
4733
+ * 외형 설정에 등록한 훈장의 모루 적용 아이콘
4734
+ */
4735
+ medalShapeChangedIcon;
4736
+ /**
4737
+ * 외형 설정에 등록한 훈장의 모루 적용 훈장 설명
4738
+ */
4739
+ medalShapeChangedDescription;
4740
+ constructor(obj) {
4741
+ const { medal_shape_name, medal_shape_icon, medal_shape_description, medal_shape_changed_name, medal_shape_changed_icon, medal_shape_changed_description, } = obj;
4742
+ this.medalShapeName = medal_shape_name;
4743
+ this.medalShapeIcon = medal_shape_icon;
4744
+ this.medalShapeDescription = medal_shape_description;
4745
+ this.medalShapeChangedName = medal_shape_changed_name;
4746
+ this.medalShapeChangedIcon = medal_shape_changed_icon;
4747
+ this.medalShapeChangedDescription = medal_shape_changed_description;
4748
+ }
4749
+ }
4750
+
4687
4751
  /**
4688
4752
  * 캐릭터 칭호 아이템 정보
4689
4753
  */
@@ -4712,12 +4776,27 @@ class CharacterItemEquipmentTitleDto {
4712
4776
  * 칭호 옵션 유효 기간 만료 여부
4713
4777
  */
4714
4778
  isOptionExpired = null;
4779
+ /**
4780
+ * 외형 설정에 등록한 칭호 장비 명
4781
+ */
4782
+ titleShapeName;
4783
+ /**
4784
+ * 외형 설정에 등록한 칭호 아이콘
4785
+ */
4786
+ titleShapeIcon;
4787
+ /**
4788
+ * 외형 설정에 등록한 칭호 설명
4789
+ */
4790
+ titleShapeDescription;
4715
4791
  constructor(obj) {
4716
- const { title_name, title_icon, title_description, date_expire, date_option_expire, } = obj;
4792
+ const { title_name, title_icon, title_description, date_expire, date_option_expire, title_shape_name, title_shape_icon, title_shape_description, } = obj;
4717
4793
  this.titleName = title_name;
4718
4794
  this.titleIcon = title_icon;
4719
4795
  this.titleDescription = title_description;
4720
4796
  this.dateExpire = date_expire ? new Date(date_expire) : null;
4797
+ this.titleShapeName = title_shape_name;
4798
+ this.titleShapeIcon = title_shape_icon;
4799
+ this.titleShapeDescription = title_shape_description;
4721
4800
  if (date_option_expire === 'expired') {
4722
4801
  this.isOptionExpired = true;
4723
4802
  }
@@ -4769,6 +4848,10 @@ class CharacterItemEquipmentDto {
4769
4848
  * 칭호 정보
4770
4849
  */
4771
4850
  title;
4851
+ /**
4852
+ * 외형 설정에 등록한 훈장 외형 정보
4853
+ */
4854
+ medalShape;
4772
4855
  /**
4773
4856
  * 에반 드래곤 장비 정보 (에반인 경우 응답)
4774
4857
  */
@@ -4778,7 +4861,7 @@ class CharacterItemEquipmentDto {
4778
4861
  */
4779
4862
  mechanicEquipment;
4780
4863
  constructor(obj) {
4781
- const { date, character_gender, character_class, preset_no, item_equipment, item_equipment_preset_1, item_equipment_preset_2, item_equipment_preset_3, title, dragon_equipment, mechanic_equipment, } = obj;
4864
+ const { date, character_gender, character_class, preset_no, item_equipment, item_equipment_preset_1, item_equipment_preset_2, item_equipment_preset_3, title, medal_shape, dragon_equipment, mechanic_equipment, } = obj;
4782
4865
  this.date = date ? new Date(date) : null;
4783
4866
  this.characterGender = character_gender;
4784
4867
  this.characterClass = character_class;
@@ -4788,6 +4871,7 @@ class CharacterItemEquipmentDto {
4788
4871
  this.itemEquipmentPreset2 = item_equipment_preset_2 ? item_equipment_preset_2.map((equipment) => new CharacterItemEquipmentInfoDto(equipment)) : null;
4789
4872
  this.itemEquipmentPreset3 = item_equipment_preset_3 ? item_equipment_preset_3.map((equipment) => new CharacterItemEquipmentInfoDto(equipment)) : null;
4790
4873
  this.title = title ? new CharacterItemEquipmentTitleDto(title) : null;
4874
+ this.medalShape = medal_shape ? new CharacterItemEquipmentMedalShapeDto(medal_shape) : null;
4791
4875
  this.dragonEquipment = dragon_equipment.map((equipment) => new CharacterItemEquipmentDragonInfoDto(equipment));
4792
4876
  this.mechanicEquipment = mechanic_equipment.map((equipment) => new CharacterItemEquipmentMechanicInfoDto(equipment));
4793
4877
  }
@@ -7413,6 +7497,73 @@ const errorMap = {
7413
7497
  ['OPENAPI00011']: exports.MapleStoryApiErrorCode.OPENAPI00011,
7414
7498
  };
7415
7499
 
7500
+ /**
7501
+ * 유니온 챔피언 휘장 정보
7502
+ */
7503
+ class UnionChampionBadgeInfoDto {
7504
+ /**
7505
+ * 유니온 챔피언 휘장 효과
7506
+ */
7507
+ stat;
7508
+ constructor(obj) {
7509
+ const { stat } = obj;
7510
+ this.stat = stat;
7511
+ }
7512
+ }
7513
+
7514
+ /**
7515
+ * 유니온 챔피언 상세 정보
7516
+ */
7517
+ class UnionChampionInfoDto {
7518
+ /**
7519
+ * 유니온 챔피언 슬롯
7520
+ */
7521
+ championSlot;
7522
+ /**
7523
+ * 유니온 챔피언 등급
7524
+ */
7525
+ championGrade;
7526
+ /**
7527
+ * 유니온 챔피언 캐릭터의 직업
7528
+ */
7529
+ championClass;
7530
+ /**
7531
+ * 챔피언 휘장 효과
7532
+ */
7533
+ championBadgeInfo;
7534
+ constructor(obj) {
7535
+ const { champion_slot, champion_grade, champion_class, champion_badge_info } = obj;
7536
+ this.championSlot = champion_slot;
7537
+ this.championGrade = champion_grade;
7538
+ this.championClass = champion_class;
7539
+ this.championBadgeInfo = champion_badge_info.map((info) => new UnionChampionBadgeInfoDto(info));
7540
+ }
7541
+ }
7542
+
7543
+ /**
7544
+ * 유니온 챔피언 정보
7545
+ */
7546
+ class UnionChampionDto {
7547
+ /**
7548
+ * 조회 기준일
7549
+ */
7550
+ date;
7551
+ /**
7552
+ * 유니온 챔피언 정보
7553
+ */
7554
+ unionChampion;
7555
+ /**
7556
+ * 유니온 챔피언 휘장 정보
7557
+ */
7558
+ championBadgeTotalInfo;
7559
+ constructor(obj) {
7560
+ const { date, union_champion, champion_badge_total_info } = obj;
7561
+ this.date = date ? new Date(date) : null;
7562
+ this.unionChampion = union_champion.map((info) => new UnionChampionInfoDto(info));
7563
+ this.championBadgeTotalInfo = champion_badge_total_info.map((info) => new UnionChampionBadgeInfoDto(info));
7564
+ }
7565
+ }
7566
+
7416
7567
  dayjs__default["default"].extend(timezone);
7417
7568
  dayjs__default["default"].extend(utc);
7418
7569
  /**
@@ -8166,6 +8317,35 @@ class MapleStoryApi {
8166
8317
  });
8167
8318
  return new UnionArtifactDto(data);
8168
8319
  }
8320
+ /**
8321
+ * 유니온 챔피언 정보를 조회합니다.<br>
8322
+ * 유니온 챔피언 정보는 2025년 2월 20일 메이플스토리 점검 이후 데이터부터 조회 가능합니다.<br>
8323
+ * - 메이플스토리 게임 데이터는 평균 15분 후 확인 가능합니다.
8324
+ * - 2023년 12월 21일 데이터부터 조회할 수 있습니다.
8325
+ * - 과거 데이터는 원하는 일자를 입력해 조회할 수 있으며, 전일 데이터는 다음날 오전 2시부터 확인할 수 있습니다. (12월 22일 데이터 조회 시, 22일 00시부터 23일 00시 사이 데이터가 조회 됩니다.)
8326
+ * - 게임 콘텐츠 변경으로 ocid가 변경될 수 있습니다. ocid 기반 서비스 갱신 시 유의해 주시길 바랍니다.
8327
+ *
8328
+ * @param ocid 캐릭터 식별자
8329
+ * @param dateOptions 조회 기준일 (KST)
8330
+ */
8331
+ async getUnionChampion(ocid, dateOptions) {
8332
+ const path = 'maplestory/v1/user/union-champion';
8333
+ const date = dateOptions
8334
+ ? MapleStoryApi.toDateString({
8335
+ year: 2023,
8336
+ month: 12,
8337
+ day: 21,
8338
+ }, dateOptions)
8339
+ : undefined;
8340
+ const query = {
8341
+ ocid: ocid,
8342
+ date: date,
8343
+ };
8344
+ const { data } = await this.client.get(path, {
8345
+ params: query,
8346
+ });
8347
+ return new UnionChampionDto(data);
8348
+ }
8169
8349
  //#endregion
8170
8350
  //#region 길드 정보 조회
8171
8351
  /**