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,114 @@
|
|
|
1
|
+
import { registerLogDriverFactory } from "./logDriverRegistry.js";
|
|
2
|
+
import { FileTransport } from "../transports/FileTransport.js";
|
|
3
|
+
import { LokiTransport } from "../transports/LokiTransport.js";
|
|
4
|
+
import { OpenSearchTransport } from "../transports/OpenSearchTransport.js";
|
|
5
|
+
import { createMemoryLogDriver } from "./MemoryLogDriver.js";
|
|
6
|
+
import { createFileLogDriver } from "./FileLogDriver.js";
|
|
7
|
+
import { createClusterFileLogDriver } from "./ClusterFileLogDriver.js";
|
|
8
|
+
import { createLokiLogDriver } from "./LokiLogDriver.js";
|
|
9
|
+
import { createOpenSearchLogDriver } from "./OpenSearchLogDriver.js";
|
|
10
|
+
import path from "node:path";
|
|
11
|
+
//#region src/syslog/drivers/builtinLogDrivers.ts
|
|
12
|
+
/** Chemin du JSONL queryable de CE worker (write↔read pour file/cluster-file). */
|
|
13
|
+
function jsonlPath(ctx) {
|
|
14
|
+
return ctx.logCfg?.queryFile?.path ?? path.join(ctx.logDir, `nodefony-${ctx.pid}.jsonl`);
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Résout le driver de relecture EFFECTIF depuis la valeur demandée, le mode de
|
|
18
|
+
* lancement et les destinations distantes déclarées. La sentinelle `"auto"`
|
|
19
|
+
* (défaut du framework) S'ADAPTE :
|
|
20
|
+
* 1. une destination distante déclarée (URL loki/opensearch — infra logs) impose
|
|
21
|
+
* son driver : l'URL ⇒ le driver, un seul knob. Les DEUX déclarées sans choix
|
|
22
|
+
* explicite = throw (fail-loud : pas d'arbitrage silencieux entre deux
|
|
23
|
+
* destinations de relecture) ;
|
|
24
|
+
* 2. sinon un worker de cluster (process forké) relit via `cluster-file` — vue
|
|
25
|
+
* UNIFIÉE agrégeant les JSONL de tous les workers — là où `memory` (ring
|
|
26
|
+
* per-worker) ne montrerait qu'un worker ; un mono-process reste sur
|
|
27
|
+
* `memory` (0 I/O).
|
|
28
|
+
*
|
|
29
|
+
* On n'intervient QUE sur le défaut : toute valeur EXPLICITE (`memory`, `file`,
|
|
30
|
+
* `loki`, …) est une surcharge de l'opérateur → respectée telle quelle, jamais
|
|
31
|
+
* réécrite (principe de moindre surprise, 12-factor).
|
|
32
|
+
*
|
|
33
|
+
* @param requested - `log.queryDriver` résolu (config app/env) ; `undefined` ou
|
|
34
|
+
* `"auto"` = laisser le framework décider.
|
|
35
|
+
* @param isWorker - process forké d'un cluster (`cluster.isWorker`).
|
|
36
|
+
* @param urls - URLs des destinations distantes déclarées (config `log.loki`/
|
|
37
|
+
* `log.opensearch`, montées depuis l'infra logs).
|
|
38
|
+
* @returns nom du driver de relecture à activer + monter.
|
|
39
|
+
* @throws Error si les deux URLs sont déclarées sans `queryDriver` explicite.
|
|
40
|
+
*/
|
|
41
|
+
function resolveQueryDriver(requested, isWorker, urls) {
|
|
42
|
+
if (requested !== void 0 && requested !== "auto") return requested;
|
|
43
|
+
if (urls?.loki && urls?.opensearch) throw new Error("log.queryDriver ambigu : NF_LOKI_URL ET NF_OPENSEARCH_URL déclarées — préciser log.queryDriver (\"loki\" | \"opensearch\")");
|
|
44
|
+
if (urls?.loki) return "loki";
|
|
45
|
+
if (urls?.opensearch) return "opensearch";
|
|
46
|
+
return isWorker ? "cluster-file" : "memory";
|
|
47
|
+
}
|
|
48
|
+
let registered = false;
|
|
49
|
+
/**
|
|
50
|
+
* Enregistre les fabriques des drivers NATIFS du Log Backplane dans le
|
|
51
|
+
* {@link registerLogDriverFactory registre de fabriques}. Idempotent (appelé à chaque
|
|
52
|
+
* `initializeLog`, court-circuité après la 1ʳᵉ fois). C'est ICI — pas dans le Kernel —
|
|
53
|
+
* que vit la connaissance « nom → comment construire ce driver ». Le Kernel ne fait que
|
|
54
|
+
* résoudre + brancher, sans aucun `if (name === …)`.
|
|
55
|
+
*
|
|
56
|
+
* - `memory` : relit le ring buffer (aucun transport — alimenté par `Syslog`).
|
|
57
|
+
* - `file` / `cluster-file` : relisent un/des JSONL ; écrivent via un `FileTransport`
|
|
58
|
+
* partagé (même `writeKey` = chemin → branché 1× même si les deux sont montés).
|
|
59
|
+
* - `loki` / `opensearch` : push HTTP batché (transport) + relecture via leur API
|
|
60
|
+
* (driver) ; `null` si l'URL n'est pas configurée (→ fallback `memory` côté Kernel).
|
|
61
|
+
*/
|
|
62
|
+
function registerBuiltinLogDrivers() {
|
|
63
|
+
if (registered) return;
|
|
64
|
+
registered = true;
|
|
65
|
+
registerLogDriverFactory("memory", (ctx) => ({ driver: createMemoryLogDriver(ctx.getRingStack) }));
|
|
66
|
+
registerLogDriverFactory("file", (ctx) => {
|
|
67
|
+
const p = jsonlPath(ctx);
|
|
68
|
+
const opts = { path: p };
|
|
69
|
+
const scan = ctx.logCfg?.queryFile?.maxScanBytes;
|
|
70
|
+
if (scan !== void 0) opts.maxScanBytes = scan;
|
|
71
|
+
return {
|
|
72
|
+
driver: createFileLogDriver(opts),
|
|
73
|
+
transport: new FileTransport({
|
|
74
|
+
path: p,
|
|
75
|
+
format: "json"
|
|
76
|
+
}),
|
|
77
|
+
writeKey: p
|
|
78
|
+
};
|
|
79
|
+
});
|
|
80
|
+
registerLogDriverFactory("cluster-file", (ctx) => {
|
|
81
|
+
const p = jsonlPath(ctx);
|
|
82
|
+
const opts = { dir: path.dirname(p) };
|
|
83
|
+
const scan = ctx.logCfg?.queryFile?.maxScanBytes;
|
|
84
|
+
if (scan !== void 0) opts.maxScanBytes = scan;
|
|
85
|
+
return {
|
|
86
|
+
driver: createClusterFileLogDriver(opts),
|
|
87
|
+
transport: new FileTransport({
|
|
88
|
+
path: p,
|
|
89
|
+
format: "json"
|
|
90
|
+
}),
|
|
91
|
+
writeKey: p
|
|
92
|
+
};
|
|
93
|
+
});
|
|
94
|
+
registerLogDriverFactory("loki", (ctx) => {
|
|
95
|
+
const lk = ctx.logCfg?.loki;
|
|
96
|
+
if (!lk?.url) return null;
|
|
97
|
+
return {
|
|
98
|
+
driver: createLokiLogDriver(lk),
|
|
99
|
+
transport: new LokiTransport(lk),
|
|
100
|
+
writeKey: `loki:${lk.url}`
|
|
101
|
+
};
|
|
102
|
+
});
|
|
103
|
+
registerLogDriverFactory("opensearch", (ctx) => {
|
|
104
|
+
const os = ctx.logCfg?.opensearch;
|
|
105
|
+
if (!os?.url) return null;
|
|
106
|
+
return {
|
|
107
|
+
driver: createOpenSearchLogDriver(os),
|
|
108
|
+
transport: new OpenSearchTransport(os),
|
|
109
|
+
writeKey: `opensearch:${os.url}`
|
|
110
|
+
};
|
|
111
|
+
});
|
|
112
|
+
}
|
|
113
|
+
//#endregion
|
|
114
|
+
export { registerBuiltinLogDrivers, resolveQueryDriver };
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
import { pduToRecord } from "./ILogDriver.js";
|
|
2
|
+
import { pduProtocol } from "./pduProtocol.js";
|
|
3
|
+
import { pduFlowStep } from "./pduFlow.js";
|
|
4
|
+
//#region src/syslog/drivers/filterPdus.ts
|
|
5
|
+
/** Plafond dur d'enregistrements renvoyés (anti-DoS mémoire/réseau). */
|
|
6
|
+
const MAX_LIMIT = 1e3;
|
|
7
|
+
/** Limite par défaut quand `criteria.limit` est absent. */
|
|
8
|
+
const DEFAULT_LIMIT = 200;
|
|
9
|
+
/** Extrait le texte indexable d'un payload Pdu (string directe, sinon `msg`). */
|
|
10
|
+
const payloadText = (pdu) => {
|
|
11
|
+
if (typeof pdu.payload === "string") return pdu.payload;
|
|
12
|
+
if (typeof pdu.payload === "number" || typeof pdu.payload === "boolean") return String(pdu.payload);
|
|
13
|
+
return "";
|
|
14
|
+
};
|
|
15
|
+
/**
|
|
16
|
+
* Filtre PUR d'un tableau de Pdu selon des critères — **0 I/O, 0 état, testable
|
|
17
|
+
* sans serveur**. C'est LA logique de filtrage du Log Backplane, réutilisée par le
|
|
18
|
+
* driver `memory` (sur `syslog.ringStack`), le futur driver `file` (sur les lignes
|
|
19
|
+
* relues) et la future commande CLI `syslog:filter`. Une logique, trois façades.
|
|
20
|
+
*
|
|
21
|
+
* Critères combinés en **AND** (cf {@link ILogQueryCriteria}). Résultat trié du
|
|
22
|
+
* plus **RÉCENT** au plus ancien (l'entrée naturelle d'un viewer de logs), puis
|
|
23
|
+
* `offset`/`limit` appliqués. `total` = nombre de matchs AVANT pagination.
|
|
24
|
+
*
|
|
25
|
+
* Perf : scan linéaire O(N) sur un ring borné (≤ `maxStack`, ~100-1000). Chemin
|
|
26
|
+
* FROID (admin/debug) → jamais dans le pipeline requête. La sérialisation
|
|
27
|
+
* (Pdu→{@link ILogRecord}) n'est faite que sur la **fenêtre renvoyée**, pas sur
|
|
28
|
+
* tous les matchs.
|
|
29
|
+
*
|
|
30
|
+
* @param pdus - snapshot de Pdu (ex. `syslog.ringStack`, ordre FIFO oldest→newest).
|
|
31
|
+
* @param criteria - critères de filtrage (tous optionnels).
|
|
32
|
+
* @returns enregistrements récents d'abord + total + flag de troncature.
|
|
33
|
+
*/
|
|
34
|
+
function filterPdus(pdus, criteria = {}) {
|
|
35
|
+
const { requestId, module, msgid, from, to, text, protocol } = criteria;
|
|
36
|
+
const severities = criteria.severity === void 0 ? null : (Array.isArray(criteria.severity) ? criteria.severity : [criteria.severity]).map((s) => s.toUpperCase());
|
|
37
|
+
const moduleLc = module ? module.toLowerCase() : null;
|
|
38
|
+
const msgidLc = msgid ? msgid.toLowerCase() : null;
|
|
39
|
+
const textLc = text ? text.toLowerCase() : null;
|
|
40
|
+
const flowSet = criteria.flow === void 0 ? null : new Set(Array.isArray(criteria.flow) ? criteria.flow : [criteria.flow]);
|
|
41
|
+
const matched = [];
|
|
42
|
+
for (let i = pdus.length - 1; i >= 0; i--) {
|
|
43
|
+
const pdu = pdus[i];
|
|
44
|
+
if (requestId !== void 0 && pdu.requestId !== requestId) continue;
|
|
45
|
+
if (protocol && pduProtocol(pdu) !== protocol) continue;
|
|
46
|
+
if (severities && !severities.includes(pdu.severityName.toUpperCase())) continue;
|
|
47
|
+
if (moduleLc && !pdu.moduleName.toLowerCase().includes(moduleLc)) continue;
|
|
48
|
+
if (msgidLc && !String(pdu.msgid).toLowerCase().includes(msgidLc)) continue;
|
|
49
|
+
if (from !== void 0 && pdu.timeStamp < from) continue;
|
|
50
|
+
if (to !== void 0 && pdu.timeStamp > to) continue;
|
|
51
|
+
if (flowSet) {
|
|
52
|
+
const step = pduFlowStep(pdu);
|
|
53
|
+
if (step === null || !flowSet.has(step)) continue;
|
|
54
|
+
}
|
|
55
|
+
if (textLc) {
|
|
56
|
+
if (!(payloadText(pdu) + " " + pdu.msg + " " + pdu.moduleName + " " + pdu.msgid).toLowerCase().includes(textLc)) continue;
|
|
57
|
+
}
|
|
58
|
+
matched.push(pdu);
|
|
59
|
+
}
|
|
60
|
+
if (criteria.order === "asc") matched.reverse();
|
|
61
|
+
const total = matched.length;
|
|
62
|
+
const offset = criteria.offset && criteria.offset > 0 ? criteria.offset : 0;
|
|
63
|
+
const limit = Math.min(criteria.limit && criteria.limit > 0 ? criteria.limit : DEFAULT_LIMIT, MAX_LIMIT);
|
|
64
|
+
return {
|
|
65
|
+
rows: matched.slice(offset, offset + limit).map(pduToRecord),
|
|
66
|
+
total,
|
|
67
|
+
truncated: offset + limit < total
|
|
68
|
+
};
|
|
69
|
+
}
|
|
70
|
+
//#endregion
|
|
71
|
+
export { filterPdus };
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
//#region src/syslog/drivers/logDriverRegistry.ts
|
|
2
|
+
/**
|
|
3
|
+
* Registre des **drivers du Log Backplane** (axe DESTINATION queryable) — résout
|
|
4
|
+
* un nom (`config.log.queryDriver`, env, ou action de contrôle dev-only) vers un
|
|
5
|
+
* `ILogDriver`, SANS aucun `if (name === "elastic") …` en dur.
|
|
6
|
+
*
|
|
7
|
+
* Même philosophie que `backplaneRegistry` (realtime) et `ormRegistry` : les
|
|
8
|
+
* drivers natifs s'enregistrent au boot (`memory` par `Kernel.initializeLog`), un
|
|
9
|
+
* utilisateur peut enregistrer le sien (`registerLogDriver("nats-logs", …)`) puis
|
|
10
|
+
* pointer dessus — aucun changement dans le cœur. Source unique de la résolution.
|
|
11
|
+
*
|
|
12
|
+
* Le **driver actif** détermine où l'on RELIT les logs (`query`). Le sink WRITE
|
|
13
|
+
* texte (LB.W, `Syslog.setLogSink`) et le bus temps réel (`nodefony:syslog`) sont
|
|
14
|
+
* des axes orthogonaux, pilotés séparément.
|
|
15
|
+
*
|
|
16
|
+
* Sélection à la volée : **dev-only** (action de contrôle Studio). En prod, le
|
|
17
|
+
* driver est figé par config/env (12-factor : le routage des logs relève de
|
|
18
|
+
* l'orchestrateur, pas de l'app — un pod qui change de destination en vol = audit
|
|
19
|
+
* cassé / désync cluster).
|
|
20
|
+
*/
|
|
21
|
+
const drivers = /* @__PURE__ */ new Map();
|
|
22
|
+
let active = null;
|
|
23
|
+
/**
|
|
24
|
+
* Enregistre (ou remplace) un driver par son nom. Si aucun driver actif n'est
|
|
25
|
+
* encore défini, le premier enregistré devient actif (défaut sain).
|
|
26
|
+
*
|
|
27
|
+
* @param driver - instance `ILogDriver` (porte son propre `name`).
|
|
28
|
+
*/
|
|
29
|
+
function registerLogDriver(driver) {
|
|
30
|
+
drivers.set(driver.name, driver);
|
|
31
|
+
if (active === null) active = driver;
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Sélectionne le driver actif par nom (relecture des logs).
|
|
35
|
+
*
|
|
36
|
+
* @param name - nom d'un driver enregistré.
|
|
37
|
+
* @returns le driver activé.
|
|
38
|
+
* @throws si le nom est inconnu (jamais activer un driver fantôme silencieusement).
|
|
39
|
+
*/
|
|
40
|
+
function setActiveLogDriver(name) {
|
|
41
|
+
const driver = drivers.get(name);
|
|
42
|
+
if (!driver) throw new Error(`Unknown log driver "${name}". Registered: ${[...drivers.keys()].join(", ") || "(none)"}.`);
|
|
43
|
+
active = driver;
|
|
44
|
+
return driver;
|
|
45
|
+
}
|
|
46
|
+
/** Driver actif (relecture), ou `null` si aucun n'est encore enregistré/câblé. */
|
|
47
|
+
function getActiveLogDriver() {
|
|
48
|
+
return active;
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* Récupère un driver ENREGISTRÉ par son nom SANS l'activer — pour le sonder
|
|
52
|
+
* (`probe`) ou l'introspecter avant un switch. `undefined` si non enregistré.
|
|
53
|
+
*/
|
|
54
|
+
function getLogDriver(name) {
|
|
55
|
+
return drivers.get(name);
|
|
56
|
+
}
|
|
57
|
+
/** Liste des drivers enregistrés (introspection Studio / tests / data-plane). */
|
|
58
|
+
function listLogDrivers() {
|
|
59
|
+
return [...drivers.values()].map((d) => ({
|
|
60
|
+
name: d.name,
|
|
61
|
+
capabilities: d.capabilities
|
|
62
|
+
}));
|
|
63
|
+
}
|
|
64
|
+
const factories = /* @__PURE__ */ new Map();
|
|
65
|
+
/**
|
|
66
|
+
* Enregistre (ou remplace) la fabrique d'un driver par son nom.
|
|
67
|
+
*
|
|
68
|
+
* @param name - nom du driver (`"loki"`, `"opensearch"`, ou custom userland).
|
|
69
|
+
* @param factory - construit le driver + son transport à partir du contexte.
|
|
70
|
+
*/
|
|
71
|
+
function registerLogDriverFactory(name, factory) {
|
|
72
|
+
factories.set(name, factory);
|
|
73
|
+
}
|
|
74
|
+
/** Récupère la fabrique d'un driver, ou `undefined` si non enregistrée. */
|
|
75
|
+
function getLogDriverFactory(name) {
|
|
76
|
+
return factories.get(name);
|
|
77
|
+
}
|
|
78
|
+
/** Liste les noms de drivers ayant une fabrique (introspection Studio / CLI). */
|
|
79
|
+
function listLogDriverFactories() {
|
|
80
|
+
return [...factories.keys()];
|
|
81
|
+
}
|
|
82
|
+
//#endregion
|
|
83
|
+
export { getActiveLogDriver, getLogDriver, getLogDriverFactory, listLogDriverFactories, listLogDrivers, registerLogDriver, registerLogDriverFactory, setActiveLogDriver };
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
//#region src/syslog/drivers/opensearchShared.ts
|
|
2
|
+
/** Index OpenSearch par défaut des logs Nodefony (write transport ↔ read driver). */
|
|
3
|
+
const DEFAULT_OPENSEARCH_INDEX = "nodefony-logs";
|
|
4
|
+
/**
|
|
5
|
+
* Construit l'en-tête `Authorization: Basic …` si un utilisateur est fourni — sinon
|
|
6
|
+
* objet vide (dev = plugin sécurité désactivé, HTTP sans auth). Node-only (`Buffer`).
|
|
7
|
+
*
|
|
8
|
+
* @param username - utilisateur (absent → pas d'auth).
|
|
9
|
+
* @param password - mot de passe.
|
|
10
|
+
* @returns en-tête prêt à étaler, ou `{}`.
|
|
11
|
+
*/
|
|
12
|
+
function basicAuthHeader(username, password) {
|
|
13
|
+
if (!username) return {};
|
|
14
|
+
return { authorization: `Basic ${Buffer.from(`${username}:${password ?? ""}`).toString("base64")}` };
|
|
15
|
+
}
|
|
16
|
+
//#endregion
|
|
17
|
+
export { DEFAULT_OPENSEARCH_INDEX, basicAuthHeader };
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
//#region src/syslog/drivers/pduFlow.ts
|
|
2
|
+
/**
|
|
3
|
+
* Table des étapes — **source unique** de l'ordre et de l'appartenance protocole,
|
|
4
|
+
* partagée back (filtre) et front (sélecteur groupé HTTP / WebSocket / Commun).
|
|
5
|
+
*/
|
|
6
|
+
const FLOW_STEPS = {
|
|
7
|
+
"request-in": {
|
|
8
|
+
order: 1,
|
|
9
|
+
protocol: "http"
|
|
10
|
+
},
|
|
11
|
+
"body-received": {
|
|
12
|
+
order: 2,
|
|
13
|
+
protocol: "http"
|
|
14
|
+
},
|
|
15
|
+
"route-matched": {
|
|
16
|
+
order: 3,
|
|
17
|
+
protocol: "http"
|
|
18
|
+
},
|
|
19
|
+
"kernel-dispatch": {
|
|
20
|
+
order: 4,
|
|
21
|
+
protocol: "http"
|
|
22
|
+
},
|
|
23
|
+
session: {
|
|
24
|
+
order: 5,
|
|
25
|
+
protocol: "both"
|
|
26
|
+
},
|
|
27
|
+
response: {
|
|
28
|
+
order: 6,
|
|
29
|
+
protocol: "http"
|
|
30
|
+
},
|
|
31
|
+
"session-saved": {
|
|
32
|
+
order: 7,
|
|
33
|
+
protocol: "both"
|
|
34
|
+
},
|
|
35
|
+
"request-end": {
|
|
36
|
+
order: 8,
|
|
37
|
+
protocol: "http"
|
|
38
|
+
},
|
|
39
|
+
finish: {
|
|
40
|
+
order: 9,
|
|
41
|
+
protocol: "http"
|
|
42
|
+
},
|
|
43
|
+
"ws-open": {
|
|
44
|
+
order: 1,
|
|
45
|
+
protocol: "ws"
|
|
46
|
+
},
|
|
47
|
+
"ws-message": {
|
|
48
|
+
order: 2,
|
|
49
|
+
protocol: "ws"
|
|
50
|
+
},
|
|
51
|
+
"ws-close": {
|
|
52
|
+
order: 3,
|
|
53
|
+
protocol: "ws"
|
|
54
|
+
}
|
|
55
|
+
};
|
|
56
|
+
/** Retire les codes de couleur ANSI (les payloads en TTY peuvent en porter). */
|
|
57
|
+
function stripAnsi(s) {
|
|
58
|
+
return s.replace(/\x1b\[[0-9;]*m/g, "");
|
|
59
|
+
}
|
|
60
|
+
/** Texte indexable d'un Pdu pour la classification (payload string sinon `msg`). */
|
|
61
|
+
function flowText(pdu) {
|
|
62
|
+
return stripAnsi(typeof pdu.payload === "string" ? pdu.payload : pdu.msg || "");
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* Classe un Pdu en **étape de cycle de vie** (id stable) ou `null` si la ligne
|
|
66
|
+
* n'est pas un jalon (log applicatif libre, ex. `DB-DEMO`). PUR, isomorphe,
|
|
67
|
+
* 0 état — réutilisé par le filtre back ({@link filterPdus}) ET le rendu front
|
|
68
|
+
* (colonne « Étape » + sélecteur) → une SEULE logique, jamais de divergence.
|
|
69
|
+
*
|
|
70
|
+
* Priorité aux marqueurs de **contenu** (route, session, cookie, bilan), puis au
|
|
71
|
+
* **nom d'event** générique. `onRequest` est désambiguïsé par le msgid `KERNEL`
|
|
72
|
+
* (dispatch kernel) vs contexte (entrée de requête).
|
|
73
|
+
*
|
|
74
|
+
* @param pdu - enregistrement (Pdu ou {@link IPduLike}, relu d'un JSONL aussi).
|
|
75
|
+
* @returns l'`id` d'étape, ou `null` pour un log hors cycle.
|
|
76
|
+
*/
|
|
77
|
+
function pduFlowStep(pdu) {
|
|
78
|
+
const msg = flowText(pdu);
|
|
79
|
+
if (/Match route/i.test(msg)) return "route-matched";
|
|
80
|
+
if (/NEW SESSION|MIGRATE SESSION|DESTROY SESSION|SESSION CONTEXT CHANGE/i.test(msg)) return "session";
|
|
81
|
+
if (/SAVE SESSION/i.test(msg)) return "session-saved";
|
|
82
|
+
if (/ADD COOKIE/i.test(msg)) return "response";
|
|
83
|
+
if (/\bsubscribe\b/i.test(msg)) return "ws-message";
|
|
84
|
+
if (/client connected/i.test(msg)) return "ws-open";
|
|
85
|
+
if (/^WS (RECEIVE|SEND|BROADCAST)\b/.test(pdu.msgid)) return "ws-message";
|
|
86
|
+
if (pdu.msgid === "req") return "request-end";
|
|
87
|
+
const m = msg.match(/\bon([A-Z][A-Za-z]+)\b/);
|
|
88
|
+
if (m) {
|
|
89
|
+
const ev = `on${m[1]}`;
|
|
90
|
+
if (ev === "onRequest" && pdu.msgid === "KERNEL") return "kernel-dispatch";
|
|
91
|
+
switch (ev) {
|
|
92
|
+
case "onRequestEnd": return "body-received";
|
|
93
|
+
case "onRequest": return "request-in";
|
|
94
|
+
case "onSessionStart": return "session";
|
|
95
|
+
case "onConnect": return "ws-open";
|
|
96
|
+
case "onSaveSession": return "session-saved";
|
|
97
|
+
case "onSend": return "response";
|
|
98
|
+
case "onClose": return "ws-close";
|
|
99
|
+
case "onFinish": return "finish";
|
|
100
|
+
case "onMessage": return "ws-message";
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
return null;
|
|
104
|
+
}
|
|
105
|
+
//#endregion
|
|
106
|
+
export { FLOW_STEPS, pduFlowStep };
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
//#region src/syslog/drivers/pduProtocol.ts
|
|
2
|
+
/**
|
|
3
|
+
* msgid forcé par défaut sur **tout** log émis dans un contexte WebSocket
|
|
4
|
+
* (`WebsocketContext.log()` côté `@nodefony/http`). C'est le marqueur fiable du
|
|
5
|
+
* protocole — pas de parsing de message.
|
|
6
|
+
*/
|
|
7
|
+
const WS_MSGID = "WEBSOCKET CONTEXT";
|
|
8
|
+
/**
|
|
9
|
+
* Classe un Pdu par **protocole** d'origine — `"ws"` ou `"http"` — de façon PURE,
|
|
10
|
+
* isomorphe et 0-alloc (une seule comparaison de `msgid`).
|
|
11
|
+
*
|
|
12
|
+
* Critère FIABLE : tout log émis dans un contexte WebSocket porte le msgid
|
|
13
|
+
* `"WEBSOCKET CONTEXT"` (forcé par défaut dans `WebsocketContext.log()`). Tout le
|
|
14
|
+
* reste du pipeline (req/http2/router/firewall/kernel/applicatif) est classé HTTP.
|
|
15
|
+
* Une seule logique → front et back ne divergent plus (le front filtrait par texte,
|
|
16
|
+
* source de faux positifs).
|
|
17
|
+
*
|
|
18
|
+
* Seul `msgid` compte → accepte un `Pdu`, un {@link IPduLike} ou un record wire
|
|
19
|
+
* relu (`ILogRecord` / miroir front) indifféremment.
|
|
20
|
+
*
|
|
21
|
+
* @param pdu - tout objet portant un `msgid`.
|
|
22
|
+
* @returns `"ws"` si le log provient d'une socket WebSocket, sinon `"http"`.
|
|
23
|
+
*/
|
|
24
|
+
function pduProtocol(pdu) {
|
|
25
|
+
return pdu.msgid === WS_MSGID ? "ws" : "http";
|
|
26
|
+
}
|
|
27
|
+
//#endregion
|
|
28
|
+
export { pduProtocol };
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
//#region src/syslog/httpFetch.ts
|
|
2
|
+
/**
|
|
3
|
+
* Résout l'implémentation `fetch` à utiliser : celle passée explicitement (tests,
|
|
4
|
+
* proxy custom), sinon le `fetch` global (Node ≥ 18). Lève si aucune n'est dispo
|
|
5
|
+
* (jamais d'échec silencieux d'un driver prod mal configuré).
|
|
6
|
+
*
|
|
7
|
+
* @param custom - implémentation explicite (prioritaire).
|
|
8
|
+
* @returns un `FetchLike` garanti non nul.
|
|
9
|
+
* @throws si aucun `fetch` n'est disponible.
|
|
10
|
+
*/
|
|
11
|
+
function resolveFetch(custom) {
|
|
12
|
+
if (custom) return custom;
|
|
13
|
+
const f = globalThis.fetch;
|
|
14
|
+
if (typeof f !== "function") throw new Error("global fetch unavailable (Node >= 18 required) — pass fetchImpl explicitly");
|
|
15
|
+
return f;
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* `fetch` borné par un timeout (via `AbortController`) — un push/lecture de logs ne
|
|
19
|
+
* doit JAMAIS bloquer indéfiniment sur une destination injoignable. `timeoutMs ≤ 0`
|
|
20
|
+
* = pas de timeout.
|
|
21
|
+
*
|
|
22
|
+
* @param fetchImpl - implémentation `FetchLike`.
|
|
23
|
+
* @param url - URL cible.
|
|
24
|
+
* @param init - options de requête.
|
|
25
|
+
* @param timeoutMs - délai max avant `abort`.
|
|
26
|
+
* @returns la réponse, ou rejette (timeout/réseau).
|
|
27
|
+
*/
|
|
28
|
+
async function fetchWithTimeout(fetchImpl, url, init, timeoutMs) {
|
|
29
|
+
if (!timeoutMs || timeoutMs <= 0) return fetchImpl(url, init);
|
|
30
|
+
const ac = new AbortController();
|
|
31
|
+
const timer = setTimeout(() => ac.abort(), timeoutMs);
|
|
32
|
+
if (typeof timer.unref === "function") timer.unref();
|
|
33
|
+
try {
|
|
34
|
+
return await fetchImpl(url, {
|
|
35
|
+
...init,
|
|
36
|
+
signal: ac.signal
|
|
37
|
+
});
|
|
38
|
+
} finally {
|
|
39
|
+
clearTimeout(timer);
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
//#endregion
|
|
43
|
+
export { fetchWithTimeout, resolveFetch };
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
import clc from "../colors.js";
|
|
2
|
+
//#region src/syslog/logColor.ts
|
|
3
|
+
/** Combinaisons `cli-color` réellement utilisées par les loggers Nodefony. */
|
|
4
|
+
const KEYS = [
|
|
5
|
+
"cyan",
|
|
6
|
+
"magenta",
|
|
7
|
+
"red",
|
|
8
|
+
"green",
|
|
9
|
+
"yellow",
|
|
10
|
+
"blue",
|
|
11
|
+
"blackBright",
|
|
12
|
+
"yellowBold",
|
|
13
|
+
"redBold",
|
|
14
|
+
"cyanBold",
|
|
15
|
+
"blueBrightBold",
|
|
16
|
+
"cyanBgBlue",
|
|
17
|
+
"cyanBgBlack"
|
|
18
|
+
];
|
|
19
|
+
const identity = (s) => s;
|
|
20
|
+
/** Implémentation colorée (TTY) — résolue 1× à l'import (chaînage figé). */
|
|
21
|
+
const COLORS = {
|
|
22
|
+
cyan: clc.cyan,
|
|
23
|
+
magenta: clc.magenta,
|
|
24
|
+
red: clc.red,
|
|
25
|
+
green: clc.green,
|
|
26
|
+
yellow: clc.yellow,
|
|
27
|
+
blue: clc.blue,
|
|
28
|
+
blackBright: clc.blackBright,
|
|
29
|
+
yellowBold: clc.yellow.bold,
|
|
30
|
+
redBold: clc.red.bold,
|
|
31
|
+
cyanBold: clc.cyan.bold,
|
|
32
|
+
blueBrightBold: clc.blueBright.bold,
|
|
33
|
+
cyanBgBlue: clc.cyan.bgBlue,
|
|
34
|
+
cyanBgBlack: clc.cyan.bgBlack
|
|
35
|
+
};
|
|
36
|
+
/**
|
|
37
|
+
* Helper de couleur partagé — référence STABLE, propriétés mutées par
|
|
38
|
+
* {@link setLogColor}. Les call-sites font `logColor.cyan("URL")`.
|
|
39
|
+
*/
|
|
40
|
+
const logColor = { ...COLORS };
|
|
41
|
+
let _enabled = false;
|
|
42
|
+
/**
|
|
43
|
+
* Active/désactive la couleur ANSI des logs — à appeler **une fois au boot**.
|
|
44
|
+
* Swap les fonctions des slots ; aucun coût par log ensuite.
|
|
45
|
+
*
|
|
46
|
+
* @param enabled - `true` = couleur (TTY interactif), `false` = brut (pipe/fichier).
|
|
47
|
+
*/
|
|
48
|
+
function setLogColor(enabled) {
|
|
49
|
+
_enabled = enabled;
|
|
50
|
+
for (const k of KEYS) logColor[k] = enabled ? COLORS[k] : identity;
|
|
51
|
+
}
|
|
52
|
+
/** `true` si la couleur ANSI est active (gate boot-time). */
|
|
53
|
+
function isLogColorEnabled() {
|
|
54
|
+
return _enabled;
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* Applique les conventions d'environnement couleur PAR-DESSUS un signal `isTTY`
|
|
58
|
+
* **déjà résolu** — au boot on passe `Kernel.isTTY` (qui honore déjà `NF_NO_TTY`),
|
|
59
|
+
* sans re-lire `process.stdout`. Conventions :
|
|
60
|
+
*
|
|
61
|
+
* - **`NO_COLOR`** (no-color.org) : présent **et non vide** → couleur OFF, quelle
|
|
62
|
+
* que soit sa valeur. Priorité absolue (refus explicite de l'utilisateur).
|
|
63
|
+
* - **`FORCE_COLOR`** : non vide et ≠ `"0"` → couleur ON (override pipe/non-TTY,
|
|
64
|
+
* ex. CI qui veut des logs colorés capturés).
|
|
65
|
+
* - sinon → couleur = `isTTY`.
|
|
66
|
+
*
|
|
67
|
+
* Isomorphe : `env` lu via `globalThis.process` (navigateur : pas de `process`).
|
|
68
|
+
*
|
|
69
|
+
* @param isTTY - signal TTY déjà résolu (ex. `Kernel.isTTY`, NF_NO_TTY-aware).
|
|
70
|
+
*/
|
|
71
|
+
function resolveColorEnabled(isTTY) {
|
|
72
|
+
const env = globalThis.process?.env ?? {};
|
|
73
|
+
if (typeof env.NO_COLOR === "string" && env.NO_COLOR !== "") return false;
|
|
74
|
+
if (typeof env.FORCE_COLOR === "string" && env.FORCE_COLOR !== "" && env.FORCE_COLOR !== "0") return true;
|
|
75
|
+
return isTTY;
|
|
76
|
+
}
|
|
77
|
+
const _importProc = globalThis.process;
|
|
78
|
+
setLogColor(resolveColorEnabled(_importProc?.env?.NF_NO_TTY ? false : _importProc?.stdout?.isTTY === true));
|
|
79
|
+
//#endregion
|
|
80
|
+
export { isLogColorEnabled, logColor, resolveColorEnabled, setLogColor };
|