diff --git a/.github/workflows/integration_tests.yml b/.github/workflows/integration_tests.yml index 49cb9d9018..d3f01acbac 100644 --- a/.github/workflows/integration_tests.yml +++ b/.github/workflows/integration_tests.yml @@ -15,7 +15,9 @@ jobs: test: runs-on: ubuntu-latest timeout-minutes: 10 - + concurrency: + group: master-int-tests + cancel-in-progress: true steps: - name: Checkout Project uses: actions/checkout@v4 diff --git a/.github/workflows/unit_tests.yml b/.github/workflows/unit_tests.yml index b146211834..97c0853b4e 100644 --- a/.github/workflows/unit_tests.yml +++ b/.github/workflows/unit_tests.yml @@ -20,7 +20,9 @@ jobs: matrix: node_version: [20.15.0] os: [ubuntu-latest] - + concurrency: + group: master-unit-tests + cancel-in-progress: true steps: - name: Checkout Project uses: actions/checkout@v4 diff --git a/docs/package.json b/docs/package.json index 5eddccf985..6b95018782 100644 --- a/docs/package.json +++ b/docs/package.json @@ -12,7 +12,7 @@ "dependencies": { "@astrojs/check": "^0.9.3", "@astrojs/starlight": "^0.28.2", - "astro": "^4.15.3", + "astro": "^4.16.1", "markdown-it": "^14.1.0", "sharp": "^0.32.5", "typescript": "^5.6.2", diff --git a/docs/src/content/docs/bso/Custom Items/pets.md b/docs/src/content/docs/bso/Custom Items/pets.md index 3fe05ac516..8624676d21 100644 --- a/docs/src/content/docs/bso/Custom Items/pets.md +++ b/docs/src/content/docs/bso/Custom Items/pets.md @@ -2,8 +2,6 @@ title: "Pets" --- -# Pets - There are pets exclusive to BSO that provide unique and powerful perks and are rare drops from certain activities. These custom pets must equipped using `/gear pet equip:name`\*\*\` and in most cases, only one pet's effect can be active at once. All pets with a per minute drop rate can only be obtained on trips that are at least 20 minute long. ## Trip boosting Pets diff --git a/docs/src/content/docs/bso/Minigames/balthazars-big-bonanza.md b/docs/src/content/docs/bso/Minigames/balthazars-big-bonanza.md index c47b1680d2..40b19631cb 100644 --- a/docs/src/content/docs/bso/Minigames/balthazars-big-bonanza.md +++ b/docs/src/content/docs/bso/Minigames/balthazars-big-bonanza.md @@ -2,10 +2,18 @@ title: "Balthazar's Big Bonanza" --- -You can start this minigame with the command `/bsominigames balthazars_big_bonanza start` +You can start this minigame with the command [[/bsominigames balthazars_big_bonanza start]] This minigame can be done once a week. A trip takes around 15 minutes. -### Rewards +## Rewards -
RewardSource
Spectator Clothes3 unowned items per trip to Balthazar's Big Bonanza only if you have a Igne tame free. If you have multiple Igne tames then you always have a free tame. There are 22 unique items in total.
Giant's hand1/5 chance to receive from a trip.
Ringmaster set500 Circus tickets
Clown set200 Circus tickets
Acrobat set50 Circus tickets
Circus TicketsYou will receive a random amount of tickets based on your Agility, Ranged and Thieving levels. This is calculated as:
Max tickets = Agility level + Ranged level + (Thieving level / 3). (280 max)
Min tickets = (Max tickets/2). Can't be more than 120.
i.e. A random amount between 120-280 at 120 all, 113-231 at 99 all, and 2-3 for level 1 all.
XPAgility, Range and Thieving xp scaled based on your level
+| Reward | Source | +| ----------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| Spectator Clothes | 3 unowned items per trip to Balthazar's Big Bonanza only if you have a Igne tame free. If you have multiple Igne tames then you always have a free tame. There are 22 unique items in total. | +| Giant's hand | 1/5 chance to receive from a trip. | +| Ringmaster set | 500 Circus tickets | +| Clown set | 200 Circus tickets | +| Acrobat set | 50 Circus tickets | +| Circus Tickets | You will receive a random amount of tickets based on your Agility, Ranged and Thieving levels. This is calculated as:Max tickets = Agility level + Ranged level + (Thieving level / 3). (280 max)Min tickets = (Max tickets/2). Can't be more than 120.i.e. A random amount between 120-280 at 120 all, 113-231 at 99 all, and 2-3 for level 1 all. | +| XP | Agility, Range and Thieving xp scaled based on your level | diff --git a/docs/src/content/docs/bso/Minigames/baxtorian-bathhouses.md b/docs/src/content/docs/bso/Minigames/baxtorian-bathhouses.md index afd6a37ba2..03685659b8 100644 --- a/docs/src/content/docs/bso/Minigames/baxtorian-bathhouses.md +++ b/docs/src/content/docs/bso/Minigames/baxtorian-bathhouses.md @@ -2,7 +2,7 @@ title: "Baxtorian Bathhouses" --- -You can start this minigame through `/bsominigames baxtorian_bathhouses start` +You can start this minigame through [[/bsominigames baxtorian_bathhouses start]] In this minigame, you play the role of a Boiler and Herbalist. Your job is to heat the water, and infuse it with herbs to give the water special properties. @@ -14,7 +14,22 @@ In this minigame, you play the role of a Boiler and Herbalist. Your job is to he There are multiple species that are served in this minigame, each with their own preferences. -
SpeciesPreference
FairyMagical
MonkeyVitalizing
GoblinCaustic
ImpUnholy
GiantInvigorating
FiendSoothing
TrollSoothing
OgreHealing
GargoyleCaustic
TzHaarHealing
WyvernVitalizing
Abyssal CreaturesMagical
DragonsInvigorating
DemonsUnholy
+| Species | Preference | +| ----------------- | ------------ | +| Fairy | Magical | +| Monkey | Vitalizing | +| Goblin | Caustic | +| Imp | Unholy | +| Giant | Invigorating | +| Fiend | Soothing | +| Troll | Soothing | +| Ogre | Healing | +| Gargoyle | Caustic | +| TzHaar | Healing | +| Wyvern | Vitalizing | +| Abyssal Creatures | Magical | +| Dragons | Invigorating | +| Demons | Unholy | ## Requirements diff --git a/docs/src/content/docs/bso/Minigames/fist-of-guthix.md b/docs/src/content/docs/bso/Minigames/fist-of-guthix.md index f7c8bb2c27..ffdb8352e8 100644 --- a/docs/src/content/docs/bso/Minigames/fist-of-guthix.md +++ b/docs/src/content/docs/bso/Minigames/fist-of-guthix.md @@ -2,10 +2,10 @@ title: "Fist of Guthix" --- -You can start this miningame with the command `/bsominigames fist_of_guthix start.`\ +You can start this miningame with the command `/bsominigames fist_of_guthix start.` Each game awards 15 fist of guthix tokens. (30 with flappy) -### `Rewards` +### Rewards - `Adamant Spikeshield - 100 fist of guthix tokens` - `Rune Spikeshield - 100 fist of guthix tokens` diff --git a/docs/src/content/docs/bso/Monsters/polypore-dungeon.md b/docs/src/content/docs/bso/Monsters/polypore-dungeon.md index fcfe5bfb49..5e63785fcd 100644 --- a/docs/src/content/docs/bso/Monsters/polypore-dungeon.md +++ b/docs/src/content/docs/bso/Monsters/polypore-dungeon.md @@ -2,10 +2,6 @@ title: "Polypore Dungeon" --- -# Polypore Dungeon - -### Polypore Dungeon - The Polypore Dungeon is a new location within BSO that contains several monsters which all have a requirement of 82 Dungeoneering to kill. All monsters listed under this heading **must** be killed with magic, and require the use of Neem Oil to be killed. - Fungal Rodent: Drops the Mycelium Visor Web, along with varying amounts of Swamp Tar, Swamp Toads, Chaos Runes, Polypore Spores, Limpwurt Roots, Grifolic Flake, Neem Drupe, and an assortment of random grimy herbs. diff --git a/docs/src/content/docs/bso/Skills/Dungeoneering Training/README.md b/docs/src/content/docs/bso/Skills/Dungeoneering Training/README.md deleted file mode 100644 index 2b5371bb23..0000000000 --- a/docs/src/content/docs/bso/Skills/Dungeoneering Training/README.md +++ /dev/null @@ -1,41 +0,0 @@ ---- -title: "Dungeoneering" ---- - -### Starting Out - -There are 7 floors. Each floor requires +20 DG lvl to the last and increasingly higher stats in other skills, especially combat. - -`/dg start` to start training dungeoneering. You can only do a floor for which you have the required stats, it will automatically pick the highest floor you can do. - -`/dg buy item:[name]` to buy a reward. - -`/dg stats` to see your tokens, max floor, and shard boosts - -While doing dungeoneering in dungeons of Floor 5+, you have a chance of getting a tradeable Gorajan shard. You can combine 2 of these with a nex armour piece to make a gorajan armour piece, using smithing. (see [Dungeoneering Rewards](dg-rewards.md)). - -Whilst doing floor 7 there is a 1/20k per minute chance of obtaining a gorajan bonecrusher (u). I.e. if you do a trip that lasts 1 hour 4 minutes, you would have 64 rolls at 1/20k to receive it. - -You recieve dungeoneering tokens at a rate of xp/40 - -### Boosts - -- Scroll of Teleportation - 15% -- Dungeoneering Cape - 5% if you have Scroll of Teleportation -- Dungeoneering Master Cape - 10% if you have Scroll of Teleportation (does not stack with Dungeoneering cape) -- Gorajan armour - 6% per completed set -- Party Size - 5% for every person in a mass starting from a party of 2 to a limit of 25% - -You receive less XP if doing a floor lower than your max floor. - -Dungeoneering boosts, excluding party size, are divided by the number of players in the mass. - -#### Gorajan Shard chance boost (individual only) - -- Ring of luck - 5% -- lvl 99 Dungeoneering - 30% -- Master Dungeoneering Cape - 2x (does not stack with the 30% from having lvl 99) - -### Methods - -The best way to train dungeoneering is to use xp lamps to lvl 100 and then train on the best floor you can do with as many people as you can. diff --git a/docs/src/content/docs/bso/Skills/Dungeoneering Training/dg-rewards.md b/docs/src/content/docs/bso/Skills/Dungeoneering.md similarity index 67% rename from docs/src/content/docs/bso/Skills/Dungeoneering Training/dg-rewards.md rename to docs/src/content/docs/bso/Skills/Dungeoneering.md index 6626e67416..2d3bf904f8 100644 --- a/docs/src/content/docs/bso/Skills/Dungeoneering Training/dg-rewards.md +++ b/docs/src/content/docs/bso/Skills/Dungeoneering.md @@ -1,23 +1,63 @@ --- -title: "Dungeoneering Rewards" +title: "Dungeoneering" --- +## Starting Out + +There are 7 floors. Each floor requires +20 DG lvl to the last and increasingly higher stats in other skills, especially combat. + +[[/dg start]] to start training dungeoneering. You can only do a floor for which you have the required stats, it will automatically pick the highest floor you can do. + +[[/dg buy item\:]] to buy a reward. + +[[/dg stats]] to see your tokens, max floor, and shard boosts + +While doing dungeoneering in dungeons of Floor 5+, you have a chance of getting a tradeable Gorajan shard. You can combine 2 of these with a nex armour piece to make a gorajan armour piece, using smithing. + +Whilst doing floor 7 there is a 1/20k per minute chance of obtaining a gorajan bonecrusher (u). I.e. if you do a trip that lasts 1 hour 4 minutes, you would have 64 rolls at 1/20k to receive it. + +You recieve dungeoneering tokens at a rate of xp/40 + +## Boosts + +- Scroll of Teleportation - 15% +- Dungeoneering Cape - 5% if you have Scroll of Teleportation +- Dungeoneering Master Cape - 10% if you have Scroll of Teleportation (does not stack with Dungeoneering cape) +- Gorajan armour - 6% per completed set +- Party Size - 5% for every person in a mass starting from a party of 2 to a limit of 25% + +You receive less XP if doing a floor lower than your max floor. + +Dungeoneering boosts, excluding party size, are divided by the number of players in the mass. + +### Gorajan Shard chance boost (individual only) + +- Ring of luck - 5% +- lvl 99 Dungeoneering - 30% +- Master Dungeoneering Cape - 2x (does not stack with the 30% from having lvl 99) + +## Methods + +The best way to train dungeoneering is to use xp lamps to lvl 100 and then train on the best floor you can do with as many people as you can. + +## Rewards + ### Buyable Boosts/Utility | Item | Token Cost | Boost | | ----------------------- | ---------- | ----------------------------------------------------------------------------------- | | Scroll of life | 400,000 | 15% less seeds used when farming | | Scroll of efficiency | 400,000 | 15% of bars saved when doing smithing | -| Scroll of farming\* | 400,000 | +2 extra farming patches to all types | +| Scroll of farming | 400,000 | +2 extra farming patches to all types | | Scroll of cleansing | 400,000 | Currently does not provide any boost/utility | | Scroll of dexterity | 400,000 | 15% extra output in crafting | | Scroll of teleportation | 400,000 | 15% (divided by team size) boost to dungeoneering | | Scroll of mystery | 500,000 | 1/5 chance at receiving a mystery box when training dungeoneering | | Scroll of proficiency | 900,000 | 15% of planks saved in construction | -| Scroll of longevity\* | 800,000 | 2x increase to slayer task quantities | -| Scroll of the hunt\* | 800,000 | Gives 2x higher chances of impling spawns, and +4 higher limit on birdhouses (4->8) | +| Scroll of longevity | 800,000 | 2x increase to slayer task quantities | +| Scroll of the hunt | 800,000 | Gives 2x higher chances of impling spawns, and +4 higher limit on birdhouses (4->8) | -\[\*]Important: Only the scroll of farming, longevity and hunt are currently tradeable/useable. To enable these scrolls you must `/minion use item:[Scroll name]`, you can only do this once. All other scrolls work passively while stored in the bank. +_Only the scroll of farming, longevity and hunt are tradeable/useable. To enable these scrolls you must [[/minion use item\:]], you can only do this once. All other scrolls work passively while stored in the bank_ ### Buyable Gear diff --git a/docs/src/content/docs/bso/Skills/divination/README.md b/docs/src/content/docs/bso/Skills/divination.md similarity index 98% rename from docs/src/content/docs/bso/Skills/divination/README.md rename to docs/src/content/docs/bso/Skills/divination.md index 0674cb8c0a..da51bd3c36 100644 --- a/docs/src/content/docs/bso/Skills/divination/README.md +++ b/docs/src/content/docs/bso/Skills/divination.md @@ -1,6 +1,5 @@ --- title: "Divination" -description: /divination harvest_memories --- ## Memory Harvesting in Divination diff --git a/docs/src/content/docs/bso/Skills/divination/efficient-divination-training.md b/docs/src/content/docs/bso/Skills/divination/efficient-divination-training.md deleted file mode 100644 index 2d2dd9beda..0000000000 --- a/docs/src/content/docs/bso/Skills/divination/efficient-divination-training.md +++ /dev/null @@ -1,8 +0,0 @@ ---- -title: "Efficient Divination training" -description: How to get to 120 and beyond ---- - -If Divination is your lowest skill, then start with `/minigames tears_of_guthix start` - -Run a [Guthixian Cache](../../minigames/guthixian-cache.md) trip every day. You do NOT need to equip the diviner's outfit to receive the boost. diff --git a/docs/src/content/docs/bso/Skills/invention/README.md b/docs/src/content/docs/bso/Skills/invention.md similarity index 84% rename from docs/src/content/docs/bso/Skills/invention/README.md rename to docs/src/content/docs/bso/Skills/invention.md index 8024b02993..016912dfb5 100644 --- a/docs/src/content/docs/bso/Skills/invention/README.md +++ b/docs/src/content/docs/bso/Skills/invention.md @@ -82,3 +82,29 @@ Master capes give a 5% junk chance reduction for a group relating to their skill | Invention master cape | 5% faster disassembly | | Invention master cape | 5% extra materials | | Inventor's outfit | 4% xp boost | + +## Efficient Training + +This guides purpose is to serve as a quick guide to reach level 99 Invention. It is not the absolute fastest way to level 99. Nor is it the most efficient for getting a variety of materials. I recommend you reach level 99/120 first using this guide and then figure out what inventions you want to aim for. + +Consider getting the inventor's outfit from [Tinkering Workshop](../../minigames/tinkering-workshop.md) at some point, for 4% bonus XP. + +- Level 1 - 11: 652 Potato seed +- Level 11 - 26: 933 Opal bolt tips +- Level 26 - 35: 553 Jade bolt tips +- Level 35 - 40: 367 Jug of wine +- Level 40 - 42: 201 Jug of wine +- Level 42 - 45: 298 Curry tree seed +- Level 45 - 50: 727 Curry tree seed +- Level 50 - 55: 887 Gold bar +- Level 55 - 60: 1,221 Zulrah's scales +- Level 60 - 65: 1,723 Yew logs +- Level 65 - 70: 2,457 Diamond bolt tips +- Level 70 - 75: 3,507 Black Chinchompa +- Level 75 - 80: 5,089 Magic logs +- At level 80 disassemble 5-8 Dwarven Bars, research Metallic material until you unlock the Dwarven Toolkit blueprint, and invent the Dwarven Toolkit. +- Level 80 - 85: 7,389 Shark +- Level 85 - 91: 13,762 Mithril bar +- Level 91 - 95: 13,137 Manta ray +- Level 95 - 99: 18,030 Adamantite bar +- Level 99 - 120: The best xp/hr for the rest of your invention career will be disassembling level 99 items. Those being: Rocktail, Raw Rocktail, Elder Bow, Runite Bar. However this will not get you the variety of materials you need to power all of the amazing inventions. diff --git a/docs/src/content/docs/bso/Skills/invention/efficient-disassembling-to-99.md b/docs/src/content/docs/bso/Skills/invention/efficient-disassembling-to-99.md deleted file mode 100644 index 92ad8e93f8..0000000000 --- a/docs/src/content/docs/bso/Skills/invention/efficient-disassembling-to-99.md +++ /dev/null @@ -1,27 +0,0 @@ ---- -title: "Efficient Disassembling to 99" ---- - -This guides purpose is to serve as a quick guide to reach level 99 Invention. It is not the absolute fastest way to level 99. Nor is it the most efficient for getting a variety of materials. I recommend you reach level 99/120 first using this guide and then figure out what inventions you want to aim for. - -Consider getting the inventor's outfit from [Tinkering Workshop](../../minigames/tinkering-workshop.md) at some point, for 4% bonus XP. - -- Level 1 - 11: 652 Potato seed -- Level 11 - 26: 933 Opal bolt tips -- Level 26 - 35: 553 Jade bolt tips -- Level 35 - 40: 367 Jug of wine -- Level 40 - 42: 201 Jug of wine -- Level 42 - 45: 298 Curry tree seed -- Level 45 - 50: 727 Curry tree seed -- Level 50 - 55: 887 Gold bar -- Level 55 - 60: 1,221 Zulrah's scales -- Level 60 - 65: 1,723 Yew logs -- Level 65 - 70: 2,457 Diamond bolt tips -- Level 70 - 75: 3,507 Black Chinchompa -- Level 75 - 80: 5,089 Magic logs -- At level 80 disassemble 5-8 Dwarven Bars, research Metallic material until you unlock the Dwarven Toolkit blueprint, and invent the Dwarven Toolkit. -- Level 80 - 85: 7,389 Shark -- Level 85 - 91: 13,762 Mithril bar -- Level 91 - 95: 13,137 Manta ray -- Level 95 - 99: 18,030 Adamantite bar -- Level 99 - 120: The best xp/hr for the rest of your invention career will be disassembling level 99 items. Those being: Rocktail, Raw Rocktail, Elder Bow, Runite Bar. However this will not get you the variety of materials you need to power all of the amazing inventions. diff --git a/docs/src/content/docs/bso/Tames/igne-equipment.md b/docs/src/content/docs/bso/Tames/igne-equipment.md deleted file mode 100644 index 0e0bea5054..0000000000 --- a/docs/src/content/docs/bso/Tames/igne-equipment.md +++ /dev/null @@ -1,30 +0,0 @@ ---- -title: "Igne Equipment" ---- - -**`Warning: Do NOT feed your claws or armor to your tame. You will not get any boost and lose the item forever.`** - -You can create each tier of igne claws and armor by using the `/create` command, starting with **Runite igne claws or Dragon Igne Armor**. - -To equip igne claws and armor, use `/tames equip` and select the tier you would like to equip. To unequip (and upgrade) the igne equipment, use `/tames unequip` - -Each set of claws and armor require a certain _**smithing, crafting, and invention**_ level to create them: - -- Runite: Level 80 (Claws only tier) -- Dragon: Level 85 -- Barrows: Level 90 -- Volcanic: Level 95 -- Justiciar: Level 95 (Armor only tier) -- Drygore: Level 100 -- Dwarven: Level 110 -- Gorajan: Level 120 - -Justiciar requires Level 99 invention to disassemble - -### Igne Claw Creation - -
Tier + PvM BoostMaterials CostSpeed Boost
Runite (5%)Igne Gear frame, 30x runite bar, 10x leather, 1000x metallic, 500x strong, 500x flexible, 500x sharp5%
Dragon (8%)Runite Igne Claws, Dragon Claws, 10x leather, 1500x metallic, 200x strong, 200x sharp, 200x flexible, 50x orikalkum 8%
Barrows (14%)Dragon Igne Claws, 10x leather, 1500x metallic, 200x strong, 200x flexible, 200x sharp, 100x barrows14%
Volcanic (17%)Barrows Igne Claws, 10x leather, 250x Obsidian Shards, 2x Volcanic Shards, 1500x metallic, 200x strong, 200x flexible, 200x sharp17%
Drygore (22%)Volcanic Igne Claws, 10x leather, 2000x drygore, 1500x metallic, 200x strong, 200x flexible, 200x sharp22%
Dwarven (27%)Drygore Igne Claws, 10x leather, 2500x dwarven, 1500x metallic, 200x strong, 200x flexible, 200x sharp27%
Gorajan (35%)Dwarven Igne Claws, 10x leather, 2x gorajan shards, 2000x metallic, 200x strong, 200x flexible, 200x sharp35%
Grand TotalIgne Gear Frame, 30 Runite Bars, 70 Leather, 10,500 Metallic, 1,700 Strong, 1,700 Flexible, 1,700 Sharp, 50 Orikalkum, 100 Barrows, 2,000 Drygore, 250 Obsidian Shards, 2 Volcanic Shards, 2,500 Dwarven, 2 Gorajan Shards-
- -### Igne Armor Creation - -
NameFood ReductionCox/Tob Death ChanceMaterials Cost
Dragon Igne Armor5%85%Igne gear frame, 10x leather, 1500x metallic, 200x strong, 1000x protective, 80x orikalkum
Barrows Igne Armor8%75%Dragon Igne Armor, 10x leather, 1500x metallic, 200x strong, 200x protective, 100x barrows
Volcanic Igne Armor10%65%Barrows Igne Armor, 10x leather, 250x Obsidian Shards, 2x Volcanic Shards, 1500x metallic, 200x strong, 200x protective
Justiciar Igne Armor15%50%Volcanic Igne Armor, 10x leather, 1500x metallic, 200x strong, 200x protective, 5x justiciar
Drygore Igne Armor22%30%Justiciar Igne Armor, 10x leather, 2500x drygore, 1500x metallic, 200x strong, 200x protective
Dwarven Igne Armor27%10%Drygore Igne Armor, 10x leather, 3000x dwarven, 1500x metallic, 200x strong, 200x protective
Gorajan Igne Armor33%5%Dwarven Igne Armor, 10x leather, 2x Gorajan shards, 2000x metallic, 200x strong, 200x protective
Grand TotalIgne gear frame, 70 leather, 11,000 metallic, 1,400 strong, 2,200 protective, 80 orikalkum, 100 barrows, 5 justiciar, 2500 drygore, 3000 dwarven, 250 obsidian shards, 2 volcanic shards, 2 gorajan shards
diff --git a/docs/src/content/docs/bso/Tames/igne-tame.md b/docs/src/content/docs/bso/Tames/igne-tame.md index 3a1354fb1b..485a82a260 100644 --- a/docs/src/content/docs/bso/Tames/igne-tame.md +++ b/docs/src/content/docs/bso/Tames/igne-tame.md @@ -1,5 +1,5 @@ --- -title: "Igne Tame" +title: "Igne" --- Once you have received a Dragon Egg drop from Ignecarus, you can go about growing your own tame! You can send the dragon tame out on PvM trips and it will get you loot. @@ -43,3 +43,32 @@ A minimum of Justiciar igne armor is needed for the following: - Callisto - Vet'ion - Venenatis + +## Equipment + +**`Warning: Do NOT feed your claws or armor to your tame. You will not get any boost and lose the item forever.`** + +You can create each tier of igne claws and armor by using the `/create` command, starting with **Runite igne claws or Dragon Igne Armor**. + +To equip igne claws and armor, use `/tames equip` and select the tier you would like to equip. To unequip (and upgrade) the igne equipment, use `/tames unequip` + +Each set of claws and armor require a certain _**smithing, crafting, and invention**_ level to create them: + +- Runite: Level 80 (Claws only tier) +- Dragon: Level 85 +- Barrows: Level 90 +- Volcanic: Level 95 +- Justiciar: Level 95 (Armor only tier) +- Drygore: Level 100 +- Dwarven: Level 110 +- Gorajan: Level 120 + +Justiciar requires Level 99 invention to disassemble + +### Igne Claw Creation + +
Tier + PvM BoostMaterials CostSpeed Boost
Runite (5%)Igne Gear frame, 30x runite bar, 10x leather, 1000x metallic, 500x strong, 500x flexible, 500x sharp5%
Dragon (8%)Runite Igne Claws, Dragon Claws, 10x leather, 1500x metallic, 200x strong, 200x sharp, 200x flexible, 50x orikalkum 8%
Barrows (14%)Dragon Igne Claws, 10x leather, 1500x metallic, 200x strong, 200x flexible, 200x sharp, 100x barrows14%
Volcanic (17%)Barrows Igne Claws, 10x leather, 250x Obsidian Shards, 2x Volcanic Shards, 1500x metallic, 200x strong, 200x flexible, 200x sharp17%
Drygore (22%)Volcanic Igne Claws, 10x leather, 2000x drygore, 1500x metallic, 200x strong, 200x flexible, 200x sharp22%
Dwarven (27%)Drygore Igne Claws, 10x leather, 2500x dwarven, 1500x metallic, 200x strong, 200x flexible, 200x sharp27%
Gorajan (35%)Dwarven Igne Claws, 10x leather, 2x gorajan shards, 2000x metallic, 200x strong, 200x flexible, 200x sharp35%
Grand TotalIgne Gear Frame, 30 Runite Bars, 70 Leather, 10,500 Metallic, 1,700 Strong, 1,700 Flexible, 1,700 Sharp, 50 Orikalkum, 100 Barrows, 2,000 Drygore, 250 Obsidian Shards, 2 Volcanic Shards, 2,500 Dwarven, 2 Gorajan Shards-
+ +### Igne Armor Creation + +
NameFood ReductionCox/Tob Death ChanceMaterials Cost
Dragon Igne Armor5%85%Igne gear frame, 10x leather, 1500x metallic, 200x strong, 1000x protective, 80x orikalkum
Barrows Igne Armor8%75%Dragon Igne Armor, 10x leather, 1500x metallic, 200x strong, 200x protective, 100x barrows
Volcanic Igne Armor10%65%Barrows Igne Armor, 10x leather, 250x Obsidian Shards, 2x Volcanic Shards, 1500x metallic, 200x strong, 200x protective
Justiciar Igne Armor15%50%Volcanic Igne Armor, 10x leather, 1500x metallic, 200x strong, 200x protective, 5x justiciar
Drygore Igne Armor22%30%Justiciar Igne Armor, 10x leather, 2500x drygore, 1500x metallic, 200x strong, 200x protective
Dwarven Igne Armor27%10%Drygore Igne Armor, 10x leather, 3000x dwarven, 1500x metallic, 200x strong, 200x protective
Gorajan Igne Armor33%5%Dwarven Igne Armor, 10x leather, 2x Gorajan shards, 2000x metallic, 200x strong, 200x protective
Grand TotalIgne gear frame, 70 leather, 11,000 metallic, 1,400 strong, 2,200 protective, 80 orikalkum, 100 barrows, 5 justiciar, 2500 drygore, 3000 dwarven, 250 obsidian shards, 2 volcanic shards, 2 gorajan shards
diff --git a/docs/src/content/docs/bso/Tames/README.md b/docs/src/content/docs/bso/Tames/introduction.md similarity index 89% rename from docs/src/content/docs/bso/Tames/README.md rename to docs/src/content/docs/bso/Tames/introduction.md index 50e641e293..32907a3b20 100644 --- a/docs/src/content/docs/bso/Tames/README.md +++ b/docs/src/content/docs/bso/Tames/introduction.md @@ -1,18 +1,15 @@ --- title: "Tames" +sidebar: + order: 7 --- -# Tames - -A tame is a special form of pet that isn't in your bank or equipped. You can send the tame out on trips. - -Every tame has a combat level (Dragon) or a gatherer score (Monkey). - -Items that your tames get will not be added to your collection log. +A tame is a special form of pet that isn't in your bank or equipped. You can send the tame out on trips. Every tame has a combat level (Dragon) or a gatherer score (Monkey). Items that your tames get will not be added to your collection log. **Currently the only tames that are in game are:**\ The Dragon tame which does combat, see [Igne Tame](igne-tame.md).\ The Monkey tame which does collect trips, see [Monkey Tame](monkey-tame.md). +The Eagle tame which completes clues, see [Eagle Tame](eagle-tame.md). | Commands | Description | | -------------------------------------------------- | --------------------------------- | @@ -20,7 +17,7 @@ The Monkey tame which does collect trips, see [Monkey Tame](monkey-tame.md). | `/tames list` | Shows a list of all tames | | `/tames view [name/id]` | Shows info about a tame | | `/tames select [name/id]` | Selects a tame | -| `/tames set_name [name`] | Sets the tame's name | +| `/tames set_name [name]` | Sets the tame's name | | `/tames feed [items]` | Feeds your tame items | | `/tames kill [monster]` | Send tame on PvM trip | | `/tames collect [item]` | Send tame on collection trip | @@ -31,10 +28,10 @@ The Monkey tame which does collect trips, see [Monkey Tame](monkey-tame.md). ## Hatching the Tame -In order to hatch the tame you must build a nursery with `/nursery build`.\ +In order to hatch the tame you must build a nursery with `/nursery build`. You will need 105 Construction along with 200 elder planks, 10 marble blocks and 500 feathers to build the nursery. -Once the nursery is built you can then fuel the nursery with `/nursery fuel`\ +Once the nursery is built you can then fuel the nursery with `/nursery fuel` Fuelling the nursery will require 2,500 elder logs and 10,000 coal. Finally, once you have satisfied these requirements you can add your egg to the nursery i.e. `/nursery add_egg item:Dragon egg` diff --git a/docs/src/content/docs/bso/Tames/monkey-staff-and-spells.md b/docs/src/content/docs/bso/Tames/monkey-staff-and-spells.md deleted file mode 100644 index 7c10e99286..0000000000 --- a/docs/src/content/docs/bso/Tames/monkey-staff-and-spells.md +++ /dev/null @@ -1,20 +0,0 @@ ---- -title: "Monkey staff and spells" -description: Seamonkey staffs allows your monkey to cast spells ---- - -You can acquire a t1 staff then upgrade it to higher tiers using the create command `/create item:Seamonkey staff (t1)` - -### Seamonkey staff Creation - -
Staff TierSpeed BoostCostMagic level
T15%1x Polypore staff95
T28%1x Oceanic relic, 1x Seamonkey staff (t1)105
T314%1x Aquifer aegis, 1x Seamonkey staff (t2)115
- -A tier 2 staff is needed to cast any spell currently. The tier 3 staff boosts your cast time by 12% - -Feeding your monkey a Klik boosts your Tan leather cast time by a further 22% - -### Seamonkey Spells - -Tame spells are cast with `/tames cast` - -
SpellCost
Tan LeatherPer 5 casts: 5x Fire rune, 1x Nature rune, 2x Astral rune
Plank MakePer 1 cast: 15x Earth rune, 1x Nature rune, 2x Astral rune, Coins (Regular:70 | Oak:175 | Teak:350 | Mahogany:1,050 | Elder:5950)
Spin flaxPer 5 casts: 5x Flax, 5x Air rune, 1x Nature rune, 2x Astral rune
Superglass makePer 3 casts: 3x Giant seaweed, 18x Bucket of sand, 10x Air rune, 6x Fire rune, 2x Astral rune
diff --git a/docs/src/content/docs/bso/Tames/monkey-tame.md b/docs/src/content/docs/bso/Tames/monkey-tame.md index 21d371c969..34af0afa31 100644 --- a/docs/src/content/docs/bso/Tames/monkey-tame.md +++ b/docs/src/content/docs/bso/Tames/monkey-tame.md @@ -1,10 +1,8 @@ --- title: "Monkey Tame" -description: Monkey tame, hatched from Monkey Egg. --- -Congratulations! You have beat enough monkeys to be rewarded with your very own chimp!\ -Your ape can run around and gather supplies for you while you monkey around elsewhere. +Congratulations! You have beat enough monkeys to be rewarded with your very own chimp! Your monkey can run around and gather supplies for you while you monkey around elsewhere. ## Hatching the Tame @@ -26,3 +24,21 @@ For more information on tame commands see [Tames](./) ## Boosts
ItemBoostCollectCast
ZakAdds 35 minutes to trip lengthtruetrue
Voidling10% collecting speed increasetruefalse
Ring of Endurance10% collecting speed increasetruefalse
Mr. E1/12 chance to double loottruefalse
Klik22% casting speed increasefalsetrue
+ +## Staff & Spells + +You can equip your monkey tame with a staff so it can do magic. Acquire a t1 staff then upgrade it to higher tiers using the create command `/create item:Seamonkey staff (t1)` + +### Seamonkey staff Creation + +
Staff TierSpeed BoostCostMagic level
T15%1x Polypore staff95
T28%1x Oceanic relic, 1x Seamonkey staff (t1)105
T314%1x Aquifer aegis, 1x Seamonkey staff (t2)115
+ +A tier 2 staff is needed to cast any spell currently. The tier 3 staff boosts your cast time by 12% + +Feeding your monkey a Klik boosts your Tan leather cast time by a further 22% + +### Seamonkey Spells + +Tame spells are cast with `/tames cast` + +
SpellCost
Tan LeatherPer 5 casts: 5x Fire rune, 1x Nature rune, 2x Astral rune
Plank MakePer 1 cast: 15x Earth rune, 1x Nature rune, 2x Astral rune, Coins (Regular:70 | Oak:175 | Teak:350 | Mahogany:1,050 | Elder:5950)
Spin flaxPer 5 casts: 5x Flax, 5x Air rune, 1x Nature rune, 2x Astral rune
Superglass makePer 3 casts: 3x Giant seaweed, 18x Bucket of sand, 10x Air rune, 6x Fire rune, 2x Astral rune
diff --git a/docs/src/content/docs/getting-started/changelog.md b/docs/src/content/docs/getting-started/changelog.md index 7970635091..6718b55240 100644 --- a/docs/src/content/docs/getting-started/changelog.md +++ b/docs/src/content/docs/getting-started/changelog.md @@ -18,6 +18,7 @@ Bingo! We are running the 3rd official OSB bingo. See the [Bingo Page](/getting- - Fixed an issue with perk tiers not syncing properly - Various "engine" changes/improvements - Various wiki fixes/improvements +- Fixed several bugs that were causing errors/issues ### [[Arodab]] diff --git a/docs/yarn.lock b/docs/yarn.lock index bf7914c1af..f14db01d12 100644 --- a/docs/yarn.lock +++ b/docs/yarn.lock @@ -109,6 +109,32 @@ __metadata: languageName: node linkType: hard +"@astrojs/markdown-remark@npm:5.3.0": + version: 5.3.0 + resolution: "@astrojs/markdown-remark@npm:5.3.0" + dependencies: + "@astrojs/prism": "npm:3.1.0" + github-slugger: "npm:^2.0.0" + hast-util-from-html: "npm:^2.0.3" + hast-util-to-text: "npm:^4.0.2" + import-meta-resolve: "npm:^4.1.0" + mdast-util-definitions: "npm:^6.0.0" + rehype-raw: "npm:^7.0.0" + rehype-stringify: "npm:^10.0.1" + remark-gfm: "npm:^4.0.0" + remark-parse: "npm:^11.0.0" + remark-rehype: "npm:^11.1.1" + remark-smartypants: "npm:^3.0.2" + shiki: "npm:^1.22.0" + unified: "npm:^11.0.5" + unist-util-remove-position: "npm:^5.0.0" + unist-util-visit: "npm:^5.0.0" + unist-util-visit-parents: "npm:^6.0.1" + vfile: "npm:^6.0.3" + checksum: 10c0/b42d38940cef4ba700dcf9996b3fd631bd1ef560a6619cb5c7a5e9b3a6ef5ff7c6064aeba1b50e9ada904ad930b21f60e352f9c79d38d6ce4da4091e5b3a3c0c + languageName: node + linkType: hard + "@astrojs/mdx@npm:^3.1.3": version: 3.1.7 resolution: "@astrojs/mdx@npm:3.1.7" @@ -209,118 +235,118 @@ __metadata: languageName: node linkType: hard -"@babel/code-frame@npm:^7.24.7": - version: 7.24.7 - resolution: "@babel/code-frame@npm:7.24.7" +"@babel/code-frame@npm:^7.25.7": + version: 7.25.7 + resolution: "@babel/code-frame@npm:7.25.7" dependencies: - "@babel/highlight": "npm:^7.24.7" + "@babel/highlight": "npm:^7.25.7" picocolors: "npm:^1.0.0" - checksum: 10c0/ab0af539473a9f5aeaac7047e377cb4f4edd255a81d84a76058595f8540784cc3fbe8acf73f1e073981104562490aabfb23008cd66dc677a456a4ed5390fdde6 + checksum: 10c0/14825c298bdec914caf3d24d1383b6d4cd6b030714686004992f4fc251831ecf432236652896f99d5d341f17170ae9a07b58d8d7b15aa0df8cfa1c5a7d5474bc languageName: node linkType: hard -"@babel/compat-data@npm:^7.25.2": - version: 7.25.4 - resolution: "@babel/compat-data@npm:7.25.4" - checksum: 10c0/50d79734d584a28c69d6f5b99adfaa064d0f41609a378aef04eb06accc5b44f8520e68549eba3a082478180957b7d5783f1bfb1672e4ae8574e797ce8bae79fa +"@babel/compat-data@npm:^7.25.7": + version: 7.25.8 + resolution: "@babel/compat-data@npm:7.25.8" + checksum: 10c0/8b81c17580e5fb4cbb6a3c52079f8c283fc59c0c6bd2fe14cfcf9c44b32d2eaab71b02c5633e2c679f5896f73f8ac4036ba2e67a4c806e8f428e4b11f526d7f4 languageName: node linkType: hard -"@babel/core@npm:^7.25.2": - version: 7.25.2 - resolution: "@babel/core@npm:7.25.2" +"@babel/core@npm:^7.25.8": + version: 7.25.8 + resolution: "@babel/core@npm:7.25.8" dependencies: "@ampproject/remapping": "npm:^2.2.0" - "@babel/code-frame": "npm:^7.24.7" - "@babel/generator": "npm:^7.25.0" - "@babel/helper-compilation-targets": "npm:^7.25.2" - "@babel/helper-module-transforms": "npm:^7.25.2" - "@babel/helpers": "npm:^7.25.0" - "@babel/parser": "npm:^7.25.0" - "@babel/template": "npm:^7.25.0" - "@babel/traverse": "npm:^7.25.2" - "@babel/types": "npm:^7.25.2" + "@babel/code-frame": "npm:^7.25.7" + "@babel/generator": "npm:^7.25.7" + "@babel/helper-compilation-targets": "npm:^7.25.7" + "@babel/helper-module-transforms": "npm:^7.25.7" + "@babel/helpers": "npm:^7.25.7" + "@babel/parser": "npm:^7.25.8" + "@babel/template": "npm:^7.25.7" + "@babel/traverse": "npm:^7.25.7" + "@babel/types": "npm:^7.25.8" convert-source-map: "npm:^2.0.0" debug: "npm:^4.1.0" gensync: "npm:^1.0.0-beta.2" json5: "npm:^2.2.3" semver: "npm:^6.3.1" - checksum: 10c0/a425fa40e73cb72b6464063a57c478bc2de9dbcc19c280f1b55a3d88b35d572e87e8594e7d7b4880331addb6faef641bbeb701b91b41b8806cd4deae5d74f401 + checksum: 10c0/8411ea506e6f7c8a39ab5c1524b00589fa3b087edb47389708f7fe07170929192171734666e3ea10b95a951643a531a6d09eedfe071572c9ea28516646265086 languageName: node linkType: hard -"@babel/generator@npm:^7.25.0, @babel/generator@npm:^7.25.6": - version: 7.25.6 - resolution: "@babel/generator@npm:7.25.6" +"@babel/generator@npm:^7.25.7": + version: 7.25.7 + resolution: "@babel/generator@npm:7.25.7" dependencies: - "@babel/types": "npm:^7.25.6" + "@babel/types": "npm:^7.25.7" "@jridgewell/gen-mapping": "npm:^0.3.5" "@jridgewell/trace-mapping": "npm:^0.3.25" - jsesc: "npm:^2.5.1" - checksum: 10c0/f89282cce4ddc63654470b98086994d219407d025497f483eb03ba102086e11e2b685b27122f6ff2e1d93b5b5fa0c3a6b7e974fbf2e4a75b685041a746a4291e + jsesc: "npm:^3.0.2" + checksum: 10c0/c03a26c79864d60d04ce36b649c3fa0d6fd7b2bf6a22e22854a0457aa09206508392dd73ee40e7bc8d50b3602f9ff068afa47770cda091d332e7db1ca382ee96 languageName: node linkType: hard -"@babel/helper-annotate-as-pure@npm:^7.24.7": - version: 7.24.7 - resolution: "@babel/helper-annotate-as-pure@npm:7.24.7" +"@babel/helper-annotate-as-pure@npm:^7.25.7": + version: 7.25.7 + resolution: "@babel/helper-annotate-as-pure@npm:7.25.7" dependencies: - "@babel/types": "npm:^7.24.7" - checksum: 10c0/4679f7df4dffd5b3e26083ae65228116c3da34c3fff2c11ae11b259a61baec440f51e30fd236f7a0435b9d471acd93d0bc5a95df8213cbf02b1e083503d81b9a + "@babel/types": "npm:^7.25.7" + checksum: 10c0/2f020b0fa9d336b5778485cc2de3141561ec436a7591b685457a5bcdae4ce41d9ddee68169c95504e0789e5a4327e73b8b7e72e5b60e82e96d730c4d19255248 languageName: node linkType: hard -"@babel/helper-compilation-targets@npm:^7.25.2": - version: 7.25.2 - resolution: "@babel/helper-compilation-targets@npm:7.25.2" +"@babel/helper-compilation-targets@npm:^7.25.7": + version: 7.25.7 + resolution: "@babel/helper-compilation-targets@npm:7.25.7" dependencies: - "@babel/compat-data": "npm:^7.25.2" - "@babel/helper-validator-option": "npm:^7.24.8" - browserslist: "npm:^4.23.1" + "@babel/compat-data": "npm:^7.25.7" + "@babel/helper-validator-option": "npm:^7.25.7" + browserslist: "npm:^4.24.0" lru-cache: "npm:^5.1.1" semver: "npm:^6.3.1" - checksum: 10c0/de10e986b5322c9f807350467dc845ec59df9e596a5926a3b5edbb4710d8e3b8009d4396690e70b88c3844fe8ec4042d61436dd4b92d1f5f75655cf43ab07e99 + checksum: 10c0/705be7e5274a3fdade68e3e2cf42e2b600316ab52794e13b91299a16f16c926f15886b6e9d6df20eb943ccc1cdba5a363d4766f8d01e47b8e6f4e01175f5e66c languageName: node linkType: hard -"@babel/helper-module-imports@npm:^7.24.7": - version: 7.24.7 - resolution: "@babel/helper-module-imports@npm:7.24.7" +"@babel/helper-module-imports@npm:^7.25.7": + version: 7.25.7 + resolution: "@babel/helper-module-imports@npm:7.25.7" dependencies: - "@babel/traverse": "npm:^7.24.7" - "@babel/types": "npm:^7.24.7" - checksum: 10c0/97c57db6c3eeaea31564286e328a9fb52b0313c5cfcc7eee4bc226aebcf0418ea5b6fe78673c0e4a774512ec6c86e309d0f326e99d2b37bfc16a25a032498af0 + "@babel/traverse": "npm:^7.25.7" + "@babel/types": "npm:^7.25.7" + checksum: 10c0/0fd0c3673835e5bf75558e184bcadc47c1f6dd2fe2016d53ebe1e5a6ae931a44e093015c2f9a6651c1a89f25c76d9246710c2b0b460b95ee069c464f2837fa2c languageName: node linkType: hard -"@babel/helper-module-transforms@npm:^7.25.2": - version: 7.25.2 - resolution: "@babel/helper-module-transforms@npm:7.25.2" +"@babel/helper-module-transforms@npm:^7.25.7": + version: 7.25.7 + resolution: "@babel/helper-module-transforms@npm:7.25.7" dependencies: - "@babel/helper-module-imports": "npm:^7.24.7" - "@babel/helper-simple-access": "npm:^7.24.7" - "@babel/helper-validator-identifier": "npm:^7.24.7" - "@babel/traverse": "npm:^7.25.2" + "@babel/helper-module-imports": "npm:^7.25.7" + "@babel/helper-simple-access": "npm:^7.25.7" + "@babel/helper-validator-identifier": "npm:^7.25.7" + "@babel/traverse": "npm:^7.25.7" peerDependencies: "@babel/core": ^7.0.0 - checksum: 10c0/adaa15970ace0aee5934b5a633789b5795b6229c6a9cf3e09a7e80aa33e478675eee807006a862aa9aa517935d81f88a6db8a9f5936e3a2a40ec75f8062bc329 + checksum: 10c0/f37fa7d1d4df21690535b278468cbd5faf0133a3080f282000cfa4f3ffc9462a1458f866b04b6a2f2d1eec4691236cba9a867da61270dab3ab19846e62f05090 languageName: node linkType: hard -"@babel/helper-plugin-utils@npm:^7.24.7, @babel/helper-plugin-utils@npm:^7.24.8": - version: 7.24.8 - resolution: "@babel/helper-plugin-utils@npm:7.24.8" - checksum: 10c0/0376037f94a3bfe6b820a39f81220ac04f243eaee7193774b983e956c1750883ff236b30785795abbcda43fac3ece74750566830c2daa4d6e3870bb0dff34c2d +"@babel/helper-plugin-utils@npm:^7.25.7": + version: 7.25.7 + resolution: "@babel/helper-plugin-utils@npm:7.25.7" + checksum: 10c0/241f8cf3c5b7700e91cab7cfe5b432a3c710ae3cd5bb96dc554da536a6d25f5b9f000cc0c0917501ceb4f76ba92599ee3beb25e10adaf96be59f8df89a842faf languageName: node linkType: hard -"@babel/helper-simple-access@npm:^7.24.7": - version: 7.24.7 - resolution: "@babel/helper-simple-access@npm:7.24.7" +"@babel/helper-simple-access@npm:^7.25.7": + version: 7.25.7 + resolution: "@babel/helper-simple-access@npm:7.25.7" dependencies: - "@babel/traverse": "npm:^7.24.7" - "@babel/types": "npm:^7.24.7" - checksum: 10c0/7230e419d59a85f93153415100a5faff23c133d7442c19e0cd070da1784d13cd29096ee6c5a5761065c44e8164f9f80e3a518c41a0256df39e38f7ad6744fed7 + "@babel/traverse": "npm:^7.25.7" + "@babel/types": "npm:^7.25.7" + checksum: 10c0/eed1b499bfb4f613c18debd61517e3de77b6da2727ca025aa05ac81599e0269f1dddb5237db04e8bb598115d015874752e0a7f11ff38672d74a4976097417059 languageName: node linkType: hard @@ -331,6 +357,13 @@ __metadata: languageName: node linkType: hard +"@babel/helper-string-parser@npm:^7.25.7": + version: 7.25.7 + resolution: "@babel/helper-string-parser@npm:7.25.7" + checksum: 10c0/73ef2ceb81f8294678a0afe8ab0103729c0370cac2e830e0d5128b03be5f6a2635838af31d391d763e3c5a4460ed96f42fd7c9b552130670d525be665913bc4c + languageName: node + linkType: hard + "@babel/helper-validator-identifier@npm:^7.24.7": version: 7.24.7 resolution: "@babel/helper-validator-identifier@npm:7.24.7" @@ -338,36 +371,43 @@ __metadata: languageName: node linkType: hard -"@babel/helper-validator-option@npm:^7.24.8": - version: 7.24.8 - resolution: "@babel/helper-validator-option@npm:7.24.8" - checksum: 10c0/73db93a34ae89201351288bee7623eed81a54000779462a986105b54ffe82069e764afd15171a428b82e7c7a9b5fec10b5d5603b216317a414062edf5c67a21f +"@babel/helper-validator-identifier@npm:^7.25.7": + version: 7.25.7 + resolution: "@babel/helper-validator-identifier@npm:7.25.7" + checksum: 10c0/07438e5bf01ab2882a15027fdf39ac3b0ba1b251774a5130917907014684e2f70fef8fd620137ca062c4c4eedc388508d2ea7a3a7d9936a32785f4fe116c68c0 languageName: node linkType: hard -"@babel/helpers@npm:^7.25.0": - version: 7.25.6 - resolution: "@babel/helpers@npm:7.25.6" +"@babel/helper-validator-option@npm:^7.25.7": + version: 7.25.7 + resolution: "@babel/helper-validator-option@npm:7.25.7" + checksum: 10c0/12ed418c8e3ed9ed44c8c80d823f4e42d399b5eb2e423adccb975e31a31a008cd3b5d8eab688b31f740caff4a1bb28fe06ea2fa7d635aee34cc0ad6995d50f0a + languageName: node + linkType: hard + +"@babel/helpers@npm:^7.25.7": + version: 7.25.7 + resolution: "@babel/helpers@npm:7.25.7" dependencies: - "@babel/template": "npm:^7.25.0" - "@babel/types": "npm:^7.25.6" - checksum: 10c0/448c1cdabccca42fd97a252f73f1e4bcd93776dbf24044f3b4f49b756bf2ece73ee6df05177473bb74ea7456dddd18d6f481e4d96d2cc7839d078900d48c696c + "@babel/template": "npm:^7.25.7" + "@babel/types": "npm:^7.25.7" + checksum: 10c0/3b3ae9e373bd785414195ef8f59976a69d5a6ebe0ef2165fdcc5165e5c3ee09e0fcee94bb457df2ddb8c0532e4146d0a9b7a96b3497399a4bff4ffe196b30228 languageName: node linkType: hard -"@babel/highlight@npm:^7.24.7": - version: 7.24.7 - resolution: "@babel/highlight@npm:7.24.7" +"@babel/highlight@npm:^7.25.7": + version: 7.25.7 + resolution: "@babel/highlight@npm:7.25.7" dependencies: - "@babel/helper-validator-identifier": "npm:^7.24.7" + "@babel/helper-validator-identifier": "npm:^7.25.7" chalk: "npm:^2.4.2" js-tokens: "npm:^4.0.0" picocolors: "npm:^1.0.0" - checksum: 10c0/674334c571d2bb9d1c89bdd87566383f59231e16bcdcf5bb7835babdf03c9ae585ca0887a7b25bdf78f303984af028df52831c7989fecebb5101cc132da9393a + checksum: 10c0/1f5894fdb0a0af6101fb2822369b2eeeae32cbeae2ef73ff73fc6a0a4a20471565cd9cfa589f54ed69df66adeca7c57266031ca9134b7bd244d023a488d419aa languageName: node linkType: hard -"@babel/parser@npm:^7.1.0, @babel/parser@npm:^7.20.7, @babel/parser@npm:^7.25.0, @babel/parser@npm:^7.25.4, @babel/parser@npm:^7.25.6": +"@babel/parser@npm:^7.1.0, @babel/parser@npm:^7.20.7, @babel/parser@npm:^7.25.4": version: 7.25.6 resolution: "@babel/parser@npm:7.25.6" dependencies: @@ -378,29 +418,40 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-syntax-jsx@npm:^7.24.7": - version: 7.24.7 - resolution: "@babel/plugin-syntax-jsx@npm:7.24.7" +"@babel/parser@npm:^7.25.7, @babel/parser@npm:^7.25.8": + version: 7.25.8 + resolution: "@babel/parser@npm:7.25.8" dependencies: - "@babel/helper-plugin-utils": "npm:^7.24.7" + "@babel/types": "npm:^7.25.8" + bin: + parser: ./bin/babel-parser.js + checksum: 10c0/a1a13845b7e8dda4c970791814a4bbf60004969882f18f470e260ad822d2e1f8941948f851e9335895563610f240fa6c98481ce8019865e469502bbf21daafa4 + languageName: node + linkType: hard + +"@babel/plugin-syntax-jsx@npm:^7.25.7": + version: 7.25.7 + resolution: "@babel/plugin-syntax-jsx@npm:7.25.7" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.25.7" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/f44d927a9ae8d5ef016ff5b450e1671e56629ddc12e56b938e41fd46e141170d9dfc9a53d6cb2b9a20a7dd266a938885e6a3981c60c052a2e1daed602ac80e51 + checksum: 10c0/17db499c31fcfaa94d5408726d943955d51d478353d1e2dd84eda6024f7e3d104b9456a77f8aabfae0db7f4dc32f810d08357112f7fcbe305e7c9fcf5b3cac13 languageName: node linkType: hard -"@babel/plugin-transform-react-jsx@npm:^7.25.2": - version: 7.25.2 - resolution: "@babel/plugin-transform-react-jsx@npm:7.25.2" +"@babel/plugin-transform-react-jsx@npm:^7.25.7": + version: 7.25.7 + resolution: "@babel/plugin-transform-react-jsx@npm:7.25.7" dependencies: - "@babel/helper-annotate-as-pure": "npm:^7.24.7" - "@babel/helper-module-imports": "npm:^7.24.7" - "@babel/helper-plugin-utils": "npm:^7.24.8" - "@babel/plugin-syntax-jsx": "npm:^7.24.7" - "@babel/types": "npm:^7.25.2" + "@babel/helper-annotate-as-pure": "npm:^7.25.7" + "@babel/helper-module-imports": "npm:^7.25.7" + "@babel/helper-plugin-utils": "npm:^7.25.7" + "@babel/plugin-syntax-jsx": "npm:^7.25.7" + "@babel/types": "npm:^7.25.7" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/8c5b515f38118471197605e02bea54a8a4283010e3c55bad8cfb78de59ad63612b14d40baca63689afdc9d57b147aac4c7794fe5f7736c9e1ed6dd38784be624 + checksum: 10c0/6766b0357b8bbfcb77fca5350f06cf822c89bbe75ddcaea24614601ef23957504da24e76597d743038ce8fa081373b0663c8ad0c86d7c7226e8185f0680b8b56 languageName: node linkType: hard @@ -413,33 +464,33 @@ __metadata: languageName: node linkType: hard -"@babel/template@npm:^7.25.0": - version: 7.25.0 - resolution: "@babel/template@npm:7.25.0" +"@babel/template@npm:^7.25.7": + version: 7.25.7 + resolution: "@babel/template@npm:7.25.7" dependencies: - "@babel/code-frame": "npm:^7.24.7" - "@babel/parser": "npm:^7.25.0" - "@babel/types": "npm:^7.25.0" - checksum: 10c0/4e31afd873215744c016e02b04f43b9fa23205d6d0766fb2e93eb4091c60c1b88897936adb895fb04e3c23de98dfdcbe31bc98daaa1a4e0133f78bb948e1209b + "@babel/code-frame": "npm:^7.25.7" + "@babel/parser": "npm:^7.25.7" + "@babel/types": "npm:^7.25.7" + checksum: 10c0/8ae9e36e4330ee83d4832531d1d9bec7dc2ef6a2a8afa1ef1229506fd60667abcb17f306d1c3d7e582251270597022990c845d5d69e7add70a5aea66720decb9 languageName: node linkType: hard -"@babel/traverse@npm:^7.24.7, @babel/traverse@npm:^7.25.2": - version: 7.25.6 - resolution: "@babel/traverse@npm:7.25.6" +"@babel/traverse@npm:^7.25.7": + version: 7.25.7 + resolution: "@babel/traverse@npm:7.25.7" dependencies: - "@babel/code-frame": "npm:^7.24.7" - "@babel/generator": "npm:^7.25.6" - "@babel/parser": "npm:^7.25.6" - "@babel/template": "npm:^7.25.0" - "@babel/types": "npm:^7.25.6" + "@babel/code-frame": "npm:^7.25.7" + "@babel/generator": "npm:^7.25.7" + "@babel/parser": "npm:^7.25.7" + "@babel/template": "npm:^7.25.7" + "@babel/types": "npm:^7.25.7" debug: "npm:^4.3.1" globals: "npm:^11.1.0" - checksum: 10c0/964304c6fa46bd705428ba380bf73177eeb481c3f26d82ea3d0661242b59e0dd4329d23886035e9ca9a4ceb565c03a76fd615109830687a27bcd350059d6377e + checksum: 10c0/75d73e52c507a7a7a4c7971d6bf4f8f26fdd094e0d3a0193d77edf6a5efa36fc3db91ec5cc48e8b94e6eb5d5ad21af0a1040e71309172851209415fd105efb1a languageName: node linkType: hard -"@babel/types@npm:^7.0.0, @babel/types@npm:^7.20.7, @babel/types@npm:^7.24.7, @babel/types@npm:^7.25.0, @babel/types@npm:^7.25.2, @babel/types@npm:^7.25.4, @babel/types@npm:^7.25.6": +"@babel/types@npm:^7.0.0, @babel/types@npm:^7.20.7, @babel/types@npm:^7.25.4, @babel/types@npm:^7.25.6": version: 7.25.6 resolution: "@babel/types@npm:7.25.6" dependencies: @@ -450,6 +501,17 @@ __metadata: languageName: node linkType: hard +"@babel/types@npm:^7.25.7, @babel/types@npm:^7.25.8": + version: 7.25.8 + resolution: "@babel/types@npm:7.25.8" + dependencies: + "@babel/helper-string-parser": "npm:^7.25.7" + "@babel/helper-validator-identifier": "npm:^7.25.7" + to-fast-properties: "npm:^2.0.0" + checksum: 10c0/55ca2d6df6426c98db2769ce884ce5e9de83a512ea2dd7bcf56c811984dc14351cacf42932a723630c5afcff2455809323decd645820762182f10b7b5252b59f + languageName: node + linkType: hard + "@ctrl/tinycolor@npm:^4.0.4": version: 4.1.0 resolution: "@ctrl/tinycolor@npm:4.1.0" @@ -1041,7 +1103,7 @@ __metadata: languageName: node linkType: hard -"@oslojs/encoding@npm:^1.0.0": +"@oslojs/encoding@npm:^1.1.0": version: 1.1.0 resolution: "@oslojs/encoding@npm:1.1.0" checksum: 10c0/5553a0974dca60e1a8b247b7b97abcb141cc7ee4e22444f424a07921d6a5f76a43c316f3ee669222787fdef6549f8749cc6d68ff5a631e2542521c56fe36417f @@ -1097,7 +1159,7 @@ __metadata: languageName: node linkType: hard -"@rollup/pluginutils@npm:^5.1.0": +"@rollup/pluginutils@npm:^5.1.2": version: 5.1.2 resolution: "@rollup/pluginutils@npm:5.1.2" dependencies: @@ -1239,6 +1301,20 @@ __metadata: languageName: node linkType: hard +"@shikijs/core@npm:1.22.0": + version: 1.22.0 + resolution: "@shikijs/core@npm:1.22.0" + dependencies: + "@shikijs/engine-javascript": "npm:1.22.0" + "@shikijs/engine-oniguruma": "npm:1.22.0" + "@shikijs/types": "npm:1.22.0" + "@shikijs/vscode-textmate": "npm:^9.3.0" + "@types/hast": "npm:^3.0.4" + hast-util-to-html: "npm:^9.0.3" + checksum: 10c0/d663fee39180680ccb9ea8dd5abb397e953375989a4fd52fb65a2616388db21d1d0a715a68afae93c4b48f0e037bd0c3a600cd52fb8560461ba87e2102e00cd1 + languageName: node + linkType: hard + "@shikijs/engine-javascript@npm:1.20.0": version: 1.20.0 resolution: "@shikijs/engine-javascript@npm:1.20.0" @@ -1250,6 +1326,17 @@ __metadata: languageName: node linkType: hard +"@shikijs/engine-javascript@npm:1.22.0": + version: 1.22.0 + resolution: "@shikijs/engine-javascript@npm:1.22.0" + dependencies: + "@shikijs/types": "npm:1.22.0" + "@shikijs/vscode-textmate": "npm:^9.3.0" + oniguruma-to-js: "npm:0.4.3" + checksum: 10c0/f1a2c3c6ad5db549229dafe11a57bef2b0896e5c1b33dec15bd323e4e785dc469a277b088a89f774a66b30c8c62e9e5b76d3d485f46096dc290329aab33d92eb + languageName: node + linkType: hard + "@shikijs/engine-oniguruma@npm:1.20.0": version: 1.20.0 resolution: "@shikijs/engine-oniguruma@npm:1.20.0" @@ -1260,6 +1347,16 @@ __metadata: languageName: node linkType: hard +"@shikijs/engine-oniguruma@npm:1.22.0": + version: 1.22.0 + resolution: "@shikijs/engine-oniguruma@npm:1.22.0" + dependencies: + "@shikijs/types": "npm:1.22.0" + "@shikijs/vscode-textmate": "npm:^9.3.0" + checksum: 10c0/a57f2352dc35e6f3705348488c0ec2b91a99380489917bddc1d1444b775ba529fc99491ac0c16d0add6d2552ca9fd197e88bd47b0166d163bfc6a80345294452 + languageName: node + linkType: hard + "@shikijs/types@npm:1.20.0": version: 1.20.0 resolution: "@shikijs/types@npm:1.20.0" @@ -1270,6 +1367,16 @@ __metadata: languageName: node linkType: hard +"@shikijs/types@npm:1.22.0": + version: 1.22.0 + resolution: "@shikijs/types@npm:1.22.0" + dependencies: + "@shikijs/vscode-textmate": "npm:^9.3.0" + "@types/hast": "npm:^3.0.4" + checksum: 10c0/220ba56b046dd07cb5e12c02f061e926129d5295fba60c4910a45d65312cdcbcc120329ec550195fdb85ab60ae9e3af31430bffce3ceba80b30d21e32467c013 + languageName: node + linkType: hard + "@shikijs/vscode-textmate@npm:^9.2.2": version: 9.2.2 resolution: "@shikijs/vscode-textmate@npm:9.2.2" @@ -1277,6 +1384,13 @@ __metadata: languageName: node linkType: hard +"@shikijs/vscode-textmate@npm:^9.3.0": + version: 9.3.0 + resolution: "@shikijs/vscode-textmate@npm:9.3.0" + checksum: 10c0/6aa80798b7d7f8be8029bb397ce1b9b75c0d0963d6aa444b9ae165595ceee931cf3767ca1681ba71a6e27484eeccab584bd38db3420da477f1a8d745040b1b1f + languageName: node + linkType: hard + "@types/acorn@npm:^4.0.0": version: 4.0.6 resolution: "@types/acorn@npm:4.0.6" @@ -1658,7 +1772,7 @@ __metadata: languageName: node linkType: hard -"ansi-styles@npm:^6.1.0": +"ansi-styles@npm:^6.1.0, ansi-styles@npm:^6.2.1": version: 6.2.1 resolution: "ansi-styles@npm:6.2.1" checksum: 10c0/5d1ec38c123984bcedd996eac680d548f31828bd679a66db2bdf11844634dde55fec3efa9c6bb1d89056a5e79c1ac540c4c784d592ea1d25028a92227d2f2d5c @@ -1698,7 +1812,7 @@ __metadata: languageName: node linkType: hard -"aria-query@npm:^5.3.0": +"aria-query@npm:^5.3.2": version: 5.3.2 resolution: "aria-query@npm:5.3.2" checksum: 10c0/003c7e3e2cff5540bf7a7893775fc614de82b0c5dde8ae823d47b7a28a9d4da1f7ed85f340bdb93d5649caa927755f0e31ecc7ab63edfdfc00c8ef07e505e03e @@ -1732,41 +1846,40 @@ __metadata: languageName: node linkType: hard -"astro@npm:^4.15.3": - version: 4.15.9 - resolution: "astro@npm:4.15.9" +"astro@npm:^4.16.1": + version: 4.16.4 + resolution: "astro@npm:4.16.4" dependencies: "@astrojs/compiler": "npm:^2.10.3" "@astrojs/internal-helpers": "npm:0.4.1" - "@astrojs/markdown-remark": "npm:5.2.0" + "@astrojs/markdown-remark": "npm:5.3.0" "@astrojs/telemetry": "npm:3.1.0" - "@babel/core": "npm:^7.25.2" - "@babel/plugin-transform-react-jsx": "npm:^7.25.2" - "@babel/types": "npm:^7.25.6" - "@oslojs/encoding": "npm:^1.0.0" - "@rollup/pluginutils": "npm:^5.1.0" + "@babel/core": "npm:^7.25.8" + "@babel/plugin-transform-react-jsx": "npm:^7.25.7" + "@babel/types": "npm:^7.25.8" + "@oslojs/encoding": "npm:^1.1.0" + "@rollup/pluginutils": "npm:^5.1.2" "@types/babel__core": "npm:^7.20.5" "@types/cookie": "npm:^0.6.0" acorn: "npm:^8.12.1" - aria-query: "npm:^5.3.0" + aria-query: "npm:^5.3.2" axobject-query: "npm:^4.1.0" - boxen: "npm:7.1.1" + boxen: "npm:8.0.1" ci-info: "npm:^4.0.0" clsx: "npm:^2.1.1" common-ancestor-path: "npm:^1.0.1" - cookie: "npm:^0.6.0" + cookie: "npm:^0.7.2" cssesc: "npm:^3.0.0" debug: "npm:^4.3.7" deterministic-object-hash: "npm:^2.0.2" - devalue: "npm:^5.0.0" + devalue: "npm:^5.1.1" diff: "npm:^5.2.0" dlv: "npm:^1.1.3" - dset: "npm:^3.1.3" + dset: "npm:^3.1.4" es-module-lexer: "npm:^1.5.4" esbuild: "npm:^0.21.5" estree-walker: "npm:^3.0.3" fast-glob: "npm:^3.3.2" - fastq: "npm:^1.17.1" flattie: "npm:^1.1.1" github-slugger: "npm:^2.0.0" gray-matter: "npm:^4.0.3" @@ -1774,7 +1887,7 @@ __metadata: http-cache-semantics: "npm:^4.1.1" js-yaml: "npm:^4.1.0" kleur: "npm:^4.1.5" - magic-string: "npm:^0.30.11" + magic-string: "npm:^0.30.12" magicast: "npm:^0.3.5" micromatch: "npm:^4.0.8" mrmime: "npm:^2.0.0" @@ -1784,30 +1897,28 @@ __metadata: p-queue: "npm:^8.0.1" preferred-pm: "npm:^4.0.0" prompts: "npm:^2.4.2" - rehype: "npm:^13.0.1" + rehype: "npm:^13.0.2" semver: "npm:^7.6.3" sharp: "npm:^0.33.3" - shiki: "npm:^1.16.2" - string-width: "npm:^7.2.0" - strip-ansi: "npm:^7.1.0" + shiki: "npm:^1.22.0" tinyexec: "npm:^0.3.0" - tsconfck: "npm:^3.1.3" + tsconfck: "npm:^3.1.4" unist-util-visit: "npm:^5.0.0" vfile: "npm:^6.0.3" - vite: "npm:^5.4.3" - vitefu: "npm:^1.0.2" + vite: "npm:^5.4.9" + vitefu: "npm:^1.0.3" which-pm: "npm:^3.0.0" xxhash-wasm: "npm:^1.0.2" yargs-parser: "npm:^21.1.1" zod: "npm:^3.23.8" - zod-to-json-schema: "npm:^3.23.2" + zod-to-json-schema: "npm:^3.23.3" zod-to-ts: "npm:^1.2.0" dependenciesMeta: sharp: optional: true bin: astro: astro.js - checksum: 10c0/049e8fc23a022954d03789238b1e5a7c314e1239f11d9b60ed8a29878c8768dbda02c1906cea0b65609d6d870472ebbc55b048efb141767887d789f63e214b1b + checksum: 10c0/3da2c1fd39ac11600f2dc2018025da3acf0357e7db6559ccdce21c366afc9715a9e8985e239384fba831c958dda09fe12c20baf90f3b7e38851b955c90566ed7 languageName: node linkType: hard @@ -1940,19 +2051,19 @@ __metadata: languageName: node linkType: hard -"boxen@npm:7.1.1": - version: 7.1.1 - resolution: "boxen@npm:7.1.1" +"boxen@npm:8.0.1": + version: 8.0.1 + resolution: "boxen@npm:8.0.1" dependencies: ansi-align: "npm:^3.0.1" - camelcase: "npm:^7.0.1" - chalk: "npm:^5.2.0" + camelcase: "npm:^8.0.0" + chalk: "npm:^5.3.0" cli-boxes: "npm:^3.0.0" - string-width: "npm:^5.1.2" - type-fest: "npm:^2.13.0" - widest-line: "npm:^4.0.1" - wrap-ansi: "npm:^8.1.0" - checksum: 10c0/3a9891dc98ac40d582c9879e8165628258e2c70420c919e70fff0a53ccc7b42825e73cda6298199b2fbc1f41f5d5b93b492490ad2ae27623bed3897ddb4267f8 + string-width: "npm:^7.2.0" + type-fest: "npm:^4.21.0" + widest-line: "npm:^5.0.0" + wrap-ansi: "npm:^9.0.0" + checksum: 10c0/8c54f9797bf59eec0b44c9043d9cb5d5b2783dc673e4650235e43a5155c43334e78ec189fd410cf92056c1054aee3758279809deed115b49e68f1a1c6b3faa32 languageName: node linkType: hard @@ -1974,7 +2085,7 @@ __metadata: languageName: node linkType: hard -"browserslist@npm:^4.23.1": +"browserslist@npm:^4.24.0": version: 4.24.0 resolution: "browserslist@npm:4.24.0" dependencies: @@ -2018,10 +2129,10 @@ __metadata: languageName: node linkType: hard -"camelcase@npm:^7.0.1": - version: 7.0.1 - resolution: "camelcase@npm:7.0.1" - checksum: 10c0/3adfc9a0e96d51b3a2f4efe90a84dad3e206aaa81dfc664f1bd568270e1bf3b010aad31f01db16345b4ffe1910e16ab411c7273a19a859addd1b98ef7cf4cfbd +"camelcase@npm:^8.0.0": + version: 8.0.0 + resolution: "camelcase@npm:8.0.0" + checksum: 10c0/56c5fe072f0523c9908cdaac21d4a3b3fb0f608fb2e9ba90a60e792b95dd3bb3d1f3523873ab17d86d146e94171305f73ef619e2f538bd759675bc4a14b4bff3 languageName: node linkType: hard @@ -2050,7 +2161,7 @@ __metadata: languageName: node linkType: hard -"chalk@npm:^5.2.0, chalk@npm:^5.3.0": +"chalk@npm:^5.3.0": version: 5.3.0 resolution: "chalk@npm:5.3.0" checksum: 10c0/8297d436b2c0f95801103ff2ef67268d362021b8210daf8ddbe349695333eb3610a71122172ff3b0272f1ef2cf7cc2c41fdaa4715f52e49ffe04c56340feed09 @@ -2253,10 +2364,10 @@ __metadata: languageName: node linkType: hard -"cookie@npm:^0.6.0": - version: 0.6.0 - resolution: "cookie@npm:0.6.0" - checksum: 10c0/f2318b31af7a31b4ddb4a678d024514df5e705f9be5909a192d7f116cfb6d45cbacf96a473fa733faa95050e7cff26e7832bb3ef94751592f1387b71c8956686 +"cookie@npm:^0.7.2": + version: 0.7.2 + resolution: "cookie@npm:0.7.2" + checksum: 10c0/9596e8ccdbf1a3a88ae02cf5ee80c1c50959423e1022e4e60b91dd87c622af1da309253d8abdb258fb5e3eacb4f08e579dc58b4897b8087574eee0fd35dfa5d2 languageName: node linkType: hard @@ -2347,7 +2458,7 @@ __metadata: languageName: node linkType: hard -"devalue@npm:^5.0.0": +"devalue@npm:^5.1.1": version: 5.1.1 resolution: "devalue@npm:5.1.1" checksum: 10c0/f6717a856fd54216959abd341cb189e47a9b37d72d8419e055ae77567ff4ed0fb683b1ffb6a71067f645adae5991bffabe6468a3e2385937bff49273e71c1f51 @@ -2393,7 +2504,7 @@ __metadata: "@astrojs/check": "npm:^0.9.3" "@astrojs/starlight": "npm:^0.28.2" "@types/markdown-it": "npm:^14" - astro: "npm:^4.15.3" + astro: "npm:^4.16.1" markdown-it: "npm:^14.1.0" sharp: "npm:^0.32.5" typescript: "npm:^5.6.2" @@ -2401,7 +2512,7 @@ __metadata: languageName: unknown linkType: soft -"dset@npm:^3.1.3": +"dset@npm:^3.1.3, dset@npm:^3.1.4": version: 3.1.4 resolution: "dset@npm:3.1.4" checksum: 10c0/b67bbd28dd8a539e90c15ffb61100eb64ef995c5270a124d4f99bbb53f4d82f55a051b731ba81f3215dd9dce2b4c8d69927dc20b3be1c5fc88bab159467aa438 @@ -2758,7 +2869,7 @@ __metadata: languageName: node linkType: hard -"fastq@npm:^1.17.1, fastq@npm:^1.6.0": +"fastq@npm:^1.6.0": version: 1.17.1 resolution: "fastq@npm:1.17.1" dependencies: @@ -2982,7 +3093,7 @@ __metadata: languageName: node linkType: hard -"hast-util-from-html@npm:^2.0.0, hast-util-from-html@npm:^2.0.1": +"hast-util-from-html@npm:^2.0.0, hast-util-from-html@npm:^2.0.1, hast-util-from-html@npm:^2.0.3": version: 2.0.3 resolution: "hast-util-from-html@npm:2.0.3" dependencies: @@ -3609,12 +3720,12 @@ __metadata: languageName: node linkType: hard -"jsesc@npm:^2.5.1": - version: 2.5.2 - resolution: "jsesc@npm:2.5.2" +"jsesc@npm:^3.0.2": + version: 3.0.2 + resolution: "jsesc@npm:3.0.2" bin: jsesc: bin/jsesc - checksum: 10c0/dbf59312e0ebf2b4405ef413ec2b25abb5f8f4d9bc5fb8d9f90381622ebca5f2af6a6aa9a8578f65903f9e33990a6dc798edd0ce5586894bf0e9e31803a1de88 + checksum: 10c0/ef22148f9e793180b14d8a145ee6f9f60f301abf443288117b4b6c53d0ecd58354898dc506ccbb553a5f7827965cd38bc5fb726575aae93c5e8915e2de8290e1 languageName: node linkType: hard @@ -3739,12 +3850,12 @@ __metadata: languageName: node linkType: hard -"magic-string@npm:^0.30.11": - version: 0.30.11 - resolution: "magic-string@npm:0.30.11" +"magic-string@npm:^0.30.12": + version: 0.30.12 + resolution: "magic-string@npm:0.30.12" dependencies: "@jridgewell/sourcemap-codec": "npm:^1.5.0" - checksum: 10c0/b9eb370773d0bd90ca11a848753409d8e5309b1ad56d2a1aa49d6649da710a6d2fe7237ad1a643c5a5d3800de2b9946ed9690acdfc00e6cc1aeafff3ab1752c4 + checksum: 10c0/469f457d18af37dfcca8617086ea8a65bcd8b60ba8a1182cb024ce43e470ace3c9d1cb6bee58d3b311768fb16bc27bd50bdeebcaa63dadd0fd46cac4d2e11d5f languageName: node linkType: hard @@ -5288,7 +5399,7 @@ __metadata: languageName: node linkType: hard -"rehype-stringify@npm:^10.0.0": +"rehype-stringify@npm:^10.0.0, rehype-stringify@npm:^10.0.1": version: 10.0.1 resolution: "rehype-stringify@npm:10.0.1" dependencies: @@ -5299,7 +5410,7 @@ __metadata: languageName: node linkType: hard -"rehype@npm:^13.0.1": +"rehype@npm:^13.0.1, rehype@npm:^13.0.2": version: 13.0.2 resolution: "rehype@npm:13.0.2" dependencies: @@ -5359,7 +5470,7 @@ __metadata: languageName: node linkType: hard -"remark-rehype@npm:^11.0.0, remark-rehype@npm:^11.1.0": +"remark-rehype@npm:^11.0.0, remark-rehype@npm:^11.1.0, remark-rehype@npm:^11.1.1": version: 11.1.1 resolution: "remark-rehype@npm:11.1.1" dependencies: @@ -5715,7 +5826,7 @@ __metadata: languageName: node linkType: hard -"shiki@npm:^1.1.7, shiki@npm:^1.10.3, shiki@npm:^1.16.2": +"shiki@npm:^1.1.7, shiki@npm:^1.10.3": version: 1.20.0 resolution: "shiki@npm:1.20.0" dependencies: @@ -5729,6 +5840,20 @@ __metadata: languageName: node linkType: hard +"shiki@npm:^1.22.0": + version: 1.22.0 + resolution: "shiki@npm:1.22.0" + dependencies: + "@shikijs/core": "npm:1.22.0" + "@shikijs/engine-javascript": "npm:1.22.0" + "@shikijs/engine-oniguruma": "npm:1.22.0" + "@shikijs/types": "npm:1.22.0" + "@shikijs/vscode-textmate": "npm:^9.3.0" + "@types/hast": "npm:^3.0.4" + checksum: 10c0/750ee1751340ad65368921a4a4f29249b9632c8b547a0c4052eb8a467be0da8b3af7a5e8751482a9e387f67053f8c8a7e5f50bf1be6fcf6f91ed3952bd20965e + languageName: node + linkType: hard + "signal-exit@npm:^4.0.1, signal-exit@npm:^4.1.0": version: 4.1.0 resolution: "signal-exit@npm:4.1.0" @@ -5907,7 +6032,7 @@ __metadata: languageName: node linkType: hard -"string-width@npm:^7.2.0": +"string-width@npm:^7.0.0, string-width@npm:^7.2.0": version: 7.2.0 resolution: "string-width@npm:7.2.0" dependencies: @@ -6116,9 +6241,9 @@ __metadata: languageName: node linkType: hard -"tsconfck@npm:^3.1.3": - version: 3.1.3 - resolution: "tsconfck@npm:3.1.3" +"tsconfck@npm:^3.1.4": + version: 3.1.4 + resolution: "tsconfck@npm:3.1.4" peerDependencies: typescript: ^5.0.0 peerDependenciesMeta: @@ -6126,7 +6251,7 @@ __metadata: optional: true bin: tsconfck: bin/tsconfck.js - checksum: 10c0/64f7a8ed0a6d36b0902dfc0075e791d2242f7634644f124343ec0dec4f3f70092f929c5a9f59496d51883aa81bb1e595deb92a219593575d2e75b849064713d1 + checksum: 10c0/5120e91b3388574b449d57d08f45d05d9966cf4b9d6aa1018652c1fff6d7d37b1ed099b07e6ebf6099aa40b8a16968dd337198c55b7274892849112b942861ed languageName: node linkType: hard @@ -6146,10 +6271,10 @@ __metadata: languageName: node linkType: hard -"type-fest@npm:^2.13.0": - version: 2.19.0 - resolution: "type-fest@npm:2.19.0" - checksum: 10c0/a5a7ecf2e654251613218c215c7493574594951c08e52ab9881c9df6a6da0aeca7528c213c622bc374b4e0cb5c443aa3ab758da4e3c959783ce884c3194e12cb +"type-fest@npm:^4.21.0": + version: 4.26.1 + resolution: "type-fest@npm:4.26.1" + checksum: 10c0/d2719ff8d380befe8a3c61068f37f28d6fa2849fd140c5d2f0f143099e371da6856aad7c97e56b83329d45bfe504afe9fd936a7cff600cc0d46aa9ffb008d6c6 languageName: node linkType: hard @@ -6383,9 +6508,9 @@ __metadata: languageName: node linkType: hard -"vite@npm:^5.4.3": - version: 5.4.8 - resolution: "vite@npm:5.4.8" +"vite@npm:^5.4.9": + version: 5.4.9 + resolution: "vite@npm:5.4.9" dependencies: esbuild: "npm:^0.21.3" fsevents: "npm:~2.3.3" @@ -6422,19 +6547,19 @@ __metadata: optional: true bin: vite: bin/vite.js - checksum: 10c0/af70af6d6316a3af71f44ebe3ab343bd66450d4157af73af3b32239e1b6ec43ff6f651d7cc4193b21ed3bff2e9356a3de9e96aee53857f39922e4a2d9fad75a1 + checksum: 10c0/e9c59f2c639047e37c79bbbb151c7a55a3dc27932957cf4cf0447ee0bdcc1ddfd9b1fb3ba0465371c01ba3616d62561327855794c2d652213c3a10a32e6d369d languageName: node linkType: hard -"vitefu@npm:^1.0.2": - version: 1.0.2 - resolution: "vitefu@npm:1.0.2" +"vitefu@npm:^1.0.3": + version: 1.0.3 + resolution: "vitefu@npm:1.0.3" peerDependencies: - vite: ^3.0.0 || ^4.0.0 || ^5.0.0 + vite: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0-beta.0 peerDependenciesMeta: vite: optional: true - checksum: 10c0/8e9f0ed5aff93df7ee7f035a43e2b7d6faeaea201252a52d04181c193b06b53f66e0f26bf20c0e590ee23fe66b329b188c483bdf18b2c45994897394c22a1e6f + checksum: 10c0/0b41021767885d538d04bb0cdabd140a5397a780997533a3cc1a1ea3c0ffae0cac4bde3e67632440587cd0505c0b6e825dfd8ab7da6249a68076072bea6eada1 languageName: node linkType: hard @@ -6732,12 +6857,12 @@ __metadata: languageName: node linkType: hard -"widest-line@npm:^4.0.1": - version: 4.0.1 - resolution: "widest-line@npm:4.0.1" +"widest-line@npm:^5.0.0": + version: 5.0.0 + resolution: "widest-line@npm:5.0.0" dependencies: - string-width: "npm:^5.0.1" - checksum: 10c0/7da9525ba45eaf3e4ed1a20f3dcb9b85bd9443962450694dae950f4bdd752839747bbc14713522b0b93080007de8e8af677a61a8c2114aa553ad52bde72d0f9c + string-width: "npm:^7.0.0" + checksum: 10c0/6bd6cca8cda502ef50e05353fd25de0df8c704ffc43ada7e0a9cf9a5d4f4e12520485d80e0b77cec8a21f6c3909042fcf732aa9281e5dbb98cc9384a138b2578 languageName: node linkType: hard @@ -6763,6 +6888,17 @@ __metadata: languageName: node linkType: hard +"wrap-ansi@npm:^9.0.0": + version: 9.0.0 + resolution: "wrap-ansi@npm:9.0.0" + dependencies: + ansi-styles: "npm:^6.2.1" + string-width: "npm:^7.0.0" + strip-ansi: "npm:^7.1.0" + checksum: 10c0/a139b818da9573677548dd463bd626a5a5286271211eb6e4e82f34a4f643191d74e6d4a9bb0a3c26ec90e6f904f679e0569674ac099ea12378a8b98e20706066 + languageName: node + linkType: hard + "wrappy@npm:1": version: 1.0.2 resolution: "wrappy@npm:1.0.2" @@ -6867,7 +7003,7 @@ __metadata: languageName: node linkType: hard -"zod-to-json-schema@npm:^3.23.2": +"zod-to-json-schema@npm:^3.23.3": version: 3.23.3 resolution: "zod-to-json-schema@npm:3.23.3" peerDependencies: diff --git a/package.json b/package.json index f85fb30b58..ed6356f2e1 100644 --- a/package.json +++ b/package.json @@ -62,7 +62,7 @@ "murmurhash": "^2.0.1", "node-cron": "^3.0.3", "node-fetch": "^2.6.7", - "oldschooljs": "git+https://github.com/oldschoolgg/oldschooljs.git#4056e639e7007226015d1380dd2312692bbfa8c3", + "oldschooljs": "git+https://github.com/oldschoolgg/oldschooljs.git#15a1cfd4995d939fbffec46d5ebf76f749c2066c", "p-queue": "^6.6.2", "piscina": "^4.7.0", "postgres": "^3.4.4", diff --git a/src/lib/patreonUtils.ts b/src/lib/patreonUtils.ts index bcc964ce44..6deee41b44 100644 --- a/src/lib/patreonUtils.ts +++ b/src/lib/patreonUtils.ts @@ -12,7 +12,7 @@ export async function handleDeletedPatron(userID: string[]) { for (const user of users) { if (user.badges.includes(BadgesEnum.Patron) || user.badges.includes(BadgesEnum.LimitedPatron)) { - await prisma.user.update({ + await prisma.user.updateMany({ where: { id: user.id }, @@ -35,20 +35,21 @@ export async function handleEditPatron(userID: string[]) { } }); - for (const user of users) { - if (!user.badges.includes(BadgesEnum.Patron) && !user.badges.includes(BadgesEnum.LimitedPatron)) { - await prisma.user.update({ - where: { - id: user.id - }, - data: { - badges: { - push: BadgesEnum.Patron - } - } - }); + const usersToGiveBadge = users.filter( + u => !u.badges.includes(BadgesEnum.Patron) && !u.badges.includes(BadgesEnum.LimitedPatron) + ); + await prisma.user.updateMany({ + where: { + id: { + in: usersToGiveBadge.map(u => u.id) + } + }, + data: { + badges: { + push: BadgesEnum.Patron + } } - } + }); await populateRoboChimpCache(); } diff --git a/src/lib/structures/MUserStats.ts b/src/lib/structures/MUserStats.ts index 137bd17f04..4cf95750dd 100644 --- a/src/lib/structures/MUserStats.ts +++ b/src/lib/structures/MUserStats.ts @@ -39,7 +39,11 @@ export class MUserStats { } static async fromID(id: string) { - const userStats = await prisma.userStats.findFirstOrThrow({ where: { user_id: BigInt(id) } }); + const userStats = await prisma.userStats.upsert({ + where: { user_id: BigInt(id) }, + create: { user_id: BigInt(id) }, + update: {} + }); return new MUserStats(userStats); } diff --git a/src/lib/util/logError.ts b/src/lib/util/logError.ts index e92b816f65..4eed07a322 100644 --- a/src/lib/util/logError.ts +++ b/src/lib/util/logError.ts @@ -21,7 +21,10 @@ export function logError(err: any, context?: Record, extra?: Rec if (err?.requestBody?.files) { err.requestBody = []; } - debugLog(`${(err as any)?.message ?? JSON.stringify(err)}`, { + if (err?.requestBody?.json) { + err.requestBody.json = String(err.requestBody.json).slice(0, 100); + } + console.error(`${(err as any)?.message ?? JSON.stringify(err)}`, { type: 'ERROR', raw: JSON.stringify(err), metaInfo: JSON.stringify(metaInfo) @@ -31,9 +34,6 @@ export function logError(err: any, context?: Record, extra?: Rec tags: context, extra: metaInfo }); - } else { - console.error(err); - console.log(metaInfo); } } diff --git a/src/mahoji/lib/postCommand.ts b/src/mahoji/lib/postCommand.ts index 29806bd95e..477d5b681c 100644 --- a/src/mahoji/lib/postCommand.ts +++ b/src/mahoji/lib/postCommand.ts @@ -50,11 +50,15 @@ export async function postCommand({ id: true } }), - prisma.user.update({ + prisma.user.upsert({ where: { id: userID }, - data: { + create: { + id: userID, + last_command_date: new Date() + }, + update: { last_command_date: new Date() }, select: { diff --git a/src/mahoji/lib/preCommand.ts b/src/mahoji/lib/preCommand.ts index 6a9767fbd9..b0bebe1753 100644 --- a/src/mahoji/lib/preCommand.ts +++ b/src/mahoji/lib/preCommand.ts @@ -3,7 +3,7 @@ import type { InteractionReplyOptions, TextChannel, User } from 'discord.js'; import { modifyBusyCounter, userIsBusy } from '../../lib/busyCounterCache'; import { busyImmuneCommands, gearValidationChecks } from '../../lib/constants'; -import { logWrapFn, roll } from '../../lib/util'; +import { roll } from '../../lib/util'; import type { AbstractCommand } from './inhibitors'; import { runInhibitors } from './inhibitors'; @@ -24,8 +24,8 @@ type PrecommandReturn = Promise< dontRunPostCommand?: boolean; } >; -export const preCommand: (opts: PreCommandOptions) => PrecommandReturn = logWrapFn('PreCommand', rawPreCommand); -async function rawPreCommand({ + +export async function preCommand({ abstractCommand, userID, guildID, diff --git a/src/tasks/minions/monsterActivity.ts b/src/tasks/minions/monsterActivity.ts index b771d22a94..fe41cc6d20 100644 --- a/src/tasks/minions/monsterActivity.ts +++ b/src/tasks/minions/monsterActivity.ts @@ -604,22 +604,22 @@ export const monsterTask: MinionTask = { messages.push(...rawResults.filter(r => typeof r === 'string')); const str = `${user}, ${user.minionName} finished killing ${quantity} ${monster.name} (${calcPerHour(data.q, data.duration).toFixed(1)}/hr), you now have ${newKC} KC.`; - announceLoot({ - user, - monsterID: monster.id, - loot: itemTransactionResult!.itemsAdded, - notifyDrops: monster.notifyDrops - }); + let image = undefined; - const image = - itemTransactionResult!.itemsAdded.length === 0 - ? undefined - : await makeBankImage({ - bank: itemTransactionResult!.itemsAdded, - title: `Loot From ${quantity} ${monster.name}:`, - user, - previousCL: itemTransactionResult?.previousCL - }); + if (itemTransactionResult && itemTransactionResult.itemsAdded.length > 0) { + announceLoot({ + user, + monsterID: monster.id, + loot: itemTransactionResult.itemsAdded, + notifyDrops: monster.notifyDrops + }); + image = await makeBankImage({ + bank: itemTransactionResult.itemsAdded, + title: `Loot From ${quantity} ${monster.name}:`, + user, + previousCL: itemTransactionResult?.previousCL + }); + } return handleTripFinish( user, diff --git a/yarn.lock b/yarn.lock index 66be3064ca..0c48a19e71 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4362,13 +4362,13 @@ __metadata: languageName: node linkType: hard -"oldschooljs@git+https://github.com/oldschoolgg/oldschooljs.git#4056e639e7007226015d1380dd2312692bbfa8c3": +"oldschooljs@git+https://github.com/oldschoolgg/oldschooljs.git#15a1cfd4995d939fbffec46d5ebf76f749c2066c": version: 0.0.0 - resolution: "oldschooljs@https://github.com/oldschoolgg/oldschooljs.git#commit=4056e639e7007226015d1380dd2312692bbfa8c3" + resolution: "oldschooljs@https://github.com/oldschoolgg/oldschooljs.git#commit=15a1cfd4995d939fbffec46d5ebf76f749c2066c" dependencies: e: "npm:^0.2.33" node-fetch: "npm:2.6.7" - checksum: 10c0/43478e4b6085a9e002e555a42389420b9ba36c04fcddbb9982abb419234b049665b141cef157fffc85acd3d8d651f6c47be3692854301672c056b4bde6506e2a + checksum: 10c0/fc168584339a8c408273c1e938c9e55f54b4abfe3a188593d5c11690e8bdf94978484d32e46209972ba6d58173e484d0e86dac88a5588f9a382485ea8eb8a63e languageName: node linkType: hard @@ -5171,7 +5171,7 @@ __metadata: node-cron: "npm:^3.0.3" node-fetch: "npm:^2.6.7" nodemon: "npm:^3.1.7" - oldschooljs: "git+https://github.com/oldschoolgg/oldschooljs.git#4056e639e7007226015d1380dd2312692bbfa8c3" + oldschooljs: "git+https://github.com/oldschoolgg/oldschooljs.git#15a1cfd4995d939fbffec46d5ebf76f749c2066c" p-queue: "npm:^6.6.2" piscina: "npm:^4.7.0" postgres: "npm:^3.4.4"