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,496 @@
|
|
|
1
|
+
import { MENU_GROUP_LABELS } from "./helpReport.js";
|
|
2
|
+
//#region src/cli/startMenu.ts
|
|
3
|
+
/**
|
|
4
|
+
* Composition PURE du menu interactif `nodefony menu` — même patron que
|
|
5
|
+
* `envReport`/`cardReport`/`aiSyncReport` : ce fichier reçoit l'état (contexte,
|
|
6
|
+
* descriptions, commandes de module) et rend une structure neutre ; l'adaptateur
|
|
7
|
+
* (`MenuCommand`) la traduit en prompts inquirer. Zéro I/O, zéro import lourd :
|
|
8
|
+
* testable sans TTY et sans kernel.
|
|
9
|
+
*
|
|
10
|
+
* Deux règles tiennent ce menu :
|
|
11
|
+
* - le RÉSUMÉ d'une entrée vient de `command.description()` (source unique,
|
|
12
|
+
* celle de `--help`) — jamais d'une copie locale qui divergerait ;
|
|
13
|
+
* - le menu n'ajoute que ce qui n'existe nulle part ailleurs : le CONSEIL
|
|
14
|
+
* d'usage (`when`), affiché sous la liste pendant la navigation.
|
|
15
|
+
*
|
|
16
|
+
* Une commande absente de commander (retirée, renommée) sort du menu toute
|
|
17
|
+
* seule : `describe()` rend `null` et l'entrée n'est pas émise.
|
|
18
|
+
*/
|
|
19
|
+
/**
|
|
20
|
+
* Catalogue déclaratif du menu. L'ordre du tableau EST l'ordre d'affichage,
|
|
21
|
+
* groupe par groupe. Ajouter une commande au menu = une entrée ici, rien
|
|
22
|
+
* d'autre (le résumé et la disponibilité viennent de commander).
|
|
23
|
+
*/
|
|
24
|
+
/**
|
|
25
|
+
* Le libellé de menu d'une intention — la MÊME taxonomie que l'aide.
|
|
26
|
+
*
|
|
27
|
+
* @param intention - un groupe de `HELP_GROUPS`.
|
|
28
|
+
* @returns le libellé à afficher dans le menu.
|
|
29
|
+
*/
|
|
30
|
+
function menuGroup(intention) {
|
|
31
|
+
return MENU_GROUP_LABELS[intention];
|
|
32
|
+
}
|
|
33
|
+
const START_MENU_CATALOG = [
|
|
34
|
+
{
|
|
35
|
+
value: "development",
|
|
36
|
+
contexts: ["project"],
|
|
37
|
+
group: {
|
|
38
|
+
project: menuGroup("LANCER"),
|
|
39
|
+
outside: null
|
|
40
|
+
},
|
|
41
|
+
when: "Pour coder : rechargement automatique à chaque sauvegarde, HMR côté front. Ctrl+C pour arrêter."
|
|
42
|
+
},
|
|
43
|
+
{
|
|
44
|
+
value: "production",
|
|
45
|
+
contexts: ["project"],
|
|
46
|
+
group: {
|
|
47
|
+
project: menuGroup("LANCER"),
|
|
48
|
+
outside: null
|
|
49
|
+
},
|
|
50
|
+
when: "Le mode des conteneurs et des pods : premier plan, logs sur la sortie standard, arrêt gracieux sur SIGTERM."
|
|
51
|
+
},
|
|
52
|
+
{
|
|
53
|
+
value: "cluster",
|
|
54
|
+
contexts: ["project"],
|
|
55
|
+
group: {
|
|
56
|
+
project: menuGroup("LANCER"),
|
|
57
|
+
outside: null
|
|
58
|
+
},
|
|
59
|
+
when: "Plusieurs workers isolés sur une même machine (bare-metal/VPS) — relance automatique d'un worker tombé."
|
|
60
|
+
},
|
|
61
|
+
{
|
|
62
|
+
value: "status",
|
|
63
|
+
contexts: ["project", "outside"],
|
|
64
|
+
group: {
|
|
65
|
+
project: menuGroup("LANCER"),
|
|
66
|
+
outside: "Machine"
|
|
67
|
+
},
|
|
68
|
+
when: "Qu'est-ce qui tourne ici ? Superviseur, serveurs, Vite, ports occupés — sans rien démarrer."
|
|
69
|
+
},
|
|
70
|
+
{
|
|
71
|
+
value: "stop",
|
|
72
|
+
contexts: ["project", "outside"],
|
|
73
|
+
group: {
|
|
74
|
+
project: menuGroup("LANCER"),
|
|
75
|
+
outside: "Machine"
|
|
76
|
+
},
|
|
77
|
+
when: "Arrête proprement tout runtime Nodefony de la machine (dev, prod, cluster) — remplace le pkill -9."
|
|
78
|
+
},
|
|
79
|
+
{
|
|
80
|
+
value: "doctor",
|
|
81
|
+
contexts: ["project"],
|
|
82
|
+
group: {
|
|
83
|
+
project: menuGroup("COMPRENDRE"),
|
|
84
|
+
outside: null
|
|
85
|
+
},
|
|
86
|
+
when: "Diagnostic statique : marche même quand l'app ne démarre plus, et rapporte le bilan du dernier boot."
|
|
87
|
+
},
|
|
88
|
+
{
|
|
89
|
+
value: "inspect",
|
|
90
|
+
contexts: ["project"],
|
|
91
|
+
group: {
|
|
92
|
+
project: menuGroup("COMPRENDRE"),
|
|
93
|
+
outside: null
|
|
94
|
+
},
|
|
95
|
+
when: "L'état RÉEL de l'app — ce qui est monté, pas ce que le code laisse croire. Sans ouvrir de port."
|
|
96
|
+
},
|
|
97
|
+
{
|
|
98
|
+
value: "env",
|
|
99
|
+
contexts: ["project"],
|
|
100
|
+
group: {
|
|
101
|
+
project: menuGroup("COMPRENDRE"),
|
|
102
|
+
outside: null
|
|
103
|
+
},
|
|
104
|
+
when: "Chaque variable : sa valeur effective, le fichier .env qui l'a posée, et celles qui sont masquées ou inconnues."
|
|
105
|
+
},
|
|
106
|
+
{
|
|
107
|
+
value: "card",
|
|
108
|
+
contexts: ["project"],
|
|
109
|
+
group: {
|
|
110
|
+
project: menuGroup("COMPRENDRE"),
|
|
111
|
+
outside: null
|
|
112
|
+
},
|
|
113
|
+
when: "La carte de visite : modules installés, où aller (docs, console d'admin), quoi lancer. Le point de départ."
|
|
114
|
+
},
|
|
115
|
+
{
|
|
116
|
+
value: "create",
|
|
117
|
+
contexts: ["project", "outside"],
|
|
118
|
+
group: {
|
|
119
|
+
project: menuGroup("GÉNÉRER ET CONSTRUIRE"),
|
|
120
|
+
outside: "Démarrer"
|
|
121
|
+
},
|
|
122
|
+
when: "Le wizard pose les questions puis génère un code conforme : ne rien écrire à la main qu'un générateur produit."
|
|
123
|
+
},
|
|
124
|
+
{
|
|
125
|
+
value: "build",
|
|
126
|
+
contexts: ["project"],
|
|
127
|
+
group: {
|
|
128
|
+
project: menuGroup("GÉNÉRER ET CONSTRUIRE"),
|
|
129
|
+
outside: null
|
|
130
|
+
},
|
|
131
|
+
when: "Compile modules puis application. Le runtime charge dist/ : une route neuve n'existe qu'après ce geste."
|
|
132
|
+
},
|
|
133
|
+
{
|
|
134
|
+
value: "install",
|
|
135
|
+
contexts: ["project"],
|
|
136
|
+
group: {
|
|
137
|
+
project: menuGroup("GÉNÉRER ET CONSTRUIRE"),
|
|
138
|
+
outside: null
|
|
139
|
+
},
|
|
140
|
+
when: "Installe les dépendances puis construit — le geste après un clone ou un changement de dépendances."
|
|
141
|
+
},
|
|
142
|
+
{
|
|
143
|
+
value: "outdated",
|
|
144
|
+
contexts: ["project"],
|
|
145
|
+
group: {
|
|
146
|
+
project: menuGroup("GÉNÉRER ET CONSTRUIRE"),
|
|
147
|
+
outside: null
|
|
148
|
+
},
|
|
149
|
+
when: "Les dépendances en retard, agrégées par paquet — distingue une plage épinglée d'un simple npm update."
|
|
150
|
+
},
|
|
151
|
+
{
|
|
152
|
+
value: "git:hooks",
|
|
153
|
+
contexts: ["project"],
|
|
154
|
+
group: {
|
|
155
|
+
project: menuGroup("AGENTS ET OUTILLAGE"),
|
|
156
|
+
outside: null
|
|
157
|
+
},
|
|
158
|
+
when: "Pose .githooks/ (pre-commit léger, pre-push verify) via git config natif — zéro dépendance, geste explicite."
|
|
159
|
+
},
|
|
160
|
+
{
|
|
161
|
+
value: "ai:sync",
|
|
162
|
+
contexts: ["project"],
|
|
163
|
+
group: {
|
|
164
|
+
project: menuGroup("AGENTS ET OUTILLAGE"),
|
|
165
|
+
outside: null
|
|
166
|
+
},
|
|
167
|
+
when: "Pose les pointeurs vers les skills d'agent livrés par les paquets installés — à rejouer après un npm update."
|
|
168
|
+
},
|
|
169
|
+
{
|
|
170
|
+
value: "ai:mcp",
|
|
171
|
+
contexts: ["project"],
|
|
172
|
+
group: {
|
|
173
|
+
project: menuGroup("AGENTS ET OUTILLAGE"),
|
|
174
|
+
outside: null
|
|
175
|
+
},
|
|
176
|
+
when: "Déclare le serveur MCP de cette application à ton agent (.mcp.json) — --auth pour le mode authentifié."
|
|
177
|
+
},
|
|
178
|
+
{
|
|
179
|
+
value: "symbols",
|
|
180
|
+
contexts: ["project", "outside"],
|
|
181
|
+
group: {
|
|
182
|
+
project: menuGroup("COMPRENDRE"),
|
|
183
|
+
outside: "Comprendre"
|
|
184
|
+
},
|
|
185
|
+
when: "Cherche un symbole du framework : où il est défini, ce qu'il étend, ce que dit sa doc — sans ouvrir un fichier."
|
|
186
|
+
},
|
|
187
|
+
{
|
|
188
|
+
value: "man",
|
|
189
|
+
contexts: ["project", "outside"],
|
|
190
|
+
group: {
|
|
191
|
+
project: menuGroup("COMPRENDRE"),
|
|
192
|
+
outside: "Comprendre"
|
|
193
|
+
},
|
|
194
|
+
when: "Page de manuel du CLI, générée depuis les commandes réellement enregistrées."
|
|
195
|
+
},
|
|
196
|
+
{
|
|
197
|
+
value: "completion",
|
|
198
|
+
contexts: ["project", "outside"],
|
|
199
|
+
group: {
|
|
200
|
+
project: menuGroup("AGENTS ET OUTILLAGE"),
|
|
201
|
+
outside: "Machine"
|
|
202
|
+
},
|
|
203
|
+
when: "La complétion shell (bash, zsh, fish) : commandes, options et arguments au TAB."
|
|
204
|
+
}
|
|
205
|
+
];
|
|
206
|
+
/** Groupes, dans l'ordre d'affichage, par contexte. */
|
|
207
|
+
const GROUP_ORDER = {
|
|
208
|
+
project: Object.values(MENU_GROUP_LABELS),
|
|
209
|
+
outside: ["Démarrer", "Machine"]
|
|
210
|
+
};
|
|
211
|
+
/**
|
|
212
|
+
* Scripts npm que le menu sait proposer — les gestes qu'AUCUNE commande
|
|
213
|
+
* nodefony ne porte (qualité, infra docker). Un script n'apparaît que s'il
|
|
214
|
+
* existe dans le package.json du projet (`npmScripts`). La valeur émise est
|
|
215
|
+
* préfixée `npm:` — l'adaptateur la déplie en `npm run <script>`.
|
|
216
|
+
*/
|
|
217
|
+
const NPM_SCRIPT_CATALOG = [
|
|
218
|
+
{
|
|
219
|
+
script: "verify",
|
|
220
|
+
summary: "typecheck + lint + tests + check",
|
|
221
|
+
group: "Qualité (npm run)",
|
|
222
|
+
when: "LA passe avant de dire « fait » : typecheck + lint + tests + check, dans cet ordre. Les tests seuls ne typecheckent rien."
|
|
223
|
+
},
|
|
224
|
+
{
|
|
225
|
+
script: "test",
|
|
226
|
+
summary: "tests unitaires (vitest)",
|
|
227
|
+
group: "Qualité (npm run)",
|
|
228
|
+
when: "Les tests unitaires du projet (vitest). Rapides — le boot réel vit dans test:e2e."
|
|
229
|
+
},
|
|
230
|
+
{
|
|
231
|
+
script: "test:integration",
|
|
232
|
+
summary: "tests d'intégration (serveur réel)",
|
|
233
|
+
group: "Qualité (npm run)",
|
|
234
|
+
when: "Les suites qui frappent un serveur RÉEL. Plus lentes que les unitaires, plus rapides que l'e2e complet — et elles voient ce qu'un mock ne verra jamais."
|
|
235
|
+
},
|
|
236
|
+
{
|
|
237
|
+
script: "test:e2e",
|
|
238
|
+
summary: "build + boot réel + HTTP/WS",
|
|
239
|
+
group: "Qualité (npm run)",
|
|
240
|
+
when: "Le gate LENT : build, boot réel, HTTP/WS de bout en bout. À jouer avant de livrer, pas à chaque sauvegarde."
|
|
241
|
+
},
|
|
242
|
+
{
|
|
243
|
+
script: "test:memory",
|
|
244
|
+
summary: "seuils de heap (fuites)",
|
|
245
|
+
group: "Qualité (npm run)",
|
|
246
|
+
when: "Le gate MÉMOIRE : 1000 requêtes, 100 crashs, 100 connexions WS, et les seuils de heap. À lancer avant tout commit qui touche le pipeline de requête — une fuite ne se voit dans aucun autre test."
|
|
247
|
+
},
|
|
248
|
+
{
|
|
249
|
+
script: "test:all",
|
|
250
|
+
summary: "docker + build + tout, et le rapport",
|
|
251
|
+
group: "Qualité (npm run)",
|
|
252
|
+
when: "TOUT, dans l'ordre, en démarrant l'infra manquante — et surtout : il DIT ce qu'il n'a PAS testé. Un « vert » qui cache des suites sautées est le piège le plus coûteux du dépôt."
|
|
253
|
+
},
|
|
254
|
+
{
|
|
255
|
+
script: "typecheck",
|
|
256
|
+
summary: "types seuls (tsgo --noEmit)",
|
|
257
|
+
group: "Qualité (npm run)",
|
|
258
|
+
when: "Les types SEULS, sans rien exécuter. Indispensable parce que des tests verts ne typecheckent RIEN : une suite peut passer sur du code qui ne compile pas chez celui qui l'installe."
|
|
259
|
+
},
|
|
260
|
+
{
|
|
261
|
+
script: "lint",
|
|
262
|
+
summary: "style et pièges (oxlint)",
|
|
263
|
+
group: "Qualité (npm run)",
|
|
264
|
+
when: "Style et pièges (oxlint) — ce que ni le compilateur ni les tests ne voient."
|
|
265
|
+
},
|
|
266
|
+
{
|
|
267
|
+
script: "format",
|
|
268
|
+
summary: "reformate tout (prettier)",
|
|
269
|
+
group: "Qualité (npm run)",
|
|
270
|
+
when: "Reformate tout le projet (prettier --write)."
|
|
271
|
+
},
|
|
272
|
+
{
|
|
273
|
+
script: "clean",
|
|
274
|
+
summary: "supprime dist/",
|
|
275
|
+
group: "Qualité (npm run)",
|
|
276
|
+
when: "Efface `dist/`. À faire après un merge ou un renommage d'export : le runtime charge le BUILD, et un dist périmé rend des 404 sur des routes qui existent — la cause perdue n°1."
|
|
277
|
+
},
|
|
278
|
+
{
|
|
279
|
+
script: "see",
|
|
280
|
+
summary: "regarde l'écran (et le MESURE)",
|
|
281
|
+
group: "Qualité (npm run)",
|
|
282
|
+
when: "Ouvre la page dans un navigateur piloté : contrastes CALCULÉS, arbre d'accessibilité, console, requêtes réelles. Pour CONSTATER un rendu au lieu de le supposer."
|
|
283
|
+
},
|
|
284
|
+
{
|
|
285
|
+
script: "audit:web",
|
|
286
|
+
summary: "audit Lighthouse + accessibilité",
|
|
287
|
+
group: "Qualité (npm run)",
|
|
288
|
+
when: "Audit complet d'une page servie : performance, accessibilité (axe), bonnes pratiques. Plus lourd que `see` — pour une revue, pas pour une boucle de dev."
|
|
289
|
+
},
|
|
290
|
+
{
|
|
291
|
+
script: "infra:up",
|
|
292
|
+
summary: "docker compose up -d",
|
|
293
|
+
group: "Infra (docker)",
|
|
294
|
+
when: "Démarre les conteneurs déclarés par le projet (base SQL, redis…) — à lancer AVANT le serveur s'ils sont requis."
|
|
295
|
+
},
|
|
296
|
+
{
|
|
297
|
+
script: "infra:down",
|
|
298
|
+
summary: "docker compose down",
|
|
299
|
+
group: "Infra (docker)",
|
|
300
|
+
when: "Arrête et retire les conteneurs du projet."
|
|
301
|
+
}
|
|
302
|
+
];
|
|
303
|
+
/** Préfixe des valeurs « script npm » émises par le menu. */
|
|
304
|
+
const NPM_SCRIPT_PREFIX = "npm:";
|
|
305
|
+
/** Titre du groupe des commandes de module (projet seulement). */
|
|
306
|
+
const MODULE_COMMANDS_GROUP = "Commandes du projet";
|
|
307
|
+
/**
|
|
308
|
+
* Le plan d'exécution d'un choix de menu.
|
|
309
|
+
*
|
|
310
|
+
* ⚠️ **Une commande de MODULE ne peut pas s'exécuter dans le process du menu.**
|
|
311
|
+
* Le menu s'ouvre à `onStart` pour rester instantané ; à cette phase, les
|
|
312
|
+
* commandes de module ne sont pas encore posées dans commander (elles le sont à
|
|
313
|
+
* `onPreRegister`, par le dispatch différé). Les exécuter par le re-parse
|
|
314
|
+
* commander donnait donc `unknown command 'http:network'` + CRITIC + exit 1 —
|
|
315
|
+
* un menu qui PROPOSE un geste puis le refuse. Elles se relancent dans un
|
|
316
|
+
* process neuf, exactement comme le menu le fait déjà pour un script npm : le
|
|
317
|
+
* boot complet a lieu, le dispatch différé fait son travail.
|
|
318
|
+
*
|
|
319
|
+
* La décision vit ici, PURE, parce qu'elle se teste : l'adaptateur ne fait plus
|
|
320
|
+
* que `spawnSync` ou appeler commander, gestes qu'aucun test unitaire n'observe.
|
|
321
|
+
*
|
|
322
|
+
* @param response - la valeur choisie dans le menu.
|
|
323
|
+
* @param isBuiltin - commander connaît-il cette commande à cet instant ?
|
|
324
|
+
*/
|
|
325
|
+
function planMenuAction(response, isBuiltin) {
|
|
326
|
+
if (response.startsWith("npm:")) return {
|
|
327
|
+
kind: "npm",
|
|
328
|
+
script: response.slice(4)
|
|
329
|
+
};
|
|
330
|
+
const argv = response.split(" ").filter(Boolean);
|
|
331
|
+
return isBuiltin(argv[0] ?? "") ? {
|
|
332
|
+
kind: "inline",
|
|
333
|
+
argv
|
|
334
|
+
} : {
|
|
335
|
+
kind: "respawn",
|
|
336
|
+
argv
|
|
337
|
+
};
|
|
338
|
+
}
|
|
339
|
+
function choice(value, summary, when) {
|
|
340
|
+
return {
|
|
341
|
+
kind: "choice",
|
|
342
|
+
label: value,
|
|
343
|
+
summary,
|
|
344
|
+
value,
|
|
345
|
+
description: when
|
|
346
|
+
};
|
|
347
|
+
}
|
|
348
|
+
/**
|
|
349
|
+
* Construit le menu principal pour un contexte donné.
|
|
350
|
+
*
|
|
351
|
+
* @returns message d'accueil + items ordonnés (separators de groupe inclus).
|
|
352
|
+
*/
|
|
353
|
+
function buildStartMenu(input) {
|
|
354
|
+
const context = input.inProject ? "project" : "outside";
|
|
355
|
+
const items = [];
|
|
356
|
+
for (const groupTitle of GROUP_ORDER[context]) {
|
|
357
|
+
const entries = START_MENU_CATALOG.filter((e) => e.contexts.includes(context) && e.group[context] === groupTitle);
|
|
358
|
+
const rendered = [];
|
|
359
|
+
const vues = /* @__PURE__ */ new Set();
|
|
360
|
+
for (const entry of entries) {
|
|
361
|
+
const summary = input.describe(entry.value);
|
|
362
|
+
if (summary === null) continue;
|
|
363
|
+
vues.add(entry.value);
|
|
364
|
+
rendered.push(choice(entry.value, summary, entry.when));
|
|
365
|
+
}
|
|
366
|
+
if (context === "project") for (const cmd of input.builtinCommands ?? []) {
|
|
367
|
+
if (vues.has(cmd.name)) continue;
|
|
368
|
+
if ((cmd.requiredArgs ?? 0) > 0) continue;
|
|
369
|
+
if (!cmd.group || MENU_GROUP_LABELS[cmd.group] !== groupTitle) continue;
|
|
370
|
+
vues.add(cmd.name);
|
|
371
|
+
rendered.push(choice(cmd.name, cmd.description, "Commande intégrée du CLI — `nodefony <commande> --help` en dit plus."));
|
|
372
|
+
}
|
|
373
|
+
if (rendered.length > 0) {
|
|
374
|
+
items.push({
|
|
375
|
+
kind: "separator",
|
|
376
|
+
label: groupTitle
|
|
377
|
+
});
|
|
378
|
+
items.push(...rendered);
|
|
379
|
+
}
|
|
380
|
+
}
|
|
381
|
+
if (context === "project" && input.npmScripts?.length) {
|
|
382
|
+
const available = new Set(input.npmScripts);
|
|
383
|
+
const byGroup = /* @__PURE__ */ new Map();
|
|
384
|
+
for (const entry of NPM_SCRIPT_CATALOG) {
|
|
385
|
+
if (!available.has(entry.script)) continue;
|
|
386
|
+
const item = {
|
|
387
|
+
kind: "choice",
|
|
388
|
+
label: entry.script,
|
|
389
|
+
summary: entry.summary,
|
|
390
|
+
value: `${NPM_SCRIPT_PREFIX}${entry.script}`,
|
|
391
|
+
description: entry.when
|
|
392
|
+
};
|
|
393
|
+
const bucket = byGroup.get(entry.group);
|
|
394
|
+
if (bucket) bucket.push(item);
|
|
395
|
+
else byGroup.set(entry.group, [item]);
|
|
396
|
+
}
|
|
397
|
+
for (const [groupTitle, groupItems] of byGroup) {
|
|
398
|
+
items.push({
|
|
399
|
+
kind: "separator",
|
|
400
|
+
label: groupTitle
|
|
401
|
+
});
|
|
402
|
+
items.push(...groupItems);
|
|
403
|
+
}
|
|
404
|
+
}
|
|
405
|
+
if (context === "project") {
|
|
406
|
+
if (input.moduleCommands?.length) {
|
|
407
|
+
const byGroup = /* @__PURE__ */ new Map();
|
|
408
|
+
for (const mc of input.moduleCommands) {
|
|
409
|
+
const title = (mc.group && MENU_GROUP_LABELS[mc.group]) ?? "Commandes du projet";
|
|
410
|
+
const item = {
|
|
411
|
+
kind: "choice",
|
|
412
|
+
label: mc.name,
|
|
413
|
+
summary: mc.description,
|
|
414
|
+
value: mc.name,
|
|
415
|
+
description: "Commande apportée par un module de cette application (relue du dernier démarrage dev)."
|
|
416
|
+
};
|
|
417
|
+
const bucket = byGroup.get(title);
|
|
418
|
+
if (bucket) bucket.push(item);
|
|
419
|
+
else byGroup.set(title, [item]);
|
|
420
|
+
}
|
|
421
|
+
const order = [...Object.values(MENU_GROUP_LABELS), MODULE_COMMANDS_GROUP];
|
|
422
|
+
for (const title of order) {
|
|
423
|
+
const groupItems = byGroup.get(title);
|
|
424
|
+
if (!groupItems?.length) continue;
|
|
425
|
+
items.push({
|
|
426
|
+
kind: "separator",
|
|
427
|
+
label: title
|
|
428
|
+
});
|
|
429
|
+
items.push(...groupItems);
|
|
430
|
+
}
|
|
431
|
+
}
|
|
432
|
+
}
|
|
433
|
+
const missing = input.inProject && !input.moduleCommands?.length;
|
|
434
|
+
return {
|
|
435
|
+
message: input.inProject ? `${input.projectName ?? "Projet Nodefony"} — que veux-tu faire ?${missing ? " (commandes des modules non listées : l'app n'a pas encore démarré ici — `nodefony --help` les montre toutes)" : ""}` : "Aucun projet Nodefony ici — que veux-tu faire ?",
|
|
436
|
+
items
|
|
437
|
+
};
|
|
438
|
+
}
|
|
439
|
+
/**
|
|
440
|
+
* Sous-menu des sujets d'`inspect`, dérivé de la table SOURCE
|
|
441
|
+
* (`INSPECT_SUBJECTS`) : seuls les sujets SANS argument obligatoire sont
|
|
442
|
+
* proposés (un sujet à paramètre exigerait une saisie de plus — il reste
|
|
443
|
+
* accessible en ligne de commande, l'aide d'`inspect` les liste).
|
|
444
|
+
*
|
|
445
|
+
* @param subjects - la table `INSPECT_SUBJECTS` (injectée : ce fichier reste pur).
|
|
446
|
+
*/
|
|
447
|
+
function buildInspectMenu(subjects) {
|
|
448
|
+
const items = [];
|
|
449
|
+
for (const [name, subject] of Object.entries(subjects)) {
|
|
450
|
+
if (subject.param) continue;
|
|
451
|
+
items.push({
|
|
452
|
+
kind: "choice",
|
|
453
|
+
label: name,
|
|
454
|
+
summary: subject.summary,
|
|
455
|
+
value: name,
|
|
456
|
+
description: `nodefony inspect ${name} — même donnée que la console d'admin, redaction des secrets comprise.`
|
|
457
|
+
});
|
|
458
|
+
}
|
|
459
|
+
return {
|
|
460
|
+
message: "Inspecter quoi ?",
|
|
461
|
+
items
|
|
462
|
+
};
|
|
463
|
+
}
|
|
464
|
+
/**
|
|
465
|
+
* Filtre le menu à la frappe (prompt `search`) — la logique est ICI, pure et
|
|
466
|
+
* testée : normalisation (minuscules, accents retirés), chaque MOT du terme
|
|
467
|
+
* doit se retrouver dans le label, le résumé, le conseil OU le titre du groupe
|
|
468
|
+
* de l'entrée. Les titres de groupe suivent leurs entrées : un groupe dont
|
|
469
|
+
* rien ne survit disparaît AVEC son titre.
|
|
470
|
+
*/
|
|
471
|
+
function filterStartMenu(items, term) {
|
|
472
|
+
const normalize = (text) => text.toLowerCase().normalize("NFD").replace(/\p{Diacritic}/gu, "");
|
|
473
|
+
const words = normalize(term).split(/\s+/).filter(Boolean);
|
|
474
|
+
if (words.length === 0) return items;
|
|
475
|
+
const kept = [];
|
|
476
|
+
let pendingGroup = null;
|
|
477
|
+
let currentGroupLabel = "";
|
|
478
|
+
for (const item of items) {
|
|
479
|
+
if (item.kind === "separator") {
|
|
480
|
+
pendingGroup = item;
|
|
481
|
+
currentGroupLabel = item.label;
|
|
482
|
+
continue;
|
|
483
|
+
}
|
|
484
|
+
const haystack = normalize(`${item.label} ${item.summary} ${item.description} ${currentGroupLabel}`);
|
|
485
|
+
if (words.every((w) => haystack.includes(w))) {
|
|
486
|
+
if (pendingGroup) {
|
|
487
|
+
kept.push(pendingGroup);
|
|
488
|
+
pendingGroup = null;
|
|
489
|
+
}
|
|
490
|
+
kept.push(item);
|
|
491
|
+
}
|
|
492
|
+
}
|
|
493
|
+
return kept;
|
|
494
|
+
}
|
|
495
|
+
//#endregion
|
|
496
|
+
export { MODULE_COMMANDS_GROUP, NPM_SCRIPT_CATALOG, NPM_SCRIPT_PREFIX, START_MENU_CATALOG, buildInspectMenu, buildStartMenu, filterStartMenu, planMenuAction };
|
|
@@ -0,0 +1,205 @@
|
|
|
1
|
+
import "./sysexits.js";
|
|
2
|
+
import { printUsage, printUsageError } from "./usageReport.js";
|
|
3
|
+
import { findProjectRoot } from "./projectRoot.js";
|
|
4
|
+
import { stripGlobalCliFlags } from "./globalFlags.js";
|
|
5
|
+
import { existsSync, readFileSync } from "node:fs";
|
|
6
|
+
import path from "node:path";
|
|
7
|
+
//#region src/cli/symbols.ts
|
|
8
|
+
/**
|
|
9
|
+
* Le GRAPHE SYMBOLIQUE du framework — où le trouver, et comment l'interroger.
|
|
10
|
+
*
|
|
11
|
+
* `.ai/symbols.json` répond en O(1) à « que fait ce symbole, où est-il défini,
|
|
12
|
+
* qui l'étend » — sans ouvrir un `.d.ts` ni parcourir des sources. C'est l'outil
|
|
13
|
+
* qui évite à un agent de deviner ; encore faut-il qu'il EXISTE là où il
|
|
14
|
+
* travaille.
|
|
15
|
+
*
|
|
16
|
+
* ## Le trou que ce fichier ferme
|
|
17
|
+
*
|
|
18
|
+
* Le graphe était produit à la racine du dépôt et lu là uniquement. Dans une
|
|
19
|
+
* application installée depuis npm, ce fichier n'existe pas : la lecture rendait
|
|
20
|
+
* une liste vide, sans rien dire. Le graphe est désormais **publié par le
|
|
21
|
+
* paquet `nodefony`** — une application qui l'installe reçoit celui de tout le
|
|
22
|
+
* framework, quelle que soit la combinaison de paquets qu'elle a choisie.
|
|
23
|
+
*
|
|
24
|
+
* La résolution essaie donc, dans l'ordre : le graphe du PROJET (cas du dépôt de
|
|
25
|
+
* développement, où il est plus frais que tout), puis celui du framework
|
|
26
|
+
* INSTALLÉ. Jamais un chemin en dur : c'est ce qui l'avait cassé.
|
|
27
|
+
*/
|
|
28
|
+
/** Emplacement conventionnel, relatif à une racine. */
|
|
29
|
+
const GRAPH_RELATIVE = path.join(".ai", "symbols.json");
|
|
30
|
+
/**
|
|
31
|
+
* Trouve le graphe symbolique utilisable depuis `from`.
|
|
32
|
+
*
|
|
33
|
+
* @param from - dossier de départ (typiquement le cwd).
|
|
34
|
+
* @returns le chemin du fichier, ou `null` si aucun graphe n'est atteignable.
|
|
35
|
+
*/
|
|
36
|
+
function resolveSymbolsFile(from) {
|
|
37
|
+
const root = findProjectRoot(from) ?? from;
|
|
38
|
+
const local = path.join(root, GRAPH_RELATIVE);
|
|
39
|
+
if (existsSync(local)) return local;
|
|
40
|
+
const shipped = path.join(root, "node_modules", "nodefony", GRAPH_RELATIVE);
|
|
41
|
+
if (existsSync(shipped)) return shipped;
|
|
42
|
+
return null;
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Lit le graphe, ou `null` s'il est absent ou illisible.
|
|
46
|
+
*
|
|
47
|
+
* Ne lève jamais : un outil de découverte qui tombe sur un fichier corrompu doit
|
|
48
|
+
* le DIRE à son appelant, pas interrompre ce qu'il diagnostiquait.
|
|
49
|
+
*
|
|
50
|
+
* @param from - dossier de départ de la résolution.
|
|
51
|
+
*/
|
|
52
|
+
function readSymbolsGraph(from) {
|
|
53
|
+
const file = resolveSymbolsFile(from);
|
|
54
|
+
if (file === null) return null;
|
|
55
|
+
try {
|
|
56
|
+
const parsed = JSON.parse(readFileSync(file, "utf8"));
|
|
57
|
+
return parsed.symbols ? parsed : null;
|
|
58
|
+
} catch {
|
|
59
|
+
return null;
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Trouve un symbole par son nom exact.
|
|
64
|
+
*
|
|
65
|
+
* Le graphe indexe par nom, sauf pour les **homonymes** qu'il range sous
|
|
66
|
+
* `Module:Nom` — d'où le second passage, qui les rattrape. Extrait ici parce
|
|
67
|
+
* que la commande n'est plus le seul lecteur : le serveur MCP interroge le même
|
|
68
|
+
* graphe, et deux résolutions d'homonymes finiraient par différer.
|
|
69
|
+
*
|
|
70
|
+
* @param graph - le graphe déjà lu
|
|
71
|
+
* @param name - nom exact recherché
|
|
72
|
+
* @returns l'entrée, ou `undefined`
|
|
73
|
+
*/
|
|
74
|
+
function lookupSymbol(graph, name) {
|
|
75
|
+
return graph.symbols[name] ?? Object.values(graph.symbols).find((s) => s.name === name);
|
|
76
|
+
}
|
|
77
|
+
/** La page d'aide — `nodefony symbols --help`, et le rappel après un refus. */
|
|
78
|
+
const PAGE = {
|
|
79
|
+
command: "nodefony symbols",
|
|
80
|
+
tagline: "interroge le graphe symbolique : où un symbole est défini, ce qu'il fait, et de qui il hérite",
|
|
81
|
+
synopsis: ["nodefony symbols [<Symbole>] [options]"],
|
|
82
|
+
sections: [{
|
|
83
|
+
title: "CE QU'ELLE LIT",
|
|
84
|
+
paragraph: "Un fichier JSON — le graphe engendré par le dépôt — et rien d'autre. Sans nom de symbole, elle rend un résumé du graphe. Elle ne DÉMARRE pas l'application : elle répond donc quand celle-ci ne démarre plus, le moment où l'on cherche justement ce que fait une classe."
|
|
85
|
+
}],
|
|
86
|
+
options: [
|
|
87
|
+
{
|
|
88
|
+
term: "-j, --json",
|
|
89
|
+
text: "la même réponse, exploitable par un script"
|
|
90
|
+
},
|
|
91
|
+
{
|
|
92
|
+
term: "-m, --module <nom>",
|
|
93
|
+
text: "n'afficher qu'un paquet"
|
|
94
|
+
},
|
|
95
|
+
{
|
|
96
|
+
term: "--cwd <chemin>",
|
|
97
|
+
text: "point de départ (la racine de l'app est résolue en remontant)"
|
|
98
|
+
}
|
|
99
|
+
],
|
|
100
|
+
examples: [
|
|
101
|
+
{
|
|
102
|
+
term: "nodefony symbols",
|
|
103
|
+
text: "ce que contient le graphe"
|
|
104
|
+
},
|
|
105
|
+
{
|
|
106
|
+
term: "nodefony symbols Kernel",
|
|
107
|
+
text: "où Kernel est défini, et sa parenté"
|
|
108
|
+
},
|
|
109
|
+
{
|
|
110
|
+
term: "nodefony symbols -m @nodefony/http",
|
|
111
|
+
text: "les symboles d'un seul paquet"
|
|
112
|
+
}
|
|
113
|
+
],
|
|
114
|
+
exitCodes: [{
|
|
115
|
+
term: "66",
|
|
116
|
+
text: "aucun graphe ici — le dépôt ne l'a pas engendré (EX_NOINPUT)"
|
|
117
|
+
}]
|
|
118
|
+
};
|
|
119
|
+
/**
|
|
120
|
+
* Parse l'argv après le mot `symbols`.
|
|
121
|
+
*
|
|
122
|
+
* @param argv - `process.argv` complet.
|
|
123
|
+
* @returns la demande, ou le motif du refus.
|
|
124
|
+
*/
|
|
125
|
+
function parseSymbolsArgv(argv) {
|
|
126
|
+
const at = argv.indexOf("symbols");
|
|
127
|
+
const rest = stripGlobalCliFlags(at === -1 ? [] : argv.slice(at + 1));
|
|
128
|
+
const req = {
|
|
129
|
+
name: null,
|
|
130
|
+
json: false,
|
|
131
|
+
module: null,
|
|
132
|
+
cwd: process.cwd(),
|
|
133
|
+
help: false
|
|
134
|
+
};
|
|
135
|
+
for (let i = 0; i < rest.length; i++) {
|
|
136
|
+
const word = rest[i];
|
|
137
|
+
if (word === "--help" || word === "-h") req.help = true;
|
|
138
|
+
else if (word === "--json" || word === "-j") req.json = true;
|
|
139
|
+
else if (word === "--module" || word === "-m") req.module = rest[++i] ?? null;
|
|
140
|
+
else if (word === "--cwd") req.cwd = path.resolve(rest[++i] ?? "");
|
|
141
|
+
else if (word.startsWith("-")) return { error: `option inconnue : ${word}` };
|
|
142
|
+
else if (req.name === null) req.name = word;
|
|
143
|
+
else return { error: `argument en trop : ${word}` };
|
|
144
|
+
}
|
|
145
|
+
return req;
|
|
146
|
+
}
|
|
147
|
+
/** Rend un symbole pour un lecteur humain — une ligne d'identité, puis la parenté. */
|
|
148
|
+
function renderSymbol(sym) {
|
|
149
|
+
const lines = [`${sym.name} — ${sym.kind} (${sym.module})`, ` ${sym.file}${sym.line ? `:${sym.line}` : ""}`];
|
|
150
|
+
if (sym.description) lines.push(` ${sym.description}`);
|
|
151
|
+
if (sym.extends) lines.push(` étend : ${sym.extends}`);
|
|
152
|
+
if (sym.implements?.length) lines.push(` implémente : ${sym.implements.join(", ")}`);
|
|
153
|
+
return `${lines.join("\n")}\n`;
|
|
154
|
+
}
|
|
155
|
+
/**
|
|
156
|
+
* Commande `nodefony symbols` — le graphe, sans boot et sans dépôt.
|
|
157
|
+
*
|
|
158
|
+
* Trois usages, du plus fréquent au plus rare : un nom (« qu'est-ce que
|
|
159
|
+
* `AbstractCrudService` ? »), un paquet (`--module @nodefony/http` : sa surface
|
|
160
|
+
* exportée), rien (le résumé — d'où vient le graphe, ce qu'il couvre).
|
|
161
|
+
*
|
|
162
|
+
* @param argv - `process.argv` complet.
|
|
163
|
+
* @returns exit code sémantique (`OK`, `USAGE`, `NOINPUT` si aucun graphe,
|
|
164
|
+
* `DATAERR` si le symbole demandé est introuvable).
|
|
165
|
+
*/
|
|
166
|
+
function runSymbolsCommand(argv) {
|
|
167
|
+
const parsed = parseSymbolsArgv(argv);
|
|
168
|
+
if ("error" in parsed) return printUsageError(PAGE, parsed.error);
|
|
169
|
+
if (parsed.help) return printUsage(PAGE);
|
|
170
|
+
const file = resolveSymbolsFile(parsed.cwd);
|
|
171
|
+
const graph = readSymbolsGraph(parsed.cwd);
|
|
172
|
+
if (graph === null) {
|
|
173
|
+
process.stderr.write("symbols: aucun graphe symbolique atteignable.\n Il est publié par le paquet nodefony (node_modules/nodefony/.ai/symbols.json)\n et régénérable dans ce dépôt par : npm run generate-symbols\n");
|
|
174
|
+
return 66;
|
|
175
|
+
}
|
|
176
|
+
if (parsed.name !== null) {
|
|
177
|
+
const sym = lookupSymbol(graph, parsed.name);
|
|
178
|
+
if (!sym) {
|
|
179
|
+
process.stderr.write(`symbols: « ${parsed.name} » est introuvable dans le graphe (${Object.keys(graph.symbols).length} symboles).\n`);
|
|
180
|
+
return 65;
|
|
181
|
+
}
|
|
182
|
+
process.stdout.write(parsed.json ? `${JSON.stringify(sym, null, 2)}\n` : renderSymbol(sym));
|
|
183
|
+
return 0;
|
|
184
|
+
}
|
|
185
|
+
const entries = Object.values(graph.symbols).filter((s) => parsed.module === null || s.module === parsed.module);
|
|
186
|
+
if (parsed.json) {
|
|
187
|
+
process.stdout.write(`${JSON.stringify(entries, null, 2)}\n`);
|
|
188
|
+
return 0;
|
|
189
|
+
}
|
|
190
|
+
if (parsed.module !== null) {
|
|
191
|
+
for (const sym of entries.sort((a, b) => a.name.localeCompare(b.name))) process.stdout.write(` ${sym.name.padEnd(34)} ${sym.kind}${sym.description ? ` — ${sym.description}` : ""}\n`);
|
|
192
|
+
process.stdout.write(`\n${entries.length} symbole(s) — ${parsed.module}\n`);
|
|
193
|
+
return 0;
|
|
194
|
+
}
|
|
195
|
+
const byPackage = /* @__PURE__ */ new Map();
|
|
196
|
+
for (const sym of entries) byPackage.set(sym.module, (byPackage.get(sym.module) ?? 0) + 1);
|
|
197
|
+
process.stdout.write(`graphe : ${file}\n`);
|
|
198
|
+
if (graph.generated) process.stdout.write(`généré : ${graph.generated}\n`);
|
|
199
|
+
process.stdout.write(`${entries.length} symboles exportés\n\n`);
|
|
200
|
+
for (const [mod, n] of [...byPackage].sort((a, b) => b[1] - a[1])) process.stdout.write(` ${String(n).padStart(5)} ${mod}\n`);
|
|
201
|
+
process.stdout.write("\nUn symbole : nodefony symbols AbstractCrudService\nUn paquet : nodefony symbols --module @nodefony/http\n");
|
|
202
|
+
return 0;
|
|
203
|
+
}
|
|
204
|
+
//#endregion
|
|
205
|
+
export { lookupSymbol, parseSymbolsArgv, readSymbolsGraph, resolveSymbolsFile, runSymbolsCommand };
|