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.
- package/.github/actions/test/action.yml +3 -3
- package/.github/workflows/release-on-main.yml +0 -1
- package/.github/workflows/test-on-branch.yml +1 -1
- package/README.md +5 -6
- package/dist/index.d.ts +32 -1
- package/dist/index.js +32 -1
- package/dist/index.js.map +1 -1
- package/dist/ps99-api.d.ts +17 -7
- package/dist/ps99-api.js +5 -2
- package/dist/ps99-api.js.map +1 -1
- package/dist/responses/clan.d.ts +1 -0
- package/dist/responses/collection/achievement.d.ts +39 -0
- package/dist/responses/{collections.js → collection/achievement.js} +1 -1
- package/dist/responses/collection/achievement.js.map +1 -0
- package/dist/responses/collection/boost.d.ts +14 -0
- package/dist/responses/{collection.js → collection/boost.js} +1 -1
- package/dist/responses/collection/boost.js.map +1 -0
- package/dist/responses/collection/booth.d.ts +36 -0
- package/dist/responses/collection/booth.js +3 -0
- package/dist/responses/collection/booth.js.map +1 -0
- package/dist/responses/collection/box.d.ts +33 -0
- package/dist/responses/collection/box.js +3 -0
- package/dist/responses/collection/box.js.map +1 -0
- package/dist/responses/collection/buff.d.ts +16 -0
- package/dist/responses/collection/buff.js +3 -0
- package/dist/responses/collection/buff.js.map +1 -0
- package/dist/responses/collection/charm.d.ts +35 -0
- package/dist/responses/collection/charm.js +3 -0
- package/dist/responses/collection/charm.js.map +1 -0
- package/dist/responses/collection/currency.d.ts +51 -0
- package/dist/responses/collection/currency.js +3 -0
- package/dist/responses/collection/currency.js.map +1 -0
- package/dist/responses/collection/egg.d.ts +49 -0
- package/dist/responses/collection/egg.js +3 -0
- package/dist/responses/collection/egg.js.map +1 -0
- package/dist/responses/collection/enchantment.d.ts +38 -0
- package/dist/responses/collection/enchantment.js +3 -0
- package/dist/responses/collection/enchantment.js.map +1 -0
- package/dist/responses/collection/fishing-rod.d.ts +23 -0
- package/dist/responses/collection/fishing-rod.js +3 -0
- package/dist/responses/collection/fishing-rod.js.map +1 -0
- package/dist/responses/collection/fruit.d.ts +34 -0
- package/dist/responses/collection/fruit.js +3 -0
- package/dist/responses/collection/fruit.js.map +1 -0
- package/dist/responses/collection/guild-battle.d.ts +41 -0
- package/dist/responses/collection/guild-battle.js +3 -0
- package/dist/responses/collection/guild-battle.js.map +1 -0
- package/dist/responses/collection/hoverboard.d.ts +47 -0
- package/dist/responses/collection/hoverboard.js +3 -0
- package/dist/responses/collection/hoverboard.js.map +1 -0
- package/dist/responses/collection/index.d.ts +37 -0
- package/dist/responses/collection/index.js +3 -0
- package/dist/responses/collection/index.js.map +1 -0
- package/dist/responses/collection/lootbox.d.ts +27 -0
- package/dist/responses/collection/lootbox.js +3 -0
- package/dist/responses/collection/lootbox.js.map +1 -0
- package/dist/responses/collection/mastery.d.ts +120 -0
- package/dist/responses/collection/mastery.js +3 -0
- package/dist/responses/collection/mastery.js.map +1 -0
- package/dist/responses/collection/merchant.d.ts +21 -0
- package/dist/responses/collection/merchant.js +3 -0
- package/dist/responses/collection/merchant.js.map +1 -0
- package/dist/responses/collection/misc-item.d.ts +30 -0
- package/dist/responses/collection/misc-item.js +3 -0
- package/dist/responses/collection/misc-item.js.map +1 -0
- package/dist/responses/collection/pet.d.ts +112 -0
- package/dist/responses/collection/pet.js +3 -0
- package/dist/responses/collection/pet.js.map +1 -0
- package/dist/responses/collection/potion.d.ts +36 -0
- package/dist/responses/collection/potion.js +3 -0
- package/dist/responses/collection/potion.js.map +1 -0
- package/dist/responses/collection/random-event.d.ts +28 -0
- package/dist/responses/collection/random-event.js +3 -0
- package/dist/responses/collection/random-event.js.map +1 -0
- package/dist/responses/collection/rank.d.ts +51 -0
- package/dist/responses/collection/rank.js +3 -0
- package/dist/responses/collection/rank.js.map +1 -0
- package/dist/responses/collection/rarity.d.ts +19 -0
- package/dist/responses/collection/rarity.js +3 -0
- package/dist/responses/collection/rarity.js.map +1 -0
- package/dist/responses/collection/rebirth.d.ts +26 -0
- package/dist/responses/collection/rebirth.js +3 -0
- package/dist/responses/collection/rebirth.js.map +1 -0
- package/dist/responses/collection/secret-room.d.ts +46 -0
- package/dist/responses/collection/secret-room.js +3 -0
- package/dist/responses/collection/secret-room.js.map +1 -0
- package/dist/responses/collection/seed.d.ts +1 -0
- package/dist/responses/collection/seed.js +3 -0
- package/dist/responses/collection/seed.js.map +1 -0
- package/dist/responses/collection/shovel.d.ts +17 -0
- package/dist/responses/collection/shovel.js +3 -0
- package/dist/responses/collection/shovel.js.map +1 -0
- package/dist/responses/collection/sprinkler.d.ts +30 -0
- package/dist/responses/collection/sprinkler.js +3 -0
- package/dist/responses/collection/sprinkler.js.map +1 -0
- package/dist/responses/collection/ultimate.d.ts +34 -0
- package/dist/responses/collection/ultimate.js +3 -0
- package/dist/responses/collection/ultimate.js.map +1 -0
- package/dist/responses/collection/upgrade.d.ts +58 -0
- package/dist/responses/collection/upgrade.js +3 -0
- package/dist/responses/collection/upgrade.js.map +1 -0
- package/dist/responses/collection/watering-can.d.ts +17 -0
- package/dist/responses/collection/watering-can.js +3 -0
- package/dist/responses/collection/watering-can.js.map +1 -0
- package/dist/responses/collection/world.d.ts +19 -0
- package/dist/responses/collection/world.js +3 -0
- package/dist/responses/collection/world.js.map +1 -0
- package/dist/responses/collection/zone-flag.d.ts +30 -0
- package/dist/responses/collection/zone-flag.js +3 -0
- package/dist/responses/collection/zone-flag.js.map +1 -0
- package/dist/responses/collection/zone.d.ts +181 -0
- package/dist/responses/collection/zone.js +3 -0
- package/dist/responses/collection/zone.js.map +1 -0
- package/dump-result.js +3 -4
- package/example-web/react/package-lock.json +4900 -0
- package/example-web/react/package.json +28 -0
- package/example-web/react/public/index.html +12 -0
- package/example-web/react/src/App.css +95 -0
- package/example-web/react/src/App.tsx +32 -0
- package/example-web/react/src/ClanDetails.css +39 -0
- package/example-web/react/src/ClanDetails.tsx +119 -0
- package/example-web/react/src/Image.tsx +46 -0
- package/example-web/react/src/index.tsx +5 -0
- package/example-web/react/tsconfig.json +16 -0
- package/example-web/react/webpack.config.js +36 -0
- package/example-web/react2/package-lock.json +5211 -0
- package/example-web/react2/package.json +29 -0
- package/example-web/react2/public/icons/icon-192x192.png +0 -0
- package/example-web/react2/public/icons/icon-512x512.png +0 -0
- package/example-web/react2/public/index.html +31 -0
- package/example-web/react2/public/manifest.json +20 -0
- package/example-web/react2/public/service-worker.js +62 -0
- package/example-web/react2/src/App.tsx +148 -0
- package/example-web/react2/src/components/AchievementsComponent.tsx +37 -0
- package/example-web/react2/src/components/BoostsComponent.tsx +38 -0
- package/example-web/react2/src/components/BoothsComponent.tsx +38 -0
- package/example-web/react2/src/components/BoxesComponent.tsx +38 -0
- package/example-web/react2/src/components/BuffsComponent.tsx +37 -0
- package/example-web/react2/src/components/CharmsComponent.tsx +46 -0
- package/example-web/react2/src/components/CurrencyComponent.tsx +38 -0
- package/example-web/react2/src/components/EggsComponent.tsx +39 -0
- package/example-web/react2/src/components/EnchantsComponent.tsx +49 -0
- package/example-web/react2/src/components/ErrorComponent.tsx +16 -0
- package/example-web/react2/src/components/FishingRodsComponent.tsx +38 -0
- package/example-web/react2/src/components/FruitsComponent.tsx +44 -0
- package/example-web/react2/src/components/GuildBattlesComponent.tsx +46 -0
- package/example-web/react2/src/components/HoverboardsComponent.tsx +38 -0
- package/example-web/react2/src/components/ImageComponent.tsx +46 -0
- package/example-web/react2/src/components/LootboxesComponent.tsx +38 -0
- package/example-web/react2/src/components/MasteryComponent.tsx +38 -0
- package/example-web/react2/src/components/MerchantsComponent.tsx +34 -0
- package/example-web/react2/src/components/MiscItemsComponent.tsx +55 -0
- package/example-web/react2/src/components/PetsComponent.tsx +43 -0
- package/example-web/react2/src/components/PotionsComponent.tsx +44 -0
- package/example-web/react2/src/components/RandomEventsComponent.tsx +39 -0
- package/example-web/react2/src/components/RanksComponent.tsx +36 -0
- package/example-web/react2/src/components/RarityComponent.tsx +33 -0
- package/example-web/react2/src/components/RebirthsComponent.tsx +34 -0
- package/example-web/react2/src/components/SecretRoomsComponent.tsx +33 -0
- package/example-web/react2/src/components/SeedsComponent.tsx +39 -0
- package/example-web/react2/src/components/ShovelsComponent.tsx +38 -0
- package/example-web/react2/src/components/SprinklersComponent.tsx +38 -0
- package/example-web/react2/src/components/UltimatesComponent.tsx +39 -0
- package/example-web/react2/src/components/UpgradesComponent.tsx +49 -0
- package/example-web/react2/src/components/WateringCansComponent.tsx +40 -0
- package/example-web/react2/src/components/WorldsComponent.tsx +34 -0
- package/example-web/react2/src/components/ZoneFlagsComponent.tsx +38 -0
- package/example-web/react2/src/components/ZonesComponent.tsx +34 -0
- package/example-web/react2/src/index.tsx +5 -0
- package/example-web/react2/tsconfig.json +16 -0
- package/example-web/react2/webpack.config.js +42 -0
- package/jest.config.js +2 -2
- package/package.json +13 -8
- package/src/__tests__/__snapshots__/ps99-api-changes.ts.snap +90437 -0
- package/src/__tests__/ps99-api-changes.ts +8 -10
- package/src/__tests__/ps99-api-live.ts +35 -36
- package/src/__tests__/ps99-api.ts +2 -2
- package/src/index.ts +32 -1
- package/src/ps99-api.ts +19 -10
- package/src/responses/activeClanBattle.ts +30 -30
- package/src/responses/clan.ts +70 -70
- package/src/responses/clans.ts +9 -9
- package/src/responses/collection/achievement.ts +39 -0
- package/src/responses/collection/boost.ts +14 -0
- package/src/responses/collection/booth.ts +36 -0
- package/src/responses/collection/box.ts +33 -0
- package/src/responses/collection/buff.ts +16 -0
- package/src/responses/collection/charm.ts +38 -0
- package/src/responses/collection/currency.ts +56 -0
- package/src/responses/collection/egg.ts +52 -0
- package/src/responses/collection/enchantment.ts +41 -0
- package/src/responses/collection/fishing-rod.ts +24 -0
- package/src/responses/collection/fruit.ts +37 -0
- package/src/responses/collection/guild-battle.ts +48 -0
- package/src/responses/collection/hoverboard.ts +49 -0
- package/src/responses/collection/index.ts +74 -0
- package/src/responses/collection/lootbox.ts +29 -0
- package/src/responses/collection/mastery.ts +125 -0
- package/src/responses/collection/merchant.ts +22 -0
- package/src/responses/collection/misc-item.ts +32 -0
- package/src/responses/collection/pet.ts +121 -0
- package/src/responses/collection/potion.ts +39 -0
- package/src/responses/collection/random-event.ts +30 -0
- package/src/responses/collection/rank.ts +58 -0
- package/src/responses/collection/rarity.ts +20 -0
- package/src/responses/collection/rebirth.ts +28 -0
- package/src/responses/collection/secret-room.ts +50 -0
- package/src/responses/collection/seed.ts +0 -0
- package/src/responses/collection/shovel.ts +18 -0
- package/src/responses/collection/sprinkler.ts +32 -0
- package/src/responses/collection/ultimate.ts +36 -0
- package/src/responses/collection/upgrade.ts +64 -0
- package/src/responses/collection/watering-can.ts +18 -0
- package/src/responses/collection/world.ts +20 -0
- package/src/responses/collection/zone-flag.ts +32 -0
- package/src/responses/collection/zone.ts +208 -0
- package/src/responses/exists.ts +8 -8
- package/src/responses/rap.ts +9 -9
- package/tsconfig.json +2 -2
- package/dist/responses/collection.d.ts +0 -1357
- package/dist/responses/collection.js.map +0 -1
- package/dist/responses/collections.d.ts +0 -5
- package/dist/responses/collections.js.map +0 -1
- package/src/responses/collection.ts +0 -1543
- 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,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
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "ps99-api",
|
|
3
|
-
"version": "1.
|
|
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
|
|
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.
|
|
24
|
+
"@tsconfig/node20": "^20.1.4",
|
|
22
25
|
"@types/jest": "^29.5.12",
|
|
23
|
-
"@types/node": "^20.
|
|
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
|
|
27
|
-
"semantic-release": "^
|
|
31
|
+
"prettier": "^3.3.2",
|
|
32
|
+
"semantic-release": "^24.0.0",
|
|
28
33
|
"ts-jest": "^29.1.2",
|
|
29
|
-
"typescript": "^5.4.
|
|
34
|
+
"typescript": "^5.4.5"
|
|
30
35
|
},
|
|
31
36
|
"dependencies": {
|
|
32
|
-
"axios": "^1.
|
|
37
|
+
"axios": "^1.7.2"
|
|
33
38
|
},
|
|
34
39
|
"repository": {
|
|
35
40
|
"type": "git",
|