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,276 @@
1
+ import Service from "../Service.js";
2
+ import { announceKernel, consoleDetails, isVerbose } from "./announce.js";
3
+ import { RealtimeClient } from "./realtime/RealtimeClient.js";
4
+ //#region src/client/ClientKernel.ts
5
+ /**
6
+ * `ClientKernel` — implémentation du kernel client isomorphe (ADR-0007).
7
+ *
8
+ * Le pendant navigateur du `Kernel` serveur : il compose les services techniques
9
+ * d'une application front, porte son cycle de vie, son observabilité et son cycle
10
+ * d'identité. Il ne possède **jamais** le rendu, le routing ni l'état métier
11
+ * (clause anti-dérive D1) — React/Vue/Angular restent maîtres de la vue.
12
+ *
13
+ * Il **compose** un {@link Service} du cœur plutôt que d'en hériter, et ce choix
14
+ * s'est décidé au compilateur : `Service.get`/`set` sont la façade du container
15
+ * d'injection, dont la sémantique est « n'importe quel objet sous n'importe quel
16
+ * nom » (`get<T>(name: string): T | null`), tandis que le registre du kernel est
17
+ * **typé et fermé** par le contrat (`get(name): NodefonyClientServices[K]`).
18
+ * Hériter revenait à resserrer une méthode publique de la classe de base — TS2416,
19
+ * et le refus dit une vérité de conception : deux mécanismes différents portaient
20
+ * le même nom. La composition garde les briques isomorphes du cœur (bus
21
+ * d'événements, `Syslog`) sans exposer une surface qui n'est pas celle du contrat.
22
+ *
23
+ * Le budget bundle n'augmente pas de ce fait : `Service` et `Syslog` sont déjà
24
+ * publiés par `nodefony/client`.
25
+ *
26
+ * @module nodefony/client
27
+ */
28
+ /**
29
+ * Kernel client — obtenu par {@link createClientKernel}, jamais construit en
30
+ * singleton de module (testabilité, HMR-safe : un module réévalué par Vite
31
+ * dédoublerait un singleton, gotcha vécu sur le contexte React de Studio).
32
+ */
33
+ var ClientKernel = class {
34
+ /** Journal client de série — `Pdu` isomorphes, corrélables au back. */
35
+ syslog;
36
+ /** Bus d'événements et journal du cœur — la brique isomorphe, pas une copie. */
37
+ #service;
38
+ /** Options de composition, relues au `boot()` — le constructeur ne connecte rien. */
39
+ #options;
40
+ #state = "created";
41
+ #identity = null;
42
+ /**
43
+ * Promesse du `boot()` en cours — c'est ELLE qui rend l'appel idempotent, y
44
+ * compris pour deux appels concurrents : le second attend le premier au lieu
45
+ * de composer une seconde fois.
46
+ */
47
+ #booting = null;
48
+ /**
49
+ * Registre des services composés. `null` tant que rien n'est enregistré (règle
50
+ * perf : pas de structure allouée « au cas où »). Un objet sans prototype
51
+ * plutôt qu'une `Map` — moins de trois entrées, accès ponctuel.
52
+ */
53
+ #services = null;
54
+ /**
55
+ * Débranchements des listeners navigateur. `null` tant qu'aucun n'est posé —
56
+ * un kernel monté en test, ou hors document, n'en pose aucun.
57
+ */
58
+ #unbind = null;
59
+ /** Retire le handle de console — posé par la bannière, libéré à la mort. */
60
+ #disposeHandle = null;
61
+ constructor(options = {}) {
62
+ this.#options = options;
63
+ this.#service = new Service(options.name ?? "CLIENT KERNEL");
64
+ this.syslog = this.#service.syslog;
65
+ this.#disposeHandle = announceKernel(this, this.name, this.#options.banner);
66
+ this.#composeRealtime();
67
+ }
68
+ /**
69
+ * Récupère un service composé, typé par le registre.
70
+ *
71
+ * Rend `undefined` pour un service absent — le registre est décrit par des
72
+ * propriétés optionnelles, si bien que `kernel.get("realtime")` est de type
73
+ * `RealtimeClient | undefined` et nourrit `<NodefonyProvider client={…}>` sans
74
+ * la moindre conversion de type forcée.
75
+ */
76
+ get(name) {
77
+ if (!this.#services) return void 0;
78
+ return this.#services[name];
79
+ }
80
+ /** Enregistre un service sous son nom contractuel. */
81
+ set(name, svc) {
82
+ (this.#services ??= Object.create(null))[name] = svc;
83
+ }
84
+ /** Teste la présence d'un service — nom libre, y compris hors contrat. */
85
+ has(name) {
86
+ return this.#services !== null && this.#services[name] !== void 0;
87
+ }
88
+ /** État courant — jamais régressif. */
89
+ get state() {
90
+ return this.#state;
91
+ }
92
+ /**
93
+ * Compose et connecte les services. **Idempotent** : rappelé pendant ou après
94
+ * un premier boot, il ne recompose rien et ne réémet aucun événement. Depuis
95
+ * l'état `terminated`, il ne fait rien — l'état ne régresse jamais.
96
+ */
97
+ boot() {
98
+ if (this.#state === "terminated" || this.#state === "ready") return Promise.resolve();
99
+ if (this.#booting) return this.#booting;
100
+ this.#booting = this.#doBoot();
101
+ return this.#booting;
102
+ }
103
+ async #doBoot() {
104
+ this.#state = "booting";
105
+ this.#service.fire("onBoot", this);
106
+ this.#bindBrowser();
107
+ const socket = this.#options.connectOnBoot === false ? void 0 : this.get("realtime");
108
+ if (socket) try {
109
+ await socket.connect();
110
+ } catch (e) {
111
+ this.syslog.log(e instanceof Error ? e.message : String(e), "WARNING");
112
+ }
113
+ if (this.#state !== "booting") return;
114
+ this.#state = "ready";
115
+ this.#details();
116
+ this.#service.fire("onReady", this);
117
+ }
118
+ /**
119
+ * Détail du noyau, dans un groupe REPLIÉ de la console.
120
+ *
121
+ * Le badge d'une ligne et le handle `nodefony` ne sont plus ici : ils sont
122
+ * posés au constructeur par `announce.ts`, que la socket appelle aussi quand
123
+ * elle vit nue (ADR-0007 D7 révisé). Ce qui reste est ce qu'un noyau seul peut
124
+ * dire — son état, son identité, les services qu'il a composés.
125
+ *
126
+ * Le groupe est replié (`groupCollapsed`) et non ouvert : présent pour qui le
127
+ * cherche, invisible pour qui débogue autre chose.
128
+ */
129
+ #details() {
130
+ if (this.#options.banner === false) return;
131
+ if (this.#options.banner !== true && !isVerbose()) return;
132
+ const socket = this.get("realtime");
133
+ const rows = {
134
+ état: { valeur: this.state },
135
+ identité: { valeur: this.identity ? this.identity.key : "anonyme" },
136
+ "temps réel": { valeur: socket ? socket.url ?? "socket fournie" : "aucun" },
137
+ socket: { valeur: socket ? socket.state : "—" }
138
+ };
139
+ for (const name of this.#services ? Object.keys(this.#services) : []) rows[`service · ${name}`] = { valeur: "composé" };
140
+ consoleDetails(rows, this, "noyau client — détail et raccourcis");
141
+ }
142
+ /**
143
+ * Compose la socket depuis les options — instance passée telle quelle, ou
144
+ * socket partagée fabriquée depuis ses options (une seule connexion par URL).
145
+ * Rien n'est fabriqué quand l'application n'en veut pas : l'opt-in est strict
146
+ * (D7), le kernel compose, il n'impose pas.
147
+ */
148
+ #composeRealtime() {
149
+ if (this.has("realtime")) return;
150
+ const opt = this.#options.realtime;
151
+ if (!opt) return;
152
+ this.set("realtime", opt instanceof RealtimeClient ? opt : RealtimeClient.shared(opt));
153
+ }
154
+ /**
155
+ * Flush l'observabilité et déconnecte. Idempotent, et **best-effort** : appelé
156
+ * sur `pagehide`, il n'a aucune garantie d'aller au bout — d'où l'ordre choisi,
157
+ * l'événement d'abord, le débranchement ensuite.
158
+ */
159
+ async terminate() {
160
+ if (this.#state === "terminated") return;
161
+ this.#state = "terminated";
162
+ this.#service.fire("onTerminate", this);
163
+ const socket = this.get("realtime");
164
+ if (socket) socket.disconnect();
165
+ this.#unbindBrowser();
166
+ this.#disposeHandle?.();
167
+ this.#disposeHandle = null;
168
+ this.#booting = null;
169
+ this.#services = null;
170
+ this.#service.clean();
171
+ }
172
+ /** Nom du kernel — celui donné à la fabrique, `CLIENT KERNEL` par défaut. */
173
+ get name() {
174
+ return this.#service.name;
175
+ }
176
+ /** Identité runtime courante, telle que l'application l'a déclarée. */
177
+ get identity() {
178
+ return this.#identity;
179
+ }
180
+ /**
181
+ * Déclare l'identité runtime — et applique la règle de sécurité D9, née d'une
182
+ * fuite vécue en production.
183
+ *
184
+ * Deux gardes, chacune payée par une régression réelle :
185
+ *
186
+ * 1. **`disconnect()` uniquement sur un VRAI changement de compte** (une clé
187
+ * connue remplacée par une autre). La socket grave l'identité au handshake ;
188
+ * le pont « API souveraine » rejouerait sinon des requêtes avec le jeton du
189
+ * compte précédent. Couper impose un nouveau handshake, donc la relecture du
190
+ * cookie courant.
191
+ * 2. **`connect()` HORS de cette garde.** Au tout premier chargement, la clé
192
+ * passe de `null` à une valeur : couper là romprait les requêtes EN VOL qui
193
+ * passent par le pont, et l'écran resterait en attente jusqu'au délai de
194
+ * garde (régression « tourne en boucle »).
195
+ *
196
+ * Une clé inchangée n'est pas un changement de compte : le profil est rafraîchi
197
+ * en silence, sans toucher à la socket ni réveiller l'application.
198
+ */
199
+ setIdentity(identity) {
200
+ const previous = this.#identity;
201
+ const previousKey = previous ? previous.key : null;
202
+ const key = identity ? identity.key : null;
203
+ this.#identity = identity;
204
+ if (previousKey === key) return;
205
+ const socket = this.get("realtime");
206
+ if (socket) {
207
+ if (previousKey !== null) socket.disconnect();
208
+ if (key !== null) socket.connect();
209
+ }
210
+ this.#service.fire("onIdentityChange", identity, previous);
211
+ }
212
+ /** Abonne un handler à un événement du kernel (bus `Event` du cœur, chaînable). */
213
+ on(event, handler) {
214
+ this.#service.on(event, handler);
215
+ return this;
216
+ }
217
+ /** Retire un handler abonné par {@link on}. */
218
+ off(event, handler) {
219
+ this.#service.removeListener(event, handler);
220
+ return this;
221
+ }
222
+ /**
223
+ * Ponte les événements du navigateur sur ceux du kernel.
224
+ *
225
+ * `pagehide` et non `beforeunload` : ce dernier n'est pas fiable sur mobile
226
+ * (bfcache), et le contrat ne nomme que l'événement kernel — le choix du
227
+ * listener reste une affaire d'implémentation.
228
+ */
229
+ #bindBrowser() {
230
+ if (this.#options.browserEvents === false) return;
231
+ const doc = globalThis.document;
232
+ const win = globalThis.window;
233
+ if (!doc || !win) return;
234
+ const bind = (target, type, handler) => {
235
+ target.addEventListener(type, handler);
236
+ (this.#unbind ??= []).push(() => target.removeEventListener(type, handler));
237
+ };
238
+ bind(doc, "visibilitychange", () => this.#service.fire("onVisibility", doc.visibilityState !== "hidden"));
239
+ bind(win, "online", () => this.#service.fire("onOnline", true));
240
+ bind(win, "offline", () => this.#service.fire("onOnline", false));
241
+ bind(win, "pagehide", () => void this.terminate());
242
+ }
243
+ /** Défait tous les listeners navigateur — appelé par `terminate()`, une fois. */
244
+ #unbindBrowser() {
245
+ if (!this.#unbind) return;
246
+ for (const off of this.#unbind) off();
247
+ this.#unbind = null;
248
+ }
249
+ /**
250
+ * Nombre de listeners navigateur encore posés.
251
+ *
252
+ * Sonde de fuite à l'usage des tests : un kernel terminé doit en compter zéro,
253
+ * et c'est la seule façon de le CONSTATER plutôt que de le supposer.
254
+ */
255
+ get browserListenerCount() {
256
+ return this.#unbind ? this.#unbind.length : 0;
257
+ }
258
+ };
259
+ /**
260
+ * Fabrique un kernel client.
261
+ *
262
+ * Factory et non singleton : plusieurs kernels doivent pouvoir coexister en test,
263
+ * et un état de module global se dédouble sous le rechargement à chaud de Vite.
264
+ *
265
+ * @example
266
+ * ```typescript
267
+ * const kernel = createClientKernel({ realtime: { url: "/nodefony/realtime" } });
268
+ * await kernel.boot();
269
+ * kernel.setIdentity({ key: user.id });
270
+ * ```
271
+ */
272
+ function createClientKernel(options = {}) {
273
+ return new ClientKernel(options);
274
+ }
275
+ //#endregion
276
+ export { ClientKernel, ClientKernel as default, createClientKernel };
@@ -0,0 +1,352 @@
1
+ import { isRateChannel, parseRate, rateChannel } from "../../realtime/channelRate.js";
2
+ import { adaptiveRebindKey, connectShared, observeChannel, observeChannelStats, observeIdentity, observeNoticeLog, observeNotices, observeSnapshot, observeState, observeSyslog } from "../realtime/observe.js";
3
+ import { DestroyRef, InjectionToken, NgZone, assertInInjectionContext, effect, inject, makeEnvironmentProviders, signal, untracked } from "@angular/core";
4
+ //#region src/client/angular/index.ts
5
+ /**
6
+ * `nodefony/angular` — liaisons **Angular** du client temps réel isomorphe.
7
+ *
8
+ * Adapte le {@link RealtimeClient} (agnostique : `on()`/`emit()`/`state`) aux
9
+ * *signals* d'Angular, sans glue à recopier dans chaque application. Le pendant
10
+ * exact de `nodefony/react` et `nodefony/vue` : même surface, mêmes noms, mêmes
11
+ * garanties — seule la traduction vers la réactivité change.
12
+ *
13
+ * **Ce fichier ne contient AUCUNE règle temps réel.** Souscrire, tenir un
14
+ * dernier reçu, borner un anneau, décoder le format coalescé du journal, ne
15
+ * jamais couper une socket partagée : tout cela vit dans le socle agnostique
16
+ * `nodefony/client` (`observe*`, `connectShared`), que les quatre liaisons
17
+ * consomment à l'identique. Ici ne reste que la traduction *rappel + libération
18
+ * → signal* — la seule chose qu'une liaison a le droit de contenir. Une liaison
19
+ * qui réencoderait une règle la ferait diverger des trois autres, en silence.
20
+ *
21
+ * Trois particularités d'Angular que React et Vue ne montrent pas, et qui sont
22
+ * la raison d'être de ce fichier :
23
+ *
24
+ * 1. **AUCUN décorateur Angular n'est publié ici**, et c'est délibéré. Un
25
+ * `@Injectable()` n'est pas du JavaScript : c'est une instruction pour le
26
+ * compilateur d'Angular, qui doit la transformer. Une bibliothèque qui en
27
+ * publie doit donc être bâtie par `ng-packagr` au format de paquet Angular
28
+ * (*partial compilation* + *linker*) — une seconde chaîne de build, et un
29
+ * couplage aux majeures d'Angular, pour UN subpath sur quatre. Non compilé,
30
+ * un décorateur marche parfois en développement (si `@angular/compiler` est
31
+ * chargé) et **casse en production**, où il ne l'est pas. La forme retenue
32
+ * — `InjectionToken` + `makeEnvironmentProviders` + fonctions `inject*()` —
33
+ * est celle qu'Angular emploie pour lui-même (`provideHttpClient`,
34
+ * `provideRouter`, `takeUntilDestroyed`) : du TypeScript ordinaire, que
35
+ * rolldown bâtit comme le reste, et une DI intacte.
36
+ * ⚠️ Cela ne restreint EN RIEN l'application : `@Component`, `@Injectable`,
37
+ * `@Directive` y sont compilés par le plugin Angular du builder Nodefony.
38
+ * Ces fonctions s'appellent depuis un composant ou un service décoré.
39
+ * 2. **Les écouteurs sont posés HORS ZONE.** Dans une application avec
40
+ * `zone.js`, `zone.js` remplace `WebSocket` pour savoir quand relancer la
41
+ * détection de changements : une socket ouverte dans la zone déclenche donc
42
+ * une détection **globale à chaque trame** — un canal à 10 Hz coûterait dix
43
+ * détections par seconde à TOUTE l'application, ce que la règle de
44
+ * performance du projet interdit. {@link provideNodefony} ouvre donc la
45
+ * connexion dans `NgZone.runOutsideAngular`. Les valeurs, elles, arrivent
46
+ * par des *signals*, qui notifient leurs lecteurs sans zone : juste dans les
47
+ * deux mondes, `zone.js` ou `provideZonelessChangeDetection()`.
48
+ * 3. **La libération passe par le contexte d'injection**, jamais par une valeur
49
+ * de retour : `DestroyRef` pour un abonnement fixe, le nettoyage d'`effect`
50
+ * pour un abonnement qui suit un signal. C'est le composant (ou le service)
51
+ * qui possède l'abonnement, et sa destruction le rend.
52
+ *
53
+ * `@angular/core` est une peerDep **optionnelle** : ce module n'est tiré que si
54
+ * on importe `nodefony/angular`.
55
+ *
56
+ * @example La page entière, en deux concepts :
57
+ * ```ts
58
+ * // main.ts
59
+ * bootstrapApplication(AppComponent, {
60
+ * providers: [provideNodefony({ url: "/api/live/realtime" })],
61
+ * });
62
+ * ```
63
+ * ```ts
64
+ * // app.component.ts
65
+ * @Component({ selector: "app-root", template: `{{ etat() }}` })
66
+ * export class AppComponent {
67
+ * readonly etat = injectNodefonyState();
68
+ * readonly last = injectNodefonyChannelData<LiveEvent>("live:events");
69
+ * }
70
+ * ```
71
+ *
72
+ * @module nodefony/angular
73
+ */
74
+ /**
75
+ * Le jeton sous lequel {@link provideNodefony} enregistre la socket.
76
+ *
77
+ * Exporté pour le cas légitime où un sous-arbre doit parler à une AUTRE socket
78
+ * que celle de l'application : le fournir à nouveau dans les `providers` d'un
79
+ * composant suffit, et les fonctions du sous-arbre suivent.
80
+ */
81
+ const NODEFONY_CLIENT = new InjectionToken("nodefony:realtime");
82
+ /**
83
+ * Le fournisseur — à poser une fois, dans les `providers` de l'application.
84
+ *
85
+ * Il fait exactement deux choses : enregistrer la socket, et lancer la
86
+ * connexion **hors zone**. Il n'en coupe aucune : la connexion appartient à la
87
+ * PAGE, pas à un composant, et `disconnect()` tranche les requêtes en vol des
88
+ * autres consommateurs de la même socket partagée.
89
+ *
90
+ * La socket est résolue **immédiatement** (donc une adresse manquante est
91
+ * refusée à la construction des providers, pas à la première injection) ; la
92
+ * connexion, elle, n'est ouverte qu'au premier `inject`, et hors zone.
93
+ *
94
+ * @throws si ni `url` ni `client` n'est fourni — l'adresse dépend de
95
+ * l'application, et le framework n'en devine aucune (règle du socle : une
96
+ * adresse devinée marche en développement et se trompe en production).
97
+ *
98
+ * @example
99
+ * ```ts
100
+ * bootstrapApplication(AppComponent, {
101
+ * providers: [
102
+ * provideZonelessChangeDetection(),
103
+ * provideNodefony({ url: "/api/live/realtime" }),
104
+ * ],
105
+ * });
106
+ * ```
107
+ */
108
+ function provideNodefony(options) {
109
+ const connection = connectShared(options);
110
+ return makeEnvironmentProviders([{
111
+ provide: NODEFONY_CLIENT,
112
+ useFactory: () => {
113
+ inject(NgZone).runOutsideAngular(() => {
114
+ connection.start();
115
+ });
116
+ return connection.socket;
117
+ }
118
+ }]);
119
+ }
120
+ /**
121
+ * `injectNodefony()` — la socket brute (canaux, journal, statistiques…). Tête de
122
+ * gondole et échappatoire pour les cas avancés ; pour de l'état réactif, prendre
123
+ * les fonctions dédiées ci-dessous.
124
+ *
125
+ * @throws si {@link provideNodefony} n'est pas dans les `providers`. Le socle
126
+ * REFUSE de deviner une adresse : retomber ici sur une socket partagée
127
+ * fabriquée à la volée donnerait une page qui marche en développement et parle
128
+ * au mauvais hôte en production — mieux vaut une erreur au premier rendu.
129
+ */
130
+ function injectNodefony() {
131
+ assertInInjectionContext(injectNodefony);
132
+ const client = inject(NODEFONY_CLIENT, { optional: true });
133
+ if (!client) throw new Error("injectNodefony() : provideNodefony() n'est pas dans les providers — bootstrapApplication(App, { providers: [provideNodefony({ url: \"/api/live/realtime\" })] }).");
134
+ return client;
135
+ }
136
+ /** Lit une source, qu'elle soit constante ou fonction. */
137
+ function read(source) {
138
+ return typeof source === "function" ? source() : source;
139
+ }
140
+ /**
141
+ * Le motif commun à toutes les fonctions d'abonnement : brancher, rebrancher
142
+ * quand la source change, libérer à la destruction.
143
+ *
144
+ * Deux chemins, et l'écart entre eux est voulu :
145
+ *
146
+ * - **source constante** → branchement direct + `DestroyRef`. Aucun `effect`
147
+ * n'est alloué pour une valeur qui ne bougera jamais (règle de performance du
148
+ * projet : pas de structure allouée « au cas où »).
149
+ * - **source fonction** → `effect`, dont la lecture TRACKÉE rebranche à chaque
150
+ * changement et dont le nettoyage rend l'abonnement précédent. `untracked`
151
+ * entoure le branchement : ce que le socle lirait par ailleurs ne doit pas
152
+ * devenir une dépendance de l'effet.
153
+ */
154
+ function observeReactive(source, wire) {
155
+ if (typeof source !== "function") {
156
+ const release = wire(source);
157
+ inject(DestroyRef).onDestroy(release);
158
+ return;
159
+ }
160
+ effect((onCleanup) => {
161
+ const value = read(source);
162
+ onCleanup(untracked(() => wire(value)));
163
+ });
164
+ }
165
+ /**
166
+ * `injectNodefonyState()` — l'état de la connexion (`"connected"`,
167
+ * `"reconnecting"`, …), tenu à jour. Branché sur la porte publique `onState`,
168
+ * jamais sur le nom de l'événement local, qui n'a pas à sortir du client.
169
+ */
170
+ function injectNodefonyState() {
171
+ assertInInjectionContext(injectNodefonyState);
172
+ const client = injectNodefony();
173
+ const state = signal(client.state);
174
+ observeReactive(client, (socket) => observeState(socket, (value) => state.set(value)));
175
+ return state.asReadonly();
176
+ }
177
+ /**
178
+ * `injectNodefonyIdentity()` — l'**identité résolue** de la connexion, annoncée
179
+ * par le serveur au `realtime:welcome` (`authenticated`, `roles`,
180
+ * `userIdentifier`, `scopes`). `null` tant qu'aucun welcome n'est arrivé ; une
181
+ * fois reçu, un visiteur anonyme a `authenticated: false`. Brique du gating
182
+ * front : `authenticated: false` → écran de connexion, **sans** appeler
183
+ * `/auth/me`.
184
+ */
185
+ function injectNodefonyIdentity() {
186
+ assertInInjectionContext(injectNodefonyIdentity);
187
+ const client = injectNodefony();
188
+ const identity = signal(client.identity);
189
+ observeReactive(client, (socket) => observeIdentity(socket, (value) => identity.set(value)));
190
+ return identity.asReadonly();
191
+ }
192
+ /**
193
+ * `injectNodefonyChannel()` — s'abonne à un canal pub/sub : `onMessage` est
194
+ * appelé à chaque message. Le socle apparie `subscribe`/`unsubscribe` côté
195
+ * serveur (ref-comptés) et rejoue l'abonnement à chaque reconnexion.
196
+ *
197
+ * Le canal accepte un signal (ou toute fonction qui le lit) : l'abonnement suit
198
+ * alors la valeur, en libérant l'ancien avant de prendre le nouveau.
199
+ */
200
+ function injectNodefonyChannel(channel, onMessage) {
201
+ assertInInjectionContext(injectNodefonyChannel);
202
+ const client = injectNodefony();
203
+ observeReactive(channel, (name) => observeChannel(client, name, onMessage));
204
+ }
205
+ /**
206
+ * `injectNodefonyChannelData()` — la **dernière valeur** reçue sur un canal (le
207
+ * cas le plus courant : la dernière mesure d'un flux d'état). `null` tant que
208
+ * rien n'est arrivé.
209
+ */
210
+ function injectNodefonyChannelData(channel, initial = null) {
211
+ assertInInjectionContext(injectNodefonyChannelData);
212
+ const data = signal(initial);
213
+ injectNodefonyChannel(channel, (payload) => data.set(payload));
214
+ return data.asReadonly();
215
+ }
216
+ /**
217
+ * `injectNodefonyAdaptiveChannel()` — comme {@link injectNodefonyChannel}, mais
218
+ * en **cadence adaptative** (AIMD piloté par le client) : la cadence recule sous
219
+ * famine puis remonte quand c'est sain, sans rien changer au serveur. Renvoie la
220
+ * cadence effective, à afficher.
221
+ *
222
+ * Réservé aux canaux d'ÉTAT (latest-wins) : décimer un canal d'événements perd
223
+ * des messages.
224
+ *
225
+ * Le ré-abonnement suit {@link adaptiveRebindKey} — la MÊME clé que les trois
226
+ * autres liaisons, pour que les quatre rebranchent aux mêmes instants.
227
+ */
228
+ function injectNodefonyAdaptiveChannel(base, onMessage, desiredMs, options = {}) {
229
+ assertInInjectionContext(injectNodefonyAdaptiveChannel);
230
+ const client = injectNodefony();
231
+ const cadence = signal(read(desiredMs));
232
+ const enabled = options.enabled !== false;
233
+ observeReactive(() => adaptiveRebindKey(read(base), read(desiredMs), enabled), () => {
234
+ const binding = client.adaptiveChannel(read(base), (...args) => onMessage(args[0]), {
235
+ ...options,
236
+ intervalMs: read(desiredMs),
237
+ enabled,
238
+ onRate: (ms) => cadence.set(ms)
239
+ });
240
+ return () => binding.dispose();
241
+ });
242
+ return cadence.asReadonly();
243
+ }
244
+ /**
245
+ * `injectNodefonyAdaptiveChannelData()` — comme
246
+ * {@link injectNodefonyChannelData}, mais en cadence adaptative. Mince surcouche
247
+ * de {@link injectNodefonyAdaptiveChannel} : garde la dernière valeur et rend la
248
+ * cadence effective. Réservé aux canaux d'ÉTAT.
249
+ */
250
+ function injectNodefonyAdaptiveChannelData(base, desiredMs, options = {}) {
251
+ assertInInjectionContext(injectNodefonyAdaptiveChannelData);
252
+ const data = signal(null);
253
+ const intervalMs = injectNodefonyAdaptiveChannel(base, (payload) => data.set(payload), desiredMs, options);
254
+ return {
255
+ data: data.asReadonly(),
256
+ intervalMs
257
+ };
258
+ }
259
+ /**
260
+ * `injectNodefonyChannelStats()` — statistiques vivantes d'un canal (débit,
261
+ * série pour un VU-mètre, total). La source est l'échantillonneur du client
262
+ * (1×/s) : aucune horloge n'est posée ici, et aucune trame n'est émise pour
263
+ * mesurer.
264
+ */
265
+ function injectNodefonyChannelStats(channel) {
266
+ assertInInjectionContext(injectNodefonyChannelStats);
267
+ const client = injectNodefony();
268
+ const stats = signal(null);
269
+ observeReactive(channel, (name) => observeChannelStats(client, name, (value) => stats.set(value)));
270
+ return stats.asReadonly();
271
+ }
272
+ /**
273
+ * `injectNodefonySnapshot()` — ce que la socket sait d'ELLE-MÊME : état, canaux
274
+ * tenus, trames reçues, trames perdues, dernière trame. Rafraîchi par
275
+ * l'échantillonneur déjà en place — aucune horloge de plus.
276
+ *
277
+ * La donnée est au socle, la **boîte qui l'affiche** reste à chaque front :
278
+ * publier un composant obligerait à en écrire un par framework de vue, et ferait
279
+ * entrer du DOM dans un module dont toute la valeur est de n'en avoir aucun.
280
+ */
281
+ function injectNodefonySnapshot() {
282
+ assertInInjectionContext(injectNodefonySnapshot);
283
+ const client = injectNodefony();
284
+ const snapshot = signal(null);
285
+ observeReactive(client, (socket) => observeSnapshot(socket, (value) => snapshot.set(value)));
286
+ return snapshot.asReadonly();
287
+ }
288
+ /**
289
+ * `injectNodefonySyslog()` — le flux du journal, prêt à afficher : anneau borné
290
+ * et filtre de sévérité. Le format **coalescé** du canal (`{ logs, dropped }`),
291
+ * l'entrée unique, la taille de l'anneau et le canal par défaut viennent du
292
+ * socle ({@link observeSyslog}) : cette fonction n'en connaît aucun.
293
+ */
294
+ function injectNodefonySyslog(options = {}) {
295
+ assertInInjectionContext(injectNodefonySyslog);
296
+ const client = injectNodefony();
297
+ const lines = signal([]);
298
+ const wire = () => {
299
+ const o = read(options);
300
+ const settings = {
301
+ max: o.max,
302
+ severities: o.severities,
303
+ channel: o.channel
304
+ };
305
+ return observeSyslog(client, (entries) => lines.set(entries), settings);
306
+ };
307
+ observeReactive(typeof options === "function" ? () => {
308
+ const o = read(options);
309
+ return `${o.channel ?? ""}|${o.max ?? ""}|${(o.severities ?? []).join(",")}`;
310
+ } : "", wire);
311
+ return lines.asReadonly();
312
+ }
313
+ /**
314
+ * `injectNodefonyNotifications()` — le flux des **notices normalisées** du
315
+ * client : criticités qui cassent le temps réel (codes de fermeture RFC 6455
316
+ * interprétés), erreurs poussées par le serveur, rétablissement de connexion.
317
+ * `onNotice` est appelé pour CHAQUE notice → brancher un centre de
318
+ * notifications.
319
+ *
320
+ * À monter **une seule fois** (le shell de l'application), sans quoi la même
321
+ * notice s'affiche autant de fois qu'il y a d'appels.
322
+ */
323
+ function injectNodefonyNotifications(onNotice) {
324
+ assertInInjectionContext(injectNodefonyNotifications);
325
+ observeReactive(injectNodefony(), (socket) => observeNotices(socket, onNotice));
326
+ }
327
+ /**
328
+ * `injectNodefonyNoticeLog()` — l'anneau borné des dernières notices, filtrable
329
+ * par source : un historique léger des criticités, distinct des notifications
330
+ * éphémères. La taille de l'anneau et le filtrage viennent du socle
331
+ * ({@link observeNoticeLog}).
332
+ */
333
+ function injectNodefonyNoticeLog(options = {}) {
334
+ assertInInjectionContext(injectNodefonyNoticeLog);
335
+ const client = injectNodefony();
336
+ const notices = signal([]);
337
+ const wire = () => {
338
+ const o = read(options);
339
+ const settings = {
340
+ max: o.max,
341
+ sources: o.sources
342
+ };
343
+ return observeNoticeLog(client, (list) => notices.set(list), settings);
344
+ };
345
+ observeReactive(typeof options === "function" ? () => {
346
+ const o = read(options);
347
+ return `${o.max ?? ""}|${(o.sources ?? []).join(",")}`;
348
+ } : "", wire);
349
+ return notices.asReadonly();
350
+ }
351
+ //#endregion
352
+ export { NODEFONY_CLIENT, injectNodefony, injectNodefonyAdaptiveChannel, injectNodefonyAdaptiveChannelData, injectNodefonyChannel, injectNodefonyChannelData, injectNodefonyChannelStats, injectNodefonyIdentity, injectNodefonyNoticeLog, injectNodefonyNotifications, injectNodefonySnapshot, injectNodefonyState, injectNodefonySyslog, isRateChannel, parseRate, provideNodefony, rateChannel };