Commit Graph

94 Commits

Author SHA1 Message Date
Matt Isenhower
38caca3e48 Add unit tests for ImageProcessor
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-15 16:45:20 -08:00
Matt Isenhower
af526403a1 Update cron to v4 and ical-generator to v10
cron v4: No code changes needed (positional constructor args still supported).
ical-generator v10: Removed `new` keyword (now a factory function) and
switched from `attachments` property to `createAttachment()` method.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-15 16:09:19 -08:00
Matt Isenhower
8b11900905 Revert jsonpath-plus back to jsonpath
jsonpath v1.2.1 (published Feb 2025) fixed the security vulnerability
that prompted the switch to jsonpath-plus. Reverting to the original
package simplifies the code by removing the jsonpathQuery/jsonpathApply
wrapper functions.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-15 15:56:05 -08:00
Matt Isenhower
7adb9c313e Add mkdirp utility to avoid verbose fs.mkdir calls
Added mkdirp() helper to app/common/fs.mjs that wraps
fs.mkdir(dir, { recursive: true }). Updated all call sites to use it.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-15 11:09:02 -08:00
Matt Isenhower
8780463c66 Replace deprecated and unmaintained packages
- Removed mkdirp in favor of native fs.mkdir({ recursive: true })
- Replaced ecstatic (unmaintained since 2021) with sirv
- Replaced jsonpath (security vulnerability) with jsonpath-plus
  - Added jsonpathQuery/jsonpathApply helpers in app/common/util.mjs
- Updated sharp: 0.32.6 → 0.34.5
- Updated puppeteer-core: 23.8.0 → 24.37.3

Vulnerabilities reduced from 40 to 1 (only remaining: axios in
threads-api transitive dependency).

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-15 11:05:49 -08:00
Matt Isenhower
e6004154b9 Migrate ESLint to v9 with flat config
- eslint: 8.57.0 → 9.39.2
- eslint-plugin-vue: 9.23.0 → 10.8.0
- eslint-plugin-jsdoc: 48.2.1 → 62.5.5
- Replaced .eslintrc.cjs with eslint.config.mjs (flat config)
- Removed @vue/eslint-config-airbnb and eslint-plugin-import
- Added @eslint/js, globals, vue-eslint-parser, typescript as deps
- Removed stale eslint-disable comments for import/no-unresolved
- Simplified lint script (ESLint 9 handles extensions/ignores via config)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-15 11:02:09 -08:00
Matt Isenhower
c93854c610 Improve error logging for data loading and localization
Replace silent error handling with descriptive messages: log
HTTP status in i18n locale loading, log response details in
data store fetch, and warn on unexpected localization file
read errors.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-31 20:04:34 -08:00
Matt Isenhower
011430f344 Fix code inconsistencies across frontend and backend
Use strict equality in TricolorBox, add async keyword to
CoopUpdater/GearUpdater getData() for consistency, and add
missing HMR accept for useCoopGearStore.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-31 20:04:05 -08:00
Matt Isenhower
6dc7fd0bdb Download private storage before pulling data from Splatnet
Some checks are pending
Build frontend / build (20.x) (push) Waiting to run
Deploy / deploy-frontend (push) Waiting to run
Deploy / deploy-backend (push) Waiting to run
Fix code styles / build (push) Waiting to run
2024-12-14 16:02:49 -08:00
Matt Isenhower
06806c9de4 Disable non-US updaters for now
Some checks failed
Build frontend / build (20.x) (push) Has been cancelled
Deploy / deploy-frontend (push) Has been cancelled
Deploy / deploy-backend (push) Has been cancelled
Fix code styles / build (push) Has been cancelled
2024-12-12 09:20:14 -08:00
Matt Isenhower
ba44aec52a Make the data archive optional
Some checks failed
Deploy / deploy-frontend (push) Has been cancelled
Deploy / deploy-backend (push) Has been cancelled
2024-11-29 14:35:52 -05:00
Matt Isenhower
330a299e3e Ignore a weird issue with ESLint for now 2024-11-22 11:50:56 -08:00
Matt Isenhower
71965990bd Make festival update atomic
Some checks are pending
Deploy / deploy-frontend (push) Waiting to run
Deploy / deploy-backend (push) Waiting to run
2024-11-21 22:09:16 -08:00
Matt Isenhower
7d4b9cc038 Skip "no need to update" message 2024-11-20 21:46:45 -08:00
Matt Isenhower
441c0b262f Run all update operations in parallel 2024-11-20 21:45:56 -08:00
Matt Isenhower
fbdea0f3c2 Update X-Rank data in parallel 2024-11-20 21:39:39 -08:00
Matt Isenhower
002ca2e34a Update festival data in parallel 2024-11-20 21:39:12 -08:00
Matt Isenhower
279671896e Formatting 2024-11-20 21:16:29 -08:00
Matt Isenhower
10c082a1c2 Retrieve localizations in parallel 2024-11-20 21:13:40 -08:00
Matt Isenhower
0fe794007e Prevent storing invalid images 2024-11-18 20:33:33 -08:00
Matt Isenhower
34c2d65b15 Download images concurrently 2024-11-17 21:16:24 -08:00
Matt Isenhower
16cf16e157 Fix some mistakes 2024-11-17 19:50:45 -08:00
Matt Isenhower
c286779cdc Linter 2024-11-17 19:35:17 -08:00
Matt Isenhower
cb76f65783 Add S3 syncer 2024-11-17 19:35:00 -08:00
Matt Isenhower
98bccc246b Update S3 config 2024-11-17 19:18:26 -08:00
Matt Isenhower
c726f25910 Fix X-Rank updater 2024-09-12 10:36:29 -07:00
Matt Isenhower
2736996f05 Tweak Splatfest updater to handle new paginated query 2024-09-05 08:01:12 -07:00
Matt Isenhower
37ee0c4dc9 Prefer single quotes and enforce semicolons 2024-03-17 10:20:17 -07:00
Matt Isenhower
e87a4b241d lint-fix 2024-03-17 10:15:18 -07:00
Matt Isenhower
c6091d822e Fix import errors 2024-03-17 10:12:13 -07:00
Matt Isenhower
8b55a5deba Fix linting issues 2024-03-16 22:31:20 -07:00
Matt Isenhower
3b85e1f59b Report to Sentry when an update fails 2023-12-02 17:25:46 -08:00
Matt Isenhower
cce839e3bd Tweak festival updater 2023-12-02 11:13:54 -08:00
Matt Isenhower
6173693520 Make updaters more configurable
This should reduce the number of queries needed during high-load times (like waiting for Splatfest results).
2023-12-02 11:06:45 -08:00
Matt Isenhower
6909cfb864 Cleanup 2023-12-02 10:21:29 -08:00
Matt Isenhower
77c1680bb9 Use new boss data 2023-11-29 20:09:20 -08:00
Matt Isenhower
cde9aa111c Fix a bug causing localizations to be pulled more often than needed 2023-08-30 16:26:26 -07:00
Matt Isenhower
10ee1f862a Fix festival ranking updater 2023-08-13 19:46:16 -07:00
Matt Isenhower
51348effc8 Prevent issues with nulls 2023-07-23 08:36:43 -07:00
Matt Isenhower
e4e6051999 Run linter 2023-06-25 20:59:43 -07:00
Matt Isenhower
edfeb9b51c Retrieve translations for events 2023-06-01 09:32:42 -07:00
Matt Isenhower
b9ed1ff5ab Delete files after archiving them 2023-05-31 18:01:49 -07:00
Matt Isenhower
0e4d059602 Automatically archive new data 2023-05-30 20:46:32 -07:00
Matt Isenhower
f88538a798 Disable auto-delete for now 2023-05-30 20:18:04 -07:00
Matt Isenhower
ec783f52ec Add S3 data archiver 2023-05-30 20:17:32 -07:00
Matt Isenhower
840d45373a Move archives back to storage dir and use precise time for X-Rank 2023-05-30 19:33:37 -07:00
Matt Isenhower
69ea3962cb Fix a mistake 2023-05-23 17:51:46 -07:00
Matt Isenhower
ba54d94e09 Make data archives more accessible, and store only one file per hour 2023-05-23 17:48:30 -07:00
Matt Isenhower
ce838a7652 Fix broken X-Rank images 2023-04-29 09:24:45 -07:00
Matt Isenhower
4b142c890e Only update X-Rank details when needed 2023-04-22 14:33:51 -07:00