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
package/docs/testing.md
ADDED
|
@@ -0,0 +1,203 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: "Éprouver une application — le harnais livré avec le framework"
|
|
3
|
+
navTitle: Tests
|
|
4
|
+
lang: fr
|
|
5
|
+
module: "@nodefony/core"
|
|
6
|
+
topic: testing
|
|
7
|
+
coverageModule: nodefony-core
|
|
8
|
+
coveragePackage: "nodefony (cœur)"
|
|
9
|
+
coverageFiles: "testing/index.ts"
|
|
10
|
+
section: "Cœur runtime"
|
|
11
|
+
audience: [developer]
|
|
12
|
+
tags: [tests, e2e, testing, harnais, vitest, unitaire, integration]
|
|
13
|
+
version: "doc"
|
|
14
|
+
status: stable
|
|
15
|
+
updated: 2026-09-01
|
|
16
|
+
source: "src/nodefony/docs/testing.md"
|
|
17
|
+
---
|
|
18
|
+
|
|
19
|
+
# Éprouver une application Nodefony
|
|
20
|
+
|
|
21
|
+
> Une application créée par `nodefony create app` naît avec des tests qui marchent : un harnais
|
|
22
|
+
> qui démarre le serveur une fois pour toute la suite, l'arrête à la fin, et donne aux tests le
|
|
23
|
+
> moyen de savoir à qui parler. Cette page explique ce que ce harnais utilise — le sous-chemin
|
|
24
|
+
> `nodefony/testing` — et comment vous en écrivez un second.
|
|
25
|
+
|
|
26
|
+
📍 [Documentation](../../../docs/index.md) › [Cœur — @nodefony/core](index.md) › **Tests**
|
|
27
|
+
|
|
28
|
+
## Le modèle — trois niveaux, trois outils
|
|
29
|
+
|
|
30
|
+
Trois questions différentes, qu'il ne faut pas confondre :
|
|
31
|
+
|
|
32
|
+
| Ce que vous voulez éprouver | Ce qu'il vous faut |
|
|
33
|
+
| ---------------------------------------------------- | ------------------------------------------------- |
|
|
34
|
+
| La logique d'**un service**, seule | `createTestModule()` — aucun serveur, aucun port |
|
|
35
|
+
| Le comportement de **l'application qui tourne** | le harnais généré + `runningAppPort()` |
|
|
36
|
+
| Ce qui ne s'observe qu'**au démarrage** d'un process | `startSpareApp()` — un exemplaire jetable, à part |
|
|
37
|
+
|
|
38
|
+
Le point commun : **rien de tout cela ne demande de fabriquer un kernel à la main**. Un service
|
|
39
|
+
Nodefony reçoit un `Module`, et un `Module` réclame normalement un `Kernel` — sans porte d'entrée,
|
|
40
|
+
éprouver un calcul de taxe obligerait à démarrer une application entière, ou à écrire un
|
|
41
|
+
`as unknown as Kernel` que les règles du projet interdisent. C'est ce trou que le sous-chemin
|
|
42
|
+
`nodefony/testing` comble.
|
|
43
|
+
|
|
44
|
+
## 🚀 Démarrage rapide
|
|
45
|
+
|
|
46
|
+
```ts
|
|
47
|
+
import { createTestModule, runningAppPort } from "nodefony/testing";
|
|
48
|
+
|
|
49
|
+
// 1. Un module JETABLE : il porte un conteneur et un bus d'événements, rien d'autre.
|
|
50
|
+
// De quoi construire un service seul, sans démarrer quoi que ce soit.
|
|
51
|
+
const app = createTestModule();
|
|
52
|
+
|
|
53
|
+
// 2. Les services se donnent leurs dépendances À LA MAIN — c'est ce qui permet
|
|
54
|
+
// d'y glisser un double.
|
|
55
|
+
class TaxService {
|
|
56
|
+
rate = 0.2;
|
|
57
|
+
}
|
|
58
|
+
class InvoiceService {
|
|
59
|
+
constructor(
|
|
60
|
+
readonly module: typeof app,
|
|
61
|
+
readonly tax: TaxService,
|
|
62
|
+
) {}
|
|
63
|
+
total(ht: number): number {
|
|
64
|
+
return ht * (1 + this.tax.rate);
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
const invoice = new InvoiceService(app, new TaxService());
|
|
68
|
+
console.log(invoice.total(100)); // 120
|
|
69
|
+
|
|
70
|
+
// 3. Dans un test de bout en bout, le port ne s'écrit JAMAIS en dur :
|
|
71
|
+
// il se demande à l'application qui tourne.
|
|
72
|
+
const port = runningAppPort();
|
|
73
|
+
const res = await fetch(`http://127.0.0.1:${port}/`);
|
|
74
|
+
console.log(res.status);
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
## Ce que le sous-chemin fournit
|
|
78
|
+
|
|
79
|
+
<!-- prettier-ignore -->
|
|
80
|
+
| Export | Ce qu'il fait | Quand s'en servir |
|
|
81
|
+
| --- | --- | --- |
|
|
82
|
+
| `createTestModule()` (`testing/index.ts:160`) | Rend un `Module` jetable portant un conteneur et un bus d'événements | Test unitaire d'un service |
|
|
83
|
+
| `runningAppPort()` (`testing/index.ts:96`) | Lit le port de l'application démarrée par le décor | Tout test de bout en bout |
|
|
84
|
+
| `startSpareApp()` (`testing/index.ts:251`) | Démarre un exemplaire jetable dans un état choisi, puis restaure l'état d'exécution | Éprouver un démarrage, pas un fonctionnement |
|
|
85
|
+
| `nodefonyBin()` (`testing/index.ts:64`) | Résout le lanceur du framework, où qu'il soit installé | Appeler une commande depuis un script |
|
|
86
|
+
|
|
87
|
+
### `createTestModule()` — et ce qu'il ne fait pas
|
|
88
|
+
|
|
89
|
+
Il ne démarre aucun kernel, n'ouvre aucun port, ne lit aucune configuration. Conséquence directe,
|
|
90
|
+
et qui surprend : **la résolution par le conteneur n'est pas de la partie**. `@inject("XService")`
|
|
91
|
+
passe par le singleton du kernel, qui n'existe pas ici.
|
|
92
|
+
|
|
93
|
+
```ts ignore
|
|
94
|
+
const app = createTestModule();
|
|
95
|
+
const invoice = new InvoiceService(app, new TaxService(app)); // ✅
|
|
96
|
+
const invoice = await app.addService(InvoiceService); // ❌ exige un kernel vivant
|
|
97
|
+
```
|
|
98
|
+
|
|
99
|
+
Ce n'est pas une limite gênante : un test unitaire **donne lui-même** la dépendance, ce qui est
|
|
100
|
+
précisément l'intérêt de l'injection par constructeur — et ce qui permet d'y glisser un double.
|
|
101
|
+
|
|
102
|
+
### `runningAppPort()` — pourquoi il lève plutôt que de se rabattre
|
|
103
|
+
|
|
104
|
+
Il lit l'état d'exécution publié par l'application démarrée, et **échoue franchement** s'il ne
|
|
105
|
+
trouve pas de port. Un port de repli ferait interroger un serveur étranger sur la même machine, et
|
|
106
|
+
le verdict porterait sur lui : un test vert qui n'a rien mesuré de votre code.
|
|
107
|
+
|
|
108
|
+
## Le harnais généré — `tests/e2e.setup.ts`
|
|
109
|
+
|
|
110
|
+
Chaque application créée par `nodefony create app` reçoit ce fichier. Il fait quatre choses, dans
|
|
111
|
+
cet ordre, **une fois pour toute la suite** :
|
|
112
|
+
|
|
113
|
+
1. **Repartir d'une base vierge.** Un verdict qui dépend de ce qu'un essai précédent a laissé n'est
|
|
114
|
+
pas reproductible. Sur SQLite le fichier est supprimé — avec ses compagnons `-wal` et `-shm`,
|
|
115
|
+
sans quoi la base ressuscite. Sur un moteur serveur, c'est `orm:reset` : une base ne s'efface
|
|
116
|
+
pas, on retire ses tables.
|
|
117
|
+
2. **Appliquer le schéma avant le trafic** (`orm:migrate`). C'est le patron de production tel quel :
|
|
118
|
+
en production le démarrage ne fabrique jamais le schéma, parce que plusieurs exemplaires partent
|
|
119
|
+
en même temps et qu'aucun ne doit toucher aux tables.
|
|
120
|
+
3. **Démarrer l'application** par `production --detach --wait` : la commande ne rend la main que
|
|
121
|
+
lorsque la disponibilité est constatée — aucune attente arbitraire.
|
|
122
|
+
4. **L'arrêter à la fin** (`stop`), sans exception : un serveur orphelin tient les ports et fait
|
|
123
|
+
échouer l'essai suivant sur une erreur qui ne parle pas de lui.
|
|
124
|
+
|
|
125
|
+
Le fichier expose aussi `URL_BASE_E2E` — une base **séparée de celle du développement**, ce qui
|
|
126
|
+
n'est pas une coquetterie : une suite qui écrit dans la base de développement y sème un compte
|
|
127
|
+
`admin` dont le mot de passe est celui du fichier de test, et le couple annoncé par le README cesse
|
|
128
|
+
alors de fonctionner sans le moindre message. Surcharge possible par `NF_E2E_DATABASE_URL`.
|
|
129
|
+
|
|
130
|
+
> Cette variable ne change **pas le dialecte** de vos entités : elles sont écrites pour le moteur
|
|
131
|
+
> choisi à la création, et l'ORM refuse de démarrer sur un autre en nommant l'entité fautive.
|
|
132
|
+
|
|
133
|
+
## Écrire un second harnais — un exemplaire jetable
|
|
134
|
+
|
|
135
|
+
Certaines choses ne s'observent que sur un processus qui **démarre** dans un état précis : un
|
|
136
|
+
schéma en retard qui retient la mise en service, une dépendance absente, un refus de démarrage. Le
|
|
137
|
+
décor de la suite, lui, a démarré l'application dans l'état normal — et c'est ce qu'on veut.
|
|
138
|
+
|
|
139
|
+
```ts ignore
|
|
140
|
+
const jetable = await startSpareApp({
|
|
141
|
+
port: 5399,
|
|
142
|
+
env: { NODE_ENV: "production", NF_DATABASE_URL: "sqlite:/tmp/vierge.db" },
|
|
143
|
+
});
|
|
144
|
+
try {
|
|
145
|
+
const res = await fetch(`http://127.0.0.1:${jetable.port}/readyz`);
|
|
146
|
+
assert.equal(res.status, 503);
|
|
147
|
+
} finally {
|
|
148
|
+
await jetable.stop();
|
|
149
|
+
}
|
|
150
|
+
```
|
|
151
|
+
|
|
152
|
+
Le port est **imposé, jamais deviné** : l'exemplaire du décor tient déjà celui de l'application, et
|
|
153
|
+
la sonde doit savoir à qui elle parle.
|
|
154
|
+
|
|
155
|
+
## 📖 Lexique
|
|
156
|
+
|
|
157
|
+
| Terme | Ce que c'est |
|
|
158
|
+
| ---------------------- | --------------------------------------------------------------------------------------------------------------------------------- |
|
|
159
|
+
| **Sous-chemin** | Une porte d'entrée secondaire d'un paquet (`nodefony/testing` à côté de `nodefony`), déclarée dans son `package.json`. |
|
|
160
|
+
| **e2e** | _End to end_ — un test qui exerce la chaîne entière, du client à la base réelle, sans rien simuler. |
|
|
161
|
+
| **Module jetable** | Ce que rend `createTestModule()` : un porteur de conteneur et d'événements, sans kernel, sans port, sans configuration. |
|
|
162
|
+
| **État d'exécution** | Le fichier où une application publie ses ports en démarrant. C'est lui que `runningAppPort()` lit — un seul par racine de projet. |
|
|
163
|
+
| **Exemplaire jetable** | Un second process de la même application, sur un autre port, démarré pour observer un cas de démarrage précis. |
|
|
164
|
+
|
|
165
|
+
## ⚠️ Pièges
|
|
166
|
+
|
|
167
|
+
- **Deux exemplaires lancés depuis le même dossier partagent un seul état d'exécution.** Le second
|
|
168
|
+
écrase les ports du premier, et `runningAppPort()` se met à désigner le jetable — puis à lever
|
|
169
|
+
une fois qu'il est mort. Le défaut ne se voit pas dans le test qui l'a créé : il tombe sur le
|
|
170
|
+
**suivant**, et accuse une route qui n'a rien fait. C'est pour cela que `stop()` restaure l'état
|
|
171
|
+
d'avant, et pourquoi il doit être appelé dans un `finally`.
|
|
172
|
+
- **Un port écrit en dur casse dès que l'application déclare le sien** (`NF_PORT`, ou la variable
|
|
173
|
+
qu'un hébergeur impose), ou qu'un port occupé l'a fait glisser.
|
|
174
|
+
- **`createTestModule()` ne résout rien par le conteneur.** Si un test échoue sur
|
|
175
|
+
`module.container` au constructeur, c'est qu'une dépendance a été demandée à l'injecteur au lieu
|
|
176
|
+
d'être donnée à la main.
|
|
177
|
+
- **Une suite lancée ailleurs qu'à la racine de l'application ne trouve pas l'état d'exécution**,
|
|
178
|
+
et `runningAppPort()` lève en le disant.
|
|
179
|
+
- **La suite tourne en `production`**, où aucun compte n'est semé sans mot de passe explicite. Les
|
|
180
|
+
routes protégées ont donc besoin de l'identité que le harnais pose lui-même — sans elle, elles
|
|
181
|
+
échouent en accusant la garde plutôt que le décor.
|
|
182
|
+
|
|
183
|
+
## 🧪 Tests & couverture
|
|
184
|
+
|
|
185
|
+
Les chiffres exacts vivent dans la carte de l'aperçu, régénérée en comptant — jamais figés ici.
|
|
186
|
+
|
|
187
|
+
<!-- prettier-ignore -->
|
|
188
|
+
| Type | Où | Ce qui est prouvé |
|
|
189
|
+
| --- | --- | --- |
|
|
190
|
+
| Unitaires | `nodefony` `testing.test.ts` | ce que rend le module jetable, la lecture du port, la restauration de l'état d'exécution |
|
|
191
|
+
| Unitaires (génération) | `nodefony` `create.test.ts` | que le harnais est bien livré avec l'application créée, dans ses quatre variantes |
|
|
192
|
+
|
|
193
|
+
## 🔗 Pour aller plus loin
|
|
194
|
+
|
|
195
|
+
- ⬆️ **Retour au hub** : [Cœur — @nodefony/core](index.md) ·
|
|
196
|
+
[Toute la documentation](../../../docs/index.md)
|
|
197
|
+
- 🏗️ **Ce qui a généré ces fichiers** :
|
|
198
|
+
[`generer-du-code.md`](../../../docs/guides/generer-du-code.md)
|
|
199
|
+
- 🗄️ **La base que la suite efface** :
|
|
200
|
+
[`persistence.md`](../../../docs/guides/persistence.md)
|
|
201
|
+
- 🖥️ **Les commandes que le harnais appelle** : [la CLI](cli.md)
|
|
202
|
+
- 🏭 **Ce que la forge du framework lance, et pourquoi un saut compte comme un succès** :
|
|
203
|
+
[`integration-continue.md`](../../../docs/guides/integration-continue.md)
|
|
@@ -0,0 +1,255 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: "Composables Vue — nodefony/vue"
|
|
3
|
+
lang: fr
|
|
4
|
+
module: "@nodefony/core"
|
|
5
|
+
topic: vue-composables
|
|
6
|
+
coverageModule: nodefony-core
|
|
7
|
+
coveragePackage: "nodefony (cœur)"
|
|
8
|
+
coverageFiles: "client/vue/index.ts,client/realtime/observe.ts"
|
|
9
|
+
section: "Cœur runtime"
|
|
10
|
+
audience: [developer]
|
|
11
|
+
tags:
|
|
12
|
+
[
|
|
13
|
+
vue,
|
|
14
|
+
composables,
|
|
15
|
+
plugin,
|
|
16
|
+
temps-reel,
|
|
17
|
+
websocket,
|
|
18
|
+
abonnement,
|
|
19
|
+
portee,
|
|
20
|
+
identite,
|
|
21
|
+
isomorphe,
|
|
22
|
+
]
|
|
23
|
+
version: "doc"
|
|
24
|
+
status: stable
|
|
25
|
+
updated: 2026-08-27
|
|
26
|
+
source: "src/nodefony/docs/vue-composables.md"
|
|
27
|
+
---
|
|
28
|
+
|
|
29
|
+
# Composables Vue — `nodefony/vue`
|
|
30
|
+
|
|
31
|
+
> Le subpath `nodefony/vue` branche un composant Vue 3 sur la socket Nodefony **sans une ligne de
|
|
32
|
+
> glue** : un plugin installé sur l'application, puis des composables ciblés qui s'abonnent au
|
|
33
|
+
> `setup` et rendent l'abonnement à la mort de la portée. Ils ne gèrent **que** l'abonnement —
|
|
34
|
+
> ouvrir et maintenir la connexion reste le travail du client, décrit dans
|
|
35
|
+
> [Client isomorphe](client.md). Le pendant exact de [Hooks React](react-hooks.md) : même surface,
|
|
36
|
+
> mêmes noms, mêmes garanties. Ancré sur `src/nodefony/src/client/vue/index.ts`.
|
|
37
|
+
|
|
38
|
+
📍 [Documentation](../../../docs/index.md) › [Cœur — @nodefony/core](index.md) › **Composables Vue**
|
|
39
|
+
|
|
40
|
+
## 🧠 Le modèle mental — une prise, N composants branchés dessus
|
|
41
|
+
|
|
42
|
+
Un composant vit et meurt au gré de la navigation. Une socket, elle, doit rester ouverte. La liaison
|
|
43
|
+
tient les deux bouts : **le fil est unique et long**, **les branchements sont nombreux et courts**.
|
|
44
|
+
|
|
45
|
+
```mermaid
|
|
46
|
+
flowchart LR
|
|
47
|
+
APP["main.ts<br/>app.use(nodefonyVue, { url }) — UNE fois"] --> CL
|
|
48
|
+
subgraph CL["RealtimeClient (hors Vue)"]
|
|
49
|
+
direction TB
|
|
50
|
+
S["état · identité · notices"]
|
|
51
|
+
R["abonnements ref-comptés<br/>canal → nb de consommateurs"]
|
|
52
|
+
end
|
|
53
|
+
CL --> P["provide/inject<br/>markRaw — jamais réactif"]
|
|
54
|
+
P --> H1["useNodefonyState()<br/>Ref<RealtimeState>"]
|
|
55
|
+
P --> H2["useNodefonyChannelData()<br/>Ref<T | null>"]
|
|
56
|
+
P --> H3["useNodefonyChannel()<br/>un rappel, rien à afficher"]
|
|
57
|
+
H1 -. "fin de portée" .-> R
|
|
58
|
+
H2 -. "fin de portée" .-> R
|
|
59
|
+
H3 -. "fin de portée" .-> R
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
## 📖 Lexique
|
|
63
|
+
|
|
64
|
+
| Terme | Ce que c'est ici |
|
|
65
|
+
| ---------------------- | -------------------------------------------------------------------------------------------------------- |
|
|
66
|
+
| **composable** | Une fonction appelée dans un `setup` qui installe des effets et rend de l'état réactif. L'idiome de Vue. |
|
|
67
|
+
| **plugin** | Ce qu'on installe sur l'application (`app.use`). C'est là que vit une politique, en Vue. |
|
|
68
|
+
| **portée d'effet** | Le contexte qui possède les effets d'un composant. Sa mort libère tout ce qui y a été enregistré. |
|
|
69
|
+
| **`Ref<T>`** | Une boîte réactive : on lit et on écrit `.value`, et le rendu suit. |
|
|
70
|
+
| **`MaybeRefOrGetter`** | « une valeur, une `ref`, ou une fonction qui la calcule » — ce qui rend un argument réactif sans effort. |
|
|
71
|
+
|
|
72
|
+
## Pourquoi un plugin, et pas un composant enveloppant
|
|
73
|
+
|
|
74
|
+
React publie un `<NodefonyProvider>` parce qu'en React tout est composant. En Vue, une politique qui
|
|
75
|
+
vaut pour l'application entière s'installe sur l'application :
|
|
76
|
+
|
|
77
|
+
```ts
|
|
78
|
+
createApp(App).use(nodefonyVue, { url: "/api/live/realtime" }).mount("#app");
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
Traduire littéralement le fournisseur React aurait donné un composant de plus dans l'arbre, que
|
|
82
|
+
personne n'aurait pensé à chercher. **Une liaison idiomatique n'est pas une traduction mot à mot :
|
|
83
|
+
c'est la même garantie, dite dans la langue du framework.**
|
|
84
|
+
|
|
85
|
+
## Les trois règles que Vue impose, et que React ne montre pas
|
|
86
|
+
|
|
87
|
+
1. **Le client n'entre jamais dans un `ref()`.** Il serait enveloppé dans un proxy réactif profond :
|
|
88
|
+
ses égalités de référence internes casseraient, et chaque accès paierait une interception — pour
|
|
89
|
+
une réactivité dont il n'a aucun besoin, ses changements passant par ses propres `on*`. Le plugin
|
|
90
|
+
le pose `markRaw` (`src/nodefony/src/client/vue/index.ts:155`), et un test le vérifie
|
|
91
|
+
(`isReactive(useNodefony()) === false`).
|
|
92
|
+
2. **La libération passe par `onScopeDispose`**, jamais par `onUnmounted` seul : c'est le seul des
|
|
93
|
+
deux qui couvre aussi une portée créée hors composant (`effectScope()`). Un abonnement qui fuit
|
|
94
|
+
**ne se voit pas à l'écran** — la page affiche ce qu'il faut, et le serveur pousse un canal que
|
|
95
|
+
plus personne ne regarde. Le motif commun à tous les composables est unique
|
|
96
|
+
(`src/nodefony/src/client/vue/index.ts:217`) : brancher, rebrancher quand la source change,
|
|
97
|
+
libérer à la mort de la portée.
|
|
98
|
+
3. **Un composable appelé hors portée lève** (`src/nodefony/src/client/vue/index.ts:199`), plutôt
|
|
99
|
+
que de fuir en silence. Le message dit le remède : envelopper l'appel dans `effectScope()`.
|
|
100
|
+
|
|
101
|
+
## 🚀 Démarrage rapide
|
|
102
|
+
|
|
103
|
+
### 1. Le plugin, sur l'application
|
|
104
|
+
|
|
105
|
+
```ts
|
|
106
|
+
// frontend/src/main.ts
|
|
107
|
+
import { createApp } from "vue";
|
|
108
|
+
import { nodefonyVue } from "nodefony/vue";
|
|
109
|
+
import App from "./App.vue";
|
|
110
|
+
|
|
111
|
+
const el = document.getElementById("app");
|
|
112
|
+
if (!el) throw new Error("#app not found");
|
|
113
|
+
createApp(App).use(nodefonyVue, { url: "/api/live/realtime" }).mount(el);
|
|
114
|
+
```
|
|
115
|
+
|
|
116
|
+
L'adresse est écrite **ici, et nulle part ailleurs**. Le framework n'en devine aucune : une adresse
|
|
117
|
+
devinée marche en développement et se trompe en production. Sans `url` ni `client`, le plugin refuse
|
|
118
|
+
(`src/nodefony/src/client/realtime/observe.ts:126`).
|
|
119
|
+
|
|
120
|
+
### 2. La page
|
|
121
|
+
|
|
122
|
+
```vue
|
|
123
|
+
<script setup lang="ts">
|
|
124
|
+
import {
|
|
125
|
+
useNodefony,
|
|
126
|
+
useNodefonyChannelData,
|
|
127
|
+
useNodefonyState,
|
|
128
|
+
} from "nodefony/vue";
|
|
129
|
+
|
|
130
|
+
interface LiveEvent {
|
|
131
|
+
text: string;
|
|
132
|
+
ts: number;
|
|
133
|
+
}
|
|
134
|
+
|
|
135
|
+
const live = useNodefony();
|
|
136
|
+
const state = useNodefonyState();
|
|
137
|
+
const last = useNodefonyChannelData<LiveEvent>("live:events");
|
|
138
|
+
|
|
139
|
+
const say = (text: string): void => live.emit("live:say", { text });
|
|
140
|
+
</script>
|
|
141
|
+
|
|
142
|
+
<template>
|
|
143
|
+
<p>connexion : {{ state }}</p>
|
|
144
|
+
<p v-if="last">{{ last.text }}</p>
|
|
145
|
+
<button @click="say('bonjour')">envoyer</button>
|
|
146
|
+
</template>
|
|
147
|
+
```
|
|
148
|
+
|
|
149
|
+
Il n'y a **rien à libérer** : la portée du composant rend les abonnements à sa mort. C'est la
|
|
150
|
+
différence visible avec un câblage à la main, où il fallait tenir une liste de fonctions de
|
|
151
|
+
libération et n'en oublier aucune.
|
|
152
|
+
|
|
153
|
+
### 3. Quand l'application possède son cycle de connexion
|
|
154
|
+
|
|
155
|
+
```ts
|
|
156
|
+
// La socket fournie l'emporte sur `url`, et son cycle n'est pas touché :
|
|
157
|
+
// ni `connect`, ni `disconnect`.
|
|
158
|
+
app.use(nodefonyVue, { client: maSocket });
|
|
159
|
+
```
|
|
160
|
+
|
|
161
|
+
### 4. Un canal qui change
|
|
162
|
+
|
|
163
|
+
```ts
|
|
164
|
+
const salle = ref("salon:general");
|
|
165
|
+
// L'abonnement SUIT la valeur : l'ancien canal est rendu avant que le
|
|
166
|
+
// nouveau soit pris. Aucun tableau de dépendances à tenir.
|
|
167
|
+
const messages = useNodefonyChannelData<Message>(() => salle.value);
|
|
168
|
+
```
|
|
169
|
+
|
|
170
|
+
## 🧰 Les composables
|
|
171
|
+
|
|
172
|
+
Tous rendent une `Ref` en lecture — on lit `.value` (ou rien du tout dans un template, Vue
|
|
173
|
+
déballe). La socket, elle, n'est pas réactive : c'est un objet, pas un état.
|
|
174
|
+
|
|
175
|
+
| Composable | Rend | À quoi ça sert |
|
|
176
|
+
| -------------------------------------- | ------------------------------- | ------------------------------------------------------------ |
|
|
177
|
+
| `nodefonyVue` | — | le plugin : fournit la socket et lance la connexion |
|
|
178
|
+
| `useNodefony()` | `RealtimeClient` | l'échappatoire : `emit`, `request`, `mutate`, `ping` |
|
|
179
|
+
| `useNodefonyState()` | `Ref<RealtimeState>` | afficher l'état, griser un bouton pendant une reconnexion |
|
|
180
|
+
| `useNodefonyIdentity()` | `Ref<RealtimeIdentity \| null>` | savoir qui est connecté — sans appeler `/auth/me` |
|
|
181
|
+
| `useNodefonyChannel(canal, onMessage)` | — | réagir à chaque message (journal, son, animation) |
|
|
182
|
+
| `useNodefonyChannelData<T>(canal)` | `Ref<T \| null>` | la dernière valeur — le cas le plus courant |
|
|
183
|
+
| `useNodefonyAdaptiveChannel(…)` | `Ref<number>` | même chose, en cadence auto-ajustée ; rend la cadence |
|
|
184
|
+
| `useNodefonyAdaptiveChannelData<T>(…)` | `{ data, intervalMs }` | la dernière valeur **et** la cadence |
|
|
185
|
+
| `useNodefonyChannelStats(canal)` | `Ref<MessageStats \| null>` | débit et série d'un canal, pour un VU-mètre |
|
|
186
|
+
| `useNodefonySnapshot()` | `Ref<SocketSnapshot \| null>` | ce que la socket sait d'elle-même : canaux, trames, dernière |
|
|
187
|
+
| `useNodefonySyslog(opts?)` | `Ref<unknown[]>` | le flux de journal, anneau borné et filtre de sévérité |
|
|
188
|
+
| `useNodefonyNotifications(onNotice)` | — | les notices normalisées — à monter **une seule fois** |
|
|
189
|
+
| `useNodefonyNoticeLog(opts?)` | `Ref<NodefonyNotice[]>` | l'historique borné des incidents |
|
|
190
|
+
|
|
191
|
+
La déclaration de chacun se lit dans `src/nodefony/src/client/vue/index.ts:179` et suivantes.
|
|
192
|
+
|
|
193
|
+
Sont aussi réexportés depuis ce subpath : `rateChannel`, `parseRate`, `isRateChannel` (fabriquer un
|
|
194
|
+
nom de canal cadencé), et les types `RealtimeIdentity`, `RealtimeState`, `NodefonyNotice`,
|
|
195
|
+
`SocketSnapshot` — pour qu'un composant puisse **nommer** ce qu'il reçoit.
|
|
196
|
+
|
|
197
|
+
Les arguments « canal » et « cadence » acceptent une valeur, une `ref` ou une fonction : l'abonnement
|
|
198
|
+
suit, sans liste de dépendances.
|
|
199
|
+
|
|
200
|
+
## 🏗️ Cycle de vie d'un abonnement
|
|
201
|
+
|
|
202
|
+
```
|
|
203
|
+
setup() → subscribe (si premier consommateur du canal)
|
|
204
|
+
message reçu → .value change → le rendu suit
|
|
205
|
+
canal qui change → unsubscribe de l'ancien, subscribe du nouveau
|
|
206
|
+
reconnexion → le client rejoue TOUS les abonnements, sans rien à faire
|
|
207
|
+
fin de portée → unsubscribe (si dernier consommateur)
|
|
208
|
+
```
|
|
209
|
+
|
|
210
|
+
Ce qui est **partagé** et ne dépend pas de Vue — le comptage de références, le rejeu après
|
|
211
|
+
reconnexion, l'appariement `on`↔`subscribe` — vit dans le socle agnostique et est prouvé une fois
|
|
212
|
+
pour les quatre fronts. Ce qui est **propre à Vue** — la portée, la réactivité, la non-réactivité du
|
|
213
|
+
client — est prouvé dans `src/nodefony/src/tests/clientVue.test.ts:1`.
|
|
214
|
+
|
|
215
|
+
La socket, elle, **n'est jamais coupée par un composant**. Elle appartient à la page : la fermer au
|
|
216
|
+
démontage trancherait les requêtes en vol des autres consommateurs.
|
|
217
|
+
|
|
218
|
+
## ⚠️ Pièges (symptôme → cause → correction)
|
|
219
|
+
|
|
220
|
+
| Symptôme | Cause | Correction |
|
|
221
|
+
| ------------------------------------------------------------ | ---------------------------------------------------------------------- | ----------------------------------------------------------------------------- |
|
|
222
|
+
| `useNodefony() : le plugin n'est pas installé` | Le composable est appelé hors d'une application où `app.use` a eu lieu | Installer `nodefonyVue` dans `main.ts` |
|
|
223
|
+
| `… doit être appelé dans un composant (setup) ou une portée` | Appel au niveau d'un module, dans un `setTimeout` ou un gestionnaire | Appeler au `setup`, ou envelopper dans `effectScope()` |
|
|
224
|
+
| Le plugin lève à l'installation | Ni `url` ni `client` fourni — le framework ne devine aucune adresse | Passer l'URL du serveur temps réel |
|
|
225
|
+
| Rien n'arrive et l'état reste `disconnected` | Le serveur n'écoute pas cette adresse, ou la socket a été coupée | Vérifier l'adresse du plugin, et qu'aucun code n'appelle `disconnect()` |
|
|
226
|
+
| `Module 'nodefony' has no exported member 'RealtimeClient'` | Condition d'export `browser` inactive dans le `tsconfig.json` de l'app | Importer depuis `nodefony/client`, ou ajouter `customConditions: ["browser"]` |
|
|
227
|
+
| Le canal se ré-abonne à chaque frappe | Le nom du canal est recalculé à chaque rendu par une fonction | Ne faire dépendre le getter que de ce qui doit vraiment ré-abonner |
|
|
228
|
+
| Un objet du client semble « ne pas réagir » | Il est `markRaw` — c'est voulu | Lire l'état par les composables, pas sur l'objet |
|
|
229
|
+
| Notices en double | `useNodefonyNotifications` appelé dans plusieurs composants | Un seul appel, au shell de l'application |
|
|
230
|
+
| Une exception dans un rappel disparaît sans trace | Le dispatch du client isole les erreurs de handler | Envelopper le corps du rappel dans son propre `try`/`catch` |
|
|
231
|
+
|
|
232
|
+
## 🧪 Tests & couverture
|
|
233
|
+
|
|
234
|
+
- **Les règles du temps réel** (comptage de références, rejeu après reconnexion, dernier reçu gagne,
|
|
235
|
+
anneaux, filtres) sont prouvées **une fois pour les quatre fronts** dans
|
|
236
|
+
`src/nodefony/src/tests/clientObserve.test.ts`. Les rejouer à travers Vue mesurerait le socle.
|
|
237
|
+
- **La traduction Vue** est prouvée dans `src/nodefony/src/tests/clientVue.test.ts` : portée exigée,
|
|
238
|
+
client non réactif, canal réactif qui déplace l'abonnement, et surtout **le démontage qui rend
|
|
239
|
+
l'abonnement au serveur** — compté sur les trames émises, seul juge d'une fuite.
|
|
240
|
+
- **La surface publiée** est tenue par `clientSubpathSurface.types.test.ts` : ce que les composables
|
|
241
|
+
rendent doit pouvoir être **nommé** par un consommateur, et les trois subpaths parlent des mêmes
|
|
242
|
+
types, pas de jumeaux.
|
|
243
|
+
- **Aucun test de rendu** ne monte de composant réel : le harnais utilise `app.runWithContext` et
|
|
244
|
+
`effectScope`, qui donnent exactement ce qu'un composant donne à un composable, sans DOM.
|
|
245
|
+
|
|
246
|
+
Couverture : `npm run coverage` dans `src/nodefony`.
|
|
247
|
+
|
|
248
|
+
## 🔗 Pour aller plus loin
|
|
249
|
+
|
|
250
|
+
- ⬆️ **Retour au hub** : [@nodefony/core — vue d'ensemble](index.md) · [Toute la documentation](../../../docs/index.md)
|
|
251
|
+
- 🧭 **Pages sœurs** : [Client isomorphe](client.md) — la socket, le transport, la reconnexion, les
|
|
252
|
+
rôles · [Hooks React](react-hooks.md) — la même surface, en React · [Journalisation](syslog.md)
|
|
253
|
+
- Le vocabulaire commun aux deux bords du fil → [Vocabulaire de la socket](../../packages/@nodefony/realtime/docs/vocabulaire.md)
|
|
254
|
+
- Le module serveur qui pousse les canaux → [@nodefony/realtime](../../packages/@nodefony/realtime/docs/index.md)
|
|
255
|
+
- Qui sert et reconstruit ton interface → [@nodefony/frontend](../../packages/@nodefony/frontend/docs/index.md)
|
package/man/nodefony.1
ADDED
|
@@ -0,0 +1,152 @@
|
|
|
1
|
+
.TH NODEFONY 1 "" "nodefony 10.0.0\-alpha.2" "Nodefony Manual"
|
|
2
|
+
.SH NAME
|
|
3
|
+
nodefony \- framework fullstack Node.js : HTTP, WebSocket, ORM, agents
|
|
4
|
+
.SH SYNOPSIS
|
|
5
|
+
.B nodefony
|
|
6
|
+
[\fICOMMANDE\fR] [\fIOPTIONS\fR]
|
|
7
|
+
.br
|
|
8
|
+
.B nodefony
|
|
9
|
+
\fB\-\-help\fR | \fB\-\-version\fR
|
|
10
|
+
.SH DESCRIPTION
|
|
11
|
+
Interface en ligne de commande de Nodefony : elle lance l'application
|
|
12
|
+
(développement, production, cluster), la construit, l'inspecte et la
|
|
13
|
+
diagnostique, et engendre du code conforme au framework.
|
|
14
|
+
.PP
|
|
15
|
+
Lancée sans argument dans un terminal interactif, elle ouvre un menu des
|
|
16
|
+
gestes utiles ici. Hors terminal, elle affiche l'aide.
|
|
17
|
+
.PP
|
|
18
|
+
\fBCette page ne liste que les commandes du FRAMEWORK.\fR Une application en
|
|
19
|
+
ajoute par ses modules \- par exemple \fBhttp:network\fR, \fBfrontend:build\fR
|
|
20
|
+
ou \fBsecurity:user:add\fR \- et celles\-ci dépendent du projet dans lequel
|
|
21
|
+
la commande est lancée. Pour la liste RÉELLE, dans le projet courant :
|
|
22
|
+
.PP
|
|
23
|
+
.RS 4
|
|
24
|
+
.B nodefony \-\-help
|
|
25
|
+
.RE
|
|
26
|
+
.SH COMMANDS
|
|
27
|
+
Les commandes sont rangées par INTENTION, dans l'ordre d'une journée de
|
|
28
|
+
travail \- comme \fBnodefony \-\-help\fR. Un rangement alphabétique mettrait
|
|
29
|
+
\fBai:mcp\fR avant \fBdevelopment\fR ; il ne répond à personne.
|
|
30
|
+
.SS LANCER
|
|
31
|
+
.TP
|
|
32
|
+
.B development, dev
|
|
33
|
+
démarre en développement, rechargement automatique
|
|
34
|
+
.TP
|
|
35
|
+
.B production, prod, start
|
|
36
|
+
démarre en production, au premier plan
|
|
37
|
+
.TP
|
|
38
|
+
.B cluster
|
|
39
|
+
démarre N workers isolés, relancés s'ils tombent
|
|
40
|
+
.TP
|
|
41
|
+
.B status
|
|
42
|
+
dit quels processus de ce projet tournent, et où
|
|
43
|
+
.TP
|
|
44
|
+
.B stop
|
|
45
|
+
arrête les processus Nodefony de ce projet
|
|
46
|
+
.SS COMPRENDRE
|
|
47
|
+
.TP
|
|
48
|
+
.B card, devkit:card
|
|
49
|
+
carte de visite : où l'on est, quoi lancer
|
|
50
|
+
.TP
|
|
51
|
+
.B doctor
|
|
52
|
+
ce qui ne va pas dans cette application
|
|
53
|
+
.TP
|
|
54
|
+
.B inspect
|
|
55
|
+
l'état réel de l'app : routes, services, config
|
|
56
|
+
.TP
|
|
57
|
+
.B env
|
|
58
|
+
les variables d'environnement et leur provenance
|
|
59
|
+
.TP
|
|
60
|
+
.B symbols
|
|
61
|
+
où un symbole est défini, et de qui il hérite
|
|
62
|
+
.TP
|
|
63
|
+
.B menu
|
|
64
|
+
menu interactif : les commandes utiles ici
|
|
65
|
+
.SS GÉNÉRER ET CONSTRUIRE
|
|
66
|
+
.TP
|
|
67
|
+
.B create
|
|
68
|
+
engendre une application, un module, une entité…
|
|
69
|
+
.TP
|
|
70
|
+
.B build, compile
|
|
71
|
+
compile les modules puis l'application vers dist/
|
|
72
|
+
.TP
|
|
73
|
+
.B install
|
|
74
|
+
installe les dépendances puis construit le projet
|
|
75
|
+
.TP
|
|
76
|
+
.B outdated
|
|
77
|
+
les dépendances en retard, groupées par paquet
|
|
78
|
+
.SS AGENTS ET OUTILLAGE
|
|
79
|
+
.TP
|
|
80
|
+
.B ai:mcp
|
|
81
|
+
déclare le serveur MCP de l'app à ton agent
|
|
82
|
+
.TP
|
|
83
|
+
.B ai:sync
|
|
84
|
+
installe les skills d'agent des paquets présents
|
|
85
|
+
.TP
|
|
86
|
+
.B completion
|
|
87
|
+
script de complétion du shell (bash | zsh | fish)
|
|
88
|
+
.TP
|
|
89
|
+
.B git:hooks
|
|
90
|
+
pose les hooks git : contrôles au commit et au push
|
|
91
|
+
.SH OPTIONS
|
|
92
|
+
Options acceptées par toutes les commandes. Chaque commande porte en plus les
|
|
93
|
+
siennes, que \fBnodefony \fI<commande>\fB \-\-help\fR détaille.
|
|
94
|
+
.TP
|
|
95
|
+
.B \-i
|
|
96
|
+
.TP
|
|
97
|
+
.B \-\-interactive
|
|
98
|
+
.TP
|
|
99
|
+
.B \-d
|
|
100
|
+
.TP
|
|
101
|
+
.B \-\-debug
|
|
102
|
+
.TP
|
|
103
|
+
.B \-v
|
|
104
|
+
.TP
|
|
105
|
+
.B \-\-version
|
|
106
|
+
.SH ENVIRONMENT
|
|
107
|
+
.TP
|
|
108
|
+
.B NODE_ENV
|
|
109
|
+
Mode d'exécution (development | production). Posé par l'orchestrateur, il
|
|
110
|
+
PRIME sur l'intention de la commande.
|
|
111
|
+
.TP
|
|
112
|
+
.B APP_ENV
|
|
113
|
+
Environnement de DÉPLOIEMENT, libre (staging, canary, prod\-eu). Axe distinct
|
|
114
|
+
du mode d'exécution.
|
|
115
|
+
.TP
|
|
116
|
+
.B NF_*
|
|
117
|
+
Toute variable lue par Nodefony porte ce préfixe. nodefony env en dresse la
|
|
118
|
+
cascade et la provenance.
|
|
119
|
+
.TP
|
|
120
|
+
.B NF__<MODULE>__<CHEMIN>
|
|
121
|
+
Surcharge une clé de configuration d'un module (double souligné entre les
|
|
122
|
+
niveaux), appliquée avant la validation du schéma.
|
|
123
|
+
.SH FILES
|
|
124
|
+
.TP
|
|
125
|
+
.B nodefony.config.ts
|
|
126
|
+
Configuration de l'application. Sa présence marque la racine du projet.
|
|
127
|
+
.TP
|
|
128
|
+
.B env.ts
|
|
129
|
+
Catalogue des variables d'environnement de l'application.
|
|
130
|
+
.TP
|
|
131
|
+
.B node_modules/.cache/nodefony/cli\-manifest.json
|
|
132
|
+
Cache des commandes, réécrit à chaque commande. Sert la complétion et le
|
|
133
|
+
menu, qui doivent répondre sans démarrer l'application.
|
|
134
|
+
.SH EXAMPLES
|
|
135
|
+
.TP
|
|
136
|
+
.B nodefony create app mon\-app
|
|
137
|
+
Crée une application.
|
|
138
|
+
.TP
|
|
139
|
+
.B nodefony dev
|
|
140
|
+
Démarre en développement, avec redémarrage à chaud.
|
|
141
|
+
.TP
|
|
142
|
+
.B nodefony inspect routes
|
|
143
|
+
Affiche les routes RÉELLEMENT montées, sans ouvrir de port.
|
|
144
|
+
.TP
|
|
145
|
+
.B nodefony doctor
|
|
146
|
+
Diagnostique le projet, même s'il ne démarre plus.
|
|
147
|
+
.SH SEE ALSO
|
|
148
|
+
La documentation complète vit dans le projet (\fBdocs/\fR) et dans la console
|
|
149
|
+
d'administration. \fBnodefony card\fR rend la carte de visite de l'application
|
|
150
|
+
: où aller, quoi lancer.
|
|
151
|
+
.SH AUTHOR
|
|
152
|
+
Christophe CAMENSULI et les contributeurs de Nodefony.
|