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,58 @@
|
|
|
1
|
+
import Command from "../../command/Command.js";
|
|
2
|
+
import { loadClusterConfig, resolveTopology } from "../../service/cluster/topology.js";
|
|
3
|
+
import { launchTopology } from "./runtimeLauncher.js";
|
|
4
|
+
import cluster from "node:cluster";
|
|
5
|
+
//#region src/kernel/commands/ClusterCommand.ts
|
|
6
|
+
const options = {
|
|
7
|
+
helpGroup: "LANCER",
|
|
8
|
+
showBanner: false,
|
|
9
|
+
kernelEvent: "onPostReady"
|
|
10
|
+
};
|
|
11
|
+
/**
|
|
12
|
+
* Commande `nodefony cluster` — démarre le serveur en mode cluster sans PM2.
|
|
13
|
+
*
|
|
14
|
+
* Remplace l'ancien `nodefony staging`/`preprod` (retiré 2026-05-25 — fusionné dans
|
|
15
|
+
* le runtime prod « 2 molettes » : topologie = `cluster.workers`, env = `NODE_ENV`) :
|
|
16
|
+
* - **cgroup-aware** — `--workers N` explicite, sinon quota CPU cgroup (conteneur),
|
|
17
|
+
* sinon `os.availableParallelism()`. Plus jamais `os.cpus().length` (bug conteneur).
|
|
18
|
+
* - **respawn backoff** — un worker mort est re-forké avec backoff exponentiel (anti crash-loop).
|
|
19
|
+
* - **graceful shutdown** — SIGTERM/SIGINT draine les workers (SIGKILL après timeout).
|
|
20
|
+
*
|
|
21
|
+
* Topologie = source unique {@link resolveTopology} : `--workers` > `NF_WORKERS`
|
|
22
|
+
* > config app `cluster.workers` > défaut 1. **`workers:1` = VRAI mono-process** (zéro
|
|
23
|
+
* machinerie cluster, un seul Kernel) ; `>= 2` → master (superviseur + gateway IPC) +
|
|
24
|
+
* N workers (chacun un seul Kernel).
|
|
25
|
+
*
|
|
26
|
+
* Régime de déploiement : ON pour container multi-cœurs / VPS / bare-metal ; OFF
|
|
27
|
+
* (1 process/pod) pour petit pod k8s + HPA. Cf `project_cluster_backplane_vision`.
|
|
28
|
+
*/
|
|
29
|
+
var Cluster = class extends Command {
|
|
30
|
+
constructor(cli) {
|
|
31
|
+
super("cluster", "démarre N workers isolés, relancés s'ils tombent", cli, options);
|
|
32
|
+
this.addOption("-w, --workers <number>", "Number of worker processes to fork (default: config cluster.workers / NF_WORKERS / 1)");
|
|
33
|
+
this.addOption("--detach", "spawn détaché + attente readiness (ports) + exit 0/69");
|
|
34
|
+
this.addOption("--wait <sec>", "plafond d'attente readiness (défaut 120)");
|
|
35
|
+
this.addOption("--health <path>", "GET de santé post-boot (best-effort)");
|
|
36
|
+
this.addOption("--log <file>", "log du runtime détaché (défaut tmp/)");
|
|
37
|
+
}
|
|
38
|
+
async onKernelStart(opts) {
|
|
39
|
+
this.cli.environment = "production";
|
|
40
|
+
process.env.NF_MODE_START = "cluster";
|
|
41
|
+
const cfgWorkers = await loadClusterConfig();
|
|
42
|
+
const topo = resolveTopology({
|
|
43
|
+
flag: opts?.workers,
|
|
44
|
+
config: cfgWorkers ?? void 0
|
|
45
|
+
});
|
|
46
|
+
await launchTopology({
|
|
47
|
+
cli: this.cli,
|
|
48
|
+
topo,
|
|
49
|
+
log: (msg, severity) => this.log(msg, severity)
|
|
50
|
+
});
|
|
51
|
+
}
|
|
52
|
+
async generate() {
|
|
53
|
+
process.title = cluster.isWorker ? `nodefony worker ${cluster.worker?.id ?? "?"} [cluster]` : "nodefony server";
|
|
54
|
+
return this.cli?.kernel;
|
|
55
|
+
}
|
|
56
|
+
};
|
|
57
|
+
//#endregion
|
|
58
|
+
export { Cluster as default };
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import Command from "../../command/Command.js";
|
|
2
|
+
import { COMPLETION_SHELLS, runCompletionCommand } from "../../cli/completion.js";
|
|
3
|
+
//#region src/kernel/commands/CompletionCommand.ts
|
|
4
|
+
const options = {
|
|
5
|
+
helpGroup: "AGENTS ET OUTILLAGE",
|
|
6
|
+
showBanner: false,
|
|
7
|
+
kernelEvent: "onStart"
|
|
8
|
+
};
|
|
9
|
+
/**
|
|
10
|
+
* Commande `nodefony completion [install|uninstall] <shell>` — imprime le script de
|
|
11
|
+
* complétion à sourcer (bash / zsh / fish), ou l'installe dans le rc du shell (bloc
|
|
12
|
+
* marqué idempotent, réversible par `uninstall`).
|
|
13
|
+
*
|
|
14
|
+
* En pratique l'invocation directe est interceptée par le fast-path STANDALONE de
|
|
15
|
+
* `CliKernel.start` (0 boot — cf `cli/completion.ts`) ; cette classe existe pour la
|
|
16
|
+
* surface commander (help, menu interactif `start`) et route vers la MÊME logique
|
|
17
|
+
* (une seule source : `runCompletionCommand`).
|
|
18
|
+
*/
|
|
19
|
+
var Completion = class extends Command {
|
|
20
|
+
constructor(cli) {
|
|
21
|
+
super("completion", `script de complétion du shell (${COMPLETION_SHELLS.join(" | ")})`, cli, options);
|
|
22
|
+
this.addArgument("[action]", "install | uninstall (default: print script)");
|
|
23
|
+
this.addArgument("[shell]", `target shell: ${COMPLETION_SHELLS.join(", ")} (default: $SHELL)`);
|
|
24
|
+
}
|
|
25
|
+
async generate() {
|
|
26
|
+
runCompletionCommand(process.argv);
|
|
27
|
+
return this;
|
|
28
|
+
}
|
|
29
|
+
};
|
|
30
|
+
//#endregion
|
|
31
|
+
export { Completion as default };
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import Command from "../../command/Command.js";
|
|
2
|
+
import { CREATE_TYPES, runCreateCommand } from "../../cli/create.js";
|
|
3
|
+
//#region src/kernel/commands/CreateCommand.ts
|
|
4
|
+
const options = {
|
|
5
|
+
helpGroup: "GÉNÉRER ET CONSTRUIRE",
|
|
6
|
+
showBanner: false,
|
|
7
|
+
kernelEvent: "onStart"
|
|
8
|
+
};
|
|
9
|
+
/**
|
|
10
|
+
* Commande `nodefony create <type> <name>` — scaffold d'un projet Nodefony depuis
|
|
11
|
+
* les templates shippés (`templates/<type>/`).
|
|
12
|
+
*
|
|
13
|
+
* En pratique l'invocation directe est interceptée par le fast-path STANDALONE de
|
|
14
|
+
* `CliKernel.start` (0 boot — cas nominal : `npx nodefony create app mon-app` HORS
|
|
15
|
+
* de tout projet) ; cette classe existe pour la surface commander (help, complétion)
|
|
16
|
+
* et route vers la MÊME logique (une seule source : `runCreateCommand`).
|
|
17
|
+
*/
|
|
18
|
+
var Create = class extends Command {
|
|
19
|
+
constructor(cli) {
|
|
20
|
+
super("create", "engendre une application, un module, une entité…", cli, options);
|
|
21
|
+
this.addArgument("<type>", CREATE_TYPES.join(" | ")).choices([...CREATE_TYPES]);
|
|
22
|
+
this.addArgument("[name]", "project name (kebab-case — asked if omitted)");
|
|
23
|
+
this.addOption("--dir <path>", "target directory (default: ./<name>)");
|
|
24
|
+
this.addOption("-f, --force", "allow a non-empty target directory");
|
|
25
|
+
this.addOption("--preset <preset>", "complete (default) | minimal");
|
|
26
|
+
this.addOption("--frontend <fw>", "none (default) | react | vue | angular");
|
|
27
|
+
this.addOption("-y, --yes", "accept spec defaults (skip interactive mode)");
|
|
28
|
+
this.addOption("--link", "wire nodefony deps as file: links to a local checkout (framework dev)");
|
|
29
|
+
this.addOption("--no-link", "force registry versions (skip link question)");
|
|
30
|
+
this.addOption("--id <kind>", "entity primary key: uuid7 (default) | uuid4 | serial");
|
|
31
|
+
this.addOption("--soft-delete", "entity: add deletedAt column");
|
|
32
|
+
this.addOption("--no-timestamps", "entity: drop createdAt/updatedAt");
|
|
33
|
+
this.addOption("--no-controller", "entity: skip the REST/WS controller");
|
|
34
|
+
this.addOption("--no-tests", "entity: skip the generated tests");
|
|
35
|
+
this.addOption("--connector <name>", "entity: ORM connector (default: default)");
|
|
36
|
+
this.addOption("--dialect <d>", "entity: sqlite | postgres | mysql (default: from config)");
|
|
37
|
+
this.addOption("--fields <spec>", "entity: \"title:string content:text\" (else positional)");
|
|
38
|
+
}
|
|
39
|
+
async generate() {
|
|
40
|
+
await runCreateCommand(process.argv);
|
|
41
|
+
return this;
|
|
42
|
+
}
|
|
43
|
+
};
|
|
44
|
+
//#endregion
|
|
45
|
+
export { Create as default };
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
import Command from "../../command/Command.js";
|
|
2
|
+
import BootReporter from "../../service/dev/BootReporter.js";
|
|
3
|
+
//#region src/kernel/commands/DevCommand.ts
|
|
4
|
+
const options = {
|
|
5
|
+
helpGroup: "LANCER",
|
|
6
|
+
showBanner: false,
|
|
7
|
+
kernelEvent: "onPostReady"
|
|
8
|
+
};
|
|
9
|
+
/** Variable d'env distinguant le serveur enfant du process superviseur parent. */
|
|
10
|
+
const CHILD_ENV = "NF_DEV_CHILD";
|
|
11
|
+
/**
|
|
12
|
+
* `true` si l'invocation demande un mode développement SANS superviseur.
|
|
13
|
+
*
|
|
14
|
+
* Lu sur `argv` et non sur les options analysées, comme `--detach` : ce choix décide
|
|
15
|
+
* de la topologie du process, donc il se tranche AVANT que Commander n'ait rendu la
|
|
16
|
+
* main. Fonction PURE (l'argv est passé) — elle s'éprouve sans lancer de serveur.
|
|
17
|
+
*
|
|
18
|
+
* @param args - `process.argv` ou son équivalent de test.
|
|
19
|
+
*/
|
|
20
|
+
function isWatchDisabled(args) {
|
|
21
|
+
return args.includes("--no-watch");
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Commande `nodefony development` — serveur en mode dev (front Vite/HMR + auto-restart).
|
|
25
|
+
*
|
|
26
|
+
* **Invariant non négociable : `development` = TOUJOURS 1 process.** La molette
|
|
27
|
+
* topologie (`cluster.workers` / `--workers` / `NF_WORKERS`) est **ignorée** en
|
|
28
|
+
* dev : Vite exige un process maître unique (conflit port HMR si N workers spawnaient
|
|
29
|
+
* chacun leur Vite). Le multi-process se règle uniquement sur le runtime prod
|
|
30
|
+
* (`nodefony cluster`). Cf décision « 2 molettes » 2026-05-24.
|
|
31
|
+
*
|
|
32
|
+
* Le seul « 2ᵉ process » en dev est le couple superviseur/enfant du {@link DevSupervisor}
|
|
33
|
+
* (auto-restart au changement de source backend) — ce n'est PAS du cluster.
|
|
34
|
+
*/
|
|
35
|
+
var Dev = class extends Command {
|
|
36
|
+
#reporter = null;
|
|
37
|
+
constructor(cli) {
|
|
38
|
+
super("development", "démarre en développement, rechargement automatique", cli, options);
|
|
39
|
+
this.alias("dev");
|
|
40
|
+
this.addOption("--detach", "spawn détaché + attente readiness (ports) + exit 0/69");
|
|
41
|
+
this.addOption("--wait <sec>", "plafond d'attente readiness (défaut 120)");
|
|
42
|
+
this.addOption("--health <path>", "GET de santé post-boot (best-effort)");
|
|
43
|
+
this.addOption("--log <file>", "log du runtime détaché (défaut tmp/)");
|
|
44
|
+
this.addOption("--no-watch", "développement SANS superviseur : un seul process, aucun rechargement automatique");
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Boot de rêve dev : checklist animée par phase (spinner + ✓/✗) à la place du mur
|
|
48
|
+
* de logs. Branché AVANT `loadApp` (gros import) pour couvrir le gap de feedback.
|
|
49
|
+
* **Enfant supervisé uniquement** (`NF_DEV_CHILD=1`) : le superviseur parent
|
|
50
|
+
* ne boote pas de serveur → aucun affichage. Animation TTY non-debug ; debug/non-TTY
|
|
51
|
+
* → marqueurs statiques + logs bruts (cf {@link BootReporter}).
|
|
52
|
+
*/
|
|
53
|
+
async onKernelPreStart() {
|
|
54
|
+
if (process.env[CHILD_ENV] !== "1" && !isWatchDisabled(process.argv)) return;
|
|
55
|
+
const kernel = this.kernel;
|
|
56
|
+
if (!kernel) return;
|
|
57
|
+
this.#reporter = new BootReporter(kernel, {
|
|
58
|
+
debug: Boolean(kernel.debug),
|
|
59
|
+
tty: kernel.isTTY
|
|
60
|
+
});
|
|
61
|
+
this.#reporter.attach();
|
|
62
|
+
}
|
|
63
|
+
async onKernelStart() {
|
|
64
|
+
this.cli.environment = "development";
|
|
65
|
+
process.env.NF_MODE_START = "development";
|
|
66
|
+
if (process.env[CHILD_ENV] === "1" || isWatchDisabled(process.argv)) {
|
|
67
|
+
this.kernel?.once("onReady", () => {
|
|
68
|
+
process.title = "nodefony-dev-server";
|
|
69
|
+
});
|
|
70
|
+
this.cli.setRunProfile({
|
|
71
|
+
servers: true,
|
|
72
|
+
lifetime: "longrunning",
|
|
73
|
+
interactive: false
|
|
74
|
+
});
|
|
75
|
+
return;
|
|
76
|
+
}
|
|
77
|
+
this.cli.setRunProfile({
|
|
78
|
+
servers: false,
|
|
79
|
+
lifetime: "longrunning",
|
|
80
|
+
interactive: false
|
|
81
|
+
});
|
|
82
|
+
const { default: DevSupervisor } = await import("../../service/dev/DevSupervisor.js");
|
|
83
|
+
await new DevSupervisor({
|
|
84
|
+
cwd: process.cwd(),
|
|
85
|
+
childEnvKey: CHILD_ENV
|
|
86
|
+
}).start();
|
|
87
|
+
await this.kernel.park();
|
|
88
|
+
}
|
|
89
|
+
async generate() {
|
|
90
|
+
try {
|
|
91
|
+
return this.cli?.kernel;
|
|
92
|
+
} catch (e) {
|
|
93
|
+
this.log(e, "ERROR");
|
|
94
|
+
throw e;
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
};
|
|
98
|
+
//#endregion
|
|
99
|
+
export { Dev as default, isWatchDisabled };
|
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
import Command from "../../command/Command.js";
|
|
2
|
+
import { readTargetProvision } from "../checks/gating.js";
|
|
3
|
+
import { collectLiveReport, liveNotRun } from "../checks/live.js";
|
|
4
|
+
import { attachLive, collectDoctorReport, parseDoctorArgv, renderDoctorReport, reporterProgression, runDoctorCommand } from "../checks/runDoctor.js";
|
|
5
|
+
import { localOperatorCaller } from "../adminPlane/adminCaller.js";
|
|
6
|
+
//#region src/kernel/commands/DoctorCommand.ts
|
|
7
|
+
const options = {
|
|
8
|
+
helpGroup: "COMPRENDRE",
|
|
9
|
+
quietBoot: true,
|
|
10
|
+
showBanner: false,
|
|
11
|
+
kernelEvent: "onPostReady"
|
|
12
|
+
};
|
|
13
|
+
/**
|
|
14
|
+
* Commande `nodefony doctor` — contrôle la cohérence des paquets de l'application.
|
|
15
|
+
*
|
|
16
|
+
* Elle répond à une question qu'aucun test applicatif ne pose : **ce que mes
|
|
17
|
+
* modules importent, est-ce qu'ils le déclarent ?** Tant qu'on développe, la
|
|
18
|
+
* réponse n'a aucune importance — npm hisse tout à la racine du projet, donc un
|
|
19
|
+
* import non déclaré se résout quand même. Elle en prend le jour où le module
|
|
20
|
+
* part ailleurs : l'installation n'amène pas ce qui n'est pas déclaré, et un
|
|
21
|
+
* outil de construction ne peut pas ordonner ce qu'on ne lui a pas dit.
|
|
22
|
+
*
|
|
23
|
+
* **Exécutée en « standalone » (zéro boot).** L'enregistrement ici sert au help
|
|
24
|
+
* (`nodefony --help`) ; l'exécution réelle est interceptée par le fast-path de
|
|
25
|
+
* {@link CliKernel.start} AVANT toute construction de Kernel — le contrôle ne
|
|
26
|
+
* lit que des fichiers. Le `generate()` ci-dessous n'est qu'un FILET.
|
|
27
|
+
*
|
|
28
|
+
* Un projet déclare ses exceptions dans son `package.json`, clé
|
|
29
|
+
* `nodefony.doctor` (`typeCycles`, `typesUnreachable`) : un cycle de types
|
|
30
|
+
* légitime existe, et un contrôle qu'on ne peut pas satisfaire est un contrôle
|
|
31
|
+
* qu'on apprend à ignorer.
|
|
32
|
+
*
|
|
33
|
+
* @example
|
|
34
|
+
* ```bash
|
|
35
|
+
* nodefony doctor # sortie lisible, sort en erreur si un manquement
|
|
36
|
+
* nodefony doctor --json # même chose, exploitable par un script de CI
|
|
37
|
+
* nodefony doctor --strict # un contrôle SAUTÉ échoue aussi (défaut sous `CI`)
|
|
38
|
+
* nodefony doctor --live # DEMANDE en plus à l'application (boot, 0 port)
|
|
39
|
+
* nodefony doctor --env production # ce qui manquera LÀ-BAS, depuis ce poste
|
|
40
|
+
* ```
|
|
41
|
+
*/
|
|
42
|
+
var Check = class extends Command {
|
|
43
|
+
constructor(cli) {
|
|
44
|
+
super("doctor", "ce qui ne va pas dans cette application", cli, options);
|
|
45
|
+
this.addOption("--json", "Machine-readable output");
|
|
46
|
+
this.addOption("--strict", "Un contrôle SAUTÉ fait échouer (actif d'office si `CI` est posé)");
|
|
47
|
+
this.addOption("--no-strict", "Tolère un contrôle sauté même en intégration continue");
|
|
48
|
+
this.addOption("--deep", "tout : lance typecheck/lint/test, interroge npm, et demande à l'application (implique --live)");
|
|
49
|
+
this.addOption("--live", "Demande aussi à l'application démarrée (migrations, cohérence des zones)");
|
|
50
|
+
this.addOption("--no-live", "S'en tient aux fichiers : aucun démarrage, même si un script le demande");
|
|
51
|
+
this.addOption("--env <name>", "Dit ce qui manquera dans CET environnement (ex. production), depuis ce poste", [
|
|
52
|
+
"production",
|
|
53
|
+
"development",
|
|
54
|
+
"preprod",
|
|
55
|
+
"staging"
|
|
56
|
+
]);
|
|
57
|
+
this.addOption("--cwd <path>", "Start directory (the app root is resolved from it)");
|
|
58
|
+
}
|
|
59
|
+
async generate(opts) {
|
|
60
|
+
const argv = [];
|
|
61
|
+
if (opts?.json) argv.push("--json");
|
|
62
|
+
if (opts?.strict) argv.push("--strict");
|
|
63
|
+
if (opts?.noStrict) argv.push("--no-strict");
|
|
64
|
+
if (opts?.live) argv.push("--live");
|
|
65
|
+
if (opts?.deep) argv.push("--deep");
|
|
66
|
+
if (opts?.env) argv.push("--env", opts.env);
|
|
67
|
+
if (opts?.cwd) argv.push("--cwd", opts.cwd);
|
|
68
|
+
if (!opts?.live) {
|
|
69
|
+
await this.terminate(await runDoctorCommand(argv));
|
|
70
|
+
return this;
|
|
71
|
+
}
|
|
72
|
+
const parsed = parseDoctorArgv(argv);
|
|
73
|
+
if ("error" in parsed) {
|
|
74
|
+
await this.terminate(await runDoctorCommand(argv));
|
|
75
|
+
return this;
|
|
76
|
+
}
|
|
77
|
+
const debut = Date.now();
|
|
78
|
+
const report = await collectDoctorReport(parsed.cwd, parsed.targetEnv, parsed.deep, reporterProgression(parsed.json));
|
|
79
|
+
const complete = attachLive(report, await this.readLive(parsed.cwd, parsed.targetEnv));
|
|
80
|
+
await this.terminate(renderDoctorReport(complete, parsed, Date.now() - debut));
|
|
81
|
+
return this;
|
|
82
|
+
}
|
|
83
|
+
/**
|
|
84
|
+
* Interroge l'application que ce processus vient de démarrer.
|
|
85
|
+
*
|
|
86
|
+
* 🔴 **Ne lève jamais.** Le rapport statique est celui dont on a besoin quand
|
|
87
|
+
* l'application va mal : une exception ici l'emporterait tout entier, au pire
|
|
88
|
+
* moment. Un étage 2 impossible devient donc un état d'exécution lisible —
|
|
89
|
+
* ce qui a manqué, et le geste qui le rendrait possible.
|
|
90
|
+
*
|
|
91
|
+
* @returns ce que l'application a dit, ou la raison de son silence
|
|
92
|
+
*/
|
|
93
|
+
async readLive(start, targetEnv) {
|
|
94
|
+
const broker = this.kernel?.container?.get("adminBroker");
|
|
95
|
+
if (!broker) return liveNotRun("l'application a démarré, mais sans plan d'administration : aucun producteur ne peut être interrogé", "vérifie que `@nodefony/framework` est bien chargé");
|
|
96
|
+
try {
|
|
97
|
+
const kernel = this.kernel;
|
|
98
|
+
return await collectLiveReport(broker, localOperatorCaller(), {
|
|
99
|
+
targetEnv,
|
|
100
|
+
manifest: kernel?.options?.modules,
|
|
101
|
+
config: kernel?.options,
|
|
102
|
+
readTarget: readTargetProvision({
|
|
103
|
+
execPath: process.execPath,
|
|
104
|
+
binPath: process.argv[1] ?? "",
|
|
105
|
+
cwd: kernel?.path ?? start,
|
|
106
|
+
env: process.env
|
|
107
|
+
})
|
|
108
|
+
});
|
|
109
|
+
} catch (e) {
|
|
110
|
+
return liveNotRun(`l'interrogation de l'application a échoué — ${e.message}`);
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
};
|
|
114
|
+
//#endregion
|
|
115
|
+
export { Check as default };
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import Command from "../../command/Command.js";
|
|
2
|
+
import { runEnvCommand } from "../../cli/env.js";
|
|
3
|
+
//#region src/kernel/commands/EnvCommand.ts
|
|
4
|
+
const options = {
|
|
5
|
+
helpGroup: "COMPRENDRE",
|
|
6
|
+
quietBoot: true,
|
|
7
|
+
showBanner: false,
|
|
8
|
+
kernelEvent: "onRegister"
|
|
9
|
+
};
|
|
10
|
+
/**
|
|
11
|
+
* Commande `nodefony env` — l'environnement de l'application, en entier.
|
|
12
|
+
*
|
|
13
|
+
* Elle répond aux quatre questions qu'on se pose toujours ensemble, et dont
|
|
14
|
+
* aucune n'avait de réponse ailleurs que dans le code du framework : **quels
|
|
15
|
+
* fichiers `.env` sont lus et dans quel ORDRE**, **quelles variables
|
|
16
|
+
* l'application déclare**, **quelle valeur est effective et d'où elle vient**,
|
|
17
|
+
* et **ce qui est ignoré** — une valeur masquée par un fichier plus prioritaire,
|
|
18
|
+
* ou une variable `NF_` mal orthographiée, qui n'a aucun effet et ne le dit
|
|
19
|
+
* jamais.
|
|
20
|
+
*
|
|
21
|
+
* **Exécutée en « standalone » (zéro boot).** L'enregistrement ici sert au help
|
|
22
|
+
* (`nodefony --help`) ; l'exécution réelle est interceptée par le fast-path de
|
|
23
|
+
* {@link CliKernel.start}. C'est délibéré : on cherche une variable
|
|
24
|
+
* d'environnement précisément quand l'application NE démarre pas. Une commande
|
|
25
|
+
* de diagnostic qui exige un boot réussi est muette au seul moment où elle sert.
|
|
26
|
+
*
|
|
27
|
+
* Sort en 78 (`EX_CONFIG`) si une variable REQUISE manque — un script s'arrête
|
|
28
|
+
* là plutôt que de lancer un démarrage voué à l'échec.
|
|
29
|
+
*
|
|
30
|
+
* @example
|
|
31
|
+
* ```bash
|
|
32
|
+
* nodefony env # cascade, variables, provenance, ce qui est ignoré
|
|
33
|
+
* nodefony env --json # même rapport, pour un script ou un agent
|
|
34
|
+
* ```
|
|
35
|
+
*/
|
|
36
|
+
var Env = class extends Command {
|
|
37
|
+
constructor(cli) {
|
|
38
|
+
super("env", "les variables d'environnement et leur provenance", cli, options);
|
|
39
|
+
this.addOption("-j, --json", "sortie JSON (scriptable)");
|
|
40
|
+
this.addOption("--example", "Dérive .env.example du catalogue env.ts (ADR-0006)");
|
|
41
|
+
this.addOption("--check", "Avec --example : vérifie sans écrire, sort en erreur si le fichier diverge");
|
|
42
|
+
this.addOption("--env <name>", "Évalue les exigences sous CET environnement (ex. production), depuis ce poste");
|
|
43
|
+
this.addOption("--cwd <path>", "Point de départ (la racine de l'app est résolue en remontant)");
|
|
44
|
+
}
|
|
45
|
+
async generate(opts) {
|
|
46
|
+
const code = await runEnvCommand(opts?.json ? ["env", "--json"] : ["env"]);
|
|
47
|
+
await this.terminate(code);
|
|
48
|
+
return this;
|
|
49
|
+
}
|
|
50
|
+
};
|
|
51
|
+
//#endregion
|
|
52
|
+
export { Env as default };
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import Command from "../../command/Command.js";
|
|
2
|
+
import { runGitHooksCommand } from "../../cli/gitHooks.js";
|
|
3
|
+
//#region src/kernel/commands/GitHooksCommand.ts
|
|
4
|
+
const options = {
|
|
5
|
+
helpGroup: "AGENTS ET OUTILLAGE",
|
|
6
|
+
quietBoot: true,
|
|
7
|
+
showBanner: false,
|
|
8
|
+
kernelEvent: "onRegister"
|
|
9
|
+
};
|
|
10
|
+
/**
|
|
11
|
+
* Commande `nodefony git:hooks` — hooks git natifs (`core.hooksPath`), zéro
|
|
12
|
+
* dépendance.
|
|
13
|
+
*
|
|
14
|
+
* **Exécutée en « standalone » (zéro boot).** L'enregistrement ici sert au help
|
|
15
|
+
* (`nodefony --help`) et à la complétion ; l'exécution réelle est interceptée
|
|
16
|
+
* par le fast-path de {@link CliKernel.start} AVANT toute construction de
|
|
17
|
+
* Kernel — la commande n'écrit que deux fichiers et une clé de config. Le
|
|
18
|
+
* `generate()` ci-dessous n'est qu'un FILET.
|
|
19
|
+
*
|
|
20
|
+
* @example
|
|
21
|
+
* ```bash
|
|
22
|
+
* nodefony git:hooks # pose .githooks/ + core.hooksPath
|
|
23
|
+
* nodefony git:hooks --dry-run # le plan, sans rien écrire ni configurer
|
|
24
|
+
* ```
|
|
25
|
+
*/
|
|
26
|
+
var GitHooks = class extends Command {
|
|
27
|
+
constructor(cli) {
|
|
28
|
+
super("git:hooks", "pose les hooks git : contrôles au commit et au push", cli, options);
|
|
29
|
+
this.addOption("--dry-run", "Le plan, sans rien écrire ni configurer");
|
|
30
|
+
this.addOption("--json", "Sortie exploitable par un script");
|
|
31
|
+
this.addOption("--cwd <path>", "Point de départ (la racine de l'app est résolue en remontant)");
|
|
32
|
+
}
|
|
33
|
+
async generate(opts) {
|
|
34
|
+
const argv = [
|
|
35
|
+
"node",
|
|
36
|
+
"nodefony",
|
|
37
|
+
"git:hooks"
|
|
38
|
+
];
|
|
39
|
+
if (opts?.dryRun) argv.push("--dry-run");
|
|
40
|
+
if (opts?.json) argv.push("--json");
|
|
41
|
+
if (opts?.cwd) argv.push("--cwd", opts.cwd);
|
|
42
|
+
await this.terminate(runGitHooksCommand(argv));
|
|
43
|
+
return this;
|
|
44
|
+
}
|
|
45
|
+
};
|
|
46
|
+
//#endregion
|
|
47
|
+
export { GitHooks as default };
|
|
@@ -0,0 +1,153 @@
|
|
|
1
|
+
import "../../cli/sysexits.js";
|
|
2
|
+
import Command from "../../command/Command.js";
|
|
3
|
+
import { shouldColorize, usableWidth } from "../checks/report.js";
|
|
4
|
+
import { INSPECT_SUBJECTS, readAdminSubject } from "../inspect/adminSubjects.js";
|
|
5
|
+
import { localOperatorCaller } from "../adminPlane/adminCaller.js";
|
|
6
|
+
import { renderTable } from "../../cli/tableReport.js";
|
|
7
|
+
//#region src/kernel/commands/InspectCommand.ts
|
|
8
|
+
/**
|
|
9
|
+
* `kernelEvent: "onPostReady"` — et pas `onReady`, malgré les apparences.
|
|
10
|
+
*
|
|
11
|
+
* Le plan d'administration est monté PAR un écouteur de `onReady`
|
|
12
|
+
* (`Framework.onKernelReady`). Or l'action d'une commande intégrée est branchée
|
|
13
|
+
* avant que le moindre module n'existe : à `onReady`, elle passerait donc AVANT
|
|
14
|
+
* celui qui peuple le registre, et ne trouverait rien à inspecter. La phase
|
|
15
|
+
* suivante est la première où le registre est garanti complet.
|
|
16
|
+
*
|
|
17
|
+
* Aucun serveur n'écoute pour autant : le profil console (`servers: false`, le
|
|
18
|
+
* défaut) est respecté par `Kernel.initServers`.
|
|
19
|
+
*/
|
|
20
|
+
const options = {
|
|
21
|
+
helpGroup: "COMPRENDRE",
|
|
22
|
+
quietBoot: true,
|
|
23
|
+
showBanner: false,
|
|
24
|
+
kernelEvent: "onPostReady"
|
|
25
|
+
};
|
|
26
|
+
/**
|
|
27
|
+
* Traduit un échec de lecture en code de sortie POSIX.
|
|
28
|
+
*
|
|
29
|
+
* La lecture (`readAdminSubject`) dit POURQUOI ; c'est à chaque porte de le
|
|
30
|
+
* dire dans son vocabulaire — un code `sysexits` ici, un code JSON-RPC pour le
|
|
31
|
+
* serveur MCP. La table des sujets, elle, n'est écrite qu'une fois.
|
|
32
|
+
*/
|
|
33
|
+
const EXIT_BY_FAILURE = {
|
|
34
|
+
"unknown-subject": 64,
|
|
35
|
+
"missing-target": 64,
|
|
36
|
+
"producer-missing": 69,
|
|
37
|
+
"endpoint-missing": 69,
|
|
38
|
+
"handler-failed": 70,
|
|
39
|
+
"not-found": 66,
|
|
40
|
+
forbidden: 77
|
|
41
|
+
};
|
|
42
|
+
/**
|
|
43
|
+
* `nodefony inspect <sujet> [--json]` — lit l'état RÉEL de l'application, sans
|
|
44
|
+
* serveur ni session.
|
|
45
|
+
*
|
|
46
|
+
* Pourquoi cette commande existe : l'état d'une application (ses routes, ses
|
|
47
|
+
* services, sa configuration effective) est déjà exposé par le plan
|
|
48
|
+
* d'administration — mais derrière HTTP, un rôle d'administrateur et un serveur
|
|
49
|
+
* qui tourne. Trois obstacles pour qui travaille dans un terminal, et zéro pour
|
|
50
|
+
* qui lit le code : on répond donc en devinant à partir des sources, alors que
|
|
51
|
+
* la vérité est calculable en une seconde.
|
|
52
|
+
*
|
|
53
|
+
* Le contrôle d'accès du plan d'administration protège le RÉSEAU. Ici, il n'y a
|
|
54
|
+
* pas de réseau : celui qui lance la commande a déjà le disque et la
|
|
55
|
+
* configuration. La redaction, elle, s'applique quand même — elle vit DANS les
|
|
56
|
+
* producteurs, pas dans le transport, donc un secret n'est pas plus lisible par
|
|
57
|
+
* cette porte que par l'autre.
|
|
58
|
+
*
|
|
59
|
+
* 🔴 **La réponse dépend du MODE, et c'est pour cela qu'elle l'annonce.** Les
|
|
60
|
+
* modules `policy:"dev"` ne sont pas chargés en production : la MÊME application
|
|
61
|
+
* rend 136 routes en production et 354 en développement. Un nombre lu sans son
|
|
62
|
+
* mode ne veut rien dire — mesuré, un agent a rapporté le compte d'une app en
|
|
63
|
+
* marche pendant qu'un contrôle mesurait la même app bootée à froid dans l'autre
|
|
64
|
+
* mode, et les deux avaient raison. L'environnement est donc écrit à côté du
|
|
65
|
+
* total en rendu humain, et sur la sortie d'ERREUR en `--json` — jamais dans le
|
|
66
|
+
* flux, qui doit rester parsable tel quel.
|
|
67
|
+
*
|
|
68
|
+
* @example
|
|
69
|
+
* ```bash
|
|
70
|
+
* nodefony inspect routes --json | jq '.[] | select(.methods[] == "POST")'
|
|
71
|
+
* nodefony inspect module http --json
|
|
72
|
+
* ```
|
|
73
|
+
*/
|
|
74
|
+
var Inspect = class extends Command {
|
|
75
|
+
constructor(cli) {
|
|
76
|
+
super("inspect", "l'état réel de l'app : routes, services, config", cli, options);
|
|
77
|
+
this.addArgument("[sujet]", `sujet : ${Object.keys(INSPECT_SUBJECTS).join(" | ")}`).choices(Object.keys(INSPECT_SUBJECTS));
|
|
78
|
+
this.addArgument("[cible]", "paramètre du sujet (ex : le nom d'un module)");
|
|
79
|
+
this.addOption("-j, --json", "sortie JSON (scriptable)");
|
|
80
|
+
}
|
|
81
|
+
async generate(subjectArg, target, opts = {}) {
|
|
82
|
+
let subject;
|
|
83
|
+
try {
|
|
84
|
+
subject = await this.askArgument(subjectArg, {
|
|
85
|
+
name: "sujet",
|
|
86
|
+
message: "Que veux-tu inspecter ?",
|
|
87
|
+
choices: Object.keys(INSPECT_SUBJECTS),
|
|
88
|
+
...opts.json ? { isTTY: false } : {}
|
|
89
|
+
});
|
|
90
|
+
} catch (e) {
|
|
91
|
+
this.log(e.message, "ERROR");
|
|
92
|
+
process.exitCode = 1;
|
|
93
|
+
return this;
|
|
94
|
+
}
|
|
95
|
+
const broker = this.kernel?.container?.get("adminBroker");
|
|
96
|
+
const read = await readAdminSubject(broker, subject, localOperatorCaller(), target);
|
|
97
|
+
if (!read.ok) {
|
|
98
|
+
const hint = read.reason === "missing-target" ? ` : nodefony inspect ${subject} <${INSPECT_SUBJECTS[subject]?.param}>` : "";
|
|
99
|
+
const why = read.cause ? ` — ${read.cause}` : "";
|
|
100
|
+
this.log(`${read.message}${why}${hint}`, "ERROR");
|
|
101
|
+
if (read.body !== void 0 && read.body !== null) this.log(JSON.stringify(read.body, null, 2), "ERROR");
|
|
102
|
+
await this.terminate(EXIT_BY_FAILURE[read.reason]);
|
|
103
|
+
return this;
|
|
104
|
+
}
|
|
105
|
+
if (opts.json) {
|
|
106
|
+
process.stderr.write(`environnement : ${this.currentEnvironment()}\n`);
|
|
107
|
+
process.stdout.write(`${JSON.stringify(read.data, null, 2)}\n`);
|
|
108
|
+
} else this.renderHuman(subject, read.data);
|
|
109
|
+
await this.terminate(0);
|
|
110
|
+
return this;
|
|
111
|
+
}
|
|
112
|
+
/**
|
|
113
|
+
* Rendu lisible par défaut — un tableau de lignes devient un tableau.
|
|
114
|
+
*
|
|
115
|
+
* Volontairement sommaire : le format qui compte est `--json`, celui qu'on
|
|
116
|
+
* enchaîne. Le rendu humain sert à répondre « qu'est-ce qu'il y a là-dedans »
|
|
117
|
+
* sans ouvrir un autre outil, pas à remplacer la console d'administration.
|
|
118
|
+
*/
|
|
119
|
+
/**
|
|
120
|
+
* Le mode MOTEUR sous lequel cette lecture a été faite.
|
|
121
|
+
*
|
|
122
|
+
* Sans kernel — cas qui ne devrait pas se produire ici, la commande booted —
|
|
123
|
+
* on le DIT plutôt que de deviner : une valeur inventée serait pire que pas
|
|
124
|
+
* de valeur, puisqu'elle serait crue.
|
|
125
|
+
*
|
|
126
|
+
* @returns le nom de l'environnement, ou `"inconnu"`
|
|
127
|
+
*/
|
|
128
|
+
currentEnvironment() {
|
|
129
|
+
return this.kernel?.environment ?? "inconnu";
|
|
130
|
+
}
|
|
131
|
+
renderHuman(subject, payload) {
|
|
132
|
+
if (Array.isArray(payload)) {
|
|
133
|
+
if (payload.length === 0) {
|
|
134
|
+
process.stdout.write(`${subject} : aucun (environnement : ${this.currentEnvironment()})\n`);
|
|
135
|
+
return;
|
|
136
|
+
}
|
|
137
|
+
const out = process.stdout;
|
|
138
|
+
const lines = renderTable(payload, {
|
|
139
|
+
width: usableWidth(out.columns),
|
|
140
|
+
color: shouldColorize(process.env, Boolean(this.kernel?.isTTY))
|
|
141
|
+
});
|
|
142
|
+
out.write(`${lines.join("\n")}\n\n`);
|
|
143
|
+
process.stdout.write(`${payload.length} ${subject} (environnement : ${this.currentEnvironment()})\n`);
|
|
144
|
+
return;
|
|
145
|
+
}
|
|
146
|
+
console.dir(payload, {
|
|
147
|
+
depth: 4,
|
|
148
|
+
colors: true
|
|
149
|
+
});
|
|
150
|
+
}
|
|
151
|
+
};
|
|
152
|
+
//#endregion
|
|
153
|
+
export { Inspect as default };
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import Command from "../../command/Command.js";
|
|
2
|
+
//#region src/kernel/commands/InstallCommand.ts
|
|
3
|
+
const optionsCommand = {
|
|
4
|
+
helpGroup: "GÉNÉRER ET CONSTRUIRE",
|
|
5
|
+
showBanner: false,
|
|
6
|
+
kernelEvent: "onRegister"
|
|
7
|
+
};
|
|
8
|
+
var Install = class extends Command {
|
|
9
|
+
constructor(cli) {
|
|
10
|
+
super("install", "installe les dépendances puis construit le projet", cli, optionsCommand);
|
|
11
|
+
this.addOption("-f, --force", "Force Install");
|
|
12
|
+
}
|
|
13
|
+
async generate(options) {
|
|
14
|
+
const modules = this.kernel?.getModules();
|
|
15
|
+
if (modules) for (const moduleName in modules) await modules[moduleName].install(options?.force);
|
|
16
|
+
return this;
|
|
17
|
+
}
|
|
18
|
+
};
|
|
19
|
+
//#endregion
|
|
20
|
+
export { Install as default };
|