# Outils de l'application web (ADR 0009) : TypeScript, Biome, Cucumber et
# dependency-cruiser, sous Node. Rien de tout cela n'est embarqué dans
# l'application : ces outils compilent, vérifient et testent.
#
# Les modules sont installés dans /opt/tools, puis rendus visibles sous
# /node_modules, à la racine du conteneur : Node et TypeScript les trouvent en
# remontant depuis le dépôt monté sous /src, sans node_modules dans le dépôt.
# (npm refuse d'installer directement à la racine.)
#
# Versions figées, publiées depuis plus de deux semaines au 2026-11-02.
# Cucumber reste en 12.x : la 13 charge des modules ES avec require(), ce que
# Node 22.11 ne fait pas sans option (il faut Node 22.12).
FROM node:22.11.0-alpine3.20

WORKDIR /opt/tools
RUN npm install --no-audit --no-fund --save-exact \
	typescript@6.0.3 \
	@types/node@22.20.5 \
	@biomejs/biome@2.5.15 \
	@cucumber/cucumber@12.9.0 \
	dependency-cruiser@18.6.0 \
	&& npm cache clean --force \
	&& ln -s /opt/tools/node_modules /node_modules

ENV PATH="/opt/tools/node_modules/.bin:${PATH}"
