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,142 @@
1
+ import { closeSync, mkdirSync, openSync, write, writeSync } from "node:fs";
2
+ import { dirname } from "node:path";
3
+ //#region src/syslog/sinks/FileSink.ts
4
+ /**
5
+ * Driver de sink fichier NON bloquant (LB.W). Écrit via `fs.write` async sur un
6
+ * fd persistant ouvert en append (`"a"`) — **un fd PAR worker** (≠ stdout partagé
7
+ * hérité du master), donc sans contention d'inode.
8
+ *
9
+ * ⚠️ **Le fd-par-worker n'est PAS le levier de performance** — c'est un garde-fou.
10
+ * Le vrai levier est la **coalescence des writes** (nombre de syscalls) : ×19 à
11
+ * ×25 selon les runs (2009 ms en 1 write/ligne → 81 ms en chunks). La contention
12
+ * d'inode ne coûte ×3.2 à ×3.8 QUE dans le cas pathologique « 1 write par ligne » ;
13
+ * **à coalescence égale elle disparaît** (84 vs 81 ms = dans la variance). Or le
14
+ * ring/tick de `Syslog` coalesce DÉJÀ en amont : ce sink reçoit des chunks.
15
+ * Rejouer : `node .claude/skills/nodefony-load-test/scripts/log-sink-contention.mjs`.
16
+ *
17
+ * Buffer applicatif borné + drop anti-OOM ; un seul write en vol → ordre FIFO
18
+ * garanti ; flush SYNC de secours à l'`exit` (durabilité). Node-only.
19
+ */
20
+ var FileSink = class {
21
+ name = "file";
22
+ #fd;
23
+ #maxPendingBytes;
24
+ #sync;
25
+ #pending = [];
26
+ #pendingBytes = 0;
27
+ #writing = false;
28
+ #inFlight = null;
29
+ #closed = false;
30
+ #fdClosed = false;
31
+ #dropped = 0;
32
+ #write;
33
+ constructor(options) {
34
+ mkdirSync(dirname(options.path), { recursive: true });
35
+ this.#fd = openSync(options.path, "a");
36
+ this.#maxPendingBytes = options.maxPendingBytes ?? 4194304;
37
+ this.#sync = options.sync ?? false;
38
+ this.#write = options.write ?? write;
39
+ }
40
+ /** Lignes droppées (buffer saturé) — lu par une sonde, JAMAIS reloggé (récursion). */
41
+ get dropped() {
42
+ return this.#dropped;
43
+ }
44
+ writeOut(s) {
45
+ if (this.#closed) return;
46
+ if (this.#sync) {
47
+ try {
48
+ writeSync(this.#fd, s);
49
+ } catch {}
50
+ return;
51
+ }
52
+ if (this.#pendingBytes >= this.#maxPendingBytes) {
53
+ this.#dropped++;
54
+ return;
55
+ }
56
+ this.#pending.push(s);
57
+ this.#pendingBytes += s.length;
58
+ if (!this.#writing) this.#drain();
59
+ }
60
+ /**
61
+ * stderr (sévérité ≤ 3 — ERROR/CRITIC/ALERT/EMERGENCY) → DURABLE même crash.
62
+ * Écrit en `writeSync` IMMÉDIAT hors buffer : un fatal n'est jamais perdu si le
63
+ * process est tué (SIGKILL/OOM) avant le drain async. En mode `sync`, `writeOut`
64
+ * fait déjà le `writeSync`. fd PAR worker + O_APPEND → write atomique ; best-effort
65
+ * sur erreur I/O (un logger ne throw jamais).
66
+ *
67
+ * ⚠️ Ordre : on NE ré-écrit PAS un chunk stdout async en vol (`#inFlight`, déjà
68
+ * soumis à `fs.write` → le ré-écrire = doublon kernel inévitable, non annulable).
69
+ * Conséquence assumée : un fatal peut atterrir juste AVANT un stdout encore en
70
+ * vol/bufferisé. Les timestamps par ligne (`HH:MM:SS.mmm`) font foi pour relire
71
+ * l'ordre causal. La durabilité du fatal prime sur l'ordre strict avec des stdout
72
+ * non-durables (perdus de toute façon au SIGKILL en mode async).
73
+ */
74
+ writeErr(s) {
75
+ if (this.#closed) return;
76
+ if (this.#sync) {
77
+ this.writeOut(s);
78
+ return;
79
+ }
80
+ try {
81
+ writeSync(this.#fd, s);
82
+ } catch {}
83
+ }
84
+ #drain() {
85
+ if (this.#writing || this.#pending.length === 0) return;
86
+ this.#writing = true;
87
+ const chunk = this.#pending.join("");
88
+ this.#pending.length = 0;
89
+ this.#pendingBytes = 0;
90
+ this.#inFlight = chunk;
91
+ this.#write(this.#fd, chunk, (err) => {
92
+ this.#writing = false;
93
+ this.#inFlight = null;
94
+ if (this.#closed) {
95
+ this.#closeFd();
96
+ return;
97
+ }
98
+ if (!err) this.#drain();
99
+ });
100
+ }
101
+ /** Rend le descripteur au système, une seule fois. */
102
+ #closeFd() {
103
+ if (this.#fdClosed) return;
104
+ this.#fdClosed = true;
105
+ try {
106
+ closeSync(this.#fd);
107
+ } catch {}
108
+ }
109
+ flushSync() {
110
+ if (this.#closed) return;
111
+ const rest = (this.#inFlight ?? "") + this.#pending.join("");
112
+ this.#pending.length = 0;
113
+ this.#pendingBytes = 0;
114
+ this.#inFlight = null;
115
+ if (rest.length === 0) return;
116
+ try {
117
+ writeSync(this.#fd, rest);
118
+ } catch {}
119
+ }
120
+ /**
121
+ * Ferme le sink : plus rien n'est accepté, le pending part en SYNC, et le
122
+ * descripteur est rendu — mais **jamais sous une écriture en vol**.
123
+ *
124
+ * Un descripteur est un entier que le système réattribue au premier `open` venu.
125
+ * Le rendre pendant qu'une écriture asynchrone attend encore son tour dans le pool
126
+ * de threads, c'est la laisser atterrir dans le fichier — ou la socket — de
127
+ * quelqu'un d'autre, sans la moindre erreur visible. Le symptôme observé était une
128
+ * ligne d'un banc apparue en tête du fichier d'un autre ; il avait été pris pour un
129
+ * défaut d'isolation et « corrigé » par un dossier temporaire unique, d'où son
130
+ * retour. Quand une écriture est en vol, la remise est donc déléguée à son
131
+ * callback ({@link #closeFd}) — idempotente et sans attente pour l'appelant.
132
+ */
133
+ close() {
134
+ if (this.#closed) return;
135
+ this.flushSync();
136
+ this.#closed = true;
137
+ if (this.#writing) return;
138
+ this.#closeFd();
139
+ }
140
+ };
141
+ //#endregion
142
+ export { FileSink };
@@ -0,0 +1,98 @@
1
+ //#region src/syslog/transports/BatchingHttpTransport.ts
2
+ /** Promesse résolue partagée — `send()` n'alloue pas une Promise par log. */
3
+ const RESOLVED_VOID = Promise.resolve();
4
+ /**
5
+ * Base d'un transport de logs HTTP **batché** — généralise le pattern LB.W
6
+ * (ring borné → drain coalescé → drop borné) à une destination réseau (Loki,
7
+ * OpenSearch). Mutualise toute la mécanique de file/flush/drop/cleanup ; la
8
+ * sous-classe n'implémente QUE {@link flushBatch} (formatage + push spécifiques).
9
+ *
10
+ * **Garanties hot path** : `send(pdu)` est O(1) non-bloquant (enqueue + arme un
11
+ * timer `unref`), retourne une Promise résolue partagée (0 alloc/log), et ne
12
+ * `throw` jamais — un push qui rate est compté, pas propagé au pipeline requête.
13
+ * Coalescence : un POST par lot (≠ 1 requête HTTP par log = catastrophe réseau).
14
+ *
15
+ * **Durabilité best-effort** : flush sur `beforeExit` (le seul hook où l'on peut
16
+ * encore faire de l'async proprement). PAS de handler `SIGTERM`/`SIGINT` — il
17
+ * casserait le `Ctrl+C` (leçon LB.W). Un crash dur peut perdre le dernier lot :
18
+ * acceptable pour une destination réseau (les logs y sont déjà best-effort), les
19
+ * sévérités fatales restant écrites par le sink local synchrone (LB.W).
20
+ */
21
+ var BatchingHttpTransport = class {
22
+ #queue = [];
23
+ #timer = null;
24
+ #flushing = false;
25
+ #dropped = 0;
26
+ #failedBatches = 0;
27
+ #exitHooked = false;
28
+ #batchSize;
29
+ #flushIntervalMs;
30
+ #maxQueue;
31
+ constructor(options = {}) {
32
+ this.#batchSize = options.batchSize ?? 100;
33
+ this.#flushIntervalMs = options.flushIntervalMs ?? 2e3;
34
+ this.#maxQueue = options.maxQueue ?? 1e4;
35
+ }
36
+ /**
37
+ * Enfile un log (O(1), non-bloquant). Flush immédiat si le lot est plein, sinon
38
+ * arme un timer `unref` pour drainer le reliquat. Queue saturée → DROP + compteur.
39
+ */
40
+ send(pdu) {
41
+ if (!this.#exitHooked) {
42
+ this.#exitHooked = true;
43
+ process.once("beforeExit", () => {
44
+ this.#flush();
45
+ });
46
+ }
47
+ if (this.#queue.length >= this.#maxQueue) {
48
+ this.#dropped++;
49
+ return RESOLVED_VOID;
50
+ }
51
+ this.#queue.push(pdu);
52
+ if (this.#queue.length >= this.#batchSize) this.#flush();
53
+ else if (this.#timer === null) {
54
+ this.#timer = setTimeout(() => {
55
+ this.#timer = null;
56
+ this.#flush();
57
+ }, this.#flushIntervalMs);
58
+ if (typeof this.#timer.unref === "function") this.#timer.unref();
59
+ }
60
+ return RESOLVED_VOID;
61
+ }
62
+ /** Vide la queue par lots et pousse — réentrance protégée (un seul drain à la fois). */
63
+ async #flush() {
64
+ if (this.#flushing || this.#queue.length === 0) return;
65
+ if (this.#timer !== null) {
66
+ clearTimeout(this.#timer);
67
+ this.#timer = null;
68
+ }
69
+ this.#flushing = true;
70
+ const batch = this.#queue.splice(0, this.#queue.length);
71
+ try {
72
+ await this.flushBatch(batch);
73
+ } catch {
74
+ this.#failedBatches++;
75
+ } finally {
76
+ this.#flushing = false;
77
+ }
78
+ if (this.#queue.length >= this.#batchSize) this.#flush();
79
+ }
80
+ /** Flush final explicite (arrêt gracieux). Best-effort, ne `throw` pas. */
81
+ async close() {
82
+ if (this.#timer !== null) {
83
+ clearTimeout(this.#timer);
84
+ this.#timer = null;
85
+ }
86
+ await this.#flush();
87
+ }
88
+ /** Compteurs d'observabilité (drop/échecs/queue). */
89
+ get stats() {
90
+ return {
91
+ dropped: this.#dropped,
92
+ failedBatches: this.#failedBatches,
93
+ queued: this.#queue.length
94
+ };
95
+ }
96
+ };
97
+ //#endregion
98
+ export { BatchingHttpTransport };
@@ -0,0 +1,14 @@
1
+ import Syslog from "../Syslog.js";
2
+ //#region src/syslog/transports/ConsoleTransport.ts
3
+ var ConsoleTransport = class {
4
+ name = "console";
5
+ pid;
6
+ constructor(pid = "") {
7
+ this.pid = pid;
8
+ }
9
+ async send(pdu) {
10
+ Syslog.normalizeLog(pdu, this.pid);
11
+ }
12
+ };
13
+ //#endregion
14
+ export { ConsoleTransport };
@@ -0,0 +1,17 @@
1
+ import { appendFile } from "node:fs/promises";
2
+ //#region src/syslog/transports/FileTransport.ts
3
+ var FileTransport = class {
4
+ name = "file";
5
+ path;
6
+ format;
7
+ constructor(options) {
8
+ this.path = options.path;
9
+ this.format = options.format ?? "json";
10
+ }
11
+ async send(pdu) {
12
+ const line = this.format === "json" ? JSON.stringify(pdu) + "\n" : `${new Date(pdu.timeStamp).toISOString()} ${pdu.severityName} ${pdu.msgid}: ${String(pdu.payload)}\n`;
13
+ await appendFile(this.path, line, "utf8");
14
+ }
15
+ };
16
+ //#endregion
17
+ export { FileTransport };
@@ -0,0 +1,44 @@
1
+ import * as http$1 from "node:http";
2
+ import * as https$1 from "node:https";
3
+ //#region src/syslog/transports/HttpTransport.ts
4
+ var HttpTransport = class {
5
+ name = "http";
6
+ url;
7
+ headers;
8
+ timeout;
9
+ constructor(options) {
10
+ this.url = new URL(options.url);
11
+ this.headers = options.headers ?? {};
12
+ this.timeout = options.timeout ?? 5e3;
13
+ }
14
+ send(pdu) {
15
+ return new Promise((resolve, reject) => {
16
+ const body = JSON.stringify(pdu);
17
+ const isHttps = this.url.protocol === "https:";
18
+ const options = {
19
+ hostname: this.url.hostname,
20
+ port: this.url.port || (isHttps ? 443 : 80),
21
+ path: this.url.pathname + this.url.search,
22
+ method: "POST",
23
+ headers: {
24
+ "Content-Type": "application/json",
25
+ "Content-Length": Buffer.byteLength(body),
26
+ ...this.headers
27
+ }
28
+ };
29
+ const req = (isHttps ? https$1 : http$1).request(options, (res) => {
30
+ res.resume();
31
+ if (res.statusCode && res.statusCode >= 400) reject(/* @__PURE__ */ new Error(`HttpTransport: HTTP ${res.statusCode}`));
32
+ else resolve();
33
+ });
34
+ req.setTimeout(this.timeout, () => {
35
+ req.destroy(/* @__PURE__ */ new Error(`HttpTransport: timeout after ${this.timeout}ms`));
36
+ });
37
+ req.on("error", reject);
38
+ req.write(body);
39
+ req.end();
40
+ });
41
+ }
42
+ };
43
+ //#endregion
44
+ export { HttpTransport };
@@ -0,0 +1,80 @@
1
+ import { stripTrailingSlashes } from "../../Tools.js";
2
+ import { BatchingHttpTransport } from "./BatchingHttpTransport.js";
3
+ import { pduToRecord } from "../drivers/ILogDriver.js";
4
+ import { fetchWithTimeout, resolveFetch } from "../httpFetch.js";
5
+ //#region src/syslog/transports/LokiTransport.ts
6
+ /**
7
+ * Transport de logs vers **Grafana Loki** (LB.4) — push HTTP **batché** sur
8
+ * `POST /loki/api/v1/push`. Étend {@link BatchingHttpTransport} : la queue/flush/
9
+ * drop/cleanup sont mutualisés ; ici on ne fait que **formater le lot** au schéma
10
+ * Loki (streams + values) et l'envoyer.
11
+ *
12
+ * Modèle : 1 requête HTTP par lot (jamais par log). Les Pdu sont regroupés par jeu
13
+ * de labels (`{...base, severity, module, pid}`), les valeurs triées par timestamp
14
+ * croissant (exigence Loki), chaque ligne = le record wire `JSON.stringify(pduToRecord)`
15
+ * (timestamp en **nanosecondes** = `ms·10⁶`). Le `requestId` reste DANS la ligne JSON
16
+ * (pas un label) → corrélation full-stack via `| json` côté LogQL, sans alourdir l'index.
17
+ *
18
+ * Node-only (destination prod). Couplé au driver {@link createLokiLogDriver} (write↔read
19
+ * cohérents : on pousse ici, on relit là).
20
+ */
21
+ var LokiTransport = class extends BatchingHttpTransport {
22
+ name = "loki";
23
+ #pushUrl;
24
+ #baseLabels;
25
+ #headers;
26
+ #timeoutMs;
27
+ #fetch;
28
+ constructor(options) {
29
+ super(options);
30
+ this.#pushUrl = stripTrailingSlashes(options.url) + "/loki/api/v1/push";
31
+ this.#baseLabels = options.labels ?? { app: "nodefony" };
32
+ this.#headers = {
33
+ "content-type": "application/json",
34
+ ...options.tenantId ? { "X-Scope-OrgID": options.tenantId } : {},
35
+ ...options.headers
36
+ };
37
+ this.#timeoutMs = options.timeoutMs ?? 5e3;
38
+ this.#fetch = resolveFetch(options.fetchImpl);
39
+ }
40
+ async flushBatch(batch) {
41
+ const groups = /* @__PURE__ */ new Map();
42
+ for (const pdu of batch) {
43
+ const sev = pdu.severityName;
44
+ const mod = pdu.moduleName;
45
+ const pid = String(pdu.pid);
46
+ const key = `${sev}\0${mod}\0${pid}`;
47
+ let g = groups.get(key);
48
+ if (g === void 0) {
49
+ g = {
50
+ stream: {
51
+ ...this.#baseLabels,
52
+ severity: sev,
53
+ module: mod,
54
+ pid
55
+ },
56
+ pdus: []
57
+ };
58
+ groups.set(key, g);
59
+ }
60
+ g.pdus.push(pdu);
61
+ }
62
+ const streams = [];
63
+ for (const g of groups.values()) {
64
+ g.pdus.sort((a, b) => a.timeStamp - b.timeStamp || a.uid - b.uid);
65
+ const values = g.pdus.map((p) => [`${p.timeStamp}000000`, JSON.stringify(pduToRecord(p))]);
66
+ streams.push({
67
+ stream: g.stream,
68
+ values
69
+ });
70
+ }
71
+ const res = await fetchWithTimeout(this.#fetch, this.#pushUrl, {
72
+ method: "POST",
73
+ headers: this.#headers,
74
+ body: JSON.stringify({ streams })
75
+ }, this.#timeoutMs);
76
+ if (!res.ok) throw new Error(`LokiTransport: push HTTP ${res.status}`);
77
+ }
78
+ };
79
+ //#endregion
80
+ export { LokiTransport };
@@ -0,0 +1,53 @@
1
+ import { stripTrailingSlashes } from "../../Tools.js";
2
+ import { BatchingHttpTransport } from "./BatchingHttpTransport.js";
3
+ import { pduToRecord } from "../drivers/ILogDriver.js";
4
+ import { fetchWithTimeout, resolveFetch } from "../httpFetch.js";
5
+ import { basicAuthHeader } from "../drivers/opensearchShared.js";
6
+ //#region src/syslog/transports/OpenSearchTransport.ts
7
+ /**
8
+ * Transport de logs vers **OpenSearch** (LB.4) — indexation **batchée** via l'API
9
+ * `POST /_bulk` (NDJSON). Étend {@link BatchingHttpTransport} (queue/flush/drop
10
+ * mutualisés) ; ici on formate le lot au protocole bulk et on l'envoie.
11
+ *
12
+ * Protocole bulk : paires de lignes `{"index":{"_index":"…"}}\n` + `<document>\n`,
13
+ * le corps DOIT se terminer par un newline (OpenSearch parse par `\n`). Le document
14
+ * = record wire (`pduToRecord`) → mapping dynamique OpenSearch ; `requestId`/
15
+ * `moduleName`/`severityName` deviennent des champs `text` + sous-champ `.keyword`
16
+ * requêtables (cf {@link createOpenSearchLogDriver}). `timeStamp` (epoch ms) =
17
+ * champ numérique → range/sort efficaces.
18
+ *
19
+ * Node-only (destination prod). Couplé au driver {@link createOpenSearchLogDriver}.
20
+ */
21
+ var OpenSearchTransport = class extends BatchingHttpTransport {
22
+ name = "opensearch";
23
+ #bulkUrl;
24
+ #index;
25
+ #headers;
26
+ #timeoutMs;
27
+ #fetch;
28
+ constructor(options) {
29
+ super(options);
30
+ this.#bulkUrl = stripTrailingSlashes(options.url) + "/_bulk";
31
+ this.#index = options.index ?? "nodefony-logs";
32
+ this.#headers = {
33
+ "content-type": "application/x-ndjson",
34
+ ...basicAuthHeader(options.username, options.password),
35
+ ...options.headers
36
+ };
37
+ this.#timeoutMs = options.timeoutMs ?? 5e3;
38
+ this.#fetch = resolveFetch(options.fetchImpl);
39
+ }
40
+ async flushBatch(batch) {
41
+ const action = `{"index":{"_index":"${this.#index}"}}`;
42
+ let body = "";
43
+ for (const pdu of batch) body += action + "\n" + JSON.stringify(pduToRecord(pdu)) + "\n";
44
+ const res = await fetchWithTimeout(this.#fetch, this.#bulkUrl, {
45
+ method: "POST",
46
+ headers: this.#headers,
47
+ body
48
+ }, this.#timeoutMs);
49
+ if (!res.ok) throw new Error(`OpenSearchTransport: bulk HTTP ${res.status}`);
50
+ }
51
+ };
52
+ //#endregion
53
+ export { OpenSearchTransport };
@@ -0,0 +1,13 @@
1
+ //#region src/syslog/transports/SyslogTransport.ts
2
+ var SyslogTransport = class {
3
+ name = "syslog";
4
+ target;
5
+ constructor(target) {
6
+ this.target = target;
7
+ }
8
+ async send(pdu) {
9
+ this.target.log(pdu);
10
+ }
11
+ };
12
+ //#endregion
13
+ export { SyslogTransport };
@@ -0,0 +1,8 @@
1
+ import { FileTransport } from "./FileTransport.js";
2
+ import { BatchingHttpTransport } from "./BatchingHttpTransport.js";
3
+ import { LokiTransport } from "./LokiTransport.js";
4
+ import { OpenSearchTransport } from "./OpenSearchTransport.js";
5
+ import { ConsoleTransport } from "./ConsoleTransport.js";
6
+ import { HttpTransport } from "./HttpTransport.js";
7
+ import { SyslogTransport } from "./SyslogTransport.js";
8
+ export { BatchingHttpTransport, ConsoleTransport, FileTransport, HttpTransport, LokiTransport, OpenSearchTransport, SyslogTransport };
@@ -0,0 +1,190 @@
1
+ import Container from "../Container.js";
2
+ import { readRuntimeState, readinessStateFile, runtimeStateFile, signalProcessGroup } from "../service/dev/devProcess.js";
3
+ import Module from "../kernel/Module.js";
4
+ import { nodefonyBin } from "../cli/nodefonyBin.js";
5
+ import { mkdirSync, readFileSync, rmSync, writeFileSync } from "node:fs";
6
+ import path from "node:path";
7
+ import { once } from "node:events";
8
+ import { spawn } from "node:child_process";
9
+ //#region src/testing/index.ts
10
+ /**
11
+ * Port de l'application DÉMARRÉE, ou une erreur qui dit pourquoi on l'ignore.
12
+ *
13
+ * ## Pourquoi ce n'est pas `?? 5151`
14
+ *
15
+ * Un port de repli semble anodin — il ne l'est pas. Quand l'état d'exécution
16
+ * est illisible (l'application n'a pas démarré, elle a démarré ailleurs, le
17
+ * répertoire courant n'est pas sa racine), le repli envoie la suite interroger
18
+ * **le premier serveur qui traîne sur cette machine**. Constaté : un serveur de
19
+ * développement laissé ouvert par un autre projet a répondu `404` à tous les
20
+ * cas, et la suite a accusé les routes de l'application au lieu de son décor.
21
+ *
22
+ * Un test qui parle au mauvais serveur ne se contente pas d'échouer : il rend
23
+ * un verdict FAUX, et on cherche le défaut dans le code mesuré.
24
+ *
25
+ * Le port ne se devine donc pas. Il se lit — ou la suite s'arrête en disant
26
+ * quoi vérifier.
27
+ *
28
+ * ```ts
29
+ * import { runningAppPort } from "nodefony/testing";
30
+ *
31
+ * const res = await fetch(`http://127.0.0.1:${runningAppPort()}/api/hello`);
32
+ * ```
33
+ *
34
+ * @param root - racine de l'application ; le répertoire courant par défaut,
35
+ * ce qui convient à une suite lancée depuis la racine du projet.
36
+ * @returns le premier port sur lequel l'application écoute.
37
+ * @throws Quand aucun état d'exécution n'est lisible, ou qu'il n'annonce aucun
38
+ * port — jamais un repli silencieux.
39
+ */
40
+ function runningAppPort(root = process.cwd()) {
41
+ const port = readRuntimeState(root)?.ports?.[0];
42
+ if (typeof port !== "number") throw new Error(`aucune application Nodefony démarrée sous « ${root} » : l'état d'exécution est illisible ou n'annonce aucun port. Vérifie que le décor a bien lancé « nodefony production --detach --wait », et que la suite tourne depuis la racine de l'application. (Un port de repli ferait interroger un serveur ÉTRANGER, et le verdict porterait sur lui.)`);
43
+ return port;
44
+ }
45
+ /**
46
+ * Un module JETABLE, prêt à porter un service dans un test.
47
+ *
48
+ * ```ts
49
+ * import { createTestModule } from "nodefony/testing";
50
+ * import TaxService from "../nodefony/service/TaxService";
51
+ *
52
+ * const tax = new TaxService(createTestModule());
53
+ * expect(tax.rate()).toBe(0.2);
54
+ * ```
55
+ *
56
+ * Deux services qui doivent se voir prennent le MÊME module : ils partagent
57
+ * alors son conteneur, et `container.get("…")` résout comme à l'exécution.
58
+ *
59
+ * ```ts
60
+ * const app = createTestModule();
61
+ * const tax = new TaxService(app);
62
+ * const invoice = new InvoiceService(app, tax);
63
+ * ```
64
+ *
65
+ * @param settings - réglages facultatifs (cf {@link ITestModuleOptions}).
66
+ * @returns un module utilisable comme argument de constructeur d'un service.
67
+ */
68
+ function createTestModule(settings = {}) {
69
+ const kernel = { container: settings.container ?? new Container() };
70
+ return new Module(settings.name ?? "test", kernel, settings.path ?? process.cwd(), settings.options ?? {});
71
+ }
72
+ /**
73
+ * Démarre un exemplaire JETABLE de l'application, dans un état choisi.
74
+ *
75
+ * ## À quoi ça sert
76
+ *
77
+ * Certaines choses ne s'observent que sur un processus qui démarre dans un état
78
+ * précis : un schéma en retard qui retient la mise en service (`/readyz` rend
79
+ * 503), une dépendance absente, un refus de démarrage. Le décor de la suite,
80
+ * lui, a démarré l'application dans l'état NORMAL — et c'est ce qu'on veut : les
81
+ * autres cas mesurent le fonctionnement.
82
+ *
83
+ * ## 🔴 Ce qu'il faut savoir, et qui ne se voit pas
84
+ *
85
+ * Un exemplaire Nodefony **publie ses ports** dans l'état d'exécution du projet
86
+ * (`node_modules/.cache/nodefony/`), et cet état est un fichier UNIQUE par
87
+ * racine d'application. Un second exemplaire lancé depuis le même dossier
88
+ * l'écrase donc, et {@link runningAppPort} — que tous les autres cas
89
+ * utilisent — se met à désigner le jetable, puis à lever une fois qu'il est
90
+ * mort. Le défaut n'apparaît pas dans le cas qui l'a créé : il tombe sur le
91
+ * SUIVANT, et accuse une route qui n'a rien fait.
92
+ *
93
+ * `stop()` restaure donc l'état d'exécution tel qu'il était avant le démarrage.
94
+ * C'est la raison d'être de cette fonction, bien plus que le `spawn` qu'elle
95
+ * fait à votre place.
96
+ *
97
+ * ```ts
98
+ * const jetable = await startSpareApp({
99
+ * port: 5399,
100
+ * env: { NODE_ENV: "production", NF_DATABASE_URL: "sqlite:/tmp/vierge.db" },
101
+ * });
102
+ * try {
103
+ * const res = await fetch(`http://127.0.0.1:${jetable.port}/readyz`);
104
+ * assert.equal(res.status, 503);
105
+ * } finally {
106
+ * await jetable.stop();
107
+ * }
108
+ * ```
109
+ *
110
+ * @param options - port imposé, environnement, racine.
111
+ * @returns l'exemplaire, une fois qu'il répond.
112
+ * @throws Si le processus meurt avant de répondre, ou si le délai expire — avec
113
+ * ce qu'il a écrit, parce que c'est là que se trouve la cause.
114
+ */
115
+ async function startSpareApp(options) {
116
+ const root = options.root ?? process.cwd();
117
+ const timeoutMs = options.timeoutMs ?? 6e4;
118
+ const state = readStateFiles(root);
119
+ const child = spawn(process.execPath, [nodefonyBin(), "production"], {
120
+ cwd: root,
121
+ detached: process.platform !== "win32",
122
+ env: {
123
+ ...process.env,
124
+ NF_PORT: String(options.port),
125
+ ...options.httpsPort === void 0 ? {} : { NF_PORT_HTTPS: String(options.httpsPort) },
126
+ ...options.env
127
+ },
128
+ stdio: [
129
+ "ignore",
130
+ "pipe",
131
+ "pipe"
132
+ ]
133
+ });
134
+ let output = "";
135
+ child.stdout?.on("data", (c) => output += c.toString());
136
+ child.stderr?.on("data", (c) => output += c.toString());
137
+ let exitCode = null;
138
+ child.on("exit", (code) => exitCode = code ?? -1);
139
+ const stop = async () => {
140
+ if (exitCode === null && typeof child.pid === "number") signalProcessGroup(child.pid, "SIGKILL");
141
+ await once(child, "exit").catch(() => void 0);
142
+ restoreStateFiles(state);
143
+ };
144
+ const deadline = Date.now() + timeoutMs;
145
+ for (;;) {
146
+ if (exitCode !== null) {
147
+ restoreStateFiles(state);
148
+ throw new Error(`l'exemplaire jetable est mort avant de répondre (code ${exitCode}) :\n${output.slice(-2e3)}`);
149
+ }
150
+ if (await fetch(`http://127.0.0.1:${options.port}/livez`).then((r) => r.ok).catch(() => false)) break;
151
+ if (Date.now() > deadline) {
152
+ await stop();
153
+ throw new Error(`l'exemplaire jetable n'a pas répondu sur le port ${options.port} en ${timeoutMs} ms :\n${output.slice(-2e3)}`);
154
+ }
155
+ await new Promise((r) => setTimeout(r, 250));
156
+ }
157
+ return {
158
+ port: options.port,
159
+ output: () => output,
160
+ stop
161
+ };
162
+ }
163
+ /** Relève les fichiers d'état qu'un exemplaire écrase en démarrant. */
164
+ function readStateFiles(root) {
165
+ return [runtimeStateFile(root), readinessStateFile(root)].map((file) => {
166
+ try {
167
+ return {
168
+ file,
169
+ content: readFileSync(file, "utf8")
170
+ };
171
+ } catch {
172
+ return {
173
+ file,
174
+ content: null
175
+ };
176
+ }
177
+ });
178
+ }
179
+ /** Rend les fichiers d'état à ce qu'ils étaient — y compris leur absence. */
180
+ function restoreStateFiles(state) {
181
+ for (const { file, content } of state) try {
182
+ if (content === null) rmSync(file, { force: true });
183
+ else {
184
+ mkdirSync(path.dirname(file), { recursive: true });
185
+ writeFileSync(file, content, "utf8");
186
+ }
187
+ } catch {}
188
+ }
189
+ //#endregion
190
+ export { createTestModule, nodefonyBin, runningAppPort, startSpareApp };