@jeremyckahn/farmhand 1.19.21 → 1.19.22

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 (447) hide show
  1. package/dist/assets/{index-CG_lY1MJ.js → index-BjAIF9CZ.js} +7 -7
  2. package/dist/assets/{index-CG_lY1MJ.js.map → index-BjAIF9CZ.js.map} +1 -1
  3. package/dist/index.html +1 -1
  4. package/dist/service-worker.js +1 -1
  5. package/dist/service-worker.js.map +1 -1
  6. package/package.json +2 -3
  7. package/src/common/services/{randomNumber.ts → randomNumber.js} +0 -1
  8. package/src/common/{utils.ts → utils.js} +1 -1
  9. package/src/components/AccountingView/{AccountingView.tsx → AccountingView.js} +0 -1
  10. package/src/components/AchievementsView/{AchievementsView.tsx → AchievementsView.js} +0 -2
  11. package/src/components/AnimatedNumber/{AnimatedNumber.tsx → AnimatedNumber.js} +0 -3
  12. package/src/components/AppBar/{AppBar.tsx → AppBar.js} +0 -3
  13. package/src/components/BailOutErrorBoundary/{BailOutErrorBoundary.tsx → BailOutErrorBoundary.js} +0 -2
  14. package/src/components/Cellar/{CellarInventoryTabPanel.tsx → CellarInventoryTabPanel.js} +0 -2
  15. package/src/components/Cellar/{Keg.tsx → Keg.js} +1 -0
  16. package/src/components/ContextPane/{ContextPane.tsx → ContextPane.js} +0 -2
  17. package/src/components/ContextPane/{ContextPane.test.tsx → ContextPane.test.js} +0 -3
  18. package/src/components/CowCard/Bloodline/{Bloodline.test.tsx → Bloodline.test.js} +3 -6
  19. package/src/components/CowCard/{CowCard.tsx → CowCard.js} +2 -4
  20. package/src/components/CowCard/Subheader/{Subheader.tsx → Subheader.js} +0 -1
  21. package/src/components/CowPen/{Cow.tsx → Cow.js} +1 -15
  22. package/src/components/CowPen/{CowPen.test.tsx → CowPen.test.js} +1 -15
  23. package/src/components/CowPen/{Tumbleweeds.tsx → Tumbleweeds.js} +1 -2
  24. package/src/components/Farmhand/{Farmhand.context.tsx → Farmhand.context.js} +2 -2
  25. package/src/components/Farmhand/{Farmhand.tsx → Farmhand.js} +16 -83
  26. package/src/components/FermentationRecipeList/{FermentationRecipe.tsx → FermentationRecipe.js} +3 -4
  27. package/src/components/FermentationRecipeList/{FermentationRecipeList.tsx → FermentationRecipeList.js} +0 -3
  28. package/src/components/FermentationRecipeList/{FermentationRecipeList.test.tsx → FermentationRecipeList.test.js} +0 -5
  29. package/src/components/Field/{Field.tsx → Field.js} +1 -6
  30. package/src/components/Field/{Field.test.tsx → Field.test.js} +1 -0
  31. package/src/components/Home/{Home.tsx → Home.js} +0 -1
  32. package/src/components/Home/{SnowBackground.tsx → SnowBackground.js} +0 -2
  33. package/src/components/Inventory/{Inventory.tsx → Inventory.js} +2 -9
  34. package/src/components/Item/{Item.tsx → Item.js} +1 -2
  35. package/src/components/LogView/{LogView.tsx → LogView.js} +1 -2
  36. package/src/components/Navigation/{Navigation.tsx → Navigation.js} +1 -0
  37. package/src/components/NotificationSystem/{NotificationSystem.tsx → NotificationSystem.js} +1 -0
  38. package/src/components/OnlinePeersView/{OnlinePeersView.tsx → OnlinePeersView.js} +1 -1
  39. package/src/components/Plot/{Plot.tsx → Plot.js} +0 -5
  40. package/src/components/Plot/{Plot.test.tsx → Plot.test.js} +8 -8
  41. package/src/components/PriceEventView/{PriceEventView.test.tsx → PriceEventView.test.js} +0 -1
  42. package/src/components/ProgressBar/{ProgressBar.tsx → ProgressBar.js} +0 -2
  43. package/src/components/QuantityInput/{QuantityInput.tsx → QuantityInput.js} +0 -1
  44. package/src/components/Recipe/{Recipe.tsx → Recipe.js} +2 -1
  45. package/src/components/SettingsView/{RandomSeedInput.tsx → RandomSeedInput.js} +1 -1
  46. package/src/components/Shop/{Shop.tsx → Shop.js} +1 -2
  47. package/src/components/Stage/{Stage.tsx → Stage.js} +3 -6
  48. package/src/components/Stage/{Stage.test.tsx → Stage.test.js} +0 -1
  49. package/src/components/Toolbelt/{Toolbelt.tsx → Toolbelt.js} +0 -3
  50. package/src/components/UpgradePurchase/{UpgradePurchase.tsx → UpgradePurchase.js} +1 -0
  51. package/src/components/WineRecipeList/{WineRecipe.tsx → WineRecipe.js} +1 -2
  52. package/src/components/WineRecipeList/{WineRecipe.test.tsx → WineRecipe.test.js} +1 -10
  53. package/src/components/WineRecipeList/{WineRecipeList.tsx → WineRecipeList.js} +0 -1
  54. package/src/components/Workshop/{ForgeTabPanel.tsx → ForgeTabPanel.js} +0 -1
  55. package/src/components/Workshop/{getUpgradesAvailable.ts → getUpgradesAvailable.js} +0 -2
  56. package/src/components/Workshop/{getUpgradesAvailable.test.ts → getUpgradesAvailable.test.js} +0 -1
  57. package/src/{constants.ts → constants.js} +2 -2
  58. package/src/data/{achievements.ts → achievements.js} +0 -9
  59. package/src/data/{achievements.test.ts → achievements.test.js} +1 -2
  60. package/src/data/{crop.ts → crop.js} +4 -5
  61. package/src/data/crops/{asparagus.ts → asparagus.js} +0 -2
  62. package/src/data/crops/{carrot.ts → carrot.js} +0 -2
  63. package/src/data/crops/{corn.ts → corn.js} +0 -2
  64. package/src/data/crops/{garlic.ts → garlic.js} +0 -2
  65. package/src/data/crops/{grape.ts → grape.js} +7 -11
  66. package/src/data/crops/{jalapeno.ts → jalapeno.js} +0 -2
  67. package/src/data/crops/{olive.ts → olive.js} +0 -2
  68. package/src/data/crops/{onion.ts → onion.js} +0 -2
  69. package/src/data/crops/{pea.ts → pea.js} +0 -2
  70. package/src/data/crops/{potato.ts → potato.js} +0 -2
  71. package/src/data/crops/{pumpkin.ts → pumpkin.js} +0 -2
  72. package/src/data/crops/{soybean.ts → soybean.js} +0 -2
  73. package/src/data/crops/{spinach.ts → spinach.js} +0 -2
  74. package/src/data/crops/{strawberry.ts → strawberry.js} +0 -2
  75. package/src/data/crops/{sunflower.ts → sunflower.js} +0 -2
  76. package/src/data/crops/{sweet-potato.ts → sweet-potato.js} +0 -2
  77. package/src/data/crops/{tomato.ts → tomato.js} +0 -2
  78. package/src/data/crops/{watermelon.ts → watermelon.js} +0 -2
  79. package/src/data/crops/{wheat.ts → wheat.js} +0 -2
  80. package/src/data/{items.ts → items.js} +12 -12
  81. package/src/data/{levels.ts → levels.js} +0 -28
  82. package/src/data/{maps.ts → maps.js} +1 -2
  83. package/src/data/ores/{bronzeOre.ts → bronzeOre.js} +1 -1
  84. package/src/data/ores/{coal.ts → coal.js} +1 -1
  85. package/src/data/ores/{goldOre.ts → goldOre.js} +1 -1
  86. package/src/data/ores/{ironOre.ts → ironOre.js} +1 -1
  87. package/src/data/ores/{saltRock.ts → saltRock.js} +1 -1
  88. package/src/data/ores/{silverOre.ts → silverOre.js} +1 -1
  89. package/src/data/ores/{stone.ts → stone.js} +1 -1
  90. package/src/data/{recipes.ts → recipes.js} +43 -43
  91. package/src/{enums.ts → enums.js} +28 -28
  92. package/src/factories/{CoalFactory.ts → CoalFactory.js} +0 -2
  93. package/src/factories/{OreFactory.ts → OreFactory.js} +0 -3
  94. package/src/factories/{ResourceFactory.ts → ResourceFactory.js} +0 -4
  95. package/src/factories/{ResourceFactory.test.ts → ResourceFactory.test.js} +0 -4
  96. package/src/factories/{StoneFactory.ts → StoneFactory.js} +0 -1
  97. package/src/{fetch-utils.ts → fetch-utils.js} +0 -2
  98. package/src/game-logic/{field-purchase.test.ts → field-purchase.test.js} +2 -4
  99. package/src/game-logic/reducers/{applyCrows.ts → applyCrows.js} +0 -3
  100. package/src/game-logic/reducers/{applyLoanInterest.ts → applyLoanInterest.js} +1 -1
  101. package/src/game-logic/reducers/{applyPrecipitation.ts → applyPrecipitation.js} +6 -6
  102. package/src/game-logic/reducers/{computeStateForNextDay.ts → computeStateForNextDay.js} +2 -2
  103. package/src/game-logic/reducers/{makeFermentationRecipe.ts → makeFermentationRecipe.js} +0 -1
  104. package/src/game-logic/reducers/{makeWine.ts → makeWine.js} +0 -1
  105. package/src/game-logic/reducers/{makeWine.test.ts → makeWine.test.js} +2 -0
  106. package/src/game-logic/reducers/{minePlot.ts → minePlot.js} +0 -1
  107. package/src/game-logic/reducers/{processCellarSpoilage.ts → processCellarSpoilage.js} +1 -0
  108. package/src/game-logic/reducers/{processCellarSpoilage.test.ts → processCellarSpoilage.test.js} +5 -0
  109. package/src/game-logic/reducers/{processCowFertilizerProduction.ts → processCowFertilizerProduction.js} +1 -1
  110. package/src/game-logic/reducers/{processLevelUp.ts → processLevelUp.js} +0 -3
  111. package/src/game-logic/reducers/{purchaseField.test.ts → purchaseField.test.js} +0 -2
  112. package/src/game-logic/reducers/{purchaseForest.test.tsx → purchaseForest.test.js} +2 -6
  113. package/src/game-logic/reducers/{rotateNotificationLogs.ts → rotateNotificationLogs.js} +1 -1
  114. package/src/game-logic/reducers/{sellItem.test.ts → sellItem.test.js} +3 -0
  115. package/src/game-logic/reducers/{sellKeg.ts → sellKeg.js} +1 -0
  116. package/src/game-logic/reducers/{spawnWeeds.ts → spawnWeeds.js} +0 -1
  117. package/src/game-logic/reducers/{updateAchievements.ts → updateAchievements.js} +0 -1
  118. package/src/game-logic/reducers/{updatePeer.ts → updatePeer.js} +0 -1
  119. package/src/game-logic/reducers/{updatePeer.test.ts → updatePeer.test.js} +4 -0
  120. package/src/game-logic/reducers/{updatePlotShoveledState.test.ts → updatePlotShoveledState.test.js} +1 -0
  121. package/src/handlers/{peer-events.ts → peer-events.js} +0 -5
  122. package/src/handlers/{ui-events.tsx → ui-events.js} +6 -88
  123. package/src/handlers/{ui-events.test.ts → ui-events.test.js} +0 -2
  124. package/src/{index.tsx → index.js} +0 -2
  125. package/src/scripts/{generate-crop-table.ts → generate-crop-table.js} +4 -5
  126. package/src/services/{cellar.test.ts → cellar.test.js} +1 -1
  127. package/src/services/{wine.ts → wine.js} +0 -1
  128. package/src/shell/{notifications.test.ts → notifications.test.js} +13 -19
  129. package/src/{templates.ts → templates.js} +0 -8
  130. package/src/test-utils/{index.ts → index.js} +3 -3
  131. package/src/test-utils/stubs/{getKegStub.ts → getKegStub.js} +0 -1
  132. package/src/utils/{farmProductsSold.tsx → farmProductsSold.js} +0 -2
  133. package/src/utils/{getCropLifecycleDuration.ts → getCropLifecycleDuration.js} +0 -1
  134. package/src/utils/{getCropsAvailableToFerment.ts → getCropsAvailableToFerment.js} +0 -1
  135. package/src/utils/{getInventoryQuantityMap.ts → getInventoryQuantityMap.js} +0 -1
  136. package/src/utils/{getLevelEntitlements.ts → getLevelEntitlements.js} +0 -4
  137. package/src/utils/{getMaxYieldOfFermentationRecipe.ts → getMaxYieldOfFermentationRecipe.js} +0 -1
  138. package/src/utils/{getWineVarietiesAvailableToMake.ts → getWineVarietiesAvailableToMake.js} +0 -2
  139. package/src/utils/{index.tsx → index.js} +11 -25
  140. package/src/utils/{index.test.ts → index.test.js} +2 -0
  141. package/src/utils/{isItemAFarmProduct.ts → isItemAFarmProduct.js} +1 -1
  142. package/src/utils/{memoize.ts → memoize.js} +0 -2
  143. package/src/utils/{totalIngredientsInRecipe.ts → totalIngredientsInRecipe.js} +0 -2
  144. /package/src/common/{constants.ts → constants.js} +0 -0
  145. /package/src/common/services/{randomNumber.test.ts → randomNumber.test.js} +0 -0
  146. /package/src/common/{utils.test.ts → utils.test.js} +0 -0
  147. /package/src/components/AccountingView/{AccountingView.test.tsx → AccountingView.test.js} +0 -0
  148. /package/src/components/AccountingView/{index.ts → index.js} +0 -0
  149. /package/src/components/Achievement/{Achievement.tsx → Achievement.js} +0 -0
  150. /package/src/components/Achievement/{Achievement.test.tsx → Achievement.test.js} +0 -0
  151. /package/src/components/Achievement/{index.ts → index.js} +0 -0
  152. /package/src/components/AchievementsView/{AchievementsView.test.tsx → AchievementsView.test.js} +0 -0
  153. /package/src/components/AchievementsView/{index.ts → index.js} +0 -0
  154. /package/src/components/AnimatedNumber/{AnimatedNumber.test.tsx → AnimatedNumber.test.js} +0 -0
  155. /package/src/components/AnimatedNumber/{index.ts → index.js} +0 -0
  156. /package/src/components/AppBar/{AppBar.test.tsx → AppBar.test.js} +0 -0
  157. /package/src/components/AppBar/{index.ts → index.js} +0 -0
  158. /package/src/components/BailOutErrorBoundary/{BailOutErrorBoundary.test.tsx → BailOutErrorBoundary.test.js} +0 -0
  159. /package/src/components/BailOutErrorBoundary/{index.ts → index.js} +0 -0
  160. /package/src/components/Cellar/{Cellar.tsx → Cellar.js} +0 -0
  161. /package/src/components/Cellar/{FermentationTabPanel.tsx → FermentationTabPanel.js} +0 -0
  162. /package/src/components/Cellar/TabPanel/{index.tsx → index.js} +0 -0
  163. /package/src/components/Cellar/{WinemakingTabPanel.tsx → WinemakingTabPanel.js} +0 -0
  164. /package/src/components/Cellar/{index.ts → index.js} +0 -0
  165. /package/src/components/ChatRoom/{ChatRoom.tsx → ChatRoom.js} +0 -0
  166. /package/src/components/ChatRoom/{index.ts → index.js} +0 -0
  167. /package/src/components/ContextPane/{index.ts → index.js} +0 -0
  168. /package/src/components/CowCard/Bloodline/{Bloodline.tsx → Bloodline.js} +0 -0
  169. /package/src/components/CowCard/Bloodline/{index.ts → index.js} +0 -0
  170. /package/src/components/CowCard/{CowCard.test.tsx → CowCard.test.js} +0 -0
  171. /package/src/components/CowCard/Subheader/{Subheader.test.tsx → Subheader.test.js} +0 -0
  172. /package/src/components/CowCard/Subheader/{index.ts → index.js} +0 -0
  173. /package/src/components/CowCard/{index.ts → index.js} +0 -0
  174. /package/src/components/CowPen/{CowPen.tsx → CowPen.js} +0 -0
  175. /package/src/components/CowPen/{index.ts → index.js} +0 -0
  176. /package/src/components/CowPenContextMenu/{CowPenContextMenu.tsx → CowPenContextMenu.js} +0 -0
  177. /package/src/components/CowPenContextMenu/{CowPenContextMenu.test.tsx → CowPenContextMenu.test.js} +0 -0
  178. /package/src/components/CowPenContextMenu/TabPanel/{index.tsx → index.js} +0 -0
  179. /package/src/components/CowPenContextMenu/{index.ts → index.js} +0 -0
  180. /package/src/components/Elements/{index.ts → index.js} +0 -0
  181. /package/src/components/Farmhand/{Farmhand.test.ts → Farmhand.test.js} +0 -0
  182. /package/src/components/Farmhand/{FarmhandReducers.tsx → FarmhandReducers.js} +0 -0
  183. /package/src/components/Farmhand/helpers/{getInventoryQuantities.ts → getInventoryQuantities.js} +0 -0
  184. /package/src/components/Farmhand/helpers/{getInventoryQuantities.test.ts → getInventoryQuantities.test.js} +0 -0
  185. /package/src/components/Farmhand/{index.ts → index.js} +0 -0
  186. /package/src/components/Field/{index.ts → index.js} +0 -0
  187. /package/src/components/Forest/{Forest.tsx → Forest.js} +0 -0
  188. /package/src/components/Forest/{index.ts → index.js} +0 -0
  189. /package/src/components/Home/{Home.test.tsx → Home.test.js} +0 -0
  190. /package/src/components/Home/{index.ts → index.js} +0 -0
  191. /package/src/components/IngredientsList/{IngredientsList.tsx → IngredientsList.js} +0 -0
  192. /package/src/components/IngredientsList/{IngredientsList.test.tsx → IngredientsList.test.js} +0 -0
  193. /package/src/components/IngredientsList/{index.ts → index.js} +0 -0
  194. /package/src/components/Inventory/{Inventory.test.tsx → Inventory.test.js} +0 -0
  195. /package/src/components/Inventory/{index.ts → index.js} +0 -0
  196. /package/src/components/Item/{Item.test.tsx → Item.test.js} +0 -0
  197. /package/src/components/Item/{index.ts → index.js} +0 -0
  198. /package/src/components/KeybindingsView/{KeybindingsView.tsx → KeybindingsView.js} +0 -0
  199. /package/src/components/KeybindingsView/{KeybindingsView.test.tsx → KeybindingsView.test.js} +0 -0
  200. /package/src/components/KeybindingsView/{index.ts → index.js} +0 -0
  201. /package/src/components/LogView/{LogView.test.tsx → LogView.test.js} +0 -0
  202. /package/src/components/LogView/{index.ts → index.js} +0 -0
  203. /package/src/components/Navigation/{DayAndProgressContainer.tsx → DayAndProgressContainer.js} +0 -0
  204. /package/src/components/Navigation/{Navigation.test.tsx → Navigation.test.js} +0 -0
  205. /package/src/components/Navigation/{index.ts → index.js} +0 -0
  206. /package/src/components/NotificationSystem/{NotificationSystem.test.tsx → NotificationSystem.test.js} +0 -0
  207. /package/src/components/NotificationSystem/{index.ts → index.js} +0 -0
  208. /package/src/components/OnlinePeersView/OnlinePeer/{OnlinePeer.tsx → OnlinePeer.js} +0 -0
  209. /package/src/components/OnlinePeersView/OnlinePeer/{OnlinePeer.test.tsx → OnlinePeer.test.js} +0 -0
  210. /package/src/components/OnlinePeersView/OnlinePeer/{index.ts → index.js} +0 -0
  211. /package/src/components/OnlinePeersView/{OnlinePeersView.test.tsx → OnlinePeersView.test.js} +0 -0
  212. /package/src/components/OnlinePeersView/{index.ts → index.js} +0 -0
  213. /package/src/components/Plot/{index.ts → index.js} +0 -0
  214. /package/src/components/PriceEventView/{PriceEventView.tsx → PriceEventView.js} +0 -0
  215. /package/src/components/PriceEventView/{index.ts → index.js} +0 -0
  216. /package/src/components/ProgressBar/{ProgressBar.test.tsx → ProgressBar.test.js} +0 -0
  217. /package/src/components/ProgressBar/{index.ts → index.js} +0 -0
  218. /package/src/components/QuantityInput/{QuantityInput.test.tsx → QuantityInput.test.js} +0 -0
  219. /package/src/components/QuantityInput/{index.ts → index.js} +0 -0
  220. /package/src/components/QuickSelect/{QuickSelect.tsx → QuickSelect.js} +0 -0
  221. /package/src/components/QuickSelect/{QuickSelect.test.tsx → QuickSelect.test.js} +0 -0
  222. /package/src/components/QuickSelect/{index.ts → index.js} +0 -0
  223. /package/src/components/Recipe/{Recipe.test.tsx → Recipe.test.js} +0 -0
  224. /package/src/components/Recipe/{index.ts → index.js} +0 -0
  225. /package/src/components/RecipeList/{RecipeList.tsx → RecipeList.js} +0 -0
  226. /package/src/components/SearchBar/{SearchBar.tsx → SearchBar.js} +0 -0
  227. /package/src/components/SearchBar/{SearchBar.test.tsx → SearchBar.test.js} +0 -0
  228. /package/src/components/SearchBar/{index.ts → index.js} +0 -0
  229. /package/src/components/SettingsView/{RandomSeedInput.test.tsx → RandomSeedInput.test.js} +0 -0
  230. /package/src/components/SettingsView/{SettingsView.tsx → SettingsView.js} +0 -0
  231. /package/src/components/SettingsView/{SettingsView.test.tsx → SettingsView.test.js} +0 -0
  232. /package/src/components/SettingsView/{index.ts → index.js} +0 -0
  233. /package/src/components/Shop/{Shop.test.tsx → Shop.test.js} +0 -0
  234. /package/src/components/Shop/TabPanel/{index.tsx → index.js} +0 -0
  235. /package/src/components/Shop/{index.ts → index.js} +0 -0
  236. /package/src/components/Stage/{index.ts → index.js} +0 -0
  237. /package/src/components/StatsView/{StatsView.tsx → StatsView.js} +0 -0
  238. /package/src/components/StatsView/{StatsView.test.tsx → StatsView.test.js} +0 -0
  239. /package/src/components/StatsView/{index.ts → index.js} +0 -0
  240. /package/src/components/TierPurchase/{TierPurchase.tsx → TierPurchase.js} +0 -0
  241. /package/src/components/TierPurchase/{TierPurchase.test.tsx → TierPurchase.test.js} +0 -0
  242. /package/src/components/TierPurchase/{index.ts → index.js} +0 -0
  243. /package/src/components/Toolbelt/{Toolbelt.test.tsx → Toolbelt.test.js} +0 -0
  244. /package/src/components/Toolbelt/{index.ts → index.js} +0 -0
  245. /package/src/components/UpdateNotifier/{UpdateNotifier.tsx → UpdateNotifier.js} +0 -0
  246. /package/src/components/UpdateNotifier/{index.ts → index.js} +0 -0
  247. /package/src/components/UpgradePurchase/{UpgradePurchase.test.tsx → UpgradePurchase.test.js} +0 -0
  248. /package/src/components/UpgradePurchase/{index.ts → index.js} +0 -0
  249. /package/src/components/Workshop/{KitchenTabPanel.tsx → KitchenTabPanel.js} +0 -0
  250. /package/src/components/Workshop/{RecyclingTabPanel.tsx → RecyclingTabPanel.js} +0 -0
  251. /package/src/components/Workshop/TabPanel/{index.tsx → index.js} +0 -0
  252. /package/src/components/Workshop/{Workshop.tsx → Workshop.js} +0 -0
  253. /package/src/components/Workshop/{Workshop.test.tsx → Workshop.test.js} +0 -0
  254. /package/src/components/Workshop/{index.ts → index.js} +0 -0
  255. /package/src/{config.ts → config.js} +0 -0
  256. /package/src/data/__mocks__/{items.ts → items.js} +0 -0
  257. /package/src/data/__mocks__/{maps.ts → maps.js} +0 -0
  258. /package/src/data/__mocks__/{recipes.ts → recipes.js} +0 -0
  259. /package/src/data/__mocks__/{shop-inventory.ts → shop-inventory.js} +0 -0
  260. /package/src/data/crops/{index.ts → index.js} +0 -0
  261. /package/src/data/{fruit-names.ts → fruit-names.js} +0 -0
  262. /package/src/data/{items-map.ts → items-map.js} +0 -0
  263. /package/src/data/ores/{index.ts → index.js} +0 -0
  264. /package/src/data/{shop-inventory-cow.ts → shop-inventory-cow.js} +0 -0
  265. /package/src/data/{shop-inventory.ts → shop-inventory.js} +0 -0
  266. /package/src/data/{tools.ts → tools.js} +0 -0
  267. /package/src/data/{upgrades.ts → upgrades.js} +0 -0
  268. /package/src/factories/{CoalFactory.test.ts → CoalFactory.test.js} +0 -0
  269. /package/src/factories/{OreFactory.test.ts → OreFactory.test.js} +0 -0
  270. /package/src/factories/{StoneFactory.test.ts → StoneFactory.test.js} +0 -0
  271. /package/src/factories/{index.ts → index.js} +0 -0
  272. /package/src/game-logic/cows/{cow-selection.test.ts → cow-selection.test.js} +0 -0
  273. /package/src/game-logic/{item-purchase.test.ts → item-purchase.test.js} +0 -0
  274. /package/src/game-logic/{item-sell.test.ts → item-sell.test.js} +0 -0
  275. /package/src/game-logic/reducers/{addCowToInventory.ts → addCowToInventory.js} +0 -0
  276. /package/src/game-logic/reducers/{addExperience.ts → addExperience.js} +0 -0
  277. /package/src/game-logic/reducers/{addExperience.test.ts → addExperience.test.js} +0 -0
  278. /package/src/game-logic/reducers/{addItemToInventory.ts → addItemToInventory.js} +0 -0
  279. /package/src/game-logic/reducers/{addItemToInventory.test.ts → addItemToInventory.test.js} +0 -0
  280. /package/src/game-logic/reducers/{addKegToCellarInventory.ts → addKegToCellarInventory.js} +0 -0
  281. /package/src/game-logic/reducers/{addPeer.ts → addPeer.js} +0 -0
  282. /package/src/game-logic/reducers/{addRevenue.ts → addRevenue.js} +0 -0
  283. /package/src/game-logic/reducers/{adjustLoan.ts → adjustLoan.js} +0 -0
  284. /package/src/game-logic/reducers/{adjustLoan.test.ts → adjustLoan.test.js} +0 -0
  285. /package/src/game-logic/reducers/{applyCrows.test.ts → applyCrows.test.js} +0 -0
  286. /package/src/game-logic/reducers/{applyLoanInterest.test.ts → applyLoanInterest.test.js} +0 -0
  287. /package/src/game-logic/reducers/{applyPrecipitation.test.ts → applyPrecipitation.test.js} +0 -0
  288. /package/src/game-logic/reducers/{changeCowAutomaticHugState.ts → changeCowAutomaticHugState.js} +0 -0
  289. /package/src/game-logic/reducers/{changeCowAutomaticHugState.test.ts → changeCowAutomaticHugState.test.js} +0 -0
  290. /package/src/game-logic/reducers/{changeCowBreedingPenResident.ts → changeCowBreedingPenResident.js} +0 -0
  291. /package/src/game-logic/reducers/{changeCowBreedingPenResident.test.ts → changeCowBreedingPenResident.test.js} +0 -0
  292. /package/src/game-logic/reducers/{changeCowName.ts → changeCowName.js} +0 -0
  293. /package/src/game-logic/reducers/{changeCowName.test.ts → changeCowName.test.js} +0 -0
  294. /package/src/game-logic/reducers/{clearPlot.ts → clearPlot.js} +0 -0
  295. /package/src/game-logic/reducers/{clearPlot.test.ts → clearPlot.test.js} +0 -0
  296. /package/src/game-logic/reducers/{computeCowInventoryForNextDay.ts → computeCowInventoryForNextDay.js} +0 -0
  297. /package/src/game-logic/reducers/{computeCowInventoryForNextDay.test.ts → computeCowInventoryForNextDay.test.js} +0 -0
  298. /package/src/game-logic/reducers/{computeStateForNextDay.test.ts → computeStateForNextDay.test.js} +0 -0
  299. /package/src/game-logic/reducers/{consumeIngredients.ts → consumeIngredients.js} +0 -0
  300. /package/src/game-logic/reducers/{consumeIngredients.test.ts → consumeIngredients.test.js} +0 -0
  301. /package/src/game-logic/reducers/{createPriceEvent.ts → createPriceEvent.js} +0 -0
  302. /package/src/game-logic/reducers/{createPriceEvent.test.ts → createPriceEvent.test.js} +0 -0
  303. /package/src/game-logic/reducers/{decrementItemFromInventory.ts → decrementItemFromInventory.js} +0 -0
  304. /package/src/game-logic/reducers/{decrementItemFromInventory.test.ts → decrementItemFromInventory.test.js} +0 -0
  305. /package/src/game-logic/reducers/{fertilizePlot.ts → fertilizePlot.js} +0 -0
  306. /package/src/game-logic/reducers/{fertilizePlot.test.ts → fertilizePlot.test.js} +0 -0
  307. /package/src/game-logic/reducers/{forRange.ts → forRange.js} +0 -0
  308. /package/src/game-logic/reducers/{forRange.test.ts → forRange.test.js} +0 -0
  309. /package/src/game-logic/reducers/{generatePriceEvents.ts → generatePriceEvents.js} +0 -0
  310. /package/src/game-logic/reducers/{generatePriceEvents.test.ts → generatePriceEvents.test.js} +0 -0
  311. /package/src/game-logic/reducers/{harvestPlot.ts → harvestPlot.js} +0 -0
  312. /package/src/game-logic/reducers/{harvestPlot.test.ts → harvestPlot.test.js} +0 -0
  313. /package/src/game-logic/reducers/{helpers.tsx → helpers.js} +0 -0
  314. /package/src/game-logic/reducers/{hugCow.ts → hugCow.js} +0 -0
  315. /package/src/game-logic/reducers/{hugCow.test.ts → hugCow.test.js} +0 -0
  316. /package/src/game-logic/reducers/{incrementPlotContentAge.ts → incrementPlotContentAge.js} +0 -0
  317. /package/src/game-logic/reducers/{incrementPlotContentAge.test.ts → incrementPlotContentAge.test.js} +0 -0
  318. /package/src/game-logic/reducers/{index.ts → index.js} +0 -0
  319. /package/src/game-logic/reducers/{makeFermentationRecipe.test.ts → makeFermentationRecipe.test.js} +0 -0
  320. /package/src/game-logic/reducers/{makeRecipe.ts → makeRecipe.js} +0 -0
  321. /package/src/game-logic/reducers/{makeRecipe.test.ts → makeRecipe.test.js} +0 -0
  322. /package/src/game-logic/reducers/{minePlot.test.ts → minePlot.test.js} +0 -0
  323. /package/src/game-logic/reducers/{modifyCow.ts → modifyCow.js} +0 -0
  324. /package/src/game-logic/reducers/{modifyFieldPlotAt.ts → modifyFieldPlotAt.js} +0 -0
  325. /package/src/game-logic/reducers/{offerCow.ts → offerCow.js} +0 -0
  326. /package/src/game-logic/reducers/{offerCow.test.ts → offerCow.test.js} +0 -0
  327. /package/src/game-logic/reducers/{plantInPlot.ts → plantInPlot.js} +0 -0
  328. /package/src/game-logic/reducers/{plantInPlot.test.ts → plantInPlot.test.js} +0 -0
  329. /package/src/game-logic/reducers/{prependPendingPeerMessage.ts → prependPendingPeerMessage.js} +0 -0
  330. /package/src/game-logic/reducers/{prependPendingPeerMessage.test.ts → prependPendingPeerMessage.test.js} +0 -0
  331. /package/src/game-logic/reducers/{processCellar.ts → processCellar.js} +0 -0
  332. /package/src/game-logic/reducers/{processCellar.test.ts → processCellar.test.js} +0 -0
  333. /package/src/game-logic/reducers/{processCowAttrition.ts → processCowAttrition.js} +0 -0
  334. /package/src/game-logic/reducers/{processCowAttrition.test.ts → processCowAttrition.test.js} +0 -0
  335. /package/src/game-logic/reducers/{processCowBreeding.ts → processCowBreeding.js} +0 -0
  336. /package/src/game-logic/reducers/{processCowBreeding.test.ts → processCowBreeding.test.js} +0 -0
  337. /package/src/game-logic/reducers/{processCowFertilizerProduction.test.ts → processCowFertilizerProduction.test.js} +0 -0
  338. /package/src/game-logic/reducers/{processFeedingCows.ts → processFeedingCows.js} +0 -0
  339. /package/src/game-logic/reducers/{processFeedingCows.test.ts → processFeedingCows.test.js} +0 -0
  340. /package/src/game-logic/reducers/{processField.ts → processField.js} +0 -0
  341. /package/src/game-logic/reducers/{processLevelUp.test.ts → processLevelUp.test.js} +0 -0
  342. /package/src/game-logic/reducers/{processMilkingCows.ts → processMilkingCows.js} +0 -0
  343. /package/src/game-logic/reducers/{processMilkingCows.test.ts → processMilkingCows.test.js} +0 -0
  344. /package/src/game-logic/reducers/{processNerfs.ts → processNerfs.js} +0 -0
  345. /package/src/game-logic/reducers/{processNerfs.test.ts → processNerfs.test.js} +0 -0
  346. /package/src/game-logic/reducers/{processSprinklers.ts → processSprinklers.js} +0 -0
  347. /package/src/game-logic/reducers/{processSprinklers.test.ts → processSprinklers.test.js} +0 -0
  348. /package/src/game-logic/reducers/{processWeather.ts → processWeather.js} +0 -0
  349. /package/src/game-logic/reducers/{processWeather.test.ts → processWeather.test.js} +0 -0
  350. /package/src/game-logic/reducers/{purchaseCellar.ts → purchaseCellar.js} +0 -0
  351. /package/src/game-logic/reducers/{purchaseCellar.test.ts → purchaseCellar.test.js} +0 -0
  352. /package/src/game-logic/reducers/{purchaseCombine.ts → purchaseCombine.js} +0 -0
  353. /package/src/game-logic/reducers/{purchaseCombine.test.ts → purchaseCombine.test.js} +0 -0
  354. /package/src/game-logic/reducers/{purchaseComposter.ts → purchaseComposter.js} +0 -0
  355. /package/src/game-logic/reducers/{purchaseComposter.test.ts → purchaseComposter.test.js} +0 -0
  356. /package/src/game-logic/reducers/{purchaseCow.ts → purchaseCow.js} +0 -0
  357. /package/src/game-logic/reducers/{purchaseCow.test.ts → purchaseCow.test.js} +0 -0
  358. /package/src/game-logic/reducers/{purchaseCowPen.ts → purchaseCowPen.js} +0 -0
  359. /package/src/game-logic/reducers/{purchaseCowPen.test.ts → purchaseCowPen.test.js} +0 -0
  360. /package/src/game-logic/reducers/{purchaseField.ts → purchaseField.js} +0 -0
  361. /package/src/game-logic/reducers/{purchaseForest.ts → purchaseForest.js} +0 -0
  362. /package/src/game-logic/reducers/{purchaseItem.ts → purchaseItem.js} +0 -0
  363. /package/src/game-logic/reducers/{purchaseItem.test.ts → purchaseItem.test.js} +0 -0
  364. /package/src/game-logic/reducers/{purchaseSmelter.ts → purchaseSmelter.js} +0 -0
  365. /package/src/game-logic/reducers/{purchaseSmelter.test.ts → purchaseSmelter.test.js} +0 -0
  366. /package/src/game-logic/reducers/{purchaseStorageExpansion.ts → purchaseStorageExpansion.js} +0 -0
  367. /package/src/game-logic/reducers/{purchaseStorageExpansion.test.ts → purchaseStorageExpansion.test.js} +0 -0
  368. /package/src/game-logic/reducers/{removeCowFromInventory.ts → removeCowFromInventory.js} +0 -0
  369. /package/src/game-logic/reducers/{removeFieldPlotAt.ts → removeFieldPlotAt.js} +0 -0
  370. /package/src/game-logic/reducers/{removeKegFromCellar.ts → removeKegFromCellar.js} +0 -0
  371. /package/src/game-logic/reducers/{removePeer.ts → removePeer.js} +0 -0
  372. /package/src/game-logic/reducers/{rotateNotificationLogs.test.ts → rotateNotificationLogs.test.js} +0 -0
  373. /package/src/game-logic/reducers/{selectCow.ts → selectCow.js} +0 -0
  374. /package/src/game-logic/reducers/{selectCow.test.ts → selectCow.test.js} +0 -0
  375. /package/src/game-logic/reducers/{sellCow.ts → sellCow.js} +0 -0
  376. /package/src/game-logic/reducers/{sellCow.test.ts → sellCow.test.js} +0 -0
  377. /package/src/game-logic/reducers/{sellItem.ts → sellItem.js} +0 -0
  378. /package/src/game-logic/reducers/{sellKeg.test.ts → sellKeg.test.js} +0 -0
  379. /package/src/game-logic/reducers/{setScarecrow.ts → setScarecrow.js} +0 -0
  380. /package/src/game-logic/reducers/{setScarecrow.test.ts → setScarecrow.test.js} +0 -0
  381. /package/src/game-logic/reducers/{setSprinkler.ts → setSprinkler.js} +0 -0
  382. /package/src/game-logic/reducers/{setSprinkler.test.ts → setSprinkler.test.js} +0 -0
  383. /package/src/game-logic/reducers/{showNotification.ts → showNotification.js} +0 -0
  384. /package/src/game-logic/reducers/{showNotification.test.ts → showNotification.test.js} +0 -0
  385. /package/src/game-logic/reducers/{spawnWeeds.test.ts → spawnWeeds.test.js} +0 -0
  386. /package/src/game-logic/reducers/{unlockTool.ts → unlockTool.js} +0 -0
  387. /package/src/game-logic/reducers/{unlockTool.test.ts → unlockTool.test.js} +0 -0
  388. /package/src/game-logic/reducers/{updateAchievements.test.ts → updateAchievements.test.js} +0 -0
  389. /package/src/game-logic/reducers/{updateFinancialRecords.ts → updateFinancialRecords.js} +0 -0
  390. /package/src/game-logic/reducers/{updateFinancialRecords.test.ts → updateFinancialRecords.test.js} +0 -0
  391. /package/src/game-logic/reducers/{updateInventoryRecordsForNextDay.ts → updateInventoryRecordsForNextDay.js} +0 -0
  392. /package/src/game-logic/reducers/{updateInventoryRecordsForNextDay.test.ts → updateInventoryRecordsForNextDay.test.js} +0 -0
  393. /package/src/game-logic/reducers/{updateLearnedRecipes.ts → updateLearnedRecipes.js} +0 -0
  394. /package/src/game-logic/reducers/{updateLearnedRecipes.test.ts → updateLearnedRecipes.test.js} +0 -0
  395. /package/src/game-logic/reducers/{updatePlotShoveledState.ts → updatePlotShoveledState.js} +0 -0
  396. /package/src/game-logic/reducers/{updatePriceEvents.tsx → updatePriceEvents.js} +0 -0
  397. /package/src/game-logic/reducers/{updatePriceEvents.test.ts → updatePriceEvents.test.js} +0 -0
  398. /package/src/game-logic/reducers/{upgradeTool.ts → upgradeTool.js} +0 -0
  399. /package/src/game-logic/reducers/{upgradeTool.test.ts → upgradeTool.test.js} +0 -0
  400. /package/src/game-logic/reducers/{waterAllPlots.ts → waterAllPlots.js} +0 -0
  401. /package/src/game-logic/reducers/{waterAllPlots.test.ts → waterAllPlots.test.js} +0 -0
  402. /package/src/game-logic/reducers/{waterField.ts → waterField.js} +0 -0
  403. /package/src/game-logic/reducers/{waterPlot.ts → waterPlot.js} +0 -0
  404. /package/src/game-logic/reducers/{waterPlot.test.ts → waterPlot.test.js} +0 -0
  405. /package/src/game-logic/reducers/{withdrawCow.ts → withdrawCow.js} +0 -0
  406. /package/src/game-logic/reducers/{withdrawCow.test.ts → withdrawCow.test.js} +0 -0
  407. /package/src/img/__mocks__/{index.ts → index.js} +0 -0
  408. /package/src/img/{index.ts → index.js} +0 -0
  409. /package/src/interfaces/{Factory.ts → Factory.js} +0 -0
  410. /package/src/{mui-theme.ts → mui-theme.js} +0 -0
  411. /package/src/{polyfills.ts → polyfills.js} +0 -0
  412. /package/src/services/{cellar.ts → cellar.js} +0 -0
  413. /package/src/services/{wine.test.ts → wine.test.js} +0 -0
  414. /package/src/{setupTests.ts → setupTests.js} +0 -0
  415. /package/src/shell/{bootup.test.ts → bootup.test.js} +0 -0
  416. /package/src/shell/{field.test.ts → field.test.js} +0 -0
  417. /package/src/shell/{game-saving.test.ts → game-saving.test.js} +0 -0
  418. /package/src/shell/{navigation.test.ts → navigation.test.js} +0 -0
  419. /package/src/shell/{pending-notifications.test.ts → pending-notifications.test.js} +0 -0
  420. /package/src/{strings.ts → strings.js} +0 -0
  421. /package/src/test-utils/stubs/{cowStub.ts → cowStub.js} +0 -0
  422. /package/src/test-utils/stubs/{farmhandStub.tsx → farmhandStub.js} +0 -0
  423. /package/src/test-utils/stubs/{itemStub.ts → itemStub.js} +0 -0
  424. /package/src/test-utils/stubs/{peerMetadataStub.ts → peerMetadataStub.js} +0 -0
  425. /package/src/test-utils/stubs/{saveDataStubFactory.ts → saveDataStubFactory.js} +0 -0
  426. /package/src/test-utils/{ui.ts → ui.js} +0 -0
  427. /package/src/utils/__snapshots__/{index.test.ts.snap → index.test.js.snap} +0 -0
  428. /package/src/utils/{findInField.ts → findInField.js} +0 -0
  429. /package/src/utils/{findInField.test.ts → findInField.test.js} +0 -0
  430. /package/src/utils/{getCropLifecycleDuration.test.ts → getCropLifecycleDuration.test.js} +0 -0
  431. /package/src/utils/{getCropsAvailableToFerment.test.ts → getCropsAvailableToFerment.test.js} +0 -0
  432. /package/src/utils/{getItemBaseValue.ts → getItemBaseValue.js} +0 -0
  433. /package/src/utils/{getKegSpoilageRate.ts → getKegSpoilageRate.js} +0 -0
  434. /package/src/utils/{getKegSpoilageRate.test.ts → getKegSpoilageRate.test.js} +0 -0
  435. /package/src/utils/{getKegValue.ts → getKegValue.js} +0 -0
  436. /package/src/utils/{getKegValue.test.ts → getKegValue.test.js} +0 -0
  437. /package/src/utils/{getLevelEntitlements.test.ts → getLevelEntitlements.test.js} +0 -0
  438. /package/src/utils/{getMaxYieldOfFermentationRecipe.test.ts → getMaxYieldOfFermentationRecipe.test.js} +0 -0
  439. /package/src/utils/{getSaltRequirementsForFermentationRecipe.ts → getSaltRequirementsForFermentationRecipe.js} +0 -0
  440. /package/src/utils/{getWineVarietiesAvailableToMake.test.ts → getWineVarietiesAvailableToMake.test.js} +0 -0
  441. /package/src/utils/{getYeastRequiredForWine.ts → getYeastRequiredForWine.js} +0 -0
  442. /package/src/utils/{isItemAGrownCrop.ts → isItemAGrownCrop.js} +0 -0
  443. /package/src/utils/{levelAchieved.ts → levelAchieved.js} +0 -0
  444. /package/src/utils/{moneyString.ts → moneyString.js} +0 -0
  445. /package/src/utils/{moneyString.test.ts → moneyString.test.js} +0 -0
  446. /package/src/utils/{noop.ts → noop.js} +0 -0
  447. /package/src/utils/{totalIngredientsInRecipe.test.ts → totalIngredientsInRecipe.test.js} +0 -0
package/dist/index.html CHANGED
@@ -75,7 +75,7 @@
75
75
  gtag('config', analyticsID)
76
76
  })()
77
77
  </script>
78
- <script type="module" crossorigin src="./assets/index-CG_lY1MJ.js"></script>
78
+ <script type="module" crossorigin src="./assets/index-BjAIF9CZ.js"></script>
79
79
  <link rel="stylesheet" crossorigin href="./assets/index-EAmLqUoU.css">
80
80
  <link rel="manifest" href="./manifest.webmanifest"></head>
81
81
  <body>
@@ -1,2 +1,2 @@
1
- if(!self.define){let e,s={};const i=(i,n)=>(i=new URL(i+".js",n).href,s[i]||new Promise(s=>{if("document"in self){const e=document.createElement("script");e.src=i,e.onload=s,document.head.appendChild(e)}else e=i,importScripts(i),s()}).then(()=>{let e=s[i];if(!e)throw new Error(`Module ${i} didn’t register its module`);return e}));self.define=(n,o)=>{const r=e||("document"in self?document.currentScript.src:"")||location.href;if(s[r])return;let d={};const l=e=>i(e,r),t={module:{uri:r},exports:d,require:l};s[r]=Promise.all(n.map(e=>t[e]||l(e))).then(e=>(o(...e),d))}}define(["./workbox-1ef09536"],function(e){"use strict";self.addEventListener("message",e=>{e.data&&"SKIP_WAITING"===e.data.type&&self.skipWaiting()}),e.precacheAndRoute([{url:"index.html",revision:"a1c92de9c95bea8ed6f4580b9232df81"},{url:"electron.js",revision:"b0456826f47539f6c1957c3add5eb959"},{url:"assets/workbox-window.prod.es5-BIl4cyR9.js",revision:null},{url:"assets/index-EAmLqUoU.css",revision:null},{url:"assets/index-CG_lY1MJ.js",revision:null},{url:"favicon.ico",revision:"445bb19d4a8fd46eb433dd43cbdce691"},{url:"logo192.png",revision:"70746d790b8990639d1390337d77d81a"},{url:"logo512.png",revision:"b044ab46b3f33f0e2d313d961bf1f654"},{url:"logoMaskable.png",revision:"23be58ccf16df9f43658aad3da30056d"},{url:"manifest.webmanifest",revision:"3ad071a00582451c9cdeb827b37b9ebe"}],{}),e.cleanupOutdatedCaches(),e.registerRoute(new e.NavigationRoute(e.createHandlerBoundToURL("index.html")))});
1
+ if(!self.define){let e,s={};const i=(i,n)=>(i=new URL(i+".js",n).href,s[i]||new Promise(s=>{if("document"in self){const e=document.createElement("script");e.src=i,e.onload=s,document.head.appendChild(e)}else e=i,importScripts(i),s()}).then(()=>{let e=s[i];if(!e)throw new Error(`Module ${i} didn’t register its module`);return e}));self.define=(n,o)=>{const r=e||("document"in self?document.currentScript.src:"")||location.href;if(s[r])return;let d={};const l=e=>i(e,r),t={module:{uri:r},exports:d,require:l};s[r]=Promise.all(n.map(e=>t[e]||l(e))).then(e=>(o(...e),d))}}define(["./workbox-1ef09536"],function(e){"use strict";self.addEventListener("message",e=>{e.data&&"SKIP_WAITING"===e.data.type&&self.skipWaiting()}),e.precacheAndRoute([{url:"index.html",revision:"f9aa15b267fcd93a669cdd04a303d7e4"},{url:"electron.js",revision:"b0456826f47539f6c1957c3add5eb959"},{url:"assets/workbox-window.prod.es5-BIl4cyR9.js",revision:null},{url:"assets/index-EAmLqUoU.css",revision:null},{url:"assets/index-BjAIF9CZ.js",revision:null},{url:"favicon.ico",revision:"445bb19d4a8fd46eb433dd43cbdce691"},{url:"logo192.png",revision:"70746d790b8990639d1390337d77d81a"},{url:"logo512.png",revision:"b044ab46b3f33f0e2d313d961bf1f654"},{url:"logoMaskable.png",revision:"23be58ccf16df9f43658aad3da30056d"},{url:"manifest.webmanifest",revision:"3ad071a00582451c9cdeb827b37b9ebe"}],{}),e.cleanupOutdatedCaches(),e.registerRoute(new e.NavigationRoute(e.createHandlerBoundToURL("index.html")))});
2
2
  //# sourceMappingURL=service-worker.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"service-worker.js","sources":["../../../../../tmp/e7545006cbe4aca953a3f69db2d32c01/service-worker.js"],"sourcesContent":["import {precacheAndRoute as workbox_precaching_precacheAndRoute} from '/home/runner/work/farmhand/farmhand/node_modules/workbox-precaching/precacheAndRoute.mjs';\nimport {cleanupOutdatedCaches as workbox_precaching_cleanupOutdatedCaches} from '/home/runner/work/farmhand/farmhand/node_modules/workbox-precaching/cleanupOutdatedCaches.mjs';\nimport {registerRoute as workbox_routing_registerRoute} from '/home/runner/work/farmhand/farmhand/node_modules/workbox-routing/registerRoute.mjs';\nimport {NavigationRoute as workbox_routing_NavigationRoute} from '/home/runner/work/farmhand/farmhand/node_modules/workbox-routing/NavigationRoute.mjs';\nimport {createHandlerBoundToURL as workbox_precaching_createHandlerBoundToURL} from '/home/runner/work/farmhand/farmhand/node_modules/workbox-precaching/createHandlerBoundToURL.mjs';/**\n * Welcome to your Workbox-powered service worker!\n *\n * You'll need to register this file in your web app.\n * See https://goo.gl/nhQhGp\n *\n * The rest of the code is auto-generated. Please don't update this file\n * directly; instead, make changes to your Workbox build configuration\n * and re-run your build process.\n * See https://goo.gl/2aRDsh\n */\n\n\n\n\n\n\n\n\nself.addEventListener('message', (event) => {\n if (event.data && event.data.type === 'SKIP_WAITING') {\n self.skipWaiting();\n }\n});\n\n\n\n\n/**\n * The precacheAndRoute() method efficiently caches and responds to\n * requests for URLs in the manifest.\n * See https://goo.gl/S9QRab\n */\nworkbox_precaching_precacheAndRoute([\n {\n \"url\": \"index.html\",\n \"revision\": \"a1c92de9c95bea8ed6f4580b9232df81\"\n },\n {\n \"url\": \"electron.js\",\n \"revision\": \"b0456826f47539f6c1957c3add5eb959\"\n },\n {\n \"url\": \"assets/workbox-window.prod.es5-BIl4cyR9.js\",\n \"revision\": null\n },\n {\n \"url\": \"assets/index-EAmLqUoU.css\",\n \"revision\": null\n },\n {\n \"url\": \"assets/index-CG_lY1MJ.js\",\n \"revision\": null\n },\n {\n \"url\": \"favicon.ico\",\n \"revision\": \"445bb19d4a8fd46eb433dd43cbdce691\"\n },\n {\n \"url\": \"logo192.png\",\n \"revision\": \"70746d790b8990639d1390337d77d81a\"\n },\n {\n \"url\": \"logo512.png\",\n \"revision\": \"b044ab46b3f33f0e2d313d961bf1f654\"\n },\n {\n \"url\": \"logoMaskable.png\",\n \"revision\": \"23be58ccf16df9f43658aad3da30056d\"\n },\n {\n \"url\": \"manifest.webmanifest\",\n \"revision\": \"3ad071a00582451c9cdeb827b37b9ebe\"\n }\n], {});\nworkbox_precaching_cleanupOutdatedCaches();\nworkbox_routing_registerRoute(new workbox_routing_NavigationRoute(workbox_precaching_createHandlerBoundToURL(\"index.html\")));\n\n\n\n\n\n\n"],"names":["self","addEventListener","event","data","type","skipWaiting","workbox_precaching_precacheAndRoute","url","revision","workbox_precaching_cleanupOutdatedCaches","workbox","registerRoute","workbox_routing_NavigationRoute","NavigationRoute","workbox_precaching_createHandlerBoundToURL"],"mappings":"inBAuBAA,KAAKC,iBAAiB,UAAYC,IAC5BA,EAAMC,MAA4B,iBAApBD,EAAMC,KAAKC,MAC3BJ,KAAKK,gBAYTC,EAAAA,iBAAoC,CAClC,CACEC,IAAO,aACPC,SAAY,oCAEd,CACED,IAAO,cACPC,SAAY,oCAEd,CACED,IAAO,6CACPC,SAAY,MAEd,CACED,IAAO,4BACPC,SAAY,MAEd,CACED,IAAO,2BACPC,SAAY,MAEd,CACED,IAAO,cACPC,SAAY,oCAEd,CACED,IAAO,cACPC,SAAY,oCAEd,CACED,IAAO,cACPC,SAAY,oCAEd,CACED,IAAO,mBACPC,SAAY,oCAEd,CACED,IAAO,uBACPC,SAAY,qCAEb,CAAE,GACLC,EAAAA,wBAC6BC,EAAAC,cAAC,IAAIC,EAA+BC,gBAACC,0BAA2C"}
1
+ {"version":3,"file":"service-worker.js","sources":["../../../../../tmp/1e9e670cbd98162e6789a7d82acd55e7/service-worker.js"],"sourcesContent":["import {precacheAndRoute as workbox_precaching_precacheAndRoute} from '/home/runner/work/farmhand/farmhand/node_modules/workbox-precaching/precacheAndRoute.mjs';\nimport {cleanupOutdatedCaches as workbox_precaching_cleanupOutdatedCaches} from '/home/runner/work/farmhand/farmhand/node_modules/workbox-precaching/cleanupOutdatedCaches.mjs';\nimport {registerRoute as workbox_routing_registerRoute} from '/home/runner/work/farmhand/farmhand/node_modules/workbox-routing/registerRoute.mjs';\nimport {NavigationRoute as workbox_routing_NavigationRoute} from '/home/runner/work/farmhand/farmhand/node_modules/workbox-routing/NavigationRoute.mjs';\nimport {createHandlerBoundToURL as workbox_precaching_createHandlerBoundToURL} from '/home/runner/work/farmhand/farmhand/node_modules/workbox-precaching/createHandlerBoundToURL.mjs';/**\n * Welcome to your Workbox-powered service worker!\n *\n * You'll need to register this file in your web app.\n * See https://goo.gl/nhQhGp\n *\n * The rest of the code is auto-generated. Please don't update this file\n * directly; instead, make changes to your Workbox build configuration\n * and re-run your build process.\n * See https://goo.gl/2aRDsh\n */\n\n\n\n\n\n\n\n\nself.addEventListener('message', (event) => {\n if (event.data && event.data.type === 'SKIP_WAITING') {\n self.skipWaiting();\n }\n});\n\n\n\n\n/**\n * The precacheAndRoute() method efficiently caches and responds to\n * requests for URLs in the manifest.\n * See https://goo.gl/S9QRab\n */\nworkbox_precaching_precacheAndRoute([\n {\n \"url\": \"index.html\",\n \"revision\": \"f9aa15b267fcd93a669cdd04a303d7e4\"\n },\n {\n \"url\": \"electron.js\",\n \"revision\": \"b0456826f47539f6c1957c3add5eb959\"\n },\n {\n \"url\": \"assets/workbox-window.prod.es5-BIl4cyR9.js\",\n \"revision\": null\n },\n {\n \"url\": \"assets/index-EAmLqUoU.css\",\n \"revision\": null\n },\n {\n \"url\": \"assets/index-BjAIF9CZ.js\",\n \"revision\": null\n },\n {\n \"url\": \"favicon.ico\",\n \"revision\": \"445bb19d4a8fd46eb433dd43cbdce691\"\n },\n {\n \"url\": \"logo192.png\",\n \"revision\": \"70746d790b8990639d1390337d77d81a\"\n },\n {\n \"url\": \"logo512.png\",\n \"revision\": \"b044ab46b3f33f0e2d313d961bf1f654\"\n },\n {\n \"url\": \"logoMaskable.png\",\n \"revision\": \"23be58ccf16df9f43658aad3da30056d\"\n },\n {\n \"url\": \"manifest.webmanifest\",\n \"revision\": \"3ad071a00582451c9cdeb827b37b9ebe\"\n }\n], {});\nworkbox_precaching_cleanupOutdatedCaches();\nworkbox_routing_registerRoute(new workbox_routing_NavigationRoute(workbox_precaching_createHandlerBoundToURL(\"index.html\")));\n\n\n\n\n\n\n"],"names":["self","addEventListener","event","data","type","skipWaiting","workbox_precaching_precacheAndRoute","url","revision","workbox_precaching_cleanupOutdatedCaches","workbox","registerRoute","workbox_routing_NavigationRoute","NavigationRoute","workbox_precaching_createHandlerBoundToURL"],"mappings":"inBAuBAA,KAAKC,iBAAiB,UAAYC,IAC5BA,EAAMC,MAA4B,iBAApBD,EAAMC,KAAKC,MAC3BJ,KAAKK,gBAYTC,EAAAA,iBAAoC,CAClC,CACEC,IAAO,aACPC,SAAY,oCAEd,CACED,IAAO,cACPC,SAAY,oCAEd,CACED,IAAO,6CACPC,SAAY,MAEd,CACED,IAAO,4BACPC,SAAY,MAEd,CACED,IAAO,2BACPC,SAAY,MAEd,CACED,IAAO,cACPC,SAAY,oCAEd,CACED,IAAO,cACPC,SAAY,oCAEd,CACED,IAAO,cACPC,SAAY,oCAEd,CACED,IAAO,mBACPC,SAAY,oCAEd,CACED,IAAO,uBACPC,SAAY,qCAEb,CAAE,GACLC,EAAAA,wBAC6BC,EAAAC,cAAC,IAAIC,EAA+BC,gBAACC,0BAA2C"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@jeremyckahn/farmhand",
3
- "version": "1.19.21",
3
+ "version": "1.19.22",
4
4
  "publishConfig": {
5
5
  "access": "public"
6
6
  },
@@ -23,7 +23,7 @@
23
23
  "electron": "wait-on tcp:3000 && electron .",
24
24
  "print:crops": "npx babel-node --presets @babel/preset-env --presets babel-preset-vite src/scripts/generate-crop-table.js",
25
25
  "lint": "eslint src --max-warnings=0",
26
- "prettier": "prettier 'src/**/*.{js,ts,tsx}' --write",
26
+ "prettier": "prettier 'src/**/*.js' --write",
27
27
  "preversion": "npm test",
28
28
  "postversion": "git push && git push --tags",
29
29
  "start": "vite --port=3000",
@@ -87,7 +87,6 @@
87
87
  "sass": "^1.69.5",
88
88
  "scss-reset": "^1.4.2",
89
89
  "serve": "^14.2.0",
90
- "typescript": "^6.0.2",
91
90
  "vercel": "^50.10.1",
92
91
  "vite": "^7.3.1",
93
92
  "vite-plugin-pwa": "^1.2.0",
@@ -31,7 +31,6 @@ export class RandomNumberService {
31
31
  * @returns {number}
32
32
  */
33
33
  generateRandomNumber() {
34
- // @ts-expect-error
35
34
  return this.seededRandom ? this.seededRandom() : Math.random()
36
35
  }
37
36
 
@@ -1,6 +1,6 @@
1
1
  import { itemsMap } from '../data/maps.js'
2
2
 
3
- import { randomNumberService } from './services/randomNumber.ts'
3
+ import { randomNumberService } from './services/randomNumber.js'
4
4
 
5
5
  export const random = () => {
6
6
  return randomNumberService.generateRandomNumber()
@@ -29,7 +29,6 @@ const MoneyNumberFormat = forwardRef(
29
29
  * @param {React.Dispatch<React.SetStateAction<number>>} props.setLoanInputValue - Function to set the loan input value
30
30
  * @param {React.ForwardedRef<unknown>} [ref] - Forwarded ref for the component
31
31
  */
32
- // @ts-expect-error
33
32
  ({ max, min, onChange, setLoanInputValue, ...rest }, ref) => (
34
33
  <NumberFormat
35
34
  fixedDecimalScale
@@ -13,13 +13,11 @@ import { memoize } from '../../utils/memoize.js'
13
13
 
14
14
  import './AchievementsView.sass'
15
15
 
16
- // @ts-expect-error
17
16
  const partitionAchievements = memoize(completedAchievements =>
18
17
  achievements.reduce(
19
18
  (acc, achievement) => {
20
19
  acc[
21
20
  completedAchievements[achievement.id] ? 'complete' : 'incomplete'
22
- // @ts-expect-error
23
21
  ].push(achievement)
24
22
 
25
23
  return acc
@@ -28,7 +28,6 @@ const AnimatedNumber = ({ number, formatter = defaultFormatter }) => {
28
28
  useEffect(() => {
29
29
  if (number !== previousNumber) {
30
30
  if (currentTweenable) {
31
- // @ts-expect-error
32
31
  currentTweenable.cancel()
33
32
  }
34
33
 
@@ -44,13 +43,11 @@ const AnimatedNumber = ({ number, formatter = defaultFormatter }) => {
44
43
  to: { number },
45
44
  })
46
45
 
47
- // @ts-expect-error
48
46
  setCurrentTweenable(tweenable)
49
47
  }
50
48
 
51
49
  return () => {
52
50
  if (currentTweenable) {
53
- // @ts-expect-error
54
51
  currentTweenable.cancel()
55
52
  }
56
53
  }
@@ -34,7 +34,6 @@ const MoneyDisplay = ({ money }) => {
34
34
 
35
35
  useEffect(() => {
36
36
  if (money !== previousMoney) {
37
- // @ts-expect-error
38
37
  currentTweenable?.cancel()
39
38
 
40
39
  const tweenable = tween({
@@ -51,12 +50,10 @@ const MoneyDisplay = ({ money }) => {
51
50
  to: { color: idleColor, money },
52
51
  })
53
52
 
54
- // @ts-expect-error
55
53
  setCurrentTweenable(tweenable)
56
54
  }
57
55
 
58
56
  return () => {
59
- // @ts-expect-error
60
57
  currentTweenable?.cancel()
61
58
  }
62
59
  }, [currentTweenable, money, previousMoney])
@@ -19,7 +19,6 @@ class BailOutErrorBoundary extends React.Component {
19
19
  }
20
20
 
21
21
  render() {
22
- // @ts-expect-error
23
22
  if (this.state.hasError) {
24
23
  return null
25
24
  }
@@ -28,7 +27,6 @@ class BailOutErrorBoundary extends React.Component {
28
27
  }
29
28
  }
30
29
 
31
- // @ts-expect-error
32
30
  BailOutErrorBoundary.propTypes = {}
33
31
 
34
32
  export default BailOutErrorBoundary
@@ -48,7 +48,6 @@ export const CellarInventoryTabPanel = ({ index, currentTab }) => {
48
48
  .filter(term => term.length > 0)
49
49
 
50
50
  const filteredKegs = cellarInventory.filter(keg => {
51
- // @ts-expect-error
52
51
  const item = itemsMap[keg.itemId]
53
52
  const itemName = item.name.toLowerCase()
54
53
  const fermentationRecipeName = `${FERMENTED_CROP_NAME}${itemName}`
@@ -75,7 +74,6 @@ export const CellarInventoryTabPanel = ({ index, currentTab }) => {
75
74
  )}
76
75
  <ul className="card-list">
77
76
  {filteredKegs.map(keg => (
78
- // @ts-expect-error
79
77
  <li key={keg.id}>
80
78
  <Keg keg={keg} />
81
79
  </li>
@@ -46,6 +46,7 @@ export function Keg({ keg }) {
46
46
 
47
47
  let imageSrc = items[item.id]
48
48
 
49
+ // @ts-expect-error
49
50
  let recipeName = FERMENTED_CROP_NAME`${item}`
50
51
 
51
52
  const handleSellClick = () => {
@@ -16,7 +16,6 @@ export const PlayerInventory = memo(
16
16
  * @param {farmhand.item[]} props.playerInventory - The array of items in the
17
17
  * player's inventory.
18
18
  */
19
- // @ts-expect-error
20
19
  ({ playerInventory }) => (
21
20
  <Inventory
22
21
  {...{
@@ -25,7 +24,6 @@ export const PlayerInventory = memo(
25
24
  }}
26
25
  />
27
26
  ),
28
- // @ts-expect-error
29
27
  (prev, next) => prev.playerInventory === next.playerInventory
30
28
  )
31
29
 
@@ -152,7 +152,6 @@ describe('PlayerInventory', () => {
152
152
  ]
153
153
 
154
154
  render(
155
- // @ts-expect-error
156
155
  <PlayerInventory {...baseItemProps} playerInventory={playerInventory} />
157
156
  )
158
157
 
@@ -163,7 +162,6 @@ describe('PlayerInventory', () => {
163
162
  })
164
163
 
165
164
  test('shows empty inventory when no items present', () => {
166
- // @ts-expect-error
167
165
  render(<PlayerInventory {...baseItemProps} playerInventory={[]} />)
168
166
 
169
167
  expect(screen.getByTestId('mocked-inventory')).toBeInTheDocument()
@@ -179,7 +177,6 @@ describe('PlayerInventory', () => {
179
177
  ]
180
178
 
181
179
  render(
182
- // @ts-expect-error
183
180
  <PlayerInventory {...baseItemProps} playerInventory={playerInventory} />
184
181
  )
185
182
 
@@ -70,8 +70,7 @@ test('displays tooltips on hover', async () => {
70
70
 
71
71
  const brownElement = document.querySelector('.brown')
72
72
  expect(brownElement).toBeInTheDocument()
73
- // @ts-expect-error
74
- await userEvent.hover(/** @type {Element} */ brownElement)
73
+ await userEvent.hover(/** @type {Element} */ (brownElement))
75
74
 
76
75
  expect(await screen.findByText('Brown')).toBeInTheDocument()
77
76
  })
@@ -87,14 +86,12 @@ test('handles multiple color tooltips', async () => {
87
86
 
88
87
  const blueElement = document.querySelector('.blue')
89
88
  expect(blueElement).toBeInTheDocument()
90
- // @ts-expect-error
91
- await userEvent.hover(/** @type {Element} */ blueElement)
89
+ await userEvent.hover(/** @type {Element} */ (blueElement))
92
90
  expect(await screen.findByText('Blue')).toBeInTheDocument()
93
91
 
94
92
  const whiteElement = document.querySelector('.white')
95
93
  expect(whiteElement).toBeInTheDocument()
96
- // @ts-expect-error
97
- await userEvent.hover(/** @type {Element} */ whiteElement)
94
+ await userEvent.hover(/** @type {Element} */ (whiteElement))
98
95
  expect(await screen.findByText('White')).toBeInTheDocument()
99
96
  })
100
97
 
@@ -107,8 +107,8 @@ export const CowCard = (
107
107
  const [cowImage, setCowImage] = useState(pixel)
108
108
 
109
109
  // @see https://github.com/microsoft/TypeScript/issues/27387#issuecomment-659671940
110
- const cardRef = useRef(/** @type {HTMLDivElement|null} */ null)
111
- const scrollAnchorRef = useRef(/** @type {HTMLAnchorElement|null} */ null)
110
+ const cardRef = useRef(/** @type {HTMLDivElement|null} */ (null))
111
+ const scrollAnchorRef = useRef(/** @type {HTMLAnchorElement|null} */ (null))
112
112
 
113
113
  const isCowPurchased =
114
114
  !!cowInventory.find(({ id }) => id === cow.id) &&
@@ -143,9 +143,7 @@ export const CowCard = (
143
143
  if (!scrollAnchor || !card) return
144
144
 
145
145
  // scrollIntoView is not defined in the unit test environment.
146
- // @ts-expect-error
147
146
  if (scrollAnchor.scrollIntoView && !isInViewport(card)) {
148
- // @ts-expect-error
149
147
  scrollAnchor.scrollIntoView({ behavior: 'smooth' })
150
148
  }
151
149
  }
@@ -34,7 +34,6 @@ import './Subheader.sass'
34
34
  const isHeartFull = (heartIndex, numberOfFullHearts) =>
35
35
  heartIndex + 0.5 < numberOfFullHearts
36
36
 
37
- // @ts-expect-error
38
37
  const getCowMapById = memoize(
39
38
  /**
40
39
  * @param {farmhand.state['cowInventory']} cowInventory
@@ -40,13 +40,11 @@ export class Cow extends Component {
40
40
  static hugAnimationDuration = 750
41
41
 
42
42
  get waitVariance() {
43
- // @ts-expect-error
44
43
  return 2000 * this.props.cowInventory.length
45
44
  }
46
45
 
47
46
  componentDidUpdate(prevProps) {
48
47
  if (
49
- // @ts-expect-error
50
48
  this.props.isSelected &&
51
49
  !prevProps.isSelected &&
52
50
  this.repositionTimeoutId !== null
@@ -54,20 +52,17 @@ export class Cow extends Component {
54
52
  clearTimeout(this.repositionTimeoutId)
55
53
  }
56
54
 
57
- // @ts-expect-error
58
55
  if (!this.props.isSelected && prevProps.isSelected) {
59
56
  this.scheduleMove()
60
57
  }
61
58
 
62
59
  if (
63
- // @ts-expect-error
64
60
  this.props.cow.happinessBoostsToday >
65
61
  prevProps.cow.happinessBoostsToday &&
66
62
  !this.state.showHugAnimation
67
63
  ) {
68
64
  this.setState({ showHugAnimation: true })
69
65
 
70
- // @ts-expect-error
71
66
  this.animateHugTimeoutId = setTimeout(() => {
72
67
  if (this.isComponentMounted) {
73
68
  this.setState({ showHugAnimation: false })
@@ -170,12 +165,10 @@ export class Cow extends Component {
170
165
  }
171
166
 
172
167
  scheduleMove = () => {
173
- // @ts-expect-error
174
168
  if (this.props.isSelected) {
175
169
  return
176
170
  }
177
171
 
178
- // @ts-expect-error
179
172
  this.repositionTimeoutId = setTimeout(
180
173
  this.repositionTimeoutHandler,
181
174
  random() * this.waitVariance
@@ -186,7 +179,6 @@ export class Cow extends Component {
186
179
  this.isComponentMounted = true
187
180
  this.scheduleMove()
188
181
  ;(async () => {
189
- // @ts-expect-error
190
182
  const cowImage = await getCowImage(this.props.cow)
191
183
 
192
184
  if (!this.isComponentMounted) return
@@ -207,15 +199,10 @@ export class Cow extends Component {
207
199
  render() {
208
200
  const {
209
201
  props: {
210
- // @ts-expect-error
211
202
  allowCustomPeerCowNames,
212
- // @ts-expect-error
213
203
  cow,
214
- // @ts-expect-error
215
204
  handleCowClick,
216
- // @ts-expect-error
217
205
  playerId,
218
- // @ts-expect-error
219
206
  isSelected,
220
207
  },
221
208
  state: { cowImage, isTransitioning, rotate, showHugAnimation, x, y },
@@ -272,7 +259,7 @@ export class Cow extends Component {
272
259
  </div>
273
260
  </Tooltip>
274
261
  <ol {...{ className: 'happiness-boosts-today' }}>
275
- {new Array((this.props as any).cow.happinessBoostsToday)
262
+ {new Array(this.props.cow.happinessBoostsToday)
276
263
  .fill(undefined)
277
264
  .map((_, i) => (
278
265
  <li {...{ key: i }}>
@@ -289,7 +276,6 @@ export class Cow extends Component {
289
276
  }
290
277
  }
291
278
 
292
- // @ts-expect-error
293
279
  Cow.propTypes = {
294
280
  allowCustomPeerCowNames: bool.isRequired,
295
281
  cow: object.isRequired,
@@ -58,14 +58,12 @@ describe('Cow', () => {
58
58
  })
59
59
 
60
60
  test('applies selected class when cow is selected', () => {
61
- // @ts-expect-error
62
61
  render(<Cow {...defaultCowProps} isSelected={true} />)
63
62
 
64
63
  expect(document.querySelector('.cow.is-selected')).toBeInTheDocument()
65
64
  })
66
65
 
67
66
  test('does not apply selected class when cow is not selected', () => {
68
- // @ts-expect-error
69
67
  render(<Cow {...defaultCowProps} isSelected={false} />)
70
68
 
71
69
  expect(document.querySelector('.cow.is-selected')).not.toBeInTheDocument()
@@ -75,19 +73,16 @@ describe('Cow', () => {
75
73
  const user = userEvent.setup({ advanceTimers: vitest.advanceTimersByTime })
76
74
  const handleCowClick = vitest.fn()
77
75
 
78
- // @ts-expect-error
79
76
  render(<Cow {...defaultCowProps} handleCowClick={handleCowClick} />)
80
77
 
81
78
  const cowElement = document.querySelector('.cow')
82
79
  expect(cowElement).toBeInTheDocument()
83
- // @ts-expect-error
84
- await user.click(/** @type {HTMLElement} */ cowElement)
80
+ await user.click(/** @type {HTMLElement} */ (cowElement))
85
81
 
86
82
  expect(handleCowClick).toHaveBeenCalledWith(defaultCowProps.cow)
87
83
  })
88
84
 
89
85
  test('displays cow tooltip on hover', () => {
90
- // @ts-expect-error
91
86
  render(<Cow {...defaultCowProps} isSelected={true} />)
92
87
 
93
88
  // When cow is selected, tooltip should be visible
@@ -100,7 +95,6 @@ describe('Cow', () => {
100
95
  happiness: 0.8,
101
96
  }
102
97
 
103
- // @ts-expect-error
104
98
  render(<Cow {...defaultCowProps} cow={happyCow} />)
105
99
 
106
100
  expect(document.querySelector('.fa-heart')).toBeInTheDocument()
@@ -113,7 +107,6 @@ describe('Cow', () => {
113
107
  happinessBoostsToday: 0,
114
108
  }
115
109
 
116
- // @ts-expect-error
117
110
  render(<Cow {...defaultCowProps} cow={sadCow} />)
118
111
 
119
112
  // Check that there are no happiness boost indicators specifically
@@ -128,7 +121,6 @@ describe('Cow', () => {
128
121
  color: cowColors.BROWN,
129
122
  }
130
123
 
131
- // @ts-expect-error
132
124
  render(<Cow {...defaultCowProps} cow={brownCow} />)
133
125
 
134
126
  expect(document.querySelector('.cow')).toBeInTheDocument()
@@ -142,7 +134,6 @@ describe('Cow', () => {
142
134
  }
143
135
 
144
136
  render(
145
- // @ts-expect-error
146
137
  <Cow {...defaultCowProps} cow={peerCow} allowCustomPeerCowNames={true} />
147
138
  )
148
139
 
@@ -157,7 +148,6 @@ describe('Cow', () => {
157
148
  }
158
149
 
159
150
  render(
160
- // @ts-expect-error
161
151
  <Cow {...defaultCowProps} cow={peerCow} allowCustomPeerCowNames={false} />
162
152
  )
163
153
 
@@ -194,11 +184,9 @@ describe('Cow', () => {
194
184
  })
195
185
 
196
186
  test('stops movement when cow is selected', () => {
197
- // @ts-expect-error
198
187
  const { rerender } = render(<Cow {...defaultCowProps} isSelected={false} />)
199
188
 
200
189
  // Change to selected
201
- // @ts-expect-error
202
190
  rerender(<Cow {...defaultCowProps} isSelected={true} />)
203
191
 
204
192
  const cowElement = document.querySelector('.cow')
@@ -207,11 +195,9 @@ describe('Cow', () => {
207
195
  })
208
196
 
209
197
  test('resumes movement when cow is deselected', () => {
210
- // @ts-expect-error
211
198
  const { rerender } = render(<Cow {...defaultCowProps} isSelected={true} />)
212
199
 
213
200
  // Change to not selected
214
- // @ts-expect-error
215
201
  rerender(<Cow {...defaultCowProps} isSelected={false} />)
216
202
 
217
203
  const cowElement = document.querySelector('.cow')
@@ -65,7 +65,7 @@ const Tumbleweed = ({ onAnimationComplete }) => {
65
65
  */
66
66
  export const Tumbleweeds = ({ doSpawn }) => {
67
67
  // A list of UUIDs, each representing a Tumbleweed component.
68
- const [tumbleweeds, setTumbleweeds] = useState(/** @type {string[]} */ [])
68
+ const [tumbleweeds, setTumbleweeds] = useState(/** @type {string[]} */ ([]))
69
69
  // The current interval between tumbleweed spawns.
70
70
  const [spawnIntervalMs, setSpawnIntervalMs] = useState(initialSpawnIntervalMs)
71
71
  // The timestamp of the last scheduled tumbleweed spawn.
@@ -73,7 +73,6 @@ export const Tumbleweeds = ({ doSpawn }) => {
73
73
 
74
74
  // Adds a new tumbleweed to the list.
75
75
  const spawnTumbleweed = () => {
76
- // @ts-expect-error
77
76
  setTumbleweeds(oldTumbleweeds => [...oldTumbleweeds, v4()])
78
77
  }
79
78
 
@@ -162,12 +162,12 @@ export const createContextData = () => {
162
162
  todaysPurchases: {},
163
163
  todaysRevenue: 0,
164
164
  todaysStartingInventory: {},
165
- toolLevels: /** @type {Record<globalThis.farmhand.toolType, globalThis.farmhand.toolLevel>} */ {
165
+ toolLevels: /** @type {Record<globalThis.farmhand.toolType, globalThis.farmhand.toolLevel>} */ ({
166
166
  SCYTHE: 'DEFAULT',
167
167
  SHOVEL: 'DEFAULT',
168
168
  HOE: 'DEFAULT',
169
169
  WATERING_CAN: 'DEFAULT',
170
- },
170
+ }),
171
171
  valueAdjustments: {},
172
172
  version: '1.0.0',
173
173
  todaysNotifications: [],