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,110 @@
|
|
|
1
|
+
//#region src/cli/cardReport.ts
|
|
2
|
+
/**
|
|
3
|
+
* Construit la carte de visite d'une application à partir de son état.
|
|
4
|
+
*
|
|
5
|
+
* Fonction **PURE** : elle reçoit l'état, elle ne le lit pas. C'est ce qui la
|
|
6
|
+
* rend éprouvable sans Kernel ni serveur — et ce qui garantit qu'elle ne peut
|
|
7
|
+
* rien inventer : tout ce qu'elle rend vient de ce qu'on lui a passé.
|
|
8
|
+
*
|
|
9
|
+
* ## Pourquoi les commandes portent `npx`
|
|
10
|
+
*
|
|
11
|
+
* Le binaire `nodefony` vit dans les `node_modules` de l'application : `nodefony`
|
|
12
|
+
* nu rend 127. Mesuré sur agent réel — il recopie la FORME qu'on lui montre, pas
|
|
13
|
+
* la règle écrite à côté. Une seule commande nue suffit à l'envoyer dans le mur
|
|
14
|
+
* au premier geste.
|
|
15
|
+
*
|
|
16
|
+
* @param input - l'état de l'application (injecté, jamais lu ici).
|
|
17
|
+
* @returns la carte, prête à rendre en texte ({@link renderCard}) ou en JSON.
|
|
18
|
+
*/
|
|
19
|
+
function buildCard(input) {
|
|
20
|
+
const modules = [...input.modules].sort();
|
|
21
|
+
const has = (name) => modules.includes(name);
|
|
22
|
+
const doors = [
|
|
23
|
+
{
|
|
24
|
+
title: "Les instructions de cette application",
|
|
25
|
+
where: "AGENTS.md",
|
|
26
|
+
why: "générateurs disponibles, table tâche → fichier, gates à passer. À lire AVANT d'écrire du code."
|
|
27
|
+
},
|
|
28
|
+
{
|
|
29
|
+
title: "Le catalogue des briques",
|
|
30
|
+
where: "node_modules/nodefony/docs/catalogue.md",
|
|
31
|
+
why: "quel module prendre pour quel besoin, et quand ne PAS le prendre."
|
|
32
|
+
},
|
|
33
|
+
{
|
|
34
|
+
title: "La documentation des modules installés",
|
|
35
|
+
where: "node_modules/@nodefony/*/docs/",
|
|
36
|
+
why: "elle est versionnée AVEC le code installé : elle ne peut pas décrire une autre version que la tienne."
|
|
37
|
+
}
|
|
38
|
+
];
|
|
39
|
+
if (has("studio")) doors.push({
|
|
40
|
+
title: "La console d'administration",
|
|
41
|
+
where: "/nodefony",
|
|
42
|
+
why: "l'application en marche : routes montées, services, config résolue, sessions, journaux."
|
|
43
|
+
});
|
|
44
|
+
if (has("documentation")) doors.push({
|
|
45
|
+
title: "L'index de documentation, en JSON",
|
|
46
|
+
where: "/nodefony/documentation/api/tree",
|
|
47
|
+
why: "la même documentation, lisible par un programme."
|
|
48
|
+
});
|
|
49
|
+
return {
|
|
50
|
+
app: {
|
|
51
|
+
name: input.appName,
|
|
52
|
+
version: input.appVersion,
|
|
53
|
+
environment: input.environment
|
|
54
|
+
},
|
|
55
|
+
nodefony: { version: input.nodefonyVersion },
|
|
56
|
+
modules,
|
|
57
|
+
source: input.source ?? "runtime",
|
|
58
|
+
doors,
|
|
59
|
+
verbs: [
|
|
60
|
+
{
|
|
61
|
+
command: "npx nodefony doctor",
|
|
62
|
+
why: "diagnostic STATIQUE : il ne lit que des fichiers, donc il répond même quand l'application ne démarre plus."
|
|
63
|
+
},
|
|
64
|
+
{
|
|
65
|
+
command: "npx nodefony inspect routes --json",
|
|
66
|
+
why: "ce qui est VRAIMENT monté, quand le code laisse croire autre chose. Sujets : routes, modules, services, config, stores, entities, graph."
|
|
67
|
+
},
|
|
68
|
+
{
|
|
69
|
+
command: "npx nodefony create entity Produit nom:string prix:float",
|
|
70
|
+
why: "l'entité, son service CRUD, son controller REST et ses tests. N'écris jamais à la main ce qu'un générateur produit."
|
|
71
|
+
},
|
|
72
|
+
{
|
|
73
|
+
command: "npm test",
|
|
74
|
+
why: "le premier diagnostic — avant de lire quoi que ce soit."
|
|
75
|
+
}
|
|
76
|
+
]
|
|
77
|
+
};
|
|
78
|
+
}
|
|
79
|
+
/**
|
|
80
|
+
* Rend la carte pour un HUMAIN (ou un agent qui lit un terminal).
|
|
81
|
+
*
|
|
82
|
+
* PURE : elle ne touche ni au kernel ni au système de fichiers, donc elle
|
|
83
|
+
* s'éprouve seule. Écrite sur `stdout` par ses appelants plutôt que par le
|
|
84
|
+
* journal — une carte de visite n'est pas un événement de log, et le préfixe
|
|
85
|
+
* horodaté rendrait le copier-coller inutilisable.
|
|
86
|
+
*
|
|
87
|
+
* La ligne des modules DIT sa provenance : « chargés » n'est vrai que si
|
|
88
|
+
* l'application tournait au moment de la lecture. Sans cette mention, une carte
|
|
89
|
+
* lue à froid ferait croire que le gating `policy`/`when` a déjà eu lieu.
|
|
90
|
+
*
|
|
91
|
+
* @param card - la carte composée par {@link buildCard}.
|
|
92
|
+
* @returns le texte complet, prêt à écrire tel quel.
|
|
93
|
+
*/
|
|
94
|
+
function renderCard(card) {
|
|
95
|
+
const froid = card.source === "static";
|
|
96
|
+
return [
|
|
97
|
+
`${card.app.name} ${card.app.version} — ${card.app.environment} (nodefony ${card.nodefony.version})`,
|
|
98
|
+
"",
|
|
99
|
+
froid ? `Modules installés (${card.modules.length}) : ${card.modules.join(", ")}\n ⓘ l'application n'a pas démarré — installés ≠ chargés. Ce qui est vraiment\n monté : npx nodefony inspect modules` : `Modules chargés (${card.modules.length}) : ${card.modules.join(", ")}`,
|
|
100
|
+
"",
|
|
101
|
+
"Où aller :",
|
|
102
|
+
...card.doors.map((p) => ` ${p.where}\n ${p.title} — ${p.why}`),
|
|
103
|
+
"",
|
|
104
|
+
"Quoi lancer :",
|
|
105
|
+
...card.verbs.map((v) => ` ${v.command}\n ${v.why}`),
|
|
106
|
+
""
|
|
107
|
+
].join("\n");
|
|
108
|
+
}
|
|
109
|
+
//#endregion
|
|
110
|
+
export { buildCard, renderCard };
|
|
@@ -0,0 +1,415 @@
|
|
|
1
|
+
import "./sysexits.js";
|
|
2
|
+
import { OPTION_SUGGESTIONS } from "../command/Command.js";
|
|
3
|
+
import { printUsage, printUsageError } from "./usageReport.js";
|
|
4
|
+
import { mkdirSync, readFileSync, readdirSync, rmSync, writeFileSync, writeSync } from "node:fs";
|
|
5
|
+
import os from "node:os";
|
|
6
|
+
import path from "node:path";
|
|
7
|
+
import { rename, writeFile } from "node:fs/promises";
|
|
8
|
+
//#region src/cli/completion.ts
|
|
9
|
+
/** Chemin du manifest cache — même dossier que le pidfile superviseur. */
|
|
10
|
+
function cliManifestFile(cwd) {
|
|
11
|
+
return path.join(cwd, "node_modules", ".cache", "nodefony", "cli-manifest.json");
|
|
12
|
+
}
|
|
13
|
+
/** Extrait les flags candidats d'une chaîne commander (`"-w, --workers <number>"`). */
|
|
14
|
+
function extractFlags(flags) {
|
|
15
|
+
return flags.split(/[\s,]+/).filter((t) => t.startsWith("-") && t !== "--");
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Les flags d'une commande qui attendent une valeur, et ce qu'on peut proposer.
|
|
19
|
+
*
|
|
20
|
+
* Deux sources, dans cet ordre : les `choices()` déclarés à commander (qui
|
|
21
|
+
* VALIDENT, donc font autorité) et le registre des suggestions du produit (qui
|
|
22
|
+
* ne valide rien, pour les options dont les valeurs sont ouvertes).
|
|
23
|
+
*
|
|
24
|
+
* @param cmd - la commande, telle que commander la porte.
|
|
25
|
+
* @returns un tableau de valeurs par flag ; vide = valeur libre.
|
|
26
|
+
*/
|
|
27
|
+
function optionValuesOf(cmd) {
|
|
28
|
+
const out = {};
|
|
29
|
+
for (const o of cmd.options ?? []) {
|
|
30
|
+
if (!o.required && !o.optional) continue;
|
|
31
|
+
const values = [...o.argChoices ?? [], ...OPTION_SUGGESTIONS.get(o) ?? []];
|
|
32
|
+
for (const flag of extractFlags(o.flags)) out[flag] = values;
|
|
33
|
+
}
|
|
34
|
+
return out;
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Construit le manifest depuis l'état COURANT de commander — appelé après que les
|
|
38
|
+
* modules ont posé leurs commandes (`onPreRegister`) pour un manifest complet, ou
|
|
39
|
+
* avec les seuls built-ins pour le fallback sans boot.
|
|
40
|
+
*/
|
|
41
|
+
function buildCliManifest(commander, version) {
|
|
42
|
+
const commands = [];
|
|
43
|
+
for (const cmd of commander.commands) {
|
|
44
|
+
const name = cmd.name();
|
|
45
|
+
if (name.startsWith("__")) continue;
|
|
46
|
+
commands.push({
|
|
47
|
+
name,
|
|
48
|
+
aliases: cmd.aliases?.() ?? [],
|
|
49
|
+
description: cmd.description(),
|
|
50
|
+
options: (cmd.options ?? []).flatMap((o) => extractFlags(o.flags)),
|
|
51
|
+
args: (cmd.registeredArguments ?? []).map((a) => a.argChoices ?? []),
|
|
52
|
+
optionValues: optionValuesOf(cmd),
|
|
53
|
+
...typeof cmd.helpGroup?.() === "string" ? { group: cmd.helpGroup() } : {}
|
|
54
|
+
});
|
|
55
|
+
}
|
|
56
|
+
return {
|
|
57
|
+
version,
|
|
58
|
+
globalOptions: (commander.options ?? []).flatMap((o) => extractFlags(o.flags)),
|
|
59
|
+
commands
|
|
60
|
+
};
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Écrit le manifest cache (mkdir -p + write async). Best-effort : l'appelant décide
|
|
64
|
+
* du fire-and-forget — un échec (FS read-only, pas de node_modules) ne doit JAMAIS
|
|
65
|
+
* impacter le boot.
|
|
66
|
+
*/
|
|
67
|
+
async function writeCliManifest(commander, cwd, version) {
|
|
68
|
+
const file = cliManifestFile(cwd);
|
|
69
|
+
mkdirSync(path.dirname(file), { recursive: true });
|
|
70
|
+
const manifest = buildCliManifest(commander, version);
|
|
71
|
+
cleanOrphanTempFiles(file);
|
|
72
|
+
const tmp = `${file}.${process.pid}.tmp`;
|
|
73
|
+
try {
|
|
74
|
+
await writeFile(tmp, JSON.stringify(manifest, null, 1), "utf8");
|
|
75
|
+
await rename(tmp, file);
|
|
76
|
+
} catch (e) {
|
|
77
|
+
try {
|
|
78
|
+
rmSync(tmp, { force: true });
|
|
79
|
+
} catch {}
|
|
80
|
+
throw e;
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
/**
|
|
84
|
+
* Efface les temporaires d'écriture dont le process propriétaire est mort.
|
|
85
|
+
*
|
|
86
|
+
* Best-effort de bout en bout : un dossier illisible, un fichier déjà repris
|
|
87
|
+
* par quelqu'un d'autre, une permission refusée — rien de tout cela ne doit
|
|
88
|
+
* empêcher d'écrire le manifest, qui est le vrai travail.
|
|
89
|
+
*
|
|
90
|
+
* @param file - chemin du manifest ; ses temporaires en dérivent
|
|
91
|
+
*/
|
|
92
|
+
function cleanOrphanTempFiles(file) {
|
|
93
|
+
try {
|
|
94
|
+
const folder = path.dirname(file);
|
|
95
|
+
const base = `${path.basename(file)}.`;
|
|
96
|
+
for (const input of readdirSync(folder)) {
|
|
97
|
+
if (!input.startsWith(base) || !input.endsWith(".tmp")) continue;
|
|
98
|
+
const pid = Number.parseInt(input.slice(base.length, -4), 10);
|
|
99
|
+
if (!Number.isInteger(pid) || pid <= 0) continue;
|
|
100
|
+
if (pid === process.pid) continue;
|
|
101
|
+
try {
|
|
102
|
+
process.kill(pid, 0);
|
|
103
|
+
continue;
|
|
104
|
+
} catch {}
|
|
105
|
+
rmSync(path.join(folder, input), { force: true });
|
|
106
|
+
}
|
|
107
|
+
} catch {}
|
|
108
|
+
}
|
|
109
|
+
/** Lit le manifest cache — `null` si absent ou corrompu (jamais de throw). */
|
|
110
|
+
function readCliManifest(cwd) {
|
|
111
|
+
try {
|
|
112
|
+
const raw = readFileSync(cliManifestFile(cwd), "utf8");
|
|
113
|
+
const parsed = JSON.parse(raw);
|
|
114
|
+
return Array.isArray(parsed.commands) ? parsed : null;
|
|
115
|
+
} catch {
|
|
116
|
+
return null;
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
/**
|
|
120
|
+
* Calcule les candidats de complétion pour les mots tapés.
|
|
121
|
+
*
|
|
122
|
+
* Protocole : `words` = tous les mots APRÈS le nom du binaire, dernier mot inclus
|
|
123
|
+
* même vide (les scripts shell le transmettent tel quel). Le DERNIER mot est celui
|
|
124
|
+
* en cours de frappe → la sélection de commande ne regarde que les mots VALIDÉS
|
|
125
|
+
* (`slice(0, -1)`), et le shell filtre les candidats par le préfixe courant.
|
|
126
|
+
*
|
|
127
|
+
* - commande déjà validée → les CHOIX de l'argument positionnel en cours (s'il
|
|
128
|
+
* en déclare, ex. `create` → `app`) + ses options + les options globales ;
|
|
129
|
+
* - sinon → noms + alias de toutes les commandes.
|
|
130
|
+
*/
|
|
131
|
+
function computeCompletions(manifest, words) {
|
|
132
|
+
const validated = words.slice(0, -1);
|
|
133
|
+
for (let i = 0; i < validated.length; i++) {
|
|
134
|
+
const w = validated[i];
|
|
135
|
+
if (w.startsWith("-")) continue;
|
|
136
|
+
const cmd = manifest.commands.find((c) => c.name === w || c.aliases.includes(w));
|
|
137
|
+
if (cmd) {
|
|
138
|
+
const after = validated.slice(i + 1);
|
|
139
|
+
let pos = 0;
|
|
140
|
+
for (let j = 0; j < after.length; j++) {
|
|
141
|
+
if (after[j].startsWith("-")) continue;
|
|
142
|
+
if (j > 0 && after[j - 1].startsWith("-")) continue;
|
|
143
|
+
pos++;
|
|
144
|
+
}
|
|
145
|
+
const last = validated[validated.length - 1] ?? "";
|
|
146
|
+
const expected = cmd.optionValues?.[last];
|
|
147
|
+
if (expected) return expected;
|
|
148
|
+
return [
|
|
149
|
+
...cmd.args?.[pos] ?? [],
|
|
150
|
+
...cmd.options,
|
|
151
|
+
...manifest.globalOptions
|
|
152
|
+
];
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
return manifest.commands.flatMap((c) => [c.name, ...c.aliases]);
|
|
156
|
+
}
|
|
157
|
+
/** Shells supportés par `nodefony completion <shell>`. */
|
|
158
|
+
const COMPLETION_SHELLS = [
|
|
159
|
+
"bash",
|
|
160
|
+
"zsh",
|
|
161
|
+
"fish"
|
|
162
|
+
];
|
|
163
|
+
/** La page d'aide — `nodefony completion --help`, et le rappel après un refus. */
|
|
164
|
+
const PAGE = {
|
|
165
|
+
command: "nodefony completion",
|
|
166
|
+
tagline: "le script de complétion à sourcer, ou son installation dans le fichier de démarrage du shell",
|
|
167
|
+
synopsis: [`nodefony completion [${COMPLETION_SHELLS.join("|")}]`, `nodefony completion install|uninstall [${COMPLETION_SHELLS.join("|")}]`],
|
|
168
|
+
sections: [{
|
|
169
|
+
title: "CE QU'ELLE FAIT",
|
|
170
|
+
paragraph: "Sans action, elle IMPRIME le script — à rediriger soi-même. Avec `install`, elle l'écrit et pose un bloc marqué, idempotent, dans le fichier de démarrage du shell ; `uninstall` le retire. Le script est STABLE : il délègue tout au binaire, donc les commandes qu'un module ajoute apparaissent sans jamais le régénérer. Sans shell nommé, celui de l'environnement est détecté."
|
|
171
|
+
}],
|
|
172
|
+
options: [],
|
|
173
|
+
examples: [
|
|
174
|
+
{
|
|
175
|
+
term: "nodefony completion zsh",
|
|
176
|
+
text: "imprime le script — à rediriger où le shell le lira"
|
|
177
|
+
},
|
|
178
|
+
{
|
|
179
|
+
term: "nodefony completion install",
|
|
180
|
+
text: "l'installe pour le shell détecté"
|
|
181
|
+
},
|
|
182
|
+
{
|
|
183
|
+
term: "nodefony completion uninstall bash",
|
|
184
|
+
text: "retire le bloc posé dans le fichier de démarrage"
|
|
185
|
+
}
|
|
186
|
+
]
|
|
187
|
+
};
|
|
188
|
+
/**
|
|
189
|
+
* Rend le script de complétion à sourcer pour un shell. Le script est STABLE (il
|
|
190
|
+
* délègue tout au binaire via `__complete`) : les commandes de module apparaissent
|
|
191
|
+
* sans jamais regénérer le script — seule la donnée (manifest cache) bouge.
|
|
192
|
+
*/
|
|
193
|
+
function renderCompletionScript(shell) {
|
|
194
|
+
switch (shell) {
|
|
195
|
+
case "zsh": return `#compdef nodefony
|
|
196
|
+
# Complétion zsh Nodefony — installation :
|
|
197
|
+
# nodefony completion zsh > "\${fpath[1]}/_nodefony" (puis: exec zsh)
|
|
198
|
+
# ou directe dans ~/.zshrc :
|
|
199
|
+
# source <(nodefony completion zsh)
|
|
200
|
+
# ⚠️ La complétion s'applique au MOT \`nodefony\` en 1ʳᵉ position — PAS à
|
|
201
|
+
# \`npx nodefony\` (le shell complète alors npx). Pour un usage projet :
|
|
202
|
+
# export PATH="$PWD/node_modules/.bin:$PATH"
|
|
203
|
+
# Le système de complétion doit être chargé (compdef) — auto-init sinon.
|
|
204
|
+
if ! whence compdef >/dev/null 2>&1; then
|
|
205
|
+
autoload -Uz compinit && compinit
|
|
206
|
+
fi
|
|
207
|
+
_nodefony_bin() {
|
|
208
|
+
if [ -x ./node_modules/.bin/nodefony ]; then
|
|
209
|
+
echo ./node_modules/.bin/nodefony
|
|
210
|
+
elif command -v nodefony >/dev/null 2>&1; then
|
|
211
|
+
echo nodefony
|
|
212
|
+
else
|
|
213
|
+
echo npx --no-install nodefony
|
|
214
|
+
fi
|
|
215
|
+
}
|
|
216
|
+
_nodefony() {
|
|
217
|
+
local -a candidates
|
|
218
|
+
# \${words[@]:1} : tous les mots APRÈS le nom du binaire, mot en frappe inclus
|
|
219
|
+
# (offset d'expansion 0-based — :1 saute uniquement "nodefony").
|
|
220
|
+
candidates=("\${(@f)$(\${=$(_nodefony_bin)} __complete -- "\${words[@]:1}" 2>/dev/null)}")
|
|
221
|
+
(( \${#candidates} )) && compadd -a candidates
|
|
222
|
+
}
|
|
223
|
+
compdef _nodefony nodefony
|
|
224
|
+
`;
|
|
225
|
+
case "bash": return `# Complétion bash Nodefony — installation :
|
|
226
|
+
# nodefony completion bash > /etc/bash_completion.d/nodefony
|
|
227
|
+
# ou directe dans ~/.bashrc :
|
|
228
|
+
# source <(nodefony completion bash)
|
|
229
|
+
# ⚠️ S'applique au MOT \`nodefony\` en 1ʳᵉ position — PAS à \`npx nodefony\`.
|
|
230
|
+
# Usage projet : export PATH="$PWD/node_modules/.bin:$PATH"
|
|
231
|
+
_nodefony_bin() {
|
|
232
|
+
if [ -x ./node_modules/.bin/nodefony ]; then
|
|
233
|
+
echo ./node_modules/.bin/nodefony
|
|
234
|
+
elif command -v nodefony >/dev/null 2>&1; then
|
|
235
|
+
echo nodefony
|
|
236
|
+
else
|
|
237
|
+
echo npx --no-install nodefony
|
|
238
|
+
fi
|
|
239
|
+
}
|
|
240
|
+
_nodefony_completions() {
|
|
241
|
+
local cur="\${COMP_WORDS[COMP_CWORD]}"
|
|
242
|
+
local candidates
|
|
243
|
+
candidates="$($(_nodefony_bin) __complete -- "\${COMP_WORDS[@]:1}" 2>/dev/null)"
|
|
244
|
+
COMPREPLY=($(compgen -W "$candidates" -- "$cur"))
|
|
245
|
+
}
|
|
246
|
+
complete -F _nodefony_completions nodefony
|
|
247
|
+
`;
|
|
248
|
+
case "fish": return `# Complétion fish Nodefony — installation :
|
|
249
|
+
# nodefony completion fish > ~/.config/fish/completions/nodefony.fish
|
|
250
|
+
function __nodefony_bin
|
|
251
|
+
if test -x ./node_modules/.bin/nodefony
|
|
252
|
+
echo ./node_modules/.bin/nodefony
|
|
253
|
+
else if command -sq nodefony
|
|
254
|
+
echo nodefony
|
|
255
|
+
else
|
|
256
|
+
echo npx --no-install nodefony
|
|
257
|
+
end
|
|
258
|
+
end
|
|
259
|
+
complete -c nodefony -f -a "(eval (__nodefony_bin) __complete -- (commandline -opc)[2..-1] 2>/dev/null)"
|
|
260
|
+
`;
|
|
261
|
+
}
|
|
262
|
+
}
|
|
263
|
+
/** Détecte le shell courant depuis `$SHELL` (fallback interactif du sous-commande nu). */
|
|
264
|
+
function detectShell() {
|
|
265
|
+
const sh = path.basename(process.env.SHELL ?? "");
|
|
266
|
+
return COMPLETION_SHELLS.includes(sh) ? sh : null;
|
|
267
|
+
}
|
|
268
|
+
const BLOCK_BEGIN = "# >>> nodefony completion >>>";
|
|
269
|
+
const BLOCK_END = "# <<< nodefony completion <<<";
|
|
270
|
+
/** Cibles d'installation d'un shell : fichier script + rc à marquer (`null` = aucun). */
|
|
271
|
+
function completionInstallTargets(shell, home) {
|
|
272
|
+
switch (shell) {
|
|
273
|
+
case "zsh": return {
|
|
274
|
+
scriptFile: path.join(home, ".config", "nodefony", "completion.zsh"),
|
|
275
|
+
rcFile: path.join(home, ".zshrc")
|
|
276
|
+
};
|
|
277
|
+
case "bash": return {
|
|
278
|
+
scriptFile: path.join(home, ".config", "nodefony", "completion.bash"),
|
|
279
|
+
rcFile: path.join(home, ".bashrc")
|
|
280
|
+
};
|
|
281
|
+
case "fish": return {
|
|
282
|
+
scriptFile: path.join(home, ".config", "fish", "completions", "nodefony.fish"),
|
|
283
|
+
rcFile: null
|
|
284
|
+
};
|
|
285
|
+
}
|
|
286
|
+
}
|
|
287
|
+
/** Retire le bloc marqué (avec ses marqueurs) d'un contenu rc — no-op si absent. */
|
|
288
|
+
function removeBlock(content) {
|
|
289
|
+
const begin = content.indexOf(BLOCK_BEGIN);
|
|
290
|
+
if (begin < 0) return content;
|
|
291
|
+
const end = content.indexOf(BLOCK_END, begin);
|
|
292
|
+
if (end < 0) return content;
|
|
293
|
+
const after = end + 29;
|
|
294
|
+
const head = content.slice(0, begin).replace(/\n+$/, "");
|
|
295
|
+
const tail = content.slice(after).replace(/^\n+/, "");
|
|
296
|
+
if (head.length === 0) return tail;
|
|
297
|
+
return tail.length > 0 ? `${head}\n${tail}` : `${head}\n`;
|
|
298
|
+
}
|
|
299
|
+
/** Insère (ou remplace) le bloc marqué sourçant `scriptFile` — idempotent. */
|
|
300
|
+
function upsertBlock(content, scriptFile) {
|
|
301
|
+
const cleaned = removeBlock(content).replace(/\n+$/, "");
|
|
302
|
+
const block = `${BLOCK_BEGIN}\n[ -f "${scriptFile}" ] && source "${scriptFile}"\n${BLOCK_END}\n`;
|
|
303
|
+
return cleaned.length > 0 ? `${cleaned}\n\n${block}` : block;
|
|
304
|
+
}
|
|
305
|
+
/**
|
|
306
|
+
* Installe la complétion pour un shell : écrit le script (mkdir -p) et, si le shell
|
|
307
|
+
* en a besoin, upsert le bloc marqué dans son rc (créé s'il n'existe pas).
|
|
308
|
+
*
|
|
309
|
+
* @returns les chemins touchés (pour le rapport utilisateur).
|
|
310
|
+
*/
|
|
311
|
+
function installCompletion(shell, home) {
|
|
312
|
+
const targets = completionInstallTargets(shell, home);
|
|
313
|
+
mkdirSync(path.dirname(targets.scriptFile), { recursive: true });
|
|
314
|
+
writeFileSync(targets.scriptFile, renderCompletionScript(shell), "utf8");
|
|
315
|
+
if (targets.rcFile) {
|
|
316
|
+
let rc = "";
|
|
317
|
+
try {
|
|
318
|
+
rc = readFileSync(targets.rcFile, "utf8");
|
|
319
|
+
} catch {}
|
|
320
|
+
writeFileSync(targets.rcFile, upsertBlock(rc, targets.scriptFile), "utf8");
|
|
321
|
+
}
|
|
322
|
+
return targets;
|
|
323
|
+
}
|
|
324
|
+
/** Désinstalle : retire le bloc du rc et supprime le fichier script. */
|
|
325
|
+
function uninstallCompletion(shell, home) {
|
|
326
|
+
const targets = completionInstallTargets(shell, home);
|
|
327
|
+
rmSync(targets.scriptFile, { force: true });
|
|
328
|
+
if (targets.rcFile) try {
|
|
329
|
+
const rc = readFileSync(targets.rcFile, "utf8");
|
|
330
|
+
writeFileSync(targets.rcFile, removeBlock(rc), "utf8");
|
|
331
|
+
} catch {}
|
|
332
|
+
return targets;
|
|
333
|
+
}
|
|
334
|
+
/** Consigne de rechargement par shell (affichée après install). */
|
|
335
|
+
function reloadHint(shell) {
|
|
336
|
+
if (shell === "fish") return "ouvre un nouveau shell fish";
|
|
337
|
+
return `exec ${shell}`;
|
|
338
|
+
}
|
|
339
|
+
/**
|
|
340
|
+
* Fast-path `nodefony completion [install|uninstall] [shell]` — imprime le script,
|
|
341
|
+
* ou l'installe/désinstalle dans le rc du shell (bloc marqué idempotent).
|
|
342
|
+
*
|
|
343
|
+
* @returns exit code (`EX_OK`, ou `EX_USAGE` si shell inconnu et indétectable).
|
|
344
|
+
*/
|
|
345
|
+
function runCompletionCommand(argv) {
|
|
346
|
+
const at = argv.indexOf("completion");
|
|
347
|
+
if (at !== -1 && argv.slice(at + 1).some((a) => a === "--help" || a === "-h")) return printUsage(PAGE);
|
|
348
|
+
const positionals = argv.slice(2).filter((a) => !a.startsWith("-"));
|
|
349
|
+
const action = positionals[1] === "install" || positionals[1] === "uninstall" ? positionals[1] : null;
|
|
350
|
+
const arg = positionals[action ? 2 : 1];
|
|
351
|
+
const shell = arg && COMPLETION_SHELLS.includes(arg) ? arg : detectShell();
|
|
352
|
+
if (!shell || arg && !COMPLETION_SHELLS.includes(arg)) return printUsageError(PAGE, arg ? `shell inconnu : ${arg}` : "shell indétectable — nommez-le (ex. nodefony completion zsh)");
|
|
353
|
+
const home = os.homedir();
|
|
354
|
+
if (action === "install") {
|
|
355
|
+
const { scriptFile, rcFile } = installCompletion(shell, home);
|
|
356
|
+
writeSync(1, `✓ script : ${scriptFile}\n`);
|
|
357
|
+
if (rcFile) writeSync(1, `✓ rc : ${rcFile} (bloc « nodefony completion », idempotent)\n`);
|
|
358
|
+
writeSync(1, `→ recharge : ${reloadHint(shell)}\n→ retirer : nodefony completion uninstall ${shell}\n⚠️ complète \`nodefony …\` (pas \`npx nodefony\`) — usage projet :\n export PATH="$PWD/node_modules/.bin:$PATH"\n`);
|
|
359
|
+
return 0;
|
|
360
|
+
}
|
|
361
|
+
if (action === "uninstall") {
|
|
362
|
+
const { scriptFile, rcFile } = uninstallCompletion(shell, home);
|
|
363
|
+
writeSync(1, `✓ retiré : ${scriptFile}\n`);
|
|
364
|
+
if (rcFile) writeSync(1, `✓ rc : ${rcFile} (bloc retiré)\n`);
|
|
365
|
+
return 0;
|
|
366
|
+
}
|
|
367
|
+
writeSync(1, renderCompletionScript(shell));
|
|
368
|
+
return 0;
|
|
369
|
+
}
|
|
370
|
+
/**
|
|
371
|
+
* Fusionne les commandes du **code courant** (built-ins, construits en mémoire) avec
|
|
372
|
+
* celles que seul le manifest cache connaît (les commandes de MODULE, posées à
|
|
373
|
+
* `onPreRegister` — impossible de les lister sans booter).
|
|
374
|
+
*
|
|
375
|
+
* Pourquoi cette asymétrie : le cache est écrit au boot dev et n'est jamais invalidé
|
|
376
|
+
* (sa clé est la version du paquet, identique d'un build à l'autre en développement).
|
|
377
|
+
* S'il faisait autorité sur les built-ins, la complétion resterait figée sur l'état du
|
|
378
|
+
* dernier boot — un `create` enrichi d'un nouveau type ne le proposerait jamais (vécu).
|
|
379
|
+
* Le binaire, lui, est toujours à jour par construction : il EST le code courant.
|
|
380
|
+
*
|
|
381
|
+
* Un module retiré peut donc survivre dans la liste jusqu'au prochain boot dev — un
|
|
382
|
+
* candidat en trop au TAB, sans conséquence, corrigé au boot suivant.
|
|
383
|
+
*/
|
|
384
|
+
function mergeManifests(builtins, cached) {
|
|
385
|
+
if (!cached) return builtins;
|
|
386
|
+
const known = /* @__PURE__ */ new Set();
|
|
387
|
+
for (const c of builtins.commands) {
|
|
388
|
+
known.add(c.name);
|
|
389
|
+
for (const a of c.aliases) known.add(a);
|
|
390
|
+
}
|
|
391
|
+
const moduleCommands = cached.commands.filter((c) => !known.has(c.name));
|
|
392
|
+
return {
|
|
393
|
+
...builtins,
|
|
394
|
+
commands: [...builtins.commands, ...moduleCommands]
|
|
395
|
+
};
|
|
396
|
+
}
|
|
397
|
+
/**
|
|
398
|
+
* Fast-path `nodefony __complete -- <mots>` — imprime un candidat par ligne.
|
|
399
|
+
*
|
|
400
|
+
* Source : built-ins du binaire courant (`builtins`, construits en mémoire par le
|
|
401
|
+
* CliKernel, sans boot) + commandes de module lues dans le manifest cache. Sort
|
|
402
|
+
* TOUJOURS `EX_OK` : le pire résultat d'une complétion est une liste vide, jamais une
|
|
403
|
+
* erreur dans le TAB.
|
|
404
|
+
*/
|
|
405
|
+
function runCompleteQuery(argv, builtins) {
|
|
406
|
+
try {
|
|
407
|
+
const sep = argv.indexOf("--");
|
|
408
|
+
const words = sep >= 0 ? argv.slice(sep + 1) : [];
|
|
409
|
+
const candidates = computeCompletions(mergeManifests(builtins(), readCliManifest(process.cwd())), words);
|
|
410
|
+
if (candidates.length > 0) writeSync(1, candidates.join("\n") + "\n");
|
|
411
|
+
} catch {}
|
|
412
|
+
return 0;
|
|
413
|
+
}
|
|
414
|
+
//#endregion
|
|
415
|
+
export { COMPLETION_SHELLS, buildCliManifest, cliManifestFile, completionInstallTargets, computeCompletions, detectShell, extractFlags, installCompletion, mergeManifests, readCliManifest, removeBlock, renderCompletionScript, runCompleteQuery, runCompletionCommand, uninstallCompletion, upsertBlock, writeCliManifest };
|