It would have been better to check this on the back end by using the same Vuex data store as on the front end, but there are currently some complications with bringing that in to Node (because of issues with ES modules) so we have to perform the check twice.
When restructuring Splatfests to handle an "all regions" display (by combining the list of Splatfests from each region) I had forgotten to account for Splatfests that have different times in each region. This change adds specific regional data (times and current state) as necessary.
This also switches to using absolute links for Splatnet images to fix issues with deep links (e.g., /schedules/regular). It's not a problem for screenshots anymore since we're using an actual HTTP server to server those now.
This puts all the SplatNet data and other parameters in a centralized store (rather than passing down everything from a top-level component via props).
vue-cli-service had to be added to devDependencies to be picked up by the Vue CLI UI properly, and we need it to build, so we need to make sure dev dependencies are included on the production server.
After switching to Vue CLI, script/style URLs in generated HTML files are now absolute instead of relative. This is generally a good thing, but it causes issues when trying to view pages with file:// URLs. Starting up a local HTTP server just makes everything easier here.
We don't need to prefetch all the languages on every page load, but there are currently some issues with modifying webpack plugin configs when using the --modern build option.
The biggest changes here include splitting the server-side JS into multiple directories (under /src/app), moving all web content to /src/web, and compiling the web app to /dist instead of /public. This layout makes more sense overall, and more closely mirrors what is used for vue-cli v3 projects.
This enables links like /about, /splatnet, and /splatfests. I'm going to have to decouple some things from the main app view in order to use router components properly, but this handles the basic needs for now.
Nintendo changed the way "random" weapons appear for Salmon Run. Previously, these were just listed as "null" values, but now they have a new "coop_special_weapon" key with an image and name. This change adds support for downloading images and localized names for these weapons just in case any special weapons appear here in the future.