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,423 @@
1
+ //#region src/config/envOverride.ts
2
+ /**
3
+ * Override générique de configuration par variable d'environnement (ADR-0006 D3).
4
+ *
5
+ * Forme : `NF__<MODULE>__<CHEMIN…>=valeur`. Le **double underscore `__`** sépare
6
+ * les niveaux (choix .NET Core / Docker — explicite, sans ambiguïté avec le
7
+ * camelCase). Le 1ᵉʳ segment = le module (`SECURITY` → `@nodefony/security`), les
8
+ * suivants = le chemin dans sa config. Les segments sont **insensibles à la casse**
9
+ * et résolus contre les clés RÉELLES de la config (`ACCESSTTLS` → `accessTtlS`).
10
+ *
11
+ * Précédence (cf ADR-0006 D5) : appliqué APRÈS le merge de l'app (`use()` /
12
+ * `module-<name>`) et AVANT la validation Zod du module → le schéma valide/rejette
13
+ * la valeur surchargée (fail-closed). Résolu **1× au boot** (hors hot path).
14
+ *
15
+ * @example
16
+ * ```bash
17
+ * NF__SECURITY__JWT__ACCESSTTLS=300
18
+ * NF__HTTP__SERVERS__HTTPS__PORT=8443
19
+ * NF__SECURITY__CORS__ORIGINS=https://a.com,https://b.com # CSV → array
20
+ * ```
21
+ */
22
+ /** Préfixe d'un override générique (double underscore). */
23
+ const NF_PREFIX = "NF__";
24
+ /**
25
+ * Coerce une valeur d'environnement (toujours une chaîne) vers son type probable.
26
+ *
27
+ * Coercion **explicite** (le piège `z.coerce.boolean("false") === true` est évité) :
28
+ * `"true"/"false"` → booléen ; entier/décimal → nombre ; `[…]`/`{…}` → JSON ;
29
+ * une chaîne contenant `,` → tableau de chaînes (CSV) ; sinon la chaîne brute.
30
+ *
31
+ * @param raw - valeur brute de la variable d'environnement.
32
+ * @returns la valeur typée.
33
+ */
34
+ function coerceEnvValue(raw) {
35
+ const v = raw.trim();
36
+ if (v === "true") return true;
37
+ if (v === "false") return false;
38
+ if (/^-?\d+(\.\d+)?$/.test(v)) return Number(v);
39
+ if (v.startsWith("[") && v.endsWith("]") || v.startsWith("{") && v.endsWith("}")) try {
40
+ return JSON.parse(v);
41
+ } catch {}
42
+ if (v.includes(",")) return v.split(",").map((s) => s.trim()).filter((s) => s.length > 0);
43
+ return v;
44
+ }
45
+ /**
46
+ * Scanne `env` et extrait tous les overrides `NF__<MODULE>__<CHEMIN…>`.
47
+ *
48
+ * Ignore les clés sans au moins un module + un champ (`NF__X` seul), et les
49
+ * valeurs `undefined`. Ne touche PAS `env` (lecture seule).
50
+ *
51
+ * @param env - source d'environnement (typiquement `process.env`).
52
+ * @returns la liste des overrides résolus (vide si aucun).
53
+ */
54
+ function parseNfEnvOverrides(env) {
55
+ const out = [];
56
+ for (const envKey in env) {
57
+ if (!envKey.startsWith(NF_PREFIX)) continue;
58
+ const segs = envKey.slice(4).split("__").filter((s) => s.length > 0);
59
+ if (segs.length < 2) continue;
60
+ const raw = env[envKey];
61
+ if (raw === void 0) continue;
62
+ const [moduleSeg, ...path] = segs;
63
+ out.push({
64
+ envKey,
65
+ moduleSeg: moduleSeg.toLowerCase(),
66
+ path: path.map((s) => s.toLowerCase()),
67
+ value: coerceEnvValue(raw),
68
+ raw
69
+ });
70
+ }
71
+ return out;
72
+ }
73
+ /**
74
+ * Les écritures d'un booléen qu'un environnement produit réellement.
75
+ *
76
+ * `1`/`0` d'abord, parce que c'est la forme naturelle en shell, en Docker et en
77
+ * manifeste k8s — et celle qui cassait le boot. `on`/`off` et `yes`/`no` sont la
78
+ * même intention écrite autrement ; les refuser obligerait l'utilisateur à
79
+ * deviner laquelle des trois formes son framework accepte.
80
+ */
81
+ const BOOLEANS_TRUE = /* @__PURE__ */ new Set([
82
+ "true",
83
+ "1",
84
+ "yes",
85
+ "on"
86
+ ]);
87
+ const BOOLEANS_FALSE = /* @__PURE__ */ new Set([
88
+ "false",
89
+ "0",
90
+ "no",
91
+ "off"
92
+ ]);
93
+ /**
94
+ * La valeur d'environnement convertie vers le type de ce qu'elle REMPLACE.
95
+ *
96
+ * Une variable d'environnement est toujours une chaîne ; seul le schéma sait ce
97
+ * qu'il attend. {@link coerceEnvValue} devine sans lui, et sa devinette rendait
98
+ * un type FAUX que la validation Zod refusait ensuite : `NF__HTTP__TRUSTPROXY=1`
99
+ * donnait `Number(1)`, qu'aucun membre de `z.union([boolean, string, array])`
100
+ * n'accepte — une variable DOCUMENTÉE faisait échouer le boot, à rebours du
101
+ * 12-factor que l'ADR-0006 revendique.
102
+ *
103
+ * L'information manquante est pourtant à portée : la config porte déjà le
104
+ * DÉFAUT du schéma à cet endroit, et son type dit ce qui est attendu.
105
+ *
106
+ * ⚠️ **Le type existant ORIENTE, il ne décide pas.** Convertir aveuglément vers
107
+ * le type de la valeur remplacée serait une faille : `trustProxy` a pour défaut
108
+ * `false` mais accepte aussi une CIDR, et `10.0.0.0/8` deviendrait `true`,
109
+ * c'est-à-dire une confiance TOTALE envers les `X-Forwarded-*`. Seuls des
110
+ * littéraux booléens reconnus sont convertis ; tout le reste retombe sur la
111
+ * devinette, qui garde la chaîne.
112
+ *
113
+ * Les cibles NON ambiguës (nombre, tableau, objet, valeur absente) gardent la
114
+ * devinette : elle y est juste, et le CSV → tableau documenté en dépend.
115
+ *
116
+ * @param raw - la chaîne brute de la variable d'environnement.
117
+ * @param existing - la valeur actuellement en place (le défaut du schéma).
118
+ * @returns la valeur à poser.
119
+ */
120
+ function coerceEnvValueLike(raw, existing) {
121
+ const v = raw.trim().toLowerCase();
122
+ if (typeof existing === "boolean") {
123
+ if (BOOLEANS_TRUE.has(v)) return true;
124
+ if (BOOLEANS_FALSE.has(v)) return false;
125
+ return coerceEnvValue(raw);
126
+ }
127
+ if (typeof existing === "string") return raw.trim();
128
+ return coerceEnvValue(raw);
129
+ }
130
+ /**
131
+ * Résout un segment (minuscule) vers la clé réelle d'un objet : match exact
132
+ * d'abord, sinon match insensible à la casse. `null` si aucune clé ne correspond.
133
+ */
134
+ function resolveKey(node, seg) {
135
+ if (seg === "__proto__" || seg === "constructor" || seg === "prototype") return null;
136
+ if (Object.prototype.hasOwnProperty.call(node, seg)) return seg;
137
+ for (const k of Object.keys(node)) if (k.toLowerCase() === seg) return k;
138
+ return null;
139
+ }
140
+ /**
141
+ * Type déclaré par un JSON Schema pour un chemin — `null` si le chemin n'y est
142
+ * pas déclaré, ou si le schéma prend une forme que cette lecture ne comprend pas.
143
+ *
144
+ * **Le schéma dit ce que la VALEUR ignore.** Une clé optionnelle sans défaut
145
+ * n'existe pas dans l'objet de configuration : la résolution par les clés
146
+ * présentes la déclare donc « inconnue » et refuse la surcharge, pour une clé
147
+ * pourtant déclarée, documentée et lue par le code. Ce sont précisément les
148
+ * réglages dont l'ABSENCE est signifiante — ceux que le framework résout par
149
+ * environnement quand on ne les écrit pas — et donc ceux qu'un exploitant a le
150
+ * plus besoin de poser sur une image déjà construite.
151
+ *
152
+ * Le core n'importe PAS zod : chaque module publie son schéma en JSON pur
153
+ * (`Module.configSchema()`), et cette fonction n'y navigue que par `properties`.
154
+ * Toute autre forme — `anyOf`, `$ref`, union — rend `null` : on n'assouplit que
155
+ * ce qu'on COMPREND, et le refus d'aujourd'hui reste le comportement par défaut.
156
+ *
157
+ * @param schema - JSON Schema du module, tel que `Module.configSchema()` le rend.
158
+ * @param path - segments du chemin (minuscules).
159
+ * @returns le `type` JSON Schema de la feuille, `"unknown"` si déclarée sans type, ou `null`.
160
+ */
161
+ function declaredTypeAtPath(schema, path) {
162
+ if (path.length === 0 || schema === null || typeof schema !== "object") return null;
163
+ let node = schema;
164
+ for (let i = 0; i < path.length; i++) {
165
+ const props = node.properties;
166
+ if (props === null || typeof props !== "object") return null;
167
+ const bag = props;
168
+ const key = resolveKey(bag, path[i]);
169
+ if (key === null) return null;
170
+ const next = bag[key];
171
+ if (next === null || typeof next !== "object") return null;
172
+ node = next;
173
+ }
174
+ const t = node.type;
175
+ return typeof t === "string" ? t : "unknown";
176
+ }
177
+ /**
178
+ * Convertit une chaîne d'environnement vers le type que le SCHÉMA déclare.
179
+ *
180
+ * Sert quand la clé est absente de la valeur : il n'y a alors rien à imiter, et
181
+ * {@link coerceEnvValueLike} devinerait — `"1"` deviendrait le nombre `1` là où
182
+ * un booléen est attendu, et le parse du module refuserait une surcharge
183
+ * pourtant correcte.
184
+ *
185
+ * @param raw - la chaîne d'environnement.
186
+ * @param type - le `type` JSON Schema de la feuille.
187
+ * @returns la valeur convertie ; la devinette générique si le type est inconnu.
188
+ */
189
+ function coerceEnvValueForType(raw, type) {
190
+ const t = raw.trim();
191
+ if (type === "string") return t;
192
+ if (type === "boolean") {
193
+ const lowered = t.toLowerCase();
194
+ if (BOOLEANS_TRUE.has(lowered)) return true;
195
+ if (BOOLEANS_FALSE.has(lowered)) return false;
196
+ return t;
197
+ }
198
+ if (type === "number" || type === "integer") {
199
+ const n = Number(t);
200
+ return Number.isNaN(n) ? t : n;
201
+ }
202
+ return coerceEnvValue(t);
203
+ }
204
+ /**
205
+ * Pose `value` dans `target` au `path` donné, en résolvant chaque segment contre
206
+ * les clés EXISTANTES (insensible à la casse). N'altère QUE des chemins déjà
207
+ * présents dans la config (= champs ayant un défaut) — un chemin inconnu n'est pas
208
+ * créé (évite une clé fantôme à la mauvaise casse que le Zod ignorerait
209
+ * silencieusement) : la fonction renvoie alors `false` pour signalement.
210
+ *
211
+ * Quand `raw` est fourni, la valeur posée est RECALCULÉE contre celle qu'elle
212
+ * remplace ({@link coerceEnvValueLike}) : c'est ici, et nulle part ailleurs,
213
+ * qu'on connaît à la fois la chaîne d'origine et le type attendu. Sans `raw`, le
214
+ * comportement est inchangé — aucun appelant existant ne bouge.
215
+ *
216
+ * Quand `schema` est fourni, un chemin ABSENT de la valeur mais DÉCLARÉ par le
217
+ * schéma est créé — c'est le cas d'une clé optionnelle sans défaut, dont
218
+ * l'absence est signifiante et que rien ne permettait de poser jusqu'ici. La
219
+ * garde reste entière pour ce qui n'est ni présent ni déclaré : c'est elle qui
220
+ * empêche une clé fantôme à la mauvaise casse, que le parse du module
221
+ * strippe ensuite SANS un mot.
222
+ *
223
+ * @param target - objet de config du module (muté en place).
224
+ * @param path - segments du chemin (minuscules).
225
+ * @param value - valeur à poser (devinée par {@link coerceEnvValue}).
226
+ * @param raw - la chaîne d'environnement d'origine, quand elle est connue.
227
+ * @param schema - JSON Schema du module ({@link declaredTypeAtPath}), s'il en publie un.
228
+ * @returns `true` si appliqué, `false` si le chemin n'est ni présent ni déclaré.
229
+ */
230
+ function applyResolvedPath(target, path, value, raw, schema) {
231
+ if (path.length === 0) return false;
232
+ const declaredType = schema === void 0 ? null : declaredTypeAtPath(schema, path);
233
+ let node = target;
234
+ for (let i = 0; i < path.length - 1; i++) {
235
+ const key = resolveKey(node, path[i]);
236
+ if (key === null) {
237
+ if (declaredType === null) return false;
238
+ const neuf = {};
239
+ node[path[i]] = neuf;
240
+ node = neuf;
241
+ continue;
242
+ }
243
+ const next = node[key];
244
+ if (typeof next !== "object" || next === null || Array.isArray(next)) return false;
245
+ node = next;
246
+ }
247
+ const leafKey = path[path.length - 1];
248
+ const leaf = resolveKey(node, leafKey);
249
+ if (leaf === null) {
250
+ if (declaredType === null) return false;
251
+ node[leafKey] = raw === void 0 ? value : coerceEnvValueForType(raw, declaredType);
252
+ return true;
253
+ }
254
+ node[leaf] = raw === void 0 ? value : coerceEnvValueLike(raw, node[leaf]);
255
+ return true;
256
+ }
257
+ /**
258
+ * Relit la valeur posée à `path` — la SYMÉTRIQUE de {@link applyResolvedPath}.
259
+ *
260
+ * Sert au journal du boot : depuis que la valeur est convertie contre le type
261
+ * attendu, ce qui est écrit dans la config n'est plus forcément ce que
262
+ * `coerceEnvValue` avait deviné. Journaliser la devinette afficherait
263
+ * `TRUSTPROXY = 1` sur une config qui porte `true` — le genre d'écart qu'on
264
+ * poursuit une heure avant de comprendre qu'il vient du journal.
265
+ *
266
+ * @param target - objet de config du module.
267
+ * @param path - segments du chemin (minuscules).
268
+ * @returns la valeur en place, ou `undefined` si le chemin ne résout pas.
269
+ */
270
+ function readResolvedPath(target, path) {
271
+ if (path.length === 0) return void 0;
272
+ let node = target;
273
+ for (let i = 0; i < path.length - 1; i++) {
274
+ const key = resolveKey(node, path[i]);
275
+ if (key === null) return void 0;
276
+ const next = node[key];
277
+ if (typeof next !== "object" || next === null || Array.isArray(next)) return;
278
+ node = next;
279
+ }
280
+ const leaf = resolveKey(node, path[path.length - 1]);
281
+ return leaf === null ? void 0 : node[leaf];
282
+ }
283
+ /** Heuristique : ce chemin porte-t-il un secret (à rédiger dans les logs) ? */
284
+ function pathLooksSecret(path) {
285
+ return path.some((s) => /secret|password|key|token|credential/i.test(s));
286
+ }
287
+ /**
288
+ * Distance d'édition de Levenshtein entre deux chaînes (2 lignes glissantes, pas
289
+ * de matrice complète). Sert au « did you mean » : proposer la clé la plus proche
290
+ * quand un segment d'override `NF__*` est mal orthographié.
291
+ *
292
+ * @param a - première chaîne.
293
+ * @param b - seconde chaîne.
294
+ * @returns le nombre minimal d'insertions/suppressions/substitutions.
295
+ */
296
+ function editDistance(a, b) {
297
+ const m = a.length;
298
+ const n = b.length;
299
+ if (m === 0) return n;
300
+ if (n === 0) return m;
301
+ let prev = new Array(n + 1);
302
+ let curr = new Array(n + 1);
303
+ for (let j = 0; j <= n; j++) prev[j] = j;
304
+ for (let i = 1; i <= m; i++) {
305
+ curr[0] = i;
306
+ for (let j = 1; j <= n; j++) {
307
+ const cost = a.charCodeAt(i - 1) === b.charCodeAt(j - 1) ? 0 : 1;
308
+ curr[j] = Math.min(prev[j] + 1, curr[j - 1] + 1, prev[j - 1] + cost);
309
+ }
310
+ [prev, curr] = [curr, prev];
311
+ }
312
+ return prev[n];
313
+ }
314
+ /**
315
+ * Parmi `candidates`, renvoie le plus proche de `target` (insensible à la casse)
316
+ * SI la distance d'édition reste plausible (≤ 40 % de la plus longue, plancher 2)
317
+ * — sinon `null` (ne jamais suggérer une correspondance absurde). Calque le « the
318
+ * most similar command is » de git : aide au debug d'un nom de variable d'env mal tapé.
319
+ *
320
+ * @param target - segment fourni par l'utilisateur (issu d'un `NF__…`).
321
+ * @param candidates - clés réelles existantes à comparer.
322
+ * @returns la meilleure suggestion, ou `null` si trop éloignée.
323
+ */
324
+ function closestMatch(target, candidates) {
325
+ const t = target.toLowerCase();
326
+ let best = null;
327
+ let bestD = Infinity;
328
+ for (const c of candidates) {
329
+ const d = editDistance(t, c.toLowerCase());
330
+ if (d < bestD) {
331
+ bestD = d;
332
+ best = c;
333
+ }
334
+ }
335
+ if (best === null) return null;
336
+ const threshold = Math.max(2, Math.floor(Math.max(t.length, best.length) * .4));
337
+ return bestD <= threshold ? best : null;
338
+ }
339
+ /**
340
+ * Rejoue la résolution de `path` contre `target` pour DIAGNOSTIQUER un échec :
341
+ * renvoie le 1ᵉʳ segment qui ne correspond à aucune clé (ou qui traverse un
342
+ * non-objet) + les clés disponibles à ce niveau. `null` si tout résout (pas un
343
+ * échec). Miroir de lecture seule de {@link applyResolvedPath} — ne mute rien.
344
+ *
345
+ * @param target - objet de config du module (non muté).
346
+ * @param path - segments du chemin (minuscules).
347
+ * @returns le détail de l'échec, ou `null` si le chemin résout entièrement.
348
+ */
349
+ function diagnoseResolveFailure(target, path) {
350
+ if (path.length === 0) return null;
351
+ let node = target;
352
+ for (let i = 0; i < path.length; i++) {
353
+ const key = resolveKey(node, path[i]);
354
+ if (key === null) return {
355
+ index: i,
356
+ segment: path[i],
357
+ available: Object.keys(node)
358
+ };
359
+ if (i < path.length - 1) {
360
+ const next = node[key];
361
+ if (typeof next !== "object" || next === null || Array.isArray(next)) return {
362
+ index: i,
363
+ segment: path[i],
364
+ available: Object.keys(node)
365
+ };
366
+ node = next;
367
+ }
368
+ }
369
+ return null;
370
+ }
371
+ /**
372
+ * Clés déclarées par le schéma au niveau `prefix` — vide si le schéma ne dit
373
+ * rien de ce niveau, ou s'il prend une forme que cette lecture ne comprend pas.
374
+ *
375
+ * @param schema - JSON Schema du module, ou `undefined`.
376
+ * @param prefix - segments déjà traversés (minuscules).
377
+ * @returns les noms de propriétés déclarés à ce niveau.
378
+ */
379
+ function declaredKeysAtPath(schema, prefix) {
380
+ if (schema === null || typeof schema !== "object") return [];
381
+ let node = schema;
382
+ for (const seg of prefix) {
383
+ const props = node.properties;
384
+ if (props === null || typeof props !== "object") return [];
385
+ const bag = props;
386
+ const key = resolveKey(bag, seg);
387
+ if (key === null) return [];
388
+ const next = bag[key];
389
+ if (next === null || typeof next !== "object") return [];
390
+ node = next;
391
+ }
392
+ const props = node.properties;
393
+ return props !== null && typeof props === "object" ? Object.keys(props) : [];
394
+ }
395
+ /**
396
+ * Construit le suffixe de message « did you mean » d'un chemin d'override qui n'a
397
+ * pas résolu contre `target` : nomme le segment fautif, propose la clé la plus
398
+ * proche et liste les clés disponibles. Chaîne vide si rien d'exploitable.
399
+ * Partagé par les overrides de MODULE (Kernel) et d'APP (defineConfig).
400
+ *
401
+ * **Les clés DÉCLARÉES comptent autant que les présentes.** Une clé optionnelle
402
+ * sans défaut n'existe pas dans la valeur : ne lister que celle-ci proposerait à
403
+ * l'utilisateur une liste amputée, et lui ferait chercher une faute de frappe
404
+ * dans un nom parfaitement écrit — l'inverse du service qu'un « did you mean »
405
+ * doit rendre.
406
+ *
407
+ * @param target - objet de config cible (lu seul, non muté).
408
+ * @param path - segments du chemin de l'override (minuscules).
409
+ * @param schema - JSON Schema du module, quand il en publie un.
410
+ * @returns un suffixe commençant par ` — …`, ou `""`.
411
+ */
412
+ function resolveFailureHint(target, path, schema) {
413
+ const diag = diagnoseResolveFailure(target, path);
414
+ if (!diag) return "";
415
+ const declaredKeys = declaredKeysAtPath(schema, path.slice(0, diag.index));
416
+ const available = [.../* @__PURE__ */ new Set([...diag.available, ...declaredKeys])].sort();
417
+ if (available.length === 0) return "";
418
+ const suggestion = closestMatch(diag.segment, available);
419
+ const keys = available.join(", ");
420
+ return suggestion ? ` — segment "${diag.segment}" inconnu, vouliez-vous dire « ${suggestion} » ? (clés: ${keys})` : ` — segment "${diag.segment}" inconnu (clés disponibles: ${keys})`;
421
+ }
422
+ //#endregion
423
+ export { applyResolvedPath, closestMatch, coerceEnvValue, coerceEnvValueForType, coerceEnvValueLike, declaredKeysAtPath, declaredTypeAtPath, diagnoseResolveFailure, editDistance, parseNfEnvOverrides, pathLooksSecret, readResolvedPath, resolveFailureHint };
@@ -0,0 +1,163 @@
1
+ //#region src/config/infra.ts
2
+ const SQL_SCHEMES = Object.assign(Object.create(null), {
3
+ sqlite: "sqlite",
4
+ postgres: "postgres",
5
+ postgresql: "postgres",
6
+ mysql: "mysql",
7
+ mariadb: "mysql"
8
+ });
9
+ const MONGO_SCHEMES = /* @__PURE__ */ new Set(["mongodb", "mongodb+srv"]);
10
+ /** Première valeur non vide parmi les clés candidates (préfixe `NF_` prioritaire). */
11
+ function pick(env, keys) {
12
+ for (const key of keys) {
13
+ const value = env[key];
14
+ if (typeof value === "string" && value.length > 0) return value;
15
+ }
16
+ }
17
+ /**
18
+ * Parse l'URL du infra `database` : scheme → famille + dialecte.
19
+ *
20
+ * @throws Error si le scheme n'est pas supporté — fail-loud au boot : une URL
21
+ * de base inconnue ne doit JAMAIS retomber silencieusement sur sqlite.
22
+ */
23
+ function parseDatabaseUrl(url) {
24
+ const sep = url.indexOf(":");
25
+ const scheme = sep > 0 ? url.slice(0, sep).toLowerCase() : "";
26
+ const dialect = scheme ? SQL_SCHEMES[scheme] : void 0;
27
+ if (dialect) return {
28
+ url,
29
+ scheme,
30
+ family: "sql",
31
+ dialect
32
+ };
33
+ if (MONGO_SCHEMES.has(scheme)) return {
34
+ url,
35
+ scheme,
36
+ family: "mongo",
37
+ dialect: null
38
+ };
39
+ throw new Error(`NF_DATABASE_URL : scheme "${scheme || url}" non supporté — attendu sqlite:, postgres://, postgresql://, mysql://, mariadb://, mongodb:// ou mongodb+srv://`);
40
+ }
41
+ /**
42
+ * Fichier SQLite d'une URL `sqlite:` du infra `database`.
43
+ * Formes acceptées : `sqlite::memory:`, `sqlite:./relatif.db`, `sqlite:/abs.db`,
44
+ * `sqlite:///abs.db`. URL vide après le scheme → `:memory:`.
45
+ */
46
+ function sqliteFilenameFromUrl(url) {
47
+ let rest = url.slice(url.indexOf(":") + 1);
48
+ if (rest.startsWith("//")) rest = rest.slice(2);
49
+ return rest.length === 0 ? ":memory:" : rest;
50
+ }
51
+ /**
52
+ * Résout les 3 infra déclarée depuis l'environnement. Fonction PURE
53
+ * (aucun kernel) : consommée par le Kernel (1 fois, mémoïsé), par le contexte
54
+ * `defineConfig` (`ctx.infra`) et par les builders de config des modules
55
+ * adapters (drizzle/mongoose/redis) dans leur couche env.
56
+ *
57
+ * @param env - source d'environnement (défaut `process.env`).
58
+ * @throws Error si l'URL du infra `database` a un scheme non supporté.
59
+ */
60
+ function resolveInfra(env = process.env) {
61
+ const databaseUrl = pick(env, ["NF_DATABASE_URL", "DATABASE_URL"]);
62
+ const cacheUrl = pick(env, ["NF_REDIS_URL", "REDIS_URL"]);
63
+ const lokiUrl = pick(env, ["NF_LOKI_URL"]);
64
+ const opensearchUrl = pick(env, ["NF_OPENSEARCH_URL"]);
65
+ let logs = null;
66
+ if (lokiUrl || opensearchUrl) {
67
+ logs = {};
68
+ if (lokiUrl) logs.lokiUrl = lokiUrl;
69
+ if (opensearchUrl) logs.opensearchUrl = opensearchUrl;
70
+ }
71
+ const forceStore = pick(env, ["NF_STORE"]);
72
+ return {
73
+ database: databaseUrl ? parseDatabaseUrl(databaseUrl) : null,
74
+ cache: cacheUrl ? { url: cacheUrl } : null,
75
+ logs,
76
+ forceStore: forceStore ?? null
77
+ };
78
+ }
79
+ /** Sentinelle des champs `store` : « laisser le framework choisir selon l'infra déclarée ». */
80
+ const AUTO_STORE = "auto";
81
+ /** Infra vide (rien de déclaré) — fallback sûr quand le kernel est absent (tests). */
82
+ const EMPTY_INFRA = Object.freeze({
83
+ database: null,
84
+ cache: null,
85
+ logs: null
86
+ });
87
+ /**
88
+ * Résout la sentinelle `"auto"` d'une brique en nom de backend, borné aux
89
+ * backends RÉELLEMENT enregistrés (`available` = `listXStores()` du registre —
90
+ * reflète l'auto-register des adapters chargés). Couverture partielle d'une infra
91
+ * (ex. audit sans impl mongoose) → repli `fallback` avec raison ANNONCÉE,
92
+ * jamais d'échec : le principe « fallback annoncé, pas de dégradation
93
+ * silencieuse » vit dans la raison retournée, que l'appelant DOIT logger.
94
+ *
95
+ * @param kind - nature de la donnée ({@link StoreKind}).
96
+ * @param infra - infra résolue ({@link resolveInfra}).
97
+ * @param available - backends enregistrés dans le registre de la brique.
98
+ * @param fallback - backend de repli (défaut `"memory"` — c'est aussi ce que passe
99
+ * le service de session : aucun appelant ne demande un autre repli).
100
+ */
101
+ function resolveAutoStore(kind, infra, available, fallback = "memory") {
102
+ if (infra.forceStore && available.includes(infra.forceStore)) return {
103
+ store: infra.forceStore,
104
+ reason: `NF_STORE=${infra.forceStore} (override global — banc de charge)`
105
+ };
106
+ const preferences = [];
107
+ if (kind !== "durable" && infra.cache) preferences.push({
108
+ store: "redis",
109
+ reason: "infra cache (NF_REDIS_URL)"
110
+ });
111
+ if (infra.database) {
112
+ const store = infra.database.family === "mongo" ? "mongoose" : "drizzle";
113
+ preferences.push({
114
+ store,
115
+ reason: `infra database (${infra.database.scheme})`
116
+ });
117
+ }
118
+ for (const preference of preferences) if (available.includes(preference.store)) return preference;
119
+ if (preferences.length > 0) return {
120
+ store: fallback,
121
+ reason: `backend d'infra ${preferences.map((p) => p.store).join("/")} indisponible sur cette brique (enregistrés : ${available.join(", ") || "aucun"}) — repli "${fallback}"`
122
+ };
123
+ for (const local of ["drizzle", "mongoose"]) if (available.includes(local)) return {
124
+ store: local,
125
+ reason: `aucune infra déclarée — backend local persistant "${local}" (mono-nœud)`
126
+ };
127
+ return {
128
+ store: fallback,
129
+ reason: `aucune infra déclarée, aucun backend persistant chargé — repli "${fallback}"` + (fallback === "memory" ? " (volatil)" : "")
130
+ };
131
+ }
132
+ /**
133
+ * Déduit le nom court du backend d'un store à partir de la classe concrète de
134
+ * son instance (convention de nommage `<Backend>XxxStore` → `drizzle`, `mongoose`,
135
+ * `redis`, `memory`, `file`). Sert à retrouver le backend RÉEL d'un adapter posé
136
+ * au container quand la brique a été résolue en `"auto"` (l'adapter court-circuite
137
+ * la fabrique nommée). Classe non reconnue → nom de classe brut (honnête).
138
+ *
139
+ * @param store - instance de store (lue défensivement — seul `constructor.name`).
140
+ * @returns nom court du backend, ou `"inconnu"` si l'instance n'expose pas de classe.
141
+ */
142
+ function deriveStoreBackend(store) {
143
+ const name = store?.constructor?.name;
144
+ if (!name) return "inconnu";
145
+ const match = /^(Drizzle|Mongoose|Redis|Memory|File)/.exec(name);
146
+ return match ? match[1].toLowerCase() : name;
147
+ }
148
+ /**
149
+ * Lit l'emplacement PHYSIQUE d'un store depuis son instance (getter public
150
+ * `location`), pour l'écran Studio « Stores » — répond à « où mes données sont-elles
151
+ * écrites ? ». Un store fichier (passkeys, TOTP, sessions) expose le chemin de son
152
+ * fichier/dossier ; un store `memory` ou un backend réseau (drizzle/redis/mongoose)
153
+ * n'expose rien → `undefined` (l'UI dérive « en mémoire » ou renvoie à l'infra).
154
+ *
155
+ * @param store - instance de store (lue défensivement — seul un getter `location` string).
156
+ * @returns chemin lisible, ou `undefined` si le store n'expose pas d'emplacement.
157
+ */
158
+ function readStoreLocation(store) {
159
+ const location = store?.location;
160
+ return typeof location === "string" && location.length > 0 ? location : void 0;
161
+ }
162
+ //#endregion
163
+ export { AUTO_STORE, EMPTY_INFRA, deriveStoreBackend, parseDatabaseUrl, readStoreLocation, resolveAutoStore, resolveInfra, sqliteFilenameFromUrl };
@@ -0,0 +1,23 @@
1
+ //#region src/config/reactivity.ts
2
+ /**
3
+ * Champs applicables À CHAUD (chemin en dot-notation). Tout champ absent est `boot`.
4
+ *
5
+ * `log.active` / `log.debug` / `log.requestFormat` = exactement le cadre de la
6
+ * « fenêtre d'audit » (élever la verbosité prod temporairement sans reboot).
7
+ */
8
+ const configReactivity = {
9
+ "log.active": "hot",
10
+ "log.debug": "hot",
11
+ "log.requestFormat": "hot"
12
+ };
13
+ /**
14
+ * Réactivité d'un champ par son chemin dot-notation ; `boot` par défaut (sûr).
15
+ *
16
+ * @param path - chemin du champ, ex. `"log.debug"` ou `"servers.http.port"`.
17
+ * @returns `"hot"` si le champ peut s'appliquer à chaud, sinon `"boot"`.
18
+ */
19
+ function getConfigReactivity(path) {
20
+ return configReactivity[path] ?? "boot";
21
+ }
22
+ //#endregion
23
+ export { configReactivity, getConfigReactivity };