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,118 @@
|
|
|
1
|
+
//#region src/config/reservedEnv.ts
|
|
2
|
+
/**
|
|
3
|
+
* Le catalogue des variables réservées, indexé par nom.
|
|
4
|
+
*
|
|
5
|
+
* Ajouter une entrée ici est OBLIGATOIRE dès qu'un code du framework écrit une
|
|
6
|
+
* `NF_*` dans l'environnement d'un process : sans elle, la variable ressort en
|
|
7
|
+
* « inconnue » chez tout utilisateur qui lance la commande au mauvais moment.
|
|
8
|
+
*/
|
|
9
|
+
const RESERVED_ENV = Object.freeze({
|
|
10
|
+
NF_CLI_DELEGATED: {
|
|
11
|
+
name: "NF_CLI_DELEGATED",
|
|
12
|
+
role: "posée par le lanceur du CLI quand il passe la main au `nodefony` du projet (garde anti-boucle)"
|
|
13
|
+
},
|
|
14
|
+
NF_CLI_DEBUG: {
|
|
15
|
+
name: "NF_CLI_DEBUG",
|
|
16
|
+
role: "trace la décision du lanceur du CLI sur la sortie d'erreur"
|
|
17
|
+
},
|
|
18
|
+
NF_MODE_START: {
|
|
19
|
+
name: "NF_MODE_START",
|
|
20
|
+
role: "posée par la commande de démarrage — le mode par lequel l'application a été lancée"
|
|
21
|
+
},
|
|
22
|
+
NF_CLUSTER: {
|
|
23
|
+
name: "NF_CLUSTER",
|
|
24
|
+
role: "posée par le maître de grappe dans chaque worker"
|
|
25
|
+
},
|
|
26
|
+
NF_MCP_TOKEN: {
|
|
27
|
+
name: "NF_MCP_TOKEN",
|
|
28
|
+
role: "jeton d'accès au serveur MCP de l'application, lu par le client de l'agent (`nodefony ai:mcp --auth`)"
|
|
29
|
+
},
|
|
30
|
+
NF_ENV: {
|
|
31
|
+
name: "NF_ENV",
|
|
32
|
+
role: "environnement de déploiement quand il diffère du mode runtime (`APP_ENV` gagne)"
|
|
33
|
+
},
|
|
34
|
+
NF_START: {
|
|
35
|
+
name: "NF_START",
|
|
36
|
+
role: "point d'entrée que le Kernel démarre, quand il ne doit pas être celui du projet"
|
|
37
|
+
},
|
|
38
|
+
NF_WORKERS: {
|
|
39
|
+
name: "NF_WORKERS",
|
|
40
|
+
role: "nombre de workers de la grappe (`nodefony cluster -w N`, en variable)"
|
|
41
|
+
},
|
|
42
|
+
NF_CLUSTER_PROBE: {
|
|
43
|
+
name: "NF_CLUSTER_PROBE",
|
|
44
|
+
role: "coupe la sonde du maître de grappe quand elle vaut `0`"
|
|
45
|
+
},
|
|
46
|
+
NF_POD_NAME: {
|
|
47
|
+
name: "NF_POD_NAME",
|
|
48
|
+
role: "nom du pod, dont se dérive l'identité d'origine du backplane temps réel"
|
|
49
|
+
},
|
|
50
|
+
NF_INSTANCE_ID: {
|
|
51
|
+
name: "NF_INSTANCE_ID",
|
|
52
|
+
role: "identifiant d'instance rendu par le plan d'administration (défaut : le pid)"
|
|
53
|
+
},
|
|
54
|
+
NF_DEV_CHILD: {
|
|
55
|
+
name: "NF_DEV_CHILD",
|
|
56
|
+
role: "posée par le superviseur de développement dans l'application qu'il relance"
|
|
57
|
+
},
|
|
58
|
+
NF_DEV_PORTS: {
|
|
59
|
+
name: "NF_DEV_PORTS",
|
|
60
|
+
role: "ports que le superviseur de développement doit libérer, imposés par l'opérateur"
|
|
61
|
+
},
|
|
62
|
+
NF_BOOT_TIMEOUT_MS: {
|
|
63
|
+
name: "NF_BOOT_TIMEOUT_MS",
|
|
64
|
+
role: "délai au-delà duquel un démarrage est déclaré perdu"
|
|
65
|
+
},
|
|
66
|
+
NF_BOOT_WARN_MS: {
|
|
67
|
+
name: "NF_BOOT_WARN_MS",
|
|
68
|
+
role: "délai au-delà duquel un démarrage lent est signalé"
|
|
69
|
+
},
|
|
70
|
+
NF_KERNEL_TRACE_FILE: {
|
|
71
|
+
name: "NF_KERNEL_TRACE_FILE",
|
|
72
|
+
role: "fichier où le Kernel écrit sa trace de démarrage (diagnostic)"
|
|
73
|
+
},
|
|
74
|
+
NF_NO_TTY: {
|
|
75
|
+
name: "NF_NO_TTY",
|
|
76
|
+
role: "force le rendu non interactif, quel que soit le terminal"
|
|
77
|
+
},
|
|
78
|
+
NF_PERF_PROBE: {
|
|
79
|
+
name: "NF_PERF_PROBE",
|
|
80
|
+
role: "arme la sonde de performance du pipeline HTTP"
|
|
81
|
+
},
|
|
82
|
+
NF_ORM_FLOW: {
|
|
83
|
+
name: "NF_ORM_FLOW",
|
|
84
|
+
role: "arme la sonde de flux de l'ORM"
|
|
85
|
+
},
|
|
86
|
+
NF_ORM_HEARTBEAT_MS: {
|
|
87
|
+
name: "NF_ORM_HEARTBEAT_MS",
|
|
88
|
+
role: "période du battement de cœur qui surveille les connecteurs de l'ORM"
|
|
89
|
+
},
|
|
90
|
+
NF_REALTIME_DRIVER: {
|
|
91
|
+
name: "NF_REALTIME_DRIVER",
|
|
92
|
+
role: "pilote du backplane temps réel (mémoire, Redis…)"
|
|
93
|
+
},
|
|
94
|
+
NF_REALTIME_BACKPLANE_SECRET: {
|
|
95
|
+
name: "NF_REALTIME_BACKPLANE_SECRET",
|
|
96
|
+
role: "secret qui scelle les enveloppes du backplane temps réel"
|
|
97
|
+
},
|
|
98
|
+
NF_REALTIME_BACKPLANE_NAMESPACE: {
|
|
99
|
+
name: "NF_REALTIME_BACKPLANE_NAMESPACE",
|
|
100
|
+
role: "espace de noms du backplane — ce qui cloisonne deux applications sur un même bus"
|
|
101
|
+
}
|
|
102
|
+
});
|
|
103
|
+
/** Cette variable est-elle posée par le framework lui-même ? */
|
|
104
|
+
function isReservedEnv(name) {
|
|
105
|
+
return Object.hasOwn(RESERVED_ENV, name);
|
|
106
|
+
}
|
|
107
|
+
/**
|
|
108
|
+
* Le rôle d'une variable réservée, ou `null` si elle ne l'est pas.
|
|
109
|
+
*
|
|
110
|
+
* @param name - le nom lu dans l'environnement.
|
|
111
|
+
* @returns la phrase à rendre à l'utilisateur, ou `null`.
|
|
112
|
+
*/
|
|
113
|
+
function reservedEnvRole(name) {
|
|
114
|
+
const entry = RESERVED_ENV[name];
|
|
115
|
+
return entry ? entry.role : null;
|
|
116
|
+
}
|
|
117
|
+
//#endregion
|
|
118
|
+
export { RESERVED_ENV, isReservedEnv, reservedEnvRole };
|
|
@@ -0,0 +1,134 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
//#region src/config/schema.ts
|
|
3
|
+
/**
|
|
4
|
+
* Schéma Zod de la config d'application — validé au resolve de `defineConfig` (D1).
|
|
5
|
+
*
|
|
6
|
+
* Vit dans le CORE (zod = peerDep core, back-only) : `import { defineConfig } from
|
|
7
|
+
* "nodefony"` valide tout seul, sans que chaque app porte son propre schéma. But :
|
|
8
|
+
* planter PROPREMENT au boot (message clair) sur une config malformée, plutôt qu'un
|
|
9
|
+
* `Cannot read properties of undefined` plus tard en runtime.
|
|
10
|
+
*
|
|
11
|
+
* Le schéma DÉCRIT (il ne dérive pas les défauts — ceux-ci sont dans `./defaults`).
|
|
12
|
+
* Tous les champs sont `.optional()` : il rejette les TYPES/valeurs invalides, pas
|
|
13
|
+
* l'absence (le merge a déjà rempli les défauts ; le Kernel a des fallbacks
|
|
14
|
+
* résiduels). Les clés inconnues — `module-<x>` (overrides validés par chaque
|
|
15
|
+
* module), `App`, `cluster`… — sont ignorées (objet zod non-strict).
|
|
16
|
+
*/
|
|
17
|
+
const serverSchema = z.object({ port: z.number().int().positive().optional().describe("Port d'écoute du serveur HTTP en clair. Défaut : 5151.") });
|
|
18
|
+
const logSchema = z.object({
|
|
19
|
+
active: z.boolean().optional().describe("Active le logger Syslog. Défaut : true."),
|
|
20
|
+
debug: z.union([z.string(), z.array(z.string())]).optional().describe("Filtre de debug : `\"*\"` (tout), une liste de modules/scopes, ou `[]` (rien). Défaut prod : `[]` ; dev : `\"*\"`."),
|
|
21
|
+
requestFormat: z.enum([
|
|
22
|
+
"auto",
|
|
23
|
+
"default",
|
|
24
|
+
"pretty",
|
|
25
|
+
"json"
|
|
26
|
+
]).optional().describe("Format de log des requêtes HTTP. `auto` = pretty en dev / json en prod. Défaut : `auto`."),
|
|
27
|
+
buffered: z.union([z.boolean(), z.literal("auto")]).optional().describe("Bufferise les écritures de log (perf). `auto` décide selon l'env. Défaut : `auto`."),
|
|
28
|
+
driver: z.enum([
|
|
29
|
+
"stdout",
|
|
30
|
+
"file",
|
|
31
|
+
"null"
|
|
32
|
+
]).optional().describe("Transport de log principal. `stdout` (cloud-native, collecteur externe), `file`, ou `null` (jeté). Override env : `NF_LOG_DRIVER`. Défaut : `stdout`."),
|
|
33
|
+
dir: z.string().optional().describe("Répertoire des logs (`.log` + JSONL queryable + viewer Studio), sous cwd. Défaut : `logs`."),
|
|
34
|
+
file: z.object({
|
|
35
|
+
path: z.string().optional().describe("Chemin explicite du fichier de log. Défaut : `<dir>/nodefony-<pid>.log`."),
|
|
36
|
+
sync: z.boolean().optional().describe("Écriture fichier synchrone (sûre mais lente). Défaut : false.")
|
|
37
|
+
}).optional().describe("Options du driver `file`."),
|
|
38
|
+
maxStack: z.number().int().positive().optional().describe("Profondeur du ring de relecture du backplane (driver `memory`). Non défini : 2000 en dev, repli prod-safe sinon."),
|
|
39
|
+
queryFile: z.object({
|
|
40
|
+
path: z.string().optional().describe("Chemin du JSONL relu par le driver de query `file`."),
|
|
41
|
+
maxScanBytes: z.number().int().positive().optional().describe("Plafond d'octets scannés en fin de fichier par query.")
|
|
42
|
+
}).optional().describe("Options du driver de relecture `file` (query plane JSONL)."),
|
|
43
|
+
queryDriver: z.string().optional().describe("Driver de relecture du backplane de log (query plane). Défaut `auto` : s'adapte au mode de lancement (mono → `memory`, worker de cluster → `cluster-file`, vue unifiée). Valeur explicite (memory/file/loki/…) = surcharge."),
|
|
44
|
+
loki: z.object({ url: z.string().describe("URL d'ingestion Grafana Loki.") }).optional().describe("Cible Grafana Loki (si driver/superposition Loki actif)."),
|
|
45
|
+
opensearch: z.object({ url: z.string().describe("URL du cluster OpenSearch.") }).optional().describe("Cible OpenSearch (si superposition active).")
|
|
46
|
+
}).describe("Observabilité : logger Syslog et ses transports.");
|
|
47
|
+
const serversSchema = z.object({
|
|
48
|
+
statics: z.boolean().optional().describe("Monte le service de fichiers statiques. Défaut : true."),
|
|
49
|
+
http: z.union([serverSchema, z.literal(false)]).optional().describe("Serveur HTTP/1.1 en clair (port 5151 par défaut). `false` = désactivé (déploiement TLS-only) — le WS en clair tombe avec."),
|
|
50
|
+
https: z.union([z.object({
|
|
51
|
+
port: z.number().int().positive().optional().describe("Port d'écoute HTTPS. Défaut : 5152."),
|
|
52
|
+
protocol: z.enum(["1.1", "2.0"]).optional().describe("Version HTTP servie sur le port TLS. `2.0` = HTTP/2 (h2). Défaut : `2.0`.")
|
|
53
|
+
}), z.literal(false)]).optional().describe("Serveur HTTPS (TLS), HTTP/2 par défaut (port 5152). `false` = désactivé — cas NOMINAL cloud-native (TLS terminé à l'ingress/LB, le pod sert en clair) ; le WSS tombe avec."),
|
|
54
|
+
ws: z.object({}).optional().describe("Serveur WebSocket en clair (adossé au serveur HTTP)."),
|
|
55
|
+
wss: z.object({}).optional().describe("Serveur WebSocket sécurisé (adossé au serveur HTTPS)."),
|
|
56
|
+
portPolicy: z.enum(["auto", "strict"]).optional().describe("Que faire si le port désiré est DÉJÀ OCCUPÉ. `auto` = prendre le prochain port libre (l'app boote quand même, le décalage est ANNONCÉ) — confort de dev : plusieurs apps côte à côte. `strict` = échec fatal (EADDRINUSE). Défaut : `auto` en développement, `strict` en production ET en test. En production le port est un CONTRAT (service k8s, ingress, sonde de santé) : écouter ailleurs en silence donnerait un pod « sain » que personne n'atteint. En test, un port occupé signale un serveur resté debout — le banc doit s'arrêter, pas viser un autre port."),
|
|
57
|
+
portRetryAttempts: z.number().int().min(0).optional().describe("En `portPolicy: auto`, nombre de ports essayés APRÈS le port désiré avant d'abandonner. Défaut : 20.")
|
|
58
|
+
}).describe("Serveurs réseau activés au boot (HTTP/HTTPS/WS/WSS + statics).");
|
|
59
|
+
/**
|
|
60
|
+
* Schéma de la config app résolue. Exposé pour l'introspection (Studio :
|
|
61
|
+
* `z.toJSONSchema(appConfigSchema)` → panneau de config + formulaire éditable).
|
|
62
|
+
*
|
|
63
|
+
* Chaque champ porte un `.describe()` FR (rôle + défaut) → consommé par le
|
|
64
|
+
* panneau de config Studio (`/nodefony/config`, carte de l'app).
|
|
65
|
+
*/
|
|
66
|
+
const appConfigSchema = z.object({
|
|
67
|
+
modules: z.array(z.unknown()).optional().describe("Manifeste ORDONNÉ des modules chargés (`use(name, config, opts)` ou nom). L'ordre = ordre de boot (dépendances inter-modules). Défaut : `[]` (l'app déclare)."),
|
|
68
|
+
locale: z.string().optional().describe("Locale par défaut de l'application (i18n). Défaut : `en_en`."),
|
|
69
|
+
templating: z.string().optional().describe("Moteur de templates par défaut. Défaut : `eta`."),
|
|
70
|
+
orm: z.string().optional().describe("ORM par défaut (clé du driver multi-ORM). Sans défaut framework — piloté par l'app / le chantier ORM."),
|
|
71
|
+
packageManager: z.enum([
|
|
72
|
+
"npm",
|
|
73
|
+
"yarn",
|
|
74
|
+
"pnpm",
|
|
75
|
+
"bun"
|
|
76
|
+
]).optional().describe("Gestionnaire de paquets utilisé par les commandes (install/outdated). Défaut : `npm`."),
|
|
77
|
+
domain: z.string().optional().describe("Adresse d'écoute du serveur (`Kernel.setDomain`). Dev : `127.0.0.1` ; prod : `0.0.0.0`. Défaut : `localhost`."),
|
|
78
|
+
domainAlias: z.array(z.string()).optional().describe("Hôtes alternatifs acceptés par la validation Host (opt-in, croise `http.trustedHosts`). Défaut : aucun."),
|
|
79
|
+
domainCheck: z.boolean().optional().describe("Active la validation de l'en-tête Host (anti rebinding/spoofing). Opt-in app/sécu. Défaut : false."),
|
|
80
|
+
servers: serversSchema.optional(),
|
|
81
|
+
cluster: z.unknown().optional().describe("Topologie cluster (workers, backplane). Forme détaillée résolue par `resolveTopology` ; lue standalone par le master AVANT le boot."),
|
|
82
|
+
timing: z.object({
|
|
83
|
+
enabled: z.boolean().nullable().optional().describe("Sonde de phases du pipeline (parse/resolve/firewall/initialize/action/render/send) : la matière du waterfall (Studio, debug bar, profiler). `null` (défaut) = PAS D'AVIS → active hors production, éteinte en production. Un booléen EXPLICITE gagne : `true` allume la sonde en production (diagnostic à chaud — coût mesuré, cf docs) ; `false` l'éteint partout. Surchargeable sans redéployer : `NF__APP__TIMING__ENABLED=true`."),
|
|
84
|
+
verbose: z.boolean().optional().describe("Trace DEBUG détaillant chaque phase au teardown (1 log par requête). Implique `enabled`. Défaut : false — à n'allumer que le temps d'un diagnostic (le volume nominal n'est pas un signal).")
|
|
85
|
+
}).optional().describe("Instrumentation du pipeline (timing des phases). Éteinte en production par défaut : allumée, elle alloue le tableau des phases + une Map par requête et appelle `performance.now()` à chaque borne."),
|
|
86
|
+
shutdownDeadline: z.number().int().nonnegative().optional().describe("Deadline GLOBALE du shutdown (ms) : au-delà, sortie forcée code 1 même si un listener onTerminate pend. Filet cloud-native — garder < grace period de l'orchestrateur (30 s k8s, 10 s Docker). 0 = désactivé. Défaut : 15000."),
|
|
87
|
+
log: logSchema.optional()
|
|
88
|
+
});
|
|
89
|
+
/**
|
|
90
|
+
* JSON Schema introspectable de la config d'application — destiné au panneau de
|
|
91
|
+
* config Studio (`/nodefony/config`, carte de l'app). Documenté via les
|
|
92
|
+
* `.describe()` du schéma (rôle + défaut de chaque champ).
|
|
93
|
+
*/
|
|
94
|
+
function appConfigJsonSchema() {
|
|
95
|
+
return z.toJSONSchema(appConfigSchema);
|
|
96
|
+
}
|
|
97
|
+
/**
|
|
98
|
+
* Aplati les issues Zod en libellés `chemin.complet: message`, en DESCENDANT
|
|
99
|
+
* dans les unions : une `invalid_union` (ex. `servers.https` = objet | `false`)
|
|
100
|
+
* masquerait le champ fautif (`servers.http: Invalid input`) — on reprend les
|
|
101
|
+
* issues de la branche la plus informative (celle qui pointe un champ interne)
|
|
102
|
+
* pour garder le diagnostic précis (`servers.http.port: …`).
|
|
103
|
+
*/
|
|
104
|
+
function flattenZodIssues(issues, base = []) {
|
|
105
|
+
const out = [];
|
|
106
|
+
for (const issue of issues) {
|
|
107
|
+
const path = [...base, ...issue.path];
|
|
108
|
+
const branches = issue.errors;
|
|
109
|
+
if (issue.code === "invalid_union" && branches?.length) {
|
|
110
|
+
const best = branches.find((b) => b.some((i) => i.path.length > 0)) ?? branches[0];
|
|
111
|
+
out.push(...flattenZodIssues(best, path));
|
|
112
|
+
continue;
|
|
113
|
+
}
|
|
114
|
+
out.push(`${path.join(".") || "(root)"}: ${issue.message}`);
|
|
115
|
+
}
|
|
116
|
+
return out;
|
|
117
|
+
}
|
|
118
|
+
/**
|
|
119
|
+
* Valide la config app résolue ; lève une erreur au message agrégé si invalide.
|
|
120
|
+
*
|
|
121
|
+
* Appelée par `defineConfig().resolve()` après le deep-merge avec les défauts.
|
|
122
|
+
*
|
|
123
|
+
* @param options - config app résolue à valider.
|
|
124
|
+
* @throws Error si la config ne respecte pas {@link appConfigSchema}.
|
|
125
|
+
*/
|
|
126
|
+
function validateAppConfig(options) {
|
|
127
|
+
const result = appConfigSchema.safeParse(options);
|
|
128
|
+
if (!result.success) {
|
|
129
|
+
const issues = flattenZodIssues(result.error.issues).join(" · ");
|
|
130
|
+
throw new Error(`[nodefony] Configuration d'application invalide : ${issues}`);
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
//#endregion
|
|
134
|
+
export { appConfigJsonSchema, appConfigSchema, validateAppConfig };
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
//#region src/config/use.ts
|
|
2
|
+
/**
|
|
3
|
+
* Construit une entrée de manifeste `modules` avec config colocalisée + typée.
|
|
4
|
+
*
|
|
5
|
+
* Le générique `N` capture le nom du module au call-site → `config` est
|
|
6
|
+
* contraint à {@link ConfigOf}<N> (autocomplétion des clés du module ciblé).
|
|
7
|
+
* Le type de RETOUR est volontairement élargi à {@link ModuleEntryInput} (la
|
|
8
|
+
* config stockée dans le tableau est hétérogène) : le typage fort vit à l'appel,
|
|
9
|
+
* pas dans le conteneur — exactement le pattern `defineNuxtConfig`/`app.use`.
|
|
10
|
+
*
|
|
11
|
+
* @param name - nom du module à charger (`KnownModule` autocomplété, string tierce acceptée).
|
|
12
|
+
* @param config - config du module, typée selon le registre (optionnelle).
|
|
13
|
+
* @param opts - politique + garde de chargement (`policy`/`when`).
|
|
14
|
+
* @returns une entrée `{ name, config?, policy?, when? }` pour l'array `modules`.
|
|
15
|
+
*/
|
|
16
|
+
function use(name, config, opts) {
|
|
17
|
+
const entry = { name };
|
|
18
|
+
if (config !== void 0) entry.config = config;
|
|
19
|
+
if (opts?.policy !== void 0) entry.policy = opts.policy;
|
|
20
|
+
if (opts?.when !== void 0) entry.when = opts.when;
|
|
21
|
+
return entry;
|
|
22
|
+
}
|
|
23
|
+
//#endregion
|
|
24
|
+
export { use };
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import FileClass from "../FileClass.js";
|
|
2
|
+
import FileResult from "./FileResult.js";
|
|
3
|
+
//#region src/finder/File.ts
|
|
4
|
+
var File = class File extends FileClass {
|
|
5
|
+
parent = null;
|
|
6
|
+
childrens = new FileResult();
|
|
7
|
+
constructor(path, parent = null, options) {
|
|
8
|
+
super(path, options);
|
|
9
|
+
this.parent = parent;
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* Construit un `File` SANS `lstatSync` bloquant — stat résolu en async.
|
|
13
|
+
* À utiliser dans le Finder pour ne pas bloquer l'event-loop par entrée.
|
|
14
|
+
*
|
|
15
|
+
* @param path - chemin du fichier/dossier.
|
|
16
|
+
* @param parent - `File` parent (arborescence Finder), `null` à la racine.
|
|
17
|
+
* @returns instance `File` hydratée (stats async).
|
|
18
|
+
*/
|
|
19
|
+
static async from(path, parent = null) {
|
|
20
|
+
const file = new File(path, parent, { defer: true });
|
|
21
|
+
await file.stat();
|
|
22
|
+
return file;
|
|
23
|
+
}
|
|
24
|
+
get length() {
|
|
25
|
+
return this.childrens.length;
|
|
26
|
+
}
|
|
27
|
+
toJson() {
|
|
28
|
+
const obj = {
|
|
29
|
+
path: this.path,
|
|
30
|
+
name: this.name,
|
|
31
|
+
ext: this.ext,
|
|
32
|
+
shortName: this.shortName,
|
|
33
|
+
type: this.type,
|
|
34
|
+
stats: this.stats,
|
|
35
|
+
dirName: this.dirName,
|
|
36
|
+
parse: this.parse
|
|
37
|
+
};
|
|
38
|
+
if (this.type === "File") {
|
|
39
|
+
obj.encoding = this.encoding;
|
|
40
|
+
obj.mimeType = this.mimeType;
|
|
41
|
+
obj.extention = this.extention;
|
|
42
|
+
}
|
|
43
|
+
obj.childrens = this.childrens.toJson();
|
|
44
|
+
obj.parent = this.parent?.toJson();
|
|
45
|
+
return obj;
|
|
46
|
+
}
|
|
47
|
+
};
|
|
48
|
+
//#endregion
|
|
49
|
+
export { File as default };
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
import Result from "./Result.js";
|
|
2
|
+
//#region src/finder/FileResult.ts
|
|
3
|
+
var FileResult = class FileResult extends Result {
|
|
4
|
+
constructor(res) {
|
|
5
|
+
super(res);
|
|
6
|
+
}
|
|
7
|
+
toString() {
|
|
8
|
+
let txt = "";
|
|
9
|
+
for (const info of this) txt += `${info.name}\n`;
|
|
10
|
+
return txt;
|
|
11
|
+
}
|
|
12
|
+
toJson(json = []) {
|
|
13
|
+
for (const info of this) switch (info.type) {
|
|
14
|
+
case "File":
|
|
15
|
+
json.push(info.toJson());
|
|
16
|
+
break;
|
|
17
|
+
case "symbolicLink":
|
|
18
|
+
case "Directory": {
|
|
19
|
+
const dir = info.toJson();
|
|
20
|
+
if (info.childrens) dir.childrens = info.childrens.toJson();
|
|
21
|
+
json.push(dir);
|
|
22
|
+
break;
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
return JSON.stringify(json);
|
|
26
|
+
}
|
|
27
|
+
uniq() {
|
|
28
|
+
const seen = /* @__PURE__ */ new Set();
|
|
29
|
+
const result = new FileResult();
|
|
30
|
+
for (const info of this) {
|
|
31
|
+
const key = info.path;
|
|
32
|
+
if (!seen.has(key)) {
|
|
33
|
+
seen.add(key);
|
|
34
|
+
result.push(info);
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
return result;
|
|
38
|
+
}
|
|
39
|
+
findByName(name, result = new FileResult()) {
|
|
40
|
+
for (const info of this) {
|
|
41
|
+
if (info.matchName(name)) result.push(info);
|
|
42
|
+
info.childrens.findByName(name, result);
|
|
43
|
+
}
|
|
44
|
+
return result.uniq();
|
|
45
|
+
}
|
|
46
|
+
getDirectories(result = new FileResult()) {
|
|
47
|
+
for (const info of this) switch (info.type) {
|
|
48
|
+
case "Directory":
|
|
49
|
+
result.push(info);
|
|
50
|
+
info.childrens.getDirectories(result);
|
|
51
|
+
break;
|
|
52
|
+
case "symbolicLink": info.childrens.getDirectories(result);
|
|
53
|
+
}
|
|
54
|
+
return result;
|
|
55
|
+
}
|
|
56
|
+
getFiles(result = new FileResult()) {
|
|
57
|
+
for (const info of this) switch (info.type) {
|
|
58
|
+
case "File":
|
|
59
|
+
result.push(info);
|
|
60
|
+
break;
|
|
61
|
+
case "symbolicLink":
|
|
62
|
+
case "Directory": info.childrens.getFiles(result);
|
|
63
|
+
}
|
|
64
|
+
return result;
|
|
65
|
+
}
|
|
66
|
+
sortByName(result = new FileResult()) {
|
|
67
|
+
const res = this.sort((a, b) => {
|
|
68
|
+
if (a.name.toString() > b.name.toString()) return 1;
|
|
69
|
+
if (a.name.toString() < b.name.toString()) return -1;
|
|
70
|
+
return 0;
|
|
71
|
+
});
|
|
72
|
+
if (res) return result.concat(res);
|
|
73
|
+
return this;
|
|
74
|
+
}
|
|
75
|
+
sortByType(result = new FileResult()) {
|
|
76
|
+
const res = this.sort((a, b) => {
|
|
77
|
+
if (a.type.toString() > b.type.toString()) return 1;
|
|
78
|
+
if (a.type.toString() < b.type.toString()) return -1;
|
|
79
|
+
return 0;
|
|
80
|
+
});
|
|
81
|
+
if (res) return result.concat(res);
|
|
82
|
+
return this;
|
|
83
|
+
}
|
|
84
|
+
};
|
|
85
|
+
//#endregion
|
|
86
|
+
export { FileResult as default };
|
|
@@ -0,0 +1,201 @@
|
|
|
1
|
+
import { extend, typeOf } from "../Tools.js";
|
|
2
|
+
import FileClass from "../FileClass.js";
|
|
3
|
+
import Event from "../Event.js";
|
|
4
|
+
import FileResult from "./FileResult.js";
|
|
5
|
+
import File from "./File.js";
|
|
6
|
+
import path from "node:path";
|
|
7
|
+
import fsp from "node:fs/promises";
|
|
8
|
+
//#region src/finder/Finder.ts
|
|
9
|
+
const defaultSettings = {
|
|
10
|
+
recurse: false,
|
|
11
|
+
depth: 10,
|
|
12
|
+
seeHidden: false,
|
|
13
|
+
match: null,
|
|
14
|
+
exclude: null,
|
|
15
|
+
excludeFile: null,
|
|
16
|
+
excludeDir: null,
|
|
17
|
+
followSymLink: false
|
|
18
|
+
};
|
|
19
|
+
const checkExclude = function(info, options) {
|
|
20
|
+
if (!(options.exclude || options.excludeDir || options.excludeFile)) return false;
|
|
21
|
+
if (options.exclude && info.matchName(options.exclude)) return true;
|
|
22
|
+
if (options.excludeDir && info.isDirectory() && info.matchName(options.excludeDir)) return true;
|
|
23
|
+
if (options.excludeFile && info.isFile() && info.matchName(options.excludeFile)) return true;
|
|
24
|
+
return false;
|
|
25
|
+
};
|
|
26
|
+
const checkMatch = function(info, options = {}, result) {
|
|
27
|
+
let match = false;
|
|
28
|
+
let rec = void 0;
|
|
29
|
+
if (!(options.matchFile || options.matchDir || options.match)) {
|
|
30
|
+
result.push(info);
|
|
31
|
+
if (info.type) {
|
|
32
|
+
this.totals[info.type]++;
|
|
33
|
+
this.fire(`on${info.type}`, info, this);
|
|
34
|
+
}
|
|
35
|
+
return true;
|
|
36
|
+
}
|
|
37
|
+
if (options.matchDir) {
|
|
38
|
+
if (info.isDirectory()) {
|
|
39
|
+
if (info.matchName(options.matchDir)) match = true;
|
|
40
|
+
else return false;
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
if (options.matchFile) {
|
|
44
|
+
if (info.isFile()) match = Boolean(info.matchName(options.matchFile));
|
|
45
|
+
}
|
|
46
|
+
if (options.match) {
|
|
47
|
+
if (info.matchName(options.match)) match = true;
|
|
48
|
+
else {
|
|
49
|
+
match = false;
|
|
50
|
+
rec = info.type;
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
if (match) {
|
|
54
|
+
result.push(info);
|
|
55
|
+
this.totals[info.type]++;
|
|
56
|
+
this.fire(`on${info.type}`, info, this);
|
|
57
|
+
return true;
|
|
58
|
+
}
|
|
59
|
+
switch (rec) {
|
|
60
|
+
case "Directory":
|
|
61
|
+
case "symbolicLink":
|
|
62
|
+
result.push(info);
|
|
63
|
+
this.totals[info.type]++;
|
|
64
|
+
this.fire(`on${info.type}`, info, this);
|
|
65
|
+
return true;
|
|
66
|
+
default: return false;
|
|
67
|
+
}
|
|
68
|
+
};
|
|
69
|
+
async function parser(file, result = new FileResult(), options, depth = null, parent = null) {
|
|
70
|
+
if (depth === 0) return result;
|
|
71
|
+
if (parent) parent.childrens = result;
|
|
72
|
+
try {
|
|
73
|
+
let res = null;
|
|
74
|
+
if (file.type !== "symbolicLink") res = await fsp.readdir(file.path, {
|
|
75
|
+
encoding: "utf8",
|
|
76
|
+
withFileTypes: false
|
|
77
|
+
});
|
|
78
|
+
else if (options.followSymLink) res = await fsp.readlink(file.path);
|
|
79
|
+
if (res && res.length) {
|
|
80
|
+
const paths = [];
|
|
81
|
+
for (let i = 0; i < res.length; i++) paths.push(path.resolve(file.path, res[i]));
|
|
82
|
+
const infos = await Promise.all(paths.map((p) => File.from(p, parent)));
|
|
83
|
+
for (const info of infos) {
|
|
84
|
+
const hidden = info.isHidden();
|
|
85
|
+
if (hidden && !options.seeHidden) continue;
|
|
86
|
+
if (checkExclude(info, options)) continue;
|
|
87
|
+
let symLink = null;
|
|
88
|
+
if (info.type === "symbolicLink" && options.followSymLink) try {
|
|
89
|
+
const read = path.resolve(info.dirName, await fsp.readlink(info.path));
|
|
90
|
+
symLink = await File.from(read, info);
|
|
91
|
+
} catch (e) {
|
|
92
|
+
this.fire("onError", e, this);
|
|
93
|
+
continue;
|
|
94
|
+
}
|
|
95
|
+
if (!checkMatch.call(this, info, options, result)) continue;
|
|
96
|
+
if (hidden) {
|
|
97
|
+
this.totals.hidden++;
|
|
98
|
+
this.fire("onHidden", info, this);
|
|
99
|
+
}
|
|
100
|
+
if (info.type === "File") continue;
|
|
101
|
+
if (!options.recurse) continue;
|
|
102
|
+
switch (info.type) {
|
|
103
|
+
case "Directory": {
|
|
104
|
+
const myDepth = depth === null ? null : depth - 1;
|
|
105
|
+
await parser.call(this, info, void 0, options, myDepth, info);
|
|
106
|
+
break;
|
|
107
|
+
}
|
|
108
|
+
case "symbolicLink": if (symLink?.isDirectory()) {
|
|
109
|
+
const myDepth = depth === null ? null : depth - 1;
|
|
110
|
+
await parser.call(this, symLink, void 0, options, myDepth, info);
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
return result;
|
|
116
|
+
} catch (e) {
|
|
117
|
+
this.fire("onError", e);
|
|
118
|
+
throw e;
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
var Finder = class extends Event {
|
|
122
|
+
settings;
|
|
123
|
+
totals;
|
|
124
|
+
constructor(settings = {}) {
|
|
125
|
+
super(settings);
|
|
126
|
+
this.settings = extend({}, defaultSettings, settings);
|
|
127
|
+
this.totals = {
|
|
128
|
+
Directory: 0,
|
|
129
|
+
File: 0,
|
|
130
|
+
BlockDevice: 0,
|
|
131
|
+
CharacterDevice: 0,
|
|
132
|
+
symbolicLink: 0,
|
|
133
|
+
Fifo: 0,
|
|
134
|
+
Socket: 0,
|
|
135
|
+
hidden: 0
|
|
136
|
+
};
|
|
137
|
+
}
|
|
138
|
+
clean() {
|
|
139
|
+
this.removeAllListeners();
|
|
140
|
+
for (const total of Object.keys(this.totals)) this.totals[total] = 0;
|
|
141
|
+
}
|
|
142
|
+
checkPath(Path) {
|
|
143
|
+
const type = typeOf(Path);
|
|
144
|
+
const result = new FileResult();
|
|
145
|
+
switch (true) {
|
|
146
|
+
case type === "string":
|
|
147
|
+
result.push(new File(Path));
|
|
148
|
+
return result;
|
|
149
|
+
case type === "array":
|
|
150
|
+
for (const p of Path) result.push(new File(p));
|
|
151
|
+
return result;
|
|
152
|
+
case Path instanceof FileClass:
|
|
153
|
+
result.push(new File(Path.path));
|
|
154
|
+
return result;
|
|
155
|
+
default: throw new Error(`Bad Path type: ${type} Accept only String, Array or fileClass`);
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
/**
|
|
159
|
+
* Variante **async** de {@link checkPath} — résout la (les) racine(s) via
|
|
160
|
+
* `File.from()` (pas de `lstatSync`). Utilisée par `in()` pour ne pas bloquer
|
|
161
|
+
* l'event-loop dès la résolution du point d'entrée.
|
|
162
|
+
*
|
|
163
|
+
* @param Path - string, array de strings, ou FileClass.
|
|
164
|
+
* @returns `Result` contenant les `File` racines hydratés.
|
|
165
|
+
*/
|
|
166
|
+
async checkPathAsync(Path) {
|
|
167
|
+
const type = typeOf(Path);
|
|
168
|
+
const result = new FileResult();
|
|
169
|
+
switch (true) {
|
|
170
|
+
case type === "string":
|
|
171
|
+
result.push(await File.from(Path));
|
|
172
|
+
return result;
|
|
173
|
+
case type === "array": {
|
|
174
|
+
const files = await Promise.all(Path.map((p) => File.from(p)));
|
|
175
|
+
for (const f of files) result.push(f);
|
|
176
|
+
return result;
|
|
177
|
+
}
|
|
178
|
+
case Path instanceof FileClass:
|
|
179
|
+
result.push(await File.from(Path.path));
|
|
180
|
+
return result;
|
|
181
|
+
default: throw new Error(`Bad Path type: ${type} Accept only String, Array or fileClass`);
|
|
182
|
+
}
|
|
183
|
+
}
|
|
184
|
+
async in(Path, settings = {}) {
|
|
185
|
+
let result = null;
|
|
186
|
+
try {
|
|
187
|
+
result = await this.checkPathAsync(Path);
|
|
188
|
+
this.settingsToListen(settings);
|
|
189
|
+
const options = extend({}, this.settings, settings);
|
|
190
|
+
for await (const res of result) await parser.call(this, res, void 0, options, options.depth, res);
|
|
191
|
+
} catch (e) {
|
|
192
|
+
this.fire("onError", e);
|
|
193
|
+
throw e;
|
|
194
|
+
}
|
|
195
|
+
this.fire("onFinish", result, this.totals, this);
|
|
196
|
+
this.clean();
|
|
197
|
+
return result;
|
|
198
|
+
}
|
|
199
|
+
};
|
|
200
|
+
//#endregion
|
|
201
|
+
export { Finder as default };
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
//#region src/finder/Result.ts
|
|
2
|
+
var Result = class Result extends Array {
|
|
3
|
+
constructor(res) {
|
|
4
|
+
if (res) {
|
|
5
|
+
if (Array.isArray(res)) {
|
|
6
|
+
super();
|
|
7
|
+
for (const item of res) this.push(item);
|
|
8
|
+
if (res instanceof Result) res.clean();
|
|
9
|
+
} else throw new Error(`Result bad type must be an array : ${res}`);
|
|
10
|
+
} else super();
|
|
11
|
+
}
|
|
12
|
+
toJson(json = []) {
|
|
13
|
+
for (const ele of this) json.push(ele);
|
|
14
|
+
return JSON.stringify(json);
|
|
15
|
+
}
|
|
16
|
+
toString() {
|
|
17
|
+
const json = [];
|
|
18
|
+
for (const ele of this) json.push(ele);
|
|
19
|
+
return JSON.stringify(json, null, "\n");
|
|
20
|
+
}
|
|
21
|
+
clean(callback) {
|
|
22
|
+
if (callback) Array.prototype.forEach.call(this, (ele) => {
|
|
23
|
+
return callback(ele);
|
|
24
|
+
});
|
|
25
|
+
this.length = 0;
|
|
26
|
+
}
|
|
27
|
+
query(query, logger = false, options = {}, sevrity = "INFO", clean = false) {
|
|
28
|
+
const res = new Result(this.filter((data) => {
|
|
29
|
+
if (data.query(query, logger, options, sevrity)) return data;
|
|
30
|
+
return null;
|
|
31
|
+
}));
|
|
32
|
+
if (clean) this.clean();
|
|
33
|
+
return res;
|
|
34
|
+
}
|
|
35
|
+
queryGrep(query, grep, clean = false) {
|
|
36
|
+
const res = new Result(this.filter((data) => {
|
|
37
|
+
if (data.queryGrep(query, grep)) return data;
|
|
38
|
+
return null;
|
|
39
|
+
}));
|
|
40
|
+
if (clean) this.clean();
|
|
41
|
+
return res;
|
|
42
|
+
}
|
|
43
|
+
};
|
|
44
|
+
//#endregion
|
|
45
|
+
export { Result as default };
|