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,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;
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import type { ILogDriver } from "./ILogDriver.js";
|
|
2
|
+
import type { FetchLike } from "../httpFetch.js";
|
|
3
|
+
export interface LokiLogDriverOptions {
|
|
4
|
+
/** Base URL de Loki, ex. `http://127.0.0.1:3100`. */
|
|
5
|
+
url: string;
|
|
6
|
+
/** Labels de sélecteur de base (mêmes que le transport). Défaut `{ app: "nodefony" }`. */
|
|
7
|
+
labels?: Record<string, string>;
|
|
8
|
+
/** Tenant multi-tenancy → header `X-Scope-OrgID`. */
|
|
9
|
+
tenantId?: string;
|
|
10
|
+
/** Headers HTTP additionnels. */
|
|
11
|
+
headers?: Record<string, string>;
|
|
12
|
+
/**
|
|
13
|
+
* Budget de scan : nombre max de lignes RAPATRIÉES de Loki avant filtrage local
|
|
14
|
+
* (chemin admin FROID, anti-OOM). Défaut 1000. La pagination fine (`limit`/`offset`)
|
|
15
|
+
* est appliquée APRÈS par {@link filterPdus} sur ce sous-ensemble.
|
|
16
|
+
*/
|
|
17
|
+
maxScanLines?: number;
|
|
18
|
+
/**
|
|
19
|
+
* Fenêtre temporelle par défaut quand `from`/`to` sont absents (ms avant `now`).
|
|
20
|
+
* Loki EXIGE un intervalle borné. Défaut 24 h.
|
|
21
|
+
*/
|
|
22
|
+
defaultLookbackMs?: number;
|
|
23
|
+
/** Timeout de la query (ms). Défaut 8000. */
|
|
24
|
+
timeoutMs?: number;
|
|
25
|
+
/** Implémentation `fetch` (tests / proxy). Défaut : `fetch` global. */
|
|
26
|
+
fetchImpl?: FetchLike;
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Driver `loki` du Log Backplane (LB.4) — relit les logs dans **Grafana Loki** via
|
|
30
|
+
* LogQL (`GET /loki/api/v1/query_range`). **Adaptateur, pas moteur** : Loki BORNE le
|
|
31
|
+
* rapatriement (sélecteur de labels + fenêtre temporelle + grep + budget de lignes),
|
|
32
|
+
* puis {@link filterPdus} est l'**autorité finale** sur le sous-ensemble rapatrié →
|
|
33
|
+
* sémantique EXACTEMENT identique aux drivers `memory`/`file` (inclusion insensible à
|
|
34
|
+
* la casse, ordering `uid`, pagination). Une logique, N façades.
|
|
35
|
+
*
|
|
36
|
+
* Chaque ligne Loki est le record wire JSON écrit par {@link LokiTransport} → `JSON.parse`
|
|
37
|
+
* + {@link coerceRecord} (lignes corrompues ignorées). Chemin **FROID** (admin/debug),
|
|
38
|
+
* jamais dans le pipeline requête. Loki injoignable / requête invalide → `throw` explicite
|
|
39
|
+
* (≠ `file` absent : une infra de logs prod en panne DOIT être visible, pas masquée).
|
|
40
|
+
*
|
|
41
|
+
* @param options - URL Loki + labels + budgets.
|
|
42
|
+
* @returns un `ILogDriver` `loki` queryable (Node-only).
|
|
43
|
+
*/
|
|
44
|
+
export declare function createLokiLogDriver(options: LokiLogDriverOptions): ILogDriver;
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import type { ILogDriver, IPduLike } from "./ILogDriver.js";
|
|
2
|
+
/**
|
|
3
|
+
* Driver `memory` (LB.1) — le **ring buffer du Syslog EST le stockage**. Aucun
|
|
4
|
+
* write dédié : le ring est alimenté par `Syslog.pushStack` sur le hot path. Le
|
|
5
|
+
* driver n'ajoute que la **relecture** (`query`) = {@link filterPdus} sur un
|
|
6
|
+
* snapshot du ring.
|
|
7
|
+
*
|
|
8
|
+
* Défaut en développement : volatile (perdu au restart), borné (`maxStack`), mais
|
|
9
|
+
* **0 dépendance, isomorphe** (pas de `node:*` → utilisable côté navigateur plus
|
|
10
|
+
* tard pour un Log Backplane front). Pour persister/agréger en prod → drivers
|
|
11
|
+
* `file` (LB.2) / `elastic`-`loki` (LB.4).
|
|
12
|
+
*
|
|
13
|
+
* La **source** est injectée (provider `() => IPduLike[]`, comme `Pdu.requestIdProvider`)
|
|
14
|
+
* → le driver ne dépend pas de `Syslog` ni du `Kernel` (le wiring fournit
|
|
15
|
+
* `() => kernel.syslog.ringStack`). Découplé + testable avec un tableau en dur.
|
|
16
|
+
*
|
|
17
|
+
* @param source - fournit le snapshot courant des Pdu (ex. `() => syslog.ringStack`).
|
|
18
|
+
* @returns un `ILogDriver` `memory` queryable.
|
|
19
|
+
*/
|
|
20
|
+
export declare function createMemoryLogDriver(source: () => IPduLike[]): ILogDriver;
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import type { ILogDriver } from "./ILogDriver.js";
|
|
2
|
+
import type { FetchLike } from "../httpFetch.js";
|
|
3
|
+
export interface OpenSearchLogDriverOptions {
|
|
4
|
+
/** Base URL d'OpenSearch, ex. `http://127.0.0.1:9200`. */
|
|
5
|
+
url: string;
|
|
6
|
+
/** Index interrogé (défaut `nodefony-logs`). Doit matcher le transport. */
|
|
7
|
+
index?: string;
|
|
8
|
+
/** Utilisateur (auth basic) — prod avec plugin sécurité activé. */
|
|
9
|
+
username?: string;
|
|
10
|
+
/** Mot de passe (auth basic). */
|
|
11
|
+
password?: string;
|
|
12
|
+
/** Headers HTTP additionnels. */
|
|
13
|
+
headers?: Record<string, string>;
|
|
14
|
+
/**
|
|
15
|
+
* Budget de scan : nombre max de documents RAPATRIÉS (`size`) avant filtrage local
|
|
16
|
+
* (chemin admin FROID, anti-OOM). Défaut 1000. La pagination fine est ensuite
|
|
17
|
+
* appliquée par {@link filterPdus}.
|
|
18
|
+
*/
|
|
19
|
+
maxHits?: number;
|
|
20
|
+
/** Timeout de la query (ms). Défaut 8000. */
|
|
21
|
+
timeoutMs?: number;
|
|
22
|
+
/** Implémentation `fetch` (tests / proxy). Défaut : `fetch` global. */
|
|
23
|
+
fetchImpl?: FetchLike;
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Driver `opensearch` du Log Backplane (LB.4) — relit les logs dans **OpenSearch**
|
|
27
|
+
* via `POST /{index}/_search` (Query DSL). **Adaptateur, pas moteur** : OpenSearch
|
|
28
|
+
* borne le rapatriement (range sur `timeStamp` + `sort` desc + budget `size`), puis
|
|
29
|
+
* {@link filterPdus} est l'**autorité finale** sur le sous-ensemble → sémantique
|
|
30
|
+
* identique aux drivers `memory`/`file`. Une logique, N façades.
|
|
31
|
+
*
|
|
32
|
+
* Chaque `_source` est le record wire indexé par {@link OpenSearchTransport} →
|
|
33
|
+
* {@link coerceRecord} (documents non conformes ignorés). Chemin **FROID** (admin/debug).
|
|
34
|
+
* Index encore absent (404 `index_not_found`) → résultat VIDE (normal : aucun log
|
|
35
|
+
* indexé). Vraie panne (réseau, 5xx) → `throw` explicite (infra de logs prod visible).
|
|
36
|
+
*
|
|
37
|
+
* @param options - URL OpenSearch + index + budget.
|
|
38
|
+
* @returns un `ILogDriver` `opensearch` queryable (Node-only).
|
|
39
|
+
*/
|
|
40
|
+
export declare function createOpenSearchLogDriver(options: OpenSearchLogDriverOptions): ILogDriver;
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Résout le driver de relecture EFFECTIF depuis la valeur demandée, le mode de
|
|
3
|
+
* lancement et les destinations distantes déclarées. La sentinelle `"auto"`
|
|
4
|
+
* (défaut du framework) S'ADAPTE :
|
|
5
|
+
* 1. une destination distante déclarée (URL loki/opensearch — infra logs) impose
|
|
6
|
+
* son driver : l'URL ⇒ le driver, un seul knob. Les DEUX déclarées sans choix
|
|
7
|
+
* explicite = throw (fail-loud : pas d'arbitrage silencieux entre deux
|
|
8
|
+
* destinations de relecture) ;
|
|
9
|
+
* 2. sinon un worker de cluster (process forké) relit via `cluster-file` — vue
|
|
10
|
+
* UNIFIÉE agrégeant les JSONL de tous les workers — là où `memory` (ring
|
|
11
|
+
* per-worker) ne montrerait qu'un worker ; un mono-process reste sur
|
|
12
|
+
* `memory` (0 I/O).
|
|
13
|
+
*
|
|
14
|
+
* On n'intervient QUE sur le défaut : toute valeur EXPLICITE (`memory`, `file`,
|
|
15
|
+
* `loki`, …) est une surcharge de l'opérateur → respectée telle quelle, jamais
|
|
16
|
+
* réécrite (principe de moindre surprise, 12-factor).
|
|
17
|
+
*
|
|
18
|
+
* @param requested - `log.queryDriver` résolu (config app/env) ; `undefined` ou
|
|
19
|
+
* `"auto"` = laisser le framework décider.
|
|
20
|
+
* @param isWorker - process forké d'un cluster (`cluster.isWorker`).
|
|
21
|
+
* @param urls - URLs des destinations distantes déclarées (config `log.loki`/
|
|
22
|
+
* `log.opensearch`, montées depuis l'infra logs).
|
|
23
|
+
* @returns nom du driver de relecture à activer + monter.
|
|
24
|
+
* @throws Error si les deux URLs sont déclarées sans `queryDriver` explicite.
|
|
25
|
+
*/
|
|
26
|
+
export declare function resolveQueryDriver(requested: string | undefined, isWorker: boolean, urls?: {
|
|
27
|
+
loki?: string;
|
|
28
|
+
opensearch?: string;
|
|
29
|
+
}): string;
|
|
30
|
+
/**
|
|
31
|
+
* Enregistre les fabriques des drivers NATIFS du Log Backplane dans le
|
|
32
|
+
* {@link registerLogDriverFactory registre de fabriques}. Idempotent (appelé à chaque
|
|
33
|
+
* `initializeLog`, court-circuité après la 1ʳᵉ fois). C'est ICI — pas dans le Kernel —
|
|
34
|
+
* que vit la connaissance « nom → comment construire ce driver ». Le Kernel ne fait que
|
|
35
|
+
* résoudre + brancher, sans aucun `if (name === …)`.
|
|
36
|
+
*
|
|
37
|
+
* - `memory` : relit le ring buffer (aucun transport — alimenté par `Syslog`).
|
|
38
|
+
* - `file` / `cluster-file` : relisent un/des JSONL ; écrivent via un `FileTransport`
|
|
39
|
+
* partagé (même `writeKey` = chemin → branché 1× même si les deux sont montés).
|
|
40
|
+
* - `loki` / `opensearch` : push HTTP batché (transport) + relecture via leur API
|
|
41
|
+
* (driver) ; `null` si l'URL n'est pas configurée (→ fallback `memory` côté Kernel).
|
|
42
|
+
*/
|
|
43
|
+
export declare function registerBuiltinLogDrivers(): void;
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { type ILogQueryCriteria, type ILogQueryResult, type IPduLike } from "./ILogDriver.js";
|
|
2
|
+
/**
|
|
3
|
+
* Filtre PUR d'un tableau de Pdu selon des critères — **0 I/O, 0 état, testable
|
|
4
|
+
* sans serveur**. C'est LA logique de filtrage du Log Backplane, réutilisée par le
|
|
5
|
+
* driver `memory` (sur `syslog.ringStack`), le futur driver `file` (sur les lignes
|
|
6
|
+
* relues) et la future commande CLI `syslog:filter`. Une logique, trois façades.
|
|
7
|
+
*
|
|
8
|
+
* Critères combinés en **AND** (cf {@link ILogQueryCriteria}). Résultat trié du
|
|
9
|
+
* plus **RÉCENT** au plus ancien (l'entrée naturelle d'un viewer de logs), puis
|
|
10
|
+
* `offset`/`limit` appliqués. `total` = nombre de matchs AVANT pagination.
|
|
11
|
+
*
|
|
12
|
+
* Perf : scan linéaire O(N) sur un ring borné (≤ `maxStack`, ~100-1000). Chemin
|
|
13
|
+
* FROID (admin/debug) → jamais dans le pipeline requête. La sérialisation
|
|
14
|
+
* (Pdu→{@link ILogRecord}) n'est faite que sur la **fenêtre renvoyée**, pas sur
|
|
15
|
+
* tous les matchs.
|
|
16
|
+
*
|
|
17
|
+
* @param pdus - snapshot de Pdu (ex. `syslog.ringStack`, ordre FIFO oldest→newest).
|
|
18
|
+
* @param criteria - critères de filtrage (tous optionnels).
|
|
19
|
+
* @returns enregistrements récents d'abord + total + flag de troncature.
|
|
20
|
+
*/
|
|
21
|
+
export declare function filterPdus(pdus: IPduLike[], criteria?: ILogQueryCriteria): ILogQueryResult;
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
import type { ILogDriver, IPduLike } from "./ILogDriver.js";
|
|
2
|
+
import type { ITransport } from "../../types/ITransport.js";
|
|
3
|
+
/**
|
|
4
|
+
* Enregistre (ou remplace) un driver par son nom. Si aucun driver actif n'est
|
|
5
|
+
* encore défini, le premier enregistré devient actif (défaut sain).
|
|
6
|
+
*
|
|
7
|
+
* @param driver - instance `ILogDriver` (porte son propre `name`).
|
|
8
|
+
*/
|
|
9
|
+
export declare function registerLogDriver(driver: ILogDriver): void;
|
|
10
|
+
/**
|
|
11
|
+
* Sélectionne le driver actif par nom (relecture des logs).
|
|
12
|
+
*
|
|
13
|
+
* @param name - nom d'un driver enregistré.
|
|
14
|
+
* @returns le driver activé.
|
|
15
|
+
* @throws si le nom est inconnu (jamais activer un driver fantôme silencieusement).
|
|
16
|
+
*/
|
|
17
|
+
export declare function setActiveLogDriver(name: string): ILogDriver;
|
|
18
|
+
/** Driver actif (relecture), ou `null` si aucun n'est encore enregistré/câblé. */
|
|
19
|
+
export declare function getActiveLogDriver(): ILogDriver | null;
|
|
20
|
+
/**
|
|
21
|
+
* Récupère un driver ENREGISTRÉ par son nom SANS l'activer — pour le sonder
|
|
22
|
+
* (`probe`) ou l'introspecter avant un switch. `undefined` si non enregistré.
|
|
23
|
+
*/
|
|
24
|
+
export declare function getLogDriver(name: string): ILogDriver | undefined;
|
|
25
|
+
/** Liste des drivers enregistrés (introspection Studio / tests / data-plane). */
|
|
26
|
+
export declare function listLogDrivers(): {
|
|
27
|
+
name: string;
|
|
28
|
+
capabilities: ILogDriver["capabilities"];
|
|
29
|
+
}[];
|
|
30
|
+
/**
|
|
31
|
+
* Sous-ensemble de `config.log` lu par les fabriques — évite une dépendance des
|
|
32
|
+
* drivers au type complet du Kernel (qui, lui, importe les drivers).
|
|
33
|
+
*/
|
|
34
|
+
export interface ILogConfigLike {
|
|
35
|
+
queryFile?: {
|
|
36
|
+
path?: string;
|
|
37
|
+
maxScanBytes?: number;
|
|
38
|
+
};
|
|
39
|
+
loki?: {
|
|
40
|
+
url: string;
|
|
41
|
+
labels?: Record<string, string>;
|
|
42
|
+
tenantId?: string;
|
|
43
|
+
batchSize?: number;
|
|
44
|
+
flushIntervalMs?: number;
|
|
45
|
+
maxQueue?: number;
|
|
46
|
+
maxScanLines?: number;
|
|
47
|
+
};
|
|
48
|
+
opensearch?: {
|
|
49
|
+
url: string;
|
|
50
|
+
index?: string;
|
|
51
|
+
username?: string;
|
|
52
|
+
password?: string;
|
|
53
|
+
batchSize?: number;
|
|
54
|
+
flushIntervalMs?: number;
|
|
55
|
+
maxQueue?: number;
|
|
56
|
+
maxHits?: number;
|
|
57
|
+
};
|
|
58
|
+
}
|
|
59
|
+
/** Contexte passé à une fabrique de driver (tout ce qu'il faut pour se construire). */
|
|
60
|
+
export interface ILogDriverContext {
|
|
61
|
+
/** Config `log` de l'app (sous-ensemble lu par les fabriques). */
|
|
62
|
+
logCfg: ILogConfigLike | undefined;
|
|
63
|
+
/** Environnement courant (`development` | `production` | …). */
|
|
64
|
+
environment: string;
|
|
65
|
+
/** Répertoire ABSOLU des fichiers de log. */
|
|
66
|
+
logDir: string;
|
|
67
|
+
/** PID du process courant (nom de fichier par worker). */
|
|
68
|
+
pid: number;
|
|
69
|
+
/** Fournit le ring buffer courant à la demande (driver `memory`, lazy). */
|
|
70
|
+
getRingStack: () => IPduLike[];
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* Ce qu'une fabrique retourne : le driver de RELECTURE + (optionnel) le transport
|
|
74
|
+
* d'ÉCRITURE à brancher. `writeKey` déduplique le transport quand plusieurs drivers
|
|
75
|
+
* partagent la même destination d'écriture (ex. `file` ↔ `cluster-file` = même JSONL).
|
|
76
|
+
*/
|
|
77
|
+
export interface ILogDriverMount {
|
|
78
|
+
driver: ILogDriver;
|
|
79
|
+
transport?: ITransport;
|
|
80
|
+
writeKey?: string;
|
|
81
|
+
}
|
|
82
|
+
/** Fabrique d'un driver. Retourne `null` si la config est insuffisante (ex. URL absente). */
|
|
83
|
+
export type ILogDriverFactory = (ctx: ILogDriverContext) => ILogDriverMount | null;
|
|
84
|
+
/**
|
|
85
|
+
* Enregistre (ou remplace) la fabrique d'un driver par son nom.
|
|
86
|
+
*
|
|
87
|
+
* @param name - nom du driver (`"loki"`, `"opensearch"`, ou custom userland).
|
|
88
|
+
* @param factory - construit le driver + son transport à partir du contexte.
|
|
89
|
+
*/
|
|
90
|
+
export declare function registerLogDriverFactory(name: string, factory: ILogDriverFactory): void;
|
|
91
|
+
/** Récupère la fabrique d'un driver, ou `undefined` si non enregistrée. */
|
|
92
|
+
export declare function getLogDriverFactory(name: string): ILogDriverFactory | undefined;
|
|
93
|
+
/** Liste les noms de drivers ayant une fabrique (introspection Studio / CLI). */
|
|
94
|
+
export declare function listLogDriverFactories(): string[];
|
|
95
|
+
/**
|
|
96
|
+
* Réinitialise le registre (tests uniquement — isole l'état module-level entre
|
|
97
|
+
* cas). Hors tests, le registre vit pour la durée du process. Les FABRIQUES ne sont
|
|
98
|
+
* PAS effacées (elles sont enregistrées 1× au boot, idempotent).
|
|
99
|
+
*/
|
|
100
|
+
export declare function _resetLogDriverRegistry(): void;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/** Index OpenSearch par défaut des logs Nodefony (write transport ↔ read driver). */
|
|
2
|
+
export declare const DEFAULT_OPENSEARCH_INDEX = "nodefony-logs";
|
|
3
|
+
/**
|
|
4
|
+
* Construit l'en-tête `Authorization: Basic …` si un utilisateur est fourni — sinon
|
|
5
|
+
* objet vide (dev = plugin sécurité désactivé, HTTP sans auth). Node-only (`Buffer`).
|
|
6
|
+
*
|
|
7
|
+
* @param username - utilisateur (absent → pas d'auth).
|
|
8
|
+
* @param password - mot de passe.
|
|
9
|
+
* @returns en-tête prêt à étaler, ou `{}`.
|
|
10
|
+
*/
|
|
11
|
+
export declare function basicAuthHeader(username?: string, password?: string): Record<string, string>;
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import type { IPduLike } from "./ILogDriver.js";
|
|
2
|
+
import type { LogProtocol } from "./pduProtocol.js";
|
|
3
|
+
/**
|
|
4
|
+
* **Étape logique du cycle de vie d'une requête / connexion** — identifiant
|
|
5
|
+
* STABLE (clé de filtre côté back ET clé de mapping libellé/couleur côté front).
|
|
6
|
+
*
|
|
7
|
+
* Les logs DEBUG du pipeline portent des noms d'events bruts (`onRequest`,
|
|
8
|
+
* `onRequestEnd`, `onSend`…) peu parlants, et dont l'ordre d'apparition n'est pas
|
|
9
|
+
* l'ordre intuitif (`onRequestEnd` = corps reçu, donc TÔT pour un GET malgré le
|
|
10
|
+
* mot « End »). Chaque event est ici mappé vers une étape nommée — la base d'un
|
|
11
|
+
* filtre fiable (≠ recherche texte, qui matchait par erreur les URL contenant le
|
|
12
|
+
* marqueur) et d'une lecture « je comprends où en est la requête ».
|
|
13
|
+
*/
|
|
14
|
+
export type FlowStepId = "request-in" | "body-received" | "route-matched" | "kernel-dispatch" | "response" | "request-end" | "finish" | "ws-open" | "ws-message" | "ws-close" | "session" | "session-saved";
|
|
15
|
+
/**
|
|
16
|
+
* Métadonnée **structurelle** d'une étape (jamais de présentation : libellé FR et
|
|
17
|
+
* couleur vivent côté front, qui mappe l'`id`). `order` = rang logique dans le
|
|
18
|
+
* cycle de SON protocole ; `protocol` = où l'étape apparaît (`"both"` = session).
|
|
19
|
+
*/
|
|
20
|
+
export interface FlowStepMeta {
|
|
21
|
+
/** Rang logique dans le cycle (tri du sélecteur d'étapes). */
|
|
22
|
+
order: number;
|
|
23
|
+
/** Protocole d'appartenance — pilote le sélecteur adaptatif côté Studio. */
|
|
24
|
+
protocol: LogProtocol | "both";
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Table des étapes — **source unique** de l'ordre et de l'appartenance protocole,
|
|
28
|
+
* partagée back (filtre) et front (sélecteur groupé HTTP / WebSocket / Commun).
|
|
29
|
+
*/
|
|
30
|
+
export declare const FLOW_STEPS: Record<FlowStepId, FlowStepMeta>;
|
|
31
|
+
/**
|
|
32
|
+
* Entrée minimale pour classer une étape — seuls `msgid`, `payload` et `msg`
|
|
33
|
+
* comptent. Un `Pdu`, un {@link IPduLike} (msg requis) ET un record wire relu
|
|
34
|
+
* (`ILogRecord` / miroir front, `msg` optionnel) la satisfont structurellement
|
|
35
|
+
* → la classification est utilisable des deux côtés de la frontière isomorphe.
|
|
36
|
+
*/
|
|
37
|
+
export type FlowClassifiable = Pick<IPduLike, "msgid" | "payload"> & {
|
|
38
|
+
msg?: string;
|
|
39
|
+
};
|
|
40
|
+
/**
|
|
41
|
+
* Classe un Pdu en **étape de cycle de vie** (id stable) ou `null` si la ligne
|
|
42
|
+
* n'est pas un jalon (log applicatif libre, ex. `DB-DEMO`). PUR, isomorphe,
|
|
43
|
+
* 0 état — réutilisé par le filtre back ({@link filterPdus}) ET le rendu front
|
|
44
|
+
* (colonne « Étape » + sélecteur) → une SEULE logique, jamais de divergence.
|
|
45
|
+
*
|
|
46
|
+
* Priorité aux marqueurs de **contenu** (route, session, cookie, bilan), puis au
|
|
47
|
+
* **nom d'event** générique. `onRequest` est désambiguïsé par le msgid `KERNEL`
|
|
48
|
+
* (dispatch kernel) vs contexte (entrée de requête).
|
|
49
|
+
*
|
|
50
|
+
* @param pdu - enregistrement (Pdu ou {@link IPduLike}, relu d'un JSONL aussi).
|
|
51
|
+
* @returns l'`id` d'étape, ou `null` pour un log hors cycle.
|
|
52
|
+
*/
|
|
53
|
+
export declare function pduFlowStep(pdu: FlowClassifiable): FlowStepId | null;
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import type { IPduLike } from "./ILogDriver.js";
|
|
2
|
+
/** Protocole d'origine d'un enregistrement de log. */
|
|
3
|
+
export type LogProtocol = "ws" | "http";
|
|
4
|
+
/**
|
|
5
|
+
* Classe un Pdu par **protocole** d'origine — `"ws"` ou `"http"` — de façon PURE,
|
|
6
|
+
* isomorphe et 0-alloc (une seule comparaison de `msgid`).
|
|
7
|
+
*
|
|
8
|
+
* Critère FIABLE : tout log émis dans un contexte WebSocket porte le msgid
|
|
9
|
+
* `"WEBSOCKET CONTEXT"` (forcé par défaut dans `WebsocketContext.log()`). Tout le
|
|
10
|
+
* reste du pipeline (req/http2/router/firewall/kernel/applicatif) est classé HTTP.
|
|
11
|
+
* Une seule logique → front et back ne divergent plus (le front filtrait par texte,
|
|
12
|
+
* source de faux positifs).
|
|
13
|
+
*
|
|
14
|
+
* Seul `msgid` compte → accepte un `Pdu`, un {@link IPduLike} ou un record wire
|
|
15
|
+
* relu (`ILogRecord` / miroir front) indifféremment.
|
|
16
|
+
*
|
|
17
|
+
* @param pdu - tout objet portant un `msgid`.
|
|
18
|
+
* @returns `"ws"` si le log provient d'une socket WebSocket, sinon `"http"`.
|
|
19
|
+
*/
|
|
20
|
+
export declare function pduProtocol(pdu: Pick<IPduLike, "msgid">): LogProtocol;
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Petit contrat `fetch` minimal et INJECTABLE, partagé par les destinations HTTP du
|
|
3
|
+
* Log Backplane (drivers `loki`/`opensearch` côté query, transports côté write).
|
|
4
|
+
*
|
|
5
|
+
* Pourquoi un type local plutôt que le `fetch` global de `lib.dom` : le workspace core
|
|
6
|
+
* est isomorphe (Node + browser) et ne tire pas `lib.dom`. On déclare donc la surface
|
|
7
|
+
* STRICTE qu'on utilise (statut + `text`/`json`), ce qui rend aussi le code **testable
|
|
8
|
+
* sans réseau** : un test passe un `FetchLike` factice. 0 `any`, narrowing explicite.
|
|
9
|
+
*/
|
|
10
|
+
export interface FetchResponseLike {
|
|
11
|
+
/** `true` si statut 2xx. */
|
|
12
|
+
readonly ok: boolean;
|
|
13
|
+
/** Code HTTP (utile pour distinguer 404 « pas encore d'index » d'une vraie panne). */
|
|
14
|
+
readonly status: number;
|
|
15
|
+
text(): Promise<string>;
|
|
16
|
+
json(): Promise<unknown>;
|
|
17
|
+
}
|
|
18
|
+
/** Sous-ensemble des options `RequestInit` réellement utilisées. */
|
|
19
|
+
export interface FetchInitLike {
|
|
20
|
+
method?: string;
|
|
21
|
+
headers?: Record<string, string>;
|
|
22
|
+
body?: string;
|
|
23
|
+
signal?: AbortSignal;
|
|
24
|
+
}
|
|
25
|
+
/** Signature compatible `globalThis.fetch` (surface réduite). */
|
|
26
|
+
export type FetchLike = (url: string, init?: FetchInitLike) => Promise<FetchResponseLike>;
|
|
27
|
+
/**
|
|
28
|
+
* Résout l'implémentation `fetch` à utiliser : celle passée explicitement (tests,
|
|
29
|
+
* proxy custom), sinon le `fetch` global (Node ≥ 18). Lève si aucune n'est dispo
|
|
30
|
+
* (jamais d'échec silencieux d'un driver prod mal configuré).
|
|
31
|
+
*
|
|
32
|
+
* @param custom - implémentation explicite (prioritaire).
|
|
33
|
+
* @returns un `FetchLike` garanti non nul.
|
|
34
|
+
* @throws si aucun `fetch` n'est disponible.
|
|
35
|
+
*/
|
|
36
|
+
export declare function resolveFetch(custom?: FetchLike): FetchLike;
|
|
37
|
+
/**
|
|
38
|
+
* `fetch` borné par un timeout (via `AbortController`) — un push/lecture de logs ne
|
|
39
|
+
* doit JAMAIS bloquer indéfiniment sur une destination injoignable. `timeoutMs ≤ 0`
|
|
40
|
+
* = pas de timeout.
|
|
41
|
+
*
|
|
42
|
+
* @param fetchImpl - implémentation `FetchLike`.
|
|
43
|
+
* @param url - URL cible.
|
|
44
|
+
* @param init - options de requête.
|
|
45
|
+
* @param timeoutMs - délai max avant `abort`.
|
|
46
|
+
* @returns la réponse, ou rejette (timeout/réseau).
|
|
47
|
+
*/
|
|
48
|
+
export declare function fetchWithTimeout(fetchImpl: FetchLike, url: string, init: FetchInitLike, timeoutMs: number): Promise<FetchResponseLike>;
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Gate de couleur ANSI des logs — résolue **une seule fois au boot**
|
|
3
|
+
* ({@link Kernel.initializeLog}), pas par log.
|
|
4
|
+
*
|
|
5
|
+
* Problème résolu : plusieurs loggers (Kernel, Context, request-logger…) bakent
|
|
6
|
+
* des codes ANSI DANS le `payload`/`msgid` d'un `Pdu` (ex. `clc.cyan("URL")`).
|
|
7
|
+
* Ces Pdu voyagent jusqu'au `FileTransport` JSON → l'ANSI polluait le `.jsonl`
|
|
8
|
+
* queryable (et le pipe stdout → collecteur en prod). Stripper à l'écriture =
|
|
9
|
+
* un `.replace()` PAR log sur le hot path (refusé, coût). À la place, un flag
|
|
10
|
+
* global gate la couleur à la SOURCE.
|
|
11
|
+
*
|
|
12
|
+
* Critère (résolu au boot) : couleur ON si `stdout` est un **TTY** (un humain
|
|
13
|
+
* regarde un terminal) ; OFF si pipe/fichier/redirection (prod, collecteur,
|
|
14
|
+
* conteneur) → payloads bruts → JSONL et stdout propres.
|
|
15
|
+
*
|
|
16
|
+
* Perf : les slots ci-dessous sont MUTÉS une fois (`setLogColor`) — le hot path
|
|
17
|
+
* appelle directement `identity` (OFF) ou la fonction `cli-color` (ON), **sans
|
|
18
|
+
* test booléen par log**. Reproduire `clc.x.y` ici garde le chaînage hors du
|
|
19
|
+
* hot path (une fonction figée, pas une chaîne de getters par appel).
|
|
20
|
+
*
|
|
21
|
+
* Isomorphe : au navigateur, `cli-color` est remplacé par le shim identité
|
|
22
|
+
* (alias rollup) → ON ≡ OFF, jamais d'ANSI quoi qu'il arrive.
|
|
23
|
+
*/
|
|
24
|
+
type ColorFn = (s: string | number) => string;
|
|
25
|
+
/** Combinaisons `cli-color` réellement utilisées par les loggers Nodefony. */
|
|
26
|
+
declare const KEYS: readonly ["cyan", "magenta", "red", "green", "yellow", "blue", "blackBright", "yellowBold", "redBold", "cyanBold", "blueBrightBold", "cyanBgBlue", "cyanBgBlack"];
|
|
27
|
+
type ColorKey = (typeof KEYS)[number];
|
|
28
|
+
type ColorMap = Record<ColorKey, ColorFn>;
|
|
29
|
+
/**
|
|
30
|
+
* Helper de couleur partagé — référence STABLE, propriétés mutées par
|
|
31
|
+
* {@link setLogColor}. Les call-sites font `logColor.cyan("URL")`.
|
|
32
|
+
*/
|
|
33
|
+
export declare const logColor: ColorMap;
|
|
34
|
+
/**
|
|
35
|
+
* Active/désactive la couleur ANSI des logs — à appeler **une fois au boot**.
|
|
36
|
+
* Swap les fonctions des slots ; aucun coût par log ensuite.
|
|
37
|
+
*
|
|
38
|
+
* @param enabled - `true` = couleur (TTY interactif), `false` = brut (pipe/fichier).
|
|
39
|
+
*/
|
|
40
|
+
export declare function setLogColor(enabled: boolean): void;
|
|
41
|
+
/** `true` si la couleur ANSI est active (gate boot-time). */
|
|
42
|
+
export declare function isLogColorEnabled(): boolean;
|
|
43
|
+
/**
|
|
44
|
+
* Applique les conventions d'environnement couleur PAR-DESSUS un signal `isTTY`
|
|
45
|
+
* **déjà résolu** — au boot on passe `Kernel.isTTY` (qui honore déjà `NF_NO_TTY`),
|
|
46
|
+
* sans re-lire `process.stdout`. Conventions :
|
|
47
|
+
*
|
|
48
|
+
* - **`NO_COLOR`** (no-color.org) : présent **et non vide** → couleur OFF, quelle
|
|
49
|
+
* que soit sa valeur. Priorité absolue (refus explicite de l'utilisateur).
|
|
50
|
+
* - **`FORCE_COLOR`** : non vide et ≠ `"0"` → couleur ON (override pipe/non-TTY,
|
|
51
|
+
* ex. CI qui veut des logs colorés capturés).
|
|
52
|
+
* - sinon → couleur = `isTTY`.
|
|
53
|
+
*
|
|
54
|
+
* Isomorphe : `env` lu via `globalThis.process` (navigateur : pas de `process`).
|
|
55
|
+
*
|
|
56
|
+
* @param isTTY - signal TTY déjà résolu (ex. `Kernel.isTTY`, NF_NO_TTY-aware).
|
|
57
|
+
*/
|
|
58
|
+
export declare function resolveColorEnabled(isTTY: boolean): boolean;
|
|
59
|
+
export {};
|