/** * Runtime Participant Resolver * * Determines the `webpiecesRuntime` field written per project into * architecture/dependencies.json: WHICH @webpieces runtime packages this project's own * package.json declares. * * The runtime graph is built entirely out of webpieces contracts — routes registered through * http-routing, clients built through http-client-*, tasks enqueued through cloudtasks-client. A * process that declares NONE of those cannot appear on it as anything but a disconnected box: it * has no edges by construction and never will. Drawing it says "here is a service in this runtime" * about a service that is not in this runtime. * * DELIBERATELY NOT MARKERS: core-context, core-util, core-mock, winston, gcp-identity. Those are * utility/logging/auth-token packages that say nothing about whether a process speaks the webpieces * runtime — a NestJS service can and does use them. Two real ones prove it: orders-manager and * webhook-proxy-handler are pure NestJS/typeorm services that declare @webpieces/core-context, and * both must stay off the runtime drawing. Adding core-context here would silently draw them again. * * This resolver reports a project's OWN declarations only. Whether a NODE participates is decided * in runtime-graph.ts, which ORs this over the node's library closure — a service can legitimately * get its whole webpieces stack from a shared bootstrap library and declare nothing itself. */ import { ProjectInfo } from './project-info'; /** * Declaring one of these means the process speaks the webpieces runtime. * * Every entry is an actual runtime seam — serving HTTP (http-routing/http-server), calling it * (http-client-node/http-client-browser), or queueing work (cloudtasks-client). Nothing here is a * utility package; see the file header for why that distinction is the whole point. */ export declare const WEBPIECES_RUNTIME_MARKERS: ReadonlyArray; export declare class RuntimeParticipantResolution { /** * Marker packages this project's OWN package.json declares, sorted. An empty array means it * declares none. `null` means there was no package.json to read at all — UNKNOWN, which is * never the same as "declares none" and must not be recorded as a negative. */ readonly markers: string[] | null; /** Problem description when resolution failed, otherwise null. */ readonly problem: string | null; constructor( /** * Marker packages this project's OWN package.json declares, sorted. An empty array means it * declares none. `null` means there was no package.json to read at all — UNKNOWN, which is * never the same as "declares none" and must not be recorded as a negative. */ markers: string[] | null, /** Problem description when resolution failed, otherwise null. */ problem: string | null); } export declare function resolveRuntimeParticipant(info: ProjectInfo, workspaceRoot: string): RuntimeParticipantResolution; /** * Announce the role:server projects left off the runtime DRAWING for speaking no webpieces runtime * package. Shared by generate and validate so a local run and a CI log tell the same story. * * console.log, never a warning and never a problem: this is intended behavior, and a ⚠️ on every * clean run is exactly how a warning stream stops being read. But it is never SILENT either — the * omission is the thing #542 was written about, so it always says which projects and why. */ export declare function printAutoHiddenServers(autoHidden: string[]): void;