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,339 @@
1
+ /**
2
+ * Métadonnées publiées d'une ressource protégée — RFC 9728 §2.
3
+ *
4
+ * Les noms de champs sont ceux du registre IANA, en `snake_case` : c'est un
5
+ * document de protocole, pas un objet interne. Le renommer « pour la
6
+ * cohérence » le rendrait illisible par tout client conforme.
7
+ *
8
+ * Seul `resource` est REQUIS par la RFC. `authorization_servers` y est optionnel
9
+ * — mais un consommateur peut en faire une exigence (le Model Context Protocol
10
+ * l'impose : « MUST include the `authorization_servers` field containing at
11
+ * least one authorization server »), et c'est ce que
12
+ * {@link buildProtectedResourceMetadata} applique : sans serveur d'autorisation,
13
+ * le document ne mène nulle part, donc il ne se publie pas.
14
+ */
15
+ export interface IProtectedResourceMetadata {
16
+ /** URI canonique de la ressource — l'audience que les jetons doivent porter. */
17
+ resource: string;
18
+ /** Serveurs d'autorisation capables d'émettre un jeton pour elle. */
19
+ authorization_servers: string[];
20
+ /** Scopes que la ressource comprend — guide le client (RECOMMENDED). */
21
+ scopes_supported?: string[];
22
+ /**
23
+ * Comment présenter le jeton. Toujours `["header"]` ici, et c'est normatif :
24
+ * la spécification MCP interdit la chaîne de requête (« Access tokens MUST NOT
25
+ * be included in the URI query string ») — une URL finit dans les journaux,
26
+ * l'historique et le `Referer`.
27
+ */
28
+ bearer_methods_supported?: string[];
29
+ /** Nom lisible, affiché par le client pendant le consentement. */
30
+ resource_name?: string;
31
+ /** Où un humain lit ce que fait cette ressource. */
32
+ resource_documentation?: string;
33
+ }
34
+ /** De quoi composer le document — ce que l'application, seule, connaît. */
35
+ export interface IProtectedResourceInput {
36
+ /**
37
+ * URI canonique de la ressource, telle qu'un client l'atteint.
38
+ *
39
+ * 🔴 **Elle s'ÉCRIT, elle ne se dérive pas de l'en-tête `Host`.** Si l'URI
40
+ * publiée et l'audience attendue venaient toutes deux de la requête, un `Host`
41
+ * forgé obtiendrait un jeton d'audience arbitraire *et* passerait la
42
+ * vérification : la liaison d'audience (RFC 8707), dont c'est l'unique raison
43
+ * d'être, ne protégerait plus rien. Un déploiement derrière un relais doit de
44
+ * toute façon déclarer son URL publique.
45
+ */
46
+ resource: string;
47
+ /** Au moins un serveur d'autorisation — sinon le document ne mène nulle part. */
48
+ authorizationServers: readonly string[];
49
+ /** Scopes compris par la ressource (facultatif, mais recommandé). */
50
+ scopesSupported?: readonly string[];
51
+ /** Nom lisible par un humain. */
52
+ resourceName?: string;
53
+ /** URL d'une documentation destinée à un humain. */
54
+ resourceDocumentation?: string;
55
+ }
56
+ /**
57
+ * Normalise et contrôle une URI canonique de ressource (RFC 8707 §2).
58
+ *
59
+ * Trois refus, tous vécus comme des sources d'erreur silencieuse ailleurs :
60
+ * l'absence de schéma (une audience relative ne se compare à rien), un fragment
61
+ * (interdit — il ne voyage jamais jusqu'au serveur, donc deux URI distinctes
62
+ * seraient reçues identiques), et un schéma non `http(s)`.
63
+ *
64
+ * La barre oblique terminale est retirée : les deux formes sont des URI
65
+ * valides, mais l'audience se compare par **chaîne exacte** — publier une forme
66
+ * et valider l'autre produit un refus que rien n'explique.
67
+ *
68
+ * @param raw - URI telle qu'écrite en configuration
69
+ * @returns l'URI canonique, sans barre terminale
70
+ * @throws Error si l'URI ne peut pas servir d'audience
71
+ */
72
+ export declare function canonicalResourceUri(raw: string): string;
73
+ /**
74
+ * Compose le CHEMIN où publier les métadonnées, à partir de l'URI de la
75
+ * ressource (RFC 9728 §3.1).
76
+ *
77
+ * La règle est une insertion, pas une concaténation : le suffixe bien connu se
78
+ * place **entre l'hôte et le chemin** de la ressource. Une application qui
79
+ * publierait `…/nodefony/mcp/.well-known/…` servirait un document que personne
80
+ * ne demande jamais.
81
+ *
82
+ * @param resource - URI canonique de la ressource (ou son seul chemin)
83
+ * @returns le chemin absolu à servir en `GET`
84
+ *
85
+ * @example
86
+ * ```ts
87
+ * protectedResourceMetadataPath("https://app.example/nodefony/mcp");
88
+ * // → "/.well-known/oauth-protected-resource/nodefony/mcp"
89
+ * protectedResourceMetadataPath("https://app.example");
90
+ * // → "/.well-known/oauth-protected-resource"
91
+ * ```
92
+ */
93
+ export declare function protectedResourceMetadataPath(resource: string): string;
94
+ /**
95
+ * Compose l'URL ABSOLUE des métadonnées — celle qui part dans le défi.
96
+ *
97
+ * @param resource - URI canonique de la ressource
98
+ * @returns l'URL complète du document de métadonnées
99
+ */
100
+ export declare function protectedResourceMetadataUrl(resource: string): string;
101
+ /**
102
+ * Compose le document de métadonnées.
103
+ *
104
+ * @param input - ce que l'application déclare de sa ressource
105
+ * @returns le document, prêt à sérialiser
106
+ * @throws Error si aucun serveur d'autorisation n'est déclaré, ou si l'URI de
107
+ * ressource ne peut pas servir d'audience
108
+ */
109
+ export declare function buildProtectedResourceMetadata(input: IProtectedResourceInput): IProtectedResourceMetadata;
110
+ /** Codes d'erreur d'un porteur — RFC 6750 §3.1. */
111
+ export declare const BearerError: {
112
+ /**
113
+ * Requête mal formée (schéma inconnu, jeton absent après `Bearer`).
114
+ * La RFC veut **400**, pas 401 : rien n'a été présenté qu'on puisse juger.
115
+ */
116
+ readonly INVALID_REQUEST: "invalid_request";
117
+ /** Jeton expiré, révoqué, mal formé, ou d'une autre audience → **401**. */
118
+ readonly INVALID_TOKEN: "invalid_token";
119
+ /** Identité prouvée, droits insuffisants → **403**. */
120
+ readonly INSUFFICIENT_SCOPE: "insufficient_scope";
121
+ };
122
+ /** Un des codes de {@link BearerError}. */
123
+ export type BearerErrorCode = (typeof BearerError)[keyof typeof BearerError];
124
+ /** De quoi composer un défi `WWW-Authenticate`. */
125
+ export interface IBearerChallenge {
126
+ /** URL du document de métadonnées — RFC 9728 §5.1. */
127
+ resourceMetadataUrl: string;
128
+ /** Scopes nécessaires à l'opération en cours. */
129
+ scopes?: readonly string[];
130
+ /** Code d'erreur, ABSENT quand la requête ne portait aucune information. */
131
+ error?: BearerErrorCode;
132
+ /** Explication lisible, jamais une cause fine (anti-oracle). */
133
+ description?: string;
134
+ }
135
+ /**
136
+ * Compose l'en-tête `WWW-Authenticate` d'un refus.
137
+ *
138
+ * ⭐ **C'est cet en-tête qui rend l'autorisation apprenable.** Sans lui, un
139
+ * refus est un mur : le client ignore qu'un jeton existe, où le demander et pour
140
+ * quels droits. Avec `resource_metadata`, il remonte seul jusqu'au serveur
141
+ * d'autorisation — c'est le seul mécanisme normalisé pour cela.
142
+ *
143
+ * 🔴 **Le code d'erreur est OMIS quand la requête ne portait aucune information
144
+ * d'authentification** — la RFC 6750 §3 le demande explicitement (« the resource
145
+ * server SHOULD NOT include an error code or other error information »). Un
146
+ * `invalid_token` sur une requête sans jeton ferait croire au client que son
147
+ * jeton est mauvais, et le pousserait à le renouveler en boucle.
148
+ *
149
+ * @param challenge - de quoi composer le défi
150
+ * @returns la valeur de l'en-tête `WWW-Authenticate`
151
+ */
152
+ export declare function buildBearerChallenge(challenge: IBearerChallenge): string;
153
+ /**
154
+ * Ce qu'une vérification de jeton RÉUSSIE établit.
155
+ *
156
+ * Il n'y a pas de drapeau `authenticated` : ce type n'existe que lorsqu'une
157
+ * identité a été prouvée. Un booléen aurait permis de fabriquer un principal
158
+ * « non authentifié » et de le passer plus loin — exactement l'erreur que le
159
+ * type doit rendre impossible.
160
+ */
161
+ export interface IAccessPrincipal {
162
+ /**
163
+ * Émetteur VÉRIFIÉ du jeton (`iss`), sous sa forme canonique.
164
+ *
165
+ * 🔴 **Un `sub` seul ne désigne personne.** OpenID Connect ne le garantit
166
+ * unique et non réassigné QUE dans l'espace de son émetteur : l'identité est
167
+ * la paire `(iss, sub)`. Transporter le sujet sans son émetteur revient à
168
+ * verser des identifiants étrangers dans l'espace de noms local — et un
169
+ * annuaire où l'utilisateur choisit son identifiant suffit alors à réclamer
170
+ * `admin`.
171
+ *
172
+ * REQUIS, et non optionnel : un vérificateur incapable de dire d'où vient une
173
+ * identité ne doit pas pouvoir en produire une. Le rendre facultatif
174
+ * laisserait chaque appelant décider de s'en passer, ce qui est exactement la
175
+ * façon dont ce trou est né.
176
+ *
177
+ * ⚠️ C'est l'émetteur de l'ALLOWLIST — celui contre lequel la signature a été
178
+ * vérifiée — jamais la valeur brute lue dans le jeton.
179
+ */
180
+ issuer: string;
181
+ /** Sujet du jeton (`sub`) — pour l'audit, et pour borner ce qu'on rend. */
182
+ subject?: string;
183
+ /** Scopes réellement accordés. */
184
+ scopes: readonly string[];
185
+ /**
186
+ * Expiration du jeton (`exp`), en **secondes** epoch — RFC 7519 §4.1.4.
187
+ *
188
+ * Elle a déjà été vérifiée au moment de la validation ; si elle est ici, c'est
189
+ * pour ce qui vient APRÈS. Une requête HTTP se termine avant que la question
190
+ * se pose, mais une connexion durable — une socket ouverte au nom de ce jeton
191
+ * — doit pouvoir mourir avec lui. Sans cette borne transportée jusqu'à
192
+ * l'appelant, une identité vérifiée une fois vaut indéfiniment : le jeton
193
+ * expire, la connexion reste.
194
+ *
195
+ * ⚠️ **Secondes**, comme le claim JWT dont elle vient — pas des millisecondes.
196
+ */
197
+ expiresAt?: number;
198
+ /** Émission du jeton (`iat`), en **secondes** epoch — révocation en masse. */
199
+ issuedAt?: number;
200
+ /**
201
+ * Identifiant unique du jeton (`jti`) — révocation CIBLÉE avant terme.
202
+ *
203
+ * Il vient d'un émetteur étranger : il ne désigne rien dans nos registres, et
204
+ * ne sert qu'à interroger une liste de révocation qui, elle, peut le connaître.
205
+ */
206
+ tokenId?: string;
207
+ }
208
+ /**
209
+ * Ce qui sait valider un jeton — implémenté ailleurs, jamais ici.
210
+ *
211
+ * Le cœur ne valide aucune signature : cela demande un fournisseur de clés, une
212
+ * dépendance cryptographique et une politique, qui vivent dans le module de
213
+ * sécurité. Le contrat est ici pour que la porte n'ait pas à connaître son
214
+ * implémentation, et pour qu'une application puisse en fournir une autre.
215
+ *
216
+ * @param token - le jeton présenté, brut
217
+ * @param audience - l'URI canonique de CETTE ressource ; l'implémentation
218
+ * **doit** refuser un jeton qui ne la porte pas (RFC 8707 §2) — c'est
219
+ * ce qui empêche un jeton émis pour un autre service d'être rejoué ici
220
+ * @returns le principal établi, ou `null` — jamais une exception pour un refus
221
+ */
222
+ export type IAccessTokenVerifier = (token: string, audience: string) => Promise<IAccessPrincipal | null>;
223
+ /**
224
+ * Nom sous lequel un {@link IAccessTokenVerifier} se pose dans le conteneur.
225
+ *
226
+ * ⭐ **La constante vit ICI, avec le contrat, et pas ailleurs.** Le nom est le
227
+ * point de rendez-vous entre deux paquets qui ne se connaissent pas : celui qui
228
+ * POSE le vérificateur (la sécurité, qui porte la cryptographie) et ceux qui le
229
+ * LISENT (toute porte protégée). Écrit en dur de chaque côté, il vaut jusqu'au
230
+ * jour où l'un des deux le renomme — un littéral ne casse aucune compilation,
231
+ * et la porte cherche alors un service que personne ne pose. Importé, un
232
+ * renommage devient une erreur de type.
233
+ *
234
+ * Le nom est **générique** à dessein : le contrat prend l'audience en
235
+ * paramètre, donc une seule implémentation sert autant de ressources protégées
236
+ * que l'application en publie (RFC 9728 §3.1).
237
+ */
238
+ export declare const ACCESS_TOKEN_VERIFIER = "accessTokenVerifier";
239
+ /** Politique appliquée à une requête vers une ressource protégée. */
240
+ export interface IProtectedResourcePolicy {
241
+ /** URI canonique de la ressource — l'audience PUBLIÉE, et la première essayée. */
242
+ resource: string;
243
+ /**
244
+ * Autres URI sous lesquelles CETTE MÊME ressource est joignable, et dont les
245
+ * jetons sont acceptés.
246
+ *
247
+ * ⭐ Une ressource peut avoir plusieurs adresses sans cesser d'être une : la
248
+ * même porte servie en clair sur un port et en TLS sur un autre est un cas
249
+ * courant en développement, et un jeton émis pour l'une était refusé sur
250
+ * l'autre — la liaison d'audience faisant, à juste titre, son travail. La
251
+ * réponse n'est pas de relâcher la liaison, c'est de DIRE quelles adresses
252
+ * désignent cette ressource.
253
+ *
254
+ * 🔴 Ces valeurs s'ÉCRIVENT, elles ne se dérivent jamais du `Host` de la
255
+ * requête : dérivées, un `Host` forgé obtiendrait un jeton d'audience
256
+ * arbitraire *et* passerait la vérification, ce qui viderait la liaison de sa
257
+ * seule raison d'être. La liste reste FERMÉE.
258
+ *
259
+ * Le document RFC 9728 ne publie que {@link IProtectedResourcePolicy.resource}
260
+ * — la RFC n'y admet qu'une valeur, et un client n'a besoin que d'une adresse
261
+ * pour demander son jeton.
262
+ */
263
+ acceptedResources?: readonly string[];
264
+ /** URL du document de métadonnées, citée dans chaque refus. */
265
+ metadataUrl: string;
266
+ /** Scopes annoncés au client quand on le refuse. */
267
+ scopes?: readonly string[];
268
+ /**
269
+ * Servir une requête sans jeton comme anonyme, au lieu de la refuser.
270
+ *
271
+ * Défaut attendu : `false`. Ouvrir est un choix qui s'écrit, jamais un
272
+ * comportement qu'on hérite.
273
+ */
274
+ allowAnonymous: boolean;
275
+ }
276
+ /** Verdict rendu à la porte — à elle de le traduire en réponse. */
277
+ export type ProtectedResourceOutcome =
278
+ /** Aucun jeton, et la politique l'accepte. */
279
+ {
280
+ outcome: "anonymous";
281
+ /**
282
+ * Un jeton a été présenté et REJETÉ, et la porte sert quand même
283
+ * l'anonyme — pour le JOURNAL seul, jamais pour le client.
284
+ *
285
+ * Sans ce champ, un jeton expiré devenait indistinguable d'une requête
286
+ * muette : l'agent perdait ses outils réservés sans que rien ne dise
287
+ * pourquoi, et l'exploitant ne voyait aucune trace d'un porteur refusé.
288
+ */
289
+ rejected?: true;
290
+ }
291
+ /** Jeton validé. */
292
+ | {
293
+ outcome: "authenticated";
294
+ principal: IAccessPrincipal;
295
+ }
296
+ /** Refus : statut et en-tête à poser tels quels. */
297
+ | {
298
+ outcome: "challenge";
299
+ status: 400 | 401;
300
+ wwwAuthenticate: string;
301
+ }
302
+ /**
303
+ * La ressource se dit protégée, mais rien ne peut vérifier un jeton.
304
+ * La porte DOIT alors refuser de servir — laisser passer reviendrait à
305
+ * accepter n'importe quel porteur.
306
+ *
307
+ * Deux causes, que `why` distingue POUR LE JOURNAL seul : aucun vérificateur
308
+ * n'est posé (faute de configuration), ou le vérificateur a ÉCHOUÉ — émetteur
309
+ * injoignable, jeu de clés illisible. Le client, lui, reçoit le même refus
310
+ * dans les deux cas : ce qui empêche de le servir ne le regarde pas.
311
+ */
312
+ | {
313
+ outcome: "unverifiable";
314
+ why?: string;
315
+ };
316
+ /**
317
+ * Décide du sort d'une requête d'après l'en-tête `Authorization`.
318
+ *
319
+ * **Fonction pure** (hors l'appel au vérificateur) : elle ne touche ni au
320
+ * socket, ni au conteneur, ni à l'horloge — d'où le fait que chacun de ses
321
+ * verdicts, statuts et en-têtes compris, s'éprouve sans démarrer de serveur.
322
+ *
323
+ * @param authorizationHeader - valeur brute de l'en-tête, ou rien
324
+ * @param policy - ce que la ressource exige
325
+ * @param verify - ce qui sait valider un jeton, s'il y a quelque chose
326
+ * @returns le verdict à appliquer
327
+ */
328
+ export declare function authorizeProtectedResource(authorizationHeader: unknown, policy: IProtectedResourcePolicy, verify: IAccessTokenVerifier | undefined): Promise<ProtectedResourceOutcome>;
329
+ /**
330
+ * L'appelant présente-t-il TOUS les scopes exigés ?
331
+ *
332
+ * « Tous », et pas « au moins un » : un scope borne un pouvoir, et les cumuler
333
+ * par disjonction reviendrait à accorder le plus large de la liste.
334
+ *
335
+ * @param granted - scopes accordés au porteur
336
+ * @param required - scopes exigés par l'opération
337
+ * @returns les scopes MANQUANTS — tableau vide si rien ne manque
338
+ */
339
+ export declare function missingScopes(granted: readonly string[], required: readonly string[]): string[];
@@ -0,0 +1,142 @@
1
+ /**
2
+ * IRealtimeSocket — « la socket Nodefony » : la prise temps réel **ISOMORPHE** client↔back.
3
+ *
4
+ * C'est LA brique du realtime Nodefony (cf vision « la socket Nodefony ») : un seul lien,
5
+ * qui a une **existence identique côté back et côté front** (fusionnel), dont le **plan de
6
+ * contrôle parle JSON-RPC 2.0** ({@link IRealtimePeer}) et qui **multiplexe N canaux** par
7
+ * souscription. Un consommateur — page front OU service back — tient **UN handle**
8
+ * (`subscribe / on / publish / request`) : c'est SA socket. Il ignore quel transport porte
9
+ * les octets, si le pair est local ou distant, et comment chaque canal est servi.
10
+ *
11
+ * Vocabulaire : la **socket** est la prise (ce qu'on tient) ; derrière elle, côté serveur,
12
+ * un **hub** ({@link RealtimeHub}) aiguille entre les N sockets des clients et, à terme,
13
+ * entre les pods (backplane Redis). La socket multiplexe des canaux ; le hub aiguille entre
14
+ * les sockets. La couche octets, elle, est le {@link IRealtimeTransport} (≠ « socket » ici).
15
+ *
16
+ * ── Un canal = un sous-flux nommé DUPLEX ──
17
+ * Chaque canal est un tuyau bidirectionnel multiplexé sur la socket. Son **backing est
18
+ * pluggable côté serveur**, transparent pour le consommateur :
19
+ * - **pub/sub** (défaut) : notifications JSON-RPC (ex. `nodefony:dashboard`).
20
+ * - **encapsulation de protocole** : le canal transporte un AUTRE langage tunnelé dans la
21
+ * socket (ex. **SIP** sur `sip:line1`).
22
+ * - **bridge** : le canal est câblé vers une autre couche de transport (**TCP/UDP**).
23
+ * - **proxy** : le canal relaie vers un autre service.
24
+ * Le **backplane Redis** (fan-out cross-pod cloud-native) n'est qu'UN backing parmi ceux-là.
25
+ *
26
+ * ── Sémantique des verbes (identique des deux côtés, cible différente) ──
27
+ * - `publish(channel, payload)` : émet sur un canal (duplex). Côté **client** → vers le
28
+ * serveur (1 pair) ; côté **serveur** → fan-out aux abonnés via le hub (+ backplane).
29
+ * - `subscribe` / `unsubscribe` : DEMANDE / arrête un flux (ref-compté).
30
+ * - `on` / `off` : REÇOIT (`on` ≠ `subscribe` : l'un branche le handler local, l'autre
31
+ * demande au pair de pousser).
32
+ * - `request(method, params?)` : RPC corrélé (`Promise` du `result`).
33
+ * - `channel(name)` : renvoie un {@link IRealtimeChannel} (objet par canal) — forme
34
+ * naturelle des canaux à état (SIP, bridge) et point d'accroche des futures couches
35
+ * (codec, cadence AIMD, politique drop/coalesce/batch par canal).
36
+ *
37
+ * Impl de référence : {@link RealtimeClient} (navigateur). Côté serveur, le hub à canaux
38
+ * partagés ({@link RealtimeHub}, fan-out + backings) et une façade consommateur dériveront
39
+ * de ce même contrat.
40
+ *
41
+ * @see {@link IRealtimePeer} — la couche protocole (JSON-RPC 2.0) en dessous.
42
+ * @see {@link IRealtimeTransport} — la couche octets (le seul maillon client/serveur).
43
+ */
44
+ import type { ActionsMap, DefaultActionsMap, DefaultEventsMap, EventNames, EventPayload, EventsMap, ContractParams, ContractResult } from "./RealtimeEventMap.js";
45
+ /** Handler d'un canal pub/sub — reçoit le `params` de la notification (ou `(method, params)` sur `"*"`). */
46
+ export type RealtimeHandler = (...args: unknown[]) => void;
47
+ /**
48
+ * Compteurs d'un canal — **génériques**, calculés au point d'arrivée des frames donc
49
+ * fiables et réutilisables par toute app. (`RealtimeClient.MessageStats` en est l'alias.)
50
+ */
51
+ export interface IChannelStats {
52
+ /** Méthode JSON-RPC == nom du canal pub/sub. */
53
+ method: string;
54
+ /** Total de notifications reçues sur ce canal. */
55
+ msgCount: number;
56
+ /** Timestamp (ms) de la dernière notification, `null` si aucune. */
57
+ lastMessage: number | null;
58
+ /** Débit instantané (msg/s), échantillonné 1×/s. */
59
+ rate: number;
60
+ /** Historique du débit (VU-mètre) — fenêtre glissante. */
61
+ series: number[];
62
+ }
63
+ /**
64
+ * Handle d'UN canal — vue par-canal d'un sous-flux duplex multiplexé sur la
65
+ * {@link IRealtimeSocket}. Forme naturelle des canaux à état (un appel SIP, une connexion
66
+ * bridgée) : il porte son nom, sa nature et son cycle de vie. C'est le **point d'accroche**
67
+ * des couches à venir (codec de protocole, cadence AIMD, politique `drop|coalesce|batch`) —
68
+ * elles enrichiront ce handle SANS retoucher la socket.
69
+ *
70
+ * N'introduit AUCUN protocole nouveau : fine liaison au-dessus des primitives de la socket
71
+ * (`subscribe`/`on`/`publish`).
72
+ */
73
+ export interface IRealtimeChannel {
74
+ /** Nom du canal (clé de multiplexage == method JSON-RPC des notifications). */
75
+ readonly name: string;
76
+ /**
77
+ * Nature du backing serveur (`pubsub` | `protocol` | `bridge` | `proxy` | …), annoncée
78
+ * par le serveur. `undefined` tant qu'inconnue (ex. côté client avant découverte).
79
+ */
80
+ readonly kind?: string;
81
+ /** Branche un handler de réception sur ce canal. Renvoie un `dispose`. */
82
+ on(handler: RealtimeHandler): () => void;
83
+ /** Émet sur ce canal (duplex, one-way). */
84
+ send(payload?: unknown): void;
85
+ /** Ouvre le flux : `subscribe` ref-compté (demande au pair de pousser). */
86
+ open(): void;
87
+ /** Ferme : `unsubscribe` ref-compté + retire les handlers branchés via ce handle. */
88
+ close(): void;
89
+ }
90
+ /**
91
+ * Contrat de « la socket Nodefony » — voir le bloc de tête du fichier. Implémenté par
92
+ * {@link RealtimeClient} (front) et, à terme, par une façade serveur au-dessus du hub.
93
+ *
94
+ * @typeParam Emit — canaux pub/sub SORTANTS (typage de `publish`).
95
+ * @typeParam Listen — canaux pub/sub RÉCEPTIONNÉS (typage de `subscribe`/`on`/`off`).
96
+ * @typeParam Actions — contrat RPC bidirectionnel (typage de `request`).
97
+ *
98
+ * Défauts permissifs sur les 3 → rétro-compat 100% pour le code non paramétré.
99
+ *
100
+ * **Pattern « type conditionnel inline »** : chaque méthode a UNE signature unique
101
+ * paramétrée par un `K extends string`. Si `K` matche la map (`EventNames<Listen>`,
102
+ * `EventNames<Emit>`, `ActionNames<Actions>`) → typage strict ; sinon → fallback
103
+ * permissif (`unknown`/`RealtimeHandler`). Permet les noms système (`__notice__`,
104
+ * `*`, `subscribe`/`unsubscribe` internes) à côté du contrat applicatif typé sans
105
+ * 2 overloads incompatibles en variance.
106
+ */
107
+ export interface IRealtimeSocket<Emit extends EventsMap = DefaultEventsMap, Listen extends EventsMap = DefaultEventsMap, Actions extends ActionsMap = DefaultActionsMap> {
108
+ /**
109
+ * S'abonne à un canal (ref-compté) : émet la demande au pair UNIQUEMENT au 1ᵉʳ
110
+ * consommateur ; ré-émise automatiquement à chaque (re)connexion. Ne REÇOIT pas —
111
+ * brancher {@link IRealtimeSocket.on} pour ça.
112
+ */
113
+ subscribe(channel: EventNames<Listen> | (string & {})): void;
114
+ /** Désabonne un consommateur (ref-compté) : coupe le flux réseau au DERNIER. No-op si non suivi. */
115
+ unsubscribe(channel: EventNames<Listen> | (string & {})): void;
116
+ /**
117
+ * Branche un handler sur un canal (réception). Renvoie un `dispose` (désabonnement
118
+ * local). Plusieurs handlers par canal autorisés.
119
+ */
120
+ on<K extends string>(channel: K, handler: K extends EventNames<Listen> ? (payload: EventPayload<Listen, K>) => void : RealtimeHandler): () => void;
121
+ /** Retire un handler d'un canal. */
122
+ off<K extends string>(channel: K, handler: K extends EventNames<Listen> ? (payload: EventPayload<Listen, K>) => void : RealtimeHandler): void;
123
+ /**
124
+ * Émet sur un canal (one-way, pas de réponse). Côté client → notification au serveur ;
125
+ * côté serveur → fan-out aux abonnés via le hub (+ backplane). No-op si non connecté.
126
+ */
127
+ publish<K extends string>(channel: K, payload?: K extends EventNames<Emit> ? EventPayload<Emit, K> : unknown): void;
128
+ /** RPC corrélé — `Promise` résolue avec le `result` (rejette sur `error`/timeout). */
129
+ request<K extends string, T = unknown>(method: K, params?: ContractParams<Actions, K>, timeoutMs?: number): Promise<ContractResult<Actions, K, T>>;
130
+ /**
131
+ * Vue par-canal — voir {@link IRealtimeChannel}. Fine liaison sur les primitives
132
+ * ci-dessus ; forme cible pour SIP/bridge/proxy et les concerns par-canal.
133
+ */
134
+ channel(name: string): IRealtimeChannel;
135
+ /** Snapshot des compteurs par canal (refs internes — à LIRE, pas à muter). */
136
+ getStats(): IChannelStats[];
137
+ /** Compteurs d'un canal précis (== method JSON-RPC) ou `undefined`. */
138
+ getChannelStats(channel: string): IChannelStats | undefined;
139
+ /** Canaux actuellement abonnés (≥ 1 consommateur). Lecture seule. */
140
+ readonly subscribedChannels: string[];
141
+ }
142
+ export default IRealtimeSocket;
@@ -0,0 +1,50 @@
1
+ /**
2
+ * IRealtimeTransport — le SEUL maillon qui diffère client/serveur.
3
+ *
4
+ * Le protocole ({@link JsonRpcPeer}) et les « smarts » (stats, pub/sub) sont
5
+ * isomorphes ; seule la façon dont les **octets** entrent et sortent change. On
6
+ * isole donc le transport derrière cette interface : un même endpoint compose
7
+ * N transports.
8
+ *
9
+ * Implémentations :
10
+ * - `BrowserWsTransport` (navigateur, `WebSocket` + reconnect géré au-dessus)
11
+ * - `WsConnectionTransport` (serveur, wrap d'une connexion `ws` — P… RealtimeController)
12
+ * - futurs P13 : `Tcp`/`Udp`/`Redis`/`SipTransport` (RealtimeService / IRealtimeHub)
13
+ *
14
+ * Les états suivent les constantes `WebSocket` (0..3) pour rester universels —
15
+ * voir {@link TransportState}.
16
+ *
17
+ * ── Sens des flux ──
18
+ * Sortant : `send` (frame brute déjà sérialisée), `close`.
19
+ * Entrant : le owner branche `onMessage` (chaque frame reçue) ; `onOpen`/`onClose`/
20
+ * `onError` pilotent le cycle de vie (l'orchestration reconnect/heartbeat vit
21
+ * AU-DESSUS, dans l'endpoint — le transport reste « bête »).
22
+ */
23
+ /** États d'un transport — alignés sur les constantes `WebSocket`. */
24
+ export declare const TransportState: {
25
+ readonly CONNECTING: 0;
26
+ readonly OPEN: 1;
27
+ readonly CLOSING: 2;
28
+ readonly CLOSED: 3;
29
+ };
30
+ export type TransportStateValue = (typeof TransportState)[keyof typeof TransportState];
31
+ export interface IRealtimeTransport {
32
+ /** Ouvre le transport (asynchrone — l'ouverture effective est signalée par `onOpen`). */
33
+ connect(): void;
34
+ /** Envoie une frame brute (déjà sérialisée). No-op si non ouvert. */
35
+ send(raw: string): void;
36
+ /** Ferme le transport (déclenche `onClose`). */
37
+ close(code?: number, reason?: string): void;
38
+ /** État courant (0..3, cf {@link TransportState}). */
39
+ readonly readyState: number;
40
+ /** Branche le handler d'ouverture (le owner relance subscribe/heartbeat). */
41
+ onOpen(cb: () => void): void;
42
+ /** Branche le pump entrant : appelé pour chaque frame brute reçue. */
43
+ onMessage(cb: (raw: string) => void): void;
44
+ /** Branche la fermeture (le owner relance le backoff ou nettoie). */
45
+ onClose(cb: (code: number, reason: string) => void): void;
46
+ /** Branche les erreurs transport (la fermeture qui suit gère le reconnect). */
47
+ onError(cb: (err: unknown) => void): void;
48
+ }
49
+ /** Fabrique d'un transport pour une URL — injectable (tests, transports alternatifs). */
50
+ export type RealtimeTransportFactory = (url: string) => IRealtimeTransport;