mirror of
https://github.com/mauriceboe/TREK.git
synced 2026-10-18 21:16:47 +00:00
refactor(plugins): the plugin RPC kit moves out of the plugins domain into src/nest-rpc
Every domain's *.rpc.ts was written against rpc-kit, rpc-params, rpc-errors and PluginGuards, and every domain module imported PluginGuardsModule, all of it inside src/nest/plugins, while PluginsRuntimeModule imports those same domains so their handlers exist at boot. That made the plugins domain part of every cycle. The kit imports no domain but the protocol tables and permissions/addons for the guards, so it moves to src/nest-rpc beside src/nest-mcp, with its tests, its README and its extraction rule; the runtime module keeps its domain imports, which the boot-time coverage check of the wire surface needs in any subset app.
This commit is contained in:
@@ -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`
|
||||
|
||||
+13
-41
@@ -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.',
|
||||
},
|
||||
],
|
||||
},
|
||||
|
||||
@@ -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",
|
||||
|
||||
@@ -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',
|
||||
|
||||
+4
-4
@@ -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';
|
||||
|
||||
/**
|
||||
+6
-6
@@ -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';
|
||||
+7
-4
@@ -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
|
||||
+1
-1
@@ -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';
|
||||
|
||||
/**
|
||||
+1
-1
@@ -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,
|
||||
+2
-2
@@ -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.
|
||||
@@ -16,7 +16,7 @@ server/src/nest/<domain>/<domain>.service.ts # business logic, an injectable
|
||||
server/src/nest/<domain>/<domain>.controller.ts # REST routes, thin: validate, call the service, shape the reply
|
||||
server/src/nest/<domain>/<domain>.module.ts # registered in app.module.ts
|
||||
server/src/nest/<domain>/<domain>.mcp.ts # MCP tools/resources/prompts (@Tool, @Resource, @Prompt)
|
||||
server/src/nest/<domain>/<domain>.rpc.ts # plugin RPC methods (@PluginMethod), see plugins/host/rpc-kit/README.md
|
||||
server/src/nest/<domain>/<domain>.rpc.ts # plugin RPC methods (@PluginMethod), see src/nest-rpc/rpc-kit/README.md
|
||||
server/src/nest/<domain>/<name>.job.ts # a cron, registered on scheduling/CronRegistrarService
|
||||
server/src/nest/<domain>/<domain>.helpers.ts # pure functions the service and its tests share
|
||||
```
|
||||
|
||||
@@ -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';
|
||||
|
||||
/**
|
||||
|
||||
@@ -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';
|
||||
|
||||
|
||||
@@ -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';
|
||||
|
||||
@@ -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';
|
||||
|
||||
|
||||
@@ -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';
|
||||
|
||||
@@ -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';
|
||||
|
||||
|
||||
@@ -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';
|
||||
|
||||
@@ -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';
|
||||
|
||||
@@ -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';
|
||||
|
||||
/**
|
||||
|
||||
@@ -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';
|
||||
|
||||
/**
|
||||
|
||||
@@ -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';
|
||||
|
||||
@@ -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';
|
||||
|
||||
@@ -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';
|
||||
|
||||
@@ -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';
|
||||
|
||||
|
||||
@@ -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';
|
||||
|
||||
@@ -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';
|
||||
|
||||
|
||||
@@ -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';
|
||||
|
||||
@@ -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';
|
||||
|
||||
@@ -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';
|
||||
|
||||
@@ -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';
|
||||
|
||||
@@ -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';
|
||||
|
||||
@@ -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';
|
||||
|
||||
@@ -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';
|
||||
|
||||
@@ -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';
|
||||
|
||||
@@ -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';
|
||||
|
||||
@@ -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';
|
||||
|
||||
@@ -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';
|
||||
|
||||
@@ -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';
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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';
|
||||
|
||||
/**
|
||||
|
||||
@@ -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';
|
||||
|
||||
@@ -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';
|
||||
|
||||
@@ -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. */
|
||||
|
||||
@@ -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';
|
||||
|
||||
@@ -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';
|
||||
|
||||
@@ -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';
|
||||
|
||||
|
||||
@@ -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';
|
||||
|
||||
/**
|
||||
|
||||
@@ -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';
|
||||
|
||||
@@ -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';
|
||||
|
||||
|
||||
@@ -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';
|
||||
|
||||
@@ -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';
|
||||
|
||||
@@ -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';
|
||||
|
||||
@@ -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';
|
||||
|
||||
|
||||
@@ -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';
|
||||
|
||||
/**
|
||||
|
||||
@@ -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';
|
||||
|
||||
@@ -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';
|
||||
|
||||
@@ -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';
|
||||
|
||||
@@ -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';
|
||||
|
||||
@@ -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';
|
||||
|
||||
@@ -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';
|
||||
|
||||
@@ -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';
|
||||
|
||||
+3
-3
@@ -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';
|
||||
+2
-2
@@ -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);
|
||||
|
||||
+2
-2
@@ -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',
|
||||
+2
-2
@@ -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 {
|
||||
+4
-4
@@ -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',
|
||||
@@ -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';
|
||||
|
||||
@@ -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';
|
||||
|
||||
@@ -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';
|
||||
|
||||
@@ -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';
|
||||
|
||||
@@ -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';
|
||||
|
||||
@@ -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 {
|
||||
|
||||
@@ -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 {
|
||||
|
||||
@@ -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';
|
||||
|
||||
|
||||
@@ -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';
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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<string, unknown> = {}): RpcRequest => ({ k: 'req', id: 'x', method, params });
|
||||
const err = (r: unknown) => (r as RpcError).error;
|
||||
|
||||
@@ -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';
|
||||
|
||||
@@ -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';
|
||||
|
||||
|
||||
@@ -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';
|
||||
|
||||
@@ -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';
|
||||
|
||||
@@ -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'),
|
||||
|
||||
@@ -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';
|
||||
|
||||
|
||||
@@ -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';
|
||||
|
||||
@@ -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';
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user