Restructures into apps/ssp + apps/behandelportal (two Angular projects) plus libs/shared + libs/beheer (cross-app libraries), replacing WP-61's separate sibling repo. That split had already produced real drift: a hand-vendored copy of the backend's OpenAPI doc, a shared/ui+layout tree forked and silently diverging (7 files), and beheer + the styles.scss token bridge duplicated byte-for-byte across both repos. - git mv the SSP's src/app/* into apps/ssp/; fold shared/, beheer/, environments/, the Storybook docs/*.mdx, and styles.scss into libs/shared + libs/beheer (all confirmed identical between the two repos before merging). auth stays deliberately duplicated per ADR-0002 (actor-specific, expected to diverge) - amended there. - One generated API client (libs/shared), no more vendored swagger.json. - .dependency-cruiser split into a base factory + one config per app, and Storybook into .storybook-ssp/.storybook-behandelportal - both forced by the @auth/* alias resolving to different directories per app. - SiteHeaderComponent/ShellComponent gained HEADER_NAV_ITEMS/ HEADER_ADMIN_LINKS/DEBUG_PANEL injection tokens so each app supplies its own nav/admin-links/dev-panel instead of one being hardcoded. - CLAUDE.md, ARCHITECTURE.md, dependencies.md, and ADR-0002 updated; WP-67 backlog entry documents the full decision trail. npm run ci green (lint, dep:check x2, 360 tests across ssp/ behandelportal/shared/beheer, both localized builds, backend tests, snippet + api-client drift); both dev servers, both Storybook instances, and docker compose verified working. The old sibling repo (/home/eho/repos/behandelportal) is left untouched, not deleted. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
21 lines
991 B
Bash
Executable File
21 lines
991 B
Bash
Executable File
#!/usr/bin/env bash
|
|
# WP-02 token guard: fail if any *.component.ts hardcodes a colour (hex/rgb/hsl)
|
|
# instead of a --rhc-*/--app-* design token. Palette values live ONLY in the
|
|
# styles.scss token bridge (the one exempt file — it IS the bridge).
|
|
#
|
|
# px/rem are deliberately NOT grepped: too many false positives (font sizes,
|
|
# transforms, media queries). Raw border widths are fixed by hand and mapped to
|
|
# --rhc-border-width-*; see docs/backlog/WP-02-check-tokens.md.
|
|
#
|
|
# Escape hatch: put a `token-ok` marker + reason on a line to suppress a justified
|
|
# false positive (a colour word inside a comment or a data-URI). Keep the bar high.
|
|
set -uo pipefail
|
|
|
|
hits=$(grep -rnE '#[0-9a-fA-F]{3,8}\b|rgba?\(|hsla?\(' apps libs --include='*.component.ts' | grep -v 'token-ok' || true)
|
|
if [ -n "$hits" ]; then
|
|
echo "$hits"
|
|
echo 'FAIL: hardcoded colours in components (use --rhc-*/--app-* tokens, or add a `token-ok` marker + reason)'
|
|
exit 1
|
|
fi
|
|
echo 'OK: no hardcoded colours in components'
|