ps99-api 1.0.1 → 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 +27 -0
- package/.github/workflows/release-on-main.yml +1 -14
- package/.github/workflows/test-on-branch.yml +18 -0
- package/.idea/jsLibraryMappings.xml +6 -0
- package/README.md +5 -5
- package/dist/index.d.ts +33 -2
- package/dist/index.js +33 -2
- package/dist/index.js.map +1 -1
- package/dist/ps99-api.d.ts +18 -9
- package/dist/ps99-api.js +5 -2
- package/dist/ps99-api.js.map +1 -1
- package/dist/responses/activeClanBattle.d.ts +34 -29
- package/dist/responses/clan.d.ts +82 -88
- package/dist/responses/clans.d.ts +11 -18
- 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/{common.js → responses/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.js → collection/booth.js} +1 -1
- 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/dist/responses/exists.d.ts +11 -29
- package/dist/responses/rap.d.ts +12 -36
- package/dump-result.js +8 -0
- 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__/__snapshots__/ps99-api-live.ts.snap +98822 -0
- package/src/__tests__/ps99-api-changes.ts +34 -0
- package/src/__tests__/ps99-api-live.ts +176 -0
- package/src/__tests__/ps99-api.ts +2 -2
- package/src/index.ts +33 -2
- package/src/ps99-api.ts +20 -12
- package/src/responses/activeClanBattle.ts +40 -17
- package/src/responses/clan.ts +89 -63
- package/src/responses/clans.ts +11 -21
- 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 +13 -18
- package/src/responses/rap.ts +14 -27
- package/tsconfig.json +2 -2
- package/dist/common.d.ts +0 -2
- package/dist/common.js.map +0 -1
- package/dist/responses/collection.d.ts +0 -1242
- 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/common.ts +0 -2
- package/src/responses/collection.ts +0 -1261
- package/src/responses/collections.ts +0 -3
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { expect, test } from "@jest/globals";
|
|
2
|
+
import { PetSimulator99API } from "../ps99-api";
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* It's hard assert these snapshots so .skip em
|
|
6
|
+
*/
|
|
7
|
+
describe.skip("Pet Simulator Public Live API Test - Changing Items", () => {
|
|
8
|
+
const api = new PetSimulator99API();
|
|
9
|
+
|
|
10
|
+
test("Active Clan Battle", async () => {
|
|
11
|
+
const results = await api.getActiveClanBattle();
|
|
12
|
+
expect(results).toMatchSnapshot();
|
|
13
|
+
});
|
|
14
|
+
|
|
15
|
+
test("Get Clan", async () => {
|
|
16
|
+
const results = await api.getClan("MMFC");
|
|
17
|
+
expect(results).toMatchSnapshot();
|
|
18
|
+
});
|
|
19
|
+
|
|
20
|
+
test("Get Clans", async () => {
|
|
21
|
+
const results = await api.getClans({ pageSize: 1 });
|
|
22
|
+
expect(results).toMatchSnapshot();
|
|
23
|
+
});
|
|
24
|
+
|
|
25
|
+
test("Get Exists", async () => {
|
|
26
|
+
const results = await api.getExists();
|
|
27
|
+
expect(results).toMatchSnapshot();
|
|
28
|
+
});
|
|
29
|
+
|
|
30
|
+
test("Get RAP", async () => {
|
|
31
|
+
const results = await api.getRAP();
|
|
32
|
+
expect(results).toMatchSnapshot();
|
|
33
|
+
});
|
|
34
|
+
});
|
|
@@ -0,0 +1,176 @@
|
|
|
1
|
+
import { expect, test } from "@jest/globals";
|
|
2
|
+
import { PetSimulator99API } from "../ps99-api";
|
|
3
|
+
|
|
4
|
+
describe("Pet Simulator Public Live API Test", () => {
|
|
5
|
+
const api = new PetSimulator99API();
|
|
6
|
+
|
|
7
|
+
test("Collections Have Not Changed", async () => {
|
|
8
|
+
const results = await api.getCollections();
|
|
9
|
+
expect(results).toMatchSnapshot();
|
|
10
|
+
});
|
|
11
|
+
|
|
12
|
+
test("Achievements shape", async () => {
|
|
13
|
+
const results = await api.getCollection("Achievements");
|
|
14
|
+
expect(results).toMatchSnapshot();
|
|
15
|
+
});
|
|
16
|
+
|
|
17
|
+
test("Boosts shape", async () => {
|
|
18
|
+
const results = await api.getCollection("Boosts");
|
|
19
|
+
expect(results).toMatchSnapshot();
|
|
20
|
+
});
|
|
21
|
+
|
|
22
|
+
test("Booths shape", async () => {
|
|
23
|
+
const results = await api.getCollection("Booths");
|
|
24
|
+
expect(results).toMatchSnapshot();
|
|
25
|
+
});
|
|
26
|
+
|
|
27
|
+
test("Boxes shape", async () => {
|
|
28
|
+
const results = await api.getCollection("Boxes");
|
|
29
|
+
expect(results).toMatchSnapshot();
|
|
30
|
+
});
|
|
31
|
+
|
|
32
|
+
test("Buffs shape", async () => {
|
|
33
|
+
const results = await api.getCollection("Buffs");
|
|
34
|
+
expect(results).toMatchSnapshot();
|
|
35
|
+
});
|
|
36
|
+
|
|
37
|
+
test("Charms shape", async () => {
|
|
38
|
+
const results = await api.getCollection("Charms");
|
|
39
|
+
expect(results).toMatchSnapshot();
|
|
40
|
+
});
|
|
41
|
+
|
|
42
|
+
test("Currency shape", async () => {
|
|
43
|
+
const results = await api.getCollection("Currency");
|
|
44
|
+
expect(results).toMatchSnapshot();
|
|
45
|
+
});
|
|
46
|
+
|
|
47
|
+
test("Eggs shape", async () => {
|
|
48
|
+
const results = await api.getCollection("Eggs");
|
|
49
|
+
expect(results).toMatchSnapshot();
|
|
50
|
+
});
|
|
51
|
+
|
|
52
|
+
test("Enchants shape", async () => {
|
|
53
|
+
const results = await api.getCollection("Enchants");
|
|
54
|
+
expect(results).toMatchSnapshot();
|
|
55
|
+
});
|
|
56
|
+
|
|
57
|
+
test("FishingRods shape", async () => {
|
|
58
|
+
const results = await api.getCollection("FishingRods");
|
|
59
|
+
expect(results).toMatchSnapshot();
|
|
60
|
+
});
|
|
61
|
+
|
|
62
|
+
test("Fruits shape", async () => {
|
|
63
|
+
const results = await api.getCollection("Fruits");
|
|
64
|
+
expect(results).toMatchSnapshot();
|
|
65
|
+
});
|
|
66
|
+
|
|
67
|
+
test("GuildBattles shape", async () => {
|
|
68
|
+
const results = await api.getCollection("GuildBattles");
|
|
69
|
+
expect(results).toMatchSnapshot();
|
|
70
|
+
});
|
|
71
|
+
|
|
72
|
+
test("Hoverboards shape", async () => {
|
|
73
|
+
const results = await api.getCollection("Hoverboards");
|
|
74
|
+
expect(results).toMatchSnapshot();
|
|
75
|
+
});
|
|
76
|
+
|
|
77
|
+
test("Lootboxes shape", async () => {
|
|
78
|
+
const results = await api.getCollection("Lootboxes");
|
|
79
|
+
expect(results).toMatchSnapshot();
|
|
80
|
+
});
|
|
81
|
+
|
|
82
|
+
test("Mastery shape", async () => {
|
|
83
|
+
const results = await api.getCollection("Mastery");
|
|
84
|
+
expect(results).toMatchSnapshot();
|
|
85
|
+
});
|
|
86
|
+
|
|
87
|
+
test("MiscItems shape", async () => {
|
|
88
|
+
const results = await api.getCollection("MiscItems");
|
|
89
|
+
expect(results).toMatchSnapshot();
|
|
90
|
+
});
|
|
91
|
+
|
|
92
|
+
test("Pets shape", async () => {
|
|
93
|
+
const results = await api.getCollection("Pets");
|
|
94
|
+
expect(results).toMatchSnapshot();
|
|
95
|
+
});
|
|
96
|
+
|
|
97
|
+
test("Potions shape", async () => {
|
|
98
|
+
const results = await api.getCollection("Potions");
|
|
99
|
+
expect(results).toMatchSnapshot();
|
|
100
|
+
});
|
|
101
|
+
|
|
102
|
+
test("RandomEvents shape", async () => {
|
|
103
|
+
const results = await api.getCollection("RandomEvents");
|
|
104
|
+
expect(results).toMatchSnapshot();
|
|
105
|
+
});
|
|
106
|
+
|
|
107
|
+
test("Ranks shape", async () => {
|
|
108
|
+
const results = await api.getCollection("Ranks");
|
|
109
|
+
expect(results).toMatchSnapshot();
|
|
110
|
+
});
|
|
111
|
+
|
|
112
|
+
test("Rarity shape", async () => {
|
|
113
|
+
const results = await api.getCollection("Rarity");
|
|
114
|
+
expect(results).toMatchSnapshot();
|
|
115
|
+
});
|
|
116
|
+
|
|
117
|
+
test("Rebirths shape", async () => {
|
|
118
|
+
const results = await api.getCollection("Rebirths");
|
|
119
|
+
expect(results).toMatchSnapshot();
|
|
120
|
+
});
|
|
121
|
+
|
|
122
|
+
test("SecretRooms shape", async () => {
|
|
123
|
+
const results = await api.getCollection("SecretRooms");
|
|
124
|
+
expect(results).toMatchSnapshot();
|
|
125
|
+
});
|
|
126
|
+
|
|
127
|
+
test("Seeds shape", async () => {
|
|
128
|
+
const results = await api.getCollection("Seeds");
|
|
129
|
+
expect(results).toMatchSnapshot();
|
|
130
|
+
});
|
|
131
|
+
|
|
132
|
+
test("Shovels shape", async () => {
|
|
133
|
+
const results = await api.getCollection("Shovels");
|
|
134
|
+
expect(results).toMatchSnapshot();
|
|
135
|
+
});
|
|
136
|
+
|
|
137
|
+
test("Sprinklers shape", async () => {
|
|
138
|
+
const results = await api.getCollection("Sprinklers");
|
|
139
|
+
expect(results).toMatchSnapshot();
|
|
140
|
+
});
|
|
141
|
+
|
|
142
|
+
test("Ultimates shape", async () => {
|
|
143
|
+
const results = await api.getCollection("Ultimates");
|
|
144
|
+
expect(results).toMatchSnapshot();
|
|
145
|
+
});
|
|
146
|
+
|
|
147
|
+
test("Upgrades shape", async () => {
|
|
148
|
+
const results = await api.getCollection("Upgrades");
|
|
149
|
+
expect(results).toMatchSnapshot();
|
|
150
|
+
});
|
|
151
|
+
|
|
152
|
+
test("WateringCans shape", async () => {
|
|
153
|
+
const results = await api.getCollection("WateringCans");
|
|
154
|
+
expect(results).toMatchSnapshot();
|
|
155
|
+
});
|
|
156
|
+
|
|
157
|
+
test("Worlds shape", async () => {
|
|
158
|
+
const results = await api.getCollection("Worlds");
|
|
159
|
+
expect(results).toMatchSnapshot();
|
|
160
|
+
});
|
|
161
|
+
|
|
162
|
+
test("ZoneFlags shape", async () => {
|
|
163
|
+
const results = await api.getCollection("ZoneFlags");
|
|
164
|
+
expect(results).toMatchSnapshot();
|
|
165
|
+
});
|
|
166
|
+
|
|
167
|
+
test("Zones shape", async () => {
|
|
168
|
+
const results = await api.getCollection("Zones");
|
|
169
|
+
expect(results).toMatchSnapshot();
|
|
170
|
+
});
|
|
171
|
+
|
|
172
|
+
test("Merchants shape", async () => {
|
|
173
|
+
const results = await api.getCollection("Merchants");
|
|
174
|
+
expect(results).toMatchSnapshot();
|
|
175
|
+
});
|
|
176
|
+
});
|
|
@@ -145,7 +145,7 @@ describe("Pet Simulator Public API Tests", () => {
|
|
|
145
145
|
params: {},
|
|
146
146
|
responseEncoding: "BINARY",
|
|
147
147
|
responseType: "arraybuffer",
|
|
148
|
-
url: "https://biggamesapi.io/
|
|
148
|
+
url: "https://biggamesapi.io/image/14615650278",
|
|
149
149
|
});
|
|
150
150
|
await api.getImage("rbxassetid://14976576332");
|
|
151
151
|
expect(axios).toBeCalledWith({
|
|
@@ -153,7 +153,7 @@ describe("Pet Simulator Public API Tests", () => {
|
|
|
153
153
|
params: {},
|
|
154
154
|
responseEncoding: "BINARY",
|
|
155
155
|
responseType: "arraybuffer",
|
|
156
|
-
url: "https://biggamesapi.io/
|
|
156
|
+
url: "https://biggamesapi.io/image/14976576332",
|
|
157
157
|
});
|
|
158
158
|
});
|
|
159
159
|
});
|
package/src/index.ts
CHANGED
|
@@ -1,11 +1,42 @@
|
|
|
1
1
|
export * from "./ps99-api";
|
|
2
2
|
export * from "./request-client/common";
|
|
3
3
|
export * from "./request-client/axios";
|
|
4
|
-
export * from "./responses/collections";
|
|
5
|
-
export * from "./common";
|
|
6
4
|
export * from "./responses/clan";
|
|
7
5
|
export * from "./responses/clans";
|
|
8
6
|
export * from "./params/clans";
|
|
9
7
|
export * from "./responses/exists";
|
|
10
8
|
export * from "./responses/rap";
|
|
11
9
|
export * from "./responses/activeClanBattle";
|
|
10
|
+
export * from "./responses/collection";
|
|
11
|
+
export * from "./responses/collection/achievement";
|
|
12
|
+
export * from "./responses/collection/boost";
|
|
13
|
+
export * from "./responses/collection/booth";
|
|
14
|
+
export * from "./responses/collection/box";
|
|
15
|
+
export * from "./responses/collection/buff";
|
|
16
|
+
export * from "./responses/collection/charm";
|
|
17
|
+
export * from "./responses/collection/currency";
|
|
18
|
+
export * from "./responses/collection/egg";
|
|
19
|
+
export * from "./responses/collection/enchantment";
|
|
20
|
+
export * from "./responses/collection/fishing-rod";
|
|
21
|
+
export * from "./responses/collection/fruit";
|
|
22
|
+
export * from "./responses/collection/guild-battle";
|
|
23
|
+
export * from "./responses/collection/hoverboard";
|
|
24
|
+
export * from "./responses/collection/lootbox";
|
|
25
|
+
export * from "./responses/collection/mastery";
|
|
26
|
+
export * from "./responses/collection/merchant";
|
|
27
|
+
export * from "./responses/collection/misc-item";
|
|
28
|
+
export * from "./responses/collection/pet";
|
|
29
|
+
export * from "./responses/collection/potion";
|
|
30
|
+
export * from "./responses/collection/random-event";
|
|
31
|
+
export * from "./responses/collection/rank";
|
|
32
|
+
export * from "./responses/collection/rarity";
|
|
33
|
+
export * from "./responses/collection/rebirth";
|
|
34
|
+
export * from "./responses/collection/secret-room";
|
|
35
|
+
export * from "./responses/collection/shovel";
|
|
36
|
+
export * from "./responses/collection/sprinkler";
|
|
37
|
+
export * from "./responses/collection/ultimate";
|
|
38
|
+
export * from "./responses/collection/upgrade";
|
|
39
|
+
export * from "./responses/collection/watering-can";
|
|
40
|
+
export * from "./responses/collection/world";
|
|
41
|
+
export * from "./responses/collection/zone-flag";
|
|
42
|
+
export * from "./responses/collection/zone";
|
package/src/ps99-api.ts
CHANGED
|
@@ -1,8 +1,6 @@
|
|
|
1
1
|
import { ApiRequestParams, RequestClient } from "./request-client/common";
|
|
2
2
|
import { getAxiosRequest } from "./request-client/axios";
|
|
3
|
-
import {
|
|
4
|
-
import { Collection } from "./common";
|
|
5
|
-
import { CollectionResponseBody } from "./responses/collection";
|
|
3
|
+
import { Collection, GetCollectionResponse } from "./responses/collection";
|
|
6
4
|
import { ClanResponseBody } from "./responses/clan";
|
|
7
5
|
import { ClansResponseBody } from "./responses/clans";
|
|
8
6
|
import { ClansSort, GetClansParams, SortOrder } from "./params/clans";
|
|
@@ -13,6 +11,11 @@ import { ActiveClanBattleResponseBody } from "./responses/activeClanBattle";
|
|
|
13
11
|
export type PetSimulator99APIOptions = {
|
|
14
12
|
requestClient?: RequestClient;
|
|
15
13
|
};
|
|
14
|
+
|
|
15
|
+
export type ApiResponseBody<T> =
|
|
16
|
+
| { status: "ok"; data: T }
|
|
17
|
+
| { status: "error"; error: { message: string; ignore: boolean } };
|
|
18
|
+
|
|
16
19
|
export class PetSimulator99API {
|
|
17
20
|
public requestClient: RequestClient;
|
|
18
21
|
|
|
@@ -50,11 +53,11 @@ export class PetSimulator99API {
|
|
|
50
53
|
}
|
|
51
54
|
|
|
52
55
|
getCollections() {
|
|
53
|
-
return this.request<
|
|
56
|
+
return this.request<ApiResponseBody<Collection[]>>("/api/collections");
|
|
54
57
|
}
|
|
55
58
|
|
|
56
|
-
getCollection(collection:
|
|
57
|
-
return this.request<
|
|
59
|
+
getCollection<C extends Collection>(collection: C) {
|
|
60
|
+
return this.request<ApiResponseBody<GetCollectionResponse<C>>>(
|
|
58
61
|
`/api/collection/${collection}`,
|
|
59
62
|
);
|
|
60
63
|
}
|
|
@@ -73,15 +76,17 @@ export class PetSimulator99API {
|
|
|
73
76
|
sort: sort || "Points",
|
|
74
77
|
sortOrder: sortOrder || "desc",
|
|
75
78
|
};
|
|
76
|
-
return this.request<ClansResponseBody
|
|
79
|
+
return this.request<ApiResponseBody<ClansResponseBody>>("/api/clans", {
|
|
80
|
+
params,
|
|
81
|
+
});
|
|
77
82
|
}
|
|
78
83
|
|
|
79
84
|
getClan(name: string) {
|
|
80
|
-
return this.request<ClanResponseBody
|
|
85
|
+
return this.request<ApiResponseBody<ClanResponseBody>>(`/api/clan/${name}`);
|
|
81
86
|
}
|
|
82
87
|
|
|
83
88
|
getExists() {
|
|
84
|
-
return this.request<ExistsResponseBody
|
|
89
|
+
return this.request<ApiResponseBody<ExistsResponseBody>>(`/api/exists`);
|
|
85
90
|
}
|
|
86
91
|
|
|
87
92
|
getRAP() {
|
|
@@ -89,14 +94,17 @@ export class PetSimulator99API {
|
|
|
89
94
|
}
|
|
90
95
|
|
|
91
96
|
getActiveClanBattle() {
|
|
92
|
-
return this.request<ActiveClanBattleResponseBody
|
|
97
|
+
return this.request<ApiResponseBody<ActiveClanBattleResponseBody>>(
|
|
98
|
+
`/api/activeClanBattle`,
|
|
99
|
+
);
|
|
93
100
|
}
|
|
94
101
|
|
|
95
|
-
|
|
102
|
+
/** resolve rbxassetid:// references to image/png */
|
|
103
|
+
getImage(rbxassetid: string): Promise<Blob> {
|
|
96
104
|
if (rbxassetid.startsWith("rbxassetid://")) {
|
|
97
105
|
rbxassetid = rbxassetid.slice(13);
|
|
98
106
|
}
|
|
99
|
-
return this.request<Blob>(`/
|
|
107
|
+
return this.request<Blob>(`/image/${rbxassetid}`, {
|
|
100
108
|
responseType: "arraybuffer",
|
|
101
109
|
responseEncoding: "BINARY",
|
|
102
110
|
});
|
|
@@ -1,20 +1,43 @@
|
|
|
1
|
+
export type ActiveBattleData = {
|
|
2
|
+
_id: string;
|
|
3
|
+
category: string;
|
|
4
|
+
configData: ActiveBattleConfigData;
|
|
5
|
+
configName: string;
|
|
6
|
+
};
|
|
7
|
+
|
|
8
|
+
export type ActiveBattleConfigData = {
|
|
9
|
+
FinishTime: number;
|
|
10
|
+
PlacementRewards: ActiveBattlePlacementReward[];
|
|
11
|
+
Rewards: ActiveBattleRewards;
|
|
12
|
+
StartTime: number;
|
|
13
|
+
Title: string;
|
|
14
|
+
_id: string;
|
|
15
|
+
_script: any;
|
|
16
|
+
};
|
|
17
|
+
|
|
18
|
+
export type ActiveBattlePlacementReward = {
|
|
19
|
+
Best: number;
|
|
20
|
+
Item: ActiveBattleItem;
|
|
21
|
+
Worst: number;
|
|
22
|
+
};
|
|
23
|
+
|
|
24
|
+
export type ActiveBattleItem = {
|
|
25
|
+
_data: ActiveBattleItemData;
|
|
26
|
+
};
|
|
27
|
+
|
|
28
|
+
export type ActiveBattleItemData = {
|
|
29
|
+
id: string;
|
|
30
|
+
pt?: number;
|
|
31
|
+
};
|
|
32
|
+
|
|
33
|
+
export type ActiveBattleRewards = {
|
|
34
|
+
Bronze: any[];
|
|
35
|
+
Gold: any[];
|
|
36
|
+
Good: any[];
|
|
37
|
+
Silver: any[];
|
|
38
|
+
};
|
|
39
|
+
|
|
1
40
|
export type ActiveClanBattleResponseBody = {
|
|
2
41
|
status: string;
|
|
3
|
-
data:
|
|
4
|
-
_id: string;
|
|
5
|
-
configName: string;
|
|
6
|
-
category: string;
|
|
7
|
-
configData: {
|
|
8
|
-
_script: {};
|
|
9
|
-
FinishTime: number;
|
|
10
|
-
Title: string;
|
|
11
|
-
_id: string;
|
|
12
|
-
StartTime: number;
|
|
13
|
-
Rewards: {
|
|
14
|
-
Bronze: { _data: { id: string } }[];
|
|
15
|
-
Silver: { _data: { id: string } }[];
|
|
16
|
-
Gold: { _data: { id: string } }[];
|
|
17
|
-
};
|
|
18
|
-
};
|
|
19
|
-
};
|
|
42
|
+
data: ActiveBattleData;
|
|
20
43
|
};
|
package/src/responses/clan.ts
CHANGED
|
@@ -1,65 +1,91 @@
|
|
|
1
1
|
export type ClanResponseBody = {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
2
|
+
Battles: Battles;
|
|
3
|
+
BronzeMedals: number;
|
|
4
|
+
CountryCode: string;
|
|
5
|
+
Created: number;
|
|
6
|
+
DepositedDiamonds: number;
|
|
7
|
+
Desc: string;
|
|
8
|
+
DiamondContributions: DiamondContributions;
|
|
9
|
+
GoodMedals: number;
|
|
10
|
+
GuildLevel: number;
|
|
11
|
+
/** use {@link PetSimulator99API.getImage} to get an image blob **/
|
|
12
|
+
Icon: string;
|
|
13
|
+
LastKickTimestamp: number;
|
|
14
|
+
MemberCapacity: number;
|
|
15
|
+
Members: Member[];
|
|
16
|
+
Name: string;
|
|
17
|
+
OfficerCapacity: number;
|
|
18
|
+
Owner: number;
|
|
19
|
+
SilverMedals: number;
|
|
20
|
+
Status: string;
|
|
21
|
+
StatusTimestamp: number;
|
|
22
|
+
StatusUsername: string;
|
|
23
|
+
};
|
|
24
|
+
|
|
25
|
+
export type Battles = { [key: string]: PointsBattle | GoalBattle };
|
|
26
|
+
|
|
27
|
+
export type PointsBattle = {
|
|
28
|
+
AwardUserIDs: number[];
|
|
29
|
+
BattleID: string;
|
|
30
|
+
EarnedMedal?: string;
|
|
31
|
+
Place?: number;
|
|
32
|
+
PointContributions: PointContribution[];
|
|
33
|
+
Points: number;
|
|
34
|
+
ProcessedAwards: boolean;
|
|
35
|
+
};
|
|
36
|
+
|
|
37
|
+
export type PointContribution = {
|
|
38
|
+
Points: number;
|
|
39
|
+
UserID: number;
|
|
40
|
+
};
|
|
41
|
+
|
|
42
|
+
export type GoalBattle = {
|
|
43
|
+
AwardUserIDs: any[];
|
|
44
|
+
BattleID: string;
|
|
45
|
+
EarnedMedal?: string;
|
|
46
|
+
Goals: Goal[];
|
|
47
|
+
Place?: number;
|
|
48
|
+
PointContributions: PointContribution[];
|
|
49
|
+
Points: number;
|
|
50
|
+
ProcessedAwards: boolean;
|
|
51
|
+
};
|
|
52
|
+
|
|
53
|
+
export type Goal = {
|
|
54
|
+
Amount: number;
|
|
55
|
+
Contributions: Contributions;
|
|
56
|
+
Progress: number;
|
|
57
|
+
Stars: number;
|
|
58
|
+
Tier: number;
|
|
59
|
+
Type: number;
|
|
60
|
+
};
|
|
61
|
+
|
|
62
|
+
export type Contributions = { [key: string]: number };
|
|
63
|
+
|
|
64
|
+
export type HackerBattle = {
|
|
65
|
+
AwardUserIDs: any[];
|
|
66
|
+
BattleID: string;
|
|
67
|
+
Place: number;
|
|
68
|
+
PointContributions: PointContribution[];
|
|
69
|
+
Points: number;
|
|
70
|
+
ProcessedAwards: boolean;
|
|
71
|
+
};
|
|
72
|
+
|
|
73
|
+
export type DiamondContributions = {
|
|
74
|
+
AllTime: AllTime;
|
|
75
|
+
};
|
|
76
|
+
|
|
77
|
+
export type AllTime = {
|
|
78
|
+
Data: Daum[];
|
|
79
|
+
Sum: number;
|
|
80
|
+
};
|
|
81
|
+
|
|
82
|
+
export type Daum = {
|
|
83
|
+
Diamonds: number;
|
|
84
|
+
UserID: number;
|
|
85
|
+
};
|
|
86
|
+
|
|
87
|
+
export type Member = {
|
|
88
|
+
JoinTime: number;
|
|
89
|
+
PermissionLevel: number;
|
|
90
|
+
UserID: number;
|
|
65
91
|
};
|
package/src/responses/clans.ts
CHANGED
|
@@ -1,25 +1,15 @@
|
|
|
1
|
-
|
|
1
|
+
export type ClansData = {
|
|
2
|
+
CountryCode: string;
|
|
3
|
+
Created: number;
|
|
4
|
+
DepositedDiamonds: number;
|
|
5
|
+
Icon: string;
|
|
6
|
+
MemberCapacity: number;
|
|
7
|
+
Members: number;
|
|
8
|
+
Name: string;
|
|
9
|
+
Points: number;
|
|
10
|
+
};
|
|
2
11
|
|
|
3
12
|
export type ClansResponseBody = {
|
|
4
13
|
status: string;
|
|
5
|
-
data:
|
|
6
|
-
| {
|
|
7
|
-
Created: number;
|
|
8
|
-
Name: string;
|
|
9
|
-
MemberCapacity: number;
|
|
10
|
-
DepositedDiamonds: number;
|
|
11
|
-
CountryCode: string;
|
|
12
|
-
Members: number;
|
|
13
|
-
Points: number;
|
|
14
|
-
}
|
|
15
|
-
| {
|
|
16
|
-
Created: number;
|
|
17
|
-
Name: ClanName;
|
|
18
|
-
CountryCode: string;
|
|
19
|
-
MemberCapacity: number;
|
|
20
|
-
DepositedDiamonds: number;
|
|
21
|
-
Members: number;
|
|
22
|
-
Points: number;
|
|
23
|
-
}
|
|
24
|
-
)[];
|
|
14
|
+
data: ClansData[];
|
|
25
15
|
};
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
export type AchievementData = {
|
|
2
|
+
category: string;
|
|
3
|
+
collection: "Achievements";
|
|
4
|
+
configData: AchievementConfigData;
|
|
5
|
+
configName: string;
|
|
6
|
+
dateCreated: any;
|
|
7
|
+
dateModified: any;
|
|
8
|
+
hash: any;
|
|
9
|
+
};
|
|
10
|
+
export type AchievementConfigData = {
|
|
11
|
+
Icon: string;
|
|
12
|
+
Name: string;
|
|
13
|
+
Tiers: AchievementTier[];
|
|
14
|
+
};
|
|
15
|
+
export type AchievementTier = {
|
|
16
|
+
Amount: number;
|
|
17
|
+
Desc: string;
|
|
18
|
+
Difficulty: AchievementDifficulty;
|
|
19
|
+
Hidden: boolean;
|
|
20
|
+
Rewards: AchievementReward[];
|
|
21
|
+
Title: string;
|
|
22
|
+
ManuallyNotify?: number;
|
|
23
|
+
};
|
|
24
|
+
export type AchievementDifficulty = {
|
|
25
|
+
Name: string;
|
|
26
|
+
Order: number;
|
|
27
|
+
};
|
|
28
|
+
export type AchievementReward = {
|
|
29
|
+
Reward: AchievementRewardItem;
|
|
30
|
+
};
|
|
31
|
+
export type AchievementRewardItem = {
|
|
32
|
+
_data: AchievementRewardData;
|
|
33
|
+
};
|
|
34
|
+
export type AchievementRewardData = {
|
|
35
|
+
id: string;
|
|
36
|
+
tn?: number;
|
|
37
|
+
_am?: number;
|
|
38
|
+
pt?: number;
|
|
39
|
+
};
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
export type BoostData = {
|
|
2
|
+
category: "Boosts";
|
|
3
|
+
collection: "Boosts";
|
|
4
|
+
configData: BoostConfigData;
|
|
5
|
+
configName: "Boost | Friends";
|
|
6
|
+
dateCreated: any;
|
|
7
|
+
dateModified: any;
|
|
8
|
+
hash: any;
|
|
9
|
+
};
|
|
10
|
+
export type BoostConfigData = {
|
|
11
|
+
DisplayName: string;
|
|
12
|
+
Icon: string;
|
|
13
|
+
MaximumPercent: number;
|
|
14
|
+
};
|