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,51 @@
1
+ /**
2
+ * Borne une promesse par un délai maximum — utilitaire de **résilience de boot**
3
+ * (et de tout `await` susceptible de pendre indéfiniment).
4
+ *
5
+ * Motivation : un `await` sur une opération réseau dont le pair est injoignable
6
+ * peut **ne jamais se résoudre** (ex. l'offline-queue de `node-redis` met la
7
+ * Promise en attente sans la rejeter). Sans garde, un seul de ces `await` gèle
8
+ * tout le cycle de boot du Kernel → les serveurs ne montent jamais.
9
+ *
10
+ * ⚠️ **NE PAS utiliser dans le hot path HTTP/WS** : chaque appel alloue un timer
11
+ * + une Promise de course. Réservé au **boot / lifecycle / jobs** (≪ 1×/process).
12
+ * Le hot path utilise `Event.emitAsync` nu (aucun timer par requête).
13
+ *
14
+ * @module
15
+ */
16
+ /**
17
+ * Erreur levée par {@link withTimeout} quand le délai est dépassé — distincte
18
+ * d'un rejet métier pour que l'appelant puisse différencier « lent/figé » de
19
+ * « a échoué » (ex. politique de boot : timeout d'un module critique en prod).
20
+ */
21
+ export declare class TimeoutError extends Error {
22
+ /** Délai (ms) qui a été dépassé. */
23
+ readonly timeoutMs: number;
24
+ /**
25
+ * @param timeoutMs - délai dépassé, en millisecondes.
26
+ * @param label - libellé optionnel de l'opération (préfixe du message).
27
+ */
28
+ constructor(timeoutMs: number, label?: string);
29
+ }
30
+ /**
31
+ * Résout avec la valeur de `promise` si elle se règle avant `timeoutMs`,
32
+ * sinon rejette avec une {@link TimeoutError}.
33
+ *
34
+ * Robustesse :
35
+ * - le timer est `unref` (ne maintient pas l'event-loop vivant) et **toujours**
36
+ * nettoyé (`finally`) → aucun handle qui fuit ;
37
+ * - un `.catch()` est posé sur la promesse d'origine : si elle rejette **après**
38
+ * que le timeout a gagné la course, le rejet ne remonte pas en
39
+ * `unhandledRejection` (qui crasherait le process) ;
40
+ * - `timeoutMs ≤ 0` (ou non fini) → **aucune garde**, on attend la promesse telle
41
+ * quelle (permet de désactiver le timeout par config sans brancher de code).
42
+ *
43
+ * @typeParam T - type résolu par la promesse.
44
+ * @param promise - opération à borner.
45
+ * @param timeoutMs - délai max en millisecondes (≤ 0 = pas de timeout).
46
+ * @param label - libellé optionnel pour le message d'erreur.
47
+ * @returns la valeur résolue par `promise`.
48
+ * @throws {@link TimeoutError} si `timeoutMs` est dépassé.
49
+ * @throws l'erreur d'origine si `promise` rejette avant le timeout.
50
+ */
51
+ export declare function withTimeout<T>(promise: PromiseLike<T>, timeoutMs: number, label?: string): Promise<T>;
@@ -0,0 +1,112 @@
1
+ import { Severity } from "../../syslog/Pdu.js";
2
+ /**
3
+ * Calcule le délai de respawn d'un worker mort selon un backoff exponentiel.
4
+ *
5
+ * Anti crash-loop : un worker qui crashe en boucle ne doit pas être re-forké en
6
+ * rafale (CPU 100 %, logs noyés). Le délai double à chaque crash consécutif, plafonné.
7
+ *
8
+ * @param crashes - nombre de crashs consécutifs (>= 1).
9
+ * @param baseMs - délai du 1er respawn.
10
+ * @param maxMs - plafond du délai.
11
+ * @returns délai en ms, dans `[baseMs, maxMs]`.
12
+ */
13
+ export declare function computeBackoff(crashes: number, baseMs: number, maxMs: number): number;
14
+ /** Handle minimal d'un worker — sous-ensemble de `cluster.Worker` réellement utilisé (testable). */
15
+ export interface IClusterWorker {
16
+ readonly id: number;
17
+ /** Envoie un signal au process worker (déconnecte + signale, cf `cluster.Worker.kill`). */
18
+ kill(signal?: NodeJS.Signals): void;
19
+ /** `true` si le process est mort. */
20
+ isDead(): boolean;
21
+ }
22
+ /** Runtime cluster — abstrait `node:cluster` pour piloter fork/exit dans les tests sans forker de process. */
23
+ export interface IClusterRuntime {
24
+ readonly isPrimary: boolean;
25
+ fork(): IClusterWorker;
26
+ onExit(cb: (worker: IClusterWorker, code: number | null, signal: string | null) => void): void;
27
+ }
28
+ /** Planificateur (setTimeout/clearTimeout) — injectable pour tester backoff + timeout sans horloge réelle. */
29
+ export interface ClusterScheduler {
30
+ set(fn: () => void, ms: number): unknown;
31
+ clear(handle: unknown): void;
32
+ }
33
+ /** Options du {@link ClusterManager}. Tous les effets de bord (runtime, timers, exit, log) sont injectables. */
34
+ export interface ClusterManagerOptions {
35
+ /** Nombre de workers à forker (résolu par {@link resolveWorkerCount}). */
36
+ workers: number;
37
+ log?: (msg: string, severity?: Severity) => void;
38
+ runtime?: IClusterRuntime;
39
+ scheduler?: ClusterScheduler;
40
+ /** Sortie process — injectable pour ne pas tuer le process de test. Défaut : `process.exit`. */
41
+ exit?: (code: number) => void;
42
+ /** Délai du 1er respawn (ms). Défaut 200. */
43
+ respawnBaseMs?: number;
44
+ /** Plafond du délai de respawn (ms). Défaut 10 000. */
45
+ respawnMaxMs?: number;
46
+ /** Durée de vie minimale d'un worker pour réinitialiser le backoff (ms). Défaut 30 000. */
47
+ stableMs?: number;
48
+ /** Délai de drain gracieux avant SIGKILL des survivants (ms). Défaut 10 000. */
49
+ shutdownTimeoutMs?: number;
50
+ }
51
+ /**
52
+ * Superviseur cluster du process MASTER (Phase 2 du mode cluster sans PM2).
53
+ *
54
+ * Le master ne sert AUCUN HTTP : il fork N workers, les respawn avec backoff en cas
55
+ * de crash, et coordonne un arrêt gracieux (drain SIGTERM → SIGKILL après timeout).
56
+ * Cgroup-aware via {@link resolveWorkerCount} (le `workers` passé est déjà résolu).
57
+ *
58
+ * Toute la mécanique runtime (`node:cluster`, timers, `process.exit`, signaux) est
59
+ * derrière des seams injectables : le state machine respawn/shutdown est testé sans
60
+ * forker un seul process réel.
61
+ */
62
+ export declare class ClusterManager {
63
+ #private;
64
+ constructor(opts: ClusterManagerOptions);
65
+ /** Nombre de workers actuellement vivants. */
66
+ get size(): number;
67
+ /** `true` une fois `shutdown()` enclenché (plus aucun respawn). */
68
+ get shuttingDown(): boolean;
69
+ /**
70
+ * Fork les workers initiaux et arme le respawn. Idempotent.
71
+ *
72
+ * @returns `this`.
73
+ */
74
+ start(): this;
75
+ /**
76
+ * Arrêt gracieux : déconnecte/SIGTERM chaque worker (drain), puis SIGKILL les
77
+ * survivants après `shutdownTimeoutMs`, et sort le process. Idempotent.
78
+ *
79
+ * @param signal - signal d'origine (log uniquement).
80
+ */
81
+ shutdown(signal?: NodeJS.Signals): void;
82
+ /**
83
+ * Branche SIGTERM/SIGINT du process MASTER sur {@link shutdown}.
84
+ *
85
+ * Le master prend la main sur ces signaux : `Cli.handleSignals` les mapperait
86
+ * sinon vers un `terminate()` immédiat (process.exit) qui tuerait le master
87
+ * AVANT que les workers aient drainé. À n'appeler que dans le vrai process
88
+ * master.
89
+ *
90
+ * 🔴 **On n'arrache que ce qu'on a posé soi-même.** Cette méthode commençait
91
+ * par `process.removeAllListeners(sig)` — ce qui effaçait AUSSI le
92
+ * gestionnaire qu'un module tiers avait branché sur `SIGTERM` pour son propre
93
+ * arrêt propre. Ce module ne recevait plus rien, et rien ne le lui disait :
94
+ * son code était juste, ses tests passaient, et son nettoyage cessait de
95
+ * s'exécuter le jour où l'application passait en cluster. Le gestionnaire du
96
+ * CLI, lui, se retire NOMMÉMENT — c'est le lanceur qui le fait
97
+ * (`Cli.releaseSignalListeners`), parce que lui seul sait de quelle instance
98
+ * il s'agit.
99
+ */
100
+ installSignalHandlers(): void;
101
+ /**
102
+ * Retire les gestionnaires que {@link installSignalHandlers} a posés.
103
+ *
104
+ * Symétrique, et pour la même raison qu'il ne faut pas arracher ceux des
105
+ * autres : un master qui s'arrête laisse sinon deux listeners sur un process
106
+ * qui peut lui survivre (tests, outils qui enchaînent des commandes).
107
+ *
108
+ * @returns le nombre de gestionnaires retirés.
109
+ */
110
+ removeSignalHandlers(): number;
111
+ }
112
+ export default ClusterManager;
@@ -0,0 +1,68 @@
1
+ import { Severity } from "../../syslog/Pdu.js";
2
+ /**
3
+ * Handle master-side d'un worker, vu par l'agrégateur — sous-ensemble **testable** de
4
+ * `cluster.Worker` (même seam que `IRelayWorker`). Prouve la collecte + la diffusion
5
+ * sans forker de process réel.
6
+ */
7
+ export interface IProbeWorker {
8
+ readonly id: number;
9
+ /** PID OS du worker (`worker.process.pid`) — clé de ciblage du drill-down (Phase 2). */
10
+ readonly pid: number;
11
+ /** Envoie un message IPC à CE worker (master → worker). */
12
+ send(msg: unknown): void;
13
+ /** Enregistre le récepteur des messages de CE worker (worker → master). */
14
+ onMessage(cb: (msg: unknown) => void): void;
15
+ }
16
+ /** Options du {@link ClusterProbeAggregator}. */
17
+ export interface ClusterProbeAggregatorOptions {
18
+ /** Cadence de diffusion du snapshot agrégé (ms). Défaut 2000. */
19
+ intervalMs?: number;
20
+ log?: (msg: string, severity?: Severity) => void;
21
+ }
22
+ /**
23
+ * **Agrégateur de sondes** master-side du mode cluster (Phase 4c) — le « gardien » qui
24
+ * collecte la santé de chaque worker et **rediffuse la vue d'ensemble** à tous.
25
+ *
26
+ * Pourquoi : chaque worker n'a que SA sonde (`RealtimeHub.probe()`) ; l'endpoint
27
+ * `/nodefony/realtime/api/health` tombe sur UN worker au hasard → vue partielle. Le master
28
+ * (qui ne sert aucun HTTP) collecte les remontées `CLUSTER_PROBE_KIND` de tous les workers
29
+ * et **pousse** périodiquement le snapshot agrégé (`CLUSTER_PROBE_SNAPSHOT_KIND`) vers chacun
30
+ * → n'importe quel worker peut alors servir la vue POD instantanément (modèle push, pas pull :
31
+ * 0 latence de requête, cohérent avec les tickers Nodefony).
32
+ *
33
+ * **Opaque** comme le {@link "./ClusterRelay"} : le master ne lit JAMAIS le contenu d'une
34
+ * sonde (il garde le dernier payload par workerId et diffuse la liste) → 0 dépendance à
35
+ * `@nodefony/framework` (la consolidation des champs se fait côté worker, qui connaît le type).
36
+ *
37
+ * Cycle de vie d'un worker : `attach` au `fork` (collecte ses remontées), `detach` au `exit`
38
+ * (le worker mort SORT de l'agrégat → le snapshot suivant ne le contient plus). Diffusion
39
+ * sur timer `unref` (cloud-native).
40
+ */
41
+ export declare class ClusterProbeAggregator {
42
+ #private;
43
+ constructor(opts?: ClusterProbeAggregatorOptions);
44
+ /** Nombre de workers rattachés. */
45
+ get size(): number;
46
+ /** Total de snapshots diffusés (sonde de la gateway). */
47
+ get broadcastTotal(): number;
48
+ /**
49
+ * Rattache un worker : cible de diffusion + récepteur de ses remontées de sonde.
50
+ * Idempotent par `id` (un respawn réattache proprement).
51
+ */
52
+ attach(worker: IProbeWorker): void;
53
+ /** Détache un worker (au `exit`) : il sort de l'agrégat. No-op s'il est déjà parti. */
54
+ detach(id: number): void;
55
+ /** Démarre la diffusion périodique du snapshot agrégé. Idempotent. Timer `unref`. */
56
+ start(): void;
57
+ /**
58
+ * Diffuse immédiatement le snapshot courant (liste des dernières sondes connues) à
59
+ * tous les workers vivants. Appelable directement (tests) ou par le timer. N'envoie
60
+ * rien s'il n'y a aucun worker.
61
+ */
62
+ broadcast(): void;
63
+ /** Arrête le timer de diffusion. Idempotent. */
64
+ stop(): void;
65
+ /** Vide l'agrégateur (arrêt du master). */
66
+ clear(): void;
67
+ }
68
+ export default ClusterProbeAggregator;
@@ -0,0 +1,57 @@
1
+ import { Severity } from "../../syslog/Pdu.js";
2
+ /**
3
+ * Handle master-side d'un worker, vu par le relay — sous-ensemble **testable** de
4
+ * `cluster.Worker` réellement utilisé (même approche que `IClusterWorker` du
5
+ * ClusterManager). Permet de prouver le routage sans forker de process réel.
6
+ */
7
+ export interface IRelayWorker {
8
+ readonly id: number;
9
+ /** Envoie un message IPC à CE worker (master → worker). */
10
+ send(msg: unknown): void;
11
+ /** Enregistre le récepteur des messages de CE worker (worker → master). */
12
+ onMessage(cb: (msg: unknown) => void): void;
13
+ }
14
+ /** Options du {@link ClusterRelay}. Effets de bord (log) injectables. */
15
+ export interface ClusterRelayOptions {
16
+ log?: (msg: string, severity?: Severity) => void;
17
+ }
18
+ /**
19
+ * **Master-gateway** du backplane realtime cluster (Phase 3) — routeur IPC qui vit dans
20
+ * le process MASTER (lequel ne sert AUCUN HTTP, cf {@link ClusterManager}).
21
+ *
22
+ * Les workers d'un cluster Node natif ne se parlent **jamais** directement : un worker
23
+ * n'envoie qu'au master. Le relay reçoit les publications realtime d'un worker et les
24
+ * **rebroadcast aux AUTRES** workers — ce qui réalise le fan-out cross-process intra-pod
25
+ * « comme si Redis était là », sans aucune infra (cf vision cluster-backplane).
26
+ *
27
+ * Anti-echo de routage : le message **n'est jamais renvoyé à sa source** (le worker
28
+ * filtre AUSSI son `originId` côté `ClusterBackplane` — ceinture + bretelles).
29
+ *
30
+ * Tri par `kind` : seuls les messages realtime (`CLUSTER_RT_KIND`) sont rebroadcastés.
31
+ * Les autres messages de contrôle (ex. remontées de sondes à **agréger** au master,
32
+ * Phase 4) sont laissés à un autre consommateur — le relay les ignore (il ne les fan-out
33
+ * surtout PAS). Messages malformés ignorés silencieusement (robustesse IPC).
34
+ *
35
+ * Le master ne tient aucun hub realtime : il route des messages **opaques** (`channel`,
36
+ * `payload`, `originId` ne sont pas inspectés) → 0 dépendance à `@nodefony/framework`
37
+ * (respect du sens des dépendances framework→core).
38
+ */
39
+ export declare class ClusterRelay {
40
+ #private;
41
+ constructor(opts?: ClusterRelayOptions);
42
+ /** Nombre de workers actuellement rattachés au relay. */
43
+ get size(): number;
44
+ /** Total des messages realtime rebroadcastés (sonde gateway). */
45
+ get relayedTotal(): number;
46
+ /**
47
+ * Rattache un worker : l'enregistre comme cible de broadcast et branche la réception
48
+ * de ses messages. Idempotent par `id` (un respawn réattache proprement). À appeler
49
+ * au `fork` (et à chaque respawn) côté ClusterManager.
50
+ */
51
+ attach(worker: IRelayWorker): void;
52
+ /** Détache un worker (au `exit`). No-op s'il est déjà parti. */
53
+ detach(id: number): void;
54
+ /** Vide le relay (arrêt du master). Les workers sont tués par le ClusterManager. */
55
+ clear(): void;
56
+ }
57
+ export default ClusterRelay;
@@ -0,0 +1,40 @@
1
+ import { Severity } from "../../syslog/Pdu.js";
2
+ import { ClusterManager } from "./ClusterManager.js";
3
+ import { ClusterRelay } from "./ClusterRelay.js";
4
+ import { ClusterProbeAggregator } from "./ClusterProbeAggregator.js";
5
+ /** Logger des composants cluster — aligné sur `ClusterManager`/`Relay`/`Aggregator`. */
6
+ export type ClusterLog = (msg: string, severity?: Severity) => void;
7
+ /** Poignées du process master, conservées par l'appelant (référence vivante). */
8
+ export interface ClusterMasterHandles {
9
+ /** Superviseur fork/respawn/graceful shutdown. */
10
+ manager: ClusterManager;
11
+ /** Gateway IPC : fan-out des publications realtime cross-process. */
12
+ relay: ClusterRelay;
13
+ /** Agrégateur de sondes (vue pod, push) — `null` si `NF_CLUSTER_PROBE=0`. */
14
+ probes: ClusterProbeAggregator | null;
15
+ }
16
+ /**
17
+ * Démarre le process MASTER d'un cluster multi-worker — bootstrap partagé par les
18
+ * commandes de lancement (`cluster` et `production`).
19
+ *
20
+ * Le master ne sert **aucun HTTP** : il est superviseur + gateway IPC. Il
21
+ * 1. marque `NF_CLUSTER=1` (hérité au fork → le module Framework branche le
22
+ * ClusterBackplane sur son RealtimeHub),
23
+ * 2. branche le {@link ClusterRelay} (fan-out realtime cross-process intra-pod) et,
24
+ * sauf `NF_CLUSTER_PROBE=0`, le {@link ClusterProbeAggregator} (vue pod, push),
25
+ * 3. fork N workers via {@link ClusterManager} (respawn backoff + graceful shutdown).
26
+ *
27
+ * Les handlers `fork`/`exit` GLOBAUX couvrent forks initiaux ET respawns → un worker
28
+ * relancé est (ré)attaché. Attachés AVANT `manager.start()` (aucun fork manqué).
29
+ *
30
+ * ⚠️ À appeler uniquement quand `cluster.isPrimary` ET `workers >= 2` (le mono-process
31
+ * `workers: 1` ne passe jamais par ici — zéro machinerie cluster).
32
+ *
33
+ * @param opts.workers - nombre de workers à forker (déjà résolu, `>= 2`).
34
+ * @param opts.log - logger (msg + sévérité).
35
+ * @returns les poignées vivantes (manager/relay/probes) à conserver par l'appelant.
36
+ */
37
+ export declare function startClusterMaster(opts: {
38
+ workers: number;
39
+ log: ClusterLog;
40
+ }): ClusterMasterHandles;
@@ -0,0 +1,94 @@
1
+ /**
2
+ * Protocole de fil IPC du cluster Nodefony (mode sans PM2).
3
+ *
4
+ * Le master est le **gateway** : tout message worker↔worker transite par lui via IPC
5
+ * (`process.send` côté worker / `worker.send` côté master). Ce canal IPC est **partagé**
6
+ * par plusieurs usages (publications realtime, et — Phase 4 — remontées de sondes à
7
+ * agréger). Un **discriminant `kind`** permet à chaque consommateur (relay realtime,
8
+ * agrégateur de sondes) de ne traiter que ce qui le concerne.
9
+ *
10
+ * Ce protocole vit dans le **core** (et non dans `@nodefony/framework`) car le gateway
11
+ * est un composant core et le core est la dépendance commune : le worker realtime
12
+ * (`ClusterBackplane`, framework) importe `CLUSTER_RT_KIND` d'ici via `"nodefony"`, le
13
+ * master (`ClusterRelay`, core) l'utilise aussi → **une seule source**, pas de magic
14
+ * string dupliqué (anti-drift).
15
+ */
16
+ /**
17
+ * `kind` d'une publication **realtime** (port `IBackplane`). Le {@link "./ClusterRelay"}
18
+ * rebroadcast ces messages aux **autres** workers ; le `ClusterBackplane` (framework)
19
+ * les produit/consomme.
20
+ */
21
+ export declare const CLUSTER_RT_KIND: "nf:rt";
22
+ /**
23
+ * `kind` d'une **remontée de sonde** worker → master (Phase 4c). Chaque worker envoie
24
+ * périodiquement sa santé per-instance (opaque pour le master) ; le
25
+ * {@link "./ClusterProbeAggregator"} les collecte. Le {@link "./ClusterRelay"} IGNORE
26
+ * ce kind (ce n'est pas une publication realtime à rebroadcaster).
27
+ */
28
+ export declare const CLUSTER_PROBE_KIND: "nf:probe";
29
+ /**
30
+ * `kind` du **snapshot agrégé** master → workers (Phase 4c). Le master diffuse
31
+ * périodiquement la liste des sondes de TOUS les workers (`{ ts, instances }`) ; chaque
32
+ * worker la met en cache pour servir la vue POD sur son endpoint santé (push, pas pull).
33
+ */
34
+ export declare const CLUSTER_PROBE_SNAPSHOT_KIND: "nf:probe:snap";
35
+ /**
36
+ * `kind` d'un **ordre d'enrichissement** worker → master (Phase 2 drill-down). Un worker
37
+ * (celui qui tient la connexion navigateur) demande au master d'activer/couper la sonde
38
+ * **riche** (GC/heap-spaces/handles/ELU/ctx — cf `RichProcessProbe`) sur le worker `pid`
39
+ * ciblé. Routé par le {@link "./ClusterProbeAggregator"} vers ce worker via {@link
40
+ * CLUSTER_PROBE_ENRICH_KIND}. « On paie ce qu'on regarde » : aucun rich produit hors drill.
41
+ */
42
+ export declare const CLUSTER_PROBE_CTL_KIND: "nf:probe:ctl";
43
+ /**
44
+ * `kind` de l'**ordre ciblé** master → worker (Phase 2 drill-down). Dit au worker
45
+ * d'inclure (ou non) son blob de sonde **riche** dans son report périodique
46
+ * (`CLUSTER_PROBE_KIND`). Le rich voyage ensuite dans le snapshot agrégé EXISTANT
47
+ * (aucun nouveau flux de données — juste un champ `rich` de plus pour ce worker).
48
+ */
49
+ export declare const CLUSTER_PROBE_ENRICH_KIND: "nf:probe:enrich";
50
+ /**
51
+ * **Facette** de sonde riche ciblée par un ordre d'enrichissement (drill-down) :
52
+ * - `"process"` : sonde process riche (GC/heap-spaces/handles/ELU/ctx — `RichProcessProbe`) ;
53
+ * - `"orm"` : sonde ORM riche (diagnostic connexions + flux — `connection/health` + `flow`).
54
+ *
55
+ * Indépendantes : un worker peut être enrichi sur l'une, l'autre, ou les deux à la fois (deux
56
+ * pages de drill distinctes). « On paie ce qu'on regarde » par sonde — activer le drill ORM
57
+ * n'allume PAS la sonde process (et inversement). Absente sur le fil ⇒ `"process"` (rétro-compat).
58
+ */
59
+ export type ClusterProbeFacet = "process" | "orm";
60
+ /**
61
+ * Base de tout message du protocole IPC cluster — seul le `kind` est imposé. Les autres
62
+ * champs sont opaques pour le master (il route/agrège sans les inspecter).
63
+ */
64
+ export interface IClusterMessage {
65
+ readonly kind: string;
66
+ }
67
+ /**
68
+ * Ordre d'enrichissement (worker → master, {@link CLUSTER_PROBE_CTL_KIND}). `op` =
69
+ * `"enrich"` (activer) | `"stop"` (couper) ; `pid` = worker à (dés)enrichir ; `facet` =
70
+ * quelle sonde riche cibler (défaut `"process"` si absent → rétro-compat supervision).
71
+ */
72
+ export interface IClusterProbeCtl extends IClusterMessage {
73
+ readonly kind: typeof CLUSTER_PROBE_CTL_KIND;
74
+ readonly op: "enrich" | "stop";
75
+ readonly pid: number;
76
+ readonly facet?: ClusterProbeFacet;
77
+ }
78
+ /**
79
+ * Ordre ciblé (master → worker, {@link CLUSTER_PROBE_ENRICH_KIND}). `enabled` = le worker
80
+ * doit-il joindre sa sonde riche à ses prochains reports ; `facet` = laquelle (défaut
81
+ * `"process"`).
82
+ */
83
+ export interface IClusterProbeEnrich extends IClusterMessage {
84
+ readonly kind: typeof CLUSTER_PROBE_ENRICH_KIND;
85
+ readonly enabled: boolean;
86
+ readonly facet?: ClusterProbeFacet;
87
+ }
88
+ /** Type-guard d'un {@link IClusterProbeCtl} — narrowing sûr du canal IPC partagé. */
89
+ export declare function isClusterProbeCtl(m: unknown): m is IClusterProbeCtl;
90
+ /** Type-guard d'un {@link IClusterProbeEnrich} — narrowing sûr du canal IPC partagé. */
91
+ export declare function isClusterProbeEnrich(m: unknown): m is IClusterProbeEnrich;
92
+ /** Type-guard d'un message IPC cluster — narrowing sûr d'un message `unknown` du canal partagé. */
93
+ export declare function isClusterMessage(m: unknown): m is IClusterMessage;
94
+ export default CLUSTER_RT_KIND;
@@ -0,0 +1,37 @@
1
+ /**
2
+ * Lecteur de fichier système — abstrait pour rendre la résolution cgroup testable
3
+ * sans conteneur. Retourne le contenu du fichier, ou `null` si absent / illisible.
4
+ */
5
+ export type FileReader = (path: string) => string | null;
6
+ /**
7
+ * Lit le quota CPU effectif depuis les cgroups Linux — cgroup v2 (`cpu.max`) puis
8
+ * v1 (`cpu.cfs_quota_us` / `cpu.cfs_period_us`).
9
+ *
10
+ * C'est LA correction du bug de l'ancien cluster JS : `os.cpus().length` lit l'hôte
11
+ * (ex. 64 cœurs) et IGNORE la limite cgroup du conteneur (ex. 2 cœurs) → fork de 64
12
+ * workers throttlés + OOM. Le quota cgroup est la seule source de vérité en conteneur.
13
+ *
14
+ * @param read - lecteur de fichier injectable (tests). Défaut : `fs.readFileSync`.
15
+ * @returns le nombre de cœurs alloués (fractionnaire possible, ex. `0.5`, `2.5`), ou
16
+ * `null` si illimité (`max`) / cgroup absent (hors conteneur ou non-Linux).
17
+ */
18
+ export declare function readCgroupCpuQuota(read?: FileReader): number | null;
19
+ /** Options de {@link resolveWorkerCount} — tous les seams sont injectables pour les tests. */
20
+ export interface ResolveWorkerOptions {
21
+ /** `--workers N` explicite. Prioritaire et NON borné (harnais : forker plus de workers que de cœurs pour tester le backplane). */
22
+ requested?: number;
23
+ /** Quota cgroup pré-calculé (tests). Si omis → lecture cgroup réelle. `null` = illimité. */
24
+ cgroupQuota?: number | null;
25
+ /** Parallélisme schedulable (tests). Défaut : `os.availableParallelism()`. */
26
+ availableParallelism?: number;
27
+ }
28
+ /**
29
+ * Résout le nombre de workers à forker, dans l'ordre de priorité :
30
+ *
31
+ * 1. `requested` explicite (`--workers N`) si `> 0` — honoré **tel quel**, jamais borné.
32
+ * 2. Quota CPU cgroup (conteneur) → arrondi au plus proche, borné par le parallélisme schedulable.
33
+ * 3. `os.availableParallelism()` (Node 19+, respecte l'affinité CPU) — fallback hors conteneur.
34
+ *
35
+ * @returns un entier `>= 1` (jamais 0).
36
+ */
37
+ export declare function resolveWorkerCount(opts?: ResolveWorkerOptions): number;
@@ -0,0 +1,82 @@
1
+ /**
2
+ * Contrats de **santé per-instance NON realtime** (ORM + erreurs) qui voyagent dans le
3
+ * report de sonde cluster, à côté de {@link IProcessHealth} (process) et de la sonde de la
4
+ * socket. Généralise l'agrégation pod « aux 3 sondes » (process / socket / ORM+erreurs) sans
5
+ * toucher au `ClusterProbeAggregator` (opaque) : on enrichit juste le colis remonté par chaque
6
+ * worker, le merge pod les somme → « santé du framework » complète par pod.
7
+ *
8
+ * **Dépendance propre** : ces contrats vivent dans le CORE (comme `IProcessHealth`) →
9
+ * `@nodefony/framework` (assemble le report) et `@nodefony/orm-core` (produit la lecture lean)
10
+ * partagent UNE source de vérité sans dépendre l'un de l'autre. La lecture ORM réelle est
11
+ * branchée par le **driver** via {@link setOrmHealthProvider} (seam, comme `setClusterProbeClient`).
12
+ */
13
+ /**
14
+ * Santé ORM **agrégée per-instance** (lean) — somme process-wide de tous les connecteurs
15
+ * enregistrés, dérivée des singletons `queryFlowMonitor` + `connectionMonitor` (0 ping, 0
16
+ * `toSQL`, O(N connecteurs)). Rejoint le report de sonde du worker à chaque tick (≥ 1 s).
17
+ * Tous les cumuls sont **monotones** → débit/s dérivé côté lecteur (delta/ts, comme le CPU%).
18
+ */
19
+ export interface IOrmLeanHealth {
20
+ /** Connecteurs ORM enregistrés (registre). */
21
+ connectors: number;
22
+ /** Connecteurs actuellement connectés (`isConnected()`). */
23
+ connected: number;
24
+ /**
25
+ * Parmi les connectés, ceux dont l'état est **SUPPOSÉ** et non constaté :
26
+ * leur adapter n'a aucun signal de cycle de vie à traduire (base embarquée,
27
+ * driver muet), donc « connecté » y veut seulement dire « la connexion a
28
+ * été ouverte et n'a pas été fermée ».
29
+ *
30
+ * Sans ce compte, une readiness ne peut pas distinguer un connecteur qu'on
31
+ * SAIT vivant d'un connecteur dont on ne sait rien — et c'est le second qui
32
+ * fait prendre les mauvaises décisions.
33
+ */
34
+ assumed: number;
35
+ /** Requêtes ORM cumulées, tous connecteurs (monotone ; 0 si flux OFF en prod). */
36
+ queryTotal: number;
37
+ /** Requêtes lentes cumulées (au-dessus du seuil `slowMs`) (monotone). */
38
+ slowTotal: number;
39
+ /** Erreurs de connexion ORM cumulées (monotone). */
40
+ errorTotal: number;
41
+ /** Reconnexions ORM cumulées (monotone). */
42
+ reconnectTotal: number;
43
+ /** Pire latence EWMA (ms) parmi les connecteurs (instantané), ou `null` si non observé. */
44
+ maxEwmaMs: number | null;
45
+ }
46
+ /**
47
+ * Santé **erreurs per-instance** — compteurs Syslog monotones (cf `Syslog.errorTotal` /
48
+ * `Syslog.criticTotal`). Permet une carte « erreurs par worker » + un taux d'erreur pod
49
+ * (delta côté lecteur). Lecture pure d'entiers, 0 scan du ring buffer.
50
+ */
51
+ export interface IInstanceErrorHealth {
52
+ /** Logs ERROR/CRITIC/ALERT/EMERGENCY cumulés (sévérité 0–3) (monotone). */
53
+ errorTotal: number;
54
+ /** Sous-ensemble CRITIQUE : CRITIC/ALERT/EMERGENCY (sévérité 0–2) (monotone). */
55
+ criticTotal: number;
56
+ }
57
+ /**
58
+ * Branche (ou débranche avec `null`) le fournisseur de santé ORM lean. Idempotent
59
+ * (dernier gagne) — plusieurs drivers branchant la même fonction globale est sûr.
60
+ *
61
+ * @param fn - lecture lean de la santé ORM du process, ou `null` pour débrancher.
62
+ */
63
+ export declare function setOrmHealthProvider(fn: (() => IOrmLeanHealth) | null): void;
64
+ /**
65
+ * Lit la santé ORM lean du process via le fournisseur branché, ou `null` si aucun ORM
66
+ * n'est branché (le champ `orm` du report est alors omis). Lecture pure, jamais throw.
67
+ */
68
+ export declare function readOrmHealth(): IOrmLeanHealth | null;
69
+ /**
70
+ * Branche (ou débranche avec `null`) le fournisseur de diagnostic ORM riche. Idempotent
71
+ * (dernier gagne). Coût NUL hors drill : ce fournisseur n'est appelé que quand le master
72
+ * a demandé l'enrichissement ORM de CE worker.
73
+ *
74
+ * @param fn - producteur async du blob `{ health, flow }`, ou `null` pour débrancher.
75
+ */
76
+ export declare function setOrmRichProvider(fn: (() => Promise<unknown>) | null): void;
77
+ /**
78
+ * Appelle le fournisseur ORM riche branché (async), ou `null` si aucun driver ne l'a posé.
79
+ * Le résultat est un blob OPAQUE (forme connue de Studio seul). Ne throw pas pour son propre
80
+ * compte : la propagation d'un rejet du provider reste à l'appelant (qui catch dans son tick).
81
+ */
82
+ export declare function readOrmRich(): Promise<unknown> | null;
@@ -0,0 +1,35 @@
1
+ /**
2
+ * Détection de l'environnement d'orchestration (pod Kubernetes).
3
+ *
4
+ * Utilité : un driver de VUE local (logs `memory`/`file`/`cluster-file`, hub
5
+ * realtime `cluster`) ne couvre QUE le process/pod courant. En multi-pod, une vue
6
+ * globale exige une agrégation centralisée (Loki/OpenSearch pour les logs, Redis
7
+ * pour le realtime) — dont la destination est un secret d'infra fourni par
8
+ * l'environnement (12-factor), JAMAIS devinable depuis le process. Ce module sert
9
+ * donc à **avertir** l'opérateur, jamais à choisir un driver cross-pod à sa place.
10
+ */
11
+ /**
12
+ * Indique si le process tourne dans un pod Kubernetes.
13
+ *
14
+ * Signal fiable et gratuit : le kubelet injecte `KUBERNETES_SERVICE_HOST` (+
15
+ * `KUBERNETES_SERVICE_PORT`) dans TOUT conteneur d'un pod — présence = k8s. Ne dit
16
+ * RIEN du nombre de replicas (un pod ignore ses pairs) : à consommer comme un
17
+ * indice « multi-pod POSSIBLE », pas comme un compte de pods.
18
+ *
19
+ * @param env - table d'environnement (défaut `process.env`) — injectable pour les tests.
20
+ * @returns `true` si des marqueurs Kubernetes sont présents.
21
+ */
22
+ export declare function isInKubernetes(env?: NodeJS.ProcessEnv): boolean;
23
+ /**
24
+ * Décide s'il faut AVERTIR que la vue des logs est limitée à un pod. Vrai quand on
25
+ * tourne en Kubernetes (multi-pod possible), que le driver de relecture actif est
26
+ * LOCAL (per-pod), et qu'AUCUNE destination d'agrégation cross-pod (Loki/OpenSearch)
27
+ * n'est configurée. Pur (aucun accès système) → testable ; prend le NOM du driver
28
+ * (string) pour interdire le piège du comparer-un-objet-driver (bug de type réel).
29
+ *
30
+ * @param inKubernetes - résultat de {@link isInKubernetes}.
31
+ * @param activeDriverName - nom du driver de relecture actif (`ILogDriver.name`).
32
+ * @param hasAggregation - une destination Loki/OpenSearch est configurée.
33
+ * @returns true si un avertissement « vue par pod » est pertinent.
34
+ */
35
+ export declare function shouldWarnPerPodView(inKubernetes: boolean, activeDriverName: string | undefined, hasAggregation: boolean): boolean;
@@ -0,0 +1,53 @@
1
+ /**
2
+ * Santé PROCESS d'un worker — lue par {@link ProcessProbe}, agrégée par worker dans le
3
+ * snapshot pod (cf `ClusterProbeAggregator`). Volontairement **lean** (sérialisée par
4
+ * worker à chaque tick de report ≥ 1 s) : juste de quoi peupler une grille « salle des
5
+ * machines » (1 carte/worker). Les sondes lourdes (GC, heap-spaces, ctx-switches) restent
6
+ * au canal `nodefony:supervision` per-process pour le drill-down.
7
+ */
8
+ export interface IProcessHealth {
9
+ /** PID du worker (= instanceId de la vue pod). */
10
+ pid: number;
11
+ /** Uptime du process (secondes). */
12
+ uptime: number;
13
+ /** % d'UN cœur sur l'intervalle (comme `top` : un Node mono-thread sature ~100). */
14
+ cpuPercent: number;
15
+ /** Lag moyen de l'event-loop sur l'intervalle (ms) — blocage synchrone. */
16
+ eventLoopMs: number;
17
+ /** Saturation de la boucle (ELU) sur l'intervalle, 0–1 (~1 = thread saturé). */
18
+ eluUtilization: number;
19
+ /** Resident Set Size (octets). */
20
+ rss: number;
21
+ /** Heap V8 utilisé (octets). */
22
+ heapUsed: number;
23
+ /** Heap V8 total (octets). */
24
+ heapTotal: number;
25
+ /** Plafond heap V8 (octets, constant) — pour `heapUsed/heapLimit` (% avant OOM). */
26
+ heapLimit: number;
27
+ /** Mémoire hors-heap (buffers, etc.) (octets). */
28
+ external: number;
29
+ /** Horodatage de la mesure. */
30
+ ts: number;
31
+ }
32
+ /**
33
+ * Sonde PROCESS **stateful** d'un worker — calcule les métriques par INTERVALLE (CPU,
34
+ * event-loop lag, ELU sont des deltas entre 2 `read()`). Une instance par process worker.
35
+ *
36
+ * Perf (worker uniquement, JAMAIS hot path request) : `read()` appelé au tick de report
37
+ * (≥ 1 s) → 1 `process.cpuUsage()` + 1 `memoryUsage()` + lecture histogramme. Le monitor
38
+ * event-loop natif est **activé au 1ᵉʳ `read()`** (lazy — pas d'overhead « au cas où » à la
39
+ * simple construction) puis reset à chaque tick (lag moyen sur l'intervalle). SERVEUR
40
+ * uniquement (`node:perf_hooks`/`process`) → non importé par le bundle client.
41
+ */
42
+ export declare class ProcessProbe {
43
+ #private;
44
+ /**
45
+ * Lit la santé process courante (métriques par intervalle depuis le dernier `read()`).
46
+ *
47
+ * @returns {@link IProcessHealth} prêt à être joint au report de sonde du worker.
48
+ */
49
+ read(): IProcessHealth;
50
+ /** Libère le monitor event-loop natif (à l'arrêt du worker). Idempotent. */
51
+ dispose(): void;
52
+ }
53
+ export default ProcessProbe;