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.
- package/.ai/symbols.json +36135 -0
- package/LICENSE +544 -0
- package/README.md +316 -694
- package/bin/nodefony +2183 -85
- package/dist/client/Container.js +367 -0
- package/dist/client/Event.js +198 -0
- package/dist/client/Service.js +344 -0
- package/dist/client/Tools.js +162 -0
- package/dist/client/client/ClientKernel.js +276 -0
- package/dist/client/client/angular/index.js +352 -0
- package/dist/client/client/announce.js +212 -0
- package/dist/client/client/debugbar/DebugBar.js +1624 -0
- package/dist/client/client/debugbar/format.js +103 -0
- package/dist/client/client/debugbar/hmr.js +37 -0
- package/dist/client/client/debugbar/index.js +29 -0
- package/dist/client/client/debugbar/model.js +133 -0
- package/dist/client/client/debugbar/network.js +173 -0
- package/dist/client/client/debugbar/profile.js +114 -0
- package/dist/client/client/index.js +34 -0
- package/dist/client/client/react/index.js +268 -0
- package/dist/client/client/realtime/AdaptiveRate.js +240 -0
- package/dist/client/client/realtime/BrowserWsTransport.js +57 -0
- package/dist/client/client/realtime/RealtimeClient.js +898 -0
- package/dist/client/client/realtime/localEvents.js +56 -0
- package/dist/client/client/realtime/notice.js +125 -0
- package/dist/client/client/realtime/observe.js +280 -0
- package/dist/client/client/roles/index.js +3 -0
- package/dist/client/client/roles/registry.js +97 -0
- package/dist/client/client/roles/roles.js +91 -0
- package/dist/client/client/shim/events.js +88 -0
- package/dist/client/client/shim/util.js +20 -0
- package/dist/client/client/svelte/index.js +319 -0
- package/dist/client/client/syslog/context.js +122 -0
- package/dist/client/client/syslog/errors.js +49 -0
- package/dist/client/client/syslog/uplink.js +106 -0
- package/dist/client/client/vue/index.js +321 -0
- package/dist/client/colors.js +63 -0
- package/dist/client/debugbar.standalone.js +4274 -0
- package/dist/client/realtime/IRealtimeTransport.js +32 -0
- package/dist/client/realtime/JsonRpcPeer.js +251 -0
- package/dist/client/realtime/channelRate.js +39 -0
- package/dist/client/realtime/platformChannels.js +155 -0
- package/dist/client/syslog/Pdu.js +224 -0
- package/dist/client/syslog/Syslog.js +1159 -0
- package/dist/client/syslog/drivers/pduFlow.js +106 -0
- package/dist/client/syslog/drivers/pduProtocol.js +28 -0
- package/dist/client/syslog/logColor.js +80 -0
- package/dist/client/types/src/Container.d.ts +221 -0
- package/dist/client/types/src/Event.d.ts +171 -0
- package/dist/client/types/src/FileClass.d.ts +184 -0
- package/dist/client/types/src/Service.d.ts +165 -0
- package/dist/client/types/src/Tools.d.ts +116 -0
- package/dist/client/types/src/client/ClientKernel.d.ts +90 -0
- package/dist/client/types/src/client/IClientKernel.d.ts +195 -0
- package/dist/client/types/src/client/angular/index.d.ts +273 -0
- package/dist/client/types/src/client/announce.d.ts +74 -0
- package/dist/client/types/src/client/debugbar/DebugBar.d.ts +279 -0
- package/dist/client/types/src/client/debugbar/format.d.ts +48 -0
- package/dist/client/types/src/client/debugbar/hmr.d.ts +16 -0
- package/dist/client/types/src/client/debugbar/index.d.ts +30 -0
- package/dist/client/types/src/client/debugbar/model.d.ts +158 -0
- package/dist/client/types/src/client/debugbar/network.d.ts +55 -0
- package/dist/client/types/src/client/debugbar/profile.d.ts +99 -0
- package/dist/client/types/src/client/index.d.ts +47 -0
- package/dist/client/types/src/client/react/index.d.ts +207 -0
- package/dist/client/types/src/client/realtime/AdaptiveRate.d.ts +138 -0
- package/dist/client/types/src/client/realtime/BrowserWsTransport.d.ts +27 -0
- package/dist/client/types/src/client/realtime/RealtimeClient.d.ts +573 -0
- package/dist/client/types/src/client/realtime/localEvents.d.ts +53 -0
- package/dist/client/types/src/client/realtime/notice.d.ts +70 -0
- package/dist/client/types/src/client/realtime/observe.d.ts +284 -0
- package/dist/client/types/src/client/roles/index.d.ts +15 -0
- package/dist/client/types/src/client/roles/registry.d.ts +72 -0
- package/dist/client/types/src/client/roles/roles.d.ts +68 -0
- package/dist/client/types/src/client/shim/cli-color.d.ts +2 -0
- package/dist/client/types/src/client/shim/events.d.ts +39 -0
- package/dist/client/types/src/client/shim/util.d.ts +14 -0
- package/dist/client/types/src/client/svelte/index.d.ts +216 -0
- package/dist/client/types/src/client/syslog/context.d.ts +76 -0
- package/dist/client/types/src/client/syslog/errors.d.ts +46 -0
- package/dist/client/types/src/client/syslog/uplink.d.ts +89 -0
- package/dist/client/types/src/client/transport/websocket.d.ts +5 -0
- package/dist/client/types/src/client/vue/index.d.ts +234 -0
- package/dist/client/types/src/colors.d.ts +32 -0
- package/dist/client/types/src/config/infra.d.ts +171 -0
- package/dist/client/types/src/kernel/bootReport.d.ts +112 -0
- package/dist/client/types/src/kernel/readinessRegistry.d.ts +104 -0
- package/dist/client/types/src/realtime/IRealtimeSocket.d.ts +142 -0
- package/dist/client/types/src/realtime/IRealtimeTransport.d.ts +50 -0
- package/dist/client/types/src/realtime/JsonRpcPeer.d.ts +251 -0
- package/dist/client/types/src/realtime/RealtimeEventMap.d.ts +269 -0
- package/dist/client/types/src/realtime/channelRate.d.ts +55 -0
- package/dist/client/types/src/realtime/platformChannels.d.ts +147 -0
- package/dist/client/types/src/syslog/Pdu.d.ts +134 -0
- package/dist/client/types/src/syslog/Syslog.d.ts +482 -0
- package/dist/client/types/src/syslog/drivers/ILogDriver.d.ts +177 -0
- package/dist/client/types/src/syslog/drivers/pduFlow.d.ts +53 -0
- package/dist/client/types/src/syslog/drivers/pduProtocol.d.ts +20 -0
- package/dist/client/types/src/syslog/logColor.d.ts +59 -0
- package/dist/client/types/src/types/ICliKernel.d.ts +28 -0
- package/dist/client/types/src/types/ICommand.d.ts +14 -0
- package/dist/client/types/src/types/IContainer.d.ts +35 -0
- package/dist/client/types/src/types/IKernel.d.ts +138 -0
- package/dist/client/types/src/types/IMcpTool.d.ts +157 -0
- package/dist/client/types/src/types/IModule.d.ts +73 -0
- package/dist/client/types/src/types/IPage.d.ts +119 -0
- package/dist/client/types/src/types/IService.d.ts +62 -0
- package/dist/client/types/src/types/ISyslog.d.ts +58 -0
- package/dist/client/types/src/types/ITransport.d.ts +5 -0
- package/dist/client/types/src/types/globals.d.ts +47 -0
- package/dist/node/Cli.js +750 -0
- package/dist/node/Container.js +367 -0
- package/dist/node/Error.js +309 -0
- package/dist/node/Event.js +198 -0
- package/dist/node/FileClass.js +308 -0
- package/dist/node/Nodefony.js +78 -0
- package/dist/node/Service.js +344 -0
- package/dist/node/Tools.js +205 -0
- package/dist/node/bin/resolveLocalCli.js +10 -0
- package/dist/node/bundler/index.js +103 -0
- package/dist/node/cli/agentTargets.js +461 -0
- package/dist/node/cli/aiMcp.js +553 -0
- package/dist/node/cli/aiMcpReport.js +129 -0
- package/dist/node/cli/aiSync.js +323 -0
- package/dist/node/cli/aiSyncReport.js +142 -0
- package/dist/node/cli/card.js +186 -0
- package/dist/node/cli/cardReport.js +110 -0
- package/dist/node/cli/completion.js +415 -0
- package/dist/node/cli/create.js +805 -0
- package/dist/node/cli/env.js +332 -0
- package/dist/node/cli/envReport.js +159 -0
- package/dist/node/cli/execPortable.js +60 -0
- package/dist/node/cli/gitHooks.js +191 -0
- package/dist/node/cli/gitHooksReport.js +119 -0
- package/dist/node/cli/globalFlags.js +67 -0
- package/dist/node/cli/helpReport.js +288 -0
- package/dist/node/cli/manPage.js +165 -0
- package/dist/node/cli/nodefonyBin.js +61 -0
- package/dist/node/cli/outdated.js +144 -0
- package/dist/node/cli/progress.js +555 -0
- package/dist/node/cli/projectRoot.js +32 -0
- package/dist/node/cli/promptPassword.js +44 -0
- package/dist/node/cli/prompts.js +86 -0
- package/dist/node/cli/scaffold/destination.js +92 -0
- package/dist/node/cli/scaffold/engine.js +2156 -0
- package/dist/node/cli/scaffold/entityFields.js +589 -0
- package/dist/node/cli/scaffold/format.js +243 -0
- package/dist/node/cli/scaffold/interactive.js +124 -0
- package/dist/node/cli/scaffold/moduleLayout.js +38 -0
- package/dist/node/cli/scaffold/reservedEntities.js +74 -0
- package/dist/node/cli/scaffold/spec.js +704 -0
- package/dist/node/cli/scaffold/steps.js +40 -0
- package/dist/node/cli/scaffold/userContractSource.js +133 -0
- package/dist/node/cli/scaffold/versions.js +57 -0
- package/dist/node/cli/scaffold/writer.js +172 -0
- package/dist/node/cli/startMenu.js +496 -0
- package/dist/node/cli/symbols.js +205 -0
- package/dist/node/cli/sysexits.js +34 -0
- package/dist/node/cli/tableReport.js +184 -0
- package/dist/node/cli/usageReport.js +144 -0
- package/dist/node/colors.js +63 -0
- package/dist/node/command/Builder.js +153 -0
- package/dist/node/command/Command.js +348 -0
- package/dist/node/config/configProvenance.js +101 -0
- package/dist/node/config/defaults.js +39 -0
- package/dist/node/config/defineConfig.js +129 -0
- package/dist/node/config/defineEnv.js +264 -0
- package/dist/node/config/envExample.js +41 -0
- package/dist/node/config/envOverride.js +423 -0
- package/dist/node/config/infra.js +163 -0
- package/dist/node/config/reactivity.js +23 -0
- package/dist/node/config/reservedEnv.js +118 -0
- package/dist/node/config/schema.js +134 -0
- package/dist/node/config/use.js +24 -0
- package/dist/node/finder/File.js +49 -0
- package/dist/node/finder/FileResult.js +86 -0
- package/dist/node/finder/Finder.js +201 -0
- package/dist/node/finder/Result.js +45 -0
- package/dist/node/index.js +121 -0
- package/dist/node/kernel/BootConfigurationError.js +54 -0
- package/dist/node/kernel/CliKernel.js +630 -0
- package/dist/node/kernel/Kernel.js +2198 -0
- package/dist/node/kernel/Module.js +453 -0
- package/dist/node/kernel/adminPlane/adminCaller.js +98 -0
- package/dist/node/kernel/adminPlane/adminRbac.js +51 -0
- package/dist/node/kernel/adminPlane/catalog.js +158 -0
- package/dist/node/kernel/adminPlane/executeAdmin.js +78 -0
- package/dist/node/kernel/checks/deep.js +335 -0
- package/dist/node/kernel/checks/freshness.js +139 -0
- package/dist/node/kernel/checks/gating.js +231 -0
- package/dist/node/kernel/checks/guards.js +232 -0
- package/dist/node/kernel/checks/lastBoot.js +136 -0
- package/dist/node/kernel/checks/live.js +330 -0
- package/dist/node/kernel/checks/packageDeps.js +292 -0
- package/dist/node/kernel/checks/readiness.js +153 -0
- package/dist/node/kernel/checks/renderReport.js +780 -0
- package/dist/node/kernel/checks/report.js +421 -0
- package/dist/node/kernel/checks/runDoctor.js +731 -0
- package/dist/node/kernel/checks/surface.js +364 -0
- package/dist/node/kernel/checks/walk.js +100 -0
- package/dist/node/kernel/checks/wiring.js +450 -0
- package/dist/node/kernel/commands/AiMcpCommand.js +65 -0
- package/dist/node/kernel/commands/AiSyncCommand.js +48 -0
- package/dist/node/kernel/commands/BuildCommand.js +49 -0
- package/dist/node/kernel/commands/CardCommand.js +50 -0
- package/dist/node/kernel/commands/ClusterCommand.js +58 -0
- package/dist/node/kernel/commands/CompletionCommand.js +31 -0
- package/dist/node/kernel/commands/CreateCommand.js +45 -0
- package/dist/node/kernel/commands/DevCommand.js +99 -0
- package/dist/node/kernel/commands/DoctorCommand.js +115 -0
- package/dist/node/kernel/commands/EnvCommand.js +52 -0
- package/dist/node/kernel/commands/GitHooksCommand.js +47 -0
- package/dist/node/kernel/commands/InspectCommand.js +153 -0
- package/dist/node/kernel/commands/InstallCommand.js +20 -0
- package/dist/node/kernel/commands/MenuCommand.js +261 -0
- package/dist/node/kernel/commands/OutdatedCommand.js +164 -0
- package/dist/node/kernel/commands/ProdCommand.js +60 -0
- package/dist/node/kernel/commands/StatusCommand.js +30 -0
- package/dist/node/kernel/commands/StopCommand.js +35 -0
- package/dist/node/kernel/commands/SymbolsCommand.js +45 -0
- package/dist/node/kernel/commands/runtimeLauncher.js +95 -0
- package/dist/node/kernel/decorators/kernelDecorator.js +110 -0
- package/dist/node/kernel/injector/injector.js +137 -0
- package/dist/node/kernel/injector/serviceOrder.js +106 -0
- package/dist/node/kernel/inspect/adminSubjects.js +194 -0
- package/dist/node/kernel/inspect/docOutline.js +86 -0
- package/dist/node/kernel/lifecycleTags.js +76 -0
- package/dist/node/kernel/moduleConfig.js +75 -0
- package/dist/node/kernel/moduleGating.js +68 -0
- package/dist/node/kernel/readinessRegistry.js +98 -0
- package/dist/node/kernel/resolveModuleEntry.js +61 -0
- package/dist/node/mcp/caller.js +40 -0
- package/dist/node/mcp/guard.js +51 -0
- package/dist/node/mcp/protocol.js +157 -0
- package/dist/node/mcp/server.js +216 -0
- package/dist/node/mcp/tools.js +861 -0
- package/dist/node/oauth/authorizationServer.js +221 -0
- package/dist/node/oauth/protectedResource.js +293 -0
- package/dist/node/package.js +4 -0
- package/dist/node/realtime/IRealtimeTransport.js +32 -0
- package/dist/node/realtime/JsonRpcPeer.js +251 -0
- package/dist/node/realtime/RealtimeEventMap.js +15 -0
- package/dist/node/realtime/channelRate.js +39 -0
- package/dist/node/realtime/platformChannels.js +155 -0
- package/dist/node/runtime/GcScheduler.js +92 -0
- package/dist/node/runtime/RequestContext.js +76 -0
- package/dist/node/runtime/bearer.js +84 -0
- package/dist/node/runtime/engineEnvironment.js +79 -0
- package/dist/node/runtime/loadEnv.js +105 -0
- package/dist/node/runtime/pageFacets.js +85 -0
- package/dist/node/runtime/pageFilters.js +103 -0
- package/dist/node/runtime/pageGuard.js +84 -0
- package/dist/node/runtime/pageQuery.js +160 -0
- package/dist/node/runtime/pageSort.js +114 -0
- package/dist/node/runtime/redact.js +43 -0
- package/dist/node/runtime/withTimeout.js +71 -0
- package/dist/node/service/cluster/ClusterManager.js +202 -0
- package/dist/node/service/cluster/ClusterProbeAggregator.js +120 -0
- package/dist/node/service/cluster/ClusterRelay.js +74 -0
- package/dist/node/service/cluster/clusterMaster.js +65 -0
- package/dist/node/service/cluster/clusterMessage.js +70 -0
- package/dist/node/service/cluster/cpuQuota.js +59 -0
- package/dist/node/service/cluster/instanceProbe.js +52 -0
- package/dist/node/service/cluster/podEnvironment.js +48 -0
- package/dist/node/service/cluster/processProbe.js +70 -0
- package/dist/node/service/cluster/richProcessProbe.js +115 -0
- package/dist/node/service/cluster/topology.js +71 -0
- package/dist/node/service/dev/BootReporter.js +490 -0
- package/dist/node/service/dev/DevSupervisor.js +1004 -0
- package/dist/node/service/dev/bootVerdict.js +158 -0
- package/dist/node/service/dev/detachedStart.js +372 -0
- package/dist/node/service/dev/devProcess.js +1137 -0
- package/dist/node/service/dev/devProjects.js +138 -0
- package/dist/node/service/dev/devStatusReport.js +395 -0
- package/dist/node/service/dev/devStop.js +263 -0
- package/dist/node/service/fetchService.js +35 -0
- package/dist/node/service/gitService.js +62 -0
- package/dist/node/syslog/Pdu.js +224 -0
- package/dist/node/syslog/Syslog.js +1159 -0
- package/dist/node/syslog/drivers/ClusterFileLogDriver.js +114 -0
- package/dist/node/syslog/drivers/FileLogDriver.js +127 -0
- package/dist/node/syslog/drivers/ILogDriver.js +26 -0
- package/dist/node/syslog/drivers/LokiLogDriver.js +144 -0
- package/dist/node/syslog/drivers/MemoryLogDriver.js +33 -0
- package/dist/node/syslog/drivers/OpenSearchLogDriver.js +159 -0
- package/dist/node/syslog/drivers/builtinLogDrivers.js +114 -0
- package/dist/node/syslog/drivers/filterPdus.js +71 -0
- package/dist/node/syslog/drivers/logDriverRegistry.js +83 -0
- package/dist/node/syslog/drivers/opensearchShared.js +17 -0
- package/dist/node/syslog/drivers/pduFlow.js +106 -0
- package/dist/node/syslog/drivers/pduProtocol.js +28 -0
- package/dist/node/syslog/httpFetch.js +43 -0
- package/dist/node/syslog/logColor.js +80 -0
- package/dist/node/syslog/sinks/FileSink.js +142 -0
- package/dist/node/syslog/transports/BatchingHttpTransport.js +98 -0
- package/dist/node/syslog/transports/ConsoleTransport.js +14 -0
- package/dist/node/syslog/transports/FileTransport.js +17 -0
- package/dist/node/syslog/transports/HttpTransport.js +44 -0
- package/dist/node/syslog/transports/LokiTransport.js +80 -0
- package/dist/node/syslog/transports/OpenSearchTransport.js +53 -0
- package/dist/node/syslog/transports/SyslogTransport.js +13 -0
- package/dist/node/syslog/transports/index.js +8 -0
- package/dist/node/testing/index.js +190 -0
- package/dist/types/Cli.d.ts +177 -0
- package/dist/types/Container.d.ts +221 -0
- package/dist/types/Error.d.ts +162 -0
- package/dist/types/Event.d.ts +171 -0
- package/dist/types/FileClass.d.ts +184 -0
- package/dist/types/Nodefony.d.ts +66 -0
- package/dist/types/Service.d.ts +165 -0
- package/dist/types/Tools.d.ts +116 -0
- package/dist/types/bin/resolveLocalCli.d.ts +49 -0
- package/dist/types/bundler/index.d.ts +66 -0
- package/dist/types/cli/agentTargets.d.ts +378 -0
- package/dist/types/cli/aiMcp.d.ts +239 -0
- package/dist/types/cli/aiMcpReport.d.ts +113 -0
- package/dist/types/cli/aiSync.d.ts +68 -0
- package/dist/types/cli/aiSyncReport.d.ts +149 -0
- package/dist/types/cli/card.d.ts +49 -0
- package/dist/types/cli/cardReport.d.ts +127 -0
- package/dist/types/cli/completion.d.ts +154 -0
- package/dist/types/cli/create.d.ts +177 -0
- package/dist/types/cli/env.d.ts +103 -0
- package/dist/types/cli/envReport.d.ts +153 -0
- package/dist/types/cli/execPortable.d.ts +54 -0
- package/dist/types/cli/gitHooks.d.ts +48 -0
- package/dist/types/cli/gitHooksReport.d.ts +101 -0
- package/dist/types/cli/globalFlags.d.ts +48 -0
- package/dist/types/cli/helpReport.d.ts +110 -0
- package/dist/types/cli/manPage.d.ts +21 -0
- package/dist/types/cli/nodefonyBin.d.ts +45 -0
- package/dist/types/cli/outdated.d.ts +119 -0
- package/dist/types/cli/progress.d.ts +349 -0
- package/dist/types/cli/projectRoot.d.ts +19 -0
- package/dist/types/cli/promptPassword.d.ts +22 -0
- package/dist/types/cli/prompts.d.ts +102 -0
- package/dist/types/cli/scaffold/destination.d.ts +70 -0
- package/dist/types/cli/scaffold/engine.d.ts +545 -0
- package/dist/types/cli/scaffold/entityFields.d.ts +238 -0
- package/dist/types/cli/scaffold/format.d.ts +78 -0
- package/dist/types/cli/scaffold/interactive.d.ts +11 -0
- package/dist/types/cli/scaffold/moduleLayout.d.ts +69 -0
- package/dist/types/cli/scaffold/reservedEntities.d.ts +49 -0
- package/dist/types/cli/scaffold/spec.d.ts +159 -0
- package/dist/types/cli/scaffold/steps.d.ts +24 -0
- package/dist/types/cli/scaffold/userContractSource.d.ts +86 -0
- package/dist/types/cli/scaffold/versions.d.ts +14 -0
- package/dist/types/cli/scaffold/writer.d.ts +100 -0
- package/dist/types/cli/startMenu.d.ts +195 -0
- package/dist/types/cli/symbols.d.ts +84 -0
- package/dist/types/cli/sysexits.d.ts +31 -0
- package/dist/types/cli/tableReport.d.ts +44 -0
- package/dist/types/cli/usageReport.d.ts +108 -0
- package/dist/types/client/ClientKernel.d.ts +90 -0
- package/dist/types/client/IClientKernel.d.ts +195 -0
- package/dist/types/client/angular/index.d.ts +273 -0
- package/dist/types/client/announce.d.ts +74 -0
- package/dist/types/client/debugbar/DebugBar.d.ts +279 -0
- package/dist/types/client/debugbar/format.d.ts +48 -0
- package/dist/types/client/debugbar/hmr.d.ts +16 -0
- package/dist/types/client/debugbar/index.d.ts +30 -0
- package/dist/types/client/debugbar/model.d.ts +158 -0
- package/dist/types/client/debugbar/network.d.ts +55 -0
- package/dist/types/client/debugbar/profile.d.ts +99 -0
- package/dist/types/client/index.d.ts +47 -0
- package/dist/types/client/react/index.d.ts +207 -0
- package/dist/types/client/realtime/AdaptiveRate.d.ts +138 -0
- package/dist/types/client/realtime/BrowserWsTransport.d.ts +27 -0
- package/dist/types/client/realtime/RealtimeClient.d.ts +573 -0
- package/dist/types/client/realtime/localEvents.d.ts +53 -0
- package/dist/types/client/realtime/notice.d.ts +70 -0
- package/dist/types/client/realtime/observe.d.ts +284 -0
- package/dist/types/client/roles/index.d.ts +15 -0
- package/dist/types/client/roles/registry.d.ts +72 -0
- package/dist/types/client/roles/roles.d.ts +68 -0
- package/dist/types/client/shim/cli-color.d.ts +2 -0
- package/dist/types/client/shim/events.d.ts +39 -0
- package/dist/types/client/shim/util.d.ts +14 -0
- package/dist/types/client/svelte/index.d.ts +216 -0
- package/dist/types/client/syslog/context.d.ts +76 -0
- package/dist/types/client/syslog/errors.d.ts +46 -0
- package/dist/types/client/syslog/uplink.d.ts +89 -0
- package/dist/types/client/transport/websocket.d.ts +5 -0
- package/dist/types/client/vue/index.d.ts +234 -0
- package/dist/types/colors.d.ts +32 -0
- package/dist/types/command/Builder.d.ts +47 -0
- package/dist/types/command/Command.d.ts +268 -0
- package/dist/types/config/configMeta.d.ts +53 -0
- package/dist/types/config/configProvenance.d.ts +58 -0
- package/dist/types/config/defaults.d.ts +33 -0
- package/dist/types/config/defineConfig.d.ts +70 -0
- package/dist/types/config/defineEnv.d.ts +170 -0
- package/dist/types/config/envExample.d.ts +23 -0
- package/dist/types/config/envOverride.d.ts +236 -0
- package/dist/types/config/index.d.ts +23 -0
- package/dist/types/config/infra.d.ts +171 -0
- package/dist/types/config/reactivity.d.ts +36 -0
- package/dist/types/config/reservedEnv.d.ts +145 -0
- package/dist/types/config/schema.d.ts +113 -0
- package/dist/types/config/types.d.ts +374 -0
- package/dist/types/config/use.d.ts +80 -0
- package/dist/types/finder/File.d.ts +26 -0
- package/dist/types/finder/FileResult.d.ts +14 -0
- package/dist/types/finder/Finder.d.ts +51 -0
- package/dist/types/finder/Result.d.ts +10 -0
- package/dist/types/index.d.ts +205 -0
- package/dist/types/kernel/BootConfigurationError.d.ts +50 -0
- package/dist/types/kernel/CliKernel.d.ts +289 -0
- package/dist/types/kernel/Kernel.d.ts +1255 -0
- package/dist/types/kernel/Module.d.ts +326 -0
- package/dist/types/kernel/adminPlane/adminCaller.d.ts +105 -0
- package/dist/types/kernel/adminPlane/adminRbac.d.ts +44 -0
- package/dist/types/kernel/adminPlane/catalog.d.ts +122 -0
- package/dist/types/kernel/adminPlane/executeAdmin.d.ts +99 -0
- package/dist/types/kernel/bootReport.d.ts +112 -0
- package/dist/types/kernel/checks/deep.d.ts +122 -0
- package/dist/types/kernel/checks/freshness.d.ts +49 -0
- package/dist/types/kernel/checks/gating.d.ts +134 -0
- package/dist/types/kernel/checks/guards.d.ts +57 -0
- package/dist/types/kernel/checks/lastBoot.d.ts +189 -0
- package/dist/types/kernel/checks/live.d.ts +110 -0
- package/dist/types/kernel/checks/packageDeps.d.ts +44 -0
- package/dist/types/kernel/checks/readiness.d.ts +97 -0
- package/dist/types/kernel/checks/renderReport.d.ts +107 -0
- package/dist/types/kernel/checks/report.d.ts +414 -0
- package/dist/types/kernel/checks/runDoctor.d.ts +361 -0
- package/dist/types/kernel/checks/surface.d.ts +148 -0
- package/dist/types/kernel/checks/walk.d.ts +45 -0
- package/dist/types/kernel/checks/wiring.d.ts +54 -0
- package/dist/types/kernel/commands/AiMcpCommand.d.ts +39 -0
- package/dist/types/kernel/commands/AiSyncCommand.d.ts +28 -0
- package/dist/types/kernel/commands/BuildCommand.d.ts +13 -0
- package/dist/types/kernel/commands/CardCommand.d.ts +34 -0
- package/dist/types/kernel/commands/ClusterCommand.d.ts +29 -0
- package/dist/types/kernel/commands/CompletionCommand.d.ts +17 -0
- package/dist/types/kernel/commands/CreateCommand.d.ts +16 -0
- package/dist/types/kernel/commands/DevCommand.d.ts +40 -0
- package/dist/types/kernel/commands/DoctorCommand.d.ts +55 -0
- package/dist/types/kernel/commands/EnvCommand.d.ts +35 -0
- package/dist/types/kernel/commands/GitHooksCommand.d.ts +27 -0
- package/dist/types/kernel/commands/InspectCommand.d.ts +59 -0
- package/dist/types/kernel/commands/InstallCommand.d.ts +7 -0
- package/dist/types/kernel/commands/MenuCommand.d.ts +58 -0
- package/dist/types/kernel/commands/OutdatedCommand.d.ts +47 -0
- package/dist/types/kernel/commands/ProdCommand.d.ts +29 -0
- package/dist/types/kernel/commands/StatusCommand.d.ts +17 -0
- package/dist/types/kernel/commands/StopCommand.d.ts +17 -0
- package/dist/types/kernel/commands/SymbolsCommand.d.ts +29 -0
- package/dist/types/kernel/commands/runtimeLauncher.d.ts +76 -0
- package/dist/types/kernel/decorators/kernelDecorator.d.ts +76 -0
- package/dist/types/kernel/injector/injector.d.ts +47 -0
- package/dist/types/kernel/injector/serviceOrder.d.ts +29 -0
- package/dist/types/kernel/inspect/adminSubjects.d.ts +169 -0
- package/dist/types/kernel/inspect/docOutline.d.ts +53 -0
- package/dist/types/kernel/lifecycleTags.d.ts +79 -0
- package/dist/types/kernel/moduleConfig.d.ts +35 -0
- package/dist/types/kernel/moduleGating.d.ts +78 -0
- package/dist/types/kernel/readinessRegistry.d.ts +104 -0
- package/dist/types/kernel/resolveModuleEntry.d.ts +46 -0
- package/dist/types/mcp/caller.d.ts +55 -0
- package/dist/types/mcp/guard.d.ts +66 -0
- package/dist/types/mcp/protocol.d.ts +163 -0
- package/dist/types/mcp/server.d.ts +70 -0
- package/dist/types/mcp/tools.d.ts +209 -0
- package/dist/types/oauth/authorizationServer.d.ts +204 -0
- package/dist/types/oauth/protectedResource.d.ts +339 -0
- package/dist/types/realtime/IRealtimeSocket.d.ts +142 -0
- package/dist/types/realtime/IRealtimeTransport.d.ts +50 -0
- package/dist/types/realtime/JsonRpcPeer.d.ts +251 -0
- package/dist/types/realtime/RealtimeEventMap.d.ts +269 -0
- package/dist/types/realtime/channelRate.d.ts +55 -0
- package/dist/types/realtime/platformChannels.d.ts +147 -0
- package/dist/types/runtime/GcScheduler.d.ts +96 -0
- package/dist/types/runtime/RequestContext.d.ts +152 -0
- package/dist/types/runtime/bearer.d.ts +88 -0
- package/dist/types/runtime/engineEnvironment.d.ts +115 -0
- package/dist/types/runtime/loadEnv.d.ts +86 -0
- package/dist/types/runtime/pageFacets.d.ts +104 -0
- package/dist/types/runtime/pageFilters.d.ts +139 -0
- package/dist/types/runtime/pageGuard.d.ts +78 -0
- package/dist/types/runtime/pageQuery.d.ts +138 -0
- package/dist/types/runtime/pageSort.d.ts +86 -0
- package/dist/types/runtime/redact.d.ts +27 -0
- package/dist/types/runtime/withTimeout.d.ts +51 -0
- package/dist/types/service/cluster/ClusterManager.d.ts +112 -0
- package/dist/types/service/cluster/ClusterProbeAggregator.d.ts +68 -0
- package/dist/types/service/cluster/ClusterRelay.d.ts +57 -0
- package/dist/types/service/cluster/clusterMaster.d.ts +40 -0
- package/dist/types/service/cluster/clusterMessage.d.ts +94 -0
- package/dist/types/service/cluster/cpuQuota.d.ts +37 -0
- package/dist/types/service/cluster/instanceProbe.d.ts +82 -0
- package/dist/types/service/cluster/podEnvironment.d.ts +35 -0
- package/dist/types/service/cluster/processProbe.d.ts +53 -0
- package/dist/types/service/cluster/richProcessProbe.d.ts +77 -0
- package/dist/types/service/cluster/topology.d.ts +64 -0
- package/dist/types/service/dev/BootReporter.d.ts +67 -0
- package/dist/types/service/dev/DevSupervisor.d.ts +117 -0
- package/dist/types/service/dev/bootVerdict.d.ts +99 -0
- package/dist/types/service/dev/detachedStart.d.ts +164 -0
- package/dist/types/service/dev/devProcess.d.ts +638 -0
- package/dist/types/service/dev/devProjects.d.ts +121 -0
- package/dist/types/service/dev/devStatusReport.d.ts +141 -0
- package/dist/types/service/dev/devStop.d.ts +57 -0
- package/dist/types/service/fetchService.d.ts +29 -0
- package/dist/types/service/gitService.d.ts +24 -0
- package/dist/types/syslog/Pdu.d.ts +134 -0
- package/dist/types/syslog/Syslog.d.ts +482 -0
- package/dist/types/syslog/drivers/ClusterFileLogDriver.d.ts +40 -0
- package/dist/types/syslog/drivers/FileLogDriver.d.ts +55 -0
- package/dist/types/syslog/drivers/ILogDriver.d.ts +177 -0
- package/dist/types/syslog/drivers/LokiLogDriver.d.ts +44 -0
- package/dist/types/syslog/drivers/MemoryLogDriver.d.ts +20 -0
- package/dist/types/syslog/drivers/OpenSearchLogDriver.d.ts +40 -0
- package/dist/types/syslog/drivers/builtinLogDrivers.d.ts +43 -0
- package/dist/types/syslog/drivers/filterPdus.d.ts +21 -0
- package/dist/types/syslog/drivers/logDriverRegistry.d.ts +100 -0
- package/dist/types/syslog/drivers/opensearchShared.d.ts +11 -0
- package/dist/types/syslog/drivers/pduFlow.d.ts +53 -0
- package/dist/types/syslog/drivers/pduProtocol.d.ts +20 -0
- package/dist/types/syslog/httpFetch.d.ts +48 -0
- package/dist/types/syslog/logColor.d.ts +59 -0
- package/dist/types/syslog/sinks/FileSink.d.ts +78 -0
- package/dist/types/syslog/transports/BatchingHttpTransport.d.ts +59 -0
- package/dist/types/syslog/transports/ConsoleTransport.d.ts +8 -0
- package/dist/types/syslog/transports/FileTransport.d.ts +13 -0
- package/dist/types/syslog/transports/HttpTransport.d.ts +15 -0
- package/dist/types/syslog/transports/LokiTransport.d.ts +45 -0
- package/dist/types/syslog/transports/OpenSearchTransport.d.ts +40 -0
- package/dist/types/syslog/transports/SyslogTransport.d.ts +9 -0
- package/dist/types/syslog/transports/index.d.ts +12 -0
- package/dist/types/testing/index.d.ts +197 -0
- package/dist/types/types/IAdminApi.d.ts +246 -0
- package/dist/types/types/ICliKernel.d.ts +28 -0
- package/dist/types/types/ICommand.d.ts +14 -0
- package/dist/types/types/IContainer.d.ts +35 -0
- package/dist/types/types/IIdempotencyStore.d.ts +159 -0
- package/dist/types/types/IKernel.d.ts +138 -0
- package/dist/types/types/IMcpTool.d.ts +157 -0
- package/dist/types/types/IModule.d.ts +73 -0
- package/dist/types/types/IModuleManifest.d.ts +49 -0
- package/dist/types/types/IPage.d.ts +119 -0
- package/dist/types/types/IService.d.ts +62 -0
- package/dist/types/types/ISyslog.d.ts +58 -0
- package/dist/types/types/ITransport.d.ts +5 -0
- package/dist/types/types/globals.d.ts +47 -0
- package/docs/angular-services.md +318 -0
- package/docs/catalogue.md +184 -0
- package/docs/cli.md +369 -0
- package/docs/client.md +616 -0
- package/docs/debugbar.md +218 -0
- package/docs/environnement.md +308 -0
- package/docs/index.md +388 -0
- package/docs/kernel.md +670 -0
- package/docs/progression.md +228 -0
- package/docs/react-hooks.md +686 -0
- package/docs/request-context.md +507 -0
- package/docs/service.md +590 -0
- package/docs/svelte-reactivite.md +293 -0
- package/docs/syslog.md +848 -0
- package/docs/testing.md +203 -0
- package/docs/vue-composables.md +255 -0
- package/man/nodefony.1 +152 -0
- package/package.json +163 -83
- package/templates/app/agents/AGENTS.md.tpl +967 -0
- package/templates/app/agents/POINTEUR.md.tpl +12 -0
- package/templates/app/base/Dockerfile.tpl +104 -0
- package/templates/app/base/README.md.tpl +314 -0
- package/templates/app/base/dockerignore.tpl +28 -0
- package/templates/app/base/env.ts.tpl +130 -0
- package/templates/app/base/gitattributes.tpl +28 -0
- package/templates/app/base/github/workflows/ci.yml.tpl +91 -0
- package/templates/app/base/gitignore.tpl +46 -0
- package/templates/app/base/gitlab-ci.yml.tpl +42 -0
- package/templates/app/base/index.ts.tpl +69 -0
- package/templates/app/base/nodefony.config.ts.tpl +342 -0
- package/templates/app/base/oxlintrc.json.tpl +127 -0
- package/templates/app/base/package.json.tpl +75 -0
- package/templates/app/base/prettierignore.tpl +24 -0
- package/templates/app/base/prettierrc.json.tpl +12 -0
- package/templates/app/base/rolldown.config.ts.tpl +8 -0
- package/templates/app/base/tests/config.test.ts.tpl +29 -0
- package/templates/app/base/tests/e2e.setup.ts.tpl +181 -0
- package/templates/app/base/tests/e2e.test.ts.tpl +105 -0
- package/templates/app/base/tests/migrations.e2e.test.ts.tpl +579 -0
- package/templates/app/base/tsconfig.json.tpl +47 -0
- package/templates/app/base/vitest.config.ts.tpl +88 -0
- package/templates/app/base/vitest.e2e.config.ts.tpl +39 -0
- package/templates/app/complete/compose.yaml.tpl +328 -0
- package/templates/app/complete/deploy/migrate-job.yaml.tpl +100 -0
- package/templates/app/complete/docker/db/init-nodefony-e2e.sql.tpl +30 -0
- package/templates/app/complete/docker/grafana/provisioning/datasources/loki.yaml.tpl +15 -0
- package/templates/app/complete/env.local.tpl +11 -0
- package/templates/app/complete/env.tpl +53 -0
- package/templates/app/complete/nodefony/entity/User.ts.tpl +69 -0
- package/templates/app/complete/nodefony/security/provisionUsers.ts.tpl +124 -0
- package/templates/app/complete/nodefony/service/AppBannerService.ts.tpl +98 -0
- package/templates/app/complete/nodefony/service/AppInfoService.ts.tpl +85 -0
- package/templates/app/frontend/angular/frontend/src/accent.css.tpl +34 -0
- package/templates/app/frontend/angular/frontend/src/app/app.component.ts.tpl +400 -0
- package/templates/app/frontend/react/frontend/src/App.tsx.tpl +421 -0
- package/templates/app/frontend/react/frontend/src/accent.css.tpl +30 -0
- package/templates/app/frontend/shared/frontend/src/brand.ts.tpl +3 -0
- package/templates/app/frontend/shared/frontend/src/showcase.css.tpl +224 -0
- package/templates/app/frontend/shared/nodefony/controllers/AppController.ts.tpl +45 -0
- package/templates/app/frontend/svelte/frontend/src/App.svelte.tpl +371 -0
- package/templates/app/frontend/svelte/frontend/src/accent.css.tpl +34 -0
- package/templates/app/frontend/vue/frontend/src/App.vue.tpl +367 -0
- package/templates/app/frontend/vue/frontend/src/accent.css.tpl +34 -0
- package/templates/app/home/nodefony/controllers/HomeController.ts.tpl +38 -0
- package/templates/command/nodefony/command/__NAME__.ts.tpl +132 -0
- package/templates/controller/duplex/nodefony/controllers/__NAME__.ts.tpl +188 -0
- package/templates/controller/example/nodefony/controllers/__NAME__.ts.tpl +348 -0
- package/templates/controller/hello/nodefony/controllers/__NAME__.ts.tpl +143 -0
- package/templates/controller/realtime/nodefony/controllers/__NAME__.ts.tpl +153 -0
- package/templates/controller/realtime/tests/__KEBAB__-realtime.test.ts.tpl +79 -0
- package/templates/controller/rest/nodefony/controllers/__NAME__.ts.tpl +159 -0
- package/templates/entity/base/nodefony/entity/__PASCAL__.schema.ts.tpl +31 -0
- package/templates/entity/base/nodefony/entity/__PASCAL__.ts.tpl +68 -0
- package/templates/entity/controller/nodefony/controllers/__PASCAL__Controller.ts.tpl +335 -0
- package/templates/entity/service/nodefony/service/__PASCAL__Service.ts.tpl +126 -0
- package/templates/entity/tests/tests/__KEBAB__.e2e.test.ts.tpl +358 -0
- package/templates/entity/tests/tests/__KEBAB__.test.ts.tpl +87 -0
- package/templates/front/angular/frontend/src/app/app.component.ts.tpl +30 -0
- package/templates/front/base/nodefony/controllers/__NAME__.ts.tpl +60 -0
- package/templates/front/react/frontend/src/App.tsx.tpl +26 -0
- package/templates/front/svelte/frontend/src/App.svelte.tpl +19 -0
- package/templates/front/vue/frontend/src/App.vue.tpl +23 -0
- package/templates/module/ai/AGENTS.md.tpl +71 -0
- package/templates/module/base/README.md.tpl +62 -0
- package/templates/module/base/docs/index.md.tpl +55 -0
- package/templates/module/base/index.ts.tpl +50 -0
- package/templates/module/base/nodefony/config/config.ts.tpl +60 -0
- package/templates/module/base/nodefony/config/defineModuleConfig.ts.tpl +55 -0
- package/templates/module/base/nodefony/src/errors/__PASCAL__Error.ts.tpl +20 -0
- package/templates/module/base/package.json.tpl +53 -0
- package/templates/module/base/rolldown.config.ts.tpl +14 -0
- package/templates/module/base/tests/__KEBAB__.test.ts.tpl +39 -0
- package/templates/module/base/tsconfig.json.tpl +42 -0
- package/templates/module/base/vitest.config.ts.tpl +27 -0
- package/templates/module/packages/CLAUDE.md.tpl +51 -0
- package/templates/module/packages/MEMORY.md.tpl +39 -0
- package/templates/module/packages/tsconfig.declarations.json.tpl +19 -0
- package/templates/module/packages/tsconfig.tests.json.tpl +11 -0
- package/templates/module/service/nodefony/interfaces/I__PASCAL__Service.ts.tpl +14 -0
- package/templates/module/service/nodefony/interfaces/index.ts.tpl +1 -0
- package/templates/module/service/nodefony/service/__PASCAL__Service.ts.tpl +116 -0
- package/templates/service/nodefony/interfaces/I__PASCAL__Service.ts.tpl +19 -0
- package/templates/service/nodefony/service/__PASCAL__Service.ts.tpl +136 -0
- package/templates/service/tests/__PASCAL__Service.test.ts.tpl +53 -0
- package/templates/shared/front-entry/angular/frontend/src/main.ts.tpl +17 -0
- package/templates/shared/front-entry/react/frontend/src/main.tsx.tpl +11 -0
- package/templates/shared/front-entry/svelte/frontend/src/main.ts.tpl +13 -0
- package/templates/shared/front-entry/vue/frontend/src/main.ts.tpl +12 -0
- package/templates/shared/front-registrar/nodefony/frontend/register__PASCAL__Entry.ts.tpl +40 -0
- package/templates/shared/front-shell/frontend/index.html.tpl +39 -0
- package/templates/shared/ng-app-tsconfig/frontend/tsconfig.app.json.tpl +18 -0
- package/templates/shared/svelte-shim/frontend/src/env.d.ts.tpl +12 -0
- package/templates/shared/vue-shim/frontend/src/env.d.ts.tpl +15 -0
- package/.yarnclean +0 -45
- package/CHANGELOG.md +0 -406
- package/autoloader.es6 +0 -253
- package/builder.es6 +0 -366
- package/cli/builder/bundles/bundle.js +0 -328
- package/cli/builder/bundles/controller.js +0 -73
- package/cli/builder/bundles/users-bundle/.yarnclean +0 -45
- package/cli/builder/bundles/users-bundle/Command/fixtureTask.js +0 -47
- package/cli/builder/bundles/users-bundle/Command/usersCommand.js +0 -105
- package/cli/builder/bundles/users-bundle/Entity/mongoose/userEntity.js +0 -168
- package/cli/builder/bundles/users-bundle/Entity/sequelize/userEntity.js +0 -231
- package/cli/builder/bundles/users-bundle/Fixtures/users.js +0 -117
- package/cli/builder/bundles/users-bundle/Fixtures/usersFixtures.js +0 -114
- package/cli/builder/bundles/users-bundle/Resources/config/config.js +0 -90
- package/cli/builder/bundles/users-bundle/Resources/config/routing.js +0 -17
- package/cli/builder/bundles/users-bundle/Resources/config/security.js +0 -96
- package/cli/builder/bundles/users-bundle/Resources/config/services.js +0 -7
- package/cli/builder/bundles/users-bundle/Resources/config/webpack/webpack.dev.config.js +0 -13
- package/cli/builder/bundles/users-bundle/Resources/config/webpack/webpack.prod.config.js +0 -31
- package/cli/builder/bundles/users-bundle/Resources/config/webpack.config.js +0 -146
- package/cli/builder/bundles/users-bundle/Resources/js/users.js +0 -153
- package/cli/builder/bundles/users-bundle/Resources/public/favicon.ico +0 -0
- package/cli/builder/bundles/users-bundle/Resources/public/images/users-logo.png +0 -0
- package/cli/builder/bundles/users-bundle/Resources/scss/awesome/font-awesome.config.js +0 -11
- package/cli/builder/bundles/users-bundle/Resources/scss/custom.scss +0 -23
- package/cli/builder/bundles/users-bundle/Resources/scss/users.scss +0 -59
- package/cli/builder/bundles/users-bundle/Resources/swagger/openapi/login.js +0 -235
- package/cli/builder/bundles/users-bundle/Resources/swagger/openapi/users.js +0 -232
- package/cli/builder/bundles/users-bundle/Resources/translations/login.en_en.yml +0 -14
- package/cli/builder/bundles/users-bundle/Resources/translations/login.fr_fr.yml +0 -14
- package/cli/builder/bundles/users-bundle/Resources/translations/users.en_en.yml +0 -35
- package/cli/builder/bundles/users-bundle/Resources/translations/users.fr_fr.yml +0 -36
- package/cli/builder/bundles/users-bundle/Resources/views/base.html.twig +0 -32
- package/cli/builder/bundles/users-bundle/Resources/views/footer.html.twig +0 -7
- package/cli/builder/bundles/users-bundle/Resources/views/header.html.twig +0 -90
- package/cli/builder/bundles/users-bundle/Resources/views/login/login.html.twig +0 -43
- package/cli/builder/bundles/users-bundle/Resources/views/users/createUser.html.twig +0 -296
- package/cli/builder/bundles/users-bundle/Resources/views/users/readUsers.html.twig +0 -94
- package/cli/builder/bundles/users-bundle/controller/api/graphql/graphqlController.js +0 -56
- package/cli/builder/bundles/users-bundle/controller/api/graphql/userResolver.js +0 -121
- package/cli/builder/bundles/users-bundle/controller/api/graphql/usertype.js +0 -58
- package/cli/builder/bundles/users-bundle/controller/api/openapi/loginApiController.js +0 -210
- package/cli/builder/bundles/users-bundle/controller/api/openapi/restUserController.js +0 -244
- package/cli/builder/bundles/users-bundle/controller/loginController.js +0 -91
- package/cli/builder/bundles/users-bundle/controller/usersController.js +0 -332
- package/cli/builder/bundles/users-bundle/package.json +0 -58
- package/cli/builder/bundles/users-bundle/readme.md +0 -360
- package/cli/builder/bundles/users-bundle/services/usersService.js +0 -411
- package/cli/builder/bundles/users-bundle/src/providers/mongoose/userProvider.js +0 -47
- package/cli/builder/bundles/users-bundle/src/providers/sequelize/userProvider.js +0 -48
- package/cli/builder/bundles/users-bundle/tests/loginTest.js +0 -182
- package/cli/builder/bundles/users-bundle/usersBundle.js +0 -26
- package/cli/builder/microService/microService.js +0 -261
- package/cli/builder/microService/skeletons/.editorconfig +0 -18
- package/cli/builder/microService/skeletons/.env-cmdrc.js +0 -32
- package/cli/builder/microService/skeletons/.jshintrc +0 -37
- package/cli/builder/microService/skeletons/README.md +0 -117
- package/cli/builder/microService/skeletons/bin/bash/hello.sh +0 -5
- package/cli/builder/microService/skeletons/bin/cli +0 -13
- package/cli/builder/microService/skeletons/bin/python/hello.py +0 -20
- package/cli/builder/microService/skeletons/config/config.js +0 -29
- package/cli/builder/microService/skeletons/config/pm2.config.js +0 -72
- package/cli/builder/microService/skeletons/config/webpack/webpack.config.dev.js +0 -8
- package/cli/builder/microService/skeletons/config/webpack/webpack.config.prod.js +0 -25
- package/cli/builder/microService/skeletons/config/webpack.config.js +0 -114
- package/cli/builder/microService/skeletons/package.json +0 -76
- package/cli/builder/microService/skeletons/src/browser/index.css +0 -3
- package/cli/builder/microService/skeletons/src/browser/index.js +0 -16
- package/cli/builder/microService/skeletons/src/browser/socketio.js +0 -46
- package/cli/builder/microService/skeletons/src/cli/cli.js +0 -224
- package/cli/builder/microService/skeletons/src/cli/menu.js +0 -28
- package/cli/builder/microService/skeletons/src/n-api/README.md +0 -1
- package/cli/builder/microService/skeletons/src/n-api/binding.gyp +0 -14
- package/cli/builder/microService/skeletons/src/n-api/hello.cc +0 -14
- package/cli/builder/microService/skeletons/src/n-api/hello.js +0 -23
- package/cli/builder/microService/skeletons/src/n-api/package.json +0 -15
- package/cli/builder/microService/skeletons/src/node/examples/index.js +0 -120
- package/cli/builder/microService/skeletons/src/node/index.js +0 -102
- package/cli/builder/microService/skeletons/src/node/services/markdown/markdown.js +0 -27
- package/cli/builder/microService/skeletons/src/node/services/servers/http.js +0 -45
- package/cli/builder/microService/skeletons/src/node/services/servers/https.js +0 -44
- package/cli/builder/microService/skeletons/src/node/services/socketio/socketio.js +0 -46
- package/cli/builder/microService/skeletons/src/node/services/syscall/syscall.js +0 -111
- package/cli/builder/microService/skeletons/src/node/services/worker/thread.js +0 -59
- package/cli/builder/microService/skeletons/src/node/services/worker/worker.js +0 -60
- package/cli/builder/microService/skeletons/src/templates/base.html +0 -12
- package/cli/builder/microService/skeletons/src/templates/socket.html +0 -23
- package/cli/builder/microService/skeletons/tests/unit/serviceTest.js +0 -30
- package/cli/builder/project/project.js +0 -474
- package/cli/builder/project/skeletons/README.md +0 -778
- package/cli/builder/project/skeletons/bin/dev-deploy.sh +0 -5
- package/cli/builder/project/skeletons/bin/generateCertificates.sh.skeleton +0 -180
- package/cli/builder/project/skeletons/bin/prod-deploy.sh +0 -3
- package/cli/builder/project/skeletons/config/config.js.skeleton +0 -178
- package/cli/builder/project/skeletons/config/openssl/ca/openssl.cnf.skeleton +0 -150
- package/cli/builder/project/skeletons/config/openssl/ca_intermediate/openssl.cnf.skeleton +0 -152
- package/cli/builder/project/skeletons/config/pm2.config.js.skeleton +0 -62
- package/cli/builder/project/skeletons/documentation.html.twig +0 -24
- package/cli/builder/project/skeletons/editorconfig.skeleton +0 -18
- package/cli/builder/project/skeletons/eslintignore.skeleton +0 -15
- package/cli/builder/project/skeletons/eslintrc.js.skeleton +0 -97
- package/cli/builder/project/skeletons/gitignore.skeleton +0 -32
- package/cli/builder/project/skeletons/migrations/2022.12.25T17.37.37.entity-user.js +0 -137
- package/cli/builder/project/skeletons/migrations/2022.12.25T17.37.38.entity-session.js +0 -97
- package/cli/builder/project/skeletons/migrations/2022.12.25T17.37.39.entity-requests.js +0 -115
- package/cli/builder/project/skeletons/migrations/2022.12.25T17.37.40.entity-jwts.js +0 -97
- package/cli/builder/project/skeletons/migrations/migrations.skeleton.js +0 -101
- package/cli/builder/project/skeletons/package.json.twig +0 -71
- package/cli/builder/react/reactBuilder.js +0 -224
- package/cli/builder/react/skeletons/app/Resources/databases/nodefony.db +0 -0
- package/cli/builder/react/skeletons/app/Resources/translations/messages.en_en.yml +0 -5
- package/cli/builder/react/skeletons/app/Resources/translations/messages.fr_fr.yml +0 -5
- package/cli/builder/react/skeletons/app/Resources/views/base.html.twig +0 -33
- package/cli/builder/react/skeletons/app/config/config.js +0 -392
- package/cli/builder/react/skeletons/app/config/routing.js +0 -10
- package/cli/builder/react/skeletons/app/config/security.js +0 -74
- package/cli/builder/react/skeletons/app/controller/appController.js +0 -22
- package/cli/builder/sandbox/sandBoxBuilder.js +0 -610
- package/cli/builder/sandbox/skeletons/Resources/css/entry.css +0 -48
- package/cli/builder/sandbox/skeletons/Resources/js/entry.js +0 -60
- package/cli/builder/sandbox/skeletons/Resources/public/manifest.json +0 -32
- package/cli/builder/sandbox/skeletons/Resources/translations/messages.en_en.yml +0 -5
- package/cli/builder/sandbox/skeletons/Resources/translations/messages.fr_fr.yml +0 -5
- package/cli/builder/sandbox/skeletons/Resources/views/base.html.twig +0 -46
- package/cli/builder/sandbox/skeletons/Resources/views/index.html.twig +0 -34
- package/cli/builder/sandbox/skeletons/bootstrap/custom.scss +0 -27
- package/cli/builder/sandbox/skeletons/bootstrap/entry.scss +0 -60
- package/cli/builder/sandbox/skeletons/workbox/templates/index.html.twig +0 -32
- package/cli/builder/sandbox/skeletons/workbox/workers/service-worker.js +0 -196
- package/cli/builder/skeletons/Resources/public/favicon.ico +0 -0
- package/cli/builder/skeletons/Resources/public/images/app-logo.png +0 -0
- package/cli/builder/skeletons/Resources/views/framework-bundle/views/401.html.twig +0 -1
- package/cli/builder/skeletons/Resources/views/framework-bundle/views/401.json.twig +0 -24
- package/cli/builder/skeletons/Resources/views/framework-bundle/views/403.html.twig +0 -1
- package/cli/builder/skeletons/Resources/views/framework-bundle/views/403.json.twig +0 -20
- package/cli/builder/skeletons/Resources/views/framework-bundle/views/404.html.twig +0 -1
- package/cli/builder/skeletons/Resources/views/framework-bundle/views/404.json.twig +0 -20
- package/cli/builder/skeletons/Resources/views/framework-bundle/views/500.html.twig +0 -1
- package/cli/builder/skeletons/Resources/views/framework-bundle/views/base.html.twig +0 -30
- package/cli/builder/skeletons/Resources/views/framework-bundle/views/exception.html.twig +0 -1
- package/cli/builder/skeletons/Resources/views/framework-bundle/views/exception.json.twig +0 -24
- package/cli/builder/skeletons/Resources/views/framework-bundle/views/footer.html.twig +0 -33
- package/cli/builder/skeletons/Resources/views/framework-bundle/views/header.html.twig +0 -6
- package/cli/builder/skeletons/Resources/views/framework-bundle/views/index.html.twig +0 -6
- package/cli/builder/skeletons/Resources/views/framework-bundle/views/index.json.twig +0 -1
- package/cli/builder/skeletons/Resources/views/framework-bundle/views/layout.html.twig +0 -125
- package/cli/builder/skeletons/Resources/views/framework-bundle/views/layout.json.twig +0 -5
- package/cli/builder/skeletons/Resources/views/framework-bundle/views/timeout.html.twig +0 -1
- package/cli/builder/skeletons/Resources/views/framework-bundle/views/timeout.json.twig +0 -24
- package/cli/builder/skeletons/app/appKernel.js +0 -133
- package/cli/builder/skeletons/binding/binding.cc +0 -26
- package/cli/builder/skeletons/binding/binding.skeleton +0 -8
- package/cli/builder/skeletons/bundle/bundleClass.js +0 -37
- package/cli/builder/skeletons/command/commandClass.js +0 -11
- package/cli/builder/skeletons/command/taskClass.js +0 -20
- package/cli/builder/skeletons/config/config.js +0 -138
- package/cli/builder/skeletons/config/nodefony/elastic-bundle.js +0 -37
- package/cli/builder/skeletons/config/nodefony/framework-bundle.js +0 -22
- package/cli/builder/skeletons/config/nodefony/http-bundle.js +0 -104
- package/cli/builder/skeletons/config/nodefony/mail-bundle.js +0 -44
- package/cli/builder/skeletons/config/nodefony/mongoose-bundle.js +0 -51
- package/cli/builder/skeletons/config/nodefony/monitoring-bundle.js +0 -34
- package/cli/builder/skeletons/config/nodefony/realtime-bundle.js +0 -15
- package/cli/builder/skeletons/config/nodefony/redis-bundle.js +0 -44
- package/cli/builder/skeletons/config/nodefony/security-bundle.js +0 -25
- package/cli/builder/skeletons/config/nodefony/sequelize-bundle.js +0 -156
- package/cli/builder/skeletons/config/routing.js +0 -55
- package/cli/builder/skeletons/config/security.js +0 -102
- package/cli/builder/skeletons/config/services.js +0 -1
- package/cli/builder/skeletons/config/webpack/webpack.dev.config.js +0 -13
- package/cli/builder/skeletons/config/webpack/webpack.prod.config.js +0 -20
- package/cli/builder/skeletons/config/webpack.config.js +0 -148
- package/cli/builder/skeletons/controller/controllerClass.js +0 -75
- package/cli/builder/skeletons/package.json.twig +0 -57
- package/cli/builder/skeletons/unittest/testFile.js +0 -46
- package/cli/builder/vue/skeletons/Resources/public/images/app-logo.png +0 -0
- package/cli/builder/vue/skeletons/Resources/translations/messages.en_en.yml +0 -5
- package/cli/builder/vue/skeletons/Resources/translations/messages.fr_fr.yml +0 -5
- package/cli/builder/vue/skeletons/vue.config.js +0 -129
- package/cli/builder/vue/vueBuilder.js +0 -410
- package/cli/generate/generate.es6 +0 -103
- package/cli/install/install.js +0 -190
- package/cli/sequelize/sequelize.js +0 -94
- package/cli/start.js +0 -702
- package/cli/tools/pm2.es6 +0 -112
- package/cli/tools/tools.es6 +0 -97
- package/cli.es6 +0 -925
- package/container.es6 +0 -272
- package/error.es6 +0 -293
- package/fileClass.es6 +0 -242
- package/finder/file.es6 +0 -33
- package/finder/fileResult.es6 +0 -138
- package/finder/finder2.es6 +0 -275
- package/finder.es6 +0 -427
- package/kernel/annotations/annotations.es6 +0 -286
- package/kernel/api/api.es6 +0 -61
- package/kernel/api/graphqlApi.es6 +0 -107
- package/kernel/api/jsonApi.es6 +0 -177
- package/kernel/api/openApi.es6 +0 -139
- package/kernel/api/schemas/openApiSchema.js +0 -394
- package/kernel/babylon.es6 +0 -162
- package/kernel/bundle.es6 +0 -1200
- package/kernel/cliKernel.es6 +0 -869
- package/kernel/command.es6 +0 -78
- package/kernel/commands/nodefonyCommand.es6 +0 -247
- package/kernel/commands/tasks/bundlesTask.es6 +0 -59
- package/kernel/controllers/controller.es6 +0 -791
- package/kernel/fixture.es6 +0 -19
- package/kernel/injections/injections.es6 +0 -424
- package/kernel/kernel.es6 +0 -1960
- package/kernel/kernelWatcher.es6 +0 -387
- package/kernel/orm/entity.es6 +0 -59
- package/kernel/orm/orm.es6 +0 -139
- package/kernel/reader.es6 +0 -290
- package/kernel/security/encoder.es6 +0 -17
- package/kernel/security/factories/factory.es6 +0 -111
- package/kernel/security/factories/passeportFactory.es6 +0 -61
- package/kernel/security/provider.es6 +0 -58
- package/kernel/security/providers/chainProvider.es6 +0 -99
- package/kernel/security/providers/memoryProvider.es6 +0 -55
- package/kernel/security/providers/providerManager.es6 +0 -67
- package/kernel/security/providers/userEntityProvider.es6 +0 -50
- package/kernel/security/role.es6 +0 -12
- package/kernel/security/secureArea.es6 +0 -431
- package/kernel/security/tokens/token.es6 +0 -171
- package/kernel/security/user.es6 +0 -106
- package/kernel/serviceRealTime.es6 +0 -21
- package/kernel/services/connectionsService.es6 +0 -93
- package/kernel/services/cron/cronService.es6 +0 -123
- package/kernel/task.es6 +0 -80
- package/kernel/templates.es6 +0 -22
- package/kernel/templating/twig.es6 +0 -218
- package/kernel/tests/cliTest.js +0 -59
- package/kernel/tests/containerTest.js +0 -232
- package/kernel/tests/kernelTest.js +0 -39
- package/nodefony.es6 +0 -1084
- package/notificationsCenter.es6 +0 -118
- package/protocol.es6 +0 -86
- package/protocols/bayeux.es6 +0 -174
- package/protocols/jsonRpc/jsonrpc.es6 +0 -56
- package/result.es6 +0 -99
- package/service.es6 +0 -288
- package/syslog/pdu.es6 +0 -141
- package/syslog/syslog.es6 +0 -754
- package/watcher.es6 +0 -113
|
@@ -0,0 +1,216 @@
|
|
|
1
|
+
import type { RealtimeClient } from "../realtime/RealtimeClient.js";
|
|
2
|
+
import type { MessageStats, NodefonyNotice, RealtimeIdentity, RealtimeState } from "../realtime/RealtimeClient.js";
|
|
3
|
+
import type { BindAdaptiveOptions } from "../realtime/AdaptiveRate.js";
|
|
4
|
+
import { type Dispose, type SocketSnapshot } from "../realtime/observe.js";
|
|
5
|
+
export { rateChannel, parseRate, isRateChannel, } from "../../realtime/channelRate.js";
|
|
6
|
+
export type { RateBounds } from "../../realtime/channelRate.js";
|
|
7
|
+
export type { RealtimeIdentity, RealtimeState, NodefonyNotice, } from "../realtime/RealtimeClient.js";
|
|
8
|
+
export type { SocketSnapshot } from "../realtime/observe.js";
|
|
9
|
+
/**
|
|
10
|
+
* Une valeur réactive à la mode de Svelte 5 : on la lit `.current`.
|
|
11
|
+
*
|
|
12
|
+
* Le même contrat que `MediaQuery.current` : lue dans un template ou un
|
|
13
|
+
* `$effect`, elle suit ; lue ailleurs, elle rend l'instantané courant.
|
|
14
|
+
*/
|
|
15
|
+
export interface Reactive<T> {
|
|
16
|
+
readonly current: T;
|
|
17
|
+
}
|
|
18
|
+
/** Réglages de {@link configureNodefony} — l'un des deux au moins doit être donné. */
|
|
19
|
+
export interface NodefonySvelteOptions {
|
|
20
|
+
/**
|
|
21
|
+
* Adresse du serveur temps réel — la voie SIMPLE. La socket partagée de cette
|
|
22
|
+
* URL est fabriquée et connectée.
|
|
23
|
+
*
|
|
24
|
+
* Deux consommateurs qui donnent la même URL obtiennent la MÊME socket
|
|
25
|
+
* ({@link RealtimeClient.shared}), donc une seule connexion réseau.
|
|
26
|
+
*/
|
|
27
|
+
url?: string;
|
|
28
|
+
/**
|
|
29
|
+
* Socket déjà construite — la voie AVANCÉE, quand l'application possède son
|
|
30
|
+
* cycle de connexion. Fournie, elle l'emporte sur `url` et son cycle n'est
|
|
31
|
+
* pas touché : ni `connect`, ni `disconnect`.
|
|
32
|
+
*/
|
|
33
|
+
client?: RealtimeClient;
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Installe la politique temps réel de l'application — à appeler UNE fois, dans
|
|
37
|
+
* le point d'entrée, avant `mount()`.
|
|
38
|
+
*
|
|
39
|
+
* Svelte n'a pas de contexte applicatif comparable à React : `setContext` ne se
|
|
40
|
+
* pose qu'à l'initialisation d'un composant, et ne couvrirait donc pas les
|
|
41
|
+
* liaisons appelées ailleurs. La politique s'écrit ici comme ce qu'elle est en
|
|
42
|
+
* Svelte : une configuration de module.
|
|
43
|
+
*
|
|
44
|
+
* Elle ne coupe aucune connexion : la connexion appartient à la PAGE, pas à un
|
|
45
|
+
* composant, et `disconnect()` tranche les requêtes en vol des autres
|
|
46
|
+
* consommateurs de la même socket partagée.
|
|
47
|
+
*
|
|
48
|
+
* @throws si ni `url` ni `client` n'est fourni — l'adresse dépend de
|
|
49
|
+
* l'application, et le framework n'en devine aucune (règle du socle : une
|
|
50
|
+
* adresse devinée marche en développement et se trompe en production).
|
|
51
|
+
*
|
|
52
|
+
* @example
|
|
53
|
+
* ```ts
|
|
54
|
+
* configureNodefony({ url: "/api/live/realtime" });
|
|
55
|
+
* ```
|
|
56
|
+
*/
|
|
57
|
+
export declare function configureNodefony(options: NodefonySvelteOptions): void;
|
|
58
|
+
/**
|
|
59
|
+
* `nodefony()` — la socket brute (canaux, journal, statistiques…). Tête de
|
|
60
|
+
* gondole et échappatoire pour les cas avancés ; pour de l'état réactif, prendre
|
|
61
|
+
* les liaisons dédiées ci-dessous.
|
|
62
|
+
*
|
|
63
|
+
* @throws si {@link configureNodefony} n'a pas été appelé. Le socle REFUSE de
|
|
64
|
+
* deviner une adresse : retomber ici sur une socket partagée fabriquée à la
|
|
65
|
+
* volée donnerait une page qui marche en développement et parle au mauvais
|
|
66
|
+
* hôte en production — mieux vaut une erreur au premier rendu.
|
|
67
|
+
*/
|
|
68
|
+
export declare function nodefony(): RealtimeClient;
|
|
69
|
+
/**
|
|
70
|
+
* Une source de valeur : constante, ou fonction qui la lit.
|
|
71
|
+
*
|
|
72
|
+
* Donner une fonction qui lit un `$state` suffit à ce que l'abonnement SUIVE la
|
|
73
|
+
* valeur — c'est ce qui remplace, en Svelte, la liste de dépendances que React
|
|
74
|
+
* doit se faire passer à la main.
|
|
75
|
+
*/
|
|
76
|
+
export type Source<T> = T | (() => T);
|
|
77
|
+
/**
|
|
78
|
+
* `nodefonyState()` — l'état de la connexion (`"connected"`, `"reconnecting"`,
|
|
79
|
+
* …), tenu à jour. Branché sur la porte publique `onState`, jamais sur le nom
|
|
80
|
+
* de l'événement local, qui n'a pas à sortir du client.
|
|
81
|
+
*/
|
|
82
|
+
export declare function nodefonyState(): Reactive<RealtimeState>;
|
|
83
|
+
/**
|
|
84
|
+
* `nodefonyIdentity()` — l'**identité résolue** de la connexion, annoncée par le
|
|
85
|
+
* serveur au `realtime:welcome` (`authenticated`, `roles`, `userIdentifier`,
|
|
86
|
+
* `scopes`). `null` tant qu'aucun welcome n'est arrivé ; une fois reçu, un
|
|
87
|
+
* visiteur anonyme a `authenticated: false`. Brique du gating front :
|
|
88
|
+
* `authenticated: false` → écran de connexion, **sans** appeler `/auth/me`.
|
|
89
|
+
*/
|
|
90
|
+
export declare function nodefonyIdentity(): Reactive<RealtimeIdentity | null>;
|
|
91
|
+
/**
|
|
92
|
+
* `nodefonyChannel()` — s'abonne à un canal pub/sub : `onMessage` est appelé à
|
|
93
|
+
* chaque message. Le socle apparie `subscribe`/`unsubscribe` côté serveur
|
|
94
|
+
* (ref-comptés) et rejoue l'abonnement à chaque reconnexion.
|
|
95
|
+
*
|
|
96
|
+
* **C'est la forme NON paresseuse** : elle rend son propre teardown, ce que
|
|
97
|
+
* `$effect` attend, et l'abonnement est donc pris que la valeur soit affichée
|
|
98
|
+
* ou non.
|
|
99
|
+
*
|
|
100
|
+
* @example
|
|
101
|
+
* ```svelte
|
|
102
|
+
* $effect(() => nodefonyChannel("live:salon", (m) => messages.push(m)));
|
|
103
|
+
* ```
|
|
104
|
+
*/
|
|
105
|
+
export declare function nodefonyChannel(channel: Source<string>, onMessage: (payload: unknown) => void): Dispose;
|
|
106
|
+
/**
|
|
107
|
+
* `nodefonyChannelData()` — la **dernière valeur** reçue sur un canal (le cas le
|
|
108
|
+
* plus courant : la dernière mesure d'un flux d'état). `null` tant que rien
|
|
109
|
+
* n'est arrivé.
|
|
110
|
+
*
|
|
111
|
+
* Le canal accepte une fonction : donnée dans un `$derived`, elle fait suivre
|
|
112
|
+
* l'abonnement — et le nouveau canal est pris AVANT que l'ancien soit rendu.
|
|
113
|
+
*/
|
|
114
|
+
export declare function nodefonyChannelData<T = unknown>(channel: Source<string>, initial?: T | null): Reactive<T | null>;
|
|
115
|
+
/** Réglages adaptatifs (la cadence désirée se passe à part, en argument). */
|
|
116
|
+
export type AdaptiveChannelOptions = Omit<BindAdaptiveOptions, "intervalMs" | "onRate">;
|
|
117
|
+
/** Résultat de {@link nodefonyAdaptiveChannelData} : valeur + cadence réelle. */
|
|
118
|
+
export interface AdaptiveChannelData<T> {
|
|
119
|
+
/** Dernière valeur reçue, `null` tant que rien n'est arrivé. */
|
|
120
|
+
data: Reactive<T | null>;
|
|
121
|
+
/** Cadence effective (ms) — bouge avec l'AIMD, à afficher en badge. */
|
|
122
|
+
intervalMs: Reactive<number>;
|
|
123
|
+
}
|
|
124
|
+
/**
|
|
125
|
+
* `nodefonyAdaptiveChannel()` — comme {@link nodefonyChannel}, mais en **cadence
|
|
126
|
+
* adaptative** (AIMD piloté par le client) : la cadence recule sous famine puis
|
|
127
|
+
* remonte quand c'est sain, sans rien changer au serveur.
|
|
128
|
+
*
|
|
129
|
+
* Réservé aux canaux d'ÉTAT (latest-wins) : décimer un canal d'événements perd
|
|
130
|
+
* des messages.
|
|
131
|
+
*
|
|
132
|
+
* Comme {@link nodefonyChannel}, rend son teardown — forme non paresseuse, à
|
|
133
|
+
* donner à `$effect`. La cadence effective est poussée par `onRate` ; pour
|
|
134
|
+
* l'AFFICHER, prendre {@link nodefonyAdaptiveChannelData}, qui la rend réactive.
|
|
135
|
+
*
|
|
136
|
+
* Le ré-abonnement suit {@link adaptiveRebindKey} — la MÊME clé que les trois
|
|
137
|
+
* autres liaisons, pour que les quatre rebranchent aux mêmes instants.
|
|
138
|
+
*/
|
|
139
|
+
export declare function nodefonyAdaptiveChannel(base: Source<string>, onMessage: (payload: unknown) => void, desiredMs: Source<number>, options?: AdaptiveChannelOptions & {
|
|
140
|
+
onRate?: (ms: number) => void;
|
|
141
|
+
}): Dispose;
|
|
142
|
+
/**
|
|
143
|
+
* `nodefonyAdaptiveChannelData()` — comme {@link nodefonyChannelData}, mais en
|
|
144
|
+
* cadence adaptative. Rend la dernière valeur **et** la cadence effective, les
|
|
145
|
+
* deux réactives. Réservé aux canaux d'ÉTAT.
|
|
146
|
+
*
|
|
147
|
+
* La clé de ré-abonnement est {@link adaptiveRebindKey} : lue à chaque
|
|
148
|
+
* branchement, elle fait suivre l'abonnement quand la base, la cadence désirée
|
|
149
|
+
* ou l'activation changent — et pas quand autre chose bouge.
|
|
150
|
+
*/
|
|
151
|
+
export declare function nodefonyAdaptiveChannelData<T = unknown>(base: Source<string>, desiredMs: Source<number>, options?: AdaptiveChannelOptions): AdaptiveChannelData<T>;
|
|
152
|
+
/**
|
|
153
|
+
* Statistiques observées d'un canal, telles que le client les calcule.
|
|
154
|
+
*
|
|
155
|
+
* Alias du contrat isomorphe {@link MessageStats} : une copie locale de la forme
|
|
156
|
+
* aurait divergé le jour où le client ajoute un compteur.
|
|
157
|
+
*/
|
|
158
|
+
export type ChannelStatsSnapshot = MessageStats;
|
|
159
|
+
/**
|
|
160
|
+
* `nodefonyChannelStats()` — statistiques vivantes d'un canal (débit, série pour
|
|
161
|
+
* un VU-mètre, total). La source est l'échantillonneur du client (1×/s) : aucune
|
|
162
|
+
* horloge n'est posée ici, et aucune trame n'est émise pour mesurer.
|
|
163
|
+
*/
|
|
164
|
+
export declare function nodefonyChannelStats(channel: Source<string>): Reactive<ChannelStatsSnapshot | null>;
|
|
165
|
+
/**
|
|
166
|
+
* `nodefonySnapshot()` — ce que la socket sait d'ELLE-MÊME : état, canaux tenus,
|
|
167
|
+
* trames reçues, trames perdues, dernière trame. Rafraîchi par
|
|
168
|
+
* l'échantillonneur déjà en place — aucune horloge de plus.
|
|
169
|
+
*
|
|
170
|
+
* La donnée est au socle, la **boîte qui l'affiche** reste à chaque front :
|
|
171
|
+
* publier un composant obligerait à en écrire un par framework de vue, et ferait
|
|
172
|
+
* entrer du DOM dans un module dont toute la valeur est de n'en avoir aucun.
|
|
173
|
+
*/
|
|
174
|
+
export declare function nodefonySnapshot(): Reactive<SocketSnapshot | null>;
|
|
175
|
+
/** Réglages de {@link nodefonySyslog}. */
|
|
176
|
+
export interface SyslogOptions {
|
|
177
|
+
/** Taille max de l'anneau (les plus anciennes lignes sont évincées). Défaut 500. */
|
|
178
|
+
max?: number;
|
|
179
|
+
/** Ne garder que ces sévérités (ex. `["ERROR", "CRITIC"]`). Toutes par défaut. */
|
|
180
|
+
severities?: string[];
|
|
181
|
+
/** Canal source. Défaut `"nodefony:syslog"`. */
|
|
182
|
+
channel?: string;
|
|
183
|
+
}
|
|
184
|
+
/**
|
|
185
|
+
* `nodefonySyslog()` — le flux du journal, prêt à afficher : anneau borné et
|
|
186
|
+
* filtre de sévérité. Le format **coalescé** du canal (`{ logs, dropped }`),
|
|
187
|
+
* l'entrée unique, la taille de l'anneau et le canal par défaut viennent du
|
|
188
|
+
* socle ({@link observeSyslog}) : cette liaison n'en connaît aucun.
|
|
189
|
+
*/
|
|
190
|
+
export declare function nodefonySyslog(options?: Source<SyslogOptions>): Reactive<unknown[]>;
|
|
191
|
+
/**
|
|
192
|
+
* `nodefonyNotifications()` — le flux des **notices normalisées** du client :
|
|
193
|
+
* criticités qui cassent le temps réel (codes de fermeture RFC 6455
|
|
194
|
+
* interprétés), erreurs poussées par le serveur, rétablissement de connexion.
|
|
195
|
+
* `onNotice` est appelé pour CHAQUE notice → brancher un centre de
|
|
196
|
+
* notifications.
|
|
197
|
+
*
|
|
198
|
+
* Forme non paresseuse (elle rend son teardown), à monter **une seule fois**
|
|
199
|
+
* dans le shell de l'application : sans quoi la même notice s'affiche autant de
|
|
200
|
+
* fois qu'il y a d'appels.
|
|
201
|
+
*/
|
|
202
|
+
export declare function nodefonyNotifications(onNotice: (notice: NodefonyNotice) => void): Dispose;
|
|
203
|
+
/** Réglages de {@link nodefonyNoticeLog}. */
|
|
204
|
+
export interface NoticeLogOptions {
|
|
205
|
+
/** Taille max de l'anneau (les plus anciennes notices sont évincées). Défaut 50. */
|
|
206
|
+
max?: number;
|
|
207
|
+
/** Ne garder que ces sources (ex. `["realtime"]`). Toutes par défaut. */
|
|
208
|
+
sources?: NodefonyNotice["source"][];
|
|
209
|
+
}
|
|
210
|
+
/**
|
|
211
|
+
* `nodefonyNoticeLog()` — l'anneau borné des dernières notices, filtrable par
|
|
212
|
+
* source : un historique léger des criticités, distinct des notifications
|
|
213
|
+
* éphémères. La taille de l'anneau et le filtrage viennent du socle
|
|
214
|
+
* ({@link observeNoticeLog}).
|
|
215
|
+
*/
|
|
216
|
+
export declare function nodefonyNoticeLog(options?: Source<NoticeLogOptions>): Reactive<NodefonyNotice[]>;
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Identités de corrélation **côté navigateur** — ce que le pod pourra recouper quand
|
|
3
|
+
* il recevra un journal venu d'un onglet.
|
|
4
|
+
*
|
|
5
|
+
* Le navigateur n'a pas d'`AsyncLocalStorage` : une erreur JavaScript ne survient dans
|
|
6
|
+
* aucune bulle de requête. « Le `requestId` de la requête qui l'a précédée » n'existe
|
|
7
|
+
* donc pas — deux `fetch` concurrents suffisent à attribuer l'erreur à la mauvaise, et
|
|
8
|
+
* un journal qui ment sur la corrélation coûte plus cher qu'un journal sans corrélation.
|
|
9
|
+
*
|
|
10
|
+
* D'où deux identités séparées, chacune honnête sur ce qu'elle sait :
|
|
11
|
+
*
|
|
12
|
+
* - {@link getPageId} — **toujours** disponible, généré une fois par chargement de page.
|
|
13
|
+
* C'est lui qui relie entre elles toutes les lignes d'un même onglet. Sans lui, le pod
|
|
14
|
+
* reçoit des lignes orphelines qu'aucun écran ne peut regrouper.
|
|
15
|
+
* - {@link withRequestId} — pose un `requestId` **seulement là où il est SU** : dans le
|
|
16
|
+
* code qui traite une réponse dont on a lu l'en-tête `x-request-id`. Hors de cette
|
|
17
|
+
* portée, aucun `requestId` n'est attaché. Rien n'est deviné.
|
|
18
|
+
*
|
|
19
|
+
* Coût quand personne ne s'en sert : une variable à `undefined` et un test de référence
|
|
20
|
+
* par `Pdu` (le provider n'est même pas branché tant que {@link installRequestIdProvider}
|
|
21
|
+
* n'a pas été appelé).
|
|
22
|
+
*/
|
|
23
|
+
/**
|
|
24
|
+
* Identifiant stable de ce chargement de page (UUID v4), généré à la demande.
|
|
25
|
+
*
|
|
26
|
+
* Il change à chaque rechargement — c'est voulu : il désigne une **session d'onglet**,
|
|
27
|
+
* pas un utilisateur. Rien d'identifiant personnel ne doit y être mêlé.
|
|
28
|
+
*
|
|
29
|
+
* @returns l'identifiant de page, constant pour la durée du document.
|
|
30
|
+
*/
|
|
31
|
+
export declare function getPageId(): string;
|
|
32
|
+
/**
|
|
33
|
+
* Exécute `fn` en déclarant que ce qu'elle journalise appartient à la requête `requestId`.
|
|
34
|
+
*
|
|
35
|
+
* La portée est le **tick synchrone** de `fn`, et rien de plus : après un `await`, la
|
|
36
|
+
* bulle est refermée. C'est une limite assumée, pas un défaut — le navigateur n'offre
|
|
37
|
+
* aucun moyen de propager un contexte à travers l'asynchrone, et l'alternative (« le
|
|
38
|
+
* dernier `requestId` vu ») fabriquerait de fausses corrélations.
|
|
39
|
+
*
|
|
40
|
+
* @example
|
|
41
|
+
* ```ts
|
|
42
|
+
* const res = await fetch("/api/orders");
|
|
43
|
+
* const rid = res.headers.get("x-request-id") ?? undefined;
|
|
44
|
+
* withRequestId(rid, () => {
|
|
45
|
+
* syslog.log("commande refusée", "ERROR", "checkout");
|
|
46
|
+
* });
|
|
47
|
+
* ```
|
|
48
|
+
*
|
|
49
|
+
* @param requestId - la requête connue, ou `undefined` pour n'en attacher aucune.
|
|
50
|
+
* @param fn - le travail à exécuter dans cette portée.
|
|
51
|
+
* @returns ce que `fn` renvoie.
|
|
52
|
+
*/
|
|
53
|
+
export declare function withRequestId<T>(requestId: string | undefined, fn: () => T): T;
|
|
54
|
+
/**
|
|
55
|
+
* `requestId` de la portée courante, `undefined` en dehors de {@link withRequestId}.
|
|
56
|
+
*
|
|
57
|
+
* @returns l'identifiant de requête su à cet instant, jamais deviné.
|
|
58
|
+
*/
|
|
59
|
+
export declare function getCurrentRequestId(): string | undefined;
|
|
60
|
+
/**
|
|
61
|
+
* Branche {@link getCurrentRequestId} sur `Pdu.requestIdProvider`, de sorte que tout
|
|
62
|
+
* `Pdu` créé dans une portée {@link withRequestId} porte son `requestId` — le même champ
|
|
63
|
+
* que côté serveur, donc la même clé de recoupement, sans qu'aucun appelant ait à le
|
|
64
|
+
* répéter.
|
|
65
|
+
*
|
|
66
|
+
* Idempotent. Le provider d'origine (il n'y en a pas côté navigateur, mais un test peut
|
|
67
|
+
* en poser un) est restauré au retrait.
|
|
68
|
+
*
|
|
69
|
+
* @returns la fonction de retrait — à appeler au démontage.
|
|
70
|
+
*/
|
|
71
|
+
export declare function installRequestIdProvider(): () => void;
|
|
72
|
+
/**
|
|
73
|
+
* Remet le module à son état initial — réservé aux tests, qui doivent pouvoir repartir
|
|
74
|
+
* d'une page « neuve » sans recharger un document.
|
|
75
|
+
*/
|
|
76
|
+
export declare function resetClientLogContext(): void;
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Capture des erreurs **non rattrapées** du navigateur (`error`, `unhandledrejection`)
|
|
3
|
+
* et versement dans le `Syslog` client.
|
|
4
|
+
*
|
|
5
|
+
* C'est la source qui donne son intérêt à la voie montante : une exception qui remonte
|
|
6
|
+
* jusqu'à `window` n'est vue par personne. Elle s'affiche dans une console que
|
|
7
|
+
* l'utilisateur n'a pas ouverte, puis disparaît avec l'onglet. Côté serveur, la requête
|
|
8
|
+
* qui l'a provoquée est pourtant journalisée, complète — il ne manquait que la moitié
|
|
9
|
+
* navigateur.
|
|
10
|
+
*
|
|
11
|
+
* Rien n'est intercepté ni monkey-patché : deux écouteurs `window`, retirés au démontage.
|
|
12
|
+
*/
|
|
13
|
+
import type Syslog from "../../syslog/Syslog.js";
|
|
14
|
+
export interface ErrorCaptureOptions {
|
|
15
|
+
/** Le journal client qui recevra les entrées. */
|
|
16
|
+
syslog: Syslog;
|
|
17
|
+
/**
|
|
18
|
+
* Catégorie (`msgid`) des entrées produites. Défaut {@link BROWSER_ERROR_MSGID}.
|
|
19
|
+
*
|
|
20
|
+
* Le **module** émetteur, lui, n'est pas un paramètre : il appartient au `Syslog`
|
|
21
|
+
* client (`settings.moduleName`) et `log()` ne permet pas de l'écraser par appel.
|
|
22
|
+
*/
|
|
23
|
+
msgid?: string;
|
|
24
|
+
/**
|
|
25
|
+
* Fenêtre de déduplication des erreurs IDENTIQUES consécutives, en ms. Défaut `1000`.
|
|
26
|
+
*
|
|
27
|
+
* Une exception dans une boucle d'animation se lève soixante fois par seconde ; sans
|
|
28
|
+
* cette fenêtre, elle chasse du tampon toutes les autres entrées et le journal ne
|
|
29
|
+
* contient plus qu'elle. `0` désactive.
|
|
30
|
+
*/
|
|
31
|
+
dedupeMs?: number;
|
|
32
|
+
}
|
|
33
|
+
/** Catégorie par défaut d'une exception non rattrapée. */
|
|
34
|
+
export declare const BROWSER_ERROR_MSGID = "BROWSER_ERROR";
|
|
35
|
+
/** Catégorie d'une promesse rejetée sans `catch`. */
|
|
36
|
+
export declare const BROWSER_REJECTION_MSGID = "BROWSER_REJECTION";
|
|
37
|
+
/**
|
|
38
|
+
* Installe la capture des erreurs globales du navigateur.
|
|
39
|
+
*
|
|
40
|
+
* No-op hors navigateur (rendu serveur, test Node sans DOM) : le contrat isomorphe veut
|
|
41
|
+
* qu'un code client puisse être chargé des deux côtés sans garde chez l'appelant.
|
|
42
|
+
*
|
|
43
|
+
* @param opts - journal cible et bornes.
|
|
44
|
+
* @returns la fonction de retrait — retire les deux écouteurs.
|
|
45
|
+
*/
|
|
46
|
+
export declare function installErrorCapture(opts: ErrorCaptureOptions): () => void;
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Transport **montant** des journaux du navigateur : il écoute le `Syslog` client, met
|
|
3
|
+
* les `Pdu` en tampon et les pousse par lots sur un canal entrant de la socket, où le
|
|
4
|
+
* pod les réinjecte dans son propre journal.
|
|
5
|
+
*
|
|
6
|
+
* Ce qu'il n'est PAS : un puits {@link ILogSink}. Celui-ci reçoit des **chaînes déjà
|
|
7
|
+
* formatées** — au point où il intervient, la sévérité, le module et le `requestId` sont
|
|
8
|
+
* fondus dans du texte. Les faire transiter par là obligerait à reparser ce qu'on vient
|
|
9
|
+
* de sérialiser, et le `requestId` serait extrait d'un format d'affichage. Le transport
|
|
10
|
+
* écoute donc l'événement `"onLog"`, qui porte le `Pdu` **lui-même** : la même structure
|
|
11
|
+
* des deux côtés du fil, ce qui est tout l'intérêt d'un cœur isomorphe.
|
|
12
|
+
*
|
|
13
|
+
* Coût quand il n'est pas installé : **zéro**. `Syslog.log()` ne déclenche `fire("onLog")`
|
|
14
|
+
* que si `listenerCount("onLog") > 0`.
|
|
15
|
+
*
|
|
16
|
+
* Coût quand il l'est : un test de sévérité par entrée, un `push` dans un tableau alloué
|
|
17
|
+
* au premier journal retenu, et **un** minuteur de regroupement quel que soit le débit.
|
|
18
|
+
* La sérialisation n'a lieu qu'à l'envoi, jamais à la capture.
|
|
19
|
+
*/
|
|
20
|
+
import type Syslog from "../../syslog/Syslog.js";
|
|
21
|
+
/** Le strict nécessaire pour pousser — n'impose pas `RealtimeClient` à l'appelant. */
|
|
22
|
+
export interface UplinkPublisher {
|
|
23
|
+
publish(channel: string, payload?: unknown): void;
|
|
24
|
+
}
|
|
25
|
+
/** Une entrée de journal telle qu'elle voyage sur le fil (plate, sérialisable). */
|
|
26
|
+
export interface WireLogEntry {
|
|
27
|
+
/** Sévérité RFC 5424 (0-7). */
|
|
28
|
+
severity: number;
|
|
29
|
+
/** Nom de la sévérité (`"ERROR"`, `"INFO"`…). */
|
|
30
|
+
severityName: string;
|
|
31
|
+
/** Module émetteur **tel que le client le prétend** — le pod ne le croit pas. */
|
|
32
|
+
moduleName: string;
|
|
33
|
+
msgid: string;
|
|
34
|
+
msg: string;
|
|
35
|
+
/** Horloge du NAVIGATEUR (ms epoch) — jamais celle du pod. */
|
|
36
|
+
timeStamp: number;
|
|
37
|
+
/** Requête connue au moment du journal, absente si elle ne l'était pas. */
|
|
38
|
+
requestId?: string;
|
|
39
|
+
/** Charge normalisée : une `Error` devient `{name, message, stack}`. */
|
|
40
|
+
payload: unknown;
|
|
41
|
+
}
|
|
42
|
+
/** Enveloppe d'un lot poussé sur le canal montant. */
|
|
43
|
+
export interface UplinkBatch {
|
|
44
|
+
/** Identifiant de ce chargement de page — la clé de regroupement d'un onglet. */
|
|
45
|
+
pageId: string;
|
|
46
|
+
/** Les entrées, dans l'ordre d'émission. */
|
|
47
|
+
entries: WireLogEntry[];
|
|
48
|
+
/** Entrées perdues depuis le dernier lot (tampon plein). `0` omis. */
|
|
49
|
+
dropped?: number;
|
|
50
|
+
}
|
|
51
|
+
export interface SyslogUplinkOptions {
|
|
52
|
+
/** Le journal client à écouter. */
|
|
53
|
+
syslog: Syslog;
|
|
54
|
+
/** La socket par laquelle pousser (typiquement le `RealtimeClient` partagé). */
|
|
55
|
+
publisher: UplinkPublisher;
|
|
56
|
+
/**
|
|
57
|
+
* Sévérité maximale retenue (RFC 5424 : plus le nombre est petit, plus c'est grave).
|
|
58
|
+
* Défaut `4` (WARNING) — remonter le DEBUG d'un navigateur en production est un
|
|
59
|
+
* excellent moyen de noyer un journal d'exploitation.
|
|
60
|
+
*/
|
|
61
|
+
maxSeverity?: number;
|
|
62
|
+
/** Fenêtre de regroupement, en ms. Défaut `2000`. */
|
|
63
|
+
batchMs?: number;
|
|
64
|
+
/** Entrées par lot au maximum ; au-delà, on envoie sans attendre. Défaut `50`. */
|
|
65
|
+
maxBatch?: number;
|
|
66
|
+
/** Profondeur du tampon ; au-delà, la plus ANCIENNE est perdue. Défaut `200`. */
|
|
67
|
+
maxQueue?: number;
|
|
68
|
+
/** Longueur maximale d'une chaîne transportée (message, pile). Défaut `4096`. */
|
|
69
|
+
maxStringLength?: number;
|
|
70
|
+
/** Canal montant. Défaut {@link PLATFORM_INBOUND.syslogUplink}. */
|
|
71
|
+
channel?: string;
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* Catégorie (`msgid`) réservée à ce que le transport dit de LUI-MÊME. Les entrées qui la
|
|
75
|
+
* portent sont **exclues** de la remontée : sans cette exclusion, un envoi qui échoue
|
|
76
|
+
* journalise son échec, ce qui produit une entrée, qui déclenche un envoi, qui échoue.
|
|
77
|
+
*
|
|
78
|
+
* La marque porte sur le `msgid` et non sur le module : `Syslog.log()` ne permet pas de
|
|
79
|
+
* fixer `moduleName` par appel — il appartient aux `settings` du logger.
|
|
80
|
+
*/
|
|
81
|
+
export declare const UPLINK_MSGID = "CLIENT_UPLINK";
|
|
82
|
+
/**
|
|
83
|
+
* Installe la remontée des journaux du navigateur vers le pod.
|
|
84
|
+
*
|
|
85
|
+
* @param opts - journal à écouter, socket par laquelle pousser, et les bornes.
|
|
86
|
+
* @returns la fonction de retrait — détache le listener, annule le minuteur et pousse
|
|
87
|
+
* une dernière fois ce qui restait en tampon.
|
|
88
|
+
*/
|
|
89
|
+
export declare function installSyslogUplink(opts: SyslogUplinkOptions): () => void;
|
|
@@ -0,0 +1,234 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `nodefony/vue` — liaisons **Vue 3** du client temps réel isomorphe.
|
|
3
|
+
*
|
|
4
|
+
* Adapte le {@link RealtimeClient} (agnostique : `on()`/`emit()`/`state`) à la
|
|
5
|
+
* réactivité de Vue, sans glue à recopier dans chaque application. Le pendant
|
|
6
|
+
* exact de `nodefony/react` : même surface, mêmes noms, mêmes garanties — seule
|
|
7
|
+
* la traduction vers la réactivité change.
|
|
8
|
+
*
|
|
9
|
+
* **Ce fichier ne contient AUCUNE règle temps réel.** Souscrire, tenir un
|
|
10
|
+
* dernier reçu, borner un anneau, décoder le format coalescé du journal, ne
|
|
11
|
+
* jamais couper une socket partagée : tout cela vit dans le socle agnostique
|
|
12
|
+
* `nodefony/client` (`observe*`, `connectShared`), que les liaisons React,
|
|
13
|
+
* Angular et Svelte consomment à l'identique. Ici ne reste que la traduction
|
|
14
|
+
* *rappel + libération → réactivité Vue* — la seule chose qu'une liaison a le
|
|
15
|
+
* droit de contenir. Un composable qui réencoderait une règle la ferait
|
|
16
|
+
* diverger des trois autres fronts, en silence.
|
|
17
|
+
*
|
|
18
|
+
* Trois particularités de Vue que React ne montre pas, et qui sont la raison
|
|
19
|
+
* d'être de ce fichier :
|
|
20
|
+
*
|
|
21
|
+
* 1. **La politique s'écrit en PLUGIN**, pas en composant enveloppant :
|
|
22
|
+
* `app.use(nodefonyVue, { url })`. C'est le vocabulaire du framework.
|
|
23
|
+
* 2. **Le client n'entre JAMAIS dans un `ref()`** — il serait enveloppé dans
|
|
24
|
+
* un proxy réactif profond, qui casse les égalités de référence et fait
|
|
25
|
+
* payer une interception à chaque accès. Il est posé `markRaw`.
|
|
26
|
+
* 3. **La libération passe par `onScopeDispose`**, pas par `onUnmounted` :
|
|
27
|
+
* c'est le seul des deux qui couvre aussi les portées d'effet créées hors
|
|
28
|
+
* composant (`effectScope()`), où un abonnement fuirait sans un mot.
|
|
29
|
+
*
|
|
30
|
+
* `vue` est une peerDep **optionnelle** : ce module n'est tiré que si on
|
|
31
|
+
* importe `nodefony/vue`.
|
|
32
|
+
*
|
|
33
|
+
* @example La page entière, en deux concepts :
|
|
34
|
+
* ```ts
|
|
35
|
+
* // main.ts
|
|
36
|
+
* createApp(App).use(nodefonyVue, { url: "/api/live/realtime" }).mount("#app");
|
|
37
|
+
* ```
|
|
38
|
+
* ```vue
|
|
39
|
+
* <script setup lang="ts">
|
|
40
|
+
* import { useNodefonyChannelData, useNodefonyState } from "nodefony/vue";
|
|
41
|
+
* const etat = useNodefonyState();
|
|
42
|
+
* const last = useNodefonyChannelData<LiveEvent>("live:events");
|
|
43
|
+
* </script>
|
|
44
|
+
* ```
|
|
45
|
+
*
|
|
46
|
+
* @module nodefony/vue
|
|
47
|
+
*/
|
|
48
|
+
import { type InjectionKey, type MaybeRefOrGetter, type Plugin, type Ref } from "vue";
|
|
49
|
+
import type { RealtimeClient } from "../realtime/RealtimeClient.js";
|
|
50
|
+
import type { MessageStats, NodefonyNotice, RealtimeIdentity, RealtimeState } from "../realtime/RealtimeClient.js";
|
|
51
|
+
import type { BindAdaptiveOptions } from "../realtime/AdaptiveRate.js";
|
|
52
|
+
import { type SocketSnapshot } from "../realtime/observe.js";
|
|
53
|
+
export { rateChannel, parseRate, isRateChannel, } from "../../realtime/channelRate.js";
|
|
54
|
+
export type { RateBounds } from "../../realtime/channelRate.js";
|
|
55
|
+
export type { RealtimeIdentity, RealtimeState, NodefonyNotice, } from "../realtime/RealtimeClient.js";
|
|
56
|
+
export type { SocketSnapshot } from "../realtime/observe.js";
|
|
57
|
+
/**
|
|
58
|
+
* La clé sous laquelle le plugin fournit la socket.
|
|
59
|
+
*
|
|
60
|
+
* Exportée pour le cas légitime où un sous-arbre doit parler à une AUTRE
|
|
61
|
+
* socket que celle de l'application : `provide(nodefonyClientKey, uneAutre)`
|
|
62
|
+
* dans le composant parent suffit, et les composables du sous-arbre suivent.
|
|
63
|
+
*/
|
|
64
|
+
export declare const nodefonyClientKey: InjectionKey<RealtimeClient>;
|
|
65
|
+
/** Réglages du plugin — l'un des deux au moins doit être donné. */
|
|
66
|
+
export interface NodefonyVueOptions {
|
|
67
|
+
/**
|
|
68
|
+
* Adresse du serveur temps réel — la voie SIMPLE. Le plugin fabrique la
|
|
69
|
+
* socket partagée pour cette URL et la connecte lui-même.
|
|
70
|
+
*
|
|
71
|
+
* Deux consommateurs qui donnent la même URL obtiennent la MÊME socket
|
|
72
|
+
* ({@link RealtimeClient.shared}), donc une seule connexion réseau.
|
|
73
|
+
*/
|
|
74
|
+
url?: string;
|
|
75
|
+
/**
|
|
76
|
+
* Socket déjà construite — la voie AVANCÉE, quand l'application possède son
|
|
77
|
+
* cycle de connexion. Fournie, elle l'emporte sur `url` et le plugin ne
|
|
78
|
+
* touche pas au cycle : ni `connect`, ni `disconnect`.
|
|
79
|
+
*/
|
|
80
|
+
client?: RealtimeClient;
|
|
81
|
+
}
|
|
82
|
+
/**
|
|
83
|
+
* Le plugin — à installer une fois, sur l'application.
|
|
84
|
+
*
|
|
85
|
+
* Il fait exactement deux choses : fournir la socket au sous-arbre, et lancer
|
|
86
|
+
* la connexion. Il n'en coupe aucune : la connexion appartient à la PAGE, pas
|
|
87
|
+
* à un composant, et `disconnect()` tranche les requêtes en vol des autres
|
|
88
|
+
* consommateurs de la même socket partagée.
|
|
89
|
+
*
|
|
90
|
+
* @throws si ni `url` ni `client` n'est fourni — l'adresse dépend de
|
|
91
|
+
* l'application, et le framework n'en devine aucune (règle du socle : une
|
|
92
|
+
* adresse devinée marche en développement et se trompe en production).
|
|
93
|
+
*
|
|
94
|
+
* @example
|
|
95
|
+
* ```ts
|
|
96
|
+
* createApp(App).use(nodefonyVue, { url: "/api/live/realtime" }).mount("#app");
|
|
97
|
+
* ```
|
|
98
|
+
*/
|
|
99
|
+
export declare const nodefonyVue: Plugin<[NodefonyVueOptions]>;
|
|
100
|
+
/**
|
|
101
|
+
* `useNodefony()` — la socket brute (canaux, journal, statistiques…). Tête de
|
|
102
|
+
* gondole et échappatoire pour les cas avancés ; pour de l'état réactif,
|
|
103
|
+
* prendre les composables dédiés ci-dessous.
|
|
104
|
+
*
|
|
105
|
+
* @throws si le plugin n'est pas installé. Le socle REFUSE de deviner une
|
|
106
|
+
* adresse : retomber ici sur une socket partagée fabriquée à la volée
|
|
107
|
+
* donnerait une page qui marche en développement et parle au mauvais hôte
|
|
108
|
+
* en production — mieux vaut une erreur au premier rendu.
|
|
109
|
+
*/
|
|
110
|
+
export declare function useNodefony(): RealtimeClient;
|
|
111
|
+
/**
|
|
112
|
+
* `useNodefonyState()` — l'état de la connexion (`"connected"`,
|
|
113
|
+
* `"reconnecting"`, …), tenu à jour. Branché sur la porte publique `onState`,
|
|
114
|
+
* jamais sur le nom de l'événement local, qui n'a pas à sortir du client.
|
|
115
|
+
*/
|
|
116
|
+
export declare function useNodefonyState(): Readonly<Ref<RealtimeState>>;
|
|
117
|
+
/**
|
|
118
|
+
* `useNodefonyIdentity()` — l'**identité résolue** de la connexion, annoncée
|
|
119
|
+
* par le serveur au `realtime:welcome` (`authenticated`, `roles`,
|
|
120
|
+
* `userIdentifier`, `scopes`). `null` tant qu'aucun welcome n'est arrivé ; une
|
|
121
|
+
* fois reçu, un visiteur anonyme a `authenticated: false`. Brique du gating
|
|
122
|
+
* front : `authenticated: false` → écran de connexion, **sans** appeler
|
|
123
|
+
* `/auth/me`.
|
|
124
|
+
*/
|
|
125
|
+
export declare function useNodefonyIdentity(): Readonly<Ref<RealtimeIdentity | null>>;
|
|
126
|
+
/**
|
|
127
|
+
* `useNodefonyChannel()` — s'abonne à un canal pub/sub : `onMessage` est appelé
|
|
128
|
+
* à chaque message. Le socle apparie `subscribe`/`unsubscribe` côté serveur
|
|
129
|
+
* (ref-comptés) et rejoue l'abonnement à chaque reconnexion.
|
|
130
|
+
*
|
|
131
|
+
* Le canal accepte une `ref` ou une fonction : l'abonnement suit alors la
|
|
132
|
+
* valeur, en libérant l'ancien avant de prendre le nouveau.
|
|
133
|
+
*/
|
|
134
|
+
export declare function useNodefonyChannel(channel: MaybeRefOrGetter<string>, onMessage: (payload: unknown) => void): void;
|
|
135
|
+
/**
|
|
136
|
+
* `useNodefonyChannelData()` — la **dernière valeur** reçue sur un canal (le
|
|
137
|
+
* cas le plus courant : la dernière mesure d'un flux d'état). `null` tant que
|
|
138
|
+
* rien n'est arrivé.
|
|
139
|
+
*/
|
|
140
|
+
export declare function useNodefonyChannelData<T = unknown>(channel: MaybeRefOrGetter<string>, initial?: T | null): Readonly<Ref<T | null>>;
|
|
141
|
+
/** Réglages adaptatifs (la cadence désirée se passe à part, en argument). */
|
|
142
|
+
export type AdaptiveChannelOptions = Omit<BindAdaptiveOptions, "intervalMs" | "onRate">;
|
|
143
|
+
/** Résultat de {@link useNodefonyAdaptiveChannelData} : valeur + cadence réelle. */
|
|
144
|
+
export interface AdaptiveChannelData<T> {
|
|
145
|
+
/** Dernière valeur reçue, `null` tant que rien n'est arrivé. */
|
|
146
|
+
data: Readonly<Ref<T | null>>;
|
|
147
|
+
/** Cadence effective (ms) — bouge avec l'AIMD, à afficher en badge. */
|
|
148
|
+
intervalMs: Readonly<Ref<number>>;
|
|
149
|
+
}
|
|
150
|
+
/**
|
|
151
|
+
* `useNodefonyAdaptiveChannel()` — comme {@link useNodefonyChannel}, mais en
|
|
152
|
+
* **cadence adaptative** (AIMD piloté par le client) : la cadence recule sous
|
|
153
|
+
* famine puis remonte quand c'est sain, sans rien changer au serveur. Renvoie
|
|
154
|
+
* la cadence effective, à afficher.
|
|
155
|
+
*
|
|
156
|
+
* Réservé aux canaux d'ÉTAT (latest-wins) : décimer un canal d'événements perd
|
|
157
|
+
* des messages.
|
|
158
|
+
*
|
|
159
|
+
* Le ré-abonnement suit {@link adaptiveRebindKey} — la MÊME clé que les trois
|
|
160
|
+
* autres liaisons, pour que les quatre rebranchent aux mêmes instants.
|
|
161
|
+
*/
|
|
162
|
+
export declare function useNodefonyAdaptiveChannel(base: MaybeRefOrGetter<string>, onMessage: (payload: unknown) => void, desiredMs: MaybeRefOrGetter<number>, options?: AdaptiveChannelOptions): Readonly<Ref<number>>;
|
|
163
|
+
/**
|
|
164
|
+
* `useNodefonyAdaptiveChannelData()` — comme {@link useNodefonyChannelData},
|
|
165
|
+
* mais en cadence adaptative. Mince surcouche de
|
|
166
|
+
* {@link useNodefonyAdaptiveChannel} : garde la dernière valeur et rend la
|
|
167
|
+
* cadence effective. Réservé aux canaux d'ÉTAT.
|
|
168
|
+
*/
|
|
169
|
+
export declare function useNodefonyAdaptiveChannelData<T = unknown>(base: MaybeRefOrGetter<string>, desiredMs: MaybeRefOrGetter<number>, options?: AdaptiveChannelOptions): AdaptiveChannelData<T>;
|
|
170
|
+
/**
|
|
171
|
+
* Statistiques observées d'un canal, telles que le client les calcule.
|
|
172
|
+
*
|
|
173
|
+
* Alias du contrat isomorphe {@link MessageStats} : une copie locale de la
|
|
174
|
+
* forme aurait divergé le jour où le client ajoute un compteur.
|
|
175
|
+
*/
|
|
176
|
+
export type ChannelStatsSnapshot = MessageStats;
|
|
177
|
+
/**
|
|
178
|
+
* `useNodefonyChannelStats()` — statistiques vivantes d'un canal (débit, série
|
|
179
|
+
* pour un VU-mètre, total). La source est l'échantillonneur du client (1×/s) :
|
|
180
|
+
* aucune horloge n'est posée ici, et aucune trame n'est émise pour mesurer.
|
|
181
|
+
*/
|
|
182
|
+
export declare function useNodefonyChannelStats(channel: MaybeRefOrGetter<string>): Readonly<Ref<ChannelStatsSnapshot | null>>;
|
|
183
|
+
/**
|
|
184
|
+
* `useNodefonySnapshot()` — ce que la socket sait d'ELLE-MÊME : état, canaux
|
|
185
|
+
* tenus, trames reçues, trames perdues, dernière trame. Rafraîchi par
|
|
186
|
+
* l'échantillonneur déjà en place — aucune horloge de plus.
|
|
187
|
+
*
|
|
188
|
+
* La donnée est au socle, la **boîte qui l'affiche** reste à chaque front :
|
|
189
|
+
* publier un composant obligerait à en écrire un par framework de vue, et
|
|
190
|
+
* ferait entrer du DOM dans un module dont toute la valeur est de n'en avoir
|
|
191
|
+
* aucun.
|
|
192
|
+
*/
|
|
193
|
+
export declare function useNodefonySnapshot(): Readonly<Ref<SocketSnapshot | null>>;
|
|
194
|
+
/** Réglages de {@link useNodefonySyslog}. */
|
|
195
|
+
export interface UseSyslogOptions {
|
|
196
|
+
/** Taille max de l'anneau (les plus anciennes lignes sont évincées). Défaut 500. */
|
|
197
|
+
max?: number;
|
|
198
|
+
/** Ne garder que ces sévérités (ex. `["ERROR", "CRITIC"]`). Toutes par défaut. */
|
|
199
|
+
severities?: string[];
|
|
200
|
+
/** Canal source. Défaut `"nodefony:syslog"`. */
|
|
201
|
+
channel?: string;
|
|
202
|
+
}
|
|
203
|
+
/**
|
|
204
|
+
* `useNodefonySyslog()` — le flux du journal, prêt à afficher : anneau borné et
|
|
205
|
+
* filtre de sévérité. Le format **coalescé** du canal (`{ logs, dropped }`),
|
|
206
|
+
* l'entrée unique, la taille de l'anneau et le canal par défaut viennent du
|
|
207
|
+
* socle ({@link observeSyslog}) : ce composable n'en connaît aucun.
|
|
208
|
+
*/
|
|
209
|
+
export declare function useNodefonySyslog(options?: MaybeRefOrGetter<UseSyslogOptions>): Readonly<Ref<unknown[]>>;
|
|
210
|
+
/**
|
|
211
|
+
* `useNodefonyNotifications()` — le flux des **notices normalisées** du client :
|
|
212
|
+
* criticités qui cassent le temps réel (codes de fermeture RFC 6455
|
|
213
|
+
* interprétés), erreurs poussées par le serveur, rétablissement de connexion.
|
|
214
|
+
* `onNotice` est appelé pour CHAQUE notice → brancher un centre de
|
|
215
|
+
* notifications.
|
|
216
|
+
*
|
|
217
|
+
* À monter **une seule fois** (le shell de l'application), sans quoi la même
|
|
218
|
+
* notice s'affiche autant de fois qu'il y a d'appels.
|
|
219
|
+
*/
|
|
220
|
+
export declare function useNodefonyNotifications(onNotice: (notice: NodefonyNotice) => void): void;
|
|
221
|
+
/** Réglages de {@link useNodefonyNoticeLog}. */
|
|
222
|
+
export interface UseNoticeLogOptions {
|
|
223
|
+
/** Taille max de l'anneau (les plus anciennes notices sont évincées). Défaut 50. */
|
|
224
|
+
max?: number;
|
|
225
|
+
/** Ne garder que ces sources (ex. `["realtime"]`). Toutes par défaut. */
|
|
226
|
+
sources?: NodefonyNotice["source"][];
|
|
227
|
+
}
|
|
228
|
+
/**
|
|
229
|
+
* `useNodefonyNoticeLog()` — l'anneau borné des dernières notices, filtrable
|
|
230
|
+
* par source : un historique léger des criticités, distinct des notifications
|
|
231
|
+
* éphémères. La taille de l'anneau et le filtrage viennent du socle
|
|
232
|
+
* ({@link observeNoticeLog}).
|
|
233
|
+
*/
|
|
234
|
+
export declare function useNodefonyNoticeLog(options?: MaybeRefOrGetter<UseNoticeLogOptions>): Readonly<Ref<NodefonyNotice[]>>;
|