Standardize monorepo pipeline: test, lint, typecheck across all workspaces

Previously only 2-3 workspaces participated in each turbo task. This
expands test, lint, and typecheck to cover all 11 workspaces with
parallel execution and caching.

Test pipeline:
- Move from single root vitest to per-workspace test scripts via turbo
- Shared vitest config (vitest.shared.ts) with passWithNoTests
- Per-workspace configs re-export the shared base
- Mobile uses Jest (jest-expo + React Native Testing Library)
- Add node-environment GPX tests verifying linkedom fallback
- Add i18n mobile init tests
- Exclude apps/mobile from root vitest (uses Jest separately)

Lint pipeline:
- Add eslint lint script to all 9 previously unlinted workspaces
- Standardize all scripts to "eslint ." with shared root config
- Add .expo/ to global ESLint ignores
- Fix lint errors: unused imports in api/types, export parseGpx

Typecheck pipeline:
- Add "typecheck": "tsc" to all 8 packages
- Add @types/node (catalog) to gpx and db packages
- Fix mobile app.config.ts: remove deprecated experiments.monorepo
  and newArchEnabled (both default in Expo SDK 55)
- Add allowImportingTsExtensions to mobile tsconfig

Shared package compatibility (mobile-app Phase 1.3):
- Add linkedom as explicit dependency to @trails-cool/gpx
- Add initI18nMobile() export to @trails-cool/i18n
- Confirm @trails-cool/types is pure interfaces (no DOM deps)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
Ullrich Schäfer 2026-04-13 00:00:25 +02:00
parent 423499d21d
commit 2ac4014521
No known key found for this signature in database
GPG key ID: A32FF691A0F752D9
41 changed files with 1787 additions and 36 deletions

View file

@ -4,6 +4,11 @@
"version": "0.0.1",
"type": "module",
"main": "src/index.ts",
"scripts": {
"test": "vitest run",
"lint": "eslint .",
"typecheck": "tsc"
},
"dependencies": {
"zod": "^3.25.0"
}

View file

@ -13,22 +13,16 @@ import {
TokenExchangeRequestSchema,
TokenResponseSchema,
DeviceSchema,
DeviceListResponseSchema,
// Routes
RouteSummarySchema,
RouteDetailSchema,
RouteListResponseSchema,
CreateRouteRequestSchema,
UpdateRouteRequestSchema,
ComputeRouteRequestSchema,
// Activities
ActivitySummarySchema,
ActivityDetailSchema,
ActivityListResponseSchema,
CreateActivityRequestSchema,
// Uploads
PresignedUploadRequestSchema,
PresignedUploadResponseSchema,
} from "./index.ts";
describe("API_VERSION", () => {

View file

@ -0,0 +1 @@
export { default } from "../../vitest.shared.ts";