diff --git a/server/docs/nest-migration-history.md b/server/docs/nest-migration-history.md index 8ecb54863..65e40fec0 100644 --- a/server/docs/nest-migration-history.md +++ b/server/docs/nest-migration-history.md @@ -64,7 +64,9 @@ remains as the platform underneath `@nestjs/platform-express`. dispatches, audits and maps errors. `PluginHostDepsFactory` — the 26-argument wiring sheet named throughout the log below — is now `PluginRpcHostFactory` and injects two things. See - `plugins/host/rpc-kit/README.md`. + `src/nest-rpc/rpc-kit/README.md` (the kit, `rpc-params`, `rpc-errors` and + `PluginGuards` moved to `src/nest-rpc/`, a kernel layer beside `src/nest-mcp/`, + so a domain's `*.rpc.ts` no longer depends on the plugins domain). - **Plugin module split (complete):** `PluginsModule` was 21 controllers, 24 domain imports and 10 providers in one class, so `AdminModule` importing it for one cascade-disable call inherited the whole graph. It is now `PluginsRuntimeModule` diff --git a/server/eslint.config.mjs b/server/eslint.config.mjs index 588b79f10..7c986e4b8 100644 --- a/server/eslint.config.mjs +++ b/server/eslint.config.mjs @@ -425,55 +425,27 @@ export default tseslint.config( }, { // The plugin RPC decorator kit is written to stay extractable into its own - // package, so its dependencies are pinned to Nest plus the two host modules it - // genuinely needs. See src/nest/plugins/host/rpc-kit/README.md for what an + // package, so its dependencies are pinned to Nest plus the two plugin-domain + // files it genuinely needs. See src/nest-rpc/rpc-kit/README.md for what an // extraction would cost, and why the envelope import is the deliberate exception. - files: ['src/nest/plugins/host/rpc-kit/**/*.ts'], + files: ['src/nest-rpc/rpc-kit/**/*.ts'], rules: { - // Written as a deny list rather than an allow list on purpose: these patterns - // are gitignore-style, and a leading '**' would exclude the parent directory of - // every allowed path, which makes the '!' re-includes silently ineffective. 'no-restricted-imports': [ 'error', { patterns: [ { - group: [ - // The host modules next door. - '../rpc-host', - '../rpc-errors', - '../rpc-params', - '../rate-limit', - '../daily-budget', - '../plugin-audit', - '../plugin-jobs', - '../plugin-guards.service', - '../plugin-host-*', - // Everything one level up, in plugins/ itself. - '../../*.service', - '../../*.module', - '../../*.controller', - '../../dependencies', - '../../dev-link', - '../../kill-switch', - '../../paths', - '../../plugin-backup', - '../../signature-status', - '../../text-sanitize', - '../../install/**', - '../../registry/**', - '../../runtime/**', - '../../supervisor/**', - // The wire protocol, except the one file the kit validates against. - '../../protocol/*', - '!../../protocol/envelope', - // Anything outside the plugin subtree, and the rest of the app. - '../../../**', - '@trek/**', - 'node:*', - ], + // A regex rather than gitignore-style groups: the two allowed files sit + // under directories the rest of the rule excludes, and a gitignore + // re-include cannot reach into an excluded directory. + regex: String.raw`^\.\./(?!\.\./nest/plugins/protocol/envelope$|\.\./nest/plugins/host/plugin-data\.service$)`, message: - 'rpc-kit stays extractable: it may import @nestjs/common, @nestjs/core, its own files, and type-only from ../../protocol/envelope and ../plugin-data.service. See rpc-kit/README.md.', + 'rpc-kit stays extractable: it may import @nestjs/common, @nestjs/core, its own files, and type-only from nest/plugins/protocol/envelope and nest/plugins/host/plugin-data.service. See rpc-kit/README.md.', + }, + { + group: ['@trek/**', 'node:*'], + message: + 'rpc-kit stays extractable: it may import @nestjs/common, @nestjs/core, its own files, and type-only from nest/plugins/protocol/envelope and nest/plugins/host/plugin-data.service. See rpc-kit/README.md.', }, ], }, diff --git a/server/scripts/import-boundaries-baseline.json b/server/scripts/import-boundaries-baseline.json index bee833248..c3a2a5ee0 100644 --- a/server/scripts/import-boundaries-baseline.json +++ b/server/scripts/import-boundaries-baseline.json @@ -4,7 +4,6 @@ "accommodations -> assignments", "accommodations -> mcp-shared", "accommodations -> places", - "accommodations -> plugins", "accommodations -> realtime", "addons -> memories", "addons -> settings", @@ -23,11 +22,9 @@ "assignments -> days", "assignments -> journey", "assignments -> mcp-shared", - "assignments -> plugins", "assignments -> realtime", "atlas -> addons", "atlas -> geo", - "atlas -> plugins", "auth -> budget", "auth -> files", "auth -> maps", @@ -43,34 +40,27 @@ "booking-import -> reservations", "budget -> addons", "budget -> mcp-shared", - "budget -> plugins", "budget -> realtime", "calendar -> days", "calendar -> reservations", "categories -> mcp-shared", - "categories -> plugins", "collab -> addons", "collab -> files", "collab -> mcp-shared", "collab -> notifications", - "collab -> plugins", "collab -> realtime", "collections -> addons", "collections -> notifications", "collections -> places", - "collections -> plugins", "collections -> realtime", "day-notes -> mcp-shared", - "day-notes -> plugins", "day-notes -> realtime", "days -> accommodations", "days -> assignments", "days -> mcp-shared", "days -> places", - "days -> plugins", "days -> realtime", "files -> mcp-shared", - "files -> plugins", "files -> realtime", "geo -> maps", "integrations -> addons", @@ -87,7 +77,6 @@ "journey -> maps", "journey -> memories", "journey -> photos", - "journey -> plugins", "journey -> realtime", "journey -> settings", "llm-parse -> addons", @@ -106,7 +95,6 @@ "packing -> admin", "packing -> mcp-shared", "packing -> notifications", - "packing -> plugins", "packing -> realtime", "photos -> memories", "places -> accommodations", @@ -115,7 +103,6 @@ "places -> journey", "places -> maps", "places -> mcp-shared", - "places -> plugins", "places -> realtime", "places -> unsplash", "plugins -> accommodations", @@ -137,11 +124,9 @@ "plugins -> places", "plugins -> realtime", "plugins -> reservations", - "plugins -> tags", "plugins -> todo", "plugins -> trips", "plugins -> vacay", - "plugins -> weather", "realtime -> journey", "realtime -> plugins", "reservations -> accommodations", @@ -151,13 +136,10 @@ "reservations -> integrations", "reservations -> mcp-shared", "reservations -> notifications", - "reservations -> plugins", "reservations -> realtime", "settings -> admin", - "tags -> plugins", "todo -> addons", "todo -> mcp-shared", - "todo -> plugins", "todo -> realtime", "transit -> days", "transit -> maps", @@ -190,7 +172,6 @@ "trips -> mcp-shared", "trips -> packing", "trips -> places", - "trips -> plugins", "trips -> realtime", "trips -> reservations", "trips -> settings", @@ -203,9 +184,7 @@ "vacay -> addons", "vacay -> auth", "vacay -> notifications", - "vacay -> plugins", - "vacay -> realtime", - "weather -> plugins" + "vacay -> realtime" ], "sharedImportsDomain": [ "nest/common/idempotency-cleanup.job.ts -> nest/audit/audit-log.logger.ts", diff --git a/server/scripts/import-boundaries.mjs b/server/scripts/import-boundaries.mjs index b82379369..cff7c6eb8 100644 --- a/server/scripts/import-boundaries.mjs +++ b/server/scripts/import-boundaries.mjs @@ -80,14 +80,12 @@ export const PUBLIC_SUFFIXES = [ /** * Entry points that are public although their name does not say so: the - * plugin RPC kit every domain's *.rpc.ts is written against, and the gates - * and helpers every controller shares. Adding to this list is a design + * gates and helpers every controller shares. (The plugin RPC kit every + * domain's *.rpc.ts is written against sits outside src/nest, in + * src/nest-rpc, next to src/nest-mcp.) Adding to this list is a design * decision for review, not a way past the check. */ export const PUBLIC_FILES = [ - 'plugins/host/rpc-kit/', - 'plugins/host/rpc-params.ts', - 'plugins/host/rpc-errors.ts', 'audit/client-ip.ts', 'addons/addon-gate.ts', 'addons/mcp-addon-gate.ts', diff --git a/server/src/nest/plugins/host/plugin-guards.module.ts b/server/src/nest-rpc/plugin-guards.module.ts similarity index 83% rename from server/src/nest/plugins/host/plugin-guards.module.ts rename to server/src/nest-rpc/plugin-guards.module.ts index 450cb6a19..5e169cf35 100644 --- a/server/src/nest/plugins/host/plugin-guards.module.ts +++ b/server/src/nest-rpc/plugin-guards.module.ts @@ -1,9 +1,9 @@ import { Module } from '@nestjs/common'; import { MikroOrmModule } from '@mikro-orm/nestjs'; -import { PermissionsModule } from '../../permissions/permissions.module'; -import { AddonsModule } from '../../addons/addons.module'; -import { Users } from '../../../db/entities/Users.entity'; -import { Trips } from '../../../db/entities/Trips.entity'; +import { PermissionsModule } from '../nest/permissions/permissions.module'; +import { AddonsModule } from '../nest/addons/addons.module'; +import { Users } from '../db/entities/Users.entity'; +import { Trips } from '../db/entities/Trips.entity'; import { PluginGuards } from './plugin-guards.service'; /** diff --git a/server/src/nest/plugins/host/plugin-guards.service.ts b/server/src/nest-rpc/plugin-guards.service.ts similarity index 93% rename from server/src/nest/plugins/host/plugin-guards.service.ts rename to server/src/nest-rpc/plugin-guards.service.ts index edb095646..9e491253d 100644 --- a/server/src/nest/plugins/host/plugin-guards.service.ts +++ b/server/src/nest-rpc/plugin-guards.service.ts @@ -1,11 +1,11 @@ import { Injectable } from '@nestjs/common'; import { InjectRepository } from '@mikro-orm/nestjs'; -import { PermissionsService } from '../../permissions/permissions.service'; -import { AddonsService } from '../../addons/addons.service'; -import { Users } from '../../../db/entities/Users.entity'; -import type { UsersRepository } from '../../../db/repositories/Users.repository'; -import { Trips } from '../../../db/entities/Trips.entity'; -import type { TripsRepository } from '../../../db/repositories/Trips.repository'; +import { PermissionsService } from '../nest/permissions/permissions.service'; +import { AddonsService } from '../nest/addons/addons.service'; +import { Users } from '../db/entities/Users.entity'; +import type { UsersRepository } from '../db/repositories/Users.repository'; +import { Trips } from '../db/entities/Trips.entity'; +import type { TripsRepository } from '../db/repositories/Trips.repository'; import { BadParams, ForbiddenResource } from './rpc-errors'; import { num } from './rpc-params'; import type { PluginRpcContext } from './rpc-kit/types'; diff --git a/server/src/nest/plugins/host/rpc-errors.ts b/server/src/nest-rpc/rpc-errors.ts similarity index 100% rename from server/src/nest/plugins/host/rpc-errors.ts rename to server/src/nest-rpc/rpc-errors.ts diff --git a/server/src/nest/plugins/host/rpc-kit/README.md b/server/src/nest-rpc/rpc-kit/README.md similarity index 88% rename from server/src/nest/plugins/host/rpc-kit/README.md rename to server/src/nest-rpc/rpc-kit/README.md index ebc3f2cbb..4351e366a 100644 --- a/server/src/nest/plugins/host/rpc-kit/README.md +++ b/server/src/nest-rpc/rpc-kit/README.md @@ -2,14 +2,16 @@ Conceptually this is `trek-plugin-host`: `@PluginController`, `@PluginMethod`, `@PluginOpenMethod` and `@PluginHook`, plus the registry that binds them into the -per-plugin dispatch map. It lives inside `server/` rather than in its own workspace, +per-plugin dispatch map. It lives in `server/src/nest-rpc/`, beside `src/nest-mcp/` and +outside every domain, so a domain's `*.rpc.ts` does not depend on the plugins +domain. It is not its own workspace, and this file records why, and what extracting it later would cost. ## What the decorators buy The method-to-permission association used to exist twice: declaratively in -`METHOD_PERMISSION` (`../../protocol/envelope.ts`) and imperatively as the -`if (has('...'))` blocks in `../rpc-host.ts`, with nothing asserting they agree. +`METHOD_PERMISSION` (`src/nest/plugins/protocol/envelope.ts`) and imperatively as the +`if (has('...'))` blocks in `src/nest/plugins/host/rpc-host.ts`, with nothing asserting they agree. `protocol-paths.test.ts` checked that each method had *some* permission, never that it was *the same* permission the router gates on, and `plugin-audit.ts`'s `isAuditable` silently inherits any drift. @@ -29,7 +31,8 @@ A `@PluginMethod` declaration is checked against that table twice: The kit may import: - `@nestjs/common` and `@nestjs/core`, -- **type-only** from `../../protocol/envelope` and `../plugin-data.service`. +- **type-only** from `../../nest/plugins/protocol/envelope` and + `../../nest/plugins/host/plugin-data.service`. Nothing else. It must not reach into `rpc-host.ts`, the deps factory, the supervisor, or any domain service. `registry.ts` is the single exception that imports envelope diff --git a/server/src/nest/plugins/host/rpc-kit/decorators.ts b/server/src/nest-rpc/rpc-kit/decorators.ts similarity index 98% rename from server/src/nest/plugins/host/rpc-kit/decorators.ts rename to server/src/nest-rpc/rpc-kit/decorators.ts index d18fde004..d822a1e9f 100644 --- a/server/src/nest/plugins/host/rpc-kit/decorators.ts +++ b/server/src/nest-rpc/rpc-kit/decorators.ts @@ -1,6 +1,6 @@ import { Injectable } from '@nestjs/common'; import { addEntry, markController, type ClassRef } from './metadata'; -import type { HookKey, KnownMethod, MethodPermission, UnconditionalMethod } from '../../protocol/envelope'; +import type { HookKey, KnownMethod, MethodPermission, UnconditionalMethod } from '../../nest/plugins/protocol/envelope'; import type { PluginHookOptions, PluginRpcEntry } from './types'; /** diff --git a/server/src/nest/plugins/host/rpc-kit/metadata.ts b/server/src/nest-rpc/rpc-kit/metadata.ts similarity index 100% rename from server/src/nest/plugins/host/rpc-kit/metadata.ts rename to server/src/nest-rpc/rpc-kit/metadata.ts diff --git a/server/src/nest/plugins/host/rpc-kit/registry.service.ts b/server/src/nest-rpc/rpc-kit/registry.service.ts similarity index 100% rename from server/src/nest/plugins/host/rpc-kit/registry.service.ts rename to server/src/nest-rpc/rpc-kit/registry.service.ts diff --git a/server/src/nest/plugins/host/rpc-kit/registry.ts b/server/src/nest-rpc/rpc-kit/registry.ts similarity index 99% rename from server/src/nest/plugins/host/rpc-kit/registry.ts rename to server/src/nest-rpc/rpc-kit/registry.ts index f52c54034..0cf6bc15c 100644 --- a/server/src/nest/plugins/host/rpc-kit/registry.ts +++ b/server/src/nest-rpc/rpc-kit/registry.ts @@ -4,7 +4,7 @@ import { METHOD_PERMISSION, UNCONDITIONAL_METHODS, isKnownPermission, -} from '../../protocol/envelope'; +} from '../../nest/plugins/protocol/envelope'; import { getEntry, isPluginController, type ClassRef } from './metadata'; import type { PluginHookContract, diff --git a/server/src/nest/plugins/host/rpc-kit/testing.ts b/server/src/nest-rpc/rpc-kit/testing.ts similarity index 100% rename from server/src/nest/plugins/host/rpc-kit/testing.ts rename to server/src/nest-rpc/rpc-kit/testing.ts diff --git a/server/src/nest/plugins/host/rpc-kit/types.ts b/server/src/nest-rpc/rpc-kit/types.ts similarity index 96% rename from server/src/nest/plugins/host/rpc-kit/types.ts rename to server/src/nest-rpc/rpc-kit/types.ts index faa36095c..f4fea371e 100644 --- a/server/src/nest/plugins/host/rpc-kit/types.ts +++ b/server/src/nest-rpc/rpc-kit/types.ts @@ -1,5 +1,5 @@ -import type { HookKey, HookPermission, KnownMethod, UnconditionalMethod } from '../../protocol/envelope'; -import type { PluginDataDb } from '../plugin-data.service'; +import type { HookKey, HookPermission, KnownMethod, UnconditionalMethod } from '../../nest/plugins/protocol/envelope'; +import type { PluginDataDb } from '../../nest/plugins/host/plugin-data.service'; /** * Everything a plugin RPC handler may see. Built PER DISPATCH, never cached. diff --git a/server/src/nest/plugins/host/rpc-params.ts b/server/src/nest-rpc/rpc-params.ts similarity index 100% rename from server/src/nest/plugins/host/rpc-params.ts rename to server/src/nest-rpc/rpc-params.ts diff --git a/server/src/nest/README.md b/server/src/nest/README.md index bdfe2b105..728f5d42a 100644 --- a/server/src/nest/README.md +++ b/server/src/nest/README.md @@ -16,7 +16,7 @@ server/src/nest//.service.ts # business logic, an injectable server/src/nest//.controller.ts # REST routes, thin: validate, call the service, shape the reply server/src/nest//.module.ts # registered in app.module.ts server/src/nest//.mcp.ts # MCP tools/resources/prompts (@Tool, @Resource, @Prompt) -server/src/nest//.rpc.ts # plugin RPC methods (@PluginMethod), see plugins/host/rpc-kit/README.md +server/src/nest//.rpc.ts # plugin RPC methods (@PluginMethod), see src/nest-rpc/rpc-kit/README.md server/src/nest//.job.ts # a cron, registered on scheduling/CronRegistrarService server/src/nest//.helpers.ts # pure functions the service and its tests share ``` diff --git a/server/src/nest/accommodations/accommodations.module.ts b/server/src/nest/accommodations/accommodations.module.ts index 5a90620de..cc6445ff9 100644 --- a/server/src/nest/accommodations/accommodations.module.ts +++ b/server/src/nest/accommodations/accommodations.module.ts @@ -6,7 +6,7 @@ import { PlacesModule } from '../places/places.module'; import { AccommodationsDomainModule } from './accommodations-domain.module'; import { PermissionsModule } from '../permissions/permissions.module'; import { RealtimeModule } from '../realtime/realtime.module'; -import { PluginGuardsModule } from '../plugins/host/plugin-guards.module'; +import { PluginGuardsModule } from '../../nest-rpc/plugin-guards.module'; import { McpSharedModule } from '../mcp-shared/mcp-shared.module'; /** diff --git a/server/src/nest/accommodations/accommodations.rpc.ts b/server/src/nest/accommodations/accommodations.rpc.ts index 53051e408..942982fcf 100644 --- a/server/src/nest/accommodations/accommodations.rpc.ts +++ b/server/src/nest/accommodations/accommodations.rpc.ts @@ -1,9 +1,9 @@ import { accommodationCreateRequestSchema, accommodationUpdateRequestSchema } from '@trek/shared'; -import { PluginController, PluginMethod } from '../plugins/host/rpc-kit/decorators'; -import { PluginGuards } from '../plugins/host/plugin-guards.service'; -import { BadParams, ForbiddenResource } from '../plugins/host/rpc-errors'; -import { num, schemaMessage } from '../plugins/host/rpc-params'; -import type { PluginRpcContext } from '../plugins/host/rpc-kit/types'; +import { PluginController, PluginMethod } from '../../nest-rpc/rpc-kit/decorators'; +import { PluginGuards } from '../../nest-rpc/plugin-guards.service'; +import { BadParams, ForbiddenResource } from '../../nest-rpc/rpc-errors'; +import { num, schemaMessage } from '../../nest-rpc/rpc-params'; +import type { PluginRpcContext } from '../../nest-rpc/rpc-kit/types'; import { RealtimeService } from '../realtime/realtime.service'; import { AccommodationsService } from './accommodations.service'; diff --git a/server/src/nest/assignments/assignments.module.ts b/server/src/nest/assignments/assignments.module.ts index 6ec74fb8e..1acba3de3 100644 --- a/server/src/nest/assignments/assignments.module.ts +++ b/server/src/nest/assignments/assignments.module.ts @@ -4,7 +4,7 @@ import { DaysModule } from '../days/days.module'; import { DayAssignmentsController, AssignmentOpsController } from './assignments.controller'; import { AssignmentsDomainModule } from './assignments-domain.module'; import { ItineraryRpc } from './itinerary.rpc'; -import { PluginGuardsModule } from '../plugins/host/plugin-guards.module'; +import { PluginGuardsModule } from '../../nest-rpc/plugin-guards.module'; import { RealtimeModule } from '../realtime/realtime.module'; import { AssignmentsMcp } from './assignments.mcp'; import { McpSharedModule } from '../mcp-shared/mcp-shared.module'; diff --git a/server/src/nest/assignments/itinerary.rpc.ts b/server/src/nest/assignments/itinerary.rpc.ts index eecd0bbd6..6751e14f0 100644 --- a/server/src/nest/assignments/itinerary.rpc.ts +++ b/server/src/nest/assignments/itinerary.rpc.ts @@ -1,8 +1,8 @@ -import { PluginController, PluginMethod } from '../plugins/host/rpc-kit/decorators'; -import { PluginGuards } from '../plugins/host/plugin-guards.service'; -import { ForbiddenResource } from '../plugins/host/rpc-errors'; -import { num, str } from '../plugins/host/rpc-params'; -import type { PluginRpcContext } from '../plugins/host/rpc-kit/types'; +import { PluginController, PluginMethod } from '../../nest-rpc/rpc-kit/decorators'; +import { PluginGuards } from '../../nest-rpc/plugin-guards.service'; +import { ForbiddenResource } from '../../nest-rpc/rpc-errors'; +import { num, str } from '../../nest-rpc/rpc-params'; +import type { PluginRpcContext } from '../../nest-rpc/rpc-kit/types'; import { RealtimeService } from '../realtime/realtime.service'; import { AssignmentsService } from './assignments.service'; diff --git a/server/src/nest/atlas/atlas.module.ts b/server/src/nest/atlas/atlas.module.ts index 440d6242a..056f720b4 100644 --- a/server/src/nest/atlas/atlas.module.ts +++ b/server/src/nest/atlas/atlas.module.ts @@ -4,7 +4,7 @@ import { AtlasController } from './atlas.controller'; import { TravelStatsController } from './travel-stats.controller'; import { AtlasService } from './atlas.service'; import { AtlasRpc } from './atlas.rpc'; -import { PluginGuardsModule } from '../plugins/host/plugin-guards.module'; +import { PluginGuardsModule } from '../../nest-rpc/plugin-guards.module'; import { AtlasMcp } from './atlas.mcp'; import { AddonsModule } from '../addons/addons.module'; import { PublicStatsController } from './public-stats.controller'; diff --git a/server/src/nest/atlas/atlas.rpc.ts b/server/src/nest/atlas/atlas.rpc.ts index 8ad304970..10c5f724f 100644 --- a/server/src/nest/atlas/atlas.rpc.ts +++ b/server/src/nest/atlas/atlas.rpc.ts @@ -1,8 +1,8 @@ -import { PluginController, PluginMethod } from '../plugins/host/rpc-kit/decorators'; -import { PluginGuards } from '../plugins/host/plugin-guards.service'; -import { BadParams, ForbiddenResource } from '../plugins/host/rpc-errors'; -import { asPayload, num } from '../plugins/host/rpc-params'; -import type { PluginRpcContext } from '../plugins/host/rpc-kit/types'; +import { PluginController, PluginMethod } from '../../nest-rpc/rpc-kit/decorators'; +import { PluginGuards } from '../../nest-rpc/plugin-guards.service'; +import { BadParams, ForbiddenResource } from '../../nest-rpc/rpc-errors'; +import { asPayload, num } from '../../nest-rpc/rpc-params'; +import type { PluginRpcContext } from '../../nest-rpc/rpc-kit/types'; import { ADDON_IDS } from '../../addons'; import { AtlasService, BucketItemExistsError } from './atlas.service'; diff --git a/server/src/nest/budget/budget.module.ts b/server/src/nest/budget/budget.module.ts index ae4d3b2a7..3e598f888 100644 --- a/server/src/nest/budget/budget.module.ts +++ b/server/src/nest/budget/budget.module.ts @@ -15,7 +15,7 @@ import { BudgetMcp } from './budget.mcp'; import { ExchangeRatesService } from './exchange-rates.service'; import { ExchangeRatesRpc } from './exchange-rates.rpc'; import { CostsRpc } from './costs.rpc'; -import { PluginGuardsModule } from '../plugins/host/plugin-guards.module'; +import { PluginGuardsModule } from '../../nest-rpc/plugin-guards.module'; import { RealtimeModule } from '../realtime/realtime.module'; import { PermissionsModule } from '../permissions/permissions.module'; import { AppConfigModule } from '../app-config/app-config.module'; diff --git a/server/src/nest/budget/costs.rpc.ts b/server/src/nest/budget/costs.rpc.ts index 034878d0c..f00d307ea 100644 --- a/server/src/nest/budget/costs.rpc.ts +++ b/server/src/nest/budget/costs.rpc.ts @@ -1,9 +1,9 @@ import { budgetCreateItemRequestSchema, budgetUpdateItemRequestSchema } from '@trek/shared'; -import { PluginController, PluginMethod } from '../plugins/host/rpc-kit/decorators'; -import { PluginGuards } from '../plugins/host/plugin-guards.service'; -import { BadParams, ForbiddenResource } from '../plugins/host/rpc-errors'; -import { num, schemaMessage } from '../plugins/host/rpc-params'; -import type { PluginRpcContext } from '../plugins/host/rpc-kit/types'; +import { PluginController, PluginMethod } from '../../nest-rpc/rpc-kit/decorators'; +import { PluginGuards } from '../../nest-rpc/plugin-guards.service'; +import { BadParams, ForbiddenResource } from '../../nest-rpc/rpc-errors'; +import { num, schemaMessage } from '../../nest-rpc/rpc-params'; +import type { PluginRpcContext } from '../../nest-rpc/rpc-kit/types'; import { InjectRepository } from '@mikro-orm/nestjs'; import { RealtimeService } from '../realtime/realtime.service'; import { Trips } from '../../db/entities/Trips.entity'; diff --git a/server/src/nest/budget/exchange-rates.rpc.ts b/server/src/nest/budget/exchange-rates.rpc.ts index 64d25a771..4904d01d7 100644 --- a/server/src/nest/budget/exchange-rates.rpc.ts +++ b/server/src/nest/budget/exchange-rates.rpc.ts @@ -1,5 +1,5 @@ -import { PluginController, PluginMethod } from '../plugins/host/rpc-kit/decorators'; -import { str } from '../plugins/host/rpc-params'; +import { PluginController, PluginMethod } from '../../nest-rpc/rpc-kit/decorators'; +import { str } from '../../nest-rpc/rpc-params'; import { ExchangeRatesService } from './exchange-rates.service'; /** diff --git a/server/src/nest/categories/categories.rpc.ts b/server/src/nest/categories/categories.rpc.ts index 67a5c7a81..00c0d5fdf 100644 --- a/server/src/nest/categories/categories.rpc.ts +++ b/server/src/nest/categories/categories.rpc.ts @@ -1,4 +1,4 @@ -import { PluginController, PluginMethod } from '../plugins/host/rpc-kit/decorators'; +import { PluginController, PluginMethod } from '../../nest-rpc/rpc-kit/decorators'; import { CategoriesService } from './categories.service'; /** diff --git a/server/src/nest/collab/collab.module.ts b/server/src/nest/collab/collab.module.ts index fbae5b54c..385d515bb 100644 --- a/server/src/nest/collab/collab.module.ts +++ b/server/src/nest/collab/collab.module.ts @@ -4,7 +4,7 @@ import { MulterModule } from '@nestjs/platform-express'; import { CollabController, collabNoteFileFilter, MAX_NOTE_FILE_SIZE } from './collab.controller'; import { CollabService } from './collab.service'; import { CollabRpc } from './collab.rpc'; -import { PluginGuardsModule } from '../plugins/host/plugin-guards.module'; +import { PluginGuardsModule } from '../../nest-rpc/plugin-guards.module'; import { RealtimeModule } from '../realtime/realtime.module'; import { CollabMcp } from './collab.mcp'; import { PermissionsModule } from '../permissions/permissions.module'; diff --git a/server/src/nest/collab/collab.rpc.ts b/server/src/nest/collab/collab.rpc.ts index 75eef0262..ca1e9cf83 100644 --- a/server/src/nest/collab/collab.rpc.ts +++ b/server/src/nest/collab/collab.rpc.ts @@ -1,8 +1,8 @@ -import { PluginController, PluginMethod } from '../plugins/host/rpc-kit/decorators'; -import { PluginGuards } from '../plugins/host/plugin-guards.service'; -import { BadParams } from '../plugins/host/rpc-errors'; -import { asPayload, num } from '../plugins/host/rpc-params'; -import type { PluginRpcContext } from '../plugins/host/rpc-kit/types'; +import { PluginController, PluginMethod } from '../../nest-rpc/rpc-kit/decorators'; +import { PluginGuards } from '../../nest-rpc/plugin-guards.service'; +import { BadParams } from '../../nest-rpc/rpc-errors'; +import { asPayload, num } from '../../nest-rpc/rpc-params'; +import type { PluginRpcContext } from '../../nest-rpc/rpc-kit/types'; import { RealtimeService } from '../realtime/realtime.service'; import { ADDON_IDS } from '../../addons'; import { CollabService } from './collab.service'; diff --git a/server/src/nest/collections/collections.module.ts b/server/src/nest/collections/collections.module.ts index 85dc450ac..49b17e140 100644 --- a/server/src/nest/collections/collections.module.ts +++ b/server/src/nest/collections/collections.module.ts @@ -15,7 +15,7 @@ import { Tags } from '../../db/entities/Tags.entity'; import { CollectionsController } from './collections.controller'; import { CollectionsService } from './collections.service'; import { CollectionsRpc } from './collections.rpc'; -import { PluginGuardsModule } from '../plugins/host/plugin-guards.module'; +import { PluginGuardsModule } from '../../nest-rpc/plugin-guards.module'; import { AppConfigModule } from '../app-config/app-config.module'; import { CollectionsMcp } from './collections.mcp'; import { AddonsModule } from '../addons/addons.module'; diff --git a/server/src/nest/collections/collections.rpc.ts b/server/src/nest/collections/collections.rpc.ts index 2c25bc50a..fded1a8f8 100644 --- a/server/src/nest/collections/collections.rpc.ts +++ b/server/src/nest/collections/collections.rpc.ts @@ -4,11 +4,11 @@ import { collectionSavePlaceRequestSchema, collectionUpdateRequestSchema, } from '@trek/shared'; -import { PluginController, PluginMethod } from '../plugins/host/rpc-kit/decorators'; -import { PluginGuards } from '../plugins/host/plugin-guards.service'; -import { BadParams, ForbiddenResource } from '../plugins/host/rpc-errors'; -import { num, schemaMessage } from '../plugins/host/rpc-params'; -import type { PluginRpcContext } from '../plugins/host/rpc-kit/types'; +import { PluginController, PluginMethod } from '../../nest-rpc/rpc-kit/decorators'; +import { PluginGuards } from '../../nest-rpc/plugin-guards.service'; +import { BadParams, ForbiddenResource } from '../../nest-rpc/rpc-errors'; +import { num, schemaMessage } from '../../nest-rpc/rpc-params'; +import type { PluginRpcContext } from '../../nest-rpc/rpc-kit/types'; import { ADDON_IDS } from '../../addons'; import { CollectionsService } from './collections.service'; diff --git a/server/src/nest/day-notes/day-notes.module.ts b/server/src/nest/day-notes/day-notes.module.ts index 92b8b7222..57bc46d0e 100644 --- a/server/src/nest/day-notes/day-notes.module.ts +++ b/server/src/nest/day-notes/day-notes.module.ts @@ -6,7 +6,7 @@ import { DayNotesMcp } from './day-notes.mcp'; import { DayNotesRpc } from './day-notes.rpc'; import { PermissionsModule } from '../permissions/permissions.module'; import { RealtimeModule } from '../realtime/realtime.module'; -import { PluginGuardsModule } from '../plugins/host/plugin-guards.module'; +import { PluginGuardsModule } from '../../nest-rpc/plugin-guards.module'; import { McpSharedModule } from '../mcp-shared/mcp-shared.module'; import { DayNotes } from '../../db/entities/DayNotes.entity'; import { Days } from '../../db/entities/Days.entity'; diff --git a/server/src/nest/day-notes/day-notes.rpc.ts b/server/src/nest/day-notes/day-notes.rpc.ts index 71cbd08d3..11eef12df 100644 --- a/server/src/nest/day-notes/day-notes.rpc.ts +++ b/server/src/nest/day-notes/day-notes.rpc.ts @@ -1,8 +1,8 @@ -import { PluginController, PluginMethod } from '../plugins/host/rpc-kit/decorators'; -import { PluginGuards } from '../plugins/host/plugin-guards.service'; -import { BadParams, ForbiddenResource } from '../plugins/host/rpc-errors'; -import { asPayload, num } from '../plugins/host/rpc-params'; -import type { PluginRpcContext } from '../plugins/host/rpc-kit/types'; +import { PluginController, PluginMethod } from '../../nest-rpc/rpc-kit/decorators'; +import { PluginGuards } from '../../nest-rpc/plugin-guards.service'; +import { BadParams, ForbiddenResource } from '../../nest-rpc/rpc-errors'; +import { asPayload, num } from '../../nest-rpc/rpc-params'; +import type { PluginRpcContext } from '../../nest-rpc/rpc-kit/types'; import { RealtimeService } from '../realtime/realtime.service'; import { DayNotesService } from './day-notes.service'; diff --git a/server/src/nest/days/days.module.ts b/server/src/nest/days/days.module.ts index 608f24cd9..dad927b3b 100644 --- a/server/src/nest/days/days.module.ts +++ b/server/src/nest/days/days.module.ts @@ -7,7 +7,7 @@ import { DaysRpc } from './days.rpc'; import { DayRemovalService } from './day-removal.service'; import { AccommodationsDomainModule } from '../accommodations/accommodations-domain.module'; import { AssignmentsDomainModule } from '../assignments/assignments-domain.module'; -import { PluginGuardsModule } from '../plugins/host/plugin-guards.module'; +import { PluginGuardsModule } from '../../nest-rpc/plugin-guards.module'; import { RealtimeModule } from '../realtime/realtime.module'; import { PermissionsModule } from '../permissions/permissions.module'; import { QueryHelpersModule } from '../query-helpers/query-helpers.module'; diff --git a/server/src/nest/days/days.rpc.ts b/server/src/nest/days/days.rpc.ts index bc14f6924..16d794296 100644 --- a/server/src/nest/days/days.rpc.ts +++ b/server/src/nest/days/days.rpc.ts @@ -1,9 +1,9 @@ import { dayCreateRequestSchema, dayUpdateRequestSchema } from '@trek/shared'; -import { PluginController, PluginMethod } from '../plugins/host/rpc-kit/decorators'; -import { PluginGuards } from '../plugins/host/plugin-guards.service'; -import { BadParams, ForbiddenResource } from '../plugins/host/rpc-errors'; -import { num, schemaMessage } from '../plugins/host/rpc-params'; -import type { PluginRpcContext } from '../plugins/host/rpc-kit/types'; +import { PluginController, PluginMethod } from '../../nest-rpc/rpc-kit/decorators'; +import { PluginGuards } from '../../nest-rpc/plugin-guards.service'; +import { BadParams, ForbiddenResource } from '../../nest-rpc/rpc-errors'; +import { num, schemaMessage } from '../../nest-rpc/rpc-params'; +import type { PluginRpcContext } from '../../nest-rpc/rpc-kit/types'; import { RealtimeService } from '../realtime/realtime.service'; import { DaysService, DayAppendError, type DatedDayAppend, type DaySender } from './days.service'; import { DayRemovalService, DayDeleteError, type DayRemoval } from './day-removal.service'; diff --git a/server/src/nest/files/files.module.ts b/server/src/nest/files/files.module.ts index c720c75b9..c7de94759 100644 --- a/server/src/nest/files/files.module.ts +++ b/server/src/nest/files/files.module.ts @@ -6,7 +6,7 @@ import { FilesService } from './files.service'; import { FilesRpc } from './files.rpc'; import { FilesMcp } from './files.mcp'; import { McpSharedModule } from '../mcp-shared/mcp-shared.module'; -import { PluginGuardsModule } from '../plugins/host/plugin-guards.module'; +import { PluginGuardsModule } from '../../nest-rpc/plugin-guards.module'; import { RealtimeModule } from '../realtime/realtime.module'; import { PermissionsModule } from '../permissions/permissions.module'; import { AppConfigModule } from '../app-config/app-config.module'; diff --git a/server/src/nest/files/files.rpc.ts b/server/src/nest/files/files.rpc.ts index a9d06252a..12378620e 100644 --- a/server/src/nest/files/files.rpc.ts +++ b/server/src/nest/files/files.rpc.ts @@ -2,11 +2,11 @@ import pathMod from 'node:path'; import { randomUUID } from 'node:crypto'; import { Readable } from 'node:stream'; import { InjectRepository } from '@mikro-orm/nestjs'; -import { PluginController, PluginMethod } from '../plugins/host/rpc-kit/decorators'; -import { PluginGuards } from '../plugins/host/plugin-guards.service'; -import { BadParams, ForbiddenResource } from '../plugins/host/rpc-errors'; -import { asPayload, num } from '../plugins/host/rpc-params'; -import type { PluginRpcContext } from '../plugins/host/rpc-kit/types'; +import { PluginController, PluginMethod } from '../../nest-rpc/rpc-kit/decorators'; +import { PluginGuards } from '../../nest-rpc/plugin-guards.service'; +import { BadParams, ForbiddenResource } from '../../nest-rpc/rpc-errors'; +import { asPayload, num } from '../../nest-rpc/rpc-params'; +import type { PluginRpcContext } from '../../nest-rpc/rpc-kit/types'; import { RealtimeService } from '../realtime/realtime.service'; import { Users } from '../../db/entities/Users.entity'; import type { UsersRepository } from '../../db/repositories/Users.repository'; diff --git a/server/src/nest/journey/journal-rpc.module.ts b/server/src/nest/journey/journal-rpc.module.ts index 1cca7cd7e..d5fa496c8 100644 --- a/server/src/nest/journey/journal-rpc.module.ts +++ b/server/src/nest/journey/journal-rpc.module.ts @@ -1,6 +1,6 @@ import { Module } from '@nestjs/common'; import { AllowedFileTypesModule } from '../files/allowed-file-types.module'; -import { PluginGuardsModule } from '../plugins/host/plugin-guards.module'; +import { PluginGuardsModule } from '../../nest-rpc/plugin-guards.module'; import { StorageModule } from '../storage/storage.module'; import { DemoModule } from '../common/demo.module'; import { JourneyDomainModule } from './journey-domain.module'; diff --git a/server/src/nest/journey/journal.rpc.ts b/server/src/nest/journey/journal.rpc.ts index a28b7267c..e96bd3129 100644 --- a/server/src/nest/journey/journal.rpc.ts +++ b/server/src/nest/journey/journal.rpc.ts @@ -2,11 +2,11 @@ import pathMod from 'node:path'; import { randomUUID } from 'node:crypto'; import { Readable } from 'node:stream'; import { journalPluginPhotoInputSchema } from '@trek/shared'; -import { PluginController, PluginMethod } from '../plugins/host/rpc-kit/decorators'; -import { PluginGuards } from '../plugins/host/plugin-guards.service'; -import { BadParams, ForbiddenResource } from '../plugins/host/rpc-errors'; -import { asPayload, num } from '../plugins/host/rpc-params'; -import type { PluginRpcContext } from '../plugins/host/rpc-kit/types'; +import { PluginController, PluginMethod } from '../../nest-rpc/rpc-kit/decorators'; +import { PluginGuards } from '../../nest-rpc/plugin-guards.service'; +import { BadParams, ForbiddenResource } from '../../nest-rpc/rpc-errors'; +import { asPayload, num } from '../../nest-rpc/rpc-params'; +import type { PluginRpcContext } from '../../nest-rpc/rpc-kit/types'; import { ADDON_IDS } from '../../addons'; import { AllowedFileTypesService } from '../files/allowed-file-types.service'; import { StorageService } from '../storage/storage.service'; diff --git a/server/src/nest/journey/journey-domain.module.ts b/server/src/nest/journey/journey-domain.module.ts index 102537d85..ca3af72e3 100644 --- a/server/src/nest/journey/journey-domain.module.ts +++ b/server/src/nest/journey/journey-domain.module.ts @@ -3,7 +3,7 @@ import { MikroOrmModule } from '@mikro-orm/nestjs'; import { RealtimeModule } from '../realtime/realtime.module'; import { TrekPhotosModule } from '../photos/trek-photos.module'; import { JourneyDomainService } from './journey-domain.service'; -import { PluginGuardsModule } from '../plugins/host/plugin-guards.module'; +import { PluginGuardsModule } from '../../nest-rpc/plugin-guards.module'; import { JourneyShareService } from './journey-share.service'; import { SettingsModule } from '../settings/settings.module'; import { Journeys } from '../../db/entities/Journeys.entity'; diff --git a/server/src/nest/packing/packing.module.ts b/server/src/nest/packing/packing.module.ts index 12dbf1f51..9865ef639 100644 --- a/server/src/nest/packing/packing.module.ts +++ b/server/src/nest/packing/packing.module.ts @@ -5,7 +5,7 @@ import { AdminPackingTemplatesController } from './admin-packing-templates.contr import { PackingMcp } from './packing.mcp'; import { PackingService } from './packing.service'; import { PackingRpc } from './packing.rpc'; -import { PluginGuardsModule } from '../plugins/host/plugin-guards.module'; +import { PluginGuardsModule } from '../../nest-rpc/plugin-guards.module'; import { RealtimeModule } from '../realtime/realtime.module'; import { PermissionsModule } from '../permissions/permissions.module'; import { AuditModule } from '../audit/audit.module'; diff --git a/server/src/nest/packing/packing.rpc.ts b/server/src/nest/packing/packing.rpc.ts index 49c1bbaa9..b4843c8de 100644 --- a/server/src/nest/packing/packing.rpc.ts +++ b/server/src/nest/packing/packing.rpc.ts @@ -1,9 +1,9 @@ import { packingCreateItemRequestSchema, packingUpdateItemRequestSchema } from '@trek/shared'; -import { PluginController, PluginMethod } from '../plugins/host/rpc-kit/decorators'; -import { PluginGuards } from '../plugins/host/plugin-guards.service'; -import { BadParams, ForbiddenResource } from '../plugins/host/rpc-errors'; -import { asPayload, num, schemaMessage } from '../plugins/host/rpc-params'; -import type { PluginRpcContext } from '../plugins/host/rpc-kit/types'; +import { PluginController, PluginMethod } from '../../nest-rpc/rpc-kit/decorators'; +import { PluginGuards } from '../../nest-rpc/plugin-guards.service'; +import { BadParams, ForbiddenResource } from '../../nest-rpc/rpc-errors'; +import { asPayload, num, schemaMessage } from '../../nest-rpc/rpc-params'; +import type { PluginRpcContext } from '../../nest-rpc/rpc-kit/types'; import { RealtimeService } from '../realtime/realtime.service'; import { PackingService, isInvalidBagRef } from './packing.service'; import { isUpdateConflict } from '../common/conflictResult'; diff --git a/server/src/nest/places/places.module.ts b/server/src/nest/places/places.module.ts index 8202ac52b..4d498f6d3 100644 --- a/server/src/nest/places/places.module.ts +++ b/server/src/nest/places/places.module.ts @@ -13,7 +13,7 @@ import { JourneyDomainModule } from '../journey/journey-domain.module'; import { PlacesController } from './places.controller'; import { PlacesService } from './places.service'; import { PlacesRpc } from './places.rpc'; -import { PluginGuardsModule } from '../plugins/host/plugin-guards.module'; +import { PluginGuardsModule } from '../../nest-rpc/plugin-guards.module'; import { RealtimeModule } from '../realtime/realtime.module'; import { PlacesMcp } from './places.mcp'; import { PermissionsModule } from '../permissions/permissions.module'; diff --git a/server/src/nest/places/places.rpc.ts b/server/src/nest/places/places.rpc.ts index 7624c50ab..ae9794de7 100644 --- a/server/src/nest/places/places.rpc.ts +++ b/server/src/nest/places/places.rpc.ts @@ -1,9 +1,9 @@ import { placeCreateRequestSchema, placeImageUrlSchema, placeUpdateRequestSchema, placeWebsiteSchema } from '@trek/shared'; -import { PluginController, PluginMethod } from '../plugins/host/rpc-kit/decorators'; -import { PluginGuards } from '../plugins/host/plugin-guards.service'; -import { BadParams, ForbiddenResource } from '../plugins/host/rpc-errors'; -import { num, schemaMessage } from '../plugins/host/rpc-params'; -import type { PluginRpcContext } from '../plugins/host/rpc-kit/types'; +import { PluginController, PluginMethod } from '../../nest-rpc/rpc-kit/decorators'; +import { PluginGuards } from '../../nest-rpc/plugin-guards.service'; +import { BadParams, ForbiddenResource } from '../../nest-rpc/rpc-errors'; +import { num, schemaMessage } from '../../nest-rpc/rpc-params'; +import type { PluginRpcContext } from '../../nest-rpc/rpc-kit/types'; import { RealtimeService } from '../realtime/realtime.service'; import { JourneyDomainService } from '../journey/journey-domain.service'; import { PlacesService } from './places.service'; diff --git a/server/src/nest/plugins/host/plugin-rpc-host.factory.ts b/server/src/nest/plugins/host/plugin-rpc-host.factory.ts index 1f718f21b..6e4a71898 100644 --- a/server/src/nest/plugins/host/plugin-rpc-host.factory.ts +++ b/server/src/nest/plugins/host/plugin-rpc-host.factory.ts @@ -3,8 +3,8 @@ import { InjectRepository } from '@mikro-orm/nestjs'; import { PluginCapabilityAudit } from '../../../db/entities/PluginCapabilityAudit.entity'; import type { PluginCapabilityAuditRepository } from '../../../db/repositories/PluginCapabilityAudit.repository'; import { PluginRpcHost } from './rpc-host'; -import type { PluginRpcRegistry } from './rpc-kit/registry'; -import { PluginRpcRegistryService } from './rpc-kit/registry.service'; +import type { PluginRpcRegistry } from '../../../nest-rpc/rpc-kit/registry'; +import { PluginRpcRegistryService } from '../../../nest-rpc/rpc-kit/registry.service'; import { appendAudit } from './plugin-audit'; import { getPluginDataDb } from './plugin-host-state'; diff --git a/server/src/nest/plugins/host/rpc-host.ts b/server/src/nest/plugins/host/rpc-host.ts index 9fb55a21b..2598b2ef2 100644 --- a/server/src/nest/plugins/host/rpc-host.ts +++ b/server/src/nest/plugins/host/rpc-host.ts @@ -8,9 +8,9 @@ import { } from '../protocol/envelope'; import type { PluginDataDb } from './plugin-data.service'; import { auditResource, isAuditable } from './plugin-audit'; -import { BadParams, ForbiddenResource } from './rpc-errors'; +import { BadParams, ForbiddenResource } from '../../../nest-rpc/rpc-errors'; import { shapePluginOutput } from '../protocol/output-contract'; -import type { PluginRpcRegistry } from './rpc-kit/registry'; +import type { PluginRpcRegistry } from '../../../nest-rpc/rpc-kit/registry'; // Both used to be declared here. They now live in rpc-errors.ts so decorated // *.rpc.ts handlers can throw them without importing the router, and are re-exported diff --git a/server/src/nest/plugins/host/rpc/db.rpc.ts b/server/src/nest/plugins/host/rpc/db.rpc.ts index ffc3d7a3a..f8aab6b08 100644 --- a/server/src/nest/plugins/host/rpc/db.rpc.ts +++ b/server/src/nest/plugins/host/rpc/db.rpc.ts @@ -1,6 +1,6 @@ -import { PluginController, PluginMethod, PluginOpenMethod } from '../rpc-kit/decorators'; -import { asArgs, asTxOps, str } from '../rpc-params'; -import type { PluginRpcContext } from '../rpc-kit/types'; +import { PluginController, PluginMethod, PluginOpenMethod } from '../../../../nest-rpc/rpc-kit/decorators'; +import { asArgs, asTxOps, str } from '../../../../nest-rpc/rpc-params'; +import type { PluginRpcContext } from '../../../../nest-rpc/rpc-kit/types'; import { PluginUserSettingsService } from '../../plugin-user-settings.service'; /** diff --git a/server/src/nest/plugins/host/rpc/host-surface.rpc.ts b/server/src/nest/plugins/host/rpc/host-surface.rpc.ts index b8f530038..b6e2274fb 100644 --- a/server/src/nest/plugins/host/rpc/host-surface.rpc.ts +++ b/server/src/nest/plugins/host/rpc/host-surface.rpc.ts @@ -1,8 +1,8 @@ -import { PluginController, PluginMethod } from '../rpc-kit/decorators'; -import { PluginGuards } from '../plugin-guards.service'; -import { BadParams, ForbiddenResource } from '../rpc-errors'; -import { asPayload, num, str } from '../rpc-params'; -import type { PluginRpcContext } from '../rpc-kit/types'; +import { PluginController, PluginMethod } from '../../../../nest-rpc/rpc-kit/decorators'; +import { PluginGuards } from '../../../../nest-rpc/plugin-guards.service'; +import { BadParams, ForbiddenResource } from '../../../../nest-rpc/rpc-errors'; +import { asPayload, num, str } from '../../../../nest-rpc/rpc-params'; +import type { PluginRpcContext } from '../../../../nest-rpc/rpc-kit/types'; import { budgetFor } from '../plugin-host-state'; import { InjectRepository } from '@mikro-orm/nestjs'; import { PluginCapabilityAudit } from '../../../../db/entities/PluginCapabilityAudit.entity'; diff --git a/server/src/nest/plugins/host/rpc/meta.rpc.ts b/server/src/nest/plugins/host/rpc/meta.rpc.ts index 164527cff..8daee88e4 100644 --- a/server/src/nest/plugins/host/rpc/meta.rpc.ts +++ b/server/src/nest/plugins/host/rpc/meta.rpc.ts @@ -1,9 +1,9 @@ import { InjectRepository } from '@mikro-orm/nestjs'; -import { PluginController, PluginMethod } from '../rpc-kit/decorators'; -import { PluginGuards } from '../plugin-guards.service'; -import { BadParams, ForbiddenResource } from '../rpc-errors'; -import { num, str } from '../rpc-params'; -import type { PluginRpcContext } from '../rpc-kit/types'; +import { PluginController, PluginMethod } from '../../../../nest-rpc/rpc-kit/decorators'; +import { PluginGuards } from '../../../../nest-rpc/plugin-guards.service'; +import { BadParams, ForbiddenResource } from '../../../../nest-rpc/rpc-errors'; +import { num, str } from '../../../../nest-rpc/rpc-params'; +import type { PluginRpcContext } from '../../../../nest-rpc/rpc-kit/types'; import { PluginEntityMetadata } from '../../../../db/entities/PluginEntityMetadata.entity'; import type { PluginEntityMetadataRepository } from '../../../../db/repositories/PluginEntityMetadata.repository'; import { Trips } from '../../../../db/entities/Trips.entity'; diff --git a/server/src/nest/plugins/plugin-hooks.service.ts b/server/src/nest/plugins/plugin-hooks.service.ts index 96e9cf74e..15ec060e2 100644 --- a/server/src/nest/plugins/plugin-hooks.service.ts +++ b/server/src/nest/plugins/plugin-hooks.service.ts @@ -1,4 +1,4 @@ -import { PluginController, PluginHook } from './host/rpc-kit/decorators'; +import { PluginController, PluginHook } from '../../nest-rpc/rpc-kit/decorators'; import { PluginRuntimeService } from './plugin-runtime.service'; /** What a notification channel is handed for one message. */ diff --git a/server/src/nest/plugins/plugins-runtime.module.ts b/server/src/nest/plugins/plugins-runtime.module.ts index 77fb6953d..0284c74f8 100644 --- a/server/src/nest/plugins/plugins-runtime.module.ts +++ b/server/src/nest/plugins/plugins-runtime.module.ts @@ -28,8 +28,8 @@ import { PluginRuntimeService } from './plugin-runtime.service'; import { PluginHooks } from './plugin-hooks.service'; import { PluginRegistryService } from './registry/registry.service'; import { PluginRpcHostFactory } from './host/plugin-rpc-host.factory'; -import { PluginRpcRegistryService } from './host/rpc-kit/registry.service'; -import { PluginGuardsModule } from './host/plugin-guards.module'; +import { PluginRpcRegistryService } from '../../nest-rpc/rpc-kit/registry.service'; +import { PluginGuardsModule } from '../../nest-rpc/plugin-guards.module'; import { PluginOAuthModule } from './oauth/plugin-oauth.module'; import { DbRpc } from './host/rpc/db.rpc'; import { MetaRpc } from './host/rpc/meta.rpc'; diff --git a/server/src/nest/reservations/reservations.module.ts b/server/src/nest/reservations/reservations.module.ts index 60c570659..a66cb8e9d 100644 --- a/server/src/nest/reservations/reservations.module.ts +++ b/server/src/nest/reservations/reservations.module.ts @@ -9,7 +9,7 @@ import { PermissionsModule } from '../permissions/permissions.module'; import { ReservationsController } from './reservations.controller'; import { ReservationsService } from './reservations.service'; import { ReservationsRpc } from './reservations.rpc'; -import { PluginGuardsModule } from '../plugins/host/plugin-guards.module'; +import { PluginGuardsModule } from '../../nest-rpc/plugin-guards.module'; import { RealtimeModule } from '../realtime/realtime.module'; import { ReservationsMcp } from './reservations.mcp'; import { UpcomingReservationsController } from './upcoming-reservations.controller'; diff --git a/server/src/nest/reservations/reservations.rpc.ts b/server/src/nest/reservations/reservations.rpc.ts index 4e6029091..7d17b64d4 100644 --- a/server/src/nest/reservations/reservations.rpc.ts +++ b/server/src/nest/reservations/reservations.rpc.ts @@ -3,11 +3,11 @@ import { reservationEndpointsInputSchema, reservationUpdateRequestSchema, } from '@trek/shared'; -import { PluginController, PluginMethod } from '../plugins/host/rpc-kit/decorators'; -import { PluginGuards } from '../plugins/host/plugin-guards.service'; -import { BadParams, ForbiddenResource } from '../plugins/host/rpc-errors'; -import { num, schemaMessage } from '../plugins/host/rpc-params'; -import type { PluginRpcContext } from '../plugins/host/rpc-kit/types'; +import { PluginController, PluginMethod } from '../../nest-rpc/rpc-kit/decorators'; +import { PluginGuards } from '../../nest-rpc/plugin-guards.service'; +import { BadParams, ForbiddenResource } from '../../nest-rpc/rpc-errors'; +import { num, schemaMessage } from '../../nest-rpc/rpc-params'; +import type { PluginRpcContext } from '../../nest-rpc/rpc-kit/types'; import { RealtimeService } from '../realtime/realtime.service'; import { ReservationsService } from './reservations.service'; diff --git a/server/src/nest/tags/tags.rpc.ts b/server/src/nest/tags/tags.rpc.ts index f0833ef49..33df73d92 100644 --- a/server/src/nest/tags/tags.rpc.ts +++ b/server/src/nest/tags/tags.rpc.ts @@ -1,7 +1,7 @@ -import { PluginController, PluginMethod } from '../plugins/host/rpc-kit/decorators'; -import { BadParams, ForbiddenResource } from '../plugins/host/rpc-errors'; -import { asPayload, num } from '../plugins/host/rpc-params'; -import type { PluginRpcContext } from '../plugins/host/rpc-kit/types'; +import { PluginController, PluginMethod } from '../../nest-rpc/rpc-kit/decorators'; +import { BadParams, ForbiddenResource } from '../../nest-rpc/rpc-errors'; +import { asPayload, num } from '../../nest-rpc/rpc-params'; +import type { PluginRpcContext } from '../../nest-rpc/rpc-kit/types'; import { TagsService } from './tags.service'; /** diff --git a/server/src/nest/todo/todo.module.ts b/server/src/nest/todo/todo.module.ts index 6b46be7e8..8c112fb21 100644 --- a/server/src/nest/todo/todo.module.ts +++ b/server/src/nest/todo/todo.module.ts @@ -4,7 +4,7 @@ import { TodoController } from './todo.controller'; import { TodoMcp } from './todo.mcp'; import { TodoService } from './todo.service'; import { TodoRpc } from './todo.rpc'; -import { PluginGuardsModule } from '../plugins/host/plugin-guards.module'; +import { PluginGuardsModule } from '../../nest-rpc/plugin-guards.module'; import { RealtimeModule } from '../realtime/realtime.module'; import { PermissionsModule } from '../permissions/permissions.module'; import { AddonsModule } from '../addons/addons.module'; diff --git a/server/src/nest/todo/todo.rpc.ts b/server/src/nest/todo/todo.rpc.ts index 996977224..764847ede 100644 --- a/server/src/nest/todo/todo.rpc.ts +++ b/server/src/nest/todo/todo.rpc.ts @@ -1,8 +1,8 @@ -import { PluginController, PluginMethod } from '../plugins/host/rpc-kit/decorators'; -import { PluginGuards } from '../plugins/host/plugin-guards.service'; -import { BadParams, ForbiddenResource } from '../plugins/host/rpc-errors'; -import { asPayload, num } from '../plugins/host/rpc-params'; -import type { PluginRpcContext } from '../plugins/host/rpc-kit/types'; +import { PluginController, PluginMethod } from '../../nest-rpc/rpc-kit/decorators'; +import { PluginGuards } from '../../nest-rpc/plugin-guards.service'; +import { BadParams, ForbiddenResource } from '../../nest-rpc/rpc-errors'; +import { asPayload, num } from '../../nest-rpc/rpc-params'; +import type { PluginRpcContext } from '../../nest-rpc/rpc-kit/types'; import { RealtimeService } from '../realtime/realtime.service'; import { TodoService } from './todo.service'; diff --git a/server/src/nest/trips/trips.module.ts b/server/src/nest/trips/trips.module.ts index b7d9b13ee..576c809bb 100644 --- a/server/src/nest/trips/trips.module.ts +++ b/server/src/nest/trips/trips.module.ts @@ -14,7 +14,7 @@ import { TripsController } from './trips.controller'; import { TripsService } from './trips.service'; import { TripPromptsMcp } from './trip-prompts.mcp'; import { TripsRpc } from './trips.rpc'; -import { PluginGuardsModule } from '../plugins/host/plugin-guards.module'; +import { PluginGuardsModule } from '../../nest-rpc/plugin-guards.module'; import { RealtimeModule } from '../realtime/realtime.module'; import { TripMembershipModule } from '../trip-membership/trip-membership.module'; import { AppConfigModule } from '../app-config/app-config.module'; diff --git a/server/src/nest/trips/trips.rpc.ts b/server/src/nest/trips/trips.rpc.ts index 8b7f3ebc0..2807629c9 100644 --- a/server/src/nest/trips/trips.rpc.ts +++ b/server/src/nest/trips/trips.rpc.ts @@ -1,10 +1,10 @@ import { EntityManager } from '@mikro-orm/core'; import { tripCreateRequestSchema, tripUpdateRequestSchema } from '@trek/shared'; -import { PluginController, PluginMethod } from '../plugins/host/rpc-kit/decorators'; -import { PluginGuards } from '../plugins/host/plugin-guards.service'; -import { BadParams, ForbiddenResource } from '../plugins/host/rpc-errors'; -import { num, schemaMessage } from '../plugins/host/rpc-params'; -import type { PluginRpcContext } from '../plugins/host/rpc-kit/types'; +import { PluginController, PluginMethod } from '../../nest-rpc/rpc-kit/decorators'; +import { PluginGuards } from '../../nest-rpc/plugin-guards.service'; +import { BadParams, ForbiddenResource } from '../../nest-rpc/rpc-errors'; +import { num, schemaMessage } from '../../nest-rpc/rpc-params'; +import type { PluginRpcContext } from '../../nest-rpc/rpc-kit/types'; import { RealtimeService } from '../realtime/realtime.service'; import { ReservationsService } from '../reservations/reservations.service'; import { DaysService } from '../days/days.service'; diff --git a/server/src/nest/vacay/vacay.module.ts b/server/src/nest/vacay/vacay.module.ts index bb9224f21..2fbec8991 100644 --- a/server/src/nest/vacay/vacay.module.ts +++ b/server/src/nest/vacay/vacay.module.ts @@ -3,7 +3,7 @@ import { MikroOrmModule } from '@mikro-orm/nestjs'; import { VacayController } from './vacay.controller'; import { VacayService } from './vacay.service'; import { VacayRpc } from './vacay.rpc'; -import { PluginGuardsModule } from '../plugins/host/plugin-guards.module'; +import { PluginGuardsModule } from '../../nest-rpc/plugin-guards.module'; import { VacayMcp } from './vacay.mcp'; import { AuthModule } from '../auth/auth.module'; import { AddonsModule } from '../addons/addons.module'; diff --git a/server/src/nest/vacay/vacay.rpc.ts b/server/src/nest/vacay/vacay.rpc.ts index 3fc4057d3..7b9b94141 100644 --- a/server/src/nest/vacay/vacay.rpc.ts +++ b/server/src/nest/vacay/vacay.rpc.ts @@ -1,7 +1,7 @@ -import { PluginController, PluginMethod } from '../plugins/host/rpc-kit/decorators'; -import { PluginGuards } from '../plugins/host/plugin-guards.service'; -import { BadParams, ForbiddenResource } from '../plugins/host/rpc-errors'; -import type { PluginRpcContext } from '../plugins/host/rpc-kit/types'; +import { PluginController, PluginMethod } from '../../nest-rpc/rpc-kit/decorators'; +import { PluginGuards } from '../../nest-rpc/plugin-guards.service'; +import { BadParams, ForbiddenResource } from '../../nest-rpc/rpc-errors'; +import type { PluginRpcContext } from '../../nest-rpc/rpc-kit/types'; import { ADDON_IDS } from '../../addons'; import { VacayService } from './vacay.service'; diff --git a/server/src/nest/weather/weather.rpc.ts b/server/src/nest/weather/weather.rpc.ts index f9f6c7aac..21dd3f306 100644 --- a/server/src/nest/weather/weather.rpc.ts +++ b/server/src/nest/weather/weather.rpc.ts @@ -1,5 +1,5 @@ -import { PluginController, PluginMethod } from '../plugins/host/rpc-kit/decorators'; -import { num } from '../plugins/host/rpc-params'; +import { PluginController, PluginMethod } from '../../nest-rpc/rpc-kit/decorators'; +import { num } from '../../nest-rpc/rpc-params'; import { WeatherService } from './weather.service'; /** diff --git a/server/tests/helpers/plugin-host.ts b/server/tests/helpers/plugin-host.ts index f930402e6..26b082c66 100644 --- a/server/tests/helpers/plugin-host.ts +++ b/server/tests/helpers/plugin-host.ts @@ -3,9 +3,9 @@ import { PluginRuntimeService } from '../../src/nest/plugins/plugin-runtime.serv import { PluginUserSettingsService } from '../../src/nest/plugins/plugin-user-settings.service'; import type { PluginRegistryService } from '../../src/nest/plugins/registry/registry.service'; import { PluginRpcHostFactory } from '../../src/nest/plugins/host/plugin-rpc-host.factory'; -import { PluginRpcRegistryService } from '../../src/nest/plugins/host/rpc-kit/registry.service'; -import { createTestPluginRegistry } from '../../src/nest/plugins/host/rpc-kit/testing'; -import { PluginGuards } from '../../src/nest/plugins/host/plugin-guards.service'; +import { PluginRpcRegistryService } from '../../src/nest-rpc/rpc-kit/registry.service'; +import { createTestPluginRegistry } from '../../src/nest-rpc/rpc-kit/testing'; +import { PluginGuards } from '../../src/nest-rpc/plugin-guards.service'; import { DbRpc } from '../../src/nest/plugins/host/rpc/db.rpc'; import { MetaRpc } from '../../src/nest/plugins/host/rpc/meta.rpc'; import { HostSurfaceRpc } from '../../src/nest/plugins/host/rpc/host-surface.rpc'; diff --git a/server/tests/integration/plugins/boot-registry-order.test.ts b/server/tests/integration/plugins/boot-registry-order.test.ts index f9d6769d3..eb04a1c1b 100644 --- a/server/tests/integration/plugins/boot-registry-order.test.ts +++ b/server/tests/integration/plugins/boot-registry-order.test.ts @@ -42,8 +42,8 @@ import { AppSettings } from '../../../src/db/entities/AppSettings.entity'; import { PluginRuntimeService } from '../../../src/nest/plugins/plugin-runtime.service'; import { PluginUserSettingsService } from '../../../src/nest/plugins/plugin-user-settings.service'; import { PluginRpcHostFactory } from '../../../src/nest/plugins/host/plugin-rpc-host.factory'; -import { PluginRpcRegistry } from '../../../src/nest/plugins/host/rpc-kit/registry'; -import type { PluginRpcRegistryService } from '../../../src/nest/plugins/host/rpc-kit/registry.service'; +import { PluginRpcRegistry } from '../../../src/nest-rpc/rpc-kit/registry'; +import type { PluginRpcRegistryService } from '../../../src/nest-rpc/rpc-kit/registry.service'; import { DbRpc } from '../../../src/nest/plugins/host/rpc/db.rpc'; import { createTestOrm, type TestOrm } from '../../helpers/test-orm'; import { AuditLog } from '../../../src/db/entities/AuditLog.entity'; diff --git a/server/tests/integration/plugins/supervisor.test.ts b/server/tests/integration/plugins/supervisor.test.ts index 0387fe281..928c7d5cd 100644 --- a/server/tests/integration/plugins/supervisor.test.ts +++ b/server/tests/integration/plugins/supervisor.test.ts @@ -15,7 +15,7 @@ import Database from 'better-sqlite3'; import { PluginSupervisor, type SupervisorHooks, type SupervisorTuning } from '../../../src/nest/plugins/supervisor/plugin-supervisor'; import { PluginRpcHost, type HostDeps } from '../../../src/nest/plugins/host/rpc-host'; import { PluginDataDb } from '../../../src/nest/plugins/host/plugin-data.service'; -import { createTestPluginRegistry } from '../../../src/nest/plugins/host/rpc-kit/testing'; +import { createTestPluginRegistry } from '../../../src/nest-rpc/rpc-kit/testing'; import { DbRpc } from '../../../src/nest/plugins/host/rpc/db.rpc'; import type { PluginUserSettingsService } from '../../../src/nest/plugins/plugin-user-settings.service'; import { createTestOrm, type TestOrm } from '../../helpers/test-orm'; diff --git a/server/tests/unit/budget/costs.rpc.test.ts b/server/tests/unit/budget/costs.rpc.test.ts index d4011ac66..ae7ee9076 100644 --- a/server/tests/unit/budget/costs.rpc.test.ts +++ b/server/tests/unit/budget/costs.rpc.test.ts @@ -8,8 +8,8 @@ import { describe, it, expect, vi } from 'vitest'; import { expectRegisteredProvider } from '../../helpers/module-providers'; import { PluginRpcHost } from '../../../src/nest/plugins/host/rpc-host'; -import { createTestPluginRegistry } from '../../../src/nest/plugins/host/rpc-kit/testing'; -import { PluginGuards } from '../../../src/nest/plugins/host/plugin-guards.service'; +import { createTestPluginRegistry } from '../../../src/nest-rpc/rpc-kit/testing'; +import { PluginGuards } from '../../../src/nest-rpc/plugin-guards.service'; import { CostsRpc } from '../../../src/nest/budget/costs.rpc'; import { BudgetModule } from '../../../src/nest/budget/budget.module'; import type { BudgetService } from '../../../src/nest/budget/budget.service'; diff --git a/server/tests/unit/days/day-notes.rpc.test.ts b/server/tests/unit/days/day-notes.rpc.test.ts index 9b47e5b89..ed2b42856 100644 --- a/server/tests/unit/days/day-notes.rpc.test.ts +++ b/server/tests/unit/days/day-notes.rpc.test.ts @@ -7,8 +7,8 @@ import { describe, it, expect, vi, beforeEach } from 'vitest'; import { expectRegisteredProvider } from '../../helpers/module-providers'; import { PluginRpcHost } from '../../../src/nest/plugins/host/rpc-host'; -import { createTestPluginRegistry } from '../../../src/nest/plugins/host/rpc-kit/testing'; -import { PluginGuards } from '../../../src/nest/plugins/host/plugin-guards.service'; +import { createTestPluginRegistry } from '../../../src/nest-rpc/rpc-kit/testing'; +import { PluginGuards } from '../../../src/nest-rpc/plugin-guards.service'; import { DayNotesRpc } from '../../../src/nest/day-notes/day-notes.rpc'; import { DayNotesModule } from '../../../src/nest/day-notes/day-notes.module'; import type { DayNotesService } from '../../../src/nest/day-notes/day-notes.service'; diff --git a/server/tests/unit/days/days-itinerary.rpc.test.ts b/server/tests/unit/days/days-itinerary.rpc.test.ts index 2c8bb68ae..7fa4f508d 100644 --- a/server/tests/unit/days/days-itinerary.rpc.test.ts +++ b/server/tests/unit/days/days-itinerary.rpc.test.ts @@ -8,8 +8,8 @@ import { describe, it, expect, vi } from 'vitest'; import { expectRegisteredProvider } from '../../helpers/module-providers'; import { PluginRpcHost } from '../../../src/nest/plugins/host/rpc-host'; -import { createTestPluginRegistry } from '../../../src/nest/plugins/host/rpc-kit/testing'; -import { PluginGuards } from '../../../src/nest/plugins/host/plugin-guards.service'; +import { createTestPluginRegistry } from '../../../src/nest-rpc/rpc-kit/testing'; +import { PluginGuards } from '../../../src/nest-rpc/plugin-guards.service'; import { DaysRpc } from '../../../src/nest/days/days.rpc'; import { DaysModule } from '../../../src/nest/days/days.module'; import { ItineraryRpc } from '../../../src/nest/assignments/itinerary.rpc'; diff --git a/server/tests/unit/files/files.rpc.test.ts b/server/tests/unit/files/files.rpc.test.ts index 4e962f52d..40ed636cb 100644 --- a/server/tests/unit/files/files.rpc.test.ts +++ b/server/tests/unit/files/files.rpc.test.ts @@ -13,8 +13,8 @@ import { describe, it, expect, vi } from 'vitest'; import { expectRegisteredProvider } from '../../helpers/module-providers'; import { Readable } from 'node:stream'; import { PluginRpcHost } from '../../../src/nest/plugins/host/rpc-host'; -import { createTestPluginRegistry } from '../../../src/nest/plugins/host/rpc-kit/testing'; -import { PluginGuards } from '../../../src/nest/plugins/host/plugin-guards.service'; +import { createTestPluginRegistry } from '../../../src/nest-rpc/rpc-kit/testing'; +import { PluginGuards } from '../../../src/nest-rpc/plugin-guards.service'; import { FilesRpc } from '../../../src/nest/files/files.rpc'; import { FilesModule } from '../../../src/nest/files/files.module'; import { FilesService } from '../../../src/nest/files/files.service'; diff --git a/server/tests/unit/plugins/plugin-guards.test.ts b/server/tests/unit/nest-rpc/plugin-guards.test.ts similarity index 98% rename from server/tests/unit/plugins/plugin-guards.test.ts rename to server/tests/unit/nest-rpc/plugin-guards.test.ts index 93c6640bf..77cacd3d2 100644 --- a/server/tests/unit/plugins/plugin-guards.test.ts +++ b/server/tests/unit/nest-rpc/plugin-guards.test.ts @@ -5,13 +5,13 @@ * them, so these tests pin the exact strings rather than just the refusal. */ import { describe, it, expect, vi, beforeEach, afterEach } from 'vitest'; -import { PluginGuards } from '../../../src/nest/plugins/host/plugin-guards.service'; -import { BadParams, ForbiddenResource } from '../../../src/nest/plugins/host/rpc-errors'; +import { PluginGuards } from '../../../src/nest-rpc/plugin-guards.service'; +import { BadParams, ForbiddenResource } from '../../../src/nest-rpc/rpc-errors'; import type { TripsRepository } from '../../../src/db/repositories/Trips.repository'; import { PermissionsService } from '../../../src/nest/permissions/permissions.service'; import type { AddonsService } from '../../../src/nest/addons/addons.service'; import type { UsersRepository } from '../../../src/db/repositories/Users.repository'; -import type { PluginRpcContext } from '../../../src/nest/plugins/host/rpc-kit/types'; +import type { PluginRpcContext } from '../../../src/nest-rpc/rpc-kit/types'; import { UnitOfWork } from '../../../src/nest/database/unit-of-work'; import { createTestOrm, type TestOrm } from '../../helpers/test-orm'; import { createSnapshotTestDb } from '../../helpers/db-mock'; diff --git a/server/tests/unit/plugins/rpc-kit/decorators.test.ts b/server/tests/unit/nest-rpc/rpc-kit/decorators.test.ts similarity index 97% rename from server/tests/unit/plugins/rpc-kit/decorators.test.ts rename to server/tests/unit/nest-rpc/rpc-kit/decorators.test.ts index 806065fa6..18b2d66c7 100644 --- a/server/tests/unit/plugins/rpc-kit/decorators.test.ts +++ b/server/tests/unit/nest-rpc/rpc-kit/decorators.test.ts @@ -10,8 +10,8 @@ import { PluginHook, PluginMethod, PluginOpenMethod, -} from '../../../../src/nest/plugins/host/rpc-kit/decorators'; -import { getEntry, isPluginController, type ClassRef } from '../../../../src/nest/plugins/host/rpc-kit/metadata'; +} from '../../../../src/nest-rpc/rpc-kit/decorators'; +import { getEntry, isPluginController, type ClassRef } from '../../../../src/nest-rpc/rpc-kit/metadata'; const entryOf = (ctor: unknown, methodName: string) => getEntry(ctor as ClassRef, methodName); diff --git a/server/tests/unit/plugins/rpc-kit/metadata.test.ts b/server/tests/unit/nest-rpc/rpc-kit/metadata.test.ts similarity index 95% rename from server/tests/unit/plugins/rpc-kit/metadata.test.ts rename to server/tests/unit/nest-rpc/rpc-kit/metadata.test.ts index 83aab455a..e8de2ddd5 100644 --- a/server/tests/unit/plugins/rpc-kit/metadata.test.ts +++ b/server/tests/unit/nest-rpc/rpc-kit/metadata.test.ts @@ -10,8 +10,8 @@ import { isPluginController, markController, type ClassRef, -} from '../../../../src/nest/plugins/host/rpc-kit/metadata'; -import type { PluginRpcEntry } from '../../../../src/nest/plugins/host/rpc-kit/types'; +} from '../../../../src/nest-rpc/rpc-kit/metadata'; +import type { PluginRpcEntry } from '../../../../src/nest-rpc/rpc-kit/types'; const methodEntry = (methodName: string, method: 'tags.list' | 'tags.create' = 'tags.list'): PluginRpcEntry => ({ kind: 'method', diff --git a/server/tests/unit/plugins/rpc-kit/registry.service.test.ts b/server/tests/unit/nest-rpc/rpc-kit/registry.service.test.ts similarity index 96% rename from server/tests/unit/plugins/rpc-kit/registry.service.test.ts rename to server/tests/unit/nest-rpc/rpc-kit/registry.service.test.ts index a2a84c25a..ffba7cac7 100644 --- a/server/tests/unit/plugins/rpc-kit/registry.service.test.ts +++ b/server/tests/unit/nest-rpc/rpc-kit/registry.service.test.ts @@ -5,8 +5,8 @@ */ import { describe, it, expect, vi } from 'vitest'; import type { DiscoveryService, MetadataScanner } from '@nestjs/core'; -import { PluginRpcRegistryService } from '../../../../src/nest/plugins/host/rpc-kit/registry.service'; -import { PluginController, PluginMethod } from '../../../../src/nest/plugins/host/rpc-kit/decorators'; +import { PluginRpcRegistryService } from '../../../../src/nest-rpc/rpc-kit/registry.service'; +import { PluginController, PluginMethod } from '../../../../src/nest-rpc/rpc-kit/decorators'; @PluginController() class TagsRpc { diff --git a/server/tests/unit/plugins/rpc-kit/registry.test.ts b/server/tests/unit/nest-rpc/rpc-kit/registry.test.ts similarity index 97% rename from server/tests/unit/plugins/rpc-kit/registry.test.ts rename to server/tests/unit/nest-rpc/rpc-kit/registry.test.ts index 37872f4ec..ac1092bc7 100644 --- a/server/tests/unit/plugins/rpc-kit/registry.test.ts +++ b/server/tests/unit/nest-rpc/rpc-kit/registry.test.ts @@ -11,10 +11,10 @@ import { PluginHook, PluginMethod, PluginOpenMethod, -} from '../../../../src/nest/plugins/host/rpc-kit/decorators'; -import { PluginRpcRegistry } from '../../../../src/nest/plugins/host/rpc-kit/registry'; -import { createTestPluginRegistry } from '../../../../src/nest/plugins/host/rpc-kit/testing'; -import type { PluginRpcContext } from '../../../../src/nest/plugins/host/rpc-kit/types'; +} from '../../../../src/nest-rpc/rpc-kit/decorators'; +import { PluginRpcRegistry } from '../../../../src/nest-rpc/rpc-kit/registry'; +import { createTestPluginRegistry } from '../../../../src/nest-rpc/rpc-kit/testing'; +import type { PluginRpcContext } from '../../../../src/nest-rpc/rpc-kit/types'; const ctxFor = (actingUserId: number | undefined): PluginRpcContext => ({ pluginId: 'p', diff --git a/server/tests/unit/packing/packing.rpc.test.ts b/server/tests/unit/packing/packing.rpc.test.ts index 5d9713424..53affa0f1 100644 --- a/server/tests/unit/packing/packing.rpc.test.ts +++ b/server/tests/unit/packing/packing.rpc.test.ts @@ -9,8 +9,8 @@ import { describe, it, expect, vi, beforeEach } from 'vitest'; import { expectRegisteredProvider } from '../../helpers/module-providers'; import { PluginRpcHost } from '../../../src/nest/plugins/host/rpc-host'; -import { createTestPluginRegistry } from '../../../src/nest/plugins/host/rpc-kit/testing'; -import { PluginGuards } from '../../../src/nest/plugins/host/plugin-guards.service'; +import { createTestPluginRegistry } from '../../../src/nest-rpc/rpc-kit/testing'; +import { PluginGuards } from '../../../src/nest-rpc/plugin-guards.service'; import { PackingRpc } from '../../../src/nest/packing/packing.rpc'; import { PackingModule } from '../../../src/nest/packing/packing.module'; import { PackingService } from '../../../src/nest/packing/packing.service'; diff --git a/server/tests/unit/places/places.rpc.test.ts b/server/tests/unit/places/places.rpc.test.ts index 4c6d4c7a2..8112e560b 100644 --- a/server/tests/unit/places/places.rpc.test.ts +++ b/server/tests/unit/places/places.rpc.test.ts @@ -9,8 +9,8 @@ import { describe, it, expect, vi } from 'vitest'; import { expectRegisteredProvider } from '../../helpers/module-providers'; import { PluginRpcHost } from '../../../src/nest/plugins/host/rpc-host'; -import { createTestPluginRegistry } from '../../../src/nest/plugins/host/rpc-kit/testing'; -import { PluginGuards } from '../../../src/nest/plugins/host/plugin-guards.service'; +import { createTestPluginRegistry } from '../../../src/nest-rpc/rpc-kit/testing'; +import { PluginGuards } from '../../../src/nest-rpc/plugin-guards.service'; import { PlacesRpc } from '../../../src/nest/places/places.rpc'; import { PlacesModule } from '../../../src/nest/places/places.module'; import type { PlacesService } from '../../../src/nest/places/places.service'; diff --git a/server/tests/unit/plugins/addon-domains-errors.rpc.test.ts b/server/tests/unit/plugins/addon-domains-errors.rpc.test.ts index a1950b605..41b56786a 100644 --- a/server/tests/unit/plugins/addon-domains-errors.rpc.test.ts +++ b/server/tests/unit/plugins/addon-domains-errors.rpc.test.ts @@ -8,8 +8,8 @@ */ import { describe, it, expect, vi } from 'vitest'; import { PluginRpcHost } from '../../../src/nest/plugins/host/rpc-host'; -import { createTestPluginRegistry } from '../../../src/nest/plugins/host/rpc-kit/testing'; -import { PluginGuards } from '../../../src/nest/plugins/host/plugin-guards.service'; +import { createTestPluginRegistry } from '../../../src/nest-rpc/rpc-kit/testing'; +import { PluginGuards } from '../../../src/nest-rpc/plugin-guards.service'; import { CollabRpc } from '../../../src/nest/collab/collab.rpc'; import { AtlasRpc } from '../../../src/nest/atlas/atlas.rpc'; import { BucketItemExistsError } from '../../../src/nest/atlas/atlas.service'; diff --git a/server/tests/unit/plugins/addon-gates.rpc.test.ts b/server/tests/unit/plugins/addon-gates.rpc.test.ts index 339f34f8d..afe50f2d2 100644 --- a/server/tests/unit/plugins/addon-gates.rpc.test.ts +++ b/server/tests/unit/plugins/addon-gates.rpc.test.ts @@ -12,8 +12,8 @@ */ import { describe, it, expect, vi } from 'vitest'; import { PluginRpcHost } from '../../../src/nest/plugins/host/rpc-host'; -import { createTestPluginRegistry } from '../../../src/nest/plugins/host/rpc-kit/testing'; -import { PluginGuards } from '../../../src/nest/plugins/host/plugin-guards.service'; +import { createTestPluginRegistry } from '../../../src/nest-rpc/rpc-kit/testing'; +import { PluginGuards } from '../../../src/nest-rpc/plugin-guards.service'; import { CollabRpc } from '../../../src/nest/collab/collab.rpc'; import { AtlasRpc } from '../../../src/nest/atlas/atlas.rpc'; import { VacayRpc } from '../../../src/nest/vacay/vacay.rpc'; diff --git a/server/tests/unit/plugins/host-rpc.test.ts b/server/tests/unit/plugins/host-rpc.test.ts index 48b610bd3..5c0efc927 100644 --- a/server/tests/unit/plugins/host-rpc.test.ts +++ b/server/tests/unit/plugins/host-rpc.test.ts @@ -54,9 +54,9 @@ const { llmExtract } = vi.hoisted(() => ({ })); vi.mock('../../../src/nest/llm-parse/llm-client.factory', () => ({ createLlmClient: vi.fn(() => ({ extract: llmExtract })) })); import { PluginRpcHostFactory, type PluginCallRouter } from '../../../src/nest/plugins/host/plugin-rpc-host.factory'; -import { PluginRpcRegistryService } from '../../../src/nest/plugins/host/rpc-kit/registry.service'; -import { createTestPluginRegistry } from '../../../src/nest/plugins/host/rpc-kit/testing'; -import { PluginGuards } from '../../../src/nest/plugins/host/plugin-guards.service'; +import { PluginRpcRegistryService } from '../../../src/nest-rpc/rpc-kit/registry.service'; +import { createTestPluginRegistry } from '../../../src/nest-rpc/rpc-kit/testing'; +import { PluginGuards } from '../../../src/nest-rpc/plugin-guards.service'; import { DbRpc } from '../../../src/nest/plugins/host/rpc/db.rpc'; import type { PluginUserSettingsService } from '../../../src/nest/plugins/plugin-user-settings.service'; import { MetaRpc } from '../../../src/nest/plugins/host/rpc/meta.rpc'; diff --git a/server/tests/unit/plugins/output-contract.schema.test.ts b/server/tests/unit/plugins/output-contract.schema.test.ts index b656cea11..66fa277b6 100644 --- a/server/tests/unit/plugins/output-contract.schema.test.ts +++ b/server/tests/unit/plugins/output-contract.schema.test.ts @@ -40,8 +40,8 @@ import { createUser, linkTripToJourney, } from '../../helpers/factories'; -import { createTestPluginRegistry } from '../../../src/nest/plugins/host/rpc-kit/testing'; -import type { PluginRpcContext } from '../../../src/nest/plugins/host/rpc-kit/types'; +import { createTestPluginRegistry } from '../../../src/nest-rpc/rpc-kit/testing'; +import type { PluginRpcContext } from '../../../src/nest-rpc/rpc-kit/types'; import type { PluginRpcHost } from '../../../src/nest/plugins/host/rpc-host'; import { KNOWN_PERMISSIONS, type RpcResponse } from '../../../src/nest/plugins/protocol/envelope'; import { diff --git a/server/tests/unit/plugins/output-contract.test.ts b/server/tests/unit/plugins/output-contract.test.ts index 3718a8e33..bda20588e 100644 --- a/server/tests/unit/plugins/output-contract.test.ts +++ b/server/tests/unit/plugins/output-contract.test.ts @@ -4,9 +4,9 @@ * schema and real-service side is output-contract.schema.test.ts. */ import { describe, expect, it } from 'vitest'; -import { PluginController, PluginMethod } from '../../../src/nest/plugins/host/rpc-kit/decorators'; -import { createTestPluginRegistry } from '../../../src/nest/plugins/host/rpc-kit/testing'; -import type { PluginRpcContext } from '../../../src/nest/plugins/host/rpc-kit/types'; +import { PluginController, PluginMethod } from '../../../src/nest-rpc/rpc-kit/decorators'; +import { createTestPluginRegistry } from '../../../src/nest-rpc/rpc-kit/testing'; +import type { PluginRpcContext } from '../../../src/nest-rpc/rpc-kit/types'; import { PluginRpcHost } from '../../../src/nest/plugins/host/rpc-host'; import { KNOWN_METHODS, UNCONDITIONAL_METHODS, type RpcResponse } from '../../../src/nest/plugins/protocol/envelope'; import { diff --git a/server/tests/unit/plugins/plugin-hooks.test.ts b/server/tests/unit/plugins/plugin-hooks.test.ts index 62bbe40bf..d65f7ae1c 100644 --- a/server/tests/unit/plugins/plugin-hooks.test.ts +++ b/server/tests/unit/plugins/plugin-hooks.test.ts @@ -12,7 +12,7 @@ import { describe, it, expect, vi } from 'vitest'; import { expectRegisteredProvider } from '../../helpers/module-providers'; import { PluginHooks } from '../../../src/nest/plugins/plugin-hooks.service'; import { PluginsRuntimeModule } from '../../../src/nest/plugins/plugins-runtime.module'; -import { createTestPluginRegistry } from '../../../src/nest/plugins/host/rpc-kit/testing'; +import { createTestPluginRegistry } from '../../../src/nest-rpc/rpc-kit/testing'; import { HOOK_PERMISSION } from '../../../src/nest/plugins/protocol/envelope'; import type { PluginRuntimeService } from '../../../src/nest/plugins/plugin-runtime.service'; diff --git a/server/tests/unit/plugins/request-context.test.ts b/server/tests/unit/plugins/request-context.test.ts index 34fd795de..2a58628dd 100644 --- a/server/tests/unit/plugins/request-context.test.ts +++ b/server/tests/unit/plugins/request-context.test.ts @@ -34,7 +34,7 @@ import { createSnapshotTestDb } from '../../helpers/db-mock'; import { createUser } from '../../helpers/factories'; import { createTestAddonsService } from '../../helpers/test-addons'; import { PermissionsService } from '../../../src/nest/permissions/permissions.service'; -import { PluginGuards } from '../../../src/nest/plugins/host/plugin-guards.service'; +import { PluginGuards } from '../../../src/nest-rpc/plugin-guards.service'; import { PluginSupervisor } from '../../../src/nest/plugins/supervisor/plugin-supervisor'; import { UnitOfWork } from '../../../src/nest/database/unit-of-work'; import { RpcRateLimiter, DEFAULT_RPC_LIMIT } from '../../../src/nest/plugins/host/rate-limit'; diff --git a/server/tests/unit/plugins/rpc-coverage.test.ts b/server/tests/unit/plugins/rpc-coverage.test.ts index 9d5516d14..94b37e479 100644 --- a/server/tests/unit/plugins/rpc-coverage.test.ts +++ b/server/tests/unit/plugins/rpc-coverage.test.ts @@ -11,8 +11,8 @@ */ import { describe, it, expect } from 'vitest'; import { PluginRpcHost } from '../../../src/nest/plugins/host/rpc-host'; -import { createTestPluginRegistry } from '../../../src/nest/plugins/host/rpc-kit/testing'; -import { PluginRpcRegistryService } from '../../../src/nest/plugins/host/rpc-kit/registry.service'; +import { createTestPluginRegistry } from '../../../src/nest-rpc/rpc-kit/testing'; +import { PluginRpcRegistryService } from '../../../src/nest-rpc/rpc-kit/registry.service'; import { KNOWN_METHODS, KNOWN_PERMISSIONS, diff --git a/server/tests/unit/plugins/rpc-fallbacks.test.ts b/server/tests/unit/plugins/rpc-fallbacks.test.ts index d34e098d9..a518faee0 100644 --- a/server/tests/unit/plugins/rpc-fallbacks.test.ts +++ b/server/tests/unit/plugins/rpc-fallbacks.test.ts @@ -10,8 +10,8 @@ */ import { describe, it, expect, vi } from 'vitest'; import { PluginRpcHost } from '../../../src/nest/plugins/host/rpc-host'; -import { createTestPluginRegistry } from '../../../src/nest/plugins/host/rpc-kit/testing'; -import { PluginGuards } from '../../../src/nest/plugins/host/plugin-guards.service'; +import { createTestPluginRegistry } from '../../../src/nest-rpc/rpc-kit/testing'; +import { PluginGuards } from '../../../src/nest-rpc/plugin-guards.service'; import { TagsRpc } from '../../../src/nest/tags/tags.rpc'; import { DayNotesRpc } from '../../../src/nest/day-notes/day-notes.rpc'; import { PlacesRpc } from '../../../src/nest/places/places.rpc'; @@ -30,7 +30,7 @@ import type { AddonsService } from '../../../src/nest/addons/addons.service'; import type { UsersRepository } from '../../../src/db/repositories/Users.repository'; import type { RpcRequest, RpcError } from '../../../src/nest/plugins/protocol/envelope'; import { makeDeps } from '../../helpers/rpc-host-deps'; -import { schemaMessage } from '../../../src/nest/plugins/host/rpc-params'; +import { schemaMessage } from '../../../src/nest-rpc/rpc-params'; const req = (method: string, params: Record = {}): RpcRequest => ({ k: 'req', id: 'x', method, params }); const err = (r: unknown) => (r as RpcError).error; diff --git a/server/tests/unit/plugins/rpc-host-inv-strip.test.ts b/server/tests/unit/plugins/rpc-host-inv-strip.test.ts index 48dde9b98..3f570db1a 100644 --- a/server/tests/unit/plugins/rpc-host-inv-strip.test.ts +++ b/server/tests/unit/plugins/rpc-host-inv-strip.test.ts @@ -10,13 +10,13 @@ import { describe, it, expect, vi } from 'vitest'; import { PluginRpcHost } from '../../../src/nest/plugins/host/rpc-host'; import type { RpcRequest, RpcResponse } from '../../../src/nest/plugins/protocol/envelope'; import { makeDeps } from '../../helpers/rpc-host-deps'; -import { createTestPluginRegistry } from '../../../src/nest/plugins/host/rpc-kit/testing'; +import { createTestPluginRegistry } from '../../../src/nest-rpc/rpc-kit/testing'; import { PackingRpc } from '../../../src/nest/packing/packing.rpc'; import type { PackingService } from '../../../src/nest/packing/packing.service'; import type { RealtimeService } from '../../../src/nest/realtime/realtime.service'; import { TripsRpc } from '../../../src/nest/trips/trips.rpc'; import { DbRpc } from '../../../src/nest/plugins/host/rpc/db.rpc'; -import { PluginGuards } from '../../../src/nest/plugins/host/plugin-guards.service'; +import { PluginGuards } from '../../../src/nest-rpc/plugin-guards.service'; import type { EntityManager } from '@mikro-orm/core'; import type { TripsRepository } from '../../../src/db/repositories/Trips.repository'; import type { PluginUserSettingsService } from '../../../src/nest/plugins/plugin-user-settings.service'; diff --git a/server/tests/unit/plugins/rpc-host.test.ts b/server/tests/unit/plugins/rpc-host.test.ts index 6273f5c76..d8877981c 100644 --- a/server/tests/unit/plugins/rpc-host.test.ts +++ b/server/tests/unit/plugins/rpc-host.test.ts @@ -9,9 +9,9 @@ */ import { describe, it, expect, vi } from 'vitest'; import { PluginRpcHost, BadParams, ForbiddenResource, type HostDeps } from '../../../src/nest/plugins/host/rpc-host'; -import { PluginController, PluginMethod, PluginOpenMethod } from '../../../src/nest/plugins/host/rpc-kit/decorators'; -import { createTestPluginRegistry } from '../../../src/nest/plugins/host/rpc-kit/testing'; -import type { PluginRpcContext } from '../../../src/nest/plugins/host/rpc-kit/types'; +import { PluginController, PluginMethod, PluginOpenMethod } from '../../../src/nest-rpc/rpc-kit/decorators'; +import { createTestPluginRegistry } from '../../../src/nest-rpc/rpc-kit/testing'; +import type { PluginRpcContext } from '../../../src/nest-rpc/rpc-kit/types'; import type { RpcRequest, RpcResponse, RpcError } from '../../../src/nest/plugins/protocol/envelope'; import { makeDeps } from '../../helpers/rpc-host-deps'; diff --git a/server/tests/unit/plugins/tenant-free.rpc.test.ts b/server/tests/unit/plugins/tenant-free.rpc.test.ts index 9633e2bfa..0492a0003 100644 --- a/server/tests/unit/plugins/tenant-free.rpc.test.ts +++ b/server/tests/unit/plugins/tenant-free.rpc.test.ts @@ -8,7 +8,7 @@ import { describe, it, expect, vi } from 'vitest'; import { expectRegisteredProvider } from '../../helpers/module-providers'; import { PluginRpcHost } from '../../../src/nest/plugins/host/rpc-host'; -import { createTestPluginRegistry } from '../../../src/nest/plugins/host/rpc-kit/testing'; +import { createTestPluginRegistry } from '../../../src/nest-rpc/rpc-kit/testing'; import { CategoriesRpc } from '../../../src/nest/categories/categories.rpc'; import { CategoriesModule } from '../../../src/nest/categories/categories.module'; import { WeatherRpc } from '../../../src/nest/weather/weather.rpc'; diff --git a/server/tests/unit/reservations/bookings.rpc.test.ts b/server/tests/unit/reservations/bookings.rpc.test.ts index 839656f2e..fe2ff63e2 100644 --- a/server/tests/unit/reservations/bookings.rpc.test.ts +++ b/server/tests/unit/reservations/bookings.rpc.test.ts @@ -11,8 +11,8 @@ import { describe, it, expect, vi } from 'vitest'; import { expectRegisteredProvider } from '../../helpers/module-providers'; import { PluginRpcHost } from '../../../src/nest/plugins/host/rpc-host'; -import { createTestPluginRegistry } from '../../../src/nest/plugins/host/rpc-kit/testing'; -import { PluginGuards } from '../../../src/nest/plugins/host/plugin-guards.service'; +import { createTestPluginRegistry } from '../../../src/nest-rpc/rpc-kit/testing'; +import { PluginGuards } from '../../../src/nest-rpc/plugin-guards.service'; import { ReservationsRpc } from '../../../src/nest/reservations/reservations.rpc'; import { ReservationsModule } from '../../../src/nest/reservations/reservations.module'; import { AccommodationsRpc } from '../../../src/nest/accommodations/accommodations.rpc'; diff --git a/server/tests/unit/scripts/import-boundaries.test.ts b/server/tests/unit/scripts/import-boundaries.test.ts index 1e8c9ba4f..49e801f8e 100644 --- a/server/tests/unit/scripts/import-boundaries.test.ts +++ b/server/tests/unit/scripts/import-boundaries.test.ts @@ -124,7 +124,7 @@ describe('import-boundaries.mjs', () => { 'nest/b/b.helpers.ts': 'export const h = 1;\n', 'nest/b/b.types.ts': 'export interface T { x: number }\n', 'nest/common/row-id.ts': 'export const id = 1;\n', - 'nest/plugins/host/rpc-kit/decorators.ts': 'export const Rpc = 1;\n', + 'nest/audit/client-ip.ts': 'export const Rpc = 1;\n', }; const ok = serverRoot({ ...files, @@ -132,7 +132,7 @@ describe('import-boundaries.mjs', () => { "import { B } from '../b/b.service';", "import type { T } from '../b/b.types';", "import { id } from '../common/row-id';", - "import { Rpc } from '../plugins/host/rpc-kit/decorators';", + "import { Rpc } from '../audit/client-ip';", 'export const a: [unknown, T | null, number, number] = [B, null, id, Rpc];', '', ].join('\n'), diff --git a/server/tests/unit/tags/tags.rpc.test.ts b/server/tests/unit/tags/tags.rpc.test.ts index b5a19ab5e..ac8517c18 100644 --- a/server/tests/unit/tags/tags.rpc.test.ts +++ b/server/tests/unit/tags/tags.rpc.test.ts @@ -10,12 +10,12 @@ import { describe, it, expect, vi, beforeEach } from 'vitest'; import { expectRegisteredProvider } from '../../helpers/module-providers'; import { PluginRpcHost } from '../../../src/nest/plugins/host/rpc-host'; -import { createTestPluginRegistry } from '../../../src/nest/plugins/host/rpc-kit/testing'; -import { BadParams, ForbiddenResource } from '../../../src/nest/plugins/host/rpc-errors'; +import { createTestPluginRegistry } from '../../../src/nest-rpc/rpc-kit/testing'; +import { BadParams, ForbiddenResource } from '../../../src/nest-rpc/rpc-errors'; import { TagsRpc } from '../../../src/nest/tags/tags.rpc'; import { TagsModule } from '../../../src/nest/tags/tags.module'; import type { TagsService } from '../../../src/nest/tags/tags.service'; -import type { PluginRpcContext } from '../../../src/nest/plugins/host/rpc-kit/types'; +import type { PluginRpcContext } from '../../../src/nest-rpc/rpc-kit/types'; import type { RpcRequest, RpcError } from '../../../src/nest/plugins/protocol/envelope'; import { makeDeps } from '../../helpers/rpc-host-deps'; diff --git a/server/tests/unit/todo/todo.rpc.test.ts b/server/tests/unit/todo/todo.rpc.test.ts index 723443e37..b1573df3e 100644 --- a/server/tests/unit/todo/todo.rpc.test.ts +++ b/server/tests/unit/todo/todo.rpc.test.ts @@ -6,8 +6,8 @@ import { describe, it, expect, vi, beforeEach } from 'vitest'; import { expectRegisteredProvider } from '../../helpers/module-providers'; import { PluginRpcHost } from '../../../src/nest/plugins/host/rpc-host'; -import { createTestPluginRegistry } from '../../../src/nest/plugins/host/rpc-kit/testing'; -import { PluginGuards } from '../../../src/nest/plugins/host/plugin-guards.service'; +import { createTestPluginRegistry } from '../../../src/nest-rpc/rpc-kit/testing'; +import { PluginGuards } from '../../../src/nest-rpc/plugin-guards.service'; import { TodoRpc } from '../../../src/nest/todo/todo.rpc'; import { TodoModule } from '../../../src/nest/todo/todo.module'; import type { TodoService } from '../../../src/nest/todo/todo.service'; diff --git a/server/tests/unit/trips/trips.rpc.test.ts b/server/tests/unit/trips/trips.rpc.test.ts index 988a1cc4f..b9eee1e5f 100644 --- a/server/tests/unit/trips/trips.rpc.test.ts +++ b/server/tests/unit/trips/trips.rpc.test.ts @@ -11,8 +11,8 @@ import { describe, it, expect, vi } from 'vitest'; import type { EntityManager } from '@mikro-orm/core'; import { expectRegisteredProvider } from '../../helpers/module-providers'; import { PluginRpcHost } from '../../../src/nest/plugins/host/rpc-host'; -import { createTestPluginRegistry } from '../../../src/nest/plugins/host/rpc-kit/testing'; -import { PluginGuards } from '../../../src/nest/plugins/host/plugin-guards.service'; +import { createTestPluginRegistry } from '../../../src/nest-rpc/rpc-kit/testing'; +import { PluginGuards } from '../../../src/nest-rpc/plugin-guards.service'; import { TripsRpc } from '../../../src/nest/trips/trips.rpc'; import { TripsModule } from '../../../src/nest/trips/trips.module'; import { NotFoundError, ValidationError } from '../../../src/nest/trips/trips.service'; diff --git a/server/vitest.config.ts b/server/vitest.config.ts index 335513852..b795a264d 100644 --- a/server/vitest.config.ts +++ b/server/vitest.config.ts @@ -215,6 +215,9 @@ export default defineConfig({ // The folded-in nest-mcp decorator/registry layer keeps the 80% floor // its own workspace gate enforced (tests/unit/nest-mcp/). 'src/nest-mcp/**/*.ts': { statements: 80, branches: 80, functions: 80, lines: 80 }, + // The plugin RPC kit (rpc-kit, rpc-params, rpc-errors, PluginGuards), moved + // out of src/nest/plugins with its tests (tests/unit/nest-rpc/). + 'src/nest-rpc/**/*.ts': { statements: 92, branches: 85, functions: 95, lines: 94 }, 'src/systemNotices/**/*.ts': { statements: 84, branches: 67, functions: 93, lines: 85 }, 'src/utils/**/*.ts': { statements: 92, branches: 87, functions: 89, lines: 96 }, // index.ts, bootstrap.ts, scheduler.ts, config.ts, websocket.ts and the