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,482 @@
|
|
|
1
|
+
import Pdu, { Severity, ModuleName, Msgid, Message, Pci } from "./Pdu.js";
|
|
2
|
+
import { DebugType, EnvironmentType } from "../types/globals.js";
|
|
3
|
+
import Event from "../Event.js";
|
|
4
|
+
import { ISyslog } from "../types/ISyslog.js";
|
|
5
|
+
import type { ITransport } from "../types/ITransport.js";
|
|
6
|
+
export interface ILogSink {
|
|
7
|
+
readonly name: string;
|
|
8
|
+
/** Chunk classe-stdout (déjà coalescé par tick). NON bloquant si possible. */
|
|
9
|
+
writeOut(s: string): void;
|
|
10
|
+
/** Chunk classe-stderr (sévérité ≤ 3 — durable). */
|
|
11
|
+
writeErr(s: string): void;
|
|
12
|
+
/** Flush SYNCHRONE de secours (process `exit`). Best-effort, JAMAIS async. */
|
|
13
|
+
flushSync(): void;
|
|
14
|
+
/** Libère les ressources (fd…). Idempotent. */
|
|
15
|
+
close(): void;
|
|
16
|
+
}
|
|
17
|
+
/** Sink `/dev/null` : noop total (bench — mesure du plafond sans I/O de log). */
|
|
18
|
+
export declare const NULL_LOG_SINK: ILogSink;
|
|
19
|
+
type Operator = "<" | ">" | "<=" | ">=" | "==" | "===" | "!=" | "RegExp";
|
|
20
|
+
type Condition = "&&" | "||";
|
|
21
|
+
type Data = any;
|
|
22
|
+
export interface ConditionSetting {
|
|
23
|
+
operator?: Operator;
|
|
24
|
+
data: Data;
|
|
25
|
+
[key: string]: Data;
|
|
26
|
+
}
|
|
27
|
+
export interface conditionsInterface {
|
|
28
|
+
severity?: ConditionSetting;
|
|
29
|
+
msgid?: ConditionSetting;
|
|
30
|
+
data?: Data;
|
|
31
|
+
checkConditions?: Condition;
|
|
32
|
+
[key: string]: Data;
|
|
33
|
+
}
|
|
34
|
+
export interface SyslogDefaultSettings {
|
|
35
|
+
moduleName?: ModuleName;
|
|
36
|
+
msgid?: Msgid;
|
|
37
|
+
maxStack?: number;
|
|
38
|
+
rateLimit?: boolean | number;
|
|
39
|
+
burstLimit?: number;
|
|
40
|
+
defaultSeverity?: Severity;
|
|
41
|
+
checkConditions?: Condition;
|
|
42
|
+
async?: boolean;
|
|
43
|
+
overrideConsole?: boolean;
|
|
44
|
+
}
|
|
45
|
+
export interface WrapperResult {
|
|
46
|
+
logger: (...args: unknown[]) => void;
|
|
47
|
+
text: string;
|
|
48
|
+
}
|
|
49
|
+
export type CallbackFunction = (pdu: Pdu) => void;
|
|
50
|
+
/**
|
|
51
|
+
* Hub central de logs structurés de Nodefony — conforme RFC 5424.
|
|
52
|
+
*
|
|
53
|
+
* Reçoit des {@link Pdu} via {@link log}, les pousse dans un ring buffer (`CircularBuffer`,
|
|
54
|
+
* O(1)), applique les filtres ({@link listenWithConditions}), et fire `"onLog"` pour les
|
|
55
|
+
* transports branchés (console, file, JSON, SSE Studio).
|
|
56
|
+
*
|
|
57
|
+
* Hérite d'{@link Event} (EventEmitter étendu) → toute brique du framework peut s'abonner.
|
|
58
|
+
*
|
|
59
|
+
* Modes :
|
|
60
|
+
* - **rateLimit** + **burstLimit** : protection anti-flood (ex: boucle qui log 10k/s)
|
|
61
|
+
* - **async** : fire `"onLog"` sur next tick (libère le hot path) ou inline
|
|
62
|
+
* - **overrideConsole** : intercepte `console.log/warn/error/debug/info` → pipe vers Syslog
|
|
63
|
+
*
|
|
64
|
+
* @example
|
|
65
|
+
* ```ts
|
|
66
|
+
* const syslog = new Syslog({ moduleName: "MyApp", defaultSeverity: "INFO" });
|
|
67
|
+
* syslog.on("onLog", (pdu: Pdu) => console.log(pdu.toString()));
|
|
68
|
+
* syslog.log("hello world", "INFO");
|
|
69
|
+
* ```
|
|
70
|
+
*
|
|
71
|
+
* @remarks Utilisé par défaut par chaque {@link Service} via `this.syslog`. Pour les apps
|
|
72
|
+
* complexes, partager un Syslog unique entre services évite de dupliquer les buffers.
|
|
73
|
+
*/
|
|
74
|
+
declare class Syslog extends Event implements ISyslog {
|
|
75
|
+
settings: SyslogDefaultSettings;
|
|
76
|
+
private _ring;
|
|
77
|
+
burstPrinted: number;
|
|
78
|
+
missed: number;
|
|
79
|
+
invalid: number;
|
|
80
|
+
valid: number;
|
|
81
|
+
/**
|
|
82
|
+
* Cumul monotone des logs de classe ERREUR (sévérité 0–3 : ERROR/CRITIC/ALERT/EMERGENCY)
|
|
83
|
+
* acceptés depuis la construction. Compteur entier O(1) bumpé dans le seul point de passage
|
|
84
|
+
* {@link pushStack} (0 alloc) → sonde « erreurs par worker » de la santé
|
|
85
|
+
* pod (cf `IInstanceErrorHealth`). Débit dérivé côté lecteur (delta `errorTotal`/ts).
|
|
86
|
+
*/
|
|
87
|
+
errorTotal: number;
|
|
88
|
+
/** Sous-ensemble CRITIQUE (sévérité 0–2 : CRITIC/ALERT/EMERGENCY). Cumul monotone. */
|
|
89
|
+
criticTotal: number;
|
|
90
|
+
start: number;
|
|
91
|
+
private _async;
|
|
92
|
+
private _transports;
|
|
93
|
+
/**
|
|
94
|
+
* Transports désactivés à chaud (par `setTransportEnabled`) — **lazy** (`null`
|
|
95
|
+
* tant qu'aucun toggle). Garde la réf hors de `_transports` pour pouvoir la
|
|
96
|
+
* remonter. Un transport désactivé est PHYSIQUEMENT retiré de la boucle de fire
|
|
97
|
+
* → **0 surcoût hot path** (pas de test `enabled` par log). Outil dev/diagnostic.
|
|
98
|
+
*/
|
|
99
|
+
private _disabledTransports;
|
|
100
|
+
/**
|
|
101
|
+
* Stockage des Pdu dans le ring buffer (relecture mémoire). `false` = on ne
|
|
102
|
+
* garde plus rien en mémoire (l'Explorer « mémoire » et `buffered` tombent à 0)
|
|
103
|
+
* — outil avancé perf/mémoire (très haut débit). Les compteurs (valid/error)
|
|
104
|
+
* restent comptés. Coût hot path : un test booléen par log.
|
|
105
|
+
*/
|
|
106
|
+
private _ringEnabled;
|
|
107
|
+
/**
|
|
108
|
+
* Diffusion temps réel active (bus `nodefony:syslog` Studio). `false` = le pont de
|
|
109
|
+
* diffusion (`createSyslogBridge`) n'accumule ni ne publie rien → l'onglet Live se
|
|
110
|
+
* grise. N'affecte NI l'écriture (transports/sink) NI la relecture. Coupé = on
|
|
111
|
+
* cesse juste de POUSSER en live ; les logs continuent d'être générés et écrits.
|
|
112
|
+
*/
|
|
113
|
+
private _streamEnabled;
|
|
114
|
+
/**
|
|
115
|
+
* T2 (profil delta vs Express) — gate d'ENTRÉE par sévérité. `null` (défaut) =
|
|
116
|
+
* pas de gate (comportement historique : tout Pdu est créé + poussé au ring,
|
|
117
|
+
* le filtrage de sévérité n'a lieu qu'au LISTENER d'impression — un DEBUG en
|
|
118
|
+
* prod coûtait createPDU + pushStack pour rien, ~1,7 % du profil CPU/req).
|
|
119
|
+
* Valeur numérique N = un log de sévérité STRICTEMENT supérieure à N (moins
|
|
120
|
+
* grave) est court-circuité AVANT toute allocation. Posé par {@link init}
|
|
121
|
+
* (production sans debug → 6 = DEBUG gaté), **re-résoluble à chaud** via
|
|
122
|
+
* {@link setSeverityThreshold} (vision « audit à chaud » : élever la
|
|
123
|
+
* verbosité prod sur une fenêtre bornée sans redémarrer). Une sévérité
|
|
124
|
+
* INCONNUE (`-1`) passe toujours — c'est `createPDU` qui la refuse, et le
|
|
125
|
+
* gate ne doit pas transformer une erreur d'usage en silence. Compteur
|
|
126
|
+
* {@link gated} pour l'introspection.
|
|
127
|
+
*/
|
|
128
|
+
private _severityThreshold;
|
|
129
|
+
/** Pdu singleton retourné par un log gaté (contrat `log(): Pdu`, 1 alloc lazy). */
|
|
130
|
+
private _gatedPdu;
|
|
131
|
+
/** Nombre de logs court-circuités par le gate de sévérité (T2). */
|
|
132
|
+
gated: number;
|
|
133
|
+
/**
|
|
134
|
+
* Overrides de seuil PAR MODULE (clé = `msgid` du Pdu, qui vaut le nom du
|
|
135
|
+
* Service émetteur par défaut — cf `Service.log`). `null` par défaut → 0 coût
|
|
136
|
+
* sur le hot path tant qu'aucun debug ciblé n'est actif (RÈGLE perf : lazy
|
|
137
|
+
* null). Posé à chaud par {@link setDebugOverride} (env `NF__DEBUG` au boot,
|
|
138
|
+
* endpoint admin, toggle Studio) : élève la verbosité d'UN module sous gate
|
|
139
|
+
* prod sans toucher les autres ni redémarrer. Consulté dans {@link log} APRÈS
|
|
140
|
+
* le gate global, AVANT toute allocation.
|
|
141
|
+
*/
|
|
142
|
+
private _debugOverrides;
|
|
143
|
+
/**
|
|
144
|
+
* Timers d'auto-extinction des overrides (clé = même `msgid`). `null` tant
|
|
145
|
+
* qu'aucun override temporisé n'est armé. Garde-fou anti-oubli : un debug
|
|
146
|
+
* ciblé ne reste JAMAIS allumé indéfiniment. Timers `unref` (ne tiennent pas
|
|
147
|
+
* la boucle d'événements en vie) + purgés par {@link clearDebugOverride} /
|
|
148
|
+
* {@link reset} (RÈGLE perf : pas de timer sans cleanup).
|
|
149
|
+
*/
|
|
150
|
+
private _debugOverrideTimers;
|
|
151
|
+
/**
|
|
152
|
+
* Échéance (epoch ms) de chaque override TEMPORISÉ — pour exposer le « s'éteint
|
|
153
|
+
* dans X » au panneau Studio. `null` tant qu'aucun override temporisé ; un
|
|
154
|
+
* override permanent (sans ttl) n'y figure pas. Nettoyé en miroir du timer.
|
|
155
|
+
*/
|
|
156
|
+
private _debugOverrideExpiry;
|
|
157
|
+
/**
|
|
158
|
+
* Construit le Syslog avec settings (merge default + override user).
|
|
159
|
+
*
|
|
160
|
+
* @param settings - config (`moduleName`, `maxStack`, `rateLimit`, `burstLimit`,
|
|
161
|
+
* `defaultSeverity`, `async`, `overrideConsole`).
|
|
162
|
+
*/
|
|
163
|
+
constructor(settings?: SyslogDefaultSettings);
|
|
164
|
+
get ringStack(): Pdu[];
|
|
165
|
+
/**
|
|
166
|
+
* Capacité MAX du ring buffer (`settings.maxStack`) — nombre de Pdu que la
|
|
167
|
+
* mémoire peut relire. `ringStack.length` = remplissage courant ; ce getter =
|
|
168
|
+
* le plafond. Lecture seule, 0 allocation (introspection data plane Studio).
|
|
169
|
+
*/
|
|
170
|
+
get bufferCapacity(): number;
|
|
171
|
+
/** `true` si les Pdu sont stockés dans le ring (relecture mémoire active). */
|
|
172
|
+
get ringEnabled(): boolean;
|
|
173
|
+
/**
|
|
174
|
+
* Active/désactive le stockage mémoire (ring) à chaud — outil avancé perf/mémoire.
|
|
175
|
+
* Désactiver = l'Explorer « mémoire » et `buffered` retombent à 0 (les logs ne
|
|
176
|
+
* sont plus gardés en RAM) ; les compteurs santé restent comptés. Vide le ring
|
|
177
|
+
* quand on coupe (libère la RAM tout de suite). Idempotent.
|
|
178
|
+
*
|
|
179
|
+
* @param enabled - `true` = stocker dans le ring ; `false` = ne plus stocker.
|
|
180
|
+
* @returns `true` si l'état a changé.
|
|
181
|
+
*/
|
|
182
|
+
setRingEnabled(enabled: boolean): boolean;
|
|
183
|
+
/** `true` si la diffusion temps réel (`nodefony:syslog`) est active. */
|
|
184
|
+
get streamEnabled(): boolean;
|
|
185
|
+
/**
|
|
186
|
+
* Active/désactive la diffusion temps réel (bus `nodefony:syslog`) à chaud. Coupé =
|
|
187
|
+
* le pont Studio cesse de pousser des frames (onglet Live grisé) ; l'écriture et la
|
|
188
|
+
* relecture froide ne sont PAS touchées. Idempotent.
|
|
189
|
+
*
|
|
190
|
+
* @param enabled - `true` = diffuser ; `false` = couper la diffusion live.
|
|
191
|
+
* @returns `true` si l'état a changé.
|
|
192
|
+
*/
|
|
193
|
+
setStreamEnabled(enabled: boolean): boolean;
|
|
194
|
+
/**
|
|
195
|
+
* Redimensionne le ring buffer (capacité de relecture en mémoire) en
|
|
196
|
+
* **préservant** les Pdu déjà présents (tronqués aux `max` plus récents si on
|
|
197
|
+
* rétrécit). Destiné au **boot uniquement** (lu depuis `config.log.maxStack`) —
|
|
198
|
+
* recrée le buffer, donc à ne pas appeler dans le hot path. No-op si `max`
|
|
199
|
+
* invalide ou inchangé.
|
|
200
|
+
*
|
|
201
|
+
* @param max - nouvelle capacité (> 0).
|
|
202
|
+
*/
|
|
203
|
+
setMaxStack(max: number): void;
|
|
204
|
+
static formatDebug(debug: DebugType): DebugType;
|
|
205
|
+
/**
|
|
206
|
+
* Initialise le pipeline Syslog selon environnement + debug. Idempotent — purge les
|
|
207
|
+
* listeners `"onLog"` existants avant d'en ajouter un.
|
|
208
|
+
*
|
|
209
|
+
* @param environment - `"development"` / `"production"` / `"test"`.
|
|
210
|
+
* @param debug - active sévérité DEBUG (`+7`).
|
|
211
|
+
* @param options - conditions de filtrage Syslog custom (override des conditions par env).
|
|
212
|
+
*/
|
|
213
|
+
init(environment: EnvironmentType, debug?: DebugType, options?: conditionsInterface): void;
|
|
214
|
+
/**
|
|
215
|
+
* T2 — résout une sévérité (nom ou numérique) en valeur RFC 5424. Inconnue →
|
|
216
|
+
* `-1` (passe toujours le gate : fail-open, `createPDU` jettera comme avant).
|
|
217
|
+
* `sysLogSeverity` est un enum numérique TS → la reverse-map mêle string et
|
|
218
|
+
* number, d'où le narrowing explicite.
|
|
219
|
+
*/
|
|
220
|
+
private static toSeverityNumber;
|
|
221
|
+
/**
|
|
222
|
+
* Valide STRICTEMENT une sévérité d'ENTRÉE (nom RFC 5424 ou numérique 0-7) →
|
|
223
|
+
* numéro, ou `null` si invalide. Pour les surfaces d'entrée (endpoint admin,
|
|
224
|
+
* env) : un niveau inconnu doit être REJETÉ, jamais silencieusement
|
|
225
|
+
* réinterprété (≠ {@link toSeverityNumber}, fail-open `-1` pour le hot path).
|
|
226
|
+
*
|
|
227
|
+
* @param level - nom (`"DEBUG"`) ou numéro (`7` / `"7"`).
|
|
228
|
+
* @returns le numéro 0-7, ou `null` si hors plage / nom inconnu.
|
|
229
|
+
*/
|
|
230
|
+
static severityFromInput(level: string | number): number | null;
|
|
231
|
+
/**
|
|
232
|
+
* Parse une spec `NF__DEBUG` (env runtime) en directives de debug ciblé.
|
|
233
|
+
* Tokens séparés par virgule/espace :
|
|
234
|
+
* - `*` → debug GLOBAL (lève le gate de sévérité, tout passe) ;
|
|
235
|
+
* - `MODULE` → override `MODULE` à DEBUG ;
|
|
236
|
+
* - `MODULE:LEVEL` → override `MODULE` au niveau `LEVEL` (nom/numérique ;
|
|
237
|
+
* inconnu → DEBUG, tolérant : un typo d'env ne doit pas crasher le boot).
|
|
238
|
+
*
|
|
239
|
+
* Pur (statique, sans état) → testable seul ; appliqué par le Kernel au boot
|
|
240
|
+
* via {@link setSeverityThreshold} / {@link setDebugOverride}.
|
|
241
|
+
*
|
|
242
|
+
* @param spec - valeur brute de `NF__DEBUG` (ex. `"FIREWALL,SESSION:NOTICE"`).
|
|
243
|
+
* @returns `{ global, overrides }`.
|
|
244
|
+
*/
|
|
245
|
+
static parseDebugSpec(spec: string): {
|
|
246
|
+
global: boolean;
|
|
247
|
+
overrides: Array<{
|
|
248
|
+
module: string;
|
|
249
|
+
level: number;
|
|
250
|
+
}>;
|
|
251
|
+
};
|
|
252
|
+
/**
|
|
253
|
+
* T2 — règle (ou lève) le gate d'entrée par sévérité À CHAUD, sans reboot.
|
|
254
|
+
* `null` = plus de gate (tout est créé/poussé, comportement historique) ;
|
|
255
|
+
* `"DEBUG"`/7 = tout passe en restant gateable ; `"INFO"`/6 = défaut prod.
|
|
256
|
+
* Levier de la fenêtre « audit à chaud » : élever temporairement la
|
|
257
|
+
* verbosité prod puis restaurer.
|
|
258
|
+
*
|
|
259
|
+
* @param threshold - sévérité max acceptée (nom ou numérique RFC 5424), ou `null`.
|
|
260
|
+
*/
|
|
261
|
+
setSeverityThreshold(threshold: Severity | number | null): void;
|
|
262
|
+
/**
|
|
263
|
+
* T2 — un log de cette sévérité franchirait-il le gate d'entrée ? À utiliser
|
|
264
|
+
* aux call sites du hot path AVANT de construire un message coûteux
|
|
265
|
+
* (template string, JSON) — pattern L1 « ne jamais formater au-dessus du
|
|
266
|
+
* niveau actif ».
|
|
267
|
+
*
|
|
268
|
+
* @param severity - sévérité à tester (nom ou numérique).
|
|
269
|
+
* @returns `true` si un log de cette sévérité serait accepté.
|
|
270
|
+
*/
|
|
271
|
+
severityEnabled(severity: Severity | number): boolean;
|
|
272
|
+
/**
|
|
273
|
+
* Élève à chaud le seuil de verbosité d'UN module (debug ciblé), sans reboot et
|
|
274
|
+
* sans toucher aux autres modules. `module` = `msgid` du Pdu (par défaut le nom
|
|
275
|
+
* du Service émetteur, cf `Service.log`). Effet : tant que l'override est actif,
|
|
276
|
+
* un log de ce module passe le gate d'entrée jusqu'à `level` (ex. `"DEBUG"`)
|
|
277
|
+
* alors que le reste reste au seuil global (ex. `"INFO"` en prod).
|
|
278
|
+
*
|
|
279
|
+
* Garde-fou : si `ttlMs > 0`, l'override s'auto-éteint après ce délai (timer
|
|
280
|
+
* `unref`). (Re)poser le même module ré-arme proprement le timer. Sans gate
|
|
281
|
+
* global actif (`_severityThreshold === null`, ex. dev) l'override est sans
|
|
282
|
+
* effet — tout passe déjà.
|
|
283
|
+
*
|
|
284
|
+
* @param module - identité du module (`msgid` / nom du Service).
|
|
285
|
+
* @param level - sévérité max laissée passer pour ce module (nom ou numérique).
|
|
286
|
+
* @param ttlMs - durée de vie en ms (auto-extinction). Omis/≤0 = permanent (déconseillé en prod).
|
|
287
|
+
*/
|
|
288
|
+
setDebugOverride(module: string, level: Severity | number, ttlMs?: number): void;
|
|
289
|
+
/**
|
|
290
|
+
* Retire l'override de debug ciblé d'un module (et son timer d'auto-extinction).
|
|
291
|
+
* Retombe à `null` quand le dernier override part (RÈGLE perf : 0 coût hot path).
|
|
292
|
+
*
|
|
293
|
+
* @param module - identité du module (`msgid`).
|
|
294
|
+
* @returns `true` si un override existait et a été retiré.
|
|
295
|
+
*/
|
|
296
|
+
clearDebugOverride(module: string): boolean;
|
|
297
|
+
/** Retire TOUS les overrides de debug ciblé + leurs timers (retour à 0 coût). */
|
|
298
|
+
clearAllDebugOverrides(): void;
|
|
299
|
+
/**
|
|
300
|
+
* Snapshot des overrides de debug ciblé actifs (introspection — endpoint admin,
|
|
301
|
+
* toggle Studio). Cold path. `{}` si aucun.
|
|
302
|
+
*
|
|
303
|
+
* @returns map `module → seuil numérique` (copie, pas la structure interne).
|
|
304
|
+
*/
|
|
305
|
+
getDebugOverrides(): Record<string, number>;
|
|
306
|
+
/**
|
|
307
|
+
* Échéances (epoch ms) des overrides TEMPORISÉS (introspection — countdown
|
|
308
|
+
* Studio « s'éteint dans X »). `{}` si aucun ; un override permanent (sans ttl)
|
|
309
|
+
* n'y figure pas.
|
|
310
|
+
*
|
|
311
|
+
* @returns map `module → epoch ms d'extinction` (copie).
|
|
312
|
+
*/
|
|
313
|
+
getDebugOverrideExpiry(): Record<string, number>;
|
|
314
|
+
/** Annule + retire le timer d'auto-extinction d'un module (si présent). */
|
|
315
|
+
private clearOverrideTimer;
|
|
316
|
+
get async(): boolean;
|
|
317
|
+
set async(value: boolean);
|
|
318
|
+
/**
|
|
319
|
+
* Alias de {@link reset} — purge ring buffer + listeners.
|
|
320
|
+
*/
|
|
321
|
+
clean(): this;
|
|
322
|
+
/**
|
|
323
|
+
* Reset complet — vide le ring buffer ET retire tous les listeners.
|
|
324
|
+
*
|
|
325
|
+
* @returns `this` pour chaînage.
|
|
326
|
+
*/
|
|
327
|
+
reset(): this;
|
|
328
|
+
/**
|
|
329
|
+
* Vide uniquement le ring buffer (conserve les listeners attachés).
|
|
330
|
+
*/
|
|
331
|
+
clearLogStack(): void;
|
|
332
|
+
/**
|
|
333
|
+
* Push manuel d'un Pdu dans le ring buffer + incrémente compteur `valid`.
|
|
334
|
+
*
|
|
335
|
+
* @param pdu - Pdu à enregistrer.
|
|
336
|
+
* @returns nouvelle taille du ring buffer après push.
|
|
337
|
+
*/
|
|
338
|
+
pushStack(pdu: Pdu): number;
|
|
339
|
+
/**
|
|
340
|
+
* Crée un Pdu et le diffuse dans le pipeline (rate-limit → push → fire `"onLog"`).
|
|
341
|
+
*
|
|
342
|
+
* **Protection rate limit** : si `settings.rateLimit > 0`, ne fire `"onLog"` que pour les
|
|
343
|
+
* `burstLimit` premiers Pdu de la fenêtre. Les suivants incrémentent `missed`.
|
|
344
|
+
*
|
|
345
|
+
* **Mode async** : si `this.async === true`, fire `"onLog"` sur `setImmediate()` (libère
|
|
346
|
+
* le hot path du caller).
|
|
347
|
+
*
|
|
348
|
+
* @param payload - contenu (string, Error, objet — narrower côté lecteur).
|
|
349
|
+
* @param severity - sévérité RFC 5424 (`"INFO"`, `"ERROR"`, ...) ou numérique (6, 3, ...).
|
|
350
|
+
* @param msgid - catégorie de message (`"AUTH"`, `"ROUTER"`). Défaut = `settings.msgid`.
|
|
351
|
+
* @param msg - détail libre optionnel.
|
|
352
|
+
* @returns le `Pdu` créé (utile pour audit/tests).
|
|
353
|
+
*/
|
|
354
|
+
log(payload: Pci, severity?: Severity, msgid?: ModuleName, msg?: Message): Pdu;
|
|
355
|
+
getLogStack(start?: number, end?: number, condition?: conditionsInterface): Pdu[] | Pdu;
|
|
356
|
+
getLogs(conditions: conditionsInterface, stack?: Pdu[] | null): Pdu[];
|
|
357
|
+
logToJson(conditions: conditionsInterface, stack?: Pdu[] | null): string;
|
|
358
|
+
loadStack(stack: Pdu[] | string, doEvent?: boolean, beforeConditions?: ((pdu: Pdu, stackItem: Pdu) => void) | null): Pdu[];
|
|
359
|
+
filter(conditions: conditionsInterface, callback: CallbackFunction): void;
|
|
360
|
+
listenWithConditions(conditions: conditionsInterface, callback: CallbackFunction): void;
|
|
361
|
+
error(data: Pci): Pdu;
|
|
362
|
+
warn(data: Pci): Pdu;
|
|
363
|
+
info(data: Pci): Pdu;
|
|
364
|
+
debug(data: Pci): Pdu;
|
|
365
|
+
trace(data: Pci, ...args: unknown[]): Pdu;
|
|
366
|
+
print(...args: Pci[]): Pdu;
|
|
367
|
+
logMultiple(severity: Severity, ...args: Pci[]): Pdu;
|
|
368
|
+
addTransport(transport: ITransport): this;
|
|
369
|
+
removeTransport(transport: ITransport): this;
|
|
370
|
+
/**
|
|
371
|
+
* Nombre de transports d'écriture branchés (introspection — data plane Studio,
|
|
372
|
+
* tests d'idempotence). Lecture seule, 0 allocation.
|
|
373
|
+
*/
|
|
374
|
+
get transportCount(): number;
|
|
375
|
+
/**
|
|
376
|
+
* Liste polymorphe des transports d'écriture — chaque entrée porte le `name` de
|
|
377
|
+
* l'`ITransport` (`console`, `file`, `loki`, `syslog`…) et son état `enabled`.
|
|
378
|
+
* C'est l'axe **WRITE** du Log Backplane : l'écriture est un **fan-out** (1 log →
|
|
379
|
+
* N transports actifs), orthogonal à l'axe READ (1 driver queryable). Sert au data
|
|
380
|
+
* plane Studio pour afficher les vraies destinations (et non les inférer des drivers
|
|
381
|
+
* de relecture, ce qui masquait les transports write-only console/syslog/http).
|
|
382
|
+
*
|
|
383
|
+
* Inclut les transports désactivés à chaud (`enabled:false`) pour que l'UI puisse
|
|
384
|
+
* les ré-activer. Chemin FROID (introspection admin) : alloue à l'appel, jamais
|
|
385
|
+
* dans le hot path du log.
|
|
386
|
+
*
|
|
387
|
+
* @returns un tableau `{ name, enabled }` (montés `true` d'abord, puis désactivés).
|
|
388
|
+
*/
|
|
389
|
+
listTransports(): {
|
|
390
|
+
name: string;
|
|
391
|
+
enabled: boolean;
|
|
392
|
+
}[];
|
|
393
|
+
/**
|
|
394
|
+
* Active/désactive un transport d'écriture **à chaud, par nom** (outil dev /
|
|
395
|
+
* diagnostic — ex. couper la console pour un bench, ou remonter un transport).
|
|
396
|
+
* Désactiver = retirer le transport de la boucle de fire (réf gardée dans
|
|
397
|
+
* {@link _disabledTransports}) → **0 surcoût hot path**. Activer = le remonter.
|
|
398
|
+
*
|
|
399
|
+
* Réversible et idempotent : un toggle vers l'état déjà courant renvoie `false`.
|
|
400
|
+
* N'instancie RIEN : ne peut réactiver qu'un transport préalablement désactivé
|
|
401
|
+
* (un transport jamais monté — ex. `loki` sans URL — exige sa config, pas ce toggle).
|
|
402
|
+
*
|
|
403
|
+
* @param name - `ITransport.name` ciblé.
|
|
404
|
+
* @param enabled - `true` = remonter, `false` = retirer.
|
|
405
|
+
* @returns `true` si l'état a changé, `false` sinon (déjà dans l'état / introuvable).
|
|
406
|
+
*/
|
|
407
|
+
setTransportEnabled(name: string, enabled: boolean): boolean;
|
|
408
|
+
private _fireTransports;
|
|
409
|
+
private static readonly _nativeConsole;
|
|
410
|
+
private static _savedConsole;
|
|
411
|
+
/** Largeur fixe du champ `severityName` — couvre `WARNING` (7). */
|
|
412
|
+
private static readonly SEVERITY_WIDTH;
|
|
413
|
+
/** Largeur fixe du champ `msgid` — couvre 95% des cas, déborde proprement pour les longs. */
|
|
414
|
+
private static readonly MSGID_WIDTH;
|
|
415
|
+
static wrapper(pdu: Pdu): WrapperResult;
|
|
416
|
+
/**
|
|
417
|
+
* Transport console par défaut — formate un Pdu et l'écrit vers `process.stdout` ou
|
|
418
|
+
* `process.stderr` selon sévérité (ERROR+ vers stderr).
|
|
419
|
+
*
|
|
420
|
+
* Format : `HH:MM:SS.mmm SEVERITY MSGID : payload` avec coloration ANSI.
|
|
421
|
+
*
|
|
422
|
+
* @param pdu - Pdu à imprimer.
|
|
423
|
+
* @param pid - PID préfixé (vide en dev mono-process pour réduire le bruit).
|
|
424
|
+
* @returns le Pdu (chaînable).
|
|
425
|
+
*/
|
|
426
|
+
static normalizeLog(pdu: Pdu, pid?: string): Pdu;
|
|
427
|
+
static rawLog(pdu: Pdu, pid?: string): Pdu;
|
|
428
|
+
/**
|
|
429
|
+
* Mode de bufférisation de la sortie console — **process-global** (un seul
|
|
430
|
+
* `process.stdout`). Câblé par {@link Kernel.initializeLog} depuis `config.log.buffered`.
|
|
431
|
+
*
|
|
432
|
+
* - `"auto"` (défaut) : bufférise si stdout n'est PAS un TTY (pipe/fichier =
|
|
433
|
+
* prod/collecteur → débit) ; immédiat sur TTY (dev interactif → feedback + spinner).
|
|
434
|
+
* - `true` : toujours bufférisé (ex. bench dans un terminal).
|
|
435
|
+
* - `false` : jamais (ex. `tail -f` non bufférisé en debug prod).
|
|
436
|
+
*
|
|
437
|
+
* Bufférisé = coalesce les écritures d'un même tick en 1 `write()` (1 syscall).
|
|
438
|
+
* stderr (ERROR+) reste TOUJOURS immédiat. Flush les lignes en attente avant de switcher.
|
|
439
|
+
*
|
|
440
|
+
* @param mode - `true` | `false` | `"auto"`.
|
|
441
|
+
*/
|
|
442
|
+
static setOutputBuffering(mode: boolean | "auto"): void;
|
|
443
|
+
/** Vide immédiatement (synchrone) le buffer stdout en attente. Idempotent. */
|
|
444
|
+
static flushOutput(): void;
|
|
445
|
+
/**
|
|
446
|
+
* Bascule le DRIVER de sink (LB.W — où partent les lignes après coalescing).
|
|
447
|
+
* `null` → stdout (défaut isomorphe). Câblé par {@link Kernel.initializeLog}
|
|
448
|
+
* depuis `config.log.driver`. Flush + close l'ancien driver avant de switcher.
|
|
449
|
+
*
|
|
450
|
+
* @param sink - driver `ILogSink` (ex. `FileSink`, `NULL_LOG_SINK`) ou `null`.
|
|
451
|
+
*/
|
|
452
|
+
static setLogSink(sink: ILogSink | null): void;
|
|
453
|
+
/** Nom du driver de sink actif (`"stdout"` | `"null"` | `"file"` | custom). */
|
|
454
|
+
static get logSinkName(): string;
|
|
455
|
+
/** `true` si le sink texte écrit (non muté). Coupé = plus de console/fichier .log. */
|
|
456
|
+
static get sinkEnabled(): boolean;
|
|
457
|
+
/**
|
|
458
|
+
* Mute/démute le sink texte **à chaud, sans changer la config ni le driver**
|
|
459
|
+
* (outil dev/diagnostic — ex. couper la console en `npx nodefony dev`). Le nom
|
|
460
|
+
* du sink est préservé ; seul {@link sinkEnabled} bascule. Process-global (un seul
|
|
461
|
+
* sink texte par process). Idempotent.
|
|
462
|
+
*
|
|
463
|
+
* @param enabled - `true` = le sink écrit ; `false` = mute (rien n'est écrit).
|
|
464
|
+
* @returns `true` si l'état a changé.
|
|
465
|
+
*/
|
|
466
|
+
static setSinkEnabled(enabled: boolean): boolean;
|
|
467
|
+
/**
|
|
468
|
+
* Intercepte `console.log/warn/error/debug/info` → pipe vers le Syslog passé.
|
|
469
|
+
*
|
|
470
|
+
* **Side effect global** : modifie l'objet `console` du process. À utiliser avec parcimonie
|
|
471
|
+
* (un seul appel par process). {@link restoreConsole} restaure les méthodes originales.
|
|
472
|
+
*
|
|
473
|
+
* @param instance - Syslog cible (recevra tous les console.* du process).
|
|
474
|
+
*/
|
|
475
|
+
static overrideConsole(instance: Syslog): void;
|
|
476
|
+
/**
|
|
477
|
+
* Restaure `console.log/warn/error/debug/info` à leurs valeurs originales.
|
|
478
|
+
* Annule un {@link overrideConsole} précédent.
|
|
479
|
+
*/
|
|
480
|
+
static restoreConsole(): void;
|
|
481
|
+
}
|
|
482
|
+
export default Syslog;
|
|
@@ -0,0 +1,177 @@
|
|
|
1
|
+
import type { FlowStepId } from "./pduFlow.js";
|
|
2
|
+
/**
|
|
3
|
+
* Contrat du **Log Backplane** (axe DESTINATION queryable, LB.0).
|
|
4
|
+
*
|
|
5
|
+
* À NE PAS confondre avec {@link ILogSink} (LB.W) : `ILogSink` écrit la **ligne
|
|
6
|
+
* texte** déjà coalescée (`writeOut(s: string)`) vers stdout/fichier/null et ne
|
|
7
|
+
* voit jamais les Pdu structurés → incapable de relire/filtrer. `ILogDriver`, lui,
|
|
8
|
+
* est la **destination des Pdu structurés** : il sait les **stocker** (write) ET
|
|
9
|
+
* les **relire** (query). Les deux sont liés dans le même driver (cohérence
|
|
10
|
+
* « j'écris dans Elastic → je relis dans Elastic »).
|
|
11
|
+
*
|
|
12
|
+
* - `memory` (défaut dev) : le ring buffer `Syslog` EST le stockage → `query`
|
|
13
|
+
* = {@link filterPdus} sur `syslog.ringStack`. Aucun write dédié (le ring est
|
|
14
|
+
* alimenté par `Syslog.pushStack`).
|
|
15
|
+
* - `file` (JSONL, LB.2), `elastic`/`loki` (LB.4) : write = persistance des Pdu,
|
|
16
|
+
* query = scan / API externe. Drivers Node-only enregistrés à part.
|
|
17
|
+
*
|
|
18
|
+
* Le driver actif est sélectionné par {@link logDriverRegistry} (config/env, ou
|
|
19
|
+
* action de contrôle dev-only). Le **bus temps réel** (`nodefony:syslog`) reste
|
|
20
|
+
* indépendant : il diffuse les Pdu live quel que soit le driver (même non-queryable).
|
|
21
|
+
*/
|
|
22
|
+
export interface ILogDriver {
|
|
23
|
+
/** Nom unique du driver (`"memory"` | `"file"` | `"elastic"` | custom). */
|
|
24
|
+
readonly name: string;
|
|
25
|
+
/** Ce que le driver sait faire (pilote l'UI Studio + le contrat data-plane). */
|
|
26
|
+
readonly capabilities: ILogDriverCapabilities;
|
|
27
|
+
/**
|
|
28
|
+
* Interroge la destination — chemin **FROID** (admin/debug), `async`, **JAMAIS**
|
|
29
|
+
* dans le pipeline requête. Absent si `capabilities.query === false` (ex. `console`).
|
|
30
|
+
*
|
|
31
|
+
* @param criteria - critères de filtrage (tous optionnels, combinés en AND).
|
|
32
|
+
* @returns enregistrements (récents d'abord) + total avant pagination.
|
|
33
|
+
*/
|
|
34
|
+
query?(criteria: ILogQueryCriteria): Promise<ILogQueryResult>;
|
|
35
|
+
/**
|
|
36
|
+
* Sonde de SANTÉ de la destination (chemin FROID, admin) — « est-ce que la cible
|
|
37
|
+
* répond, en combien de temps, et quelques infos utiles ? ». Présent surtout sur
|
|
38
|
+
* les drivers DISTANTS (loki/opensearch) où la joignabilité n'est pas acquise ;
|
|
39
|
+
* absent sur les drivers locaux triviaux (memory). Ne `throw` JAMAIS : un échec se
|
|
40
|
+
* traduit par `{ ok:false, detail }` (l'admin doit voir la panne, pas un crash).
|
|
41
|
+
*
|
|
42
|
+
* @returns joignabilité + latence + infos (version, statut, nb d'entrées…).
|
|
43
|
+
*/
|
|
44
|
+
probe?(): Promise<ILogDriverProbe>;
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Résultat d'une {@link ILogDriver.probe} — santé d'une destination de logs.
|
|
48
|
+
* Affiché par Studio (badge joignable/latence + infos) ; jamais de credential.
|
|
49
|
+
*/
|
|
50
|
+
export interface ILogDriverProbe {
|
|
51
|
+
/** `true` si la destination répond correctement. */
|
|
52
|
+
ok: boolean;
|
|
53
|
+
/** Latence aller-retour de la sonde (ms). */
|
|
54
|
+
latencyMs: number;
|
|
55
|
+
/** Message d'erreur si `ok === false` (jamais de secret). */
|
|
56
|
+
detail?: string;
|
|
57
|
+
/** Infos utiles à afficher (version, statut cluster, nb d'entrées, endpoint…). */
|
|
58
|
+
info?: Record<string, string | number>;
|
|
59
|
+
}
|
|
60
|
+
/** Capacités déclarées d'un driver (introspection Studio + garde-fous endpoint). */
|
|
61
|
+
export interface ILogDriverCapabilities {
|
|
62
|
+
/** Le driver persiste les Pdu (≠ ring volatile). `memory` = false (volatile). */
|
|
63
|
+
readonly write: boolean;
|
|
64
|
+
/** Le driver expose `query()` (relecture filtrée). `console` = false. */
|
|
65
|
+
readonly query: boolean;
|
|
66
|
+
/** Le driver peut alimenter un flux temps réel (tap `onLog`). */
|
|
67
|
+
readonly stream: boolean;
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* Critères de requête — tous optionnels, combinés en **AND**. Vide = tout (borné
|
|
71
|
+
* par `limit`). Les comparaisons string sont insensibles à la casse. `requestId`
|
|
72
|
+
* matche **exactement** (trace full-stack ciblée d'UNE requête) ; `module`/`msgid`/
|
|
73
|
+
* `text` matchent par **inclusion**.
|
|
74
|
+
*/
|
|
75
|
+
export interface ILogQueryCriteria {
|
|
76
|
+
/** Corrélation log↔requête (ALS) — match EXACT. La clé de la trace full-stack. */
|
|
77
|
+
requestId?: string;
|
|
78
|
+
/** Nom(s) de sévérité RFC 5424 (`"ERROR"` ou `["ERROR","CRITIC"]`). Insensible casse. */
|
|
79
|
+
severity?: string | string[];
|
|
80
|
+
/** Nom de module/service — inclusion insensible à la casse. */
|
|
81
|
+
module?: string;
|
|
82
|
+
/** Catégorie de message (msgid) — inclusion insensible à la casse. */
|
|
83
|
+
msgid?: string;
|
|
84
|
+
/** Borne basse du `timeStamp` (epoch ms, inclus). */
|
|
85
|
+
from?: number;
|
|
86
|
+
/** Borne haute du `timeStamp` (epoch ms, inclus). */
|
|
87
|
+
to?: number;
|
|
88
|
+
/** Recherche plein-texte (payload string + msg + module + msgid). Insensible casse. */
|
|
89
|
+
text?: string;
|
|
90
|
+
/**
|
|
91
|
+
* Protocole d'origine du log :
|
|
92
|
+
* - `"ws"` : logs émis dans un contexte WebSocket (`msgid === "WEBSOCKET CONTEXT"`) ;
|
|
93
|
+
* - `"http"` : tout le reste du pipeline (requête HTTP, router, firewall, applicatif).
|
|
94
|
+
*
|
|
95
|
+
* Absent = les deux protocoles. Classification PURE, cf `pduProtocol`.
|
|
96
|
+
*/
|
|
97
|
+
protocol?: "ws" | "http";
|
|
98
|
+
/**
|
|
99
|
+
* Étape(s) du cycle de vie d'une requête/connexion — classification STRUCTURÉE
|
|
100
|
+
* (cf `pduFlowStep`), pas une recherche texte. Ex. `"ws-open"` ou
|
|
101
|
+
* `["request-in","route-matched"]`. Tableau = OU entre étapes ; combiné en AND
|
|
102
|
+
* avec les autres critères. Absent = toutes les étapes.
|
|
103
|
+
*/
|
|
104
|
+
flow?: FlowStepId | FlowStepId[];
|
|
105
|
+
/** Nombre max d'enregistrements renvoyés (le driver borne à un plafond sûr). */
|
|
106
|
+
limit?: number;
|
|
107
|
+
/** Décalage de pagination (depuis le plus récent). */
|
|
108
|
+
offset?: number;
|
|
109
|
+
/**
|
|
110
|
+
* Ordre chronologique des `rows` :
|
|
111
|
+
* - `"desc"` (DÉFAUT) : du plus RÉCENT au plus ancien (entrée naturelle d'un viewer) ;
|
|
112
|
+
* - `"asc"` : du plus ANCIEN au plus récent (lecture chronologique d'une trace).
|
|
113
|
+
*
|
|
114
|
+
* L'ordre s'appuie sur l'`uid` du Pdu (compteur monotone d'émission) → garantit
|
|
115
|
+
* la **chronologie exacte même à `timeStamp` égal** (plusieurs logs dans la même ms).
|
|
116
|
+
*/
|
|
117
|
+
order?: "asc" | "desc";
|
|
118
|
+
}
|
|
119
|
+
/**
|
|
120
|
+
* Forme **wire** d'un Pdu (isomorphe) — sérialisation stable partagée par TOUTES
|
|
121
|
+
* les façades (endpoint data-plane, canal `nodefony:syslog`, drivers). Le front
|
|
122
|
+
* réhydrate via `Object.assign(new Pdu(""), record)` → une seule logique de rendu.
|
|
123
|
+
* Produite par {@link pduToRecord}.
|
|
124
|
+
*/
|
|
125
|
+
export interface ILogRecord {
|
|
126
|
+
uid: number;
|
|
127
|
+
severity: number;
|
|
128
|
+
severityName: string;
|
|
129
|
+
moduleName: string;
|
|
130
|
+
msgid: string;
|
|
131
|
+
msg: string;
|
|
132
|
+
timeStamp: number;
|
|
133
|
+
/** PID émetteur (procid RFC 5424) — groupe par worker en cluster. */
|
|
134
|
+
pid: number;
|
|
135
|
+
/** Corrélation requête (ALS) si présent. `undefined` ignoré par `JSON.stringify`. */
|
|
136
|
+
requestId?: string;
|
|
137
|
+
/** Contenu brut (string/Error/objet). Narrower côté lecteur. */
|
|
138
|
+
payload: unknown;
|
|
139
|
+
}
|
|
140
|
+
/** Résultat d'une requête : enregistrements (récents d'abord) + méta de pagination. */
|
|
141
|
+
export interface ILogQueryResult {
|
|
142
|
+
/** Enregistrements du plus RÉCENT au plus ancien, après `offset`/`limit`. */
|
|
143
|
+
rows: ILogRecord[];
|
|
144
|
+
/** Nombre total d'enregistrements qui matchent les critères (avant pagination). */
|
|
145
|
+
total: number;
|
|
146
|
+
/** `true` s'il reste des résultats au-delà de la fenêtre renvoyée. */
|
|
147
|
+
truncated: boolean;
|
|
148
|
+
}
|
|
149
|
+
/**
|
|
150
|
+
* Sous-ensemble des champs d'un `Pdu` lus par {@link filterPdus} et
|
|
151
|
+
* {@link pduToRecord}. Permet de filtrer/projeter SANS instancier un `Pdu` — son
|
|
152
|
+
* constructeur incrémente un compteur d'`uid` et lit le `requestIdProvider`, donc
|
|
153
|
+
* effets de bord à proscrire lors d'une simple RELECTURE. Un `Pdu` le satisfait
|
|
154
|
+
* structurellement ; un enregistrement relu d'un fichier JSONL (driver `file`,
|
|
155
|
+
* LB.2) aussi → une SEULE logique de filtrage pour memory, file et le futur CLI.
|
|
156
|
+
*/
|
|
157
|
+
export interface IPduLike {
|
|
158
|
+
uid: number;
|
|
159
|
+
severity: number;
|
|
160
|
+
severityName: string;
|
|
161
|
+
moduleName: string;
|
|
162
|
+
msgid: string;
|
|
163
|
+
msg: string;
|
|
164
|
+
timeStamp: number;
|
|
165
|
+
pid: number;
|
|
166
|
+
payload: unknown;
|
|
167
|
+
requestId?: string;
|
|
168
|
+
}
|
|
169
|
+
/**
|
|
170
|
+
* Sérialise un Pdu en {@link ILogRecord} (forme wire). Source unique de la
|
|
171
|
+
* projection Pdu→wire : réutilisée par {@link filterPdus} (driver memory) ET par
|
|
172
|
+
* le producteur data-plane `syslog` (framework) — pas de shape dupliqué qui dérive.
|
|
173
|
+
*
|
|
174
|
+
* @param pdu - Pdu (instance ou objet structurellement compatible — {@link IPduLike}).
|
|
175
|
+
* @returns enregistrement plat sérialisable. `requestId` omis si absent.
|
|
176
|
+
*/
|
|
177
|
+
export declare function pduToRecord(pdu: IPduLike): ILogRecord;
|