---
title: "Référence d'API — nodefony/client — racine"
source: docs/api/core/client.md
url: https://nodefony.github.io/nodefony-core/docs/api/core/client/
---


[Documentation](../../../) › [Référence d'API](../../) › [`nodefony`](../) › client

> Générée depuis les déclarations de types publiées de `nodefony` **10.0.0-beta.6** : exactement ce que reçoit une application qui l'installe. Cette page n'existe dans aucun dépôt — pour la corriger, on corrige le TSDoc du code.

## `nodefony/client`

`import { … } from "nodefony/client"` — 11 symboles.

### Classes (1)

#### `NodefonyKernel`

```ts
class NodefonyKernel implements INodefonyKernel
```

Kernel client — se construit par `new`, comme `NodefonySocket` et `NodefonySse` : jamais un singleton de module (testabilité, HMR-safe : un module réévalué par Vite dédoublerait un singleton, gotcha vécu sur le contexte React de Studio), et plusieurs kernels coexistent en test.

- `readonly syslog: Syslog` — Journal client de série — `Pdu` isomorphes, corrélables au back.
- `constructor(options?: NodefonyKernelOptions)`
- `get<K extends keyof NodefonyKernelServices>(name: K): NodefonyKernelServices[K]` — Récupère un service composé, typé par le registre.
- `set<K extends keyof NodefonyKernelServices>(name: K, svc: NodefonyKernelServices[K]): void` — Enregistre un service sous son nom contractuel.
- `has(name: string): boolean` — Teste la présence d'un service — nom libre, y compris hors contrat.
- `get state(): NodefonyKernelState` — État courant — jamais régressif.
- `boot(): Promise<void>` — Compose et connecte les services.
- `terminate(): Promise<void>` — Flush l'observabilité et déconnecte.
- `get name(): string` — Nom du kernel — celui donné à la fabrique, `CLIENT KERNEL` par défaut.
- `get identity(): NodefonyKernelIdentity | null` — Identité runtime courante, telle que l'application l'a déclarée.
- `setIdentity(identity: NodefonyKernelIdentity | null): void` — Déclare l'identité runtime — et applique la règle de sécurité D9, née d'une fuite vécue en production.
- `on(event: NodefonyKernelEvent, handler: (...args: unknown[]) => void): this` — Abonne un handler à un événement du kernel (bus `Event` du cœur, chaînable).
- `off(event: NodefonyKernelEvent, handler: (...args: unknown[]) => void): this` — Retire un handler abonné par `on`.
- `get browserListenerCount(): number` — Nombre de listeners navigateur encore posés.

### Fonctions (3)

#### `adoptStyles`

```ts
function adoptStyles(css: string, root?: StyleRoot): CSSStyleSheet | HTMLStyleElement
```

Applique une feuille de style à une racine sans la soumettre à `style-src`.

#### `generateId`

```ts
function generateId(): string
```

Génère un identifiant unique (UUID v4) côté client.

#### `readCspNonce`

```ts
function readCspNonce(doc?: Document): string
```

Nonce CSP de la page, ou `undefined` si elle n'en annonce aucun.

### Interfaces (4)

#### `INodefonyKernel`

```ts
interface INodefonyKernel
```

Contrat du kernel client isomorphe (ADR-0007 D2 — surface v1, volontairement minimale : chaque méthode publiée est une promesse SemVer).

- `get<K extends keyof NodefonyKernelServices>(name: K): NodefonyKernelServices[K]` — Récupère un service enregistré (ou `undefined` s'il n'est pas composé).
- `set<K extends keyof NodefonyKernelServices>(name: K, svc: NodefonyKernelServices[K]): void` — Enregistre un service sous son nom contractuel.
- `has(name: string): boolean` — Teste la présence d'un service (nom libre, y compris hors contrat).
- `boot(): Promise<void>` — Compose et connecte les services (idempotent).
- `terminate(): Promise<void>` — Flush l'observabilité et déconnecte (best-effort sur `pagehide`).
- `readonly state: NodefonyKernelState` — État courant du kernel — jamais régressif.
- `setIdentity(identity: NodefonyKernelIdentity | null): void` — Déclare l'identité runtime courante — c'est l'application qui la connaît (login, logout, bascule de compte), le kernel qui en tire les conséquences.
- `readonly identity: NodefonyKernelIdentity | null` — Identité runtime courante, telle que l'application l'a déclarée.
- `on(event: NodefonyKernelEvent, handler: (...args: unknown[]) => void): this` — Abonne un handler à un événement du kernel (API `Event` du Core, chaînable).
- `off(event: NodefonyKernelEvent, handler: (...args: unknown[]) => void): this` — Retire un handler abonné par `on` (chaînable).
- `readonly syslog: Syslog` — Journal client de série (`Pdu` isomorphes — corrélables au back par `requestId`).

#### `NodefonyKernelIdentity`

```ts
interface NodefonyKernelIdentity
```

Identité runtime déclarée par l'application au kernel.

- `readonly key: string` — Clé stable du compte — l'unique critère du re-handshake (D9).
- `readonly data?: unknown` — Charge libre, opaque au kernel.

#### `NodefonyKernelOptions`

```ts
interface NodefonyKernelOptions
```

Options de `new NodefonyKernel()`.

- `name?: string` — Nom du kernel — sert de `msgid` dans les journaux client.
- `realtime?: NodefonySocket | NodefonySocketOptions | false` — La socket de l'application.
- `browserEvents?: boolean` — Ponter les événements du navigateur (`visibilitychange`, `online`/`offline`, `pagehide`) sur les événements du kernel.
- `connectOnBoot?: boolean` — Ouvrir la socket au `boot()`.
- `banner?: boolean` — Annoncer le kernel dans la console du navigateur au `boot()`.

#### `NodefonyKernelServices`

```ts
interface NodefonyKernelServices
```

Registre TYPÉ des services techniques portés par le kernel client.

- `realtime?: NodefonySocket` — La socket Nodefony de l'app (multiplexage de canaux, isomorphe).

### Types (3)

#### `NodefonyKernelEvent`

```ts
type NodefonyKernelEvent = "onBoot" | "onReady" | "onIdentityChange" | "onVisibility" | "onOnline" | "onTerminate"
```

Événements émis par le kernel client.

#### `NodefonyKernelState`

```ts
type NodefonyKernelState = "created" | "booting" | "ready" | "terminated"
```

États du kernel client, ordonnés et non régressifs (symétrie nominale avec les lifecycle flags du Kernel serveur — `booted`/`ready`/… — sans en singer la sémantique process).

#### `StyleRoot`

```ts
type StyleRoot = Document | ShadowRoot
```

Racine qui accepte une feuille adoptée : le document ou un Shadow DOM.

---

[← Toutes les références d'API](../../)
