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,555 @@
|
|
|
1
|
+
import readline from "node:readline";
|
|
2
|
+
//#region src/cli/progress.ts
|
|
3
|
+
/**
|
|
4
|
+
* Indicateurs d'attente et de progression pour un terminal — la seule
|
|
5
|
+
* implémentation du framework.
|
|
6
|
+
*
|
|
7
|
+
* Ils existent parce qu'une commande qui annonce une étape puis se tait pendant
|
|
8
|
+
* quarante secondes est indiscernable d'une commande plantée : l'utilisateur ne
|
|
9
|
+
* peut pas savoir s'il doit attendre ou interrompre. Un point fixe n'est pas
|
|
10
|
+
* une progression.
|
|
11
|
+
*
|
|
12
|
+
* ## Ce qu'il faut choisir
|
|
13
|
+
*
|
|
14
|
+
* | On sait… | La forme |
|
|
15
|
+
* | ------------------------------------------- | ------------- |
|
|
16
|
+
* | seulement que ça travaille | {@link Spinner} |
|
|
17
|
+
* | combien d'unités sur combien | {@link ProgressBar} |
|
|
18
|
+
* | les deux (des lots en parallèle, par ex.) | `ProgressBar` avec `spin: true` |
|
|
19
|
+
*
|
|
20
|
+
* ## 🔴 Rien de tout cela ne passe par le Syslog, et c'est structurel
|
|
21
|
+
*
|
|
22
|
+
* Une animation réécrit la même ligne dix fois par seconde. La faire passer par
|
|
23
|
+
* le journal en ferait dix entrées allouées, poussées au tampon circulaire, aux
|
|
24
|
+
* transports et au backplane — du décor d'affichage expédié à un collecteur de
|
|
25
|
+
* logs. Ces objets écrivent DIRECTEMENT sur leur flux, et le journal les ignore.
|
|
26
|
+
*
|
|
27
|
+
* ## Hors terminal
|
|
28
|
+
*
|
|
29
|
+
* Quand le flux n'est pas un terminal (redirection, tube, forge d'intégration),
|
|
30
|
+
* `\r` ne ramène nulle part et l'animation deviendrait une avalanche de lignes.
|
|
31
|
+
* Rien n'est alors dessiné : seule la ligne finale de `stop()` est émise. C'est
|
|
32
|
+
* ce qui rend ces objets posables sans condition dans du code qui tourne aussi
|
|
33
|
+
* bien en local qu'en forge.
|
|
34
|
+
*/
|
|
35
|
+
/**
|
|
36
|
+
* Tourniquet braille — dix images, rotation fluide. Le défaut.
|
|
37
|
+
*
|
|
38
|
+
* Le braille est préféré aux `|/-\` : il occupe une seule cellule quelle que
|
|
39
|
+
* soit l'image, donc la ligne ne « respire » pas au fil de l'animation.
|
|
40
|
+
*/
|
|
41
|
+
const BRAILLE_FRAMES = [
|
|
42
|
+
"⠋",
|
|
43
|
+
"⠙",
|
|
44
|
+
"⠹",
|
|
45
|
+
"⠸",
|
|
46
|
+
"⠼",
|
|
47
|
+
"⠴",
|
|
48
|
+
"⠦",
|
|
49
|
+
"⠧",
|
|
50
|
+
"⠇",
|
|
51
|
+
"⠏"
|
|
52
|
+
];
|
|
53
|
+
/** Tourniquet ASCII — le repli quand la police ne porte pas le braille. */
|
|
54
|
+
const LINE_FRAMES = [
|
|
55
|
+
"-",
|
|
56
|
+
"\\",
|
|
57
|
+
"|",
|
|
58
|
+
"/"
|
|
59
|
+
];
|
|
60
|
+
/** Arcs tournants — plus discret que le braille, même encombrement. */
|
|
61
|
+
const ARC_FRAMES = [
|
|
62
|
+
"◜",
|
|
63
|
+
"◠",
|
|
64
|
+
"◝",
|
|
65
|
+
"◞",
|
|
66
|
+
"◡",
|
|
67
|
+
"◟"
|
|
68
|
+
];
|
|
69
|
+
/** Barres montantes — suggère une activité qui « pompe ». */
|
|
70
|
+
const BLOCK_FRAMES = [
|
|
71
|
+
"▁",
|
|
72
|
+
"▂",
|
|
73
|
+
"▃",
|
|
74
|
+
"▄",
|
|
75
|
+
"▅",
|
|
76
|
+
"▆",
|
|
77
|
+
"▇",
|
|
78
|
+
"▆",
|
|
79
|
+
"▅",
|
|
80
|
+
"▄",
|
|
81
|
+
"▃",
|
|
82
|
+
"▂"
|
|
83
|
+
];
|
|
84
|
+
/** Points qui s'ajoutent — le plus sobre, et le seul purement ASCII. */
|
|
85
|
+
const DOT_FRAMES = [
|
|
86
|
+
" ",
|
|
87
|
+
". ",
|
|
88
|
+
".. ",
|
|
89
|
+
"..."
|
|
90
|
+
];
|
|
91
|
+
/** Styles de barre prêts à l'emploi. */
|
|
92
|
+
const BAR_STYLES = {
|
|
93
|
+
/** `▰▰▰▱▱` — le défaut, lisible et compact. */
|
|
94
|
+
blocks: {
|
|
95
|
+
filled: "▰",
|
|
96
|
+
empty: "▱"
|
|
97
|
+
},
|
|
98
|
+
/** `███░░` — dense, bon contraste sur fond sombre. */
|
|
99
|
+
solid: {
|
|
100
|
+
filled: "█",
|
|
101
|
+
empty: "░"
|
|
102
|
+
},
|
|
103
|
+
/** `===--` — purement ASCII, pour un terminal pauvre ou un journal. */
|
|
104
|
+
ascii: {
|
|
105
|
+
filled: "=",
|
|
106
|
+
empty: "-"
|
|
107
|
+
},
|
|
108
|
+
/** `●●●○○` — pour un petit nombre d'unités qu'on veut compter à l'œil. */
|
|
109
|
+
dots: {
|
|
110
|
+
filled: "●",
|
|
111
|
+
empty: "○"
|
|
112
|
+
}
|
|
113
|
+
};
|
|
114
|
+
/**
|
|
115
|
+
* Le terminal sait-il dessiner du braille et des blocs ?
|
|
116
|
+
*
|
|
117
|
+
* 🔴 Windows est un impératif produit ici, et `cmd.exe` rend `⠋` en carré vide
|
|
118
|
+
* ou en point d'interrogation : une animation illisible est pire qu'aucune.
|
|
119
|
+
* La capacité se CONSTATE sur l'environnement plutôt que de se déduire de
|
|
120
|
+
* `process.platform` — Windows Terminal, VS Code et les consoles modernes
|
|
121
|
+
* affichent parfaitement le braille, et les punir serait aussi faux que de
|
|
122
|
+
* supposer que toutes y arrivent.
|
|
123
|
+
*
|
|
124
|
+
* Même méthode que `is-unicode-supported`, sans la dépendance.
|
|
125
|
+
*
|
|
126
|
+
* @param env - l'environnement à interroger (injecté : une fonction qui lit
|
|
127
|
+
* `process.env` en dur ne s'éprouve pas).
|
|
128
|
+
*/
|
|
129
|
+
function supportsUnicode(env = process.env, platform = process.platform) {
|
|
130
|
+
if (platform !== "win32") {
|
|
131
|
+
if (env["TERM"] === "linux") return false;
|
|
132
|
+
const locale = env["LC_ALL"] ?? env["LC_CTYPE"] ?? env["LANG"] ?? "";
|
|
133
|
+
return /UTF-?8$/i.test(locale) || locale === "";
|
|
134
|
+
}
|
|
135
|
+
return Boolean(env["WT_SESSION"] || env["TERMINUS_SUBLIME"] || env["ConEmuTask"] === "{cmd::Cmder}" || env["TERM_PROGRAM"] === "vscode" || env["TERM"] === "xterm-256color" || env["TERM"] === "alacritty");
|
|
136
|
+
}
|
|
137
|
+
/**
|
|
138
|
+
* Faut-il animer du tout ?
|
|
139
|
+
*
|
|
140
|
+
* Un terminal ne suffit pas : une forge d'intégration peut en fournir un
|
|
141
|
+
* (`CI=true` avec un pseudo-terminal), et y déverser dix images par seconde
|
|
142
|
+
* remplit un journal que personne ne pourra relire. `TERM=dumb` est la
|
|
143
|
+
* déclaration explicite d'un terminal qui ne sait rien réécrire.
|
|
144
|
+
*/
|
|
145
|
+
function shouldAnimate(stream, env = process.env) {
|
|
146
|
+
if (!stream.isTTY) return false;
|
|
147
|
+
if (env["TERM"] === "dumb") return false;
|
|
148
|
+
if (env["CI"]) return false;
|
|
149
|
+
if (env["NF_NO_PROGRESS"]) return false;
|
|
150
|
+
return true;
|
|
151
|
+
}
|
|
152
|
+
/** Nombre d'indicateurs qui animent en ce moment — le curseur suit ce compte. */
|
|
153
|
+
let animatingCount = 0;
|
|
154
|
+
/** Le flux sur lequel le curseur a été masqué, `null` s'il ne l'est pas. */
|
|
155
|
+
let cursorHiddenOn = null;
|
|
156
|
+
/** Retrait des gardes de sortie — `null` tant qu'elles ne sont pas posées. */
|
|
157
|
+
let releaseGuards = null;
|
|
158
|
+
function showCursor() {
|
|
159
|
+
if (cursorHiddenOn === null) return;
|
|
160
|
+
cursorHiddenOn.write("\x1B[?25h");
|
|
161
|
+
cursorHiddenOn = null;
|
|
162
|
+
releaseGuards?.();
|
|
163
|
+
releaseGuards = null;
|
|
164
|
+
}
|
|
165
|
+
function hideCursor(stream) {
|
|
166
|
+
if (cursorHiddenOn !== null) return;
|
|
167
|
+
stream.write("\x1B[?25l");
|
|
168
|
+
cursorHiddenOn = stream;
|
|
169
|
+
const onExit = () => showCursor();
|
|
170
|
+
const onSignal = (signal) => {
|
|
171
|
+
if (process.listenerCount(signal) > 1) {
|
|
172
|
+
showCursor();
|
|
173
|
+
return;
|
|
174
|
+
}
|
|
175
|
+
showCursor();
|
|
176
|
+
process.kill(process.pid, signal);
|
|
177
|
+
};
|
|
178
|
+
process.once("exit", onExit);
|
|
179
|
+
process.on("SIGINT", onSignal);
|
|
180
|
+
process.on("SIGTERM", onSignal);
|
|
181
|
+
releaseGuards = () => {
|
|
182
|
+
process.removeListener("exit", onExit);
|
|
183
|
+
process.removeListener("SIGINT", onSignal);
|
|
184
|
+
process.removeListener("SIGTERM", onSignal);
|
|
185
|
+
};
|
|
186
|
+
}
|
|
187
|
+
/**
|
|
188
|
+
* Tronque une ligne à la largeur du terminal, séquences ANSI non comptées.
|
|
189
|
+
*
|
|
190
|
+
* 🔴 Sans cela, une ligne trop longue passe à la ligne — et `clearLine` n'en
|
|
191
|
+
* efface qu'UNE : la queue reste à l'écran, l'animation laisse une traînée. Le
|
|
192
|
+
* dépôt a déjà payé ce défaut ailleurs (`inspect routes` sortait à 900
|
|
193
|
+
* colonnes). Deux colonnes sont laissées libres : certains terminaux passent à
|
|
194
|
+
* la ligne dès la dernière atteinte.
|
|
195
|
+
*/
|
|
196
|
+
function fitToWidth(line, columns) {
|
|
197
|
+
const width = columns && columns > 8 ? columns - 2 : 78;
|
|
198
|
+
const ansi = /\u001B\[[0-9;]*m/g;
|
|
199
|
+
let visible = 0;
|
|
200
|
+
let out = "";
|
|
201
|
+
let index = 0;
|
|
202
|
+
for (const match of line.matchAll(ansi)) {
|
|
203
|
+
const text = line.slice(index, match.index);
|
|
204
|
+
for (const ch of text) {
|
|
205
|
+
if (visible >= width) return out;
|
|
206
|
+
out += ch;
|
|
207
|
+
visible++;
|
|
208
|
+
}
|
|
209
|
+
out += match[0];
|
|
210
|
+
index = match.index + match[0].length;
|
|
211
|
+
}
|
|
212
|
+
for (const ch of line.slice(index)) {
|
|
213
|
+
if (visible >= width) return out;
|
|
214
|
+
out += ch;
|
|
215
|
+
visible++;
|
|
216
|
+
}
|
|
217
|
+
return out;
|
|
218
|
+
}
|
|
219
|
+
const SYNC_END = "\x1B[?2026l";
|
|
220
|
+
/** Cadence par défaut, en millisecondes — au-delà l'animation saccade. */
|
|
221
|
+
const DEFAULT_INTERVAL_MS = 80;
|
|
222
|
+
/** Largeur par défaut d'une barre, en cellules. */
|
|
223
|
+
const DEFAULT_BAR_WIDTH = 20;
|
|
224
|
+
/**
|
|
225
|
+
* Ramène une valeur à un compte utilisable : entier, positif, FINI.
|
|
226
|
+
*
|
|
227
|
+
* 🔴 `NaN` est le piège : il traverse `Math.min`, `Math.max` et `Math.round`
|
|
228
|
+
* sans jamais lever, puis `"▰".repeat(NaN)` rend la chaîne VIDE. Une barre
|
|
229
|
+
* censée faire vingt cellules disparaissait donc en silence — le pire mode de
|
|
230
|
+
* panne pour un indicateur, qui n'affiche rien là où il devrait alerter.
|
|
231
|
+
*/
|
|
232
|
+
function safeCount(value) {
|
|
233
|
+
return Number.isFinite(value) ? Math.max(0, Math.trunc(value)) : 0;
|
|
234
|
+
}
|
|
235
|
+
/** Rapport `done/total` borné à `[0, 1]` ; `0` si le total est nul ou absurde. */
|
|
236
|
+
function ratioOf(done, total) {
|
|
237
|
+
const t = safeCount(total);
|
|
238
|
+
if (t === 0) return 0;
|
|
239
|
+
return Math.min(1, Math.max(0, safeCount(done) / t));
|
|
240
|
+
}
|
|
241
|
+
/**
|
|
242
|
+
* Dessine une barre de progression, et rien d'autre.
|
|
243
|
+
*
|
|
244
|
+
* Fonction PURE : elle n'écrit nulle part, ne connaît aucun terminal et se
|
|
245
|
+
* teste par simple comparaison de chaînes. C'est ce qui permet de la réutiliser
|
|
246
|
+
* dans un rendu sur mesure — un rapport, un journal, une page — sans traîner
|
|
247
|
+
* derrière soi la machinerie d'affichage.
|
|
248
|
+
*
|
|
249
|
+
* Les bornes sont tenues : un `done` négatif, supérieur au total, ou un total
|
|
250
|
+
* nul ne produisent jamais une barre plus longue ou plus courte que `width`.
|
|
251
|
+
* Un total nul rend une barre vide plutôt que de diviser par zéro.
|
|
252
|
+
*
|
|
253
|
+
* @param done - unités faites
|
|
254
|
+
* @param total - unités attendues
|
|
255
|
+
* @param options - largeur et style
|
|
256
|
+
* @returns la barre, sans couleur ni texte autour
|
|
257
|
+
*
|
|
258
|
+
* @example
|
|
259
|
+
* ```ts
|
|
260
|
+
* renderBar(3, 10, { width: 10 }); // "▰▰▰▱▱▱▱▱▱▱"
|
|
261
|
+
* renderBar(1, 2, { style: BAR_STYLES.ascii, width: 4 }); // "==--"
|
|
262
|
+
* ```
|
|
263
|
+
*/
|
|
264
|
+
function renderBar(done, total, options = {}) {
|
|
265
|
+
const width = safeCount(options.width ?? DEFAULT_BAR_WIDTH);
|
|
266
|
+
const { filled, empty } = options.style ?? BAR_STYLES.blocks;
|
|
267
|
+
const full = Math.min(width, Math.round(ratioOf(done, total) * width));
|
|
268
|
+
return filled.repeat(full) + empty.repeat(width - full);
|
|
269
|
+
}
|
|
270
|
+
/**
|
|
271
|
+
* Met en forme une durée pour un humain : `840ms`, `12.3s`, `4m 05s`.
|
|
272
|
+
*
|
|
273
|
+
* @param ms - durée en millisecondes
|
|
274
|
+
*/
|
|
275
|
+
function formatDuration(ms) {
|
|
276
|
+
if (ms < 1e3) return `${Math.round(ms)}ms`;
|
|
277
|
+
if (ms < 6e4) return `${(ms / 1e3).toFixed(1)}s`;
|
|
278
|
+
const minutes = Math.floor(ms / 6e4);
|
|
279
|
+
const seconds = Math.round(ms % 6e4 / 1e3);
|
|
280
|
+
return `${minutes}m ${String(seconds).padStart(2, "0")}s`;
|
|
281
|
+
}
|
|
282
|
+
/**
|
|
283
|
+
* Une ligne de terminal qu'on réécrit en place.
|
|
284
|
+
*
|
|
285
|
+
* Porte ce que toutes les formes répètent sinon : le choix du flux, la
|
|
286
|
+
* détection du terminal, l'effacement AVANT écriture (sans quoi un texte court
|
|
287
|
+
* laisse derrière lui la queue d'un texte plus long), et le fait de ne rien
|
|
288
|
+
* dessiner hors terminal.
|
|
289
|
+
*
|
|
290
|
+
* Classe de base : on instancie {@link Spinner} ou {@link ProgressBar}.
|
|
291
|
+
*/
|
|
292
|
+
var LiveLine = class {
|
|
293
|
+
stream;
|
|
294
|
+
/** Vrai entre `start()` et `stop()`, même hors terminal. */
|
|
295
|
+
active = false;
|
|
296
|
+
/** Résultat de {@link shouldAnimate}, résolu UNE fois à la construction. */
|
|
297
|
+
interactive;
|
|
298
|
+
constructor(options = {}) {
|
|
299
|
+
this.stream = options.stream ?? process.stdout;
|
|
300
|
+
this.interactive = options.animate ?? shouldAnimate(this.stream, options.env);
|
|
301
|
+
}
|
|
302
|
+
/** Vrai si l'on peut dessiner en place — terminal, hors forge, `TERM` utile. */
|
|
303
|
+
get isInteractive() {
|
|
304
|
+
return this.interactive;
|
|
305
|
+
}
|
|
306
|
+
/** Vrai entre `start()` et `stop()`. */
|
|
307
|
+
get running() {
|
|
308
|
+
return this.active;
|
|
309
|
+
}
|
|
310
|
+
/**
|
|
311
|
+
* Arrête et fige éventuellement une ligne à la place de celle qui vivait.
|
|
312
|
+
*
|
|
313
|
+
* Sans terminal, la ligne finale est écrite telle quelle — c'est la seule
|
|
314
|
+
* trace du passage, et c'est ce qui rend les journaux de forge lisibles.
|
|
315
|
+
*
|
|
316
|
+
* @param finalLine - la ligne à laisser ; omise, la ligne vivante disparaît.
|
|
317
|
+
*/
|
|
318
|
+
stop(finalLine) {
|
|
319
|
+
this.halt();
|
|
320
|
+
this.erase();
|
|
321
|
+
if (this.active && this.isInteractive) {
|
|
322
|
+
animatingCount = Math.max(0, animatingCount - 1);
|
|
323
|
+
if (animatingCount === 0) showCursor();
|
|
324
|
+
}
|
|
325
|
+
this.active = false;
|
|
326
|
+
if (finalLine !== void 0) this.stream.write(`${finalLine}\n`);
|
|
327
|
+
}
|
|
328
|
+
/** Masque le curseur au premier indicateur qui anime, et le compte. */
|
|
329
|
+
claimCursor() {
|
|
330
|
+
animatingCount++;
|
|
331
|
+
hideCursor(this.stream);
|
|
332
|
+
}
|
|
333
|
+
/** Efface la ligne courante puis écrit la nouvelle. Muet hors terminal. */
|
|
334
|
+
paint(text) {
|
|
335
|
+
if (!this.isInteractive) return;
|
|
336
|
+
this.stream.write("\x1B[?2026h\x1B[2K\x1B[1G" + fitToWidth(text, this.stream.columns) + SYNC_END);
|
|
337
|
+
}
|
|
338
|
+
/** Ramène le curseur en début de ligne et efface ce qui s'y trouvait. */
|
|
339
|
+
erase() {
|
|
340
|
+
if (!this.active || !this.isInteractive) return;
|
|
341
|
+
readline.clearLine(this.stream, 0);
|
|
342
|
+
readline.cursorTo(this.stream, 0);
|
|
343
|
+
}
|
|
344
|
+
};
|
|
345
|
+
/**
|
|
346
|
+
* Attente **indéterminée** : on montre que ça vit, sans promettre de fin.
|
|
347
|
+
*
|
|
348
|
+
* Le minuteur est `unref()` — il n'empêche jamais le processus de se terminer —
|
|
349
|
+
* et {@link LiveLine.stop} l'arrête explicitement. Un `Spinner` arrêté est
|
|
350
|
+
* réutilisable : un nouveau {@link start} repart proprement.
|
|
351
|
+
*
|
|
352
|
+
* @example
|
|
353
|
+
* ```ts
|
|
354
|
+
* const spinner = new Spinner();
|
|
355
|
+
* spinner.start("Compilation");
|
|
356
|
+
* await build();
|
|
357
|
+
* spinner.stop(`✓ Compilation (${formatDuration(elapsed)})`);
|
|
358
|
+
* ```
|
|
359
|
+
*/
|
|
360
|
+
var Spinner = class extends LiveLine {
|
|
361
|
+
#intervalMs;
|
|
362
|
+
#frames;
|
|
363
|
+
#render;
|
|
364
|
+
/** Minuteur d'animation — `null` tant que rien ne tourne. */
|
|
365
|
+
#timer = null;
|
|
366
|
+
#frame = 0;
|
|
367
|
+
#label = "";
|
|
368
|
+
constructor(options = {}) {
|
|
369
|
+
super(options);
|
|
370
|
+
this.#intervalMs = options.intervalMs ?? DEFAULT_INTERVAL_MS;
|
|
371
|
+
this.#frames = options.frames ?? (supportsUnicode(options.env) ? BRAILLE_FRAMES : LINE_FRAMES);
|
|
372
|
+
this.#render = options.render ?? ((frame, label) => ` ${frame} ${label}…`);
|
|
373
|
+
}
|
|
374
|
+
/** Vrai si l'animation tourne RÉELLEMENT (donc sur un terminal). */
|
|
375
|
+
get animating() {
|
|
376
|
+
return this.#timer !== null;
|
|
377
|
+
}
|
|
378
|
+
/**
|
|
379
|
+
* Démarre l'attente sous un libellé.
|
|
380
|
+
*
|
|
381
|
+
* Un `start()` sur un tourniquet déjà lancé change simplement le libellé : il
|
|
382
|
+
* ne crée jamais un second minuteur.
|
|
383
|
+
*
|
|
384
|
+
* @param label - ce qu'on est en train d'attendre
|
|
385
|
+
*/
|
|
386
|
+
start(label) {
|
|
387
|
+
this.#label = label;
|
|
388
|
+
if (this.active) {
|
|
389
|
+
this.#draw();
|
|
390
|
+
return;
|
|
391
|
+
}
|
|
392
|
+
this.active = true;
|
|
393
|
+
if (!this.isInteractive) return;
|
|
394
|
+
this.claimCursor();
|
|
395
|
+
this.#frame = 0;
|
|
396
|
+
this.#draw();
|
|
397
|
+
this.#timer = setInterval(() => {
|
|
398
|
+
this.#frame = (this.#frame + 1) % this.#frames.length;
|
|
399
|
+
this.#draw();
|
|
400
|
+
}, this.#intervalMs);
|
|
401
|
+
this.#timer.unref?.();
|
|
402
|
+
}
|
|
403
|
+
/**
|
|
404
|
+
* Change le libellé sans interrompre l'animation.
|
|
405
|
+
*
|
|
406
|
+
* @param label - le nouveau libellé
|
|
407
|
+
*/
|
|
408
|
+
setLabel(label) {
|
|
409
|
+
this.#label = label;
|
|
410
|
+
if (this.#timer !== null) this.#draw();
|
|
411
|
+
}
|
|
412
|
+
/** Redessine tout de suite, sans attendre la prochaine image. */
|
|
413
|
+
refresh() {
|
|
414
|
+
if (this.#timer !== null) this.#draw();
|
|
415
|
+
}
|
|
416
|
+
halt() {
|
|
417
|
+
if (this.#timer === null) return;
|
|
418
|
+
clearInterval(this.#timer);
|
|
419
|
+
this.#timer = null;
|
|
420
|
+
}
|
|
421
|
+
#draw() {
|
|
422
|
+
this.paint(this.#render(this.#frames[this.#frame], this.#label));
|
|
423
|
+
}
|
|
424
|
+
};
|
|
425
|
+
/**
|
|
426
|
+
* Progression **déterminée** : on connaît le total, on montre où l'on en est.
|
|
427
|
+
*
|
|
428
|
+
* Redessine à chaque {@link update}. Avec `spin: true`, un minuteur anime en
|
|
429
|
+
* plus un tourniquet en tête — utile quand l'avancement peut rester immobile un
|
|
430
|
+
* long moment, ce qu'une barre seule ne distingue pas d'un blocage.
|
|
431
|
+
*
|
|
432
|
+
* @example
|
|
433
|
+
* ```ts
|
|
434
|
+
* const bar = new ProgressBar({ spin: true });
|
|
435
|
+
* bar.start(files.length, "Compilation");
|
|
436
|
+
* for (const file of files) {
|
|
437
|
+
* await compile(file);
|
|
438
|
+
* bar.increment();
|
|
439
|
+
* }
|
|
440
|
+
* bar.stop(`✓ ${files.length} fichiers`);
|
|
441
|
+
* ```
|
|
442
|
+
*/
|
|
443
|
+
var ProgressBar = class extends LiveLine {
|
|
444
|
+
#width;
|
|
445
|
+
#style;
|
|
446
|
+
#spin;
|
|
447
|
+
#intervalMs;
|
|
448
|
+
#frames;
|
|
449
|
+
#render;
|
|
450
|
+
#timer = null;
|
|
451
|
+
#frame = 0;
|
|
452
|
+
#done = 0;
|
|
453
|
+
#total = 0;
|
|
454
|
+
#label = "";
|
|
455
|
+
#startedAt = 0;
|
|
456
|
+
constructor(options = {}) {
|
|
457
|
+
super(options);
|
|
458
|
+
this.#width = options.width ?? DEFAULT_BAR_WIDTH;
|
|
459
|
+
this.#style = options.style ?? (supportsUnicode(options.env) ? BAR_STYLES.blocks : BAR_STYLES.ascii);
|
|
460
|
+
this.#spin = options.spin ?? false;
|
|
461
|
+
this.#intervalMs = options.intervalMs ?? DEFAULT_INTERVAL_MS;
|
|
462
|
+
this.#frames = options.frames ?? (supportsUnicode(options.env) ? BRAILLE_FRAMES : LINE_FRAMES);
|
|
463
|
+
this.#render = options.render ?? (({ bar, done, total, label, frame }) => ` ${frame ? `${frame} ` : ""}${bar} ${done}/${total}${label ? ` ${label}` : ""}`);
|
|
464
|
+
}
|
|
465
|
+
/** Unités faites. */
|
|
466
|
+
get done() {
|
|
467
|
+
return this.#done;
|
|
468
|
+
}
|
|
469
|
+
/** Unités attendues. */
|
|
470
|
+
get total() {
|
|
471
|
+
return this.#total;
|
|
472
|
+
}
|
|
473
|
+
/** Vrai si le tourniquet tourne réellement. */
|
|
474
|
+
get animating() {
|
|
475
|
+
return this.#timer !== null;
|
|
476
|
+
}
|
|
477
|
+
/**
|
|
478
|
+
* Démarre la progression.
|
|
479
|
+
*
|
|
480
|
+
* @param total - unités attendues
|
|
481
|
+
* @param label - libellé facultatif
|
|
482
|
+
*/
|
|
483
|
+
start(total, label = "") {
|
|
484
|
+
this.#total = safeCount(total);
|
|
485
|
+
this.#label = label;
|
|
486
|
+
this.#done = 0;
|
|
487
|
+
this.#startedAt = Date.now();
|
|
488
|
+
if (this.active) {
|
|
489
|
+
this.#draw();
|
|
490
|
+
return;
|
|
491
|
+
}
|
|
492
|
+
this.active = true;
|
|
493
|
+
if (!this.isInteractive) return;
|
|
494
|
+
this.claimCursor();
|
|
495
|
+
this.#draw();
|
|
496
|
+
if (!this.#spin) return;
|
|
497
|
+
this.#timer = setInterval(() => {
|
|
498
|
+
this.#frame = (this.#frame + 1) % this.#frames.length;
|
|
499
|
+
this.#draw();
|
|
500
|
+
}, this.#intervalMs);
|
|
501
|
+
this.#timer.unref?.();
|
|
502
|
+
}
|
|
503
|
+
/**
|
|
504
|
+
* Pose l'avancement à une valeur absolue.
|
|
505
|
+
*
|
|
506
|
+
* @param done - unités faites
|
|
507
|
+
* @param label - nouveau libellé, facultatif
|
|
508
|
+
*/
|
|
509
|
+
update(done, label) {
|
|
510
|
+
this.#done = safeCount(done);
|
|
511
|
+
if (label !== void 0) this.#label = label;
|
|
512
|
+
this.#draw();
|
|
513
|
+
}
|
|
514
|
+
/**
|
|
515
|
+
* Avance de `step` unités.
|
|
516
|
+
*
|
|
517
|
+
* @param step - pas d'avancement. Défaut : 1.
|
|
518
|
+
*/
|
|
519
|
+
increment(step = 1) {
|
|
520
|
+
this.update(this.#done + step);
|
|
521
|
+
}
|
|
522
|
+
/** Change le total en cours de route (une découverte, un lot qui grossit). */
|
|
523
|
+
setTotal(total) {
|
|
524
|
+
this.#total = safeCount(total);
|
|
525
|
+
this.#draw();
|
|
526
|
+
}
|
|
527
|
+
/** Change le libellé sans toucher à l'avancement. */
|
|
528
|
+
setLabel(label) {
|
|
529
|
+
this.#label = label;
|
|
530
|
+
this.#draw();
|
|
531
|
+
}
|
|
532
|
+
halt() {
|
|
533
|
+
if (this.#timer === null) return;
|
|
534
|
+
clearInterval(this.#timer);
|
|
535
|
+
this.#timer = null;
|
|
536
|
+
}
|
|
537
|
+
#draw() {
|
|
538
|
+
if (!this.active) return;
|
|
539
|
+
const ratio = ratioOf(this.#done, this.#total);
|
|
540
|
+
this.paint(this.#render({
|
|
541
|
+
done: this.#done,
|
|
542
|
+
total: this.#total,
|
|
543
|
+
ratio,
|
|
544
|
+
bar: renderBar(this.#done, this.#total, {
|
|
545
|
+
width: this.#width,
|
|
546
|
+
style: this.#style
|
|
547
|
+
}),
|
|
548
|
+
label: this.#label,
|
|
549
|
+
frame: this.#spin ? this.#frames[this.#frame] : "",
|
|
550
|
+
elapsedMs: this.#startedAt === 0 ? 0 : Date.now() - this.#startedAt
|
|
551
|
+
}));
|
|
552
|
+
}
|
|
553
|
+
};
|
|
554
|
+
//#endregion
|
|
555
|
+
export { ARC_FRAMES, BAR_STYLES, BLOCK_FRAMES, BRAILLE_FRAMES, DOT_FRAMES, LINE_FRAMES, LiveLine, ProgressBar, Spinner, fitToWidth, formatDuration, renderBar, shouldAnimate, supportsUnicode };
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { existsSync } from "node:fs";
|
|
2
|
+
import path from "node:path";
|
|
3
|
+
//#region src/cli/projectRoot.ts
|
|
4
|
+
/**
|
|
5
|
+
* Racine du PROJET Nodefony courant (app générée / app utilisateur) : remonte
|
|
6
|
+
* depuis `from` jusqu'au premier dossier portant `nodefony.config.ts` +
|
|
7
|
+
* `package.json`.
|
|
8
|
+
*
|
|
9
|
+
* Deux consommateurs, une seule définition de « où commence l'app » :
|
|
10
|
+
* - les scaffolds IN-PROJECT (`create controller|module|entity`) — par
|
|
11
|
+
* opposition à `create app` qui crée un dossier neuf ;
|
|
12
|
+
* - le **lanceur** (`bin/nodefony`), qui délègue au CLI de l'app quand il en
|
|
13
|
+
* trouve un (cf `../bin/resolveLocalCli`).
|
|
14
|
+
*
|
|
15
|
+
* Vit ici (module sans dépendance, `node:fs`/`node:path` seuls) et pas dans
|
|
16
|
+
* `scaffold/engine.ts` : le bundle du binaire importerait alors `eta` et tout le
|
|
17
|
+
* moteur de templates, payés à CHAQUE invocation du CLI.
|
|
18
|
+
*
|
|
19
|
+
* @param from - dossier de départ (typiquement `process.cwd()`).
|
|
20
|
+
* @returns racine absolue, ou `null` hors projet.
|
|
21
|
+
*/
|
|
22
|
+
function findProjectRoot(from) {
|
|
23
|
+
let dir = path.resolve(from);
|
|
24
|
+
for (;;) {
|
|
25
|
+
if (existsSync(path.join(dir, "nodefony.config.ts")) && existsSync(path.join(dir, "package.json"))) return dir;
|
|
26
|
+
const parent = path.dirname(dir);
|
|
27
|
+
if (parent === dir) return null;
|
|
28
|
+
dir = parent;
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
//#endregion
|
|
32
|
+
export { findProjectRoot };
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import readline from "node:readline/promises";
|
|
2
|
+
import { Writable } from "node:stream";
|
|
3
|
+
//#region src/cli/promptPassword.ts
|
|
4
|
+
/**
|
|
5
|
+
* Demande un secret sans jamais l'ÉCHOTER — mot de passe, phrase de passe.
|
|
6
|
+
*
|
|
7
|
+
* La frappe passe par un `readline` dont la sortie est un flux MUET : la
|
|
8
|
+
* question s'écrit directement sur la sortie standard, les caractères tapés ne
|
|
9
|
+
* s'affichent nulle part et ne peuvent donc pas se retrouver dans une capture
|
|
10
|
+
* d'écran, un partage de terminal ou un journal de session.
|
|
11
|
+
*
|
|
12
|
+
* Vit au cœur, et pas dans la commande qui en avait besoin la première : deux
|
|
13
|
+
* copies d'un prompt de secret finissent par différer sur ce qui compte — l'une
|
|
14
|
+
* oublie de couper l'écho, l'autre de refermer l'interface, et le terminal reste
|
|
15
|
+
* muet après coup.
|
|
16
|
+
*
|
|
17
|
+
* ⚠️ **Sans terminal, cette fonction n'a pas de sens** : un pipeline resterait
|
|
18
|
+
* suspendu sur une question que personne ne lit. L'appelant doit constater le
|
|
19
|
+
* TTY avant (cf `Command.askArgument`) et proposer une option de ligne de
|
|
20
|
+
* commande pour les scripts.
|
|
21
|
+
*
|
|
22
|
+
* @param question - invite écrite telle quelle (ajouter les deux points et l'espace)
|
|
23
|
+
* @returns ce qui a été tapé, sans le retour à la ligne
|
|
24
|
+
*/
|
|
25
|
+
async function askPasswordMasked(question) {
|
|
26
|
+
const muted = new Writable({ write(_chunk, _enc, cb) {
|
|
27
|
+
cb();
|
|
28
|
+
} });
|
|
29
|
+
const rl = readline.createInterface({
|
|
30
|
+
input: process.stdin,
|
|
31
|
+
output: muted,
|
|
32
|
+
terminal: true
|
|
33
|
+
});
|
|
34
|
+
process.stdout.write(question);
|
|
35
|
+
try {
|
|
36
|
+
const answer = await rl.question("");
|
|
37
|
+
process.stdout.write("\n");
|
|
38
|
+
return answer;
|
|
39
|
+
} finally {
|
|
40
|
+
rl.close();
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
//#endregion
|
|
44
|
+
export { askPasswordMasked };
|