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,12 @@
1
+ # <%= it.pointeur %>
2
+
3
+ > **Lis `AGENTS.md`** — les instructions agent de cette application vivent
4
+ > là-bas (standard **Agentic AI Foundation** / Linux Foundation, précédence
5
+ > « le plus proche gagne »). <%= it.agents %> ne le lit pas d'office : ce
6
+ > fichier n'est qu'un pointeur, et ce qu'on y recopierait divergerait en
7
+ > silence.
8
+ >
9
+ > Deux réflexes gouvernent les autres, et `AGENTS.md` les détaille : **avant
10
+ > d'écrire un fichier, vérifie qu'un générateur ne le produit pas**
11
+ > (`npx nodefony create --help`) — et **avant de dire « fait »,
12
+ > `npm run verify`** : un `npm test` vert ne typecheck RIEN.
@@ -0,0 +1,104 @@
1
+ # syntax=docker/dockerfile:1
2
+ # ─────────────────────────────────────────────────────────────────────────────
3
+ # Image de <%= it.appName %> — Nodefony, doctrine cloud-native.
4
+ #
5
+ # 1 process = 1 container. La montée en charge se fait par RÉPLIQUES de
6
+ # l'orchestrateur (k8s, Swarm, Nomad, Cloud Run, Fargate), jamais par un
7
+ # gestionnaire de process dans l'image.
8
+ #
9
+ # Le container DIALOGUE avec l'orchestrateur par SIGTERM (`docker stop`,
10
+ # éviction k8s) : le framework draine — `/readyz` passe en 503, les sockets
11
+ # ferment en 1001, les requêtes en vol vont à leur terme, puis exit 0 — sous
12
+ # `shutdownDeadline` (15 s par défaut). Garder la période de grâce AU-DESSUS :
13
+ # k8s donne 30 s, `docker stop` 10 s (`-t 20` pour être large).
14
+ # ─────────────────────────────────────────────────────────────────────────────
15
+
16
+ # ── Étape de construction : la chaîne de compilation ne descend PAS en prod ───
17
+ FROM node:24-slim AS build
18
+ WORKDIR /app
19
+
20
+ # Les sources d'ABORD, en un seul geste — et non le manifeste seul comme le
21
+ # veut l'usage. Une dépendance d'application Nodefony peut être LOCALE : les
22
+ # workspaces `modules/*` que pose `nodefony create module`, ou une archive
23
+ # `file:` avant publication. Installer avant de les avoir copiées échouerait
24
+ # sur elles. Ce qui ne doit pas entrer est listé dans `.dockerignore` — c'est
25
+ # lui qui tient les secrets (`*.local`) et le `dist/` de la machine dehors.
26
+ COPY . ./
27
+
28
+ # Le cache npm est monté plutôt que gravé : la couche est invalidée dès qu'une
29
+ # source change, mais les paquets déjà téléchargés ne le sont pas. On garde
30
+ # donc une installation VIERGE, sans la repayer en réseau à chaque build.
31
+ #
32
+ # 🔴 `--ignore-scripts` n'est PAS une précaution de confort — sans lui, cette
33
+ # image ne se construit pas dès que le dépôt porte un `package-lock.json`,
34
+ # c'est-à-dire dès le premier `npm install` du développeur. La cause est un
35
+ # défaut de npm, ouvert en amont : `npm/cli#9837`, dont le correctif proposé
36
+ # est `npm/cli#9859`. `better-sqlite3` (tiré par `@nodefony/drizzle`)
37
+ # embarque ses binaires prébâtis et pose `gypfile: false` pour interdire à npm
38
+ # de SYNTHÉTISER un `install: node-gyp rebuild` à la vue de son `binding.gyp`.
39
+ # Or ce refus n'est lu que sur un arbre bâti depuis le registre : un nœud venu
40
+ # d'un LOCKFILE ne porte pas le champ, donc npm invente le script — et le
41
+ # paquet se fait recompiler contre sa volonté.
42
+ #
43
+ # Mesuré dans `node:24-slim` : SANS verrou, aucun script et aucun message ;
44
+ # AVEC verrou, npm 11.16 exécute `node-gyp rebuild`, qui meurt faute de Python
45
+ # et de chaîne de compilation. npm 12 le refuserait — sa politique
46
+ # `allowScripts` BLOQUE un script non approuvé, là où celle de npm 11 se
47
+ # contente d'avertir — mais c'est npm 11.16 que `node:24-slim` embarque.
48
+ #
49
+ # Le sauter est de toute façon ce qu'il faut faire : les paquets natifs d'une
50
+ # application Nodefony embarquent leurs binaires prébâtis (vérifié —
51
+ # `better-sqlite3` ouvre et interroge une base après une installation sans
52
+ # scripts). Et c'est un durcissement : un script d'installation est le vecteur
53
+ # des compromissions de chaîne d'approvisionnement, et une image de production
54
+ # n'a aucune raison d'en exécuter.
55
+ RUN --mount=type=cache,target=/root/.npm npm install --ignore-scripts --no-audit --no-fund
56
+
57
+ # Le build passe par le script de l'application (`rolldown`, plus le build du
58
+ # frontend quand il y en a un) : ce Dockerfile n'a donc jamais à connaître la
59
+ # forme de la compilation. `prune` retire ensuite ce qui n'est que du
60
+ # développement — la toolchain a fini son travail.
61
+ #
62
+ # ⚠️ Une application à FRONTEND garde malgré tout Vite : son plugin est une
63
+ # devDependency, et `prune` ne retire pas ce qui satisfait la dépendance de
64
+ # pair (optionnelle) d'un paquet de production. Refaire l'arbre depuis zéro
65
+ # n'y change rien — le `package-lock.json` l'a figé, et c'est mesuré : 161 Mo
66
+ # dans les deux cas. Le jour où cela se corrige, ce sera en amont, dans la
67
+ # façon dont `@nodefony/frontend` déclare Vite.
68
+ RUN npm run build && npm prune --omit=dev
69
+
70
+ # ── Étape d'exécution : minimale, non-root ───────────────────────────────────
71
+ FROM node:24-slim
72
+ ENV NODE_ENV=production
73
+ WORKDIR /app
74
+
75
+ # `/app` doit appartenir à `node` : le démarrage écrit (tmp/, journaux, var/).
76
+ RUN chown node:node /app
77
+
78
+ # Un seul COPY, et c'est délibéré : il emporte `dist/`, les `node_modules`
79
+ # élagués, les assets du frontend et les workspaces `modules/*` — dont
80
+ # l'existence n'est pas connue au moment où ce fichier est généré. Nommer les
81
+ # chemins un à un ferait échouer la construction sur le premier dossier absent.
82
+ COPY --from=build --chown=node:node /app ./
83
+
84
+ # Jamais root : les ports de Nodefony (5151, 5152) n'exigent aucun privilège.
85
+ USER node
86
+ EXPOSE 5151
87
+
88
+ # Sonde de Docker / compose / Swarm sur `/readyz`, la route native du framework.
89
+ # ⚠️ k8s IGNORE HEALTHCHECK : y déclarer `livenessProbe: /livez` (le process
90
+ # est-il vivant ?) et `readinessProbe: /readyz` (peut-il recevoir du trafic ?).
91
+ # ⚠️ PODMAN construit en format OCI par défaut, et l'OCI ne porte PAS cette
92
+ # directive : la sonde est retirée de l'image SANS erreur (`podman inspect
93
+ # --format '{{.HealthCheck}}'` rend alors `<nil>`). Constaté, avec son remède :
94
+ # podman build --format docker -t <image> .
95
+ # Le reste passe tel quel sous Podman — cache monté, forme exec, node en PID 1,
96
+ # arrêt gracieux en 0.
97
+ HEALTHCHECK --interval=10s --timeout=2s --start-period=20s --retries=3 \
98
+ CMD ["node", "-e", "fetch('http://127.0.0.1:5151/readyz').then(r=>process.exit(r.ok?0:1)).catch(()=>process.exit(1))"]
99
+
100
+ # Forme EXEC obligatoire : `node` devient PID 1 et reçoit le SIGTERM. En forme
101
+ # shell (`CMD npx nodefony production`), c'est `/bin/sh` qui est PID 1 — il ne
102
+ # transmet pas les signaux, donc plus aucun arrêt gracieux et un SIGKILL à
103
+ # chaque déploiement. L'image marcherait, et rien ne signalerait la perte.
104
+ CMD ["node_modules/.bin/nodefony", "production"]
@@ -0,0 +1,314 @@
1
+ # <%= it.appName %>
2
+
3
+ Application [Nodefony](https://github.com/nodefony/nodefony-core) — générée par `nodefony create app`.
4
+
5
+ <% if (it.complete) { %>Cette app n'est pas un « hello world » : c'est le **framework complet, câblé et
6
+ prouvé** — HTTP + WebSocket dans le même controller, ORM avec persistance
7
+ out-of-the-box, firewall applicatif, temps réel, console d'administration,
8
+ tests, lint, infra docker. Chaque fichier est commenté : lis-les, ils expliquent
9
+ le POURQUOI, pas juste le quoi.
10
+ <% } else { %>App **minimale** : le socle serveur (`@nodefony/http`) + le router et les
11
+ controllers (`@nodefony/framework`)<% if (it.front) { %> + le frontend <%= it.frontend %> servi par Vite<% } %> — la
12
+ base saine, à faire grandir. Pour la vitrine complète (ORM, firewall, realtime,
13
+ Studio, infra docker) : régénère avec `--preset complete`.
14
+ <% } %>
15
+ ---
16
+
17
+ ## 1. Démarrage express (60 secondes)
18
+
19
+ ```bash
20
+ npm install
21
+ npm run build # bundle rolldown → dist/
22
+ npm run dev # serveur de développement
23
+ ```
24
+
25
+ Puis :
26
+
27
+ - http://127.0.0.1:5151/api/hello — ta première route
28
+ <% if (it.front) { %>- http://127.0.0.1:5151/ — ton app <%= it.frontend %> (HMR Vite en dev)
29
+ <% } %><% if (it.complete) { %>- http://127.0.0.1:5151/nodefony — **Studio**, la console d'administration (dev)
30
+
31
+ > L'app **persiste déjà** : sans aucune base déclarée, l'ORM Drizzle crée une
32
+ > sqlite locale (`var/databases/`) — users, sessions et jetons y survivent aux
33
+ > redémarrages. Aucun service externe requis pour commencer.
34
+ <% } %>
35
+ ## 2. Visite guidée — ce que l'app démontre
36
+
37
+ - **Route HTTP** — `curl http://127.0.0.1:5151/api/hello`
38
+ - **WebSocket, _même controller_** — `npx wscat -c ws://127.0.0.1:5151/api/echo` puis tape un message
39
+ <% if (it.front) { %>- **Frontend <%= it.frontend %> (Vite + HMR)** — http://127.0.0.1:5151/ — l'app fetch le backend via `/api`
40
+ <% } %><% if (it.complete) { %>- **Studio (console admin, dev)** — http://127.0.0.1:5151/nodefony — config, sessions, logs, routes
41
+ - **ORM + persistance** — Drizzle : sans `NF_DATABASE_URL`, sqlite locale automatique
42
+ - **Firewall + audit** — chaque requête traverse le pipeline sécurité (logs `audit`)
43
+ - **Temps réel — socket Nodefony** — `nodefony/controllers/LiveController.ts` : canal `live:events` (alimenté par `live:say`, jamais par une horloge) + RPC `live:ping`<% if (it.front) { %> — la carte « Temps réel » de la page d'accueil le consomme par la façade client<% } %>
44
+ - **Redis (opt-in)** — `NF_REDIS_URL` présente ⇔ module chargé, stores basculent dessus
45
+ <% } %>- **Probes cloud-native** — `curl http://127.0.0.1:5151/livez` (liveness k8s)
46
+
47
+ Le différenciateur Nodefony tient dans `nodefony/controllers/HelloController.ts` :
48
+ **une route GET et une route WEBSOCKET dans la même classe** — même pipeline,
49
+ pas deux mondes séparés.
50
+
51
+ ## 3. Structure du projet
52
+
53
+ - `nodefony.config.ts` — LA config de l'app : uniquement les ÉCARTS aux défauts du framework
54
+ - `env.ts` — catalogue **typé** des variables d'environnement (seul lecteur de `process.env`, validé au boot)
55
+ - `index.ts` — point d'entrée : la classe `App` (module racine) + ses controllers<% if (it.front) { %> + l'entry frontend (`registerEntry`)<% } %>
56
+ - `nodefony/controllers/` — tes controllers (`@controller` + `@route`, HTTP **et** WS)
57
+ <% if (it.front) { %>- `frontend/src/` — ton app <%= it.frontend %>, servie par Vite (HMR dev, build prod)
58
+ <% } %>- `tests/` — tests vitest : unitaires (`npm test`) + e2e réel (`npm run test:e2e`)
59
+ - `AGENTS.md` — instructions pour un agent IA, 100 % généré (régénéré par `create`) ; tes notes vivent dans sa zone préservée
60
+ <% if (it.complete) { %>- `compose.yaml` — infra de dev docker : Redis<% if (it.db) { %>, <%= it.db.label %><% } %>, Loki/Grafana (profil)
61
+ <% } %>- `rolldown.config.ts` — build : 3 lignes, délègue tout au socle publié `nodefony/bundler`
62
+ - `.oxlintrc.json` — lint non-intrusif (warn) ; le style est délégué à Prettier
63
+ - `vitest.config.ts` — tests unitaires ; porte le bloc `oxc` décorateurs (OBLIGATOIRE, commenté)
64
+ - `vitest.e2e.config.ts` — tests e2e, config séparée : `npm test` ne montre que ce qu'il exécute
65
+ - `var/` — données locales (sqlite, logs fichiers), gitignoré
66
+ <% if (it.complete) { %>
67
+ ## 4. Infra de développement (docker)
68
+
69
+ <% if (it.db) { %>Tu as retenu **<%= it.db.label %>** à la création : le `compose.yaml` ne porte que
70
+ ce service (plus Redis), et `.env` déclare déjà `NF_DATABASE_URL` dessus. Lance
71
+ l'infra **avant** l'app :
72
+
73
+ ```bash
74
+ npm run infra:up # docker : Redis + <%= it.db.label %> (le compose ne porte qu'eux)
75
+ npm run dev
76
+ npm run infra:down # arrêt (les volumes survivent)
77
+ ```
78
+
79
+ Redis n'est utilisé que si `NF_REDIS_URL` est déclarée — sinon l'app reste en
80
+ mémoire de process, ce qui suffit tant qu'elle tourne en un seul exemplaire :
81
+
82
+ ```bash
83
+ NF_REDIS_URL="redis://:<%= it.appName %>-dev@127.0.0.1:6379" # dans .env
84
+ ```
85
+
86
+ Repasser en **sqlite locale** : commente `NF_DATABASE_URL` dans `.env`, rien
87
+ d'autre. Le dialecte SQL est déduit du **scheme de l'URL** (`postgres://`,
88
+ `mysql://`, `sqlite:`) — changer de base ne change **rien d'autre** dans l'app.
89
+ Les mots de passe par défaut du compose sont publics, pour le dev local uniquement.
90
+ <% } else { %>L'app démarre **sans docker** : la base est une **sqlite locale** (`var/databases/`),
91
+ retenue à la création. Le `compose.yaml` fournit le cran au-dessus :
92
+
93
+ ```bash
94
+ npm run infra:up # Redis (sessions partagées, realtime multi-process)
95
+ docker compose --profile loki up -d # + Loki + Grafana (logs centralisés)
96
+ npm run infra:down # arrêt (les volumes survivent)
97
+ ```
98
+
99
+ Câblage côté app — une variable, tout le reste se dérive (`store: "auto"`) :
100
+
101
+ ```bash
102
+ NF_REDIS_URL="redis://:<%= it.appName %>-dev@127.0.0.1:6379" # dans .env
103
+ ```
104
+
105
+ Pour passer sur une vraie base SQL : déclare `NF_DATABASE_URL`. Le dialecte est
106
+ déduit du **scheme de l'URL** (`postgres://`, `mysql://`, `sqlite:`) — changer de
107
+ base ne change **rien d'autre** dans l'app. Le service docker correspondant n'est
108
+ pas dans ce `compose.yaml` (une app y retient un seul dialecte) : ajoute-le, ou
109
+ recrée une app avec `nodefony create app <nom> --database postgres`.
110
+ <% } %><% } %>
111
+ ## 5. Tests — `npm test` est ton PREMIER diagnostic
112
+
113
+ ```bash
114
+ npm test # unitaires : l'app se CHARGE (imports, décorateurs, config) — < 1 s
115
+ npm run test:e2e # build + boot RÉEL (production --detach --wait) + HTTP + WS + probes
116
+ ```
117
+
118
+ <% if (it.db) { %>> **Les e2e ont besoin de DEUX bases de plus**, sur ton serveur
119
+ > <%= it.db.label %> : `<%= it.db.databaseE2e %>` (la suite ne touche jamais
120
+ > celle du développement) et `<%= it.db.databaseScratch %>` (la base vierge que
121
+ > la suite de migrations salit puis remet à zéro). Le compose les crée à sa
122
+ > PREMIÈRE initialisation — sur une infra déjà montée, `docker compose down -v`
123
+ > les fera naître, ou crée-les à la main. Elles ne se fabriquent pas toutes
124
+ > seules au moment des tests : `CREATE DATABASE` est un privilège
125
+ > d'administration, que ton compte applicatif n'a pas — et ne doit pas avoir.
126
+
127
+ <% } %>**Réflexe** : quelque chose semble cassé → `npm test` AVANT de relire du code ou
128
+ de redémarrer. En une seconde il prouve que l'app s'importe, que les décorateurs
129
+ compilent et que la config valide — ou te donne le fichier exact qui casse.
130
+
131
+ Le rapport est **franc** : les e2e ont leur propre config (`vitest.e2e.config.ts`),
132
+ `npm test` n'affiche jamais de tests « skipped » qui semblent verts sans avoir
133
+ rien prouvé. Le test e2e utilise le lancement détaché natif du framework :
134
+ `--wait` ne rend la main que quand la readiness est sondée (aucun `sleep`
135
+ arbitraire), et `nodefony stop` arrête proprement. Le client WebSocket est le
136
+ `WebSocket` **natif** de Node — zéro dépendance de test.
137
+
138
+ ## 6. Qualité du code
139
+
140
+ ```bash
141
+ npm run typecheck # tsgo — le bundler ne type-check PAS : gate séparé, obligatoire
142
+ npm run doctor # cohérence du projet : config, modules déclarés, wiring
143
+ npm run lint # oxlint — garde-fous en warn, non-intrusif
144
+ npm run format # prettier — le style, c'est lui qui décide
145
+ ```
146
+
147
+ Le lint et le typecheck sont **deux gates distincts**, et c'est volontaire :
148
+ `tsgo` juge les TYPES, `oxlint` juge tout ce qu'un type ne dit pas — code mort,
149
+ promesse mal formée, import Node sans son préfixe. Aucun des deux ne remplace
150
+ l'autre.
151
+
152
+ `oxlint` s'appuie sur le même analyseur que le bundler (`rolldown`) : un seul
153
+ lecteur de ta syntaxe, donc aucun risque que l'un accepte ce que l'autre refuse.
154
+ Il n'a **pas** besoin du paquet `typescript` — celui-ci ne reste dans les
155
+ dépendances que pour ton éditeur.
156
+
157
+ Les règles sont dans `.oxlintrc.json`, commentées par leur intention. Deux
158
+ familles ne pardonnent pas : le code mort (il finit par mentir) et le préfixe
159
+ `node:` sur les modules du runtime (sans lui, un paquet npm homonyme peut prendre
160
+ la place d'un module natif). Le reste avertit sans bloquer.
161
+
162
+ ## 7. Quand ça casse (troubleshooting)
163
+
164
+ Dans l'ordre — chaque étape isole un étage, du moins cher au plus cher :
165
+
166
+ 1. **`npm test`** — l'app se charge-t-elle ? Import cassé, décorateur, config
167
+ invalide : le fichier fautif est nommé.
168
+ 2. **`npm run typecheck`** — un vert vitest ne type-check RIEN (les types sont
169
+ effacés à la transpilation) ; `tsgo` attrape ce que le build laisse passer.
170
+ 3. **`npx nodefony status`** — un serveur tourne-t-il déjà ? (port occupé,
171
+ vieux process détaché). `npx nodefony stop` arrête proprement. Si le port est
172
+ tenu par une AUTRE application Nodefony, `status` la nomme :
173
+ `npx nodefony stop <nom>` l'arrête sans changer de dossier.
174
+ 4. **Rebuild** — comportement fantôme après un gros changement : `npm run build`
175
+ puis relance (le serveur charge `dist/`, pas tes sources).
176
+ <% if (it.complete) { %>
177
+ ### `npm install` s'arrête sur « gyp ERR! find Python »
178
+
179
+ Ton manifeste porte ceci, et il faut l'y laisser :
180
+
181
+ ```json
182
+ "allowScripts": { "better-sqlite3": false }
183
+ ```
184
+
185
+ `better-sqlite3` (le pilote SQLite, tiré par `@nodefony/drizzle`) livre ses
186
+ binaires **déjà compilés** et demande à npm de ne pas le recompiler. npm oublie
187
+ cette demande dès qu'un `package-lock.json` existe — donc dès ton premier
188
+ `npm install` — et lance alors `node-gyp rebuild`, qui exige Python et un
189
+ compilateur C++ ([npm/cli#9837](https://github.com/npm/cli/issues/9837)). La
190
+ ligne ci-dessus le lui interdit explicitement, ce qu'il respecte dans toutes
191
+ les versions.
192
+
193
+ Si tu l'as retirée et que l'installation casse : remets-la, supprime
194
+ `node_modules`, relance `npm install`. Rien à compiler, SQLite fonctionne.
195
+ <% } %>
196
+ ## 8. Production (cloud-native)
197
+
198
+ ```bash
199
+ npm run build # backend (rolldown)<% if (it.front) { %> + frontend (vite → public/dist, fingerprinté)<% } %>
200
+ npm start # nodefony production — bind 0.0.0.0, logs stdout, probes /livez /readyz
201
+ ```
202
+ <% if (it.front) { %>
203
+ > Le front de production est un build Vite figé (`public/dist/`), servi en
204
+ > statics par Nodefony — `npm run build` le produit (il chaîne
205
+ > `nodefony frontend:build`). Si tu lances `npm start` sans build, le boot le
206
+ > construit une fois pour toi quand Vite est installé (poste de dev) et le DIT
207
+ > dans les logs ; dans une image de production sans devDependencies, builde à
208
+ > l'image — sinon la page est servie sans interface et le boot le signale en
209
+ > ERROR.
210
+ <% } %>
211
+ ### Image de container
212
+
213
+ `Dockerfile` et `.dockerignore` sont générés avec l'app ; la doctrine y est
214
+ commentée ligne à ligne (multi-stage, `USER node`, sonde sur `/readyz`, forme
215
+ exec du `CMD`).
216
+
217
+ ```bash
218
+ docker build -t <%= it.appName %> .
219
+ docker run -p 5151:5151 <%= it.appName %>
220
+ docker stop -t 20 <container> # SIGTERM → drain → exit 0
221
+ ```
222
+
223
+ > ⚠️ **La période de grâce doit rester au-dessus de `shutdownDeadline`** (15 s
224
+ > par défaut) : `docker stop` n'attend que 10 s sans `-t`, et k8s 30 s. En
225
+ > dessous, le drain est coupé par un SIGKILL et les requêtes en vol meurent —
226
+ > sans erreur ni trace, à chaque déploiement.
227
+
228
+ #### Si tu PUBLIES cette image
229
+
230
+ L'image emporte `node_modules` élagué : la **publier** — sur un registre public,
231
+ ou en la livrant à un tiers — te rend distributeur du code de tes dépendances.
232
+ MIT, BSD, ISC et Apache-2.0 demandent alors que leur texte et leur copyright
233
+ accompagnent le code. C'est déjà le cas matériellement : chaque paquet porte son
234
+ propre fichier de licence dans `node_modules`, et l'image les emporte avec lui.
235
+
236
+ Ce qui manque, c'est l'inventaire — npm le produit sans rien installer :
237
+
238
+ ```bash
239
+ npm sbom --sbom-format spdx --omit=dev > sbom.spdx.json
240
+ ```
241
+
242
+ > Un **déploiement interne** (ton propre registre, ton cluster) n'est pas une
243
+ > distribution : ces obligations ne s'y appliquent pas. Et un inventaire écrit à
244
+ > la main serait faux dès le premier `npm install` — c'est pourquoi il se
245
+ > régénère plutôt qu'il ne se commite.
246
+
247
+ <% if (it.db) { %>### Migrations de schéma
248
+
249
+ En développement, la base **suit le code** : les tables naissent au démarrage et
250
+ un champ facultatif ajouté est posé au boot suivant. Rien de tout cela n'a lieu
251
+ en production — le schéma s'y applique par des **migrations**, avant que le
252
+ premier exemplaire ne démarre.
253
+
254
+ Cette application **naît avec sa première migration**, sous `migrations/` : celle
255
+ qui crée sa table `User`. Elle est écrite à la création et entre dans le premier
256
+ commit, comme le lockfile — le schéma appartient au dépôt, jamais au
257
+ déploiement. Deux conséquences pratiques :
258
+
259
+ - **Si l'application a été créée sans installation** (`--no-install`, ou un build
260
+ en échec), la migration n'a pas pu être écrite : lance
261
+ `npx nodefony orm:generate --name init` avant ton premier déploiement, sinon
262
+ rien ne créera la table et les exemplaires resteront en 503.
263
+ - **On n'écrit pas de migration en production** : `drizzle-kit` est une
264
+ dépendance de développement, absente de l'image. Générer se fait ici,
265
+ appliquer se fait là-bas.
266
+
267
+ ```bash
268
+ npx nodefony orm:generate # écrit les migrations des entités modifiées
269
+ npx nodefony orm:migrate --dry-run # ce qui serait appliqué, sans rien écrire
270
+ npx nodefony orm:migrate # applique (verrou + historique)
271
+ npx nodefony orm:migrate:status # 0 = à jour · 1 = en retard — ta barrière de déploiement
272
+ ```
273
+
274
+ `deploy/migrate-job.yaml` est le **travail Kubernetes** correspondant, déjà rendu
275
+ au nom de cette application : même image que le Deployment, secret DDL séparé du
276
+ compte qui sert le trafic, mode d'emploi en tête de fichier. Sans orchestrateur
277
+ (un seul exemplaire), `ddl: "migrate"` dans la config du connecteur applique les
278
+ migrations au démarrage — c'est le seul cas où c'est sûr.
279
+
280
+ > Les pods démarrent sans jamais fabriquer le schéma : un exemplaire dont la base
281
+ > est en retard répond **503 sur `/readyz`** (jamais sur `/livez`) et reste hors
282
+ > du répartiteur de charge, l'ancienne version continuant de servir. Lance le
283
+ > travail de migration : les pods deviennent disponibles **seuls**.
284
+
285
+ Le détail — droits SQL des deux comptes, règle N-1, dérive d'un schéma modifié à
286
+ la main : `node_modules/@nodefony/drizzle/docs/migrations.md`.
287
+
288
+ <% } %>Un process Node = un pod/container ; le scaling horizontal vient de
289
+ l'orchestrateur (k8s, Swarm, Cloud Run…).<% if (it.complete) { %> Studio est chargé en dev seulement
290
+ (`policy: "dev"`) — pour l'exposer en production, protège `/nodefony` par une
291
+ zone firewall puis passe la policy à `"mandatory"` (la recette est commentée
292
+ dans `nodefony.config.ts`).<% } %>
293
+
294
+ ## 9. Développer le framework lui-même (`--link`)
295
+
296
+ Si cette app a été générée avec `--link`, les dépendances `nodefony`/`@nodefony/*`
297
+ pointent en `file:` vers un checkout local de `nodefony-core` : tu modifies le
298
+ framework, tu rebuilds le checkout, ton app le voit. Ne publie pas ce
299
+ `package.json` tel quel — après la release npm, régénère sans `--link`
300
+ (versions `^<%= it.nodefonyVersion %>`).
301
+
302
+ ## 10. Aller plus loin
303
+
304
+ - **Ajouter une route** : une méthode décorée `@route` dans un controller — c'est tout.
305
+ - **Régénérer autrement** : `nodefony create app` (interactif) ou
306
+ `--preset <complete|minimal> --frontend <none|react|vue|angular|svelte>`
307
+ `--database <sqlite|postgres|mariadb|mysql>` (scriptable).
308
+ <% if (it.complete) { %>- **Protéger une zone** : `use("@nodefony/security", { firewalls: { … } })` dans
309
+ `nodefony.config.ts` (validée Zod au boot, config invalide = échec franc).
310
+ - **Canaux temps réel** : le module realtime multiplexe N canaux duplex sur une
311
+ seule socket — voir la doc du framework.
312
+ - **Studio** est ta carte du territoire : modules chargés, routes, config
313
+ résolue, sessions, logs — tout ce que le framework sait, il te le montre.
314
+ <% } %>
@@ -0,0 +1,28 @@
1
+ # Ce qui n'entre PAS dans le contexte de construction de l'image.
2
+ # Motifs relatifs à la racine du contexte — `**/` pour atteindre les modules
3
+ # locaux (`modules/*/node_modules`, `modules/*/dist`).
4
+
5
+ # Reconstruits DANS l'image. Entrés depuis la machine, ils masqueraient le
6
+ # build de l'étape et l'image partirait avec le code de la veille.
7
+ **/node_modules
8
+ **/dist
9
+
10
+ # Écritures du runtime (journaux, pid, sockets) — propres à une machine.
11
+ var
12
+ *.log
13
+
14
+ # Secrets — convention B : `*.local` n'est jamais commité, et n'entre pas
15
+ # davantage dans une image. Les couches d'une image sont lisibles par qui la
16
+ # télécharge, et un secret y reste même effacé par une couche suivante. En
17
+ # production, les valeurs viennent de l'orchestrateur (variables
18
+ # d'environnement, gestionnaire de secrets).
19
+ *.local
20
+ **/*.local
21
+
22
+ # Bruit — sans effet sur l'exécution, mais chaque octet du contexte est envoyé
23
+ # au démon Docker à chaque construction.
24
+ .git
25
+ .gitignore
26
+ Dockerfile
27
+ .dockerignore
28
+ .DS_Store
@@ -0,0 +1,130 @@
1
+ import { defineEnv, envEnum, envNumber<% if (it.complete || it.front) { %>, envString<% } %> } from "nodefony";
2
+
3
+ /**
4
+ * Catalogue typé des variables d'environnement — SEUL lecteur de `process.env`.
5
+ * Validé au boot (fail-fast), exposé au descripteur de config via `ctx.env`.
6
+ <% if (it.complete) { %> *
7
+ * 💾 PERSISTANCE (infra déclarée) : tu déclares une ou deux URLs, le framework
8
+ * DÉRIVE les stores (users, sessions, jetons, idempotence…) — `store: "auto"`.
9
+ <% } %> */
10
+ export const env = defineEnv({
11
+ /**
12
+ * Port d'écoute HTTP. Absent = défaut du framework (5151). Le déclarer est le
13
+ * cas du DÉPLOIEMENT : le port y est un contrat (service k8s, ingress, sonde).
14
+ * En dev, ne rien mettre : si 5151 est déjà pris (une autre app Nodefony),
15
+ * le framework prend le port libre suivant et l'ANNONCE (`portPolicy: "auto"`,
16
+ * défaut hors production) — en production il échoue franchement (`strict`),
17
+ * car un pod qui écoute ailleurs en silence est un pod injoignable.
18
+ */
19
+ NF_PORT: envNumber({
20
+ optional: true,
21
+ description: "Port d'écoute HTTP (défaut framework 5151).",
22
+ }),
23
+
24
+ /**
25
+ * Alias PLATEFORME : Cloud Run, Heroku, Railway et Fly injectent `PORT` et
26
+ * exigent que le process écoute dessus. On l'accepte tel quel — zéro glue de
27
+ * déploiement. `NF_PORT` l'emporte si les deux sont présents.
28
+ */
29
+ PORT: envNumber({
30
+ optional: true,
31
+ description:
32
+ "Alias plateforme du port HTTP (Cloud Run/Heroku) — NF_PORT gagne.",
33
+ }),
34
+
35
+ /**
36
+ * Port d'écoute HTTPS/HTTP2 (défaut framework 5152). Pas d'alias plateforme :
37
+ * en cloud, le TLS est terminé à l'ingress et le pod sert en clair.
38
+ */
39
+ NF_PORT_HTTPS: envNumber({
40
+ optional: true,
41
+ description: "Port d'écoute HTTPS/HTTP2 (défaut framework 5152).",
42
+ }),
43
+
44
+ NF_LOG_DRIVER: envEnum(["stdout", "file", "null"] as const, {
45
+ default: "stdout",
46
+ }),
47
+ <% if (it.complete) { %>
48
+ /**
49
+ * Infra `database` : URL unique, dialecte déduit du scheme
50
+ * (`sqlite:./var/app.db` | `postgres://…` | `mysql://…` | `mongodb://…`).
51
+ * ABSENTE = profil solo : sqlite local (l'app persiste quand même).
52
+ * Alias plateforme accepté : `DATABASE_URL`. Secret → jamais loggée brute.
53
+ */
54
+ NF_DATABASE_URL: envString({
55
+ optional: true,
56
+ description:
57
+ "Infra database : URL unique (sqlite:|postgres://|mysql://|mongodb://), dialecte déduit du scheme.",
58
+ }),
59
+
60
+ /**
61
+ * Infra `cache` (éphémère partagé) : URL Redis. Sa présence CHARGE le module
62
+ * `@nodefony/redis` et aiguille les briques éphémères (sessions, idempotence)
63
+ * vers Redis. Alias plateforme accepté : `REDIS_URL`.
64
+ */
65
+ NF_REDIS_URL: envString({
66
+ optional: true,
67
+ description:
68
+ "Infra cache : URL Redis (redis://…) — sa présence charge @nodefony/redis.",
69
+ }),
70
+
71
+ /**
72
+ * 🔐 Clés de chiffrement au repos (module security) — les VALEURS vivent dans
73
+ * `.env.local` (gitignoré), générées à la création de l'app. Rotation ou
74
+ * rattrapage : `npx nodefony security:secrets --write`. En production :
75
+ * Secret k8s / vault — jamais en git.
76
+ *
77
+ * Les deux PREMIÈRES sont `optional` À DESSEIN : absentes, la brique
78
+ * concernée se désactive en fail-safe (2FA, webhooks) avec un log CRITIC —
79
+ * une application qui n'en use pas doit pouvoir démarrer sans elles. Ne pas
80
+ * leur ajouter `requiredIn` par symétrie : ce serait refuser de démarrer une
81
+ * application qui ne s'en sert pas.
82
+ */
83
+ NF_TOTP_KEY: envString({
84
+ optional: true,
85
+ description:
86
+ "Clé de chiffrement des secrets 2FA/TOTP au repos (32 octets base64).",
87
+ }),
88
+ NF_WEBHOOK_KEY: envString({
89
+ optional: true,
90
+ description:
91
+ "Clé de chiffrement des secrets de signature webhook (32 octets base64).",
92
+ }),
93
+ /**
94
+ * Celle-ci n'a PAS de repli acceptable. Absente, un secret est tiré au
95
+ * démarrage : chaque exemplaire en tire un différent, et chaque redémarrage
96
+ * en change — un pod refuse alors le jeton anti-CSRF qu'un autre vient
97
+ * d'émettre, et l'utilisateur voit un formulaire rejeté au hasard, sans la
98
+ * moindre erreur dans les journaux. `requiredIn` fait échouer le démarrage
99
+ * là où ça compte, et `nodefony doctor --env production` le dit AVANT.
100
+ */
101
+ NF_CSRF_SECRET: envString({
102
+ optional: true,
103
+ requiredIn: ["production"],
104
+ description:
105
+ "Secret des jetons anti-CSRF (synchronizer) — partagé entre process en cluster.",
106
+ }),
107
+
108
+ /**
109
+ * Mot de passe du compte admin seedé au premier boot (voir
110
+ * `nodefony/security/users.ts`). DEV : défaut `admin` (compte admin/admin,
111
+ * comme Grafana — pratique, LOCAL uniquement). PROD : OBLIGATOIRE — sans lui
112
+ * le seed refuse (jamais de mot de passe par défaut en production).
113
+ *
114
+ * Pas de `requiredIn` : l'exigence ne vaut qu'au PREMIER démarrage. Une fois
115
+ * le compte créé, la variable ne sert plus — la rendre requise ferait refuser
116
+ * de démarrer un déploiement qui tourne depuis des mois.
117
+ */
118
+ NF_ADMIN_PASSWORD: envString({
119
+ optional: true,
120
+ description:
121
+ "Mot de passe du compte admin seedé au 1er boot (obligatoire en production).",
122
+ }),
123
+ <% } %><% if (it.complete || it.front) { %>
124
+ // L'origine publique du dev-server Vite n'est PAS une variable
125
+ // d'environnement : elle se dérive du `Host` de chaque requête, si bien que
126
+ // ton poste et un navigateur en conteneur chargent la même page en même
127
+ // temps, sans rien à poser. Pour un besoin durable — tunnel, proxy frontal —
128
+ // écris `publicOrigin` dans `nodefony.config.ts` : c'est un réglage, il gagne
129
+ // sur la dérivation, et il ne s'oublie pas dans un shell.
130
+ <% } %>});
@@ -0,0 +1,28 @@
1
+ # Fins de ligne — LF PARTOUT, y compris dans la copie de travail Windows.
2
+ #
3
+ # Sans cette règle, git convertit les fichiers texte en CRLF au checkout Windows
4
+ # (`core.autocrlf` y vaut `true` par défaut, et sur les runners de forge). Tout
5
+ # ce qui compare un fichier à une sortie de générateur échoue alors sur une
6
+ # différence invisible à l'œil : `\r\n` contre `\n`. Le message d'erreur, lui,
7
+ # parle d'autre chose — d'un fichier « périmé », d'un test qui « ne correspond
8
+ # pas » — et envoie chercher là où il n'y a rien.
9
+ #
10
+ # C'est aussi ce qui garde un diff lisible quand l'équipe mêle Windows, macOS et
11
+ # Linux : sans cela, un fichier ouvert sous Windows ressort modifié en entier.
12
+ * text=auto eol=lf
13
+
14
+ # Binaires : jamais convertis, jamais diffés comme du texte.
15
+ *.png binary
16
+ *.jpg binary
17
+ *.jpeg binary
18
+ *.gif binary
19
+ *.ico binary
20
+ *.webp binary
21
+ *.woff binary
22
+ *.woff2 binary
23
+ *.ttf binary
24
+ *.otf binary
25
+ *.pdf binary
26
+ *.zip binary
27
+ *.gz binary
28
+ *.db binary