Commit Graph

595 Commits

Author SHA1 Message Date
Matt Isenhower
5bff658212 Revert eslint 2026-02-15 16:36:53 -08:00
Matt Isenhower
f8707b7e9a Update Vite to v7, @vitejs/plugin-vue, and @eslint/js to 10.0.1
Vite 7: No code changes needed for this project's config.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-15 16:25:48 -08:00
Matt Isenhower
bb78a7e6e2 Update ESLint and @eslint/js to v10
No config changes needed — already using flat config.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-15 16:23:27 -08:00
Matt Isenhower
ff6ce5a0a1 Update nxapi to latest next release (1.6.1-next.248)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-15 16:20:33 -08:00
Matt Isenhower
d625a2dc90 Update pinia to v3 and vue-router to v5
Both are non-breaking upgrades for this project's usage patterns.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-15 16:17:56 -08:00
Matt Isenhower
e8714d335a Update dotenv to v17, p-limit to v7, p-queue to v9
dotenv v17: Added quiet option to suppress new default logging.
p-limit v7 and p-queue v9: No code changes needed (only dropped older Node).

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-15 16:10:14 -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
6bf8696746 Update minor dependencies
- dotenv: 16.4.5 → 16.6.1
- p-limit: 6.1.0 → 6.2.0
- p-queue: 8.0.1 → 8.1.1
- nxapi: 1.6.1-next.170 → 1.6.1 (pre-release → stable)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-15 16:02:47 -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
misenhower
f92267d0bf Fix styling 2026-02-15 22:04:22 +00:00
Matt Isenhower
29482689f4 Migrate Tailwind CSS from v3 to v4
- Replace JS config (tailwind.config.js) with CSS @theme block in base.css
- Switch from PostCSS to @tailwindcss/vite plugin
- Convert all bg-opacity-*/border-opacity-* to slash syntax (e.g. bg-zinc-900/70)
- Add @custom-variant for mobile and ss variants
- Add @reference to Vue scoped styles using @apply
- Rename v3 utilities: rounded→rounded-sm, backdrop-blur-sm→backdrop-blur-xs,
  drop-shadow→drop-shadow-sm, rotate-[25deg]→rotate-25
- Delete obsolete tailwind.config.js and postcss.config.js
- Rename vite.config.js to .mjs for ESM compatibility

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-15 13:52:27 -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
d5c97a5bf6 Update vue-i18n from v9 to v11
vue-i18n: 9.10.2 → 11.2.8

Resolves XSS and prototype pollution vulnerabilities in vue-i18n v9.
Total vulnerabilities now down to 1 (axios in threads-api transitive
dependency).

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-15 10:58:39 -08:00
Matt Isenhower
0462cc2d8c Update Vite from v3 to v6
- vite: 3.2.8 → 6.4.1
- @vitejs/plugin-vue: 3.2.0 → 5.2.4
- Replaced @intlify/vite-plugin-vue-i18n with @intlify/unplugin-vue-i18n
- Narrowed i18n include pattern to *.json to avoid parsing .mjs files

This resolves the esbuild moderate severity vulnerability that was
present in Vite <=6.1.6.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-15 10:58:07 -08:00
Matt Isenhower
7c901f9ae7 Update social media API SDKs
- @atproto/api (Bluesky): 0.11.2 → 0.18.21
- masto (Mastodon): 6.7.0 → 7.10.1
- twitter-api-v2: 1.18.1 → 1.29.0

threads-api left at 1.6.3 (no newer version available; vulnerable
axios dependency is a transitive issue in that package).

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-15 10:52:07 -08:00
Matt Isenhower
89daffe6c1 Update Sentry from v7 to v10
@sentry/node: 7.107.0 → 10.38.0

The project uses only Sentry.init() and Sentry.captureException(),
which are compatible across versions.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-15 10:48:28 -08:00
Matt Isenhower
4a5a2aca42 Update Vue ecosystem packages
- vue: 3.4.21 → 3.5.28
- vue-router: 4.3.0 → 4.5.0
- pinia: 2.2.2 → 2.3.1
- @headlessui/vue: 1.7.19 → 1.7.23
- @heroicons/vue: 2.1.1 → 2.2.0

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-15 10:47:26 -08:00
Matt Isenhower
c20642feb4 Upgrade Node.js from 20 to 22 LTS
Node 20 LTS reaches end-of-life April 2026. Updated all references:
- Dockerfile base image to node:22
- All GitHub Actions workflows to Node 22
- Bumped actions/checkout and actions/setup-node to v4 where outdated
- Added .nvmrc file for local development

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-15 10:46:54 -08:00
Matt Isenhower
055fa35b84 Fix non-breaking security vulnerabilities (40 → 9 remaining)
Updated transitive dependencies to resolve 31 security vulnerabilities
including critical, high, and moderate severity issues. Remaining 9
vulnerabilities require breaking major version updates (vue-i18n, vite,
threads-api) which will be addressed separately. Also updated the
browserslist database.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-15 10:46:11 -08:00
Matt Isenhower
e1bc498879 Tag me for a code review of query hash updates
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
2026-01-31 20:11:56 -08:00
Matt Isenhower
0793cde63e
Merge pull request #99 from misenhower/claude-cleanups
Claude cleanups
2026-01-31 20:11:05 -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
f45a4654d1 Extract shared cache expiry calculation to utility function
Deduplicate identical _calculateCacheExpiry methods from
SplatNet3Client and NsoClient into a shared calculateCacheExpiry
function in util.mjs.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-31 20:04:23 -08:00
Matt Isenhower
647d62dbd2 Remove dead code in GearCard and App components
Remove permanently disabled v-if="false" Order button block and
its unused SquidTape import from GearCard. Remove unnecessary
try-catch around mobile browser detection in App.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-31 20:04:14 -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
ca632864f8 Add error handling and media validation to social media clients
Wrap send() methods in try-catch with descriptive error messages
and add early return when media is missing.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-31 20:03:56 -08:00
Matt Isenhower
c1a290e7bc Add null/bounds checks for media arrays and Splatfest results
Guard against accessing undefined media arrays in FileWriter,
ImageWriter, and protect against findIndex returning -1 in
SplatfestResultsBox.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-31 20:03:48 -08:00
Matt Isenhower
abb6eff676 Fix potential duplicate event listener in i18n initialization
Add a guard variable to prevent accumulating storage event listeners
during HMR module reloads.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-31 20:03:38 -08:00
Matt Isenhower
3053dc4cd5
Merge pull request #98 from misenhower/update-query-hashes
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
Update query hashes
2026-01-28 20:06:58 -08:00
misenhower
bf106dd8da Update query hashes 2026-01-29 02:20:12 +00:00
Matt Isenhower
8295e58127
Merge pull request #97 from misenhower/update-query-hashes
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
Update query hashes
2026-01-11 19:13:33 -08:00
misenhower
79def4da32 Update query hashes 2026-01-12 03:12:41 +00:00
Matt Isenhower
4e933667e7 Update query updater script 2026-01-11 19:11:08 -08:00
Matt Isenhower
c74c3b626e Add query hash utility 2026-01-11 19:09:24 -08:00
Matt Isenhower
ab6d91d0fc Disable query hash updater for now 2026-01-11 09:54:26 -08:00
Matt Isenhower
e084122255 Update query hashes 2026-01-11 09:53:16 -08:00
Matt Isenhower
a19b817630 Update nxapi
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
Update query hashes / check-and-create-pr (push) Has been cancelled
2025-05-01 09:17:33 +09:00
Matt Isenhower
1611468f33
Merge pull request #86 from Hoshimikan6490/main
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
Update Japanese translations
2025-04-04 18:11:15 -07:00
Hoshimikan6490
4082a0dd45 Fix Japanese translation mistakes 2025-03-27 10:28:07 +09:00
Hoshimikan6490
487ce58753 Update Japanese translations 2025-03-27 10:13:19 +09:00
Matt Isenhower
ccc18df431 Disable Twitter client
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
Update query hashes / check-and-create-pr (push) Has been cancelled
2025-02-25 13:06:51 -08:00
Matt Isenhower
f7f25aa854 Update screenshot footer
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
Update query hashes / check-and-create-pr (push) Has been cancelled
2024-12-21 08:02:10 -08:00
Matt Isenhower
67e6737ccb Fix time display on splatnet gear
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-14 23:33:00 -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
9eb3c4c1bc Add directory browser to assets dir 2024-12-14 08:43:55 -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
d728a584ce
Merge pull request #83 from misenhower/develop
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
Release
2024-12-06 08:37:01 -08:00
Matt Isenhower
bfb0741f44 Add data directory listing
Some checks failed
Deploy / deploy-frontend (push) Has been cancelled
Deploy / deploy-backend (push) Has been cancelled
2024-12-06 08:27:00 -08:00