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,77 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Sonde process **riche** d'un worker — le complément du lean {@link IProcessHealth}
|
|
3
|
+
* pour le drill-down (Phase 2). Ne contient QUE ce qui manque au lean : pression GC,
|
|
4
|
+
* répartition du heap V8, ressources actives, ELU active/idle (ms) et changements de
|
|
5
|
+
* contexte OS. Fusionné côté front avec le lean déjà présent dans le snapshot pod.
|
|
6
|
+
*/
|
|
7
|
+
export interface IProcessRich {
|
|
8
|
+
/** Pression GC sur l'intervalle (cycles, pause totale ms, majeurs/mineurs). */
|
|
9
|
+
gc: {
|
|
10
|
+
count: number;
|
|
11
|
+
pauseMs: number;
|
|
12
|
+
major: number;
|
|
13
|
+
minor: number;
|
|
14
|
+
};
|
|
15
|
+
/** Répartition mémoire V8 par espace (new/old/code/large_object…), octets. */
|
|
16
|
+
heapSpaces: {
|
|
17
|
+
name: string;
|
|
18
|
+
used: number;
|
|
19
|
+
size: number;
|
|
20
|
+
}[];
|
|
21
|
+
/** Ressources actives qui tiennent la boucle, total + par type. */
|
|
22
|
+
handles: {
|
|
23
|
+
total: number;
|
|
24
|
+
byType: Record<string, number>;
|
|
25
|
+
};
|
|
26
|
+
/** Saturation de la boucle sur l'intervalle (ms actifs / idle ; utilization est dans le lean). */
|
|
27
|
+
elu: {
|
|
28
|
+
active: number;
|
|
29
|
+
idle: number;
|
|
30
|
+
};
|
|
31
|
+
/** Changements de contexte OS sur l'intervalle (volontaires = cède, involontaires = préempté). */
|
|
32
|
+
ctx: {
|
|
33
|
+
voluntary: number;
|
|
34
|
+
involuntary: number;
|
|
35
|
+
};
|
|
36
|
+
/** Load average système (1/5/15 min). */
|
|
37
|
+
loadavg: [number, number, number];
|
|
38
|
+
/** Limite de heap V8 du process (octets) — constante. */
|
|
39
|
+
heapLimit: number;
|
|
40
|
+
/** Nombre de cœurs vus par le process — constante. */
|
|
41
|
+
cpuCount: number;
|
|
42
|
+
/** Horodatage de la mesure. */
|
|
43
|
+
ts: number;
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Sonde process **riche stateful** d'un worker — calcule les métriques par INTERVALLE
|
|
47
|
+
* (GC, ELU active/idle, changements de contexte sont des deltas entre deux `read()`).
|
|
48
|
+
* Une instance par process worker, **lazy & opt-in** : créée seulement quand un drill
|
|
49
|
+
* est actif sur ce worker (« on paie ce qu'on regarde »).
|
|
50
|
+
*
|
|
51
|
+
* Perf (worker uniquement, JAMAIS hot path request) : l'observer GC n'est attaché qu'à
|
|
52
|
+
* {@link enable} (1ᵉʳ `read()` sinon) et **détaché à {@link disable}** (aucun listener
|
|
53
|
+
* orphelin). Les sondes lourdes (`getHeapSpaceStatistics`, `getActiveResourcesInfo`,
|
|
54
|
+
* `getrusage`) ne tournent qu'au `read()` (au tick de report, ≥ 1 s). SERVEUR uniquement
|
|
55
|
+
* (`node:v8`/`node:perf_hooks`/`node:os`) → non importé par le bundle client.
|
|
56
|
+
*
|
|
57
|
+
* Logique portée de `createStatsTicker` (`@nodefony/studio`) en classe réutilisable :
|
|
58
|
+
* source unique de la sonde process riche, partagée par le drill cluster et la
|
|
59
|
+
* supervision mono-process.
|
|
60
|
+
*/
|
|
61
|
+
export declare class RichProcessProbe {
|
|
62
|
+
#private;
|
|
63
|
+
/**
|
|
64
|
+
* Attache l'observer GC et réinitialise les baselines de delta (ELU/ctx). Idempotent.
|
|
65
|
+
* Appelé automatiquement au 1ᵉʳ `read()` ; explicite pour démarrer la collecte GC tôt.
|
|
66
|
+
*/
|
|
67
|
+
enable(): void;
|
|
68
|
+
/**
|
|
69
|
+
* Lit la sonde riche courante (deltas depuis le dernier `read()`, snapshots heap/handles).
|
|
70
|
+
*
|
|
71
|
+
* @returns {@link IProcessRich} prêt à être joint au report du worker drillé.
|
|
72
|
+
*/
|
|
73
|
+
read(): IProcessRich;
|
|
74
|
+
/** Détache l'observer GC (fin du drill / arrêt du worker). Idempotent. */
|
|
75
|
+
disable(): void;
|
|
76
|
+
}
|
|
77
|
+
export default RichProcessProbe;
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Réglage de topologie de l'application — la « molette » côté DevOps (remplace le
|
|
3
|
+
* rôle de `instances` dans l'ancien `pm2.config.ts`, retiré en cloud-native).
|
|
4
|
+
*
|
|
5
|
+
* - `1` — VRAI mono-process : aucune machinerie cluster (pas de master, pas de
|
|
6
|
+
* backplane, pas d'agrégateur). C'est le défaut cloud-native (1 process = 1 pod,
|
|
7
|
+
* scaling horizontal délégué à l'orchestrateur k8s/HPA).
|
|
8
|
+
* - `"auto"` — nb de workers résolu **cgroup-aware** (quota CPU du conteneur, jamais
|
|
9
|
+
* `os.cpus()`). Pour une grosse VM / VPS / gros pod sans orchestrateur.
|
|
10
|
+
* - `<N>` — nombre explicite de workers.
|
|
11
|
+
*/
|
|
12
|
+
export type WorkersSetting = number | "auto";
|
|
13
|
+
/**
|
|
14
|
+
* Bloc `cluster` de la config app — lisible **sans kernel** (le master fork les
|
|
15
|
+
* workers AVANT de booter le moindre Kernel : il doit donc lire ce réglage seul).
|
|
16
|
+
* Doit rester kernel-free pour pouvoir être importé directement par le master.
|
|
17
|
+
*/
|
|
18
|
+
export interface IClusterConfig {
|
|
19
|
+
/** Nombre de workers / topologie. Défaut : `1` (mono-process cloud-native). */
|
|
20
|
+
workers: WorkersSetting;
|
|
21
|
+
}
|
|
22
|
+
/** D'où vient la valeur `workers` retenue — pour le log de diagnostic au boot. */
|
|
23
|
+
export type TopologySource = "flag" | "env" | "config" | "default";
|
|
24
|
+
/** Résultat résolu de la topologie : nombre de workers + provenance. */
|
|
25
|
+
export interface Topology {
|
|
26
|
+
/** Nombre de workers à forker. `1` = mono-process (aucune machinerie cluster). */
|
|
27
|
+
workers: number;
|
|
28
|
+
/** Provenance de la valeur (CLI `--workers`, env, config app, défaut). */
|
|
29
|
+
source: TopologySource;
|
|
30
|
+
}
|
|
31
|
+
/** Seams de {@link resolveTopology} — tous injectables (résolution pure, testable sans FS). */
|
|
32
|
+
export interface ResolveTopologyOptions {
|
|
33
|
+
/** CLI `--workers <n|auto>` (chaîne Commander). Priorité MAX (override opérateur). */
|
|
34
|
+
flag?: string;
|
|
35
|
+
/** Override `NF_WORKERS` (Docker/k8s). Défaut : lecture de `process.env`. */
|
|
36
|
+
env?: string;
|
|
37
|
+
/** Valeur de la config app `cluster.workers` (le knob DevOps par défaut). */
|
|
38
|
+
config?: WorkersSetting;
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Résout LA topologie de lancement — source unique de vérité pour « combien de
|
|
42
|
+
* workers ». Ordre de priorité (premier défini gagne) :
|
|
43
|
+
*
|
|
44
|
+
* 1. **CLI `--workers`** — override explicite de l'opérateur (jamais borné).
|
|
45
|
+
* 2. **env `NF_WORKERS`** — override déploiement (Docker/k8s, sans éditer de fichier).
|
|
46
|
+
* 3. **config app `cluster.workers`** — le knob DevOps par défaut (remplace PM2 `instances`).
|
|
47
|
+
* 4. **défaut `1`** — mono-process cloud-native.
|
|
48
|
+
*
|
|
49
|
+
* @returns `{ workers, source }` — `workers >= 1` toujours.
|
|
50
|
+
*/
|
|
51
|
+
export declare function resolveTopology(opts?: ResolveTopologyOptions): Topology;
|
|
52
|
+
/**
|
|
53
|
+
* Lit le bloc `cluster` de la config app de façon **standalone** (best-effort), sans
|
|
54
|
+
* booter de Kernel — c'est tout ce dont le master a besoin pour décider du fork.
|
|
55
|
+
*
|
|
56
|
+
* Importe le fichier compilé `dist/nodefony/config/cluster/cluster.config.js` sous
|
|
57
|
+
* `appPath` (défaut `process.cwd()`, = `Kernel.path`). Toute erreur (fichier absent,
|
|
58
|
+
* import KO) → `null` : la résolution retombe alors sur CLI/env/défaut. Le fichier
|
|
59
|
+
* config DOIT rester kernel-free pour être importable ici.
|
|
60
|
+
*
|
|
61
|
+
* @param appPath - racine de l'app (défaut `process.cwd()`).
|
|
62
|
+
* @returns la valeur `cluster.workers`, ou `null` si introuvable.
|
|
63
|
+
*/
|
|
64
|
+
export declare function loadClusterConfig(appPath?: string): Promise<WorkersSetting | null>;
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
import type Kernel from "../../kernel/Kernel.js";
|
|
2
|
+
/**
|
|
3
|
+
* Vue minimale d'une zone du firewall (`firewall.describe().zones`), résolue
|
|
4
|
+
* par duck-typing — le core n'importe jamais @nodefony/security.
|
|
5
|
+
*/
|
|
6
|
+
export interface FirewallZoneView {
|
|
7
|
+
readonly name: string;
|
|
8
|
+
readonly pattern: string;
|
|
9
|
+
readonly security?: boolean;
|
|
10
|
+
readonly authenticators?: ReadonlyArray<string>;
|
|
11
|
+
readonly allowsAnonymous?: boolean;
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* Pattern de zone LISIBLE : `describe()` remonte `RegExp.source`, où V8 échappe
|
|
15
|
+
* les slashes (`^\/nodefony\/…`) — on dé-échappe pour l'affichage ET pour le
|
|
16
|
+
* classement par namespace (un `startsWith("^/nodefony")` sur la source brute
|
|
17
|
+
* ne matcherait jamais — bug vécu au premier boot réel).
|
|
18
|
+
*/
|
|
19
|
+
export declare function cleanZonePattern(pattern: string): string;
|
|
20
|
+
/**
|
|
21
|
+
* `true` si la zone vit dans le namespace réservé `/nodefony` → déclarée par
|
|
22
|
+
* `@nodefony/framework` (les aires data plane admin). L'inférence par pattern
|
|
23
|
+
* est fiable PAR CONVENTION : le routage `/nodefony` est réservé au framework
|
|
24
|
+
* (règle figée), aucune app/module tiers n'y monte d'aire.
|
|
25
|
+
*/
|
|
26
|
+
export declare function isFrameworkZone(z: FirewallZoneView): boolean;
|
|
27
|
+
/**
|
|
28
|
+
* Tableau ANSI des zones firewall (ZONE/MODULE/PATTERN/AUTH/ACCÈS) — même
|
|
29
|
+
* gabarit que le tableau process du bilan (`renderProcessTable`). MODULE = qui
|
|
30
|
+
* déclare l'aire (`framework` pour le data plane `/nodefony`, `app` pour les
|
|
31
|
+
* zones du `nodefony.config.ts`). ACCÈS résume la politique effective :
|
|
32
|
+
* `public` (security:false), `anonyme OK` (authenticator anonymous dans la
|
|
33
|
+
* chaîne — jamais bloquant, identité résolue si présente) ou `protégé`
|
|
34
|
+
* (preuve exigée, 401 sinon). Zones applicatives en vert, aires framework en dim.
|
|
35
|
+
*/
|
|
36
|
+
export declare function renderZoneTable(lines: string[], zones: ReadonlyArray<FirewallZoneView>, indent?: string): void;
|
|
37
|
+
/**
|
|
38
|
+
* Affichage « boot de rêve » du serveur en développement : une checklist animée
|
|
39
|
+
* (spinner + `✓`/`✗` par phase de boot) à la place du mur de logs `INFO`/`MODULE ADD`.
|
|
40
|
+
*
|
|
41
|
+
* **Dev-only** : instancié uniquement par `DevCommand`, côté enfant supervisé
|
|
42
|
+
* (`NF_DEV_CHILD=1`). En prod/cluster : jamais (logs structurés cloud-native).
|
|
43
|
+
*
|
|
44
|
+
* **Backplane-safe** : le spinner s'écrit DIRECTEMENT sur `process.stdout`, jamais via
|
|
45
|
+
* le Syslog. Le mute pendant le boot = {@link Syslog.setSinkEnabled} (coupe le sink
|
|
46
|
+
* texte écran) ; les transports d'écriture (`_transports` : file/cluster/loki) ET le
|
|
47
|
+
* ring buffer reçoivent TOUS les logs → rien perdu, le Log Backplane intact.
|
|
48
|
+
*
|
|
49
|
+
* Trois modes (tous dev-only) :
|
|
50
|
+
* - **TTY normal** : spinner animé + console mutée (logs → buffer/backplane).
|
|
51
|
+
* - **`--debug`** : pas d'animation, pas de mute → marqueurs `✓` de phase entre les logs
|
|
52
|
+
* bruts complets (structure sans rien cacher).
|
|
53
|
+
* - **non-TTY** (CI/redirection) : marqueurs statiques, zéro séquence `\r`.
|
|
54
|
+
*/
|
|
55
|
+
declare class BootReporter {
|
|
56
|
+
#private;
|
|
57
|
+
constructor(kernel: Kernel, opts: {
|
|
58
|
+
debug: boolean;
|
|
59
|
+
tty: boolean;
|
|
60
|
+
});
|
|
61
|
+
/**
|
|
62
|
+
* Branche les hooks de phase sur le Kernel + démarre l'affichage.
|
|
63
|
+
* À appeler depuis `DevCommand.onKernelPreStart` (après le splash, avant `loadApp`).
|
|
64
|
+
*/
|
|
65
|
+
attach(): void;
|
|
66
|
+
}
|
|
67
|
+
export default BootReporter;
|
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
import type { EventEmitter } from "node:events";
|
|
2
|
+
/** Options du superviseur de dev. */
|
|
3
|
+
export interface DevSupervisorOptions {
|
|
4
|
+
/** Racine du projet (cwd). */
|
|
5
|
+
readonly cwd: string;
|
|
6
|
+
/** Dossiers/fichiers backend surveillés (relatifs au cwd). */
|
|
7
|
+
readonly paths?: readonly string[];
|
|
8
|
+
/** Délai d'anti-rebond avant rebuild+restart (ms). */
|
|
9
|
+
readonly debounceMs?: number;
|
|
10
|
+
/** Variable d'env injectée dans l'enfant pour le distinguer du parent. */
|
|
11
|
+
readonly childEnvKey?: string;
|
|
12
|
+
/**
|
|
13
|
+
* Ports serveur à attendre **libres** avant de relancer l'enfant (évite
|
|
14
|
+
* `EADDRINUSE` au restart). Défaut : `[5151, 5152]` (HTTP/HTTPS Nodefony) ou
|
|
15
|
+
* `NF_DEV_PORTS` (liste séparée par des virgules). Les ports Vite ne sont
|
|
16
|
+
* pas listés : l'arrêt emporte l'arbre (Vite compris) et chaque instance a son
|
|
17
|
+
* propre port-retry au redémarrage.
|
|
18
|
+
*/
|
|
19
|
+
readonly ports?: readonly number[];
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Ce chemin doit-il être IGNORÉ par le watch des sources backend ?
|
|
23
|
+
*
|
|
24
|
+
* Le superviseur ne surveille que le **serveur** : les sources client ont leur
|
|
25
|
+
* propre boucle (HMR Vite), les artefacts (`dist`) sont produits par le build, et
|
|
26
|
+
* les tests ne font pas partie du runtime.
|
|
27
|
+
*
|
|
28
|
+
* ⚠️ Le piège que cette fonction referme : « frontend » est un RÔLE (le dossier
|
|
29
|
+
* des sources SPA d'un module : `studio/frontend/`, `modules/x/frontend/`) **et**
|
|
30
|
+
* un NOM DE PAQUET (`@nodefony/frontend`, le builder Vite — qui est du code
|
|
31
|
+
* SERVEUR). Ignorer tout segment nommé `frontend` rendait le watch AVEUGLE sur
|
|
32
|
+
* tout ce paquet : on l'éditait, il ne se passait rien, jamais. On n'exclut donc
|
|
33
|
+
* le dossier `frontend` que lorsqu'il n'est PAS le paquet `@nodefony/frontend`.
|
|
34
|
+
*
|
|
35
|
+
* Fonction PURE (pas de fs) → testable sans chokidar ni serveur.
|
|
36
|
+
*
|
|
37
|
+
* @param p - chemin du fichier ou dossier (relatif au projet, ou absolu).
|
|
38
|
+
* @param isFile - `true` si l'entrée est un fichier (un non-`.ts` est alors ignoré).
|
|
39
|
+
*/
|
|
40
|
+
export declare function isIgnoredWatchPath(p: string, isFile?: boolean): boolean;
|
|
41
|
+
/**
|
|
42
|
+
* Applique {@link isIgnoredWatchPath} à une entrée telle que chokidar la fournit —
|
|
43
|
+
* c'est-à-dire en chemin **absolu**.
|
|
44
|
+
*
|
|
45
|
+
* ⚠️ Le piège que cette fonction referme : les segments qui désignent un dossier de
|
|
46
|
+
* travail (`tmp`, `var`) sont des noms ORDINAIRES ailleurs. Sur macOS, `TMPDIR` vaut
|
|
47
|
+
* `/var/folders/…` — une application lancée depuis un dossier temporaire (ce que font
|
|
48
|
+
* nos propres bancs de scaffold) verrait donc CHAQUE entrée rejetée, et le watch
|
|
49
|
+
* deviendrait aveugle sans un mot. La règle ne vaut que **dans** le projet : on
|
|
50
|
+
* relativise au répertoire du projet AVANT de filtrer.
|
|
51
|
+
*
|
|
52
|
+
* @param cwd - racine du projet surveillé.
|
|
53
|
+
* @param p - chemin fourni par le watcher (absolu ou déjà relatif).
|
|
54
|
+
* @param isFile - `true` si l'entrée est un fichier.
|
|
55
|
+
*/
|
|
56
|
+
export declare function shouldIgnoreWatchEntry(cwd: string, p: string, isFile?: boolean): boolean;
|
|
57
|
+
/**
|
|
58
|
+
* Rend une erreur du watcher NON FATALE : la signale et poursuit la surveillance.
|
|
59
|
+
*
|
|
60
|
+
* Le watch est un **capteur**, pas une garantie : un dossier qui disparaît pendant
|
|
61
|
+
* son scan, un lien symbolique cassé, une permission refusée sont des faits du
|
|
62
|
+
* système de fichiers, pas des fautes du superviseur. Sans écouteur `error`, Node
|
|
63
|
+
* convertit l'événement en exception non rattrapée — et le serveur de développement
|
|
64
|
+
* entier meurt d'un incident d'observation.
|
|
65
|
+
*
|
|
66
|
+
* ⚠️ **Portée exacte** : ce garde ne couvre que ce que chokidar émet LUI-MÊME
|
|
67
|
+
* (`_handleError`, dont l'`EPERM` de Windows). Une erreur levée par le flux de
|
|
68
|
+
* parcours interne ne passe PAS par le watcher — chokidar branche `close` et `end`
|
|
69
|
+
* sur ses streams, jamais `error` — et reste donc fatale. C'est pourquoi le cas vécu
|
|
70
|
+
* en intégration continue (la suite de tests supprimait `src/nodefony/tmp/copied`
|
|
71
|
+
* pendant qu'un serveur détaché tournait ; le parcours rendait `EBUSY` et le process
|
|
72
|
+
* sortait en 1) se referme en amont, en ne DESCENDANT pas dans les dossiers de
|
|
73
|
+
* travail — cf {@link isIgnoredWatchPath}, et non ici.
|
|
74
|
+
*
|
|
75
|
+
* Le prix d'une erreur avalée est réel — le watch peut avoir perdu une branche —
|
|
76
|
+
* donc on la DIT : un rechargement qui ne part plus sans un mot est un mystère.
|
|
77
|
+
*
|
|
78
|
+
* @param watcher - l'émetteur à protéger (le `FSWatcher` de chokidar en production).
|
|
79
|
+
* @param log - reçoit le message à journaliser.
|
|
80
|
+
*/
|
|
81
|
+
export declare function attachWatcherErrorGuard(watcher: EventEmitter, log: (message: string) => void): void;
|
|
82
|
+
/**
|
|
83
|
+
* Superviseur de développement « auto-restart » (modèle nodemon, cloud-native :
|
|
84
|
+
* le process serveur est jetable).
|
|
85
|
+
*
|
|
86
|
+
* Topologie : ce process **parent** ne boote PAS le kernel applicatif — il
|
|
87
|
+
* `spawn` le serveur dans un process **enfant** (même commande + variable d'env
|
|
88
|
+
* `NF_DEV_CHILD=1`), surveille les sources **backend** et, à chaque
|
|
89
|
+
* changement, rebuild puis **redémarre l'enfant**.
|
|
90
|
+
*
|
|
91
|
+
* Le restart doit emporter l'**arbre** de l'enfant — lui et les instances Vite du
|
|
92
|
+
* `ViteProcessSupervisor` — sans quoi chaque sauvegarde laisse un Vite orphelin
|
|
93
|
+
* retenant son port. Deux grammaires y mènent, une par famille de système, et une
|
|
94
|
+
* seule implémentation les porte (`signalProcessGroup`) : en POSIX l'enfant est
|
|
95
|
+
* spawné **detached**, donc leader d'un groupe que `process.kill(-pid, …)` emporte
|
|
96
|
+
* d'un coup ; sous Windows, où les groupes POSIX n'existent pas, il est au contraire
|
|
97
|
+
* **rattaché** pour que `taskkill /T` puisse descendre la filiation. Avant chaque
|
|
98
|
+
* relance, le superviseur attend que les ports serveur soient libres
|
|
99
|
+
* (anti-`EADDRINUSE`) et retente de façon bornée si l'enfant crashe immédiatement.
|
|
100
|
+
*
|
|
101
|
+
* Pourquoi pas de HMR backend : Node ne décharge pas un module ESM déjà importé →
|
|
102
|
+
* un re-bundle du `dist/` ne rechargerait rien. Le restart de process est le seul
|
|
103
|
+
* rechargement backend fiable. Le **frontend** (Vite) garde son HMR : le dossier
|
|
104
|
+
* `frontend/` est exclu de la surveillance → une modif front ne redémarre pas le
|
|
105
|
+
* serveur.
|
|
106
|
+
*/
|
|
107
|
+
export declare class DevSupervisor {
|
|
108
|
+
#private;
|
|
109
|
+
constructor(options: DevSupervisorOptions);
|
|
110
|
+
/**
|
|
111
|
+
* Démarre le superviseur : revendique le verrou single-instance (tue tout
|
|
112
|
+
* superviseur précédent resté en vie), branche les signaux d'arrêt, attend les
|
|
113
|
+
* ports libres puis lance l'enfant et la surveillance.
|
|
114
|
+
*/
|
|
115
|
+
start(): Promise<void>;
|
|
116
|
+
}
|
|
117
|
+
export default DevSupervisor;
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Ce qu'une sonde peut rendre — et la distinction qui évite d'attendre pour rien.
|
|
3
|
+
*
|
|
4
|
+
* `"booting"` et `"unreachable"` valent tous deux « pas de verdict », mais PAS la même
|
|
5
|
+
* conduite : le premier s'attend (le boot finira), le second ne s'attendra jamais (rien
|
|
6
|
+
* ne répond en clair sur ce port, et rien n'y répondra). Les confondre coûtait la
|
|
7
|
+
* fenêtre de stabilisation ENTIÈRE à chaque démarrage d'une application sans route de
|
|
8
|
+
* santé joignable — un prix payé par tous pour une information qui ne viendra pas.
|
|
9
|
+
*/
|
|
10
|
+
export type BootProbe = boolean | "booting" | "unreachable";
|
|
11
|
+
/**
|
|
12
|
+
* Interroge `livez` et rend le verdict de boot, ou pourquoi il n'y en a pas.
|
|
13
|
+
*
|
|
14
|
+
* Aucune de ces situations ne se confond avec « sain » : une sonde muette ne doit ni
|
|
15
|
+
* bloquer un démarrage, ni le certifier.
|
|
16
|
+
*
|
|
17
|
+
* @param port - port en clair du runtime (boucle locale).
|
|
18
|
+
* @param deps - injection du client HTTP, pour éprouver sans réseau.
|
|
19
|
+
* @returns `true` (dégradé), `false` (sain), `"booting"` (verdict pas encore stable),
|
|
20
|
+
* `"unreachable"` (aucune réponse exploitable).
|
|
21
|
+
*/
|
|
22
|
+
export declare function probeBootDegraded(port: number | undefined, deps?: {
|
|
23
|
+
/** Récupère le corps de `livez` ; rend `null` sur tout échec. */
|
|
24
|
+
readonly fetchLivez?: (port: number) => Promise<string | null>;
|
|
25
|
+
}): Promise<BootProbe>;
|
|
26
|
+
/**
|
|
27
|
+
* Re-sonde jusqu'à obtenir un verdict STABLE, ou jusqu'à l'échéance.
|
|
28
|
+
*
|
|
29
|
+
* Sans cette attente, la sonde tomberait dans la course entre l'ouverture des ports et
|
|
30
|
+
* la fin du boot, et crierait « dégradé » sur une application parfaitement saine —
|
|
31
|
+
* c'est-à-dire qu'elle deviendrait une alarme qu'on apprend à ignorer.
|
|
32
|
+
*
|
|
33
|
+
* @param port - port en clair du runtime.
|
|
34
|
+
* @param settleMs - durée maximale d'attente d'un verdict.
|
|
35
|
+
* @param deps - injection du client HTTP et de l'attente, pour éprouver sans réseau.
|
|
36
|
+
* @returns le verdict, ou `null` s'il ne s'est pas stabilisé à temps.
|
|
37
|
+
*/
|
|
38
|
+
export declare function waitBootVerdict(port: number | undefined, settleMs: number, deps?: {
|
|
39
|
+
readonly fetchLivez?: (port: number) => Promise<string | null>;
|
|
40
|
+
readonly now?: () => number;
|
|
41
|
+
readonly delay?: (ms: number) => Promise<void>;
|
|
42
|
+
/** Interrompt l'attente (redémarrage, arrêt) — le verdict devient sans objet. */
|
|
43
|
+
readonly aborted?: () => boolean;
|
|
44
|
+
}): Promise<boolean | null>;
|
|
45
|
+
/**
|
|
46
|
+
* Extrait du journal d'un runtime les modules que le boot a IGNORÉS, avec leur motif.
|
|
47
|
+
*
|
|
48
|
+
* POURQUOI lire le journal plutôt que la route : `livez` ne nomme les modules qu'à un
|
|
49
|
+
* appelant authentifié, et une sonde de démarrage n'a pas d'identité à présenter. Le
|
|
50
|
+
* journal, lui, est le fichier qu'on vient d'écrire — il porte le message que le Kernel
|
|
51
|
+
* a émis en écartant le module, motif compris. Le format lu est celui de
|
|
52
|
+
* `Kernel.loadModulesFromManifest` ; le motif est ce qui suit le tiret cadratin.
|
|
53
|
+
*
|
|
54
|
+
* Fonction PURE : c'est ce qui la rend éprouvable sans démarrer quoi que ce soit.
|
|
55
|
+
*
|
|
56
|
+
* @param journal - contenu brut du journal (les couleurs sont tolérées).
|
|
57
|
+
* @returns une ligne par module ignoré, `nom — motif`, sans doublon et dans l'ordre.
|
|
58
|
+
*/
|
|
59
|
+
export declare function extractSkippedModules(journal: string): string[];
|
|
60
|
+
/** Ce qu'un runtime dit de sa DISPONIBILITÉ — « peut-il servir maintenant ? ». */
|
|
61
|
+
export interface IReadinessProbe {
|
|
62
|
+
/** `true` = le pod peut servir (boot fini ET rien ne le retient). */
|
|
63
|
+
readonly ready: boolean;
|
|
64
|
+
/** Nombre de composants qui retiennent la mise en service (0 = aucun). */
|
|
65
|
+
readonly blocked: number;
|
|
66
|
+
/**
|
|
67
|
+
* QUI retient, et pourquoi — `undefined` quand le détail n'est pas
|
|
68
|
+
* disponible ou ne CONCORDE pas avec le compte que le runtime vient de
|
|
69
|
+
* rendre.
|
|
70
|
+
*
|
|
71
|
+
* Le compte vient du runtime interrogé à l'instant ; le détail vient du
|
|
72
|
+
* fichier que le serveur publie. **Deux sources doivent concorder pour qu'on
|
|
73
|
+
* nomme** : un fichier en retard d'un cycle désignerait un contributeur déjà
|
|
74
|
+
* libéré, et l'on chercherait une cause disparue — pire que de ne rien
|
|
75
|
+
* nommer.
|
|
76
|
+
*/
|
|
77
|
+
readonly blockedBy?: readonly {
|
|
78
|
+
name: string;
|
|
79
|
+
reason?: string;
|
|
80
|
+
}[];
|
|
81
|
+
}
|
|
82
|
+
/**
|
|
83
|
+
* Demande au runtime s'il peut SERVIR — question distincte de « ses ports
|
|
84
|
+
* répondent-ils ». Un pod dont le schéma de base est en retard écoute
|
|
85
|
+
* parfaitement et ne sert rien : l'orchestrateur le tient hors du répartiteur de
|
|
86
|
+
* charge, et un rapport qui n'annoncerait que « 2/2 ports UP » serait faux et
|
|
87
|
+
* rassurant à tort — exactement le défaut que ce fichier existe pour éviter.
|
|
88
|
+
*
|
|
89
|
+
* Même canal que {@link probeBootDegraded} (le `livez` du plan d'administration,
|
|
90
|
+
* en boucle locale) : une seule sonde, un seul endroit à corriger.
|
|
91
|
+
*
|
|
92
|
+
* @param port - port en clair du runtime (boucle locale).
|
|
93
|
+
* @param deps - injection du client HTTP, pour éprouver sans réseau.
|
|
94
|
+
* @returns le verdict, ou `null` si rien d'exploitable n'a été obtenu — une
|
|
95
|
+
* sonde muette ne certifie RIEN, elle se dit muette.
|
|
96
|
+
*/
|
|
97
|
+
export declare function probeReadiness(port: number | undefined, deps?: {
|
|
98
|
+
readonly fetchLivez?: (port: number) => Promise<string | null>;
|
|
99
|
+
}): Promise<IReadinessProbe | null>;
|
|
@@ -0,0 +1,164 @@
|
|
|
1
|
+
import { type PortState } from "./devProcess.js";
|
|
2
|
+
/**
|
|
3
|
+
* Lancement DÉTACHÉ d'un runtime Nodefony (`nodefony development --detach`) —
|
|
4
|
+
* absorbe l'expérience du script `start.sh` du skill dans le framework :
|
|
5
|
+
* spawn détaché + attente de readiness + health check + code de sortie sémantique.
|
|
6
|
+
*
|
|
7
|
+
* Pur outillage de process (spawn + sonde ports + log file) : AUCUN boot kernel dans
|
|
8
|
+
* le process appelant → exécuté par le fast-path standalone de `CliKernel.start`
|
|
9
|
+
* (même famille que `status`/`stop`). Le kill préalable n'est PAS dupliqué ici :
|
|
10
|
+
* le child le porte nativement (`#claimSingleInstance` dev balaie les résiduels ;
|
|
11
|
+
* prod/cluster refuse fail-loud un runtime concurrent).
|
|
12
|
+
*
|
|
13
|
+
* Fail-fast SANS heuristique fragile : contrairement au script (détection « log figé
|
|
14
|
+
* 20 s » → faux TIMEOUT pendant un rebuild turbo légitime), on n'observe que des
|
|
15
|
+
* signaux SÛRS — process mort (exit code) OU plafond global dépassé. Un boot lent
|
|
16
|
+
* qui rebuilde reste un boot sain tant que le process vit.
|
|
17
|
+
*/
|
|
18
|
+
/** Options du détacheur, parsées d'argv (cf {@link parseDetachArgs}). */
|
|
19
|
+
export interface DetachedStartOptions {
|
|
20
|
+
/** Ligne de spawn complète — injectable pour les tests. */
|
|
21
|
+
spawnCmd: string;
|
|
22
|
+
spawnArgs: string[];
|
|
23
|
+
/** Répertoire de travail du child (défaut `process.cwd()`). */
|
|
24
|
+
cwd?: string;
|
|
25
|
+
/** Fichier de log du runtime détaché (stdout+stderr du child). */
|
|
26
|
+
logFile: string;
|
|
27
|
+
/** Plafond d'attente de readiness en secondes (défaut 120). */
|
|
28
|
+
waitSec?: number;
|
|
29
|
+
/** Ports dont l'écoute signe la readiness (défaut `defaultDevPorts()`). */
|
|
30
|
+
ports?: number[];
|
|
31
|
+
/** Path d'un GET de santé post-listen (best-effort, jamais bloquant). */
|
|
32
|
+
healthPath?: string;
|
|
33
|
+
/**
|
|
34
|
+
* Déclarer prêt un runtime dont le boot est DÉGRADÉ (cf `ParsedDetachArgs`).
|
|
35
|
+
* Défaut `false` : un module déclaré et non chargé est un échec de readiness.
|
|
36
|
+
*/
|
|
37
|
+
allowDegraded?: boolean;
|
|
38
|
+
/** Callback de progression (une ligne ~toutes les 5 s). */
|
|
39
|
+
onProgress?: (msg: string) => void;
|
|
40
|
+
/** Variables d'env additionnelles pour le child. */
|
|
41
|
+
env?: Record<string, string>;
|
|
42
|
+
}
|
|
43
|
+
/** Résultat du lancement détaché. */
|
|
44
|
+
export interface DetachedStartResult {
|
|
45
|
+
ok: boolean;
|
|
46
|
+
/** PID du process détaché (leader de groupe), `null` si le spawn a échoué. */
|
|
47
|
+
pid: number | null;
|
|
48
|
+
/** Code de sortie sémantique pour le process appelant (sysexits). */
|
|
49
|
+
exitCode: number;
|
|
50
|
+
/** État final des ports sondés. */
|
|
51
|
+
ports: PortState[];
|
|
52
|
+
logFile: string;
|
|
53
|
+
/** Résultat du health check (`"200"`, `"skipped (…)"`), absent si non demandé. */
|
|
54
|
+
health?: string;
|
|
55
|
+
/**
|
|
56
|
+
* Ports DEMANDÉS par la config quand l'app a dû glisser ailleurs
|
|
57
|
+
* (`servers.portPolicy: "auto"`), absent sinon. Un décalage tu en silence est la
|
|
58
|
+
* cause n°1 des « tout répond 404 » : le client garde le port de sa config et
|
|
59
|
+
* tombe sur le serveur du voisin, qui lui répond très bien — mais autre chose.
|
|
60
|
+
*/
|
|
61
|
+
desiredPorts?: number[];
|
|
62
|
+
/**
|
|
63
|
+
* Modules que le boot a IGNORÉS (`nom — motif`), lus dans le journal du runtime.
|
|
64
|
+
* Renseigné quand la readiness est refusée pour boot dégradé : sans ces noms, le
|
|
65
|
+
* refus serait un « dégradé » sans coupable, aussi muet que le silence qu'il
|
|
66
|
+
* remplace.
|
|
67
|
+
*/
|
|
68
|
+
modulesSkipped?: string[];
|
|
69
|
+
/** Cause de l'échec (`ok: false`) — diagnostic humain. */
|
|
70
|
+
reason?: string;
|
|
71
|
+
/** Dernières lignes du log (strip ANSI) pour le diagnostic d'échec. */
|
|
72
|
+
logTail?: string[];
|
|
73
|
+
}
|
|
74
|
+
/** Options des flags détacheur reconnues dans argv. */
|
|
75
|
+
export interface ParsedDetachArgs {
|
|
76
|
+
detach: boolean;
|
|
77
|
+
waitSec: number;
|
|
78
|
+
healthPath?: string;
|
|
79
|
+
logFile?: string;
|
|
80
|
+
/**
|
|
81
|
+
* Accepter un boot DÉGRADÉ (un module du manifeste ignoré) comme « prêt ».
|
|
82
|
+
*
|
|
83
|
+
* Le défaut est NON, et c'est le contrat même de la readiness : une application
|
|
84
|
+
* amputée d'un module qu'elle DÉCLARE ne peut pas servir ce qu'on lui demandera,
|
|
85
|
+
* et un orchestrateur ne doit pas lui envoyer de trafic. Le drapeau existe pour
|
|
86
|
+
* qui l'assume — un module optionnel absent d'un décor donné — mais la décision
|
|
87
|
+
* s'écrit alors, elle ne se subit plus en silence.
|
|
88
|
+
*/
|
|
89
|
+
allowDegraded: boolean;
|
|
90
|
+
/** argv à relayer au child (flags détacheur STRIPPÉS — anti-récursion). */
|
|
91
|
+
relayArgs: string[];
|
|
92
|
+
}
|
|
93
|
+
/** Marqueur env anti-récursion : posé sur le child pour couper tout re-détachement. */
|
|
94
|
+
export declare const DETACH_CHILD_ENV = "NF_DETACH_CHILD";
|
|
95
|
+
/**
|
|
96
|
+
* Environnement du child détaché — hérité du parent, MOINS ce qui ne se
|
|
97
|
+
* transmet pas.
|
|
98
|
+
*
|
|
99
|
+
* `DELEGATED_ENV` est une garde **anti-boucle de process** : le CLI global la
|
|
100
|
+
* pose sur lui-même juste avant de charger le CLI de l'application, pour que
|
|
101
|
+
* celui-ci exécute au lieu de redéléguer à l'infini. Elle décrit donc un état
|
|
102
|
+
* du process COURANT, pas une intention à propager.
|
|
103
|
+
*
|
|
104
|
+
* La transmettre au child était une panne silencieuse, et coûteuse à lire : le
|
|
105
|
+
* child est relancé sur le binaire d'ENTRÉE (`argv[1]`, le CLI global), et la
|
|
106
|
+
* garde héritée lui interdit précisément la délégation qui l'aurait renvoyé
|
|
107
|
+
* vers le CLI de l'application. Le framework du CLI global bootait alors
|
|
108
|
+
* l'application locale. Mesuré sur une application installée depuis les
|
|
109
|
+
* tarballs : **un seul module chargé sur huit**, puis « profil serveur mais
|
|
110
|
+
* aucun serveur en écoute » — un diagnostic qui ne parle jamais de délégation.
|
|
111
|
+
* Invisible en monorepo lié, où les deux CLI sont le même code.
|
|
112
|
+
*
|
|
113
|
+
* Le child repart donc du binaire d'entrée SANS la garde : il refait le chemin
|
|
114
|
+
* complet du parent, redélègue de lui-même, et exécute le CLI de l'application.
|
|
115
|
+
*
|
|
116
|
+
* @param parent - environnement du process appelant (`process.env`).
|
|
117
|
+
* @param extra - variables propres au lancement (cf `DetachedStartOptions.env`).
|
|
118
|
+
* @returns l'environnement à passer au child.
|
|
119
|
+
*/
|
|
120
|
+
export declare function childEnv(parent: NodeJS.ProcessEnv, extra?: Record<string, string>): NodeJS.ProcessEnv;
|
|
121
|
+
/**
|
|
122
|
+
* Drapeaux `node` à transmettre au runtime détaché.
|
|
123
|
+
*
|
|
124
|
+
* Fonction PURE — c'est ce qui permet de l'éprouver sans lancer de process.
|
|
125
|
+
*
|
|
126
|
+
* @param parentExecArgv - `process.execArgv` du lanceur.
|
|
127
|
+
* @returns les drapeaux à replacer devant le binaire du child.
|
|
128
|
+
*/
|
|
129
|
+
export declare function childExecArgv(parentExecArgv: string[]): string[];
|
|
130
|
+
/**
|
|
131
|
+
* Parse les flags du détacheur depuis argv (après node + bin) et STRIP ces flags
|
|
132
|
+
* des args relayés au child — un `--detach` relayé re-détacherait à l'infini.
|
|
133
|
+
* Fonction PURE (testable sans process).
|
|
134
|
+
*
|
|
135
|
+
* @param args - `process.argv.slice(2)`.
|
|
136
|
+
*/
|
|
137
|
+
export declare function parseDetachArgs(args: string[]): ParsedDetachArgs;
|
|
138
|
+
/** `true` si l'invocation demande un lancement détaché (et n'est PAS déjà le child). */
|
|
139
|
+
export declare function isDetachRequested(args: string[]): boolean;
|
|
140
|
+
/**
|
|
141
|
+
* Spawn le runtime détaché puis attend sa readiness (AU MOINS UN port en écoute).
|
|
142
|
+
*
|
|
143
|
+
* « Au moins un » et pas « tous » : la liste de ports est une CONVENTION du parent
|
|
144
|
+
* (défaut `[5151, 5152]`), pas la topologie réelle de l'app — une app `https: false`
|
|
145
|
+
* n'ouvrira JAMAIS 5152 et un « tous » l'attendrait à vie (faux négatif, vécu).
|
|
146
|
+
* L'état COMPLET port par port reste dans `ports` du résultat (fail-loud : un port
|
|
147
|
+
* attendu fermé est VISIBLE dans le récap, il ne bloque juste pas la readiness).
|
|
148
|
+
*
|
|
149
|
+
* Signaux d'échec (fail-fast, cf en-tête du module) :
|
|
150
|
+
* - le child MEURT avant la readiness → `EX_UNAVAILABLE` + exit code du child + tail log ;
|
|
151
|
+
* - plafond `waitSec` dépassé → group-kill du child (pas de runtime zombie à moitié
|
|
152
|
+
* booté) + `EX_UNAVAILABLE` + tail log.
|
|
153
|
+
*
|
|
154
|
+
* @returns résultat structuré — l'appelant décide du rendu et du `process.exit`.
|
|
155
|
+
*/
|
|
156
|
+
export declare function launchDetached(opts: DetachedStartOptions): Promise<DetachedStartResult>;
|
|
157
|
+
/**
|
|
158
|
+
* Point d'entrée du fast-path standalone (`CliKernel.start`) : parse argv, lance le
|
|
159
|
+
* runtime détaché, rend le rapport sur stdout et retourne le code de sortie.
|
|
160
|
+
*
|
|
161
|
+
* @param argv - `process.argv` complet (node + bin + args).
|
|
162
|
+
* @returns code de sortie sémantique (`EX_OK` / `EX_UNAVAILABLE` / `EX_USAGE`).
|
|
163
|
+
*/
|
|
164
|
+
export declare function runDetachedStart(argv: string[]): Promise<number>;
|