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,91 @@
1
+ # CI de <%= it.appName %> — générée par `nodefony create app`.
2
+ #
3
+ # C'est ICI que vit le filet complet, pas dans des hooks git : `verify`
4
+ # enchaîne typecheck, lint, tests et `nodefony doctor`, puis la suite e2e
5
+ # démarre l'application POUR DE VRAI (--detach --wait) et l'interroge en HTTP.
6
+ # Un hook local est un doublon contournable (--no-verify) ; la forge, non.
7
+ name: CI
8
+
9
+ on:
10
+ push:
11
+ pull_request:
12
+
13
+ jobs:
14
+ verify:
15
+ runs-on: ubuntu-latest
16
+ <% if (it.db) { %> # La base retenue à la création (`NF_DATABASE_URL` du `.env` la joint sur
17
+ # 127.0.0.1) — même image que le compose : les deux viennent du MÊME
18
+ # catalogue du générateur, elles ne peuvent pas diverger.
19
+ services:
20
+ <%= it.db.service %>:
21
+ image: <%= it.db.image %>
22
+ ports:
23
+ - "127.0.0.1:<%= it.db.port %>:<%= it.db.port %>"
24
+ <% if (it.db.choice === "postgres") { %> env:
25
+ POSTGRES_USER: <%= it.appName %>
26
+ POSTGRES_PASSWORD: <%= it.appName %>-dev
27
+ POSTGRES_DB: <%= it.appName %>
28
+ options: >-
29
+ --health-cmd "pg_isready -U <%= it.appName %> -d <%= it.appName %>"
30
+ --health-interval 5s
31
+ --health-timeout 3s
32
+ --health-retries 10
33
+ <% } %><% if (it.db.choice === "mariadb") { %> env:
34
+ MARIADB_ROOT_PASSWORD: <%= it.appName %>-dev
35
+ MARIADB_USER: <%= it.appName %>
36
+ MARIADB_PASSWORD: <%= it.appName %>-dev
37
+ MARIADB_DATABASE: <%= it.appName %>
38
+ options: >-
39
+ --health-cmd "healthcheck.sh --connect --innodb_initialized"
40
+ --health-interval 5s
41
+ --health-timeout 3s
42
+ --health-retries 10
43
+ <% } %><% if (it.db.choice === "mysql") { %> env:
44
+ MYSQL_ROOT_PASSWORD: <%= it.appName %>-dev
45
+ MYSQL_USER: <%= it.appName %>
46
+ MYSQL_PASSWORD: <%= it.appName %>-dev
47
+ MYSQL_DATABASE: <%= it.appName %>
48
+ options: >-
49
+ --health-cmd "mysqladmin ping -h 127.0.0.1 -u<%= it.appName %> -p<%= it.appName %>-dev --silent"
50
+ --health-interval 5s
51
+ --health-timeout 3s
52
+ --health-retries 10
53
+ <% } %><% } %> steps:
54
+ - uses: actions/checkout@v7
55
+
56
+ - uses: actions/setup-node@v7
57
+ with:
58
+ # Le plancher des `engines` du framework — la forge éprouve la
59
+ # version la plus ANCIENNE qu'on prétend servir.
60
+ node-version: 24
61
+ cache: npm
62
+
63
+ - run: npm ci
64
+ <% if (it.db) { %>
65
+ # Les deux bases que la suite e2e exige — le service n'en crée qu'une.
66
+ # `CREATE DATABASE` est un privilège d'administration : c'est le décor qui
67
+ # les fournit, jamais la suite (elle n'aurait pas le droit, et ne doit pas
68
+ # l'avoir). Même raison et mêmes noms que `docker/db/init-nodefony-e2e.sql`
69
+ # côté compose. `shell:` est déclaré : sans lui, la forge prend celui de la
70
+ # plateforme.
71
+ - name: bases de la suite e2e
72
+ shell: bash
73
+ run: |
74
+ <% if (it.db.choice === "postgres") { %> export PGPASSWORD='<%= it.appName %>-dev'
75
+ for base in <%= it.db.databaseE2e %> <%= it.db.databaseScratch %>; do
76
+ psql -h 127.0.0.1 -p <%= it.db.port %> -U <%= it.appName %> -d <%= it.appName %> \
77
+ -c "CREATE DATABASE \"$base\""
78
+ done
79
+ <% } else { %> mysql -h 127.0.0.1 -P <%= it.db.port %> -uroot -p'<%= it.appName %>-dev' <<'SQL'
80
+ CREATE DATABASE IF NOT EXISTS `<%= it.db.databaseE2e %>`;
81
+ CREATE DATABASE IF NOT EXISTS `<%= it.db.databaseScratch %>`;
82
+ GRANT ALL PRIVILEGES ON `<%= it.db.databaseE2e %>`.* TO '<%= it.appName %>'@'%';
83
+ GRANT ALL PRIVILEGES ON `<%= it.db.databaseScratch %>`.* TO '<%= it.appName %>'@'%';
84
+ FLUSH PRIVILEGES;
85
+ SQL
86
+ <% } %><% } %>
87
+ # typecheck + lint + tests + `nodefony doctor` — l'ordre du script.
88
+ - run: npm run verify
89
+
90
+ # L'application DÉMARRE et répond en HTTP : la seule preuve qui compte.
91
+ - run: npm run test:e2e
@@ -0,0 +1,46 @@
1
+ node_modules/
2
+ dist/
3
+ var/
4
+ public/dist/
5
+ *.log
6
+
7
+ # vitest ≥ 5 : racine unique de ses artefacts (pièces jointes, blobs, rapports
8
+ # json/junit/html). Elle apparaît dès le premier `npm test` — sans cette ligne,
9
+ # une application fraîche naît avec un dossier non suivi que rien n'explique.
10
+ .vitest/
11
+
12
+ # Artefacts jetables — captures d'écran, journaux de console et arbres produits
13
+ # par le navigateur du compose (`--profile browser`). Ce sont des PHOTOS d'un
14
+ # instant : elles se refont, elles ne se versionnent pas.
15
+ tmp/
16
+
17
+ # Fichiers d'environnement — convention B (Vite/Next), celle du framework :
18
+ # COMMITÉS (défauts NON-secrets) : .env, .env.<env>, .env.example
19
+ # GITIGNORÉS (secrets / machine) : *.local → .env.local, .env.<env>.local
20
+ # Les clés de chiffrement générées à la création de l'app vivent dans
21
+ # .env.local — ne JAMAIS les committer (rotation : nodefony security:secrets).
22
+ *.local
23
+
24
+ # Clés PRIVÉES. Le certificat public (`cert.pem`, `fullchain.pem`) peut se
25
+ # committer ; la clé qui va avec, jamais — un dépôt public la publie
26
+ # définitivement, et la retirer d'un commit ne la retire d'aucun clone.
27
+ # Régénérer : `npx nodefony http:certificates`.
28
+ *.key
29
+ privkey*.pem
30
+ *-key.pem
31
+
32
+ # Secrets posés chez les agents de développement (nodefony security:token --write).
33
+ # 🔴 `.gemini/.env` porte un JETON PORTEUR : la déclaration de la porte MCP,
34
+ # elle, reste versionnable (.gemini/settings.json, .mcp.json) — c'est la CLÉ qui
35
+ # ne se commite pas. Un jeton commité est un jeton publié.
36
+ .gemini/.env
37
+ .gemini/.env.*
38
+
39
+ # Agents de développement : leur dossier est le home REDIRIGÉ que `ai:mcp` leur
40
+ # donne pour que la porte MCP soit déclarée par PROJET (son URL porte un port —
41
+ # une déclaration globale ne pourrait désigner qu'une application). Ils y
42
+ # déposent aussi leurs fichiers de travail : seule la DÉCLARATION se versionne.
43
+ .vibe/*
44
+ !.vibe/config.toml
45
+ .codex/*
46
+ !.codex/config.toml
@@ -0,0 +1,42 @@
1
+ # CI de <%= it.appName %> — générée par `nodefony create app` (GitLab).
2
+ #
3
+ # Même filet que le workflow GitHub, même doctrine : `verify` (typecheck +
4
+ # lint + tests + `nodefony doctor`) puis la suite e2e qui démarre l'application
5
+ # POUR DE VRAI et l'interroge en HTTP. Le fichier est inerte hors GitLab —
6
+ # les deux forges sont servies, le dépôt choisit en poussant.
7
+
8
+ verify:
9
+ image: node:24
10
+ cache:
11
+ key:
12
+ files:
13
+ - package-lock.json
14
+ paths:
15
+ - .npm/
16
+ <% if (it.db) { %> # La base retenue à la création — même image que le compose (même
17
+ # catalogue du générateur). ⚠️ Sur GitLab, un service se joint par son
18
+ # ALIAS, jamais par l'adresse locale du `.env` (il tourne dans un autre
19
+ # conteneur) : la variable ci-dessous PRIME sur le `.env` — le shell gagne
20
+ # toujours dans la cascade d'environnement de Nodefony.
21
+ services:
22
+ - name: <%= it.db.image %>
23
+ alias: <%= it.db.service %>
24
+ variables:
25
+ NF_DATABASE_URL: "<%= it.db.scheme %>://<%= it.appName %>:<%= it.appName %>-dev@<%= it.db.service %>:<%= it.db.port %>/<%= it.appName %>"
26
+ <% if (it.db.choice === "postgres") { %> POSTGRES_USER: <%= it.appName %>
27
+ POSTGRES_PASSWORD: <%= it.appName %>-dev
28
+ POSTGRES_DB: <%= it.appName %>
29
+ <% } %><% if (it.db.choice === "mariadb") { %> MARIADB_ROOT_PASSWORD: <%= it.appName %>-dev
30
+ MARIADB_USER: <%= it.appName %>
31
+ MARIADB_PASSWORD: <%= it.appName %>-dev
32
+ MARIADB_DATABASE: <%= it.appName %>
33
+ <% } %><% if (it.db.choice === "mysql") { %> MYSQL_ROOT_PASSWORD: <%= it.appName %>-dev
34
+ MYSQL_USER: <%= it.appName %>
35
+ MYSQL_PASSWORD: <%= it.appName %>-dev
36
+ MYSQL_DATABASE: <%= it.appName %>
37
+ <% } %><% } %> script:
38
+ - npm ci --cache .npm --prefer-offline
39
+ # typecheck + lint + tests + `nodefony doctor` — l'ordre du script.
40
+ - npm run verify
41
+ # L'application DÉMARRE et répond en HTTP : la seule preuve qui compte.
42
+ - npm run test:e2e
@@ -0,0 +1,69 @@
1
+ import { Module<% if (it.complete) { %>, services<% } %> } from "nodefony";
2
+ import type { Kernel } from "nodefony";
3
+ import { controllers } from "@nodefony/framework";
4
+ <% if (it.complete) { %>import AppInfoService from "./nodefony/service/AppInfoService";
5
+ import AppBannerService from "./nodefony/service/AppBannerService";
6
+ <% } %>
7
+ <% if (it.front) { %>import { register<%= it.pascal %>Entry } from "./nodefony/frontend/register<%= it.pascal %>Entry";
8
+ <% } %>import config from "./nodefony.config";
9
+ import HelloController from "./nodefony/controllers/HelloController";
10
+ <% if (it.complete) { %>import LiveController from "./nodefony/controllers/LiveController";
11
+ <% } %><% if (it.front) { %>import AppController from "./nodefony/controllers/AppController";
12
+ <% } else { %>import HomeController from "./nodefony/controllers/HomeController";
13
+ <% } %><% if (it.complete) { %>import { entities } from "@nodefony/orm-core";
14
+ import { UserEntity } from "./nodefony/entity/User";
15
+ import { provisionUsers } from "./nodefony/security/provisionUsers";
16
+ <% } %>
17
+ /**
18
+ * Catalogue d'env typé, lu par le Kernel au boot pour alimenter `ctx.env`
19
+ * du descripteur `defineConfig`.
20
+ */
21
+ export { env } from "./env";
22
+
23
+ /**
24
+ * Point d'entrée de l'application (chargé par le Kernel : `dist/index.js`).
25
+ * L'app ne déclare ici que ce qui lui est INTRINSÈQUE : ses controllers et ses
26
+ * services. Les modules chargés vivent dans `nodefony.config.ts` (manifeste
27
+ * `modules`).
28
+ *
29
+ <% if (it.complete) { %> *
30
+ * ⚠️ `@services([…])` est ce qui fait EXISTER un service : écrire une classe
31
+ * `@injectable()` sans l'ajouter ici la laisse invisible au conteneur. Tout
32
+ * service que tu ajoutes — le tien, ou celui que `nodefony create service`
33
+ * génère — se déclare dans cette liste.
34
+ <% } %> */
35
+ <% if (it.complete) { %>@entities([UserEntity])
36
+ @services([AppInfoService, AppBannerService])
37
+ <% } %>@controllers([HelloController<% if (it.complete) { %>, LiveController<% } %><% if (it.front) { %>, AppController<% } else { %>, HomeController<% } %>])
38
+ class App extends Module {
39
+ constructor(kernel: Kernel) {
40
+ super("app", kernel, import.meta.url, config);
41
+ }
42
+ <% if (it.complete) { %>
43
+ /**
44
+ * Pose l'annuaire utilisateurs de l'app + seed le compte admin (idempotent).
45
+ * L'identité est la responsabilité de l'APPLICATION — le firewall
46
+ * (@nodefony/security) authentifie, mais c'est ici qu'on décide QUI sont les
47
+ * utilisateurs et OÙ ils vivent. Détails : nodefony/security/provisionUsers.ts
48
+ */
49
+ override async onKernelReady(): Promise<this> {
50
+ await provisionUsers(this);
51
+ return this;
52
+ }
53
+ <% } %><% if (it.front) { %>
54
+ /**
55
+ * Déclare l'entry frontend <%= it.frontend %> auprès du FrontendService —
56
+ * AVANT `onKernelReady` pour que le superviseur Vite démarre avec elle.
57
+ * En dev : HMR ; en prod : build pré-compilé servi en statics.
58
+ *
59
+ * Le DÉTAIL de l'entry (type, racine Vite, proxy d'API) vit dans
60
+ * `nodefony/frontend/register<%= it.pascal %>Entry.ts` — même fichier, même
61
+ * forme que pour un module créé par `nodefony create front`.
62
+ */
63
+ override async onKernelBoot(): Promise<this> {
64
+ register<%= it.pascal %>Entry(this);
65
+ return this;
66
+ }
67
+ <% } %>}
68
+
69
+ export default App;
@@ -0,0 +1,342 @@
1
+ import { defineConfig, use } from "nodefony";
2
+ import type { env } from "./env";
3
+
4
+ /**
5
+ * Configuration de l'application — UN fichier, seulement les ÉCARTS aux
6
+ * défauts du framework (deep-merge au boot). Le par-environnement passe par
7
+ * `ctx` (isProd/isDev/env typé), jamais par un fichier parallèle.
8
+ *
9
+ * Voir la config RÉSOLUE, valeur ET provenance : `npx nodefony inspect config`,
10
+ * ou la console Studio. Guide complet : `docs/guides/configuration.md`.
11
+ */
12
+ export default defineConfig<typeof env>((ctx) => ({
13
+ /**
14
+ * Interface d'écoute. En container, écouter TOUTES les interfaces : le port
15
+ * mapping Docker/k8s n'atteint jamais un bind sur 127.0.0.1.
16
+ */
17
+ domain: ctx.isProd ? "0.0.0.0" : "127.0.0.1",
18
+
19
+ /**
20
+ * Écoute HTTP et HTTPS. Rien ici ⇒ défauts du framework (5151, et 5152 en
21
+ * HTTP/2) ; un port est une propriété du DÉPLOIEMENT et se déclare par
22
+ * l'environnement — cf `.env`.
23
+ *
24
+ * HTTPS est actif même en dev parce que les API navigateur modernes exigent
25
+ * un contexte sécurisé (WebRTC/getUserMedia, presse-papiers, service workers,
26
+ * notifications). Le certificat de développement est généré au premier boot —
27
+ * via **mkcert** s'il est installé (autorité locale de confiance, zéro
28
+ * avertissement navigateur), sinon auto-signé.
29
+ *
30
+ * - Ne garder qu'un port, en clair (TLS terminé à l'ingress) : `https: false`.
31
+ * - Inspecter ou regénérer le certificat : `npx nodefony http:certificates`.
32
+ */
33
+ servers: {
34
+ ...((ctx.env.NF_PORT ?? ctx.env.PORT)
35
+ ? { http: { port: ctx.env.NF_PORT ?? ctx.env.PORT } }
36
+ : {}),
37
+ ...(ctx.env.NF_PORT_HTTPS
38
+ ? { https: { port: ctx.env.NF_PORT_HTTPS } }
39
+ : {}),
40
+ },
41
+
42
+ log: {
43
+ debug: ctx.isProd ? [] : "*",
44
+ /** stdout = contrat cloud-native (collecteur de logs de l'orchestrateur). */
45
+ driver: ctx.env.NF_LOG_DRIVER,
46
+ },
47
+
48
+ /**
49
+ * Manifeste ORDONNÉ des modules — l'ordre du tableau = l'ordre de chargement.
50
+ * La `policy` d'une entrée FILTRE, elle ne réordonne jamais :
51
+ *
52
+ * - `"mandatory"` → socle de l'app : toujours chargé, non filtrable
53
+ * (déclare l'intention « sans lui, cette app n'a pas de sens ») ;
54
+ * - `"optional"` → défaut : chargé, sauf si sa GARDE `when` dit non ;
55
+ * - `"dev"` → chargé UNIQUEMENT hors production : outillage, démo, consoles
56
+ * (0 coût prod — un module non listé n'est même pas importé).
57
+ *
58
+ * La garde `when` rend un booléen : `false` ⇒ le module n'est pas chargé du
59
+ * tout. Elle reçoit la config résolue — `when: (config) => …` — mais peut
60
+ * l'ignorer et fermer sur `ctx`, ce que fait redis plus bas
61
+ * (`when: () => !!ctx.infra.cache`) : la question qu'il pose porte sur
62
+ * l'ENVIRONNEMENT (une URL Redis est-elle déclarée ?), pas sur sa propre
63
+ * configuration. Décider d'après `config` sert quand la réponse dépend d'une
64
+ * clé du module lui-même.
65
+ */
66
+ modules: [
67
+ <% if (it.complete) { %> /**
68
+ * ORM Drizzle (SQL). Sans `NF_DATABASE_URL` : sqlite LOCAL, et l'app
69
+ * persiste out-of-the-box (users, sessions, jetons). Déclare
70
+ * `NF_DATABASE_URL` (postgres://…) pour pointer une vraie base.
71
+ */
72
+ "@nodefony/drizzle",
73
+
74
+ <% } %> /** Socle serveur : HTTP/WS natifs + probes /livez /readyz. */
75
+ use("@nodefony/http", {}),
76
+
77
+ /** Router + controllers + décorateurs (`@controller`, `@route`). */
78
+ "@nodefony/framework",
79
+ <% if (it.complete) { %>
80
+ /**
81
+ * Socket Nodefony (canaux duplex multiplexés). Backplane `cluster` = IPC
82
+ * intra-pod, 0 dépendance externe ; `redis` = opt-in cross-pod.
83
+ */
84
+ use("@nodefony/realtime", { backplane: { driver: "cluster" } }),
85
+
86
+ /**
87
+ * Firewall applicatif + audit — chaque requête passe le pipeline sécurité.
88
+ * Les zones sont validées Zod au boot (config invalide = fail-closed).
89
+ */
90
+ use("@nodefony/security", {
91
+ /**
92
+ * Jetons signés par CETTE application — le décor de DÉVELOPPEMENT.
93
+ *
94
+ * 🔴 Deux réglages sans lesquels `nodefony security:token` produit un
95
+ * jeton inutilisable, chacun pour une raison différente :
96
+ *
97
+ * - **`audiences`** est une liste BLANCHE de ressources qu'un client peut
98
+ * NOMMER (`resource`, RFC 8707). L'URI de la porte MCP doit y figurer,
99
+ * sinon l'émetteur REFUSE de l'inscrire (`invalid_target`) — et l'on se
100
+ * retrouve avec une porte que rien ne sait ouvrir. Les deux adresses
101
+ * sont là parce que la porte répond en clair ET en TLS : un jeton
102
+ * demandé pour l'une était refusé sur l'autre, la liaison d'audience
103
+ * faisant, à juste titre, son travail. Ces valeurs s'ÉCRIVENT, jamais
104
+ * ne se dérivent du `Host` — un en-tête forgé obtiendrait sinon un
105
+ * jeton d'audience arbitraire. En production : l'URL publique en https.
106
+ *
107
+ * - **`keystore.dir`** rend la clé de signature PERSISTANTE. Sans lui,
108
+ * chaque process génère la sienne au démarrage : un jeton émis par la
109
+ * CLI porte un `kid` que le serveur en marche ne connaît pas, et il est
110
+ * refusé en « autorisation requise » — sans que rien ne dise pourquoi.
111
+ * En production, la clé vient de l'environnement (`keySetJson`), le
112
+ * système de fichiers d'un pod étant éphémère.
113
+ */
114
+ jwt: {
115
+ issuer: ctx.isProd
116
+ ? undefined
117
+ : `https://localhost:${ctx.env.NF_PORT_HTTPS ?? 5152}`,
118
+ audiences: ctx.isProd
119
+ ? []
120
+ : [
121
+ `https://localhost:${ctx.env.NF_PORT_HTTPS ?? 5152}`,
122
+ `http://localhost:${ctx.env.NF_PORT ?? 5151}/nodefony/mcp`,
123
+ `https://localhost:${ctx.env.NF_PORT_HTTPS ?? 5152}/nodefony/mcp`,
124
+ ],
125
+ keystore: ctx.isProd ? {} : { dir: "var/keys" },
126
+ },
127
+ /**
128
+ * Zones firewall de TES routes. `main` essaie `session` (cookie BFF →
129
+ * `context.user` rempli) puis `anonymous` : rien n'est bloqué tel quel.
130
+ * Hors zone, l'identité n'est JAMAIS résolue.
131
+ *
132
+ * - EXIGER le login sur `/api` : retire `"anonymous"` de `main`.
133
+ * - Protéger plus large : élargis le pattern (ex. `"^/(api|compte)"`).
134
+ *
135
+ * Le firewall trie par longueur de pattern : `/api/secure/*` tombe donc
136
+ * dans `secure`, sans `anonymous` → 401 avant ton controller. Essaie
137
+ * `GET /api/secure/hello`.
138
+ *
139
+ * `main` et `secure` sont STATEFUL : l'identité tient dans une session
140
+ * serveur, portée par un cookie opaque et révocable — le bon modèle pour
141
+ * un NAVIGATEUR. `machine`, plus bas, montre l'autre cas : un appelant
142
+ * qui ne stocke pas de cookie ne doit RIEN recevoir qu'il faille stocker.
143
+ *
144
+ * ⚠️ `stateless: false` (le défaut) sur une zone de service NE FAIT PAS
145
+ * ÉCHOUER l'essai — et c'est le piège. Depuis un navigateur, ou avec un
146
+ * `curl -c`, le cookie posé est renvoyé aux appels suivants et tout
147
+ * marche ; le vrai client, lui, ne stocke rien. Ce qu'il en coûte n'est
148
+ * pas un refus mais un REGISTRE : chaque appel porteur d'un cookie
149
+ * inconnu fait reprendre, puis réécrire une session serveur — et
150
+ * renvoyer un `Set-Cookie` — pour un appelant qui ne la relira jamais.
151
+ *
152
+ * `stateless: true` ferme cela : la zone n'ouvre ni ne reprend de
153
+ * session, le cookie entrant est ignoré, et l'identité tient tout
154
+ * entière dans la preuve portée par la requête. Corollaire, appliqué au
155
+ * DÉMARRAGE : lister `"session"` dans une zone stateless est une
156
+ * contradiction, et l'application REFUSE de démarrer en nommant la zone.
157
+ * Une zone sert un navigateur (session) ou un porteur de preuve (clé,
158
+ * jeton) — jamais les deux sous le même drapeau.
159
+ */
160
+ /**
161
+ * ⚠️ Un `pattern` couvre un PRÉFIXE, pas les routes qu'on a en tête —
162
+ * et c'est TOUT l'intérêt : les routes ajoutées demain sous ce préfixe
163
+ * naissent protégées, sans que personne ait à y penser.
164
+ *
165
+ * D'où le piège, mesuré : pour fermer `/api/account/profile` et
166
+ * `/api/account/invoices`, on écrit
167
+ * `pattern: "^/api/account/(profile|invoices)"`. Les deux routes
168
+ * refusent bien l'anonyme, l'essai est vert, la revue passe — et la
169
+ * TROISIÈME route du compte, ajoutée un mois plus tard, est PUBLIQUE.
170
+ * Rien ne le signale : la zone existe, elle a l'air de couvrir l'espace.
171
+ * Le bon pattern est `"^/api/account"`.
172
+ *
173
+ * La zone retenue est celle dont le pattern est le plus LONG parmi
174
+ * celles qui correspondent (`firewall.ts:245`) — pas la première
175
+ * déclarée. C'est ainsi que `^/api/secure` l'emporte sur `^/api`
176
+ * ci-dessous. Un pattern énuméré gagne donc lui aussi sur ses propres
177
+ * routes, ce qui rend l'erreur silencieuse : ce qu'on teste marche.
178
+ */
179
+ areas: {
180
+ main: {
181
+ pattern: "^/api",
182
+ authenticators: ["session", "anonymous"],
183
+ },
184
+ // AJOUTER une route ici ne demande RIEN de plus : le préfixe est déjà
185
+ // couvert, la zone authentifie, et `context.user` est garanti dans le
186
+ // controller. Une route neuve sous `/api/secure` naît protégée.
187
+ //
188
+ // ⚠️ Un appelant qui reçoit 401 sur une route de cette zone ne dit PAS
189
+ // que la zone est mal réglée : il dit qu'il ne s'authentifie pas. Les
190
+ // deux réflexes qui suivent affaiblissent l'application ENTIÈRE pour un
191
+ // seul appelant, et rien ne le signalera :
192
+ // · ajouter `"anonymous"` ici — toutes les routes de la zone
193
+ // deviennent publiques, pas seulement la nouvelle ;
194
+ // · poser `@BypassFirewall`/`@Anonymous` sur l'action — même effet,
195
+ // en plus discret, puisque la zone a toujours l'air fermée.
196
+ // Fais plutôt s'authentifier l'appelant (session pour un navigateur,
197
+ // zone `machine` ci-dessous pour un service), ou donne-lui sa propre
198
+ // zone. Restreindre DAVANTAGE reste possible sans rien ouvrir :
199
+ // `@IsGranted(["ROLE_ADMIN"])` sur l'action.
200
+ secure: {
201
+ pattern: "^/api/secure",
202
+ authenticators: ["session"],
203
+ },
204
+ // Appelant qui n'est PAS un navigateur — service partenaire, script,
205
+ // agent. Zone ACTIVE, et non un exemple en commentaire : c'est le code
206
+ // qu'on a sous les yeux qu'on recopie, jamais celui qu'on lit à côté.
207
+ // Rien ne tombe ici tant qu'aucune route ne commence par `/api/machine`.
208
+ machine: {
209
+ pattern: "^/api/machine",
210
+ authenticators: ["apikey"], // PAS "session" — ce client n'a pas de cookie
211
+ stateless: true, // false ⇒ l'app ouvre une session qu'il ne renverra jamais
212
+ },
213
+ },
214
+
215
+ /**
216
+ * Clés de chiffrement au repos — les VALEURS vivent dans `.env.local`
217
+ * (gitignoré), générées à la création de l'app. Rotation ou rattrapage :
218
+ * `npx nodefony security:secrets --write`.
219
+ */
220
+ totp: { encryptionKey: ctx.env.NF_TOTP_KEY },
221
+ webhooks: { encryptionKey: ctx.env.NF_WEBHOOK_KEY },
222
+ csrf: { secret: ctx.env.NF_CSRF_SECRET },
223
+
224
+ /**
225
+ * Hiérarchie de rôles — un rôle COUVRE ceux qu'il liste, transitivement.
226
+ * `ROLE_NODEFONY_*` = plateforme (console Studio) ; `ROLE_*` = applicatif.
227
+ * Le compte admin semé par `nodefony/security/provisionUsers.ts` les porte.
228
+ */
229
+ roleHierarchy: {
230
+ ROLE_NODEFONY_ADMIN: ["ROLE_ADMIN", "ROLE_SUPERVISOR", "ROLE_DEV"],
231
+ ROLE_ADMIN: ["ROLE_USER"],
232
+ },
233
+ }),
234
+
235
+ /**
236
+ * Builder Vite + statics : sert le frontend de l'app (HMR en dev).
237
+ *
238
+ * L'origine que le NAVIGATEUR utilise pour les assets se dérive du `Host`
239
+ * de la requête : rien à configurer pour développer depuis une autre
240
+ * machine, un conteneur ou un tunnel — chacun reçoit l'origine par
241
+ * laquelle il est arrivé. Codespaces/Gitpod : détection automatique.
242
+ *
243
+ * `publicOrigin: "https://mon-proxy.example.com:{port}"` force une origine
244
+ * unique quand un frontal la réécrit ; `{port}` suit le port réel de Vite.
245
+ * Un réglage explicite gagne toujours sur la dérivation.
246
+ */
247
+ use("@nodefony/frontend", {
248
+ publicOrigin: "",
249
+ }),
250
+
251
+ /**
252
+ * Console d'administration → `/nodefony` : modules chargés, routes, config
253
+ * résolue, sessions, logs.
254
+ *
255
+ * `policy: "dev"` parce que c'est une surface d'ADMIN : absente de la
256
+ * production. Pour l'y garder — choix ASSUMÉ — protège `/nodefony` par une
257
+ * zone firewall, PUIS passe la policy à `"mandatory"`.
258
+ *
259
+ * `ui: "static"` sert les assets pré-buildés du paquet npm (rien à
260
+ * recompiler). `"auto"`/`"vite"` feraient passer l'UI Studio par TON serveur
261
+ * Vite — pour développer Studio lui-même — et exigeraient ses plugins dans
262
+ * TES devDependencies (une app Vue/Angular n'a pas `@vitejs/plugin-react`).
263
+ */
264
+ use("@nodefony/studio", { ui: "static" }, { policy: "dev" }),
265
+
266
+ /**
267
+ * Accès Redis générique — chargé par la DÉCLARATION de l'infra cache :
268
+ * `NF_REDIS_URL` présente ⇔ module chargé (un seul signal, pas de magie
269
+ * localhost). Consommateurs : backplane realtime `redis`, sessions,
270
+ * idempotence.
271
+ */
272
+ use("@nodefony/redis", undefined, {
273
+ when: () => !!ctx.infra.cache,
274
+ }),
275
+ <% } else if (it.front) { %>
276
+ /**
277
+ * Builder Vite + statics : sert le frontend <%= it.frontend %> de l'app
278
+ * (HMR en dev, build pré-compilé en prod).
279
+ *
280
+ * L'origine que le NAVIGATEUR utilise pour les assets se dérive du `Host`
281
+ * de la requête : rien à configurer pour développer depuis une autre
282
+ * machine, un conteneur ou un tunnel — chacun reçoit l'origine par
283
+ * laquelle il est arrivé. Codespaces/Gitpod : détection automatique.
284
+ *
285
+ * `publicOrigin: "https://mon-proxy.example.com:{port}"` force une origine
286
+ * unique quand un frontal la réécrit ; `{port}` suit le port réel de Vite.
287
+ * Un réglage explicite gagne toujours sur la dérivation.
288
+ */
289
+ use("@nodefony/frontend", {
290
+ publicOrigin: "",
291
+ }),
292
+ <% } %>
293
+ /**
294
+ * Outillage de DÉVELOPPEMENT — la porte HTTP de la carte de visite de cette
295
+ * application (`/nodefony/devkit`). La même carte au terminal ne dépend PAS
296
+ * de ce module : `npx nodefony card` est servie par le cœur et répond même
297
+ * ici retiré, application non construite ou environnement non posé.
298
+ *
299
+ * `policy: "dev"` : ce qu'il expose (modules chargés, chemins de
300
+ * documentation, commandes à lancer) aide pendant le développement et n'est,
301
+ * en production, qu'une divulgation de ton architecture. Un module non chargé
302
+ * n'est même pas importé — le coût en production est nul, pas « faible ».
303
+ *
304
+ * Il est en `devDependencies` : `npm ci --omit=dev` ne l'installe pas.
305
+ */
306
+ use(
307
+ "@nodefony/devkit",
308
+ {
309
+ mcp: {
310
+ authorization: {
311
+ /**
312
+ * 🔴 L'audience attendue des jetons de la porte MCP — elle
313
+ * s'ÉCRIT, jamais ne se dérive du `Host` : un en-tête forgé
314
+ * obtiendrait sinon un jeton d'audience arbitraire ET passerait la
315
+ * vérification, ce qui viderait la liaison d'audience (RFC 8707) de
316
+ * son unique raison d'être.
317
+ *
318
+ * Sans cette ligne, l'émetteur de cette application REFUSE de
319
+ * signer un jeton pour sa propre porte (`invalid_target`) — et
320
+ * `npx nodefony ai:mcp --auth` livre alors une porte que rien ne
321
+ * peut franchir.
322
+ *
323
+ * Ce sont les adresses de DÉVELOPPEMENT (la porte répond en clair
324
+ * et en TLS). En production, mets ici l'URL publique en https.
325
+ *
326
+ * ⚠️ Le PORT suit ta configuration (`NF_PORT`), il n'est pas figé :
327
+ * une application lancée ailleurs verrait sinon son propre jeton
328
+ * refusé — l'audience désignant une adresse où elle ne répond pas.
329
+ * Lire une variable de configuration n'est PAS dériver du `Host` :
330
+ * l'une t'appartient, l'autre vient du client.
331
+ */
332
+ resource: `http://localhost:${ctx.env.NF_PORT ?? 5151}/nodefony/mcp`,
333
+ additionalResources: [
334
+ `https://localhost:${ctx.env.NF_PORT_HTTPS ?? 5152}/nodefony/mcp`,
335
+ ],
336
+ },
337
+ },
338
+ },
339
+ { policy: "dev" },
340
+ ),
341
+ ],
342
+ }));