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,53 @@
|
|
|
1
|
+
import type { IPduLike } from "./ILogDriver.js";
|
|
2
|
+
import type { LogProtocol } from "./pduProtocol.js";
|
|
3
|
+
/**
|
|
4
|
+
* **Étape logique du cycle de vie d'une requête / connexion** — identifiant
|
|
5
|
+
* STABLE (clé de filtre côté back ET clé de mapping libellé/couleur côté front).
|
|
6
|
+
*
|
|
7
|
+
* Les logs DEBUG du pipeline portent des noms d'events bruts (`onRequest`,
|
|
8
|
+
* `onRequestEnd`, `onSend`…) peu parlants, et dont l'ordre d'apparition n'est pas
|
|
9
|
+
* l'ordre intuitif (`onRequestEnd` = corps reçu, donc TÔT pour un GET malgré le
|
|
10
|
+
* mot « End »). Chaque event est ici mappé vers une étape nommée — la base d'un
|
|
11
|
+
* filtre fiable (≠ recherche texte, qui matchait par erreur les URL contenant le
|
|
12
|
+
* marqueur) et d'une lecture « je comprends où en est la requête ».
|
|
13
|
+
*/
|
|
14
|
+
export type FlowStepId = "request-in" | "body-received" | "route-matched" | "kernel-dispatch" | "response" | "request-end" | "finish" | "ws-open" | "ws-message" | "ws-close" | "session" | "session-saved";
|
|
15
|
+
/**
|
|
16
|
+
* Métadonnée **structurelle** d'une étape (jamais de présentation : libellé FR et
|
|
17
|
+
* couleur vivent côté front, qui mappe l'`id`). `order` = rang logique dans le
|
|
18
|
+
* cycle de SON protocole ; `protocol` = où l'étape apparaît (`"both"` = session).
|
|
19
|
+
*/
|
|
20
|
+
export interface FlowStepMeta {
|
|
21
|
+
/** Rang logique dans le cycle (tri du sélecteur d'étapes). */
|
|
22
|
+
order: number;
|
|
23
|
+
/** Protocole d'appartenance — pilote le sélecteur adaptatif côté Studio. */
|
|
24
|
+
protocol: LogProtocol | "both";
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Table des étapes — **source unique** de l'ordre et de l'appartenance protocole,
|
|
28
|
+
* partagée back (filtre) et front (sélecteur groupé HTTP / WebSocket / Commun).
|
|
29
|
+
*/
|
|
30
|
+
export declare const FLOW_STEPS: Record<FlowStepId, FlowStepMeta>;
|
|
31
|
+
/**
|
|
32
|
+
* Entrée minimale pour classer une étape — seuls `msgid`, `payload` et `msg`
|
|
33
|
+
* comptent. Un `Pdu`, un {@link IPduLike} (msg requis) ET un record wire relu
|
|
34
|
+
* (`ILogRecord` / miroir front, `msg` optionnel) la satisfont structurellement
|
|
35
|
+
* → la classification est utilisable des deux côtés de la frontière isomorphe.
|
|
36
|
+
*/
|
|
37
|
+
export type FlowClassifiable = Pick<IPduLike, "msgid" | "payload"> & {
|
|
38
|
+
msg?: string;
|
|
39
|
+
};
|
|
40
|
+
/**
|
|
41
|
+
* Classe un Pdu en **étape de cycle de vie** (id stable) ou `null` si la ligne
|
|
42
|
+
* n'est pas un jalon (log applicatif libre, ex. `DB-DEMO`). PUR, isomorphe,
|
|
43
|
+
* 0 état — réutilisé par le filtre back ({@link filterPdus}) ET le rendu front
|
|
44
|
+
* (colonne « Étape » + sélecteur) → une SEULE logique, jamais de divergence.
|
|
45
|
+
*
|
|
46
|
+
* Priorité aux marqueurs de **contenu** (route, session, cookie, bilan), puis au
|
|
47
|
+
* **nom d'event** générique. `onRequest` est désambiguïsé par le msgid `KERNEL`
|
|
48
|
+
* (dispatch kernel) vs contexte (entrée de requête).
|
|
49
|
+
*
|
|
50
|
+
* @param pdu - enregistrement (Pdu ou {@link IPduLike}, relu d'un JSONL aussi).
|
|
51
|
+
* @returns l'`id` d'étape, ou `null` pour un log hors cycle.
|
|
52
|
+
*/
|
|
53
|
+
export declare function pduFlowStep(pdu: FlowClassifiable): FlowStepId | null;
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import type { IPduLike } from "./ILogDriver.js";
|
|
2
|
+
/** Protocole d'origine d'un enregistrement de log. */
|
|
3
|
+
export type LogProtocol = "ws" | "http";
|
|
4
|
+
/**
|
|
5
|
+
* Classe un Pdu par **protocole** d'origine — `"ws"` ou `"http"` — de façon PURE,
|
|
6
|
+
* isomorphe et 0-alloc (une seule comparaison de `msgid`).
|
|
7
|
+
*
|
|
8
|
+
* Critère FIABLE : tout log émis dans un contexte WebSocket porte le msgid
|
|
9
|
+
* `"WEBSOCKET CONTEXT"` (forcé par défaut dans `WebsocketContext.log()`). Tout le
|
|
10
|
+
* reste du pipeline (req/http2/router/firewall/kernel/applicatif) est classé HTTP.
|
|
11
|
+
* Une seule logique → front et back ne divergent plus (le front filtrait par texte,
|
|
12
|
+
* source de faux positifs).
|
|
13
|
+
*
|
|
14
|
+
* Seul `msgid` compte → accepte un `Pdu`, un {@link IPduLike} ou un record wire
|
|
15
|
+
* relu (`ILogRecord` / miroir front) indifféremment.
|
|
16
|
+
*
|
|
17
|
+
* @param pdu - tout objet portant un `msgid`.
|
|
18
|
+
* @returns `"ws"` si le log provient d'une socket WebSocket, sinon `"http"`.
|
|
19
|
+
*/
|
|
20
|
+
export declare function pduProtocol(pdu: Pick<IPduLike, "msgid">): LogProtocol;
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Gate de couleur ANSI des logs — résolue **une seule fois au boot**
|
|
3
|
+
* ({@link Kernel.initializeLog}), pas par log.
|
|
4
|
+
*
|
|
5
|
+
* Problème résolu : plusieurs loggers (Kernel, Context, request-logger…) bakent
|
|
6
|
+
* des codes ANSI DANS le `payload`/`msgid` d'un `Pdu` (ex. `clc.cyan("URL")`).
|
|
7
|
+
* Ces Pdu voyagent jusqu'au `FileTransport` JSON → l'ANSI polluait le `.jsonl`
|
|
8
|
+
* queryable (et le pipe stdout → collecteur en prod). Stripper à l'écriture =
|
|
9
|
+
* un `.replace()` PAR log sur le hot path (refusé, coût). À la place, un flag
|
|
10
|
+
* global gate la couleur à la SOURCE.
|
|
11
|
+
*
|
|
12
|
+
* Critère (résolu au boot) : couleur ON si `stdout` est un **TTY** (un humain
|
|
13
|
+
* regarde un terminal) ; OFF si pipe/fichier/redirection (prod, collecteur,
|
|
14
|
+
* conteneur) → payloads bruts → JSONL et stdout propres.
|
|
15
|
+
*
|
|
16
|
+
* Perf : les slots ci-dessous sont MUTÉS une fois (`setLogColor`) — le hot path
|
|
17
|
+
* appelle directement `identity` (OFF) ou la fonction `cli-color` (ON), **sans
|
|
18
|
+
* test booléen par log**. Reproduire `clc.x.y` ici garde le chaînage hors du
|
|
19
|
+
* hot path (une fonction figée, pas une chaîne de getters par appel).
|
|
20
|
+
*
|
|
21
|
+
* Isomorphe : au navigateur, `cli-color` est remplacé par le shim identité
|
|
22
|
+
* (alias rollup) → ON ≡ OFF, jamais d'ANSI quoi qu'il arrive.
|
|
23
|
+
*/
|
|
24
|
+
type ColorFn = (s: string | number) => string;
|
|
25
|
+
/** Combinaisons `cli-color` réellement utilisées par les loggers Nodefony. */
|
|
26
|
+
declare const KEYS: readonly ["cyan", "magenta", "red", "green", "yellow", "blue", "blackBright", "yellowBold", "redBold", "cyanBold", "blueBrightBold", "cyanBgBlue", "cyanBgBlack"];
|
|
27
|
+
type ColorKey = (typeof KEYS)[number];
|
|
28
|
+
type ColorMap = Record<ColorKey, ColorFn>;
|
|
29
|
+
/**
|
|
30
|
+
* Helper de couleur partagé — référence STABLE, propriétés mutées par
|
|
31
|
+
* {@link setLogColor}. Les call-sites font `logColor.cyan("URL")`.
|
|
32
|
+
*/
|
|
33
|
+
export declare const logColor: ColorMap;
|
|
34
|
+
/**
|
|
35
|
+
* Active/désactive la couleur ANSI des logs — à appeler **une fois au boot**.
|
|
36
|
+
* Swap les fonctions des slots ; aucun coût par log ensuite.
|
|
37
|
+
*
|
|
38
|
+
* @param enabled - `true` = couleur (TTY interactif), `false` = brut (pipe/fichier).
|
|
39
|
+
*/
|
|
40
|
+
export declare function setLogColor(enabled: boolean): void;
|
|
41
|
+
/** `true` si la couleur ANSI est active (gate boot-time). */
|
|
42
|
+
export declare function isLogColorEnabled(): boolean;
|
|
43
|
+
/**
|
|
44
|
+
* Applique les conventions d'environnement couleur PAR-DESSUS un signal `isTTY`
|
|
45
|
+
* **déjà résolu** — au boot on passe `Kernel.isTTY` (qui honore déjà `NF_NO_TTY`),
|
|
46
|
+
* sans re-lire `process.stdout`. Conventions :
|
|
47
|
+
*
|
|
48
|
+
* - **`NO_COLOR`** (no-color.org) : présent **et non vide** → couleur OFF, quelle
|
|
49
|
+
* que soit sa valeur. Priorité absolue (refus explicite de l'utilisateur).
|
|
50
|
+
* - **`FORCE_COLOR`** : non vide et ≠ `"0"` → couleur ON (override pipe/non-TTY,
|
|
51
|
+
* ex. CI qui veut des logs colorés capturés).
|
|
52
|
+
* - sinon → couleur = `isTTY`.
|
|
53
|
+
*
|
|
54
|
+
* Isomorphe : `env` lu via `globalThis.process` (navigateur : pas de `process`).
|
|
55
|
+
*
|
|
56
|
+
* @param isTTY - signal TTY déjà résolu (ex. `Kernel.isTTY`, NF_NO_TTY-aware).
|
|
57
|
+
*/
|
|
58
|
+
export declare function resolveColorEnabled(isTTY: boolean): boolean;
|
|
59
|
+
export {};
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import type { Command as CommanderCommand } from "commander";
|
|
2
|
+
import type { EnvironmentType, DebugType } from "./globals.js";
|
|
3
|
+
type RunLifetime = "oneshot" | "longrunning";
|
|
4
|
+
interface IRunProfile {
|
|
5
|
+
servers: boolean;
|
|
6
|
+
lifetime: RunLifetime;
|
|
7
|
+
interactive: boolean;
|
|
8
|
+
}
|
|
9
|
+
export interface ICliKernel {
|
|
10
|
+
commander: CommanderCommand | null;
|
|
11
|
+
environment: EnvironmentType;
|
|
12
|
+
runProfile: IRunProfile;
|
|
13
|
+
/** Boot silencieux d'une commande CLI utilitaire (cf CliKernel.quietBoot). */
|
|
14
|
+
quietBoot?: boolean;
|
|
15
|
+
debug: DebugType;
|
|
16
|
+
pid: number | null;
|
|
17
|
+
setProcessTitle(name?: string): void;
|
|
18
|
+
showBanner(): void;
|
|
19
|
+
blankLine(): void;
|
|
20
|
+
clear(): void;
|
|
21
|
+
showAsciify(name: string | null): Promise<unknown>;
|
|
22
|
+
parseCommandAsync(argv?: string[]): Promise<CommanderCommand>;
|
|
23
|
+
runCommandAsync(cmd: string, args?: string[]): Promise<CommanderCommand>;
|
|
24
|
+
setPackageManager(manager?: string): unknown;
|
|
25
|
+
setCommandVersion(version: string): CommanderCommand;
|
|
26
|
+
initSyslog(env?: EnvironmentType, debug?: DebugType): void | null;
|
|
27
|
+
}
|
|
28
|
+
export {};
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
type KernelEventKey = "onInit" | "onPreStart" | "onStart" | "onPreRegister" | "onRegister" | "onPreBoot" | "onBoot" | "onReady" | "onServersReady" | "onPostReady" | "onTerminate";
|
|
2
|
+
type RunLifetime = "oneshot" | "longrunning";
|
|
3
|
+
export type { KernelEventKey, RunLifetime };
|
|
4
|
+
export interface ICommand {
|
|
5
|
+
name: string;
|
|
6
|
+
kernelEvent: KernelEventKey;
|
|
7
|
+
/**
|
|
8
|
+
* Durée de vie DÉCLARÉE par la commande : `"oneshot"` (build/install/batch → terminate
|
|
9
|
+
* une fois la phase atteinte) ou `"longrunning"` (daemon CONSOLE → le Kernel parke au
|
|
10
|
+
* lieu de terminer, cf `Kernel.finishOrPark`). Capability déclarative, lue par le Kernel.
|
|
11
|
+
*/
|
|
12
|
+
lifetime: RunLifetime;
|
|
13
|
+
action(...args: unknown[]): Promise<unknown>;
|
|
14
|
+
}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import type { DynamicParam } from "../Container.js";
|
|
2
|
+
import type { Pci, Severity, Msgid, Message } from "../syslog/Pdu.js";
|
|
3
|
+
import type Syslog from "../syslog/Syslog.js";
|
|
4
|
+
/**
|
|
5
|
+
* Contrat public d'un scope (Container enfant lié à un parent).
|
|
6
|
+
* Étend IContainer et ajoute name + getParameters avec merge/deep.
|
|
7
|
+
*/
|
|
8
|
+
export interface IScope extends IContainer {
|
|
9
|
+
readonly name: string;
|
|
10
|
+
getParameters(name: string, merge?: boolean, deep?: boolean): DynamicParam | null;
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Contrat public du DI Container nodefony.
|
|
14
|
+
* Container et Scope l'implémentent.
|
|
15
|
+
*/
|
|
16
|
+
export interface IContainer {
|
|
17
|
+
readonly id: string;
|
|
18
|
+
set<T>(name: string, object: T): void;
|
|
19
|
+
get<T = unknown>(name: string): T | null;
|
|
20
|
+
remove(name: string): boolean;
|
|
21
|
+
has(name: string): boolean;
|
|
22
|
+
keys(): string[];
|
|
23
|
+
entries(): [string, unknown][];
|
|
24
|
+
setParameters<T>(name: string, ele: T): DynamicParam | null;
|
|
25
|
+
getParameters(name: string): DynamicParam | null;
|
|
26
|
+
addScope(name: string): object;
|
|
27
|
+
enterScope(name: string): IScope;
|
|
28
|
+
leaveScope(scope: IScope): void;
|
|
29
|
+
removeScope(name: string): void;
|
|
30
|
+
/** Nombre d'instances vivantes du scope nommé (introspection/sondes). */
|
|
31
|
+
scopeCount(name: string): number;
|
|
32
|
+
log(pci: Pci, severity?: Severity, msgid?: Msgid, msg?: Message): ReturnType<Syslog["log"]> | void;
|
|
33
|
+
clean(): void;
|
|
34
|
+
reset(): void;
|
|
35
|
+
}
|
|
@@ -0,0 +1,138 @@
|
|
|
1
|
+
import type { IService } from "./IService.js";
|
|
2
|
+
import type { IModule } from "./IModule.js";
|
|
3
|
+
import type { IBootReport } from "../kernel/bootReport.js";
|
|
4
|
+
import type { IReadinessContributor } from "../kernel/readinessRegistry.js";
|
|
5
|
+
import type FileClass from "../FileClass.js";
|
|
6
|
+
import type { EnvironmentType, DebugType } from "./globals.js";
|
|
7
|
+
import type { ICliKernel } from "./ICliKernel.js";
|
|
8
|
+
import type { IInfra, IStoreResolution } from "../config/infra.js";
|
|
9
|
+
import type { ICommand } from "./ICommand.js";
|
|
10
|
+
import type os from "node:os";
|
|
11
|
+
type RunLifetime = "oneshot" | "longrunning";
|
|
12
|
+
interface IRunProfile {
|
|
13
|
+
servers: boolean;
|
|
14
|
+
lifetime: RunLifetime;
|
|
15
|
+
interactive: boolean;
|
|
16
|
+
}
|
|
17
|
+
type EventsType = Record<string, number>;
|
|
18
|
+
type TrunkType = "javascript" | "typescript" | null;
|
|
19
|
+
export interface KernelNetworkResult {
|
|
20
|
+
external: Record<string, os.NetworkInterfaceInfo[]>;
|
|
21
|
+
local: Record<string, os.NetworkInterfaceInfo[]>;
|
|
22
|
+
ipv4: Record<string, os.NetworkInterfaceInfo[]>;
|
|
23
|
+
ipv6: Record<string, os.NetworkInterfaceInfo[]>;
|
|
24
|
+
interfaces: Record<string, os.NetworkInterfaceInfo[]>;
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Contrat public du Kernel nodefony.
|
|
28
|
+
* Utilisé comme type de IService.kernel pour éviter l'import circulaire
|
|
29
|
+
* Kernel.ts → Service.ts → IService.ts → IKernel.ts → Kernel.ts.
|
|
30
|
+
*
|
|
31
|
+
* IModule sera ajouté quand IModule sera défini (getModule/modules typés object pour l'instant).
|
|
32
|
+
* command/commandArgs typés object/unknown[] — ICommand session dédiée.
|
|
33
|
+
*/
|
|
34
|
+
export interface IKernel extends IService {
|
|
35
|
+
runProfile: IRunProfile;
|
|
36
|
+
readonly version: string;
|
|
37
|
+
readonly environment: EnvironmentType;
|
|
38
|
+
readonly debug: DebugType;
|
|
39
|
+
readonly projectName: string;
|
|
40
|
+
readonly path: string;
|
|
41
|
+
/**
|
|
42
|
+
* Répertoire des données runtime PERSISTÉES (`<path>/var`) — base commune des
|
|
43
|
+
* stores fichier (passkeys, TOTP, sessions) et bases SQLite. Gitignoré ; garanti
|
|
44
|
+
* créé au boot (comme `tmpDir`, éphémère). Absent tant que le Kernel n'a pas booté.
|
|
45
|
+
*/
|
|
46
|
+
readonly varDir?: FileClass;
|
|
47
|
+
readonly isDev: boolean;
|
|
48
|
+
readonly isProd: boolean;
|
|
49
|
+
/**
|
|
50
|
+
* Infra déclarée (`database`/`cache`/`logs`) résolue depuis l'environnement
|
|
51
|
+
* (URLs `NF_DATABASE_URL`/`NF_REDIS_URL`/…). Mémoïsée — consommée par les
|
|
52
|
+
* briques dont le store vaut `"auto"` (`resolveAutoStore`).
|
|
53
|
+
*/
|
|
54
|
+
readonly infra: IInfra;
|
|
55
|
+
/**
|
|
56
|
+
* Résolutions EFFECTIVES des stores de persistance, capturées au boot par
|
|
57
|
+
* chaque brique (`registerStoreResolution`) — la vérité vécue (replis inclus),
|
|
58
|
+
* alimente l'écran Studio « Stores ». Vide tant qu'aucune brique n'a résolu.
|
|
59
|
+
*/
|
|
60
|
+
readonly storeResolutions: IStoreResolution[];
|
|
61
|
+
/**
|
|
62
|
+
* Enregistre la résolution effective d'une brique de persistance (idempotent
|
|
63
|
+
* par `brick` — la dernière résolution gagne). La provenance est dérivée de
|
|
64
|
+
* `configured` (`"auto"` → `"infra"`, sinon `"explicit"`). Appelé au boot,
|
|
65
|
+
* après le `log()` de résolution du consommateur.
|
|
66
|
+
*/
|
|
67
|
+
registerStoreResolution(resolution: Omit<IStoreResolution, "provenance">): void;
|
|
68
|
+
/**
|
|
69
|
+
* L'environnement FOURNIT-il un vrai terminal ? Résolu une fois au boot
|
|
70
|
+
* (`process.stdout.isTTY`, surchargeable `NF_NO_TTY`). Volet « environnement » qui
|
|
71
|
+
* complète `runProfile.interactive` (besoin déclaré) : un prompt n'a de sens que si
|
|
72
|
+
* `runProfile.interactive && kernel.isTTY`. Cloud-native (pod/CI) → toujours `false`.
|
|
73
|
+
*/
|
|
74
|
+
readonly isTTY: boolean;
|
|
75
|
+
readonly pid: number;
|
|
76
|
+
readonly platform: NodeJS.Platform;
|
|
77
|
+
/** Répertoire temporaire du projet (`<cwd>/tmp`), initialisé au boot. */
|
|
78
|
+
tmpDir?: FileClass;
|
|
79
|
+
readonly started: boolean;
|
|
80
|
+
readonly booted: boolean;
|
|
81
|
+
readonly ready: boolean;
|
|
82
|
+
readonly postReady: boolean;
|
|
83
|
+
/** Supprime les bannières serveurs sous l'écran de boot animé (dev). */
|
|
84
|
+
readonly suppressBootBanners: boolean;
|
|
85
|
+
readonly Events: Readonly<EventsType>;
|
|
86
|
+
readonly progress: number;
|
|
87
|
+
readonly trunk: TrunkType;
|
|
88
|
+
command: ICommand | null;
|
|
89
|
+
commandArgs: unknown[];
|
|
90
|
+
domain: string;
|
|
91
|
+
cli: ICliKernel | null;
|
|
92
|
+
readonly modules: Record<string, IModule>;
|
|
93
|
+
start(): Promise<this>;
|
|
94
|
+
/** `quiet` muselle l'affichage (log « terminate : N ») — jamais le drain. */
|
|
95
|
+
terminate(code?: number, quiet?: boolean): Promise<this>;
|
|
96
|
+
isTrunk(): Promise<TrunkType>;
|
|
97
|
+
isModule(subclass: unknown): boolean;
|
|
98
|
+
addModule(Mod: unknown, ...args: unknown[]): Promise<IModule>;
|
|
99
|
+
loadModule(nameOrPath: string): Promise<IModule>;
|
|
100
|
+
getModule(name: string): IModule;
|
|
101
|
+
getModules(): Record<string, IModule>;
|
|
102
|
+
getNetwork(): KernelNetworkResult;
|
|
103
|
+
checkPath(myPath: string): string | null;
|
|
104
|
+
isCommandComplete(progress: number): boolean;
|
|
105
|
+
/** Verdict agrégé du dernier boot (modules, serveurs, santé) — vérité unique. */
|
|
106
|
+
getBootReport(): IBootReport;
|
|
107
|
+
/** AJOUTE une ligne de détail à afficher sous une phase de boot (canal neutre). */
|
|
108
|
+
reportBootLine(phase: string, line: string): void;
|
|
109
|
+
/** REMPLACE les lignes de détail d'une phase (producteur idempotent). */
|
|
110
|
+
setBootLines(phase: string, lines: string[]): void;
|
|
111
|
+
/** Lignes de détail déclarées pour une phase de boot. */
|
|
112
|
+
getBootLines(phase: string): string[];
|
|
113
|
+
/**
|
|
114
|
+
* Nombre de composants qui retiennent la mise en service — `0` = disponible.
|
|
115
|
+
* Verdict DÉJÀ calculé : le lire ne déclenche aucune vérification.
|
|
116
|
+
*/
|
|
117
|
+
readonly readinessBlocked: number;
|
|
118
|
+
/**
|
|
119
|
+
* Ce processus a-t-il le droit de recevoir du trafic ?
|
|
120
|
+
*
|
|
121
|
+
* La règle de mise en service, en UN point : cycle de démarrage TERMINÉ
|
|
122
|
+
* (`postReady`) et aucun composant qui retienne. Lue telle quelle par la
|
|
123
|
+
* sonde `/readyz` et par le champ `ready` du plan d'administration — les
|
|
124
|
+
* recomposer chacun de son côté les a déjà fait diverger.
|
|
125
|
+
*/
|
|
126
|
+
readonly servable: boolean;
|
|
127
|
+
/**
|
|
128
|
+
* Pose le verdict de disponibilité d'un composant nommé (schéma en retard,
|
|
129
|
+
* cache froid…). Un seul `false` suffit à faire rendre 503 à `/readyz` ;
|
|
130
|
+
* `/livez` reste 200 — un état externe ne se répare pas par un redémarrage.
|
|
131
|
+
*/
|
|
132
|
+
setReadiness(name: string, ready: boolean, reason?: string): void;
|
|
133
|
+
/** Retire un contributeur : sa voix ne retient plus rien. */
|
|
134
|
+
clearReadiness(name: string): void;
|
|
135
|
+
/** État de chaque contributeur — pour un diagnostic, jamais pour la sonde. */
|
|
136
|
+
readinessReport(): IReadinessContributor[];
|
|
137
|
+
}
|
|
138
|
+
export {};
|
|
@@ -0,0 +1,157 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Contrat d'un outil **Model Context Protocol** — défini dans le CORE.
|
|
3
|
+
*
|
|
4
|
+
* Vit ici, et non dans le module qui sert la porte HTTP, pour la raison qui
|
|
5
|
+
* gouverne déjà {@link IAdminApi} : un outil peut être produit par n'importe
|
|
6
|
+
* quel niveau de la pile — un module métier d'application, un adapter ORM, un
|
|
7
|
+
* futur module IA — et le contrat doit donc résider au plus bas niveau commun.
|
|
8
|
+
* Un contrat logé dans un module `policy: "dev"` obligerait toute application
|
|
9
|
+
* voulant déclarer un outil à dépendre d'un paquet qui disparaît en production.
|
|
10
|
+
*
|
|
11
|
+
* Séparation des rôles :
|
|
12
|
+
* - Ce fichier = **producteur**. Un module déclare *quels* outils il offre, par
|
|
13
|
+
* `getMcpTools()`, sans rien connaître du transport ni du protocole.
|
|
14
|
+
* - `mcp/server.ts` (core) = **protocole**. Il reçoit des outils déjà résolus.
|
|
15
|
+
* - Un controller de module = **transport**. Il traduit HTTP ↔ JSON-RPC.
|
|
16
|
+
*/
|
|
17
|
+
/**
|
|
18
|
+
* Ce que rend un outil — du contenu, et l'aveu d'un échec métier.
|
|
19
|
+
*
|
|
20
|
+
* Un échec métier se dit par `isError`, jamais par une exception : le protocole
|
|
21
|
+
* réserve ses erreurs aux fautes de protocole. La distinction compte pour
|
|
22
|
+
* l'agent — une erreur de protocole signifie « tu t'y prends mal », un `isError`
|
|
23
|
+
* signifie « ta demande est recevable, voici pourquoi elle n'aboutit pas » ;
|
|
24
|
+
* c'est la seconde qu'il peut corriger seul.
|
|
25
|
+
*/
|
|
26
|
+
export interface IMcpToolResult {
|
|
27
|
+
content: {
|
|
28
|
+
type: "text";
|
|
29
|
+
text: string;
|
|
30
|
+
}[];
|
|
31
|
+
isError?: boolean;
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Ce que le transport a pu ÉTABLIR de l'appelant — jamais ce qu'il prétend.
|
|
35
|
+
*
|
|
36
|
+
* La spec autorise le catalogue à varier selon l'autorisation présentée, et
|
|
37
|
+
* pose la condition qui rend cela sûr : « credentials are **per-request input,
|
|
38
|
+
* not connection state** ». D'où cet objet, construit à CHAQUE requête par la
|
|
39
|
+
* porte, et jamais mémorisé entre deux.
|
|
40
|
+
*
|
|
41
|
+
* ⚠️ **Une porte qui n'authentifie pas rend un appelant anonyme** — pas une
|
|
42
|
+
* autorisation implicite. Tant que le rôle *resource server* n'est pas branché,
|
|
43
|
+
* `authenticated` est `false` et `scopes` est vide : les outils qui exigent
|
|
44
|
+
* quoi que ce soit sont retenus, jamais servis par défaut.
|
|
45
|
+
*/
|
|
46
|
+
export interface IMcpCaller {
|
|
47
|
+
/**
|
|
48
|
+
* Une identité a-t-elle été PROUVÉE (jeton validé) ?
|
|
49
|
+
*
|
|
50
|
+
* `false` par défaut, et c'est le seul défaut sûr : le jour où quelqu'un
|
|
51
|
+
* branche une porte authentifiée en oubliant de poser ce drapeau, les outils
|
|
52
|
+
* protégés restent invisibles — l'inverse aurait ouvert.
|
|
53
|
+
*/
|
|
54
|
+
authenticated: boolean;
|
|
55
|
+
/** Scopes réellement accordés par le serveur d'autorisation. */
|
|
56
|
+
scopes: readonly string[];
|
|
57
|
+
/**
|
|
58
|
+
* Rôles Nodefony de cet appelant — ce sur quoi le plan d'administration
|
|
59
|
+
* tranche.
|
|
60
|
+
*
|
|
61
|
+
* Posés par la PORTE, qui seule connaît sa configuration : une porte non
|
|
62
|
+
* protégée (module de développement, bornée par son périmètre et ses gardes
|
|
63
|
+
* de transport) accorde le rôle d'opérateur et l'ÉNONCE ; une porte protégée
|
|
64
|
+
* les dérive du jeton ({@link rolesFromScopes}) et n'accorde rien d'autre.
|
|
65
|
+
*
|
|
66
|
+
* Champ **obligatoire** : le compilateur force chaque porte à décider. Il l'a
|
|
67
|
+
* été après avoir constaté l'inverse — la lecture d'administration fabriquait
|
|
68
|
+
* un administrateur, donc tout porteur d'un jeton d'audience valide, même
|
|
69
|
+
* sans aucun droit, obtenait tout.
|
|
70
|
+
*/
|
|
71
|
+
roles: readonly string[];
|
|
72
|
+
/** Sujet du jeton (`sub`), pour l'audit et pour filtrer les données rendues. */
|
|
73
|
+
subject?: string;
|
|
74
|
+
}
|
|
75
|
+
/** Un outil tel que `tools/list` le publie — sans son implémentation. */
|
|
76
|
+
export interface IMcpToolDefinition {
|
|
77
|
+
/**
|
|
78
|
+
* Identifiant d'appel. Forme admise : `[a-zA-Z0-9_-]{1,64}`.
|
|
79
|
+
*
|
|
80
|
+
* Ce nom ne reste pas dans le serveur — il voyage jusque dans le contexte du
|
|
81
|
+
* modèle. Un nom hors forme n'échoue pas franchement : il produit des appels
|
|
82
|
+
* que rien ne résout.
|
|
83
|
+
*/
|
|
84
|
+
name: string;
|
|
85
|
+
/**
|
|
86
|
+
* ⭐ **Le premier critère de déclenchement de l'outil**, avant toute
|
|
87
|
+
* considération technique. Un modèle n'appelle pas ce qu'il ne comprend pas :
|
|
88
|
+
* dire ce que l'outil REND et QUAND s'en servir, pas seulement son nom.
|
|
89
|
+
*/
|
|
90
|
+
description: string;
|
|
91
|
+
/** Schéma JSON des arguments attendus. */
|
|
92
|
+
inputSchema: Record<string, unknown>;
|
|
93
|
+
}
|
|
94
|
+
/**
|
|
95
|
+
* Un outil exécutable : ce que `tools/list` publie, plus ce qui répond.
|
|
96
|
+
*
|
|
97
|
+
* C'est le contrat qu'un module implémente pour ajouter un outil à la porte MCP
|
|
98
|
+
* de son application. Le handler ne reçoit QUE les arguments de l'agent : tout
|
|
99
|
+
* ce dont il a besoin par ailleurs (services, kernel, connexions) est capturé
|
|
100
|
+
* par fermeture au moment de la déclaration — le déclarant est un module, il a
|
|
101
|
+
* déjà tout sous la main.
|
|
102
|
+
*
|
|
103
|
+
* @example
|
|
104
|
+
* ```ts
|
|
105
|
+
* import { Module, mcpText, type IMcpTool } from "nodefony";
|
|
106
|
+
*
|
|
107
|
+
* class Shop extends Module {
|
|
108
|
+
* getMcpTools(): IMcpTool[] {
|
|
109
|
+
* return [{
|
|
110
|
+
* name: "shop_stock",
|
|
111
|
+
* description:
|
|
112
|
+
* "Stock réel d'une référence produit. À utiliser avant de proposer " +
|
|
113
|
+
* "une commande — la réponse vient de la base, pas d'un cache.",
|
|
114
|
+
* inputSchema: {
|
|
115
|
+
* type: "object",
|
|
116
|
+
* properties: { sku: { type: "string", description: "Référence" } },
|
|
117
|
+
* required: ["sku"],
|
|
118
|
+
* },
|
|
119
|
+
* handler: async (args) => mcpText(await this.stock(String(args.sku))),
|
|
120
|
+
* }];
|
|
121
|
+
* }
|
|
122
|
+
* }
|
|
123
|
+
* ```
|
|
124
|
+
*/
|
|
125
|
+
export interface IMcpTool extends IMcpToolDefinition {
|
|
126
|
+
/**
|
|
127
|
+
* Scopes OAuth exigés — **tous**, pas au moins un.
|
|
128
|
+
*
|
|
129
|
+
* Absent = outil public, servi à qui atteint la porte. Présent, l'outil est
|
|
130
|
+
* **retenu** tant que l'appelant ne les présente pas : il n'apparaît pas dans
|
|
131
|
+
* `tools/list` ET n'est pas appelable en le nommant — un catalogue filtré qui
|
|
132
|
+
* resterait appelable ne serait qu'un rideau.
|
|
133
|
+
*
|
|
134
|
+
* La spec le permet explicitement (`server/tools`) : le jeu d'outils « MAY
|
|
135
|
+
* vary by the authorization presented on the request — for example, returning
|
|
136
|
+
* only the tools the caller's granted scopes permit ». Elle interdit en
|
|
137
|
+
* revanche de le faire varier PAR CONNEXION : c'est pourquoi la décision se
|
|
138
|
+
* prend sur les identifiants de la requête, jamais sur un état retenu.
|
|
139
|
+
*/
|
|
140
|
+
scopes?: readonly string[];
|
|
141
|
+
/**
|
|
142
|
+
* Exige une identité prouvée, sans scope particulier.
|
|
143
|
+
*
|
|
144
|
+
* Utile quand l'outil filtre lui-même ce qu'il rend selon
|
|
145
|
+
* {@link IMcpCaller.subject} — « mes commandes », « mes tâches ». Déclarer
|
|
146
|
+
* des {@link IMcpTool.scopes} l'implique déjà.
|
|
147
|
+
*/
|
|
148
|
+
requiresAuth?: boolean;
|
|
149
|
+
/**
|
|
150
|
+
* Implémentation. Un échec métier se rend en `isError`, pas en exception.
|
|
151
|
+
*
|
|
152
|
+
* Le second paramètre porte l'appelant ÉTABLI : un outil authentifié doit
|
|
153
|
+
* pouvoir borner ce qu'il rend à son sujet, et pas seulement décider s'il
|
|
154
|
+
* répond. Un handler qui l'ignore reste parfaitement valide.
|
|
155
|
+
*/
|
|
156
|
+
handler: (args: Record<string, unknown>, caller: IMcpCaller) => IMcpToolResult | Promise<IMcpToolResult>;
|
|
157
|
+
}
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
import type { IService } from "./IService.js";
|
|
2
|
+
import type { IKernel } from "./IKernel.js";
|
|
3
|
+
import type { JSONObject } from "./globals.js";
|
|
4
|
+
import type { IMcpTool } from "./IMcpTool.js";
|
|
5
|
+
/**
|
|
6
|
+
* Constructeur générique de controller — équivalent au type historique
|
|
7
|
+
* `TypeController<T>` mais exposé via le contract public IModule.
|
|
8
|
+
* Permet aux consommateurs (framework, http, security) de typer leurs
|
|
9
|
+
* controllers sans que le core dépende de @nodefony/framework.
|
|
10
|
+
*/
|
|
11
|
+
export type IControllerConstructor<T = unknown> = new (...args: any[]) => T;
|
|
12
|
+
export interface PackageJson {
|
|
13
|
+
name: string;
|
|
14
|
+
version: string;
|
|
15
|
+
description?: string;
|
|
16
|
+
main?: string;
|
|
17
|
+
module?: string;
|
|
18
|
+
types?: string;
|
|
19
|
+
scripts?: Record<string, string>;
|
|
20
|
+
repository?: {
|
|
21
|
+
type: string;
|
|
22
|
+
url: string;
|
|
23
|
+
};
|
|
24
|
+
keywords?: string[];
|
|
25
|
+
author?: string;
|
|
26
|
+
license?: string;
|
|
27
|
+
dependencies?: Record<string, string>;
|
|
28
|
+
devDependencies?: Record<string, string>;
|
|
29
|
+
peerDependencies?: Record<string, string>;
|
|
30
|
+
[key: string]: unknown;
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Contrat public d'un module nodefony.
|
|
34
|
+
* Module.ts implémente cette interface.
|
|
35
|
+
*
|
|
36
|
+
* Types Rollup/RollupWatcher/Controller typés unknown — dépendances externes
|
|
37
|
+
* non disponibles ici sans créer des imports circulaires ou des couplages forts.
|
|
38
|
+
*/
|
|
39
|
+
export interface IModule extends IService {
|
|
40
|
+
path: string;
|
|
41
|
+
isApp: boolean;
|
|
42
|
+
package?: PackageJson;
|
|
43
|
+
onKernelRegister?(): Promise<this>;
|
|
44
|
+
onKernelBoot?(): Promise<this>;
|
|
45
|
+
onKernelReady?(): Promise<this>;
|
|
46
|
+
init?(kernel?: IKernel): Promise<this>;
|
|
47
|
+
addService(service: unknown, ...args: any[]): Promise<IService>;
|
|
48
|
+
loadService(service: string, ...args: unknown[]): Promise<IService>;
|
|
49
|
+
getDependencies(): string[];
|
|
50
|
+
getController<T = unknown>(name: string): IControllerConstructor<T>;
|
|
51
|
+
getControllers<T = unknown>(): Record<string, IControllerConstructor<T>>;
|
|
52
|
+
getServiceNames(): string[];
|
|
53
|
+
/**
|
|
54
|
+
* Outils que ce module ajoute à la porte MCP de l'application.
|
|
55
|
+
*
|
|
56
|
+
* Optionnel et **lu à la demande** — jamais au boot : un serveur MCP les
|
|
57
|
+
* ramasse au moment de servir `tools/list`, ce qui ne coûte rien tant que
|
|
58
|
+
* personne n'appelle, et rend la liste toujours fraîche. Le module capture par
|
|
59
|
+
* fermeture ce dont ses handlers ont besoin (`this`, ses services).
|
|
60
|
+
*
|
|
61
|
+
* Une déclaration qui lève, rend autre chose qu'un tableau, porte un nom hors
|
|
62
|
+
* forme ou déjà pris est ÉCARTÉE avec un motif journalisé — jamais en silence,
|
|
63
|
+
* sinon son auteur chercherait la faute dans un handler jamais appelé.
|
|
64
|
+
*/
|
|
65
|
+
getMcpTools?(): IMcpTool[];
|
|
66
|
+
configSchema(): unknown | null;
|
|
67
|
+
getPackageJson(cwd?: string): Promise<PackageJson>;
|
|
68
|
+
getModuleName(): string | undefined;
|
|
69
|
+
getModuleVersion(): string | undefined;
|
|
70
|
+
install(force?: boolean): Promise<number | Error>;
|
|
71
|
+
outdated(): Promise<number | Error>;
|
|
72
|
+
loadJson(url: string, cwd?: string): Promise<JSONObject>;
|
|
73
|
+
}
|