@nodefony/devkit 10.0.0-beta.2 → 10.0.0-beta.3

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.
Files changed (36) hide show
  1. package/README.md +5 -1
  2. package/dist/_virtual/{_@oxc-project_runtime@0.152.0 → _@oxc-project_runtime@0.153.0}/helpers/esm/decorate.js +1 -1
  3. package/dist/_virtual/{_@oxc-project_runtime@0.152.0 → _@oxc-project_runtime@0.153.0}/helpers/esm/decorateMetadata.js +1 -1
  4. package/dist/_virtual/{_@oxc-project_runtime@0.152.0 → _@oxc-project_runtime@0.153.0}/helpers/esm/decorateParam.js +1 -1
  5. package/dist/index.js +2 -2
  6. package/dist/nodefony/controllers/DevkitController.js +2 -2
  7. package/dist/nodefony/controllers/McpController.js +71 -6
  8. package/dist/nodefony/service/DevkitService.js +2 -2
  9. package/dist/nodefony/src/card.js +1 -2
  10. package/dist/types/nodefony/controllers/McpController.d.ts +12 -1
  11. package/docs/index.md +62 -14
  12. package/package.json +9 -9
  13. package/skills/nodefony-add-realtime-channel/SKILL.md +66 -9
  14. package/skills/nodefony-add-service/SKILL.md +11 -0
  15. package/skills/nodefony-authentication/SKILL.md +234 -0
  16. package/skills/nodefony-browser/SKILL.md +45 -21
  17. package/skills/nodefony-browser/references/sondes.md +13 -0
  18. package/skills/nodefony-browser/scripts/audit.mjs +59 -10
  19. package/skills/nodefony-browser/scripts/inspect.mjs +122 -4
  20. package/skills/nodefony-browser/scripts/lib/browser.mjs +112 -6
  21. package/skills/nodefony-browser/scripts/lib/probes.mjs +166 -7
  22. package/skills/nodefony-dev/SKILL.md +47 -81
  23. package/skills/nodefony-dev/scripts/docs.mjs +21 -5
  24. package/skills/nodefony-devops/SKILL.md +16 -13
  25. package/skills/nodefony-devops/references/compose.md +8 -0
  26. package/skills/nodefony-devops/references/frontal.md +5 -1
  27. package/skills/nodefony-devops/references/secrets.md +18 -4
  28. package/skills/nodefony-devops/references/variables.md +52 -19
  29. package/skills/nodefony-migrate-schema/SKILL.md +5 -2
  30. package/skills/nodefony-migrate-schema/references/verdicts.md +20 -19
  31. package/skills/nodefony-protect-route/SKILL.md +118 -17
  32. package/skills/nodefony-security-review/SKILL.md +127 -0
  33. package/skills/nodefony-security-review/scripts/review-diff.mjs +1090 -0
  34. package/skills/nodefony-troubleshoot/SKILL.md +151 -0
  35. package/skills/nodefony-troubleshoot/scripts/log-errors.mjs +465 -0
  36. package/skills/nodefony-upgrade/SKILL.md +130 -0
@@ -0,0 +1,130 @@
1
+ ---
2
+ name: nodefony-upgrade
3
+ description: >
4
+ Monte une application Nodefony vers une nouvelle version du framework sans rien laisser derrière :
5
+ tous les paquets ensemble et sous le bon canal, puis `nodefony upgrade` pour la documentation des
6
+ agents, les skills et les fichiers livrés qu'un `npm install` ne refait pas, puis les ruptures
7
+ annoncées corrigées dans le code, le schéma migré et la preuve que tout tient. À charger AVANT de
8
+ lancer la montée de version, pas après un premier rouge. Une panne sans rapport avec une montée →
9
+ `nodefony-troubleshoot`.
10
+ Déclencheurs : "monter nodefony de version", "mettre à jour nodefony", "passer à la nouvelle
11
+ beta", "upgrade nodefony", "npm update nodefony", "une nouvelle version est sortie", "mes paquets
12
+ nodefony sont en retard", "après la mise à jour plus rien ne compile", "AGENTS.md est périmé".
13
+ metadata:
14
+ version: 1.0.0
15
+ ---
16
+
17
+ # nodefony-upgrade — les paquets, puis l'application, puis la preuve
18
+
19
+ > **Maintenance** : vérité courante, jamais un journal. Éditer en place ; l'historique vit dans
20
+ > `git log`. Pas de `references/` : ce qui doit atteindre un agent s'exécute ou vit dans ce corps.
21
+
22
+ ## Passer la main
23
+
24
+ | Ce que tu fais en réalité | Le skill |
25
+ | ---------------------------------------------------------------- | ------------------------- |
26
+ | Rien n'a été mis à jour, et quelque chose a cessé de marcher | `nodefony-troubleshoot` |
27
+ | Une rupture touche une table ou une colonne : migration à écrire | `nodefony-migrate-schema` |
28
+ | Une rupture touche la connexion, `/me`, l'identité de la requête | `nodefony-authentication` |
29
+ | Monter l'image et la déployer une fois l'application au niveau | `nodefony-devops` |
30
+ | Coder autre chose dans la foulée | `nodefony-dev` |
31
+
32
+ ## 1. La règle — trois couches, trois gestes
33
+
34
+ Une montée de version touche trois couches, et `npm install` n'en fait qu'une :
35
+
36
+ 1. **Les paquets** (`node_modules`) — `npm install`.
37
+ 2. **Ce que les paquets ont déposé dans l'application** à sa création : le bloc framework
38
+ d'`AGENTS.md`, les pointeurs de `.agents/skills/`, les copies livrées (décor Keycloak…). Ils
39
+ restent sur l'ancienne version sans que rien ne casse — `nodefony upgrade`.
40
+ 3. **Ton code**, quand la version annonce une rupture — toi, guidé par le changelog et le
41
+ compilateur.
42
+
43
+ Sauter la couche 2 ne fait échouer aucun test : un agent lit simplement une porte qui décrit
44
+ l'ancienne version. Sauter la couche 3 se voit au premier `typecheck`.
45
+
46
+ ## 2. La procédure
47
+
48
+ **Avant** : arbre propre, tests verts. Une montée sur un arbre déjà rouge mélange deux pannes.
49
+
50
+ ```bash
51
+ git status
52
+ npm test
53
+ npx nodefony outdated
54
+ ```
55
+
56
+ `outdated` liste les paquets en retard, regroupés. Note la version cible.
57
+
58
+ **Monter TOUS les paquets Nodefony, ensemble, sous le bon canal.** Ils sortent verrouillés : même
59
+ version pour `nodefony` et chaque `@nodefony/*`, devDependencies comprises (`@nodefony/devkit`
60
+ porte les skills). Nomme chacun de ceux que ton `package.json` déclare :
61
+
62
+ ```bash
63
+ npm install nodefony@beta @nodefony/http@beta @nodefony/framework@beta @nodefony/security@beta
64
+ npm install -D @nodefony/devkit@beta
65
+ ```
66
+
67
+ ⚠️ Pendant la série 10, **`beta` est le canal de la préversion** ; `latest` sert encore l'ancienne
68
+ lignée 7 en JavaScript. Un `npm install nodefony` sans canal fait REDESCENDRE l'application.
69
+
70
+ **Remettre l'application au niveau des paquets** :
71
+
72
+ ```bash
73
+ npx nodefony upgrade
74
+ ```
75
+
76
+ Elle réécrit le bloc framework d'`AGENTS.md` (le texte hors des marqueurs `<!-- nodefony:start -->`
77
+ / `<!-- nodefony:end -->` ne bouge pas), pose les pointeurs des skills apparus, rafraîchit les
78
+ copies livrées restées intactes. Ce qu'elle ne tranche pas est listé sous « À trancher à la main » :
79
+ une copie que l'application a retouchée, un `SKILL.md` écrit à la main, un skill que plus aucun
80
+ paquet ne livre. **Lis cette liste** : chaque ligne est une décision qui t'appartient.
81
+
82
+ **Lire les ruptures annoncées.** Le changelog est livré dans le paquet `nodefony` :
83
+ `node_modules/nodefony/CHANGELOG.md`, celui de la version INSTALLÉE — lu après la montée, il
84
+ couvre donc toutes les versions franchies, sans réseau. Absent (une version qui ne le livrait pas
85
+ encore) : `https://github.com/nodefony/nodefony-core/blob/main/CHANGELOG.md`. Dans la
86
+ section de chaque version franchie, les entrées marquées **`(breaking)`** sont celles qui
87
+ demandent une retouche de ton code — un nom renvoyé qui change, une option retirée, un défaut
88
+ inversé. Une rupture de comportement ne se voit pas au compilateur : seul le changelog la dit.
89
+
90
+ **Reconstruire, puis laisser le compilateur et les tests désigner le reste** :
91
+
92
+ ```bash
93
+ npm run build
94
+ npm run typecheck
95
+ npm test
96
+ npx nodefony doctor
97
+ ```
98
+
99
+ Un symbole renommé ou retiré sort au `typecheck` avec son fichier et sa ligne. Un symbole
100
+ **déprécié** apparaît barré dans l'éditeur : il marche encore toute la série, son TSDoc nomme le
101
+ remplaçant. `doctor` signale ce qui reste en retard, chaque constat avec son geste.
102
+
103
+ **Si une rupture touche le schéma**, ou si le changelog l'annonce : `npx nodefony orm:migrate:status`,
104
+ puis la procédure de `nodefony-migrate-schema`.
105
+
106
+ ## 3. Pièges
107
+
108
+ - **Monter un paquet seul n'est pas monter Nodefony.** Deux versions différentes de `nodefony`
109
+ dans `node_modules` se voient comme deux copies du cœur : l'application démarre amputée, ou pas
110
+ du tout. `npm ls nodefony` doit rendre une seule version.
111
+ - **Le canal par défaut ment pendant la série 10** : sans `@beta`, npm installe la 7.
112
+ - **Un vert ne prouve pas que la documentation des agents a suivi.** Seuls `doctor` ou
113
+ `npx nodefony upgrade --check` le voient.
114
+ - **`upgrade` ne recrée pas un `AGENTS.md` supprimé** : l'absence peut être un choix. Elle le dit.
115
+ - **Ne corrige pas une copie livrée « en retard » à la main** : si elle est intacte, `upgrade` la
116
+ remplace ; si tu l'as retouchée, reporte tes retouches sur la nouvelle version du paquet, à la
117
+ main et en connaissance de cause.
118
+
119
+ ## 4. Gate — la montée est faite quand
120
+
121
+ ```bash
122
+ npx nodefony upgrade --check
123
+ npm run typecheck
124
+ npm test
125
+ npx nodefony doctor
126
+ ```
127
+
128
+ `upgrade --check` sort en 0 (sinon il dit ce qui reste en retard), le typecheck et les tests sont
129
+ verts, `doctor` ne signale rien de neuf. En intégration continue, `upgrade --check` refuse une
130
+ branche qui a monté ses paquets sans remettre l'application au niveau.