nodefony 7.0.2 → 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.
Files changed (903) hide show
  1. package/.ai/symbols.json +36135 -0
  2. package/LICENSE +544 -0
  3. package/README.md +316 -694
  4. package/bin/nodefony +2183 -85
  5. package/dist/client/Container.js +367 -0
  6. package/dist/client/Event.js +198 -0
  7. package/dist/client/Service.js +344 -0
  8. package/dist/client/Tools.js +162 -0
  9. package/dist/client/client/ClientKernel.js +276 -0
  10. package/dist/client/client/angular/index.js +352 -0
  11. package/dist/client/client/announce.js +212 -0
  12. package/dist/client/client/debugbar/DebugBar.js +1624 -0
  13. package/dist/client/client/debugbar/format.js +103 -0
  14. package/dist/client/client/debugbar/hmr.js +37 -0
  15. package/dist/client/client/debugbar/index.js +29 -0
  16. package/dist/client/client/debugbar/model.js +133 -0
  17. package/dist/client/client/debugbar/network.js +173 -0
  18. package/dist/client/client/debugbar/profile.js +114 -0
  19. package/dist/client/client/index.js +34 -0
  20. package/dist/client/client/react/index.js +268 -0
  21. package/dist/client/client/realtime/AdaptiveRate.js +240 -0
  22. package/dist/client/client/realtime/BrowserWsTransport.js +57 -0
  23. package/dist/client/client/realtime/RealtimeClient.js +898 -0
  24. package/dist/client/client/realtime/localEvents.js +56 -0
  25. package/dist/client/client/realtime/notice.js +125 -0
  26. package/dist/client/client/realtime/observe.js +280 -0
  27. package/dist/client/client/roles/index.js +3 -0
  28. package/dist/client/client/roles/registry.js +97 -0
  29. package/dist/client/client/roles/roles.js +91 -0
  30. package/dist/client/client/shim/events.js +88 -0
  31. package/dist/client/client/shim/util.js +20 -0
  32. package/dist/client/client/svelte/index.js +319 -0
  33. package/dist/client/client/syslog/context.js +122 -0
  34. package/dist/client/client/syslog/errors.js +49 -0
  35. package/dist/client/client/syslog/uplink.js +106 -0
  36. package/dist/client/client/vue/index.js +321 -0
  37. package/dist/client/colors.js +63 -0
  38. package/dist/client/debugbar.standalone.js +4274 -0
  39. package/dist/client/realtime/IRealtimeTransport.js +32 -0
  40. package/dist/client/realtime/JsonRpcPeer.js +251 -0
  41. package/dist/client/realtime/channelRate.js +39 -0
  42. package/dist/client/realtime/platformChannels.js +155 -0
  43. package/dist/client/syslog/Pdu.js +224 -0
  44. package/dist/client/syslog/Syslog.js +1159 -0
  45. package/dist/client/syslog/drivers/pduFlow.js +106 -0
  46. package/dist/client/syslog/drivers/pduProtocol.js +28 -0
  47. package/dist/client/syslog/logColor.js +80 -0
  48. package/dist/client/types/src/Container.d.ts +221 -0
  49. package/dist/client/types/src/Event.d.ts +171 -0
  50. package/dist/client/types/src/FileClass.d.ts +184 -0
  51. package/dist/client/types/src/Service.d.ts +165 -0
  52. package/dist/client/types/src/Tools.d.ts +116 -0
  53. package/dist/client/types/src/client/ClientKernel.d.ts +90 -0
  54. package/dist/client/types/src/client/IClientKernel.d.ts +195 -0
  55. package/dist/client/types/src/client/angular/index.d.ts +273 -0
  56. package/dist/client/types/src/client/announce.d.ts +74 -0
  57. package/dist/client/types/src/client/debugbar/DebugBar.d.ts +279 -0
  58. package/dist/client/types/src/client/debugbar/format.d.ts +48 -0
  59. package/dist/client/types/src/client/debugbar/hmr.d.ts +16 -0
  60. package/dist/client/types/src/client/debugbar/index.d.ts +30 -0
  61. package/dist/client/types/src/client/debugbar/model.d.ts +158 -0
  62. package/dist/client/types/src/client/debugbar/network.d.ts +55 -0
  63. package/dist/client/types/src/client/debugbar/profile.d.ts +99 -0
  64. package/dist/client/types/src/client/index.d.ts +47 -0
  65. package/dist/client/types/src/client/react/index.d.ts +207 -0
  66. package/dist/client/types/src/client/realtime/AdaptiveRate.d.ts +138 -0
  67. package/dist/client/types/src/client/realtime/BrowserWsTransport.d.ts +27 -0
  68. package/dist/client/types/src/client/realtime/RealtimeClient.d.ts +573 -0
  69. package/dist/client/types/src/client/realtime/localEvents.d.ts +53 -0
  70. package/dist/client/types/src/client/realtime/notice.d.ts +70 -0
  71. package/dist/client/types/src/client/realtime/observe.d.ts +284 -0
  72. package/dist/client/types/src/client/roles/index.d.ts +15 -0
  73. package/dist/client/types/src/client/roles/registry.d.ts +72 -0
  74. package/dist/client/types/src/client/roles/roles.d.ts +68 -0
  75. package/dist/client/types/src/client/shim/cli-color.d.ts +2 -0
  76. package/dist/client/types/src/client/shim/events.d.ts +39 -0
  77. package/dist/client/types/src/client/shim/util.d.ts +14 -0
  78. package/dist/client/types/src/client/svelte/index.d.ts +216 -0
  79. package/dist/client/types/src/client/syslog/context.d.ts +76 -0
  80. package/dist/client/types/src/client/syslog/errors.d.ts +46 -0
  81. package/dist/client/types/src/client/syslog/uplink.d.ts +89 -0
  82. package/dist/client/types/src/client/transport/websocket.d.ts +5 -0
  83. package/dist/client/types/src/client/vue/index.d.ts +234 -0
  84. package/dist/client/types/src/colors.d.ts +32 -0
  85. package/dist/client/types/src/config/infra.d.ts +171 -0
  86. package/dist/client/types/src/kernel/bootReport.d.ts +112 -0
  87. package/dist/client/types/src/kernel/readinessRegistry.d.ts +104 -0
  88. package/dist/client/types/src/realtime/IRealtimeSocket.d.ts +142 -0
  89. package/dist/client/types/src/realtime/IRealtimeTransport.d.ts +50 -0
  90. package/dist/client/types/src/realtime/JsonRpcPeer.d.ts +251 -0
  91. package/dist/client/types/src/realtime/RealtimeEventMap.d.ts +269 -0
  92. package/dist/client/types/src/realtime/channelRate.d.ts +55 -0
  93. package/dist/client/types/src/realtime/platformChannels.d.ts +147 -0
  94. package/dist/client/types/src/syslog/Pdu.d.ts +134 -0
  95. package/dist/client/types/src/syslog/Syslog.d.ts +482 -0
  96. package/dist/client/types/src/syslog/drivers/ILogDriver.d.ts +177 -0
  97. package/dist/client/types/src/syslog/drivers/pduFlow.d.ts +53 -0
  98. package/dist/client/types/src/syslog/drivers/pduProtocol.d.ts +20 -0
  99. package/dist/client/types/src/syslog/logColor.d.ts +59 -0
  100. package/dist/client/types/src/types/ICliKernel.d.ts +28 -0
  101. package/dist/client/types/src/types/ICommand.d.ts +14 -0
  102. package/dist/client/types/src/types/IContainer.d.ts +35 -0
  103. package/dist/client/types/src/types/IKernel.d.ts +138 -0
  104. package/dist/client/types/src/types/IMcpTool.d.ts +157 -0
  105. package/dist/client/types/src/types/IModule.d.ts +73 -0
  106. package/dist/client/types/src/types/IPage.d.ts +119 -0
  107. package/dist/client/types/src/types/IService.d.ts +62 -0
  108. package/dist/client/types/src/types/ISyslog.d.ts +58 -0
  109. package/dist/client/types/src/types/ITransport.d.ts +5 -0
  110. package/dist/client/types/src/types/globals.d.ts +47 -0
  111. package/dist/node/Cli.js +750 -0
  112. package/dist/node/Container.js +367 -0
  113. package/dist/node/Error.js +309 -0
  114. package/dist/node/Event.js +198 -0
  115. package/dist/node/FileClass.js +308 -0
  116. package/dist/node/Nodefony.js +78 -0
  117. package/dist/node/Service.js +344 -0
  118. package/dist/node/Tools.js +205 -0
  119. package/dist/node/bin/resolveLocalCli.js +10 -0
  120. package/dist/node/bundler/index.js +103 -0
  121. package/dist/node/cli/agentTargets.js +461 -0
  122. package/dist/node/cli/aiMcp.js +553 -0
  123. package/dist/node/cli/aiMcpReport.js +129 -0
  124. package/dist/node/cli/aiSync.js +323 -0
  125. package/dist/node/cli/aiSyncReport.js +142 -0
  126. package/dist/node/cli/card.js +186 -0
  127. package/dist/node/cli/cardReport.js +110 -0
  128. package/dist/node/cli/completion.js +415 -0
  129. package/dist/node/cli/create.js +805 -0
  130. package/dist/node/cli/env.js +332 -0
  131. package/dist/node/cli/envReport.js +159 -0
  132. package/dist/node/cli/execPortable.js +60 -0
  133. package/dist/node/cli/gitHooks.js +191 -0
  134. package/dist/node/cli/gitHooksReport.js +119 -0
  135. package/dist/node/cli/globalFlags.js +67 -0
  136. package/dist/node/cli/helpReport.js +288 -0
  137. package/dist/node/cli/manPage.js +165 -0
  138. package/dist/node/cli/nodefonyBin.js +61 -0
  139. package/dist/node/cli/outdated.js +144 -0
  140. package/dist/node/cli/progress.js +555 -0
  141. package/dist/node/cli/projectRoot.js +32 -0
  142. package/dist/node/cli/promptPassword.js +44 -0
  143. package/dist/node/cli/prompts.js +86 -0
  144. package/dist/node/cli/scaffold/destination.js +92 -0
  145. package/dist/node/cli/scaffold/engine.js +2156 -0
  146. package/dist/node/cli/scaffold/entityFields.js +589 -0
  147. package/dist/node/cli/scaffold/format.js +243 -0
  148. package/dist/node/cli/scaffold/interactive.js +124 -0
  149. package/dist/node/cli/scaffold/moduleLayout.js +38 -0
  150. package/dist/node/cli/scaffold/reservedEntities.js +74 -0
  151. package/dist/node/cli/scaffold/spec.js +704 -0
  152. package/dist/node/cli/scaffold/steps.js +40 -0
  153. package/dist/node/cli/scaffold/userContractSource.js +133 -0
  154. package/dist/node/cli/scaffold/versions.js +57 -0
  155. package/dist/node/cli/scaffold/writer.js +172 -0
  156. package/dist/node/cli/startMenu.js +496 -0
  157. package/dist/node/cli/symbols.js +205 -0
  158. package/dist/node/cli/sysexits.js +34 -0
  159. package/dist/node/cli/tableReport.js +184 -0
  160. package/dist/node/cli/usageReport.js +144 -0
  161. package/dist/node/colors.js +63 -0
  162. package/dist/node/command/Builder.js +153 -0
  163. package/dist/node/command/Command.js +348 -0
  164. package/dist/node/config/configProvenance.js +101 -0
  165. package/dist/node/config/defaults.js +39 -0
  166. package/dist/node/config/defineConfig.js +129 -0
  167. package/dist/node/config/defineEnv.js +264 -0
  168. package/dist/node/config/envExample.js +41 -0
  169. package/dist/node/config/envOverride.js +423 -0
  170. package/dist/node/config/infra.js +163 -0
  171. package/dist/node/config/reactivity.js +23 -0
  172. package/dist/node/config/reservedEnv.js +118 -0
  173. package/dist/node/config/schema.js +134 -0
  174. package/dist/node/config/use.js +24 -0
  175. package/dist/node/finder/File.js +49 -0
  176. package/dist/node/finder/FileResult.js +86 -0
  177. package/dist/node/finder/Finder.js +201 -0
  178. package/dist/node/finder/Result.js +45 -0
  179. package/dist/node/index.js +121 -0
  180. package/dist/node/kernel/BootConfigurationError.js +54 -0
  181. package/dist/node/kernel/CliKernel.js +630 -0
  182. package/dist/node/kernel/Kernel.js +2198 -0
  183. package/dist/node/kernel/Module.js +453 -0
  184. package/dist/node/kernel/adminPlane/adminCaller.js +98 -0
  185. package/dist/node/kernel/adminPlane/adminRbac.js +51 -0
  186. package/dist/node/kernel/adminPlane/catalog.js +158 -0
  187. package/dist/node/kernel/adminPlane/executeAdmin.js +78 -0
  188. package/dist/node/kernel/checks/deep.js +335 -0
  189. package/dist/node/kernel/checks/freshness.js +139 -0
  190. package/dist/node/kernel/checks/gating.js +231 -0
  191. package/dist/node/kernel/checks/guards.js +232 -0
  192. package/dist/node/kernel/checks/lastBoot.js +136 -0
  193. package/dist/node/kernel/checks/live.js +330 -0
  194. package/dist/node/kernel/checks/packageDeps.js +292 -0
  195. package/dist/node/kernel/checks/readiness.js +153 -0
  196. package/dist/node/kernel/checks/renderReport.js +780 -0
  197. package/dist/node/kernel/checks/report.js +421 -0
  198. package/dist/node/kernel/checks/runDoctor.js +731 -0
  199. package/dist/node/kernel/checks/surface.js +364 -0
  200. package/dist/node/kernel/checks/walk.js +100 -0
  201. package/dist/node/kernel/checks/wiring.js +450 -0
  202. package/dist/node/kernel/commands/AiMcpCommand.js +65 -0
  203. package/dist/node/kernel/commands/AiSyncCommand.js +48 -0
  204. package/dist/node/kernel/commands/BuildCommand.js +49 -0
  205. package/dist/node/kernel/commands/CardCommand.js +50 -0
  206. package/dist/node/kernel/commands/ClusterCommand.js +58 -0
  207. package/dist/node/kernel/commands/CompletionCommand.js +31 -0
  208. package/dist/node/kernel/commands/CreateCommand.js +45 -0
  209. package/dist/node/kernel/commands/DevCommand.js +99 -0
  210. package/dist/node/kernel/commands/DoctorCommand.js +115 -0
  211. package/dist/node/kernel/commands/EnvCommand.js +52 -0
  212. package/dist/node/kernel/commands/GitHooksCommand.js +47 -0
  213. package/dist/node/kernel/commands/InspectCommand.js +153 -0
  214. package/dist/node/kernel/commands/InstallCommand.js +20 -0
  215. package/dist/node/kernel/commands/MenuCommand.js +261 -0
  216. package/dist/node/kernel/commands/OutdatedCommand.js +164 -0
  217. package/dist/node/kernel/commands/ProdCommand.js +60 -0
  218. package/dist/node/kernel/commands/StatusCommand.js +30 -0
  219. package/dist/node/kernel/commands/StopCommand.js +35 -0
  220. package/dist/node/kernel/commands/SymbolsCommand.js +45 -0
  221. package/dist/node/kernel/commands/runtimeLauncher.js +95 -0
  222. package/dist/node/kernel/decorators/kernelDecorator.js +110 -0
  223. package/dist/node/kernel/injector/injector.js +137 -0
  224. package/dist/node/kernel/injector/serviceOrder.js +106 -0
  225. package/dist/node/kernel/inspect/adminSubjects.js +194 -0
  226. package/dist/node/kernel/inspect/docOutline.js +86 -0
  227. package/dist/node/kernel/lifecycleTags.js +76 -0
  228. package/dist/node/kernel/moduleConfig.js +75 -0
  229. package/dist/node/kernel/moduleGating.js +68 -0
  230. package/dist/node/kernel/readinessRegistry.js +98 -0
  231. package/dist/node/kernel/resolveModuleEntry.js +61 -0
  232. package/dist/node/mcp/caller.js +40 -0
  233. package/dist/node/mcp/guard.js +51 -0
  234. package/dist/node/mcp/protocol.js +157 -0
  235. package/dist/node/mcp/server.js +216 -0
  236. package/dist/node/mcp/tools.js +861 -0
  237. package/dist/node/oauth/authorizationServer.js +221 -0
  238. package/dist/node/oauth/protectedResource.js +293 -0
  239. package/dist/node/package.js +4 -0
  240. package/dist/node/realtime/IRealtimeTransport.js +32 -0
  241. package/dist/node/realtime/JsonRpcPeer.js +251 -0
  242. package/dist/node/realtime/RealtimeEventMap.js +15 -0
  243. package/dist/node/realtime/channelRate.js +39 -0
  244. package/dist/node/realtime/platformChannels.js +155 -0
  245. package/dist/node/runtime/GcScheduler.js +92 -0
  246. package/dist/node/runtime/RequestContext.js +76 -0
  247. package/dist/node/runtime/bearer.js +84 -0
  248. package/dist/node/runtime/engineEnvironment.js +79 -0
  249. package/dist/node/runtime/loadEnv.js +105 -0
  250. package/dist/node/runtime/pageFacets.js +85 -0
  251. package/dist/node/runtime/pageFilters.js +103 -0
  252. package/dist/node/runtime/pageGuard.js +84 -0
  253. package/dist/node/runtime/pageQuery.js +160 -0
  254. package/dist/node/runtime/pageSort.js +114 -0
  255. package/dist/node/runtime/redact.js +43 -0
  256. package/dist/node/runtime/withTimeout.js +71 -0
  257. package/dist/node/service/cluster/ClusterManager.js +202 -0
  258. package/dist/node/service/cluster/ClusterProbeAggregator.js +120 -0
  259. package/dist/node/service/cluster/ClusterRelay.js +74 -0
  260. package/dist/node/service/cluster/clusterMaster.js +65 -0
  261. package/dist/node/service/cluster/clusterMessage.js +70 -0
  262. package/dist/node/service/cluster/cpuQuota.js +59 -0
  263. package/dist/node/service/cluster/instanceProbe.js +52 -0
  264. package/dist/node/service/cluster/podEnvironment.js +48 -0
  265. package/dist/node/service/cluster/processProbe.js +70 -0
  266. package/dist/node/service/cluster/richProcessProbe.js +115 -0
  267. package/dist/node/service/cluster/topology.js +71 -0
  268. package/dist/node/service/dev/BootReporter.js +490 -0
  269. package/dist/node/service/dev/DevSupervisor.js +1004 -0
  270. package/dist/node/service/dev/bootVerdict.js +158 -0
  271. package/dist/node/service/dev/detachedStart.js +372 -0
  272. package/dist/node/service/dev/devProcess.js +1137 -0
  273. package/dist/node/service/dev/devProjects.js +138 -0
  274. package/dist/node/service/dev/devStatusReport.js +395 -0
  275. package/dist/node/service/dev/devStop.js +263 -0
  276. package/dist/node/service/fetchService.js +35 -0
  277. package/dist/node/service/gitService.js +62 -0
  278. package/dist/node/syslog/Pdu.js +224 -0
  279. package/dist/node/syslog/Syslog.js +1159 -0
  280. package/dist/node/syslog/drivers/ClusterFileLogDriver.js +114 -0
  281. package/dist/node/syslog/drivers/FileLogDriver.js +127 -0
  282. package/dist/node/syslog/drivers/ILogDriver.js +26 -0
  283. package/dist/node/syslog/drivers/LokiLogDriver.js +144 -0
  284. package/dist/node/syslog/drivers/MemoryLogDriver.js +33 -0
  285. package/dist/node/syslog/drivers/OpenSearchLogDriver.js +159 -0
  286. package/dist/node/syslog/drivers/builtinLogDrivers.js +114 -0
  287. package/dist/node/syslog/drivers/filterPdus.js +71 -0
  288. package/dist/node/syslog/drivers/logDriverRegistry.js +83 -0
  289. package/dist/node/syslog/drivers/opensearchShared.js +17 -0
  290. package/dist/node/syslog/drivers/pduFlow.js +106 -0
  291. package/dist/node/syslog/drivers/pduProtocol.js +28 -0
  292. package/dist/node/syslog/httpFetch.js +43 -0
  293. package/dist/node/syslog/logColor.js +80 -0
  294. package/dist/node/syslog/sinks/FileSink.js +142 -0
  295. package/dist/node/syslog/transports/BatchingHttpTransport.js +98 -0
  296. package/dist/node/syslog/transports/ConsoleTransport.js +14 -0
  297. package/dist/node/syslog/transports/FileTransport.js +17 -0
  298. package/dist/node/syslog/transports/HttpTransport.js +44 -0
  299. package/dist/node/syslog/transports/LokiTransport.js +80 -0
  300. package/dist/node/syslog/transports/OpenSearchTransport.js +53 -0
  301. package/dist/node/syslog/transports/SyslogTransport.js +13 -0
  302. package/dist/node/syslog/transports/index.js +8 -0
  303. package/dist/node/testing/index.js +190 -0
  304. package/dist/types/Cli.d.ts +177 -0
  305. package/dist/types/Container.d.ts +221 -0
  306. package/dist/types/Error.d.ts +162 -0
  307. package/dist/types/Event.d.ts +171 -0
  308. package/dist/types/FileClass.d.ts +184 -0
  309. package/dist/types/Nodefony.d.ts +66 -0
  310. package/dist/types/Service.d.ts +165 -0
  311. package/dist/types/Tools.d.ts +116 -0
  312. package/dist/types/bin/resolveLocalCli.d.ts +49 -0
  313. package/dist/types/bundler/index.d.ts +66 -0
  314. package/dist/types/cli/agentTargets.d.ts +378 -0
  315. package/dist/types/cli/aiMcp.d.ts +239 -0
  316. package/dist/types/cli/aiMcpReport.d.ts +113 -0
  317. package/dist/types/cli/aiSync.d.ts +68 -0
  318. package/dist/types/cli/aiSyncReport.d.ts +149 -0
  319. package/dist/types/cli/card.d.ts +49 -0
  320. package/dist/types/cli/cardReport.d.ts +127 -0
  321. package/dist/types/cli/completion.d.ts +154 -0
  322. package/dist/types/cli/create.d.ts +177 -0
  323. package/dist/types/cli/env.d.ts +103 -0
  324. package/dist/types/cli/envReport.d.ts +153 -0
  325. package/dist/types/cli/execPortable.d.ts +54 -0
  326. package/dist/types/cli/gitHooks.d.ts +48 -0
  327. package/dist/types/cli/gitHooksReport.d.ts +101 -0
  328. package/dist/types/cli/globalFlags.d.ts +48 -0
  329. package/dist/types/cli/helpReport.d.ts +110 -0
  330. package/dist/types/cli/manPage.d.ts +21 -0
  331. package/dist/types/cli/nodefonyBin.d.ts +45 -0
  332. package/dist/types/cli/outdated.d.ts +119 -0
  333. package/dist/types/cli/progress.d.ts +349 -0
  334. package/dist/types/cli/projectRoot.d.ts +19 -0
  335. package/dist/types/cli/promptPassword.d.ts +22 -0
  336. package/dist/types/cli/prompts.d.ts +102 -0
  337. package/dist/types/cli/scaffold/destination.d.ts +70 -0
  338. package/dist/types/cli/scaffold/engine.d.ts +545 -0
  339. package/dist/types/cli/scaffold/entityFields.d.ts +238 -0
  340. package/dist/types/cli/scaffold/format.d.ts +78 -0
  341. package/dist/types/cli/scaffold/interactive.d.ts +11 -0
  342. package/dist/types/cli/scaffold/moduleLayout.d.ts +69 -0
  343. package/dist/types/cli/scaffold/reservedEntities.d.ts +49 -0
  344. package/dist/types/cli/scaffold/spec.d.ts +159 -0
  345. package/dist/types/cli/scaffold/steps.d.ts +24 -0
  346. package/dist/types/cli/scaffold/userContractSource.d.ts +86 -0
  347. package/dist/types/cli/scaffold/versions.d.ts +14 -0
  348. package/dist/types/cli/scaffold/writer.d.ts +100 -0
  349. package/dist/types/cli/startMenu.d.ts +195 -0
  350. package/dist/types/cli/symbols.d.ts +84 -0
  351. package/dist/types/cli/sysexits.d.ts +31 -0
  352. package/dist/types/cli/tableReport.d.ts +44 -0
  353. package/dist/types/cli/usageReport.d.ts +108 -0
  354. package/dist/types/client/ClientKernel.d.ts +90 -0
  355. package/dist/types/client/IClientKernel.d.ts +195 -0
  356. package/dist/types/client/angular/index.d.ts +273 -0
  357. package/dist/types/client/announce.d.ts +74 -0
  358. package/dist/types/client/debugbar/DebugBar.d.ts +279 -0
  359. package/dist/types/client/debugbar/format.d.ts +48 -0
  360. package/dist/types/client/debugbar/hmr.d.ts +16 -0
  361. package/dist/types/client/debugbar/index.d.ts +30 -0
  362. package/dist/types/client/debugbar/model.d.ts +158 -0
  363. package/dist/types/client/debugbar/network.d.ts +55 -0
  364. package/dist/types/client/debugbar/profile.d.ts +99 -0
  365. package/dist/types/client/index.d.ts +47 -0
  366. package/dist/types/client/react/index.d.ts +207 -0
  367. package/dist/types/client/realtime/AdaptiveRate.d.ts +138 -0
  368. package/dist/types/client/realtime/BrowserWsTransport.d.ts +27 -0
  369. package/dist/types/client/realtime/RealtimeClient.d.ts +573 -0
  370. package/dist/types/client/realtime/localEvents.d.ts +53 -0
  371. package/dist/types/client/realtime/notice.d.ts +70 -0
  372. package/dist/types/client/realtime/observe.d.ts +284 -0
  373. package/dist/types/client/roles/index.d.ts +15 -0
  374. package/dist/types/client/roles/registry.d.ts +72 -0
  375. package/dist/types/client/roles/roles.d.ts +68 -0
  376. package/dist/types/client/shim/cli-color.d.ts +2 -0
  377. package/dist/types/client/shim/events.d.ts +39 -0
  378. package/dist/types/client/shim/util.d.ts +14 -0
  379. package/dist/types/client/svelte/index.d.ts +216 -0
  380. package/dist/types/client/syslog/context.d.ts +76 -0
  381. package/dist/types/client/syslog/errors.d.ts +46 -0
  382. package/dist/types/client/syslog/uplink.d.ts +89 -0
  383. package/dist/types/client/transport/websocket.d.ts +5 -0
  384. package/dist/types/client/vue/index.d.ts +234 -0
  385. package/dist/types/colors.d.ts +32 -0
  386. package/dist/types/command/Builder.d.ts +47 -0
  387. package/dist/types/command/Command.d.ts +268 -0
  388. package/dist/types/config/configMeta.d.ts +53 -0
  389. package/dist/types/config/configProvenance.d.ts +58 -0
  390. package/dist/types/config/defaults.d.ts +33 -0
  391. package/dist/types/config/defineConfig.d.ts +70 -0
  392. package/dist/types/config/defineEnv.d.ts +170 -0
  393. package/dist/types/config/envExample.d.ts +23 -0
  394. package/dist/types/config/envOverride.d.ts +236 -0
  395. package/dist/types/config/index.d.ts +23 -0
  396. package/dist/types/config/infra.d.ts +171 -0
  397. package/dist/types/config/reactivity.d.ts +36 -0
  398. package/dist/types/config/reservedEnv.d.ts +145 -0
  399. package/dist/types/config/schema.d.ts +113 -0
  400. package/dist/types/config/types.d.ts +374 -0
  401. package/dist/types/config/use.d.ts +80 -0
  402. package/dist/types/finder/File.d.ts +26 -0
  403. package/dist/types/finder/FileResult.d.ts +14 -0
  404. package/dist/types/finder/Finder.d.ts +51 -0
  405. package/dist/types/finder/Result.d.ts +10 -0
  406. package/dist/types/index.d.ts +205 -0
  407. package/dist/types/kernel/BootConfigurationError.d.ts +50 -0
  408. package/dist/types/kernel/CliKernel.d.ts +289 -0
  409. package/dist/types/kernel/Kernel.d.ts +1255 -0
  410. package/dist/types/kernel/Module.d.ts +326 -0
  411. package/dist/types/kernel/adminPlane/adminCaller.d.ts +105 -0
  412. package/dist/types/kernel/adminPlane/adminRbac.d.ts +44 -0
  413. package/dist/types/kernel/adminPlane/catalog.d.ts +122 -0
  414. package/dist/types/kernel/adminPlane/executeAdmin.d.ts +99 -0
  415. package/dist/types/kernel/bootReport.d.ts +112 -0
  416. package/dist/types/kernel/checks/deep.d.ts +122 -0
  417. package/dist/types/kernel/checks/freshness.d.ts +49 -0
  418. package/dist/types/kernel/checks/gating.d.ts +134 -0
  419. package/dist/types/kernel/checks/guards.d.ts +57 -0
  420. package/dist/types/kernel/checks/lastBoot.d.ts +189 -0
  421. package/dist/types/kernel/checks/live.d.ts +110 -0
  422. package/dist/types/kernel/checks/packageDeps.d.ts +44 -0
  423. package/dist/types/kernel/checks/readiness.d.ts +97 -0
  424. package/dist/types/kernel/checks/renderReport.d.ts +107 -0
  425. package/dist/types/kernel/checks/report.d.ts +414 -0
  426. package/dist/types/kernel/checks/runDoctor.d.ts +361 -0
  427. package/dist/types/kernel/checks/surface.d.ts +148 -0
  428. package/dist/types/kernel/checks/walk.d.ts +45 -0
  429. package/dist/types/kernel/checks/wiring.d.ts +54 -0
  430. package/dist/types/kernel/commands/AiMcpCommand.d.ts +39 -0
  431. package/dist/types/kernel/commands/AiSyncCommand.d.ts +28 -0
  432. package/dist/types/kernel/commands/BuildCommand.d.ts +13 -0
  433. package/dist/types/kernel/commands/CardCommand.d.ts +34 -0
  434. package/dist/types/kernel/commands/ClusterCommand.d.ts +29 -0
  435. package/dist/types/kernel/commands/CompletionCommand.d.ts +17 -0
  436. package/dist/types/kernel/commands/CreateCommand.d.ts +16 -0
  437. package/dist/types/kernel/commands/DevCommand.d.ts +40 -0
  438. package/dist/types/kernel/commands/DoctorCommand.d.ts +55 -0
  439. package/dist/types/kernel/commands/EnvCommand.d.ts +35 -0
  440. package/dist/types/kernel/commands/GitHooksCommand.d.ts +27 -0
  441. package/dist/types/kernel/commands/InspectCommand.d.ts +59 -0
  442. package/dist/types/kernel/commands/InstallCommand.d.ts +7 -0
  443. package/dist/types/kernel/commands/MenuCommand.d.ts +58 -0
  444. package/dist/types/kernel/commands/OutdatedCommand.d.ts +47 -0
  445. package/dist/types/kernel/commands/ProdCommand.d.ts +29 -0
  446. package/dist/types/kernel/commands/StatusCommand.d.ts +17 -0
  447. package/dist/types/kernel/commands/StopCommand.d.ts +17 -0
  448. package/dist/types/kernel/commands/SymbolsCommand.d.ts +29 -0
  449. package/dist/types/kernel/commands/runtimeLauncher.d.ts +76 -0
  450. package/dist/types/kernel/decorators/kernelDecorator.d.ts +76 -0
  451. package/dist/types/kernel/injector/injector.d.ts +47 -0
  452. package/dist/types/kernel/injector/serviceOrder.d.ts +29 -0
  453. package/dist/types/kernel/inspect/adminSubjects.d.ts +169 -0
  454. package/dist/types/kernel/inspect/docOutline.d.ts +53 -0
  455. package/dist/types/kernel/lifecycleTags.d.ts +79 -0
  456. package/dist/types/kernel/moduleConfig.d.ts +35 -0
  457. package/dist/types/kernel/moduleGating.d.ts +78 -0
  458. package/dist/types/kernel/readinessRegistry.d.ts +104 -0
  459. package/dist/types/kernel/resolveModuleEntry.d.ts +46 -0
  460. package/dist/types/mcp/caller.d.ts +55 -0
  461. package/dist/types/mcp/guard.d.ts +66 -0
  462. package/dist/types/mcp/protocol.d.ts +163 -0
  463. package/dist/types/mcp/server.d.ts +70 -0
  464. package/dist/types/mcp/tools.d.ts +209 -0
  465. package/dist/types/oauth/authorizationServer.d.ts +204 -0
  466. package/dist/types/oauth/protectedResource.d.ts +339 -0
  467. package/dist/types/realtime/IRealtimeSocket.d.ts +142 -0
  468. package/dist/types/realtime/IRealtimeTransport.d.ts +50 -0
  469. package/dist/types/realtime/JsonRpcPeer.d.ts +251 -0
  470. package/dist/types/realtime/RealtimeEventMap.d.ts +269 -0
  471. package/dist/types/realtime/channelRate.d.ts +55 -0
  472. package/dist/types/realtime/platformChannels.d.ts +147 -0
  473. package/dist/types/runtime/GcScheduler.d.ts +96 -0
  474. package/dist/types/runtime/RequestContext.d.ts +152 -0
  475. package/dist/types/runtime/bearer.d.ts +88 -0
  476. package/dist/types/runtime/engineEnvironment.d.ts +115 -0
  477. package/dist/types/runtime/loadEnv.d.ts +86 -0
  478. package/dist/types/runtime/pageFacets.d.ts +104 -0
  479. package/dist/types/runtime/pageFilters.d.ts +139 -0
  480. package/dist/types/runtime/pageGuard.d.ts +78 -0
  481. package/dist/types/runtime/pageQuery.d.ts +138 -0
  482. package/dist/types/runtime/pageSort.d.ts +86 -0
  483. package/dist/types/runtime/redact.d.ts +27 -0
  484. package/dist/types/runtime/withTimeout.d.ts +51 -0
  485. package/dist/types/service/cluster/ClusterManager.d.ts +112 -0
  486. package/dist/types/service/cluster/ClusterProbeAggregator.d.ts +68 -0
  487. package/dist/types/service/cluster/ClusterRelay.d.ts +57 -0
  488. package/dist/types/service/cluster/clusterMaster.d.ts +40 -0
  489. package/dist/types/service/cluster/clusterMessage.d.ts +94 -0
  490. package/dist/types/service/cluster/cpuQuota.d.ts +37 -0
  491. package/dist/types/service/cluster/instanceProbe.d.ts +82 -0
  492. package/dist/types/service/cluster/podEnvironment.d.ts +35 -0
  493. package/dist/types/service/cluster/processProbe.d.ts +53 -0
  494. package/dist/types/service/cluster/richProcessProbe.d.ts +77 -0
  495. package/dist/types/service/cluster/topology.d.ts +64 -0
  496. package/dist/types/service/dev/BootReporter.d.ts +67 -0
  497. package/dist/types/service/dev/DevSupervisor.d.ts +117 -0
  498. package/dist/types/service/dev/bootVerdict.d.ts +99 -0
  499. package/dist/types/service/dev/detachedStart.d.ts +164 -0
  500. package/dist/types/service/dev/devProcess.d.ts +638 -0
  501. package/dist/types/service/dev/devProjects.d.ts +121 -0
  502. package/dist/types/service/dev/devStatusReport.d.ts +141 -0
  503. package/dist/types/service/dev/devStop.d.ts +57 -0
  504. package/dist/types/service/fetchService.d.ts +29 -0
  505. package/dist/types/service/gitService.d.ts +24 -0
  506. package/dist/types/syslog/Pdu.d.ts +134 -0
  507. package/dist/types/syslog/Syslog.d.ts +482 -0
  508. package/dist/types/syslog/drivers/ClusterFileLogDriver.d.ts +40 -0
  509. package/dist/types/syslog/drivers/FileLogDriver.d.ts +55 -0
  510. package/dist/types/syslog/drivers/ILogDriver.d.ts +177 -0
  511. package/dist/types/syslog/drivers/LokiLogDriver.d.ts +44 -0
  512. package/dist/types/syslog/drivers/MemoryLogDriver.d.ts +20 -0
  513. package/dist/types/syslog/drivers/OpenSearchLogDriver.d.ts +40 -0
  514. package/dist/types/syslog/drivers/builtinLogDrivers.d.ts +43 -0
  515. package/dist/types/syslog/drivers/filterPdus.d.ts +21 -0
  516. package/dist/types/syslog/drivers/logDriverRegistry.d.ts +100 -0
  517. package/dist/types/syslog/drivers/opensearchShared.d.ts +11 -0
  518. package/dist/types/syslog/drivers/pduFlow.d.ts +53 -0
  519. package/dist/types/syslog/drivers/pduProtocol.d.ts +20 -0
  520. package/dist/types/syslog/httpFetch.d.ts +48 -0
  521. package/dist/types/syslog/logColor.d.ts +59 -0
  522. package/dist/types/syslog/sinks/FileSink.d.ts +78 -0
  523. package/dist/types/syslog/transports/BatchingHttpTransport.d.ts +59 -0
  524. package/dist/types/syslog/transports/ConsoleTransport.d.ts +8 -0
  525. package/dist/types/syslog/transports/FileTransport.d.ts +13 -0
  526. package/dist/types/syslog/transports/HttpTransport.d.ts +15 -0
  527. package/dist/types/syslog/transports/LokiTransport.d.ts +45 -0
  528. package/dist/types/syslog/transports/OpenSearchTransport.d.ts +40 -0
  529. package/dist/types/syslog/transports/SyslogTransport.d.ts +9 -0
  530. package/dist/types/syslog/transports/index.d.ts +12 -0
  531. package/dist/types/testing/index.d.ts +197 -0
  532. package/dist/types/types/IAdminApi.d.ts +246 -0
  533. package/dist/types/types/ICliKernel.d.ts +28 -0
  534. package/dist/types/types/ICommand.d.ts +14 -0
  535. package/dist/types/types/IContainer.d.ts +35 -0
  536. package/dist/types/types/IIdempotencyStore.d.ts +159 -0
  537. package/dist/types/types/IKernel.d.ts +138 -0
  538. package/dist/types/types/IMcpTool.d.ts +157 -0
  539. package/dist/types/types/IModule.d.ts +73 -0
  540. package/dist/types/types/IModuleManifest.d.ts +49 -0
  541. package/dist/types/types/IPage.d.ts +119 -0
  542. package/dist/types/types/IService.d.ts +62 -0
  543. package/dist/types/types/ISyslog.d.ts +58 -0
  544. package/dist/types/types/ITransport.d.ts +5 -0
  545. package/dist/types/types/globals.d.ts +47 -0
  546. package/docs/angular-services.md +318 -0
  547. package/docs/catalogue.md +184 -0
  548. package/docs/cli.md +369 -0
  549. package/docs/client.md +616 -0
  550. package/docs/debugbar.md +218 -0
  551. package/docs/environnement.md +308 -0
  552. package/docs/index.md +388 -0
  553. package/docs/kernel.md +670 -0
  554. package/docs/progression.md +228 -0
  555. package/docs/react-hooks.md +686 -0
  556. package/docs/request-context.md +507 -0
  557. package/docs/service.md +590 -0
  558. package/docs/svelte-reactivite.md +293 -0
  559. package/docs/syslog.md +848 -0
  560. package/docs/testing.md +203 -0
  561. package/docs/vue-composables.md +255 -0
  562. package/man/nodefony.1 +152 -0
  563. package/package.json +163 -83
  564. package/templates/app/agents/AGENTS.md.tpl +967 -0
  565. package/templates/app/agents/POINTEUR.md.tpl +12 -0
  566. package/templates/app/base/Dockerfile.tpl +104 -0
  567. package/templates/app/base/README.md.tpl +314 -0
  568. package/templates/app/base/dockerignore.tpl +28 -0
  569. package/templates/app/base/env.ts.tpl +130 -0
  570. package/templates/app/base/gitattributes.tpl +28 -0
  571. package/templates/app/base/github/workflows/ci.yml.tpl +91 -0
  572. package/templates/app/base/gitignore.tpl +46 -0
  573. package/templates/app/base/gitlab-ci.yml.tpl +42 -0
  574. package/templates/app/base/index.ts.tpl +69 -0
  575. package/templates/app/base/nodefony.config.ts.tpl +342 -0
  576. package/templates/app/base/oxlintrc.json.tpl +127 -0
  577. package/templates/app/base/package.json.tpl +75 -0
  578. package/templates/app/base/prettierignore.tpl +24 -0
  579. package/templates/app/base/prettierrc.json.tpl +12 -0
  580. package/templates/app/base/rolldown.config.ts.tpl +8 -0
  581. package/templates/app/base/tests/config.test.ts.tpl +29 -0
  582. package/templates/app/base/tests/e2e.setup.ts.tpl +181 -0
  583. package/templates/app/base/tests/e2e.test.ts.tpl +105 -0
  584. package/templates/app/base/tests/migrations.e2e.test.ts.tpl +579 -0
  585. package/templates/app/base/tsconfig.json.tpl +47 -0
  586. package/templates/app/base/vitest.config.ts.tpl +88 -0
  587. package/templates/app/base/vitest.e2e.config.ts.tpl +39 -0
  588. package/templates/app/complete/compose.yaml.tpl +328 -0
  589. package/templates/app/complete/deploy/migrate-job.yaml.tpl +100 -0
  590. package/templates/app/complete/docker/db/init-nodefony-e2e.sql.tpl +30 -0
  591. package/templates/app/complete/docker/grafana/provisioning/datasources/loki.yaml.tpl +15 -0
  592. package/templates/app/complete/env.local.tpl +11 -0
  593. package/templates/app/complete/env.tpl +53 -0
  594. package/templates/app/complete/nodefony/entity/User.ts.tpl +69 -0
  595. package/templates/app/complete/nodefony/security/provisionUsers.ts.tpl +124 -0
  596. package/templates/app/complete/nodefony/service/AppBannerService.ts.tpl +98 -0
  597. package/templates/app/complete/nodefony/service/AppInfoService.ts.tpl +85 -0
  598. package/templates/app/frontend/angular/frontend/src/accent.css.tpl +34 -0
  599. package/templates/app/frontend/angular/frontend/src/app/app.component.ts.tpl +400 -0
  600. package/templates/app/frontend/react/frontend/src/App.tsx.tpl +421 -0
  601. package/templates/app/frontend/react/frontend/src/accent.css.tpl +30 -0
  602. package/templates/app/frontend/shared/frontend/src/brand.ts.tpl +3 -0
  603. package/templates/app/frontend/shared/frontend/src/showcase.css.tpl +224 -0
  604. package/templates/app/frontend/shared/nodefony/controllers/AppController.ts.tpl +45 -0
  605. package/templates/app/frontend/svelte/frontend/src/App.svelte.tpl +371 -0
  606. package/templates/app/frontend/svelte/frontend/src/accent.css.tpl +34 -0
  607. package/templates/app/frontend/vue/frontend/src/App.vue.tpl +367 -0
  608. package/templates/app/frontend/vue/frontend/src/accent.css.tpl +34 -0
  609. package/templates/app/home/nodefony/controllers/HomeController.ts.tpl +38 -0
  610. package/templates/command/nodefony/command/__NAME__.ts.tpl +132 -0
  611. package/templates/controller/duplex/nodefony/controllers/__NAME__.ts.tpl +188 -0
  612. package/templates/controller/example/nodefony/controllers/__NAME__.ts.tpl +348 -0
  613. package/templates/controller/hello/nodefony/controllers/__NAME__.ts.tpl +143 -0
  614. package/templates/controller/realtime/nodefony/controllers/__NAME__.ts.tpl +153 -0
  615. package/templates/controller/realtime/tests/__KEBAB__-realtime.test.ts.tpl +79 -0
  616. package/templates/controller/rest/nodefony/controllers/__NAME__.ts.tpl +159 -0
  617. package/templates/entity/base/nodefony/entity/__PASCAL__.schema.ts.tpl +31 -0
  618. package/templates/entity/base/nodefony/entity/__PASCAL__.ts.tpl +68 -0
  619. package/templates/entity/controller/nodefony/controllers/__PASCAL__Controller.ts.tpl +335 -0
  620. package/templates/entity/service/nodefony/service/__PASCAL__Service.ts.tpl +126 -0
  621. package/templates/entity/tests/tests/__KEBAB__.e2e.test.ts.tpl +358 -0
  622. package/templates/entity/tests/tests/__KEBAB__.test.ts.tpl +87 -0
  623. package/templates/front/angular/frontend/src/app/app.component.ts.tpl +30 -0
  624. package/templates/front/base/nodefony/controllers/__NAME__.ts.tpl +60 -0
  625. package/templates/front/react/frontend/src/App.tsx.tpl +26 -0
  626. package/templates/front/svelte/frontend/src/App.svelte.tpl +19 -0
  627. package/templates/front/vue/frontend/src/App.vue.tpl +23 -0
  628. package/templates/module/ai/AGENTS.md.tpl +71 -0
  629. package/templates/module/base/README.md.tpl +62 -0
  630. package/templates/module/base/docs/index.md.tpl +55 -0
  631. package/templates/module/base/index.ts.tpl +50 -0
  632. package/templates/module/base/nodefony/config/config.ts.tpl +60 -0
  633. package/templates/module/base/nodefony/config/defineModuleConfig.ts.tpl +55 -0
  634. package/templates/module/base/nodefony/src/errors/__PASCAL__Error.ts.tpl +20 -0
  635. package/templates/module/base/package.json.tpl +53 -0
  636. package/templates/module/base/rolldown.config.ts.tpl +14 -0
  637. package/templates/module/base/tests/__KEBAB__.test.ts.tpl +39 -0
  638. package/templates/module/base/tsconfig.json.tpl +42 -0
  639. package/templates/module/base/vitest.config.ts.tpl +27 -0
  640. package/templates/module/packages/CLAUDE.md.tpl +51 -0
  641. package/templates/module/packages/MEMORY.md.tpl +39 -0
  642. package/templates/module/packages/tsconfig.declarations.json.tpl +19 -0
  643. package/templates/module/packages/tsconfig.tests.json.tpl +11 -0
  644. package/templates/module/service/nodefony/interfaces/I__PASCAL__Service.ts.tpl +14 -0
  645. package/templates/module/service/nodefony/interfaces/index.ts.tpl +1 -0
  646. package/templates/module/service/nodefony/service/__PASCAL__Service.ts.tpl +116 -0
  647. package/templates/service/nodefony/interfaces/I__PASCAL__Service.ts.tpl +19 -0
  648. package/templates/service/nodefony/service/__PASCAL__Service.ts.tpl +136 -0
  649. package/templates/service/tests/__PASCAL__Service.test.ts.tpl +53 -0
  650. package/templates/shared/front-entry/angular/frontend/src/main.ts.tpl +17 -0
  651. package/templates/shared/front-entry/react/frontend/src/main.tsx.tpl +11 -0
  652. package/templates/shared/front-entry/svelte/frontend/src/main.ts.tpl +13 -0
  653. package/templates/shared/front-entry/vue/frontend/src/main.ts.tpl +12 -0
  654. package/templates/shared/front-registrar/nodefony/frontend/register__PASCAL__Entry.ts.tpl +40 -0
  655. package/templates/shared/front-shell/frontend/index.html.tpl +39 -0
  656. package/templates/shared/ng-app-tsconfig/frontend/tsconfig.app.json.tpl +18 -0
  657. package/templates/shared/svelte-shim/frontend/src/env.d.ts.tpl +12 -0
  658. package/templates/shared/vue-shim/frontend/src/env.d.ts.tpl +15 -0
  659. package/.yarnclean +0 -45
  660. package/CHANGELOG.md +0 -406
  661. package/autoloader.es6 +0 -253
  662. package/builder.es6 +0 -366
  663. package/cli/builder/bundles/bundle.js +0 -328
  664. package/cli/builder/bundles/controller.js +0 -73
  665. package/cli/builder/bundles/users-bundle/.yarnclean +0 -45
  666. package/cli/builder/bundles/users-bundle/Command/fixtureTask.js +0 -47
  667. package/cli/builder/bundles/users-bundle/Command/usersCommand.js +0 -105
  668. package/cli/builder/bundles/users-bundle/Entity/mongoose/userEntity.js +0 -168
  669. package/cli/builder/bundles/users-bundle/Entity/sequelize/userEntity.js +0 -231
  670. package/cli/builder/bundles/users-bundle/Fixtures/users.js +0 -117
  671. package/cli/builder/bundles/users-bundle/Fixtures/usersFixtures.js +0 -114
  672. package/cli/builder/bundles/users-bundle/Resources/config/config.js +0 -90
  673. package/cli/builder/bundles/users-bundle/Resources/config/routing.js +0 -17
  674. package/cli/builder/bundles/users-bundle/Resources/config/security.js +0 -96
  675. package/cli/builder/bundles/users-bundle/Resources/config/services.js +0 -7
  676. package/cli/builder/bundles/users-bundle/Resources/config/webpack/webpack.dev.config.js +0 -13
  677. package/cli/builder/bundles/users-bundle/Resources/config/webpack/webpack.prod.config.js +0 -31
  678. package/cli/builder/bundles/users-bundle/Resources/config/webpack.config.js +0 -146
  679. package/cli/builder/bundles/users-bundle/Resources/js/users.js +0 -153
  680. package/cli/builder/bundles/users-bundle/Resources/public/favicon.ico +0 -0
  681. package/cli/builder/bundles/users-bundle/Resources/public/images/users-logo.png +0 -0
  682. package/cli/builder/bundles/users-bundle/Resources/scss/awesome/font-awesome.config.js +0 -11
  683. package/cli/builder/bundles/users-bundle/Resources/scss/custom.scss +0 -23
  684. package/cli/builder/bundles/users-bundle/Resources/scss/users.scss +0 -59
  685. package/cli/builder/bundles/users-bundle/Resources/swagger/openapi/login.js +0 -235
  686. package/cli/builder/bundles/users-bundle/Resources/swagger/openapi/users.js +0 -232
  687. package/cli/builder/bundles/users-bundle/Resources/translations/login.en_en.yml +0 -14
  688. package/cli/builder/bundles/users-bundle/Resources/translations/login.fr_fr.yml +0 -14
  689. package/cli/builder/bundles/users-bundle/Resources/translations/users.en_en.yml +0 -35
  690. package/cli/builder/bundles/users-bundle/Resources/translations/users.fr_fr.yml +0 -36
  691. package/cli/builder/bundles/users-bundle/Resources/views/base.html.twig +0 -32
  692. package/cli/builder/bundles/users-bundle/Resources/views/footer.html.twig +0 -7
  693. package/cli/builder/bundles/users-bundle/Resources/views/header.html.twig +0 -90
  694. package/cli/builder/bundles/users-bundle/Resources/views/login/login.html.twig +0 -43
  695. package/cli/builder/bundles/users-bundle/Resources/views/users/createUser.html.twig +0 -296
  696. package/cli/builder/bundles/users-bundle/Resources/views/users/readUsers.html.twig +0 -94
  697. package/cli/builder/bundles/users-bundle/controller/api/graphql/graphqlController.js +0 -56
  698. package/cli/builder/bundles/users-bundle/controller/api/graphql/userResolver.js +0 -121
  699. package/cli/builder/bundles/users-bundle/controller/api/graphql/usertype.js +0 -58
  700. package/cli/builder/bundles/users-bundle/controller/api/openapi/loginApiController.js +0 -210
  701. package/cli/builder/bundles/users-bundle/controller/api/openapi/restUserController.js +0 -244
  702. package/cli/builder/bundles/users-bundle/controller/loginController.js +0 -91
  703. package/cli/builder/bundles/users-bundle/controller/usersController.js +0 -332
  704. package/cli/builder/bundles/users-bundle/package.json +0 -58
  705. package/cli/builder/bundles/users-bundle/readme.md +0 -360
  706. package/cli/builder/bundles/users-bundle/services/usersService.js +0 -411
  707. package/cli/builder/bundles/users-bundle/src/providers/mongoose/userProvider.js +0 -47
  708. package/cli/builder/bundles/users-bundle/src/providers/sequelize/userProvider.js +0 -48
  709. package/cli/builder/bundles/users-bundle/tests/loginTest.js +0 -182
  710. package/cli/builder/bundles/users-bundle/usersBundle.js +0 -26
  711. package/cli/builder/microService/microService.js +0 -261
  712. package/cli/builder/microService/skeletons/.editorconfig +0 -18
  713. package/cli/builder/microService/skeletons/.env-cmdrc.js +0 -32
  714. package/cli/builder/microService/skeletons/.jshintrc +0 -37
  715. package/cli/builder/microService/skeletons/README.md +0 -117
  716. package/cli/builder/microService/skeletons/bin/bash/hello.sh +0 -5
  717. package/cli/builder/microService/skeletons/bin/cli +0 -13
  718. package/cli/builder/microService/skeletons/bin/python/hello.py +0 -20
  719. package/cli/builder/microService/skeletons/config/config.js +0 -29
  720. package/cli/builder/microService/skeletons/config/pm2.config.js +0 -72
  721. package/cli/builder/microService/skeletons/config/webpack/webpack.config.dev.js +0 -8
  722. package/cli/builder/microService/skeletons/config/webpack/webpack.config.prod.js +0 -25
  723. package/cli/builder/microService/skeletons/config/webpack.config.js +0 -114
  724. package/cli/builder/microService/skeletons/package.json +0 -76
  725. package/cli/builder/microService/skeletons/src/browser/index.css +0 -3
  726. package/cli/builder/microService/skeletons/src/browser/index.js +0 -16
  727. package/cli/builder/microService/skeletons/src/browser/socketio.js +0 -46
  728. package/cli/builder/microService/skeletons/src/cli/cli.js +0 -224
  729. package/cli/builder/microService/skeletons/src/cli/menu.js +0 -28
  730. package/cli/builder/microService/skeletons/src/n-api/README.md +0 -1
  731. package/cli/builder/microService/skeletons/src/n-api/binding.gyp +0 -14
  732. package/cli/builder/microService/skeletons/src/n-api/hello.cc +0 -14
  733. package/cli/builder/microService/skeletons/src/n-api/hello.js +0 -23
  734. package/cli/builder/microService/skeletons/src/n-api/package.json +0 -15
  735. package/cli/builder/microService/skeletons/src/node/examples/index.js +0 -120
  736. package/cli/builder/microService/skeletons/src/node/index.js +0 -102
  737. package/cli/builder/microService/skeletons/src/node/services/markdown/markdown.js +0 -27
  738. package/cli/builder/microService/skeletons/src/node/services/servers/http.js +0 -45
  739. package/cli/builder/microService/skeletons/src/node/services/servers/https.js +0 -44
  740. package/cli/builder/microService/skeletons/src/node/services/socketio/socketio.js +0 -46
  741. package/cli/builder/microService/skeletons/src/node/services/syscall/syscall.js +0 -111
  742. package/cli/builder/microService/skeletons/src/node/services/worker/thread.js +0 -59
  743. package/cli/builder/microService/skeletons/src/node/services/worker/worker.js +0 -60
  744. package/cli/builder/microService/skeletons/src/templates/base.html +0 -12
  745. package/cli/builder/microService/skeletons/src/templates/socket.html +0 -23
  746. package/cli/builder/microService/skeletons/tests/unit/serviceTest.js +0 -30
  747. package/cli/builder/project/project.js +0 -474
  748. package/cli/builder/project/skeletons/README.md +0 -778
  749. package/cli/builder/project/skeletons/bin/dev-deploy.sh +0 -5
  750. package/cli/builder/project/skeletons/bin/generateCertificates.sh.skeleton +0 -180
  751. package/cli/builder/project/skeletons/bin/prod-deploy.sh +0 -3
  752. package/cli/builder/project/skeletons/config/config.js.skeleton +0 -178
  753. package/cli/builder/project/skeletons/config/openssl/ca/openssl.cnf.skeleton +0 -150
  754. package/cli/builder/project/skeletons/config/openssl/ca_intermediate/openssl.cnf.skeleton +0 -152
  755. package/cli/builder/project/skeletons/config/pm2.config.js.skeleton +0 -62
  756. package/cli/builder/project/skeletons/documentation.html.twig +0 -24
  757. package/cli/builder/project/skeletons/editorconfig.skeleton +0 -18
  758. package/cli/builder/project/skeletons/eslintignore.skeleton +0 -15
  759. package/cli/builder/project/skeletons/eslintrc.js.skeleton +0 -97
  760. package/cli/builder/project/skeletons/gitignore.skeleton +0 -32
  761. package/cli/builder/project/skeletons/migrations/2022.12.25T17.37.37.entity-user.js +0 -137
  762. package/cli/builder/project/skeletons/migrations/2022.12.25T17.37.38.entity-session.js +0 -97
  763. package/cli/builder/project/skeletons/migrations/2022.12.25T17.37.39.entity-requests.js +0 -115
  764. package/cli/builder/project/skeletons/migrations/2022.12.25T17.37.40.entity-jwts.js +0 -97
  765. package/cli/builder/project/skeletons/migrations/migrations.skeleton.js +0 -101
  766. package/cli/builder/project/skeletons/package.json.twig +0 -71
  767. package/cli/builder/react/reactBuilder.js +0 -224
  768. package/cli/builder/react/skeletons/app/Resources/databases/nodefony.db +0 -0
  769. package/cli/builder/react/skeletons/app/Resources/translations/messages.en_en.yml +0 -5
  770. package/cli/builder/react/skeletons/app/Resources/translations/messages.fr_fr.yml +0 -5
  771. package/cli/builder/react/skeletons/app/Resources/views/base.html.twig +0 -33
  772. package/cli/builder/react/skeletons/app/config/config.js +0 -392
  773. package/cli/builder/react/skeletons/app/config/routing.js +0 -10
  774. package/cli/builder/react/skeletons/app/config/security.js +0 -74
  775. package/cli/builder/react/skeletons/app/controller/appController.js +0 -22
  776. package/cli/builder/sandbox/sandBoxBuilder.js +0 -610
  777. package/cli/builder/sandbox/skeletons/Resources/css/entry.css +0 -48
  778. package/cli/builder/sandbox/skeletons/Resources/js/entry.js +0 -60
  779. package/cli/builder/sandbox/skeletons/Resources/public/manifest.json +0 -32
  780. package/cli/builder/sandbox/skeletons/Resources/translations/messages.en_en.yml +0 -5
  781. package/cli/builder/sandbox/skeletons/Resources/translations/messages.fr_fr.yml +0 -5
  782. package/cli/builder/sandbox/skeletons/Resources/views/base.html.twig +0 -46
  783. package/cli/builder/sandbox/skeletons/Resources/views/index.html.twig +0 -34
  784. package/cli/builder/sandbox/skeletons/bootstrap/custom.scss +0 -27
  785. package/cli/builder/sandbox/skeletons/bootstrap/entry.scss +0 -60
  786. package/cli/builder/sandbox/skeletons/workbox/templates/index.html.twig +0 -32
  787. package/cli/builder/sandbox/skeletons/workbox/workers/service-worker.js +0 -196
  788. package/cli/builder/skeletons/Resources/public/favicon.ico +0 -0
  789. package/cli/builder/skeletons/Resources/public/images/app-logo.png +0 -0
  790. package/cli/builder/skeletons/Resources/views/framework-bundle/views/401.html.twig +0 -1
  791. package/cli/builder/skeletons/Resources/views/framework-bundle/views/401.json.twig +0 -24
  792. package/cli/builder/skeletons/Resources/views/framework-bundle/views/403.html.twig +0 -1
  793. package/cli/builder/skeletons/Resources/views/framework-bundle/views/403.json.twig +0 -20
  794. package/cli/builder/skeletons/Resources/views/framework-bundle/views/404.html.twig +0 -1
  795. package/cli/builder/skeletons/Resources/views/framework-bundle/views/404.json.twig +0 -20
  796. package/cli/builder/skeletons/Resources/views/framework-bundle/views/500.html.twig +0 -1
  797. package/cli/builder/skeletons/Resources/views/framework-bundle/views/base.html.twig +0 -30
  798. package/cli/builder/skeletons/Resources/views/framework-bundle/views/exception.html.twig +0 -1
  799. package/cli/builder/skeletons/Resources/views/framework-bundle/views/exception.json.twig +0 -24
  800. package/cli/builder/skeletons/Resources/views/framework-bundle/views/footer.html.twig +0 -33
  801. package/cli/builder/skeletons/Resources/views/framework-bundle/views/header.html.twig +0 -6
  802. package/cli/builder/skeletons/Resources/views/framework-bundle/views/index.html.twig +0 -6
  803. package/cli/builder/skeletons/Resources/views/framework-bundle/views/index.json.twig +0 -1
  804. package/cli/builder/skeletons/Resources/views/framework-bundle/views/layout.html.twig +0 -125
  805. package/cli/builder/skeletons/Resources/views/framework-bundle/views/layout.json.twig +0 -5
  806. package/cli/builder/skeletons/Resources/views/framework-bundle/views/timeout.html.twig +0 -1
  807. package/cli/builder/skeletons/Resources/views/framework-bundle/views/timeout.json.twig +0 -24
  808. package/cli/builder/skeletons/app/appKernel.js +0 -133
  809. package/cli/builder/skeletons/binding/binding.cc +0 -26
  810. package/cli/builder/skeletons/binding/binding.skeleton +0 -8
  811. package/cli/builder/skeletons/bundle/bundleClass.js +0 -37
  812. package/cli/builder/skeletons/command/commandClass.js +0 -11
  813. package/cli/builder/skeletons/command/taskClass.js +0 -20
  814. package/cli/builder/skeletons/config/config.js +0 -138
  815. package/cli/builder/skeletons/config/nodefony/elastic-bundle.js +0 -37
  816. package/cli/builder/skeletons/config/nodefony/framework-bundle.js +0 -22
  817. package/cli/builder/skeletons/config/nodefony/http-bundle.js +0 -104
  818. package/cli/builder/skeletons/config/nodefony/mail-bundle.js +0 -44
  819. package/cli/builder/skeletons/config/nodefony/mongoose-bundle.js +0 -51
  820. package/cli/builder/skeletons/config/nodefony/monitoring-bundle.js +0 -34
  821. package/cli/builder/skeletons/config/nodefony/realtime-bundle.js +0 -15
  822. package/cli/builder/skeletons/config/nodefony/redis-bundle.js +0 -44
  823. package/cli/builder/skeletons/config/nodefony/security-bundle.js +0 -25
  824. package/cli/builder/skeletons/config/nodefony/sequelize-bundle.js +0 -156
  825. package/cli/builder/skeletons/config/routing.js +0 -55
  826. package/cli/builder/skeletons/config/security.js +0 -102
  827. package/cli/builder/skeletons/config/services.js +0 -1
  828. package/cli/builder/skeletons/config/webpack/webpack.dev.config.js +0 -13
  829. package/cli/builder/skeletons/config/webpack/webpack.prod.config.js +0 -20
  830. package/cli/builder/skeletons/config/webpack.config.js +0 -148
  831. package/cli/builder/skeletons/controller/controllerClass.js +0 -75
  832. package/cli/builder/skeletons/package.json.twig +0 -57
  833. package/cli/builder/skeletons/unittest/testFile.js +0 -46
  834. package/cli/builder/vue/skeletons/Resources/public/images/app-logo.png +0 -0
  835. package/cli/builder/vue/skeletons/Resources/translations/messages.en_en.yml +0 -5
  836. package/cli/builder/vue/skeletons/Resources/translations/messages.fr_fr.yml +0 -5
  837. package/cli/builder/vue/skeletons/vue.config.js +0 -129
  838. package/cli/builder/vue/vueBuilder.js +0 -410
  839. package/cli/generate/generate.es6 +0 -103
  840. package/cli/install/install.js +0 -190
  841. package/cli/sequelize/sequelize.js +0 -94
  842. package/cli/start.js +0 -702
  843. package/cli/tools/pm2.es6 +0 -112
  844. package/cli/tools/tools.es6 +0 -97
  845. package/cli.es6 +0 -925
  846. package/container.es6 +0 -272
  847. package/error.es6 +0 -293
  848. package/fileClass.es6 +0 -242
  849. package/finder/file.es6 +0 -33
  850. package/finder/fileResult.es6 +0 -138
  851. package/finder/finder2.es6 +0 -275
  852. package/finder.es6 +0 -427
  853. package/kernel/annotations/annotations.es6 +0 -286
  854. package/kernel/api/api.es6 +0 -61
  855. package/kernel/api/graphqlApi.es6 +0 -107
  856. package/kernel/api/jsonApi.es6 +0 -177
  857. package/kernel/api/openApi.es6 +0 -139
  858. package/kernel/api/schemas/openApiSchema.js +0 -394
  859. package/kernel/babylon.es6 +0 -162
  860. package/kernel/bundle.es6 +0 -1200
  861. package/kernel/cliKernel.es6 +0 -869
  862. package/kernel/command.es6 +0 -78
  863. package/kernel/commands/nodefonyCommand.es6 +0 -247
  864. package/kernel/commands/tasks/bundlesTask.es6 +0 -59
  865. package/kernel/controllers/controller.es6 +0 -791
  866. package/kernel/fixture.es6 +0 -19
  867. package/kernel/injections/injections.es6 +0 -424
  868. package/kernel/kernel.es6 +0 -1960
  869. package/kernel/kernelWatcher.es6 +0 -387
  870. package/kernel/orm/entity.es6 +0 -59
  871. package/kernel/orm/orm.es6 +0 -139
  872. package/kernel/reader.es6 +0 -290
  873. package/kernel/security/encoder.es6 +0 -17
  874. package/kernel/security/factories/factory.es6 +0 -111
  875. package/kernel/security/factories/passeportFactory.es6 +0 -61
  876. package/kernel/security/provider.es6 +0 -58
  877. package/kernel/security/providers/chainProvider.es6 +0 -99
  878. package/kernel/security/providers/memoryProvider.es6 +0 -55
  879. package/kernel/security/providers/providerManager.es6 +0 -67
  880. package/kernel/security/providers/userEntityProvider.es6 +0 -50
  881. package/kernel/security/role.es6 +0 -12
  882. package/kernel/security/secureArea.es6 +0 -431
  883. package/kernel/security/tokens/token.es6 +0 -171
  884. package/kernel/security/user.es6 +0 -106
  885. package/kernel/serviceRealTime.es6 +0 -21
  886. package/kernel/services/connectionsService.es6 +0 -93
  887. package/kernel/services/cron/cronService.es6 +0 -123
  888. package/kernel/task.es6 +0 -80
  889. package/kernel/templates.es6 +0 -22
  890. package/kernel/templating/twig.es6 +0 -218
  891. package/kernel/tests/cliTest.js +0 -59
  892. package/kernel/tests/containerTest.js +0 -232
  893. package/kernel/tests/kernelTest.js +0 -39
  894. package/nodefony.es6 +0 -1084
  895. package/notificationsCenter.es6 +0 -118
  896. package/protocol.es6 +0 -86
  897. package/protocols/bayeux.es6 +0 -174
  898. package/protocols/jsonRpc/jsonrpc.es6 +0 -56
  899. package/result.es6 +0 -99
  900. package/service.es6 +0 -288
  901. package/syslog/pdu.es6 +0 -141
  902. package/syslog/syslog.es6 +0 -754
  903. package/watcher.es6 +0 -113
@@ -0,0 +1,203 @@
1
+ ---
2
+ title: "Éprouver une application — le harnais livré avec le framework"
3
+ navTitle: Tests
4
+ lang: fr
5
+ module: "@nodefony/core"
6
+ topic: testing
7
+ coverageModule: nodefony-core
8
+ coveragePackage: "nodefony (cœur)"
9
+ coverageFiles: "testing/index.ts"
10
+ section: "Cœur runtime"
11
+ audience: [developer]
12
+ tags: [tests, e2e, testing, harnais, vitest, unitaire, integration]
13
+ version: "doc"
14
+ status: stable
15
+ updated: 2026-09-01
16
+ source: "src/nodefony/docs/testing.md"
17
+ ---
18
+
19
+ # Éprouver une application Nodefony
20
+
21
+ > Une application créée par `nodefony create app` naît avec des tests qui marchent : un harnais
22
+ > qui démarre le serveur une fois pour toute la suite, l'arrête à la fin, et donne aux tests le
23
+ > moyen de savoir à qui parler. Cette page explique ce que ce harnais utilise — le sous-chemin
24
+ > `nodefony/testing` — et comment vous en écrivez un second.
25
+
26
+ 📍 [Documentation](../../../docs/index.md) › [Cœur — @nodefony/core](index.md) › **Tests**
27
+
28
+ ## Le modèle — trois niveaux, trois outils
29
+
30
+ Trois questions différentes, qu'il ne faut pas confondre :
31
+
32
+ | Ce que vous voulez éprouver | Ce qu'il vous faut |
33
+ | ---------------------------------------------------- | ------------------------------------------------- |
34
+ | La logique d'**un service**, seule | `createTestModule()` — aucun serveur, aucun port |
35
+ | Le comportement de **l'application qui tourne** | le harnais généré + `runningAppPort()` |
36
+ | Ce qui ne s'observe qu'**au démarrage** d'un process | `startSpareApp()` — un exemplaire jetable, à part |
37
+
38
+ Le point commun : **rien de tout cela ne demande de fabriquer un kernel à la main**. Un service
39
+ Nodefony reçoit un `Module`, et un `Module` réclame normalement un `Kernel` — sans porte d'entrée,
40
+ éprouver un calcul de taxe obligerait à démarrer une application entière, ou à écrire un
41
+ `as unknown as Kernel` que les règles du projet interdisent. C'est ce trou que le sous-chemin
42
+ `nodefony/testing` comble.
43
+
44
+ ## 🚀 Démarrage rapide
45
+
46
+ ```ts
47
+ import { createTestModule, runningAppPort } from "nodefony/testing";
48
+
49
+ // 1. Un module JETABLE : il porte un conteneur et un bus d'événements, rien d'autre.
50
+ // De quoi construire un service seul, sans démarrer quoi que ce soit.
51
+ const app = createTestModule();
52
+
53
+ // 2. Les services se donnent leurs dépendances À LA MAIN — c'est ce qui permet
54
+ // d'y glisser un double.
55
+ class TaxService {
56
+ rate = 0.2;
57
+ }
58
+ class InvoiceService {
59
+ constructor(
60
+ readonly module: typeof app,
61
+ readonly tax: TaxService,
62
+ ) {}
63
+ total(ht: number): number {
64
+ return ht * (1 + this.tax.rate);
65
+ }
66
+ }
67
+ const invoice = new InvoiceService(app, new TaxService());
68
+ console.log(invoice.total(100)); // 120
69
+
70
+ // 3. Dans un test de bout en bout, le port ne s'écrit JAMAIS en dur :
71
+ // il se demande à l'application qui tourne.
72
+ const port = runningAppPort();
73
+ const res = await fetch(`http://127.0.0.1:${port}/`);
74
+ console.log(res.status);
75
+ ```
76
+
77
+ ## Ce que le sous-chemin fournit
78
+
79
+ <!-- prettier-ignore -->
80
+ | Export | Ce qu'il fait | Quand s'en servir |
81
+ | --- | --- | --- |
82
+ | `createTestModule()` (`testing/index.ts:160`) | Rend un `Module` jetable portant un conteneur et un bus d'événements | Test unitaire d'un service |
83
+ | `runningAppPort()` (`testing/index.ts:96`) | Lit le port de l'application démarrée par le décor | Tout test de bout en bout |
84
+ | `startSpareApp()` (`testing/index.ts:251`) | Démarre un exemplaire jetable dans un état choisi, puis restaure l'état d'exécution | Éprouver un démarrage, pas un fonctionnement |
85
+ | `nodefonyBin()` (`testing/index.ts:64`) | Résout le lanceur du framework, où qu'il soit installé | Appeler une commande depuis un script |
86
+
87
+ ### `createTestModule()` — et ce qu'il ne fait pas
88
+
89
+ Il ne démarre aucun kernel, n'ouvre aucun port, ne lit aucune configuration. Conséquence directe,
90
+ et qui surprend : **la résolution par le conteneur n'est pas de la partie**. `@inject("XService")`
91
+ passe par le singleton du kernel, qui n'existe pas ici.
92
+
93
+ ```ts ignore
94
+ const app = createTestModule();
95
+ const invoice = new InvoiceService(app, new TaxService(app)); // ✅
96
+ const invoice = await app.addService(InvoiceService); // ❌ exige un kernel vivant
97
+ ```
98
+
99
+ Ce n'est pas une limite gênante : un test unitaire **donne lui-même** la dépendance, ce qui est
100
+ précisément l'intérêt de l'injection par constructeur — et ce qui permet d'y glisser un double.
101
+
102
+ ### `runningAppPort()` — pourquoi il lève plutôt que de se rabattre
103
+
104
+ Il lit l'état d'exécution publié par l'application démarrée, et **échoue franchement** s'il ne
105
+ trouve pas de port. Un port de repli ferait interroger un serveur étranger sur la même machine, et
106
+ le verdict porterait sur lui : un test vert qui n'a rien mesuré de votre code.
107
+
108
+ ## Le harnais généré — `tests/e2e.setup.ts`
109
+
110
+ Chaque application créée par `nodefony create app` reçoit ce fichier. Il fait quatre choses, dans
111
+ cet ordre, **une fois pour toute la suite** :
112
+
113
+ 1. **Repartir d'une base vierge.** Un verdict qui dépend de ce qu'un essai précédent a laissé n'est
114
+ pas reproductible. Sur SQLite le fichier est supprimé — avec ses compagnons `-wal` et `-shm`,
115
+ sans quoi la base ressuscite. Sur un moteur serveur, c'est `orm:reset` : une base ne s'efface
116
+ pas, on retire ses tables.
117
+ 2. **Appliquer le schéma avant le trafic** (`orm:migrate`). C'est le patron de production tel quel :
118
+ en production le démarrage ne fabrique jamais le schéma, parce que plusieurs exemplaires partent
119
+ en même temps et qu'aucun ne doit toucher aux tables.
120
+ 3. **Démarrer l'application** par `production --detach --wait` : la commande ne rend la main que
121
+ lorsque la disponibilité est constatée — aucune attente arbitraire.
122
+ 4. **L'arrêter à la fin** (`stop`), sans exception : un serveur orphelin tient les ports et fait
123
+ échouer l'essai suivant sur une erreur qui ne parle pas de lui.
124
+
125
+ Le fichier expose aussi `URL_BASE_E2E` — une base **séparée de celle du développement**, ce qui
126
+ n'est pas une coquetterie : une suite qui écrit dans la base de développement y sème un compte
127
+ `admin` dont le mot de passe est celui du fichier de test, et le couple annoncé par le README cesse
128
+ alors de fonctionner sans le moindre message. Surcharge possible par `NF_E2E_DATABASE_URL`.
129
+
130
+ > Cette variable ne change **pas le dialecte** de vos entités : elles sont écrites pour le moteur
131
+ > choisi à la création, et l'ORM refuse de démarrer sur un autre en nommant l'entité fautive.
132
+
133
+ ## Écrire un second harnais — un exemplaire jetable
134
+
135
+ Certaines choses ne s'observent que sur un processus qui **démarre** dans un état précis : un
136
+ schéma en retard qui retient la mise en service, une dépendance absente, un refus de démarrage. Le
137
+ décor de la suite, lui, a démarré l'application dans l'état normal — et c'est ce qu'on veut.
138
+
139
+ ```ts ignore
140
+ const jetable = await startSpareApp({
141
+ port: 5399,
142
+ env: { NODE_ENV: "production", NF_DATABASE_URL: "sqlite:/tmp/vierge.db" },
143
+ });
144
+ try {
145
+ const res = await fetch(`http://127.0.0.1:${jetable.port}/readyz`);
146
+ assert.equal(res.status, 503);
147
+ } finally {
148
+ await jetable.stop();
149
+ }
150
+ ```
151
+
152
+ Le port est **imposé, jamais deviné** : l'exemplaire du décor tient déjà celui de l'application, et
153
+ la sonde doit savoir à qui elle parle.
154
+
155
+ ## 📖 Lexique
156
+
157
+ | Terme | Ce que c'est |
158
+ | ---------------------- | --------------------------------------------------------------------------------------------------------------------------------- |
159
+ | **Sous-chemin** | Une porte d'entrée secondaire d'un paquet (`nodefony/testing` à côté de `nodefony`), déclarée dans son `package.json`. |
160
+ | **e2e** | _End to end_ — un test qui exerce la chaîne entière, du client à la base réelle, sans rien simuler. |
161
+ | **Module jetable** | Ce que rend `createTestModule()` : un porteur de conteneur et d'événements, sans kernel, sans port, sans configuration. |
162
+ | **État d'exécution** | Le fichier où une application publie ses ports en démarrant. C'est lui que `runningAppPort()` lit — un seul par racine de projet. |
163
+ | **Exemplaire jetable** | Un second process de la même application, sur un autre port, démarré pour observer un cas de démarrage précis. |
164
+
165
+ ## ⚠️ Pièges
166
+
167
+ - **Deux exemplaires lancés depuis le même dossier partagent un seul état d'exécution.** Le second
168
+ écrase les ports du premier, et `runningAppPort()` se met à désigner le jetable — puis à lever
169
+ une fois qu'il est mort. Le défaut ne se voit pas dans le test qui l'a créé : il tombe sur le
170
+ **suivant**, et accuse une route qui n'a rien fait. C'est pour cela que `stop()` restaure l'état
171
+ d'avant, et pourquoi il doit être appelé dans un `finally`.
172
+ - **Un port écrit en dur casse dès que l'application déclare le sien** (`NF_PORT`, ou la variable
173
+ qu'un hébergeur impose), ou qu'un port occupé l'a fait glisser.
174
+ - **`createTestModule()` ne résout rien par le conteneur.** Si un test échoue sur
175
+ `module.container` au constructeur, c'est qu'une dépendance a été demandée à l'injecteur au lieu
176
+ d'être donnée à la main.
177
+ - **Une suite lancée ailleurs qu'à la racine de l'application ne trouve pas l'état d'exécution**,
178
+ et `runningAppPort()` lève en le disant.
179
+ - **La suite tourne en `production`**, où aucun compte n'est semé sans mot de passe explicite. Les
180
+ routes protégées ont donc besoin de l'identité que le harnais pose lui-même — sans elle, elles
181
+ échouent en accusant la garde plutôt que le décor.
182
+
183
+ ## 🧪 Tests & couverture
184
+
185
+ Les chiffres exacts vivent dans la carte de l'aperçu, régénérée en comptant — jamais figés ici.
186
+
187
+ <!-- prettier-ignore -->
188
+ | Type | Où | Ce qui est prouvé |
189
+ | --- | --- | --- |
190
+ | Unitaires | `nodefony` `testing.test.ts` | ce que rend le module jetable, la lecture du port, la restauration de l'état d'exécution |
191
+ | Unitaires (génération) | `nodefony` `create.test.ts` | que le harnais est bien livré avec l'application créée, dans ses quatre variantes |
192
+
193
+ ## 🔗 Pour aller plus loin
194
+
195
+ - ⬆️ **Retour au hub** : [Cœur — @nodefony/core](index.md) ·
196
+ [Toute la documentation](../../../docs/index.md)
197
+ - 🏗️ **Ce qui a généré ces fichiers** :
198
+ [`generer-du-code.md`](../../../docs/guides/generer-du-code.md)
199
+ - 🗄️ **La base que la suite efface** :
200
+ [`persistence.md`](../../../docs/guides/persistence.md)
201
+ - 🖥️ **Les commandes que le harnais appelle** : [la CLI](cli.md)
202
+ - 🏭 **Ce que la forge du framework lance, et pourquoi un saut compte comme un succès** :
203
+ [`integration-continue.md`](../../../docs/guides/integration-continue.md)
@@ -0,0 +1,255 @@
1
+ ---
2
+ title: "Composables Vue — nodefony/vue"
3
+ lang: fr
4
+ module: "@nodefony/core"
5
+ topic: vue-composables
6
+ coverageModule: nodefony-core
7
+ coveragePackage: "nodefony (cœur)"
8
+ coverageFiles: "client/vue/index.ts,client/realtime/observe.ts"
9
+ section: "Cœur runtime"
10
+ audience: [developer]
11
+ tags:
12
+ [
13
+ vue,
14
+ composables,
15
+ plugin,
16
+ temps-reel,
17
+ websocket,
18
+ abonnement,
19
+ portee,
20
+ identite,
21
+ isomorphe,
22
+ ]
23
+ version: "doc"
24
+ status: stable
25
+ updated: 2026-08-27
26
+ source: "src/nodefony/docs/vue-composables.md"
27
+ ---
28
+
29
+ # Composables Vue — `nodefony/vue`
30
+
31
+ > Le subpath `nodefony/vue` branche un composant Vue 3 sur la socket Nodefony **sans une ligne de
32
+ > glue** : un plugin installé sur l'application, puis des composables ciblés qui s'abonnent au
33
+ > `setup` et rendent l'abonnement à la mort de la portée. Ils ne gèrent **que** l'abonnement —
34
+ > ouvrir et maintenir la connexion reste le travail du client, décrit dans
35
+ > [Client isomorphe](client.md). Le pendant exact de [Hooks React](react-hooks.md) : même surface,
36
+ > mêmes noms, mêmes garanties. Ancré sur `src/nodefony/src/client/vue/index.ts`.
37
+
38
+ 📍 [Documentation](../../../docs/index.md) › [Cœur — @nodefony/core](index.md) › **Composables Vue**
39
+
40
+ ## 🧠 Le modèle mental — une prise, N composants branchés dessus
41
+
42
+ Un composant vit et meurt au gré de la navigation. Une socket, elle, doit rester ouverte. La liaison
43
+ tient les deux bouts : **le fil est unique et long**, **les branchements sont nombreux et courts**.
44
+
45
+ ```mermaid
46
+ flowchart LR
47
+ APP["main.ts<br/>app.use(nodefonyVue, { url }) — UNE fois"] --> CL
48
+ subgraph CL["RealtimeClient (hors Vue)"]
49
+ direction TB
50
+ S["état · identité · notices"]
51
+ R["abonnements ref-comptés<br/>canal → nb de consommateurs"]
52
+ end
53
+ CL --> P["provide/inject<br/>markRaw — jamais réactif"]
54
+ P --> H1["useNodefonyState()<br/>Ref&lt;RealtimeState&gt;"]
55
+ P --> H2["useNodefonyChannelData()<br/>Ref&lt;T | null&gt;"]
56
+ P --> H3["useNodefonyChannel()<br/>un rappel, rien à afficher"]
57
+ H1 -. "fin de portée" .-> R
58
+ H2 -. "fin de portée" .-> R
59
+ H3 -. "fin de portée" .-> R
60
+ ```
61
+
62
+ ## 📖 Lexique
63
+
64
+ | Terme | Ce que c'est ici |
65
+ | ---------------------- | -------------------------------------------------------------------------------------------------------- |
66
+ | **composable** | Une fonction appelée dans un `setup` qui installe des effets et rend de l'état réactif. L'idiome de Vue. |
67
+ | **plugin** | Ce qu'on installe sur l'application (`app.use`). C'est là que vit une politique, en Vue. |
68
+ | **portée d'effet** | Le contexte qui possède les effets d'un composant. Sa mort libère tout ce qui y a été enregistré. |
69
+ | **`Ref<T>`** | Une boîte réactive : on lit et on écrit `.value`, et le rendu suit. |
70
+ | **`MaybeRefOrGetter`** | « une valeur, une `ref`, ou une fonction qui la calcule » — ce qui rend un argument réactif sans effort. |
71
+
72
+ ## Pourquoi un plugin, et pas un composant enveloppant
73
+
74
+ React publie un `<NodefonyProvider>` parce qu'en React tout est composant. En Vue, une politique qui
75
+ vaut pour l'application entière s'installe sur l'application :
76
+
77
+ ```ts
78
+ createApp(App).use(nodefonyVue, { url: "/api/live/realtime" }).mount("#app");
79
+ ```
80
+
81
+ Traduire littéralement le fournisseur React aurait donné un composant de plus dans l'arbre, que
82
+ personne n'aurait pensé à chercher. **Une liaison idiomatique n'est pas une traduction mot à mot :
83
+ c'est la même garantie, dite dans la langue du framework.**
84
+
85
+ ## Les trois règles que Vue impose, et que React ne montre pas
86
+
87
+ 1. **Le client n'entre jamais dans un `ref()`.** Il serait enveloppé dans un proxy réactif profond :
88
+ ses égalités de référence internes casseraient, et chaque accès paierait une interception — pour
89
+ une réactivité dont il n'a aucun besoin, ses changements passant par ses propres `on*`. Le plugin
90
+ le pose `markRaw` (`src/nodefony/src/client/vue/index.ts:155`), et un test le vérifie
91
+ (`isReactive(useNodefony()) === false`).
92
+ 2. **La libération passe par `onScopeDispose`**, jamais par `onUnmounted` seul : c'est le seul des
93
+ deux qui couvre aussi une portée créée hors composant (`effectScope()`). Un abonnement qui fuit
94
+ **ne se voit pas à l'écran** — la page affiche ce qu'il faut, et le serveur pousse un canal que
95
+ plus personne ne regarde. Le motif commun à tous les composables est unique
96
+ (`src/nodefony/src/client/vue/index.ts:217`) : brancher, rebrancher quand la source change,
97
+ libérer à la mort de la portée.
98
+ 3. **Un composable appelé hors portée lève** (`src/nodefony/src/client/vue/index.ts:199`), plutôt
99
+ que de fuir en silence. Le message dit le remède : envelopper l'appel dans `effectScope()`.
100
+
101
+ ## 🚀 Démarrage rapide
102
+
103
+ ### 1. Le plugin, sur l'application
104
+
105
+ ```ts
106
+ // frontend/src/main.ts
107
+ import { createApp } from "vue";
108
+ import { nodefonyVue } from "nodefony/vue";
109
+ import App from "./App.vue";
110
+
111
+ const el = document.getElementById("app");
112
+ if (!el) throw new Error("#app not found");
113
+ createApp(App).use(nodefonyVue, { url: "/api/live/realtime" }).mount(el);
114
+ ```
115
+
116
+ L'adresse est écrite **ici, et nulle part ailleurs**. Le framework n'en devine aucune : une adresse
117
+ devinée marche en développement et se trompe en production. Sans `url` ni `client`, le plugin refuse
118
+ (`src/nodefony/src/client/realtime/observe.ts:126`).
119
+
120
+ ### 2. La page
121
+
122
+ ```vue
123
+ <script setup lang="ts">
124
+ import {
125
+ useNodefony,
126
+ useNodefonyChannelData,
127
+ useNodefonyState,
128
+ } from "nodefony/vue";
129
+
130
+ interface LiveEvent {
131
+ text: string;
132
+ ts: number;
133
+ }
134
+
135
+ const live = useNodefony();
136
+ const state = useNodefonyState();
137
+ const last = useNodefonyChannelData<LiveEvent>("live:events");
138
+
139
+ const say = (text: string): void => live.emit("live:say", { text });
140
+ </script>
141
+
142
+ <template>
143
+ <p>connexion : {{ state }}</p>
144
+ <p v-if="last">{{ last.text }}</p>
145
+ <button @click="say('bonjour')">envoyer</button>
146
+ </template>
147
+ ```
148
+
149
+ Il n'y a **rien à libérer** : la portée du composant rend les abonnements à sa mort. C'est la
150
+ différence visible avec un câblage à la main, où il fallait tenir une liste de fonctions de
151
+ libération et n'en oublier aucune.
152
+
153
+ ### 3. Quand l'application possède son cycle de connexion
154
+
155
+ ```ts
156
+ // La socket fournie l'emporte sur `url`, et son cycle n'est pas touché :
157
+ // ni `connect`, ni `disconnect`.
158
+ app.use(nodefonyVue, { client: maSocket });
159
+ ```
160
+
161
+ ### 4. Un canal qui change
162
+
163
+ ```ts
164
+ const salle = ref("salon:general");
165
+ // L'abonnement SUIT la valeur : l'ancien canal est rendu avant que le
166
+ // nouveau soit pris. Aucun tableau de dépendances à tenir.
167
+ const messages = useNodefonyChannelData<Message>(() => salle.value);
168
+ ```
169
+
170
+ ## 🧰 Les composables
171
+
172
+ Tous rendent une `Ref` en lecture — on lit `.value` (ou rien du tout dans un template, Vue
173
+ déballe). La socket, elle, n'est pas réactive : c'est un objet, pas un état.
174
+
175
+ | Composable | Rend | À quoi ça sert |
176
+ | -------------------------------------- | ------------------------------- | ------------------------------------------------------------ |
177
+ | `nodefonyVue` | — | le plugin : fournit la socket et lance la connexion |
178
+ | `useNodefony()` | `RealtimeClient` | l'échappatoire : `emit`, `request`, `mutate`, `ping` |
179
+ | `useNodefonyState()` | `Ref<RealtimeState>` | afficher l'état, griser un bouton pendant une reconnexion |
180
+ | `useNodefonyIdentity()` | `Ref<RealtimeIdentity \| null>` | savoir qui est connecté — sans appeler `/auth/me` |
181
+ | `useNodefonyChannel(canal, onMessage)` | — | réagir à chaque message (journal, son, animation) |
182
+ | `useNodefonyChannelData<T>(canal)` | `Ref<T \| null>` | la dernière valeur — le cas le plus courant |
183
+ | `useNodefonyAdaptiveChannel(…)` | `Ref<number>` | même chose, en cadence auto-ajustée ; rend la cadence |
184
+ | `useNodefonyAdaptiveChannelData<T>(…)` | `{ data, intervalMs }` | la dernière valeur **et** la cadence |
185
+ | `useNodefonyChannelStats(canal)` | `Ref<MessageStats \| null>` | débit et série d'un canal, pour un VU-mètre |
186
+ | `useNodefonySnapshot()` | `Ref<SocketSnapshot \| null>` | ce que la socket sait d'elle-même : canaux, trames, dernière |
187
+ | `useNodefonySyslog(opts?)` | `Ref<unknown[]>` | le flux de journal, anneau borné et filtre de sévérité |
188
+ | `useNodefonyNotifications(onNotice)` | — | les notices normalisées — à monter **une seule fois** |
189
+ | `useNodefonyNoticeLog(opts?)` | `Ref<NodefonyNotice[]>` | l'historique borné des incidents |
190
+
191
+ La déclaration de chacun se lit dans `src/nodefony/src/client/vue/index.ts:179` et suivantes.
192
+
193
+ Sont aussi réexportés depuis ce subpath : `rateChannel`, `parseRate`, `isRateChannel` (fabriquer un
194
+ nom de canal cadencé), et les types `RealtimeIdentity`, `RealtimeState`, `NodefonyNotice`,
195
+ `SocketSnapshot` — pour qu'un composant puisse **nommer** ce qu'il reçoit.
196
+
197
+ Les arguments « canal » et « cadence » acceptent une valeur, une `ref` ou une fonction : l'abonnement
198
+ suit, sans liste de dépendances.
199
+
200
+ ## 🏗️ Cycle de vie d'un abonnement
201
+
202
+ ```
203
+ setup() → subscribe (si premier consommateur du canal)
204
+ message reçu → .value change → le rendu suit
205
+ canal qui change → unsubscribe de l'ancien, subscribe du nouveau
206
+ reconnexion → le client rejoue TOUS les abonnements, sans rien à faire
207
+ fin de portée → unsubscribe (si dernier consommateur)
208
+ ```
209
+
210
+ Ce qui est **partagé** et ne dépend pas de Vue — le comptage de références, le rejeu après
211
+ reconnexion, l'appariement `on`↔`subscribe` — vit dans le socle agnostique et est prouvé une fois
212
+ pour les quatre fronts. Ce qui est **propre à Vue** — la portée, la réactivité, la non-réactivité du
213
+ client — est prouvé dans `src/nodefony/src/tests/clientVue.test.ts:1`.
214
+
215
+ La socket, elle, **n'est jamais coupée par un composant**. Elle appartient à la page : la fermer au
216
+ démontage trancherait les requêtes en vol des autres consommateurs.
217
+
218
+ ## ⚠️ Pièges (symptôme → cause → correction)
219
+
220
+ | Symptôme | Cause | Correction |
221
+ | ------------------------------------------------------------ | ---------------------------------------------------------------------- | ----------------------------------------------------------------------------- |
222
+ | `useNodefony() : le plugin n'est pas installé` | Le composable est appelé hors d'une application où `app.use` a eu lieu | Installer `nodefonyVue` dans `main.ts` |
223
+ | `… doit être appelé dans un composant (setup) ou une portée` | Appel au niveau d'un module, dans un `setTimeout` ou un gestionnaire | Appeler au `setup`, ou envelopper dans `effectScope()` |
224
+ | Le plugin lève à l'installation | Ni `url` ni `client` fourni — le framework ne devine aucune adresse | Passer l'URL du serveur temps réel |
225
+ | Rien n'arrive et l'état reste `disconnected` | Le serveur n'écoute pas cette adresse, ou la socket a été coupée | Vérifier l'adresse du plugin, et qu'aucun code n'appelle `disconnect()` |
226
+ | `Module 'nodefony' has no exported member 'RealtimeClient'` | Condition d'export `browser` inactive dans le `tsconfig.json` de l'app | Importer depuis `nodefony/client`, ou ajouter `customConditions: ["browser"]` |
227
+ | Le canal se ré-abonne à chaque frappe | Le nom du canal est recalculé à chaque rendu par une fonction | Ne faire dépendre le getter que de ce qui doit vraiment ré-abonner |
228
+ | Un objet du client semble « ne pas réagir » | Il est `markRaw` — c'est voulu | Lire l'état par les composables, pas sur l'objet |
229
+ | Notices en double | `useNodefonyNotifications` appelé dans plusieurs composants | Un seul appel, au shell de l'application |
230
+ | Une exception dans un rappel disparaît sans trace | Le dispatch du client isole les erreurs de handler | Envelopper le corps du rappel dans son propre `try`/`catch` |
231
+
232
+ ## 🧪 Tests & couverture
233
+
234
+ - **Les règles du temps réel** (comptage de références, rejeu après reconnexion, dernier reçu gagne,
235
+ anneaux, filtres) sont prouvées **une fois pour les quatre fronts** dans
236
+ `src/nodefony/src/tests/clientObserve.test.ts`. Les rejouer à travers Vue mesurerait le socle.
237
+ - **La traduction Vue** est prouvée dans `src/nodefony/src/tests/clientVue.test.ts` : portée exigée,
238
+ client non réactif, canal réactif qui déplace l'abonnement, et surtout **le démontage qui rend
239
+ l'abonnement au serveur** — compté sur les trames émises, seul juge d'une fuite.
240
+ - **La surface publiée** est tenue par `clientSubpathSurface.types.test.ts` : ce que les composables
241
+ rendent doit pouvoir être **nommé** par un consommateur, et les trois subpaths parlent des mêmes
242
+ types, pas de jumeaux.
243
+ - **Aucun test de rendu** ne monte de composant réel : le harnais utilise `app.runWithContext` et
244
+ `effectScope`, qui donnent exactement ce qu'un composant donne à un composable, sans DOM.
245
+
246
+ Couverture : `npm run coverage` dans `src/nodefony`.
247
+
248
+ ## 🔗 Pour aller plus loin
249
+
250
+ - ⬆️ **Retour au hub** : [@nodefony/core — vue d'ensemble](index.md) · [Toute la documentation](../../../docs/index.md)
251
+ - 🧭 **Pages sœurs** : [Client isomorphe](client.md) — la socket, le transport, la reconnexion, les
252
+ rôles · [Hooks React](react-hooks.md) — la même surface, en React · [Journalisation](syslog.md)
253
+ - Le vocabulaire commun aux deux bords du fil → [Vocabulaire de la socket](../../packages/@nodefony/realtime/docs/vocabulaire.md)
254
+ - Le module serveur qui pousse les canaux → [@nodefony/realtime](../../packages/@nodefony/realtime/docs/index.md)
255
+ - Qui sert et reconstruit ton interface → [@nodefony/frontend](../../packages/@nodefony/frontend/docs/index.md)
package/man/nodefony.1 ADDED
@@ -0,0 +1,152 @@
1
+ .TH NODEFONY 1 "" "nodefony 10.0.0\-alpha.2" "Nodefony Manual"
2
+ .SH NAME
3
+ nodefony \- framework fullstack Node.js : HTTP, WebSocket, ORM, agents
4
+ .SH SYNOPSIS
5
+ .B nodefony
6
+ [\fICOMMANDE\fR] [\fIOPTIONS\fR]
7
+ .br
8
+ .B nodefony
9
+ \fB\-\-help\fR | \fB\-\-version\fR
10
+ .SH DESCRIPTION
11
+ Interface en ligne de commande de Nodefony : elle lance l'application
12
+ (développement, production, cluster), la construit, l'inspecte et la
13
+ diagnostique, et engendre du code conforme au framework.
14
+ .PP
15
+ Lancée sans argument dans un terminal interactif, elle ouvre un menu des
16
+ gestes utiles ici. Hors terminal, elle affiche l'aide.
17
+ .PP
18
+ \fBCette page ne liste que les commandes du FRAMEWORK.\fR Une application en
19
+ ajoute par ses modules \- par exemple \fBhttp:network\fR, \fBfrontend:build\fR
20
+ ou \fBsecurity:user:add\fR \- et celles\-ci dépendent du projet dans lequel
21
+ la commande est lancée. Pour la liste RÉELLE, dans le projet courant :
22
+ .PP
23
+ .RS 4
24
+ .B nodefony \-\-help
25
+ .RE
26
+ .SH COMMANDS
27
+ Les commandes sont rangées par INTENTION, dans l'ordre d'une journée de
28
+ travail \- comme \fBnodefony \-\-help\fR. Un rangement alphabétique mettrait
29
+ \fBai:mcp\fR avant \fBdevelopment\fR ; il ne répond à personne.
30
+ .SS LANCER
31
+ .TP
32
+ .B development, dev
33
+ démarre en développement, rechargement automatique
34
+ .TP
35
+ .B production, prod, start
36
+ démarre en production, au premier plan
37
+ .TP
38
+ .B cluster
39
+ démarre N workers isolés, relancés s'ils tombent
40
+ .TP
41
+ .B status
42
+ dit quels processus de ce projet tournent, et où
43
+ .TP
44
+ .B stop
45
+ arrête les processus Nodefony de ce projet
46
+ .SS COMPRENDRE
47
+ .TP
48
+ .B card, devkit:card
49
+ carte de visite : où l'on est, quoi lancer
50
+ .TP
51
+ .B doctor
52
+ ce qui ne va pas dans cette application
53
+ .TP
54
+ .B inspect
55
+ l'état réel de l'app : routes, services, config
56
+ .TP
57
+ .B env
58
+ les variables d'environnement et leur provenance
59
+ .TP
60
+ .B symbols
61
+ où un symbole est défini, et de qui il hérite
62
+ .TP
63
+ .B menu
64
+ menu interactif : les commandes utiles ici
65
+ .SS GÉNÉRER ET CONSTRUIRE
66
+ .TP
67
+ .B create
68
+ engendre une application, un module, une entité…
69
+ .TP
70
+ .B build, compile
71
+ compile les modules puis l'application vers dist/
72
+ .TP
73
+ .B install
74
+ installe les dépendances puis construit le projet
75
+ .TP
76
+ .B outdated
77
+ les dépendances en retard, groupées par paquet
78
+ .SS AGENTS ET OUTILLAGE
79
+ .TP
80
+ .B ai:mcp
81
+ déclare le serveur MCP de l'app à ton agent
82
+ .TP
83
+ .B ai:sync
84
+ installe les skills d'agent des paquets présents
85
+ .TP
86
+ .B completion
87
+ script de complétion du shell (bash | zsh | fish)
88
+ .TP
89
+ .B git:hooks
90
+ pose les hooks git : contrôles au commit et au push
91
+ .SH OPTIONS
92
+ Options acceptées par toutes les commandes. Chaque commande porte en plus les
93
+ siennes, que \fBnodefony \fI<commande>\fB \-\-help\fR détaille.
94
+ .TP
95
+ .B \-i
96
+ .TP
97
+ .B \-\-interactive
98
+ .TP
99
+ .B \-d
100
+ .TP
101
+ .B \-\-debug
102
+ .TP
103
+ .B \-v
104
+ .TP
105
+ .B \-\-version
106
+ .SH ENVIRONMENT
107
+ .TP
108
+ .B NODE_ENV
109
+ Mode d'exécution (development | production). Posé par l'orchestrateur, il
110
+ PRIME sur l'intention de la commande.
111
+ .TP
112
+ .B APP_ENV
113
+ Environnement de DÉPLOIEMENT, libre (staging, canary, prod\-eu). Axe distinct
114
+ du mode d'exécution.
115
+ .TP
116
+ .B NF_*
117
+ Toute variable lue par Nodefony porte ce préfixe. nodefony env en dresse la
118
+ cascade et la provenance.
119
+ .TP
120
+ .B NF__<MODULE>__<CHEMIN>
121
+ Surcharge une clé de configuration d'un module (double souligné entre les
122
+ niveaux), appliquée avant la validation du schéma.
123
+ .SH FILES
124
+ .TP
125
+ .B nodefony.config.ts
126
+ Configuration de l'application. Sa présence marque la racine du projet.
127
+ .TP
128
+ .B env.ts
129
+ Catalogue des variables d'environnement de l'application.
130
+ .TP
131
+ .B node_modules/.cache/nodefony/cli\-manifest.json
132
+ Cache des commandes, réécrit à chaque commande. Sert la complétion et le
133
+ menu, qui doivent répondre sans démarrer l'application.
134
+ .SH EXAMPLES
135
+ .TP
136
+ .B nodefony create app mon\-app
137
+ Crée une application.
138
+ .TP
139
+ .B nodefony dev
140
+ Démarre en développement, avec redémarrage à chaud.
141
+ .TP
142
+ .B nodefony inspect routes
143
+ Affiche les routes RÉELLEMENT montées, sans ouvrir de port.
144
+ .TP
145
+ .B nodefony doctor
146
+ Diagnostique le projet, même s'il ne démarre plus.
147
+ .SH SEE ALSO
148
+ La documentation complète vit dans le projet (\fBdocs/\fR) et dans la console
149
+ d'administration. \fBnodefony card\fR rend la carte de visite de l'application
150
+ : où aller, quoi lancer.
151
+ .SH AUTHOR
152
+ Christophe CAMENSULI et les contributeurs de Nodefony.