diff --git a/content/articles/playground-p3/playground-p3.pagex.js b/content/articles/playground-p3/playground-p3.pagex.js
index adcef39..386f4de 100644
--- a/content/articles/playground-p3/playground-p3.pagex.js
+++ b/content/articles/playground-p3/playground-p3.pagex.js
@@ -64,7 +64,6 @@ export default {
},
authors: [testauthorPagex],
collections: [
- videogamesCollection.id,
testCollection.id,
featuredCollection.id
]
diff --git a/content/articles/playground-totk/playground-totk.pagex.js b/content/articles/playground-totk/playground-totk.pagex.js
index e96a209..e02e37d 100644
--- a/content/articles/playground-totk/playground-totk.pagex.js
+++ b/content/articles/playground-totk/playground-totk.pagex.js
@@ -54,7 +54,6 @@ export default {
},
authors: [testauthorPagex],
collections: [
- videogamesCollection.id,
testCollection.id,
featuredCollection.id
]
diff --git a/content/articles/playground/content.md b/content/articles/playground/content.md
index d54c45e..53a1de1 100644
--- a/content/articles/playground/content.md
+++ b/content/articles/playground/content.md
@@ -22,6 +22,8 @@ Voidcannon supports ||spoiler|| syntax to hide text until the user manually reve
||Spoilers will cover everything within them (i.e :p3smile:) but will not visually adapt their height to them
(due to the way they're made).||
+||Spoilers can also handle wrapping content
which is pretty nifty||
+
```md
Voidcannon supports ||spoiler|| syntax to hide text until the user manually reveals it.
```
diff --git a/content/articles/playground/playground.pagex.js b/content/articles/playground/playground.pagex.js
index de7349c..1ebabed 100644
--- a/content/articles/playground/playground.pagex.js
+++ b/content/articles/playground/playground.pagex.js
@@ -64,7 +64,7 @@ export default {
},
color: "#D02843"
},
- authors: [bignutty, testauthorPagex, placeholder],
+ authors: [placeholder, testauthorPagex, placeholder],
collections: [
testCollection.id,
featuredCollection.id
diff --git a/content/articles/resident-evil-requiem/assets/_source/carousel-environments/hallway.png b/content/articles/resident-evil-requiem/assets/_source/carousel-environments/hallway.png
new file mode 100644
index 0000000..3318360
Binary files /dev/null and b/content/articles/resident-evil-requiem/assets/_source/carousel-environments/hallway.png differ
diff --git a/content/articles/resident-evil-requiem/assets/_source/carousel-environments/horse.png b/content/articles/resident-evil-requiem/assets/_source/carousel-environments/horse.png
new file mode 100644
index 0000000..b76a35b
Binary files /dev/null and b/content/articles/resident-evil-requiem/assets/_source/carousel-environments/horse.png differ
diff --git a/content/articles/resident-evil-requiem/assets/_source/carousel-environments/hotel.png b/content/articles/resident-evil-requiem/assets/_source/carousel-environments/hotel.png
new file mode 100644
index 0000000..e63ccd8
Binary files /dev/null and b/content/articles/resident-evil-requiem/assets/_source/carousel-environments/hotel.png differ
diff --git a/content/articles/resident-evil-requiem/assets/_source/carousel-environments/isolationward.png b/content/articles/resident-evil-requiem/assets/_source/carousel-environments/isolationward.png
new file mode 100644
index 0000000..eb3db07
Binary files /dev/null and b/content/articles/resident-evil-requiem/assets/_source/carousel-environments/isolationward.png differ
diff --git a/content/articles/resident-evil-requiem/assets/_source/carousel-environments/raccooncity.png b/content/articles/resident-evil-requiem/assets/_source/carousel-environments/raccooncity.png
new file mode 100644
index 0000000..0a54d28
Binary files /dev/null and b/content/articles/resident-evil-requiem/assets/_source/carousel-environments/raccooncity.png differ
diff --git a/content/articles/resident-evil-requiem/assets/_source/carousel-environments/rcwall.png b/content/articles/resident-evil-requiem/assets/_source/carousel-environments/rcwall.png
new file mode 100644
index 0000000..6dc9779
Binary files /dev/null and b/content/articles/resident-evil-requiem/assets/_source/carousel-environments/rcwall.png differ
diff --git a/content/articles/resident-evil-requiem/assets/_source/carousel/img0.png b/content/articles/resident-evil-requiem/assets/_source/carousel/img0.png
new file mode 100644
index 0000000..c167163
Binary files /dev/null and b/content/articles/resident-evil-requiem/assets/_source/carousel/img0.png differ
diff --git a/content/articles/resident-evil-requiem/assets/_source/carousel/img1.png b/content/articles/resident-evil-requiem/assets/_source/carousel/img1.png
new file mode 100644
index 0000000..6a6af7f
Binary files /dev/null and b/content/articles/resident-evil-requiem/assets/_source/carousel/img1.png differ
diff --git a/content/articles/resident-evil-requiem/assets/_source/carousel/img2.png b/content/articles/resident-evil-requiem/assets/_source/carousel/img2.png
new file mode 100644
index 0000000..3d5e921
Binary files /dev/null and b/content/articles/resident-evil-requiem/assets/_source/carousel/img2.png differ
diff --git a/content/articles/resident-evil-requiem/assets/_source/carousel/img3.png b/content/articles/resident-evil-requiem/assets/_source/carousel/img3.png
new file mode 100644
index 0000000..c38dc71
Binary files /dev/null and b/content/articles/resident-evil-requiem/assets/_source/carousel/img3.png differ
diff --git a/content/articles/resident-evil-requiem/assets/_source/grace_intro.png b/content/articles/resident-evil-requiem/assets/_source/grace_intro.png
new file mode 100644
index 0000000..c34d7b2
Binary files /dev/null and b/content/articles/resident-evil-requiem/assets/_source/grace_intro.png differ
diff --git a/content/articles/resident-evil-requiem/assets/_source/grace_inventory.png b/content/articles/resident-evil-requiem/assets/_source/grace_inventory.png
new file mode 100644
index 0000000..fd491e1
Binary files /dev/null and b/content/articles/resident-evil-requiem/assets/_source/grace_inventory.png differ
diff --git a/content/articles/resident-evil-requiem/assets/_source/header/background_re9.png b/content/articles/resident-evil-requiem/assets/_source/header/background_re9.png
new file mode 100644
index 0000000..3bbce47
Binary files /dev/null and b/content/articles/resident-evil-requiem/assets/_source/header/background_re9.png differ
diff --git a/content/articles/resident-evil-requiem/assets/_source/header/immersive_full_re9.png b/content/articles/resident-evil-requiem/assets/_source/header/immersive_full_re9.png
new file mode 100644
index 0000000..dec8ff7
Binary files /dev/null and b/content/articles/resident-evil-requiem/assets/_source/header/immersive_full_re9.png differ
diff --git a/content/articles/resident-evil-requiem/assets/_source/header/immersive_inner_re9.png b/content/articles/resident-evil-requiem/assets/_source/header/immersive_inner_re9.png
new file mode 100644
index 0000000..23e6721
Binary files /dev/null and b/content/articles/resident-evil-requiem/assets/_source/header/immersive_inner_re9.png differ
diff --git a/content/articles/resident-evil-requiem/assets/_source/header/immersive_outer_re9.png b/content/articles/resident-evil-requiem/assets/_source/header/immersive_outer_re9.png
new file mode 100644
index 0000000..bb449a0
Binary files /dev/null and b/content/articles/resident-evil-requiem/assets/_source/header/immersive_outer_re9.png differ
diff --git a/content/articles/resident-evil-requiem/assets/_source/header/logo_re9.png b/content/articles/resident-evil-requiem/assets/_source/header/logo_re9.png
new file mode 100644
index 0000000..4b335b5
Binary files /dev/null and b/content/articles/resident-evil-requiem/assets/_source/header/logo_re9.png differ
diff --git a/content/articles/resident-evil-requiem/assets/_source/leon_inventory.png b/content/articles/resident-evil-requiem/assets/_source/leon_inventory.png
new file mode 100644
index 0000000..a17b923
Binary files /dev/null and b/content/articles/resident-evil-requiem/assets/_source/leon_inventory.png differ
diff --git a/content/articles/resident-evil-requiem/assets/_source/leon_motorcycle.png b/content/articles/resident-evil-requiem/assets/_source/leon_motorcycle.png
new file mode 100644
index 0000000..a12dce6
Binary files /dev/null and b/content/articles/resident-evil-requiem/assets/_source/leon_motorcycle.png differ
diff --git a/content/articles/resident-evil-requiem/assets/_source/leon_rpd.png b/content/articles/resident-evil-requiem/assets/_source/leon_rpd.png
new file mode 100644
index 0000000..e7087d1
Binary files /dev/null and b/content/articles/resident-evil-requiem/assets/_source/leon_rpd.png differ
diff --git a/content/articles/resident-evil-requiem/assets/_source/plot_gideon.png b/content/articles/resident-evil-requiem/assets/_source/plot_gideon.png
new file mode 100644
index 0000000..1369236
Binary files /dev/null and b/content/articles/resident-evil-requiem/assets/_source/plot_gideon.png differ
diff --git a/content/articles/resident-evil-requiem/assets/_source/plot_zesker.png b/content/articles/resident-evil-requiem/assets/_source/plot_zesker.png
new file mode 100644
index 0000000..a17c181
Binary files /dev/null and b/content/articles/resident-evil-requiem/assets/_source/plot_zesker.png differ
diff --git a/content/articles/resident-evil-requiem/assets/_source/spider.png b/content/articles/resident-evil-requiem/assets/_source/spider.png
new file mode 100644
index 0000000..d8b7db6
Binary files /dev/null and b/content/articles/resident-evil-requiem/assets/_source/spider.png differ
diff --git a/content/articles/resident-evil-requiem/assets/carousel-environments/hallway.webp b/content/articles/resident-evil-requiem/assets/carousel-environments/hallway.webp
new file mode 100644
index 0000000..acadb33
Binary files /dev/null and b/content/articles/resident-evil-requiem/assets/carousel-environments/hallway.webp differ
diff --git a/content/articles/resident-evil-requiem/assets/carousel-environments/horse.webp b/content/articles/resident-evil-requiem/assets/carousel-environments/horse.webp
new file mode 100644
index 0000000..3e91b9e
Binary files /dev/null and b/content/articles/resident-evil-requiem/assets/carousel-environments/horse.webp differ
diff --git a/content/articles/resident-evil-requiem/assets/carousel-environments/hotel.webp b/content/articles/resident-evil-requiem/assets/carousel-environments/hotel.webp
new file mode 100644
index 0000000..4d4ff54
Binary files /dev/null and b/content/articles/resident-evil-requiem/assets/carousel-environments/hotel.webp differ
diff --git a/content/articles/resident-evil-requiem/assets/carousel-environments/isolationward.webp b/content/articles/resident-evil-requiem/assets/carousel-environments/isolationward.webp
new file mode 100644
index 0000000..5fb0fbc
Binary files /dev/null and b/content/articles/resident-evil-requiem/assets/carousel-environments/isolationward.webp differ
diff --git a/content/articles/resident-evil-requiem/assets/carousel-environments/raccooncity.webp b/content/articles/resident-evil-requiem/assets/carousel-environments/raccooncity.webp
new file mode 100644
index 0000000..7dc107d
Binary files /dev/null and b/content/articles/resident-evil-requiem/assets/carousel-environments/raccooncity.webp differ
diff --git a/content/articles/resident-evil-requiem/assets/carousel-environments/rcwall.webp b/content/articles/resident-evil-requiem/assets/carousel-environments/rcwall.webp
new file mode 100644
index 0000000..52c76d7
Binary files /dev/null and b/content/articles/resident-evil-requiem/assets/carousel-environments/rcwall.webp differ
diff --git a/content/articles/resident-evil-requiem/assets/carousel/img0.webp b/content/articles/resident-evil-requiem/assets/carousel/img0.webp
new file mode 100644
index 0000000..9b6b50a
Binary files /dev/null and b/content/articles/resident-evil-requiem/assets/carousel/img0.webp differ
diff --git a/content/articles/resident-evil-requiem/assets/carousel/img1.webp b/content/articles/resident-evil-requiem/assets/carousel/img1.webp
new file mode 100644
index 0000000..7235d2c
Binary files /dev/null and b/content/articles/resident-evil-requiem/assets/carousel/img1.webp differ
diff --git a/content/articles/resident-evil-requiem/assets/carousel/img2.webp b/content/articles/resident-evil-requiem/assets/carousel/img2.webp
new file mode 100644
index 0000000..bc9dab2
Binary files /dev/null and b/content/articles/resident-evil-requiem/assets/carousel/img2.webp differ
diff --git a/content/articles/resident-evil-requiem/assets/carousel/img3.webp b/content/articles/resident-evil-requiem/assets/carousel/img3.webp
new file mode 100644
index 0000000..d06c13f
Binary files /dev/null and b/content/articles/resident-evil-requiem/assets/carousel/img3.webp differ
diff --git a/content/articles/resident-evil-requiem/assets/grace_intro.webp b/content/articles/resident-evil-requiem/assets/grace_intro.webp
new file mode 100644
index 0000000..7ab508c
Binary files /dev/null and b/content/articles/resident-evil-requiem/assets/grace_intro.webp differ
diff --git a/content/articles/resident-evil-requiem/assets/grace_inventory.webp b/content/articles/resident-evil-requiem/assets/grace_inventory.webp
new file mode 100644
index 0000000..2af8d94
Binary files /dev/null and b/content/articles/resident-evil-requiem/assets/grace_inventory.webp differ
diff --git a/content/articles/resident-evil-requiem/assets/header/background_re9.webp b/content/articles/resident-evil-requiem/assets/header/background_re9.webp
new file mode 100644
index 0000000..82e5b2a
Binary files /dev/null and b/content/articles/resident-evil-requiem/assets/header/background_re9.webp differ
diff --git a/content/articles/resident-evil-requiem/assets/header/immersive_full_re9.webp b/content/articles/resident-evil-requiem/assets/header/immersive_full_re9.webp
new file mode 100644
index 0000000..8ded73a
Binary files /dev/null and b/content/articles/resident-evil-requiem/assets/header/immersive_full_re9.webp differ
diff --git a/content/articles/resident-evil-requiem/assets/header/immersive_inner_re9.webp b/content/articles/resident-evil-requiem/assets/header/immersive_inner_re9.webp
new file mode 100644
index 0000000..dd1ca19
Binary files /dev/null and b/content/articles/resident-evil-requiem/assets/header/immersive_inner_re9.webp differ
diff --git a/content/articles/resident-evil-requiem/assets/header/immersive_outer_re9.webp b/content/articles/resident-evil-requiem/assets/header/immersive_outer_re9.webp
new file mode 100644
index 0000000..69dedcb
Binary files /dev/null and b/content/articles/resident-evil-requiem/assets/header/immersive_outer_re9.webp differ
diff --git a/content/articles/resident-evil-requiem/assets/header/logo_re9.webp b/content/articles/resident-evil-requiem/assets/header/logo_re9.webp
new file mode 100644
index 0000000..4fe00e0
Binary files /dev/null and b/content/articles/resident-evil-requiem/assets/header/logo_re9.webp differ
diff --git a/content/articles/resident-evil-requiem/assets/leon_inventory.webp b/content/articles/resident-evil-requiem/assets/leon_inventory.webp
new file mode 100644
index 0000000..44a78fa
Binary files /dev/null and b/content/articles/resident-evil-requiem/assets/leon_inventory.webp differ
diff --git a/content/articles/resident-evil-requiem/assets/leon_motorcycle.webp b/content/articles/resident-evil-requiem/assets/leon_motorcycle.webp
new file mode 100644
index 0000000..2e8ac86
Binary files /dev/null and b/content/articles/resident-evil-requiem/assets/leon_motorcycle.webp differ
diff --git a/content/articles/resident-evil-requiem/assets/leon_rpd.webp b/content/articles/resident-evil-requiem/assets/leon_rpd.webp
new file mode 100644
index 0000000..781eede
Binary files /dev/null and b/content/articles/resident-evil-requiem/assets/leon_rpd.webp differ
diff --git a/content/articles/resident-evil-requiem/assets/plot_gideon.webp b/content/articles/resident-evil-requiem/assets/plot_gideon.webp
new file mode 100644
index 0000000..976fbc2
Binary files /dev/null and b/content/articles/resident-evil-requiem/assets/plot_gideon.webp differ
diff --git a/content/articles/resident-evil-requiem/assets/plot_zesker.webp b/content/articles/resident-evil-requiem/assets/plot_zesker.webp
new file mode 100644
index 0000000..d85d1b5
Binary files /dev/null and b/content/articles/resident-evil-requiem/assets/plot_zesker.webp differ
diff --git a/content/articles/resident-evil-requiem/assets/spider.webp b/content/articles/resident-evil-requiem/assets/spider.webp
new file mode 100644
index 0000000..5b853f2
Binary files /dev/null and b/content/articles/resident-evil-requiem/assets/spider.webp differ
diff --git a/content/articles/resident-evil-requiem/content.md b/content/articles/resident-evil-requiem/content.md
new file mode 100644
index 0000000..9e516c7
--- /dev/null
+++ b/content/articles/resident-evil-requiem/content.md
@@ -0,0 +1,285 @@
+
+ preview
+ Later parts of this post will contain spoilers for the story, ending, and specific gameplay sections.
+
+
+## Starting with what's best
+
+The game looks gorgeous and runs flawlessly. Even on my hardware.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+My graphics card (Radeon RX 5500 XT) is the lowest one listed under the "minimum requirements," I'm running on 8 GB of
+RAM, and my CPU is probably below what they recommend. The game still looks great, even on low (not lowest!) settings.
+
+Admittedly, frame generation was necessary to keep the game at or above 60 FPS throughout the entire experience. This
+resulted in occasional Vsync issues, but it didn't degrade the experience for me. The RE Engine continues to be the
+prime example of what a modern game engine *can* be if developers actually care. The game does a great job of utilizing
+its lighting to draw attention to what matters, or simply to create mesmerizing set pieces.
+
+The attention to detail and care really shines throughout the various environments you visit. Each and every material
+looks real, every area has small props lying around, but never to the point where it feels artificial. Something new in
+this game are the dynamic blood splatter decals that can get applied to the environment after an encounter. Some of
+these even manage to stick around for quite some time, which is nice when you play larger sections in one sitting.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+My only critique regarding visuals would be that the Raccoon City half of the game could use a little more color. It
+gets a bit repetitive to spend four hours running through gray and beige buildings.
+
+## Grace gets real
+
+I believe that Grace feels unlike any other character I've played in a Resident Evil game before. She reacts the way
+you'd expect someone to react given the situation. She's not combat-trained; she's an office worker thrown into the most
+horrifying scenario imaginable. The previous two games, Resident Evil 7 and Resident Evil Village, were held back in
+their horror by having a walking quip machine, Ethan Winters, who could not be fazed by anything. That man could lose
+every last limb on his body and still have a "Fuck you" left for whoever was responsible.
+
+
+
+This is also reflected in her gameplay sections; the area design and item placements are meant to keep the tension high
+while offering stealth as a preferred option. This does work for the opening hours of the game, but by the end of her
+hospital section, I had around 40 spare bullets and more health items than I could count, despite killing every enemy
+in my way.
+
+
+
+One unfortunate aspect of Grace's campaign is the complete lack of boss fights. Her gameplay includes one section that
+could be considered a boss encounter, except you don't actually fight anything (more on that later). I suppose the
+intention was to keep her underpowered throughout the entire experience, but I still would have preferred having to
+actually fight back for once.
+
+## Leon gets unreal
+
+Leon's gameplay is essentially the Resident Evil 4 remake on crack.
+
+I actually ended up having the complete opposite problem to Grace's campaign by the end: I had an inventory full of
+crafting supplies, while health remained a scarce resource. A look at my inventory right before heading to the final
+boss pretty much says everything (click to reveal):
+
+||||
+
+Even though the available selection of guns is almost identical to the Resident Evil 4 remake, I found that the enemy
+variety made the pistol and rifle the right answers most of the time. I rarely used grenades, as the environments seldom
+presented good opportunities for them. The few sections that did ended up so hectic that I'd grab my trusty shotgun
+instead of trying to line everyone up for a grenade strike.
+
+I was also pretty consistently low on credits for the supply crate, despite my continued strategy of killing anything
+that moves. It is a little unfortunate that, at least during the campaign, you only get access to one alternative
+pistol.
+
+## All together now!
+
+I had a great time with the dual-protagonist campaign. Especially in the first large section of the game, being able to
+experience the same area from two play styles is a lot of fun.
+
+I do wish they had balanced the lengths of each section better. The "meat" of the game is one large section where you
+play as Grace for two to three hours, and another where you play as Leon for three to four hours. At the beginning and
+end of these, the game quickly cuts between the two perspectives to show you what was happening "in the meantime" or
+somewhere else.
+
+This works from a storytelling perspective, but it results in neither gameplay style really being able to shine outside
+its "dedicated" large section. Some of the changes last for maybe 10 minutes before switching back to the character
+you were playing as previously. I'd love to see more of this style of gameplay in the future, though (maybe even a
+proper Resident Evil 6 reimagining that combines the best parts into one cohesive campaign).
+
+
+ preview
+ From here on out I'll focus on the story and specific sections of gameplay.
If you haven't played the game I'd recommend you stop reading.
+
+
+## Game Design (0/3)
+
+One major gripe I have with the game is the overreliance on "do/get three things."
+
+During my playthrough, I can remember encountering all of these:
+
+- Collect three quartz blocks
+- Obtain three security clearances
+- Get three substances to analyze (Crafting Recipes)
+- Find and open three safes
+- Gather three spark plugs
+- Turn on three generators
+- Find three detonator parts
+- Find and open ~~four~~ three containers (One was already open)
+
+No matter what our protagonist(s) have to do, it's three or nothing. There are a few exceptions where an item has two (
+
+2) uses or you have to do two things, but most of your playtime is spent watching (0/3) turn into ~~(3/3)~~.
+
+Three is a nice middle ground between "this could have just been a linear section" and "this is too much, I'm getting
+tired," but once everything relies on the rule of three, it starts to feel repetitive and artificial.
+
+In addition to everything requiring you to do three of something, the game also heavily suffers from "Resident Evil
+logic", meaning the protagonists often act unreasonably given the situation. The most egregious example of this is the
+third Puzzle Box, which is lacking its Sun, Moon, and Star icons. Every other puzzle box in the hospital, two of which
+we have already encountered and solved, has Braille text above or on all the buttons. However, for Plot Reasons, we have
+to go get Emily to decipher them. I don't have high demands for the logic behind puzzles, but they really could have
+tried to find another reason to bring Emily here instead of making Grace inexplicably incapable of solving the puzzle
+box through trial and error.
+
+One variant I was able to come up with would've been hiding the solution to the puzzle box in a longer piece of text in
+Braille, perhaps even across several documents. That would still require Grace to go get help from Emily, after which
+she obviously couldn't leave her alone in the now-open cell.
+
+## Linear excitement during the latter half
+
+This is an issue that all the recent Resident Evil titles have had: the game gets way more linear the further you
+progress.
+
+They did a great job of balancing open-exploration sections and linear progression with short, fun sections to blow off
+steam in between.
+
+
+
+However, the RPD, and everything after it for that matter, marks a turning point. Playing these sections felt like the
+game tried to show me a lot of cool things while also running out of time.
+
+
+
+The RPD itself consists of the following steps:
+
+1. Get to the Library to pick up a key item
+2. Use the key item to open up a door
+3. Watch a cutscene and play a short stealth section
+4. Run away
+5. Leave the RPD
+
+There are two additional things you can do: a short scavenger hunt and unlocking a briefcase. I believe the area has two
+other enemies you can defeat for some credits. That's it.
+
+I love the idea of revisiting old locations like this, but it feels like a wasted opportunity to have you spend barely
+20 minutes in the area, only to leave and fight two boss fights basically back-to-back. The fact that they brought back
+Mr. X might at first seem like a really cool twist; that is, until you realize he's in the game for 10 minutes tops. 20
+if you spend more time looking around. It doesn't help that not even 20 minutes later, you immediately run into the next
+boss encounter that feels like another "look who we brought back :pointpeak:" moment. I think there were a lot of cool
+ideas that could have been executed by revisiting Raccoon City, but the way Requiem handles it feels like a wasted
+opportunity.
+
+I suppose this is what I get for asking to have fewer "do three things" moments. 🥴
+
+The sections post-RPD struggle the most with their pacing. I'm not sure if the game developers had a self-imposed time
+limit for how long the game should play, or if they had too many last minute ideas. The final two to three hours of the
+game boil down to you being rushed from set piece to set piece, with very little to no downtime.
+
+## Last but not least: The Plot
+
+The story is, again, typical for a Resident Evil game. It starts out with an intriguing premise, then completely loses
+the plot in its final hours.
+
+
+
+Victor Gideon makes for an interesting antagonist. He's seemingly spent years tracking Grace down, planning, and
+researching the events that will transpire throughout the game. Unfortunately, Gideon just... doesn't do a lot
+throughout the campaign.
+
+- He kidnaps Grace and subdues Leon, but doesn't do anything of note to either of them.
+- He lets both of them escape from the hospital, only to conveniently pick Grace back up (I don't even want to get into
+ how weird the motivation for Grace post-hospital is).
+- He's flown out to Raccoon City with The True Antagonist and Grace?
+- ???
+- 🏍🏍🏍🏍
+- ???
+- Shows up to be the final boss
+- Dies
+
+I can see a lot of potential given the character and setup, but the game seems content with keeping Gideon as a prop
+that it can conveniently dispose of in the end.
+
+The same thing goes for The True Antagonist, Zalbert Zesker, who the game insists on calling Zeno or just Z.
+
+
+
+His entire role in the game is to be the one who supposedly funded this entire operation. He gets one evil monologue at
+the end and then gets killed off. The plot would progress nearly identically to how it does in the final game if he
+wasn't here or wasn't Wesker. Gideon, being an ex-Umbrella researcher, at least has some sort of character motivation to
+continue his mission.
+
+The only aspect of the story I genuinely disliked was when Leon S. Kennedy starts shooting at human soldiers who storm
+two rooms in a secret facility, only for them to never show up again. Especially when you consider that the second,
+larger room can be taken out by releasing a Licker from its tube with a well-placed shot. The weirdest part was that
+their presence in the game is once again no longer than 10 minutes at most. The only story reason I could come up with
+is that they flew in with Gideon and Wesker on the helicopter, and that's why we only ever run into two teams? It makes
+for an awkward moment in an otherwise great finale.
+
+All of this is not meant to imply that I disliked the story. I had a great time going in blind and experiencing the
+narrative for the first time. This is meant to be taken as a "what could have been," not "look how they
+butchered my boy."
+
+## Requiem.
+
+All in all, Resident Evil Requiem is an amazing game. The plot might have holes and the gameplay can feel a little samey
+at times, but the overall experience was never boring. Quite the opposite, actually. I felt that throughout most of my
+journey, the gameplay was packed so tightly that twenty minutes felt like an hour. Not because it dragged on for too
+long, but because I couldn't wrap my mind around all the things happening back-to-back.
+
+I **really** hope that RE9 ends up getting a Mercenaries mode; the gameplay as Leon is more refined than ever before and
+is
+a joy to play. The few sections where they funnel zombies in and just let you do your thing with a giant stockpile of
+ammunition or heavy weaponry are where the gameplay really shines.
+
+This game also had the objectively worst and most terrifying objective notification I have received in a long time. (
+Yes, I instinctively threw a grenade).
+
+> **Arachnophobia warning** for those who are sensitive to creepy crawlies.
+
+||||
+
+I think Resident Evil Requiem is a must-play for all fans of horror and action. I'm really excited to discover what
+places and characters CAPCOM will visit in the 10th entry to the series. Unless they somehow bring back Ethan Winters
+for his third game, that is.
\ No newline at end of file
diff --git a/content/articles/resident-evil-requiem/resident-evil-requiem.pagex.js b/content/articles/resident-evil-requiem/resident-evil-requiem.pagex.js
new file mode 100644
index 0000000..e3ac5a2
--- /dev/null
+++ b/content/articles/resident-evil-requiem/resident-evil-requiem.pagex.js
@@ -0,0 +1,67 @@
+import {
+ VoidcannonHeaderLayoutType,
+ VoidcannonHeaderType,
+ VoidcannonContentType
+} from "voidcannon";
+
+import bignuttyPagex from "../../authors/bignutty.pagex.js";
+
+import videogamesCollection from "../../collections/videogames.pagex.js";
+
+import {PagexResourceTransformer} from "pagex";
+import {ThemeVariants} from "pagex_commons";
+
+export default {
+ type: VoidcannonContentType.ARTICLE,
+ content: {
+ _transform: PagexResourceTransformer.MARKDOWN,
+ path: "./content.md"
+ },
+ id: "resident-evil-requiem",
+ title: "Thoughts on Resident Evil Requiem",
+ abstract: "My favourite horror game of 2026. I didn't think they could come up with something worse than the fetus from Village.",
+ author_abstract: "Professional scaredy cat",
+ created_at: 1773102988178,
+ theme: {
+ partial: true,
+ colors: {
+ light: "#a30e0e",
+ dark: "#a30e0e",
+ },
+ variant: ThemeVariants.VIBRANT,
+ },
+ header: {
+ type: VoidcannonHeaderType.IMMERSIVE,
+ layout: VoidcannonHeaderLayoutType.LOGO_LEFT,
+ position: "0% 100%",
+ base: {
+ _transform: PagexResourceTransformer.MEDIA,
+ path: "./assets/header/background_re9.webp"
+ },
+ logo: {
+ _transform: PagexResourceTransformer.MEDIA,
+ path: "./assets/header/logo_re9.webp"
+ },
+ immersive_content: {
+ right: {
+ outer: {
+ _transform: PagexResourceTransformer.MEDIA,
+ path: "./assets/header/immersive_outer_re9.webp"
+ },
+ inner: {
+ _transform: PagexResourceTransformer.MEDIA,
+ path: "./assets/header/immersive_inner_re9.webp"
+ },
+ base: {
+ _transform: PagexResourceTransformer.MEDIA,
+ path: "./assets/header/immersive_full_re9.webp"
+ }
+ }
+ },
+ color: "#a30e0e"
+ },
+ authors: [bignuttyPagex],
+ collections: [
+ videogamesCollection.id,
+ ]
+}
\ No newline at end of file
diff --git a/content/collections/videogames.pagex.js b/content/collections/videogames.pagex.js
index c35ce22..82949ab 100644
--- a/content/collections/videogames.pagex.js
+++ b/content/collections/videogames.pagex.js
@@ -4,7 +4,7 @@ export default {
type: VoidcannonContentType.COLLECTION,
id: "videogames",
name: "Video Games",
- description: "Video Game Articles",
+ description: "I like playing video games. I also care a lot about game design and like sharing my thoughts about games that I've played.",
color: VoidcannonCollectionColor.RED_VIBRANT,
icon: {
type: VoidcannonCollectionIconType.ICON,
diff --git a/package-lock.json b/package-lock.json
index f1b5bad..419919b 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -32,20 +32,20 @@
"license": "MIT"
},
"node_modules/@emnapi/core": {
- "version": "1.8.1",
- "resolved": "https://registry.npmjs.org/@emnapi/core/-/core-1.8.1.tgz",
- "integrity": "sha512-AvT9QFpxK0Zd8J0jopedNm+w/2fIzvtPKPjqyw9jwvBaReTTqPBk9Hixaz7KbjimP+QNz605/XnjFcDAL2pqBg==",
+ "version": "1.9.0",
+ "resolved": "https://registry.npmjs.org/@emnapi/core/-/core-1.9.0.tgz",
+ "integrity": "sha512-0DQ98G9ZQZOxfUcQn1waV2yS8aWdZ6kJMbYCJB3oUBecjWYO1fqJ+a1DRfPF3O5JEkwqwP1A9QEN/9mYm2Yd0w==",
"license": "MIT",
"optional": true,
"dependencies": {
- "@emnapi/wasi-threads": "1.1.0",
+ "@emnapi/wasi-threads": "1.2.0",
"tslib": "^2.4.0"
}
},
"node_modules/@emnapi/runtime": {
- "version": "1.8.1",
- "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.8.1.tgz",
- "integrity": "sha512-mehfKSMWjjNol8659Z8KxEMrdSJDDot5SXMq00dM8BN4o+CLNXQ0xH2V7EchNHV4RmbZLmmPdEaXZc5H2FXmDg==",
+ "version": "1.9.0",
+ "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.9.0.tgz",
+ "integrity": "sha512-QN75eB0IH2ywSpRpNddCRfQIhmJYBCJ1x5Lb3IscKAL8bMnVAKnRg8dCoXbHzVLLH7P38N2Z3mtulB7W0J0FKw==",
"license": "MIT",
"optional": true,
"dependencies": {
@@ -53,9 +53,9 @@
}
},
"node_modules/@emnapi/wasi-threads": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/@emnapi/wasi-threads/-/wasi-threads-1.1.0.tgz",
- "integrity": "sha512-WI0DdZ8xFSbgMjR1sFsKABJ/C5OnRrjT06JXbZKexJGrDuPTzZdDYfFlsgcCXCyf+suG5QU2e/y1Wo2V/OapLQ==",
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/@emnapi/wasi-threads/-/wasi-threads-1.2.0.tgz",
+ "integrity": "sha512-N10dEJNSsUx41Z6pZsXU8FjPjpBEplgH24sfkmITrBED1/U2Esum9F3lfLrMjKHHjmi557zQn7kR9R+XWXu5Rg==",
"license": "MIT",
"optional": true,
"dependencies": {
@@ -241,27 +241,6 @@
"integrity": "sha512-aGTxbpbg8/b5JfU1HXSrbH3wXZuLPJcNEcZQFMxLs3oSzgtVu6nFPkbbGGUvBcUjKV2YyB9Wxxabo+HEH9tcRQ==",
"license": "MIT"
},
- "node_modules/@isaacs/balanced-match": {
- "version": "4.0.1",
- "resolved": "https://registry.npmjs.org/@isaacs/balanced-match/-/balanced-match-4.0.1.tgz",
- "integrity": "sha512-yzMTt9lEb8Gv7zRioUilSglI0c0smZ9k5D65677DLWLtWJaXIS3CqcGyUFByYKlnUj6TkjLVs54fBl6+TiGQDQ==",
- "license": "MIT",
- "engines": {
- "node": "20 || >=22"
- }
- },
- "node_modules/@isaacs/brace-expansion": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/@isaacs/brace-expansion/-/brace-expansion-5.0.1.tgz",
- "integrity": "sha512-WMz71T1JS624nWj2n2fnYAuPovhv7EUhk69R6i9dsVyzxt5eM3bjwvgk9L+APE1TRscGysAVMANkB0jh0LQZrQ==",
- "license": "MIT",
- "dependencies": {
- "@isaacs/balanced-match": "^4.0.1"
- },
- "engines": {
- "node": "20 || >=22"
- }
- },
"node_modules/@isaacs/cliui": {
"version": "8.0.2",
"resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz",
@@ -467,28 +446,6 @@
"@lit/reactive-element": "^2.0.2"
}
},
- "node_modules/@lit-labs/ssr": {
- "version": "3.3.1",
- "resolved": "https://registry.npmjs.org/@lit-labs/ssr/-/ssr-3.3.1.tgz",
- "integrity": "sha512-JlF1PempxvzrGEpRFrF+Ki0MHzR3HA51SK8Zv0cFpW9p0bPW4k0FeCwrElCu371UEpXF7RcaE2wgYaE1az0XKg==",
- "license": "BSD-3-Clause",
- "dependencies": {
- "@lit-labs/ssr-client": "^1.1.7",
- "@lit-labs/ssr-dom-shim": "^1.3.0",
- "@lit/reactive-element": "^2.0.4",
- "@parse5/tools": "^0.3.0",
- "@types/node": "^16.0.0",
- "enhanced-resolve": "^5.10.0",
- "lit": "^3.1.2",
- "lit-element": "^4.0.4",
- "lit-html": "^3.1.2",
- "node-fetch": "^3.2.8",
- "parse5": "^7.1.1"
- },
- "engines": {
- "node": ">=13.9.0"
- }
- },
"node_modules/@lit-labs/ssr-client": {
"version": "1.1.8",
"resolved": "https://registry.npmjs.org/@lit-labs/ssr-client/-/ssr-client-1.1.8.tgz",
@@ -501,9 +458,9 @@
}
},
"node_modules/@lit-labs/ssr-dom-shim": {
- "version": "1.4.0",
- "resolved": "https://registry.npmjs.org/@lit-labs/ssr-dom-shim/-/ssr-dom-shim-1.4.0.tgz",
- "integrity": "sha512-ficsEARKnmmW5njugNYKipTm4SFnbik7CXtoencDZzmzo/dQ+2Q0bgkzJuoJP20Aj0F+izzJjOqsnkd6F/o1bw==",
+ "version": "1.5.1",
+ "resolved": "https://registry.npmjs.org/@lit-labs/ssr-dom-shim/-/ssr-dom-shim-1.5.1.tgz",
+ "integrity": "sha512-Aou5UdlSpr5whQe8AA/bZG0jMj96CoJIWbGfZ91qieWu5AWUMKw8VR/pAkQkJYvBNhmCcWnZlyyk5oze8JIqYA==",
"license": "BSD-3-Clause"
},
"node_modules/@lit/reactive-element": {
@@ -661,12 +618,12 @@
"license": "MIT"
},
"node_modules/@rsbuild/core": {
- "version": "1.7.2",
- "resolved": "https://registry.npmjs.org/@rsbuild/core/-/core-1.7.2.tgz",
- "integrity": "sha512-VAFO6cM+cyg2ntxNW6g3tB2Jc5J5mpLjLluvm7VtW2uceNzyUlVv41o66Yp1t1ikxd3ljtqegViXem62JqzveA==",
+ "version": "1.7.3",
+ "resolved": "https://registry.npmjs.org/@rsbuild/core/-/core-1.7.3.tgz",
+ "integrity": "sha512-kI1oQvCXbQYxUvQPnDLdjSX4gFsbrFNpuUj6jXEJ7IcJ74Q+n4oeFj74/8tKerhxhe0L90m/ZQfzLeN5ORGA9w==",
"license": "MIT",
"dependencies": {
- "@rspack/core": "~1.7.1",
+ "@rspack/core": "~1.7.5",
"@rspack/lite-tapable": "~1.1.0",
"@swc/helpers": "^0.5.18",
"core-js": "~3.47.0",
@@ -680,27 +637,27 @@
}
},
"node_modules/@rspack/binding": {
- "version": "1.7.3",
- "resolved": "https://registry.npmjs.org/@rspack/binding/-/binding-1.7.3.tgz",
- "integrity": "sha512-N943pbPktJPymiYZWZMZMVX/PeSU42cWGpBly82N+ibNCX/Oo4yKWE0v+TyIJm5JaUFhtF2NpvzRbrjg/6skqw==",
+ "version": "1.7.8",
+ "resolved": "https://registry.npmjs.org/@rspack/binding/-/binding-1.7.8.tgz",
+ "integrity": "sha512-P4fbrQx5hRhAiC8TBTEMCTnNawrIzJLjWwAgrTwRxjgenpjNvimEkQBtSGrXOY+c+MV5Q74P+9wPvVWLKzRkQQ==",
"license": "MIT",
"optionalDependencies": {
- "@rspack/binding-darwin-arm64": "1.7.3",
- "@rspack/binding-darwin-x64": "1.7.3",
- "@rspack/binding-linux-arm64-gnu": "1.7.3",
- "@rspack/binding-linux-arm64-musl": "1.7.3",
- "@rspack/binding-linux-x64-gnu": "1.7.3",
- "@rspack/binding-linux-x64-musl": "1.7.3",
- "@rspack/binding-wasm32-wasi": "1.7.3",
- "@rspack/binding-win32-arm64-msvc": "1.7.3",
- "@rspack/binding-win32-ia32-msvc": "1.7.3",
- "@rspack/binding-win32-x64-msvc": "1.7.3"
+ "@rspack/binding-darwin-arm64": "1.7.8",
+ "@rspack/binding-darwin-x64": "1.7.8",
+ "@rspack/binding-linux-arm64-gnu": "1.7.8",
+ "@rspack/binding-linux-arm64-musl": "1.7.8",
+ "@rspack/binding-linux-x64-gnu": "1.7.8",
+ "@rspack/binding-linux-x64-musl": "1.7.8",
+ "@rspack/binding-wasm32-wasi": "1.7.8",
+ "@rspack/binding-win32-arm64-msvc": "1.7.8",
+ "@rspack/binding-win32-ia32-msvc": "1.7.8",
+ "@rspack/binding-win32-x64-msvc": "1.7.8"
}
},
"node_modules/@rspack/binding-darwin-arm64": {
- "version": "1.7.3",
- "resolved": "https://registry.npmjs.org/@rspack/binding-darwin-arm64/-/binding-darwin-arm64-1.7.3.tgz",
- "integrity": "sha512-sXha3xG2KDkXLVjrmnw5kGhBriH2gFd9KAyD2ZBq0sH/gNIvqEaWhAFoO1YtrKU6rCgiSBrs0frfGc6DEqWfTA==",
+ "version": "1.7.8",
+ "resolved": "https://registry.npmjs.org/@rspack/binding-darwin-arm64/-/binding-darwin-arm64-1.7.8.tgz",
+ "integrity": "sha512-KS6SRc+4VYRdX1cKr1j1HEuMNyEzt7onBS0rkenaiCRRYF0z4WNZNyZqRiuxgM3qZ3TISF7gdmgJQyd4ZB43ig==",
"cpu": [
"arm64"
],
@@ -711,9 +668,9 @@
]
},
"node_modules/@rspack/binding-darwin-x64": {
- "version": "1.7.3",
- "resolved": "https://registry.npmjs.org/@rspack/binding-darwin-x64/-/binding-darwin-x64-1.7.3.tgz",
- "integrity": "sha512-AUWMBgaPo7NgpW7arlw9laj9ZQxg7EjC5pnSCRH4BVPV+8egdoPCn5DZk05M25m73crKnGl8c7CrwTRNZeaPrw==",
+ "version": "1.7.8",
+ "resolved": "https://registry.npmjs.org/@rspack/binding-darwin-x64/-/binding-darwin-x64-1.7.8.tgz",
+ "integrity": "sha512-uyXSDKLg2CtqIJrsJDlCqQH80YIPsCUiTToJ59cXAG3v4eke0Qbiv6d/+pV0h/mc0u4inAaSkr5dD18zkMIghw==",
"cpu": [
"x64"
],
@@ -724,9 +681,9 @@
]
},
"node_modules/@rspack/binding-linux-arm64-gnu": {
- "version": "1.7.3",
- "resolved": "https://registry.npmjs.org/@rspack/binding-linux-arm64-gnu/-/binding-linux-arm64-gnu-1.7.3.tgz",
- "integrity": "sha512-SodEX3+1/GLz0LobX9cY1QdjJ1NftSEh4C2vGpr71iA3MS9HyXuw4giqSeRQ4DpCybqpdS/3RLjVqFQEfGpcnw==",
+ "version": "1.7.8",
+ "resolved": "https://registry.npmjs.org/@rspack/binding-linux-arm64-gnu/-/binding-linux-arm64-gnu-1.7.8.tgz",
+ "integrity": "sha512-dD6gSHA18Uj0eqc1FCwwQ5IO5mIckrpYN4H4kPk9Pjau+1mxWvC4y5Lryz1Z8P/Rh1lnQ/wwGE0XL9nd80+LqQ==",
"cpu": [
"arm64"
],
@@ -737,9 +694,9 @@
]
},
"node_modules/@rspack/binding-linux-arm64-musl": {
- "version": "1.7.3",
- "resolved": "https://registry.npmjs.org/@rspack/binding-linux-arm64-musl/-/binding-linux-arm64-musl-1.7.3.tgz",
- "integrity": "sha512-ydD2fNdEy+G7EYJ/a3FfdFZPfrLj/UnZocCNlZTTSHEhu+jURdQk0hwV11CvL+sjnKU5e/8IVMGUzhu3Gu8Ghg==",
+ "version": "1.7.8",
+ "resolved": "https://registry.npmjs.org/@rspack/binding-linux-arm64-musl/-/binding-linux-arm64-musl-1.7.8.tgz",
+ "integrity": "sha512-m+uBi9mEVGkZ02PPOAYN2BSmmvc00XGa6v9CjV8qLpolpUXQIMzDNG+i1fD5SHp8LO+XWsZJOHypMsT0MzGTGw==",
"cpu": [
"arm64"
],
@@ -750,9 +707,9 @@
]
},
"node_modules/@rspack/binding-linux-x64-gnu": {
- "version": "1.7.3",
- "resolved": "https://registry.npmjs.org/@rspack/binding-linux-x64-gnu/-/binding-linux-x64-gnu-1.7.3.tgz",
- "integrity": "sha512-adnDbUqafSAI6/N6vZ+iONSo1W3yUpnNtJqP3rVp7+YdABhUpbOhtaY37qpIJ3uFajXctYFyISPrb4MWl1M9Yg==",
+ "version": "1.7.8",
+ "resolved": "https://registry.npmjs.org/@rspack/binding-linux-x64-gnu/-/binding-linux-x64-gnu-1.7.8.tgz",
+ "integrity": "sha512-IAPp2L3yS33MAEkcGn/I1gO+a+WExJHXz2ZlRlL2oFCUGpYi2ZQHyAcJ3o2tJqkXmdqsTiN+OjEVMd/RcLa24g==",
"cpu": [
"x64"
],
@@ -763,9 +720,9 @@
]
},
"node_modules/@rspack/binding-linux-x64-musl": {
- "version": "1.7.3",
- "resolved": "https://registry.npmjs.org/@rspack/binding-linux-x64-musl/-/binding-linux-x64-musl-1.7.3.tgz",
- "integrity": "sha512-5jnjdODk5HCUFPN6rTaFukynDU4Fn9eCL+4TSp6mqo6YAnfnJEuzDjfetA8t3aQFcAs7WriQfNwvdcA4HvYtbA==",
+ "version": "1.7.8",
+ "resolved": "https://registry.npmjs.org/@rspack/binding-linux-x64-musl/-/binding-linux-x64-musl-1.7.8.tgz",
+ "integrity": "sha512-do/QNzb4GWdXCsipblDcroqRDR3BFcbyzpZpAw/3j9ajvEqsOKpdHZpILT2NZX/VahhjqfqB3k0kJVt3uK7UYQ==",
"cpu": [
"x64"
],
@@ -776,9 +733,9 @@
]
},
"node_modules/@rspack/binding-wasm32-wasi": {
- "version": "1.7.3",
- "resolved": "https://registry.npmjs.org/@rspack/binding-wasm32-wasi/-/binding-wasm32-wasi-1.7.3.tgz",
- "integrity": "sha512-WLQK0ksUzMkVeGoHAMIxenmeEU5tMvFDK36Aip7VRj7T6vZTcAwvbMwc38QrIAvlG7dqWoxgPQi35ba1igNNDw==",
+ "version": "1.7.8",
+ "resolved": "https://registry.npmjs.org/@rspack/binding-wasm32-wasi/-/binding-wasm32-wasi-1.7.8.tgz",
+ "integrity": "sha512-mHtgYTpdhx01i0XNKFYBZyCjtv9YUe/sDfpD1QK4FytPFB+1VpYnmZiaJIMM77VpNsjxGAqWhmUYxi2P6jWifw==",
"cpu": [
"wasm32"
],
@@ -789,9 +746,9 @@
}
},
"node_modules/@rspack/binding-win32-arm64-msvc": {
- "version": "1.7.3",
- "resolved": "https://registry.npmjs.org/@rspack/binding-win32-arm64-msvc/-/binding-win32-arm64-msvc-1.7.3.tgz",
- "integrity": "sha512-RAetPeY45g2NW6fID46VTV7mwY4Lqyw/flLbvCG28yrVOSkekw1KMCr1k335O3VNeqD+5dZDi1n+mwiAx/KMmA==",
+ "version": "1.7.8",
+ "resolved": "https://registry.npmjs.org/@rspack/binding-win32-arm64-msvc/-/binding-win32-arm64-msvc-1.7.8.tgz",
+ "integrity": "sha512-Mkxg86F7kIT4pM9XvE/1LAGjK5NOQi/GJxKyyiKbUAeKM8XBUizVeNuvKR0avf2V5IDAIRXiH1SX8SpujMJteA==",
"cpu": [
"arm64"
],
@@ -802,9 +759,9 @@
]
},
"node_modules/@rspack/binding-win32-ia32-msvc": {
- "version": "1.7.3",
- "resolved": "https://registry.npmjs.org/@rspack/binding-win32-ia32-msvc/-/binding-win32-ia32-msvc-1.7.3.tgz",
- "integrity": "sha512-X3c1B609DxzW++FdWf7kkoXWwsC/DUEJ1N1qots4T0P2G2V+pDQfjdTRSC0YQ75toAvwZqpwGzToQJ9IwQ4Ayw==",
+ "version": "1.7.8",
+ "resolved": "https://registry.npmjs.org/@rspack/binding-win32-ia32-msvc/-/binding-win32-ia32-msvc-1.7.8.tgz",
+ "integrity": "sha512-VmTOZ/X7M85lKFNwb2qJpCRzr4SgO42vucq/X7Uz1oSoTPAf8UUMNdi7BPnu+D4lgy6l8PwV804ZyHO3gGsvPA==",
"cpu": [
"ia32"
],
@@ -815,9 +772,9 @@
]
},
"node_modules/@rspack/binding-win32-x64-msvc": {
- "version": "1.7.3",
- "resolved": "https://registry.npmjs.org/@rspack/binding-win32-x64-msvc/-/binding-win32-x64-msvc-1.7.3.tgz",
- "integrity": "sha512-f6AvZbJGIg+7NggHXv0+lyMzvIUfeCxcB5DNbo3H5AalIgwkoFpcBXLBqgMVIbqA0yNyP06eiK98rpzc9ulQQg==",
+ "version": "1.7.8",
+ "resolved": "https://registry.npmjs.org/@rspack/binding-win32-x64-msvc/-/binding-win32-x64-msvc-1.7.8.tgz",
+ "integrity": "sha512-BK0I4HAwp/yQLnmdJpUtGHcht3x11e9fZwyaiMzznznFc+Oypbf+FS5h+aBgpb53QnNkPpdG7MfAPoKItOcU8A==",
"cpu": [
"x64"
],
@@ -828,13 +785,13 @@
]
},
"node_modules/@rspack/core": {
- "version": "1.7.3",
- "resolved": "https://registry.npmjs.org/@rspack/core/-/core-1.7.3.tgz",
- "integrity": "sha512-GUiTRTz6+gbfM2g3ixXqrvPSeHmyAFu/qHEZZjbYFeDtZhpy1gVaVAHiZfaaIIm+vRlNi7JmULWFZQFKwpQB9Q==",
+ "version": "1.7.8",
+ "resolved": "https://registry.npmjs.org/@rspack/core/-/core-1.7.8.tgz",
+ "integrity": "sha512-kT6yYo8xjKoDfM7iB8N9AmN9DJIlrs7UmQDbpTu1N4zaZocN1/t2fIAWOKjr5+3eJlZQR2twKZhDVHNLbLPjOw==",
"license": "MIT",
"dependencies": {
"@module-federation/runtime-tools": "0.22.0",
- "@rspack/binding": "1.7.3",
+ "@rspack/binding": "1.7.8",
"@rspack/lite-tapable": "1.1.0"
},
"engines": {
@@ -933,9 +890,9 @@
"license": "MIT"
},
"node_modules/@swc/helpers": {
- "version": "0.5.18",
- "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.5.18.tgz",
- "integrity": "sha512-TXTnIcNJQEKwThMMqBXsZ4VGAza6bvN4pa41Rkqoio6QBKMvo+5lexeTMScGCIxtzgQJzElcvIltani+adC5PQ==",
+ "version": "0.5.19",
+ "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.5.19.tgz",
+ "integrity": "sha512-QamiFeIK3txNjgUTNppE6MiG3p7TdninpZu0E0PbqVh1a9FNLT2FRhisaa4NcaX52XVhA5l7Pk58Ft7Sqi/2sA==",
"license": "Apache-2.0",
"dependencies": {
"tslib": "^2.8.0"
@@ -988,9 +945,9 @@
"license": "MIT"
},
"node_modules/@types/node": {
- "version": "16.18.126",
- "resolved": "https://registry.npmjs.org/@types/node/-/node-16.18.126.tgz",
- "integrity": "sha512-OTcgaiwfGFBKacvfwuHzzn1KLxH/er8mluiy8/uM3sGXHaRe73RrSIj01jow9t4kJEW633Ov+cOexXeiApTyAw==",
+ "version": "16.9.1",
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-16.9.1.tgz",
+ "integrity": "sha512-QpLcX9ZSsq3YYUUnD3nFDY8H7wctAhQj/TFKL8Ya8v5fMm3CFXxo8zStsLAl780ltoYoo1WvKUVGBQK+1ifr7g==",
"license": "MIT"
},
"node_modules/@types/trusted-types": {
@@ -1012,9 +969,9 @@
"license": "ISC"
},
"node_modules/@vibrant/color": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/@vibrant/color/-/color-4.0.0.tgz",
- "integrity": "sha512-S9ItdqS1135wTXoIIqAJu8df9dqlOo6Boc5Y4MGsBTu9UmUOvOwfj5b4Ga6S5yrLAKmKYIactkz7zYJdMddkig==",
+ "version": "4.0.4",
+ "resolved": "https://registry.npmjs.org/@vibrant/color/-/color-4.0.4.tgz",
+ "integrity": "sha512-Fq2tAszz4QOPWfHZ+KuEAchXUD8i594BM2fOJt8dI/fvYbiVoBycBF/BlNH6F4IWBubxXoPqD4JmmAHvFYbNew==",
"license": "MIT",
"funding": {
"type": "github",
@@ -1022,16 +979,16 @@
}
},
"node_modules/@vibrant/core": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/@vibrant/core/-/core-4.0.0.tgz",
- "integrity": "sha512-fqlVRUTDjEws9VNKvI3cDXM4wUT7fMFS+cVqEjJk3im+R5EvjJzPF6OAbNhfPzW04NvHNE555eY9FfhYuX3PRw==",
+ "version": "4.0.4",
+ "resolved": "https://registry.npmjs.org/@vibrant/core/-/core-4.0.4.tgz",
+ "integrity": "sha512-yZ0XSpW2biKyaJPpBC31AVYgn7NseKSO2q3KNMmDrkL2qC6TEWsBMnSQ28n0m///chZELXpQLx1CCOsWg5pj8w==",
"license": "MIT",
"dependencies": {
- "@vibrant/color": "^4.0.0",
- "@vibrant/generator": "^4.0.0",
- "@vibrant/image": "^4.0.0",
- "@vibrant/quantizer": "^4.0.0",
- "@vibrant/worker": "^4.0.0"
+ "@vibrant/color": "^4.0.4",
+ "@vibrant/generator": "^4.0.4",
+ "@vibrant/image": "^4.0.4",
+ "@vibrant/quantizer": "^4.0.4",
+ "@vibrant/worker": "^4.0.4"
},
"funding": {
"type": "github",
@@ -1039,13 +996,13 @@
}
},
"node_modules/@vibrant/generator": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/@vibrant/generator/-/generator-4.0.0.tgz",
- "integrity": "sha512-CqKAjmgHVDXJVo3Q5+9pUJOvksR7cN3bzx/6MbURYh7lA4rhsIewkUK155M6q0vfcUN3ETi/eTneCi0tLuM2Sg==",
+ "version": "4.0.4",
+ "resolved": "https://registry.npmjs.org/@vibrant/generator/-/generator-4.0.4.tgz",
+ "integrity": "sha512-rwq8PnlpKdch4YqaA1FAwdm71gKE2cMrUsbu72TqRFGa8rpP1roaZlQCVXIIwElXVc3r9axZyAcqyTLaMjhrTg==",
"license": "MIT",
"dependencies": {
- "@vibrant/color": "^4.0.0",
- "@vibrant/types": "^4.0.0"
+ "@vibrant/color": "^4.0.4",
+ "@vibrant/types": "^4.0.4"
},
"funding": {
"type": "github",
@@ -1053,13 +1010,13 @@
}
},
"node_modules/@vibrant/generator-default": {
- "version": "4.0.3",
- "resolved": "https://registry.npmjs.org/@vibrant/generator-default/-/generator-default-4.0.3.tgz",
- "integrity": "sha512-HZlfp19sDokODEkZF4p70QceARHgjP3a1Dmxg+dlblYMJM98jPq+azA0fzqKNR7R17JJNHxexpJEepEsNlG0gw==",
+ "version": "4.0.4",
+ "resolved": "https://registry.npmjs.org/@vibrant/generator-default/-/generator-default-4.0.4.tgz",
+ "integrity": "sha512-QeVDeH2dz9lityvJCb84Ml4hlBTElwCpU7SVpiDFBh6gPoCLnzcb1H9G4NgG3hOlAPyrBM+Ivq1Pg+1lZj5Ywg==",
"license": "MIT",
"dependencies": {
- "@vibrant/color": "^4.0.0",
- "@vibrant/generator": "^4.0.0"
+ "@vibrant/color": "^4.0.4",
+ "@vibrant/generator": "^4.0.4"
},
"funding": {
"type": "github",
@@ -1067,12 +1024,12 @@
}
},
"node_modules/@vibrant/image": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/@vibrant/image/-/image-4.0.0.tgz",
- "integrity": "sha512-Asv/7R/L701norosgvbjOVkodFiwcFihkXixA/gbAd6C+5GCts1Wm1NPk14FNKnM7eKkfAN+0wwPkdOH+PY/YA==",
+ "version": "4.0.4",
+ "resolved": "https://registry.npmjs.org/@vibrant/image/-/image-4.0.4.tgz",
+ "integrity": "sha512-NBIJj7umfDRVpFjJHQo1AFSCWCzQyjfil+Yxu7W62PEL72GPCif0CDiglPkvVF8QhDLmnx/x1k3LIBb9jWF2sw==",
"license": "MIT",
"dependencies": {
- "@vibrant/color": "^4.0.0"
+ "@vibrant/color": "^4.0.4"
},
"funding": {
"type": "github",
@@ -1080,12 +1037,12 @@
}
},
"node_modules/@vibrant/image-browser": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/@vibrant/image-browser/-/image-browser-4.0.0.tgz",
- "integrity": "sha512-mXckzvJWiP575Y/wNtP87W/TPgyJoGlPBjW4E9YmNS6n4Jb6RqyHQA0ZVulqDslOxjSsihDzY7gpAORRclaoLg==",
+ "version": "4.0.4",
+ "resolved": "https://registry.npmjs.org/@vibrant/image-browser/-/image-browser-4.0.4.tgz",
+ "integrity": "sha512-7qVyAm+z9t98iwMDzUgGCwgRg0KBB5RXQFgiO2Um5Izd1wO7BKC0SHVEz2k7sRx3XNfBf+JExp8quPrvSz17gg==",
"license": "MIT",
"dependencies": {
- "@vibrant/image": "^4.0.0"
+ "@vibrant/image": "^4.0.4"
},
"funding": {
"type": "github",
@@ -1093,15 +1050,15 @@
}
},
"node_modules/@vibrant/image-node": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/@vibrant/image-node/-/image-node-4.0.0.tgz",
- "integrity": "sha512-m7yfnQtmo2y8z+tOjRFBx6q/qGnhl/ax2uCaj4TBkm4TtXfR4Dsn90wT6OWXmCFFzxIKHXKKEBShkxR+4RHseA==",
+ "version": "4.0.4",
+ "resolved": "https://registry.npmjs.org/@vibrant/image-node/-/image-node-4.0.4.tgz",
+ "integrity": "sha512-aG8Ukt9oTa6FWaAV5oBKsBetkKASWH31hZiFJ2R1291f3TZlphUyQTJz5TubucIRsCEl4dgG1xyxFPgse2IABA==",
"license": "MIT",
"dependencies": {
"@jimp/custom": "^0.22.12",
"@jimp/plugin-resize": "^0.22.12",
"@jimp/types": "^0.22.12",
- "@vibrant/image": "^4.0.0"
+ "@vibrant/image": "^4.0.4"
},
"funding": {
"type": "github",
@@ -1109,14 +1066,14 @@
}
},
"node_modules/@vibrant/quantizer": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/@vibrant/quantizer/-/quantizer-4.0.0.tgz",
- "integrity": "sha512-YDGxmCv/RvHFtZghDlVRwH5GMxdGGozWS1JpUOUt73/F5zAKGiiier8F31K1npIXARn6/Gspvg/Rbg7qqyEr2A==",
+ "version": "4.0.4",
+ "resolved": "https://registry.npmjs.org/@vibrant/quantizer/-/quantizer-4.0.4.tgz",
+ "integrity": "sha512-722CooC2W4mlBiv+zyAsIrIvARnMCN/P2Muo8bnWd0SQlVWFtQnFxJWGOUPOPS4DGe3pGoqmNfvS0let4dICZQ==",
"license": "MIT",
"dependencies": {
- "@vibrant/color": "^4.0.0",
- "@vibrant/image": "^4.0.0",
- "@vibrant/types": "^4.0.0"
+ "@vibrant/color": "^4.0.4",
+ "@vibrant/image": "^4.0.4",
+ "@vibrant/types": "^4.0.4"
},
"funding": {
"type": "github",
@@ -1124,14 +1081,14 @@
}
},
"node_modules/@vibrant/quantizer-mmcq": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/@vibrant/quantizer-mmcq/-/quantizer-mmcq-4.0.0.tgz",
- "integrity": "sha512-TZqNiRoGGyCP8fH1XE6rvhFwLNv9D8MP1Xhz3K8tsuUweC6buWax3qLfrfEnkhtQnPJHaqvTfTOlIIXVMfRpow==",
+ "version": "4.0.4",
+ "resolved": "https://registry.npmjs.org/@vibrant/quantizer-mmcq/-/quantizer-mmcq-4.0.4.tgz",
+ "integrity": "sha512-/1CNnM96J8K+OBCWNUzywo6VdnmdFJyiKO+ty/nkfe8H0NseOEHIL7PrVtWGgtsb0rh2uTAq2rjXv65TfgPy8g==",
"license": "MIT",
"dependencies": {
- "@vibrant/color": "^4.0.0",
- "@vibrant/image": "^4.0.0",
- "@vibrant/quantizer": "^4.0.0"
+ "@vibrant/color": "^4.0.4",
+ "@vibrant/image": "^4.0.4",
+ "@vibrant/quantizer": "^4.0.4"
},
"funding": {
"type": "github",
@@ -1139,9 +1096,9 @@
}
},
"node_modules/@vibrant/types": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/@vibrant/types/-/types-4.0.0.tgz",
- "integrity": "sha512-tA5TAbuROXcPkt+PWjmGfoaiEXyySVaNnCZovf6vXhCbMdrTTCQXvNCde2geiVl6YwtuU/Qrj9iZxS5jZ6yVIw==",
+ "version": "4.0.4",
+ "resolved": "https://registry.npmjs.org/@vibrant/types/-/types-4.0.4.tgz",
+ "integrity": "sha512-Qq3mVTJamn7yD4OBgBEUKaxfDlm3sxBK55N7dH3XzI9Ey7KR00R06uwtqOcEJMsziWTEXdYN3VUlYaj2Tkt7hw==",
"license": "MIT",
"funding": {
"type": "github",
@@ -1149,12 +1106,12 @@
}
},
"node_modules/@vibrant/worker": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/@vibrant/worker/-/worker-4.0.0.tgz",
- "integrity": "sha512-nSaZZwWQKOgN/nPYUAIRF0/uoa7KpK91A+gjLmZZDgfN1enqxaiihmn+75ayNadW0c6cxAEpEFEHTONR5u9tMw==",
+ "version": "4.0.4",
+ "resolved": "https://registry.npmjs.org/@vibrant/worker/-/worker-4.0.4.tgz",
+ "integrity": "sha512-Q/R6PYhSMWCXEk/IcXbWIzIu7Z4b58ABkGvcdF8Y+q/7g+KnpxKW5x/jfQ/6ciyYSby13wZZoEdNr3QQVgsdBQ==",
"license": "MIT",
"dependencies": {
- "@vibrant/types": "^4.0.0"
+ "@vibrant/types": "^4.0.4"
},
"funding": {
"type": "github",
@@ -1285,6 +1242,15 @@
"fastq": "^1.17.1"
}
},
+ "node_modules/balanced-match": {
+ "version": "4.0.4",
+ "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-4.0.4.tgz",
+ "integrity": "sha512-BLrgEcRTwX2o6gGxGOCNyMvGSp35YofuYzw9h1IMTRmKqttAZZVU67bdb9Pr2vUHA8+j3i2tJfjO6C6+4myGTA==",
+ "license": "MIT",
+ "engines": {
+ "node": "18 || 20 || >=22"
+ }
+ },
"node_modules/base64-js": {
"version": "1.5.1",
"resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz",
@@ -1311,6 +1277,18 @@
"integrity": "sha512-vHdS19CnY3hwiNdkaqk93DvjVLfbEcI8mys4UjuWrlX1haDmroo8o4xCzh4wD6DGV6HxRCyauwhHRqMTfERtjw==",
"license": "MIT"
},
+ "node_modules/brace-expansion": {
+ "version": "5.0.4",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-5.0.4.tgz",
+ "integrity": "sha512-h+DEnpVvxmfVefa4jFbCf5HdH5YMDXRsmKflpf1pILZWRFlTbJpxeU55nJl4Smt5HQaGzg1o6RHFPJaOqnmBDg==",
+ "license": "MIT",
+ "dependencies": {
+ "balanced-match": "^4.0.2"
+ },
+ "engines": {
+ "node": "18 || 20 || >=22"
+ }
+ },
"node_modules/buffer": {
"version": "5.7.1",
"resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz",
@@ -1820,9 +1798,9 @@
"license": "BSD-3-Clause"
},
"node_modules/fastify": {
- "version": "5.7.4",
- "resolved": "https://registry.npmjs.org/fastify/-/fastify-5.7.4.tgz",
- "integrity": "sha512-e6l5NsRdaEP8rdD8VR0ErJASeyaRbzXYpmkrpr2SuvuMq6Si3lvsaVy5C+7gLanEkvjpMDzBXWE5HPeb/hgTxA==",
+ "version": "5.8.2",
+ "resolved": "https://registry.npmjs.org/fastify/-/fastify-5.8.2.tgz",
+ "integrity": "sha512-lZmt3navvZG915IE+f7/TIVamxIwmBd+OMB+O9WBzcpIwOo6F0LTh0sluoMFk5VkrKTvvrwIaoJPkir4Z+jtAg==",
"funding": [
{
"type": "github",
@@ -1844,7 +1822,7 @@
"fast-json-stringify": "^6.0.0",
"find-my-way": "^9.0.0",
"light-my-request": "^6.0.0",
- "pino": "^10.1.0",
+ "pino": "^9.14.0 || ^10.1.0",
"process-warning": "^5.0.0",
"rfdc": "^1.3.1",
"secure-json-parse": "^4.0.0",
@@ -2259,12 +2237,6 @@
"@types/node": "16.9.1"
}
},
- "node_modules/image-q/node_modules/@types/node": {
- "version": "16.9.1",
- "resolved": "https://registry.npmjs.org/@types/node/-/node-16.9.1.tgz",
- "integrity": "sha512-QpLcX9ZSsq3YYUUnD3nFDY8H7wctAhQj/TFKL8Ya8v5fMm3CFXxo8zStsLAl780ltoYoo1WvKUVGBQK+1ifr7g==",
- "license": "MIT"
- },
"node_modules/image-size": {
"version": "2.0.2",
"resolved": "https://registry.npmjs.org/image-size/-/image-size-2.0.2.tgz",
@@ -2430,9 +2402,9 @@
"license": "MIT"
},
"node_modules/lightningcss": {
- "version": "1.31.1",
- "resolved": "https://registry.npmjs.org/lightningcss/-/lightningcss-1.31.1.tgz",
- "integrity": "sha512-l51N2r93WmGUye3WuFoN5k10zyvrVs0qfKBhyC5ogUQ6Ew6JUSswh78mbSO+IU3nTWsyOArqPCcShdQSadghBQ==",
+ "version": "1.32.0",
+ "resolved": "https://registry.npmjs.org/lightningcss/-/lightningcss-1.32.0.tgz",
+ "integrity": "sha512-NXYBzinNrblfraPGyrbPoD19C1h9lfI/1mzgWYvXUTe414Gz/X1FD2XBZSZM7rRTrMA8JL3OtAaGifrIKhQ5yQ==",
"license": "MPL-2.0",
"dependencies": {
"detect-libc": "^2.0.3"
@@ -2445,23 +2417,23 @@
"url": "https://opencollective.com/parcel"
},
"optionalDependencies": {
- "lightningcss-android-arm64": "1.31.1",
- "lightningcss-darwin-arm64": "1.31.1",
- "lightningcss-darwin-x64": "1.31.1",
- "lightningcss-freebsd-x64": "1.31.1",
- "lightningcss-linux-arm-gnueabihf": "1.31.1",
- "lightningcss-linux-arm64-gnu": "1.31.1",
- "lightningcss-linux-arm64-musl": "1.31.1",
- "lightningcss-linux-x64-gnu": "1.31.1",
- "lightningcss-linux-x64-musl": "1.31.1",
- "lightningcss-win32-arm64-msvc": "1.31.1",
- "lightningcss-win32-x64-msvc": "1.31.1"
+ "lightningcss-android-arm64": "1.32.0",
+ "lightningcss-darwin-arm64": "1.32.0",
+ "lightningcss-darwin-x64": "1.32.0",
+ "lightningcss-freebsd-x64": "1.32.0",
+ "lightningcss-linux-arm-gnueabihf": "1.32.0",
+ "lightningcss-linux-arm64-gnu": "1.32.0",
+ "lightningcss-linux-arm64-musl": "1.32.0",
+ "lightningcss-linux-x64-gnu": "1.32.0",
+ "lightningcss-linux-x64-musl": "1.32.0",
+ "lightningcss-win32-arm64-msvc": "1.32.0",
+ "lightningcss-win32-x64-msvc": "1.32.0"
}
},
"node_modules/lightningcss-android-arm64": {
- "version": "1.31.1",
- "resolved": "https://registry.npmjs.org/lightningcss-android-arm64/-/lightningcss-android-arm64-1.31.1.tgz",
- "integrity": "sha512-HXJF3x8w9nQ4jbXRiNppBCqeZPIAfUo8zE/kOEGbW5NZvGc/K7nMxbhIr+YlFlHW5mpbg/YFPdbnCh1wAXCKFg==",
+ "version": "1.32.0",
+ "resolved": "https://registry.npmjs.org/lightningcss-android-arm64/-/lightningcss-android-arm64-1.32.0.tgz",
+ "integrity": "sha512-YK7/ClTt4kAK0vo6w3X+Pnm0D2cf2vPHbhOXdoNti1Ga0al1P4TBZhwjATvjNwLEBCnKvjJc2jQgHXH0NEwlAg==",
"cpu": [
"arm64"
],
@@ -2479,9 +2451,9 @@
}
},
"node_modules/lightningcss-darwin-arm64": {
- "version": "1.31.1",
- "resolved": "https://registry.npmjs.org/lightningcss-darwin-arm64/-/lightningcss-darwin-arm64-1.31.1.tgz",
- "integrity": "sha512-02uTEqf3vIfNMq3h/z2cJfcOXnQ0GRwQrkmPafhueLb2h7mqEidiCzkE4gBMEH65abHRiQvhdcQ+aP0D0g67sg==",
+ "version": "1.32.0",
+ "resolved": "https://registry.npmjs.org/lightningcss-darwin-arm64/-/lightningcss-darwin-arm64-1.32.0.tgz",
+ "integrity": "sha512-RzeG9Ju5bag2Bv1/lwlVJvBE3q6TtXskdZLLCyfg5pt+HLz9BqlICO7LZM7VHNTTn/5PRhHFBSjk5lc4cmscPQ==",
"cpu": [
"arm64"
],
@@ -2499,9 +2471,9 @@
}
},
"node_modules/lightningcss-darwin-x64": {
- "version": "1.31.1",
- "resolved": "https://registry.npmjs.org/lightningcss-darwin-x64/-/lightningcss-darwin-x64-1.31.1.tgz",
- "integrity": "sha512-1ObhyoCY+tGxtsz1lSx5NXCj3nirk0Y0kB/g8B8DT+sSx4G9djitg9ejFnjb3gJNWo7qXH4DIy2SUHvpoFwfTA==",
+ "version": "1.32.0",
+ "resolved": "https://registry.npmjs.org/lightningcss-darwin-x64/-/lightningcss-darwin-x64-1.32.0.tgz",
+ "integrity": "sha512-U+QsBp2m/s2wqpUYT/6wnlagdZbtZdndSmut/NJqlCcMLTWp5muCrID+K5UJ6jqD2BFshejCYXniPDbNh73V8w==",
"cpu": [
"x64"
],
@@ -2519,9 +2491,9 @@
}
},
"node_modules/lightningcss-freebsd-x64": {
- "version": "1.31.1",
- "resolved": "https://registry.npmjs.org/lightningcss-freebsd-x64/-/lightningcss-freebsd-x64-1.31.1.tgz",
- "integrity": "sha512-1RINmQKAItO6ISxYgPwszQE1BrsVU5aB45ho6O42mu96UiZBxEXsuQ7cJW4zs4CEodPUioj/QrXW1r9pLUM74A==",
+ "version": "1.32.0",
+ "resolved": "https://registry.npmjs.org/lightningcss-freebsd-x64/-/lightningcss-freebsd-x64-1.32.0.tgz",
+ "integrity": "sha512-JCTigedEksZk3tHTTthnMdVfGf61Fky8Ji2E4YjUTEQX14xiy/lTzXnu1vwiZe3bYe0q+SpsSH/CTeDXK6WHig==",
"cpu": [
"x64"
],
@@ -2539,9 +2511,9 @@
}
},
"node_modules/lightningcss-linux-arm-gnueabihf": {
- "version": "1.31.1",
- "resolved": "https://registry.npmjs.org/lightningcss-linux-arm-gnueabihf/-/lightningcss-linux-arm-gnueabihf-1.31.1.tgz",
- "integrity": "sha512-OOCm2//MZJ87CdDK62rZIu+aw9gBv4azMJuA8/KB74wmfS3lnC4yoPHm0uXZ/dvNNHmnZnB8XLAZzObeG0nS1g==",
+ "version": "1.32.0",
+ "resolved": "https://registry.npmjs.org/lightningcss-linux-arm-gnueabihf/-/lightningcss-linux-arm-gnueabihf-1.32.0.tgz",
+ "integrity": "sha512-x6rnnpRa2GL0zQOkt6rts3YDPzduLpWvwAF6EMhXFVZXD4tPrBkEFqzGowzCsIWsPjqSK+tyNEODUBXeeVHSkw==",
"cpu": [
"arm"
],
@@ -2559,9 +2531,9 @@
}
},
"node_modules/lightningcss-linux-arm64-gnu": {
- "version": "1.31.1",
- "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-gnu/-/lightningcss-linux-arm64-gnu-1.31.1.tgz",
- "integrity": "sha512-WKyLWztD71rTnou4xAD5kQT+982wvca7E6QoLpoawZ1gP9JM0GJj4Tp5jMUh9B3AitHbRZ2/H3W5xQmdEOUlLg==",
+ "version": "1.32.0",
+ "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-gnu/-/lightningcss-linux-arm64-gnu-1.32.0.tgz",
+ "integrity": "sha512-0nnMyoyOLRJXfbMOilaSRcLH3Jw5z9HDNGfT/gwCPgaDjnx0i8w7vBzFLFR1f6CMLKF8gVbebmkUN3fa/kQJpQ==",
"cpu": [
"arm64"
],
@@ -2579,9 +2551,9 @@
}
},
"node_modules/lightningcss-linux-arm64-musl": {
- "version": "1.31.1",
- "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-musl/-/lightningcss-linux-arm64-musl-1.31.1.tgz",
- "integrity": "sha512-mVZ7Pg2zIbe3XlNbZJdjs86YViQFoJSpc41CbVmKBPiGmC4YrfeOyz65ms2qpAobVd7WQsbW4PdsSJEMymyIMg==",
+ "version": "1.32.0",
+ "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-musl/-/lightningcss-linux-arm64-musl-1.32.0.tgz",
+ "integrity": "sha512-UpQkoenr4UJEzgVIYpI80lDFvRmPVg6oqboNHfoH4CQIfNA+HOrZ7Mo7KZP02dC6LjghPQJeBsvXhJod/wnIBg==",
"cpu": [
"arm64"
],
@@ -2599,9 +2571,9 @@
}
},
"node_modules/lightningcss-linux-x64-gnu": {
- "version": "1.31.1",
- "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-gnu/-/lightningcss-linux-x64-gnu-1.31.1.tgz",
- "integrity": "sha512-xGlFWRMl+0KvUhgySdIaReQdB4FNudfUTARn7q0hh/V67PVGCs3ADFjw+6++kG1RNd0zdGRlEKa+T13/tQjPMA==",
+ "version": "1.32.0",
+ "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-gnu/-/lightningcss-linux-x64-gnu-1.32.0.tgz",
+ "integrity": "sha512-V7Qr52IhZmdKPVr+Vtw8o+WLsQJYCTd8loIfpDaMRWGUZfBOYEJeyJIkqGIDMZPwPx24pUMfwSxxI8phr/MbOA==",
"cpu": [
"x64"
],
@@ -2619,9 +2591,9 @@
}
},
"node_modules/lightningcss-linux-x64-musl": {
- "version": "1.31.1",
- "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-musl/-/lightningcss-linux-x64-musl-1.31.1.tgz",
- "integrity": "sha512-eowF8PrKHw9LpoZii5tdZwnBcYDxRw2rRCyvAXLi34iyeYfqCQNA9rmUM0ce62NlPhCvof1+9ivRaTY6pSKDaA==",
+ "version": "1.32.0",
+ "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-musl/-/lightningcss-linux-x64-musl-1.32.0.tgz",
+ "integrity": "sha512-bYcLp+Vb0awsiXg/80uCRezCYHNg1/l3mt0gzHnWV9XP1W5sKa5/TCdGWaR/zBM2PeF/HbsQv/j2URNOiVuxWg==",
"cpu": [
"x64"
],
@@ -2639,9 +2611,9 @@
}
},
"node_modules/lightningcss-win32-arm64-msvc": {
- "version": "1.31.1",
- "resolved": "https://registry.npmjs.org/lightningcss-win32-arm64-msvc/-/lightningcss-win32-arm64-msvc-1.31.1.tgz",
- "integrity": "sha512-aJReEbSEQzx1uBlQizAOBSjcmr9dCdL3XuC/6HLXAxmtErsj2ICo5yYggg1qOODQMtnjNQv2UHb9NpOuFtYe4w==",
+ "version": "1.32.0",
+ "resolved": "https://registry.npmjs.org/lightningcss-win32-arm64-msvc/-/lightningcss-win32-arm64-msvc-1.32.0.tgz",
+ "integrity": "sha512-8SbC8BR40pS6baCM8sbtYDSwEVQd4JlFTOlaD3gWGHfThTcABnNDBda6eTZeqbofalIJhFx0qKzgHJmcPTnGdw==",
"cpu": [
"arm64"
],
@@ -2659,9 +2631,9 @@
}
},
"node_modules/lightningcss-win32-x64-msvc": {
- "version": "1.31.1",
- "resolved": "https://registry.npmjs.org/lightningcss-win32-x64-msvc/-/lightningcss-win32-x64-msvc-1.31.1.tgz",
- "integrity": "sha512-I9aiFrbd7oYHwlnQDqr1Roz+fTz61oDDJX7n9tYF9FJymH1cIN1DtKw3iYt6b8WZgEjoNwVSncwF4wx/ZedMhw==",
+ "version": "1.32.0",
+ "resolved": "https://registry.npmjs.org/lightningcss-win32-x64-msvc/-/lightningcss-win32-x64-msvc-1.32.0.tgz",
+ "integrity": "sha512-Amq9B/SoZYdDi1kFrojnoqPLxYhQ4Wo5XiL8EVJrVsB8ARoC1PWW6VGtT0WKCemjy8aC+louJnjS7U18x3b06Q==",
"cpu": [
"x64"
],
@@ -2910,15 +2882,15 @@
}
},
"node_modules/minimatch": {
- "version": "10.1.1",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.1.1.tgz",
- "integrity": "sha512-enIvLvRAFZYXJzkCYG5RKmPfrFArdLv+R+lbQ53BmIMLIry74bjKzX6iHAm8WYamJkhSSEabrWN5D97XnKObjQ==",
+ "version": "10.2.4",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.2.4.tgz",
+ "integrity": "sha512-oRjTw/97aTBN0RHbYCdtF1MQfvusSIBQM0IZEgzl6426+8jSC0nF1a/GmnVLpfB9yyr6g6FTqWqiZVbxrtaCIg==",
"license": "BlueOak-1.0.0",
"dependencies": {
- "@isaacs/brace-expansion": "^5.0.0"
+ "brace-expansion": "^5.0.2"
},
"engines": {
- "node": "20 || >=22"
+ "node": "18 || 20 || >=22"
},
"funding": {
"url": "https://github.com/sponsors/isaacs"
@@ -2994,17 +2966,17 @@
}
},
"node_modules/node-vibrant": {
- "version": "4.0.3",
- "resolved": "https://registry.npmjs.org/node-vibrant/-/node-vibrant-4.0.3.tgz",
- "integrity": "sha512-kzoIuJK90BH/k65Avt077JCX4Nhqz1LNc8cIOm2rnYEvFdJIYd8b3SQwU1MTpzcHtr8z8jxkl1qdaCfbP3olFg==",
+ "version": "4.0.4",
+ "resolved": "https://registry.npmjs.org/node-vibrant/-/node-vibrant-4.0.4.tgz",
+ "integrity": "sha512-hA/pUXBE9TJ41G9FlTkzeqD5JdxgvvPGYZb/HNpdkaxxXUEnP36imSolZ644JuPun+lTd+FpWWtBpTYdp2noQA==",
"license": "MIT",
"dependencies": {
"@types/node": "^18.15.3",
- "@vibrant/core": "^4.0.0",
- "@vibrant/generator-default": "^4.0.3",
- "@vibrant/image-browser": "^4.0.0",
- "@vibrant/image-node": "^4.0.0",
- "@vibrant/quantizer-mmcq": "^4.0.0"
+ "@vibrant/core": "^4.0.4",
+ "@vibrant/generator-default": "^4.0.4",
+ "@vibrant/image-browser": "^4.0.4",
+ "@vibrant/image-node": "^4.0.4",
+ "@vibrant/quantizer-mmcq": "^4.0.4"
},
"funding": {
"type": "github",
@@ -4294,14 +4266,14 @@
"dependencies": {
"@adobe/css-tools": "^4.4.4",
"@fastify/static": "^8.2.0",
- "@lit-labs/ssr": "^3.3.1",
+ "@lit-labs/ssr": "^4.0.0",
"@literals/html-css-minifier": "^3.0.1",
- "@rsbuild/core": "^1.7.2",
+ "@rsbuild/core": "^1.7.3",
"fastify": "^5.6.1",
"gqlmin": "^0.3.1",
"html-minifier-terser": "^7.2.0",
"image-size": "^2.0.2",
- "lightningcss": "^1.31.1"
+ "lightningcss": "^1.32.0"
},
"optionalDependencies": {
"lightningcss-linux-arm64-musl": "^1.31.1",
@@ -4318,6 +4290,35 @@
"pagex": "file:../pagex"
}
},
+ "pagex/node_modules/@lit-labs/ssr": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/@lit-labs/ssr/-/ssr-4.0.0.tgz",
+ "integrity": "sha512-pODr+t7cZVIrCRLuSLuWAACDnztEk5IrRFwFsbxyAyWcP2XP8aKuUZdVM/biXqxvIyHyCKtNZ92Gdcr+pjA5BQ==",
+ "license": "BSD-3-Clause",
+ "dependencies": {
+ "@lit-labs/ssr-client": "^1.1.7",
+ "@lit-labs/ssr-dom-shim": "^1.5.0",
+ "@lit/reactive-element": "^2.0.4",
+ "@parse5/tools": "^0.3.0",
+ "enhanced-resolve": "^5.10.0",
+ "lit": "^3.1.2",
+ "lit-element": "^4.0.4",
+ "lit-html": "^3.1.2",
+ "node-fetch": "^3.2.8",
+ "parse5": "^7.1.1"
+ },
+ "engines": {
+ "node": ">=13.9.0"
+ },
+ "peerDependencies": {
+ "@types/node": ">=20.0.0 <25.0.0"
+ },
+ "peerDependenciesMeta": {
+ "@types/node": {
+ "optional": true
+ }
+ }
+ },
"voidcannon": {
"version": "1.0.0",
"dependencies": {
@@ -4331,7 +4332,7 @@
"emoji-regex": "^10.6.0",
"gm3": "file:../gm3",
"lit": "^3.3.2",
- "node-vibrant": "^4.0.3",
+ "node-vibrant": "^4.0.4",
"pagex": "file:../pagex",
"pagex_commons": "file:../pagex_commons",
"shiki": "^3.20.0",
diff --git a/pagex b/pagex
index 8d7847d..4140e9b 160000
--- a/pagex
+++ b/pagex
@@ -1 +1 @@
-Subproject commit 8d7847d2ae9975e0e3bf7eb82b08b9cec4d2e37b
+Subproject commit 4140e9b33d4e7de3b4a03f869951f4febd14ece6
diff --git a/pagex_commons b/pagex_commons
index 16d8646..3fa3da7 160000
--- a/pagex_commons
+++ b/pagex_commons
@@ -1 +1 @@
-Subproject commit 16d8646eb8fe42dd0f2a9e1ab294c2aff4d7e046
+Subproject commit 3fa3da7199bb1873af80c36cc36aeabddfc3d359
diff --git a/voidcannon b/voidcannon
index 6781d04..aa1f541 160000
--- a/voidcannon
+++ b/voidcannon
@@ -1 +1 @@
-Subproject commit 6781d04733be5f23ab475fa52237c0b70b691030
+Subproject commit aa1f54108e7f3d6b1008e21de37bc3640fe76046