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,221 @@
1
+ //#region src/oauth/authorizationServer.ts
2
+ /**
3
+ * Rôle **serveur d'autorisation** — RFC 8414, les deux faces.
4
+ *
5
+ * On LIT les métadonnées d'un émetteur tiers (pour découvrir où sont ses clés)
6
+ * et on PUBLIE les siennes (pour qu'un tiers découvre les nôtres). Les deux
7
+ * faces partagent la même règle de composition de chemin ; les séparer les
8
+ * ferait dériver en silence — un lecteur sondant là où l'émetteur ne sert pas
9
+ * ne produit qu'un `404`, que chacun interprète comme « pas d'autorisation
10
+ * ici ». Ici, la publication est la source et la lecture en dérive.
11
+ *
12
+ * Ce fichier ne parle à personne : il compose des URL, juge un document reçu et
13
+ * compose un document à servir. C'est délibéré — les règles qui comptent
14
+ * (l'ordre des points bien connus, l'égalité stricte de l'émetteur, le refus
15
+ * d'un `jwks_uri` douteux) sont exactement celles qu'on n'éprouverait jamais si
16
+ * elles vivaient au milieu d'un appel réseau.
17
+ *
18
+ * ⚠️ Volontairement au CŒUR, et non dans `@nodefony/security` : le module qui
19
+ * expose les routes (`@nodefony/framework`) n'importe jamais `security`, et le
20
+ * chemin bien connu doit rester écrit UNE fois pour les deux.
21
+ *
22
+ * @see references/rfc/ietf/rfc8414.txt
23
+ * @see references/mcp-2026-07-28/spec/basic/authorization/authorization-server-discovery.mdx
24
+ */
25
+ /** Suffixe bien connu des métadonnées d'un serveur d'autorisation (RFC 8414 §3). */
26
+ const WELL_KNOWN_OAUTH = "/.well-known/oauth-authorization-server";
27
+ /** Suffixe bien connu d'OpenID Connect Discovery 1.0 (§4). */
28
+ const WELL_KNOWN_OIDC = "/.well-known/openid-configuration";
29
+ /**
30
+ * Chemin conventionnel où Nodefony publie son jeu de clés publiques.
31
+ *
32
+ * Le choix est LIBRE — un client ne le devine pas, il le lit dans le champ
33
+ * `jwks_uri` du document de métadonnées. Deux raisons de le placer sous
34
+ * `.well-known` quand même : c'est un espace réservé (RFC 8615), donc aucune
35
+ * collision possible avec les routes de l'application ; et il ne comporte pas
36
+ * de segment `api`, qui rangerait la route dans l'aire du pare-feu — or un jeu
37
+ * de clés doit être lisible SANS authentification, sinon il ne sert à rien.
38
+ */
39
+ const JWKS_PATH = "/.well-known/jwks.json";
40
+ /**
41
+ * Normalise et contrôle un identifiant d'émetteur (RFC 8414 §2).
42
+ *
43
+ * La RFC est explicite : c'est une URL **en `https`**, « with no query or
44
+ * fragment components ». Les trois refus ci-dessous ne sont donc pas du zèle —
45
+ * un émetteur porteur d'une requête ou d'un fragment ne peut pas servir à
46
+ * composer une URL bien connue par insertion, et la comparaison d'égalité
47
+ * stricte exigée par le §3.3 deviendrait un tirage au sort.
48
+ *
49
+ * `http` est refusé y compris en développement : les clés de signature arrivent
50
+ * par ce canal, et un jeu de clés substitué en transit signe n'importe quel
51
+ * jeton. Pour éprouver le mécanisme sans TLS, on injecte une implémentation de
52
+ * `fetch` — pas un émetteur en clair.
53
+ *
54
+ * @param raw - identifiant tel qu'écrit en configuration
55
+ * @returns l'émetteur normalisé, sans barre oblique terminale
56
+ * @throws Error si l'identifiant ne peut pas servir d'émetteur
57
+ */
58
+ function canonicalIssuer(raw) {
59
+ let url;
60
+ try {
61
+ url = new URL(raw);
62
+ } catch {
63
+ throw new Error(`émetteur invalide : « ${raw} » — une URL absolue est attendue (ex. « https://auth.example.com/realms/mon-royaume »).`);
64
+ }
65
+ if (url.protocol !== "https:") throw new Error(`émetteur invalide : « ${raw} » — la RFC 8414 §2 exige le schéma https (les clés de signature transitent par ce canal).`);
66
+ if (url.search || url.hash) throw new Error(`émetteur invalide : « ${raw} » — la RFC 8414 §2 interdit une requête ou un fragment dans un identifiant d'émetteur.`);
67
+ const composed = `${url.origin}${url.pathname}`;
68
+ return composed.endsWith("/") ? composed.slice(0, -1) : composed;
69
+ }
70
+ /**
71
+ * Compose le CHEMIN où PUBLIER ses métadonnées (RFC 8414 §3.1).
72
+ *
73
+ * La règle est une **insertion**, pas une concaténation : le suffixe bien connu
74
+ * se place entre l'hôte et le chemin de l'émetteur, « any terminating "/" MUST
75
+ * be removed before inserting ». Un émetteur porteur d'un chemin
76
+ * (multi-tenant : « Using path components enables supporting multiple issuers
77
+ * per host ») se publie donc SOUS ce chemin — servir à la racine reviendrait à
78
+ * servir un document que personne ne demande.
79
+ *
80
+ * C'est cette fonction qui fait autorité : {@link issuerMetadataUrls}, côté
81
+ * lecteur, en dérive. Les deux faces ne peuvent donc pas diverger.
82
+ *
83
+ * @param issuer - identifiant d'émetteur (canonique ou non)
84
+ * @returns le chemin absolu à servir en `GET`
85
+ *
86
+ * @example
87
+ * ```ts
88
+ * authorizationServerMetadataPath("https://app.example");
89
+ * // → "/.well-known/oauth-authorization-server"
90
+ * authorizationServerMetadataPath("https://app.example/tenant1");
91
+ * // → "/.well-known/oauth-authorization-server/tenant1"
92
+ * ```
93
+ */
94
+ function authorizationServerMetadataPath(issuer) {
95
+ const { pathname } = new URL(canonicalIssuer(issuer));
96
+ return pathname === "/" ? WELL_KNOWN_OAUTH : `${WELL_KNOWN_OAUTH}${pathname}`;
97
+ }
98
+ /**
99
+ * Compose, dans l'ORDRE NORMATIF, les URL où chercher les métadonnées.
100
+ *
101
+ * L'ordre n'est pas une préférence de goût : la spécification impose d'essayer
102
+ * plusieurs points, et le premier document valide gagne. Un émetteur avec
103
+ * chemin (multi-tenant) se découvre par **insertion** — placer le suffixe en
104
+ * queue interrogerait le tenant, pas le serveur ; un émetteur sans chemin n'a
105
+ * que deux formes possibles.
106
+ *
107
+ * La première URL est celle que {@link authorizationServerMetadataPath} sert :
108
+ * c'est ce qui garantit qu'une application Nodefony est découvrable par une
109
+ * autre application Nodefony.
110
+ *
111
+ * @param issuer - émetteur déjà normalisé par {@link canonicalIssuer}
112
+ * @returns les URL à essayer, dans l'ordre
113
+ *
114
+ * @example
115
+ * ```ts
116
+ * issuerMetadataUrls("https://auth.example.com/tenant1");
117
+ * // → [".../.well-known/oauth-authorization-server/tenant1",
118
+ * // ".../.well-known/openid-configuration/tenant1",
119
+ * // ".../tenant1/.well-known/openid-configuration"]
120
+ * ```
121
+ */
122
+ function issuerMetadataUrls(issuer) {
123
+ const url = new URL(issuer);
124
+ const path = url.pathname === "/" ? "" : url.pathname;
125
+ const oauth = `${url.origin}${authorizationServerMetadataPath(issuer)}`;
126
+ if (path === "") return [oauth, `${url.origin}${WELL_KNOWN_OIDC}`];
127
+ return [
128
+ oauth,
129
+ `${url.origin}${WELL_KNOWN_OIDC}${path}`,
130
+ `${url.origin}${path}${WELL_KNOWN_OIDC}`
131
+ ];
132
+ }
133
+ /**
134
+ * Juge un document de métadonnées reçu.
135
+ *
136
+ * ⭐ **L'égalité stricte de l'émetteur est la garde centrale** (RFC 8414 §3.3,
137
+ * OIDC Discovery §4.3) : sans elle, un document servi par `attaquant.example`
138
+ * qui se déclare `"issuer": "https://honnête.example"` serait accepté, et ses
139
+ * clés vérifieraient des jetons au nom de l'émetteur légitime. La comparaison
140
+ * est faite sur la forme canonique des DEUX côtés — une barre oblique
141
+ * terminale ne doit ni faire échouer un document valide, ni servir à faire
142
+ * passer deux identifiants pour un seul.
143
+ *
144
+ * Le `jwks_uri` est exigé en `https` mais **pas sur l'origine de l'émetteur** :
145
+ * des émetteurs majeurs servent légitimement leurs clés ailleurs (Google publie
146
+ * `accounts.google.com` et ses clés sur `www.googleapis.com`). La garde qui
147
+ * compte est en amont — le document vient d'un émetteur déclaré en
148
+ * configuration, jamais d'une valeur lue dans un jeton.
149
+ *
150
+ * @param document - le document tel que reçu (JSON déjà analysé)
151
+ * @param expectedIssuer - émetteur canonique utilisé pour composer l'URL
152
+ * @returns les deux champs retenus
153
+ * @throws Error si le document ne peut pas être utilisé
154
+ */
155
+ function validateIssuerMetadata(document, expectedIssuer) {
156
+ if (typeof document !== "object" || document === null) throw new Error("métadonnées d'émetteur : document JSON attendu.");
157
+ const doc = document;
158
+ const issuer = doc.issuer;
159
+ if (typeof issuer !== "string" || issuer.length === 0) throw new Error("métadonnées d'émetteur : champ `issuer` absent.");
160
+ let declared;
161
+ try {
162
+ declared = canonicalIssuer(issuer);
163
+ } catch {
164
+ throw new Error(`métadonnées d'émetteur : « ${issuer} » n'est pas un identifiant valide.`);
165
+ }
166
+ if (declared !== canonicalIssuer(expectedIssuer)) throw new Error(`métadonnées d'émetteur : le document déclare « ${declared} » alors qu'il a été demandé à « ${expectedIssuer} ». RFC 8414 §3.3 impose l'égalité — un document qui parle au nom d'un autre est rejeté.`);
167
+ const jwksUri = doc.jwks_uri;
168
+ if (typeof jwksUri !== "string" || jwksUri.length === 0) throw new Error("métadonnées d'émetteur : champ `jwks_uri` absent — sans jeu de clés, aucune signature ne peut être vérifiée.");
169
+ let keys;
170
+ try {
171
+ keys = new URL(jwksUri);
172
+ } catch {
173
+ throw new Error(`métadonnées d'émetteur : \`jwks_uri\` « ${jwksUri} » n'est pas une URL.`);
174
+ }
175
+ if (keys.protocol !== "https:") throw new Error(`métadonnées d'émetteur : \`jwks_uri\` « ${jwksUri} » doit être en https.`);
176
+ return {
177
+ issuer: declared,
178
+ jwksUri: keys.href
179
+ };
180
+ }
181
+ /**
182
+ * Compose le document de métadonnées d'émetteur.
183
+ *
184
+ * @param input - ce que l'application déclare d'elle-même
185
+ * @returns le document, prêt à sérialiser
186
+ * @throws Error si l'émetteur ne peut pas servir d'identifiant RFC 8414 §2, ou
187
+ * si le jeu de clés n'est pas joignable en `https`
188
+ */
189
+ function buildAuthorizationServerMetadata(input) {
190
+ const issuer = canonicalIssuer(input.issuer);
191
+ const jwksUri = new URL(input.jwksPath ?? "/.well-known/jwks.json", `${issuer}/`);
192
+ if (jwksUri.protocol !== "https:") throw new Error(`métadonnées d'émetteur : \`jwks_uri\` « ${jwksUri.href} » doit être en https (RFC 8414 §2).`);
193
+ return {
194
+ issuer,
195
+ jwks_uri: jwksUri.href,
196
+ response_types_supported: [],
197
+ grant_types_supported: []
198
+ };
199
+ }
200
+ /**
201
+ * Extrait les scopes accordés d'une charge utile de jeton d'accès.
202
+ *
203
+ * Deux formes coexistent dans le parc réel : `scope`, chaîne séparée par des
204
+ * espaces (RFC 8693 §4.1, RFC 9068 §2.2 — la forme normalisée), et `scp`,
205
+ * tableau, qu'emploient plusieurs fournisseurs majeurs. Ignorer la seconde
206
+ * ferait apparaître comme « sans aucun droit » des jetons parfaitement valides,
207
+ * et pousserait à contourner la vérification des scopes plutôt qu'à la
208
+ * corriger.
209
+ *
210
+ * @param payload - charge utile d'un jeton DÉJÀ vérifié
211
+ * @returns les scopes, éventuellement vides — jamais `undefined`
212
+ */
213
+ function extractScopes(payload) {
214
+ const scope = payload.scope;
215
+ if (typeof scope === "string") return scope.split(" ").filter((s) => s.length > 0);
216
+ const scp = payload.scp;
217
+ if (Array.isArray(scp)) return scp.filter((s) => typeof s === "string" && s.length > 0);
218
+ return [];
219
+ }
220
+ //#endregion
221
+ export { JWKS_PATH, authorizationServerMetadataPath, buildAuthorizationServerMetadata, canonicalIssuer, extractScopes, issuerMetadataUrls, validateIssuerMetadata };
@@ -0,0 +1,293 @@
1
+ import { readBearerHeader } from "../runtime/bearer.js";
2
+ //#region src/oauth/protectedResource.ts
3
+ /**
4
+ * Rôle **serveur de ressource** OAuth 2.1 — publier ce qu'on protège, et refuser
5
+ * en disant où obtenir un jeton.
6
+ *
7
+ * ## Ce que ce fichier n'est pas
8
+ *
9
+ * Il n'est **pas** un serveur d'autorisation, et il n'y en a jamais eu besoin :
10
+ * délivrer des jetons est un rôle distinct, que les spécifications placent
11
+ * explicitement hors du serveur de ressource (« may be hosted with the resource
12
+ * server **or a separate entity** »). Avoir écrit l'inverse a servi d'excuse à ne
13
+ * rien faire pendant tout un cycle — le reste à faire était un ordre de grandeur
14
+ * plus petit que ce qu'on s'était raconté.
15
+ *
16
+ * Il n'est pas non plus lié au **Model Context Protocol**, qui n'en est que le
17
+ * premier consommateur. Rien ici ne connaît JSON-RPC, les outils ou le
18
+ * catalogue : une ressource, une audience, un jeton, un refus. C'est ce qui
19
+ * permettra à une porte agentique de production, ou à une API d'agents, de
20
+ * réutiliser ces briques sans qu'un protocole de développement ne déteigne sur
21
+ * elles.
22
+ *
23
+ * ## Plusieurs ressources dans une même application
24
+ *
25
+ * La RFC 9728 le prévoit par construction : le chemin de la ressource est
26
+ * **inséré** dans l'URL bien connue (§3.1 — « Using path components enables
27
+ * supporting multiple resources per host »). Une application peut donc protéger
28
+ * `/nodefony/mcp` et, demain, une autre porte, chacune avec ses propres
29
+ * serveurs d'autorisation, ses scopes et son audience — sans qu'aucune de ces
30
+ * fonctions change.
31
+ *
32
+ * @see references/rfc/ietf/rfc9728.txt — métadonnées de la ressource protégée
33
+ * @see references/rfc/ietf/rfc6750.txt — présentation du jeton, `WWW-Authenticate`
34
+ * @see references/rfc/ietf/rfc8707.txt — l'audience, qui LIE un jeton à CE serveur
35
+ */
36
+ /** Préfixe bien connu des métadonnées d'une ressource protégée (RFC 9728 §3). */
37
+ const WELL_KNOWN = "/.well-known/oauth-protected-resource";
38
+ /**
39
+ * Normalise et contrôle une URI canonique de ressource (RFC 8707 §2).
40
+ *
41
+ * Trois refus, tous vécus comme des sources d'erreur silencieuse ailleurs :
42
+ * l'absence de schéma (une audience relative ne se compare à rien), un fragment
43
+ * (interdit — il ne voyage jamais jusqu'au serveur, donc deux URI distinctes
44
+ * seraient reçues identiques), et un schéma non `http(s)`.
45
+ *
46
+ * La barre oblique terminale est retirée : les deux formes sont des URI
47
+ * valides, mais l'audience se compare par **chaîne exacte** — publier une forme
48
+ * et valider l'autre produit un refus que rien n'explique.
49
+ *
50
+ * @param raw - URI telle qu'écrite en configuration
51
+ * @returns l'URI canonique, sans barre terminale
52
+ * @throws Error si l'URI ne peut pas servir d'audience
53
+ */
54
+ function canonicalResourceUri(raw) {
55
+ let url;
56
+ try {
57
+ url = new URL(raw);
58
+ } catch {
59
+ throw new Error(`URI de ressource invalide : « ${raw} » — une URI absolue est attendue (ex. « https://mon-app.example/nodefony/mcp »).`);
60
+ }
61
+ if (url.protocol !== "https:" && url.protocol !== "http:") throw new Error(`URI de ressource invalide : schéma « ${url.protocol} » — http(s) attendu.`);
62
+ if (url.hash) throw new Error(`URI de ressource invalide : « ${raw} » porte un fragment, que la RFC 8707 §2 interdit (il n'atteint jamais le serveur).`);
63
+ const composed = `${url.origin}${url.pathname}${url.search}`;
64
+ return composed.endsWith("/") && url.pathname !== "/" ? composed.slice(0, -1) : composed.replace(/\/$/, "");
65
+ }
66
+ /**
67
+ * Compose le CHEMIN où publier les métadonnées, à partir de l'URI de la
68
+ * ressource (RFC 9728 §3.1).
69
+ *
70
+ * La règle est une insertion, pas une concaténation : le suffixe bien connu se
71
+ * place **entre l'hôte et le chemin** de la ressource. Une application qui
72
+ * publierait `…/nodefony/mcp/.well-known/…` servirait un document que personne
73
+ * ne demande jamais.
74
+ *
75
+ * @param resource - URI canonique de la ressource (ou son seul chemin)
76
+ * @returns le chemin absolu à servir en `GET`
77
+ *
78
+ * @example
79
+ * ```ts
80
+ * protectedResourceMetadataPath("https://app.example/nodefony/mcp");
81
+ * // → "/.well-known/oauth-protected-resource/nodefony/mcp"
82
+ * protectedResourceMetadataPath("https://app.example");
83
+ * // → "/.well-known/oauth-protected-resource"
84
+ * ```
85
+ */
86
+ function protectedResourceMetadataPath(resource) {
87
+ let path = resource;
88
+ if (/^[a-z][a-z0-9+.-]*:\/\//i.test(resource)) {
89
+ const url = new URL(resource);
90
+ path = `${url.pathname}${url.search}`;
91
+ }
92
+ if (path === "/" || path === "") return WELL_KNOWN;
93
+ const trimmed = path.endsWith("/") ? path.slice(0, -1) : path;
94
+ return `${WELL_KNOWN}${trimmed.startsWith("/") ? "" : "/"}${trimmed}`;
95
+ }
96
+ /**
97
+ * Compose l'URL ABSOLUE des métadonnées — celle qui part dans le défi.
98
+ *
99
+ * @param resource - URI canonique de la ressource
100
+ * @returns l'URL complète du document de métadonnées
101
+ */
102
+ function protectedResourceMetadataUrl(resource) {
103
+ const canonical = canonicalResourceUri(resource);
104
+ const { origin } = new URL(canonical);
105
+ return `${origin}${protectedResourceMetadataPath(canonical)}`;
106
+ }
107
+ /**
108
+ * Compose le document de métadonnées.
109
+ *
110
+ * @param input - ce que l'application déclare de sa ressource
111
+ * @returns le document, prêt à sérialiser
112
+ * @throws Error si aucun serveur d'autorisation n'est déclaré, ou si l'URI de
113
+ * ressource ne peut pas servir d'audience
114
+ */
115
+ function buildProtectedResourceMetadata(input) {
116
+ const servers = input.authorizationServers.filter((s) => typeof s === "string" && s.length > 0);
117
+ if (servers.length === 0) throw new Error("métadonnées de ressource protégée : aucun serveur d'autorisation déclaré. Un document sans `authorization_servers` ne mène nulle part — le client apprendrait qu'un jeton est requis sans jamais pouvoir en obtenir un.");
118
+ const metadata = {
119
+ resource: canonicalResourceUri(input.resource),
120
+ authorization_servers: [...servers],
121
+ bearer_methods_supported: ["header"]
122
+ };
123
+ if (input.scopesSupported && input.scopesSupported.length > 0) metadata.scopes_supported = [...input.scopesSupported];
124
+ if (input.resourceName) metadata.resource_name = input.resourceName;
125
+ if (input.resourceDocumentation) metadata.resource_documentation = input.resourceDocumentation;
126
+ return metadata;
127
+ }
128
+ /** Codes d'erreur d'un porteur — RFC 6750 §3.1. */
129
+ const BearerError = {
130
+ /**
131
+ * Requête mal formée (schéma inconnu, jeton absent après `Bearer`).
132
+ * La RFC veut **400**, pas 401 : rien n'a été présenté qu'on puisse juger.
133
+ */
134
+ INVALID_REQUEST: "invalid_request",
135
+ /** Jeton expiré, révoqué, mal formé, ou d'une autre audience → **401**. */
136
+ INVALID_TOKEN: "invalid_token",
137
+ /** Identité prouvée, droits insuffisants → **403**. */
138
+ INSUFFICIENT_SCOPE: "insufficient_scope"
139
+ };
140
+ /**
141
+ * Compose l'en-tête `WWW-Authenticate` d'un refus.
142
+ *
143
+ * ⭐ **C'est cet en-tête qui rend l'autorisation apprenable.** Sans lui, un
144
+ * refus est un mur : le client ignore qu'un jeton existe, où le demander et pour
145
+ * quels droits. Avec `resource_metadata`, il remonte seul jusqu'au serveur
146
+ * d'autorisation — c'est le seul mécanisme normalisé pour cela.
147
+ *
148
+ * 🔴 **Le code d'erreur est OMIS quand la requête ne portait aucune information
149
+ * d'authentification** — la RFC 6750 §3 le demande explicitement (« the resource
150
+ * server SHOULD NOT include an error code or other error information »). Un
151
+ * `invalid_token` sur une requête sans jeton ferait croire au client que son
152
+ * jeton est mauvais, et le pousserait à le renouveler en boucle.
153
+ *
154
+ * @param challenge - de quoi composer le défi
155
+ * @returns la valeur de l'en-tête `WWW-Authenticate`
156
+ */
157
+ function buildBearerChallenge(challenge) {
158
+ const parts = [`resource_metadata="${challenge.resourceMetadataUrl}"`];
159
+ if (challenge.scopes && challenge.scopes.length > 0) parts.push(`scope="${challenge.scopes.join(" ")}"`);
160
+ if (challenge.error) parts.push(`error="${challenge.error}"`);
161
+ if (challenge.description) parts.push(`error_description="${sanitizeDescription(challenge.description)}"`);
162
+ return `Bearer ${parts.join(", ")}`;
163
+ }
164
+ /**
165
+ * Restreint une description à ce que la RFC 6750 §3 autorise.
166
+ *
167
+ * La grammaire y est explicite — `%x20-21 / %x23-5B / %x5D-7E` — soit l'ASCII
168
+ * imprimable **sans** guillemet ni antislash. Ce n'est pas une coquetterie : un
169
+ * en-tête HTTP n'est pas de l'UTF-8, et un simple accent y ressort en mojibake
170
+ * chez le client (constaté : « jeton refusé » arrivait en « jeton refus? »).
171
+ * Un antislash, lui, casserait carrément la grammaire de la chaîne citée.
172
+ *
173
+ * Le filtrage vit ICI, au point de composition, et non dans chaque message :
174
+ * autrement le prochain texte accentué reproduirait le défaut, et personne ne
175
+ * le verrait — un en-tête abîmé ne fait échouer aucun test qui ne le lit pas.
176
+ *
177
+ * @param raw - description telle qu'écrite par l'appelant
178
+ * @returns la description réduite au jeu de caractères autorisé
179
+ */
180
+ function sanitizeDescription(raw) {
181
+ let out = "";
182
+ for (const char of raw.replace(/"/g, "'")) {
183
+ const code = char.codePointAt(0) ?? 0;
184
+ if (code >= 32 && code <= 33 || code >= 35 && code <= 91 || code >= 93 && code <= 126) {
185
+ out += char;
186
+ continue;
187
+ }
188
+ out += " ";
189
+ }
190
+ return out.replace(/ {2,}/g, " ").trim();
191
+ }
192
+ /**
193
+ * Nom sous lequel un {@link IAccessTokenVerifier} se pose dans le conteneur.
194
+ *
195
+ * ⭐ **La constante vit ICI, avec le contrat, et pas ailleurs.** Le nom est le
196
+ * point de rendez-vous entre deux paquets qui ne se connaissent pas : celui qui
197
+ * POSE le vérificateur (la sécurité, qui porte la cryptographie) et ceux qui le
198
+ * LISENT (toute porte protégée). Écrit en dur de chaque côté, il vaut jusqu'au
199
+ * jour où l'un des deux le renomme — un littéral ne casse aucune compilation,
200
+ * et la porte cherche alors un service que personne ne pose. Importé, un
201
+ * renommage devient une erreur de type.
202
+ *
203
+ * Le nom est **générique** à dessein : le contrat prend l'audience en
204
+ * paramètre, donc une seule implémentation sert autant de ressources protégées
205
+ * que l'application en publie (RFC 9728 §3.1).
206
+ */
207
+ const ACCESS_TOKEN_VERIFIER = "accessTokenVerifier";
208
+ /**
209
+ * Décide du sort d'une requête d'après l'en-tête `Authorization`.
210
+ *
211
+ * **Fonction pure** (hors l'appel au vérificateur) : elle ne touche ni au
212
+ * socket, ni au conteneur, ni à l'horloge — d'où le fait que chacun de ses
213
+ * verdicts, statuts et en-têtes compris, s'éprouve sans démarrer de serveur.
214
+ *
215
+ * @param authorizationHeader - valeur brute de l'en-tête, ou rien
216
+ * @param policy - ce que la ressource exige
217
+ * @param verify - ce qui sait valider un jeton, s'il y a quelque chose
218
+ * @returns le verdict à appliquer
219
+ */
220
+ async function authorizeProtectedResource(authorizationHeader, policy, verify) {
221
+ const lu = readBearerHeader(authorizationHeader);
222
+ if (lu.kind === "absent" || lu.kind === "empty") {
223
+ if (policy.allowAnonymous) return { outcome: "anonymous" };
224
+ return {
225
+ outcome: "challenge",
226
+ status: 401,
227
+ wwwAuthenticate: buildBearerChallenge({
228
+ resourceMetadataUrl: policy.metadataUrl,
229
+ scopes: policy.scopes
230
+ })
231
+ };
232
+ }
233
+ if (lu.kind === "other") return {
234
+ outcome: "challenge",
235
+ status: 400,
236
+ wwwAuthenticate: buildBearerChallenge({
237
+ resourceMetadataUrl: policy.metadataUrl,
238
+ scopes: policy.scopes,
239
+ error: BearerError.INVALID_REQUEST,
240
+ description: "malformed Authorization header, Bearer scheme expected"
241
+ })
242
+ };
243
+ const token = lu.token;
244
+ if (!verify) return { outcome: "unverifiable" };
245
+ let principal = null;
246
+ try {
247
+ for (const audience of [policy.resource, ...policy.acceptedResources ?? []]) {
248
+ principal = await verify(token, audience);
249
+ if (principal !== null) break;
250
+ }
251
+ } catch (error) {
252
+ return {
253
+ outcome: "unverifiable",
254
+ why: error.message
255
+ };
256
+ }
257
+ if (principal === null) {
258
+ if (policy.allowAnonymous) return {
259
+ outcome: "anonymous",
260
+ rejected: true
261
+ };
262
+ return {
263
+ outcome: "challenge",
264
+ status: 401,
265
+ wwwAuthenticate: buildBearerChallenge({
266
+ resourceMetadataUrl: policy.metadataUrl,
267
+ scopes: policy.scopes,
268
+ error: BearerError.INVALID_TOKEN,
269
+ description: "token rejected"
270
+ })
271
+ };
272
+ }
273
+ return {
274
+ outcome: "authenticated",
275
+ principal
276
+ };
277
+ }
278
+ /**
279
+ * L'appelant présente-t-il TOUS les scopes exigés ?
280
+ *
281
+ * « Tous », et pas « au moins un » : un scope borne un pouvoir, et les cumuler
282
+ * par disjonction reviendrait à accorder le plus large de la liste.
283
+ *
284
+ * @param granted - scopes accordés au porteur
285
+ * @param required - scopes exigés par l'opération
286
+ * @returns les scopes MANQUANTS — tableau vide si rien ne manque
287
+ */
288
+ function missingScopes(granted, required) {
289
+ if (required.length === 0) return [];
290
+ return required.filter((s) => !granted.includes(s));
291
+ }
292
+ //#endregion
293
+ export { ACCESS_TOKEN_VERIFIER, BearerError, authorizeProtectedResource, buildBearerChallenge, buildProtectedResourceMetadata, canonicalResourceUri, missingScopes, protectedResourceMetadataPath, protectedResourceMetadataUrl };
@@ -0,0 +1,4 @@
1
+ //#region package.json
2
+ var version = "10.0.0-alpha.2";
3
+ //#endregion
4
+ export { version };
@@ -0,0 +1,32 @@
1
+ //#region src/realtime/IRealtimeTransport.ts
2
+ /**
3
+ * IRealtimeTransport — le SEUL maillon qui diffère client/serveur.
4
+ *
5
+ * Le protocole ({@link JsonRpcPeer}) et les « smarts » (stats, pub/sub) sont
6
+ * isomorphes ; seule la façon dont les **octets** entrent et sortent change. On
7
+ * isole donc le transport derrière cette interface : un même endpoint compose
8
+ * N transports.
9
+ *
10
+ * Implémentations :
11
+ * - `BrowserWsTransport` (navigateur, `WebSocket` + reconnect géré au-dessus)
12
+ * - `WsConnectionTransport` (serveur, wrap d'une connexion `ws` — P… RealtimeController)
13
+ * - futurs P13 : `Tcp`/`Udp`/`Redis`/`SipTransport` (RealtimeService / IRealtimeHub)
14
+ *
15
+ * Les états suivent les constantes `WebSocket` (0..3) pour rester universels —
16
+ * voir {@link TransportState}.
17
+ *
18
+ * ── Sens des flux ──
19
+ * Sortant : `send` (frame brute déjà sérialisée), `close`.
20
+ * Entrant : le owner branche `onMessage` (chaque frame reçue) ; `onOpen`/`onClose`/
21
+ * `onError` pilotent le cycle de vie (l'orchestration reconnect/heartbeat vit
22
+ * AU-DESSUS, dans l'endpoint — le transport reste « bête »).
23
+ */
24
+ /** États d'un transport — alignés sur les constantes `WebSocket`. */
25
+ const TransportState = {
26
+ CONNECTING: 0,
27
+ OPEN: 1,
28
+ CLOSING: 2,
29
+ CLOSED: 3
30
+ };
31
+ //#endregion
32
+ export { TransportState };