mirror of
https://github.com/mauriceboe/TREK.git
synced 2026-10-19 05:26:47 +00:00
de128cc4ae
Unfinished, continued in the next session: t() resolves key.one/.few/... by the language's own plural rule, the parity check knows which forms a language needs, 16 singular/plural key pairs are merged in every locale and every count === 1 branch in the client uses the plural form. Still open: the forms each locale needs for the remaining count strings, the two new labels in every locale, and 35 tests that expect the old English wording.
110 lines
4.6 KiB
TypeScript
110 lines
4.6 KiB
TypeScript
/**
|
|
* @trek/shared — single source of truth for TREK's API contracts.
|
|
*
|
|
* Zod schemas defined here are consumed by BOTH the server (validation +
|
|
* inferred DTO types) and the client (typed requests/responses). A route is
|
|
* only considered "migrated" once its contract lives in this package.
|
|
*
|
|
* Layout: one folder per domain (e.g. src/trip/trip.schema.ts), plus the
|
|
* domain-agnostic primitives below. See the board card "Module blueprint".
|
|
*/
|
|
export * from './common/primitives.schema';
|
|
export * from './common/pagination.schema';
|
|
|
|
// Domain contracts
|
|
export * from './weather/weather.schema';
|
|
export * from './public-api/public-api.schema';
|
|
export * from './airport/airport.schema';
|
|
export * from './config/config.schema';
|
|
export * from './system-notice/system-notice.schema';
|
|
export * from './maps/maps.schema';
|
|
export * from './maps/place-shadow.schema';
|
|
export * from './maps/route-usage.schema';
|
|
export * from './category/category.schema';
|
|
export * from './tag/tag.schema';
|
|
export * from './notification/notification.schema';
|
|
export * from './memories/memories.schema';
|
|
export * from './atlas/atlas.schema';
|
|
export * from './vacay/vacay.schema';
|
|
export * from './packing/packing.schema';
|
|
export * from './packing/packed-count';
|
|
export * from './todo/todo.schema';
|
|
export * from './budget/budget.schema';
|
|
export * from './budget/receipt-scan.schema';
|
|
export * from './reservation/reservation.schema';
|
|
export * from './reservation/ki-reservation.schema';
|
|
export * from './datetime/datetime-normalize';
|
|
export * from './airtrail/airtrail.schema';
|
|
export * from './dawarich/dawarich.schema';
|
|
export * from './docsync/docsync.schema';
|
|
export * from './day/day.schema';
|
|
export * from './day/note-colors';
|
|
export * from './day/chrono-order';
|
|
export * from './day/stay-bookends';
|
|
export * from './assignment/assignment.schema';
|
|
export * from './place/place.schema';
|
|
export * from './place/place-match';
|
|
export * from './place/place-website';
|
|
export * from './roadtrip/roadtrip.schema';
|
|
export * from './place/track-colors';
|
|
export * from './tours/tours.schema';
|
|
export * from './tours/tours.metrics';
|
|
export * from './geo/haversine';
|
|
export * from './collection/collection.schema';
|
|
export * from './collection/collection-file.schema';
|
|
export * from './trip/trip.schema';
|
|
export * from './place/place-hours';
|
|
export * from './trip/day-grid';
|
|
export * from './trip-invite/trip-invite.schema';
|
|
export * from './collab/collab.schema';
|
|
export * from './file/file.schema';
|
|
export * from './journey/journey.schema';
|
|
export * from './book/book.schema';
|
|
export * from './book/journey-stats.schema';
|
|
export * from './book/book-store.schema';
|
|
export * from './share/share.schema';
|
|
export * from './storage/storage.schema';
|
|
export * from './settings/settings.schema';
|
|
export * from './appearance/appearance.schema';
|
|
export * from './backup/backup.schema';
|
|
export * from './auth/auth.schema';
|
|
export * from './auth/password-policy';
|
|
export * from './oidc/oidc.schema';
|
|
export * from './oauth/oauth.schema';
|
|
export * from './admin/admin.schema';
|
|
|
|
// Realtime WS event contract registry (event names + payload schemas)
|
|
export * from './realtime/events.schema';
|
|
export * from './roadtrip/day-boundary.schema';
|
|
|
|
// Sanitisation helpers — used by the client today, scoped here so the server
|
|
// has them ready if rich-text input ever ships.
|
|
export * from './sanitize/sanitize';
|
|
|
|
// WGS-84 ⇄ GCJ-02. Shared because the two boundaries that need it sit on
|
|
// opposite sides: the Amap provider on the server, the Leaflet CRS on the client.
|
|
export * from './geo/gcj02';
|
|
|
|
// i18n registry (language list + pure helpers — no locale data)
|
|
export * from './i18n/languages';
|
|
export * from './i18n/plural';
|
|
|
|
// Plugin permission list, generated from the host's protocol/envelope.ts
|
|
// (server/scripts/gen-plugin-facts.ts). The admin consent screens render from it.
|
|
export * from './plugin-permissions';
|
|
// Plugin settings contracts: the settings-field descriptor + admin instance-config wire shapes.
|
|
export * from './plugins/plugins.schema';
|
|
// Plugin POI categories (#1781): the declared category, the icon allow-list and GET /api/plugin-pois.
|
|
export * from './plugins/plugin-poi-facts';
|
|
export * from './plugins/plugin-poi.schema';
|
|
// Plugin search providers (#2221): the row GET /api/plugin-search and its typed-ahead twin answer with.
|
|
export * from './plugins/plugin-search.schema';
|
|
export * from './roadtrip/preferences.schema';
|
|
export * from './roadtrip/hazards.schema';
|
|
export * from './roadtrip/planning.schema';
|
|
export * from './roadtrip/search.schema';
|
|
export * from './roadtrip/google-import.schema';
|
|
export * from './roadtrip/charging.schema';
|
|
|
|
export * from './vacay/school-holiday-catalog.schema';
|