nodefony 10.0.0-alpha.1 → 10.0.0-alpha.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/.ai/symbols.json CHANGED
@@ -1,15 +1,14 @@
1
1
  {
2
- "generated": "2026-09-06T17:10:47.486Z",
3
2
  "version": "2.0.0",
4
3
  "repoRoot": ".",
5
4
  "stats": {
6
5
  "files": 812,
7
- "symbols": 3899,
6
+ "symbols": 3900,
8
7
  "classes": 385,
9
8
  "interfaces": 1059,
10
9
  "types": 445,
11
10
  "enums": 4,
12
- "functions": 1617,
11
+ "functions": 1618,
13
12
  "constants": 389
14
13
  },
15
14
  "symbols": {
@@ -24103,6 +24102,14 @@
24103
24102
  "module": "@nodefony/realtime",
24104
24103
  "description": "Fabrique le provider PARTAGÉ d'un canal (listener/ticker qui pousse via `publish`). Appelée UNE fois, au 1ᵉʳ abonné. Renvoie son `dispose` (appelé au dernier désabonné) ou `null` si le canal est in…"
24105
24104
  },
24105
+ "familleDuCanal": {
24106
+ "name": "familleDuCanal",
24107
+ "kind": "function",
24108
+ "file": "src/packages/@nodefony/realtime/nodefony/src/server/RealtimeHub.ts",
24109
+ "exported": true,
24110
+ "module": "@nodefony/realtime",
24111
+ "description": "Le MOTIF de famille d'un canal — son dernier segment remplacé par `*`. `\"studio:metrics:1s\"` → `\"studio:metrics:*\"`, `\"alerts\"` → `\"*\"`. Sert à SUGGÉRER une politique qui garde toute une famille, q…"
24112
+ },
24106
24113
  "getRealtimeHub": {
24107
24114
  "name": "getRealtimeHub",
24108
24115
  "kind": "function",
package/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  <div align="center">
2
2
 
3
- <img src="https://raw.githubusercontent.com/nodefony/nodefony-core/claude-ts/docs/assets/nodefony-logo.png" alt="Nodefony" height="96">
3
+ <img src="https://raw.githubusercontent.com/nodefony/nodefony-core/main/docs/assets/nodefony-logo.png" alt="Nodefony" height="96">
4
4
 
5
5
  # Nodefony
6
6
 
@@ -8,7 +8,7 @@
8
8
 
9
9
  _Une action de contrôleur. Deux transports. La même session, la même sécurité, le même code._
10
10
 
11
- [![Licence CeCILL-B](https://img.shields.io/badge/licence-CeCILL--B-blue.svg?style=flat-square)](https://github.com/nodefony/nodefony-core/blob/claude-ts/LICENSE.txt)
11
+ [![Licence CeCILL-B](https://img.shields.io/badge/licence-CeCILL--B-blue.svg?style=flat-square)](https://github.com/nodefony/nodefony-core/blob/main/LICENSE.txt)
12
12
  [![Node ≥ 24](https://img.shields.io/badge/Node.js-%E2%89%A5%2024-green?style=flat-square)](https://nodejs.org/)
13
13
  [![TypeScript strict](https://img.shields.io/badge/TypeScript-strict-blue?style=flat-square)](https://www.typescriptlang.org/)
14
14
  [![ESM](https://img.shields.io/badge/ESM-only-orange?style=flat-square)](https://nodejs.org/api/esm.html)
@@ -121,7 +121,7 @@ frontend optionnel (React, Vue, Angular, Svelte), `Dockerfile`, et un `AGENTS.md
121
121
 
122
122
  - **Documentation** — <https://nodefony.github.io/nodefony-core/>
123
123
  - **Dépôt et suivi** — <https://github.com/nodefony/nodefony-core>
124
- - **Journal des versions** — <https://github.com/nodefony/nodefony-core/blob/claude-ts/CHANGELOG.md>
124
+ - **Journal des versions** — <https://github.com/nodefony/nodefony-core/blob/main/CHANGELOG.md>
125
125
 
126
126
  ---
127
127
 
@@ -397,4 +397,4 @@ sharedNC.emit("broadcast"); // les deux services reçoivent
397
397
 
398
398
  ## Syslog / Pdu
399
399
 
400
- Voir [`src/syslog/`](https://github.com/nodefony/nodefony-core/tree/claude-ts/src/nodefony/src/syslog) — logger structuré RFC 5424 avec ring buffer O(1).
400
+ Voir [`src/syslog/`](https://github.com/nodefony/nodefony-core/tree/main/src/nodefony/src/syslog) — logger structuré RFC 5424 avec ring buffer O(1).
@@ -376,12 +376,19 @@ function writeAgentPointers(projectRoot, keys, appName) {
376
376
  const written = [];
377
377
  for (const { file, agents } of pointeurs) {
378
378
  const target = path.join(projectRoot, file);
379
- if (existsSync(target)) continue;
380
- writeFileSync(target, eta.renderString(template, {
381
- appName,
382
- pointeur: file,
383
- agents: agents.join(" et ")
384
- }), "utf8");
379
+ try {
380
+ writeFileSync(target, eta.renderString(template, {
381
+ appName,
382
+ pointeur: file,
383
+ agents: agents.join(" et ")
384
+ }), {
385
+ encoding: "utf8",
386
+ flag: "wx"
387
+ });
388
+ } catch (err) {
389
+ if (err.code === "EEXIST") continue;
390
+ throw err;
391
+ }
385
392
  written.push(file);
386
393
  }
387
394
  return written;
@@ -1,4 +1,4 @@
1
1
  //#region package.json
2
- var version = "10.0.0-alpha.1";
2
+ var version = "10.0.0-alpha.2";
3
3
  //#endregion
4
4
  export { version };
package/man/nodefony.1 CHANGED
@@ -1,4 +1,4 @@
1
- .TH NODEFONY 1 "" "nodefony 10.0.0" "Nodefony Manual"
1
+ .TH NODEFONY 1 "" "nodefony 10.0.0\-alpha.2" "Nodefony Manual"
2
2
  .SH NAME
3
3
  nodefony \- framework fullstack Node.js : HTTP, WebSocket, ORM, agents
4
4
  .SH SYNOPSIS
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "nodefony",
3
- "version": "10.0.0-alpha.1",
3
+ "version": "10.0.0-alpha.2",
4
4
  "description": "Noyau du framework Nodefony : modules, injection de dépendances, configuration validée au démarrage, journalisation structurée corrélée, CLI — et le client temps réel partagé avec le navigateur",
5
5
  "type": "module",
6
6
  "exports": {