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,170 @@
1
+ import { z } from "zod";
2
+ /** Nature coercée d'une variable d'env du catalogue. */
3
+ export type EnvVarKind = "string" | "number" | "boolean" | "enum";
4
+ /**
5
+ * Métadonnées INTROSPECTABLES d'une variable du catalogue — capturées à la
6
+ * déclaration (le défaut serait sinon piégé dans la closure `z.preprocess`).
7
+ * Portées par le schéma Zod (clé non-énumérable) puis agrégées par `defineEnv`
8
+ * sur l'objet `env` retourné → alimentent la génération de `.env.example`.
9
+ */
10
+ export interface EnvVarMeta {
11
+ /** Nature coercée (`string`/`number`/`boolean`/`enum`). */
12
+ readonly kind: EnvVarKind;
13
+ /** La variable peut-elle être absente (→ `undefined`) ? */
14
+ readonly optional: boolean;
15
+ /** Valeur par défaut déclarée (`undefined` si aucune). */
16
+ readonly default?: unknown;
17
+ /** Doc (`.describe()`), reprise telle quelle dans `.env.example`. */
18
+ readonly description?: string;
19
+ /** Valeurs autorisées (enum uniquement). */
20
+ readonly values?: readonly string[];
21
+ /**
22
+ * Environnements où la variable est REQUISE, même déclarée `optional`.
23
+ *
24
+ * Une variable requise « en production seulement » n'existait pas dans cette
25
+ * grammaire : on la déclarait `optional` — vrai sur le poste de développement,
26
+ * faux là où ça compte — et rien ne le disait avant le déploiement. Le cas
27
+ * n'est pas théorique : les secrets absents sont GÉNÉRÉS à la volée en
28
+ * développement, si bien qu'un secret éphémère en cluster fait refuser par un
29
+ * pod le jeton qu'un autre vient d'émettre, sans le moindre message.
30
+ *
31
+ * Les noms sont libres (`"production"`, `"staging"`, un environnement maison) :
32
+ * ils se comparent aux étiquettes de l'environnement courant, cf
33
+ * {@link resolveEnvStages}.
34
+ */
35
+ readonly requiredIn?: readonly string[];
36
+ }
37
+ /** {@link EnvVarMeta} + le nom de la variable (clé du catalogue). */
38
+ export interface NamedEnvVarMeta extends EnvVarMeta {
39
+ readonly name: string;
40
+ }
41
+ /**
42
+ * Catalogue introspectable des variables déclarées par {@link defineEnv}, lu sur
43
+ * l'objet `env` retourné. Source unique pour générer `.env.example` (anti-dérive).
44
+ *
45
+ * @param env - l'objet retourné par `defineEnv` (catalogue de l'app).
46
+ * @returns la liste ordonnée des métadonnées par variable (vide si non reconnu).
47
+ */
48
+ export declare function getEnvCatalog(env: unknown): readonly NamedEnvVarMeta[];
49
+ interface BaseOpts {
50
+ /** Doc de la variable (attachée via `.describe()` → introspection Studio). */
51
+ description?: string;
52
+ /**
53
+ * Environnements où la variable devient REQUISE (`["production"]`).
54
+ *
55
+ * Elle reste `optional` partout ailleurs : le poste de développement démarre
56
+ * sans elle, le déploiement visé refuse de démarrer sans elle, et
57
+ * `nodefony doctor --env production` la nomme avant qu'on y aille.
58
+ */
59
+ requiredIn?: readonly string[];
60
+ }
61
+ interface StrOpts extends BaseOpts {
62
+ /** Valeur par défaut si la variable est absente. */
63
+ default?: string;
64
+ /** Autorise l'absence (résultat `undefined`) — sinon variable requise. */
65
+ optional?: boolean;
66
+ }
67
+ interface NumOpts extends BaseOpts {
68
+ default?: number;
69
+ optional?: boolean;
70
+ }
71
+ interface BoolOpts extends BaseOpts {
72
+ /** Valeur par défaut si absente (défaut : `false`). */
73
+ default?: boolean;
74
+ }
75
+ interface EnumOpts<T extends string> extends BaseOpts {
76
+ default?: T;
77
+ optional?: boolean;
78
+ }
79
+ /**
80
+ * Variable d'env STRING. Avec `default` → toujours présente ; `optional:true` →
81
+ * `string | undefined` ; sinon requise (absente → erreur au boot).
82
+ */
83
+ export declare function envString(opts: StrOpts & {
84
+ optional: true;
85
+ }): z.ZodType<string | undefined>;
86
+ export declare function envString(opts?: StrOpts): z.ZodType<string>;
87
+ /**
88
+ * Variable d'env NUMBER (coercée). Valeur non numérique → erreur au boot.
89
+ */
90
+ export declare function envNumber(opts: NumOpts & {
91
+ optional: true;
92
+ }): z.ZodType<number | undefined>;
93
+ export declare function envNumber(opts?: NumOpts): z.ZodType<number>;
94
+ /**
95
+ * Variable d'env BOOLEAN 12-factor : `1/true/yes/on` → true, `0/false/no/off` →
96
+ * false (insensible à la casse). Absente → `default` (défaut `false`). Valeur hors
97
+ * de ces ensembles → erreur au boot (typo détectée, ex. `tru`).
98
+ */
99
+ export declare function envBoolean(opts?: BoolOpts): z.ZodType<boolean>;
100
+ /**
101
+ * Variable d'env ENUM (ensemble fermé). Valeur hors liste → erreur au boot.
102
+ * Le type littéral est préservé (`env.X` typé sur l'union exacte).
103
+ */
104
+ export declare function envEnum<T extends readonly [string, ...string[]]>(values: T, opts: EnumOpts<T[number]> & {
105
+ optional: true;
106
+ }): z.ZodType<T[number] | undefined>;
107
+ export declare function envEnum<T extends readonly [string, ...string[]]>(values: T, opts?: EnumOpts<T[number]>): z.ZodType<T[number]>;
108
+ /**
109
+ * Les ÉTIQUETTES de l'environnement décrit par une source de variables.
110
+ *
111
+ * Deux notions cohabitent et ne se confondent pas : le MODE d'exécution
112
+ * (`NODE_ENV`, que Node et les outils lisent) et l'environnement de DÉPLOIEMENT
113
+ * (`NF_ENV`, ou l'alias de plateforme `APP_ENV`), qui distingue une préproduction
114
+ * d'une production alors que les deux tournent en `production`. Une variable
115
+ * requise « en preprod » doit donc pouvoir viser l'un ou l'autre — on rend les
116
+ * DEUX étiquettes plutôt que d'en élire une, et `requiredIn` mord si l'une
117
+ * d'elles correspond.
118
+ *
119
+ * Fonction PURE : la source est injectée, jamais `process.env` lu ici — c'est ce
120
+ * qui la rend éprouvable ailleurs que dans l'environnement où elle tourne.
121
+ *
122
+ * @param source - la source de variables (`process.env`, ou une source de test).
123
+ * @returns les étiquettes, sans doublon (`["production"]`, `["production", "preprod"]`).
124
+ */
125
+ export declare function resolveEnvStages(source: Record<string, string | undefined>): readonly string[];
126
+ /**
127
+ * `true` si la variable est REQUISE dans l'environnement décrit par `stages`.
128
+ *
129
+ * Le « ou » est volontaire : une variable sans défaut et non optionnelle est
130
+ * requise PARTOUT (grammaire d'origine) ; `requiredIn` n'ajoute une exigence
131
+ * que là où elle est nommée.
132
+ *
133
+ * 🔴 Une seule implémentation, et c'est tout l'enjeu du ticket : le boot
134
+ * (`defineEnv`), le rapport (`nodefony env`) et le diagnostic (`nodefony doctor
135
+ * --env production`) lisent CETTE fonction. Deux copies de la règle
136
+ * divergeraient au premier cas particulier, chacune en passant ses propres
137
+ * tests — le défaut que ce dépôt a déjà payé plusieurs fois.
138
+ *
139
+ * @param meta - les métadonnées de la variable.
140
+ * @param stages - les étiquettes de l'environnement visé (cf {@link resolveEnvStages}).
141
+ * @returns `true` si son absence doit être signalée dans cet environnement.
142
+ */
143
+ export declare function isEnvVarRequired(meta: Pick<EnvVarMeta, "optional" | "default" | "requiredIn">, stages: readonly string[]): boolean;
144
+ /**
145
+ * L'exigence qui vient de `requiredIn` SEULE — sans la règle d'origine.
146
+ *
147
+ * Séparée parce que les deux exigences ne se rapportent pas de la même façon :
148
+ * une variable requise partout absente est déjà rejetée par le schéma, avec le
149
+ * bon message ; une variable requise par l'ENVIRONNEMENT mérite le sien, qui
150
+ * nomme cet environnement. Les confondre ferait dire « requise en production »
151
+ * d'une variable qui l'était de toute façon.
152
+ *
153
+ * @param meta - les métadonnées de la variable.
154
+ * @param stages - les étiquettes de l'environnement visé.
155
+ * @returns `true` si l'exigence vient de l'environnement.
156
+ */
157
+ export declare function isRequiredByStage(meta: Pick<EnvVarMeta, "requiredIn">, stages: readonly string[]): boolean;
158
+ /**
159
+ * Lit + valide un catalogue de variables d'environnement, une fois, au boot.
160
+ *
161
+ * @typeParam M - map `{ NOM_VAR: <helper env> }`.
162
+ * @param catalog - déclaration des variables (clé = nom de la variable d'env).
163
+ * @param source - source des valeurs (défaut `process.env` ; injectable pour les tests).
164
+ * @returns objet **figé** + typé : `{ [NOM]: valeur coercée }`.
165
+ * @throws Error (message agrégé nommant chaque variable fautive) si invalide.
166
+ */
167
+ export declare function defineEnv<M extends Record<string, z.ZodTypeAny>>(catalog: M, source?: Record<string, string | undefined>): {
168
+ readonly [K in keyof M]: z.infer<M[K]>;
169
+ };
170
+ export {};
@@ -0,0 +1,23 @@
1
+ /**
2
+ * Générateur de `.env.example` depuis le catalogue introspectable `defineEnv`
3
+ * (ADR-0006 — une seule source de vérité). Pur : prend les métadonnées
4
+ * ({@link NamedEnvVarMeta} via `getEnvCatalog`) et rend le modèle d'onboarding —
5
+ * toutes les variables COMMENTÉES (un `.example` ne pose rien, il documente).
6
+ *
7
+ * Anti-dérive : `env.ts` (le catalogue) est la SEULE liste de variables,
8
+ * `.env.example` en est DÉRIVÉ. La commande `nodefony env --example` écrit le
9
+ * fichier (en-tête curé possible : `.env.example.head`) ; son `--check` échoue
10
+ * si le fichier diverge du catalogue — pre-commit, CI.
11
+ */
12
+ import type { NamedEnvVarMeta } from "./defineEnv.js";
13
+ /**
14
+ * Rend le contenu complet de `.env.example` depuis le catalogue.
15
+ *
16
+ * @param catalog - métadonnées des variables (via `getEnvCatalog(env)`).
17
+ * @param opts.header - en-tête d'onboarding curé (préambule + précédence), placé en
18
+ * tête tel quel. Le corps (les variables) est, lui, entièrement dérivé.
19
+ * @returns le texte du fichier (terminé par un seul saut de ligne).
20
+ */
21
+ export declare function renderEnvExample(catalog: readonly NamedEnvVarMeta[], opts?: {
22
+ header?: string;
23
+ }): string;
@@ -0,0 +1,236 @@
1
+ /**
2
+ * Override générique de configuration par variable d'environnement (ADR-0006 D3).
3
+ *
4
+ * Forme : `NF__<MODULE>__<CHEMIN…>=valeur`. Le **double underscore `__`** sépare
5
+ * les niveaux (choix .NET Core / Docker — explicite, sans ambiguïté avec le
6
+ * camelCase). Le 1ᵉʳ segment = le module (`SECURITY` → `@nodefony/security`), les
7
+ * suivants = le chemin dans sa config. Les segments sont **insensibles à la casse**
8
+ * et résolus contre les clés RÉELLES de la config (`ACCESSTTLS` → `accessTtlS`).
9
+ *
10
+ * Précédence (cf ADR-0006 D5) : appliqué APRÈS le merge de l'app (`use()` /
11
+ * `module-<name>`) et AVANT la validation Zod du module → le schéma valide/rejette
12
+ * la valeur surchargée (fail-closed). Résolu **1× au boot** (hors hot path).
13
+ *
14
+ * @example
15
+ * ```bash
16
+ * NF__SECURITY__JWT__ACCESSTTLS=300
17
+ * NF__HTTP__SERVERS__HTTPS__PORT=8443
18
+ * NF__SECURITY__CORS__ORIGINS=https://a.com,https://b.com # CSV → array
19
+ * ```
20
+ */
21
+ /** Un override d'environnement résolu (issu d'une variable `NF__…`). */
22
+ export interface NfEnvOverride {
23
+ /** Variable d'env d'origine (ex. `NF__SECURITY__JWT__ACCESSTTLS`). */
24
+ readonly envKey: string;
25
+ /** Segment module normalisé minuscule (ex. `security`). */
26
+ readonly moduleSeg: string;
27
+ /** Chemin dans la config du module, segments minuscules (ex. `["jwt","accessttls"]`). */
28
+ readonly path: string[];
29
+ /** Valeur coercée (booléen / nombre / tableau CSV / objet JSON / chaîne). */
30
+ readonly value: unknown;
31
+ /**
32
+ * La chaîne BRUTE, telle que l'environnement la porte.
33
+ *
34
+ * Gardée parce que {@link coerceEnvValue} devine le type sans connaître la
35
+ * cible : au moment d'APPLIQUER l'override, la config remplacée révèle le type
36
+ * attendu, et seule la chaîne d'origine permet alors de convertir juste
37
+ * ({@link coerceEnvValueLike}). Sans elle, `"1"` était perdu en `Number(1)`
38
+ * avant même qu'on sache qu'une clé booléenne l'attendait.
39
+ */
40
+ readonly raw: string;
41
+ }
42
+ /**
43
+ * Coerce une valeur d'environnement (toujours une chaîne) vers son type probable.
44
+ *
45
+ * Coercion **explicite** (le piège `z.coerce.boolean("false") === true` est évité) :
46
+ * `"true"/"false"` → booléen ; entier/décimal → nombre ; `[…]`/`{…}` → JSON ;
47
+ * une chaîne contenant `,` → tableau de chaînes (CSV) ; sinon la chaîne brute.
48
+ *
49
+ * @param raw - valeur brute de la variable d'environnement.
50
+ * @returns la valeur typée.
51
+ */
52
+ export declare function coerceEnvValue(raw: string): unknown;
53
+ /**
54
+ * Scanne `env` et extrait tous les overrides `NF__<MODULE>__<CHEMIN…>`.
55
+ *
56
+ * Ignore les clés sans au moins un module + un champ (`NF__X` seul), et les
57
+ * valeurs `undefined`. Ne touche PAS `env` (lecture seule).
58
+ *
59
+ * @param env - source d'environnement (typiquement `process.env`).
60
+ * @returns la liste des overrides résolus (vide si aucun).
61
+ */
62
+ export declare function parseNfEnvOverrides(env: NodeJS.ProcessEnv): NfEnvOverride[];
63
+ /**
64
+ * La valeur d'environnement convertie vers le type de ce qu'elle REMPLACE.
65
+ *
66
+ * Une variable d'environnement est toujours une chaîne ; seul le schéma sait ce
67
+ * qu'il attend. {@link coerceEnvValue} devine sans lui, et sa devinette rendait
68
+ * un type FAUX que la validation Zod refusait ensuite : `NF__HTTP__TRUSTPROXY=1`
69
+ * donnait `Number(1)`, qu'aucun membre de `z.union([boolean, string, array])`
70
+ * n'accepte — une variable DOCUMENTÉE faisait échouer le boot, à rebours du
71
+ * 12-factor que l'ADR-0006 revendique.
72
+ *
73
+ * L'information manquante est pourtant à portée : la config porte déjà le
74
+ * DÉFAUT du schéma à cet endroit, et son type dit ce qui est attendu.
75
+ *
76
+ * ⚠️ **Le type existant ORIENTE, il ne décide pas.** Convertir aveuglément vers
77
+ * le type de la valeur remplacée serait une faille : `trustProxy` a pour défaut
78
+ * `false` mais accepte aussi une CIDR, et `10.0.0.0/8` deviendrait `true`,
79
+ * c'est-à-dire une confiance TOTALE envers les `X-Forwarded-*`. Seuls des
80
+ * littéraux booléens reconnus sont convertis ; tout le reste retombe sur la
81
+ * devinette, qui garde la chaîne.
82
+ *
83
+ * Les cibles NON ambiguës (nombre, tableau, objet, valeur absente) gardent la
84
+ * devinette : elle y est juste, et le CSV → tableau documenté en dépend.
85
+ *
86
+ * @param raw - la chaîne brute de la variable d'environnement.
87
+ * @param existing - la valeur actuellement en place (le défaut du schéma).
88
+ * @returns la valeur à poser.
89
+ */
90
+ export declare function coerceEnvValueLike(raw: string, existing: unknown): unknown;
91
+ /**
92
+ * Type déclaré par un JSON Schema pour un chemin — `null` si le chemin n'y est
93
+ * pas déclaré, ou si le schéma prend une forme que cette lecture ne comprend pas.
94
+ *
95
+ * **Le schéma dit ce que la VALEUR ignore.** Une clé optionnelle sans défaut
96
+ * n'existe pas dans l'objet de configuration : la résolution par les clés
97
+ * présentes la déclare donc « inconnue » et refuse la surcharge, pour une clé
98
+ * pourtant déclarée, documentée et lue par le code. Ce sont précisément les
99
+ * réglages dont l'ABSENCE est signifiante — ceux que le framework résout par
100
+ * environnement quand on ne les écrit pas — et donc ceux qu'un exploitant a le
101
+ * plus besoin de poser sur une image déjà construite.
102
+ *
103
+ * Le core n'importe PAS zod : chaque module publie son schéma en JSON pur
104
+ * (`Module.configSchema()`), et cette fonction n'y navigue que par `properties`.
105
+ * Toute autre forme — `anyOf`, `$ref`, union — rend `null` : on n'assouplit que
106
+ * ce qu'on COMPREND, et le refus d'aujourd'hui reste le comportement par défaut.
107
+ *
108
+ * @param schema - JSON Schema du module, tel que `Module.configSchema()` le rend.
109
+ * @param path - segments du chemin (minuscules).
110
+ * @returns le `type` JSON Schema de la feuille, `"unknown"` si déclarée sans type, ou `null`.
111
+ */
112
+ export declare function declaredTypeAtPath(schema: unknown, path: string[]): string | null;
113
+ /**
114
+ * Convertit une chaîne d'environnement vers le type que le SCHÉMA déclare.
115
+ *
116
+ * Sert quand la clé est absente de la valeur : il n'y a alors rien à imiter, et
117
+ * {@link coerceEnvValueLike} devinerait — `"1"` deviendrait le nombre `1` là où
118
+ * un booléen est attendu, et le parse du module refuserait une surcharge
119
+ * pourtant correcte.
120
+ *
121
+ * @param raw - la chaîne d'environnement.
122
+ * @param type - le `type` JSON Schema de la feuille.
123
+ * @returns la valeur convertie ; la devinette générique si le type est inconnu.
124
+ */
125
+ export declare function coerceEnvValueForType(raw: string, type: string): unknown;
126
+ /**
127
+ * Pose `value` dans `target` au `path` donné, en résolvant chaque segment contre
128
+ * les clés EXISTANTES (insensible à la casse). N'altère QUE des chemins déjà
129
+ * présents dans la config (= champs ayant un défaut) — un chemin inconnu n'est pas
130
+ * créé (évite une clé fantôme à la mauvaise casse que le Zod ignorerait
131
+ * silencieusement) : la fonction renvoie alors `false` pour signalement.
132
+ *
133
+ * Quand `raw` est fourni, la valeur posée est RECALCULÉE contre celle qu'elle
134
+ * remplace ({@link coerceEnvValueLike}) : c'est ici, et nulle part ailleurs,
135
+ * qu'on connaît à la fois la chaîne d'origine et le type attendu. Sans `raw`, le
136
+ * comportement est inchangé — aucun appelant existant ne bouge.
137
+ *
138
+ * Quand `schema` est fourni, un chemin ABSENT de la valeur mais DÉCLARÉ par le
139
+ * schéma est créé — c'est le cas d'une clé optionnelle sans défaut, dont
140
+ * l'absence est signifiante et que rien ne permettait de poser jusqu'ici. La
141
+ * garde reste entière pour ce qui n'est ni présent ni déclaré : c'est elle qui
142
+ * empêche une clé fantôme à la mauvaise casse, que le parse du module
143
+ * strippe ensuite SANS un mot.
144
+ *
145
+ * @param target - objet de config du module (muté en place).
146
+ * @param path - segments du chemin (minuscules).
147
+ * @param value - valeur à poser (devinée par {@link coerceEnvValue}).
148
+ * @param raw - la chaîne d'environnement d'origine, quand elle est connue.
149
+ * @param schema - JSON Schema du module ({@link declaredTypeAtPath}), s'il en publie un.
150
+ * @returns `true` si appliqué, `false` si le chemin n'est ni présent ni déclaré.
151
+ */
152
+ export declare function applyResolvedPath(target: Record<string, unknown>, path: string[], value: unknown, raw?: string, schema?: unknown): boolean;
153
+ /**
154
+ * Relit la valeur posée à `path` — la SYMÉTRIQUE de {@link applyResolvedPath}.
155
+ *
156
+ * Sert au journal du boot : depuis que la valeur est convertie contre le type
157
+ * attendu, ce qui est écrit dans la config n'est plus forcément ce que
158
+ * `coerceEnvValue` avait deviné. Journaliser la devinette afficherait
159
+ * `TRUSTPROXY = 1` sur une config qui porte `true` — le genre d'écart qu'on
160
+ * poursuit une heure avant de comprendre qu'il vient du journal.
161
+ *
162
+ * @param target - objet de config du module.
163
+ * @param path - segments du chemin (minuscules).
164
+ * @returns la valeur en place, ou `undefined` si le chemin ne résout pas.
165
+ */
166
+ export declare function readResolvedPath(target: Record<string, unknown>, path: string[]): unknown;
167
+ /** Heuristique : ce chemin porte-t-il un secret (à rédiger dans les logs) ? */
168
+ export declare function pathLooksSecret(path: string[]): boolean;
169
+ /**
170
+ * Distance d'édition de Levenshtein entre deux chaînes (2 lignes glissantes, pas
171
+ * de matrice complète). Sert au « did you mean » : proposer la clé la plus proche
172
+ * quand un segment d'override `NF__*` est mal orthographié.
173
+ *
174
+ * @param a - première chaîne.
175
+ * @param b - seconde chaîne.
176
+ * @returns le nombre minimal d'insertions/suppressions/substitutions.
177
+ */
178
+ export declare function editDistance(a: string, b: string): number;
179
+ /**
180
+ * Parmi `candidates`, renvoie le plus proche de `target` (insensible à la casse)
181
+ * SI la distance d'édition reste plausible (≤ 40 % de la plus longue, plancher 2)
182
+ * — sinon `null` (ne jamais suggérer une correspondance absurde). Calque le « the
183
+ * most similar command is » de git : aide au debug d'un nom de variable d'env mal tapé.
184
+ *
185
+ * @param target - segment fourni par l'utilisateur (issu d'un `NF__…`).
186
+ * @param candidates - clés réelles existantes à comparer.
187
+ * @returns la meilleure suggestion, ou `null` si trop éloignée.
188
+ */
189
+ export declare function closestMatch(target: string, candidates: string[]): string | null;
190
+ /** Échec de résolution d'un chemin d'override : où ça a cassé + ce qui existait. */
191
+ export interface ResolveFailure {
192
+ /** Index (dans `path`) du segment qui n'a pas résolu. */
193
+ readonly index: number;
194
+ /** Segment fautif (minuscule, tel que fourni). */
195
+ readonly segment: string;
196
+ /** Clés réelles disponibles au niveau où la résolution a échoué. */
197
+ readonly available: string[];
198
+ }
199
+ /**
200
+ * Rejoue la résolution de `path` contre `target` pour DIAGNOSTIQUER un échec :
201
+ * renvoie le 1ᵉʳ segment qui ne correspond à aucune clé (ou qui traverse un
202
+ * non-objet) + les clés disponibles à ce niveau. `null` si tout résout (pas un
203
+ * échec). Miroir de lecture seule de {@link applyResolvedPath} — ne mute rien.
204
+ *
205
+ * @param target - objet de config du module (non muté).
206
+ * @param path - segments du chemin (minuscules).
207
+ * @returns le détail de l'échec, ou `null` si le chemin résout entièrement.
208
+ */
209
+ export declare function diagnoseResolveFailure(target: Record<string, unknown>, path: string[]): ResolveFailure | null;
210
+ /**
211
+ * Clés déclarées par le schéma au niveau `prefix` — vide si le schéma ne dit
212
+ * rien de ce niveau, ou s'il prend une forme que cette lecture ne comprend pas.
213
+ *
214
+ * @param schema - JSON Schema du module, ou `undefined`.
215
+ * @param prefix - segments déjà traversés (minuscules).
216
+ * @returns les noms de propriétés déclarés à ce niveau.
217
+ */
218
+ export declare function declaredKeysAtPath(schema: unknown, prefix: string[]): string[];
219
+ /**
220
+ * Construit le suffixe de message « did you mean » d'un chemin d'override qui n'a
221
+ * pas résolu contre `target` : nomme le segment fautif, propose la clé la plus
222
+ * proche et liste les clés disponibles. Chaîne vide si rien d'exploitable.
223
+ * Partagé par les overrides de MODULE (Kernel) et d'APP (defineConfig).
224
+ *
225
+ * **Les clés DÉCLARÉES comptent autant que les présentes.** Une clé optionnelle
226
+ * sans défaut n'existe pas dans la valeur : ne lister que celle-ci proposerait à
227
+ * l'utilisateur une liste amputée, et lui ferait chercher une faute de frappe
228
+ * dans un nom parfaitement écrit — l'inverse du service qu'un « did you mean »
229
+ * doit rendre.
230
+ *
231
+ * @param target - objet de config cible (lu seul, non muté).
232
+ * @param path - segments du chemin de l'override (minuscules).
233
+ * @param schema - JSON Schema du module, quand il en publie un.
234
+ * @returns un suffixe commençant par ` — …`, ou `""`.
235
+ */
236
+ export declare function resolveFailureHint(target: Record<string, unknown>, path: string[], schema?: unknown): string;
@@ -0,0 +1,23 @@
1
+ /**
2
+ * Barrel du moteur de configuration `defineConfig` (back-only, D1).
3
+ * Ré-exporté par le barrel node `src/index.ts` → `import { defineConfig } from "nodefony"`.
4
+ */
5
+ export { defineConfig, isConfigDescriptor } from "./defineConfig.js";
6
+ export type { AppConfigDescriptor } from "./defineConfig.js";
7
+ export { use } from "./use.js";
8
+ export type { NodefonyModuleConfig, ConfigOf, UseOptions } from "./use.js";
9
+ export { defineEnv, envString, envNumber, envBoolean, envEnum, getEnvCatalog, } from "./defineEnv.js";
10
+ export type { EnvVarKind, EnvVarMeta, NamedEnvVarMeta } from "./defineEnv.js";
11
+ export { renderEnvExample } from "./envExample.js";
12
+ export { defaultAppConfig } from "./defaults.js";
13
+ export { parseNfEnvOverrides } from "./envOverride.js";
14
+ export type { NfEnvOverride } from "./envOverride.js";
15
+ export { computeConfigProvenance, extractJsonSchemaDefaults, } from "./configProvenance.js";
16
+ export type { ConfigOrigin } from "./configProvenance.js";
17
+ export { appConfigSchema, appConfigJsonSchema, validateAppConfig, } from "./schema.js";
18
+ export type { AppConfig } from "./schema.js";
19
+ export { resolveInfra, resolveAutoStore, readStoreLocation, parseDatabaseUrl, sqliteFilenameFromUrl, AUTO_STORE, EMPTY_INFRA, } from "./infra.js";
20
+ export type { IInfra, IInfraDatabase, IInfraCache, IInfraLogs, IAutoStoreResolution, InfraSqlDialect, DatabaseFamily, StoreKind, InfraEnvSource, } from "./infra.js";
21
+ export { configReactivity, getConfigReactivity } from "./reactivity.js";
22
+ export type { Reactivity } from "./reactivity.js";
23
+ export type { AppConfigInput, ResolvedAppConfig, ConfigInput, ConfigContext, KnownModule, ModuleEntryInput, ModuleManifestInput, AppMeta, ServersConfig, HttpServerConfig, HttpsServerConfig, LogConfig, LogFileConfig, LogDestinationConfig, } from "./types.js";
@@ -0,0 +1,171 @@
1
+ /**
2
+ * Résolution de l'INFRA DÉCLARÉE depuis l'environnement (modèle « infra déclarée »).
3
+ *
4
+ * L'utilisateur ne configure pas chaque brique : il déclare son infra via des
5
+ * URLs (pattern Rails/Django/Symfony) :
6
+ * - `NF_DATABASE_URL` (alias plateforme `DATABASE_URL`) → infra `database` (durable)
7
+ * - `NF_REDIS_URL` (alias plateforme `REDIS_URL`) → infra `cache` (éphémère partagé)
8
+ * - `NF_LOKI_URL` / `NF_OPENSEARCH_URL` → infra `logs` (relecture backplane)
9
+ *
10
+ * Les briques dont le store vaut `"auto"` sont résolues par l'infra déclarée
11
+ * ({@link resolveAutoStore}) ; une valeur explicite gagne toujours (moindre
12
+ * surprise, 12-factor). Aucune cascade runtime implicite : charger un module
13
+ * ne déplace jamais une brique — seule la déclaration d'infra le fait.
14
+ */
15
+ /** Dialecte SQL déduit du scheme de l'URL du infra `database`. */
16
+ export type InfraSqlDialect = "sqlite" | "postgres" | "mysql";
17
+ /** Famille du infra `database` — pilote le choix de l'adapter (drizzle/mongoose). */
18
+ export type DatabaseFamily = "sql" | "mongo";
19
+ /** Infra `database` résolu depuis `NF_DATABASE_URL`/`DATABASE_URL`. */
20
+ export interface IInfraDatabase {
21
+ /** URL déclarée telle quelle (peut porter des credentials — ne jamais logger brute). */
22
+ url: string;
23
+ /** Scheme normalisé en minuscules, sans `:` (ex. `postgres`, `sqlite`, `mongodb`). */
24
+ scheme: string;
25
+ family: DatabaseFamily;
26
+ /** Dialecte SQL (famille `sql`) — `null` pour la famille `mongo`. */
27
+ dialect: InfraSqlDialect | null;
28
+ }
29
+ /** Infra `cache` résolu depuis `NF_REDIS_URL`/`REDIS_URL`. */
30
+ export interface IInfraCache {
31
+ /** URL redis déclarée (peut porter des credentials — ne jamais logger brute). */
32
+ url: string;
33
+ }
34
+ /** Infra `logs` (relecture backplane) — les DEUX URLs peuvent être présentes. */
35
+ export interface IInfraLogs {
36
+ lokiUrl?: string;
37
+ opensearchUrl?: string;
38
+ }
39
+ /** L'infra déclarée — `null` = non déclarée. */
40
+ export interface IInfra {
41
+ database: IInfraDatabase | null;
42
+ cache: IInfraCache | null;
43
+ logs: IInfraLogs | null;
44
+ /**
45
+ * Override GLOBAL de sélection de store (`NF_STORE`) — force TOUTE brique `auto`
46
+ * vers ce backend, en amont de toute préférence d'infra. Cas d'usage : `memory`
47
+ * pour un banc de CHARGE (mesurer le framework sans le goulot sqlite/disque), sans
48
+ * toucher aux configs par brique. `undefined`/`null` = pas d'override. N'affecte
49
+ * JAMAIS un store configuré EXPLICITEMENT (celui-ci ne passe pas par `auto`).
50
+ */
51
+ forceStore?: string | null;
52
+ }
53
+ /** Source d'environnement (forme de `process.env`) — injectable pour les tests. */
54
+ export type InfraEnvSource = Record<string, string | undefined>;
55
+ /**
56
+ * Parse l'URL du infra `database` : scheme → famille + dialecte.
57
+ *
58
+ * @throws Error si le scheme n'est pas supporté — fail-loud au boot : une URL
59
+ * de base inconnue ne doit JAMAIS retomber silencieusement sur sqlite.
60
+ */
61
+ export declare function parseDatabaseUrl(url: string): IInfraDatabase;
62
+ /**
63
+ * Fichier SQLite d'une URL `sqlite:` du infra `database`.
64
+ * Formes acceptées : `sqlite::memory:`, `sqlite:./relatif.db`, `sqlite:/abs.db`,
65
+ * `sqlite:///abs.db`. URL vide après le scheme → `:memory:`.
66
+ */
67
+ export declare function sqliteFilenameFromUrl(url: string): string;
68
+ /**
69
+ * Résout les 3 infra déclarée depuis l'environnement. Fonction PURE
70
+ * (aucun kernel) : consommée par le Kernel (1 fois, mémoïsé), par le contexte
71
+ * `defineConfig` (`ctx.infra`) et par les builders de config des modules
72
+ * adapters (drizzle/mongoose/redis) dans leur couche env.
73
+ *
74
+ * @param env - source d'environnement (défaut `process.env`).
75
+ * @throws Error si l'URL du infra `database` a un scheme non supporté.
76
+ */
77
+ export declare function resolveInfra(env?: InfraEnvSource): IInfra;
78
+ /** Sentinelle des champs `store` : « laisser le framework choisir selon l'infra déclarée ». */
79
+ export declare const AUTO_STORE = "auto";
80
+ /** Infra vide (rien de déclaré) — fallback sûr quand le kernel est absent (tests). */
81
+ export declare const EMPTY_INFRA: IInfra;
82
+ /**
83
+ * Nature de la donnée d'une brique — pilote l'ordre de préférence des backends :
84
+ * - `durable` (tokens, passkeys, audit, webhooks, user) → infra database.
85
+ * - `ephemeral` (idempotence) → infra cache, sinon database.
86
+ * - `session` → cache, sinon database, sinon fallback fichier.
87
+ */
88
+ export type StoreKind = "durable" | "ephemeral" | "session";
89
+ /** Choix d'un backend pour `"auto"` + provenance lisible (log de boot, Studio). */
90
+ export interface IAutoStoreResolution {
91
+ store: string;
92
+ reason: string;
93
+ }
94
+ /** Catégorie de provenance d'un store résolu (dérivée de la valeur configurée). */
95
+ export type StoreProvenance = "infra" | "explicit";
96
+ /**
97
+ * Résolution EFFECTIVE d'une brique de persistance, capturée au boot par le
98
+ * consommateur (au moment exact où il pose son store au container) et retenue
99
+ * dans le registre du Kernel ({@link IKernel.registerStoreResolution}). C'est la
100
+ * VÉRITÉ vécue — y compris les replis annoncés du lot 4 (session → `"files"` en
101
+ * dev) — pas une re-dérivation à la volée. Alimente l'écran Studio « Stores ».
102
+ */
103
+ export interface IStoreResolution {
104
+ /** Identifiant de la brique (ex. `"tokens"`, `"session"`, `"audit"`). */
105
+ brick: string;
106
+ /** Nature de la donnée — pilote la durabilité affichée ({@link StoreKind}). */
107
+ nature: StoreKind;
108
+ /** Valeur configurée telle quelle : `"auto"` (sentinelle) ou un backend explicite. */
109
+ configured: string;
110
+ /** Backend effectivement résolu et posé au runtime. */
111
+ resolved: string;
112
+ /**
113
+ * Backends RÉELLEMENT enregistrés pour cette brique (`listXStores()`), capturés
114
+ * par le consommateur — évite à l'endpoint d'importer les registres (le cœur
115
+ * `@nodefony/framework` ne peut pas dépendre de `@nodefony/security`/`http`).
116
+ */
117
+ available: readonly string[];
118
+ /**
119
+ * Provenance : `"infra"` (résolu depuis l'infra déclarée, `configured === "auto"`)
120
+ * ou `"explicit"` (backend nommé dans la config/env de l'app).
121
+ */
122
+ provenance: StoreProvenance;
123
+ /** Raison lisible (FR) de la résolution — de `resolveAutoStore` ou construite. */
124
+ reason: string;
125
+ /** Chemin du champ de config (ex. `"security.tokenStore.store"`) — croise la provenance de champ Studio. */
126
+ configPath?: string;
127
+ /**
128
+ * Emplacement PHYSIQUE lisible du store, lu depuis l'instance au boot
129
+ * ({@link readStoreLocation}) — base SQLite pour `drizzle`. `undefined`
130
+ * pour un store `memory` (volatil) ou un backend réseau (l'emplacement = l'infra
131
+ * déclarée, déjà surfacée à part). Répond à « où sont écrites mes données ? » dans Studio.
132
+ */
133
+ location?: string;
134
+ }
135
+ /**
136
+ * Résout la sentinelle `"auto"` d'une brique en nom de backend, borné aux
137
+ * backends RÉELLEMENT enregistrés (`available` = `listXStores()` du registre —
138
+ * reflète l'auto-register des adapters chargés). Couverture partielle d'une infra
139
+ * (ex. audit sans impl mongoose) → repli `fallback` avec raison ANNONCÉE,
140
+ * jamais d'échec : le principe « fallback annoncé, pas de dégradation
141
+ * silencieuse » vit dans la raison retournée, que l'appelant DOIT logger.
142
+ *
143
+ * @param kind - nature de la donnée ({@link StoreKind}).
144
+ * @param infra - infra résolue ({@link resolveInfra}).
145
+ * @param available - backends enregistrés dans le registre de la brique.
146
+ * @param fallback - backend de repli (défaut `"memory"` — c'est aussi ce que passe
147
+ * le service de session : aucun appelant ne demande un autre repli).
148
+ */
149
+ export declare function resolveAutoStore(kind: StoreKind, infra: IInfra, available: readonly string[], fallback?: string): IAutoStoreResolution;
150
+ /**
151
+ * Déduit le nom court du backend d'un store à partir de la classe concrète de
152
+ * son instance (convention de nommage `<Backend>XxxStore` → `drizzle`, `mongoose`,
153
+ * `redis`, `memory`, `file`). Sert à retrouver le backend RÉEL d'un adapter posé
154
+ * au container quand la brique a été résolue en `"auto"` (l'adapter court-circuite
155
+ * la fabrique nommée). Classe non reconnue → nom de classe brut (honnête).
156
+ *
157
+ * @param store - instance de store (lue défensivement — seul `constructor.name`).
158
+ * @returns nom court du backend, ou `"inconnu"` si l'instance n'expose pas de classe.
159
+ */
160
+ export declare function deriveStoreBackend(store: unknown): string;
161
+ /**
162
+ * Lit l'emplacement PHYSIQUE d'un store depuis son instance (getter public
163
+ * `location`), pour l'écran Studio « Stores » — répond à « où mes données sont-elles
164
+ * écrites ? ». Un store fichier (passkeys, TOTP, sessions) expose le chemin de son
165
+ * fichier/dossier ; un store `memory` ou un backend réseau (drizzle/redis/mongoose)
166
+ * n'expose rien → `undefined` (l'UI dérive « en mémoire » ou renvoie à l'infra).
167
+ *
168
+ * @param store - instance de store (lue défensivement — seul un getter `location` string).
169
+ * @returns chemin lisible, ou `undefined` si le store n'expose pas d'emplacement.
170
+ */
171
+ export declare function readStoreLocation(store: unknown): string | undefined;
@@ -0,0 +1,36 @@
1
+ /**
2
+ * RÉACTIVITÉ déclarée de chaque champ de config (pilier #2 du chantier).
3
+ *
4
+ * Certaines options s'appliquent À CHAUD (sans redémarrer — niveau de log, format
5
+ * de requête, sources debug) ; d'autres sont FIGÉES AU BOOT (ports, protocole,
6
+ * liste modules, TLS, cluster). Le dev et Studio doivent le savoir sans deviner.
7
+ *
8
+ * Ce module porte la **vérité déclarée** (quel champ est `hot`), co-localisée au
9
+ * schéma et aussi taggée `@reactivity` en TSDoc sur {@link AppConfigInput} (hover
10
+ * éditeur). L'APPLICATION live (`Kernel.applyConfigPatch` + setters services + UI
11
+ * Studio avec badge `🔥 à chaud` / `🔒 redémarrage requis`) est un follow-up : ici
12
+ * on ne fait que CLASSER, pas appliquer.
13
+ *
14
+ * Défaut SÛR : un champ non listé = `boot` (conservateur — on ne prétend jamais
15
+ * `hot` par erreur).
16
+ */
17
+ /** Réactivité d'un champ de config. */
18
+ export type Reactivity = "hot" | "boot";
19
+ /**
20
+ * Champs applicables À CHAUD (chemin en dot-notation). Tout champ absent est `boot`.
21
+ *
22
+ * `log.active` / `log.debug` / `log.requestFormat` = exactement le cadre de la
23
+ * « fenêtre d'audit » (élever la verbosité prod temporairement sans reboot).
24
+ */
25
+ export declare const configReactivity: {
26
+ readonly "log.active": "hot";
27
+ readonly "log.debug": "hot";
28
+ readonly "log.requestFormat": "hot";
29
+ };
30
+ /**
31
+ * Réactivité d'un champ par son chemin dot-notation ; `boot` par défaut (sûr).
32
+ *
33
+ * @param path - chemin du champ, ex. `"log.debug"` ou `"servers.http.port"`.
34
+ * @returns `"hot"` si le champ peut s'appliquer à chaud, sinon `"boot"`.
35
+ */
36
+ export declare function getConfigReactivity(path: string): Reactivity;