104 Commits

Author SHA1 Message Date
Adaline Simonian
23a3862ca0
test: introduce snapshot-based smoke tests
- Adds a new test suite with Docker-based smoke tests for all locales.
  Can be run using the ./smoketest.sh script.
- Replaces all calls to Math.random() with a new helper that returns 0.5
  in snapshot testing mode, ensuring deterministic snapshots.
- Similarly replaces all calls to new Date() and Date.now() with new
  helpers that return a fixed date in snapshot testing mode.
- Replaces checks against NODE_ENV with APP_ENV, to ensure that the
  bundles can be built with Nuxt for testing without losing code that
  would otherwise be stripped out by production optimizations.
- Adds a database init script that can be used to initialize the
  database with a single admin user and a long-lived JWT token for use
  in automation tests.
- Adds a JWT decoding/encoding CLI tool for debugging JWTs.

Note: Snapshots are not checked in, and must be generated manually. See
test/__snapshots__/.gitignore for more information.
2025-02-02 23:11:19 -08:00
Valentyne Stigloher
00acc8d028 (nuxt) add new dependencies trigerring a reload to optimizeDeps.include 2025-01-24 16:25:26 +01:00
Valentyne Stigloher
5fe42b4387 (nuxt) replace symlink ~/public/docs-local with dynamic public assets configuration 2025-01-19 21:24:57 +01:00
Valentyne Stigloher
75dde4c2b3 (nuxt) replace symlink ~/public/img-local with dynamic public assets configuration 2025-01-19 21:24:57 +01:00
Adaline Simonian
979aa097c7
feat: macrolanguage landing page for no locale
Auto-redirects:
- if the page requested is a user profile, and the user has one profile
  out of the multiple individual languages, to the one profile that was
  found
- otherwise based on user's accept-language header
- if all else fails, shows language selection landing page
2025-01-15 16:18:01 -08:00
Valentyne Stigloher
bc6dc8d0cd (dependencies) upgrade nuxt to 3.15 2024-12-29 13:56:57 +01:00
Valentyne Stigloher
4a27f81e90 (nuxt) update @floating-ui/vue dependency name in optimizeDeps 2024-11-10 21:59:56 +01:00
Valentyne Stigloher
19e230207d (nuxt) disable pwa during development as this causes unexpected redirects in some cases 2024-11-10 21:59:56 +01:00
Valentyne Stigloher
43ad5b3ec6 (nuxt) disable inline styles as our stylesheets are around 300 kB and this makes the HTML quite large 2024-11-10 21:59:56 +01:00
Valentyne Stigloher
065d944f65 (blog) make blog.atom a server route to exclude its dependencies from client bundle 2024-11-10 21:59:56 +01:00
Valentyne Stigloher
3e5a0b12f2 (dependencies) replace jsonwebtoken with jose which does not need crypto polyfill 2024-11-10 21:59:56 +01:00
Valentyne Stigloher
b25afefc49 (fmt) 2024-10-29 10:56:32 +01:00
Valentyne Stigloher
6ec5607d38 (lint) upgrade to ESLint 9 2024-10-29 10:56:32 +01:00
Valentyne Stigloher
4cc6322bae (test) prevent Nuxt reload when tests are running 2024-10-01 16:04:09 +02:00
Valentyne Stigloher
7aaa57880d (nuxt) use name of routes / pages instead of building urls as this breaks sometimes when encodeURIComponent is used (and it’s shorter) 2024-09-20 22:53:57 +02:00
Valentyne Stigloher
db8a6d21cf (nuxt) disable csrf
reverts commit 6825cf78217f14bb709a96b341d35514f1fbbcad.
2024-09-14 15:08:34 +02:00
Valentyne Stigloher
e971d7d4cd (nuxt) include dependencies triggering optimization reload into vite.optimize.include to prevent frequent refreshes after first start 2024-09-12 10:11:25 +02:00
Andrea Vos
47338e6415 (nuxt) fix ignorePrefix / missing -pl-* flags 2024-09-12 10:11:25 +02:00
Valentyne Stigloher
051784b5da (nuxt) use dotenv closure to ensure that env variables on the server are set during production runtime 2024-09-12 10:11:25 +02:00
Valentyne Stigloher
8c554a38fd (test) use nuxt environment for integrated pages testing 2024-09-12 10:11:25 +02:00
Valentyne Stigloher
55050c658f (nuxt) move routes to pages for usage of definePageMeta 2024-09-12 10:11:25 +02:00
Valentyne Stigloher
7a76fbd4e6 (nuxt) move error hook to sentry plugin, remove listening hook as there is no easy way to detect the port 2024-09-12 10:11:25 +02:00
Valentyne Stigloher
5d9a63bc14 (nuxt) migrate loading template when SSR is disabled 2024-09-12 10:11:25 +02:00
Valentyne Stigloher
c555a8468b (nuxt) load apple private key directly where needed 2024-09-12 10:11:25 +02:00
Valentyne Stigloher
6825cf7821 (nuxt) replace @privyid/nuxt-csrf with nuxt-csurf 2024-09-12 10:11:25 +02:00
Valentyne Stigloher
012d854474 (nuxt) replace @nuxtjs/pwa with @vite-pwa/nuxt 2024-09-12 10:11:25 +02:00
Valentyne Stigloher
26688dd7e9 (nuxt) configure postcss to enable RTL stylings 2024-09-12 10:11:25 +02:00
Valentyne Stigloher
1f6a48900b (test) migrate from jest to vitest for keep them running and more integrated testing 2024-09-12 10:11:25 +02:00
Valentyne Stigloher
b0a2973d76 (nuxt) migrate server/no-ssr.ts 2024-09-12 10:11:25 +02:00
Valentyne Stigloher
d977d67c58 (nuxt) migrate middleware/atom.js 2024-09-12 10:11:25 +02:00
Valentyne Stigloher
433de45bfb (nuxt) use middleware for internal redirects 2024-09-12 10:11:25 +02:00
Valentyne Stigloher
38a307d76b (nuxt) replace @nuxtjs/sentry with plugins
https://www.lichter.io/articles/nuxt3-sentry-recipe/
2024-09-12 10:11:25 +02:00
Valentyne Stigloher
04aaaaec9c (nuxt) replace vue-plausible with @nuxtjs/plausible 2024-09-12 10:11:25 +02:00
Valentyne Stigloher
5137411736 (vue) configure whitespace to 'preserve' to have the same behavior as in Vue 2, until we properly migrate this 2024-09-12 10:11:25 +02:00
Valentyne Stigloher
3b79888d1b (nuxt) replace process.env.JSONS with dynamic import 2024-09-12 10:11:25 +02:00
Valentyne Stigloher
8b58541079 (nuxt) replace process.env replacement with runtimeConfig.public 2024-09-12 10:11:25 +02:00
Valentyne Stigloher
4e9cd69ff8 (vue) replace vuejs-datepicker with @vuepic/vue-datepicker 2024-09-12 10:11:25 +02:00
Valentyne Stigloher
ec73f288dd (nuxt) replace $axios with useFetch, useAsyncData or $fetch
https://nuxt.com/docs/getting-started/data-fetching
2024-09-12 10:11:25 +02:00
Valentyne Stigloher
f34ce40549 (nuxt) replace $cookies with useCookie 2024-09-11 21:29:35 +02:00
Valentyne Stigloher
084df0fdf1 (vue) replace process.env.LOGO with raw import 2024-09-11 21:29:35 +02:00
Valentyne Stigloher
f8aa916f85 (refactor) replace createRequire with import assertions 2024-09-11 21:29:35 +02:00
Valentyne Stigloher
30c27846ea (nuxt) move head information from nuxt.config.ts to app.vue to have better support for devtools displaying them 2024-09-11 21:29:35 +02:00
Valentyne Stigloher
4d2d031bef (nuxt) replace head with useHead
https://nuxt.com/docs/migration/meta
2024-09-11 21:29:35 +02:00
Valentyne Stigloher
1f953117fa (refactor) migrate from vuex to pinia 2024-09-11 21:29:35 +02:00
Valentyne Stigloher
a99199f322 (nuxt) integrate express as server handler while preventing Nuxt from scanning server directory 2024-09-11 21:29:35 +02:00
Valentyne Stigloher
481a395f30 (nuxt) replace Webpack with Vite 2024-09-11 21:29:35 +02:00
Valentyne Stigloher
6090078689 (nuxt) use useConfig composable instead of $config global as this can only be controlled via runtimeConfig and is better protected than in Nuxt 2 2024-09-11 21:29:35 +02:00
Valentyne Stigloher
674a63caec (nuxt) enable devtools 2024-09-11 21:29:23 +02:00
Valentyne Stigloher
348402b4a6 (nuxt) rename static directory to public 2024-09-11 21:29:22 +02:00
Valentyne Stigloher
82051afc2f (nuxt) migrate plugins 2024-09-11 21:29:21 +02:00