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,119 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Une entrée telle que `npm outdated --json` la rend, pour UN couple paquet/dépendant.
|
|
3
|
+
*
|
|
4
|
+
* Le champ `current` est absent quand le paquet n'est pas installé du tout.
|
|
5
|
+
*/
|
|
6
|
+
export interface INpmOutdatedEntry {
|
|
7
|
+
current?: string;
|
|
8
|
+
wanted: string;
|
|
9
|
+
latest: string;
|
|
10
|
+
dependent?: string;
|
|
11
|
+
location?: string;
|
|
12
|
+
type?: string;
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Le document rendu par `npm outdated --json`.
|
|
16
|
+
*
|
|
17
|
+
* Un paquet réclamé par plusieurs espaces de travail apparaît sous forme de TABLEAU —
|
|
18
|
+
* c'est la source de la duplication massive quand on se contente de réafficher le brut.
|
|
19
|
+
*/
|
|
20
|
+
export type NpmOutdatedReport = Record<string, INpmOutdatedEntry | INpmOutdatedEntry[]>;
|
|
21
|
+
/** Nature du saut de version qui sépare la version installée de la dernière publiée. */
|
|
22
|
+
export type OutdatedSeverity = "major" | "minor" | "patch" | "missing";
|
|
23
|
+
/**
|
|
24
|
+
* Un paquet en retard, agrégé : une seule ligne quel que soit le nombre de dépendants.
|
|
25
|
+
*/
|
|
26
|
+
export interface IOutdatedPackage {
|
|
27
|
+
/** Nom npm du paquet. */
|
|
28
|
+
name: string;
|
|
29
|
+
/** Version installée, ou `null` si le paquet est absent de `node_modules`. */
|
|
30
|
+
current: string | null;
|
|
31
|
+
/** Version que la plage de versions déclarée autorise déjà. */
|
|
32
|
+
wanted: string;
|
|
33
|
+
/** Dernière version publiée au registre. */
|
|
34
|
+
latest: string;
|
|
35
|
+
/** Nature du saut `current` → `latest`. */
|
|
36
|
+
severity: OutdatedSeverity;
|
|
37
|
+
/**
|
|
38
|
+
* `true` quand la plage déclarée INTERDIT la montée (`wanted` === `current`) :
|
|
39
|
+
* un `npm update` ne fera rien, il faut décider de changer la plage.
|
|
40
|
+
*/
|
|
41
|
+
pinned: boolean;
|
|
42
|
+
/** Espaces de travail qui réclament ce paquet, dédupliqués et triés. */
|
|
43
|
+
dependents: string[];
|
|
44
|
+
/** `dependencies` / `devDependencies` / `peerDependencies` si `npm` l'a rendu (`--long`). */
|
|
45
|
+
type?: string;
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Résultat agrégé, prêt à afficher ou à sérialiser.
|
|
49
|
+
*/
|
|
50
|
+
export interface IOutdatedSummary {
|
|
51
|
+
/** Paquets réellement en retard, triés du saut le plus grave au plus bénin. */
|
|
52
|
+
packages: IOutdatedPackage[];
|
|
53
|
+
/**
|
|
54
|
+
* Paquets dont la version INSTALLÉE dépasse celle du registre — typiquement un
|
|
55
|
+
* espace de travail local pas encore publié. Ce n'est pas un retard, c'est l'inverse.
|
|
56
|
+
*/
|
|
57
|
+
ahead: IOutdatedPackage[];
|
|
58
|
+
/** Comptes par catégorie, pour l'en-tête. */
|
|
59
|
+
counts: {
|
|
60
|
+
major: number;
|
|
61
|
+
minor: number;
|
|
62
|
+
patch: number;
|
|
63
|
+
missing: number;
|
|
64
|
+
ahead: number;
|
|
65
|
+
/** Nombre de couples paquet/dépendant que `npm` a rendus, avant agrégation. */
|
|
66
|
+
rawEntries: number;
|
|
67
|
+
};
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* Classe le saut qui sépare deux versions.
|
|
71
|
+
*
|
|
72
|
+
* Les variantes de préversion rendues par `semver.diff` (`premajor`, `preminor`…) sont
|
|
73
|
+
* ramenées à leur saut de rang, faute de quoi elles échapperaient à tout regroupement.
|
|
74
|
+
*
|
|
75
|
+
* @param current - version installée, ou `null` si le paquet est absent.
|
|
76
|
+
* @param latest - dernière version publiée.
|
|
77
|
+
* @returns la sévérité du saut ; `"patch"` quand les versions sont illisibles (on ne suppose pas le pire).
|
|
78
|
+
*/
|
|
79
|
+
export declare function classifySeverity(current: string | null, latest: string): OutdatedSeverity;
|
|
80
|
+
/**
|
|
81
|
+
* Agrège le document de `npm outdated --json` en une ligne par paquet.
|
|
82
|
+
*
|
|
83
|
+
* Deux corrections que le brut n'apporte pas : les dépendants sont regroupés au lieu
|
|
84
|
+
* d'être répétés, et un paquet dont la version installée DÉPASSE celle du registre est
|
|
85
|
+
* mis à part — c'est le cas d'un espace de travail local non publié, que `npm` présente
|
|
86
|
+
* comme un retard alors que c'est une avance.
|
|
87
|
+
*
|
|
88
|
+
* @param report - le document rendu par `npm outdated --json` (objet vide si rien).
|
|
89
|
+
* @returns le résumé trié, avec les comptes par catégorie.
|
|
90
|
+
*/
|
|
91
|
+
export declare function aggregateOutdated(report: NpmOutdatedReport): IOutdatedSummary;
|
|
92
|
+
/**
|
|
93
|
+
* Résume la liste des dépendants pour l'affichage.
|
|
94
|
+
*
|
|
95
|
+
* @param dependents - noms des espaces de travail qui réclament le paquet.
|
|
96
|
+
* @param all - `true` pour tous les nommer, `false` pour n'en garder que le compte au-delà de trois.
|
|
97
|
+
* @returns une chaîne courte, jamais une énumération de vingt lignes.
|
|
98
|
+
*/
|
|
99
|
+
export declare function formatDependents(dependents: string[], all: boolean): string;
|
|
100
|
+
/**
|
|
101
|
+
* Compose les lignes du tableau des paquets en retard.
|
|
102
|
+
*
|
|
103
|
+
* Rendu PUR : aucune écriture, aucune couleur — l'appelant décide de la sortie.
|
|
104
|
+
*
|
|
105
|
+
* @param summary - le résumé produit par {@link aggregateOutdated}.
|
|
106
|
+
* @param all - `true` pour nommer tous les dépendants.
|
|
107
|
+
* @returns une ligne par paquet : nom, saut, actuel, souhaité, dernier, dépendants.
|
|
108
|
+
*/
|
|
109
|
+
export declare function toTableRows(summary: IOutdatedSummary, all?: boolean): string[][];
|
|
110
|
+
/**
|
|
111
|
+
* Compose la phrase d'en-tête qui dit ce qui a été trouvé — et ce qui a été agrégé.
|
|
112
|
+
*
|
|
113
|
+
* Nommer le nombre d'entrées brutes n'est pas décoratif : c'est ce qui explique
|
|
114
|
+
* pourquoi la sortie tient en quelques lignes là où `npm` en rend des dizaines.
|
|
115
|
+
*
|
|
116
|
+
* @param summary - le résumé produit par {@link aggregateOutdated}.
|
|
117
|
+
* @returns la phrase à afficher au-dessus du tableau.
|
|
118
|
+
*/
|
|
119
|
+
export declare function formatHeadline(summary: IOutdatedSummary): string;
|
|
@@ -0,0 +1,349 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Indicateurs d'attente et de progression pour un terminal — la seule
|
|
3
|
+
* implémentation du framework.
|
|
4
|
+
*
|
|
5
|
+
* Ils existent parce qu'une commande qui annonce une étape puis se tait pendant
|
|
6
|
+
* quarante secondes est indiscernable d'une commande plantée : l'utilisateur ne
|
|
7
|
+
* peut pas savoir s'il doit attendre ou interrompre. Un point fixe n'est pas
|
|
8
|
+
* une progression.
|
|
9
|
+
*
|
|
10
|
+
* ## Ce qu'il faut choisir
|
|
11
|
+
*
|
|
12
|
+
* | On sait… | La forme |
|
|
13
|
+
* | ------------------------------------------- | ------------- |
|
|
14
|
+
* | seulement que ça travaille | {@link Spinner} |
|
|
15
|
+
* | combien d'unités sur combien | {@link ProgressBar} |
|
|
16
|
+
* | les deux (des lots en parallèle, par ex.) | `ProgressBar` avec `spin: true` |
|
|
17
|
+
*
|
|
18
|
+
* ## 🔴 Rien de tout cela ne passe par le Syslog, et c'est structurel
|
|
19
|
+
*
|
|
20
|
+
* Une animation réécrit la même ligne dix fois par seconde. La faire passer par
|
|
21
|
+
* le journal en ferait dix entrées allouées, poussées au tampon circulaire, aux
|
|
22
|
+
* transports et au backplane — du décor d'affichage expédié à un collecteur de
|
|
23
|
+
* logs. Ces objets écrivent DIRECTEMENT sur leur flux, et le journal les ignore.
|
|
24
|
+
*
|
|
25
|
+
* ## Hors terminal
|
|
26
|
+
*
|
|
27
|
+
* Quand le flux n'est pas un terminal (redirection, tube, forge d'intégration),
|
|
28
|
+
* `\r` ne ramène nulle part et l'animation deviendrait une avalanche de lignes.
|
|
29
|
+
* Rien n'est alors dessiné : seule la ligne finale de `stop()` est émise. C'est
|
|
30
|
+
* ce qui rend ces objets posables sans condition dans du code qui tourne aussi
|
|
31
|
+
* bien en local qu'en forge.
|
|
32
|
+
*/
|
|
33
|
+
/**
|
|
34
|
+
* Tourniquet braille — dix images, rotation fluide. Le défaut.
|
|
35
|
+
*
|
|
36
|
+
* Le braille est préféré aux `|/-\` : il occupe une seule cellule quelle que
|
|
37
|
+
* soit l'image, donc la ligne ne « respire » pas au fil de l'animation.
|
|
38
|
+
*/
|
|
39
|
+
export declare const BRAILLE_FRAMES: readonly ["⠋", "⠙", "⠹", "⠸", "⠼", "⠴", "⠦", "⠧", "⠇", "⠏"];
|
|
40
|
+
/** Tourniquet ASCII — le repli quand la police ne porte pas le braille. */
|
|
41
|
+
export declare const LINE_FRAMES: readonly ["-", "\\", "|", "/"];
|
|
42
|
+
/** Arcs tournants — plus discret que le braille, même encombrement. */
|
|
43
|
+
export declare const ARC_FRAMES: readonly ["◜", "◠", "◝", "◞", "◡", "◟"];
|
|
44
|
+
/** Barres montantes — suggère une activité qui « pompe ». */
|
|
45
|
+
export declare const BLOCK_FRAMES: readonly ["▁", "▂", "▃", "▄", "▅", "▆", "▇", "▆", "▅", "▄", "▃", "▂"];
|
|
46
|
+
/** Points qui s'ajoutent — le plus sobre, et le seul purement ASCII. */
|
|
47
|
+
export declare const DOT_FRAMES: readonly [" ", ". ", ".. ", "..."];
|
|
48
|
+
/** Paire de caractères d'une barre : ce qui est fait, ce qui reste. */
|
|
49
|
+
export interface IBarStyle {
|
|
50
|
+
readonly filled: string;
|
|
51
|
+
readonly empty: string;
|
|
52
|
+
}
|
|
53
|
+
/** Styles de barre prêts à l'emploi. */
|
|
54
|
+
export declare const BAR_STYLES: {
|
|
55
|
+
/** `▰▰▰▱▱` — le défaut, lisible et compact. */
|
|
56
|
+
readonly blocks: {
|
|
57
|
+
readonly filled: "▰";
|
|
58
|
+
readonly empty: "▱";
|
|
59
|
+
};
|
|
60
|
+
/** `███░░` — dense, bon contraste sur fond sombre. */
|
|
61
|
+
readonly solid: {
|
|
62
|
+
readonly filled: "█";
|
|
63
|
+
readonly empty: "░";
|
|
64
|
+
};
|
|
65
|
+
/** `===--` — purement ASCII, pour un terminal pauvre ou un journal. */
|
|
66
|
+
readonly ascii: {
|
|
67
|
+
readonly filled: "=";
|
|
68
|
+
readonly empty: "-";
|
|
69
|
+
};
|
|
70
|
+
/** `●●●○○` — pour un petit nombre d'unités qu'on veut compter à l'œil. */
|
|
71
|
+
readonly dots: {
|
|
72
|
+
readonly filled: "●";
|
|
73
|
+
readonly empty: "○";
|
|
74
|
+
};
|
|
75
|
+
};
|
|
76
|
+
/**
|
|
77
|
+
* Le terminal sait-il dessiner du braille et des blocs ?
|
|
78
|
+
*
|
|
79
|
+
* 🔴 Windows est un impératif produit ici, et `cmd.exe` rend `⠋` en carré vide
|
|
80
|
+
* ou en point d'interrogation : une animation illisible est pire qu'aucune.
|
|
81
|
+
* La capacité se CONSTATE sur l'environnement plutôt que de se déduire de
|
|
82
|
+
* `process.platform` — Windows Terminal, VS Code et les consoles modernes
|
|
83
|
+
* affichent parfaitement le braille, et les punir serait aussi faux que de
|
|
84
|
+
* supposer que toutes y arrivent.
|
|
85
|
+
*
|
|
86
|
+
* Même méthode que `is-unicode-supported`, sans la dépendance.
|
|
87
|
+
*
|
|
88
|
+
* @param env - l'environnement à interroger (injecté : une fonction qui lit
|
|
89
|
+
* `process.env` en dur ne s'éprouve pas).
|
|
90
|
+
*/
|
|
91
|
+
export declare function supportsUnicode(env?: NodeJS.ProcessEnv, platform?: string): boolean;
|
|
92
|
+
/**
|
|
93
|
+
* Faut-il animer du tout ?
|
|
94
|
+
*
|
|
95
|
+
* Un terminal ne suffit pas : une forge d'intégration peut en fournir un
|
|
96
|
+
* (`CI=true` avec un pseudo-terminal), et y déverser dix images par seconde
|
|
97
|
+
* remplit un journal que personne ne pourra relire. `TERM=dumb` est la
|
|
98
|
+
* déclaration explicite d'un terminal qui ne sait rien réécrire.
|
|
99
|
+
*/
|
|
100
|
+
export declare function shouldAnimate(stream: NodeJS.WriteStream, env?: NodeJS.ProcessEnv): boolean;
|
|
101
|
+
/**
|
|
102
|
+
* Tronque une ligne à la largeur du terminal, séquences ANSI non comptées.
|
|
103
|
+
*
|
|
104
|
+
* 🔴 Sans cela, une ligne trop longue passe à la ligne — et `clearLine` n'en
|
|
105
|
+
* efface qu'UNE : la queue reste à l'écran, l'animation laisse une traînée. Le
|
|
106
|
+
* dépôt a déjà payé ce défaut ailleurs (`inspect routes` sortait à 900
|
|
107
|
+
* colonnes). Deux colonnes sont laissées libres : certains terminaux passent à
|
|
108
|
+
* la ligne dès la dernière atteinte.
|
|
109
|
+
*/
|
|
110
|
+
export declare function fitToWidth(line: string, columns: number | undefined): string;
|
|
111
|
+
/** Réglages de {@link renderBar}. */
|
|
112
|
+
export interface IRenderBarOptions {
|
|
113
|
+
/** Largeur en cellules. Défaut : 20. */
|
|
114
|
+
readonly width?: number;
|
|
115
|
+
/** Caractères plein/vide. Défaut : {@link BAR_STYLES.blocks}. */
|
|
116
|
+
readonly style?: IBarStyle;
|
|
117
|
+
}
|
|
118
|
+
/**
|
|
119
|
+
* Dessine une barre de progression, et rien d'autre.
|
|
120
|
+
*
|
|
121
|
+
* Fonction PURE : elle n'écrit nulle part, ne connaît aucun terminal et se
|
|
122
|
+
* teste par simple comparaison de chaînes. C'est ce qui permet de la réutiliser
|
|
123
|
+
* dans un rendu sur mesure — un rapport, un journal, une page — sans traîner
|
|
124
|
+
* derrière soi la machinerie d'affichage.
|
|
125
|
+
*
|
|
126
|
+
* Les bornes sont tenues : un `done` négatif, supérieur au total, ou un total
|
|
127
|
+
* nul ne produisent jamais une barre plus longue ou plus courte que `width`.
|
|
128
|
+
* Un total nul rend une barre vide plutôt que de diviser par zéro.
|
|
129
|
+
*
|
|
130
|
+
* @param done - unités faites
|
|
131
|
+
* @param total - unités attendues
|
|
132
|
+
* @param options - largeur et style
|
|
133
|
+
* @returns la barre, sans couleur ni texte autour
|
|
134
|
+
*
|
|
135
|
+
* @example
|
|
136
|
+
* ```ts
|
|
137
|
+
* renderBar(3, 10, { width: 10 }); // "▰▰▰▱▱▱▱▱▱▱"
|
|
138
|
+
* renderBar(1, 2, { style: BAR_STYLES.ascii, width: 4 }); // "==--"
|
|
139
|
+
* ```
|
|
140
|
+
*/
|
|
141
|
+
export declare function renderBar(done: number, total: number, options?: IRenderBarOptions): string;
|
|
142
|
+
/**
|
|
143
|
+
* Met en forme une durée pour un humain : `840ms`, `12.3s`, `4m 05s`.
|
|
144
|
+
*
|
|
145
|
+
* @param ms - durée en millisecondes
|
|
146
|
+
*/
|
|
147
|
+
export declare function formatDuration(ms: number): string;
|
|
148
|
+
/** Réglages communs à toutes les formes. */
|
|
149
|
+
export interface ILiveLineOptions {
|
|
150
|
+
/** Flux de sortie. Défaut : `process.stdout`. */
|
|
151
|
+
readonly stream?: NodeJS.WriteStream;
|
|
152
|
+
/**
|
|
153
|
+
* Forcer ou interdire l'animation, court-circuitant {@link shouldAnimate}.
|
|
154
|
+
*
|
|
155
|
+
* À ne poser que pour éprouver le comportement : en usage normal, c'est
|
|
156
|
+
* l'environnement qui décide, et lui seul sait s'il est une forge.
|
|
157
|
+
*/
|
|
158
|
+
readonly animate?: boolean;
|
|
159
|
+
/** Environnement à interroger. Défaut : `process.env`. */
|
|
160
|
+
readonly env?: NodeJS.ProcessEnv;
|
|
161
|
+
}
|
|
162
|
+
/**
|
|
163
|
+
* Une ligne de terminal qu'on réécrit en place.
|
|
164
|
+
*
|
|
165
|
+
* Porte ce que toutes les formes répètent sinon : le choix du flux, la
|
|
166
|
+
* détection du terminal, l'effacement AVANT écriture (sans quoi un texte court
|
|
167
|
+
* laisse derrière lui la queue d'un texte plus long), et le fait de ne rien
|
|
168
|
+
* dessiner hors terminal.
|
|
169
|
+
*
|
|
170
|
+
* Classe de base : on instancie {@link Spinner} ou {@link ProgressBar}.
|
|
171
|
+
*/
|
|
172
|
+
export declare abstract class LiveLine {
|
|
173
|
+
protected readonly stream: NodeJS.WriteStream;
|
|
174
|
+
/** Vrai entre `start()` et `stop()`, même hors terminal. */
|
|
175
|
+
protected active: boolean;
|
|
176
|
+
/** Résultat de {@link shouldAnimate}, résolu UNE fois à la construction. */
|
|
177
|
+
protected readonly interactive: boolean;
|
|
178
|
+
constructor(options?: ILiveLineOptions);
|
|
179
|
+
/** Vrai si l'on peut dessiner en place — terminal, hors forge, `TERM` utile. */
|
|
180
|
+
get isInteractive(): boolean;
|
|
181
|
+
/** Vrai entre `start()` et `stop()`. */
|
|
182
|
+
get running(): boolean;
|
|
183
|
+
/**
|
|
184
|
+
* Arrête et fige éventuellement une ligne à la place de celle qui vivait.
|
|
185
|
+
*
|
|
186
|
+
* Sans terminal, la ligne finale est écrite telle quelle — c'est la seule
|
|
187
|
+
* trace du passage, et c'est ce qui rend les journaux de forge lisibles.
|
|
188
|
+
*
|
|
189
|
+
* @param finalLine - la ligne à laisser ; omise, la ligne vivante disparaît.
|
|
190
|
+
*/
|
|
191
|
+
stop(finalLine?: string): void;
|
|
192
|
+
/** Masque le curseur au premier indicateur qui anime, et le compte. */
|
|
193
|
+
protected claimCursor(): void;
|
|
194
|
+
/** Arrête la mécanique propre à la forme (minuteur, compteurs). */
|
|
195
|
+
protected abstract halt(): void;
|
|
196
|
+
/** Efface la ligne courante puis écrit la nouvelle. Muet hors terminal. */
|
|
197
|
+
protected paint(text: string): void;
|
|
198
|
+
/** Ramène le curseur en début de ligne et efface ce qui s'y trouvait. */
|
|
199
|
+
protected erase(): void;
|
|
200
|
+
}
|
|
201
|
+
/**
|
|
202
|
+
* Rendu d'une ligne animée : c'est le CONSOMMATEUR qui décide du contenu.
|
|
203
|
+
*
|
|
204
|
+
* @param frame - l'image courante du tourniquet
|
|
205
|
+
* @param label - le libellé courant
|
|
206
|
+
* @returns la ligne complète, SANS retour à la ligne
|
|
207
|
+
*/
|
|
208
|
+
export type SpinnerRenderer = (frame: string, label: string) => string;
|
|
209
|
+
/** Réglages d'un {@link Spinner}. */
|
|
210
|
+
export interface ISpinnerOptions extends ILiveLineOptions {
|
|
211
|
+
/** Cadence de l'animation en millisecondes. Défaut : 80. */
|
|
212
|
+
readonly intervalMs?: number;
|
|
213
|
+
/** Images du tourniquet. Défaut : {@link BRAILLE_FRAMES}. */
|
|
214
|
+
readonly frames?: readonly string[];
|
|
215
|
+
/** Rendu de la ligne. Défaut : `" <image> <libellé>…"`. */
|
|
216
|
+
readonly render?: SpinnerRenderer;
|
|
217
|
+
}
|
|
218
|
+
/**
|
|
219
|
+
* Attente **indéterminée** : on montre que ça vit, sans promettre de fin.
|
|
220
|
+
*
|
|
221
|
+
* Le minuteur est `unref()` — il n'empêche jamais le processus de se terminer —
|
|
222
|
+
* et {@link LiveLine.stop} l'arrête explicitement. Un `Spinner` arrêté est
|
|
223
|
+
* réutilisable : un nouveau {@link start} repart proprement.
|
|
224
|
+
*
|
|
225
|
+
* @example
|
|
226
|
+
* ```ts
|
|
227
|
+
* const spinner = new Spinner();
|
|
228
|
+
* spinner.start("Compilation");
|
|
229
|
+
* await build();
|
|
230
|
+
* spinner.stop(`✓ Compilation (${formatDuration(elapsed)})`);
|
|
231
|
+
* ```
|
|
232
|
+
*/
|
|
233
|
+
export declare class Spinner extends LiveLine {
|
|
234
|
+
#private;
|
|
235
|
+
constructor(options?: ISpinnerOptions);
|
|
236
|
+
/** Vrai si l'animation tourne RÉELLEMENT (donc sur un terminal). */
|
|
237
|
+
get animating(): boolean;
|
|
238
|
+
/**
|
|
239
|
+
* Démarre l'attente sous un libellé.
|
|
240
|
+
*
|
|
241
|
+
* Un `start()` sur un tourniquet déjà lancé change simplement le libellé : il
|
|
242
|
+
* ne crée jamais un second minuteur.
|
|
243
|
+
*
|
|
244
|
+
* @param label - ce qu'on est en train d'attendre
|
|
245
|
+
*/
|
|
246
|
+
start(label: string): void;
|
|
247
|
+
/**
|
|
248
|
+
* Change le libellé sans interrompre l'animation.
|
|
249
|
+
*
|
|
250
|
+
* @param label - le nouveau libellé
|
|
251
|
+
*/
|
|
252
|
+
setLabel(label: string): void;
|
|
253
|
+
/** Redessine tout de suite, sans attendre la prochaine image. */
|
|
254
|
+
refresh(): void;
|
|
255
|
+
protected halt(): void;
|
|
256
|
+
}
|
|
257
|
+
/** Ce qu'un rendu de barre reçoit pour composer sa ligne. */
|
|
258
|
+
export interface IProgressState {
|
|
259
|
+
/** Unités faites. */
|
|
260
|
+
readonly done: number;
|
|
261
|
+
/** Unités attendues. */
|
|
262
|
+
readonly total: number;
|
|
263
|
+
/** Rapport `done/total`, borné à `[0, 1]` ; `0` si le total est nul. */
|
|
264
|
+
readonly ratio: number;
|
|
265
|
+
/** La barre déjà dessinée par {@link renderBar}. */
|
|
266
|
+
readonly bar: string;
|
|
267
|
+
/** Libellé courant. */
|
|
268
|
+
readonly label: string;
|
|
269
|
+
/** Image du tourniquet, ou `""` si `spin` est faux. */
|
|
270
|
+
readonly frame: string;
|
|
271
|
+
/** Millisecondes écoulées depuis {@link ProgressBar.start}. */
|
|
272
|
+
readonly elapsedMs: number;
|
|
273
|
+
}
|
|
274
|
+
/** Rendu d'une ligne de progression. */
|
|
275
|
+
export type ProgressRenderer = (state: IProgressState) => string;
|
|
276
|
+
/** Réglages d'une {@link ProgressBar}. */
|
|
277
|
+
export interface IProgressBarOptions extends ILiveLineOptions {
|
|
278
|
+
/** Largeur de la barre. Défaut : 20. */
|
|
279
|
+
readonly width?: number;
|
|
280
|
+
/** Caractères plein/vide. Défaut : {@link BAR_STYLES.blocks}. */
|
|
281
|
+
readonly style?: IBarStyle;
|
|
282
|
+
/**
|
|
283
|
+
* Ajoute un tourniquet en tête, animé indépendamment de l'avancement.
|
|
284
|
+
*
|
|
285
|
+
* À poser quand l'avancement peut rester longtemps immobile : la barre dit
|
|
286
|
+
* OÙ l'on en est, le tourniquet dit que ça VIT encore. Sans lui, une étape
|
|
287
|
+
* lente est indiscernable d'un blocage.
|
|
288
|
+
*/
|
|
289
|
+
readonly spin?: boolean;
|
|
290
|
+
/** Cadence du tourniquet, en millisecondes. Défaut : 80. */
|
|
291
|
+
readonly intervalMs?: number;
|
|
292
|
+
/** Images du tourniquet. Défaut : {@link BRAILLE_FRAMES}. */
|
|
293
|
+
readonly frames?: readonly string[];
|
|
294
|
+
/** Rendu de la ligne. Défaut : `" <barre> <faits>/<total> <libellé>"`. */
|
|
295
|
+
readonly render?: ProgressRenderer;
|
|
296
|
+
}
|
|
297
|
+
/**
|
|
298
|
+
* Progression **déterminée** : on connaît le total, on montre où l'on en est.
|
|
299
|
+
*
|
|
300
|
+
* Redessine à chaque {@link update}. Avec `spin: true`, un minuteur anime en
|
|
301
|
+
* plus un tourniquet en tête — utile quand l'avancement peut rester immobile un
|
|
302
|
+
* long moment, ce qu'une barre seule ne distingue pas d'un blocage.
|
|
303
|
+
*
|
|
304
|
+
* @example
|
|
305
|
+
* ```ts
|
|
306
|
+
* const bar = new ProgressBar({ spin: true });
|
|
307
|
+
* bar.start(files.length, "Compilation");
|
|
308
|
+
* for (const file of files) {
|
|
309
|
+
* await compile(file);
|
|
310
|
+
* bar.increment();
|
|
311
|
+
* }
|
|
312
|
+
* bar.stop(`✓ ${files.length} fichiers`);
|
|
313
|
+
* ```
|
|
314
|
+
*/
|
|
315
|
+
export declare class ProgressBar extends LiveLine {
|
|
316
|
+
#private;
|
|
317
|
+
constructor(options?: IProgressBarOptions);
|
|
318
|
+
/** Unités faites. */
|
|
319
|
+
get done(): number;
|
|
320
|
+
/** Unités attendues. */
|
|
321
|
+
get total(): number;
|
|
322
|
+
/** Vrai si le tourniquet tourne réellement. */
|
|
323
|
+
get animating(): boolean;
|
|
324
|
+
/**
|
|
325
|
+
* Démarre la progression.
|
|
326
|
+
*
|
|
327
|
+
* @param total - unités attendues
|
|
328
|
+
* @param label - libellé facultatif
|
|
329
|
+
*/
|
|
330
|
+
start(total: number, label?: string): void;
|
|
331
|
+
/**
|
|
332
|
+
* Pose l'avancement à une valeur absolue.
|
|
333
|
+
*
|
|
334
|
+
* @param done - unités faites
|
|
335
|
+
* @param label - nouveau libellé, facultatif
|
|
336
|
+
*/
|
|
337
|
+
update(done: number, label?: string): void;
|
|
338
|
+
/**
|
|
339
|
+
* Avance de `step` unités.
|
|
340
|
+
*
|
|
341
|
+
* @param step - pas d'avancement. Défaut : 1.
|
|
342
|
+
*/
|
|
343
|
+
increment(step?: number): void;
|
|
344
|
+
/** Change le total en cours de route (une découverte, un lot qui grossit). */
|
|
345
|
+
setTotal(total: number): void;
|
|
346
|
+
/** Change le libellé sans toucher à l'avancement. */
|
|
347
|
+
setLabel(label: string): void;
|
|
348
|
+
protected halt(): void;
|
|
349
|
+
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Racine du PROJET Nodefony courant (app générée / app utilisateur) : remonte
|
|
3
|
+
* depuis `from` jusqu'au premier dossier portant `nodefony.config.ts` +
|
|
4
|
+
* `package.json`.
|
|
5
|
+
*
|
|
6
|
+
* Deux consommateurs, une seule définition de « où commence l'app » :
|
|
7
|
+
* - les scaffolds IN-PROJECT (`create controller|module|entity`) — par
|
|
8
|
+
* opposition à `create app` qui crée un dossier neuf ;
|
|
9
|
+
* - le **lanceur** (`bin/nodefony`), qui délègue au CLI de l'app quand il en
|
|
10
|
+
* trouve un (cf `../bin/resolveLocalCli`).
|
|
11
|
+
*
|
|
12
|
+
* Vit ici (module sans dépendance, `node:fs`/`node:path` seuls) et pas dans
|
|
13
|
+
* `scaffold/engine.ts` : le bundle du binaire importerait alors `eta` et tout le
|
|
14
|
+
* moteur de templates, payés à CHAQUE invocation du CLI.
|
|
15
|
+
*
|
|
16
|
+
* @param from - dossier de départ (typiquement `process.cwd()`).
|
|
17
|
+
* @returns racine absolue, ou `null` hors projet.
|
|
18
|
+
*/
|
|
19
|
+
export declare function findProjectRoot(from: string): string | null;
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Demande un secret sans jamais l'ÉCHOTER — mot de passe, phrase de passe.
|
|
3
|
+
*
|
|
4
|
+
* La frappe passe par un `readline` dont la sortie est un flux MUET : la
|
|
5
|
+
* question s'écrit directement sur la sortie standard, les caractères tapés ne
|
|
6
|
+
* s'affichent nulle part et ne peuvent donc pas se retrouver dans une capture
|
|
7
|
+
* d'écran, un partage de terminal ou un journal de session.
|
|
8
|
+
*
|
|
9
|
+
* Vit au cœur, et pas dans la commande qui en avait besoin la première : deux
|
|
10
|
+
* copies d'un prompt de secret finissent par différer sur ce qui compte — l'une
|
|
11
|
+
* oublie de couper l'écho, l'autre de refermer l'interface, et le terminal reste
|
|
12
|
+
* muet après coup.
|
|
13
|
+
*
|
|
14
|
+
* ⚠️ **Sans terminal, cette fonction n'a pas de sens** : un pipeline resterait
|
|
15
|
+
* suspendu sur une question que personne ne lit. L'appelant doit constater le
|
|
16
|
+
* TTY avant (cf `Command.askArgument`) et proposer une option de ligne de
|
|
17
|
+
* commande pour les scripts.
|
|
18
|
+
*
|
|
19
|
+
* @param question - invite écrite telle quelle (ajouter les deux points et l'espace)
|
|
20
|
+
* @returns ce qui a été tapé, sans le retour à la ligne
|
|
21
|
+
*/
|
|
22
|
+
export declare function askPasswordMasked(question: string): Promise<string>;
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* La porte UNIQUE par laquelle une commande pose une question.
|
|
3
|
+
*
|
|
4
|
+
* ⭐ Elle existe pour une raison qu'aucune commande ne peut résoudre seule :
|
|
5
|
+
* **attendre une réponse humaine ne retient pas Node.**
|
|
6
|
+
*
|
|
7
|
+
* Une question est une promesse en attente. Node ne compte pas les promesses —
|
|
8
|
+
* il compte les HANDLES actifs (sockets, timers, serveurs). Une commande qui
|
|
9
|
+
* boote une application en a des dizaines, si bien que la question tient sans
|
|
10
|
+
* que personne n'y pense. Une commande « standalone » — celles que le CLI sert
|
|
11
|
+
* sans démarrer quoi que ce soit, précisément pour être rapides — n'en a
|
|
12
|
+
* AUCUN : l'attente d'une frappe est alors la seule chose qui reste, et Node
|
|
13
|
+
* conclut qu'il n'a plus rien à faire. Le process s'arrête **au milieu de la
|
|
14
|
+
* question**, sans erreur, avec un code de sortie nul, en laissant tout au plus
|
|
15
|
+
* un `Detected unsettled top-level await`.
|
|
16
|
+
*
|
|
17
|
+
* Le symptôme se lit « la commande meurt toute seule » et se diagnostique comme
|
|
18
|
+
* un délai d'attente qui n'existe pas. Il ne se manifeste que là où l'on a
|
|
19
|
+
* travaillé à ne rien démarrer, donc il frappe les commandes les plus soignées,
|
|
20
|
+
* et jamais celles qui bootent — ce qui achève de brouiller la piste.
|
|
21
|
+
*
|
|
22
|
+
* D'où cette porte : elle pose un handle le temps de la question, et le retire
|
|
23
|
+
* ensuite. Une commande n'a pas à y penser ; elle n'a même pas à savoir que le
|
|
24
|
+
* problème existe. La règle vit ici, une fois — l'écrire dans chaque commande
|
|
25
|
+
* garantirait qu'elle manque un jour dans la dernière écrite.
|
|
26
|
+
*
|
|
27
|
+
* ⚠️ Ne JAMAIS importer `@inquirer/prompts` directement dans une commande.
|
|
28
|
+
* C'est ce qui recrée le défaut, en silence, dans un endroit qu'on ne relira
|
|
29
|
+
* pas.
|
|
30
|
+
*/
|
|
31
|
+
/**
|
|
32
|
+
* Retient l'event loop, et rend de quoi le relâcher.
|
|
33
|
+
*
|
|
34
|
+
* Un intervalle **non `unref()`** est le handle le plus léger qui fasse
|
|
35
|
+
* l'affaire : il ne consomme rien (son échéance est hors de portée), il ne
|
|
36
|
+
* réveille jamais le process, et il compte comme travail en cours pour Node.
|
|
37
|
+
* L'intervalle est volontairement énorme — ce n'est pas un timer, c'est une
|
|
38
|
+
* ancre.
|
|
39
|
+
*
|
|
40
|
+
* @returns la fonction qui relâche l'ancre ; l'appeler deux fois est sans effet.
|
|
41
|
+
*/
|
|
42
|
+
export declare function anchorEventLoop(): () => void;
|
|
43
|
+
/**
|
|
44
|
+
* Exécute une interaction utilisateur en retenant l'event loop.
|
|
45
|
+
*
|
|
46
|
+
* ⚠️ L'ancre se relâche dans un `finally` : une question interrompue (Ctrl+C,
|
|
47
|
+
* flux fermé, refus) doit rendre la main comme une question aboutie, sinon on
|
|
48
|
+
* troque une commande qui meurt trop tôt contre une commande qui ne rend jamais
|
|
49
|
+
* la main — le défaut symétrique, et plus pénible encore.
|
|
50
|
+
*
|
|
51
|
+
* @param interaction - ce qui pose la ou les questions.
|
|
52
|
+
* @returns ce que l'interaction rend.
|
|
53
|
+
*/
|
|
54
|
+
export declare function request<T>(interaction: () => Promise<T>): Promise<T>;
|
|
55
|
+
/** Les questions servies par cette porte — le sous-ensemble réellement utilisé. */
|
|
56
|
+
export interface IPrompts {
|
|
57
|
+
confirm: (config: {
|
|
58
|
+
message: string;
|
|
59
|
+
default?: boolean;
|
|
60
|
+
}) => Promise<boolean>;
|
|
61
|
+
select: <T>(config: {
|
|
62
|
+
message: string;
|
|
63
|
+
choices: readonly unknown[];
|
|
64
|
+
default?: T;
|
|
65
|
+
}) => Promise<T>;
|
|
66
|
+
checkbox: (config: {
|
|
67
|
+
message: string;
|
|
68
|
+
choices: readonly unknown[];
|
|
69
|
+
}) => Promise<unknown[]>;
|
|
70
|
+
input: (config: {
|
|
71
|
+
message: string;
|
|
72
|
+
default?: string;
|
|
73
|
+
}) => Promise<string>;
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* Charge les prompts — import DYNAMIQUE, et c'est délibéré.
|
|
77
|
+
*
|
|
78
|
+
* Le paquet pèse ; une commande non interactive (`--json`, un script de forge)
|
|
79
|
+
* ne doit pas le payer. Le chargement est idempotent : Node met le module en
|
|
80
|
+
* cache, les appels suivants ne coûtent rien.
|
|
81
|
+
*
|
|
82
|
+
* @returns les questions disponibles.
|
|
83
|
+
*/
|
|
84
|
+
export declare function chargePrompts(): Promise<IPrompts & Record<string, unknown>>;
|
|
85
|
+
/**
|
|
86
|
+
* Interface `readline` ANCRÉE — même garantie, pour le front natif du scaffold.
|
|
87
|
+
*
|
|
88
|
+
* Le scaffold de `create app` ne passe pas par `@inquirer/prompts` : il pose ses
|
|
89
|
+
* questions en `node:readline/promises`, sans aucune dépendance. Le besoin est
|
|
90
|
+
* pourtant identique, et l'exposition la même — `create app` est servi sans rien
|
|
91
|
+
* démarrer. Fournir la fabrique ICI évite d'écrire l'ancre à la main là-bas :
|
|
92
|
+
* une règle qu'on doit se rappeler d'appliquer est une règle qui manquera un
|
|
93
|
+
* jour.
|
|
94
|
+
*
|
|
95
|
+
* @param input - flux d'entrée (injectable pour les bancs).
|
|
96
|
+
* @param output - flux de sortie.
|
|
97
|
+
* @returns l'interface, et la fermeture qui relâche AUSSI l'ancre.
|
|
98
|
+
*/
|
|
99
|
+
export declare function ouvreReadline(input: NodeJS.ReadableStream, output: NodeJS.WritableStream): Promise<{
|
|
100
|
+
rl: import("node:readline/promises").Interface;
|
|
101
|
+
close: () => void;
|
|
102
|
+
}>;
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Où une NOUVELLE application a le droit de naître, quand la création est pilotée par
|
|
3
|
+
* une interface web (Studio) plutôt que par une ligne de commande.
|
|
4
|
+
*
|
|
5
|
+
* ## Le problème
|
|
6
|
+
*
|
|
7
|
+
* En CLI, la destination est le `cwd` de l'utilisateur : il est chez lui, il assume. Sur
|
|
8
|
+
* le web, la destination arrive par le réseau — et un endpoint qui écrit au chemin qu'on
|
|
9
|
+
* lui donne écrit aussi dans `/etc`, `~/.ssh` ou `node_modules`. Un champ « chemin
|
|
10
|
+
* absolu » serait une porte ouverte, quel que soit le rôle exigé derrière.
|
|
11
|
+
*
|
|
12
|
+
* ## La règle
|
|
13
|
+
*
|
|
14
|
+
* Le client ne transmet JAMAIS un chemin. Il choisit :
|
|
15
|
+
* - une **racine autorisée**, par identifiant (le serveur seul connaît son chemin réel) ;
|
|
16
|
+
* - un **sous-dossier** relatif, dont chaque segment est validé ;
|
|
17
|
+
* - un **nom d'app**, validé par la même expression que le moteur.
|
|
18
|
+
*
|
|
19
|
+
* Le serveur RECOMPOSE la destination et vérifie qu'elle reste **sous la racine**. Tout
|
|
20
|
+
* le reste est refusé — `..`, chemin absolu, segment vide, caractère exotique.
|
|
21
|
+
*
|
|
22
|
+
* Ces fonctions sont **pures** (aucun accès disque) : la protection contre les liens
|
|
23
|
+
* symboliques se fait chez l'appelant, en résolvant les chemins réels AVANT de les passer
|
|
24
|
+
* ici (cf {@link isInsideRoot}).
|
|
25
|
+
*/
|
|
26
|
+
/** Nom d'application — même expression que la spec du scaffold (`spec.ts`). */
|
|
27
|
+
export declare const APP_NAME_RE: RegExp;
|
|
28
|
+
/** Racine autorisée : un espace de travail où l'on a le droit de créer une app. */
|
|
29
|
+
export interface IScaffoldRoot {
|
|
30
|
+
/** Identifiant opaque manipulé par le client (jamais un chemin). */
|
|
31
|
+
id: string;
|
|
32
|
+
/** Libellé affiché. */
|
|
33
|
+
label: string;
|
|
34
|
+
/** Chemin réel côté serveur — ne sort JAMAIS tel quel vers un client non admin. */
|
|
35
|
+
path: string;
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Le sous-chemin proposé est-il navigable sans danger ?
|
|
39
|
+
*
|
|
40
|
+
* @param sub - chemin relatif (`""` = la racine elle-même), séparé par `/`.
|
|
41
|
+
* @returns `true` si chaque segment est acceptable et qu'aucun ne remonte.
|
|
42
|
+
*/
|
|
43
|
+
export declare function isSafeSubPath(sub: string): boolean;
|
|
44
|
+
/**
|
|
45
|
+
* `child` est-il À L'INTÉRIEUR de `root` ?
|
|
46
|
+
*
|
|
47
|
+
* Comparaison sur les chemins **normalisés**, avec le séparateur final : sans lui,
|
|
48
|
+
* `/home/user/app-secrets` passerait pour un enfant de `/home/user/app`. La racine
|
|
49
|
+
* elle-même n'est pas « à l'intérieur » (on ne crée pas une app SUR sa racine).
|
|
50
|
+
*
|
|
51
|
+
* ⚠️ Passer ici des chemins RÉELS (`realpathSync`) quand ils existent : sinon un lien
|
|
52
|
+
* symbolique placé dans la racine ferait sortir l'écriture de l'espace autorisé sans que
|
|
53
|
+
* cette comparaison n'y voie rien.
|
|
54
|
+
*/
|
|
55
|
+
export declare function isInsideRoot(root: string, child: string): boolean;
|
|
56
|
+
/** Erreur de destination — message sûr, affichable tel quel (jamais un chemin serveur). */
|
|
57
|
+
export declare class ScaffoldDestinationError extends Error {
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Recompose la destination d'une nouvelle app, ou refuse.
|
|
61
|
+
*
|
|
62
|
+
* @param roots - racines autorisées (côté serveur).
|
|
63
|
+
* @param rootId - identifiant de racine choisi par le client.
|
|
64
|
+
* @param sub - sous-dossier relatif choisi (`""` = la racine).
|
|
65
|
+
* @param name - nom de l'app.
|
|
66
|
+
* @returns le chemin absolu où l'app doit naître.
|
|
67
|
+
* @throws {ScaffoldDestinationError} racine inconnue, sous-chemin ou nom refusé, ou
|
|
68
|
+
* destination hors de la racine.
|
|
69
|
+
*/
|
|
70
|
+
export declare function resolveScaffoldDestination(roots: readonly IScaffoldRoot[], rootId: string, sub: string, name: string): string;
|