ps99-api 2.3.3 → 2.5.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 (99) hide show
  1. package/.github/workflows/release-on-main.yml +1 -2
  2. package/.idea/node-ps99-api.iml +1 -0
  3. package/.idea/runConfigurations/test_changing.xml +1 -1
  4. package/README.md +1 -1
  5. package/debug_currency.json +57 -0
  6. package/debug_goals.json +271 -0
  7. package/dist/ps99-api.d.ts +2 -0
  8. package/dist/ps99-api.js +4 -1
  9. package/dist/ps99-api.js.map +1 -1
  10. package/dist/request-client/axios.js +6 -1
  11. package/dist/request-client/axios.js.map +1 -1
  12. package/dist/responses/collection/achievement.d.ts +2 -0
  13. package/dist/responses/collection/guild-battle.d.ts +2 -4
  14. package/dist/responses/collection/index.d.ts +1 -0
  15. package/dist/responses/collection/index.js +15 -0
  16. package/dist/responses/collection/index.js.map +1 -1
  17. package/dist/responses/collection/rank.d.ts +1 -0
  18. package/dist/responses/collection/rarity.d.ts +1 -0
  19. package/dist/responses/collection/seed.d.ts +1 -0
  20. package/dist/responses/exists.d.ts +2 -0
  21. package/example-web/react/package-lock.json +1504 -1470
  22. package/example-web/react2/package-lock.json +3082 -2759
  23. package/example-web/react2/package.json +6 -1
  24. package/example-web/react2/public/assets/gold_variant_icon.png +0 -0
  25. package/example-web/react2/public/assets/hot_cocoa_egg.png +0 -0
  26. package/example-web/react2/public/index.html +34 -31
  27. package/example-web/react2/src/App.tsx +6 -9
  28. package/example-web/react2/src/assets/guild_placeholder.png +0 -0
  29. package/example-web/react2/src/components/AchievementsComponent.tsx +78 -30
  30. package/example-web/react2/src/components/BoostsComponent.tsx +18 -14
  31. package/example-web/react2/src/components/BoothsComponent.tsx +24 -22
  32. package/example-web/react2/src/components/BoxesComponent.tsx +46 -21
  33. package/example-web/react2/src/components/BuffsComponent.tsx +83 -13
  34. package/example-web/react2/src/components/CharmsComponent.tsx +47 -29
  35. package/example-web/react2/src/components/CollectionConfigIndex.tsx +398 -35
  36. package/example-web/react2/src/components/CollectionsIndex.tsx +132 -23
  37. package/example-web/react2/src/components/CollectionsLayout.tsx +50 -0
  38. package/example-web/react2/src/components/CurrencyComponent.tsx +59 -50
  39. package/example-web/react2/src/components/DynamicCollectionConfigData.tsx +178 -11
  40. package/example-web/react2/src/components/EggsComponent.tsx +77 -44
  41. package/example-web/react2/src/components/EnchantsComponent.tsx +84 -34
  42. package/example-web/react2/src/components/FishingRodsComponent.tsx +38 -31
  43. package/example-web/react2/src/components/Footer.tsx +75 -18
  44. package/example-web/react2/src/components/FruitsComponent.tsx +41 -25
  45. package/example-web/react2/src/components/GenericFetchComponent.tsx +40 -22
  46. package/example-web/react2/src/components/GuildBattlesComponent.tsx +93 -65
  47. package/example-web/react2/src/components/Header.tsx +5 -37
  48. package/example-web/react2/src/components/HomePage.tsx +16 -16
  49. package/example-web/react2/src/components/HoverboardsComponent.tsx +25 -37
  50. package/example-web/react2/src/components/ImageComponent.tsx +255 -45
  51. package/example-web/react2/src/components/ItemCard.tsx +240 -0
  52. package/example-web/react2/src/components/LootboxesComponent.tsx +24 -16
  53. package/example-web/react2/src/components/MasteryComponent.tsx +93 -37
  54. package/example-web/react2/src/components/MerchantsComponent.tsx +46 -28
  55. package/example-web/react2/src/components/MiscItemsComponent.tsx +28 -26
  56. package/example-web/react2/src/components/PetsComponent.tsx +115 -46
  57. package/example-web/react2/src/components/PotionsComponent.tsx +53 -36
  58. package/example-web/react2/src/components/RandomEventsComponent.tsx +39 -35
  59. package/example-web/react2/src/components/RanksComponent.tsx +187 -71
  60. package/example-web/react2/src/components/RarityComponent.tsx +124 -13
  61. package/example-web/react2/src/components/RebirthsComponent.tsx +37 -26
  62. package/example-web/react2/src/components/SecretRoomsComponent.tsx +7 -13
  63. package/example-web/react2/src/components/SeedsComponent.tsx +45 -32
  64. package/example-web/react2/src/components/ShovelsComponent.tsx +23 -18
  65. package/example-web/react2/src/components/Sidebar.tsx +105 -0
  66. package/example-web/react2/src/components/SprinklersComponent.tsx +27 -19
  67. package/example-web/react2/src/components/Tooltip.tsx +36 -0
  68. package/example-web/react2/src/components/UltimatesComponent.tsx +29 -24
  69. package/example-web/react2/src/components/UpgradesComponent.tsx +99 -55
  70. package/example-web/react2/src/components/WateringCansComponent.tsx +23 -21
  71. package/example-web/react2/src/components/WorldsComponent.tsx +27 -24
  72. package/example-web/react2/src/components/XPPotionsComponent.tsx +29 -19
  73. package/example-web/react2/src/components/ZoneFlagsComponent.tsx +27 -23
  74. package/example-web/react2/src/components/ZonesComponent.tsx +56 -73
  75. package/example-web/react2/src/constants/collectionIcons.ts +29 -0
  76. package/example-web/react2/src/context/CollectionDataContext.tsx +62 -0
  77. package/example-web/react2/src/hooks/useExpandableList.ts +38 -0
  78. package/example-web/react2/src/hooks/useItemResolution.ts +351 -0
  79. package/example-web/react2/src/index.css +257 -0
  80. package/example-web/react2/src/index.tsx +2 -1
  81. package/example-web/react2/temp_model.rbxm +0 -0
  82. package/example-web/react2/webpack.config.js +103 -47
  83. package/package.json +11 -11
  84. package/ranks.json +1 -0
  85. package/repro_collection_fetch.ts +33 -0
  86. package/repro_image_fetch.ts +50 -0
  87. package/src/__tests__/__snapshots__/ps99-api-changes.ts.snap +34841 -10439
  88. package/src/__tests__/__snapshots__/ps99-api-live.ts.snap +160667 -67217
  89. package/src/ps99-api.ts +9 -5
  90. package/src/request-client/axios.ts +6 -2
  91. package/src/responses/collection/achievement.ts +2 -0
  92. package/src/responses/collection/guild-battle.ts +2 -4
  93. package/src/responses/collection/index.ts +1 -0
  94. package/src/responses/collection/rank.ts +1 -0
  95. package/src/responses/collection/rarity.ts +1 -0
  96. package/src/responses/collection/seed.ts +1 -0
  97. package/src/responses/exists.ts +2 -0
  98. package/tsconfig.json +1 -1
  99. package/example-web/react2/public/service-worker.js +0 -63
@@ -1,59 +1,115 @@
1
1
  const path = require("path");
2
2
  const CopyWebpackPlugin = require("copy-webpack-plugin");
3
3
  const HtmlWebpackPlugin = require("html-webpack-plugin");
4
+ const WorkboxWebpackPlugin = require("workbox-webpack-plugin");
4
5
 
5
- module.exports = {
6
- entry: "./src/index.tsx",
7
- devtool: "inline-source-map",
8
- module: {
9
- rules: [
10
- {
11
- test: /\.tsx?$/,
12
- use: ["ts-loader"],
13
- exclude: /node_modules/,
14
- },
15
- {
16
- test: /\.css$/i,
17
- use: ["style-loader", "css-loader"], // Add style-loader here to properly handle CSS
6
+ module.exports = (env, argv) => {
7
+ const isProduction = argv.mode === "production";
8
+
9
+ return {
10
+ entry: "./src/index.tsx",
11
+ devtool: isProduction ? "source-map" : "inline-source-map",
12
+ module: {
13
+ rules: [
14
+ {
15
+ test: /\.tsx?$/,
16
+ use: ["ts-loader"],
17
+ exclude: /node_modules/,
18
+ },
19
+ {
20
+ test: /\.css$/i,
21
+ use: ["style-loader", "css-loader"], // Add style-loader here to properly handle CSS
22
+ },
23
+ {
24
+ test: /\.(png|svg|jpg|jpeg|gif)$/i,
25
+ type: "asset/resource",
26
+ },
27
+ ],
28
+ },
29
+ resolve: {
30
+ extensions: [".tsx", ".ts", ".js"],
31
+ alias: {
32
+ "ps99-api": path.resolve(__dirname, "../../src"),
18
33
  },
19
- ],
20
- },
21
- resolve: {
22
- extensions: [".tsx", ".ts", ".js"],
23
- alias: {
24
- "ps99-api": path.resolve(__dirname, "../../src"),
25
34
  },
26
- },
27
- output: {
28
- filename: "bundle.js",
29
- path: path.resolve(__dirname, "dist"),
30
- publicPath: "/node-ps99-api/",
31
- },
32
- plugins: [
33
- new HtmlWebpackPlugin({
34
- template: path.join(__dirname, "public", "index.html"),
35
+ output: {
36
+ filename: "bundle.js",
37
+ path: path.resolve(__dirname, "dist"),
35
38
  publicPath: "/node-ps99-api/",
36
- }),
37
- new CopyWebpackPlugin({
38
- patterns: [
39
- {
40
- from: path.resolve(__dirname, "public"),
41
- to: path.resolve(__dirname, "dist"),
42
- globOptions: {
43
- ignore: ["**/index.html"], // Ignore index.html to avoid conflict
39
+ },
40
+ plugins: [
41
+ new HtmlWebpackPlugin({
42
+ template: path.join(__dirname, "public", "index.html"),
43
+ publicPath: "/node-ps99-api/",
44
+ }),
45
+ new CopyWebpackPlugin({
46
+ patterns: [
47
+ {
48
+ from: path.resolve(__dirname, "public"),
49
+ to: path.resolve(__dirname, "dist"),
50
+ globOptions: {
51
+ ignore: ["**/index.html"], // Ignore index.html to avoid conflict
52
+ },
44
53
  },
54
+ ],
55
+ }),
56
+ // Only generate Service Worker in production to avoid "called multiple times" warning in watch mode
57
+ ...(isProduction
58
+ ? [
59
+ new WorkboxWebpackPlugin.GenerateSW({
60
+ clientsClaim: true,
61
+ skipWaiting: true,
62
+ maximumFileSizeToCacheInBytes: 5 * 1024 * 1024,
63
+ runtimeCaching: [
64
+ {
65
+ urlPattern: ({ url }) => url.pathname.includes("/api/"),
66
+ handler: "NetworkFirst",
67
+ options: {
68
+ cacheName: "api-cache",
69
+ networkTimeoutSeconds: 10,
70
+ expiration: {
71
+ maxEntries: 50,
72
+ maxAgeSeconds: 60 * 60, // 1 hour
73
+ },
74
+ cacheableResponse: {
75
+ statuses: [0, 200],
76
+ },
77
+ },
78
+ },
79
+ {
80
+ urlPattern: ({ request }) => request.destination === "image",
81
+ handler: "CacheFirst",
82
+ options: {
83
+ cacheName: "images",
84
+ expiration: {
85
+ maxEntries: 100,
86
+ maxAgeSeconds: 30 * 24 * 60 * 60, // 30 Days
87
+ },
88
+ },
89
+ },
90
+ ],
91
+ }),
92
+ ]
93
+ : []),
94
+ ],
95
+ devServer: {
96
+ static: {
97
+ directory: path.join(__dirname, "public"),
98
+ },
99
+ compress: true,
100
+ port: 9000,
101
+ historyApiFallback: {
102
+ index: "/node-ps99-api/index.html",
103
+ },
104
+ proxy: [
105
+ {
106
+ context: ["/api", "/image"],
107
+ target: "https://biggamesapi.io",
108
+ secure: false,
109
+ changeOrigin: true,
110
+ logLevel: "debug",
45
111
  },
46
112
  ],
47
- }),
48
- ],
49
- devServer: {
50
- static: {
51
- directory: path.join(__dirname, "public"),
52
- },
53
- compress: true,
54
- port: 9000,
55
- historyApiFallback: {
56
- index: "/node-ps99-api/index.html",
57
113
  },
58
- },
114
+ };
59
115
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ps99-api",
3
- "version": "2.3.3",
3
+ "version": "2.5.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",
@@ -23,20 +23,20 @@
23
23
  "devDependencies": {
24
24
  "@jest/globals": "^29.7.0",
25
25
  "@semantic-release/git": "^10.0.1",
26
- "@tsconfig/node20": "^20.1.4",
27
- "@types/jest": "^29.5.12",
28
- "@types/node": "^20.14.10",
26
+ "@tsconfig/node22": "^22.0.5",
27
+ "@types/jest": "^29.5.14",
28
+ "@types/node": "^25.2.3",
29
29
  "cz-conventional-changelog": "^3.3.0",
30
- "dets": "^0.16.0",
31
- "esbuild": "0.21.5",
30
+ "dets": "^0.17.0",
31
+ "esbuild": "^0.27.3",
32
32
  "jest": "^29.7.0",
33
- "prettier": "^3.3.2",
34
- "semantic-release": "^24.0.0",
35
- "ts-jest": "^29.1.5",
36
- "typescript": "^5.5.3"
33
+ "prettier": "^3.8.1",
34
+ "semantic-release": "^25.0.3",
35
+ "ts-jest": "^29.4.6",
36
+ "typescript": "^5.9.3"
37
37
  },
38
38
  "dependencies": {
39
- "axios": "^1.7.2"
39
+ "axios": "^1.13.5"
40
40
  },
41
41
  "repository": {
42
42
  "type": "git",