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,263 @@
|
|
|
1
|
+
import { clearRuntimeState, clearSupervisorPidFile, defaultDevPorts, detectRuntimeMode, discoverDevProcessesDetailed, discoverFromRuntimeState, foreignPortOwners, formatForeignRuntimes, isNodefonyProjectDir, portOwnership, probePorts, processCwd, readRuntimeState, splitByProject, terminateDevProcesses } from "./devProcess.js";
|
|
2
|
+
import { buildProjectTable, formatProjectTable, resolveProjectTarget } from "./devProjects.js";
|
|
3
|
+
import { writeSync } from "node:fs";
|
|
4
|
+
import path from "node:path";
|
|
5
|
+
//#region src/service/dev/devStop.ts
|
|
6
|
+
/**
|
|
7
|
+
* Commande `nodefony stop` — arrêt PROPRE et COMPLET de tout runtime Nodefony (dev,
|
|
8
|
+
* production mono, cluster) **du PROJET courant** ; remplace le `pkill -9` manuel.
|
|
9
|
+
* Standalone : aucun boot kernel, aucune trunk requise → lançable de n'importe où
|
|
10
|
+
* (cf le fast-path de `CliKernel.start`).
|
|
11
|
+
*
|
|
12
|
+
* MULTI-PROJET : plusieurs apps Nodefony peuvent tourner sur le même poste — le
|
|
13
|
+
* balayage `ps` étant global, `stop` ne tue QUE les process dont le cwd est CE
|
|
14
|
+
* projet (`splitByProject`) ; les autres sont LISTÉS avec leur dossier (le dev
|
|
15
|
+
* sait où aller les arrêter). `--all` = comportement trans-projets explicite.
|
|
16
|
+
*
|
|
17
|
+
* Stratégie : vérité = `ps` (pas le seul pidfile). On tue les GROUPES « racines » (un
|
|
18
|
+
* process dont le parent n'est pas dans la liste) — group-kill du superviseur/master
|
|
19
|
+
* emporte déjà ses enfants (serveur + Vite, ou workers) ; un orphelin (pidfile périmé)
|
|
20
|
+
* est sa propre racine et tombe aussi. SIGTERM (arrêt gracieux — déclenche le graceful
|
|
21
|
+
* shutdown du ClusterManager pour un master) puis SIGKILL des récalcitrants un à un.
|
|
22
|
+
*/
|
|
23
|
+
/** Libellé du mode runtime pour les messages (`dev`/`production`/`cluster`). */
|
|
24
|
+
function runtimeLabel(mode) {
|
|
25
|
+
if (mode === "prod") return "production";
|
|
26
|
+
if (mode === "cluster") return "cluster";
|
|
27
|
+
if (mode === "dev") return "dev";
|
|
28
|
+
return "runtime";
|
|
29
|
+
}
|
|
30
|
+
const ANSI = {
|
|
31
|
+
dim: "\x1B[90m",
|
|
32
|
+
green: "\x1B[32m",
|
|
33
|
+
red: "\x1B[31m",
|
|
34
|
+
yellow: "\x1B[33m",
|
|
35
|
+
bold: "\x1B[1m",
|
|
36
|
+
reset: "\x1B[0m"
|
|
37
|
+
};
|
|
38
|
+
/** Délai d'arrêt gracieux (SIGTERM) avant d'escalader en SIGKILL. */
|
|
39
|
+
const TERM_WAIT_MS = 4e3;
|
|
40
|
+
/** Délai max d'attente de libération des ports après le kill. */
|
|
41
|
+
const PORTS_WAIT_MS = 4e3;
|
|
42
|
+
const delay = (ms) => new Promise((resolve) => setTimeout(resolve, ms));
|
|
43
|
+
/** Attend que tous les `ports` soient libres (poll), renvoie le dernier état sondé. */
|
|
44
|
+
async function waitPortsFree(ports, timeoutMs, probe = probePorts) {
|
|
45
|
+
const deadline = Date.now() + timeoutMs;
|
|
46
|
+
for (;;) {
|
|
47
|
+
const states = await probe(ports);
|
|
48
|
+
if (states.every((s) => !s.listening)) return states;
|
|
49
|
+
if (Date.now() >= deadline) return states;
|
|
50
|
+
await delay(150);
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* Ligne d'état des ports après (ou faute d') arrêt.
|
|
55
|
+
*
|
|
56
|
+
* `✗ encore occupé` est un VERDICT D'ÉCHEC : il dit « je n'ai pas réussi à libérer
|
|
57
|
+
* ce port ». Il ne doit donc jamais tomber sur un port qui n'est pas le nôtre —
|
|
58
|
+
* `stop` venait d'annoncer lui-même que ces runtimes appartenaient à un AUTRE projet,
|
|
59
|
+
* puis marquait leurs ports en rouge : deux phrases qui se contredisent dans le même
|
|
60
|
+
* rapport. Un propriétaire identifié ({@link foreignPortOwners}) est donc NOMMÉ, et
|
|
61
|
+
* un port occupé sans propriétaire connu reste un échec quand on a tué quelque chose.
|
|
62
|
+
*
|
|
63
|
+
* @param states - ports sondés.
|
|
64
|
+
* @param freeLabel - libellé (déjà coloré) d'un port que personne ne tient.
|
|
65
|
+
* @param occupiedLabel - libellé d'un port tenu par un propriétaire INCONNU. C'est
|
|
66
|
+
* l'appelant qui sait s'il s'agit d'un échec : après avoir tué nos process, oui ;
|
|
67
|
+
* avant d'avoir tué quoi que ce soit, non.
|
|
68
|
+
* @param owners - port → projet étranger qui le tient.
|
|
69
|
+
*/
|
|
70
|
+
const portsLine = (states, freeLabel, occupiedLabel, owners = {}) => states.map((p) => {
|
|
71
|
+
switch (portOwnership(p, owners)) {
|
|
72
|
+
case "free": return `${p.port} ${freeLabel}`;
|
|
73
|
+
case "foreign": return `${p.port} ${ANSI.yellow}occupé par ${owners[p.port]}${ANSI.reset}`;
|
|
74
|
+
default: return `${p.port} ${occupiedLabel}`;
|
|
75
|
+
}
|
|
76
|
+
}).join(" ");
|
|
77
|
+
/**
|
|
78
|
+
* Filtre de `--all` : sans projet de référence, la SEULE preuve restante serait le
|
|
79
|
+
* titre de process. C'est peu pour un `kill -9` trans-projets — un homonyme
|
|
80
|
+
* suffirait. On exige donc une SECONDE preuve, indépendante du nom : le process
|
|
81
|
+
* travaille bien dans un projet Nodefony (`package.json` qui dépend de `nodefony`,
|
|
82
|
+
* ou `node_modules/nodefony`), lui-même ou un ancêtre (un Vite tourne dans le
|
|
83
|
+
* SOUS-dossier de son bundle). Un cwd illisible — process d'un autre utilisateur,
|
|
84
|
+
* `lsof` muet — ne prouve rien : on n'y touche pas.
|
|
85
|
+
*
|
|
86
|
+
* PURE (dépendances injectables) : `--all` tue sans garde-fou de projet, il ne
|
|
87
|
+
* doit pas rester une branche non éprouvée.
|
|
88
|
+
*
|
|
89
|
+
* @param procs - runtimes découverts par `ps`.
|
|
90
|
+
* @param getCwd - lecture du cwd d'un pid (défaut : `processCwd`).
|
|
91
|
+
* @param isProject - test « ce dossier est un projet Nodefony » (défaut : `isNodefonyProjectDir`).
|
|
92
|
+
* @returns `kept` = appartenance PROUVÉE (tuables) ; `rejected` = épargnés + le motif.
|
|
93
|
+
*/
|
|
94
|
+
function scopeAllToNodefonyProjects(procs, getCwd = processCwd, isProject = isNodefonyProjectDir) {
|
|
95
|
+
const kept = [];
|
|
96
|
+
const rejected = [];
|
|
97
|
+
for (const p of procs) {
|
|
98
|
+
const cwd = getCwd(p.pid);
|
|
99
|
+
if (cwd === null) {
|
|
100
|
+
rejected.push({
|
|
101
|
+
proc: p,
|
|
102
|
+
why: "cwd illisible"
|
|
103
|
+
});
|
|
104
|
+
continue;
|
|
105
|
+
}
|
|
106
|
+
let cur = path.resolve(cwd);
|
|
107
|
+
let belongs = false;
|
|
108
|
+
for (;;) {
|
|
109
|
+
if (isProject(cur)) {
|
|
110
|
+
belongs = true;
|
|
111
|
+
break;
|
|
112
|
+
}
|
|
113
|
+
const parent = path.dirname(cur);
|
|
114
|
+
if (parent === cur) break;
|
|
115
|
+
cur = parent;
|
|
116
|
+
}
|
|
117
|
+
if (belongs) kept.push(p);
|
|
118
|
+
else rejected.push({
|
|
119
|
+
proc: p,
|
|
120
|
+
why: `${cwd} n'est pas un projet Nodefony`
|
|
121
|
+
});
|
|
122
|
+
}
|
|
123
|
+
return {
|
|
124
|
+
kept,
|
|
125
|
+
rejected
|
|
126
|
+
};
|
|
127
|
+
}
|
|
128
|
+
/**
|
|
129
|
+
* Racines des projets auxquels appartiennent `procs` — dédupliquées.
|
|
130
|
+
*
|
|
131
|
+
* Sert à `--all` pour savoir QUELS ports vérifier après un arrêt trans-projets :
|
|
132
|
+
* un port qu'on ne sonde pas ne peut ni confirmer ni infirmer l'arrêt, et le
|
|
133
|
+
* rapport concluait « ✓ arrêté proprement » sans avoir regardé les trois quarts
|
|
134
|
+
* des ports qu'il venait de libérer.
|
|
135
|
+
*
|
|
136
|
+
* Fonction PURE (lecture du cwd injectable). Les rôles Vite sont ignorés : ils
|
|
137
|
+
* travaillent parfois dans un sous-dossier, et leur parent porte déjà la racine.
|
|
138
|
+
*
|
|
139
|
+
* @param procs - runtimes sur le point d'être arrêtés.
|
|
140
|
+
* @param getCwd - lecture du répertoire courant d'un pid.
|
|
141
|
+
* @returns les racines distinctes, sans celles qu'on n'a pas pu lire.
|
|
142
|
+
*/
|
|
143
|
+
function hostProjects(procs, getCwd = processCwd) {
|
|
144
|
+
const roots = /* @__PURE__ */ new Set();
|
|
145
|
+
for (const p of procs) {
|
|
146
|
+
if (p.role === "vite") continue;
|
|
147
|
+
const cwd = getCwd(p.pid);
|
|
148
|
+
if (cwd) roots.add(path.resolve(cwd));
|
|
149
|
+
}
|
|
150
|
+
return [...roots];
|
|
151
|
+
}
|
|
152
|
+
/** Applique {@link scopeAllToNodefonyProjects} et ANNONCE les process épargnés. */
|
|
153
|
+
function allRuntimesOfThisPoste(procs, write) {
|
|
154
|
+
const { kept, rejected } = scopeAllToNodefonyProjects(procs);
|
|
155
|
+
if (rejected.length > 0) write(`${ANSI.dim}[stop]${ANSI.reset} ${rejected.length} process au titre Nodefony NON confirmé(s), épargné(s) :\n` + rejected.map((r) => ` pid ${r.proc.pid} (${r.proc.label}) — ${r.why}`).join("\n") + "\n");
|
|
156
|
+
return kept;
|
|
157
|
+
}
|
|
158
|
+
/**
|
|
159
|
+
* Découvre, tue (SIGTERM→SIGKILL) et nettoie ; écrit un rapport sur stdout.
|
|
160
|
+
*
|
|
161
|
+
* `opts.target` désigne un AUTRE projet par son nom ou son chemin — strictement
|
|
162
|
+
* l'équivalent de `cd <projet> && nodefony stop`, obtenu en substituant la racine
|
|
163
|
+
* visée au répertoire courant : une seule mécanique d'arrêt, jamais deux.
|
|
164
|
+
*
|
|
165
|
+
* @returns le code de sortie — `0` si l'arrêt a eu lieu (ou n'avait rien à faire),
|
|
166
|
+
* `1` si la cible n'a pas pu être DÉSIGNÉE sans ambiguïté. Un `stop` qui n'a rien
|
|
167
|
+
* arrêté parce qu'il n'a pas compris la cible ne doit pas se lire comme un succès
|
|
168
|
+
* dans un script.
|
|
169
|
+
*/
|
|
170
|
+
async function runStopReport(cwd, opts = {}) {
|
|
171
|
+
const tag = `${ANSI.dim}[stop]${ANSI.reset}`;
|
|
172
|
+
const write = opts.write ?? ((chunk) => writeSync(1, chunk));
|
|
173
|
+
const probe = opts.probe ?? probePorts;
|
|
174
|
+
const observed = (opts.discover ?? discoverDevProcessesDetailed)({});
|
|
175
|
+
const discovered = observed.procs;
|
|
176
|
+
let root = cwd;
|
|
177
|
+
if (opts.target !== void 0 && opts.target !== "") {
|
|
178
|
+
if (opts.all) {
|
|
179
|
+
write(`\n${tag} ${ANSI.yellow}\`--all\` et une cible sont contradictoires${ANSI.reset} — choisis l'un ou l'autre.\n\n`);
|
|
180
|
+
return 1;
|
|
181
|
+
}
|
|
182
|
+
const here = splitByProject(discovered, cwd, opts.getCwd);
|
|
183
|
+
const projects = buildProjectTable(cwd, here.mine, here.foreign, (await probe(defaultDevPorts(cwd))).filter((p) => p.listening).map((p) => p.port));
|
|
184
|
+
if (projects.length === 0 && discovered.length > 0 && here.foreign.every((p) => p.cwd === null)) {
|
|
185
|
+
write([
|
|
186
|
+
"",
|
|
187
|
+
`${tag} ${ANSI.yellow}impossible de rattacher les process à un projet ici${ANSI.reset}`,
|
|
188
|
+
` ${ANSI.dim}${discovered.length} runtime(s) Nodefony tournent, mais leur répertoire de travail${ANSI.reset}`,
|
|
189
|
+
` ${ANSI.dim}n'est pas lisible (\`lsof\` absent ? Windows ?) — une cible par NOM est${ANSI.reset}`,
|
|
190
|
+
` ${ANSI.dim}donc indécidable, et rien ne sera arrêté au hasard.${ANSI.reset}`,
|
|
191
|
+
` ${ANSI.dim}→ ${ANSI.reset}${ANSI.bold}cd <projet> && nodefony stop${ANSI.reset}${ANSI.dim}, ou ${ANSI.reset}${ANSI.bold}nodefony stop --all${ANSI.reset}`,
|
|
192
|
+
""
|
|
193
|
+
].join("\n") + "\n");
|
|
194
|
+
return 1;
|
|
195
|
+
}
|
|
196
|
+
const resolved = resolveProjectTarget(opts.target, projects);
|
|
197
|
+
if (!resolved.ok) {
|
|
198
|
+
write([
|
|
199
|
+
"",
|
|
200
|
+
resolved.reason === "inconnu" ? `${tag} ${ANSI.yellow}aucun projet Nodefony en cours ne s'appelle « ${opts.target} »${ANSI.reset}` : `${tag} ${ANSI.yellow}« ${opts.target} » désigne ${resolved.candidates.length} projets — donne le chemin complet${ANSI.reset}`,
|
|
201
|
+
...resolved.candidates.length > 0 ? formatProjectTable(resolved.candidates) : [` ${ANSI.dim}(aucun runtime Nodefony observé sur ce poste)${ANSI.reset}`],
|
|
202
|
+
""
|
|
203
|
+
].join("\n") + "\n");
|
|
204
|
+
return 1;
|
|
205
|
+
}
|
|
206
|
+
root = resolved.project.root;
|
|
207
|
+
write(`${tag} cible : ${ANSI.bold}${resolved.project.name}${ANSI.reset} ${ANSI.dim}(${root})${ANSI.reset}\n`);
|
|
208
|
+
}
|
|
209
|
+
cwd = root;
|
|
210
|
+
const scoped = opts.all ? {
|
|
211
|
+
mine: allRuntimesOfThisPoste(discovered, write),
|
|
212
|
+
foreign: []
|
|
213
|
+
} : splitByProject(discovered, cwd, opts.getCwd);
|
|
214
|
+
const byState = observed.supported ? [] : discoverFromRuntimeState(cwd);
|
|
215
|
+
if (byState.length > 0) write(`${tag} observation des process indisponible ici — runtime retrouvé par son fichier d'état (pid ${byState[0].pid}).\n`);
|
|
216
|
+
const before = scoped.mine.length > 0 ? scoped.mine : byState;
|
|
217
|
+
if (scoped.foreign.length > 0) write(`${tag} ${scoped.foreign.length} runtime(s) d'un AUTRE projet non touché(s) :\n` + formatForeignRuntimes(scoped.foreign).join("\n") + "\n");
|
|
218
|
+
const owners = foreignPortOwners(scoped.foreign);
|
|
219
|
+
if (before.length === 0) {
|
|
220
|
+
clearSupervisorPidFile(cwd);
|
|
221
|
+
const ports = await probe(defaultDevPorts(cwd));
|
|
222
|
+
const occupied = ports.filter((p) => p.listening).map((p) => p.port);
|
|
223
|
+
const blind = !observed.supported && occupied.length > 0;
|
|
224
|
+
write([
|
|
225
|
+
"",
|
|
226
|
+
blind ? `${tag} ${ANSI.bold}Nodefony — process non observables ici, mais ${occupied.join(", ")} répond(ent) encore${ANSI.reset}` : `${tag} ${ANSI.bold}Nodefony — aucune instance de ce projet en cours (déjà arrêté)${ANSI.reset}`,
|
|
227
|
+
` ${ANSI.dim}ports${ANSI.reset} : ${portsLine(ports, `${ANSI.green}libre${ANSI.reset}`, blind ? `${ANSI.yellow}occupé — un runtime répond encore${ANSI.reset}` : `${ANSI.yellow}occupé (pas par ce projet)${ANSI.reset}`, owners)}`,
|
|
228
|
+
...blind ? [` ${ANSI.dim}un runtime tourne sans fichier d'état — l'arrêter par son PID (Get-Process node)${ANSI.reset}`] : [],
|
|
229
|
+
""
|
|
230
|
+
].join("\n") + "\n");
|
|
231
|
+
return 0;
|
|
232
|
+
}
|
|
233
|
+
const ourPorts = opts.all ? [.../* @__PURE__ */ new Set([...defaultDevPorts(cwd), ...hostProjects(before, opts.getCwd).flatMap((projectRoot) => readRuntimeState(projectRoot, { purgeStale: false })?.ports ?? [])])] : defaultDevPorts(cwd);
|
|
234
|
+
const mode = runtimeLabel(detectRuntimeMode(before));
|
|
235
|
+
const count = (role) => before.filter((p) => p.role === role).length;
|
|
236
|
+
const seg = [];
|
|
237
|
+
for (const [role, word] of [
|
|
238
|
+
["supervisor", "superviseur"],
|
|
239
|
+
["master", "master"],
|
|
240
|
+
["worker", "worker"],
|
|
241
|
+
["server", "serveur"],
|
|
242
|
+
["vite", "Vite"]
|
|
243
|
+
]) {
|
|
244
|
+
const n = count(role);
|
|
245
|
+
if (n) seg.push(`${n} ${word}`);
|
|
246
|
+
}
|
|
247
|
+
write(`\n${tag} ${ANSI.bold}arrêt de ${before.length} process ${mode}${ANSI.reset} (${seg.join(" · ")})…\n`);
|
|
248
|
+
const alive = await terminateDevProcesses(before, {
|
|
249
|
+
termWaitMs: TERM_WAIT_MS,
|
|
250
|
+
killWaitMs: 1500
|
|
251
|
+
});
|
|
252
|
+
clearSupervisorPidFile(cwd);
|
|
253
|
+
clearRuntimeState(cwd);
|
|
254
|
+
const ports = await waitPortsFree(ourPorts, PORTS_WAIT_MS, probe);
|
|
255
|
+
write([
|
|
256
|
+
` ${alive.length === 0 ? `${ANSI.green}✓ arrêté proprement${ANSI.reset}` : `${ANSI.red}⚠ ${alive.length} process survivent (pid ${alive.join(", ")}) — relance \`nodefony stop\`${ANSI.reset}`}`,
|
|
257
|
+
` ${ANSI.dim}ports${ANSI.reset} : ${portsLine(ports, `${ANSI.green}libéré${ANSI.reset}`, `${ANSI.red}✗ encore occupé${ANSI.reset}`, owners)}`,
|
|
258
|
+
""
|
|
259
|
+
].join("\n") + "\n");
|
|
260
|
+
return 0;
|
|
261
|
+
}
|
|
262
|
+
//#endregion
|
|
263
|
+
export { hostProjects, runStopReport, scopeAllToNodefonyProjects };
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import Service from "../Service.js";
|
|
2
|
+
//#region src/service/fetchService.ts
|
|
3
|
+
/**
|
|
4
|
+
* Service `Fetch` — façade DI au-dessus de l'API `fetch` **native** de Node.js.
|
|
5
|
+
*
|
|
6
|
+
* Depuis Node 21, `fetch`, `Response`, `Request` et `Headers` sont des globaux
|
|
7
|
+
* stables (implémentation undici intégrée). Ce service les expose via le
|
|
8
|
+
* conteneur d'injection (`@inject("Fetch")`) — la dépendance `node-fetch` n'est
|
|
9
|
+
* donc plus nécessaire (un appel réseau de moins à bundler, perfs undici natives).
|
|
10
|
+
*
|
|
11
|
+
* `fetch` est lié à `globalThis` pour éviter le `TypeError: Illegal invocation`
|
|
12
|
+
* quand il est appelé via `this.fetch(...)` (undici exige `globalThis` comme `this`).
|
|
13
|
+
*
|
|
14
|
+
* Posé au container par l'{@link Injector} à la construction du kernel : une
|
|
15
|
+
* instance par kernel, partagée par tous ses consommateurs.
|
|
16
|
+
*/
|
|
17
|
+
var Fetch = class extends Service {
|
|
18
|
+
fetch;
|
|
19
|
+
Response;
|
|
20
|
+
Request;
|
|
21
|
+
Headers;
|
|
22
|
+
/**
|
|
23
|
+
* @param owner - porteur du service : le kernel (service core) ou un module.
|
|
24
|
+
* Seul son `container` est utilisé — c'est ce dont un `Service` a besoin pour exister.
|
|
25
|
+
*/
|
|
26
|
+
constructor(owner) {
|
|
27
|
+
super("Fetch", owner.container);
|
|
28
|
+
this.fetch = globalThis.fetch.bind(globalThis);
|
|
29
|
+
this.Response = globalThis.Response;
|
|
30
|
+
this.Request = globalThis.Request;
|
|
31
|
+
this.Headers = globalThis.Headers;
|
|
32
|
+
}
|
|
33
|
+
};
|
|
34
|
+
//#endregion
|
|
35
|
+
export { Fetch as default };
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
import fs from "node:fs";
|
|
2
|
+
import path from "node:path";
|
|
3
|
+
//#region src/service/gitService.ts
|
|
4
|
+
let _cache;
|
|
5
|
+
/** Branche depuis `.git/HEAD` (`ref: refs/heads/X` → `X`, sinon sha court). */
|
|
6
|
+
function readBranch(gitDir) {
|
|
7
|
+
try {
|
|
8
|
+
const head = fs.readFileSync(path.join(gitDir, "HEAD"), "utf8").trim();
|
|
9
|
+
const m = head.match(/^ref:\s*refs\/heads\/(.+)$/);
|
|
10
|
+
return m ? m[1] : head.slice(0, 7);
|
|
11
|
+
} catch {
|
|
12
|
+
return "";
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
/** Commit HEAD court : suit `HEAD` → ref file, repli `packed-refs`. */
|
|
16
|
+
function readCommit(gitDir) {
|
|
17
|
+
try {
|
|
18
|
+
const head = fs.readFileSync(path.join(gitDir, "HEAD"), "utf8").trim();
|
|
19
|
+
const m = head.match(/^ref:\s*(.+)$/);
|
|
20
|
+
if (!m) return head.slice(0, 7);
|
|
21
|
+
const ref = m[1];
|
|
22
|
+
let sha = "";
|
|
23
|
+
try {
|
|
24
|
+
sha = fs.readFileSync(path.join(gitDir, ref), "utf8").trim();
|
|
25
|
+
} catch {
|
|
26
|
+
const line = fs.readFileSync(path.join(gitDir, "packed-refs"), "utf8").split("\n").find((l) => l.endsWith(` ${ref}`));
|
|
27
|
+
sha = line ? line.split(" ")[0] : "";
|
|
28
|
+
}
|
|
29
|
+
return sha.slice(0, 7);
|
|
30
|
+
} catch {
|
|
31
|
+
return "";
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Introspection git du dépôt — **sans spawn `git` ni dépendance** (lecture directe
|
|
36
|
+
* de `.git/`). Résultat caché pour la vie du process. Best-effort : champs `""`
|
|
37
|
+
* hors d'un dépôt (ex. container sans `.git`). Consommé par le data plane kernel
|
|
38
|
+
* (`/nodefony/kernel/api/info` → `git`) et la barre de debug (bloc `app`).
|
|
39
|
+
*/
|
|
40
|
+
var GitService = class GitService {
|
|
41
|
+
/**
|
|
42
|
+
* Lit branche + commit court (une fois, puis cache process).
|
|
43
|
+
*
|
|
44
|
+
* @param cwd - racine où chercher `.git` (défaut `process.cwd()`)
|
|
45
|
+
* @returns `{ branch, commit }` — champs `""` si indéterminés
|
|
46
|
+
*/
|
|
47
|
+
static read(cwd = process.cwd()) {
|
|
48
|
+
if (_cache) return _cache;
|
|
49
|
+
const gitDir = path.join(cwd, ".git");
|
|
50
|
+
_cache = {
|
|
51
|
+
branch: readBranch(gitDir),
|
|
52
|
+
commit: readCommit(gitDir)
|
|
53
|
+
};
|
|
54
|
+
return _cache;
|
|
55
|
+
}
|
|
56
|
+
/** Branche seule (raccourci). */
|
|
57
|
+
static branch(cwd) {
|
|
58
|
+
return GitService.read(cwd).branch;
|
|
59
|
+
}
|
|
60
|
+
};
|
|
61
|
+
//#endregion
|
|
62
|
+
export { GitService as default };
|
|
@@ -0,0 +1,224 @@
|
|
|
1
|
+
//#region src/syslog/Pdu.ts
|
|
2
|
+
var SysLogSeverity = /* @__PURE__ */ function(SysLogSeverity) {
|
|
3
|
+
SysLogSeverity[SysLogSeverity["EMERGENCY"] = 0] = "EMERGENCY";
|
|
4
|
+
SysLogSeverity[SysLogSeverity["ALERT"] = 1] = "ALERT";
|
|
5
|
+
SysLogSeverity[SysLogSeverity["CRITIC"] = 2] = "CRITIC";
|
|
6
|
+
SysLogSeverity[SysLogSeverity["ERROR"] = 3] = "ERROR";
|
|
7
|
+
SysLogSeverity[SysLogSeverity["WARNING"] = 4] = "WARNING";
|
|
8
|
+
SysLogSeverity[SysLogSeverity["NOTICE"] = 5] = "NOTICE";
|
|
9
|
+
SysLogSeverity[SysLogSeverity["INFO"] = 6] = "INFO";
|
|
10
|
+
SysLogSeverity[SysLogSeverity["DEBUG"] = 7] = "DEBUG";
|
|
11
|
+
return SysLogSeverity;
|
|
12
|
+
}(SysLogSeverity || {});
|
|
13
|
+
const sysLogSeverity = [
|
|
14
|
+
0,
|
|
15
|
+
1,
|
|
16
|
+
2,
|
|
17
|
+
3,
|
|
18
|
+
4,
|
|
19
|
+
5,
|
|
20
|
+
6,
|
|
21
|
+
7
|
|
22
|
+
];
|
|
23
|
+
/**
|
|
24
|
+
* Les noms de sévérité RFC 5424, **dans l'ordre de l'enum** (l'index EST la
|
|
25
|
+
* valeur : `SEVERITY_NAMES[3] === "ERROR"`). Les huit niveaux de la RFC, et
|
|
26
|
+
* rien d'autre : une animation de terminal n'est pas un niveau de journal.
|
|
27
|
+
*
|
|
28
|
+
* Source **unique** du vocabulaire, côté serveur comme côté navigateur (le
|
|
29
|
+
* bundle client la réexporte). Elle existe parce qu'elle était écrite trois
|
|
30
|
+
* fois — deux copies dans la console d'administration, dans deux ORDRES
|
|
31
|
+
* différents, et aucune côté data plane, si bien qu'un `?severity=CRITICAL`
|
|
32
|
+
* n'était refusé nulle part : il rendait le journal entier.
|
|
33
|
+
*
|
|
34
|
+
* Pour un sélecteur qui va du moins au plus grave, lire `[...SEVERITY_NAMES]
|
|
35
|
+
* .reverse()` — l'ordre d'affichage se dérive, il ne se redéclare pas.
|
|
36
|
+
*/
|
|
37
|
+
const SEVERITY_NAMES = [
|
|
38
|
+
"EMERGENCY",
|
|
39
|
+
"ALERT",
|
|
40
|
+
"CRITIC",
|
|
41
|
+
"ERROR",
|
|
42
|
+
"WARNING",
|
|
43
|
+
"NOTICE",
|
|
44
|
+
"INFO",
|
|
45
|
+
"DEBUG"
|
|
46
|
+
];
|
|
47
|
+
/**
|
|
48
|
+
* `moduleName` porté par une entrée de journal venue d'un NAVIGATEUR.
|
|
49
|
+
*
|
|
50
|
+
* Valeur de confiance : le pod l'impose lui-même en recevant un lot sur le canal
|
|
51
|
+
* montant, sans jamais reprendre ce que la page prétend être. Une ligne qui la porte
|
|
52
|
+
* a donc traversé ce canal, et rien d'autre ne peut la produire.
|
|
53
|
+
*
|
|
54
|
+
* Elle vit ICI, dans le cœur isomorphe, pour la même raison que
|
|
55
|
+
* {@link SEVERITY_NAMES} : le serveur l'écrit, le navigateur la lit pour distinguer
|
|
56
|
+
* ces lignes à l'écran. Une copie côté console d'administration dériverait le jour
|
|
57
|
+
* où le mot change — et un écran qui ne reconnaît plus l'origine ne se plaint pas,
|
|
58
|
+
* il affiche simplement une ligne de plus au milieu des autres.
|
|
59
|
+
*/
|
|
60
|
+
const BROWSER_ORIGIN = "browser";
|
|
61
|
+
const translateSeverity = function(severity = "INFO") {
|
|
62
|
+
if (typeof severity === "number") {
|
|
63
|
+
if (sysLogSeverity[severity] !== void 0) return sysLogSeverity[severity];
|
|
64
|
+
else throw new Error(`Not a valid nodefony syslog severity: ${severity}`);
|
|
65
|
+
} else if (SysLogSeverity[severity] !== void 0) return SysLogSeverity[severity];
|
|
66
|
+
else throw new Error(`Not a valid nodefony syslog severity: ${severity}`);
|
|
67
|
+
};
|
|
68
|
+
const sysLogSeverityObj = Object.entries(SysLogSeverity).reduce((acc, [key, value]) => {
|
|
69
|
+
acc[key] = value;
|
|
70
|
+
return acc;
|
|
71
|
+
}, {});
|
|
72
|
+
const severityNameMap = new Map(Object.entries(SysLogSeverity).filter(([, v]) => typeof v === "number").map(([k, v]) => [v, k]));
|
|
73
|
+
const _gBuffer = globalThis.Buffer;
|
|
74
|
+
const PID = globalThis.process?.pid ?? 0;
|
|
75
|
+
const fastTypeOf = (value) => {
|
|
76
|
+
if (value === null) return null;
|
|
77
|
+
const t = typeof value;
|
|
78
|
+
if (t !== "object") return t;
|
|
79
|
+
if (Array.isArray(value)) return "array";
|
|
80
|
+
if (value instanceof Date) return "date";
|
|
81
|
+
if (value instanceof RegExp) return "RegExp";
|
|
82
|
+
if (value instanceof Error) return "Error";
|
|
83
|
+
if (_gBuffer?.isBuffer(value)) return "buffer";
|
|
84
|
+
return "object";
|
|
85
|
+
};
|
|
86
|
+
/**
|
|
87
|
+
* Process Data Unit — entrée de log unitaire conforme RFC 5424.
|
|
88
|
+
*
|
|
89
|
+
* Une instance représente un événement de log dans le pipeline Syslog.
|
|
90
|
+
* Stockée dans le `CircularBuffer` (O(1)) et diffusée aux transports
|
|
91
|
+
* via l'event `onLog` du {@link Syslog}.
|
|
92
|
+
*
|
|
93
|
+
* @example
|
|
94
|
+
* ```ts
|
|
95
|
+
* const pdu = new Pdu("user logged in", "INFO", "AUTH", "USER_LOGIN", "user@example.com");
|
|
96
|
+
* pdu.severity; // 6
|
|
97
|
+
* pdu.severityName; // "INFO"
|
|
98
|
+
* pdu.payload; // "user logged in"
|
|
99
|
+
* ```
|
|
100
|
+
*
|
|
101
|
+
* @remarks `pdu.severity` est numérique (RFC 5424) pour comparaisons rapides.
|
|
102
|
+
* `pdu.severityName` est la string (`"INFO"`, `"CRITIC"` — pas `"CRITICAL"`).
|
|
103
|
+
*/
|
|
104
|
+
let guid = 0;
|
|
105
|
+
var Pdu = class Pdu {
|
|
106
|
+
payload;
|
|
107
|
+
uid;
|
|
108
|
+
severity;
|
|
109
|
+
timeStamp;
|
|
110
|
+
severityName;
|
|
111
|
+
typePayload;
|
|
112
|
+
moduleName;
|
|
113
|
+
msgid;
|
|
114
|
+
msg;
|
|
115
|
+
status;
|
|
116
|
+
/** PID du process émetteur (= procid RFC 5424). Constant, capturé au chargement du module. */
|
|
117
|
+
pid;
|
|
118
|
+
/**
|
|
119
|
+
* Identifiant de la requête en cours (corrélation log↔requête).
|
|
120
|
+
*
|
|
121
|
+
* Présent UNIQUEMENT si le Pdu est créé dans une bulle `RequestContext` active
|
|
122
|
+
* (ALS Node) ET que {@link Pdu.requestIdProvider} a été branché côté Node — voir
|
|
123
|
+
* `src/index.ts` (barrel Node uniquement, isomorphisme préservé : le bundle
|
|
124
|
+
* client/browser ne branche pas, le provider reste `null` → 0 alloc, 0 lecture).
|
|
125
|
+
*
|
|
126
|
+
* Combiné à `pid` (procid RFC 5424), permet la corrélation **complète** :
|
|
127
|
+
* `pid` = quel worker, `requestId` = quelle requête. Voyage dans ring buffer +
|
|
128
|
+
* `nodefony:syslog` + transports JSON (champ public sérialisé naturellement).
|
|
129
|
+
*/
|
|
130
|
+
requestId;
|
|
131
|
+
/**
|
|
132
|
+
* Provider injectable du `requestId` courant (ALS). Branché par le barrel
|
|
133
|
+
* Node (`src/index.ts`) sur `RequestContext.getRequestId`. Reste `null` côté
|
|
134
|
+
* browser/debugbar (le bundle client n'importe pas `node:async_hooks`) et
|
|
135
|
+
* pendant les phases boot pré-Kernel (cohérent : pas de requête en cours).
|
|
136
|
+
*
|
|
137
|
+
* Coût : 1 test de référence par Pdu (~5 ns) quand `null` ; ~50-100 ns quand
|
|
138
|
+
* branché (lecture ALS + accès propriété). Pas d'alloc supplémentaire si
|
|
139
|
+
* `requestId` est `undefined` (le champ reste non-défini sur l'instance).
|
|
140
|
+
*/
|
|
141
|
+
static requestIdProvider = null;
|
|
142
|
+
/**
|
|
143
|
+
* Construit un Pdu prêt à être publié dans le pipeline Syslog.
|
|
144
|
+
*
|
|
145
|
+
* @param pci - payload (string, Error, objet — typé `unknown`, narrower côté lecteur).
|
|
146
|
+
* @param severity - niveau RFC 5424 (string `"INFO"` ou numérique `6`). Défaut `"INFO"`.
|
|
147
|
+
* @param moduleName - nom du module/service qui a produit le log. Défaut `"nodefony"`.
|
|
148
|
+
* @param msgid - catégorie de message (`"AUTH"`, `"ROUTER"`, etc.). Défaut `""`.
|
|
149
|
+
* @param msg - détail libre optionnel. Défaut `""`.
|
|
150
|
+
* @param date - timestamp (number, Date, ou string parsable). Défaut `Date.now()`.
|
|
151
|
+
* @throws Si `severity` n'est pas une valeur valide de {@link SysLogSeverity}.
|
|
152
|
+
*/
|
|
153
|
+
constructor(pci, severity, moduleName = "nodefony", msgid = "", msg = "", date) {
|
|
154
|
+
if (date === void 0) this.timeStamp = Date.now();
|
|
155
|
+
else if (typeof date === "number") this.timeStamp = date;
|
|
156
|
+
else if (date instanceof Date) this.timeStamp = date.getTime();
|
|
157
|
+
else this.timeStamp = new Date(date).getTime();
|
|
158
|
+
this.uid = ++guid;
|
|
159
|
+
this.severity = translateSeverity(severity);
|
|
160
|
+
const sName = severityNameMap.get(this.severity);
|
|
161
|
+
if (sName === void 0) throw new Error(`Invalid severity value: ${this.severity}`);
|
|
162
|
+
this.severityName = sName;
|
|
163
|
+
this.typePayload = fastTypeOf(pci);
|
|
164
|
+
this.payload = pci;
|
|
165
|
+
this.moduleName = moduleName;
|
|
166
|
+
this.msgid = msgid;
|
|
167
|
+
this.msg = msg;
|
|
168
|
+
this.status = "NOTDEFINED";
|
|
169
|
+
this.pid = PID;
|
|
170
|
+
this.requestId = Pdu.requestIdProvider !== null ? Pdu.requestIdProvider() : void 0;
|
|
171
|
+
}
|
|
172
|
+
/**
|
|
173
|
+
* Map bidirectionnelle des sévérités RFC 5424 (`{ INFO: 6, 6: "INFO", ... }`).
|
|
174
|
+
*
|
|
175
|
+
* @returns dictionnaire `{ severityName: severityValue }` plus enum reverse.
|
|
176
|
+
*/
|
|
177
|
+
static sysLogSeverity() {
|
|
178
|
+
return sysLogSeverityObj;
|
|
179
|
+
}
|
|
180
|
+
/**
|
|
181
|
+
* Convertit une sévérité numérique ou string en son nom canonique.
|
|
182
|
+
*
|
|
183
|
+
* @param severity - valeur numérique (`6`) ou string (`"INFO"` ou `"6"`).
|
|
184
|
+
* @returns nom canonique (`"INFO"`) ou `undefined` si invalide.
|
|
185
|
+
*/
|
|
186
|
+
static severityToString(severity) {
|
|
187
|
+
const numericSeverity = typeof severity === "string" ? parseInt(severity, 10) : severity;
|
|
188
|
+
if (!isNaN(numericSeverity) && SysLogSeverity[numericSeverity] !== void 0) return SysLogSeverity[numericSeverity];
|
|
189
|
+
const severityKey = Pdu.severityToString(SysLogSeverity[severity]);
|
|
190
|
+
return severityKey !== void 0 ? severityKey : void 0;
|
|
191
|
+
}
|
|
192
|
+
/**
|
|
193
|
+
* Retourne le timestamp formaté `HH:MM:SS GMT±HHMM (TZ Name)`.
|
|
194
|
+
*
|
|
195
|
+
* @returns time string lisible par humain.
|
|
196
|
+
*/
|
|
197
|
+
getDate() {
|
|
198
|
+
return new Date(this.timeStamp).toTimeString();
|
|
199
|
+
}
|
|
200
|
+
/**
|
|
201
|
+
* Sérialise le Pdu en string mono-ligne pour transport console/file.
|
|
202
|
+
*
|
|
203
|
+
* @returns ligne formatée `TimeStamp:... Log:... ModuleName:... SeverityName:... MessageID:... UID:... Message:...`.
|
|
204
|
+
*/
|
|
205
|
+
toString() {
|
|
206
|
+
return `TimeStamp:${this.getDate()} Log:${this.payload} ModuleName:${this.moduleName} SeverityName:${this.severityName} MessageID:${this.msgid} UID:${this.uid} Message:${this.msg}`;
|
|
207
|
+
}
|
|
208
|
+
/**
|
|
209
|
+
* Réhydrate un Pdu existant à partir d'une string JSON — mute uniquement les
|
|
210
|
+
* clés déjà présentes sur l'instance (filtre `key in this`).
|
|
211
|
+
*
|
|
212
|
+
* @param str - JSON sérialisé d'un Pdu.
|
|
213
|
+
* @returns objet parsé (ou `null` si JSON vide). Mute l'instance courante au passage.
|
|
214
|
+
*/
|
|
215
|
+
parseJson(str) {
|
|
216
|
+
const json = JSON.parse(str);
|
|
217
|
+
Object.entries(json).forEach(([key, value]) => {
|
|
218
|
+
if (key in this) this[key] = value;
|
|
219
|
+
});
|
|
220
|
+
return json;
|
|
221
|
+
}
|
|
222
|
+
};
|
|
223
|
+
//#endregion
|
|
224
|
+
export { BROWSER_ORIGIN, SEVERITY_NAMES, Pdu as default };
|