poe-api-manager 1.2.22 → 2.0.0

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 (152) hide show
  1. package/Changelog.md +28 -0
  2. package/README.md +33 -12
  3. package/dist/index.d.ts +6 -4
  4. package/dist/index.js +24 -7
  5. package/dist/index.min.js +1 -1
  6. package/dist/lib/AbstractClass/PoeNinja.d.ts +1 -2
  7. package/dist/lib/AbstractClass/PoeNinja.js +3 -3
  8. package/dist/lib/AbstractClass/PoeWatch.d.ts +1 -2
  9. package/dist/lib/AbstractClass/PoeWatch.js +3 -3
  10. package/dist/lib/Interfaces/IPoeNinja.d.ts +1 -2
  11. package/dist/lib/Interfaces/IPoeWatch.d.ts +1 -2
  12. package/dist/lib/NinjaAPI.d.ts +2 -6
  13. package/dist/lib/NinjaAPI.js +8 -5
  14. package/dist/lib/Utils.d.ts +1 -2
  15. package/dist/lib/Utils.js +4 -13
  16. package/dist/lib/errors/ApiError.d.ts +1 -2
  17. package/dist/lib/errors/CustomError.d.ts +1 -2
  18. package/dist/lib/errors/CustomError.js +4 -1
  19. package/dist/lib/errors/ValidationError.d.ts +1 -2
  20. package/dist/lib/mainfunctions/propertyFilter.js +4 -7
  21. package/dist/lib/modules/poe.ninja/currencyView/CurrencyViewModule.d.ts +4 -4
  22. package/dist/lib/modules/poe.ninja/currencyView/CurrencyViewModule.js +37 -5
  23. package/dist/lib/modules/poe.ninja/currencyView/currencySubModules/CurrencySubModules.d.ts +2 -3
  24. package/dist/lib/modules/poe.ninja/currencyView/currencySubModules/CurrencySubModules.js +15 -7
  25. package/dist/lib/modules/poe.ninja/currencyView/currencySubModules/submodules/CurrencyModule.d.ts +1 -2
  26. package/dist/lib/modules/poe.ninja/currencyView/currencySubModules/submodules/CurrencyModule.js +2 -1
  27. package/dist/lib/modules/poe.ninja/currencyView/currencySubModules/submodules/FragmentModule.d.ts +1 -2
  28. package/dist/lib/modules/poe.ninja/currencyView/currencySubModules/submodules/FragmentModule.js +2 -1
  29. package/dist/lib/modules/poe.ninja/fetch/fetchData.js +17 -2
  30. package/dist/lib/modules/poe.ninja/fetch/merge/mergeData.js +7 -7
  31. package/dist/lib/modules/poe.ninja/fetch/merge/mergeExchangeData.d.ts +10 -0
  32. package/dist/lib/modules/poe.ninja/fetch/merge/mergeExchangeData.js +32 -0
  33. package/dist/lib/modules/poe.ninja/func/getData.js +7 -12
  34. package/dist/lib/modules/poe.ninja/func/getQuickCurrency.js +14 -14
  35. package/dist/lib/modules/poe.ninja/func/urlGenerator.js +18 -2
  36. package/dist/lib/modules/poe.ninja/itemView/ItemViewModule.d.ts +30 -34
  37. package/dist/lib/modules/poe.ninja/itemView/ItemViewModule.js +63 -36
  38. package/dist/lib/modules/poe.ninja/itemView/itemSubmodules/itemSubModules.d.ts +28 -30
  39. package/dist/lib/modules/poe.ninja/itemView/itemSubmodules/itemSubModules.js +41 -61
  40. package/dist/lib/modules/poe.ninja/itemView/itemSubmodules/subModules/AllflameEmberModule.d.ts +1 -2
  41. package/dist/lib/modules/poe.ninja/itemView/itemSubmodules/subModules/AllflameEmberModule.js +3 -2
  42. package/dist/lib/modules/poe.ninja/itemView/itemSubmodules/subModules/BaseTypeModule.d.ts +1 -2
  43. package/dist/lib/modules/poe.ninja/itemView/itemSubmodules/subModules/BaseTypeModule.js +2 -1
  44. package/dist/lib/modules/poe.ninja/itemView/itemSubmodules/subModules/BeastModule.d.ts +1 -2
  45. package/dist/lib/modules/poe.ninja/itemView/itemSubmodules/subModules/BeastModule.js +2 -1
  46. package/dist/lib/modules/poe.ninja/itemView/itemSubmodules/subModules/BlightRavagedMapModule.d.ts +1 -2
  47. package/dist/lib/modules/poe.ninja/itemView/itemSubmodules/subModules/BlightRavagedMapModule.js +2 -1
  48. package/dist/lib/modules/poe.ninja/itemView/itemSubmodules/subModules/BlightedMapModule.d.ts +1 -2
  49. package/dist/lib/modules/poe.ninja/itemView/itemSubmodules/subModules/BlightedMapModule.js +2 -1
  50. package/dist/lib/modules/poe.ninja/itemView/itemSubmodules/subModules/ClusterJewelModule.d.ts +1 -2
  51. package/dist/lib/modules/poe.ninja/itemView/itemSubmodules/subModules/ClusterJewelModule.js +2 -1
  52. package/dist/lib/modules/poe.ninja/itemView/itemSubmodules/subModules/CoffinModule.d.ts +1 -2
  53. package/dist/lib/modules/poe.ninja/itemView/itemSubmodules/subModules/CoffinModule.js +2 -1
  54. package/dist/lib/modules/poe.ninja/itemView/itemSubmodules/subModules/DeliriumOrbsModule.d.ts +1 -2
  55. package/dist/lib/modules/poe.ninja/itemView/itemSubmodules/subModules/DeliriumOrbsModule.js +3 -2
  56. package/dist/lib/modules/poe.ninja/itemView/itemSubmodules/subModules/DivinationCardModule.d.ts +1 -2
  57. package/dist/lib/modules/poe.ninja/itemView/itemSubmodules/subModules/DivinationCardModule.js +3 -2
  58. package/dist/lib/modules/poe.ninja/itemView/itemSubmodules/subModules/EssenceModule.d.ts +1 -2
  59. package/dist/lib/modules/poe.ninja/itemView/itemSubmodules/subModules/EssenceModule.js +3 -2
  60. package/dist/lib/modules/poe.ninja/itemView/itemSubmodules/subModules/FossilModule.d.ts +1 -2
  61. package/dist/lib/modules/poe.ninja/itemView/itemSubmodules/subModules/FossilModule.js +3 -2
  62. package/dist/lib/modules/poe.ninja/itemView/itemSubmodules/subModules/IncubatorModule.d.ts +1 -2
  63. package/dist/lib/modules/poe.ninja/itemView/itemSubmodules/subModules/IncubatorModule.js +2 -1
  64. package/dist/lib/modules/poe.ninja/itemView/itemSubmodules/subModules/InvitationModule.d.ts +1 -2
  65. package/dist/lib/modules/poe.ninja/itemView/itemSubmodules/subModules/InvitationModule.js +2 -1
  66. package/dist/lib/modules/poe.ninja/itemView/itemSubmodules/subModules/MapModule.d.ts +1 -2
  67. package/dist/lib/modules/poe.ninja/itemView/itemSubmodules/subModules/MapModule.js +2 -1
  68. package/dist/lib/modules/poe.ninja/itemView/itemSubmodules/subModules/MemoryModule.d.ts +1 -2
  69. package/dist/lib/modules/poe.ninja/itemView/itemSubmodules/subModules/MemoryModule.js +2 -1
  70. package/dist/lib/modules/poe.ninja/itemView/itemSubmodules/subModules/OilModule.d.ts +1 -2
  71. package/dist/lib/modules/poe.ninja/itemView/itemSubmodules/subModules/OilModule.js +3 -2
  72. package/dist/lib/modules/poe.ninja/itemView/itemSubmodules/subModules/OmenModule.d.ts +1 -2
  73. package/dist/lib/modules/poe.ninja/itemView/itemSubmodules/subModules/OmenModule.js +3 -2
  74. package/dist/lib/modules/poe.ninja/itemView/itemSubmodules/subModules/ResonatorModule.d.ts +1 -2
  75. package/dist/lib/modules/poe.ninja/itemView/itemSubmodules/subModules/ResonatorModule.js +3 -2
  76. package/dist/lib/modules/poe.ninja/itemView/itemSubmodules/subModules/ScarabModule.d.ts +1 -2
  77. package/dist/lib/modules/poe.ninja/itemView/itemSubmodules/subModules/ScarabModule.js +3 -2
  78. package/dist/lib/modules/poe.ninja/itemView/itemSubmodules/subModules/SkillGemModule.d.ts +1 -2
  79. package/dist/lib/modules/poe.ninja/itemView/itemSubmodules/subModules/SkillGemModule.js +2 -1
  80. package/dist/lib/modules/poe.ninja/itemView/itemSubmodules/subModules/UniqueAccessoryModule.d.ts +1 -2
  81. package/dist/lib/modules/poe.ninja/itemView/itemSubmodules/subModules/UniqueAccessoryModule.js +2 -1
  82. package/dist/lib/modules/poe.ninja/itemView/itemSubmodules/subModules/UniqueArmourModule.d.ts +1 -2
  83. package/dist/lib/modules/poe.ninja/itemView/itemSubmodules/subModules/UniqueArmourModule.js +2 -1
  84. package/dist/lib/modules/poe.ninja/itemView/itemSubmodules/subModules/UniqueFlaskModule.d.ts +1 -2
  85. package/dist/lib/modules/poe.ninja/itemView/itemSubmodules/subModules/UniqueFlaskModule.js +2 -1
  86. package/dist/lib/modules/poe.ninja/itemView/itemSubmodules/subModules/UniqueJewelModule.d.ts +1 -2
  87. package/dist/lib/modules/poe.ninja/itemView/itemSubmodules/subModules/UniqueJewelModule.js +2 -1
  88. package/dist/lib/modules/poe.ninja/itemView/itemSubmodules/subModules/UniqueMapModule.d.ts +1 -2
  89. package/dist/lib/modules/poe.ninja/itemView/itemSubmodules/subModules/UniqueMapModule.js +2 -1
  90. package/dist/lib/modules/poe.ninja/itemView/itemSubmodules/subModules/UniqueRelicModule.d.ts +1 -2
  91. package/dist/lib/modules/poe.ninja/itemView/itemSubmodules/subModules/UniqueRelicModule.js +2 -1
  92. package/dist/lib/modules/poe.ninja/itemView/itemSubmodules/subModules/UniqueWeaponModule.d.ts +1 -2
  93. package/dist/lib/modules/poe.ninja/itemView/itemSubmodules/subModules/UniqueWeaponModule.js +2 -1
  94. package/dist/lib/modules/poe.ninja/itemView/itemSubmodules/subModules/VialsModule.d.ts +1 -2
  95. package/dist/lib/modules/poe.ninja/itemView/itemSubmodules/subModules/VialsModule.js +2 -1
  96. package/dist/lib/modules/poe.watch/WatchViewModule.d.ts +22 -23
  97. package/dist/lib/modules/poe.watch/WatchViewModule.js +56 -25
  98. package/dist/lib/modules/poe.watch/allModules/Modules.d.ts +21 -22
  99. package/dist/lib/modules/poe.watch/allModules/Modules.js +34 -45
  100. package/dist/lib/modules/poe.watch/allModules/subModules/AccessoryModule.d.ts +1 -2
  101. package/dist/lib/modules/poe.watch/allModules/subModules/AccessoryModule.js +4 -8
  102. package/dist/lib/modules/poe.watch/allModules/subModules/ArmourModule.d.ts +1 -2
  103. package/dist/lib/modules/poe.watch/allModules/subModules/ArmourModule.js +3 -7
  104. package/dist/lib/modules/poe.watch/allModules/subModules/BaseModule.d.ts +1 -2
  105. package/dist/lib/modules/poe.watch/allModules/subModules/BaseModule.js +3 -7
  106. package/dist/lib/modules/poe.watch/allModules/subModules/BeastModule.d.ts +1 -2
  107. package/dist/lib/modules/poe.watch/allModules/subModules/BeastModule.js +2 -1
  108. package/dist/lib/modules/poe.watch/allModules/subModules/CurrencyModule.d.ts +1 -2
  109. package/dist/lib/modules/poe.watch/allModules/subModules/CurrencyModule.js +2 -1
  110. package/dist/lib/modules/poe.watch/allModules/subModules/DeliriumOrbModule.d.ts +1 -2
  111. package/dist/lib/modules/poe.watch/allModules/subModules/DeliriumOrbModule.js +2 -1
  112. package/dist/lib/modules/poe.watch/allModules/subModules/DivsModule.d.ts +1 -2
  113. package/dist/lib/modules/poe.watch/allModules/subModules/DivsModule.js +2 -1
  114. package/dist/lib/modules/poe.watch/allModules/subModules/EssenceModule.d.ts +2 -3
  115. package/dist/lib/modules/poe.watch/allModules/subModules/EssenceModule.js +4 -3
  116. package/dist/lib/modules/poe.watch/allModules/subModules/FlaskModule.d.ts +1 -2
  117. package/dist/lib/modules/poe.watch/allModules/subModules/FlaskModule.js +2 -1
  118. package/dist/lib/modules/poe.watch/allModules/subModules/FossilModule.d.ts +1 -2
  119. package/dist/lib/modules/poe.watch/allModules/subModules/FossilModule.js +2 -1
  120. package/dist/lib/modules/poe.watch/allModules/subModules/FragmentModule.d.ts +1 -2
  121. package/dist/lib/modules/poe.watch/allModules/subModules/FragmentModule.js +2 -1
  122. package/dist/lib/modules/poe.watch/allModules/subModules/GemModule.d.ts +1 -2
  123. package/dist/lib/modules/poe.watch/allModules/subModules/GemModule.js +3 -7
  124. package/dist/lib/modules/poe.watch/allModules/subModules/InscribedModule.d.ts +1 -2
  125. package/dist/lib/modules/poe.watch/allModules/subModules/InscribedModule.js +2 -1
  126. package/dist/lib/modules/poe.watch/allModules/subModules/InvitationModule.d.ts +1 -2
  127. package/dist/lib/modules/poe.watch/allModules/subModules/InvitationModule.js +2 -1
  128. package/dist/lib/modules/poe.watch/allModules/subModules/JewelModule.d.ts +1 -2
  129. package/dist/lib/modules/poe.watch/allModules/subModules/JewelModule.js +2 -1
  130. package/dist/lib/modules/poe.watch/allModules/subModules/MapModule.d.ts +1 -2
  131. package/dist/lib/modules/poe.watch/allModules/subModules/MapModule.js +2 -1
  132. package/dist/lib/modules/poe.watch/allModules/subModules/OilModule.d.ts +1 -2
  133. package/dist/lib/modules/poe.watch/allModules/subModules/OilModule.js +2 -1
  134. package/dist/lib/modules/poe.watch/allModules/subModules/ScarabModule.d.ts +1 -2
  135. package/dist/lib/modules/poe.watch/allModules/subModules/ScarabModule.js +2 -1
  136. package/dist/lib/modules/poe.watch/allModules/subModules/SextantModule.d.ts +1 -2
  137. package/dist/lib/modules/poe.watch/allModules/subModules/SextantModule.js +2 -1
  138. package/dist/lib/modules/poe.watch/allModules/subModules/UniqueMapsModule.d.ts +1 -2
  139. package/dist/lib/modules/poe.watch/allModules/subModules/UniqueMapsModule.js +2 -1
  140. package/dist/lib/modules/poe.watch/allModules/subModules/WeaponModule.d.ts +1 -2
  141. package/dist/lib/modules/poe.watch/allModules/subModules/WeaponModule.js +3 -7
  142. package/dist/lib/modules/poe.watch/func/WatchUrlGenerator.js +2 -2
  143. package/dist/lib/modules/poe.watch/func/getCategory.js +6 -3
  144. package/dist/lib/modules/poe.watch/func/getData.js +8 -13
  145. package/dist/lib/modules/utils/fetchData/fetchData.js +6 -11
  146. package/package.json +14 -8
  147. package/CODE_OF_CONDUCT.md +0 -77
  148. package/CONTRIBUTING.md +0 -56
  149. package/SECURITY.md +0 -14
  150. package/dist/lib/modules/poe.ninja/itemView/itemSubmodules/subModules/HelmetEnchantModule.d.ts +0 -13
  151. package/dist/lib/modules/poe.ninja/itemView/itemSubmodules/subModules/HelmetEnchantModule.js +0 -21
  152. package/tsconfig.json +0 -12
@@ -5,8 +5,11 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  const axios_1 = __importDefault(require("axios"));
7
7
  const mergeData_1 = __importDefault(require("./merge/mergeData"));
8
+ const mergeExchangeData_1 = __importDefault(require("./merge/mergeExchangeData"));
8
9
  const urlGenerator_1 = __importDefault(require("../func/urlGenerator"));
9
10
  const ApiError_1 = __importDefault(require("../../../errors/ApiError"));
11
+ const CustomError_1 = __importDefault(require("../../../errors/CustomError"));
12
+ const { version: PACKAGE_VERSION } = require("../../../../../package.json");
10
13
  /**
11
14
  * Fetches data from a specified API endpoint, merges relevant data, and returns the result.
12
15
  * @param league The game league for which to fetch data.
@@ -23,6 +26,7 @@ async function fetchData(league, typeName, type) {
23
26
  const response = await axios_1.default.get(url, {
24
27
  headers: {
25
28
  "Accept-Encoding": "identity",
29
+ "User-Agent": `poe-api-manager/${PACKAGE_VERSION} (+https://github.com/ayberkgezer/poe-api-manager)`,
26
30
  },
27
31
  });
28
32
  //typwName is either currencyoverview or itemoverview
@@ -49,6 +53,17 @@ async function fetchData(league, typeName, type) {
49
53
  throw new ApiError_1.default(`Invalid response format from POE Ninja API ItemView Type:${type}`, 400, { league, typeName, type });
50
54
  }
51
55
  }
56
+ else if (typeName == "exchangeoverview") {
57
+ // CAVEAT: unlike the other two endpoints, the exchange endpoint returns
58
+ // HTTP 200 with an empty lines[] for an unknown type instead of a 404
59
+ // (verified live), so a bad type yields [] here rather than an error.
60
+ if (response.data && response.data.lines && response.data.items) {
61
+ return (0, mergeExchangeData_1.default)(response.data.lines, response.data.items, response.data.core);
62
+ }
63
+ else {
64
+ throw new ApiError_1.default(`Invalid response format from POE Ninja API ExchangeView Type:${type}`, 400, { league, typeName, type });
65
+ }
66
+ }
52
67
  else {
53
68
  throw new ApiError_1.default(`Invalid type: ${type}`, 400, {
54
69
  league,
@@ -58,8 +73,8 @@ async function fetchData(league, typeName, type) {
58
73
  }
59
74
  }
60
75
  catch (error) {
61
- // If it's already an ApiError, pass it through
62
- if (error instanceof ApiError_1.default) {
76
+ // If it's already a typed error (ApiError/ValidationError), pass it through
77
+ if (error instanceof CustomError_1.default) {
63
78
  throw error;
64
79
  }
65
80
  // Handle axios errors with more context
@@ -12,17 +12,17 @@ function mergeData(lines, currencyDetails) {
12
12
  const currencyType = line.currencyTypeName;
13
13
  // Find the corresponding currencyDetail based on currencyType
14
14
  const currencyDetail = currencyDetails.find((detail) => detail.name === currencyType);
15
- if (currencyDetail) {
16
- // Merge line and currencyDetail into a new object
17
- const mergedItem = {
15
+ // Merge line and currencyDetail into a new object. Keep unmatched lines
16
+ // as-is instead of dropping them.
17
+ const mergedItem = currencyDetail
18
+ ? {
18
19
  ...line,
19
20
  id: currencyDetail.id,
20
21
  icon: currencyDetail.icon,
21
22
  name: currencyDetail.name,
22
- };
23
- // Add the merged item to the result array
24
- mergedData.push(mergedItem);
25
- }
23
+ }
24
+ : { ...line };
25
+ mergedData.push(mergedItem);
26
26
  });
27
27
  return mergedData;
28
28
  }
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Merges exchange endpoint lines with their join-table items, normalizing the
3
+ * result to the documented ["id","name","icon"] contract.
4
+ * @param lines The exchange lines to be merged.
5
+ * @param items The exchange join-table items (top-level `items[]`, not `core.items`).
6
+ * @param core The exchange `core` object; `core.primary` names the unit of `line.primaryValue`.
7
+ * @returns The merged data.
8
+ */
9
+ declare function mergeExchangeData(lines: any[], items: any[], core: any): any[];
10
+ export default mergeExchangeData;
@@ -0,0 +1,32 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ /**
4
+ * Merges exchange endpoint lines with their join-table items, normalizing the
5
+ * result to the documented ["id","name","icon"] contract.
6
+ * @param lines The exchange lines to be merged.
7
+ * @param items The exchange join-table items (top-level `items[]`, not `core.items`).
8
+ * @param core The exchange `core` object; `core.primary` names the unit of `line.primaryValue`.
9
+ * @returns The merged data.
10
+ */
11
+ function mergeExchangeData(lines, items, core) {
12
+ const mergedData = [];
13
+ lines.forEach((line) => {
14
+ const item = items.find((candidate) => candidate.id === line.id);
15
+ const mergedItem = { ...line };
16
+ if (item) {
17
+ mergedItem.name = item.name;
18
+ mergedItem.icon = `https://web.poecdn.com${item.image}`;
19
+ mergedItem.detailsId = item.detailsId;
20
+ mergedItem.category = item.category;
21
+ }
22
+ if (core?.primary === "chaos") {
23
+ mergedItem.chaosValue = line.primaryValue;
24
+ }
25
+ else {
26
+ delete mergedItem.chaosValue;
27
+ }
28
+ mergedData.push(mergedItem);
29
+ });
30
+ return mergedData;
31
+ }
32
+ exports.default = mergeExchangeData;
@@ -16,19 +16,14 @@ const propertyFilter_1 = __importDefault(require("../../../mainfunctions/propert
16
16
  * @throws If there is an error fetching the data.
17
17
  */
18
18
  async function getData(league, typeName, type, requestedProperties) {
19
- try {
20
- const fetchedData = await (0, fetchData_1.default)(league, typeName, type);
21
- //if requestedProperties use filterProperties to filter fetchedData
22
- if (requestedProperties) {
23
- const result = (0, propertyFilter_1.default)(fetchedData, requestedProperties);
24
- return result;
25
- }
26
- else {
27
- return fetchedData;
28
- }
19
+ const fetchedData = await (0, fetchData_1.default)(league, typeName, type);
20
+ //if requestedProperties use filterProperties to filter fetchedData
21
+ if (requestedProperties) {
22
+ const result = (0, propertyFilter_1.default)(fetchedData, requestedProperties);
23
+ return result;
29
24
  }
30
- catch (error) {
31
- throw new Error(`Type:${type} Error fetching data: ${error.message}`);
25
+ else {
26
+ return fetchedData;
32
27
  }
33
28
  }
34
29
  exports.default = getData;
@@ -4,6 +4,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  const fetchData_1 = __importDefault(require("../fetch/fetchData"));
7
+ const ValidationError_1 = __importDefault(require("../../../errors/ValidationError"));
7
8
  /**
8
9
  * Retrieves quick currency data for a specific currency in a given league and type.
9
10
  * @param league - The league for which to fetch currency data.
@@ -14,21 +15,20 @@ const fetchData_1 = __importDefault(require("../fetch/fetchData"));
14
15
  * @throws Throws an error if the currency data cannot be fetched or if the currency is not found.
15
16
  */
16
17
  async function getQuickCurrency(league, typeName, type, currencyTypeName) {
17
- try {
18
- const fetchedData = await (0, fetchData_1.default)(league, typeName, type);
19
- //find the currencyTypeName in the fetchedData
20
- for (const data of fetchedData) {
21
- if (data.currencyTypeName === currencyTypeName) {
22
- return {
23
- currencyTypeName: data.currencyTypeName,
24
- chaosEquivalent: data.chaosEquivalent,
25
- };
26
- }
18
+ const fetchedData = await (0, fetchData_1.default)(league, typeName, type);
19
+ //find the currencyTypeName in the fetchedData
20
+ for (const data of fetchedData) {
21
+ if (data.currencyTypeName === currencyTypeName) {
22
+ return {
23
+ currencyTypeName: data.currencyTypeName,
24
+ chaosEquivalent: data.chaosEquivalent,
25
+ };
27
26
  }
28
- throw new Error("Currency not found");
29
- }
30
- catch (error) {
31
- throw new Error(`Error fetching currency data: ${error.message}`);
32
27
  }
28
+ throw new ValidationError_1.default(`Currency not found: ${currencyTypeName}`, 404, {
29
+ league,
30
+ type,
31
+ currencyTypeName,
32
+ });
33
33
  }
34
34
  exports.default = getQuickCurrency;
@@ -1,5 +1,18 @@
1
1
  "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
2
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.default = urlGenerator;
7
+ const ValidationError_1 = __importDefault(require("../../../errors/ValidationError"));
8
+ /**
9
+ * Maps the internal typeName to its poe.ninja economy API path.
10
+ */
11
+ const PATHS = {
12
+ currencyoverview: "/poe1/api/economy/stash/current/currency/overview",
13
+ itemoverview: "/poe1/api/economy/stash/current/item/overview",
14
+ exchangeoverview: "/poe1/api/economy/exchange/current/overview",
15
+ };
3
16
  /**
4
17
  * Generates a URL based on league and type. poe.ninja (currencyView) API is used.
5
18
  * @param league The league for which the URL is generated.
@@ -8,6 +21,9 @@ Object.defineProperty(exports, "__esModule", { value: true });
8
21
  * @returns The generated URL.
9
22
  */
10
23
  function urlGenerator(league, typeName, type) {
11
- return `https://poe.ninja/api/data/${typeName}?league=${league}&type=${type}`;
24
+ const path = PATHS[typeName];
25
+ if (!path) {
26
+ throw new ValidationError_1.default(`Invalid typeName: ${typeName}`, 400, { league, typeName, type });
27
+ }
28
+ return `https://poe.ninja${path}?league=${encodeURIComponent(league)}&type=${encodeURIComponent(type)}`;
12
29
  }
13
- exports.default = urlGenerator;
@@ -1,124 +1,120 @@
1
- import { BaseTypeModule, BeastModule, DeliriumOrbsModule, DivinationCardModule, EssenceModule, FossilModule, HelmetEnchantModule, IncubatorModule, MapModule, OilModule, ResonatorModule, ScarabModule, SkillGemModule, UniqueAccessoryModule, UniqueArmourModule, UniqueFlaskModule, UniqueJewelModule, UniqueMapModule, UniqueWeaponModule, VialsModule, OmenModule, MemoryModule, InvitationModule, UniqueRelicsModule, ClusterJewelModule, BlightedMapModule, BlightRavagedMapModule, CoffinModule, AllflameEmberModule } from './itemSubmodules/itemSubModules';
1
+ import * as Modules from "./itemSubmodules/itemSubModules";
2
2
  /**
3
3
  * Represents a module for viewing item-related information in a specific Path of Exile league.
4
4
  */
5
- export declare class ItemViewModule {
5
+ export default class ItemViewModule {
6
6
  /**
7
7
  * Represents a submodule for base type item information.
8
8
  */
9
- baseType: BaseTypeModule;
9
+ baseType: Modules.BaseTypeModule;
10
10
  /**
11
11
  * Represents a submodule for beast item information.
12
12
  */
13
- beast: BeastModule;
13
+ beast: Modules.BeastModule;
14
14
  /**
15
15
  * Represents a submodule for delirium orbs item information.
16
16
  */
17
- deliriumOrbs: DeliriumOrbsModule;
17
+ deliriumOrbs: Modules.DeliriumOrbsModule;
18
18
  /**
19
19
  * Represents a submodule for divination card item information.
20
20
  */
21
- divinationCard: DivinationCardModule;
21
+ divinationCard: Modules.DivinationCardModule;
22
22
  /**
23
23
  * Represents a submodule for essence item information.
24
24
  */
25
- essence: EssenceModule;
25
+ essence: Modules.EssenceModule;
26
26
  /**
27
27
  * Represents a submodule for fossil item information.
28
28
  */
29
- fossil: FossilModule;
30
- /**
31
- * Represents a submodule for helmet enchant item information.
32
- */
33
- helmetEnchant: HelmetEnchantModule;
29
+ fossil: Modules.FossilModule;
34
30
  /**
35
31
  * Represents a submodule for incubator item information.
36
32
  */
37
- incubator: IncubatorModule;
33
+ incubator: Modules.IncubatorModule;
38
34
  /**
39
35
  * Represents a submodule for map item information.
40
36
  */
41
- map: MapModule;
37
+ map: Modules.MapModule;
42
38
  /**
43
39
  * Represents a submodule for oil item information.
44
40
  */
45
- oil: OilModule;
41
+ oil: Modules.OilModule;
46
42
  /**
47
43
  * Represents a submodule for resonator item information.
48
44
  */
49
- resonator: ResonatorModule;
45
+ resonator: Modules.ResonatorModule;
50
46
  /**
51
47
  * Represents a submodule for scarab item information.
52
48
  */
53
- scarab: ScarabModule;
49
+ scarab: Modules.ScarabModule;
54
50
  /**
55
51
  * Represents a submodule for skill gem item information.
56
52
  */
57
- skillGem: SkillGemModule;
53
+ skillGem: Modules.SkillGemModule;
58
54
  /**
59
55
  * Represents a submodule for unique accessory item information.
60
56
  */
61
- uniqueAccessory: UniqueAccessoryModule;
57
+ uniqueAccessory: Modules.UniqueAccessoryModule;
62
58
  /**
63
59
  * Represents a submodule for unique armour item information.
64
60
  */
65
- uniqueArmour: UniqueArmourModule;
61
+ uniqueArmour: Modules.UniqueArmourModule;
66
62
  /**
67
63
  * Represents a submodule for unique flask item information.
68
64
  */
69
- uniqueFlask: UniqueFlaskModule;
65
+ uniqueFlask: Modules.UniqueFlaskModule;
70
66
  /**
71
67
  * Represents a submodule for unique jewel item information.
72
68
  */
73
- uniqueJewel: UniqueJewelModule;
69
+ uniqueJewel: Modules.UniqueJewelModule;
74
70
  /**
75
71
  * Represents a submodule for unique map item information.
76
72
  */
77
- uniqueMap: UniqueMapModule;
73
+ uniqueMap: Modules.UniqueMapModule;
78
74
  /**
79
75
  * Represents a submodule for unique weapon item information.
80
76
  */
81
- uniqueWeapon: UniqueWeaponModule;
77
+ uniqueWeapon: Modules.UniqueWeaponModule;
82
78
  /**
83
79
  * Represents a submodule for vials item information.
84
80
  */
85
- vials: VialsModule;
81
+ vials: Modules.VialsModule;
86
82
  /**
87
83
  * Represents a submodule for omen item information.
88
84
  */
89
- omen: OmenModule;
85
+ omen: Modules.OmenModule;
90
86
  /**
91
87
  * Represents a submodule for memory item information.
92
88
  */
93
- memory: MemoryModule;
89
+ memory: Modules.MemoryModule;
94
90
  /**
95
91
  * Represents a submodule for invitation item information.
96
92
  */
97
- invitation: InvitationModule;
93
+ invitation: Modules.InvitationModule;
98
94
  /**
99
95
  * Represents a submodule for unique relics item information.
100
96
  */
101
- uniqueRelics: UniqueRelicsModule;
97
+ uniqueRelics: Modules.UniqueRelicModule;
102
98
  /**
103
99
  * Represents a submodule for cluster jewel item information.
104
100
  */
105
- clusterJewel: ClusterJewelModule;
101
+ clusterJewel: Modules.ClusterJewelModule;
106
102
  /**
107
103
  * Represents a submodule for blighted map item information.
108
104
  */
109
- blightedMap: BlightedMapModule;
105
+ blightedMap: Modules.BlightedMapModule;
110
106
  /**
111
107
  * Represents a submodule for blight ravaged map item information.
112
108
  */
113
- blightRavagedMap: BlightRavagedMapModule;
109
+ blightRavagedMap: Modules.BlightedRavagedMapModule;
114
110
  /**
115
111
  * Represents a submodule for coffin item information.
116
112
  */
117
- coffin: CoffinModule;
113
+ coffin: Modules.CoffinModule;
118
114
  /**
119
115
  * Creates an instance of AllflameEmberModule.
120
116
  */
121
- allflameEmber: AllflameEmberModule;
117
+ allflameEmber: Modules.AllflameEmberModule;
122
118
  /**
123
119
  * Creates a new instance of ItemViewModule.
124
120
  * @param league - The Path of Exile league for which the item information is retrieved.
@@ -1,7 +1,39 @@
1
1
  "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
2
35
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ItemViewModule = void 0;
4
- const itemSubModules_1 = require("./itemSubmodules/itemSubModules");
36
+ const Modules = __importStar(require("./itemSubmodules/itemSubModules"));
5
37
  /**
6
38
  * Represents a module for viewing item-related information in a specific Path of Exile league.
7
39
  */
@@ -30,10 +62,6 @@ class ItemViewModule {
30
62
  * Represents a submodule for fossil item information.
31
63
  */
32
64
  fossil;
33
- /**
34
- * Represents a submodule for helmet enchant item information.
35
- */
36
- helmetEnchant;
37
65
  /**
38
66
  * Represents a submodule for incubator item information.
39
67
  */
@@ -128,35 +156,34 @@ class ItemViewModule {
128
156
  * @param typeName - The type of item information to retrieve.
129
157
  */
130
158
  constructor(league, typeName) {
131
- this.baseType = new itemSubModules_1.BaseTypeModule(league, typeName);
132
- this.beast = new itemSubModules_1.BeastModule(league, typeName);
133
- this.deliriumOrbs = new itemSubModules_1.DeliriumOrbsModule(league, typeName);
134
- this.divinationCard = new itemSubModules_1.DivinationCardModule(league, typeName);
135
- this.essence = new itemSubModules_1.EssenceModule(league, typeName);
136
- this.fossil = new itemSubModules_1.FossilModule(league, typeName);
137
- this.helmetEnchant = new itemSubModules_1.HelmetEnchantModule(league, typeName);
138
- this.incubator = new itemSubModules_1.IncubatorModule(league, typeName);
139
- this.map = new itemSubModules_1.MapModule(league, typeName);
140
- this.oil = new itemSubModules_1.OilModule(league, typeName);
141
- this.resonator = new itemSubModules_1.ResonatorModule(league, typeName);
142
- this.scarab = new itemSubModules_1.ScarabModule(league, typeName);
143
- this.skillGem = new itemSubModules_1.SkillGemModule(league, typeName);
144
- this.uniqueAccessory = new itemSubModules_1.UniqueAccessoryModule(league, typeName);
145
- this.uniqueArmour = new itemSubModules_1.UniqueArmourModule(league, typeName);
146
- this.uniqueFlask = new itemSubModules_1.UniqueFlaskModule(league, typeName);
147
- this.uniqueJewel = new itemSubModules_1.UniqueJewelModule(league, typeName);
148
- this.uniqueMap = new itemSubModules_1.UniqueMapModule(league, typeName);
149
- this.uniqueWeapon = new itemSubModules_1.UniqueWeaponModule(league, typeName);
150
- this.vials = new itemSubModules_1.VialsModule(league, typeName);
151
- this.omen = new itemSubModules_1.OmenModule(league, typeName);
152
- this.memory = new itemSubModules_1.MemoryModule(league, typeName);
153
- this.invitation = new itemSubModules_1.InvitationModule(league, typeName);
154
- this.uniqueRelics = new itemSubModules_1.UniqueRelicsModule(league, typeName);
155
- this.clusterJewel = new itemSubModules_1.ClusterJewelModule(league, typeName);
156
- this.blightedMap = new itemSubModules_1.BlightedMapModule(league, typeName);
157
- this.blightRavagedMap = new itemSubModules_1.BlightRavagedMapModule(league, typeName);
158
- this.coffin = new itemSubModules_1.CoffinModule(league, typeName);
159
- this.allflameEmber = new itemSubModules_1.AllflameEmberModule(league, typeName);
159
+ this.baseType = new Modules.BaseTypeModule(league, typeName);
160
+ this.beast = new Modules.BeastModule(league, typeName);
161
+ this.deliriumOrbs = new Modules.DeliriumOrbsModule(league, typeName);
162
+ this.divinationCard = new Modules.DivinationCardModule(league, typeName);
163
+ this.essence = new Modules.EssenceModule(league, typeName);
164
+ this.fossil = new Modules.FossilModule(league, typeName);
165
+ this.incubator = new Modules.IncubatorModule(league, typeName);
166
+ this.map = new Modules.MapModule(league, typeName);
167
+ this.oil = new Modules.OilModule(league, typeName);
168
+ this.resonator = new Modules.ResonatorModule(league, typeName);
169
+ this.scarab = new Modules.ScarabModule(league, typeName);
170
+ this.skillGem = new Modules.SkillGemModule(league, typeName);
171
+ this.uniqueAccessory = new Modules.UniqueAccessoryModule(league, typeName);
172
+ this.uniqueArmour = new Modules.UniqueArmourModule(league, typeName);
173
+ this.uniqueFlask = new Modules.UniqueFlaskModule(league, typeName);
174
+ this.uniqueJewel = new Modules.UniqueJewelModule(league, typeName);
175
+ this.uniqueMap = new Modules.UniqueMapModule(league, typeName);
176
+ this.uniqueWeapon = new Modules.UniqueWeaponModule(league, typeName);
177
+ this.vials = new Modules.VialsModule(league, typeName);
178
+ this.omen = new Modules.OmenModule(league, typeName);
179
+ this.memory = new Modules.MemoryModule(league, typeName);
180
+ this.invitation = new Modules.InvitationModule(league, typeName);
181
+ this.uniqueRelics = new Modules.UniqueRelicModule(league, typeName);
182
+ this.clusterJewel = new Modules.ClusterJewelModule(league, typeName);
183
+ this.blightedMap = new Modules.BlightedMapModule(league, typeName);
184
+ this.blightRavagedMap = new Modules.BlightedRavagedMapModule(league, typeName);
185
+ this.coffin = new Modules.CoffinModule(league, typeName);
186
+ this.allflameEmber = new Modules.AllflameEmberModule(league, typeName);
160
187
  }
161
188
  }
162
- exports.ItemViewModule = ItemViewModule;
189
+ exports.default = ItemViewModule;
@@ -1,30 +1,28 @@
1
- import BaseTypeModule from "./subModules/BaseTypeModule";
2
- import BeastModule from "./subModules/BeastModule";
3
- import DeliriumOrbsModule from "./subModules/DeliriumOrbsModule";
4
- import DivinationCardModule from "./subModules/DivinationCardModule";
5
- import EssenceModule from "./subModules/EssenceModule";
6
- import FossilModule from "./subModules/FossilModule";
7
- import HelmetEnchantModule from "./subModules/HelmetEnchantModule";
8
- import IncubatorModule from "./subModules/IncubatorModule";
9
- import MapModule from "./subModules/MapModule";
10
- import OilModule from "./subModules/OilModule";
11
- import ResonatorModule from "./subModules/ResonatorModule";
12
- import ScarabModule from "./subModules/ScarabModule";
13
- import SkillGemModule from "./subModules/SkillGemModule";
14
- import UniqueAccessoryModule from "./subModules/UniqueAccessoryModule";
15
- import UniqueArmourModule from "./subModules/UniqueArmourModule";
16
- import UniqueFlaskModule from "./subModules/UniqueFlaskModule";
17
- import UniqueJewelModule from "./subModules/UniqueJewelModule";
18
- import UniqueMapModule from "./subModules/UniqueMapModule";
19
- import UniqueWeaponModule from "./subModules/UniqueWeaponModule";
20
- import VialsModule from "./subModules/VialsModule";
21
- import OmenModule from "./subModules/OmenModule";
22
- import MemoryModule from "./subModules/MemoryModule";
23
- import InvitationModule from "./subModules/InvitationModule";
24
- import UniqueRelicsModule from "./subModules/UniqueRelicModule";
25
- import ClusterJewelModule from "./subModules/ClusterJewelModule";
26
- import BlightedMapModule from "./subModules/BlightedMapModule";
27
- import BlightRavagedMapModule from "./subModules/BlightRavagedMapModule";
28
- import CoffinModule from "./subModules/CoffinModule";
29
- import AllflameEmberModule from "./subModules/AllflameEmberModule";
30
- export { BaseTypeModule, BeastModule, DeliriumOrbsModule, DivinationCardModule, EssenceModule, FossilModule, HelmetEnchantModule, IncubatorModule, MapModule, OilModule, ResonatorModule, ScarabModule, SkillGemModule, UniqueAccessoryModule, UniqueArmourModule, UniqueFlaskModule, UniqueJewelModule, UniqueMapModule, UniqueWeaponModule, VialsModule, OmenModule, MemoryModule, InvitationModule, UniqueRelicsModule, ClusterJewelModule, BlightedMapModule, BlightRavagedMapModule, CoffinModule, AllflameEmberModule };
1
+ export * from "./subModules/BaseTypeModule";
2
+ export * from "./subModules/BeastModule";
3
+ export * from "./subModules/DeliriumOrbsModule";
4
+ export * from "./subModules/DivinationCardModule";
5
+ export * from "./subModules/EssenceModule";
6
+ export * from "./subModules/FossilModule";
7
+ export * from "./subModules/IncubatorModule";
8
+ export * from "./subModules/MapModule";
9
+ export * from "./subModules/OilModule";
10
+ export * from "./subModules/ResonatorModule";
11
+ export * from "./subModules/ScarabModule";
12
+ export * from "./subModules/SkillGemModule";
13
+ export * from "./subModules/UniqueAccessoryModule";
14
+ export * from "./subModules/UniqueArmourModule";
15
+ export * from "./subModules/UniqueFlaskModule";
16
+ export * from "./subModules/UniqueJewelModule";
17
+ export * from "./subModules/UniqueMapModule";
18
+ export * from "./subModules/UniqueWeaponModule";
19
+ export * from "./subModules/VialsModule";
20
+ export * from "./subModules/OmenModule";
21
+ export * from "./subModules/MemoryModule";
22
+ export * from "./subModules/InvitationModule";
23
+ export * from "./subModules/UniqueRelicModule";
24
+ export * from "./subModules/ClusterJewelModule";
25
+ export * from "./subModules/BlightedMapModule";
26
+ export * from "./subModules/BlightRavagedMapModule";
27
+ export * from "./subModules/CoffinModule";
28
+ export * from "./subModules/AllflameEmberModule";