build(server): lint:boundaries counts the RPC and MCP layers as domains and sees getRepository calls

src/nest-rpc, src/nest-mcp and src/mcp import domains and are imported by them, but the domain map only knew src/nest, so their edges dropped out of domainCycles and their repository injections out of foreignRepositories. Each layer now counts as one domain. The repository rule reads the syntax tree for @InjectRepository(X) and for getRepository(X) on an EntityManager, so a comment no longer counts and a foreign read through the EntityManager no longer passes. The baseline takes the cycles and the repository reaches the wider view finds; settings -> Users goes, it was a comment.
This commit is contained in:
Maurice
2026-10-10 19:46:25 +02:00
parent 0f6ae8b928
commit ebd8a4f8c9
5 changed files with 230 additions and 16 deletions
+116 -2
View File
@@ -2,27 +2,106 @@
"fileCycles": [],
"domainCycles": [
"accommodations -> assignments",
"accommodations -> nest-rpc",
"accommodations -> places",
"assignments -> days",
"assignments -> journey",
"assignments -> nest-rpc",
"atlas -> nest-rpc",
"auth -> budget",
"auth -> files",
"auth -> plugins",
"budget -> nest-rpc",
"calendar -> days",
"calendar -> reservations",
"categories -> nest-rpc",
"collab -> files",
"collab -> nest-rpc",
"collections -> nest-rpc",
"collections -> places",
"day-notes -> nest-rpc",
"days -> accommodations",
"days -> assignments",
"days -> nest-rpc",
"days -> places",
"files -> nest-rpc",
"geo -> maps",
"integrations -> assignments",
"integrations -> atlas",
"integrations -> journey",
"integrations -> places",
"integrations -> reservations",
"journey -> atlas",
"journey -> files",
"journey -> nest-rpc",
"maps -> geo",
"memories -> photos",
"nest-rpc -> plugins",
"packing -> nest-rpc",
"photos -> memories",
"places -> accommodations",
"places -> assignments",
"places -> atlas",
"places -> journey",
"places -> nest-rpc",
"plugins -> accommodations",
"plugins -> assignments",
"plugins -> atlas",
"plugins -> budget",
"plugins -> categories",
"plugins -> collab",
"plugins -> collections",
"plugins -> day-notes",
"plugins -> days",
"plugins -> files",
"plugins -> journey",
"plugins -> nest-rpc",
"plugins -> packing",
"plugins -> places",
"plugins -> reservations",
"plugins -> tags",
"plugins -> todo",
"plugins -> trips",
"plugins -> vacay",
"plugins -> weather",
"reservations -> accommodations",
"reservations -> assignments",
"reservations -> budget",
"reservations -> days",
"reservations -> integrations",
"reservations -> nest-rpc",
"tags -> nest-rpc",
"todo -> nest-rpc",
"trip-members -> auth",
"trip-members -> budget",
"trip-members -> trips",
"trip-read-model -> accommodations",
"trip-read-model -> budget",
"trip-read-model -> collab",
"trip-read-model -> days",
"trip-read-model -> files",
"trip-read-model -> packing",
"trip-read-model -> places",
"trip-read-model -> reservations",
"trip-read-model -> todo",
"trip-read-model -> trip-members",
"trip-read-model -> trips",
"trips -> accommodations",
"trips -> budget",
"trips -> calendar",
"trips -> collab",
"trips -> days",
"trips -> files",
"trips -> nest-rpc",
"trips -> packing",
"trips -> places",
"trips -> reservations",
"trips -> todo",
"trips -> trip-members",
"trips -> trip-read-model"
"trips -> trip-read-model",
"trips -> vacay",
"vacay -> nest-rpc",
"weather -> nest-rpc"
],
"sharedImportsDomain": [
"nest/common/idempotency-cleanup.job.ts -> nest/audit/audit-log.logger.ts",
@@ -61,6 +140,7 @@
"journey -> storage/storage-upload.factory.ts",
"maps -> geo/nominatim.client.ts",
"maps -> settings/instance-api-keys.ts",
"nest-rpc -> plugins/protocol/envelope.ts",
"place-enrichment -> maps/maps.helpers.ts",
"place-enrichment -> maps/trek-places.client.ts",
"places -> atlas/atlas-geo.ts",
@@ -144,8 +224,10 @@
"auth -> TripMembers (owned by trip-membership)",
"auth -> Trips (owned by trips)",
"auth-core -> AppSettings (owned by settings)",
"auth-core -> UserSessions (owned by sessions)",
"auth-core -> Users (owned by auth)",
"auth-core -> WebauthnCredentials (owned by auth)",
"backup -> UserSessions (owned by sessions)",
"booking-import -> Days (owned by days)",
"booking-import -> Reservations (owned by reservations)",
"budget -> Places (owned by places)",
@@ -164,6 +246,7 @@
"collections -> TripMembers (owned by trip-membership)",
"collections -> Trips (owned by trips)",
"collections -> Users (owned by auth)",
"common -> Users (owned by auth)",
"day-notes -> Days (owned by days)",
"days -> DayAccommodations (owned by accommodations)",
"days -> DayAssignments (owned by assignments)",
@@ -184,6 +267,7 @@
"files -> DayAssignments (owned by assignments)",
"files -> Places (owned by places)",
"files -> Reservations (owned by reservations)",
"files -> UserSessions (owned by sessions)",
"files -> Users (owned by auth)",
"google-quota -> AppSettings (owned by settings)",
"integrations -> AppSettings (owned by settings)",
@@ -210,6 +294,8 @@
"memories -> TripPhotos (owned by photos)",
"memories -> Trips (owned by trips)",
"memories -> Users (owned by auth)",
"nest-rpc -> Trips (owned by trips)",
"nest-rpc -> Users (owned by auth)",
"notifications -> AppSettings (owned by settings)",
"notifications -> Settings (owned by settings)",
"notifications -> TodoItems (owned by todo)",
@@ -235,6 +321,10 @@
"places -> Tags (owned by tags)",
"places -> TripMembers (owned by trip-membership)",
"places -> Trips (owned by trips)",
"platform -> Photos (owned by photos)",
"platform -> ShareTokens (owned by share)",
"platform -> UserSessions (owned by sessions)",
"platform -> Users (owned by auth)",
"plugins -> DayAccommodations (owned by accommodations)",
"plugins -> Days (owned by days)",
"plugins -> JourneyEntries (owned by journey)",
@@ -243,6 +333,7 @@
"plugins -> Reservations (owned by reservations)",
"plugins -> Settings (owned by settings)",
"plugins -> Trips (owned by trips)",
"plugins -> UserSessions (owned by sessions)",
"plugins -> Users (owned by auth)",
"public-api -> BucketList (owned by atlas)",
"public-api -> DayNotes (owned by day-notes)",
@@ -274,7 +365,6 @@
"roadtrip -> Users (owned by auth)",
"route-usage -> AppSettings (owned by settings)",
"school-holidays -> VacayHolidayCalendars (owned by vacay)",
"settings -> Users (owned by auth)",
"share -> BudgetItems (owned by budget)",
"share -> Categories (owned by categories)",
"share -> CollabMessages (owned by collab)",
@@ -299,6 +389,30 @@
"trip-members -> Users (owned by auth)",
"trip-membership -> Trips (owned by trips)",
"trip-read-model -> Trips (owned by trips)",
"trips -> AssignmentParticipants (owned by assignments)",
"trips -> BudgetCategoryOrder (owned by budget)",
"trips -> BudgetItemMembers (owned by budget)",
"trips -> BudgetItemPayers (owned by budget)",
"trips -> BudgetItems (owned by budget)",
"trips -> DayAccommodations (owned by accommodations)",
"trips -> DayAssignments (owned by assignments)",
"trips -> DayNotes (owned by day-notes)",
"trips -> Days (owned by days)",
"trips -> JourneyEntries (owned by journey)",
"trips -> PackingBags (owned by packing)",
"trips -> PackingItems (owned by packing)",
"trips -> Places (owned by places)",
"trips -> Reservations (owned by reservations)",
"trips -> RoadtripDayBoundaries (owned by roadtrip)",
"trips -> RoadtripDayTracks (owned by roadtrip)",
"trips -> RoadtripPreferences (owned by roadtrip)",
"trips -> RoadtripVias (owned by roadtrip)",
"trips -> Tags (owned by tags)",
"trips -> TodoItems (owned by todo)",
"trips -> TourWaypoints (owned by tours)",
"trips -> Tours (owned by tours)",
"trips -> TripMembers (owned by trip-membership)",
"trips -> Users (owned by auth)",
"unsplash -> AppSettings (owned by settings)",
"unsplash -> Users (owned by auth)",
"vacay -> SchoolHolidayRegions (owned by school-holidays)"