osrs-tools 2.5.3 → 2.6.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 (218) hide show
  1. package/README.md +270 -270
  2. package/dist/runescape/model/quest/QuestTool.d.ts.map +1 -1
  3. package/dist/runescape/model/quest/QuestTool.js +102 -4
  4. package/dist/runescape/model/quest/all/ANightAtTheTheatre.d.ts +4 -0
  5. package/dist/runescape/model/quest/all/ANightAtTheTheatre.d.ts.map +1 -0
  6. package/dist/runescape/model/quest/all/ANightAtTheTheatre.js +4 -0
  7. package/dist/runescape/model/quest/all/AtFirstLight.d.ts +4 -0
  8. package/dist/runescape/model/quest/all/AtFirstLight.d.ts.map +1 -0
  9. package/dist/runescape/model/quest/all/AtFirstLight.js +4 -0
  10. package/dist/runescape/model/quest/all/BeneathCursedSands.d.ts +4 -0
  11. package/dist/runescape/model/quest/all/BeneathCursedSands.d.ts.map +1 -0
  12. package/dist/runescape/model/quest/all/BeneathCursedSands.js +4 -0
  13. package/dist/runescape/model/quest/all/ChildrenOfTheSun.d.ts +4 -0
  14. package/dist/runescape/model/quest/all/ChildrenOfTheSun.d.ts.map +1 -0
  15. package/dist/runescape/model/quest/all/ChildrenOfTheSun.js +4 -0
  16. package/dist/runescape/model/quest/all/ColdWar.js +1 -1
  17. package/dist/runescape/model/quest/all/DeathOnTheIsle.d.ts +4 -0
  18. package/dist/runescape/model/quest/all/DeathOnTheIsle.d.ts.map +1 -0
  19. package/dist/runescape/model/quest/all/DeathOnTheIsle.js +4 -0
  20. package/dist/runescape/model/quest/all/DefenderOfVarrock.d.ts +4 -0
  21. package/dist/runescape/model/quest/all/DefenderOfVarrock.d.ts.map +1 -0
  22. package/dist/runescape/model/quest/all/DefenderOfVarrock.js +4 -0
  23. package/dist/runescape/model/quest/all/DesertTreasureI.d.ts +4 -0
  24. package/dist/runescape/model/quest/all/DesertTreasureI.d.ts.map +1 -0
  25. package/dist/runescape/model/quest/all/DesertTreasureI.js +4 -0
  26. package/dist/runescape/model/quest/all/DesertTreasureIITheFallenEmpire.d.ts +4 -0
  27. package/dist/runescape/model/quest/all/DesertTreasureIITheFallenEmpire.d.ts.map +1 -0
  28. package/dist/runescape/model/quest/all/DesertTreasureIITheFallenEmpire.js +4 -0
  29. package/dist/runescape/model/quest/all/DragonSlayerI.js +1 -1
  30. package/dist/runescape/model/quest/all/ErnestTheChicken.d.ts +4 -0
  31. package/dist/runescape/model/quest/all/ErnestTheChicken.d.ts.map +1 -0
  32. package/dist/runescape/model/quest/all/ErnestTheChicken.js +38 -0
  33. package/dist/runescape/model/quest/all/EthicallyAcquiredAntiquities.d.ts +4 -0
  34. package/dist/runescape/model/quest/all/EthicallyAcquiredAntiquities.d.ts.map +1 -0
  35. package/dist/runescape/model/quest/all/EthicallyAcquiredAntiquities.js +4 -0
  36. package/dist/runescape/model/quest/all/LandOfTheGoblins.d.ts +4 -0
  37. package/dist/runescape/model/quest/all/LandOfTheGoblins.d.ts.map +1 -0
  38. package/dist/runescape/model/quest/all/LandOfTheGoblins.js +4 -0
  39. package/dist/runescape/model/quest/all/LearningTheRopes.d.ts +4 -0
  40. package/dist/runescape/model/quest/all/LearningTheRopes.d.ts.map +1 -0
  41. package/dist/runescape/model/quest/all/LearningTheRopes.js +37 -0
  42. package/dist/runescape/model/quest/all/MakingFriendsWithMyArm.d.ts +4 -0
  43. package/dist/runescape/model/quest/all/MakingFriendsWithMyArm.d.ts.map +1 -0
  44. package/dist/runescape/model/quest/all/MakingFriendsWithMyArm.js +25 -0
  45. package/dist/runescape/model/quest/all/MisthalinMystery.d.ts +4 -0
  46. package/dist/runescape/model/quest/all/MisthalinMystery.d.ts.map +1 -0
  47. package/dist/runescape/model/quest/all/MisthalinMystery.js +4 -0
  48. package/dist/runescape/model/quest/all/MonkeyMadnessI.d.ts +4 -0
  49. package/dist/runescape/model/quest/all/MonkeyMadnessI.d.ts.map +1 -0
  50. package/dist/runescape/model/quest/all/MonkeyMadnessI.js +4 -0
  51. package/dist/runescape/model/quest/all/MountainDaughter.d.ts +4 -0
  52. package/dist/runescape/model/quest/all/MountainDaughter.d.ts.map +1 -0
  53. package/dist/runescape/model/quest/all/MountainDaughter.js +25 -0
  54. package/dist/runescape/model/quest/all/MourningsEndPartI.d.ts +4 -0
  55. package/dist/runescape/model/quest/all/MourningsEndPartI.d.ts.map +1 -0
  56. package/dist/runescape/model/quest/all/MourningsEndPartI.js +4 -0
  57. package/dist/runescape/model/quest/all/MourningsEndPartII.d.ts +4 -0
  58. package/dist/runescape/model/quest/all/MourningsEndPartII.d.ts.map +1 -0
  59. package/dist/runescape/model/quest/all/MourningsEndPartII.js +4 -0
  60. package/dist/runescape/model/quest/all/PerilousMoons.d.ts +4 -0
  61. package/dist/runescape/model/quest/all/PerilousMoons.d.ts.map +1 -0
  62. package/dist/runescape/model/quest/all/PerilousMoons.js +4 -0
  63. package/dist/runescape/model/quest/all/PiratesTreasure.d.ts +4 -0
  64. package/dist/runescape/model/quest/all/PiratesTreasure.d.ts.map +1 -0
  65. package/dist/runescape/model/quest/all/PiratesTreasure.js +4 -0
  66. package/dist/runescape/model/quest/all/PrinceAliRescue.d.ts +4 -0
  67. package/dist/runescape/model/quest/all/PrinceAliRescue.d.ts.map +1 -0
  68. package/dist/runescape/model/quest/all/PrinceAliRescue.js +4 -0
  69. package/dist/runescape/model/quest/all/RagAndBoneManI.d.ts +4 -0
  70. package/dist/runescape/model/quest/all/RagAndBoneManI.d.ts.map +1 -0
  71. package/dist/runescape/model/quest/all/RagAndBoneManI.js +4 -0
  72. package/dist/runescape/model/quest/all/RagAndBoneManII.d.ts +4 -0
  73. package/dist/runescape/model/quest/all/RagAndBoneManII.d.ts.map +1 -0
  74. package/dist/runescape/model/quest/all/RagAndBoneManII.js +4 -0
  75. package/dist/runescape/model/quest/all/RomeoAndJuliet.d.ts +4 -0
  76. package/dist/runescape/model/quest/all/RomeoAndJuliet.d.ts.map +1 -0
  77. package/dist/runescape/model/quest/all/RomeoAndJuliet.js +25 -0
  78. package/dist/runescape/model/quest/all/RuneMysteries.d.ts +4 -0
  79. package/dist/runescape/model/quest/all/RuneMysteries.d.ts.map +1 -0
  80. package/dist/runescape/model/quest/all/RuneMysteries.js +4 -0
  81. package/dist/runescape/model/quest/all/SecretsOfTheNorth.d.ts +4 -0
  82. package/dist/runescape/model/quest/all/SecretsOfTheNorth.d.ts.map +1 -0
  83. package/dist/runescape/model/quest/all/SecretsOfTheNorth.js +4 -0
  84. package/dist/runescape/model/quest/all/SheepShearer.d.ts +4 -0
  85. package/dist/runescape/model/quest/all/SheepShearer.d.ts.map +1 -0
  86. package/dist/runescape/model/quest/all/SheepShearer.js +4 -0
  87. package/dist/runescape/model/quest/all/ShieldOfArrav.d.ts +4 -0
  88. package/dist/runescape/model/quest/all/ShieldOfArrav.d.ts.map +1 -0
  89. package/dist/runescape/model/quest/all/ShieldOfArrav.js +4 -0
  90. package/dist/runescape/model/quest/all/SinsOfTheFather.d.ts +4 -0
  91. package/dist/runescape/model/quest/all/SinsOfTheFather.d.ts.map +1 -0
  92. package/dist/runescape/model/quest/all/SinsOfTheFather.js +4 -0
  93. package/dist/runescape/model/quest/all/SleepingGiants.d.ts +4 -0
  94. package/dist/runescape/model/quest/all/SleepingGiants.d.ts.map +1 -0
  95. package/dist/runescape/model/quest/all/SleepingGiants.js +4 -0
  96. package/dist/runescape/model/quest/all/TaleOfTheRighteous.d.ts +4 -0
  97. package/dist/runescape/model/quest/all/TaleOfTheRighteous.d.ts.map +1 -0
  98. package/dist/runescape/model/quest/all/TaleOfTheRighteous.js +4 -0
  99. package/dist/runescape/model/quest/all/TearsOfGuthix.d.ts +4 -0
  100. package/dist/runescape/model/quest/all/TearsOfGuthix.d.ts.map +1 -0
  101. package/dist/runescape/model/quest/all/TearsOfGuthix.js +4 -0
  102. package/dist/runescape/model/quest/all/TempleOfIkov.d.ts +4 -0
  103. package/dist/runescape/model/quest/all/TempleOfIkov.d.ts.map +1 -0
  104. package/dist/runescape/model/quest/all/TempleOfIkov.js +4 -0
  105. package/dist/runescape/model/quest/all/TempleOfTheEye.d.ts +4 -0
  106. package/dist/runescape/model/quest/all/TempleOfTheEye.d.ts.map +1 -0
  107. package/dist/runescape/model/quest/all/TempleOfTheEye.js +4 -0
  108. package/dist/runescape/model/quest/all/TheCorsairCurse.d.ts +4 -0
  109. package/dist/runescape/model/quest/all/TheCorsairCurse.d.ts.map +1 -0
  110. package/dist/runescape/model/quest/all/TheCorsairCurse.js +25 -0
  111. package/dist/runescape/model/quest/all/TheCurseOfArrav.d.ts +4 -0
  112. package/dist/runescape/model/quest/all/TheCurseOfArrav.d.ts.map +1 -0
  113. package/dist/runescape/model/quest/all/TheCurseOfArrav.js +34 -0
  114. package/dist/runescape/model/quest/all/TheDigSite.d.ts +4 -0
  115. package/dist/runescape/model/quest/all/TheDigSite.d.ts.map +1 -0
  116. package/dist/runescape/model/quest/all/TheDigSite.js +4 -0
  117. package/dist/runescape/model/quest/all/TheEyesOfGlouphrie.d.ts +4 -0
  118. package/dist/runescape/model/quest/all/TheEyesOfGlouphrie.d.ts.map +1 -0
  119. package/dist/runescape/model/quest/all/TheEyesOfGlouphrie.js +4 -0
  120. package/dist/runescape/model/quest/all/TheFeud.d.ts +4 -0
  121. package/dist/runescape/model/quest/all/TheFeud.d.ts.map +1 -0
  122. package/dist/runescape/model/quest/all/TheFeud.js +4 -0
  123. package/dist/runescape/model/quest/all/TheGardenOfDeath.d.ts +4 -0
  124. package/dist/runescape/model/quest/all/TheGardenOfDeath.d.ts.map +1 -0
  125. package/dist/runescape/model/quest/all/TheGardenOfDeath.js +4 -0
  126. package/dist/runescape/model/quest/all/TheHandInTheSand.js +1 -1
  127. package/dist/runescape/model/quest/all/TheHeartOfDarkness.d.ts +4 -0
  128. package/dist/runescape/model/quest/all/TheHeartOfDarkness.d.ts.map +1 -0
  129. package/dist/runescape/model/quest/all/TheHeartOfDarkness.js +4 -0
  130. package/dist/runescape/model/quest/all/TheIdesOfMilk.d.ts +4 -0
  131. package/dist/runescape/model/quest/all/TheIdesOfMilk.d.ts.map +1 -0
  132. package/dist/runescape/model/quest/all/TheIdesOfMilk.js +4 -0
  133. package/dist/runescape/model/quest/all/ThePathOfGlouphrie.d.ts +4 -0
  134. package/dist/runescape/model/quest/all/ThePathOfGlouphrie.d.ts.map +1 -0
  135. package/dist/runescape/model/quest/all/ThePathOfGlouphrie.js +4 -0
  136. package/dist/runescape/model/quest/all/TheRestlessGhost.d.ts +4 -0
  137. package/dist/runescape/model/quest/all/TheRestlessGhost.d.ts.map +1 -0
  138. package/dist/runescape/model/quest/all/TheRestlessGhost.js +4 -0
  139. package/dist/runescape/model/quest/all/TheRibbitingTaleOfALilyPadLabourDispute.d.ts +4 -0
  140. package/dist/runescape/model/quest/all/TheRibbitingTaleOfALilyPadLabourDispute.d.ts.map +1 -0
  141. package/dist/runescape/model/quest/all/TheRibbitingTaleOfALilyPadLabourDispute.js +4 -0
  142. package/dist/runescape/model/quest/all/TwilightsPromise.d.ts +4 -0
  143. package/dist/runescape/model/quest/all/TwilightsPromise.d.ts.map +1 -0
  144. package/dist/runescape/model/quest/all/TwilightsPromise.js +4 -0
  145. package/dist/runescape/model/quest/all/WhileGuthixSleeps.d.ts +4 -0
  146. package/dist/runescape/model/quest/all/WhileGuthixSleeps.d.ts.map +1 -0
  147. package/dist/runescape/model/quest/all/WhileGuthixSleeps.js +4 -0
  148. package/dist/runescape/model/quest/all/WitchsPotion.d.ts +4 -0
  149. package/dist/runescape/model/quest/all/WitchsPotion.d.ts.map +1 -0
  150. package/dist/runescape/model/quest/all/WitchsPotion.js +4 -0
  151. package/dist/runescape/model/quest/all/XMarksTheSpot.d.ts +4 -0
  152. package/dist/runescape/model/quest/all/XMarksTheSpot.d.ts.map +1 -0
  153. package/dist/runescape/model/quest/all/XMarksTheSpot.js +4 -0
  154. package/dist/runescape/model/quest/all/index.d.ts +47 -0
  155. package/dist/runescape/model/quest/all/index.d.ts.map +1 -1
  156. package/dist/runescape/model/quest/all/index.js +47 -0
  157. package/dist/runescape/model/slayer/index.d.ts +10 -10
  158. package/dist/runescape/model/slayer/index.d.ts.map +1 -1
  159. package/dist/runescape/model/slayer/index.js +8 -8
  160. package/dist/runescape/model/slayer/masters/index.d.ts +19 -19
  161. package/dist/runescape/model/slayer/masters/index.d.ts.map +1 -1
  162. package/dist/runescape/model/slayer/masters/index.js +20 -20
  163. package/dist/runescape/model/slayer/masters/registry.d.ts +1 -1
  164. package/dist/runescape/model/slayer/masters/registry.d.ts.map +1 -1
  165. package/dist/runescape/model/slayer/masters/registry.js +1 -1
  166. package/dist/runescape/model/slayer/masters.d.ts +8 -0
  167. package/dist/runescape/model/slayer/masters.d.ts.map +1 -0
  168. package/dist/runescape/model/slayer/masters.js +6 -0
  169. package/dist/runescape/model/slayer/tasks/index.d.ts +11 -11
  170. package/dist/runescape/model/slayer/tasks/index.js +11 -11
  171. package/package.json +96 -96
  172. package/public/assets/icons/diaries/Ardougne_Diary.png +0 -0
  173. package/public/assets/icons/diaries/Desert_Diary.png +0 -0
  174. package/public/assets/icons/diaries/Falador_Diary.png +0 -0
  175. package/public/assets/icons/diaries/Fremennik_Diary.png +0 -0
  176. package/public/assets/icons/diaries/Kandarin_Diary.png +0 -0
  177. package/public/assets/icons/diaries/Karamja_Diary.png +0 -0
  178. package/public/assets/icons/diaries/Morytania_Diary.png +0 -0
  179. package/public/assets/icons/diaries/Varrock_Diary.png +0 -0
  180. package/public/assets/icons/diaries/Wilderness_Diary.png +0 -0
  181. package/public/assets/icons/skills/Agility_icon.png +0 -0
  182. package/public/assets/icons/skills/Attack_icon.png +0 -0
  183. package/public/assets/icons/skills/Construction_icon.png +0 -0
  184. package/public/assets/icons/skills/Cooking_icon.png +0 -0
  185. package/public/assets/icons/skills/Crafting_icon.png +0 -0
  186. package/public/assets/icons/skills/Defence_icon.png +0 -0
  187. package/public/assets/icons/skills/Farming_icon.png +0 -0
  188. package/public/assets/icons/skills/Firemaking_icon.png +0 -0
  189. package/public/assets/icons/skills/Fishing_icon.png +0 -0
  190. package/public/assets/icons/skills/Fletching_icon.png +0 -0
  191. package/public/assets/icons/skills/Herblore_icon.png +0 -0
  192. package/public/assets/icons/skills/Hitpoints_icon.png +0 -0
  193. package/public/assets/icons/skills/Magic_icon.png +0 -0
  194. package/public/assets/icons/skills/Mining_icon.png +0 -0
  195. package/public/assets/icons/skills/Prayer_icon.png +0 -0
  196. package/public/assets/icons/skills/Ranged_icon.png +0 -0
  197. package/public/assets/icons/skills/Sailing_icon.png +0 -0
  198. package/public/assets/icons/skills/Slayer_icon.png +0 -0
  199. package/public/assets/icons/skills/Smithing_icon.png +0 -0
  200. package/public/assets/icons/skills/Strength_icon.png +0 -0
  201. package/public/assets/icons/skills/Thieving_icon.png +0 -0
  202. package/public/assets/icons/skills/Woodcutting_icon.png +0 -0
  203. package/public/assets/icons/tabs/Combat_Tab.png +0 -0
  204. package/public/assets/icons/tabs/Inventory_Tab.png +0 -0
  205. package/public/assets/icons/tabs/Magic_Tab.png +0 -0
  206. package/public/assets/icons/tabs/Prayer_Tab.png +0 -0
  207. package/public/assets/icons/tabs/Quest_Tab.png +0 -0
  208. package/public/assets/icons/tabs/Skills_Tab.png +0 -0
  209. package/public/assets/icons/ui/Bank.png +0 -0
  210. package/public/assets/icons/ui/Music.png +0 -0
  211. package/public/assets/icons/ui/Quest_Points.png +0 -0
  212. package/public/assets/icons/ui/Settings.png +0 -0
  213. package/dist/runescape/model/Item/ClueScrollRewards.js +0 -286
  214. package/dist/runescape/model/Item/all/StudiedChaps.js +0 -35
  215. package/dist/runescape/model/Item/models/YellowPartyhat.obj +0 -149
  216. package/dist/runescape/model/slayer/Masters.js +0 -101
  217. package/dist/runescape/tools/ClueScrollHelper.js +0 -103
  218. package/dist/runescape/utils/cache.js +0 -124
package/README.md CHANGED
@@ -1,270 +1,270 @@
1
-
2
-
3
- Refer to modern Node Packages. Update the Package.json to ONLY need the modern dependencies, reduce packages as much as possible.
4
-
5
-
6
-
7
-
8
-
9
- # OSRS Tools
10
-
11
- [![NPM Version](https://img.shields.io/npm/v/osrs-tools.svg?style=for-the-badge)](https://www.npmjs.com/package/osrs-tools)
12
- [![Downloads](https://img.shields.io/npm/dm/osrs-tools.svg?style=for-the-badge)](https://www.npmjs.com/package/osrs-tools)
13
- [![TypeScript](https://img.shields.io/badge/TypeScript-4.9+-blue.svg?style=for-the-badge)](https://www.typescriptlang.org)
14
- [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg?style=for-the-badge)](https://opensource.org/licenses/MIT)
15
- [![Node Version](https://img.shields.io/node/v/osrs-tools.svg?style=for-the-badge)](https://nodejs.org)
16
- [![Test Coverage](https://img.shields.io/codecov/c/github/jamescer/osrs-tools.svg?style=for-the-badge)](https://codecov.io/gh/jamescer/osrs-tools)
17
-
18
- > A modern TypeScript library for Old School RuneScape (OSRS) data and utilities. Built for developers creating tools, bots, web applications, and analytics around OSRS content.
19
-
20
- 📦 **Type-safe**   🚀 **Well-tested**   📚 **Documented**   🔄 **Actively maintained**
21
-
22
- ## Live Demo
23
-
24
- Explore the project interactively on CodeSandbox:
25
-
26
- [![Edit on CodeSandbox](https://img.shields.io/badge/CodeSandbox-View-blue?logo=codesandbox&style=for-the-badge)](https://codesandbox.io/p/sandbox/xtgp9k)
27
-
28
- ---
29
-
30
- ## Table of Contents
31
-
32
- - [Installation](#installation)
33
- - [Examples](#examples)
34
- - [Development](#development)
35
- - [Contributing](#contributing)
36
- - [Support](#support)
37
- - [License](#license)
38
-
39
- ## Installation
40
-
41
- ### Prerequisites
42
-
43
- - Node.js 16.x or higher
44
- - TypeScript 4.9+
45
-
46
- ### Package Installation
47
-
48
- ```bash
49
- npm install osrs-tools
50
- ```
51
-
52
- For account-related features (hiscores, stats):
53
-
54
- ```bash
55
- npm install osrs-json-hiscores
56
- ```
57
-
58
- ## Examples
59
-
60
- ### Core Imports (Recommended)
61
-
62
- The main `osrs-tools` export provides the most frequently used classes:
63
-
64
- ```typescript
65
- import {
66
- QuestTool,
67
- OsrsAccount,
68
- ClueScrollHelper,
69
- Item
70
- } from 'osrs-tools';
71
-
72
- // Use core API directly
73
- const questTool = new QuestTool();
74
- const account = OsrsAccount.fromJson({ name: 'Player123' });
75
- ```
76
-
77
- ### Subpackage Imports (Tree-Shakeable)
78
-
79
- Import from subpackages for more granular control and better tree-shaking:
80
-
81
- ```typescript
82
- // Quest module - access all quests and quest utilities
83
- import { QuestTool, DragonSlayerI } from 'osrs-tools/quest';
84
-
85
- // Slayer module - slayer masters and utilities
86
- import { Duradel, SlayerMaster } from 'osrs-tools/slayer';
87
-
88
- // Account & skills
89
- import { OsrsAccount, Skill } from 'osrs-tools/account';
90
-
91
- // Achievement diaries
92
- import { Ardougne, DiaryName } from 'osrs-tools/diary';
93
-
94
- // Tools & utilities
95
- import { ClueScrollHelper, experience } from 'osrs-tools/tools';
96
- import { cache, validation } from 'osrs-tools/utils';
97
- ```
98
-
99
- ### Quest System
100
-
101
- ```typescript
102
- // Access a specific quest
103
- import { DragonSlayerI } from 'osrs-tools/quest';
104
-
105
- // Or get by name from QuestTool
106
- import { QuestTool } from 'osrs-tools';
107
- const dragonSlayer = QuestTool.getQuestByName('Dragon Slayer');
108
- console.log(dragonSlayer.requirements);
109
-
110
- // Check quest completion requirements
111
- const questTool = new QuestTool();
112
- questTool.setOsrsAccount(playerAccount);
113
- const canComplete = questTool.canCompleteQuest(dragonSlayer);
114
- ```
115
-
116
- ### Slayer System
117
-
118
- ```typescript
119
- import { Duradel } from 'osrs-tools/slayer';
120
-
121
- // Get master's task list
122
- const tasks = Duradel.tasks;
123
-
124
- // Get random assignment
125
- const task = Duradel.getRandomTask();
126
- console.log(task.name); // e.g., "Abyssal demons"
127
- console.log(task.requirements); // Shows requirements
128
- ```
129
-
130
- ### Account Management
131
-
132
- ```typescript
133
- import { OsrsAccount } from 'osrs-tools/account';
134
-
135
- // Create/load account
136
- const account = OsrsAccount.fromJson({
137
- name: 'Player123',
138
- skills: {
139
- attack: { level: 60 },
140
- strength: { level: 55 },
141
- defence: { level: 50 },
142
- },
143
- });
144
-
145
- // Get skill levels
146
- const attackLevel = account.getSkill('attack')?.level;
147
- ```
148
-
149
- ### 3D Item Models
150
-
151
- ```typescript
152
- import { yellowPartyhatModelPath } from 'osrs-tools';
153
-
154
- console.log(yellowPartyhatModelPath);
155
- // "osrs-tools/models/YellowPartyhat.obj"
156
- ```
157
-
158
- - **Node.js**: resolve the shipped asset with `require.resolve(yellowPartyhatModelPath)` and read it with `fs.readFileSync(...)`.
159
- - **Bundlers**: import the raw asset directly from `osrs-tools/models/YellowPartyhat.obj` or use a `?url` suffix if your bundler supports it.
160
-
161
- ### Documentation Links
162
-
163
- - [Full API Documentation](https://github.com/jamescer/osrs-tools/wiki)
164
- - [Type Definitions](https://github.com/jamescer/osrs-tools/blob/master/src/model/quest/types.ts)
165
- - [Code Examples](https://github.com/jamescer/osrs-tools//examples)
166
-
167
- ## Development
168
-
169
- ### Local Setup
170
-
171
- ```bash
172
- # Clone and setup
173
- git clone https://github.com/jamescer/osrs-tools.git
174
- cd osrs-tools
175
- npm install
176
-
177
- # Build and test
178
- npm run build
179
- npm test
180
- ```
181
-
182
- ### Available Scripts
183
-
184
- | Command | Description |
185
- | --------------- | ------------------------------ |
186
- | `build` | Compile TypeScript to dist/ |
187
- | `dev` | Watch mode compilation |
188
- | `test` | Run test suite |
189
- | `test:watch` | Run tests in watch mode |
190
- | `test:coverage` | Generate coverage report |
191
- | `lint` | Lint and fix code |
192
- | `format` | Format code with Prettier |
193
-
194
- ### Project Structure
195
-
196
- ```
197
- source/ # TypeScript source code
198
- ├── index.ts # Main entry point
199
- ├── runescape/
200
- │ ├── model/
201
- │ │ ├── account/ # Player account & skills
202
- │ │ ├── diaries/ # Achievement diaries
203
- │ │ ├── quest/ # Quest system
204
- │ │ │ ├── all/ # Individual quest classes
205
- │ │ │ └── index.ts # Quest module export
206
- │ │ ├── slayer/ # Slayer system
207
- │ │ ├── Item/ # Item models
208
- │ │ └── npc/ # NPC data
209
- │ ├── tools/ # Utility tools (ClueScrollHelper, experience calc, etc.)
210
- │ ├── utils/ # Helper utilities (cache, validation, etc.)
211
- │ └── errors.ts # Custom error types
212
- └── examples/ # Usage examples
213
-
214
- test/ # Jest test suite
215
- └── unit/
216
- ├── account/
217
- ├── diaries/
218
- ├── quest/
219
- ├── slayer/
220
- ├── model/
221
- ├── tools/
222
- └── utils/
223
-
224
- dist/ # Compiled output (generated by build)
225
- ```
226
-
227
- ## Contributing
228
-
229
- We welcome contributions! We use [Conventional Commits](https://www.conventionalcommits.org/).
230
-
231
- ### Getting Started
232
-
233
- 1. Fork and clone the repository
234
- 2. Create a branch (`feat/amazing-feature`)
235
- 3. Make your changes
236
- 4. Run tests (`npm test && npm run lint`)
237
- 5. Commit with conventional format:
238
-
239
- ```bash
240
- feat: add quest requirement validation
241
- fix: correct slayer task weights
242
- docs: update API documentation
243
- ```
244
-
245
- 6. Push and open a Pull Request
246
-
247
- ### Guidelines
248
-
249
- - Add tests for new features
250
- - Update documentation for changes
251
- - Follow existing code style
252
- - Keep changes focused
253
-
254
- ## Support
255
-
256
- Need help or want to contribute?
257
-
258
- - [Report Issues](https://github.com/jamescer/osrs-tools/issues)
259
- - [Request Features](https://github.com/jamescer/osrs-tools/issues)
260
- - [Join Discussions](https://github.com/jamescer/osrs-tools/discussions)
261
-
262
- ## License
263
-
264
- [MIT](./LICENSE) © James Cerniglia
265
-
266
- ## Credits
267
-
268
- - **Author**: [James Cerniglia](mailto:jamesmcerniglia@gmail.com)
269
- - **Contributors**: [View all contributors](https://github.com/jamescer/osrs-tools/graphs/contributors)
270
- - **Data Source**: [Old School RuneScape Wiki](https://oldschool.runescape.wiki/)
1
+
2
+
3
+ Refer to modern Node Packages. Update the Package.json to ONLY need the modern dependencies, reduce packages as much as possible.
4
+
5
+
6
+
7
+
8
+
9
+ # OSRS Tools
10
+
11
+ [![NPM Version](https://img.shields.io/npm/v/osrs-tools.svg?style=for-the-badge)](https://www.npmjs.com/package/osrs-tools)
12
+ [![Downloads](https://img.shields.io/npm/dm/osrs-tools.svg?style=for-the-badge)](https://www.npmjs.com/package/osrs-tools)
13
+ [![TypeScript](https://img.shields.io/badge/TypeScript-4.9+-blue.svg?style=for-the-badge)](https://www.typescriptlang.org)
14
+ [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg?style=for-the-badge)](https://opensource.org/licenses/MIT)
15
+ [![Node Version](https://img.shields.io/node/v/osrs-tools.svg?style=for-the-badge)](https://nodejs.org)
16
+ [![Test Coverage](https://img.shields.io/codecov/c/github/jamescer/osrs-tools.svg?style=for-the-badge)](https://codecov.io/gh/jamescer/osrs-tools)
17
+
18
+ > A modern TypeScript library for Old School RuneScape (OSRS) data and utilities. Built for developers creating tools, bots, web applications, and analytics around OSRS content.
19
+
20
+ 📦 **Type-safe**   🚀 **Well-tested**   📚 **Documented**   🔄 **Actively maintained**
21
+
22
+ ## Live Demo
23
+
24
+ Explore the project interactively on CodeSandbox:
25
+
26
+ [![Edit on CodeSandbox](https://img.shields.io/badge/CodeSandbox-View-blue?logo=codesandbox&style=for-the-badge)](https://codesandbox.io/p/sandbox/xtgp9k)
27
+
28
+ ---
29
+
30
+ ## Table of Contents
31
+
32
+ - [Installation](#installation)
33
+ - [Examples](#examples)
34
+ - [Development](#development)
35
+ - [Contributing](#contributing)
36
+ - [Support](#support)
37
+ - [License](#license)
38
+
39
+ ## Installation
40
+
41
+ ### Prerequisites
42
+
43
+ - Node.js 16.x or higher
44
+ - TypeScript 4.9+
45
+
46
+ ### Package Installation
47
+
48
+ ```bash
49
+ npm install osrs-tools
50
+ ```
51
+
52
+ For account-related features (hiscores, stats):
53
+
54
+ ```bash
55
+ npm install osrs-json-hiscores
56
+ ```
57
+
58
+ ## Examples
59
+
60
+ ### Core Imports (Recommended)
61
+
62
+ The main `osrs-tools` export provides the most frequently used classes:
63
+
64
+ ```typescript
65
+ import {
66
+ QuestTool,
67
+ OsrsAccount,
68
+ ClueScrollHelper,
69
+ Item
70
+ } from 'osrs-tools';
71
+
72
+ // Use core API directly
73
+ const questTool = new QuestTool();
74
+ const account = OsrsAccount.fromJson({ name: 'Player123' });
75
+ ```
76
+
77
+ ### Subpackage Imports (Tree-Shakeable)
78
+
79
+ Import from subpackages for more granular control and better tree-shaking:
80
+
81
+ ```typescript
82
+ // Quest module - access all quests and quest utilities
83
+ import { QuestTool, DragonSlayerI } from 'osrs-tools/quest';
84
+
85
+ // Slayer module - slayer masters and utilities
86
+ import { Duradel, SlayerMaster } from 'osrs-tools/slayer';
87
+
88
+ // Account & skills
89
+ import { OsrsAccount, Skill } from 'osrs-tools/account';
90
+
91
+ // Achievement diaries
92
+ import { Ardougne, DiaryName } from 'osrs-tools/diary';
93
+
94
+ // Tools & utilities
95
+ import { ClueScrollHelper, experience } from 'osrs-tools/tools';
96
+ import { cache, validation } from 'osrs-tools/utils';
97
+ ```
98
+
99
+ ### Quest System
100
+
101
+ ```typescript
102
+ // Access a specific quest
103
+ import { DragonSlayerI } from 'osrs-tools/quest';
104
+
105
+ // Or get by name from QuestTool
106
+ import { QuestTool } from 'osrs-tools';
107
+ const dragonSlayer = QuestTool.getQuestByName('Dragon Slayer');
108
+ console.log(dragonSlayer.requirements);
109
+
110
+ // Check quest completion requirements
111
+ const questTool = new QuestTool();
112
+ questTool.setOsrsAccount(playerAccount);
113
+ const canComplete = questTool.canCompleteQuest(dragonSlayer);
114
+ ```
115
+
116
+ ### Slayer System
117
+
118
+ ```typescript
119
+ import { Duradel } from 'osrs-tools/slayer';
120
+
121
+ // Get master's task list
122
+ const tasks = Duradel.tasks;
123
+
124
+ // Get random assignment
125
+ const task = Duradel.getRandomTask();
126
+ console.log(task.name); // e.g., "Abyssal demons"
127
+ console.log(task.requirements); // Shows requirements
128
+ ```
129
+
130
+ ### Account Management
131
+
132
+ ```typescript
133
+ import { OsrsAccount } from 'osrs-tools/account';
134
+
135
+ // Create/load account
136
+ const account = OsrsAccount.fromJson({
137
+ name: 'Player123',
138
+ skills: {
139
+ attack: { level: 60 },
140
+ strength: { level: 55 },
141
+ defence: { level: 50 },
142
+ },
143
+ });
144
+
145
+ // Get skill levels
146
+ const attackLevel = account.getSkill('attack')?.level;
147
+ ```
148
+
149
+ ### 3D Item Models
150
+
151
+ ```typescript
152
+ import { yellowPartyhatModelPath } from 'osrs-tools';
153
+
154
+ console.log(yellowPartyhatModelPath);
155
+ // "osrs-tools/models/YellowPartyhat.obj"
156
+ ```
157
+
158
+ - **Node.js**: resolve the shipped asset with `require.resolve(yellowPartyhatModelPath)` and read it with `fs.readFileSync(...)`.
159
+ - **Bundlers**: import the raw asset directly from `osrs-tools/models/YellowPartyhat.obj` or use a `?url` suffix if your bundler supports it.
160
+
161
+ ### Documentation Links
162
+
163
+ - [Full API Documentation](https://github.com/jamescer/osrs-tools/wiki)
164
+ - [Type Definitions](https://github.com/jamescer/osrs-tools/blob/master/src/model/quest/types.ts)
165
+ - [Code Examples](https://github.com/jamescer/osrs-tools//examples)
166
+
167
+ ## Development
168
+
169
+ ### Local Setup
170
+
171
+ ```bash
172
+ # Clone and setup
173
+ git clone https://github.com/jamescer/osrs-tools.git
174
+ cd osrs-tools
175
+ npm install
176
+
177
+ # Build and test
178
+ npm run build
179
+ npm test
180
+ ```
181
+
182
+ ### Available Scripts
183
+
184
+ | Command | Description |
185
+ | --------------- | ------------------------------ |
186
+ | `build` | Compile TypeScript to dist/ |
187
+ | `dev` | Watch mode compilation |
188
+ | `test` | Run test suite |
189
+ | `test:watch` | Run tests in watch mode |
190
+ | `test:coverage` | Generate coverage report |
191
+ | `lint` | Lint and fix code |
192
+ | `format` | Format code with Prettier |
193
+
194
+ ### Project Structure
195
+
196
+ ```
197
+ source/ # TypeScript source code
198
+ ├── index.ts # Main entry point
199
+ ├── runescape/
200
+ │ ├── model/
201
+ │ │ ├── account/ # Player account & skills
202
+ │ │ ├── diaries/ # Achievement diaries
203
+ │ │ ├── quest/ # Quest system
204
+ │ │ │ ├── all/ # Individual quest classes
205
+ │ │ │ └── index.ts # Quest module export
206
+ │ │ ├── slayer/ # Slayer system
207
+ │ │ ├── Item/ # Item models
208
+ │ │ └── npc/ # NPC data
209
+ │ ├── tools/ # Utility tools (ClueScrollHelper, experience calc, etc.)
210
+ │ ├── utils/ # Helper utilities (cache, validation, etc.)
211
+ │ └── errors.ts # Custom error types
212
+ └── examples/ # Usage examples
213
+
214
+ test/ # Jest test suite
215
+ └── unit/
216
+ ├── account/
217
+ ├── diaries/
218
+ ├── quest/
219
+ ├── slayer/
220
+ ├── model/
221
+ ├── tools/
222
+ └── utils/
223
+
224
+ dist/ # Compiled output (generated by build)
225
+ ```
226
+
227
+ ## Contributing
228
+
229
+ We welcome contributions! We use [Conventional Commits](https://www.conventionalcommits.org/).
230
+
231
+ ### Getting Started
232
+
233
+ 1. Fork and clone the repository
234
+ 2. Create a branch (`feat/amazing-feature`)
235
+ 3. Make your changes
236
+ 4. Run tests (`npm test && npm run lint`)
237
+ 5. Commit with conventional format:
238
+
239
+ ```bash
240
+ feat: add quest requirement validation
241
+ fix: correct slayer task weights
242
+ docs: update API documentation
243
+ ```
244
+
245
+ 6. Push and open a Pull Request
246
+
247
+ ### Guidelines
248
+
249
+ - Add tests for new features
250
+ - Update documentation for changes
251
+ - Follow existing code style
252
+ - Keep changes focused
253
+
254
+ ## Support
255
+
256
+ Need help or want to contribute?
257
+
258
+ - [Report Issues](https://github.com/jamescer/osrs-tools/issues)
259
+ - [Request Features](https://github.com/jamescer/osrs-tools/issues)
260
+ - [Join Discussions](https://github.com/jamescer/osrs-tools/discussions)
261
+
262
+ ## License
263
+
264
+ [MIT](./LICENSE) © James Cerniglia
265
+
266
+ ## Credits
267
+
268
+ - **Author**: [James Cerniglia](mailto:jamesmcerniglia@gmail.com)
269
+ - **Contributors**: [View all contributors](https://github.com/jamescer/osrs-tools/graphs/contributors)
270
+ - **Data Source**: [Old School RuneScape Wiki](https://oldschool.runescape.wiki/)
@@ -1 +1 @@
1
- {"version":3,"file":"QuestTool.d.ts","sourceRoot":"","sources":["../../../../source/runescape/model/quest/QuestTool.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAGrD,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AA+IhC;;;;;GAKG;AACH,cAAM,SAAS;IACb,OAAO,CAAC,WAAW,CAA0B;gBAEjC,OAAO,CAAC,EAAE,WAAW;IAIjC;;;OAGG;IACH,cAAc,CAAC,IAAI,EAAE,WAAW,GAAG,OAAO;IAQ1C;;;OAGG;IACH,cAAc,IAAI,WAAW,GAAG,SAAS;IAIzC;;;;OAIG;IACH,gBAAgB,CAAC,KAAK,EAAE,KAAK,GAAG,SAAS,EAAE,OAAO,GAAE,GAAG,CAAC,MAAM,CAAa,GAAG,OAAO;WAmCvE,YAAY,IAAI,KAAK,EAAE;WAIvB,gBAAgB,IAAI,KAAK,EAAE;IAIzC;;;;OAIG;IACH,OAAO,CAAC,MAAM,CAAC,kBAAkB;IA6JjC;;;;;;OAMG;IACH,OAAO,CAAC,MAAM,CAAC,wBAAwB;IAUvC;;;;;OAKG;IACH,OAAO,CAAC,MAAM,CAAC,kBAAkB;IAQjC;;;;;OAKG;IACH,OAAO,CAAC,MAAM,CAAC,mBAAmB;IA4BlC;;;;;OAKG;IACH,MAAM,CAAC,cAAc,CAAC,SAAS,EAAE,MAAM,GAAG,KAAK,GAAG,SAAS;IAiC3D,OAAO,CAAC,MAAM,CAAC,UAAU,CAAiC;IAE1D;;;;OAIG;IACH,MAAM,CAAC,gBAAgB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM;CA2EnD;AAED,OAAO,EAAE,SAAS,EAAE,CAAC"}
1
+ {"version":3,"file":"QuestTool.d.ts","sourceRoot":"","sources":["../../../../source/runescape/model/quest/QuestTool.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAGrD,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AA+LhC;;;;;GAKG;AACH,cAAM,SAAS;IACb,OAAO,CAAC,WAAW,CAA0B;gBAEjC,OAAO,CAAC,EAAE,WAAW;IAIjC;;;OAGG;IACH,cAAc,CAAC,IAAI,EAAE,WAAW,GAAG,OAAO;IAQ1C;;;OAGG;IACH,cAAc,IAAI,WAAW,GAAG,SAAS;IAIzC;;;;OAIG;IACH,gBAAgB,CAAC,KAAK,EAAE,KAAK,GAAG,SAAS,EAAE,OAAO,GAAE,GAAG,CAAC,MAAM,CAAa,GAAG,OAAO;WAmCvE,YAAY,IAAI,KAAK,EAAE;WAIvB,gBAAgB,IAAI,KAAK,EAAE;IAIzC;;;;OAIG;IACH,OAAO,CAAC,MAAM,CAAC,kBAAkB;IA8MjC;;;;;;OAMG;IACH,OAAO,CAAC,MAAM,CAAC,wBAAwB;IAUvC;;;;;OAKG;IACH,OAAO,CAAC,MAAM,CAAC,kBAAkB;IAQjC;;;;;OAKG;IACH,OAAO,CAAC,MAAM,CAAC,mBAAmB;IA4BlC;;;;;OAKG;IACH,MAAM,CAAC,cAAc,CAAC,SAAS,EAAE,MAAM,GAAG,KAAK,GAAG,SAAS;IAiC3D,OAAO,CAAC,MAAM,CAAC,UAAU,CAAiC;IAE1D;;;;OAIG;IACH,MAAM,CAAC,gBAAgB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM;CA2EnD;AAED,OAAO,EAAE,SAAS,EAAE,CAAC"}