maplestory-openapi 2.4.0 → 2.7.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.
Files changed (97) hide show
  1. package/README.md +51 -39
  2. package/dist/index.js +1459 -1153
  3. package/dist/index.min.js +1 -1
  4. package/dist/index.mjs +1442 -1153
  5. package/package.json +6 -4
  6. package/types/index.d.ts +18 -3
  7. package/types/maplestory/api/dto/character/characterAbilityDto.d.ts +1 -1
  8. package/types/maplestory/api/dto/character/characterAndroidEquipmentDto.d.ts +2 -2
  9. package/types/maplestory/api/dto/character/characterAndroidEquipmentPresetDto.d.ts +2 -2
  10. package/types/maplestory/api/dto/character/characterBasicDto.d.ts +21 -1
  11. package/types/maplestory/api/dto/character/characterBeautyEquipmentDto.d.ts +1 -1
  12. package/types/maplestory/api/dto/character/characterCashItemEquipmentDto.d.ts +1 -1
  13. package/types/maplestory/api/dto/character/characterDojangDto.d.ts +1 -1
  14. package/types/maplestory/api/dto/character/characterHexaMatrixDto.d.ts +1 -1
  15. package/types/maplestory/api/dto/character/characterHexaMatrixStatDto.d.ts +1 -1
  16. package/types/maplestory/api/dto/character/characterHyperStatDto.d.ts +1 -1
  17. package/types/maplestory/api/dto/character/characterItemEquipmentDto.d.ts +3 -3
  18. package/types/maplestory/api/dto/character/characterLinkSkillDto.d.ts +1 -1
  19. package/types/maplestory/api/dto/character/characterLinkSkillInfoDto.d.ts +4 -0
  20. package/types/maplestory/api/dto/character/characterListAccountCharacterDto.d.ts +28 -0
  21. package/types/maplestory/api/dto/character/characterListAccountDto.d.ts +17 -0
  22. package/types/maplestory/api/dto/character/characterListDto.d.ts +13 -0
  23. package/types/maplestory/api/dto/character/characterPetEquipmentDto.d.ts +1 -1
  24. package/types/maplestory/api/dto/character/characterPopularityDto.d.ts +1 -1
  25. package/types/maplestory/api/dto/character/characterPropensityDto.d.ts +1 -1
  26. package/types/maplestory/api/dto/character/characterSetEffectDto.d.ts +3 -3
  27. package/types/maplestory/api/dto/character/characterSetEffectInfoDto.d.ts +5 -10
  28. package/types/maplestory/api/dto/character/characterSetEffectOptionFullDto.d.ts +16 -0
  29. package/types/maplestory/api/dto/character/characterSetEffectSetDto.d.ts +26 -0
  30. package/types/maplestory/api/dto/character/characterSkillDto.d.ts +1 -1
  31. package/types/maplestory/api/dto/character/characterSkillInfoDto.d.ts +4 -0
  32. package/types/maplestory/api/dto/character/characterStatDto.d.ts +1 -1
  33. package/types/maplestory/api/dto/character/characterSymbolEquipmentDto.d.ts +1 -1
  34. package/types/maplestory/api/dto/character/characterVMatrixCoreEquipmentDto.d.ts +2 -2
  35. package/types/maplestory/api/dto/character/characterVMatrixDto.d.ts +1 -1
  36. package/types/maplestory/api/dto/guild/guildBasicDto.d.ts +1 -9
  37. package/types/maplestory/api/dto/history/cubeHistoryDto.d.ts +1 -1
  38. package/types/maplestory/api/dto/history/cubeResultOptionDto.d.ts +1 -1
  39. package/types/maplestory/api/dto/history/potentialHistoryDto.d.ts +2 -2
  40. package/types/maplestory/api/dto/history/potentialResultOptionDto.d.ts +1 -1
  41. package/types/maplestory/api/dto/history/starforceHistoryDto.d.ts +1 -1
  42. package/types/maplestory/api/dto/notice/cashshopNoticeDetailDto.d.ts +40 -0
  43. package/types/maplestory/api/dto/notice/cashshopNoticeListDto.d.ts +13 -0
  44. package/types/maplestory/api/dto/notice/cashshopNoticeListItemDto.d.ts +40 -0
  45. package/types/maplestory/api/dto/notice/eventNoticeDetailDto.d.ts +32 -0
  46. package/types/maplestory/api/dto/notice/eventNoticeListDto.d.ts +13 -0
  47. package/types/maplestory/api/dto/notice/eventNoticeListItemDto.d.ts +32 -0
  48. package/types/maplestory/api/dto/notice/noticeDetailDto.d.ts +24 -0
  49. package/types/maplestory/api/dto/notice/noticeListDto.d.ts +13 -0
  50. package/types/maplestory/api/dto/notice/noticeListItemDto.d.ts +24 -0
  51. package/types/maplestory/api/dto/notice/updateNoticeDetailDto.d.ts +24 -0
  52. package/types/maplestory/api/dto/notice/updateNoticeListDto.d.ts +13 -0
  53. package/types/maplestory/api/dto/notice/updateNoticeListItemDto.d.ts +24 -0
  54. package/types/maplestory/api/dto/union/unionArtifactDto.d.ts +1 -1
  55. package/types/maplestory/api/dto/union/unionDto.d.ts +13 -1
  56. package/types/maplestory/api/dto/union/unionRaiderDto.d.ts +26 -1
  57. package/types/maplestory/api/dto/union/unionRaiderPresetDto.d.ts +26 -0
  58. package/types/maplestory/api/mapleStoryApi.d.ts +133 -30
  59. package/types/maplestory/api/mapleStoryApiError.d.ts +4 -1
  60. package/types/maplestory/api/response/character/characterAbilityDtoBody.d.ts +1 -1
  61. package/types/maplestory/api/response/character/characterAndroidEquipmentDtoBody.d.ts +1 -1
  62. package/types/maplestory/api/response/character/characterBasicDtoBody.d.ts +4 -1
  63. package/types/maplestory/api/response/character/characterBeautyEquipmentDtoBody.d.ts +1 -1
  64. package/types/maplestory/api/response/character/characterCashItemEquipmentDtoBody.d.ts +1 -1
  65. package/types/maplestory/api/response/character/characterDojangDtoBody.d.ts +1 -1
  66. package/types/maplestory/api/response/character/characterHexaMatrixDtoBody.d.ts +1 -1
  67. package/types/maplestory/api/response/character/characterHexaMatrixStatDtoBody.d.ts +1 -1
  68. package/types/maplestory/api/response/character/characterHyperStatDtoBody.d.ts +1 -1
  69. package/types/maplestory/api/response/character/characterItemEquipmentDtoBody.d.ts +1 -1
  70. package/types/maplestory/api/response/character/characterLinkSkillDtoBody.d.ts +2 -1
  71. package/types/maplestory/api/response/character/characterListDtoBody.d.ts +15 -0
  72. package/types/maplestory/api/response/character/characterPetEquipmentDtoBody.d.ts +1 -1
  73. package/types/maplestory/api/response/character/characterPopularityDtoBody.d.ts +1 -1
  74. package/types/maplestory/api/response/character/characterPropensityDtoBody.d.ts +1 -1
  75. package/types/maplestory/api/response/character/characterSetEffectDtoBody.d.ts +11 -6
  76. package/types/maplestory/api/response/character/characterSkillDtoBody.d.ts +2 -1
  77. package/types/maplestory/api/response/character/characterStatDtoBody.d.ts +1 -1
  78. package/types/maplestory/api/response/character/characterSymbolEquipmentDtoBody.d.ts +1 -1
  79. package/types/maplestory/api/response/character/characterVMatrixDtoBody.d.ts +3 -3
  80. package/types/maplestory/api/response/guild/guildBasicDtoBody.d.ts +1 -3
  81. package/types/maplestory/api/response/history/cubeHistoryDtoBody.d.ts +1 -1
  82. package/types/maplestory/api/response/history/cubeHistoryResponseDtoBody.d.ts +1 -1
  83. package/types/maplestory/api/response/history/starforceHistoryDtoBody.d.ts +2 -2
  84. package/types/maplestory/api/response/history/starforceHistoryResponseDtoBody.d.ts +1 -1
  85. package/types/maplestory/api/response/notice/cashshopNoticeDetailDtoBody.d.ts +10 -0
  86. package/types/maplestory/api/response/notice/cashshopNoticeListDtoBody.d.ts +13 -0
  87. package/types/maplestory/api/response/notice/eventNoticeDetailDtoBody.d.ts +9 -0
  88. package/types/maplestory/api/response/notice/eventNoticeListDtoBody.d.ts +12 -0
  89. package/types/maplestory/api/response/notice/noticeDetailDtoBody.d.ts +7 -0
  90. package/types/maplestory/api/response/notice/noticeListDtoBody.d.ts +10 -0
  91. package/types/maplestory/api/response/notice/updateNoticeDetailDtoBody.d.ts +7 -0
  92. package/types/maplestory/api/response/notice/updateNoticeListDtoBody.d.ts +10 -0
  93. package/types/maplestory/api/response/ranking/theSeedRankingResponseDtoBody.d.ts +2 -3
  94. package/types/maplestory/api/response/union/unionArtifactDtoBody.d.ts +1 -1
  95. package/types/maplestory/api/response/union/unionDtoBody.d.ts +4 -1
  96. package/types/maplestory/api/response/union/unionRaiderDtoBody.d.ts +14 -2
  97. package/types/maplestory/api/dto/character/characterSetEffectOptionInfoDto.d.ts +0 -16
package/dist/index.mjs CHANGED
@@ -7,7 +7,7 @@ var commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof win
7
7
  var timezone$1 = {exports: {}};
8
8
 
9
9
  (function (module, exports) {
10
- !function(t,e){module.exports=e();}(commonjsGlobal,(function(){var t={year:0,month:1,day:2,hour:3,minute:4,second:5},e={};return function(n,i,o){var r,a=function(t,n,i){void 0===i&&(i={});var o=new Date(t),r=function(t,n){void 0===n&&(n={});var i=n.timeZoneName||"short",o=t+"|"+i,r=e[o];return r||(r=new Intl.DateTimeFormat("en-US",{hour12:!1,timeZone:t,year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit",second:"2-digit",timeZoneName:i}),e[o]=r),r}(n,i);return r.formatToParts(o)},u=function(e,n){for(var i=a(e,n),r=[],u=0;u<i.length;u+=1){var f=i[u],s=f.type,m=f.value,c=t[s];c>=0&&(r[c]=parseInt(m,10));}var d=r[3],l=24===d?0:d,h=r[0]+"-"+r[1]+"-"+r[2]+" "+l+":"+r[4]+":"+r[5]+":000",v=+e;return (o.utc(h).valueOf()-(v-=v%1e3))/6e4},f=i.prototype;f.tz=function(t,e){void 0===t&&(t=r);var n=this.utcOffset(),i=this.toDate(),a=i.toLocaleString("en-US",{timeZone:t}),u=Math.round((i-new Date(a))/1e3/60),f=o(a,{locale:this.$L}).$set("millisecond",this.$ms).utcOffset(15*-Math.round(i.getTimezoneOffset()/15)-u,!0);if(e){var s=f.utcOffset();f=f.add(n-s,"minute");}return f.$x.$timezone=t,f},f.offsetName=function(t){var e=this.$x.$timezone||o.tz.guess(),n=a(this.valueOf(),e,{timeZoneName:t}).find((function(t){return "timezonename"===t.type.toLowerCase()}));return n&&n.value};var s=f.startOf;f.startOf=function(t,e){if(!this.$x||!this.$x.$timezone)return s.call(this,t,e);var n=o(this.format("YYYY-MM-DD HH:mm:ss:SSS"),{locale:this.$L});return s.call(n,t,e).tz(this.$x.$timezone,!0)},o.tz=function(t,e,n){var i=n&&e,a=n||e||r,f=u(+o(),a);if("string"!=typeof t)return o(t).tz(a);var s=function(t,e,n){var i=t-60*e*1e3,o=u(i,n);if(e===o)return [i,e];var r=u(i-=60*(o-e)*1e3,n);return o===r?[i,o]:[t-60*Math.min(o,r)*1e3,Math.max(o,r)]}(o.utc(t,i).valueOf(),f,a),m=s[0],c=s[1],d=o(m).utcOffset(c);return d.$x.$timezone=a,d},o.tz.guess=function(){return Intl.DateTimeFormat().resolvedOptions().timeZone},o.tz.setDefault=function(t){r=t;};}}));
10
+ !function(t,e){module.exports=e();}(commonjsGlobal,(function(){var t={year:0,month:1,day:2,hour:3,minute:4,second:5},e={};return function(n,i,o){var r,a=function(t,n,i){void 0===i&&(i={});var o=new Date(t),r=function(t,n){void 0===n&&(n={});var i=n.timeZoneName||"short",o=t+"|"+i,r=e[o];return r||(r=new Intl.DateTimeFormat("en-US",{hour12:!1,timeZone:t,year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit",second:"2-digit",timeZoneName:i}),e[o]=r),r}(n,i);return r.formatToParts(o)},u=function(e,n){for(var i=a(e,n),r=[],u=0;u<i.length;u+=1){var f=i[u],s=f.type,m=f.value,c=t[s];c>=0&&(r[c]=parseInt(m,10));}var d=r[3],l=24===d?0:d,h=r[0]+"-"+r[1]+"-"+r[2]+" "+l+":"+r[4]+":"+r[5]+":000",v=+e;return (o.utc(h).valueOf()-(v-=v%1e3))/6e4},f=i.prototype;f.tz=function(t,e){void 0===t&&(t=r);var n,i=this.utcOffset(),a=this.toDate(),u=a.toLocaleString("en-US",{timeZone:t}),f=Math.round((a-new Date(u))/1e3/60),s=15*-Math.round(a.getTimezoneOffset()/15)-f;if(!Number(s))n=this.utcOffset(0,e);else if(n=o(u,{locale:this.$L}).$set("millisecond",this.$ms).utcOffset(s,!0),e){var m=n.utcOffset();n=n.add(i-m,"minute");}return n.$x.$timezone=t,n},f.offsetName=function(t){var e=this.$x.$timezone||o.tz.guess(),n=a(this.valueOf(),e,{timeZoneName:t}).find((function(t){return "timezonename"===t.type.toLowerCase()}));return n&&n.value};var s=f.startOf;f.startOf=function(t,e){if(!this.$x||!this.$x.$timezone)return s.call(this,t,e);var n=o(this.format("YYYY-MM-DD HH:mm:ss:SSS"),{locale:this.$L});return s.call(n,t,e).tz(this.$x.$timezone,!0)},o.tz=function(t,e,n){var i=n&&e,a=n||e||r,f=u(+o(),a);if("string"!=typeof t)return o(t).tz(a);var s=function(t,e,n){var i=t-60*e*1e3,o=u(i,n);if(e===o)return [i,e];var r=u(i-=60*(o-e)*1e3,n);return o===r?[i,o]:[t-60*Math.min(o,r)*1e3,Math.max(o,r)]}(o.utc(t,i).valueOf(),f,a),m=s[0],c=s[1],d=o(m).utcOffset(c);return d.$x.$timezone=a,d},o.tz.guess=function(){return Intl.DateTimeFormat().resolvedOptions().timeZone},o.tz.setDefault=function(t){r=t;};}}));
11
11
  }(timezone$1));
12
12
 
13
13
  var timezone = timezone$1.exports;
@@ -102,7 +102,7 @@ class CharacterAbilityDto {
102
102
  constructor(obj) {
103
103
  const { date, ability_grade, ability_info, remain_fame, preset_no, ability_preset_1, ability_preset_2, ability_preset_3, } = obj;
104
104
  // 날짜는 Date 객체로 변환
105
- this.date = new Date(date);
105
+ this.date = date ? new Date(date) : null;
106
106
  this.abilityGrade = ability_grade;
107
107
  this.abilityInfo = ability_info.map((info) => new CharacterAbilityInfoDto(info));
108
108
  this.remainFame = remain_fame;
@@ -435,7 +435,7 @@ class CharacterAndroidEquipmentDto {
435
435
  androidPreset3;
436
436
  constructor(obj) {
437
437
  const { date, android_name, android_nickname, android_icon, android_description, android_hair, android_face, android_skin_name, android_cash_item_equipment, android_ear_sensor_clip_flag, android_gender, android_grade, android_non_humanoid_flag, android_shop_usable_flag, preset_no, android_preset_1, android_preset_2, android_preset_3, } = obj;
438
- this.date = new Date(date);
438
+ this.date = date ? new Date(date) : null;
439
439
  this.androidName = android_name;
440
440
  this.androidNickname = android_nickname;
441
441
  this.androidIcon = android_icon;
@@ -501,9 +501,21 @@ class CharacterBasicDto {
501
501
  * 캐릭터 외형 이미지
502
502
  */
503
503
  characterImage;
504
+ /**
505
+ * 캐릭터 생성일
506
+ */
507
+ characterDateCreate;
508
+ /**
509
+ * 최근 7일간 접속 여부
510
+ */
511
+ accessFlag;
512
+ /**
513
+ * 해방 퀘스트 완료 여부
514
+ */
515
+ liberationQuestClearFlag;
504
516
  constructor(obj) {
505
- const { date, character_name, world_name, character_gender, character_class, character_class_level, character_level, character_exp, character_exp_rate, character_guild_name, character_image, } = obj;
506
- this.date = new Date(date);
517
+ const { date, character_name, world_name, character_gender, character_class, character_class_level, character_level, character_exp, character_exp_rate, character_guild_name, character_image, character_date_create, access_flag, liberation_quest_clear_flag, } = obj;
518
+ this.date = date ? new Date(date) : null;
507
519
  this.characterName = character_name;
508
520
  this.worldName = world_name;
509
521
  this.characterGender = character_gender;
@@ -514,6 +526,21 @@ class CharacterBasicDto {
514
526
  this.characterExpRate = character_exp_rate;
515
527
  this.characterGuildName = character_guild_name;
516
528
  this.characterImage = character_image;
529
+ this.characterDateCreate = new Date(character_date_create);
530
+ this.accessFlag = access_flag;
531
+ this.liberationQuestClearFlag = liberation_quest_clear_flag;
532
+ }
533
+ /**
534
+ * 최근 7일간 접속 여부
535
+ */
536
+ get isAccessFlag() {
537
+ return this.accessFlag === 'true';
538
+ }
539
+ /**
540
+ * 해방 퀘스트 완료 여부
541
+ */
542
+ get isLiberationQuestClearFlag() {
543
+ return this.liberationQuestClearFlag === 'true';
517
544
  }
518
545
  }
519
546
 
@@ -620,7 +647,7 @@ class CharacterBeautyEquipmentDto {
620
647
  additionalCharacterSkinName;
621
648
  constructor(obj) {
622
649
  const { date, character_gender, character_class, character_hair, character_face, character_skin_name, additional_character_hair, additional_character_face, additional_character_skin_name, } = obj;
623
- this.date = new Date(date);
650
+ this.date = date ? new Date(date) : null;
624
651
  this.characterGender = character_gender;
625
652
  this.characterClass = character_class;
626
653
  this.characterHair = new CharacterBeautyEquipmentHairDto(character_hair);
@@ -804,7 +831,7 @@ class CharacterCashItemEquipmentDto {
804
831
  additionalCashItemEquipmentPreset3;
805
832
  constructor(obj) {
806
833
  const { date, character_gender, character_class, preset_no, cash_item_equipment_base, cash_item_equipment_preset_1, cash_item_equipment_preset_2, cash_item_equipment_preset_3, additional_cash_item_equipment_base, additional_cash_item_equipment_preset_1, additional_cash_item_equipment_preset_2, additional_cash_item_equipment_preset_3, } = obj;
807
- this.date = new Date(date);
834
+ this.date = date ? new Date(date) : null;
808
835
  this.characterGender = character_gender;
809
836
  this.characterClass = character_class;
810
837
  this.presetNo = preset_no;
@@ -853,7 +880,7 @@ class CharacterDojangDto {
853
880
  dojangBestTime;
854
881
  constructor(obj) {
855
882
  const { date, character_class, world_name, dojang_best_floor, date_dojang_record, dojang_best_time, } = obj;
856
- this.date = new Date(date);
883
+ this.date = date ? new Date(date) : null;
857
884
  this.characterClass = character_class;
858
885
  this.worldName = world_name;
859
886
  this.dojangBestFloor = dojang_best_floor;
@@ -935,7 +962,7 @@ class CharacterHexaMatrixDto {
935
962
  characterHexaCoreEquipment;
936
963
  constructor(obj) {
937
964
  const { date, character_hexa_core_equipment } = obj;
938
- this.date = new Date(date);
965
+ this.date = date ? new Date(date) : null;
939
966
  this.characterHexaCoreEquipment = character_hexa_core_equipment.map((equipment) => new CharacterHexaMatrixEquipmentDto(equipment));
940
967
  }
941
968
  }
@@ -1011,7 +1038,7 @@ class CharacterHexaMatrixStatDto {
1011
1038
  presetHexaStatCore;
1012
1039
  constructor(obj) {
1013
1040
  const { date, character_class, character_hexa_stat_core, preset_hexa_stat_core, } = obj;
1014
- this.date = new Date(date);
1041
+ this.date = date ? new Date(date) : null;
1015
1042
  this.characterClass = character_class;
1016
1043
  this.characterHexaStatCore = character_hexa_stat_core.map((core) => new CharacterHexaMatrixStatCoreDto(core));
1017
1044
  this.presetHexaStatCore = preset_hexa_stat_core.map((core) => new CharacterHexaMatrixStatCoreDto(core));
@@ -1093,7 +1120,7 @@ class CharacterHyperStatDto {
1093
1120
  hyperStatPreset3RemainPoint;
1094
1121
  constructor(obj) {
1095
1122
  const { date, character_class, use_preset_no, use_available_hyper_stat, hyper_stat_preset_1, hyper_stat_preset_1_remain_point, hyper_stat_preset_2, hyper_stat_preset_2_remain_point, hyper_stat_preset_3, hyper_stat_preset_3_remain_point, } = obj;
1096
- this.date = new Date(date);
1123
+ this.date = date ? new Date(date) : null;
1097
1124
  this.characterClass = character_class;
1098
1125
  this.usePresetNo = use_preset_no;
1099
1126
  this.useAvailableHyperStat = use_available_hyper_stat;
@@ -1561,9 +1588,9 @@ class CharacterItemEquipmentTotalOptionDto {
1561
1588
  }
1562
1589
 
1563
1590
  /**
1564
- * 캐릭터 장비 아이템 상세 정보
1591
+ * 에반 드래곤 장비 정보
1565
1592
  */
1566
- class CharacterItemEquipmentInfoDto {
1593
+ class CharacterItemEquipmentDragonInfoDto {
1567
1594
  /**
1568
1595
  * 장비 부위 명
1569
1596
  */
@@ -1604,38 +1631,6 @@ class CharacterItemEquipmentInfoDto {
1604
1631
  * 장비 기본 옵션
1605
1632
  */
1606
1633
  itemBaseOption;
1607
- /**
1608
- * 잠재능력 등급
1609
- */
1610
- potentialOptionGrade;
1611
- /**
1612
- * 에디셔널 잠재능력 등급
1613
- */
1614
- additionalPotentialOptionGrade;
1615
- /**
1616
- * 잠재능력 첫 번째 옵션
1617
- */
1618
- potentialOption1;
1619
- /**
1620
- * 잠재능력 두 번째 옵션
1621
- */
1622
- potentialOption2;
1623
- /**
1624
- * 잠재능력 세 번째 옵션
1625
- */
1626
- potentialOption3;
1627
- /**
1628
- * 에디셔널 잠재능력 첫 번째 옵션
1629
- */
1630
- additionalPotentialOption1;
1631
- /**
1632
- * 에디셔널 잠재능력 두 번째 옵션
1633
- */
1634
- additionalPotentialOption2;
1635
- /**
1636
- * 에디셔널 잠재능력 세 번째 옵션
1637
- */
1638
- additionalPotentialOption3;
1639
1634
  /**
1640
1635
  * 착용 레벨 증가
1641
1636
  */
@@ -1709,7 +1704,7 @@ class CharacterItemEquipmentInfoDto {
1709
1704
  */
1710
1705
  dateExpire;
1711
1706
  constructor(obj) {
1712
- const { item_equipment_part, item_equipment_slot, item_name, item_icon, item_description, item_shape_name, item_shape_icon, item_gender, item_total_option, item_base_option, potential_option_grade, additional_potential_option_grade, potential_option_1, potential_option_2, potential_option_3, additional_potential_option_1, additional_potential_option_2, additional_potential_option_3, equipment_level_increase, item_exceptional_option, item_add_option, growth_exp, growth_level, scroll_upgrade, cuttable_count, golden_hammer_flag, scroll_resilience_count, scroll_upgradeable_count, soul_name, soul_option, item_etc_option, starforce, starforce_scroll_flag, item_starforce_option, special_ring_level, date_expire, } = obj;
1707
+ const { item_equipment_part, item_equipment_slot, item_name, item_icon, item_description, item_shape_name, item_shape_icon, item_gender, item_total_option, item_base_option, equipment_level_increase, item_exceptional_option, item_add_option, growth_exp, growth_level, scroll_upgrade, cuttable_count, golden_hammer_flag, scroll_resilience_count, scroll_upgradeable_count, soul_name, soul_option, item_etc_option, starforce, starforce_scroll_flag, item_starforce_option, special_ring_level, date_expire, } = obj;
1713
1708
  this.itemEquipmentPart = item_equipment_part;
1714
1709
  this.itemEquipmentSlot = item_equipment_slot;
1715
1710
  this.itemName = item_name;
@@ -1720,14 +1715,6 @@ class CharacterItemEquipmentInfoDto {
1720
1715
  this.itemGender = item_gender;
1721
1716
  this.itemTotalOption = new CharacterItemEquipmentTotalOptionDto(item_total_option);
1722
1717
  this.itemBaseOption = new CharacterItemEquipmentBaseOptionDto(item_base_option);
1723
- this.potentialOptionGrade = potential_option_grade;
1724
- this.additionalPotentialOptionGrade = additional_potential_option_grade;
1725
- this.potentialOption1 = potential_option_1;
1726
- this.potentialOption2 = potential_option_2;
1727
- this.potentialOption3 = potential_option_3;
1728
- this.additionalPotentialOption1 = additional_potential_option_1;
1729
- this.additionalPotentialOption2 = additional_potential_option_2;
1730
- this.additionalPotentialOption3 = additional_potential_option_3;
1731
1718
  this.equipmentLevelIncrease = equipment_level_increase;
1732
1719
  this.itemExceptionalOption = new CharacterItemEquipmentExceptionalOptionDto(item_exceptional_option);
1733
1720
  this.itemAddOption = new CharacterItemEquipmentAddOptionDto(item_add_option);
@@ -1750,54 +1737,9 @@ class CharacterItemEquipmentInfoDto {
1750
1737
  }
1751
1738
 
1752
1739
  /**
1753
- * 캐릭터 칭호 아이템 정보
1754
- */
1755
- class CharacterItemEquipmentTitleDto {
1756
- /**
1757
- * 칭호 장비 명
1758
- */
1759
- titleName;
1760
- /**
1761
- * 칭호 아이콘
1762
- */
1763
- titleIcon;
1764
- /**
1765
- * 칭호 설명
1766
- */
1767
- titleDescription;
1768
- /**
1769
- * 칭호 유효 기간
1770
- */
1771
- dateExpire;
1772
- /**
1773
- * 칭호 옵션 유효 기간
1774
- */
1775
- dateOptionExpire = null;
1776
- /**
1777
- * 칭호 옵션 유효 기간 만료 여부
1778
- */
1779
- isOptionExpired = null;
1780
- constructor(obj) {
1781
- const { title_name, title_icon, title_description, date_expire, date_option_expire, } = obj;
1782
- this.titleName = title_name;
1783
- this.titleIcon = title_icon;
1784
- this.titleDescription = title_description;
1785
- this.dateExpire = date_expire ? new Date(date_expire) : null;
1786
- if (date_option_expire === 'expired') {
1787
- this.isOptionExpired = true;
1788
- }
1789
- else if (typeof date_option_expire === 'string') {
1790
- this.dateOptionExpire = date_option_expire
1791
- ? new Date(date_option_expire)
1792
- : null;
1793
- }
1794
- }
1795
- }
1796
-
1797
- /**
1798
- * 에반 드래곤 장비 정보
1740
+ * 캐릭터 장비 아이템 상세 정보
1799
1741
  */
1800
- class CharacterItemEquipmentDragonInfoDto {
1742
+ class CharacterItemEquipmentInfoDto {
1801
1743
  /**
1802
1744
  * 장비 부위 명
1803
1745
  */
@@ -1838,6 +1780,38 @@ class CharacterItemEquipmentDragonInfoDto {
1838
1780
  * 장비 기본 옵션
1839
1781
  */
1840
1782
  itemBaseOption;
1783
+ /**
1784
+ * 잠재능력 등급
1785
+ */
1786
+ potentialOptionGrade;
1787
+ /**
1788
+ * 에디셔널 잠재능력 등급
1789
+ */
1790
+ additionalPotentialOptionGrade;
1791
+ /**
1792
+ * 잠재능력 첫 번째 옵션
1793
+ */
1794
+ potentialOption1;
1795
+ /**
1796
+ * 잠재능력 두 번째 옵션
1797
+ */
1798
+ potentialOption2;
1799
+ /**
1800
+ * 잠재능력 세 번째 옵션
1801
+ */
1802
+ potentialOption3;
1803
+ /**
1804
+ * 에디셔널 잠재능력 첫 번째 옵션
1805
+ */
1806
+ additionalPotentialOption1;
1807
+ /**
1808
+ * 에디셔널 잠재능력 두 번째 옵션
1809
+ */
1810
+ additionalPotentialOption2;
1811
+ /**
1812
+ * 에디셔널 잠재능력 세 번째 옵션
1813
+ */
1814
+ additionalPotentialOption3;
1841
1815
  /**
1842
1816
  * 착용 레벨 증가
1843
1817
  */
@@ -1911,7 +1885,7 @@ class CharacterItemEquipmentDragonInfoDto {
1911
1885
  */
1912
1886
  dateExpire;
1913
1887
  constructor(obj) {
1914
- const { item_equipment_part, item_equipment_slot, item_name, item_icon, item_description, item_shape_name, item_shape_icon, item_gender, item_total_option, item_base_option, equipment_level_increase, item_exceptional_option, item_add_option, growth_exp, growth_level, scroll_upgrade, cuttable_count, golden_hammer_flag, scroll_resilience_count, scroll_upgradeable_count, soul_name, soul_option, item_etc_option, starforce, starforce_scroll_flag, item_starforce_option, special_ring_level, date_expire, } = obj;
1888
+ const { item_equipment_part, item_equipment_slot, item_name, item_icon, item_description, item_shape_name, item_shape_icon, item_gender, item_total_option, item_base_option, potential_option_grade, additional_potential_option_grade, potential_option_1, potential_option_2, potential_option_3, additional_potential_option_1, additional_potential_option_2, additional_potential_option_3, equipment_level_increase, item_exceptional_option, item_add_option, growth_exp, growth_level, scroll_upgrade, cuttable_count, golden_hammer_flag, scroll_resilience_count, scroll_upgradeable_count, soul_name, soul_option, item_etc_option, starforce, starforce_scroll_flag, item_starforce_option, special_ring_level, date_expire, } = obj;
1915
1889
  this.itemEquipmentPart = item_equipment_part;
1916
1890
  this.itemEquipmentSlot = item_equipment_slot;
1917
1891
  this.itemName = item_name;
@@ -1922,6 +1896,14 @@ class CharacterItemEquipmentDragonInfoDto {
1922
1896
  this.itemGender = item_gender;
1923
1897
  this.itemTotalOption = new CharacterItemEquipmentTotalOptionDto(item_total_option);
1924
1898
  this.itemBaseOption = new CharacterItemEquipmentBaseOptionDto(item_base_option);
1899
+ this.potentialOptionGrade = potential_option_grade;
1900
+ this.additionalPotentialOptionGrade = additional_potential_option_grade;
1901
+ this.potentialOption1 = potential_option_1;
1902
+ this.potentialOption2 = potential_option_2;
1903
+ this.potentialOption3 = potential_option_3;
1904
+ this.additionalPotentialOption1 = additional_potential_option_1;
1905
+ this.additionalPotentialOption2 = additional_potential_option_2;
1906
+ this.additionalPotentialOption3 = additional_potential_option_3;
1925
1907
  this.equipmentLevelIncrease = equipment_level_increase;
1926
1908
  this.itemExceptionalOption = new CharacterItemEquipmentExceptionalOptionDto(item_exceptional_option);
1927
1909
  this.itemAddOption = new CharacterItemEquipmentAddOptionDto(item_add_option);
@@ -2092,6 +2074,51 @@ class CharacterItemEquipmentMechanicInfoDto {
2092
2074
  }
2093
2075
  }
2094
2076
 
2077
+ /**
2078
+ * 캐릭터 칭호 아이템 정보
2079
+ */
2080
+ class CharacterItemEquipmentTitleDto {
2081
+ /**
2082
+ * 칭호 장비 명
2083
+ */
2084
+ titleName;
2085
+ /**
2086
+ * 칭호 아이콘
2087
+ */
2088
+ titleIcon;
2089
+ /**
2090
+ * 칭호 설명
2091
+ */
2092
+ titleDescription;
2093
+ /**
2094
+ * 칭호 유효 기간
2095
+ */
2096
+ dateExpire;
2097
+ /**
2098
+ * 칭호 옵션 유효 기간
2099
+ */
2100
+ dateOptionExpire = null;
2101
+ /**
2102
+ * 칭호 옵션 유효 기간 만료 여부
2103
+ */
2104
+ isOptionExpired = null;
2105
+ constructor(obj) {
2106
+ const { title_name, title_icon, title_description, date_expire, date_option_expire, } = obj;
2107
+ this.titleName = title_name;
2108
+ this.titleIcon = title_icon;
2109
+ this.titleDescription = title_description;
2110
+ this.dateExpire = date_expire ? new Date(date_expire) : null;
2111
+ if (date_option_expire === 'expired') {
2112
+ this.isOptionExpired = true;
2113
+ }
2114
+ else if (typeof date_option_expire === 'string') {
2115
+ this.dateOptionExpire = date_option_expire
2116
+ ? new Date(date_option_expire)
2117
+ : null;
2118
+ }
2119
+ }
2120
+ }
2121
+
2095
2122
  /**
2096
2123
  * 캐릭터 장비 아이템 정보
2097
2124
  */
@@ -2142,7 +2169,7 @@ class CharacterItemEquipmentDto {
2142
2169
  mechanicEquipment;
2143
2170
  constructor(obj) {
2144
2171
  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;
2145
- this.date = new Date(date);
2172
+ this.date = date ? new Date(date) : null;
2146
2173
  this.characterGender = character_gender;
2147
2174
  this.characterClass = character_class;
2148
2175
  this.presetNo = preset_no;
@@ -2176,16 +2203,21 @@ class CharacterLinkSkillInfoDto {
2176
2203
  * 스킬 효과
2177
2204
  */
2178
2205
  skillEffect;
2206
+ /**
2207
+ * 다음 레벨의 스킬 효과
2208
+ */
2209
+ skillEffectNext;
2179
2210
  /**
2180
2211
  * 스킬 아이콘
2181
2212
  */
2182
2213
  skillIcon;
2183
2214
  constructor(obj) {
2184
- const { skill_name, skill_description, skill_level, skill_effect, skill_icon, } = obj;
2215
+ const { skill_name, skill_description, skill_level, skill_effect, skill_effect_next, skill_icon, } = obj;
2185
2216
  this.skillName = skill_name;
2186
2217
  this.skillDescription = skill_description;
2187
2218
  this.skillLevel = skill_level;
2188
2219
  this.skillEffect = skill_effect;
2220
+ this.skillEffectNext = skill_effect_next;
2189
2221
  this.skillIcon = skill_icon;
2190
2222
  }
2191
2223
  }
@@ -2236,7 +2268,7 @@ class CharacterLinkSkillDto {
2236
2268
  characterOwnedLinkSkillPreset3;
2237
2269
  constructor(obj) {
2238
2270
  const { date, character_class, character_link_skill, character_link_skill_preset_1, character_link_skill_preset_2, character_link_skill_preset_3, character_owned_link_skill, character_owned_link_skill_preset_1, character_owned_link_skill_preset_2, character_owned_link_skill_preset_3, } = obj;
2239
- this.date = new Date(date);
2271
+ this.date = date ? new Date(date) : null;
2240
2272
  this.characterClass = character_class;
2241
2273
  this.characterLinkSkill = character_link_skill.map((skill) => new CharacterLinkSkillInfoDto(skill));
2242
2274
  this.characterLinkSkillPreset1 = character_link_skill_preset_1.map((skill) => new CharacterLinkSkillInfoDto(skill));
@@ -2250,63 +2282,130 @@ class CharacterLinkSkillDto {
2250
2282
  }
2251
2283
 
2252
2284
  /**
2253
- * 캐릭터 펫 장비 자동 스킬 정보
2285
+ * 캐릭터 정보
2254
2286
  */
2255
- class CharacterPetEquipmentAutoSkillDto {
2287
+ class CharacterListAccountCharacterDto {
2256
2288
  /**
2257
- * 번째 슬롯에 등록된 자동 스킬
2289
+ * 캐릭터 식별자
2258
2290
  */
2259
- skill1;
2291
+ ocid;
2260
2292
  /**
2261
- * 번째 슬롯에 등록된 자동 아이콘
2293
+ * 캐릭터
2262
2294
  */
2263
- skill1Icon;
2295
+ characterName;
2264
2296
  /**
2265
- * 번째 슬롯에 등록된 자동 스킬
2297
+ * 월드
2266
2298
  */
2267
- skill2;
2299
+ worldName;
2268
2300
  /**
2269
- * 번째 슬롯에 등록된 자동 아이콘
2301
+ * 캐릭터 직업
2270
2302
  */
2271
- skill2Icon;
2303
+ characterClass;
2304
+ /**
2305
+ * 캐릭터 레벨
2306
+ */
2307
+ characterLevel;
2272
2308
  constructor(obj) {
2273
- const { skill_1, skill_1_icon, skill_2, skill_2_icon } = obj;
2274
- this.skill1 = skill_1;
2275
- this.skill1Icon = skill_1_icon;
2276
- this.skill2 = skill_2;
2277
- this.skill2Icon = skill_2_icon;
2309
+ const { ocid, character_name, world_name, character_class, character_level, } = obj;
2310
+ this.ocid = ocid;
2311
+ this.characterName = character_name;
2312
+ this.worldName = world_name;
2313
+ this.characterClass = character_class;
2314
+ this.characterLevel = character_level;
2278
2315
  }
2279
2316
  }
2280
2317
 
2281
2318
  /**
2282
- * 캐릭터 펫 장비 아이템 옵션 정보
2319
+ * 메이플스토리 계정
2283
2320
  */
2284
- class CharacterPetEquipmentItemOptionDto {
2321
+ class CharacterListAccountDto {
2285
2322
  /**
2286
- * 옵션 정보
2323
+ * 메이플스토리 계정 식별자
2287
2324
  */
2288
- optionType;
2325
+ accountId;
2289
2326
  /**
2290
- * 옵션
2327
+ * 캐릭터 목록
2291
2328
  */
2292
- optionValue;
2329
+ characterList;
2293
2330
  constructor(obj) {
2294
- const { option_type, option_value } = obj;
2295
- this.optionType = option_type;
2296
- this.optionValue = option_value;
2331
+ const { account_id, character_list } = obj;
2332
+ this.accountId = account_id;
2333
+ this.characterList = character_list.map(character => new CharacterListAccountCharacterDto(character));
2297
2334
  }
2298
2335
  }
2299
2336
 
2300
2337
  /**
2301
- * 캐릭터 장비 아이템 정보
2338
+ * 계정의 보유 캐릭터 목록
2302
2339
  */
2303
- class CharacterPetEquipmentItemDto {
2304
- /**
2305
- * 아이템 명
2306
- */
2307
- itemName;
2340
+ class CharacterListDto {
2308
2341
  /**
2309
- * 아이템 아이콘
2342
+ * 메이플스토리 계정 목록
2343
+ */
2344
+ accountList;
2345
+ constructor(obj) {
2346
+ const { account_list } = obj;
2347
+ this.accountList = account_list.map(account => new CharacterListAccountDto(account));
2348
+ }
2349
+ }
2350
+
2351
+ /**
2352
+ * 캐릭터 펫 장비 자동 스킬 정보
2353
+ */
2354
+ class CharacterPetEquipmentAutoSkillDto {
2355
+ /**
2356
+ * 첫 번째 슬롯에 등록된 자동 스킬
2357
+ */
2358
+ skill1;
2359
+ /**
2360
+ * 첫 번째 슬롯에 등록된 자동 아이콘
2361
+ */
2362
+ skill1Icon;
2363
+ /**
2364
+ * 두 번째 슬롯에 등록된 자동 스킬
2365
+ */
2366
+ skill2;
2367
+ /**
2368
+ * 두 번째 슬롯에 등록된 자동 아이콘
2369
+ */
2370
+ skill2Icon;
2371
+ constructor(obj) {
2372
+ const { skill_1, skill_1_icon, skill_2, skill_2_icon } = obj;
2373
+ this.skill1 = skill_1;
2374
+ this.skill1Icon = skill_1_icon;
2375
+ this.skill2 = skill_2;
2376
+ this.skill2Icon = skill_2_icon;
2377
+ }
2378
+ }
2379
+
2380
+ /**
2381
+ * 캐릭터 펫 장비 아이템 옵션 정보
2382
+ */
2383
+ class CharacterPetEquipmentItemOptionDto {
2384
+ /**
2385
+ * 옵션 정보
2386
+ */
2387
+ optionType;
2388
+ /**
2389
+ * 옵션 값
2390
+ */
2391
+ optionValue;
2392
+ constructor(obj) {
2393
+ const { option_type, option_value } = obj;
2394
+ this.optionType = option_type;
2395
+ this.optionValue = option_value;
2396
+ }
2397
+ }
2398
+
2399
+ /**
2400
+ * 캐릭터 펫 장비 아이템 정보
2401
+ */
2402
+ class CharacterPetEquipmentItemDto {
2403
+ /**
2404
+ * 아이템 명
2405
+ */
2406
+ itemName;
2407
+ /**
2408
+ * 아이템 아이콘
2310
2409
  */
2311
2410
  itemIcon;
2312
2411
  /**
@@ -2488,7 +2587,7 @@ class CharacterPetEquipmentDto {
2488
2587
  pet3AppearanceIcon;
2489
2588
  constructor(obj) {
2490
2589
  const { date, pet_1_name, pet_1_nickname, pet_1_icon, pet_1_description, pet_1_equipment, pet_1_auto_skill, pet_1_pet_type, pet_1_skill, pet_1_date_expire, pet_1_appearance, pet_1_appearance_icon, pet_2_name, pet_2_nickname, pet_2_icon, pet_2_description, pet_2_equipment, pet_2_auto_skill, pet_2_pet_type, pet_2_skill, pet_2_date_expire, pet_2_appearance, pet_2_appearance_icon, pet_3_name, pet_3_nickname, pet_3_icon, pet_3_description, pet_3_equipment, pet_3_auto_skill, pet_3_pet_type, pet_3_skill, pet_3_date_expire, pet_3_appearance, pet_3_appearance_icon, } = obj;
2491
- this.date = new Date(date);
2590
+ this.date = date ? new Date(date) : null;
2492
2591
  this.pet1Name = pet_1_name;
2493
2592
  this.pet1Nickname = pet_1_nickname;
2494
2593
  this.pet1Icon = pet_1_icon;
@@ -2539,7 +2638,7 @@ class CharacterPopularityDto {
2539
2638
  popularity;
2540
2639
  constructor(obj) {
2541
2640
  const { date, popularity } = obj;
2542
- this.date = new Date(date);
2641
+ this.date = date ? new Date(date) : null;
2543
2642
  this.popularity = popularity;
2544
2643
  }
2545
2644
  }
@@ -2575,7 +2674,7 @@ class CharacterPropensityDto {
2575
2674
  charmLevel;
2576
2675
  constructor(obj) {
2577
2676
  const { date, charisma_level, sensibility_level, insight_level, willingness_level, handicraft_level, charm_level, } = obj;
2578
- this.date = new Date(date);
2677
+ this.date = date ? new Date(date) : null;
2579
2678
  this.charismaLevel = charisma_level;
2580
2679
  this.sensibilityLevel = sensibility_level;
2581
2680
  this.insightLevel = insight_level;
@@ -2586,15 +2685,15 @@ class CharacterPropensityDto {
2586
2685
  }
2587
2686
 
2588
2687
  /**
2589
- * 캐릭터 세트 효과 옵션 정보
2688
+ * 적용 중인 세트 효과 정보
2590
2689
  */
2591
- class CharacterSetEffectOptionInfoDto {
2690
+ class CharacterSetEffectInfoDto {
2592
2691
  /**
2593
2692
  * 세트 효과 레벨 (장비 수)
2594
2693
  */
2595
2694
  setCount;
2596
2695
  /**
2597
- * 적용 중인 세트 효과
2696
+ * 세트 효과
2598
2697
  */
2599
2698
  setOption;
2600
2699
  constructor(obj) {
@@ -2605,9 +2704,28 @@ class CharacterSetEffectOptionInfoDto {
2605
2704
  }
2606
2705
 
2607
2706
  /**
2608
- * 캐릭터 세트 효과 정보
2707
+ * 모든 세트 효과 정보
2609
2708
  */
2610
- class CharacterSetEffectInfoDto {
2709
+ class CharacterSetEffectOptionFullDto {
2710
+ /**
2711
+ * 세트 효과 레벨 (장비 수)
2712
+ */
2713
+ setCount;
2714
+ /**
2715
+ * 세트 효과
2716
+ */
2717
+ setOption;
2718
+ constructor(obj) {
2719
+ const { set_count, set_option } = obj;
2720
+ this.setCount = set_count;
2721
+ this.setOption = set_option;
2722
+ }
2723
+ }
2724
+
2725
+ /**
2726
+ * 세트 효과 정보
2727
+ */
2728
+ class CharacterSetEffectSetDto {
2611
2729
  /**
2612
2730
  * 세트 효과 명
2613
2731
  */
@@ -2617,14 +2735,19 @@ class CharacterSetEffectInfoDto {
2617
2735
  */
2618
2736
  totalSetCount;
2619
2737
  /**
2620
- * 세트 효과 옵션
2738
+ * 적용 중인 세트 효과 정보
2621
2739
  */
2622
2740
  setEffectInfo;
2741
+ /**
2742
+ * 모든 세트 효과 정보
2743
+ */
2744
+ setOptionFull;
2623
2745
  constructor(obj) {
2624
- const { set_name, total_set_count, set_effect_info } = obj;
2746
+ const { set_name, total_set_count, set_effect_info, set_option_full } = obj;
2625
2747
  this.setName = set_name;
2626
2748
  this.totalSetCount = total_set_count;
2627
- this.setEffectInfo = set_effect_info.map((info) => new CharacterSetEffectOptionInfoDto(info));
2749
+ this.setEffectInfo = set_effect_info.map((info) => new CharacterSetEffectInfoDto(info));
2750
+ this.setOptionFull = set_option_full.map((info) => new CharacterSetEffectOptionFullDto(info));
2628
2751
  }
2629
2752
  }
2630
2753
 
@@ -2642,8 +2765,8 @@ class CharacterSetEffectDto {
2642
2765
  setEffect;
2643
2766
  constructor(obj) {
2644
2767
  const { date, set_effect } = obj;
2645
- this.date = new Date(date);
2646
- this.setEffect = set_effect.map((effect) => new CharacterSetEffectInfoDto(effect));
2768
+ this.date = date ? new Date(date) : null;
2769
+ this.setEffect = set_effect.map((effect) => new CharacterSetEffectSetDto(effect));
2647
2770
  }
2648
2771
  }
2649
2772
 
@@ -2667,16 +2790,21 @@ class CharacterSkillInfoDto {
2667
2790
  * 스킬 레벨 별 효과 설명
2668
2791
  */
2669
2792
  skillEffect;
2793
+ /**
2794
+ * 다음 스킬 레벨 효과 설명
2795
+ */
2796
+ skillEffectNext;
2670
2797
  /**
2671
2798
  * 스킬 아이콘
2672
2799
  */
2673
2800
  skillIcon;
2674
2801
  constructor(obj) {
2675
- const { skill_name, skill_description, skill_level, skill_effect, skill_icon, } = obj;
2802
+ const { skill_name, skill_description, skill_level, skill_effect, skill_effect_next, skill_icon, } = obj;
2676
2803
  this.skillName = skill_name;
2677
2804
  this.skillDescription = skill_description;
2678
2805
  this.skillLevel = skill_level;
2679
2806
  this.skillEffect = skill_effect;
2807
+ this.skillEffectNext = skill_effect_next;
2680
2808
  this.skillIcon = skill_icon;
2681
2809
  }
2682
2810
  }
@@ -2703,7 +2831,7 @@ class CharacterSkillDto {
2703
2831
  characterSkill;
2704
2832
  constructor(obj) {
2705
2833
  const { date, character_class, character_skill_grade, character_skill } = obj;
2706
- this.date = new Date(date);
2834
+ this.date = date ? new Date(date) : null;
2707
2835
  this.characterClass = character_class;
2708
2836
  this.characterSkillGrade = character_skill_grade;
2709
2837
  this.characterSkill = character_skill.map((skill) => new CharacterSkillInfoDto(skill));
@@ -2732,7 +2860,7 @@ class CharacterStatDto {
2732
2860
  remainAP;
2733
2861
  constructor(obj) {
2734
2862
  const { date, character_class, final_stat, remain_ap } = obj;
2735
- this.date = new Date(date);
2863
+ this.date = date ? new Date(date) : null;
2736
2864
  this.characterClass = character_class;
2737
2865
  this.finalStat = final_stat.map((stat) => {
2738
2866
  return {
@@ -2831,7 +2959,7 @@ class CharacterSymbolEquipmentDto {
2831
2959
  symbol;
2832
2960
  constructor(obj) {
2833
2961
  const { date, character_class, symbol } = obj;
2834
- this.date = new Date(date);
2962
+ this.date = date ? new Date(date) : null;
2835
2963
  this.characterClass = character_class;
2836
2964
  this.symbol = symbol.map((s) => new CharacterSymbolEquipmentInfoDto(s));
2837
2965
  }
@@ -2908,7 +3036,7 @@ class CharacterVMatrixDto {
2908
3036
  characterVMatrixRemainSlotUpgradePoint;
2909
3037
  constructor(obj) {
2910
3038
  const { date, character_class, character_v_core_equipment, character_v_matrix_remain_slot_upgrade_point, } = obj;
2911
- this.date = new Date(date);
3039
+ this.date = date ? new Date(date) : null;
2912
3040
  this.characterClass = character_class;
2913
3041
  this.characterVCoreEquipment = character_v_core_equipment.map((equipment) => new CharacterVMatrixCodeEquipmentDto(equipment));
2914
3042
  this.characterVMatrixRemainSlotUpgradePoint =
@@ -2998,17 +3126,9 @@ class GuildBasicDto {
2998
3126
  * 노블레스 스킬 목록
2999
3127
  */
3000
3128
  guildNoblesseSkill;
3001
- /**
3002
- * 조합형 길드 마크
3003
- */
3004
- guildMark;
3005
- /**
3006
- * 커스텀 길드 마크 (base64 인코딩 형식)
3007
- */
3008
- guildMarkCustom;
3009
3129
  constructor(obj) {
3010
- const { date, world_name, guild_name, guild_level, guild_fame, guild_point, guild_master_name, guild_member_count, guild_member, guild_skill, guild_noblesse_skill, guild_mark, guild_mark_custom, } = obj;
3011
- this.date = new Date(date);
3130
+ const { date, world_name, guild_name, guild_level, guild_fame, guild_point, guild_master_name, guild_member_count, guild_member, guild_skill, guild_noblesse_skill, } = obj;
3131
+ this.date = date ? new Date(date) : null;
3012
3132
  this.worldName = world_name;
3013
3133
  this.guildName = guild_name;
3014
3134
  this.guildLevel = guild_level;
@@ -3019,8 +3139,6 @@ class GuildBasicDto {
3019
3139
  this.guildMember = guild_member;
3020
3140
  this.guildSkill = guild_skill.map((skill) => new GuildSkillDto(skill));
3021
3141
  this.guildNoblesseSkill = guild_noblesse_skill.map((skill) => new GuildSkillDto(skill));
3022
- this.guildMark = guild_mark;
3023
- this.guildMarkCustom = guild_mark_custom;
3024
3142
  }
3025
3143
  }
3026
3144
 
@@ -3222,6 +3340,159 @@ class CubeHistoryResponseDto {
3222
3340
  }
3223
3341
  }
3224
3342
 
3343
+ /**
3344
+ * 잠재능력 재설정 결과 옵션 정보
3345
+ */
3346
+ class PotentialResultOptionDto {
3347
+ /**
3348
+ * 옵션 명
3349
+ */
3350
+ value;
3351
+ /**
3352
+ * 옵션 등급
3353
+ */
3354
+ grade;
3355
+ constructor(obj) {
3356
+ const { value, grade } = obj;
3357
+ this.value = value;
3358
+ this.grade = grade;
3359
+ }
3360
+ get gradeEnum() {
3361
+ return potentialOptionGradeFromString(this.grade);
3362
+ }
3363
+ }
3364
+
3365
+ /**
3366
+ * 잠재능력 재설정 히스토리
3367
+ */
3368
+ class PotentialHistoryDto {
3369
+ /**
3370
+ * 잠재능력 재설정 히스토리 식별자
3371
+ */
3372
+ id;
3373
+ /**
3374
+ * 캐릭터 명
3375
+ */
3376
+ characterName;
3377
+ /**
3378
+ * 사용 일시
3379
+ */
3380
+ dateCreate;
3381
+ /**
3382
+ * 대상 잠재능력 타입 (잠재능력, 에디셔널 잠재능력)
3383
+ */
3384
+ potentialType;
3385
+ /**
3386
+ * 사용 결과
3387
+ */
3388
+ itemUpgradeResult;
3389
+ /**
3390
+ * 미라클 타임 적용 여부
3391
+ */
3392
+ miracleTimeFlag;
3393
+ /**
3394
+ * 장비 분류
3395
+ */
3396
+ itemEquipmentPart;
3397
+ /**
3398
+ * 장비 레벨
3399
+ */
3400
+ itemLevel;
3401
+ /**
3402
+ * 잠재능력 재설정 장비 명
3403
+ */
3404
+ targetItem;
3405
+ /**
3406
+ * 잠재능력 등급
3407
+ */
3408
+ potentialOptionGrade;
3409
+ /**
3410
+ * 에디셔널 잠재능력 등급
3411
+ */
3412
+ additionalPotentialOptionGrade;
3413
+ /**
3414
+ * 천장에 도달하여 확정 등급 상승한 여부
3415
+ */
3416
+ upgradeGuarantee;
3417
+ /**
3418
+ * 현재까지 쌓은 스택
3419
+ */
3420
+ upgradeGuaranteeCount;
3421
+ /**
3422
+ * 사용 전 잠재능력 옵션
3423
+ */
3424
+ beforePotentialOption;
3425
+ /**
3426
+ * 사용 전 에디셔널 잠재능력 옵션
3427
+ */
3428
+ beforeAdditionalPotentialOption;
3429
+ /**
3430
+ * 사용 후 잠재능력 옵션
3431
+ */
3432
+ afterPotentialOption;
3433
+ /**
3434
+ * 사용 후 에디셔널 잠재능력 옵션
3435
+ */
3436
+ afterAdditionalPotentialOption;
3437
+ constructor(obj) {
3438
+ const { id, character_name, date_create, potential_type, item_upgrade_result, miracle_time_flag, item_equipment_part, item_level, target_item, potential_option_grade, additional_potential_option_grade, upgrade_guarantee, upgrade_guarantee_count, before_potential_option, before_additional_potential_option, after_potential_option, after_additional_potential_option, } = obj;
3439
+ this.id = id;
3440
+ this.characterName = character_name;
3441
+ this.dateCreate = new Date(date_create);
3442
+ this.potentialType = potential_type;
3443
+ this.itemUpgradeResult = item_upgrade_result;
3444
+ this.miracleTimeFlag = miracle_time_flag;
3445
+ this.itemEquipmentPart = item_equipment_part;
3446
+ this.itemLevel = item_level;
3447
+ this.targetItem = target_item;
3448
+ this.potentialOptionGrade = potential_option_grade;
3449
+ this.additionalPotentialOptionGrade = additional_potential_option_grade;
3450
+ this.upgradeGuarantee = upgrade_guarantee;
3451
+ this.upgradeGuaranteeCount = upgrade_guarantee_count;
3452
+ this.beforePotentialOption = before_potential_option.map((origin) => new PotentialResultOptionDto(origin));
3453
+ this.beforeAdditionalPotentialOption =
3454
+ before_additional_potential_option.map((origin) => new PotentialResultOptionDto(origin));
3455
+ this.afterPotentialOption = after_potential_option.map((origin) => new PotentialResultOptionDto(origin));
3456
+ this.afterAdditionalPotentialOption = after_additional_potential_option.map((origin) => new PotentialResultOptionDto(origin));
3457
+ }
3458
+ get isItemUpgrade() {
3459
+ return this.itemUpgradeResult === '성공';
3460
+ }
3461
+ get isMiracleTimeFlag() {
3462
+ return this.miracleTimeFlag !== '이벤트 적용되지 않음';
3463
+ }
3464
+ get potentialOptionGradeEnum() {
3465
+ return potentialOptionGradeFromString(this.potentialOptionGrade);
3466
+ }
3467
+ get additionalPotentialOptionGradeEnum() {
3468
+ return potentialOptionGradeFromString(this.additionalPotentialOptionGrade);
3469
+ }
3470
+ }
3471
+
3472
+ /**
3473
+ * 잠재능력 재설정 히스토리 응답 정보
3474
+ */
3475
+ class PotentialHistoryResponseDto {
3476
+ /**
3477
+ * 결과 건 수
3478
+ */
3479
+ count;
3480
+ /**
3481
+ * 잠재능력 재설정 히스토리
3482
+ */
3483
+ potentialHistory;
3484
+ /**
3485
+ * 페이징 처리를 위한 cursor
3486
+ */
3487
+ nextCursor;
3488
+ constructor(obj) {
3489
+ const { count, potential_history, next_cursor } = obj;
3490
+ this.count = count;
3491
+ this.potentialHistory = potential_history.map((origin) => new PotentialHistoryDto(origin));
3492
+ this.nextCursor = next_cursor;
3493
+ }
3494
+ }
3495
+
3225
3496
  /**
3226
3497
  * 스타포스 강화 이벤트 정보
3227
3498
  */
@@ -3341,7 +3612,7 @@ class StarforceHistoryDto {
3341
3612
  this.worldName = world_name;
3342
3613
  this.targetItem = target_item;
3343
3614
  this.dateCreate = new Date(date_create);
3344
- this.starforceEventList = starforce_event_list.map((event) => new StarforceEventDto(event));
3615
+ this.starforceEventList = starforce_event_list?.map((event) => new StarforceEventDto(event)) ?? null;
3345
3616
  }
3346
3617
  }
3347
3618
 
@@ -3399,7 +3670,357 @@ class InspectionInfoDto {
3399
3670
  }
3400
3671
 
3401
3672
  /**
3402
- * 업적 랭킹 정보
3673
+ * 캐시샵 공지 상세
3674
+ */
3675
+ class CashshopNoticeDetailDto {
3676
+ /**
3677
+ * 공지 제목
3678
+ */
3679
+ title;
3680
+ /**
3681
+ * 공지 링크
3682
+ */
3683
+ url;
3684
+ /**
3685
+ * 공지 본문
3686
+ */
3687
+ contents;
3688
+ /**
3689
+ * 공지 등록일
3690
+ */
3691
+ date;
3692
+ /**
3693
+ * 판매 시작일
3694
+ */
3695
+ dateSaleStart;
3696
+ /**
3697
+ * 판매 종료일
3698
+ */
3699
+ dateSaleEnd;
3700
+ /**
3701
+ * 상시 판매 여부 (true - 상시)
3702
+ */
3703
+ ongoingFlag;
3704
+ constructor(obj) {
3705
+ const { title, url, contents, date, date_sale_start, date_sale_end, ongoing_flag } = obj;
3706
+ this.title = title;
3707
+ this.url = url;
3708
+ this.contents = contents;
3709
+ this.date = new Date(date);
3710
+ this.dateSaleStart = date_sale_start ? new Date(date_sale_start) : null;
3711
+ this.dateSaleEnd = date_sale_end ? new Date(date_sale_end) : null;
3712
+ this.ongoingFlag = ongoing_flag;
3713
+ }
3714
+ /**
3715
+ * 상시 판매 여부 (true - 상시)
3716
+ */
3717
+ get isOnGoing() {
3718
+ return this.ongoingFlag === 'true';
3719
+ }
3720
+ }
3721
+
3722
+ /**
3723
+ * 캐시샵 공지
3724
+ */
3725
+ class CashshopNoticeListItemDto {
3726
+ /**
3727
+ * 공지 제목
3728
+ */
3729
+ title;
3730
+ /**
3731
+ * 공지 링크
3732
+ */
3733
+ url;
3734
+ /**
3735
+ * 공지 식별자
3736
+ */
3737
+ noticeId;
3738
+ /**
3739
+ * 공지 등록일
3740
+ */
3741
+ date;
3742
+ /**
3743
+ * 판매 시작일
3744
+ */
3745
+ dateSaleStart;
3746
+ /**
3747
+ * 판매 종료일
3748
+ */
3749
+ dateSaleEnd;
3750
+ /**
3751
+ * 상시 판매 여부 (true - 상시)
3752
+ */
3753
+ ongoingFlag;
3754
+ constructor(obj) {
3755
+ const { title, url, notice_id, date, date_sale_start, date_sale_end, ongoing_flag } = obj;
3756
+ this.title = title;
3757
+ this.url = url;
3758
+ this.noticeId = notice_id;
3759
+ this.date = new Date(date);
3760
+ this.dateSaleStart = date_sale_start ? new Date(date_sale_start) : null;
3761
+ this.dateSaleEnd = date_sale_end ? new Date(date_sale_end) : null;
3762
+ this.ongoingFlag = ongoing_flag;
3763
+ }
3764
+ /**
3765
+ * 상시 판매 여부 (true - 상시)
3766
+ */
3767
+ get isOnGoing() {
3768
+ return this.ongoingFlag === 'true';
3769
+ }
3770
+ }
3771
+
3772
+ /**
3773
+ * 캐시샵 공지 목록
3774
+ */
3775
+ class CashshopNoticeListDto {
3776
+ /**
3777
+ * 공지 목록
3778
+ */
3779
+ cashshopNotice;
3780
+ constructor(obj) {
3781
+ const { cashshop_notice } = obj;
3782
+ this.cashshopNotice = cashshop_notice.map(notice => new CashshopNoticeListItemDto(notice));
3783
+ }
3784
+ }
3785
+
3786
+ /**
3787
+ * 진행 중 이벤트 상세
3788
+ */
3789
+ class EventNoticeDetailDto {
3790
+ /**
3791
+ * 공지 제목
3792
+ */
3793
+ title;
3794
+ /**
3795
+ * 공지 링크
3796
+ */
3797
+ url;
3798
+ /**
3799
+ * 공지 본문
3800
+ */
3801
+ contents;
3802
+ /**
3803
+ * 공지 등록일
3804
+ */
3805
+ date;
3806
+ /**
3807
+ * 이벤트 시작일
3808
+ */
3809
+ dateEventStart;
3810
+ /**
3811
+ * 이벤트 종료일
3812
+ */
3813
+ dateEventEnd;
3814
+ constructor(obj) {
3815
+ const { title, url, contents, date, date_event_start, date_event_end } = obj;
3816
+ this.title = title;
3817
+ this.url = url;
3818
+ this.contents = contents;
3819
+ this.date = new Date(date);
3820
+ this.dateEventStart = new Date(date_event_start);
3821
+ this.dateEventEnd = new Date(date_event_end);
3822
+ }
3823
+ }
3824
+
3825
+ /**
3826
+ * 진행 중 이벤트 공지
3827
+ */
3828
+ class EventNoticeListItemDto {
3829
+ /**
3830
+ * 공지 제목
3831
+ */
3832
+ title;
3833
+ /**
3834
+ * 공지 링크
3835
+ */
3836
+ url;
3837
+ /**
3838
+ * 공지 식별자
3839
+ */
3840
+ noticeId;
3841
+ /**
3842
+ * 공지 등록일
3843
+ */
3844
+ date;
3845
+ /**
3846
+ * 이벤트 시작일
3847
+ */
3848
+ dateEventStart;
3849
+ /**
3850
+ * 이벤트 종료일
3851
+ */
3852
+ dateEventEnd;
3853
+ constructor(obj) {
3854
+ const { title, url, notice_id, date, date_event_start, date_event_end } = obj;
3855
+ this.title = title;
3856
+ this.url = url;
3857
+ this.noticeId = notice_id;
3858
+ this.date = new Date(date);
3859
+ this.dateEventStart = new Date(date_event_start);
3860
+ this.dateEventEnd = new Date(date_event_end);
3861
+ }
3862
+ }
3863
+
3864
+ /**
3865
+ * 진행 중 이벤트 공지 목록
3866
+ */
3867
+ class EventNoticeListDto {
3868
+ /**
3869
+ * 공지 목록
3870
+ */
3871
+ eventNotice;
3872
+ constructor(obj) {
3873
+ const { event_notice } = obj;
3874
+ this.eventNotice = event_notice.map(notice => new EventNoticeListItemDto(notice));
3875
+ }
3876
+ }
3877
+
3878
+ /**
3879
+ * 공지사항 상세
3880
+ */
3881
+ class NoticeDetailDto {
3882
+ /**
3883
+ * 공지 제목
3884
+ */
3885
+ title;
3886
+ /**
3887
+ * 공지 링크
3888
+ */
3889
+ url;
3890
+ /**
3891
+ * 공지 본문
3892
+ */
3893
+ contents;
3894
+ /**
3895
+ * 공지 등록일
3896
+ */
3897
+ date;
3898
+ constructor(obj) {
3899
+ const { title, url, contents, date } = obj;
3900
+ this.title = title;
3901
+ this.url = url;
3902
+ this.contents = contents;
3903
+ this.date = new Date(date);
3904
+ }
3905
+ }
3906
+
3907
+ /**
3908
+ * 공지사항
3909
+ */
3910
+ class NoticeListItemDto {
3911
+ /**
3912
+ * 공지 제목
3913
+ */
3914
+ title;
3915
+ /**
3916
+ * 공지 링크
3917
+ */
3918
+ url;
3919
+ /**
3920
+ * 공지 식별자
3921
+ */
3922
+ noticeId;
3923
+ /**
3924
+ * 공지 등록일
3925
+ */
3926
+ date;
3927
+ constructor(obj) {
3928
+ const { title, url, notice_id, date } = obj;
3929
+ this.title = title;
3930
+ this.url = url;
3931
+ this.noticeId = notice_id;
3932
+ this.date = new Date(date);
3933
+ }
3934
+ }
3935
+
3936
+ /**
3937
+ * 공지사항 목록
3938
+ */
3939
+ class NoticeListDto {
3940
+ /**
3941
+ * 공지 목록
3942
+ */
3943
+ notice;
3944
+ constructor(obj) {
3945
+ const { notice } = obj;
3946
+ this.notice = notice.map(notice => new NoticeListItemDto(notice));
3947
+ }
3948
+ }
3949
+
3950
+ /**
3951
+ * 업데이트 상세
3952
+ */
3953
+ class UpdateNoticeDetailDto {
3954
+ /**
3955
+ * 공지 제목
3956
+ */
3957
+ title;
3958
+ /**
3959
+ * 공지 링크
3960
+ */
3961
+ url;
3962
+ /**
3963
+ * 공지 본문
3964
+ */
3965
+ contents;
3966
+ /**
3967
+ * 공지 등록일
3968
+ */
3969
+ date;
3970
+ constructor(obj) {
3971
+ const { title, url, contents, date } = obj;
3972
+ this.title = title;
3973
+ this.url = url;
3974
+ this.contents = contents;
3975
+ this.date = new Date(date);
3976
+ }
3977
+ }
3978
+
3979
+ /**
3980
+ * 업데이트 공지
3981
+ */
3982
+ class UpdateNoticeListItemDto {
3983
+ /**
3984
+ * 공지 제목
3985
+ */
3986
+ title;
3987
+ /**
3988
+ * 공지 링크
3989
+ */
3990
+ url;
3991
+ /**
3992
+ * 공지 식별자
3993
+ */
3994
+ noticeId;
3995
+ /**
3996
+ * 공지 등록일
3997
+ */
3998
+ date;
3999
+ constructor(obj) {
4000
+ const { title, url, notice_id, date } = obj;
4001
+ this.title = title;
4002
+ this.url = url;
4003
+ this.noticeId = notice_id;
4004
+ this.date = new Date(date);
4005
+ }
4006
+ }
4007
+
4008
+ /**
4009
+ * 업데이트 목록
4010
+ */
4011
+ class UpdateNoticeListDto {
4012
+ /**
4013
+ * 공지 목록
4014
+ */
4015
+ updateNotice;
4016
+ constructor(obj) {
4017
+ const { update_notice } = obj;
4018
+ this.updateNotice = update_notice.map(notice => new UpdateNoticeListItemDto(notice));
4019
+ }
4020
+ }
4021
+
4022
+ /**
4023
+ * 업적 랭킹 정보
3403
4024
  */
3404
4025
  class AchievementRankingDto {
3405
4026
  /**
@@ -3881,7 +4502,7 @@ class UnionArtifactDto {
3881
4502
  unionArtifactRemainAp;
3882
4503
  constructor(obj) {
3883
4504
  const { date, union_artifact_effect, union_artifact_crystal, union_artifact_remain_ap, } = obj;
3884
- this.date = new Date(date);
4505
+ this.date = date ? new Date(date) : null;
3885
4506
  this.unionArtifactEffect = union_artifact_effect.map((effect) => new UnionArtifactEffectDto(effect));
3886
4507
  this.unionArtifactCrystal = union_artifact_crystal.map((crystal) => new UnionArtifactCrystalDto(crystal));
3887
4508
  this.unionArtifactRemainAp = union_artifact_remain_ap;
@@ -3904,11 +4525,26 @@ class UnionDto {
3904
4525
  * 유니온 등급
3905
4526
  */
3906
4527
  unionGrade;
4528
+ /**
4529
+ * 아티팩트 레벨
4530
+ */
4531
+ unionArtifactLevel;
4532
+ /**
4533
+ * 보유 아티팩트 경험치
4534
+ */
4535
+ unionArtifactExp;
4536
+ /**
4537
+ * 보유 아티팩트 포인트
4538
+ */
4539
+ unionArtifactPoint;
3907
4540
  constructor(obj) {
3908
- const { date, union_level, union_grade } = obj;
3909
- this.date = new Date(date);
4541
+ const { date, union_level, union_grade, union_artifact_level, union_artifact_exp, union_artifact_point } = obj;
4542
+ this.date = date ? new Date(date) : null;
3910
4543
  this.unionLevel = union_level;
3911
4544
  this.unionGrade = union_grade;
4545
+ this.unionArtifactLevel = union_artifact_level;
4546
+ this.unionArtifactExp = union_artifact_exp;
4547
+ this.unionArtifactPoint = union_artifact_point;
3912
4548
  }
3913
4549
  }
3914
4550
 
@@ -4005,6 +4641,35 @@ class UnionRaiderInnerStatDto {
4005
4641
  }
4006
4642
  }
4007
4643
 
4644
+ /**
4645
+ * 유니온 프리셋 정보
4646
+ */
4647
+ class UnionRaiderPresetDto {
4648
+ /**
4649
+ * 유니온 공격대원 효과
4650
+ */
4651
+ unionRaiderStat;
4652
+ /**
4653
+ * 유니온 공격대 점령 효과
4654
+ */
4655
+ unionOccupiedStat;
4656
+ /**
4657
+ * 유니온 공격대 배치
4658
+ */
4659
+ unionInnerStat;
4660
+ /**
4661
+ * 유니온 블록 정보
4662
+ */
4663
+ unionBlock;
4664
+ constructor(obj) {
4665
+ const { union_raider_stat, union_occupied_stat, union_inner_stat, union_block, } = obj;
4666
+ this.unionRaiderStat = union_raider_stat;
4667
+ this.unionOccupiedStat = union_occupied_stat;
4668
+ this.unionInnerStat = union_inner_stat.map((stat) => new UnionRaiderInnerStatDto(stat));
4669
+ this.unionBlock = union_block.map((block) => new UnionRaiderBlockDto(block));
4670
+ }
4671
+ }
4672
+
4008
4673
  /**
4009
4674
  * 유니온 공격대 정보
4010
4675
  */
@@ -4026,13 +4691,53 @@ class UnionRaiderDto {
4026
4691
  * 유니온 블록 정보
4027
4692
  */
4028
4693
  unionBlock;
4694
+ /**
4695
+ * 적용 중인 프리셋 번호
4696
+ */
4697
+ usePresetNo;
4698
+ /**
4699
+ * 유니온 프리셋 1번 정보
4700
+ */
4701
+ unionRaiderPreset1;
4702
+ /**
4703
+ * 유니온 프리셋 2번 정보
4704
+ */
4705
+ unionRaiderPreset2;
4706
+ /**
4707
+ * 유니온 프리셋 3번 정보
4708
+ */
4709
+ unionRaiderPreset3;
4710
+ /**
4711
+ * 유니온 프리셋 4번 정보
4712
+ */
4713
+ unionRaiderPreset4;
4714
+ /**
4715
+ * 유니온 프리셋 5번 정보
4716
+ */
4717
+ unionRaiderPreset5;
4029
4718
  constructor(obj) {
4030
- const { date, union_raider_stat, union_occupied_stat, union_inner_stat, union_block, } = obj;
4031
- this.date = new Date(date);
4719
+ const { date, union_raider_stat, union_occupied_stat, union_inner_stat, union_block, use_preset_no, union_raider_preset_1, union_raider_preset_2, union_raider_preset_3, union_raider_preset_4, union_raider_preset_5, } = obj;
4720
+ this.date = date ? new Date(date) : null;
4032
4721
  this.unionRaiderStat = union_raider_stat;
4033
4722
  this.unionOccupiedStat = union_occupied_stat;
4034
4723
  this.unionInnerStat = union_inner_stat.map((stat) => new UnionRaiderInnerStatDto(stat));
4035
4724
  this.unionBlock = union_block.map((block) => new UnionRaiderBlockDto(block));
4725
+ this.usePresetNo = use_preset_no;
4726
+ this.unionRaiderPreset1 = union_raider_preset_1
4727
+ ? new UnionRaiderPresetDto(union_raider_preset_1)
4728
+ : null;
4729
+ this.unionRaiderPreset2 = union_raider_preset_2
4730
+ ? new UnionRaiderPresetDto(union_raider_preset_2)
4731
+ : null;
4732
+ this.unionRaiderPreset3 = union_raider_preset_3
4733
+ ? new UnionRaiderPresetDto(union_raider_preset_3)
4734
+ : null;
4735
+ this.unionRaiderPreset4 = union_raider_preset_4
4736
+ ? new UnionRaiderPresetDto(union_raider_preset_4)
4737
+ : null;
4738
+ this.unionRaiderPreset5 = union_raider_preset_5
4739
+ ? new UnionRaiderPresetDto(union_raider_preset_5)
4740
+ : null;
4036
4741
  }
4037
4742
  }
4038
4743
 
@@ -4064,6 +4769,9 @@ var MapleStoryApiErrorCode;
4064
4769
  MapleStoryApiErrorCode[MapleStoryApiErrorCode["OPENAPI00005"] = 4] = "OPENAPI00005";
4065
4770
  MapleStoryApiErrorCode[MapleStoryApiErrorCode["OPENAPI00006"] = 5] = "OPENAPI00006";
4066
4771
  MapleStoryApiErrorCode[MapleStoryApiErrorCode["OPENAPI00007"] = 6] = "OPENAPI00007";
4772
+ MapleStoryApiErrorCode[MapleStoryApiErrorCode["OPENAPI00009"] = 7] = "OPENAPI00009";
4773
+ MapleStoryApiErrorCode[MapleStoryApiErrorCode["OPENAPI00010"] = 8] = "OPENAPI00010";
4774
+ MapleStoryApiErrorCode[MapleStoryApiErrorCode["OPENAPI00011"] = 9] = "OPENAPI00011";
4067
4775
  })(MapleStoryApiErrorCode || (MapleStoryApiErrorCode = {}));
4068
4776
  const errorMap = {
4069
4777
  ['OPENAPI00001']: MapleStoryApiErrorCode.OPENAPI00001,
@@ -4073,730 +4781,442 @@ const errorMap = {
4073
4781
  ['OPENAPI00005']: MapleStoryApiErrorCode.OPENAPI00005,
4074
4782
  ['OPENAPI00006']: MapleStoryApiErrorCode.OPENAPI00006,
4075
4783
  ['OPENAPI00007']: MapleStoryApiErrorCode.OPENAPI00007,
4784
+ ['OPENAPI00009']: MapleStoryApiErrorCode.OPENAPI00009,
4785
+ ['OPENAPI00010']: MapleStoryApiErrorCode.OPENAPI00010,
4786
+ ['OPENAPI00011']: MapleStoryApiErrorCode.OPENAPI00011,
4076
4787
  };
4077
4788
 
4789
+ dayjs.extend(timezone);
4790
+ dayjs.extend(utc);
4078
4791
  /**
4079
- * 잠재능력 재설정 결과 옵션 정보
4080
- */
4081
- class PotentialResultOptionDto {
4082
- /**
4083
- * 옵션 명
4084
- */
4085
- value;
4086
- /**
4087
- * 옵션 등급
4088
- */
4089
- grade;
4090
- constructor(obj) {
4091
- const { value, grade } = obj;
4092
- this.value = value;
4093
- this.grade = grade;
4094
- }
4095
- get gradeEnum() {
4096
- return potentialOptionGradeFromString(this.grade);
4097
- }
4098
- }
4099
-
4100
- /**
4101
- * 잠재능력 재설정 히스토리
4102
- */
4103
- class PotentialHistoryDto {
4104
- /**
4105
- * 잠재능력 재설정 히스토리 식별자
4106
- */
4107
- id;
4108
- /**
4109
- * 캐릭터 명
4110
- */
4111
- characterName;
4112
- /**
4113
- * 사용 일시
4114
- */
4115
- dateCreate;
4116
- /**
4117
- * 대상 잠재능력 타입 (잠재능력, 에디셔널 잠재능력)
4118
- */
4119
- potentialType;
4120
- /**
4121
- * 사용 결과
4122
- */
4123
- itemUpgradeResult;
4124
- /**
4125
- * 미라클 타임 적용 여부
4126
- */
4127
- miracleTimeFlag;
4128
- /**
4129
- * 장비 분류
4130
- */
4131
- itemEquipmentPart;
4132
- /**
4133
- * 장비 레벨
4134
- */
4135
- itemLevel;
4136
- /**
4137
- * 잠재능력 재설정 장비 명
4138
- */
4139
- targetItem;
4140
- /**
4141
- * 잠재능력 등급
4142
- */
4143
- potentialOptionGrade;
4144
- /**
4145
- * 에디셔널 잠재능력 등급
4146
- */
4147
- additionalPotentialOptionGrade;
4148
- /**
4149
- * 천장에 도달하여 확정 등급 상승한 여부
4150
- */
4151
- upgradeGuarantee;
4152
- /**
4153
- * 현재까지 쌓은 스택
4154
- */
4155
- upgradeGuaranteeCount;
4156
- /**
4157
- * 사용 전 잠재능력 옵션
4158
- */
4159
- beforePotentialOption;
4160
- /**
4161
- * 사용 전 에디셔널 잠재능력 옵션
4162
- */
4163
- beforeAdditionalPotentialOption;
4164
- /**
4165
- * 사용 후 잠재능력 옵션
4166
- */
4167
- afterPotentialOption;
4168
- /**
4169
- * 사용 후 에디셔널 잠재능력 옵션
4170
- */
4171
- afterAdditionalPotentialOption;
4172
- constructor(obj) {
4173
- const { id, character_name, date_create, potential_type, item_upgrade_result, miracle_time_flag, item_equipment_part, item_level, target_item, potential_option_grade, additional_potential_option_grade, upgrade_guarantee, upgrade_guarantee_count, before_potential_option, before_additional_potential_option, after_potential_option, after_additional_potential_option, } = obj;
4174
- this.id = id;
4175
- this.characterName = character_name;
4176
- this.dateCreate = new Date(date_create);
4177
- this.potentialType = potential_type;
4178
- this.itemUpgradeResult = item_upgrade_result;
4179
- this.miracleTimeFlag = miracle_time_flag;
4180
- this.itemEquipmentPart = item_equipment_part;
4181
- this.itemLevel = item_level;
4182
- this.targetItem = target_item;
4183
- this.potentialOptionGrade = potential_option_grade;
4184
- this.additionalPotentialOptionGrade = additional_potential_option_grade;
4185
- this.upgradeGuarantee = upgrade_guarantee;
4186
- this.upgradeGuaranteeCount = upgrade_guarantee_count;
4187
- this.beforePotentialOption = before_potential_option.map((origin) => new PotentialResultOptionDto(origin));
4188
- this.beforeAdditionalPotentialOption =
4189
- before_additional_potential_option.map((origin) => new PotentialResultOptionDto(origin));
4190
- this.afterPotentialOption = after_potential_option.map((origin) => new PotentialResultOptionDto(origin));
4191
- this.afterAdditionalPotentialOption = after_additional_potential_option.map((origin) => new PotentialResultOptionDto(origin));
4192
- }
4193
- get isItemUpgrade() {
4194
- return this.itemUpgradeResult === '성공';
4195
- }
4196
- get isMiracleTimeFlag() {
4197
- return this.miracleTimeFlag !== '이벤트 적용되지 않음';
4198
- }
4199
- get potentialOptionGradeEnum() {
4200
- return potentialOptionGradeFromString(this.potentialOptionGrade);
4201
- }
4202
- get additionalPotentialOptionGradeEnum() {
4203
- return potentialOptionGradeFromString(this.additionalPotentialOptionGrade);
4204
- }
4205
- }
4206
-
4207
- /**
4208
- * 잠재능력 재설정 히스토리 응답 정보
4209
- */
4210
- class PotentialHistoryResponseDto {
4211
- /**
4212
- * 결과 건 수
4213
- */
4214
- count;
4215
- /**
4216
- * 잠재능력 재설정 히스토리
4217
- */
4218
- potentialHistory;
4219
- /**
4220
- * 페이징 처리를 위한 cursor
4221
- */
4222
- nextCursor;
4223
- constructor(obj) {
4224
- const { count, potential_history, next_cursor } = obj;
4225
- this.count = count;
4226
- this.potentialHistory = potential_history.map((origin) => new PotentialHistoryDto(origin));
4227
- this.nextCursor = next_cursor;
4228
- }
4229
- }
4230
-
4231
- dayjs.extend(timezone);
4232
- dayjs.extend(utc);
4233
- /**
4234
- * MapleStory OpenAPI client.<br>
4235
- * This is an implementation of <a href="https://openapi.nexon.com/game/maplestory">MapleStory API</a>
4792
+ * MapleStory OpenAPI client.<br>
4793
+ * This is an implementation of <a href="https://openapi.nexon.com/game/maplestory">MapleStory API</a>
4236
4794
  */
4237
4795
  class MapleStoryApi {
4238
4796
  apiKey;
4797
+ client;
4239
4798
  static BASE_URL = 'https://open.api.nexon.com/';
4799
+ static DEFAULT_TIMEOUT = 5000;
4240
4800
  static kstOffset = 540;
4241
- timeout;
4801
+ get timeout() {
4802
+ return this.client.defaults.timeout;
4803
+ }
4804
+ set timeout(value) {
4805
+ this.client.defaults.timeout = value;
4806
+ }
4242
4807
  constructor(apiKey) {
4243
4808
  this.apiKey = apiKey;
4244
- this.timeout = 5000;
4809
+ this.client = axios.create({
4810
+ baseURL: MapleStoryApi.BASE_URL,
4811
+ timeout: MapleStoryApi.DEFAULT_TIMEOUT,
4812
+ headers: {
4813
+ 'x-nxopen-api-key': this.apiKey,
4814
+ },
4815
+ });
4816
+ this.client.interceptors.response.use((response) => response, (error) => {
4817
+ if (error instanceof AxiosError) {
4818
+ const errorBody = error.response.data;
4819
+ throw new MapleStoryApiError(errorBody);
4820
+ }
4821
+ throw error;
4822
+ });
4245
4823
  }
4246
4824
  //#region 캐릭터 정보 조회
4247
4825
  /**
4248
4826
  * 캐릭터 식별자(ocid)를 조회합니다.
4827
+ * - 메이플스토리 게임 데이터는 평균 15분 후 확인 가능합니다.
4249
4828
  * - 2023년 12월 21일 데이터부터 조회할 수 있습니다.
4250
- * - 캐릭터 정보 조회 API는 일자별 데이터로 매일 오전 1시부터 전일 데이터 조회가 가능합니다. (예를 들어, 12월 22일 데이터를 조회하면 22일 00시부터 23일의 00시 사이의 데이터가 조회됩니다.)
4829
+ * - 과거 데이터는 원하는 일자를 입력해 조회할 있으며, 전일 데이터는 다음날 오전 2시부터 확인할 있습니다. (12월 22일 데이터 조회 시, 22일 00시부터 23 00시 사이 데이터가 조회 됩니다.)
4251
4830
  * - 게임 콘텐츠 변경으로 ocid가 변경될 수 있습니다. ocid 기반 서비스 갱신 시 유의해 주시길 바랍니다.
4252
4831
  *
4253
4832
  * @param characterName 캐릭터 명
4254
4833
  */
4255
4834
  async getCharacter(characterName) {
4256
- try {
4257
- const path = 'maplestory/v1/id';
4258
- const response = await axios.get(path, {
4259
- baseURL: MapleStoryApi.BASE_URL,
4260
- timeout: this.timeout,
4261
- headers: this.buildHeaders(),
4262
- params: {
4263
- character_name: characterName,
4264
- },
4265
- });
4266
- return new CharacterDto(response.data);
4267
- }
4268
- catch (e) {
4269
- if (e instanceof AxiosError) {
4270
- const errorBody = e.response.data;
4271
- throw new MapleStoryApiError(errorBody);
4272
- }
4273
- throw e;
4274
- }
4835
+ const path = 'maplestory/v1/id';
4836
+ const { data } = await this.client.get(path, {
4837
+ params: {
4838
+ character_name: characterName,
4839
+ },
4840
+ });
4841
+ return new CharacterDto(data);
4842
+ }
4843
+ /**
4844
+ * 계정의 보유 캐릭터 목록을 조회합니다.
4845
+ * - 메이플스토리 게임 데이터는 평균 15분 후 확인 가능합니다.
4846
+ * - 과거 데이터는 원하는 일자를 입력해 조회할 수 있으며, 전일 데이터는 다음날 오전 2시부터 확인할 수 있습니다. (12월 22일 데이터 조회 시, 22일 00시부터 23일 00시 사이 데이터가 조회 됩니다.)
4847
+ * - 게임 콘텐츠 변경으로 ocid가 변경될 수 있습니다. ocid 기반 서비스 갱신 시 유의해 주시길 바랍니다.
4848
+ */
4849
+ async getCharacterList() {
4850
+ const path = 'maplestory/v1/character/list';
4851
+ const { data } = await this.client.get(path);
4852
+ return new CharacterListDto(data);
4275
4853
  }
4276
4854
  /**
4277
4855
  * 기본 정보를 조회합니다.
4856
+ * - 메이플스토리 게임 데이터는 평균 15분 후 확인 가능합니다.
4278
4857
  * - 2023년 12월 21일 데이터부터 조회할 수 있습니다.
4279
- * - 캐릭터 정보 조회 API는 일자별 데이터로 매일 오전 1시부터 전일 데이터 조회가 가능합니다. (예를 들어, 12월 22일 데이터를 조회하면 22일 00시부터 23일의 00시 사이의 데이터가 조회됩니다.)
4858
+ * - 과거 데이터는 원하는 일자를 입력해 조회할 있으며, 전일 데이터는 다음날 오전 2시부터 확인할 있습니다. (12월 22일 데이터 조회 시, 22일 00시부터 23 00시 사이 데이터가 조회 됩니다.)
4280
4859
  * - 게임 콘텐츠 변경으로 ocid가 변경될 수 있습니다. ocid 기반 서비스 갱신 시 유의해 주시길 바랍니다.
4281
4860
  *
4282
4861
  * @param ocid 캐릭터 식별자
4283
4862
  * @param dateOptions 조회 기준일 (KST)
4284
4863
  */
4285
- async getCharacterBasic(ocid, dateOptions = MapleStoryApi.getProperDefaultDateOptions({
4286
- hour: 1,
4287
- minute: 0,
4288
- dateOffset: 1,
4289
- })) {
4290
- const query = {
4291
- ocid: ocid,
4292
- date: MapleStoryApi.toDateString({
4864
+ async getCharacterBasic(ocid, dateOptions) {
4865
+ const path = 'maplestory/v1/character/basic';
4866
+ const date = dateOptions
4867
+ ? MapleStoryApi.toDateString({
4293
4868
  year: 2023,
4294
4869
  month: 12,
4295
4870
  day: 21,
4296
- }, dateOptions),
4871
+ }, dateOptions)
4872
+ : undefined;
4873
+ const query = {
4874
+ ocid: ocid,
4875
+ date: date,
4297
4876
  };
4298
- try {
4299
- const path = 'maplestory/v1/character/basic';
4300
- const response = await axios.get(path, {
4301
- baseURL: MapleStoryApi.BASE_URL,
4302
- timeout: this.timeout,
4303
- headers: this.buildHeaders(),
4304
- params: query,
4305
- });
4306
- return new CharacterBasicDto(response.data);
4307
- }
4308
- catch (e) {
4309
- if (e instanceof AxiosError) {
4310
- const errorBody = e.response.data;
4311
- throw new MapleStoryApiError(errorBody);
4312
- }
4313
- throw e;
4314
- }
4877
+ const { data } = await this.client.get(path, {
4878
+ params: query,
4879
+ });
4880
+ return new CharacterBasicDto(data);
4315
4881
  }
4316
4882
  /**
4317
4883
  * 인기도 정보를 조회합니다.
4884
+ * - 메이플스토리 게임 데이터는 평균 15분 후 확인 가능합니다.
4318
4885
  * - 2023년 12월 21일 데이터부터 조회할 수 있습니다.
4319
- * - 캐릭터 정보 조회 API는 일자별 데이터로 매일 오전 1시부터 전일 데이터 조회가 가능합니다. (예를 들어, 12월 22일 데이터를 조회하면 22일 00시부터 23일의 00시 사이의 데이터가 조회됩니다.)
4886
+ * - 과거 데이터는 원하는 일자를 입력해 조회할 있으며, 전일 데이터는 다음날 오전 2시부터 확인할 있습니다. (12월 22일 데이터 조회 시, 22일 00시부터 23 00시 사이 데이터가 조회 됩니다.)
4320
4887
  * - 게임 콘텐츠 변경으로 ocid가 변경될 수 있습니다. ocid 기반 서비스 갱신 시 유의해 주시길 바랍니다.
4321
4888
  *
4322
4889
  * @param ocid 캐릭터 식별자
4323
4890
  * @param dateOptions 조회 기준일 (KST)
4324
4891
  */
4325
- async getCharacterPopularity(ocid, dateOptions = MapleStoryApi.getProperDefaultDateOptions({
4326
- hour: 1,
4327
- minute: 0,
4328
- dateOffset: 1,
4329
- })) {
4330
- const query = {
4331
- ocid: ocid,
4332
- date: MapleStoryApi.toDateString({
4892
+ async getCharacterPopularity(ocid, dateOptions) {
4893
+ const path = 'maplestory/v1/character/popularity';
4894
+ const date = dateOptions
4895
+ ? MapleStoryApi.toDateString({
4333
4896
  year: 2023,
4334
4897
  month: 12,
4335
4898
  day: 21,
4336
- }, dateOptions),
4899
+ }, dateOptions)
4900
+ : undefined;
4901
+ const query = {
4902
+ ocid: ocid,
4903
+ date: date,
4337
4904
  };
4338
- try {
4339
- const path = 'maplestory/v1/character/popularity';
4340
- const response = await axios.get(path, {
4341
- baseURL: MapleStoryApi.BASE_URL,
4342
- timeout: this.timeout,
4343
- headers: this.buildHeaders(),
4344
- params: query,
4345
- });
4346
- return new CharacterPopularityDto(response.data);
4347
- }
4348
- catch (e) {
4349
- if (e instanceof AxiosError) {
4350
- const errorBody = e.response.data;
4351
- throw new MapleStoryApiError(errorBody);
4352
- }
4353
- throw e;
4354
- }
4905
+ const { data } = await this.client.get(path, {
4906
+ params: query,
4907
+ });
4908
+ return new CharacterPopularityDto(data);
4355
4909
  }
4356
4910
  /**
4357
4911
  * 종합 능력치 정보를 조회합니다.
4912
+ * - 메이플스토리 게임 데이터는 평균 15분 후 확인 가능합니다.
4358
4913
  * - 2023년 12월 21일 데이터부터 조회할 수 있습니다.
4359
- * - 캐릭터 정보 조회 API는 일자별 데이터로 매일 오전 1시부터 전일 데이터 조회가 가능합니다. (예를 들어, 12월 22일 데이터를 조회하면 22일 00시부터 23일의 00시 사이의 데이터가 조회됩니다.)
4914
+ * - 과거 데이터는 원하는 일자를 입력해 조회할 있으며, 전일 데이터는 다음날 오전 2시부터 확인할 있습니다. (12월 22일 데이터 조회 시, 22일 00시부터 23 00시 사이 데이터가 조회 됩니다.)
4360
4915
  * - 게임 콘텐츠 변경으로 ocid가 변경될 수 있습니다. ocid 기반 서비스 갱신 시 유의해 주시길 바랍니다.
4361
4916
  *
4362
4917
  * @param ocid 캐릭터 식별자
4363
4918
  * @param dateOptions 조회 기준일 (KST)
4364
4919
  */
4365
- async getCharacterStat(ocid, dateOptions = MapleStoryApi.getProperDefaultDateOptions({
4366
- hour: 1,
4367
- minute: 0,
4368
- dateOffset: 1,
4369
- })) {
4370
- const query = {
4371
- ocid: ocid,
4372
- date: MapleStoryApi.toDateString({
4920
+ async getCharacterStat(ocid, dateOptions) {
4921
+ const path = 'maplestory/v1/character/stat';
4922
+ const date = dateOptions
4923
+ ? MapleStoryApi.toDateString({
4373
4924
  year: 2023,
4374
4925
  month: 12,
4375
4926
  day: 21,
4376
- }, dateOptions),
4927
+ }, dateOptions)
4928
+ : undefined;
4929
+ const query = {
4930
+ ocid: ocid,
4931
+ date: date,
4377
4932
  };
4378
- try {
4379
- const path = 'maplestory/v1/character/stat';
4380
- const response = await axios.get(path, {
4381
- baseURL: MapleStoryApi.BASE_URL,
4382
- timeout: this.timeout,
4383
- headers: this.buildHeaders(),
4384
- params: query,
4385
- });
4386
- return new CharacterStatDto(response.data);
4387
- }
4388
- catch (e) {
4389
- if (e instanceof AxiosError) {
4390
- const errorBody = e.response.data;
4391
- throw new MapleStoryApiError(errorBody);
4392
- }
4393
- throw e;
4394
- }
4933
+ const { data } = await this.client.get(path, {
4934
+ params: query,
4935
+ });
4936
+ return new CharacterStatDto(data);
4395
4937
  }
4396
4938
  /**
4397
4939
  * 하이퍼스탯 정보를 조회합니다.
4940
+ * - 메이플스토리 게임 데이터는 평균 15분 후 확인 가능합니다.
4398
4941
  * - 2023년 12월 21일 데이터부터 조회할 수 있습니다.
4399
- * - 캐릭터 정보 조회 API는 일자별 데이터로 매일 오전 1시부터 전일 데이터 조회가 가능합니다. (예를 들어, 12월 22일 데이터를 조회하면 22일 00시부터 23일의 00시 사이의 데이터가 조회됩니다.)
4942
+ * - 과거 데이터는 원하는 일자를 입력해 조회할 있으며, 전일 데이터는 다음날 오전 2시부터 확인할 있습니다. (12월 22일 데이터 조회 시, 22일 00시부터 23 00시 사이 데이터가 조회 됩니다.)
4400
4943
  * - 게임 콘텐츠 변경으로 ocid가 변경될 수 있습니다. ocid 기반 서비스 갱신 시 유의해 주시길 바랍니다.
4401
4944
  *
4402
4945
  * @param ocid 캐릭터 식별자
4403
4946
  * @param dateOptions 조회 기준일 (KST)
4404
4947
  */
4405
- async getCharacterHyperStat(ocid, dateOptions = MapleStoryApi.getProperDefaultDateOptions({
4406
- hour: 1,
4407
- minute: 0,
4408
- dateOffset: 1,
4409
- })) {
4410
- const query = {
4411
- ocid: ocid,
4412
- date: MapleStoryApi.toDateString({
4948
+ async getCharacterHyperStat(ocid, dateOptions) {
4949
+ const path = 'maplestory/v1/character/hyper-stat';
4950
+ const date = dateOptions
4951
+ ? MapleStoryApi.toDateString({
4413
4952
  year: 2023,
4414
4953
  month: 12,
4415
4954
  day: 21,
4416
- }, dateOptions),
4955
+ }, dateOptions)
4956
+ : undefined;
4957
+ const query = {
4958
+ ocid: ocid,
4959
+ date: date,
4417
4960
  };
4418
- try {
4419
- const path = 'maplestory/v1/character/hyper-stat';
4420
- const response = await axios.get(path, {
4421
- baseURL: MapleStoryApi.BASE_URL,
4422
- timeout: this.timeout,
4423
- headers: this.buildHeaders(),
4424
- params: query,
4425
- });
4426
- return new CharacterHyperStatDto(response.data);
4427
- }
4428
- catch (e) {
4429
- if (e instanceof AxiosError) {
4430
- const errorBody = e.response.data;
4431
- throw new MapleStoryApiError(errorBody);
4432
- }
4433
- throw e;
4434
- }
4961
+ const { data } = await this.client.get(path, {
4962
+ params: query,
4963
+ });
4964
+ return new CharacterHyperStatDto(data);
4435
4965
  }
4436
4966
  /**
4437
4967
  * 성향 정보를 조회합니다.
4968
+ * - 메이플스토리 게임 데이터는 평균 15분 후 확인 가능합니다.
4438
4969
  * - 2023년 12월 21일 데이터부터 조회할 수 있습니다.
4439
- * - 캐릭터 정보 조회 API는 일자별 데이터로 매일 오전 1시부터 전일 데이터 조회가 가능합니다. (예를 들어, 12월 22일 데이터를 조회하면 22일 00시부터 23일의 00시 사이의 데이터가 조회됩니다.)
4970
+ * - 과거 데이터는 원하는 일자를 입력해 조회할 있으며, 전일 데이터는 다음날 오전 2시부터 확인할 있습니다. (12월 22일 데이터 조회 시, 22일 00시부터 23 00시 사이 데이터가 조회 됩니다.)
4440
4971
  * - 게임 콘텐츠 변경으로 ocid가 변경될 수 있습니다. ocid 기반 서비스 갱신 시 유의해 주시길 바랍니다.
4441
4972
  *
4442
4973
  * @param ocid 캐릭터 식별자
4443
4974
  * @param dateOptions 조회 기준일 (KST)
4444
4975
  */
4445
- async getCharacterPropensity(ocid, dateOptions = MapleStoryApi.getProperDefaultDateOptions({
4446
- hour: 1,
4447
- minute: 0,
4448
- dateOffset: 1,
4449
- })) {
4450
- const query = {
4451
- ocid: ocid,
4452
- date: MapleStoryApi.toDateString({
4976
+ async getCharacterPropensity(ocid, dateOptions) {
4977
+ const path = 'maplestory/v1/character/propensity';
4978
+ const date = dateOptions
4979
+ ? MapleStoryApi.toDateString({
4453
4980
  year: 2023,
4454
4981
  month: 12,
4455
4982
  day: 21,
4456
- }, dateOptions),
4983
+ }, dateOptions)
4984
+ : undefined;
4985
+ const query = {
4986
+ ocid: ocid,
4987
+ date: date,
4457
4988
  };
4458
- try {
4459
- const path = 'maplestory/v1/character/propensity';
4460
- const response = await axios.get(path, {
4461
- baseURL: MapleStoryApi.BASE_URL,
4462
- timeout: this.timeout,
4463
- headers: this.buildHeaders(),
4464
- params: query,
4465
- });
4466
- return new CharacterPropensityDto(response.data);
4467
- }
4468
- catch (e) {
4469
- if (e instanceof AxiosError) {
4470
- const errorBody = e.response.data;
4471
- throw new MapleStoryApiError(errorBody);
4472
- }
4473
- throw e;
4474
- }
4989
+ const { data } = await this.client.get(path, {
4990
+ params: query,
4991
+ });
4992
+ return new CharacterPropensityDto(data);
4475
4993
  }
4476
4994
  /**
4477
4995
  * 어빌리티 정보를 조회합니다.
4996
+ * - 메이플스토리 게임 데이터는 평균 15분 후 확인 가능합니다.
4478
4997
  * - 2023년 12월 21일 데이터부터 조회할 수 있습니다.
4479
- * - 캐릭터 정보 조회 API는 일자별 데이터로 매일 오전 1시부터 전일 데이터 조회가 가능합니다. (예를 들어, 12월 22일 데이터를 조회하면 22일 00시부터 23일의 00시 사이의 데이터가 조회됩니다.)
4998
+ * - 과거 데이터는 원하는 일자를 입력해 조회할 있으며, 전일 데이터는 다음날 오전 2시부터 확인할 있습니다. (12월 22일 데이터 조회 시, 22일 00시부터 23 00시 사이 데이터가 조회 됩니다.)
4480
4999
  * - 게임 콘텐츠 변경으로 ocid가 변경될 수 있습니다. ocid 기반 서비스 갱신 시 유의해 주시길 바랍니다.
4481
5000
  *
4482
5001
  * @param ocid 캐릭터 식별자
4483
5002
  * @param dateOptions 조회 기준일 (KST)
4484
5003
  */
4485
- async getCharacterAbility(ocid, dateOptions = MapleStoryApi.getProperDefaultDateOptions({
4486
- hour: 1,
4487
- minute: 0,
4488
- dateOffset: 1,
4489
- })) {
4490
- const query = {
4491
- ocid: ocid,
4492
- date: MapleStoryApi.toDateString({
5004
+ async getCharacterAbility(ocid, dateOptions) {
5005
+ const path = 'maplestory/v1/character/ability';
5006
+ const date = dateOptions
5007
+ ? MapleStoryApi.toDateString({
4493
5008
  year: 2023,
4494
5009
  month: 12,
4495
5010
  day: 21,
4496
- }, dateOptions),
5011
+ }, dateOptions)
5012
+ : undefined;
5013
+ const query = {
5014
+ ocid: ocid,
5015
+ date: date,
4497
5016
  };
4498
- try {
4499
- const path = 'maplestory/v1/character/ability';
4500
- const response = await axios.get(path, {
4501
- baseURL: MapleStoryApi.BASE_URL,
4502
- timeout: this.timeout,
4503
- headers: this.buildHeaders(),
4504
- params: query,
4505
- });
4506
- return new CharacterAbilityDto(response.data);
4507
- }
4508
- catch (e) {
4509
- if (e instanceof AxiosError) {
4510
- const errorBody = e.response.data;
4511
- throw new MapleStoryApiError(errorBody);
4512
- }
4513
- throw e;
4514
- }
5017
+ const { data } = await this.client.get(path, {
5018
+ params: query,
5019
+ });
5020
+ return new CharacterAbilityDto(data);
4515
5021
  }
4516
5022
  /**
4517
5023
  * 장착한 장비 중 캐시 장비를 제외한 나머지 장비 정보를 조회합니다.
5024
+ * - 메이플스토리 게임 데이터는 평균 15분 후 확인 가능합니다.
4518
5025
  * - 2023년 12월 21일 데이터부터 조회할 수 있습니다.
4519
- * - 캐릭터 정보 조회 API는 일자별 데이터로 매일 오전 1시부터 전일 데이터 조회가 가능합니다. (예를 들어, 12월 22일 데이터를 조회하면 22일 00시부터 23일의 00시 사이의 데이터가 조회됩니다.)
5026
+ * - 과거 데이터는 원하는 일자를 입력해 조회할 있으며, 전일 데이터는 다음날 오전 2시부터 확인할 있습니다. (12월 22일 데이터 조회 시, 22일 00시부터 23 00시 사이 데이터가 조회 됩니다.)
4520
5027
  * - 게임 콘텐츠 변경으로 ocid가 변경될 수 있습니다. ocid 기반 서비스 갱신 시 유의해 주시길 바랍니다.
4521
5028
  *
4522
5029
  * @param ocid 캐릭터 식별자
4523
5030
  * @param dateOptions 조회 기준일 (KST)
4524
5031
  */
4525
- async getCharacterItemEquipment(ocid, dateOptions = MapleStoryApi.getProperDefaultDateOptions({
4526
- hour: 1,
4527
- minute: 0,
4528
- dateOffset: 1,
4529
- })) {
4530
- const query = {
4531
- ocid: ocid,
4532
- date: MapleStoryApi.toDateString({
5032
+ async getCharacterItemEquipment(ocid, dateOptions) {
5033
+ const path = 'maplestory/v1/character/item-equipment';
5034
+ const date = dateOptions
5035
+ ? MapleStoryApi.toDateString({
4533
5036
  year: 2023,
4534
5037
  month: 12,
4535
5038
  day: 21,
4536
- }, dateOptions),
5039
+ }, dateOptions)
5040
+ : undefined;
5041
+ const query = {
5042
+ ocid: ocid,
5043
+ date: date,
4537
5044
  };
4538
- try {
4539
- const path = 'maplestory/v1/character/item-equipment';
4540
- const response = await axios.get(path, {
4541
- baseURL: MapleStoryApi.BASE_URL,
4542
- timeout: this.timeout,
4543
- headers: this.buildHeaders(),
4544
- params: query,
4545
- });
4546
- return new CharacterItemEquipmentDto(response.data);
4547
- }
4548
- catch (e) {
4549
- if (e instanceof AxiosError) {
4550
- const errorBody = e.response.data;
4551
- throw new MapleStoryApiError(errorBody);
4552
- }
4553
- throw e;
4554
- }
5045
+ const { data } = await this.client.get(path, {
5046
+ params: query,
5047
+ });
5048
+ return new CharacterItemEquipmentDto(data);
4555
5049
  }
4556
5050
  /**
4557
5051
  * 장착한 캐시 장비 정보를 조회합니다.
5052
+ * - 메이플스토리 게임 데이터는 평균 15분 후 확인 가능합니다.
4558
5053
  * - 2023년 12월 21일 데이터부터 조회할 수 있습니다.
4559
- * - 캐릭터 정보 조회 API는 일자별 데이터로 매일 오전 1시부터 전일 데이터 조회가 가능합니다. (예를 들어, 12월 22일 데이터를 조회하면 22일 00시부터 23일의 00시 사이의 데이터가 조회됩니다.)
5054
+ * - 과거 데이터는 원하는 일자를 입력해 조회할 있으며, 전일 데이터는 다음날 오전 2시부터 확인할 있습니다. (12월 22일 데이터 조회 시, 22일 00시부터 23 00시 사이 데이터가 조회 됩니다.)
4560
5055
  * - 게임 콘텐츠 변경으로 ocid가 변경될 수 있습니다. ocid 기반 서비스 갱신 시 유의해 주시길 바랍니다.
4561
5056
  *
4562
5057
  * @param ocid 캐릭터 식별자
4563
5058
  * @param dateOptions 조회 기준일 (KST)
4564
5059
  */
4565
- async getCharacterCashItemEquipment(ocid, dateOptions = MapleStoryApi.getProperDefaultDateOptions({
4566
- hour: 1,
4567
- minute: 0,
4568
- dateOffset: 1,
4569
- })) {
4570
- const query = {
4571
- ocid: ocid,
4572
- date: MapleStoryApi.toDateString({
5060
+ async getCharacterCashItemEquipment(ocid, dateOptions) {
5061
+ const path = 'maplestory/v1/character/cashitem-equipment';
5062
+ const date = dateOptions
5063
+ ? MapleStoryApi.toDateString({
4573
5064
  year: 2023,
4574
5065
  month: 12,
4575
5066
  day: 21,
4576
- }, dateOptions),
5067
+ }, dateOptions)
5068
+ : undefined;
5069
+ const query = {
5070
+ ocid: ocid,
5071
+ date: date,
4577
5072
  };
4578
- try {
4579
- const path = 'maplestory/v1/character/cashitem-equipment';
4580
- const response = await axios.get(path, {
4581
- baseURL: MapleStoryApi.BASE_URL,
4582
- timeout: this.timeout,
4583
- headers: this.buildHeaders(),
4584
- params: query,
4585
- });
4586
- return new CharacterCashItemEquipmentDto(response.data);
4587
- }
4588
- catch (e) {
4589
- if (e instanceof AxiosError) {
4590
- const errorBody = e.response.data;
4591
- throw new MapleStoryApiError(errorBody);
4592
- }
4593
- throw e;
4594
- }
5073
+ const { data } = await this.client.get(path, {
5074
+ params: query,
5075
+ });
5076
+ return new CharacterCashItemEquipmentDto(data);
4595
5077
  }
4596
5078
  /**
4597
5079
  * 장착한 심볼 정보를 조회합니다.
5080
+ * - 메이플스토리 게임 데이터는 평균 15분 후 확인 가능합니다.
4598
5081
  * - 2023년 12월 21일 데이터부터 조회할 수 있습니다.
4599
- * - 캐릭터 정보 조회 API는 일자별 데이터로 매일 오전 1시부터 전일 데이터 조회가 가능합니다. (예를 들어, 12월 22일 데이터를 조회하면 22일 00시부터 23일의 00시 사이의 데이터가 조회됩니다.)
5082
+ * - 과거 데이터는 원하는 일자를 입력해 조회할 있으며, 전일 데이터는 다음날 오전 2시부터 확인할 있습니다. (12월 22일 데이터 조회 시, 22일 00시부터 23 00시 사이 데이터가 조회 됩니다.)
4600
5083
  * - 게임 콘텐츠 변경으로 ocid가 변경될 수 있습니다. ocid 기반 서비스 갱신 시 유의해 주시길 바랍니다.
4601
5084
  *
4602
5085
  * @param ocid 캐릭터 식별자
4603
5086
  * @param dateOptions 조회 기준일 (KST)
4604
5087
  */
4605
- async getCharacterSymbolEquipment(ocid, dateOptions = MapleStoryApi.getProperDefaultDateOptions({
4606
- hour: 1,
4607
- minute: 0,
4608
- dateOffset: 1,
4609
- })) {
4610
- const query = {
4611
- ocid: ocid,
4612
- date: MapleStoryApi.toDateString({
5088
+ async getCharacterSymbolEquipment(ocid, dateOptions) {
5089
+ const path = 'maplestory/v1/character/symbol-equipment';
5090
+ const date = dateOptions
5091
+ ? MapleStoryApi.toDateString({
4613
5092
  year: 2023,
4614
5093
  month: 12,
4615
5094
  day: 21,
4616
- }, dateOptions),
5095
+ }, dateOptions)
5096
+ : undefined;
5097
+ const query = {
5098
+ ocid: ocid,
5099
+ date: date,
4617
5100
  };
4618
- try {
4619
- const path = 'maplestory/v1/character/symbol-equipment';
4620
- const response = await axios.get(path, {
4621
- baseURL: MapleStoryApi.BASE_URL,
4622
- timeout: this.timeout,
4623
- headers: this.buildHeaders(),
4624
- params: query,
4625
- });
4626
- return new CharacterSymbolEquipmentDto(response.data);
4627
- }
4628
- catch (e) {
4629
- if (e instanceof AxiosError) {
4630
- const errorBody = e.response.data;
4631
- throw new MapleStoryApiError(errorBody);
4632
- }
4633
- throw e;
4634
- }
5101
+ const { data } = await this.client.get(path, {
5102
+ params: query,
5103
+ });
5104
+ return new CharacterSymbolEquipmentDto(data);
4635
5105
  }
4636
5106
  /**
4637
5107
  * 적용받고 있는 세트 효과 정보를 조회합니다.
5108
+ * - 메이플스토리 게임 데이터는 평균 15분 후 확인 가능합니다.
4638
5109
  * - 2023년 12월 21일 데이터부터 조회할 수 있습니다.
4639
- * - 캐릭터 정보 조회 API는 일자별 데이터로 매일 오전 1시부터 전일 데이터 조회가 가능합니다. (예를 들어, 12월 22일 데이터를 조회하면 22일 00시부터 23일의 00시 사이의 데이터가 조회됩니다.)
5110
+ * - 과거 데이터는 원하는 일자를 입력해 조회할 있으며, 전일 데이터는 다음날 오전 2시부터 확인할 있습니다. (12월 22일 데이터 조회 시, 22일 00시부터 23 00시 사이 데이터가 조회 됩니다.)
4640
5111
  * - 게임 콘텐츠 변경으로 ocid가 변경될 수 있습니다. ocid 기반 서비스 갱신 시 유의해 주시길 바랍니다.
4641
5112
  *
4642
5113
  * @param ocid 캐릭터 식별자
4643
5114
  * @param dateOptions 조회 기준일 (KST)
4644
5115
  */
4645
- async getCharacterSetEffect(ocid, dateOptions = MapleStoryApi.getProperDefaultDateOptions({
4646
- hour: 1,
4647
- minute: 0,
4648
- dateOffset: 1,
4649
- })) {
4650
- const query = {
4651
- ocid: ocid,
4652
- date: MapleStoryApi.toDateString({
5116
+ async getCharacterSetEffect(ocid, dateOptions) {
5117
+ const path = 'maplestory/v1/character/set-effect';
5118
+ const date = dateOptions
5119
+ ? MapleStoryApi.toDateString({
4653
5120
  year: 2023,
4654
5121
  month: 12,
4655
5122
  day: 21,
4656
- }, dateOptions),
5123
+ }, dateOptions)
5124
+ : undefined;
5125
+ const query = {
5126
+ ocid: ocid,
5127
+ date: date,
4657
5128
  };
4658
- try {
4659
- const path = 'maplestory/v1/character/set-effect';
4660
- const response = await axios.get(path, {
4661
- baseURL: MapleStoryApi.BASE_URL,
4662
- timeout: this.timeout,
4663
- headers: this.buildHeaders(),
4664
- params: query,
4665
- });
4666
- return new CharacterSetEffectDto(response.data);
4667
- }
4668
- catch (e) {
4669
- if (e instanceof AxiosError) {
4670
- const errorBody = e.response.data;
4671
- throw new MapleStoryApiError(errorBody);
4672
- }
4673
- throw e;
4674
- }
5129
+ const { data } = await this.client.get(path, {
5130
+ params: query,
5131
+ });
5132
+ return new CharacterSetEffectDto(data);
4675
5133
  }
4676
5134
  /**
4677
5135
  * 장착 중인 헤어, 성형, 피부 정보를 조회합니다.
5136
+ * - 메이플스토리 게임 데이터는 평균 15분 후 확인 가능합니다.
4678
5137
  * - 2023년 12월 21일 데이터부터 조회할 수 있습니다.
4679
- * - 캐릭터 정보 조회 API는 일자별 데이터로 매일 오전 1시부터 전일 데이터 조회가 가능합니다. (예를 들어, 12월 22일 데이터를 조회하면 22일 00시부터 23일의 00시 사이의 데이터가 조회됩니다.)
5138
+ * - 과거 데이터는 원하는 일자를 입력해 조회할 있으며, 전일 데이터는 다음날 오전 2시부터 확인할 있습니다. (12월 22일 데이터 조회 시, 22일 00시부터 23 00시 사이 데이터가 조회 됩니다.)
4680
5139
  * - 게임 콘텐츠 변경으로 ocid가 변경될 수 있습니다. ocid 기반 서비스 갱신 시 유의해 주시길 바랍니다.
4681
5140
  *
4682
5141
  * @param ocid 캐릭터 식별자
4683
5142
  * @param dateOptions 조회 기준일 (KST)
4684
5143
  */
4685
- async getCharacterBeautyEquipment(ocid, dateOptions = MapleStoryApi.getProperDefaultDateOptions({
4686
- hour: 1,
4687
- minute: 0,
4688
- dateOffset: 1,
4689
- })) {
5144
+ async getCharacterBeautyEquipment(ocid, dateOptions) {
5145
+ const path = 'maplestory/v1/character/beauty-equipment';
4690
5146
  const query = {
4691
5147
  ocid: ocid,
4692
- date: MapleStoryApi.toDateString({
5148
+ date: dateOptions ? MapleStoryApi.toDateString({
4693
5149
  year: 2023,
4694
5150
  month: 12,
4695
5151
  day: 21,
4696
- }, dateOptions),
5152
+ }, dateOptions) : undefined,
4697
5153
  };
4698
- try {
4699
- const path = 'maplestory/v1/character/beauty-equipment';
4700
- const response = await axios.get(path, {
4701
- baseURL: MapleStoryApi.BASE_URL,
4702
- timeout: this.timeout,
4703
- headers: this.buildHeaders(),
4704
- params: query,
4705
- });
4706
- return new CharacterBeautyEquipmentDto(response.data);
4707
- }
4708
- catch (e) {
4709
- if (e instanceof AxiosError) {
4710
- const errorBody = e.response.data;
4711
- throw new MapleStoryApiError(errorBody);
4712
- }
4713
- throw e;
4714
- }
5154
+ const { data } = await this.client.get(path, {
5155
+ params: query,
5156
+ });
5157
+ return new CharacterBeautyEquipmentDto(data);
4715
5158
  }
4716
5159
  /**
4717
5160
  * 장착한 안드로이드 정보를 조회합니다.
5161
+ * - 메이플스토리 게임 데이터는 평균 15분 후 확인 가능합니다.
4718
5162
  * - 2023년 12월 21일 데이터부터 조회할 수 있습니다.
4719
- * - 캐릭터 정보 조회 API는 일자별 데이터로 매일 오전 1시부터 전일 데이터 조회가 가능합니다. (예를 들어, 12월 22일 데이터를 조회하면 22일 00시부터 23일의 00시 사이의 데이터가 조회됩니다.)
5163
+ * - 과거 데이터는 원하는 일자를 입력해 조회할 있으며, 전일 데이터는 다음날 오전 2시부터 확인할 있습니다. (12월 22일 데이터 조회 시, 22일 00시부터 23 00시 사이 데이터가 조회 됩니다.)
4720
5164
  * - 게임 콘텐츠 변경으로 ocid가 변경될 수 있습니다. ocid 기반 서비스 갱신 시 유의해 주시길 바랍니다.
4721
5165
  *
4722
5166
  * @param ocid 캐릭터 식별자
4723
5167
  * @param dateOptions 조회 기준일 (KST)
4724
5168
  */
4725
- async getCharacterAndroidEquipment(ocid, dateOptions = MapleStoryApi.getProperDefaultDateOptions({
4726
- hour: 1,
4727
- minute: 0,
4728
- dateOffset: 1,
4729
- })) {
4730
- const query = {
4731
- ocid: ocid,
4732
- date: MapleStoryApi.toDateString({
5169
+ async getCharacterAndroidEquipment(ocid, dateOptions) {
5170
+ const path = 'maplestory/v1/character/android-equipment';
5171
+ const date = dateOptions
5172
+ ? MapleStoryApi.toDateString({
4733
5173
  year: 2023,
4734
5174
  month: 12,
4735
5175
  day: 21,
4736
- }, dateOptions),
5176
+ }, dateOptions)
5177
+ : undefined;
5178
+ const query = {
5179
+ ocid: ocid,
5180
+ date: date,
4737
5181
  };
4738
- try {
4739
- const path = 'maplestory/v1/character/android-equipment';
4740
- const response = await axios.get(path, {
4741
- baseURL: MapleStoryApi.BASE_URL,
4742
- timeout: this.timeout,
4743
- headers: this.buildHeaders(),
4744
- params: query,
4745
- });
4746
- return new CharacterAndroidEquipmentDto(response.data);
4747
- }
4748
- catch (e) {
4749
- if (e instanceof AxiosError) {
4750
- const errorBody = e.response.data;
4751
- throw new MapleStoryApiError(errorBody);
4752
- }
4753
- throw e;
4754
- }
5182
+ const { data } = await this.client.get(path, {
5183
+ params: query,
5184
+ });
5185
+ return new CharacterAndroidEquipmentDto(data);
4755
5186
  }
4756
5187
  /**
4757
5188
  * 장착한 펫 및 펫 스킬, 장비 정보를 조회합니다.
5189
+ * - 메이플스토리 게임 데이터는 평균 15분 후 확인 가능합니다.
4758
5190
  * - 2023년 12월 21일 데이터부터 조회할 수 있습니다.
4759
- * - 캐릭터 정보 조회 API는 일자별 데이터로 매일 오전 1시부터 전일 데이터 조회가 가능합니다. (예를 들어, 12월 22일 데이터를 조회하면 22일 00시부터 23일의 00시 사이의 데이터가 조회됩니다.)
5191
+ * - 과거 데이터는 원하는 일자를 입력해 조회할 있으며, 전일 데이터는 다음날 오전 2시부터 확인할 있습니다. (12월 22일 데이터 조회 시, 22일 00시부터 23 00시 사이 데이터가 조회 됩니다.)
4760
5192
  * - 게임 콘텐츠 변경으로 ocid가 변경될 수 있습니다. ocid 기반 서비스 갱신 시 유의해 주시길 바랍니다.
4761
5193
  *
4762
5194
  * @param ocid 캐릭터 식별자
4763
5195
  * @param dateOptions 조회 기준일 (KST)
4764
5196
  */
4765
- async getCharacterPetEquipment(ocid, dateOptions = MapleStoryApi.getProperDefaultDateOptions({
4766
- hour: 1,
4767
- minute: 0,
4768
- dateOffset: 1,
4769
- })) {
4770
- const query = {
4771
- ocid: ocid,
4772
- date: MapleStoryApi.toDateString({
5197
+ async getCharacterPetEquipment(ocid, dateOptions) {
5198
+ const path = 'maplestory/v1/character/pet-equipment';
5199
+ const date = dateOptions
5200
+ ? MapleStoryApi.toDateString({
4773
5201
  year: 2023,
4774
5202
  month: 12,
4775
5203
  day: 21,
4776
- }, dateOptions),
5204
+ }, dateOptions)
5205
+ : undefined;
5206
+ const query = {
5207
+ ocid: ocid,
5208
+ date: date,
4777
5209
  };
4778
- try {
4779
- const path = 'maplestory/v1/character/pet-equipment';
4780
- const response = await axios.get(path, {
4781
- baseURL: MapleStoryApi.BASE_URL,
4782
- timeout: this.timeout,
4783
- headers: this.buildHeaders(),
4784
- params: query,
4785
- });
4786
- return new CharacterPetEquipmentDto(response.data);
4787
- }
4788
- catch (e) {
4789
- if (e instanceof AxiosError) {
4790
- const errorBody = e.response.data;
4791
- throw new MapleStoryApiError(errorBody);
4792
- }
4793
- throw e;
4794
- }
5210
+ const { data } = await this.client.get(path, {
5211
+ params: query,
5212
+ });
5213
+ return new CharacterPetEquipmentDto(data);
4795
5214
  }
4796
5215
  /**
4797
5216
  * 캐릭터 스킬과 하이퍼 스킬 정보를 조회합니다.
5217
+ * - 메이플스토리 게임 데이터는 평균 15분 후 확인 가능합니다.
4798
5218
  * - 2023년 12월 21일 데이터부터 조회할 수 있습니다.
4799
- * - 캐릭터 정보 조회 API는 일자별 데이터로 매일 오전 1시부터 전일 데이터 조회가 가능합니다. (예를 들어, 12월 22일 데이터를 조회하면 22일 00시부터 23일의 00시 사이의 데이터가 조회됩니다.)
5219
+ * - 과거 데이터는 원하는 일자를 입력해 조회할 있으며, 전일 데이터는 다음날 오전 2시부터 확인할 있습니다. (12월 22일 데이터 조회 시, 22일 00시부터 23 00시 사이 데이터가 조회 됩니다.)
4800
5220
  * - 게임 콘텐츠 변경으로 ocid가 변경될 수 있습니다. ocid 기반 서비스 갱신 시 유의해 주시길 바랍니다.
4801
5221
  *
4802
5222
  * @param ocid 캐릭터 식별자
@@ -4814,441 +5234,310 @@ class MapleStoryApi {
4814
5234
  * - 6: 6차 스킬
4815
5235
  * @param dateOptions 조회 기준일 (KST)
4816
5236
  */
4817
- async getCharacterSkill(ocid, characterSkillGrade, dateOptions = MapleStoryApi.getProperDefaultDateOptions({
4818
- hour: 1,
4819
- minute: 0,
4820
- dateOffset: 1,
4821
- })) {
4822
- const query = {
4823
- ocid: ocid,
4824
- character_skill_grade: characterSkillGrade,
4825
- date: MapleStoryApi.toDateString({
5237
+ async getCharacterSkill(ocid, characterSkillGrade, dateOptions) {
5238
+ const path = 'maplestory/v1/character/skill';
5239
+ const date = dateOptions
5240
+ ? MapleStoryApi.toDateString({
4826
5241
  year: 2023,
4827
5242
  month: 12,
4828
5243
  day: 21,
4829
- }, dateOptions),
5244
+ }, dateOptions)
5245
+ : undefined;
5246
+ const query = {
5247
+ ocid: ocid,
5248
+ character_skill_grade: characterSkillGrade,
5249
+ date: date,
4830
5250
  };
4831
- try {
4832
- const path = 'maplestory/v1/character/skill';
4833
- const response = await axios.get(path, {
4834
- baseURL: MapleStoryApi.BASE_URL,
4835
- timeout: this.timeout,
4836
- headers: this.buildHeaders(),
4837
- params: query,
4838
- });
4839
- return new CharacterSkillDto(response.data);
4840
- }
4841
- catch (e) {
4842
- if (e instanceof AxiosError) {
4843
- const errorBody = e.response.data;
4844
- throw new MapleStoryApiError(errorBody);
4845
- }
4846
- throw e;
4847
- }
5251
+ const { data } = await this.client.get(path, {
5252
+ params: query,
5253
+ });
5254
+ return new CharacterSkillDto(data);
4848
5255
  }
4849
5256
  /**
4850
5257
  * 장착 링크 스킬 정보를 조회합니다.
5258
+ * - 메이플스토리 게임 데이터는 평균 15분 후 확인 가능합니다.
4851
5259
  * - 2023년 12월 21일 데이터부터 조회할 수 있습니다.
4852
- * - 캐릭터 정보 조회 API는 일자별 데이터로 매일 오전 1시부터 전일 데이터 조회가 가능합니다. (예를 들어, 12월 22일 데이터를 조회하면 22일 00시부터 23일의 00시 사이의 데이터가 조회됩니다.)
5260
+ * - 과거 데이터는 원하는 일자를 입력해 조회할 있으며, 전일 데이터는 다음날 오전 2시부터 확인할 있습니다. (12월 22일 데이터 조회 시, 22일 00시부터 23 00시 사이 데이터가 조회 됩니다.)
4853
5261
  * - 게임 콘텐츠 변경으로 ocid가 변경될 수 있습니다. ocid 기반 서비스 갱신 시 유의해 주시길 바랍니다.
4854
5262
  *
4855
5263
  * @param ocid 캐릭터 식별자
4856
5264
  * @param dateOptions 조회 기준일 (KST)
4857
5265
  */
4858
- async getCharacterLinkSkill(ocid, dateOptions = MapleStoryApi.getProperDefaultDateOptions({
4859
- hour: 1,
4860
- minute: 0,
4861
- dateOffset: 1,
4862
- })) {
4863
- const query = {
4864
- ocid: ocid,
4865
- date: MapleStoryApi.toDateString({
5266
+ async getCharacterLinkSkill(ocid, dateOptions) {
5267
+ const path = 'maplestory/v1/character/link-skill';
5268
+ const date = dateOptions
5269
+ ? MapleStoryApi.toDateString({
4866
5270
  year: 2023,
4867
5271
  month: 12,
4868
5272
  day: 21,
4869
- }, dateOptions),
5273
+ }, dateOptions)
5274
+ : undefined;
5275
+ const query = {
5276
+ ocid: ocid,
5277
+ date: date,
4870
5278
  };
4871
- try {
4872
- const path = 'maplestory/v1/character/link-skill';
4873
- const response = await axios.get(path, {
4874
- baseURL: MapleStoryApi.BASE_URL,
4875
- timeout: this.timeout,
4876
- headers: this.buildHeaders(),
4877
- params: query,
4878
- });
4879
- return new CharacterLinkSkillDto(response.data);
4880
- }
4881
- catch (e) {
4882
- if (e instanceof AxiosError) {
4883
- const errorBody = e.response.data;
4884
- throw new MapleStoryApiError(errorBody);
4885
- }
4886
- throw e;
4887
- }
5279
+ const { data } = await this.client.get(path, {
5280
+ params: query,
5281
+ });
5282
+ return new CharacterLinkSkillDto(data);
4888
5283
  }
4889
5284
  /**
4890
5285
  * V매트릭스 슬롯 정보와 장착한 V코어 정보를 조회합니다.
5286
+ * - 메이플스토리 게임 데이터는 평균 15분 후 확인 가능합니다.
4891
5287
  * - 2023년 12월 21일 데이터부터 조회할 수 있습니다.
4892
- * - 캐릭터 정보 조회 API는 일자별 데이터로 매일 오전 1시부터 전일 데이터 조회가 가능합니다. (예를 들어, 12월 22일 데이터를 조회하면 22일 00시부터 23일의 00시 사이의 데이터가 조회됩니다.)
5288
+ * - 과거 데이터는 원하는 일자를 입력해 조회할 있으며, 전일 데이터는 다음날 오전 2시부터 확인할 있습니다. (12월 22일 데이터 조회 시, 22일 00시부터 23 00시 사이 데이터가 조회 됩니다.)
4893
5289
  * - 게임 콘텐츠 변경으로 ocid가 변경될 수 있습니다. ocid 기반 서비스 갱신 시 유의해 주시길 바랍니다.
4894
5290
  *
4895
5291
  * @param ocid 캐릭터 식별자
4896
5292
  * @param dateOptions 조회 기준일 (KST)
4897
5293
  */
4898
- async getCharacterVMatrix(ocid, dateOptions = MapleStoryApi.getProperDefaultDateOptions({
4899
- hour: 1,
4900
- minute: 0,
4901
- dateOffset: 1,
4902
- })) {
4903
- const query = {
4904
- ocid: ocid,
4905
- date: MapleStoryApi.toDateString({
5294
+ async getCharacterVMatrix(ocid, dateOptions) {
5295
+ const path = 'maplestory/v1/character/vmatrix';
5296
+ const date = dateOptions
5297
+ ? MapleStoryApi.toDateString({
4906
5298
  year: 2023,
4907
5299
  month: 12,
4908
5300
  day: 21,
4909
- }, dateOptions),
5301
+ }, dateOptions)
5302
+ : undefined;
5303
+ const query = {
5304
+ ocid: ocid,
5305
+ date: date,
4910
5306
  };
4911
- try {
4912
- const path = 'maplestory/v1/character/vmatrix';
4913
- const response = await axios.get(path, {
4914
- baseURL: MapleStoryApi.BASE_URL,
4915
- timeout: this.timeout,
4916
- headers: this.buildHeaders(),
4917
- params: query,
4918
- });
4919
- return new CharacterVMatrixDto(response.data);
4920
- }
4921
- catch (e) {
4922
- if (e instanceof AxiosError) {
4923
- const errorBody = e.response.data;
4924
- throw new MapleStoryApiError(errorBody);
4925
- }
4926
- throw e;
4927
- }
5307
+ const { data } = await this.client.get(path, {
5308
+ params: query,
5309
+ });
5310
+ return new CharacterVMatrixDto(data);
4928
5311
  }
4929
5312
  /**
4930
5313
  * HEXA 매트릭스에 장착한 HEXA 코어 정보를 조회합니다.
5314
+ * - 메이플스토리 게임 데이터는 평균 15분 후 확인 가능합니다.
4931
5315
  * - 2023년 12월 21일 데이터부터 조회할 수 있습니다.
4932
- * - 캐릭터 정보 조회 API는 일자별 데이터로 매일 오전 1시부터 전일 데이터 조회가 가능합니다. (예를 들어, 12월 22일 데이터를 조회하면 22일 00시부터 23일의 00시 사이의 데이터가 조회됩니다.)
5316
+ * - 과거 데이터는 원하는 일자를 입력해 조회할 있으며, 전일 데이터는 다음날 오전 2시부터 확인할 있습니다. (12월 22일 데이터 조회 시, 22일 00시부터 23 00시 사이 데이터가 조회 됩니다.)
4933
5317
  * - 게임 콘텐츠 변경으로 ocid가 변경될 수 있습니다. ocid 기반 서비스 갱신 시 유의해 주시길 바랍니다.
4934
5318
  *
4935
5319
  * @param ocid 캐릭터 식별자
4936
5320
  * @param dateOptions 조회 기준일 (KST)
4937
5321
  */
4938
- async getCharacterHexaMatrix(ocid, dateOptions = MapleStoryApi.getProperDefaultDateOptions({
4939
- hour: 1,
4940
- minute: 0,
4941
- dateOffset: 1,
4942
- })) {
4943
- const query = {
4944
- ocid: ocid,
4945
- date: MapleStoryApi.toDateString({
5322
+ async getCharacterHexaMatrix(ocid, dateOptions) {
5323
+ const path = 'maplestory/v1/character/hexamatrix';
5324
+ const date = dateOptions
5325
+ ? MapleStoryApi.toDateString({
4946
5326
  year: 2023,
4947
5327
  month: 12,
4948
5328
  day: 21,
4949
- }, dateOptions),
5329
+ }, dateOptions)
5330
+ : undefined;
5331
+ const query = {
5332
+ ocid: ocid,
5333
+ date: date,
4950
5334
  };
4951
- try {
4952
- const path = 'maplestory/v1/character/hexamatrix';
4953
- const response = await axios.get(path, {
4954
- baseURL: MapleStoryApi.BASE_URL,
4955
- timeout: this.timeout,
4956
- headers: this.buildHeaders(),
4957
- params: query,
4958
- });
4959
- return new CharacterHexaMatrixDto(response.data);
4960
- }
4961
- catch (e) {
4962
- if (e instanceof AxiosError) {
4963
- const errorBody = e.response.data;
4964
- throw new MapleStoryApiError(errorBody);
4965
- }
4966
- throw e;
4967
- }
5335
+ const { data } = await this.client.get(path, {
5336
+ params: query,
5337
+ });
5338
+ return new CharacterHexaMatrixDto(data);
4968
5339
  }
4969
5340
  /**
4970
5341
  * HEXA 매트릭스에 설정한 HEXA 스탯 정보를 조회합니다.
5342
+ * - 메이플스토리 게임 데이터는 평균 15분 후 확인 가능합니다.
4971
5343
  * - 2023년 12월 21일 데이터부터 조회할 수 있습니다.
4972
- * - 캐릭터 정보 조회 API는 일자별 데이터로 매일 오전 1시부터 전일 데이터 조회가 가능합니다. (예를 들어, 12월 22일 데이터를 조회하면 22일 00시부터 23일의 00시 사이의 데이터가 조회됩니다.)
5344
+ * - 과거 데이터는 원하는 일자를 입력해 조회할 있으며, 전일 데이터는 다음날 오전 2시부터 확인할 있습니다. (12월 22일 데이터 조회 시, 22일 00시부터 23 00시 사이 데이터가 조회 됩니다.)
4973
5345
  * - 게임 콘텐츠 변경으로 ocid가 변경될 수 있습니다. ocid 기반 서비스 갱신 시 유의해 주시길 바랍니다.
4974
5346
  *
4975
5347
  * @param ocid 캐릭터 식별자
4976
5348
  * @param dateOptions 조회 기준일 (KST)
4977
5349
  */
4978
- async getCharacterHexaMatrixStat(ocid, dateOptions = MapleStoryApi.getProperDefaultDateOptions({
4979
- hour: 1,
4980
- minute: 0,
4981
- dateOffset: 1,
4982
- })) {
4983
- const query = {
4984
- ocid: ocid,
4985
- date: MapleStoryApi.toDateString({
5350
+ async getCharacterHexaMatrixStat(ocid, dateOptions) {
5351
+ const path = 'maplestory/v1/character/hexamatrix-stat';
5352
+ const date = dateOptions
5353
+ ? MapleStoryApi.toDateString({
4986
5354
  year: 2023,
4987
5355
  month: 12,
4988
5356
  day: 21,
4989
- }, dateOptions),
5357
+ }, dateOptions)
5358
+ : undefined;
5359
+ const query = {
5360
+ ocid: ocid,
5361
+ date: date,
4990
5362
  };
4991
- try {
4992
- const path = 'maplestory/v1/character/hexamatrix-stat';
4993
- const response = await axios.get(path, {
4994
- baseURL: MapleStoryApi.BASE_URL,
4995
- timeout: this.timeout,
4996
- headers: this.buildHeaders(),
4997
- params: query,
4998
- });
4999
- return new CharacterHexaMatrixStatDto(response.data);
5000
- }
5001
- catch (e) {
5002
- if (e instanceof AxiosError) {
5003
- const errorBody = e.response.data;
5004
- throw new MapleStoryApiError(errorBody);
5005
- }
5006
- throw e;
5007
- }
5363
+ const { data } = await this.client.get(path, {
5364
+ params: query,
5365
+ });
5366
+ return new CharacterHexaMatrixStatDto(data);
5008
5367
  }
5009
5368
  /**
5010
5369
  * 캐릭터 무릉도장 최고 기록 정보를 조회합니다.
5370
+ * - 메이플스토리 게임 데이터는 평균 15분 후 확인 가능합니다.
5011
5371
  * - 2023년 12월 21일 데이터부터 조회할 수 있습니다.
5012
- * - 캐릭터 정보 조회 API는 일자별 데이터로 매일 오전 1시부터 전일 데이터 조회가 가능합니다. (예를 들어, 12월 22일 데이터를 조회하면 22일 00시부터 23일의 00시 사이의 데이터가 조회됩니다.)
5372
+ * - 과거 데이터는 원하는 일자를 입력해 조회할 있으며, 전일 데이터는 다음날 오전 2시부터 확인할 있습니다. (12월 22일 데이터 조회 시, 22일 00시부터 23 00시 사이 데이터가 조회 됩니다.)
5013
5373
  * - 게임 콘텐츠 변경으로 ocid가 변경될 수 있습니다. ocid 기반 서비스 갱신 시 유의해 주시길 바랍니다.
5014
5374
  *
5015
5375
  * @param ocid 캐릭터 식별자
5016
5376
  * @param dateOptions 조회 기준일 (KST)
5017
5377
  */
5018
- async getCharacterDojang(ocid, dateOptions = MapleStoryApi.getProperDefaultDateOptions({
5019
- hour: 1,
5020
- minute: 0,
5021
- dateOffset: 1,
5022
- })) {
5023
- const query = {
5024
- ocid: ocid,
5025
- date: MapleStoryApi.toDateString({
5378
+ async getCharacterDojang(ocid, dateOptions) {
5379
+ const path = 'maplestory/v1/character/dojang';
5380
+ const date = dateOptions
5381
+ ? MapleStoryApi.toDateString({
5026
5382
  year: 2023,
5027
5383
  month: 12,
5028
5384
  day: 21,
5029
- }, dateOptions),
5385
+ }, dateOptions)
5386
+ : undefined;
5387
+ const query = {
5388
+ ocid: ocid,
5389
+ date: date,
5030
5390
  };
5031
- try {
5032
- const path = 'maplestory/v1/character/dojang';
5033
- const response = await axios.get(path, {
5034
- baseURL: MapleStoryApi.BASE_URL,
5035
- timeout: this.timeout,
5036
- headers: this.buildHeaders(),
5037
- params: query,
5038
- });
5039
- return new CharacterDojangDto(response.data);
5040
- }
5041
- catch (e) {
5042
- if (e instanceof AxiosError) {
5043
- const errorBody = e.response.data;
5044
- throw new MapleStoryApiError(errorBody);
5045
- }
5046
- throw e;
5047
- }
5391
+ const { data } = await this.client.get(path, {
5392
+ params: query,
5393
+ });
5394
+ return new CharacterDojangDto(data);
5048
5395
  }
5049
5396
  //#endregion
5050
5397
  //#region 유니온 정보 조회
5051
5398
  /**
5052
5399
  * 유니온 정보를 조회합니다.
5400
+ * - 메이플스토리 게임 데이터는 평균 15분 후 확인 가능합니다.
5053
5401
  * - 2023년 12월 21일 데이터부터 조회할 수 있습니다.
5054
- * - 유니온 정보 조회 API는 일자별 데이터로 매일 오전 1시부터 전일 데이터 조회가 가능합니다. (예를 들어, 12월 22일 데이터를 조회하면 22일 00시부터 23일의 00시 사이의 데이터가 조회됩니다.)
5402
+ * - 과거 데이터는 원하는 일자를 입력해 조회할 있으며, 전일 데이터는 다음날 오전 2시부터 확인할 있습니다. (12월 22일 데이터 조회 시, 22일 00시부터 23 00시 사이 데이터가 조회 됩니다.)
5055
5403
  * - 게임 콘텐츠 변경으로 ocid가 변경될 수 있습니다. ocid 기반 서비스 갱신 시 유의해 주시길 바랍니다.
5056
5404
  *
5057
5405
  * @param ocid 캐릭터 식별자
5058
5406
  * @param dateOptions 조회 기준일 (KST)
5059
5407
  */
5060
- async getUnion(ocid, dateOptions = MapleStoryApi.getProperDefaultDateOptions({
5061
- hour: 1,
5062
- minute: 0,
5063
- dateOffset: 1,
5064
- })) {
5065
- const query = {
5066
- ocid: ocid,
5067
- date: MapleStoryApi.toDateString({
5408
+ async getUnion(ocid, dateOptions) {
5409
+ const path = 'maplestory/v1/user/union';
5410
+ const date = dateOptions
5411
+ ? MapleStoryApi.toDateString({
5068
5412
  year: 2023,
5069
5413
  month: 12,
5070
5414
  day: 21,
5071
- }, dateOptions),
5415
+ }, dateOptions)
5416
+ : undefined;
5417
+ const query = {
5418
+ ocid: ocid,
5419
+ date: date,
5072
5420
  };
5073
- try {
5074
- const path = 'maplestory/v1/user/union';
5075
- const response = await axios.get(path, {
5076
- baseURL: MapleStoryApi.BASE_URL,
5077
- timeout: this.timeout,
5078
- headers: this.buildHeaders(),
5079
- params: query,
5080
- });
5081
- return new UnionDto(response.data);
5082
- }
5083
- catch (e) {
5084
- if (e instanceof AxiosError) {
5085
- const errorBody = e.response.data;
5086
- throw new MapleStoryApiError(errorBody);
5087
- }
5088
- throw e;
5089
- }
5421
+ const { data } = await this.client.get(path, {
5422
+ params: query,
5423
+ });
5424
+ return new UnionDto(data);
5090
5425
  }
5091
5426
  /**
5092
5427
  * 유니온 공격대 정보를 조회합니다.
5428
+ * - 메이플스토리 게임 데이터는 평균 15분 후 확인 가능합니다.
5093
5429
  * - 2023년 12월 21일 데이터부터 조회할 수 있습니다.
5094
- * - 유니온 정보 조회 API는 일자별 데이터로 매일 오전 1시부터 전일 데이터 조회가 가능합니다. (예를 들어, 12월 22일 데이터를 조회하면 22일 00시부터 23일의 00시 사이의 데이터가 조회됩니다.)
5430
+ * - 과거 데이터는 원하는 일자를 입력해 조회할 있으며, 전일 데이터는 다음날 오전 2시부터 확인할 있습니다. (12월 22일 데이터 조회 시, 22일 00시부터 23 00시 사이 데이터가 조회 됩니다.)
5095
5431
  * - 게임 콘텐츠 변경으로 ocid가 변경될 수 있습니다. ocid 기반 서비스 갱신 시 유의해 주시길 바랍니다.
5096
5432
  *
5097
5433
  * @param ocid 캐릭터 식별자
5098
5434
  * @param dateOptions 조회 기준일 (KST)
5099
5435
  */
5100
- async getUnionRaider(ocid, dateOptions = MapleStoryApi.getProperDefaultDateOptions({
5101
- hour: 1,
5102
- minute: 0,
5103
- dateOffset: 1,
5104
- })) {
5105
- const query = {
5106
- ocid: ocid,
5107
- date: MapleStoryApi.toDateString({
5436
+ async getUnionRaider(ocid, dateOptions) {
5437
+ const path = 'maplestory/v1/user/union-raider';
5438
+ const date = dateOptions
5439
+ ? MapleStoryApi.toDateString({
5108
5440
  year: 2023,
5109
5441
  month: 12,
5110
5442
  day: 21,
5111
- }, dateOptions),
5443
+ }, dateOptions)
5444
+ : undefined;
5445
+ const query = {
5446
+ ocid: ocid,
5447
+ date: date,
5112
5448
  };
5113
- try {
5114
- const path = 'maplestory/v1/user/union-raider';
5115
- const response = await axios.get(path, {
5116
- baseURL: MapleStoryApi.BASE_URL,
5117
- timeout: this.timeout,
5118
- headers: this.buildHeaders(),
5119
- params: query,
5120
- });
5121
- return new UnionRaiderDto(response.data);
5122
- }
5123
- catch (e) {
5124
- if (e instanceof AxiosError) {
5125
- const errorBody = e.response.data;
5126
- throw new MapleStoryApiError(errorBody);
5127
- }
5128
- throw e;
5129
- }
5449
+ const { data } = await this.client.get(path, {
5450
+ params: query,
5451
+ });
5452
+ return new UnionRaiderDto(data);
5130
5453
  }
5131
5454
  /**
5132
5455
  * 유니온 아티팩트 정보를 조회합니다.
5456
+ * - 메이플스토리 게임 데이터는 평균 15분 후 확인 가능합니다.
5133
5457
  * - 2023년 12월 21일 데이터부터 조회할 수 있습니다.
5134
- * - 유니온 정보 조회 API는 일자별 데이터로 매일 오전 1시부터 전일 데이터 조회가 가능합니다. (예를 들어, 12월 22일 데이터를 조회하면 22일 00시부터 23일의 00시 사이의 데이터가 조회됩니다.)
5458
+ * - 과거 데이터는 원하는 일자를 입력해 조회할 있으며, 전일 데이터는 다음날 오전 2시부터 확인할 있습니다. (12월 22일 데이터 조회 시, 22일 00시부터 23 00시 사이 데이터가 조회 됩니다.)
5135
5459
  * - 게임 콘텐츠 변경으로 ocid가 변경될 수 있습니다. ocid 기반 서비스 갱신 시 유의해 주시길 바랍니다.
5136
5460
  *
5137
5461
  * @param ocid 캐릭터 식별자
5138
5462
  * @param dateOptions 조회 기준일 (KST)
5139
5463
  */
5140
- async getUnionArtifact(ocid, dateOptions = MapleStoryApi.getProperDefaultDateOptions({
5141
- hour: 1,
5142
- minute: 0,
5143
- dateOffset: 1,
5144
- })) {
5145
- const query = {
5146
- ocid: ocid,
5147
- date: MapleStoryApi.toDateString({
5464
+ async getUnionArtifact(ocid, dateOptions) {
5465
+ const path = 'maplestory/v1/user/union-artifact';
5466
+ const date = dateOptions
5467
+ ? MapleStoryApi.toDateString({
5148
5468
  year: 2023,
5149
5469
  month: 12,
5150
5470
  day: 21,
5151
- }, dateOptions),
5471
+ }, dateOptions)
5472
+ : undefined;
5473
+ const query = {
5474
+ ocid: ocid,
5475
+ date: date,
5152
5476
  };
5153
- try {
5154
- const path = 'maplestory/v1/user/union-artifact';
5155
- const response = await axios.get(path, {
5156
- baseURL: MapleStoryApi.BASE_URL,
5157
- timeout: this.timeout,
5158
- headers: this.buildHeaders(),
5159
- params: query,
5160
- });
5161
- return new UnionArtifactDto(response.data);
5162
- }
5163
- catch (e) {
5164
- if (e instanceof AxiosError) {
5165
- const errorBody = e.response.data;
5166
- throw new MapleStoryApiError(errorBody);
5167
- }
5168
- throw e;
5169
- }
5477
+ const { data } = await this.client.get(path, {
5478
+ params: query,
5479
+ });
5480
+ return new UnionArtifactDto(data);
5170
5481
  }
5171
5482
  //#endregion
5172
5483
  //#region 길드 정보 조회
5173
5484
  /**
5174
5485
  * 길드 식별자(oguild_id) 정보를 조회합니다.
5486
+ * - 메이플스토리 게임 데이터는 평균 15분 후 확인 가능합니다.
5175
5487
  * - 2023년 12월 21일 데이터부터 조회할 수 있습니다.
5176
- * - 길드 정보 조회 API는 일자별 데이터로 매일 오전 1시부터 전일 데이터 조회가 가능합니다. (예를 들어, 12월 22일 데이터를 조회하면 22일 00시부터 23일의 00시 사이의 데이터가 조회됩니다.).
5488
+ * - 과거 데이터는 원하는 일자를 입력해 조회할 있으며, 전일 데이터는 다음날 오전 2시부터 확인할 있습니다. (12월 22일 데이터 조회 시, 22일 00시부터 23 00시 사이 데이터가 조회 됩니다.)
5177
5489
  * - 게임 콘텐츠 변경으로 ocid가 변경될 수 있습니다. ocid 기반 서비스 갱신 시 유의해 주시길 바랍니다.
5178
5490
  *
5179
5491
  * @param guildName 길드 명
5180
5492
  * @param worldName 월드 명
5181
5493
  */
5182
5494
  async getGuild(guildName, worldName) {
5183
- try {
5184
- const path = 'maplestory/v1/guild/id';
5185
- const response = await axios.get(path, {
5186
- baseURL: MapleStoryApi.BASE_URL,
5187
- timeout: this.timeout,
5188
- headers: this.buildHeaders(),
5189
- params: {
5190
- guild_name: guildName,
5191
- world_name: worldName,
5192
- },
5193
- });
5194
- return new GuildDto(response.data);
5195
- }
5196
- catch (e) {
5197
- if (e instanceof AxiosError) {
5198
- const errorBody = e.response.data;
5199
- throw new MapleStoryApiError(errorBody);
5200
- }
5201
- throw e;
5202
- }
5495
+ const path = 'maplestory/v1/guild/id';
5496
+ const { data } = await this.client.get(path, {
5497
+ params: {
5498
+ guild_name: guildName,
5499
+ world_name: worldName,
5500
+ },
5501
+ });
5502
+ return new GuildDto(data);
5203
5503
  }
5204
5504
  /**
5205
5505
  * 길드 기본 정보를 조회합니다.
5506
+ * - 메이플스토리 게임 데이터는 평균 15분 후 확인 가능합니다.
5206
5507
  * - 2023년 12월 21일 데이터부터 조회할 수 있습니다.
5207
- * - 길드 정보 조회 API는 일자별 데이터로 매일 오전 1시부터 전일 데이터 조회가 가능합니다. (예를 들어, 12월 22일 데이터를 조회하면 22일 00시부터 23일의 00시 사이의 데이터가 조회됩니다.).
5508
+ * - 과거 데이터는 원하는 일자를 입력해 조회할 있으며, 전일 데이터는 다음날 오전 2시부터 확인할 있습니다. (12월 22일 데이터 조회 시, 22일 00시부터 23 00시 사이 데이터가 조회 됩니다.)
5208
5509
  * - 게임 콘텐츠 변경으로 ocid가 변경될 수 있습니다. ocid 기반 서비스 갱신 시 유의해 주시길 바랍니다.
5209
5510
  *
5210
5511
  * @param guildId 길드 식별자
5211
5512
  * @param dateOptions 조회 기준일 (KST)
5212
5513
  */
5213
- async getGuildBasic(guildId, dateOptions = MapleStoryApi.getProperDefaultDateOptions({
5214
- hour: 1,
5215
- minute: 0,
5216
- dateOffset: 1,
5217
- })) {
5218
- const query = {
5219
- oguild_id: guildId,
5220
- date: MapleStoryApi.toDateString({
5514
+ async getGuildBasic(guildId, dateOptions) {
5515
+ const path = 'maplestory/v1/guild/basic';
5516
+ const date = dateOptions
5517
+ ? MapleStoryApi.toDateString({
5221
5518
  year: 2023,
5222
5519
  month: 12,
5223
5520
  day: 21,
5224
- }, dateOptions),
5521
+ }, dateOptions)
5522
+ : undefined;
5523
+ const query = {
5524
+ oguild_id: guildId,
5525
+ date: date,
5225
5526
  };
5226
- try {
5227
- const path = 'maplestory/v1/guild/basic';
5228
- const response = await axios.get(path, {
5229
- baseURL: MapleStoryApi.BASE_URL,
5230
- timeout: this.timeout,
5231
- headers: this.buildHeaders(),
5232
- params: query,
5233
- });
5234
- return new GuildBasicDto(response.data);
5235
- }
5236
- catch (e) {
5237
- if (e instanceof AxiosError) {
5238
- const errorBody = e.response.data;
5239
- throw new MapleStoryApiError(errorBody);
5240
- }
5241
- throw e;
5242
- }
5527
+ const { data } = await this.client.get(path, {
5528
+ params: query,
5529
+ });
5530
+ return new GuildBasicDto(data);
5243
5531
  }
5244
5532
  async getStarforceHistory(count, parameter) {
5533
+ const path = 'maplestory/v1/history/starforce';
5245
5534
  const query = {
5246
5535
  count,
5247
5536
  };
5248
5537
  if (typeof parameter === 'string') {
5249
5538
  query.cursor = parameter;
5250
5539
  }
5251
- else if (typeof parameter === 'object') {
5540
+ else if (typeof parameter === 'object' || parameter === undefined) {
5252
5541
  query.date = MapleStoryApi.toDateString({
5253
5542
  year: 2023,
5254
5543
  month: 12,
@@ -5260,25 +5549,13 @@ class MapleStoryApi {
5260
5549
  dateOffset: 0,
5261
5550
  }));
5262
5551
  }
5263
- try {
5264
- const path = 'maplestory/v1/history/starforce';
5265
- const response = await axios.get(path, {
5266
- baseURL: MapleStoryApi.BASE_URL,
5267
- timeout: this.timeout,
5268
- headers: this.buildHeaders(),
5269
- params: query,
5270
- });
5271
- return new StarforceHistoryResponseDto(response.data);
5272
- }
5273
- catch (e) {
5274
- if (e instanceof AxiosError) {
5275
- const errorBody = e.response.data;
5276
- throw new MapleStoryApiError(errorBody);
5277
- }
5278
- throw e;
5279
- }
5552
+ const { data } = await this.client.get(path, {
5553
+ params: query,
5554
+ });
5555
+ return new StarforceHistoryResponseDto(data);
5280
5556
  }
5281
5557
  async getCubeHistory(count, parameter) {
5558
+ const path = 'maplestory/v1/history/cube';
5282
5559
  const query = {
5283
5560
  count,
5284
5561
  };
@@ -5297,25 +5574,13 @@ class MapleStoryApi {
5297
5574
  dateOffset: 1,
5298
5575
  }));
5299
5576
  }
5300
- try {
5301
- const path = 'maplestory/v1/history/cube';
5302
- const response = await axios.get(path, {
5303
- baseURL: MapleStoryApi.BASE_URL,
5304
- timeout: this.timeout,
5305
- headers: this.buildHeaders(),
5306
- params: query,
5307
- });
5308
- return new CubeHistoryResponseDto(response.data);
5309
- }
5310
- catch (e) {
5311
- if (e instanceof AxiosError) {
5312
- const errorBody = e.response.data;
5313
- throw new MapleStoryApiError(errorBody);
5314
- }
5315
- throw e;
5316
- }
5577
+ const { data } = await this.client.get(path, {
5578
+ params: query,
5579
+ });
5580
+ return new CubeHistoryResponseDto(data);
5317
5581
  }
5318
5582
  async getPotentialHistory(count, parameter) {
5583
+ const path = 'maplestory/v1/history/potential';
5319
5584
  const query = {
5320
5585
  count,
5321
5586
  };
@@ -5334,23 +5599,10 @@ class MapleStoryApi {
5334
5599
  dateOffset: 1,
5335
5600
  }));
5336
5601
  }
5337
- try {
5338
- const path = 'maplestory/v1/history/potential';
5339
- const response = await axios.get(path, {
5340
- baseURL: MapleStoryApi.BASE_URL,
5341
- timeout: this.timeout,
5342
- headers: this.buildHeaders(),
5343
- params: query,
5344
- });
5345
- return new PotentialHistoryResponseDto(response.data);
5346
- }
5347
- catch (e) {
5348
- if (e instanceof AxiosError) {
5349
- const errorBody = e.response.data;
5350
- throw new MapleStoryApiError(errorBody);
5351
- }
5352
- throw e;
5353
- }
5602
+ const { data } = await this.client.get(path, {
5603
+ params: query,
5604
+ });
5605
+ return new PotentialHistoryResponseDto(data);
5354
5606
  }
5355
5607
  //#endregion
5356
5608
  //#region 랭킹 정보 조회
@@ -5369,6 +5621,7 @@ class MapleStoryApi {
5369
5621
  minute: 30,
5370
5622
  dateOffset: 0,
5371
5623
  })) {
5624
+ const path = 'maplestory/v1/ranking/overall';
5372
5625
  const query = {
5373
5626
  date: MapleStoryApi.toDateString({
5374
5627
  year: 2023,
@@ -5384,23 +5637,10 @@ class MapleStoryApi {
5384
5637
  query.ocid = ocid;
5385
5638
  query.page = page;
5386
5639
  }
5387
- try {
5388
- const path = 'maplestory/v1/ranking/overall';
5389
- const response = await axios.get(path, {
5390
- baseURL: MapleStoryApi.BASE_URL,
5391
- timeout: this.timeout,
5392
- headers: this.buildHeaders(),
5393
- params: query,
5394
- });
5395
- return new OverallRankingResponseDto(response.data);
5396
- }
5397
- catch (e) {
5398
- if (e instanceof AxiosError) {
5399
- const errorBody = e.response.data;
5400
- throw new MapleStoryApiError(errorBody);
5401
- }
5402
- throw e;
5403
- }
5640
+ const { data } = await this.client.get(path, {
5641
+ params: query,
5642
+ });
5643
+ return new OverallRankingResponseDto(data);
5404
5644
  }
5405
5645
  /**
5406
5646
  * 유니온 랭킹 정보를 조회합니다.
@@ -5416,6 +5656,7 @@ class MapleStoryApi {
5416
5656
  minute: 30,
5417
5657
  dateOffset: 0,
5418
5658
  })) {
5659
+ const path = 'maplestory/v1/ranking/union';
5419
5660
  const query = {
5420
5661
  date: MapleStoryApi.toDateString({
5421
5662
  year: 2023,
@@ -5429,23 +5670,10 @@ class MapleStoryApi {
5429
5670
  query.ocid = ocid;
5430
5671
  query.page = page;
5431
5672
  }
5432
- try {
5433
- const path = 'maplestory/v1/ranking/union';
5434
- const response = await axios.get(path, {
5435
- baseURL: MapleStoryApi.BASE_URL,
5436
- timeout: this.timeout,
5437
- headers: this.buildHeaders(),
5438
- params: query,
5439
- });
5440
- return new UnionRankingResponseDto(response.data);
5441
- }
5442
- catch (e) {
5443
- if (e instanceof AxiosError) {
5444
- const errorBody = e.response.data;
5445
- throw new MapleStoryApiError(errorBody);
5446
- }
5447
- throw e;
5448
- }
5673
+ const { data } = await this.client.get(path, {
5674
+ params: query,
5675
+ });
5676
+ return new UnionRankingResponseDto(data);
5449
5677
  }
5450
5678
  /**
5451
5679
  * 길드 랭킹 정보를 조회합니다.
@@ -5461,6 +5689,7 @@ class MapleStoryApi {
5461
5689
  minute: 30,
5462
5690
  dateOffset: 0,
5463
5691
  })) {
5692
+ const path = 'maplestory/v1/ranking/guild';
5464
5693
  const query = {
5465
5694
  date: MapleStoryApi.toDateString({
5466
5695
  year: 2023,
@@ -5476,23 +5705,10 @@ class MapleStoryApi {
5476
5705
  query.ocid = ocid;
5477
5706
  query.page = page;
5478
5707
  }
5479
- try {
5480
- const path = 'maplestory/v1/ranking/guild';
5481
- const response = await axios.get(path, {
5482
- baseURL: MapleStoryApi.BASE_URL,
5483
- timeout: this.timeout,
5484
- headers: this.buildHeaders(),
5485
- params: query,
5486
- });
5487
- return new GuildRankingResponseDto(response.data);
5488
- }
5489
- catch (e) {
5490
- if (e instanceof AxiosError) {
5491
- const errorBody = e.response.data;
5492
- throw new MapleStoryApiError(errorBody);
5493
- }
5494
- throw e;
5495
- }
5708
+ const { data } = await this.client.get(path, {
5709
+ params: query,
5710
+ });
5711
+ return new GuildRankingResponseDto(data);
5496
5712
  }
5497
5713
  /**
5498
5714
  * 무릉도장 랭킹 정보를 조회합니다.
@@ -5508,6 +5724,7 @@ class MapleStoryApi {
5508
5724
  minute: 30,
5509
5725
  dateOffset: 0,
5510
5726
  })) {
5727
+ const path = 'maplestory/v1/ranking/dojang';
5511
5728
  const query = {
5512
5729
  date: MapleStoryApi.toDateString({
5513
5730
  year: 2023,
@@ -5524,23 +5741,10 @@ class MapleStoryApi {
5524
5741
  query.ocid = ocid;
5525
5742
  query.page = page;
5526
5743
  }
5527
- try {
5528
- const path = 'maplestory/v1/ranking/dojang';
5529
- const response = await axios.get(path, {
5530
- baseURL: MapleStoryApi.BASE_URL,
5531
- timeout: this.timeout,
5532
- headers: this.buildHeaders(),
5533
- params: query,
5534
- });
5535
- return new DojangRankingResponseDto(response.data);
5536
- }
5537
- catch (e) {
5538
- if (e instanceof AxiosError) {
5539
- const errorBody = e.response.data;
5540
- throw new MapleStoryApiError(errorBody);
5541
- }
5542
- throw e;
5543
- }
5744
+ const { data } = await this.client.get(path, {
5745
+ params: query,
5746
+ });
5747
+ return new DojangRankingResponseDto(data);
5544
5748
  }
5545
5749
  /**
5546
5750
  * 더 시드 랭킹 정보를 조회합니다.
@@ -5556,6 +5760,7 @@ class MapleStoryApi {
5556
5760
  minute: 30,
5557
5761
  dateOffset: 0,
5558
5762
  })) {
5763
+ const path = 'maplestory/v1/ranking/theseed';
5559
5764
  const query = {
5560
5765
  date: MapleStoryApi.toDateString({
5561
5766
  year: 2023,
@@ -5569,23 +5774,10 @@ class MapleStoryApi {
5569
5774
  query.ocid = ocid;
5570
5775
  query.page = page;
5571
5776
  }
5572
- try {
5573
- const path = 'maplestory/v1/ranking/theseed';
5574
- const response = await axios.get(path, {
5575
- baseURL: MapleStoryApi.BASE_URL,
5576
- timeout: this.timeout,
5577
- headers: this.buildHeaders(),
5578
- params: query,
5579
- });
5580
- return new TheSeedRankingResponseDto(response.data);
5581
- }
5582
- catch (e) {
5583
- if (e instanceof AxiosError) {
5584
- const errorBody = e.response.data;
5585
- throw new MapleStoryApiError(errorBody);
5586
- }
5587
- throw e;
5588
- }
5777
+ const { data } = await this.client.get(path, {
5778
+ params: query,
5779
+ });
5780
+ return new TheSeedRankingResponseDto(data);
5589
5781
  }
5590
5782
  /**
5591
5783
  * 업적 랭킹 정보를 조회합니다.
@@ -5601,6 +5793,7 @@ class MapleStoryApi {
5601
5793
  minute: 30,
5602
5794
  dateOffset: 0,
5603
5795
  })) {
5796
+ const path = 'maplestory/v1/ranking/achievement';
5604
5797
  const query = {
5605
5798
  date: MapleStoryApi.toDateString({
5606
5799
  year: 2023,
@@ -5613,23 +5806,124 @@ class MapleStoryApi {
5613
5806
  query.ocid = ocid;
5614
5807
  query.page = page;
5615
5808
  }
5616
- try {
5617
- const path = 'maplestory/v1/ranking/achievement';
5618
- const response = await axios.get(path, {
5619
- baseURL: MapleStoryApi.BASE_URL,
5620
- timeout: this.timeout,
5621
- headers: this.buildHeaders(),
5622
- params: query,
5623
- });
5624
- return new AchievementRankingResponseDto(response.data);
5625
- }
5626
- catch (e) {
5627
- if (e instanceof AxiosError) {
5628
- const errorBody = e.response.data;
5629
- throw new MapleStoryApiError(errorBody);
5630
- }
5631
- throw e;
5632
- }
5809
+ const { data } = await this.client.get(path, {
5810
+ params: query,
5811
+ });
5812
+ return new AchievementRankingResponseDto(data);
5813
+ }
5814
+ //#endregion
5815
+ //#region 공지 정보 조회
5816
+ /**
5817
+ * 메이플스토리 공지사항에 최근 등록된 게시글 20개를 조회합니다.
5818
+ *
5819
+ * - 공지 정보 API는 데이터 최신화(공지 내용 수정/ 업데이트 고려) 위해 실시간 조회 또는 최소 일배치 작업을 권장합니다.
5820
+ * - 실시간으로 정보를 제공하지 않는 경우, 신규/수정 공지 내용이 반영되지 않을 수 있으니 서비스 이용 유저에게 홈페이지 공지 사항을 확인하라는 가이드를 제공해주세요.
5821
+ */
5822
+ async getNoticeList() {
5823
+ const path = 'maplestory/v1/notice';
5824
+ const { data } = await this.client.get(path);
5825
+ return new NoticeListDto(data);
5826
+ }
5827
+ /**
5828
+ * 메이플스토리 공지사항 게시글 세부 사항을 조회합니다.
5829
+ *
5830
+ * - 공지 정보 API는 데이터 최신화(공지 내용 수정/ 업데이트 고려)를 위해 실시간 조회 또는 최소 일배치 작업을 권장합니다.
5831
+ * - 실시간으로 정보를 제공하지 않는 경우, 신규/수정 공지 내용이 반영되지 않을 수 있으니 서비스 이용 유저에게 홈페이지 공지 사항을 확인하라는 가이드를 제공해주세요.
5832
+ * @param noticeId 공지 식별자
5833
+ */
5834
+ async getNoticeDetail(noticeId) {
5835
+ const path = 'maplestory/v1/notice/detail';
5836
+ const query = {
5837
+ notice_id: noticeId,
5838
+ };
5839
+ const { data } = await this.client.get(path, {
5840
+ params: query,
5841
+ });
5842
+ return new NoticeDetailDto(data);
5843
+ }
5844
+ /**
5845
+ * 메이플스토리 업데이트에 최근 등록된 게시글 20개를 조회합니다.
5846
+ *
5847
+ * - 공지 정보 API는 데이터 최신화(공지 내용 수정/ 업데이트 고려)를 위해 실시간 조회 또는 최소 일배치 작업을 권장합니다.
5848
+ * - 실시간으로 정보를 제공하지 않는 경우, 신규/수정 공지 내용이 반영되지 않을 수 있으니 서비스 이용 유저에게 홈페이지 공지 사항을 확인하라는 가이드를 제공해주세요.
5849
+ */
5850
+ async getUpdateNoticeList() {
5851
+ const path = 'maplestory/v1/notice-update';
5852
+ const { data } = await this.client.get(path);
5853
+ return new UpdateNoticeListDto(data);
5854
+ }
5855
+ /**
5856
+ * 메이플스토리 업데이트 게시글 세부 사항을 조회합니다.
5857
+ *
5858
+ * - 공지 정보 API는 데이터 최신화(공지 내용 수정/ 업데이트 고려)를 위해 실시간 조회 또는 최소 일배치 작업을 권장합니다.
5859
+ * - 실시간으로 정보를 제공하지 않는 경우, 신규/수정 공지 내용이 반영되지 않을 수 있으니 서비스 이용 유저에게 홈페이지 공지 사항을 확인하라는 가이드를 제공해주세요.
5860
+ * @param noticeId 공지 식별자
5861
+ */
5862
+ async getUpdateNoticeDetail(noticeId) {
5863
+ const path = 'maplestory/v1/notice-update/detail';
5864
+ const query = {
5865
+ notice_id: noticeId,
5866
+ };
5867
+ const { data } = await this.client.get(path, {
5868
+ params: query,
5869
+ });
5870
+ return new UpdateNoticeDetailDto(data);
5871
+ }
5872
+ /**
5873
+ * 메이플스토리 진행 중 이벤트에 최근 등록된 공지사항 20개를 조회합니다.
5874
+ *
5875
+ * - 공지 정보 API는 데이터 최신화(공지 내용 수정/ 업데이트 고려)를 위해 실시간 조회 또는 최소 일배치 작업을 권장합니다.
5876
+ * - 실시간으로 정보를 제공하지 않는 경우, 신규/수정 공지 내용이 반영되지 않을 수 있으니 서비스 이용 유저에게 홈페이지 공지 사항을 확인하라는 가이드를 제공해주세요.
5877
+ */
5878
+ async getEventNoticeList() {
5879
+ const path = 'maplestory/v1/notice-event';
5880
+ const { data } = await this.client.get(path);
5881
+ return new EventNoticeListDto(data);
5882
+ }
5883
+ /**
5884
+ * 메이플스토리 진행 중 이벤트 게시글 세부 사항을 조회합니다.
5885
+ *
5886
+ * - 공지 정보 API는 데이터 최신화(공지 내용 수정/ 업데이트 고려)를 위해 실시간 조회 또는 최소 일배치 작업을 권장합니다.
5887
+ * - 실시간으로 정보를 제공하지 않는 경우, 신규/수정 공지 내용이 반영되지 않을 수 있으니 서비스 이용 유저에게 홈페이지 공지 사항을 확인하라는 가이드를 제공해주세요.
5888
+ * @param noticeId 공지 식별자
5889
+ */
5890
+ async getEventNoticeDetail(noticeId) {
5891
+ const path = 'maplestory/v1/notice-event/detail';
5892
+ const query = {
5893
+ notice_id: noticeId,
5894
+ };
5895
+ const { data } = await this.client.get(path, {
5896
+ params: query,
5897
+ });
5898
+ return new EventNoticeDetailDto(data);
5899
+ }
5900
+ /**
5901
+ * 메이플스토리 캐시샵 공지에 최근 등록된 공지사항 20개를 조회합니다.
5902
+ *
5903
+ * - 공지 정보 API는 데이터 최신화(공지 내용 수정/ 업데이트 고려)를 위해 실시간 조회 또는 최소 일배치 작업을 권장합니다.
5904
+ * - 실시간으로 정보를 제공하지 않는 경우, 신규/수정 공지 내용이 반영되지 않을 수 있으니 서비스 이용 유저에게 홈페이지 공지 사항을 확인하라는 가이드를 제공해주세요.
5905
+ */
5906
+ async getCashshopNoticeList() {
5907
+ const path = 'maplestory/v1/notice-cashshop';
5908
+ const { data } = await this.client.get(path);
5909
+ return new CashshopNoticeListDto(data);
5910
+ }
5911
+ /**
5912
+ * 메이플스토리 캐시샵 공지 게시글 세부 사항을 조회합니다.
5913
+ *
5914
+ * - 공지 정보 API는 데이터 최신화(공지 내용 수정/ 업데이트 고려)를 위해 실시간 조회 또는 최소 일배치 작업을 권장합니다.
5915
+ * - 실시간으로 정보를 제공하지 않는 경우, 신규/수정 공지 내용이 반영되지 않을 수 있으니 서비스 이용 유저에게 홈페이지 공지 사항을 확인하라는 가이드를 제공해주세요.
5916
+ * @param noticeId 공지 식별자
5917
+ */
5918
+ async getCashshopNoticeDetail(noticeId) {
5919
+ const path = 'maplestory/v1/notice-cashshop/detail';
5920
+ const query = {
5921
+ notice_id: noticeId,
5922
+ };
5923
+ const { data } = await this.client.get(path, {
5924
+ params: query,
5925
+ });
5926
+ return new CashshopNoticeDetailDto(data);
5633
5927
  }
5634
5928
  //#endregion
5635
5929
  /**
@@ -5668,11 +5962,6 @@ class MapleStoryApi {
5668
5962
  const xml = (await xml2js.parseStringPromise(response.data));
5669
5963
  return new InspectionInfoDto(xml);
5670
5964
  }
5671
- buildHeaders() {
5672
- return {
5673
- 'x-nxopen-api-key': this.apiKey,
5674
- };
5675
- }
5676
5965
  /**
5677
5966
  * API 서버의 데이터 갱신 시간에 따라 데이터가 조회 가능한 최신 날짜를 반환합니다.
5678
5967
  *
@@ -5721,4 +6010,4 @@ class MapleStoryApi {
5721
6010
  }
5722
6011
  }
5723
6012
 
5724
- export { AchievementRankingDto, AchievementRankingResponseDto, CharacterAbilityDto, CharacterAbilityInfoDto, CharacterAbilityPresetDto, CharacterAndroidCashItemEquipmentColoringPrismDto, CharacterAndroidCashItemEquipmentDto, CharacterAndroidCashItemEquipmentOptionDto, CharacterAndroidEquipmentDto, CharacterAndroidEquipmentFaceDto, CharacterAndroidEquipmentHairDto, CharacterAndroidEquipmentPresetDto, CharacterBasicDto, CharacterBeautyEquipmentDto, CharacterBeautyEquipmentFaceDto, CharacterBeautyEquipmentHairDto, CharacterCashItemEquipmentColoringPrismDto, CharacterCashItemEquipmentDto, CharacterCashItemEquipmentOptionDto, CharacterCashItemEquipmentPresetDto, CharacterDojangDto, CharacterDto, CharacterHexaMatrixDto, CharacterHexaMatrixEquipmentDto, CharacterHexaMatrixEquipmentLinkedSkillDto, CharacterHexaMatrixStatCoreDto, CharacterHexaMatrixStatDto, CharacterHyperStatDto, CharacterHyperStatPresetDto, CharacterItemEquipmentAddOptionDto, CharacterItemEquipmentBaseOptionDto, CharacterItemEquipmentDragonInfoDto, CharacterItemEquipmentDto, CharacterItemEquipmentEtcOptionDto, CharacterItemEquipmentExceptionalOptionDto, CharacterItemEquipmentInfoDto, CharacterItemEquipmentMechanicInfoDto, CharacterItemEquipmentStarforceOptionDto, CharacterItemEquipmentTitleDto, CharacterItemEquipmentTotalOptionDto, CharacterLinkSkillDto, CharacterLinkSkillInfoDto, CharacterPetEquipmentAutoSkillDto, CharacterPetEquipmentDto, CharacterPetEquipmentItemDto, CharacterPetEquipmentItemOptionDto, CharacterPopularityDto, CharacterPropensityDto, CharacterSetEffectDto, CharacterSetEffectInfoDto, CharacterSetEffectOptionInfoDto, CharacterSkillDto, CharacterSkillInfoDto, CharacterStatDto, CharacterSymbolEquipmentDto, CharacterSymbolEquipmentInfoDto, CharacterVMatrixCodeEquipmentDto, CharacterVMatrixDto, CubeHistoryDto, CubeHistoryResponseDto, CubeResultOptionDto, DojangRankingDto, DojangRankingResponseDto, GuildBasicDto, GuildDto, GuildRankingDto, GuildRankingResponseDto, GuildSkillDto, InspectionInfoDto, MapleStoryApi, MapleStoryApiError, MapleStoryApiErrorCode, OverallRankingDto, OverallRankingResponseDto, PotentialHistoryDto, PotentialHistoryResponseDto, PotentialOptionGrade, PotentialResultOptionDto, StarforceEventDto, StarforceHistoryDto, StarforceHistoryResponseDto, TheSeedRankingDto, TheSeedRankingResponseDto, UnionArtifactCrystalDto, UnionArtifactDto, UnionArtifactEffectDto, UnionDto, UnionRaiderBlockControlPointDto, UnionRaiderBlockDto, UnionRaiderBlockPositionDto, UnionRaiderDto, UnionRaiderInnerStatDto, UnionRankingDto, UnionRankingResponseDto, potentialOptionGradeFromString };
6013
+ export { AchievementRankingDto, AchievementRankingResponseDto, CashshopNoticeDetailDto, CashshopNoticeListDto, CashshopNoticeListItemDto, CharacterAbilityDto, CharacterAbilityInfoDto, CharacterAbilityPresetDto, CharacterAndroidCashItemEquipmentColoringPrismDto, CharacterAndroidCashItemEquipmentDto, CharacterAndroidCashItemEquipmentOptionDto, CharacterAndroidEquipmentDto, CharacterAndroidEquipmentFaceDto, CharacterAndroidEquipmentHairDto, CharacterAndroidEquipmentPresetDto, CharacterBasicDto, CharacterBeautyEquipmentDto, CharacterBeautyEquipmentFaceDto, CharacterBeautyEquipmentHairDto, CharacterCashItemEquipmentColoringPrismDto, CharacterCashItemEquipmentDto, CharacterCashItemEquipmentOptionDto, CharacterCashItemEquipmentPresetDto, CharacterDojangDto, CharacterDto, CharacterHexaMatrixDto, CharacterHexaMatrixEquipmentDto, CharacterHexaMatrixEquipmentLinkedSkillDto, CharacterHexaMatrixStatCoreDto, CharacterHexaMatrixStatDto, CharacterHyperStatDto, CharacterHyperStatPresetDto, CharacterItemEquipmentAddOptionDto, CharacterItemEquipmentBaseOptionDto, CharacterItemEquipmentDragonInfoDto, CharacterItemEquipmentDto, CharacterItemEquipmentEtcOptionDto, CharacterItemEquipmentExceptionalOptionDto, CharacterItemEquipmentInfoDto, CharacterItemEquipmentMechanicInfoDto, CharacterItemEquipmentStarforceOptionDto, CharacterItemEquipmentTitleDto, CharacterItemEquipmentTotalOptionDto, CharacterLinkSkillDto, CharacterLinkSkillInfoDto, CharacterListAccountCharacterDto, CharacterListAccountDto, CharacterListDto, CharacterPetEquipmentAutoSkillDto, CharacterPetEquipmentDto, CharacterPetEquipmentItemDto, CharacterPetEquipmentItemOptionDto, CharacterPopularityDto, CharacterPropensityDto, CharacterSetEffectDto, CharacterSetEffectInfoDto, CharacterSetEffectOptionFullDto, CharacterSetEffectSetDto, CharacterSkillDto, CharacterSkillInfoDto, CharacterStatDto, CharacterSymbolEquipmentDto, CharacterSymbolEquipmentInfoDto, CharacterVMatrixCodeEquipmentDto, CharacterVMatrixDto, CubeHistoryDto, CubeHistoryResponseDto, CubeResultOptionDto, DojangRankingDto, DojangRankingResponseDto, EventNoticeDetailDto, EventNoticeListDto, EventNoticeListItemDto, GuildBasicDto, GuildDto, GuildRankingDto, GuildRankingResponseDto, GuildSkillDto, InspectionInfoDto, MapleStoryApi, MapleStoryApiError, MapleStoryApiErrorCode, NoticeDetailDto, NoticeListDto, NoticeListItemDto, OverallRankingDto, OverallRankingResponseDto, PotentialHistoryDto, PotentialHistoryResponseDto, PotentialOptionGrade, PotentialResultOptionDto, StarforceEventDto, StarforceHistoryDto, StarforceHistoryResponseDto, TheSeedRankingDto, TheSeedRankingResponseDto, UnionArtifactCrystalDto, UnionArtifactDto, UnionArtifactEffectDto, UnionDto, UnionRaiderBlockControlPointDto, UnionRaiderBlockDto, UnionRaiderBlockPositionDto, UnionRaiderDto, UnionRaiderInnerStatDto, UnionRaiderPresetDto, UnionRankingDto, UnionRankingResponseDto, UpdateNoticeDetailDto, UpdateNoticeListDto, UpdateNoticeListItemDto, potentialOptionGradeFromString };