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,71 @@
1
+ # AGENTS.md — <%= it.pkgName %>
2
+
3
+ > Instructions agent de CE module. Standard AGENTS.md : **le fichier le plus
4
+ > proche gagne** — quand tu travailles dans ce dossier, il prime sur celui de
5
+ > l'app. Vérité COURANTE, jamais un journal : pas de dates, pas de TODO ni
6
+ > d'historique (ça vit dans `git log`) ; un fait périmé se CORRIGE.
7
+
8
+ ## Rôle
9
+
10
+ <%= it.description %>
11
+
12
+ ## Composants
13
+
14
+ - `index.ts` — `<%= it.pascal %>Module extends Module`, nom kernel `<%= it.name %>`. Valide sa config à `onKernelRegister`.
15
+ <% if (it.service) { %>- `<%= it.pascal %>Service` — `@injectable`, nom `<%= it.name %>`. Se récupère par `container.get("<%= it.name %>")`.
16
+ <% } %><% if (it.command) { %>- `<%= it.pascal %>Command` — CLI `nodefony <%= it.name %>:hello`, `kernelEvent: onReady` (zéro serveur).
17
+ <% } %><% if (it.controller !== "none") { %>- `<%= it.pascal %>Controller` — saveur `<%= it.controller %>`, monté sous `/api/<%= it.name %>`<% if (it.needsRealtime) { %> (socket Nodefony : canaux pub/sub + actions RPC)<% } %>. Un controller TRADUIT (HTTP/WS ↔ service), il ne décide pas.
18
+ <% } %><% if (it.front) { %>- `frontend/` — entry Vite <%= it.frontend %> (HMR en dev, statics buildés en prod).
19
+ <% } %>- `nodefony/config/config.ts` — schéma Zod = **source unique des défauts**. `defineModuleConfig.ts` = builder pur (valide et gèle, ne retape jamais une valeur).
20
+
21
+ ## Config
22
+
23
+ | Clé | Type | Défaut |
24
+ | ---------- | --------- | -------------------------------- |
25
+ | `enabled` | `boolean` | `true` |
26
+ | `greeting` | `string` | `"Bonjour de <%= it.name %>"` |
27
+
28
+ Chargement : `use("<%= it.pkgName %>", { … })` dans le `nodefony.config.ts` de
29
+ l'app. Config invalide → boot FATAL, champ nommé.
30
+
31
+ ## Décisions figées
32
+
33
+ - **La logique vit dans le service**, pas dans les controllers : un controller
34
+ traduit du HTTP/WS, un service est réutilisable (CLI, job, autre module).
35
+ - **Jamais `Nodefony.getKernel()` au top-level** d'un fichier chargé à l'import :
36
+ le module deviendrait impossible à importer — donc à tester — sans serveur.
37
+ - Workspace npm (`modules/<%= it.name %>/`) : le Kernel charge le module PAR SON
38
+ NOM → il doit rester résolvable (symlink npm workspaces).
39
+ - **Le container DI est PROTOTYPAL** : un service posé ici est visible du
40
+ kernel ENTIER et de chaque scope de requête (chaîne de prototypes, zéro
41
+ copie par requête) ; ce qu'un scope `set()` meurt avec sa requête. Ni cache
42
+ de services maison, ni singleton maison — `container.get("<nom>")` EST le
43
+ mécanisme. Réf : `node_modules/nodefony/docs/service.md`.
44
+ - **Isomorphisme** : pour tout code NAVIGATEUR de ce module, le client temps
45
+ réel et les types du protocole s'importent du cœur (`nodefony`,
46
+ `nodefony/client`, `nodefony/react`) — jamais un client WS à la main, jamais
47
+ un type dupliqué front/back. Réf : `node_modules/nodefony/docs/client.md`.
48
+ - **WS métier = socket Nodefony** : `nodefony create controller <nom>
49
+ --kind realtime --module <%= it.name %>` (canaux + actions RPC + policies) —
50
+ l'echo WS brut des exemples est une démo du pipeline, pas un modèle.
51
+
52
+ ## Interdits sans accord
53
+
54
+ - Modifier `rolldown.config.ts` / `tsconfig.json`.
55
+ - Ajouter une dépendance npm runtime sans en peser le coût.
56
+ - Allouer par requête ce qui ne sert qu'à une minorité de requêtes (préférer
57
+ `null` + init au premier usage), ou attacher un listener sans prévoir son retrait.
58
+
59
+ ## Gotchas
60
+
61
+ - Ne pas redéclarer `options` dans le service (la classe `Service` l'assigne via `super()`).
62
+ - Ajouter un controller/front : `nodefony create controller|front <nom> --module <%= it.name %>` (câble l'`index.ts` seul).
63
+ - Ajouter une commande CLI : `nodefony create command <action> --module <%= it.pkgName %>` → `nodefony <%= it.name %>:<action>` (le préfixe est ajouté seul, le `this.addCommand(…)` aussi).
64
+ - Ajouter un service : `nodefony create service <Nom> --module <%= it.pkgName %>` (câble le `@services([…])` seul). Un service Nodefony est `@injectable()` + `extends Service` — une classe à méthodes `static` compile mais reste invisible au conteneur.
65
+ - Build : `rolldown` → `dist/index.js` (chargé par le Kernel). En dev, le superviseur rebuild tout seul.
66
+
67
+ ## Gates avant commit
68
+
69
+ ```bash
70
+ npm run typecheck && npm test && npm run build
71
+ ```
@@ -0,0 +1,62 @@
1
+ # <%= it.pkgName %>
2
+
3
+
4
+ <%= it.description %>
5
+
6
+
7
+ Module applicatif Nodefony — un **workspace npm**
8
+ (`<%= it.moduleDir %>/<%= it.name %>/`) chargé par le
9
+ manifeste `modules` de `nodefony.config.ts` de l'app :
10
+
11
+ ```ts
12
+ use("<%= it.pkgName %>", { enabled: true }),
13
+ ```
14
+
15
+ ## Configuration
16
+
17
+ | Clé | Type | Défaut | Rôle |
18
+ | ---------- | --------- | -------------------------------- | ------------------------------------------- |
19
+ | `enabled` | `boolean` | `true` | Interrupteur du module |
20
+ | `greeting` | `string` | `"Bonjour de <%= it.name %>"` | Exemple de champ — à remplacer par la vôtre |
21
+
22
+ La source unique est le schéma Zod de `nodefony/config/config.ts` : c'est lui qui porte
23
+ les défauts, les descriptions et la validation. Une clé inconnue ou mal typée fait échouer
24
+ le **boot**, en nommant le champ fautif.
25
+
26
+ ## Développer
27
+
28
+ ```bash
29
+ npm run build # rolldown → dist/ (le Kernel charge dist/index.js)
30
+ npm run typecheck # tsgo --noEmit
31
+ npm test # vitest
32
+ ```
33
+
34
+ En développement, le serveur (`npm run dev` à la racine de l'app) surveille les sources et
35
+ reconstruit tout seul : pas besoin de builder à la main à chaque changement.
36
+
37
+ ## Ajouter des briques
38
+
39
+ Depuis la **racine de l'app** :
40
+
41
+ ```bash
42
+ nodefony create controller articles --module <%= it.name %> # HTTP + WebSocket
43
+ nodefony create front dashboard --module <%= it.name %> # page Vite (React/Vue/Angular)
44
+ ```
45
+
46
+ Les deux commandes câblent elles-mêmes l'`index.ts` du module.
47
+
48
+ ## Structure
49
+
50
+ ```
51
+ modules/<%= it.name %>/
52
+ ├── index.ts ← la classe Module (controllers, services, config)
53
+ ├── nodefony/
54
+ │ ├── config/config.ts ← schéma Zod = source unique des défauts
55
+ │ ├── config/defineModuleConfig.ts ← builder pur (valide, gèle)
56
+ <% if (it.service) { %>│ ├── service/<%= it.pascal %>Service.ts ← la logique, injectable (`container.get("<%= it.name %>")`)
57
+ │ ├── interfaces/ ← l'API publique du service
58
+ <% } %><% if (it.command) { %>│ ├── command/<%= it.pascal %>Command.ts ← commande CLI `nodefony <%= it.name %>:hello`
59
+ <% } %>│ └── src/errors/ ← erreurs typées (code machine + contexte)
60
+ ├── docs/ ← documentation, surfacée dans Studio
61
+ └── tests/
62
+ ```
@@ -0,0 +1,55 @@
1
+ ---
2
+ module: "<%= it.pkgName %>"
3
+ topic: overview
4
+ audience: [human, ai]
5
+ tags: [module]
6
+ status: draft
7
+ ---
8
+
9
+ # <%= it.name %>
10
+
11
+
12
+ > <%= it.description %>
13
+
14
+
15
+ Cette page est **surfacée dans Studio** (onglet Docs du module) : ce que vous écrivez ici,
16
+ l'équipe le lit dans l'admin, sans quitter l'application.
17
+
18
+ ## Ce que fait le module
19
+
20
+ À remplir : le problème que ce module résout, et pour qui.
21
+
22
+ ## Configuration
23
+
24
+ Le module se charge et se configure depuis le manifeste de l'app (`nodefony.config.ts`) :
25
+
26
+ ```ts
27
+ use("<%= it.pkgName %>", {
28
+ enabled: true,
29
+ greeting: "Bonjour",
30
+ }),
31
+ ```
32
+
33
+ Les clés disponibles, leurs types et leurs défauts viennent du schéma Zod
34
+ (`nodefony/config/config.ts`) — c'est la **source unique** : la doc, la validation au boot et
35
+ le formulaire d'édition de Studio en dérivent tous les trois.
36
+ <% if (it.service) { %>
37
+ ## Service
38
+
39
+ `<%= it.pascal %>Service` est injectable sous le nom `<%= it.name %>` :
40
+
41
+ ```ts
42
+ const svc = container.get<<%= it.pascal %>Service>("<%= it.name %>");
43
+ svc.status(); // { ready: true }
44
+ ```
45
+ <% } %><% if (it.command) { %>
46
+ ## Commande CLI
47
+
48
+ ```bash
49
+ nodefony <%= it.name %>:hello
50
+ ```
51
+ <% } %>
52
+ ## À suivre
53
+
54
+ - Les routes exposées (une fois vos controllers écrits).
55
+ - Les décisions d'architecture qui méritent d'être expliquées plutôt que devinées.
@@ -0,0 +1,50 @@
1
+ import { Kernel, Module<% if (it.service) { %>, services<% } %> } from "nodefony";
2
+ import { controllers } from "@nodefony/framework";
3
+ import config, { type <%= it.pascal %>ConfigInput } from "./nodefony/config/config";
4
+ import { define<%= it.pascal %>Config } from "./nodefony/config/defineModuleConfig";
5
+ <% if (it.service) { %>import <%= it.pascal %>Service from "./nodefony/service/<%= it.pascal %>Service";
6
+ <% } %>
7
+ /**
8
+ * <%= it.pkgName %> — <%= it.description %>
9
+
10
+ *
11
+ * Module applicatif : un workspace npm à part entière
12
+ * (`<%= it.moduleDir %>/<%= it.name %>/`), chargé par le manifeste `modules` de
13
+ * `nodefony.config.ts`. Le Kernel l'importe PAR SON NOM (`<%= it.pkgName %>`) —
14
+ * d'où le workspace, qui le rend résolvable.
15
+ */
16
+
17
+ /**
18
+ * Rend la config du module typée à l'appel : `use("<%= it.pkgName %>", { … })`
19
+ * dans `nodefony.config.ts` propose les clés du schéma et refuse les fautes de
20
+ * frappe, au lieu d'avaler un `Record<string, unknown>`.
21
+ */
22
+ declare module "nodefony" {
23
+ interface NodefonyModuleConfig {
24
+ "<%= it.pkgName %>": <%= it.pascal %>ConfigInput;
25
+ }
26
+ }
27
+
28
+ // Les controllers du module se déclarent ici — `nodefony create controller <nom>
29
+ // --module <%= it.name %>` les ajoute à cette liste (et à ce dossier) tout seul.
30
+ @controllers([])
31
+ <% if (it.service) { %>@services([<%= it.pascal %>Service])
32
+ <% } %>class <%= it.pascal %>Module extends Module {
33
+ constructor(kernel: Kernel) {
34
+ super("<%= it.name %>", kernel, import.meta.url, config);
35
+ }
36
+
37
+ /**
38
+ * Valide la config au boot — défauts du schéma fusionnés avec ce que l'app
39
+ * passe dans `use()`. Une clé inconnue ou mal typée plante ICI, avec le champ
40
+ * fautif nommé, plutôt qu'en `undefined.x` au premier appel en production.
41
+ */
42
+ override async onKernelRegister(): Promise<this> {
43
+ this.options = define<%= it.pascal %>Config(
44
+ (this.options as <%= it.pascal %>ConfigInput) ?? {},
45
+ );
46
+ return this;
47
+ }
48
+ }
49
+
50
+ export default <%= it.pascal %>Module;
@@ -0,0 +1,60 @@
1
+ import { z } from "zod";
2
+
3
+ /**
4
+ * <%= it.pkgName %> — CONFIGURATION DU MODULE (schéma Zod = source unique).
5
+ *
6
+ * ⭐ TL;DR : CE SCHÉMA EST LA CONFIG. Chaque `.default(...)` est la valeur d'usine ;
7
+ * changer un défaut du module = ÉDITER ICI (et nulle part ailleurs). L'app, elle,
8
+ * ne surcharge que ses écarts, via `use("<%= it.pkgName %>", { … })`.
9
+ *
10
+ * RÈGLE D'OR (ADR-0006) : ce fichier porte le schéma commenté (type + validation +
11
+ * défaut + doc) ET matérialise les défauts par `parse({})`. Le builder
12
+ * (`define<%= it.pascal %>Config`) importe le schéma d'ici et ne retape aucune valeur —
13
+ * un défaut écrit à deux endroits finit toujours par diverger.
14
+ *
15
+ * SURCHARGE (précédence croissante) :
16
+ * • défauts du schéma (ce fichier) ;
17
+ * • app : `use("<%= it.pkgName %>", { … })` dans `nodefony.config.ts` ;
18
+ * • déploiement : `NF__<%= it.upper %>__<CHEMIN>=valeur` (override env générique, `__` = niveau).
19
+ *
20
+ * Le schéma reste **PUR** : aucune lecture de `process.env`, aucun accès au kernel
21
+ * (il est évalué à l'import — le kernel n'existe pas encore).
22
+ *
23
+ * Champ sensible (clé, mot de passe) → `.meta({ secret: true })` EN DERNIER de la
24
+ * chaîne : chaque méthode zod clone, une `.default()` posée après `.meta()` perdrait
25
+ * la métadonnée. Ces flags ressortent dans le JSON Schema lu par Studio.
26
+ */
27
+ /**
28
+ * ⚠️ `strictObject`, et non `object` : une clé INCONNUE doit être REFUSÉE, pas
29
+ * retirée en silence. C'est le défaut par défaut de Zod, et il coûte cher —
30
+ * `use("<%= it.pkgName %>", { gretting: "…" })` produisait une application qui
31
+ * démarre en IGNORANT ce que l'utilisateur a écrit, sans un mot. Le typage du
32
+ * registre `NodefonyModuleConfig` attrape la faute de frappe à la COMPILATION ;
33
+ * ceci l'attrape au DÉMARRAGE, pour tout ce qui contourne le compilateur — une
34
+ * config chargée d'un fichier, un `as never`, un override d'environnement.
35
+ */
36
+ export const <%= it.camel %>ConfigSchema = z.strictObject({
37
+ /** Interrupteur du module — l'app peut le charger sans l'activer. */
38
+ enabled: z
39
+ .boolean()
40
+ .default(true)
41
+ .describe("Active les fonctionnalités du module <%= it.name %>"),
42
+
43
+ /** Exemple : à remplacer par la vraie config du module. */
44
+ greeting: z
45
+ .string()
46
+ .min(1)
47
+ .default("Bonjour de <%= it.name %>")
48
+ .describe("Message renvoyé par le service (exemple de champ configurable)"),
49
+ });
50
+
51
+ /** Config telle que l'APP l'écrit dans `use()` — tous les champs optionnels. */
52
+ export type <%= it.pascal %>ConfigInput = z.input<typeof <%= it.camel %>ConfigSchema>;
53
+
54
+ /** Config telle que le CODE la lit — défauts appliqués, rien d'optionnel. */
55
+ export type <%= it.pascal %>Config = z.output<typeof <%= it.camel %>ConfigSchema>;
56
+
57
+ /** Défauts matérialisés (passés au `super()` du Module). */
58
+ const defaults: <%= it.pascal %>Config = <%= it.camel %>ConfigSchema.parse({});
59
+
60
+ export default defaults;
@@ -0,0 +1,55 @@
1
+ import { z } from "zod";
2
+ import { parseModuleConfig } from "nodefony";
3
+ import { <%= it.camel %>ConfigSchema } from "./config";
4
+ import type { <%= it.pascal %>Config, <%= it.pascal %>ConfigInput } from "./config";
5
+
6
+ /**
7
+ * <%= it.pkgName %> — LE COMMENT : builder PUR de la config.
8
+ *
9
+ * ⭐ TL;DR : ce fichier VALIDE et GÈLE. Il ne porte AUCUNE valeur — les défauts
10
+ * vivent dans le schéma de `./config.ts` (règle d'or ADR-0006). Pour changer un
11
+ * défaut, c'est là-bas ; ici, on ne fait que le faire respecter.
12
+ *
13
+ * Le nom du FICHIER est le même dans tous les modules Nodefony
14
+ * (`defineModuleConfig.ts`) ; la FONCTION, elle, est préfixée par le module —
15
+ * deux modules importés côte à côte ne se marchent pas dessus.
16
+ *
17
+ * L'override env générique (`NF__<%= it.upper %>__<CHEMIN>`) est appliqué par le core,
18
+ * pas ici. Si le module a besoin d'une variable d'env DÉDIÉE, elle s'applique
19
+ * APRÈS le parse, dans cette fonction, pour que le schéma reste pur.
20
+ *
21
+ * 🔴 **La validation passe par `parseModuleConfig`, du cœur** — un seul endroit
22
+ * pour une seule règle. Il lève une `BootConfigurationError`, et pas une `Error`
23
+ * ordinaire : le kernel distingue les deux. Un hook de cycle de vie qui lève une
24
+ * erreur QUELCONQUE est absorbé en développement (fail-soft — il protège la DX
25
+ * d'un module optionnel cassé), tandis qu'une erreur de CONFIGURATION interrompt
26
+ * le boot dans TOUS les environnements. Mesuré sur un module généré : avec une
27
+ * `Error`, `use("<%= it.pkgName %>", { gretting: "…" })` laissait l'application
28
+ * démarrer, servir, et rendre 0 — la faute de frappe n'atteignait personne. Une
29
+ * configuration explicite qu'on ne peut pas honorer ne se répare pas en
30
+ * continuant.
31
+ *
32
+ * ⚠️ Ne PAS réécrire ce bloc à la main : les dix modules du framework portaient
33
+ * chacun leur copie du `try`/`catch`, et elles avaient divergé sur les deux
34
+ * points qui comptent — le type de l'erreur levée et la langue du message.
35
+ *
36
+ * @param config - config brute venue de `use("<%= it.pkgName %>", { … })`.
37
+ * @returns config validée et gelée.
38
+ * @throws BootConfigurationError si un champ est invalide ou inconnu (toutes les
39
+ * erreurs Zod agrégées, par champ) — le boot s'interrompt, en dev comme en prod.
40
+ */
41
+ export function define<%= it.pascal %>Config(
42
+ config: <%= it.pascal %>ConfigInput = {},
43
+ ): <%= it.pascal %>Config {
44
+ return Object.freeze(
45
+ parseModuleConfig(<%= it.camel %>ConfigSchema, config, "<%= it.pkgName %>"),
46
+ );
47
+ }
48
+
49
+ /**
50
+ * JSON Schema de la config — Studio en dérive son formulaire d'édition
51
+ * (libellés, types, défauts, descriptions), sans une ligne d'UI écrite à la main.
52
+ */
53
+ export function <%= it.camel %>ConfigJsonSchema(): unknown {
54
+ return z.toJSONSchema(<%= it.camel %>ConfigSchema);
55
+ }
@@ -0,0 +1,20 @@
1
+ /**
2
+ * Erreur du module <%= it.name %>.
3
+ *
4
+ * Deux champs qui font la différence en production :
5
+ * - `code` : identifiant MACHINE (stable, grep-able, consommé par Studio et
6
+ * l'audit) — le message, lui, peut changer sans rien casser ;
7
+ * - `context` : payload structuré joint au log (jamais de secret ici).
8
+ */
9
+ export class <%= it.pascal %>Error extends Error {
10
+ constructor(
11
+ message: string,
12
+ public readonly code: string = "<%= it.upper %>_ERROR",
13
+ public readonly context?: Record<string, unknown>,
14
+ ) {
15
+ super(message);
16
+ this.name = "<%= it.pascal %>Error";
17
+ }
18
+ }
19
+
20
+ export default <%= it.pascal %>Error;
@@ -0,0 +1,53 @@
1
+ {
2
+ "name": "<%= it.pkgName %>",
3
+ "version": "<%= it.version %>",
4
+ <% if (it.publishable) { %> "type": "module",
5
+ "description": "<%= it.description %>",
6
+ "main": "./dist/index.js",
7
+ "types": "./dist/types/index.d.ts",
8
+ "exports": {
9
+ ".": {
10
+ "types": "./dist/types/index.d.ts",
11
+ "import": "./dist/index.js"
12
+ }
13
+ },
14
+ "files": [
15
+ "dist",
16
+ "docs"
17
+ ],
18
+ "scripts": {
19
+ "build": "rolldown -c rolldown.config.ts && tsgo -p tsconfig.declarations.json",
20
+ "typecheck": "tsgo --noEmit -p tsconfig.json && tsgo --noEmit -p tsconfig.tests.json",
21
+ "test": "vitest run"
22
+ },
23
+ <% } else { %> "private": true,
24
+ "type": "module",
25
+ "description": "<%= it.description %>",
26
+ "main": "dist/index.js",
27
+ "scripts": {
28
+ "build": "rolldown -c rolldown.config.ts",
29
+ "typecheck": "tsgo --noEmit",
30
+ "test": "vitest run"
31
+ },
32
+ <% } %> "peerDependencies": {
33
+ "nodefony": "*",
34
+ "@nodefony/framework": "*",
35
+ <% if (it.needsRealtime) { %> "@nodefony/realtime": "*",
36
+ <% } %><% if (it.front) { %> "@nodefony/frontend": "*",
37
+ <% } %><% if (it.publishable) { %> "zod": "<%= it.pkg["zod"] %>",
38
+ <% } %> "@nodefony/http": "*"
39
+ },
40
+ <% if (it.publishable) { %> "devDependencies": {
41
+ "nodefony": "*",
42
+ "@nodefony/framework": "*",
43
+ <% if (it.needsRealtime) { %> "@nodefony/realtime": "*",
44
+ <% } %><% if (it.front) { %> "@nodefony/frontend": "*",
45
+ <% } %> "@nodefony/http": "*"
46
+ },
47
+ "dependencies": {
48
+ "tslib": "<%= it.pkg["tslib"] %>"
49
+ }
50
+ <% } else { %> "dependencies": {
51
+ "zod": "<%= it.pkg["zod"] %>"
52
+ }
53
+ <% } %>}
@@ -0,0 +1,14 @@
1
+ import { defineNodefonyRolldownConfig } from "nodefony/bundler";
2
+
3
+ /**
4
+ * Build du module — socle rolldown PARTAGÉ du framework (`nodefony/bundler`),
5
+ * exactement comme l'app : `preserveModules` (l'arborescence source est
6
+ * reproduite dans `dist/`), plateforme node, ESM.
7
+ *
8
+ * `externalDeps` externalise tout ce que le module DÉCLARE (peerDependencies +
9
+ * dependencies) : `nodefony`, `@nodefony/*` et `zod` ne sont pas recopiés dans
10
+ * le bundle — ils sont résolus au runtime depuis les node_modules de l'app.
11
+ * Le Kernel charge ensuite `dist/index.js` par le nom du paquet
12
+ * (manifeste `modules` de `nodefony.config.ts`).
13
+ */
14
+ export default defineNodefonyRolldownConfig({ externalDeps: true });
@@ -0,0 +1,39 @@
1
+ import { describe, it, expect } from "vitest";
2
+ import { define<%= it.pascal %>Config } from "../nodefony/config/defineModuleConfig";
3
+ import defaults from "../nodefony/config/config";
4
+ import <%= it.pascal %>Module from "../index";
5
+
6
+ /**
7
+ * Ce que ce test prouve (et pourquoi il existe dès la naissance du module) :
8
+ * 1. le module s'IMPORTE sans kernel — donc il reste testable hors serveur
9
+ * (un module qui déréférence le kernel au chargement est intestable) ;
10
+ * 2. sa config a des défauts sûrs et REFUSE ce qui est invalide — la panne
11
+ * arrive au boot, nommée, pas en production sur un `undefined`.
12
+ */
13
+ describe("<%= it.name %>", () => {
14
+ it("s'importe sans kernel", () => {
15
+ expect(<%= it.pascal %>Module).toBeTypeOf("function");
16
+ });
17
+
18
+ it("applique ses défauts", () => {
19
+ const config = define<%= it.pascal %>Config({});
20
+ expect(config.enabled).toBe(true);
21
+ expect(config.greeting).toBe(defaults.greeting);
22
+ });
23
+
24
+ it("refuse une config invalide", () => {
25
+ expect(() =>
26
+ define<%= it.pascal %>Config({ greeting: "" } as never),
27
+ ).toThrow(/greeting/u);
28
+ });
29
+
30
+ // Une faute de frappe n'est pas une valeur invalide : Zod retire par défaut
31
+ // les clés qu'il ne connaît PAS, si bien que l'application démarrerait en
32
+ // ignorant ce qui a été écrit. Le schéma est `strictObject` pour cette raison,
33
+ // et ce cas est ce qui l'empêche de redevenir un `object` au premier refactor.
34
+ it("refuse une clé INCONNUE plutôt que de l'ignorer", () => {
35
+ expect(() =>
36
+ define<%= it.pascal %>Config({ gretting: "faute de frappe" } as never),
37
+ ).toThrow(/gretting/u);
38
+ });
39
+ });
@@ -0,0 +1,42 @@
1
+ {
2
+ "compilerOptions": {
3
+ "target": "ES2024",
4
+ "module": "ESNext",
5
+ "moduleResolution": "Bundler",
6
+ "lib": ["ESNext", "DOM", "DOM.Iterable"],
7
+ "types": ["node"],
8
+ "rootDir": "./",
9
+ "outDir": "./dist",
10
+ "strict": true,
11
+ "experimentalDecorators": true,
12
+ "emitDecoratorMetadata": true,
13
+ "esModuleInterop": true,
14
+ "skipLibCheck": true,
15
+ "resolveJsonModule": true,
16
+ "forceConsistentCasingInFileNames": true,
17
+ <% if (it.frontend === "react") { %> "jsx": "react-jsx",
18
+ <% } %><% if (it.publishable) { %> "stripInternal": true,
19
+ "noUnusedLocals": true,
20
+ "noUnusedParameters": true,
21
+ "declaration": true,
22
+ "declarationDir": "./dist/types"
23
+ <% } else { %> "noEmit": true
24
+ <% } %> },
25
+ "include": [
26
+ "index.ts",
27
+ "rolldown.config.ts",
28
+ <% if (!it.publishable) { %> "vitest.config.ts",
29
+ <% } %> "nodefony/**/*.ts"<% if (it.frontend === "react") { %>,
30
+ "frontend/src/**/*"<% } %><% if (it.frontend === "vue" || it.frontend === "angular" || it.frontend === "svelte") { %>,
31
+ "frontend/src/**/*.ts"<% } %><% if (!it.publishable) { %>,
32
+ "tests/**/*.ts"<% } %>
33
+ ],
34
+ <% if (it.publishable) { %> "exclude": [
35
+ "node_modules",
36
+ "dist",
37
+ "tests/**",
38
+ "**/*.test.ts",
39
+ "vitest.config.ts"
40
+ ]
41
+ <% } else { %> "exclude": ["node_modules", "dist"]
42
+ <% } %>}
@@ -0,0 +1,27 @@
1
+ import { defineConfig } from "vitest/config";
2
+
3
+ /**
4
+ * Config Vitest du module — suite UNITAIRE, qui ne frappe jamais le réseau.
5
+ *
6
+ * ⚠️ Le bloc `oxc` est OBLIGATOIRE : Vitest transforme les tests via oxc/rolldown,
7
+ * qui ne lit PAS le `experimentalDecorators` du tsconfig. Sans lui, les décorateurs
8
+ * (@controller, @route, @services, DI) sortiraient bruts et Node lèverait
9
+ * `SyntaxError` au chargement. `emitDecoratorMetadata` est requis par l'injection
10
+ * de dépendances (résolution des types constructeur via `design:paramtypes`).
11
+ *
12
+ * ⚠️ Les `*.e2e.test.ts` sont EXCLUS, exactement comme dans l'application.
13
+ * `nodefony create entity --module <ce module>` en pose un par ressource, et un
14
+ * test de bout en bout suppose un serveur DÉMARRÉ : c'est la suite e2e de
15
+ * l'application qui le lance, une fois pour toutes, puisqu'un module ne démarre
16
+ * pas seul. Sans cette exclusion, `npm test` du module frappe un serveur absent
17
+ * et échoue — chaque gabarit étant pourtant juste isolément.
18
+ */
19
+ export default defineConfig({
20
+ test: {
21
+ include: ["tests/**/*.test.ts"],
22
+ exclude: ["**/node_modules/**", "**/dist/**", "tests/**/*.e2e.test.ts"],
23
+ },
24
+ oxc: {
25
+ decorator: { legacy: true, emitDecoratorMetadata: true },
26
+ },
27
+ });
@@ -0,0 +1,51 @@
1
+ # CLAUDE.md — <%= it.pkgName %>
2
+
3
+
4
+ > Fiche d'INSTRUCTIONS pour une IA qui va coder dans ce paquet. À lire AVANT
5
+ > d'éditer. Compléments : [`MEMORY.md`](./MEMORY.md) (internals, gotchas),
6
+ > [`README.md`](./README.md) (usage humain), [`AGENTS.md`](./AGENTS.md)
7
+ > (contexte agent, standard « le plus proche gagne »).
8
+
9
+ ## Rôle du module
10
+
11
+ <%= it.description %>
12
+
13
+
14
+ ## Structure
15
+
16
+ ```
17
+ <%= it.name %>/
18
+ ├── index.ts ← classe Module + @services + re-exports publics
19
+ ├── nodefony/
20
+ │ ├── config/{config.ts,defineModuleConfig.ts} ← schéma Zod (source unique) + builder
21
+ │ ├── service/<%= it.pascal %>Service.ts ← service injectable
22
+ │ ├── interfaces/I<%= it.pascal %>Service.ts ← contrat public
23
+ │ └── src/errors/<%= it.pascal %>Error.ts ← erreurs typées
24
+ ├── tests/ ← vitest
25
+ └── docs/ ← doc du module (surfacée dans Studio)
26
+ ```
27
+
28
+ ## Décisions figées
29
+
30
+ - **Paquet PUBLIABLE** : `exports`/`types` pointent vers du GÉNÉRÉ (`dist/`,
31
+ `dist/types/`) — jamais un `.d.ts` écrit à la main. `files` borne ce qui part
32
+ sur npm.
33
+ - **Config Zod** : `config/config.ts` est la SOURCE UNIQUE (type + validation +
34
+ défaut + doc). Un défaut ne se retape nulle part ailleurs. Validée au boot
35
+ (`onKernelRegister`) → plante propre, jamais un `undefined.x` silencieux.
36
+ - **TypeScript strict** — zéro `any`, zéro `@ts-ignore`, ESM seul, imports Node
37
+ préfixés `node:`, interfaces préfixées `I`.
38
+
39
+ ## Ce qu'il ne faut JAMAIS faire sans accord
40
+
41
+ - Modifier `rolldown.config.ts` / `tsconfig*.json`.
42
+ - Retaper un défaut de config ailleurs que dans le schéma Zod.
43
+ - Ajouter une dépendance runtime sans peser son coût (taille + mémoire).
44
+
45
+ ## Tests / build
46
+
47
+ ```bash
48
+ npm test # vitest run
49
+ npm run build # rolldown + déclarations .d.ts
50
+ npm run typecheck
51
+ ```
@@ -0,0 +1,39 @@
1
+ # MEMORY.md — <%= it.pkgName %>
2
+
3
+
4
+ > Internals pour une IA en cours de session. Ultra-concis, zéro prose, zéro
5
+ > date : ce fichier décrit la vérité COURANTE du code — l'historique est dans
6
+ > `git log`. Mettre à jour = éditer la section concernée EN PLACE.
7
+
8
+ ## Purpose
9
+
10
+ <%= it.description %>
11
+
12
+
13
+ ## Core Components
14
+
15
+ | Symbole | Fichier | Rôle |
16
+ | --- | --- | --- |
17
+ | `<%= it.pascal %>` | `index.ts` | classe Module — déclare `@services`, valide la config |
18
+ | `<%= it.pascal %>Service` | `nodefony/service/<%= it.pascal %>Service.ts` | service injectable, clé conteneur `<%= it.name %>` |
19
+ | `<%= it.camel %>ConfigSchema` | `nodefony/config/config.ts` | schéma Zod = source unique des défauts |
20
+ | `define<%= it.pascal %>Config` | `nodefony/config/defineModuleConfig.ts` | parse + freeze au boot |
21
+ | `<%= it.pascal %>Error` | `nodefony/src/errors/<%= it.pascal %>Error.ts` | erreurs typées du module |
22
+
23
+ ## Config
24
+
25
+ - Surcharge par l'app : `use("<%= it.pkgName %>", { … })` dans son `nodefony.config.ts`.
26
+ - Surcharge par l'environnement : `NF__<%= it.upper %>__<CHEMIN>`.
27
+ - Défauts matérialisés par `<%= it.camel %>ConfigSchema.parse({})` — ne jamais les retaper.
28
+
29
+ ## Behaviors
30
+
31
+ - `onKernelRegister` valide la config et réassigne `this.options` AVANT que les
32
+ `@services` ne soient instanciés (`onBoot`).
33
+
34
+ ## Gotchas
35
+
36
+ - La clé de CONTENEUR (`super("<%= it.name %>", …)`) n'est pas le nom de la CLASSE :
37
+ `container.get("<%= it.name %>")`.
38
+ - Ne jamais déréférencer le Kernel au top-level d'un fichier chargé à l'import
39
+ (`Nodefony.getKernel()` rend `null` avant le boot) — passer par un getter.