GET /shopping-list?date= (shopping-list.service.ts/.routes.ts) somme les ingrédients de chaque recette planifiée sur la semaine, mis à l'échelle par les portions de chaque créneau (PlanningItem.portions / Recipe.portions), regroupés par paire (ingredientId, unitId) — jamais null contrairement à GET /planning, une semaine vide redescend en items: []. Côté web, ShoppingListPage rend cette liste groupée par rayon (même IngredientCategory que IngredientPicker), triée alphabétiquement en français à l'intérieur d'un rayon (shopping-list.ts, logique pure extraite du composant). WeekNavigator (flèches + calendrier) est extrait de PlanningPage vers features/planning/ pour être partagé entre les deux pages ; ses libellés migrent de planning.* vers common.weekNav.*/ common.calendar.*/common.days.*, plus génériques pour une page qui n'est plus seulement le planning. ComingSoonPage retiré (plus aucun appelant, Liste de courses avait le dernier stub restant). Tests : Mocha (agrégation, mise à l'échelle par portions, unités non fusionnées) + Cucumber (shopping-list.feature : liste vide, groupement/tri, navigation de semaine) + mise à jour de layout.cy.ts/planning-page.cy.ts pour le nouveau rendu. Co-authored-by: Claude Sonnet 5 <noreply@anthropic.com>
28 lines
1.2 KiB
TypeScript
28 lines
1.2 KiB
TypeScript
// Public entry point of the code shared between apps/api and apps/web.
|
|
// Anything exported here is part of the cross-app contract — keep it
|
|
// intentional (types, validation schemas, error codes), not an implementation
|
|
// detail specific to one side.
|
|
|
|
export * from "./data/catalog-labels-en.js";
|
|
export * from "./data/catalog-labels-fr.js";
|
|
export * from "./errors/error-codes.js";
|
|
export * from "./schemas/account.js";
|
|
export * from "./schemas/auth.js";
|
|
export * from "./schemas/household.js";
|
|
export * from "./schemas/planning.js";
|
|
export * from "./schemas/preferences.js";
|
|
export * from "./schemas/profile.js";
|
|
export * from "./schemas/recipe.js";
|
|
export * from "./schemas/shopping-list.js";
|
|
export * from "./schemas/sources.js";
|
|
export * from "./schemas/tech-step-worker.js";
|
|
export * from "./tools/assert-is-never.js";
|
|
export * from "./types/household.js";
|
|
export * from "./types/planning.js";
|
|
export * from "./types/preferences.js";
|
|
export * from "./types/recipe.js";
|
|
export * from "./types/reference.js";
|
|
export * from "./types/shopping-list.js";
|
|
export * from "./types/sources.js";
|
|
export * from "./types/tech-step-worker.js";
|
|
export * from "./types/user-profile.js";
|