stardew-valley-data 0.8.0 → 0.9.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/CHANGELOG.md CHANGED
@@ -5,6 +5,97 @@ All notable changes to this project will be documented in this file.
5
5
  The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/), and this project
6
6
  adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
7
 
8
+ ## [0.9.0] - 2026-03-19
9
+
10
+ ### Added
11
+
12
+ - `ArtisanCalculator` class and `artisanCalculator()` factory added to the `calculator` module —
13
+ covers Roe, Aged Roe, Honey, Wine, Juice, Pickles, Jelly, Dried Mushrooms, Dried Fruit, and Smoked
14
+ Fish; returns sell price and (where applicable) energy/health values
15
+ - `ArtisanResult` and `ArtisanEnergyResult` types added to `src/types/calculator.ts`
16
+ - `ArtisanUses` interface added to `src/types/common.ts` —
17
+ `{ honey, wine, juice, pickles, jelly, driedMushrooms, driedFruit: boolean }`
18
+ - `artisanUses: ArtisanUses` field added to all crops (`data/crops.json`, `Crop` type), all
19
+ forageables (`data/forageables.json`, `Forageable` type), and all fruit tree produce
20
+ (`data/trees.json`, `FruitTreeProduce` type)
21
+ - `canSmoke: boolean` field added to all 77 fish in `data/fish.json` and `Fish` type — `true` for
22
+ all rod-caught fish except Seaweed, Green Algae, and White Algae
23
+ - `roe: FishRoe | null` field added to all 77 fish — `'roe'` for 68 standard roe producers,
24
+ `'caviar'` for Sturgeon (roe → Caviar in Preserves Jar), `null` for Squid/Midnight Squid (Squid
25
+ Ink) and non-pond items
26
+ - `fishPond: FishPond | null` field added to all 77 fish — `null` for non-pond items (algae,
27
+ jellies); all 71 pond-eligible fish include a `produce` array of `{ product, minPopulation }`
28
+ entries sourced from the wiki Fish Pond produce table
29
+ - `FishRoe`, `FishPond`, and `FishPondProduce` types added to `src/types/fish.ts`
30
+ - `.smokeable()`, `.byRoe(type)`, and `.pondEligible()` filter methods added to `FishQuery`
31
+ - `byArtisanUse(use: keyof ArtisanUses)` filter method added to `CropQuery`, `ForageableQuery`, and
32
+ `TreeQuery`
33
+ - `sample/artisan-uses/` — new cross-module sample showing all items grouped by artisan use across
34
+ crops, forageables, and fruit trees
35
+ - Cactus Fruit added to `data/forageables.json` (id `90`; fruit — wine, jelly, driedFruit)
36
+ - Tea Leaves moved from `data/forageables.json` to `data/crops.json` — vegetable,
37
+ spring/summer/fall, 20-day grow / 1-day regrow, juice and pickles artisan uses; growth stage
38
+ images added to `images/crops/tea-leaves/`
39
+ - Added `Energy.png`, `Health.png`, and `Poison.png` icon images (20×20) to `images/misc/`
40
+ - `maxQuality` field (`ItemQuality`) added to all farm animal produce and deluxe produce in
41
+ `data/animals.json` and `AnimalProduce` type
42
+ - `maxQuality` field added to all artisan goods in `data/artisan-goods.json` and `ArtisanGood` type
43
+ — `'iridium'` for cask-ageable goods, `'base'` for all others
44
+ - `maxQuality` field added to all forageables in `data/forageables.json` and `Forageable` type —
45
+ `'iridium'` for foraged items, `'base'` for resources (Wood, Stone, Sap, etc.)
46
+ - `maxQuality` field added to all crops in `data/crops.json` and `Crop` type — `'iridium'` for all
47
+ crops except Fiber (`'base'`)
48
+ - `ItemQuality` shared type (`'base' | 'silver' | 'gold' | 'iridium'`) added to
49
+ `src/types/common.ts`; used across `AnimalProduce`, `ArtisanGood`, `Crop`, `Forageable`, and
50
+ `Fish` types
51
+ - `data/fish.json` — `maxQuality` field added to all fish entries (already typed, now present in
52
+ data)
53
+
54
+ ### Changed
55
+
56
+ - Tea Leaves removed from `data/forageables.json`; consolidated to `data/crops.json`
57
+ - `images/forageables/Tea Leaves.png` and `images/craftable/seeds/Tea Sapling.png` removed —
58
+ replaced by unified images under `images/crops/tea-leaves/`; `data/crafting.json` reference
59
+ updated accordingly
60
+ - `FishQuality` type removed from `src/types/fish.ts`; `maxQuality` now uses the shared
61
+ `ItemQuality` type
62
+ - `tsconfig.json` — enabled `noUnusedLocals` and `noUnusedParameters` for stricter compile-time
63
+ checks
64
+
65
+ ### Documentation
66
+
67
+ - `src/modules/calculator/README.md` — added `ArtisanCalculator` methods, formulas, and examples
68
+ - `src/modules/crops/README.md` — added `byArtisanUse` filter and `artisanUses` fields table rows
69
+ - `src/modules/forageables/README.md` — added `byArtisanUse` filter and `artisanUses` fields table
70
+ rows
71
+ - `src/modules/trees/README.md` — added `byArtisanUse` filter and `produce.artisanUses` fields table
72
+ rows; added example usage
73
+ - `src/modules/fish/README.md` — added `canSmoke` row to fish fields table
74
+ - `src/modules/animals/README.md` — added `produce.maxQuality` and `deluxeProduce.maxQuality` rows
75
+ to farm animal fields table
76
+ - `src/modules/artisan-goods/README.md` — added `energyHealth` and `maxQuality` rows to fields table
77
+ - `src/modules/crops/README.md` — added `maxQuality` row to crop fields table
78
+ - `src/modules/fish/README.md` — added `energyHealth` and `maxQuality` rows to fish fields table
79
+ - `src/modules/forageables/README.md` — added `energyHealth` and `maxQuality` rows to forageable
80
+ fields table
81
+
82
+ ### Chore
83
+
84
+ - Renamed internal data constants from `all*Data` to `*Data` pattern across 7 modules (`fish`,
85
+ `forageables`, `cooking`, `bait`, `footwear`, `tackle`, `pierre-shop`) per naming conventions
86
+ - Fixed sort methods in `bait`, `tackle`, and `cooking` modules to use inline
87
+ `return new XxxQuery([...this.data].sort(...))` style for consistency
88
+ - Moved filter methods before sort methods in `cooking` module to match ordering convention
89
+ - Added JSDoc to filter/sort methods in `hats`, `footwear`, `weather`, `maps`, `weapon-stats`,
90
+ `bait`, and `tackle` modules
91
+ - Added `DayOfWeek` and `TraderShopItem` shared types to `src/types/common.ts`; five duplicate
92
+ day-of-week unions (`CarpenterDay`, `DesertTraderDay`, `IslandTraderDay`, `OasisDay`,
93
+ `LocationDay`) are now type aliases
94
+ - `DesertTraderItem` and `IslandTraderItem` are now aliases for the shared `TraderShopItem` type,
95
+ removing an identical 11-field interface duplicated across two files
96
+ - `CraftingIngredient` is now a type alias for the existing `Ingredient` type in `common.ts`,
97
+ removing a structurally identical duplicate interface
98
+
8
99
  ## [0.8.0] - 2026-03-18
9
100
 
10
101
  ### Fix
@@ -29,7 +120,7 @@ adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
29
120
 
30
121
  - Fix Typo in Wild Seed names to use abbreviated name over full
31
122
 
32
- ## [v0.5.0] - 2026-03-18
123
+ ## [0.5.0] - 2026-03-18
33
124
 
34
125
  ### Breaking Changes
35
126
 
@@ -50,19 +141,19 @@ adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
50
141
 
51
142
  - Bump Dependencies
52
143
 
53
- ## [v0.4.0] - 2026-03-15
144
+ ## [0.4.0] - 2026-03-15
54
145
 
55
146
  ### Breaking Changes
56
147
 
57
148
  - Change many of the output modules for parsing the file.
58
149
 
59
- ## [v0.3.0] - 2026-03-15
150
+ ## [0.3.0] - 2026-03-15
60
151
 
61
152
  ### Fix
62
153
 
63
154
  - Add missing Villager Events
64
155
 
65
- ## [v0.2.0] - 2026-03-10
156
+ ## [0.2.0] - 2026-03-10
66
157
 
67
158
  ### Added
68
159
 
package/data/animals.json CHANGED
@@ -105,13 +105,15 @@
105
105
  "id": "176",
106
106
  "name": "Egg",
107
107
  "sellPrice": 50,
108
- "image": "images/animals/produce/Egg.png"
108
+ "image": "images/animals/produce/Egg.png",
109
+ "maxQuality": "iridium"
109
110
  },
110
111
  "deluxeProduce": {
111
112
  "id": "174",
112
113
  "name": "Large Egg",
113
114
  "sellPrice": 95,
114
- "image": "images/animals/produce/Large Egg.png"
115
+ "image": "images/animals/produce/Large Egg.png",
116
+ "maxQuality": "iridium"
115
117
  },
116
118
  "image": "images/animals/White Chicken.png"
117
119
  },
@@ -131,13 +133,15 @@
131
133
  "id": "180",
132
134
  "name": "Brown Egg",
133
135
  "sellPrice": 50,
134
- "image": "images/animals/produce/Brown Egg.png"
136
+ "image": "images/animals/produce/Brown Egg.png",
137
+ "maxQuality": "iridium"
135
138
  },
136
139
  "deluxeProduce": {
137
140
  "id": "182",
138
141
  "name": "Large Brown Egg",
139
142
  "sellPrice": 95,
140
- "image": "images/animals/produce/Large Brown Egg.png"
143
+ "image": "images/animals/produce/Large Brown Egg.png",
144
+ "maxQuality": "iridium"
141
145
  },
142
146
  "image": "images/animals/Brown Chicken.png"
143
147
  },
@@ -157,13 +161,15 @@
157
161
  "id": "176",
158
162
  "name": "Egg",
159
163
  "sellPrice": 50,
160
- "image": "images/animals/produce/Egg.png"
164
+ "image": "images/animals/produce/Egg.png",
165
+ "maxQuality": "iridium"
161
166
  },
162
167
  "deluxeProduce": {
163
168
  "id": "174",
164
169
  "name": "Large Egg",
165
170
  "sellPrice": 95,
166
- "image": "images/animals/produce/Large Egg.png"
171
+ "image": "images/animals/produce/Large Egg.png",
172
+ "maxQuality": "iridium"
167
173
  },
168
174
  "image": "images/animals/Blue Chicken.png"
169
175
  },
@@ -183,7 +189,8 @@
183
189
  "id": "305",
184
190
  "name": "Void Egg",
185
191
  "sellPrice": 65,
186
- "image": "images/animals/produce/Void Egg.png"
192
+ "image": "images/animals/produce/Void Egg.png",
193
+ "maxQuality": "iridium"
187
194
  },
188
195
  "deluxeProduce": null,
189
196
  "image": "images/animals/Void Chicken.png"
@@ -204,7 +211,8 @@
204
211
  "id": "928",
205
212
  "name": "Golden Egg",
206
213
  "sellPrice": 500,
207
- "image": "images/animals/produce/Golden Egg.png"
214
+ "image": "images/animals/produce/Golden Egg.png",
215
+ "maxQuality": "iridium"
208
216
  },
209
217
  "deluxeProduce": null,
210
218
  "image": "images/animals/Golden Chicken.png"
@@ -225,13 +233,15 @@
225
233
  "id": "442",
226
234
  "name": "Duck Egg",
227
235
  "sellPrice": 95,
228
- "image": "images/animals/produce/Duck Egg.png"
236
+ "image": "images/animals/produce/Duck Egg.png",
237
+ "maxQuality": "iridium"
229
238
  },
230
239
  "deluxeProduce": {
231
240
  "id": "444",
232
241
  "name": "Duck Feather",
233
242
  "sellPrice": 250,
234
- "image": "images/animals/produce/Duck Feather.png"
243
+ "image": "images/animals/produce/Duck Feather.png",
244
+ "maxQuality": "iridium"
235
245
  },
236
246
  "image": "images/animals/Duck.png"
237
247
  },
@@ -251,13 +261,15 @@
251
261
  "id": "440",
252
262
  "name": "Wool",
253
263
  "sellPrice": 340,
254
- "image": "images/animals/produce/Wool.png"
264
+ "image": "images/animals/produce/Wool.png",
265
+ "maxQuality": "iridium"
255
266
  },
256
267
  "deluxeProduce": {
257
268
  "id": "446",
258
269
  "name": "Rabbit's Foot",
259
270
  "sellPrice": 565,
260
- "image": "images/animals/produce/Rabbit's Foot.png"
271
+ "image": "images/animals/produce/Rabbit's Foot.png",
272
+ "maxQuality": "iridium"
261
273
  },
262
274
  "image": "images/animals/Rabbit.png"
263
275
  },
@@ -277,7 +289,8 @@
277
289
  "id": "107",
278
290
  "name": "Dinosaur Egg",
279
291
  "sellPrice": 350,
280
- "image": "images/animals/produce/Dinosaur Egg.png"
292
+ "image": "images/animals/produce/Dinosaur Egg.png",
293
+ "maxQuality": "iridium"
281
294
  },
282
295
  "deluxeProduce": null,
283
296
  "image": "images/animals/Dinosaur.png"
@@ -298,13 +311,15 @@
298
311
  "id": "184",
299
312
  "name": "Milk",
300
313
  "sellPrice": 125,
301
- "image": "images/animals/produce/Milk.png"
314
+ "image": "images/animals/produce/Milk.png",
315
+ "maxQuality": "iridium"
302
316
  },
303
317
  "deluxeProduce": {
304
318
  "id": "186",
305
319
  "name": "Large Milk",
306
320
  "sellPrice": 190,
307
- "image": "images/animals/produce/Large Milk.png"
321
+ "image": "images/animals/produce/Large Milk.png",
322
+ "maxQuality": "iridium"
308
323
  },
309
324
  "image": "images/animals/White Cow.png"
310
325
  },
@@ -324,13 +339,15 @@
324
339
  "id": "184",
325
340
  "name": "Milk",
326
341
  "sellPrice": 125,
327
- "image": "images/animals/produce/Milk.png"
342
+ "image": "images/animals/produce/Milk.png",
343
+ "maxQuality": "iridium"
328
344
  },
329
345
  "deluxeProduce": {
330
346
  "id": "186",
331
347
  "name": "Large Milk",
332
348
  "sellPrice": 190,
333
- "image": "images/animals/produce/Large Milk.png"
349
+ "image": "images/animals/produce/Large Milk.png",
350
+ "maxQuality": "iridium"
334
351
  },
335
352
  "image": "images/animals/Brown Cow.png"
336
353
  },
@@ -350,13 +367,15 @@
350
367
  "id": "436",
351
368
  "name": "Goat Milk",
352
369
  "sellPrice": 225,
353
- "image": "images/animals/produce/Goat Milk.png"
370
+ "image": "images/animals/produce/Goat Milk.png",
371
+ "maxQuality": "iridium"
354
372
  },
355
373
  "deluxeProduce": {
356
374
  "id": "438",
357
375
  "name": "Large Goat Milk",
358
376
  "sellPrice": 345,
359
- "image": "images/animals/produce/Large Goat Milk.png"
377
+ "image": "images/animals/produce/Large Goat Milk.png",
378
+ "maxQuality": "iridium"
360
379
  },
361
380
  "image": "images/animals/Goat.png"
362
381
  },
@@ -376,7 +395,8 @@
376
395
  "id": "440",
377
396
  "name": "Wool",
378
397
  "sellPrice": 340,
379
- "image": "images/animals/produce/Wool.png"
398
+ "image": "images/animals/produce/Wool.png",
399
+ "maxQuality": "iridium"
380
400
  },
381
401
  "deluxeProduce": null,
382
402
  "image": "images/animals/Sheep.png"
@@ -397,7 +417,8 @@
397
417
  "id": "430",
398
418
  "name": "Truffle",
399
419
  "sellPrice": 625,
400
- "image": "images/animals/produce/Truffle.png"
420
+ "image": "images/animals/produce/Truffle.png",
421
+ "maxQuality": "iridium"
401
422
  },
402
423
  "deluxeProduce": null,
403
424
  "image": "images/animals/Pig.png"
@@ -418,7 +439,8 @@
418
439
  "id": "289",
419
440
  "name": "Ostrich Egg",
420
441
  "sellPrice": 600,
421
- "image": "images/animals/produce/Ostrich Egg.png"
442
+ "image": "images/animals/produce/Ostrich Egg.png",
443
+ "maxQuality": "iridium"
422
444
  },
423
445
  "deluxeProduce": null,
424
446
  "image": "images/animals/Ostrich.png"