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.
- package/README.md +270 -270
- package/dist/runescape/model/quest/QuestTool.d.ts.map +1 -1
- package/dist/runescape/model/quest/QuestTool.js +102 -4
- package/dist/runescape/model/quest/all/ANightAtTheTheatre.d.ts +4 -0
- package/dist/runescape/model/quest/all/ANightAtTheTheatre.d.ts.map +1 -0
- package/dist/runescape/model/quest/all/ANightAtTheTheatre.js +4 -0
- package/dist/runescape/model/quest/all/AtFirstLight.d.ts +4 -0
- package/dist/runescape/model/quest/all/AtFirstLight.d.ts.map +1 -0
- package/dist/runescape/model/quest/all/AtFirstLight.js +4 -0
- package/dist/runescape/model/quest/all/BeneathCursedSands.d.ts +4 -0
- package/dist/runescape/model/quest/all/BeneathCursedSands.d.ts.map +1 -0
- package/dist/runescape/model/quest/all/BeneathCursedSands.js +4 -0
- package/dist/runescape/model/quest/all/ChildrenOfTheSun.d.ts +4 -0
- package/dist/runescape/model/quest/all/ChildrenOfTheSun.d.ts.map +1 -0
- package/dist/runescape/model/quest/all/ChildrenOfTheSun.js +4 -0
- package/dist/runescape/model/quest/all/ColdWar.js +1 -1
- package/dist/runescape/model/quest/all/DeathOnTheIsle.d.ts +4 -0
- package/dist/runescape/model/quest/all/DeathOnTheIsle.d.ts.map +1 -0
- package/dist/runescape/model/quest/all/DeathOnTheIsle.js +4 -0
- package/dist/runescape/model/quest/all/DefenderOfVarrock.d.ts +4 -0
- package/dist/runescape/model/quest/all/DefenderOfVarrock.d.ts.map +1 -0
- package/dist/runescape/model/quest/all/DefenderOfVarrock.js +4 -0
- package/dist/runescape/model/quest/all/DesertTreasureI.d.ts +4 -0
- package/dist/runescape/model/quest/all/DesertTreasureI.d.ts.map +1 -0
- package/dist/runescape/model/quest/all/DesertTreasureI.js +4 -0
- package/dist/runescape/model/quest/all/DesertTreasureIITheFallenEmpire.d.ts +4 -0
- package/dist/runescape/model/quest/all/DesertTreasureIITheFallenEmpire.d.ts.map +1 -0
- package/dist/runescape/model/quest/all/DesertTreasureIITheFallenEmpire.js +4 -0
- package/dist/runescape/model/quest/all/DragonSlayerI.js +1 -1
- package/dist/runescape/model/quest/all/ErnestTheChicken.d.ts +4 -0
- package/dist/runescape/model/quest/all/ErnestTheChicken.d.ts.map +1 -0
- package/dist/runescape/model/quest/all/ErnestTheChicken.js +38 -0
- package/dist/runescape/model/quest/all/EthicallyAcquiredAntiquities.d.ts +4 -0
- package/dist/runescape/model/quest/all/EthicallyAcquiredAntiquities.d.ts.map +1 -0
- package/dist/runescape/model/quest/all/EthicallyAcquiredAntiquities.js +4 -0
- package/dist/runescape/model/quest/all/LandOfTheGoblins.d.ts +4 -0
- package/dist/runescape/model/quest/all/LandOfTheGoblins.d.ts.map +1 -0
- package/dist/runescape/model/quest/all/LandOfTheGoblins.js +4 -0
- package/dist/runescape/model/quest/all/LearningTheRopes.d.ts +4 -0
- package/dist/runescape/model/quest/all/LearningTheRopes.d.ts.map +1 -0
- package/dist/runescape/model/quest/all/LearningTheRopes.js +37 -0
- package/dist/runescape/model/quest/all/MakingFriendsWithMyArm.d.ts +4 -0
- package/dist/runescape/model/quest/all/MakingFriendsWithMyArm.d.ts.map +1 -0
- package/dist/runescape/model/quest/all/MakingFriendsWithMyArm.js +25 -0
- package/dist/runescape/model/quest/all/MisthalinMystery.d.ts +4 -0
- package/dist/runescape/model/quest/all/MisthalinMystery.d.ts.map +1 -0
- package/dist/runescape/model/quest/all/MisthalinMystery.js +4 -0
- package/dist/runescape/model/quest/all/MonkeyMadnessI.d.ts +4 -0
- package/dist/runescape/model/quest/all/MonkeyMadnessI.d.ts.map +1 -0
- package/dist/runescape/model/quest/all/MonkeyMadnessI.js +4 -0
- package/dist/runescape/model/quest/all/MountainDaughter.d.ts +4 -0
- package/dist/runescape/model/quest/all/MountainDaughter.d.ts.map +1 -0
- package/dist/runescape/model/quest/all/MountainDaughter.js +25 -0
- package/dist/runescape/model/quest/all/MourningsEndPartI.d.ts +4 -0
- package/dist/runescape/model/quest/all/MourningsEndPartI.d.ts.map +1 -0
- package/dist/runescape/model/quest/all/MourningsEndPartI.js +4 -0
- package/dist/runescape/model/quest/all/MourningsEndPartII.d.ts +4 -0
- package/dist/runescape/model/quest/all/MourningsEndPartII.d.ts.map +1 -0
- package/dist/runescape/model/quest/all/MourningsEndPartII.js +4 -0
- package/dist/runescape/model/quest/all/PerilousMoons.d.ts +4 -0
- package/dist/runescape/model/quest/all/PerilousMoons.d.ts.map +1 -0
- package/dist/runescape/model/quest/all/PerilousMoons.js +4 -0
- package/dist/runescape/model/quest/all/PiratesTreasure.d.ts +4 -0
- package/dist/runescape/model/quest/all/PiratesTreasure.d.ts.map +1 -0
- package/dist/runescape/model/quest/all/PiratesTreasure.js +4 -0
- package/dist/runescape/model/quest/all/PrinceAliRescue.d.ts +4 -0
- package/dist/runescape/model/quest/all/PrinceAliRescue.d.ts.map +1 -0
- package/dist/runescape/model/quest/all/PrinceAliRescue.js +4 -0
- package/dist/runescape/model/quest/all/RagAndBoneManI.d.ts +4 -0
- package/dist/runescape/model/quest/all/RagAndBoneManI.d.ts.map +1 -0
- package/dist/runescape/model/quest/all/RagAndBoneManI.js +4 -0
- package/dist/runescape/model/quest/all/RagAndBoneManII.d.ts +4 -0
- package/dist/runescape/model/quest/all/RagAndBoneManII.d.ts.map +1 -0
- package/dist/runescape/model/quest/all/RagAndBoneManII.js +4 -0
- package/dist/runescape/model/quest/all/RomeoAndJuliet.d.ts +4 -0
- package/dist/runescape/model/quest/all/RomeoAndJuliet.d.ts.map +1 -0
- package/dist/runescape/model/quest/all/RomeoAndJuliet.js +25 -0
- package/dist/runescape/model/quest/all/RuneMysteries.d.ts +4 -0
- package/dist/runescape/model/quest/all/RuneMysteries.d.ts.map +1 -0
- package/dist/runescape/model/quest/all/RuneMysteries.js +4 -0
- package/dist/runescape/model/quest/all/SecretsOfTheNorth.d.ts +4 -0
- package/dist/runescape/model/quest/all/SecretsOfTheNorth.d.ts.map +1 -0
- package/dist/runescape/model/quest/all/SecretsOfTheNorth.js +4 -0
- package/dist/runescape/model/quest/all/SheepShearer.d.ts +4 -0
- package/dist/runescape/model/quest/all/SheepShearer.d.ts.map +1 -0
- package/dist/runescape/model/quest/all/SheepShearer.js +4 -0
- package/dist/runescape/model/quest/all/ShieldOfArrav.d.ts +4 -0
- package/dist/runescape/model/quest/all/ShieldOfArrav.d.ts.map +1 -0
- package/dist/runescape/model/quest/all/ShieldOfArrav.js +4 -0
- package/dist/runescape/model/quest/all/SinsOfTheFather.d.ts +4 -0
- package/dist/runescape/model/quest/all/SinsOfTheFather.d.ts.map +1 -0
- package/dist/runescape/model/quest/all/SinsOfTheFather.js +4 -0
- package/dist/runescape/model/quest/all/SleepingGiants.d.ts +4 -0
- package/dist/runescape/model/quest/all/SleepingGiants.d.ts.map +1 -0
- package/dist/runescape/model/quest/all/SleepingGiants.js +4 -0
- package/dist/runescape/model/quest/all/TaleOfTheRighteous.d.ts +4 -0
- package/dist/runescape/model/quest/all/TaleOfTheRighteous.d.ts.map +1 -0
- package/dist/runescape/model/quest/all/TaleOfTheRighteous.js +4 -0
- package/dist/runescape/model/quest/all/TearsOfGuthix.d.ts +4 -0
- package/dist/runescape/model/quest/all/TearsOfGuthix.d.ts.map +1 -0
- package/dist/runescape/model/quest/all/TearsOfGuthix.js +4 -0
- package/dist/runescape/model/quest/all/TempleOfIkov.d.ts +4 -0
- package/dist/runescape/model/quest/all/TempleOfIkov.d.ts.map +1 -0
- package/dist/runescape/model/quest/all/TempleOfIkov.js +4 -0
- package/dist/runescape/model/quest/all/TempleOfTheEye.d.ts +4 -0
- package/dist/runescape/model/quest/all/TempleOfTheEye.d.ts.map +1 -0
- package/dist/runescape/model/quest/all/TempleOfTheEye.js +4 -0
- package/dist/runescape/model/quest/all/TheCorsairCurse.d.ts +4 -0
- package/dist/runescape/model/quest/all/TheCorsairCurse.d.ts.map +1 -0
- package/dist/runescape/model/quest/all/TheCorsairCurse.js +25 -0
- package/dist/runescape/model/quest/all/TheCurseOfArrav.d.ts +4 -0
- package/dist/runescape/model/quest/all/TheCurseOfArrav.d.ts.map +1 -0
- package/dist/runescape/model/quest/all/TheCurseOfArrav.js +34 -0
- package/dist/runescape/model/quest/all/TheDigSite.d.ts +4 -0
- package/dist/runescape/model/quest/all/TheDigSite.d.ts.map +1 -0
- package/dist/runescape/model/quest/all/TheDigSite.js +4 -0
- package/dist/runescape/model/quest/all/TheEyesOfGlouphrie.d.ts +4 -0
- package/dist/runescape/model/quest/all/TheEyesOfGlouphrie.d.ts.map +1 -0
- package/dist/runescape/model/quest/all/TheEyesOfGlouphrie.js +4 -0
- package/dist/runescape/model/quest/all/TheFeud.d.ts +4 -0
- package/dist/runescape/model/quest/all/TheFeud.d.ts.map +1 -0
- package/dist/runescape/model/quest/all/TheFeud.js +4 -0
- package/dist/runescape/model/quest/all/TheGardenOfDeath.d.ts +4 -0
- package/dist/runescape/model/quest/all/TheGardenOfDeath.d.ts.map +1 -0
- package/dist/runescape/model/quest/all/TheGardenOfDeath.js +4 -0
- package/dist/runescape/model/quest/all/TheHandInTheSand.js +1 -1
- package/dist/runescape/model/quest/all/TheHeartOfDarkness.d.ts +4 -0
- package/dist/runescape/model/quest/all/TheHeartOfDarkness.d.ts.map +1 -0
- package/dist/runescape/model/quest/all/TheHeartOfDarkness.js +4 -0
- package/dist/runescape/model/quest/all/TheIdesOfMilk.d.ts +4 -0
- package/dist/runescape/model/quest/all/TheIdesOfMilk.d.ts.map +1 -0
- package/dist/runescape/model/quest/all/TheIdesOfMilk.js +4 -0
- package/dist/runescape/model/quest/all/ThePathOfGlouphrie.d.ts +4 -0
- package/dist/runescape/model/quest/all/ThePathOfGlouphrie.d.ts.map +1 -0
- package/dist/runescape/model/quest/all/ThePathOfGlouphrie.js +4 -0
- package/dist/runescape/model/quest/all/TheRestlessGhost.d.ts +4 -0
- package/dist/runescape/model/quest/all/TheRestlessGhost.d.ts.map +1 -0
- package/dist/runescape/model/quest/all/TheRestlessGhost.js +4 -0
- package/dist/runescape/model/quest/all/TheRibbitingTaleOfALilyPadLabourDispute.d.ts +4 -0
- package/dist/runescape/model/quest/all/TheRibbitingTaleOfALilyPadLabourDispute.d.ts.map +1 -0
- package/dist/runescape/model/quest/all/TheRibbitingTaleOfALilyPadLabourDispute.js +4 -0
- package/dist/runescape/model/quest/all/TwilightsPromise.d.ts +4 -0
- package/dist/runescape/model/quest/all/TwilightsPromise.d.ts.map +1 -0
- package/dist/runescape/model/quest/all/TwilightsPromise.js +4 -0
- package/dist/runescape/model/quest/all/WhileGuthixSleeps.d.ts +4 -0
- package/dist/runescape/model/quest/all/WhileGuthixSleeps.d.ts.map +1 -0
- package/dist/runescape/model/quest/all/WhileGuthixSleeps.js +4 -0
- package/dist/runescape/model/quest/all/WitchsPotion.d.ts +4 -0
- package/dist/runescape/model/quest/all/WitchsPotion.d.ts.map +1 -0
- package/dist/runescape/model/quest/all/WitchsPotion.js +4 -0
- package/dist/runescape/model/quest/all/XMarksTheSpot.d.ts +4 -0
- package/dist/runescape/model/quest/all/XMarksTheSpot.d.ts.map +1 -0
- package/dist/runescape/model/quest/all/XMarksTheSpot.js +4 -0
- package/dist/runescape/model/quest/all/index.d.ts +47 -0
- package/dist/runescape/model/quest/all/index.d.ts.map +1 -1
- package/dist/runescape/model/quest/all/index.js +47 -0
- package/dist/runescape/model/slayer/index.d.ts +10 -10
- package/dist/runescape/model/slayer/index.d.ts.map +1 -1
- package/dist/runescape/model/slayer/index.js +8 -8
- package/dist/runescape/model/slayer/masters/index.d.ts +19 -19
- package/dist/runescape/model/slayer/masters/index.d.ts.map +1 -1
- package/dist/runescape/model/slayer/masters/index.js +20 -20
- package/dist/runescape/model/slayer/masters/registry.d.ts +1 -1
- package/dist/runescape/model/slayer/masters/registry.d.ts.map +1 -1
- package/dist/runescape/model/slayer/masters/registry.js +1 -1
- package/dist/runescape/model/slayer/masters.d.ts +8 -0
- package/dist/runescape/model/slayer/masters.d.ts.map +1 -0
- package/dist/runescape/model/slayer/masters.js +6 -0
- package/dist/runescape/model/slayer/tasks/index.d.ts +11 -11
- package/dist/runescape/model/slayer/tasks/index.js +11 -11
- package/package.json +96 -96
- package/public/assets/icons/diaries/Ardougne_Diary.png +0 -0
- package/public/assets/icons/diaries/Desert_Diary.png +0 -0
- package/public/assets/icons/diaries/Falador_Diary.png +0 -0
- package/public/assets/icons/diaries/Fremennik_Diary.png +0 -0
- package/public/assets/icons/diaries/Kandarin_Diary.png +0 -0
- package/public/assets/icons/diaries/Karamja_Diary.png +0 -0
- package/public/assets/icons/diaries/Morytania_Diary.png +0 -0
- package/public/assets/icons/diaries/Varrock_Diary.png +0 -0
- package/public/assets/icons/diaries/Wilderness_Diary.png +0 -0
- package/public/assets/icons/skills/Agility_icon.png +0 -0
- package/public/assets/icons/skills/Attack_icon.png +0 -0
- package/public/assets/icons/skills/Construction_icon.png +0 -0
- package/public/assets/icons/skills/Cooking_icon.png +0 -0
- package/public/assets/icons/skills/Crafting_icon.png +0 -0
- package/public/assets/icons/skills/Defence_icon.png +0 -0
- package/public/assets/icons/skills/Farming_icon.png +0 -0
- package/public/assets/icons/skills/Firemaking_icon.png +0 -0
- package/public/assets/icons/skills/Fishing_icon.png +0 -0
- package/public/assets/icons/skills/Fletching_icon.png +0 -0
- package/public/assets/icons/skills/Herblore_icon.png +0 -0
- package/public/assets/icons/skills/Hitpoints_icon.png +0 -0
- package/public/assets/icons/skills/Magic_icon.png +0 -0
- package/public/assets/icons/skills/Mining_icon.png +0 -0
- package/public/assets/icons/skills/Prayer_icon.png +0 -0
- package/public/assets/icons/skills/Ranged_icon.png +0 -0
- package/public/assets/icons/skills/Sailing_icon.png +0 -0
- package/public/assets/icons/skills/Slayer_icon.png +0 -0
- package/public/assets/icons/skills/Smithing_icon.png +0 -0
- package/public/assets/icons/skills/Strength_icon.png +0 -0
- package/public/assets/icons/skills/Thieving_icon.png +0 -0
- package/public/assets/icons/skills/Woodcutting_icon.png +0 -0
- package/public/assets/icons/tabs/Combat_Tab.png +0 -0
- package/public/assets/icons/tabs/Inventory_Tab.png +0 -0
- package/public/assets/icons/tabs/Magic_Tab.png +0 -0
- package/public/assets/icons/tabs/Prayer_Tab.png +0 -0
- package/public/assets/icons/tabs/Quest_Tab.png +0 -0
- package/public/assets/icons/tabs/Skills_Tab.png +0 -0
- package/public/assets/icons/ui/Bank.png +0 -0
- package/public/assets/icons/ui/Music.png +0 -0
- package/public/assets/icons/ui/Quest_Points.png +0 -0
- package/public/assets/icons/ui/Settings.png +0 -0
- package/dist/runescape/model/Item/ClueScrollRewards.js +0 -286
- package/dist/runescape/model/Item/all/StudiedChaps.js +0 -35
- package/dist/runescape/model/Item/models/YellowPartyhat.obj +0 -149
- package/dist/runescape/model/slayer/Masters.js +0 -101
- package/dist/runescape/tools/ClueScrollHelper.js +0 -103
- package/dist/runescape/utils/cache.js +0 -124
|
@@ -1,124 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Generic cache implementation with LRU eviction and TTL support
|
|
3
|
-
*/
|
|
4
|
-
export class Cache {
|
|
5
|
-
store = new Map();
|
|
6
|
-
maxSize;
|
|
7
|
-
ttl;
|
|
8
|
-
/**
|
|
9
|
-
* Creates a new Cache instance
|
|
10
|
-
* @param options Cache configuration options
|
|
11
|
-
*/
|
|
12
|
-
constructor(options = {}) {
|
|
13
|
-
this.maxSize = options.maxSize || 100;
|
|
14
|
-
this.ttl = options.ttl;
|
|
15
|
-
}
|
|
16
|
-
/**
|
|
17
|
-
* Store a value in the cache
|
|
18
|
-
* @param key Cache key
|
|
19
|
-
* @param value Value to store
|
|
20
|
-
* @param ttl Optional TTL override for this item
|
|
21
|
-
*/
|
|
22
|
-
set(key, value, ttl) {
|
|
23
|
-
// Enforce size limit using LRU eviction
|
|
24
|
-
if (this.store.size >= this.maxSize) {
|
|
25
|
-
const firstKey = this.store.keys().next().value;
|
|
26
|
-
this.store.delete(firstKey);
|
|
27
|
-
}
|
|
28
|
-
const expiresAt = ttl || this.ttl ? Date.now() + (ttl || this.ttl) : undefined;
|
|
29
|
-
this.store.set(key, { expiresAt, value });
|
|
30
|
-
}
|
|
31
|
-
/**
|
|
32
|
-
* Retrieve a value from the cache
|
|
33
|
-
* @param key Cache key
|
|
34
|
-
* @returns Stored value or undefined if not found/expired
|
|
35
|
-
*/
|
|
36
|
-
get(key) {
|
|
37
|
-
const item = this.store.get(key);
|
|
38
|
-
if (!item) {
|
|
39
|
-
return undefined;
|
|
40
|
-
}
|
|
41
|
-
// Check if item has expired
|
|
42
|
-
if (item.expiresAt && Date.now() > item.expiresAt) {
|
|
43
|
-
this.store.delete(key);
|
|
44
|
-
return undefined;
|
|
45
|
-
}
|
|
46
|
-
return item.value;
|
|
47
|
-
}
|
|
48
|
-
/**
|
|
49
|
-
* Remove an item from the cache
|
|
50
|
-
* @param key Cache key
|
|
51
|
-
* @returns true if item was found and removed
|
|
52
|
-
*/
|
|
53
|
-
delete(key) {
|
|
54
|
-
return this.store.delete(key);
|
|
55
|
-
}
|
|
56
|
-
/**
|
|
57
|
-
* Clear all items from the cache
|
|
58
|
-
*/
|
|
59
|
-
clear() {
|
|
60
|
-
this.store.clear();
|
|
61
|
-
}
|
|
62
|
-
/**
|
|
63
|
-
* Get the number of items in the cache
|
|
64
|
-
*/
|
|
65
|
-
get size() {
|
|
66
|
-
return this.store.size;
|
|
67
|
-
}
|
|
68
|
-
/**
|
|
69
|
-
* Get all valid keys in the cache
|
|
70
|
-
* @returns Array of cache keys
|
|
71
|
-
*/
|
|
72
|
-
keys() {
|
|
73
|
-
const now = Date.now();
|
|
74
|
-
return Array.from(this.store.entries())
|
|
75
|
-
.filter(([, item]) => !item.expiresAt || item.expiresAt > now)
|
|
76
|
-
.map(([key]) => key);
|
|
77
|
-
}
|
|
78
|
-
/**
|
|
79
|
-
* Remove all expired items from the cache
|
|
80
|
-
* @returns Number of items removed
|
|
81
|
-
*/
|
|
82
|
-
prune() {
|
|
83
|
-
const now = Date.now();
|
|
84
|
-
let removed = 0;
|
|
85
|
-
for (const [key, item] of this.store.entries()) {
|
|
86
|
-
if (item.expiresAt && item.expiresAt <= now) {
|
|
87
|
-
this.store.delete(key);
|
|
88
|
-
removed++;
|
|
89
|
-
}
|
|
90
|
-
}
|
|
91
|
-
return removed;
|
|
92
|
-
}
|
|
93
|
-
/**
|
|
94
|
-
* Check if a key exists in the cache and isn't expired
|
|
95
|
-
* @param key Cache key
|
|
96
|
-
* @returns true if key exists and isn't expired
|
|
97
|
-
*/
|
|
98
|
-
has(key) {
|
|
99
|
-
const item = this.store.get(key);
|
|
100
|
-
if (!item) {
|
|
101
|
-
return false;
|
|
102
|
-
}
|
|
103
|
-
if (item.expiresAt && Date.now() > item.expiresAt) {
|
|
104
|
-
this.store.delete(key);
|
|
105
|
-
return false;
|
|
106
|
-
}
|
|
107
|
-
return true;
|
|
108
|
-
}
|
|
109
|
-
/**
|
|
110
|
-
* Get or set a cache value
|
|
111
|
-
* @param key Cache key
|
|
112
|
-
* @param factory Function to create value if not found
|
|
113
|
-
* @returns Cached or newly created value
|
|
114
|
-
*/
|
|
115
|
-
async getOrSet(key, factory) {
|
|
116
|
-
const existing = this.get(key);
|
|
117
|
-
if (existing !== undefined) {
|
|
118
|
-
return existing;
|
|
119
|
-
}
|
|
120
|
-
const value = await factory();
|
|
121
|
-
this.set(key, value);
|
|
122
|
-
return value;
|
|
123
|
-
}
|
|
124
|
-
}
|