Commit Graph

57 Commits

Author SHA1 Message Date
Matt Isenhower
7084b3c5ae Set up Vitest and CI workflow for unit tests
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-15 16:45:20 -08:00
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
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
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
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
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
10c082a1c2 Retrieve localizations in parallel 2024-11-20 21:13:40 -08:00
Matt Isenhower
34c2d65b15 Download images concurrently 2024-11-17 21:16:24 -08:00
Matt Isenhower
cb76f65783 Add S3 syncer 2024-11-17 19:35:00 -08:00
Matt Isenhower
35316e02f2 Use Browserless for capturing screenshots 2024-11-17 16:29:00 -08:00
Matt Isenhower
2743ca73bd Update Twitter API client
Some checks failed
Build frontend / build (20.x) (push) Has been cancelled
Fix code styles / build (push) Has been cancelled
2024-11-03 14:53:28 -08:00
Matt Isenhower
950d86ea7e Update Pinia 2024-09-13 14:32:59 -07:00
Matt Isenhower
7ce99503e4 Prefer aliased paths 2024-03-17 10:28:59 -07:00
Matt Isenhower
f2b332795f Update Mastodon client 2024-03-17 09:55:39 -07:00
Matt Isenhower
a09a2c3f09 Add import config 2024-03-17 09:27:09 -07:00
Matt Isenhower
3a9b84d4a2 Improve eslint config 2024-03-16 22:31:00 -07:00
Matt Isenhower
64762a915d Update atproto package 2024-03-16 21:44:59 -07:00
Matt Isenhower
2a2dd6ca10 Update JS dependencies 2024-03-16 21:23:05 -07:00
Matt Isenhower
077cd4e611 Update dependencies 2023-11-29 20:26:53 -08:00
Matt Isenhower
9894ec30b1 Add Sentry 2023-08-03 08:52:01 -07:00
Matt Isenhower
541a14b607 Update threads-api 2023-07-23 08:55:08 -07:00
Jack Matthews
9a493dea14
Switch to threads-api from npm 2023-07-12 16:15:40 -04:00
Jack Matthews
c17c7545b5
Initial Threads updater 2023-07-12 11:48:53 -04:00
Matt Isenhower
ec783f52ec Add S3 data archiver 2023-05-30 20:17:32 -07:00
Matt Isenhower
138255a973 Add Bluesky bot 2023-04-25 19:49:02 -07:00
Matt Isenhower
b559813e56 Add Mastodon client 2022-12-11 14:40:59 -08:00
Matt Isenhower
bdf53ea3ac Update nxapi 2022-11-30 18:13:37 -08:00
Samuel Elliott
110314ee17
Add Splatfest calendar feeds 2022-11-07 18:45:07 +00:00
Matt Isenhower
af04cdce39 Add a popup dialog when clicking stage images 2022-10-29 13:56:28 -07:00
Matt Isenhower
947e003e51 Add a modal dialog component 2022-10-28 16:53:11 -07:00
Matt Isenhower
47d0abb747 Retrieve localized strings from SplatNet 2022-10-17 20:32:38 -07:00
Toinane
8c5c534cc1 feat: add i18n and french lang 2022-10-07 16:31:44 +02:00
Matt Isenhower
63d10ddc69 Update JS dependencies 2022-09-20 16:17:51 -07:00
Matt Isenhower
67387f9775 Download images from SplatNet 2022-09-10 14:32:23 -07:00
Matt Isenhower
231681bdac Improve logging 2022-09-10 12:56:21 -07:00
Matt Isenhower
314d61ecb4 Move cache files to their own directory 2022-09-09 14:55:30 -07:00