everything-dev
Version:
A consolidated product package for building Module Federation apps with oRPC APIs.
67 lines • 2.81 kB
text/typescript
import { BosConfig } from "../../types.cjs";
import { IntegrityRegistry } from "../deploy/integrity.cjs";
import { createInstance } from "@module-federation/enhanced/runtime";
//#region src/services/federation/service.d.ts
type FederationInstance = ReturnType<typeof createInstance>;
declare function patchManifestFetchForSsrPublicPath(mf: FederationInstance): void;
declare function installIntegrityFetchHook(mf: FederationInstance, registry: IntegrityRegistry, options?: {
cacheDir?: string;
}): void;
declare function getFederationInstance(): FederationInstance;
declare function registerRemote(opts: {
name: string;
entry: string;
type?: "manifest" | "script";
}): Promise<void>;
declare function loadRemoteModule<T>(specifier: string, options?: {
loadFactory?: boolean;
from?: "build" | "runtime";
}): Promise<T>;
declare function ensureNodeRuntimePlugin(): Promise<void>;
interface FederationCompatRemote {
role: string;
url: string;
reachable: boolean;
pluginVersion: string | null;
ok: boolean;
reason?: string;
}
interface FederationCompatReport {
ok: boolean;
hostVersion: string | null;
hostReachable: boolean;
hostReason?: string;
remotes: FederationCompatRemote[];
}
declare function satisfiesConstraint(version: string, constraint: string): boolean;
interface UiCompositionSlot {
slot: string;
url: string;
reachable: boolean;
ok: boolean;
reason?: string;
}
interface UiCompositionReport {
ok: boolean;
slots: UiCompositionSlot[];
}
/**
* The UI composition compat check (#546) — mf check's mirror of the host's
* boot guard. The core UI remote is the composition's shared-singleton
* provider; plugin UI remotes are consumers. Any singleton named by two or
* more UI manifests at different versions fails the composition at
* `mf.loadRemote` with the federation runtime's cryptic negotiation error —
* this names the slots and versions instead. Server remotes (api/auth) are
* intentionally out of scope: the host-side `checkFederationCompat` covers
* them against the host's own core map.
*/
declare function checkUiCompositionCompat(bosConfig: BosConfig | null, opts?: {
timeoutMs?: number;
}): Promise<UiCompositionReport>;
declare function checkFederationCompat(bosConfig: BosConfig | null, opts?: {
timeoutMs?: number;
}): Promise<FederationCompatReport>;
declare function loadBosConfigForMfCheck(configPath: string): BosConfig;
//#endregion
export { FederationCompatRemote, FederationCompatReport, UiCompositionReport, UiCompositionSlot, checkFederationCompat, checkUiCompositionCompat, ensureNodeRuntimePlugin, getFederationInstance, installIntegrityFetchHook, loadBosConfigForMfCheck, loadRemoteModule, patchManifestFetchForSsrPublicPath, registerRemote, satisfiesConstraint };
//# sourceMappingURL=service.d.cts.map