ps99-api 1.1.0 → 1.2.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 (225) hide show
  1. package/.github/actions/test/action.yml +3 -3
  2. package/.github/workflows/release-on-main.yml +0 -1
  3. package/.github/workflows/test-on-branch.yml +1 -1
  4. package/README.md +5 -6
  5. package/dist/index.d.ts +32 -1
  6. package/dist/index.js +32 -1
  7. package/dist/index.js.map +1 -1
  8. package/dist/ps99-api.d.ts +17 -7
  9. package/dist/ps99-api.js +5 -2
  10. package/dist/ps99-api.js.map +1 -1
  11. package/dist/responses/clan.d.ts +1 -0
  12. package/dist/responses/collection/achievement.d.ts +39 -0
  13. package/dist/responses/{collections.js → collection/achievement.js} +1 -1
  14. package/dist/responses/collection/achievement.js.map +1 -0
  15. package/dist/responses/collection/boost.d.ts +14 -0
  16. package/dist/responses/{collection.js → collection/boost.js} +1 -1
  17. package/dist/responses/collection/boost.js.map +1 -0
  18. package/dist/responses/collection/booth.d.ts +36 -0
  19. package/dist/responses/collection/booth.js +3 -0
  20. package/dist/responses/collection/booth.js.map +1 -0
  21. package/dist/responses/collection/box.d.ts +33 -0
  22. package/dist/responses/collection/box.js +3 -0
  23. package/dist/responses/collection/box.js.map +1 -0
  24. package/dist/responses/collection/buff.d.ts +16 -0
  25. package/dist/responses/collection/buff.js +3 -0
  26. package/dist/responses/collection/buff.js.map +1 -0
  27. package/dist/responses/collection/charm.d.ts +35 -0
  28. package/dist/responses/collection/charm.js +3 -0
  29. package/dist/responses/collection/charm.js.map +1 -0
  30. package/dist/responses/collection/currency.d.ts +51 -0
  31. package/dist/responses/collection/currency.js +3 -0
  32. package/dist/responses/collection/currency.js.map +1 -0
  33. package/dist/responses/collection/egg.d.ts +49 -0
  34. package/dist/responses/collection/egg.js +3 -0
  35. package/dist/responses/collection/egg.js.map +1 -0
  36. package/dist/responses/collection/enchantment.d.ts +38 -0
  37. package/dist/responses/collection/enchantment.js +3 -0
  38. package/dist/responses/collection/enchantment.js.map +1 -0
  39. package/dist/responses/collection/fishing-rod.d.ts +23 -0
  40. package/dist/responses/collection/fishing-rod.js +3 -0
  41. package/dist/responses/collection/fishing-rod.js.map +1 -0
  42. package/dist/responses/collection/fruit.d.ts +34 -0
  43. package/dist/responses/collection/fruit.js +3 -0
  44. package/dist/responses/collection/fruit.js.map +1 -0
  45. package/dist/responses/collection/guild-battle.d.ts +41 -0
  46. package/dist/responses/collection/guild-battle.js +3 -0
  47. package/dist/responses/collection/guild-battle.js.map +1 -0
  48. package/dist/responses/collection/hoverboard.d.ts +47 -0
  49. package/dist/responses/collection/hoverboard.js +3 -0
  50. package/dist/responses/collection/hoverboard.js.map +1 -0
  51. package/dist/responses/collection/index.d.ts +37 -0
  52. package/dist/responses/collection/index.js +3 -0
  53. package/dist/responses/collection/index.js.map +1 -0
  54. package/dist/responses/collection/lootbox.d.ts +27 -0
  55. package/dist/responses/collection/lootbox.js +3 -0
  56. package/dist/responses/collection/lootbox.js.map +1 -0
  57. package/dist/responses/collection/mastery.d.ts +120 -0
  58. package/dist/responses/collection/mastery.js +3 -0
  59. package/dist/responses/collection/mastery.js.map +1 -0
  60. package/dist/responses/collection/merchant.d.ts +21 -0
  61. package/dist/responses/collection/merchant.js +3 -0
  62. package/dist/responses/collection/merchant.js.map +1 -0
  63. package/dist/responses/collection/misc-item.d.ts +30 -0
  64. package/dist/responses/collection/misc-item.js +3 -0
  65. package/dist/responses/collection/misc-item.js.map +1 -0
  66. package/dist/responses/collection/pet.d.ts +112 -0
  67. package/dist/responses/collection/pet.js +3 -0
  68. package/dist/responses/collection/pet.js.map +1 -0
  69. package/dist/responses/collection/potion.d.ts +36 -0
  70. package/dist/responses/collection/potion.js +3 -0
  71. package/dist/responses/collection/potion.js.map +1 -0
  72. package/dist/responses/collection/random-event.d.ts +28 -0
  73. package/dist/responses/collection/random-event.js +3 -0
  74. package/dist/responses/collection/random-event.js.map +1 -0
  75. package/dist/responses/collection/rank.d.ts +51 -0
  76. package/dist/responses/collection/rank.js +3 -0
  77. package/dist/responses/collection/rank.js.map +1 -0
  78. package/dist/responses/collection/rarity.d.ts +19 -0
  79. package/dist/responses/collection/rarity.js +3 -0
  80. package/dist/responses/collection/rarity.js.map +1 -0
  81. package/dist/responses/collection/rebirth.d.ts +26 -0
  82. package/dist/responses/collection/rebirth.js +3 -0
  83. package/dist/responses/collection/rebirth.js.map +1 -0
  84. package/dist/responses/collection/secret-room.d.ts +46 -0
  85. package/dist/responses/collection/secret-room.js +3 -0
  86. package/dist/responses/collection/secret-room.js.map +1 -0
  87. package/dist/responses/collection/seed.d.ts +1 -0
  88. package/dist/responses/collection/seed.js +3 -0
  89. package/dist/responses/collection/seed.js.map +1 -0
  90. package/dist/responses/collection/shovel.d.ts +17 -0
  91. package/dist/responses/collection/shovel.js +3 -0
  92. package/dist/responses/collection/shovel.js.map +1 -0
  93. package/dist/responses/collection/sprinkler.d.ts +30 -0
  94. package/dist/responses/collection/sprinkler.js +3 -0
  95. package/dist/responses/collection/sprinkler.js.map +1 -0
  96. package/dist/responses/collection/ultimate.d.ts +34 -0
  97. package/dist/responses/collection/ultimate.js +3 -0
  98. package/dist/responses/collection/ultimate.js.map +1 -0
  99. package/dist/responses/collection/upgrade.d.ts +58 -0
  100. package/dist/responses/collection/upgrade.js +3 -0
  101. package/dist/responses/collection/upgrade.js.map +1 -0
  102. package/dist/responses/collection/watering-can.d.ts +17 -0
  103. package/dist/responses/collection/watering-can.js +3 -0
  104. package/dist/responses/collection/watering-can.js.map +1 -0
  105. package/dist/responses/collection/world.d.ts +19 -0
  106. package/dist/responses/collection/world.js +3 -0
  107. package/dist/responses/collection/world.js.map +1 -0
  108. package/dist/responses/collection/zone-flag.d.ts +30 -0
  109. package/dist/responses/collection/zone-flag.js +3 -0
  110. package/dist/responses/collection/zone-flag.js.map +1 -0
  111. package/dist/responses/collection/zone.d.ts +181 -0
  112. package/dist/responses/collection/zone.js +3 -0
  113. package/dist/responses/collection/zone.js.map +1 -0
  114. package/dump-result.js +3 -4
  115. package/example-web/react/package-lock.json +4900 -0
  116. package/example-web/react/package.json +28 -0
  117. package/example-web/react/public/index.html +12 -0
  118. package/example-web/react/src/App.css +95 -0
  119. package/example-web/react/src/App.tsx +32 -0
  120. package/example-web/react/src/ClanDetails.css +39 -0
  121. package/example-web/react/src/ClanDetails.tsx +119 -0
  122. package/example-web/react/src/Image.tsx +46 -0
  123. package/example-web/react/src/index.tsx +5 -0
  124. package/example-web/react/tsconfig.json +16 -0
  125. package/example-web/react/webpack.config.js +36 -0
  126. package/example-web/react2/package-lock.json +5211 -0
  127. package/example-web/react2/package.json +29 -0
  128. package/example-web/react2/public/icons/icon-192x192.png +0 -0
  129. package/example-web/react2/public/icons/icon-512x512.png +0 -0
  130. package/example-web/react2/public/index.html +31 -0
  131. package/example-web/react2/public/manifest.json +20 -0
  132. package/example-web/react2/public/service-worker.js +62 -0
  133. package/example-web/react2/src/App.tsx +148 -0
  134. package/example-web/react2/src/components/AchievementsComponent.tsx +37 -0
  135. package/example-web/react2/src/components/BoostsComponent.tsx +38 -0
  136. package/example-web/react2/src/components/BoothsComponent.tsx +38 -0
  137. package/example-web/react2/src/components/BoxesComponent.tsx +38 -0
  138. package/example-web/react2/src/components/BuffsComponent.tsx +37 -0
  139. package/example-web/react2/src/components/CharmsComponent.tsx +46 -0
  140. package/example-web/react2/src/components/CurrencyComponent.tsx +38 -0
  141. package/example-web/react2/src/components/EggsComponent.tsx +39 -0
  142. package/example-web/react2/src/components/EnchantsComponent.tsx +49 -0
  143. package/example-web/react2/src/components/ErrorComponent.tsx +16 -0
  144. package/example-web/react2/src/components/FishingRodsComponent.tsx +38 -0
  145. package/example-web/react2/src/components/FruitsComponent.tsx +44 -0
  146. package/example-web/react2/src/components/GuildBattlesComponent.tsx +46 -0
  147. package/example-web/react2/src/components/HoverboardsComponent.tsx +38 -0
  148. package/example-web/react2/src/components/ImageComponent.tsx +46 -0
  149. package/example-web/react2/src/components/LootboxesComponent.tsx +38 -0
  150. package/example-web/react2/src/components/MasteryComponent.tsx +38 -0
  151. package/example-web/react2/src/components/MerchantsComponent.tsx +34 -0
  152. package/example-web/react2/src/components/MiscItemsComponent.tsx +55 -0
  153. package/example-web/react2/src/components/PetsComponent.tsx +43 -0
  154. package/example-web/react2/src/components/PotionsComponent.tsx +44 -0
  155. package/example-web/react2/src/components/RandomEventsComponent.tsx +39 -0
  156. package/example-web/react2/src/components/RanksComponent.tsx +36 -0
  157. package/example-web/react2/src/components/RarityComponent.tsx +33 -0
  158. package/example-web/react2/src/components/RebirthsComponent.tsx +34 -0
  159. package/example-web/react2/src/components/SecretRoomsComponent.tsx +33 -0
  160. package/example-web/react2/src/components/SeedsComponent.tsx +39 -0
  161. package/example-web/react2/src/components/ShovelsComponent.tsx +38 -0
  162. package/example-web/react2/src/components/SprinklersComponent.tsx +38 -0
  163. package/example-web/react2/src/components/UltimatesComponent.tsx +39 -0
  164. package/example-web/react2/src/components/UpgradesComponent.tsx +49 -0
  165. package/example-web/react2/src/components/WateringCansComponent.tsx +40 -0
  166. package/example-web/react2/src/components/WorldsComponent.tsx +34 -0
  167. package/example-web/react2/src/components/ZoneFlagsComponent.tsx +38 -0
  168. package/example-web/react2/src/components/ZonesComponent.tsx +34 -0
  169. package/example-web/react2/src/index.tsx +5 -0
  170. package/example-web/react2/tsconfig.json +16 -0
  171. package/example-web/react2/webpack.config.js +42 -0
  172. package/jest.config.js +2 -2
  173. package/package.json +13 -8
  174. package/src/__tests__/__snapshots__/ps99-api-changes.ts.snap +90437 -0
  175. package/src/__tests__/ps99-api-changes.ts +8 -10
  176. package/src/__tests__/ps99-api-live.ts +35 -36
  177. package/src/__tests__/ps99-api.ts +2 -2
  178. package/src/index.ts +32 -1
  179. package/src/ps99-api.ts +19 -10
  180. package/src/responses/activeClanBattle.ts +30 -30
  181. package/src/responses/clan.ts +70 -70
  182. package/src/responses/clans.ts +9 -9
  183. package/src/responses/collection/achievement.ts +39 -0
  184. package/src/responses/collection/boost.ts +14 -0
  185. package/src/responses/collection/booth.ts +36 -0
  186. package/src/responses/collection/box.ts +33 -0
  187. package/src/responses/collection/buff.ts +16 -0
  188. package/src/responses/collection/charm.ts +38 -0
  189. package/src/responses/collection/currency.ts +56 -0
  190. package/src/responses/collection/egg.ts +52 -0
  191. package/src/responses/collection/enchantment.ts +41 -0
  192. package/src/responses/collection/fishing-rod.ts +24 -0
  193. package/src/responses/collection/fruit.ts +37 -0
  194. package/src/responses/collection/guild-battle.ts +48 -0
  195. package/src/responses/collection/hoverboard.ts +49 -0
  196. package/src/responses/collection/index.ts +74 -0
  197. package/src/responses/collection/lootbox.ts +29 -0
  198. package/src/responses/collection/mastery.ts +125 -0
  199. package/src/responses/collection/merchant.ts +22 -0
  200. package/src/responses/collection/misc-item.ts +32 -0
  201. package/src/responses/collection/pet.ts +121 -0
  202. package/src/responses/collection/potion.ts +39 -0
  203. package/src/responses/collection/random-event.ts +30 -0
  204. package/src/responses/collection/rank.ts +58 -0
  205. package/src/responses/collection/rarity.ts +20 -0
  206. package/src/responses/collection/rebirth.ts +28 -0
  207. package/src/responses/collection/secret-room.ts +50 -0
  208. package/src/responses/collection/seed.ts +0 -0
  209. package/src/responses/collection/shovel.ts +18 -0
  210. package/src/responses/collection/sprinkler.ts +32 -0
  211. package/src/responses/collection/ultimate.ts +36 -0
  212. package/src/responses/collection/upgrade.ts +64 -0
  213. package/src/responses/collection/watering-can.ts +18 -0
  214. package/src/responses/collection/world.ts +20 -0
  215. package/src/responses/collection/zone-flag.ts +32 -0
  216. package/src/responses/collection/zone.ts +208 -0
  217. package/src/responses/exists.ts +8 -8
  218. package/src/responses/rap.ts +9 -9
  219. package/tsconfig.json +2 -2
  220. package/dist/responses/collection.d.ts +0 -1357
  221. package/dist/responses/collection.js.map +0 -1
  222. package/dist/responses/collections.d.ts +0 -5
  223. package/dist/responses/collections.js.map +0 -1
  224. package/src/responses/collection.ts +0 -1543
  225. package/src/responses/collections.ts +0 -3
@@ -0,0 +1,39 @@
1
+ import React, { useEffect, useState } from "react";
2
+ import { PetSimulator99API, SeedData } from "ps99-api";
3
+ import ImageComponent from "./ImageComponent";
4
+
5
+ const SeedsComponent: React.FC = () => {
6
+ const [seeds, setSeeds] = useState<SeedData[]>([]);
7
+
8
+ useEffect(() => {
9
+ const fetchSeeds = async () => {
10
+ const api = new PetSimulator99API();
11
+ const response = await api.getCollection("Seeds");
12
+ if (response.status === "ok") {
13
+ setSeeds(response.data);
14
+ }
15
+ };
16
+ fetchSeeds();
17
+ }, []);
18
+
19
+ return (
20
+ <div>
21
+ <h2>Seeds</h2>
22
+ <ul>
23
+ {seeds.map((seed, index) => (
24
+ <li key={index}>
25
+ <ImageComponent
26
+ src={seed.configData.Icon}
27
+ alt={seed.configData.DisplayName}
28
+ />
29
+ <span>{seed.configData.DisplayName}</span>
30
+ <span>{seed.configData.Desc}</span>
31
+ <span>Grow Time: {seed.configData.GrowTime}</span>
32
+ </li>
33
+ ))}
34
+ </ul>
35
+ </div>
36
+ );
37
+ };
38
+
39
+ export default SeedsComponent;
@@ -0,0 +1,38 @@
1
+ import React, { useEffect, useState } from "react";
2
+ import { PetSimulator99API, ShovelData } from "ps99-api";
3
+ import ImageComponent from "./ImageComponent";
4
+
5
+ const ShovelsComponent: React.FC = () => {
6
+ const [shovels, setShovels] = useState<ShovelData[]>([]);
7
+
8
+ useEffect(() => {
9
+ const fetchShovels = async () => {
10
+ const api = new PetSimulator99API();
11
+ const response = await api.getCollection("Shovels");
12
+ if (response.status === "ok") {
13
+ setShovels(response.data);
14
+ }
15
+ };
16
+ fetchShovels();
17
+ }, []);
18
+
19
+ return (
20
+ <div>
21
+ <h2>Shovels</h2>
22
+ <ul>
23
+ {shovels.map((shovel, index) => (
24
+ <li key={index}>
25
+ <ImageComponent
26
+ src={shovel.configData.Icon}
27
+ alt={shovel.configData.DisplayName}
28
+ />
29
+ <span>{shovel.configData.DisplayName}</span>
30
+ <span>{shovel.configData.Desc}</span>
31
+ </li>
32
+ ))}
33
+ </ul>
34
+ </div>
35
+ );
36
+ };
37
+
38
+ export default ShovelsComponent;
@@ -0,0 +1,38 @@
1
+ import React, { useEffect, useState } from "react";
2
+ import { PetSimulator99API, SprinklerData } from "ps99-api";
3
+ import ImageComponent from "./ImageComponent";
4
+
5
+ const SprinklersComponent: React.FC = () => {
6
+ const [sprinklers, setSprinklers] = useState<SprinklerData[]>([]);
7
+
8
+ useEffect(() => {
9
+ const fetchSprinklers = async () => {
10
+ const api = new PetSimulator99API();
11
+ const response = await api.getCollection("Sprinklers");
12
+ if (response.status === "ok") {
13
+ setSprinklers(response.data);
14
+ }
15
+ };
16
+ fetchSprinklers();
17
+ }, []);
18
+
19
+ return (
20
+ <div>
21
+ <h2>Sprinklers</h2>
22
+ <ul>
23
+ {sprinklers.map((sprinkler, index) => (
24
+ <li key={index}>
25
+ <ImageComponent
26
+ src={sprinkler.configData.Icon}
27
+ alt={sprinkler.configData.Name}
28
+ />
29
+ <span>{sprinkler.configData.Name}</span>
30
+ <span>Duration: {sprinkler.configData.Duration}</span>
31
+ </li>
32
+ ))}
33
+ </ul>
34
+ </div>
35
+ );
36
+ };
37
+
38
+ export default SprinklersComponent;
@@ -0,0 +1,39 @@
1
+ import React, { useEffect, useState } from "react";
2
+ import { PetSimulator99API, UltimateData } from "ps99-api";
3
+ import ImageComponent from "./ImageComponent";
4
+
5
+ const UltimatesComponent: React.FC = () => {
6
+ const [ultimates, setUltimates] = useState<UltimateData[]>([]);
7
+
8
+ useEffect(() => {
9
+ const fetchUltimates = async () => {
10
+ const api = new PetSimulator99API();
11
+ const response = await api.getCollection("Ultimates");
12
+ if (response.status === "ok") {
13
+ setUltimates(response.data);
14
+ }
15
+ };
16
+ fetchUltimates();
17
+ }, []);
18
+
19
+ return (
20
+ <div>
21
+ <h2>Ultimates</h2>
22
+ <ul>
23
+ {ultimates.map((ultimate, index) => (
24
+ <li key={index}>
25
+ <ImageComponent
26
+ src={ultimate.configData.Icon}
27
+ alt={ultimate.configData.DisplayName}
28
+ />
29
+ <span>{ultimate.configData.DisplayName}</span>
30
+ <span>Max Tier: {ultimate.configData.MaxTier}</span>
31
+ <span>Cooldown: {ultimate.configData.Cooldown}</span>
32
+ </li>
33
+ ))}
34
+ </ul>
35
+ </div>
36
+ );
37
+ };
38
+
39
+ export default UltimatesComponent;
@@ -0,0 +1,49 @@
1
+ import React, { useEffect, useState } from "react";
2
+ import { PetSimulator99API, UpgradeData } from "ps99-api";
3
+ import ImageComponent from "./ImageComponent";
4
+
5
+ const UpgradesComponent: React.FC = () => {
6
+ const [upgrades, setUpgrades] = useState<UpgradeData[]>([]);
7
+
8
+ useEffect(() => {
9
+ const fetchUpgrades = async () => {
10
+ const api = new PetSimulator99API();
11
+ const response = await api.getCollection("Upgrades");
12
+ if (response.status === "ok") {
13
+ setUpgrades(response.data);
14
+ }
15
+ };
16
+ fetchUpgrades();
17
+ }, []);
18
+
19
+ return (
20
+ <div>
21
+ <h2>Upgrades</h2>
22
+ <ul>
23
+ {upgrades.map((upgrade, index) => (
24
+ <li key={index}>
25
+ <ImageComponent
26
+ src={upgrade.configData.Icon}
27
+ alt={`Upgrade ${index + 1}`}
28
+ />
29
+ <span>Reward: {upgrade.configData.RewardText}</span>
30
+ <div>Tier Costs: {upgrade.configData.TierCosts.join(", ")}</div>
31
+ {upgrade.configData.TierCurrencies.map(
32
+ (currency, currencyIndex) => (
33
+ <div key={currencyIndex}>
34
+ <span>Tier Currency {currencyIndex + 1}:</span>
35
+ <span>{currency.DisplayName}</span>
36
+ <span>Max Amount: {currency.MaxAmount}</span>
37
+ <span>Tradable: {currency.Tradable ? "Yes" : "No"}</span>
38
+ </div>
39
+ ),
40
+ )}
41
+ <div>Tier Powers: {upgrade.configData.TierPowers.join(", ")}</div>
42
+ </li>
43
+ ))}
44
+ </ul>
45
+ </div>
46
+ );
47
+ };
48
+
49
+ export default UpgradesComponent;
@@ -0,0 +1,40 @@
1
+ import React, { useEffect, useState } from "react";
2
+ import { PetSimulator99API, WateringCanData } from "ps99-api";
3
+ import ImageComponent from "./ImageComponent";
4
+
5
+ const WateringCansComponent: React.FC = () => {
6
+ const [wateringCans, setWateringCans] = useState<WateringCanData[]>([]);
7
+
8
+ useEffect(() => {
9
+ const fetchWateringCans = async () => {
10
+ const api = new PetSimulator99API();
11
+ const response = await api.getCollection("WateringCans");
12
+ if (response.status === "ok") {
13
+ setWateringCans(response.data);
14
+ }
15
+ };
16
+ fetchWateringCans();
17
+ }, []);
18
+
19
+ return (
20
+ <div>
21
+ <h2>Watering Cans</h2>
22
+ <ul>
23
+ {wateringCans.map((can, index) => (
24
+ <li key={index}>
25
+ <ImageComponent
26
+ src={can.configData.Icon}
27
+ alt={can.configData.DisplayName}
28
+ />
29
+ <span>{can.configData.DisplayName}</span>
30
+ <span>
31
+ Plant Time Multiplier: {can.configData.PlantTimeMultiplier}
32
+ </span>
33
+ </li>
34
+ ))}
35
+ </ul>
36
+ </div>
37
+ );
38
+ };
39
+
40
+ export default WateringCansComponent;
@@ -0,0 +1,34 @@
1
+ import React, { useEffect, useState } from "react";
2
+ import { PetSimulator99API, WorldData } from "ps99-api";
3
+
4
+ const WorldsComponent: React.FC = () => {
5
+ const [worlds, setWorlds] = useState<WorldData[]>([]);
6
+
7
+ useEffect(() => {
8
+ const fetchWorlds = async () => {
9
+ const api = new PetSimulator99API();
10
+ const response = await api.getCollection("Worlds");
11
+ if (response.status === "ok") {
12
+ setWorlds(response.data);
13
+ }
14
+ };
15
+ fetchWorlds();
16
+ }, []);
17
+
18
+ return (
19
+ <div>
20
+ <h2>Worlds</h2>
21
+ <ul>
22
+ {worlds.map((world, index) => (
23
+ <li key={index}>
24
+ <span>{world.configData.MapName}</span>
25
+ <span>World Number: {world.configData.WorldNumber}</span>
26
+ <span>Place ID: {world.configData.PlaceId}</span>
27
+ </li>
28
+ ))}
29
+ </ul>
30
+ </div>
31
+ );
32
+ };
33
+
34
+ export default WorldsComponent;
@@ -0,0 +1,38 @@
1
+ import React, { useEffect, useState } from "react";
2
+ import { PetSimulator99API, ZoneFlagData } from "ps99-api";
3
+ import ImageComponent from "./ImageComponent";
4
+
5
+ const ZoneFlagsComponent: React.FC = () => {
6
+ const [zoneFlags, setZoneFlags] = useState<ZoneFlagData[]>([]);
7
+
8
+ useEffect(() => {
9
+ const fetchZoneFlags = async () => {
10
+ const api = new PetSimulator99API();
11
+ const response = await api.getCollection("ZoneFlags");
12
+ if (response.status === "ok") {
13
+ setZoneFlags(response.data);
14
+ }
15
+ };
16
+ fetchZoneFlags();
17
+ }, []);
18
+
19
+ return (
20
+ <div>
21
+ <h2>Zone Flags</h2>
22
+ <ul>
23
+ {zoneFlags.map((flag, index) => (
24
+ <li key={index}>
25
+ <ImageComponent
26
+ src={flag.configData.Icon}
27
+ alt={flag.configData.Name}
28
+ />
29
+ <span>{flag.configData.Name}</span>
30
+ <span>Duration: {flag.configData.Duration}</span>
31
+ </li>
32
+ ))}
33
+ </ul>
34
+ </div>
35
+ );
36
+ };
37
+
38
+ export default ZoneFlagsComponent;
@@ -0,0 +1,34 @@
1
+ import React, { useEffect, useState } from "react";
2
+ import { PetSimulator99API, ZoneData } from "ps99-api";
3
+
4
+ const ZonesComponent: React.FC = () => {
5
+ const [zones, setZones] = useState<ZoneData[]>([]);
6
+
7
+ useEffect(() => {
8
+ const fetchZones = async () => {
9
+ const api = new PetSimulator99API();
10
+ const response = await api.getCollection("Zones");
11
+ if (response.status === "ok") {
12
+ setZones(response.data);
13
+ }
14
+ };
15
+ fetchZones();
16
+ }, []);
17
+
18
+ return (
19
+ <div>
20
+ <h2>Zones</h2>
21
+ <ul>
22
+ {zones.map((zone, index) => (
23
+ <li key={index}>
24
+ <span>{zone.configData.ZoneName}</span>
25
+ <span>World Number: {zone.configData.WorldNumber}</span>
26
+ <span>Zone Number: {zone.configData.ZoneNumber}</span>
27
+ </li>
28
+ ))}
29
+ </ul>
30
+ </div>
31
+ );
32
+ };
33
+
34
+ export default ZonesComponent;
@@ -0,0 +1,5 @@
1
+ import React from "react";
2
+ import ReactDOM from "react-dom";
3
+ import App from "./App";
4
+
5
+ ReactDOM.render(<App />, document.getElementById("root"));
@@ -0,0 +1,16 @@
1
+ {
2
+ "compilerOptions": {
3
+ "outDir": "./dist/",
4
+ "sourceMap": true,
5
+ "noImplicitAny": true,
6
+ "module": "es6",
7
+ "target": "es5",
8
+ "jsx": "react",
9
+ "allowJs": true,
10
+ "moduleResolution": "node",
11
+ "allowSyntheticDefaultImports": true,
12
+ "paths": {
13
+ "ps99-api": ["../../src/"]
14
+ }
15
+ }
16
+ }
@@ -0,0 +1,42 @@
1
+ const path = require("path");
2
+ const CopyWebpackPlugin = require("copy-webpack-plugin");
3
+
4
+ module.exports = {
5
+ entry: "./src/index.tsx",
6
+ devtool: "inline-source-map",
7
+ module: {
8
+ rules: [
9
+ {
10
+ test: /\.tsx?$/,
11
+ use: ["ts-loader"],
12
+ exclude: /node_modules/,
13
+ },
14
+ {
15
+ test: /\.css$/i,
16
+ use: ["css-loader"],
17
+ },
18
+ ],
19
+ },
20
+ resolve: {
21
+ extensions: [".tsx", ".ts", ".js"],
22
+ alias: {
23
+ "ps99-api": path.resolve(__dirname, "../../src"),
24
+ },
25
+ },
26
+ output: {
27
+ filename: "bundle.js",
28
+ path: path.resolve(__dirname, "dist"),
29
+ },
30
+ plugins: [
31
+ new CopyWebpackPlugin({
32
+ patterns: [{ from: "public", to: "." }],
33
+ }),
34
+ ],
35
+ devServer: {
36
+ static: {
37
+ directory: path.join(__dirname, "public"),
38
+ },
39
+ compress: true,
40
+ port: 9000,
41
+ },
42
+ };
package/jest.config.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /** @type {import('ts-jest').JestConfigWithTsJest} */
2
2
  module.exports = {
3
- preset: 'ts-jest',
4
- testEnvironment: 'node',
3
+ preset: "ts-jest",
4
+ testEnvironment: "node",
5
5
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ps99-api",
3
- "version": "1.1.0",
3
+ "version": "1.2.0",
4
4
  "description": "Pet Simulator Public API wrapper written in Typescript.",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -8,9 +8,12 @@
8
8
  "license": "MIT",
9
9
  "scripts": {
10
10
  "test": "npx jest",
11
+ "test:snapshot": "npx jest --updateSnapshot",
11
12
  "build": "npx tsc",
13
+ "build:src": "esbuild src/index.ts --bundle --minify --sourcemap --outfile=dist/index.js",
12
14
  "semantic-release": "npx semantic-release",
13
- "format": "npx prettier --write \"src/**/*.ts\""
15
+ "format": "npx prettier --write .",
16
+ "build:types": "npx dets src/index.ts --files src/**/*.ts --out dist/index.d.ts"
14
17
  },
15
18
  "keywords": [
16
19
  "pet simulator 99"
@@ -18,18 +21,20 @@
18
21
  "devDependencies": {
19
22
  "@jest/globals": "^29.7.0",
20
23
  "@semantic-release/git": "^10.0.1",
21
- "@tsconfig/node20": "^20.1.3",
24
+ "@tsconfig/node20": "^20.1.4",
22
25
  "@types/jest": "^29.5.12",
23
- "@types/node": "^20.0.0",
26
+ "@types/node": "^20.14.2",
24
27
  "cz-conventional-changelog": "^3.3.0",
28
+ "dets": "^0.16.0",
29
+ "esbuild": "0.21.5",
25
30
  "jest": "^29.7.0",
26
- "prettier": "^3.2.5",
27
- "semantic-release": "^23.0.6",
31
+ "prettier": "^3.3.2",
32
+ "semantic-release": "^24.0.0",
28
33
  "ts-jest": "^29.1.2",
29
- "typescript": "^5.4.3"
34
+ "typescript": "^5.4.5"
30
35
  },
31
36
  "dependencies": {
32
- "axios": "^1.6.8"
37
+ "axios": "^1.7.2"
33
38
  },
34
39
  "repository": {
35
40
  "type": "git",