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,78 @@
|
|
|
1
|
+
import { write as fsWrite } from "node:fs";
|
|
2
|
+
import type { ILogSink } from "../Syslog.js";
|
|
3
|
+
export interface FileSinkOptions {
|
|
4
|
+
/** Chemin du fichier de log (ouvert en append, créé si absent — dossier parent créé). */
|
|
5
|
+
path: string;
|
|
6
|
+
/** Octets max en attente avant DROP borné (anti-OOM). Défaut 4 MiB. */
|
|
7
|
+
maxPendingBytes?: number;
|
|
8
|
+
/**
|
|
9
|
+
* Écriture SYNCHRONE directe (`writeSync`) au lieu du buffer async. Sur un fd
|
|
10
|
+
* PAR worker (pas de fd partagé), le write sync local est µs et SANS contention
|
|
11
|
+
* d'inode → capte le gain cluster sans l'overhead du threadpool async (qui, sur
|
|
12
|
+
* un fichier local rapide, l'annule). Défaut `false` (async, pour sinks lents).
|
|
13
|
+
*/
|
|
14
|
+
sync?: boolean;
|
|
15
|
+
/**
|
|
16
|
+
* Écriture asynchrone employée par le drain. Défaut `fs.write`.
|
|
17
|
+
*
|
|
18
|
+
* Injectable pour une seule raison : la remise du descripteur de fichier dépend
|
|
19
|
+
* d'une COURSE avec le pool de threads, et une course ne se provoque pas à
|
|
20
|
+
* volonté. En la pilotant depuis le banc, l'invariant « on ne rend jamais un
|
|
21
|
+
* descripteur sous une écriture en vol » devient une assertion au lieu d'un pari.
|
|
22
|
+
*/
|
|
23
|
+
write?: typeof fsWrite;
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Driver de sink fichier NON bloquant (LB.W). Écrit via `fs.write` async sur un
|
|
27
|
+
* fd persistant ouvert en append (`"a"`) — **un fd PAR worker** (≠ stdout partagé
|
|
28
|
+
* hérité du master), donc sans contention d'inode.
|
|
29
|
+
*
|
|
30
|
+
* ⚠️ **Le fd-par-worker n'est PAS le levier de performance** — c'est un garde-fou.
|
|
31
|
+
* Le vrai levier est la **coalescence des writes** (nombre de syscalls) : ×19 à
|
|
32
|
+
* ×25 selon les runs (2009 ms en 1 write/ligne → 81 ms en chunks). La contention
|
|
33
|
+
* d'inode ne coûte ×3.2 à ×3.8 QUE dans le cas pathologique « 1 write par ligne » ;
|
|
34
|
+
* **à coalescence égale elle disparaît** (84 vs 81 ms = dans la variance). Or le
|
|
35
|
+
* ring/tick de `Syslog` coalesce DÉJÀ en amont : ce sink reçoit des chunks.
|
|
36
|
+
* Rejouer : `node .claude/skills/nodefony-load-test/scripts/log-sink-contention.mjs`.
|
|
37
|
+
*
|
|
38
|
+
* Buffer applicatif borné + drop anti-OOM ; un seul write en vol → ordre FIFO
|
|
39
|
+
* garanti ; flush SYNC de secours à l'`exit` (durabilité). Node-only.
|
|
40
|
+
*/
|
|
41
|
+
export declare class FileSink implements ILogSink {
|
|
42
|
+
#private;
|
|
43
|
+
readonly name = "file";
|
|
44
|
+
constructor(options: FileSinkOptions);
|
|
45
|
+
/** Lignes droppées (buffer saturé) — lu par une sonde, JAMAIS reloggé (récursion). */
|
|
46
|
+
get dropped(): number;
|
|
47
|
+
writeOut(s: string): void;
|
|
48
|
+
/**
|
|
49
|
+
* stderr (sévérité ≤ 3 — ERROR/CRITIC/ALERT/EMERGENCY) → DURABLE même crash.
|
|
50
|
+
* Écrit en `writeSync` IMMÉDIAT hors buffer : un fatal n'est jamais perdu si le
|
|
51
|
+
* process est tué (SIGKILL/OOM) avant le drain async. En mode `sync`, `writeOut`
|
|
52
|
+
* fait déjà le `writeSync`. fd PAR worker + O_APPEND → write atomique ; best-effort
|
|
53
|
+
* sur erreur I/O (un logger ne throw jamais).
|
|
54
|
+
*
|
|
55
|
+
* ⚠️ Ordre : on NE ré-écrit PAS un chunk stdout async en vol (`#inFlight`, déjà
|
|
56
|
+
* soumis à `fs.write` → le ré-écrire = doublon kernel inévitable, non annulable).
|
|
57
|
+
* Conséquence assumée : un fatal peut atterrir juste AVANT un stdout encore en
|
|
58
|
+
* vol/bufferisé. Les timestamps par ligne (`HH:MM:SS.mmm`) font foi pour relire
|
|
59
|
+
* l'ordre causal. La durabilité du fatal prime sur l'ordre strict avec des stdout
|
|
60
|
+
* non-durables (perdus de toute façon au SIGKILL en mode async).
|
|
61
|
+
*/
|
|
62
|
+
writeErr(s: string): void;
|
|
63
|
+
flushSync(): void;
|
|
64
|
+
/**
|
|
65
|
+
* Ferme le sink : plus rien n'est accepté, le pending part en SYNC, et le
|
|
66
|
+
* descripteur est rendu — mais **jamais sous une écriture en vol**.
|
|
67
|
+
*
|
|
68
|
+
* Un descripteur est un entier que le système réattribue au premier `open` venu.
|
|
69
|
+
* Le rendre pendant qu'une écriture asynchrone attend encore son tour dans le pool
|
|
70
|
+
* de threads, c'est la laisser atterrir dans le fichier — ou la socket — de
|
|
71
|
+
* quelqu'un d'autre, sans la moindre erreur visible. Le symptôme observé était une
|
|
72
|
+
* ligne d'un banc apparue en tête du fichier d'un autre ; il avait été pris pour un
|
|
73
|
+
* défaut d'isolation et « corrigé » par un dossier temporaire unique, d'où son
|
|
74
|
+
* retour. Quand une écriture est en vol, la remise est donc déléguée à son
|
|
75
|
+
* callback ({@link #closeFd}) — idempotente et sans attente pour l'appelant.
|
|
76
|
+
*/
|
|
77
|
+
close(): void;
|
|
78
|
+
}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import type { ITransport } from "../../types/ITransport.js";
|
|
2
|
+
import type Pdu from "../Pdu.js";
|
|
3
|
+
/** Compteurs d'observabilité d'un transport batché (introspection / debug). */
|
|
4
|
+
export interface BatchTransportStats {
|
|
5
|
+
/** Pdu jetés faute de place (queue saturée = destination trop lente / down). */
|
|
6
|
+
dropped: number;
|
|
7
|
+
/** Lots dont le push HTTP a échoué (best-effort : on n'empile pas indéfiniment). */
|
|
8
|
+
failedBatches: number;
|
|
9
|
+
/** Pdu actuellement en attente de flush. */
|
|
10
|
+
queued: number;
|
|
11
|
+
}
|
|
12
|
+
export interface BatchTransportOptions {
|
|
13
|
+
/** Flush dès que la queue atteint cette taille (coalescence). Défaut 100. */
|
|
14
|
+
batchSize?: number;
|
|
15
|
+
/** Flush périodique du reliquat (ms). Défaut 2000. */
|
|
16
|
+
flushIntervalMs?: number;
|
|
17
|
+
/**
|
|
18
|
+
* Plafond DUR de la queue (anti-OOM). Au-delà, les nouveaux logs sont DROP +
|
|
19
|
+
* comptés — on ne bloque JAMAIS le hot path ni ne fait exploser la RAM si la
|
|
20
|
+
* destination est lente/injoignable. Défaut 10000.
|
|
21
|
+
*/
|
|
22
|
+
maxQueue?: number;
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Base d'un transport de logs HTTP **batché** — généralise le pattern LB.W
|
|
26
|
+
* (ring borné → drain coalescé → drop borné) à une destination réseau (Loki,
|
|
27
|
+
* OpenSearch). Mutualise toute la mécanique de file/flush/drop/cleanup ; la
|
|
28
|
+
* sous-classe n'implémente QUE {@link flushBatch} (formatage + push spécifiques).
|
|
29
|
+
*
|
|
30
|
+
* **Garanties hot path** : `send(pdu)` est O(1) non-bloquant (enqueue + arme un
|
|
31
|
+
* timer `unref`), retourne une Promise résolue partagée (0 alloc/log), et ne
|
|
32
|
+
* `throw` jamais — un push qui rate est compté, pas propagé au pipeline requête.
|
|
33
|
+
* Coalescence : un POST par lot (≠ 1 requête HTTP par log = catastrophe réseau).
|
|
34
|
+
*
|
|
35
|
+
* **Durabilité best-effort** : flush sur `beforeExit` (le seul hook où l'on peut
|
|
36
|
+
* encore faire de l'async proprement). PAS de handler `SIGTERM`/`SIGINT` — il
|
|
37
|
+
* casserait le `Ctrl+C` (leçon LB.W). Un crash dur peut perdre le dernier lot :
|
|
38
|
+
* acceptable pour une destination réseau (les logs y sont déjà best-effort), les
|
|
39
|
+
* sévérités fatales restant écrites par le sink local synchrone (LB.W).
|
|
40
|
+
*/
|
|
41
|
+
export declare abstract class BatchingHttpTransport implements ITransport {
|
|
42
|
+
#private;
|
|
43
|
+
abstract readonly name: string;
|
|
44
|
+
constructor(options?: BatchTransportOptions);
|
|
45
|
+
/**
|
|
46
|
+
* Enfile un log (O(1), non-bloquant). Flush immédiat si le lot est plein, sinon
|
|
47
|
+
* arme un timer `unref` pour drainer le reliquat. Queue saturée → DROP + compteur.
|
|
48
|
+
*/
|
|
49
|
+
send(pdu: Pdu): Promise<void>;
|
|
50
|
+
/**
|
|
51
|
+
* Pousse un lot de Pdu vers la destination — implémenté par la sous-classe
|
|
52
|
+
* (format + endpoint spécifiques). Peut `throw` : la base catche et compte.
|
|
53
|
+
*/
|
|
54
|
+
protected abstract flushBatch(batch: Pdu[]): Promise<void>;
|
|
55
|
+
/** Flush final explicite (arrêt gracieux). Best-effort, ne `throw` pas. */
|
|
56
|
+
close(): Promise<void>;
|
|
57
|
+
/** Compteurs d'observabilité (drop/échecs/queue). */
|
|
58
|
+
get stats(): BatchTransportStats;
|
|
59
|
+
}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { ITransport } from "../../types/ITransport.js";
|
|
2
|
+
import type Pdu from "../Pdu.js";
|
|
3
|
+
export declare class ConsoleTransport implements ITransport {
|
|
4
|
+
readonly name = "console";
|
|
5
|
+
private readonly pid;
|
|
6
|
+
constructor(pid?: string);
|
|
7
|
+
send(pdu: Pdu): Promise<void>;
|
|
8
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { ITransport } from "../../types/ITransport.js";
|
|
2
|
+
import type Pdu from "../Pdu.js";
|
|
3
|
+
export interface FileTransportOptions {
|
|
4
|
+
path: string;
|
|
5
|
+
format?: "json" | "text";
|
|
6
|
+
}
|
|
7
|
+
export declare class FileTransport implements ITransport {
|
|
8
|
+
readonly name = "file";
|
|
9
|
+
private readonly path;
|
|
10
|
+
private readonly format;
|
|
11
|
+
constructor(options: FileTransportOptions);
|
|
12
|
+
send(pdu: Pdu): Promise<void>;
|
|
13
|
+
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type { ITransport } from "../../types/ITransport.js";
|
|
2
|
+
import type Pdu from "../Pdu.js";
|
|
3
|
+
export interface HttpTransportOptions {
|
|
4
|
+
url: string;
|
|
5
|
+
headers?: Record<string, string>;
|
|
6
|
+
timeout?: number;
|
|
7
|
+
}
|
|
8
|
+
export declare class HttpTransport implements ITransport {
|
|
9
|
+
readonly name = "http";
|
|
10
|
+
private readonly url;
|
|
11
|
+
private readonly headers;
|
|
12
|
+
private readonly timeout;
|
|
13
|
+
constructor(options: HttpTransportOptions);
|
|
14
|
+
send(pdu: Pdu): Promise<void>;
|
|
15
|
+
}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import { BatchingHttpTransport } from "./BatchingHttpTransport.js";
|
|
2
|
+
import type { BatchTransportOptions } from "./BatchingHttpTransport.js";
|
|
3
|
+
import type { FetchLike } from "../httpFetch.js";
|
|
4
|
+
import type Pdu from "../Pdu.js";
|
|
5
|
+
export interface LokiTransportOptions extends BatchTransportOptions {
|
|
6
|
+
/** Base URL de Loki, ex. `http://127.0.0.1:3100` (sans le chemin d'API). */
|
|
7
|
+
url: string;
|
|
8
|
+
/**
|
|
9
|
+
* Labels de STREAM constants (basse cardinalité). Défaut `{ app: "nodefony" }`.
|
|
10
|
+
* ⚠️ Loki indexe les labels → garder PEU de labels et de faible cardinalité. Les
|
|
11
|
+
* labels dynamiques `severity`/`module`/`pid` sont ajoutés automatiquement (bornés).
|
|
12
|
+
* On n'y met JAMAIS `requestId` (haute cardinalité = explosion d'index) : il voyage
|
|
13
|
+
* dans la LIGNE JSON et se filtre côté query.
|
|
14
|
+
*/
|
|
15
|
+
labels?: Record<string, string>;
|
|
16
|
+
/** Tenant multi-tenancy → header `X-Scope-OrgID`. Omis si absent. */
|
|
17
|
+
tenantId?: string;
|
|
18
|
+
/** Headers HTTP additionnels (auth proxy, etc.). */
|
|
19
|
+
headers?: Record<string, string>;
|
|
20
|
+
/** Timeout du push (ms). Défaut 5000. */
|
|
21
|
+
timeoutMs?: number;
|
|
22
|
+
/** Implémentation `fetch` (tests / proxy). Défaut : `fetch` global. */
|
|
23
|
+
fetchImpl?: FetchLike;
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Transport de logs vers **Grafana Loki** (LB.4) — push HTTP **batché** sur
|
|
27
|
+
* `POST /loki/api/v1/push`. Étend {@link BatchingHttpTransport} : la queue/flush/
|
|
28
|
+
* drop/cleanup sont mutualisés ; ici on ne fait que **formater le lot** au schéma
|
|
29
|
+
* Loki (streams + values) et l'envoyer.
|
|
30
|
+
*
|
|
31
|
+
* Modèle : 1 requête HTTP par lot (jamais par log). Les Pdu sont regroupés par jeu
|
|
32
|
+
* de labels (`{...base, severity, module, pid}`), les valeurs triées par timestamp
|
|
33
|
+
* croissant (exigence Loki), chaque ligne = le record wire `JSON.stringify(pduToRecord)`
|
|
34
|
+
* (timestamp en **nanosecondes** = `ms·10⁶`). Le `requestId` reste DANS la ligne JSON
|
|
35
|
+
* (pas un label) → corrélation full-stack via `| json` côté LogQL, sans alourdir l'index.
|
|
36
|
+
*
|
|
37
|
+
* Node-only (destination prod). Couplé au driver {@link createLokiLogDriver} (write↔read
|
|
38
|
+
* cohérents : on pousse ici, on relit là).
|
|
39
|
+
*/
|
|
40
|
+
export declare class LokiTransport extends BatchingHttpTransport {
|
|
41
|
+
#private;
|
|
42
|
+
readonly name = "loki";
|
|
43
|
+
constructor(options: LokiTransportOptions);
|
|
44
|
+
protected flushBatch(batch: Pdu[]): Promise<void>;
|
|
45
|
+
}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { BatchingHttpTransport } from "./BatchingHttpTransport.js";
|
|
2
|
+
import type { BatchTransportOptions } from "./BatchingHttpTransport.js";
|
|
3
|
+
import type { FetchLike } from "../httpFetch.js";
|
|
4
|
+
import type Pdu from "../Pdu.js";
|
|
5
|
+
export interface OpenSearchTransportOptions extends BatchTransportOptions {
|
|
6
|
+
/** Base URL d'OpenSearch, ex. `http://127.0.0.1:9200` (sans chemin d'API). */
|
|
7
|
+
url: string;
|
|
8
|
+
/** Index cible (défaut `nodefony-logs`). Doit matcher celui du driver query. */
|
|
9
|
+
index?: string;
|
|
10
|
+
/** Utilisateur (auth basic) — prod avec plugin sécurité activé. */
|
|
11
|
+
username?: string;
|
|
12
|
+
/** Mot de passe (auth basic). */
|
|
13
|
+
password?: string;
|
|
14
|
+
/** Headers HTTP additionnels. */
|
|
15
|
+
headers?: Record<string, string>;
|
|
16
|
+
/** Timeout du bulk (ms). Défaut 5000. */
|
|
17
|
+
timeoutMs?: number;
|
|
18
|
+
/** Implémentation `fetch` (tests / proxy). Défaut : `fetch` global. */
|
|
19
|
+
fetchImpl?: FetchLike;
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Transport de logs vers **OpenSearch** (LB.4) — indexation **batchée** via l'API
|
|
23
|
+
* `POST /_bulk` (NDJSON). Étend {@link BatchingHttpTransport} (queue/flush/drop
|
|
24
|
+
* mutualisés) ; ici on formate le lot au protocole bulk et on l'envoie.
|
|
25
|
+
*
|
|
26
|
+
* Protocole bulk : paires de lignes `{"index":{"_index":"…"}}\n` + `<document>\n`,
|
|
27
|
+
* le corps DOIT se terminer par un newline (OpenSearch parse par `\n`). Le document
|
|
28
|
+
* = record wire (`pduToRecord`) → mapping dynamique OpenSearch ; `requestId`/
|
|
29
|
+
* `moduleName`/`severityName` deviennent des champs `text` + sous-champ `.keyword`
|
|
30
|
+
* requêtables (cf {@link createOpenSearchLogDriver}). `timeStamp` (epoch ms) =
|
|
31
|
+
* champ numérique → range/sort efficaces.
|
|
32
|
+
*
|
|
33
|
+
* Node-only (destination prod). Couplé au driver {@link createOpenSearchLogDriver}.
|
|
34
|
+
*/
|
|
35
|
+
export declare class OpenSearchTransport extends BatchingHttpTransport {
|
|
36
|
+
#private;
|
|
37
|
+
readonly name = "opensearch";
|
|
38
|
+
constructor(options: OpenSearchTransportOptions);
|
|
39
|
+
protected flushBatch(batch: Pdu[]): Promise<void>;
|
|
40
|
+
}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { ITransport } from "../../types/ITransport.js";
|
|
2
|
+
import type Pdu from "../Pdu.js";
|
|
3
|
+
import type Syslog from "../Syslog.js";
|
|
4
|
+
export declare class SyslogTransport implements ITransport {
|
|
5
|
+
readonly name = "syslog";
|
|
6
|
+
private readonly target;
|
|
7
|
+
constructor(target: Syslog);
|
|
8
|
+
send(pdu: Pdu): Promise<void>;
|
|
9
|
+
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export { ConsoleTransport } from "./ConsoleTransport.js";
|
|
2
|
+
export { FileTransport } from "./FileTransport.js";
|
|
3
|
+
export type { FileTransportOptions } from "./FileTransport.js";
|
|
4
|
+
export { HttpTransport } from "./HttpTransport.js";
|
|
5
|
+
export type { HttpTransportOptions } from "./HttpTransport.js";
|
|
6
|
+
export { SyslogTransport } from "./SyslogTransport.js";
|
|
7
|
+
export { BatchingHttpTransport } from "./BatchingHttpTransport.js";
|
|
8
|
+
export type { BatchTransportOptions, BatchTransportStats, } from "./BatchingHttpTransport.js";
|
|
9
|
+
export { LokiTransport } from "./LokiTransport.js";
|
|
10
|
+
export type { LokiTransportOptions } from "./LokiTransport.js";
|
|
11
|
+
export { OpenSearchTransport } from "./OpenSearchTransport.js";
|
|
12
|
+
export type { OpenSearchTransportOptions } from "./OpenSearchTransport.js";
|
|
@@ -0,0 +1,197 @@
|
|
|
1
|
+
import Container from "../Container.js";
|
|
2
|
+
import Module from "../kernel/Module.js";
|
|
3
|
+
import type { DefaultOptionsService } from "../Service.js";
|
|
4
|
+
/**
|
|
5
|
+
* Outillage de TEST publié — ce qu'il faut pour éprouver un service SEUL.
|
|
6
|
+
*
|
|
7
|
+
* ## Le problème que ce sous-chemin résout
|
|
8
|
+
*
|
|
9
|
+
* Un service Nodefony reçoit un `Module` (`super(nom, module.container,
|
|
10
|
+
* module.notificationsCenter)`), et un `Module` réclame un `Kernel`. Éprouver
|
|
11
|
+
* la logique d'un service — un calcul de taxe, une règle métier — demandait
|
|
12
|
+
* donc de démarrer une application entière, ou de fabriquer soi-même un kernel
|
|
13
|
+
* de fortune avec un `as unknown as Kernel` que les règles du projet
|
|
14
|
+
* interdisent par ailleurs.
|
|
15
|
+
*
|
|
16
|
+
* Faute de cette porte, le réflexe observé est d'écrire un test de bout en bout
|
|
17
|
+
* : on lance le serveur et on tape en HTTP. Il éprouve la chaîne complète, il
|
|
18
|
+
* est lent, et il ne dit RIEN de l'isolation des responsabilités — la seule
|
|
19
|
+
* chose qu'on voulait vérifier.
|
|
20
|
+
*
|
|
21
|
+
* ## Ce qu'il ne fait pas
|
|
22
|
+
*
|
|
23
|
+
* Ce module ne démarre aucun kernel, n'ouvre aucun port, ne lit aucune
|
|
24
|
+
* configuration. Il rend un module JETABLE dont le seul rôle est de porter un
|
|
25
|
+
* conteneur et un bus d'événements — ce dont un service a besoin pour exister.
|
|
26
|
+
* Tout ce qui exige un kernel vivant (routes, firewall, ORM connecté) relève
|
|
27
|
+
* d'un test d'intégration, et cette porte ne prétend pas le remplacer.
|
|
28
|
+
*
|
|
29
|
+
* ⚠️ **La résolution PAR LE CONTENEUR n'est pas de la partie**, et c'est
|
|
30
|
+
* structurel : `@inject("XService")` passe par le singleton `Nodefony.getKernel()`
|
|
31
|
+
* (`injector.ts:169`), qui n'existe pas ici — l'injecteur fabriquerait alors un
|
|
32
|
+
* second exemplaire sans argument, et le constructeur casserait sur
|
|
33
|
+
* `module.container`. Ce n'est pas une limite gênante : **un test unitaire
|
|
34
|
+
* donne lui-même la dépendance**, ce que l'injection par constructeur permet
|
|
35
|
+
* précisément, et c'est ce qui autorise à y glisser un double.
|
|
36
|
+
*
|
|
37
|
+
* ```ts
|
|
38
|
+
* const app = createTestModule();
|
|
39
|
+
* const invoice = new InvoiceService(app, new TaxService(app)); // ✅
|
|
40
|
+
* const invoice = await app.addService(InvoiceService); // ❌ exige un kernel
|
|
41
|
+
* ```
|
|
42
|
+
*
|
|
43
|
+
* @module
|
|
44
|
+
*/
|
|
45
|
+
export { nodefonyBin } from "../cli/nodefonyBin.js";
|
|
46
|
+
/**
|
|
47
|
+
* Port de l'application DÉMARRÉE, ou une erreur qui dit pourquoi on l'ignore.
|
|
48
|
+
*
|
|
49
|
+
* ## Pourquoi ce n'est pas `?? 5151`
|
|
50
|
+
*
|
|
51
|
+
* Un port de repli semble anodin — il ne l'est pas. Quand l'état d'exécution
|
|
52
|
+
* est illisible (l'application n'a pas démarré, elle a démarré ailleurs, le
|
|
53
|
+
* répertoire courant n'est pas sa racine), le repli envoie la suite interroger
|
|
54
|
+
* **le premier serveur qui traîne sur cette machine**. Constaté : un serveur de
|
|
55
|
+
* développement laissé ouvert par un autre projet a répondu `404` à tous les
|
|
56
|
+
* cas, et la suite a accusé les routes de l'application au lieu de son décor.
|
|
57
|
+
*
|
|
58
|
+
* Un test qui parle au mauvais serveur ne se contente pas d'échouer : il rend
|
|
59
|
+
* un verdict FAUX, et on cherche le défaut dans le code mesuré.
|
|
60
|
+
*
|
|
61
|
+
* Le port ne se devine donc pas. Il se lit — ou la suite s'arrête en disant
|
|
62
|
+
* quoi vérifier.
|
|
63
|
+
*
|
|
64
|
+
* ```ts
|
|
65
|
+
* import { runningAppPort } from "nodefony/testing";
|
|
66
|
+
*
|
|
67
|
+
* const res = await fetch(`http://127.0.0.1:${runningAppPort()}/api/hello`);
|
|
68
|
+
* ```
|
|
69
|
+
*
|
|
70
|
+
* @param root - racine de l'application ; le répertoire courant par défaut,
|
|
71
|
+
* ce qui convient à une suite lancée depuis la racine du projet.
|
|
72
|
+
* @returns le premier port sur lequel l'application écoute.
|
|
73
|
+
* @throws Quand aucun état d'exécution n'est lisible, ou qu'il n'annonce aucun
|
|
74
|
+
* port — jamais un repli silencieux.
|
|
75
|
+
*/
|
|
76
|
+
export declare function runningAppPort(root?: string): number;
|
|
77
|
+
/** Réglages d'un module de test — tous facultatifs. */
|
|
78
|
+
export interface ITestModuleOptions {
|
|
79
|
+
/** Nom du module (défaut `"test"`) — n'apparaît que dans les journaux. */
|
|
80
|
+
name?: string;
|
|
81
|
+
/**
|
|
82
|
+
* Racine du module. Doit contenir un `package.json` : `Module` le lit pour
|
|
83
|
+
* se situer. Défaut `process.cwd()`, qui convient à une suite lancée depuis
|
|
84
|
+
* la racine d'une application.
|
|
85
|
+
*/
|
|
86
|
+
path?: string;
|
|
87
|
+
/**
|
|
88
|
+
* Options passées au module (`syslog`, `events`…).
|
|
89
|
+
*
|
|
90
|
+
* Rien n'est imposé par défaut : un module de test ne branche aucun
|
|
91
|
+
* transport, donc son journal reste muet sans qu'on ait à l'éteindre.
|
|
92
|
+
*/
|
|
93
|
+
options?: DefaultOptionsService;
|
|
94
|
+
/**
|
|
95
|
+
* Conteneur à partager. Deux services construits sur le MÊME module partagent
|
|
96
|
+
* déjà le sien ; ne le passer que pour réutiliser un conteneur préparé
|
|
97
|
+
* (services simulés enregistrés à la main, par exemple).
|
|
98
|
+
*/
|
|
99
|
+
container?: Container;
|
|
100
|
+
}
|
|
101
|
+
/**
|
|
102
|
+
* Un module JETABLE, prêt à porter un service dans un test.
|
|
103
|
+
*
|
|
104
|
+
* ```ts
|
|
105
|
+
* import { createTestModule } from "nodefony/testing";
|
|
106
|
+
* import TaxService from "../nodefony/service/TaxService";
|
|
107
|
+
*
|
|
108
|
+
* const tax = new TaxService(createTestModule());
|
|
109
|
+
* expect(tax.rate()).toBe(0.2);
|
|
110
|
+
* ```
|
|
111
|
+
*
|
|
112
|
+
* Deux services qui doivent se voir prennent le MÊME module : ils partagent
|
|
113
|
+
* alors son conteneur, et `container.get("…")` résout comme à l'exécution.
|
|
114
|
+
*
|
|
115
|
+
* ```ts
|
|
116
|
+
* const app = createTestModule();
|
|
117
|
+
* const tax = new TaxService(app);
|
|
118
|
+
* const invoice = new InvoiceService(app, tax);
|
|
119
|
+
* ```
|
|
120
|
+
*
|
|
121
|
+
* @param settings - réglages facultatifs (cf {@link ITestModuleOptions}).
|
|
122
|
+
* @returns un module utilisable comme argument de constructeur d'un service.
|
|
123
|
+
*/
|
|
124
|
+
export declare function createTestModule(settings?: ITestModuleOptions): Module;
|
|
125
|
+
/** Réglages d'un exemplaire JETABLE — le port est le seul obligatoire. */
|
|
126
|
+
export interface ISpareAppOptions {
|
|
127
|
+
/**
|
|
128
|
+
* Port HTTP de l'exemplaire — **imposé, jamais deviné**.
|
|
129
|
+
*
|
|
130
|
+
* L'exemplaire déjà démarré par le décor tient le port de l'application ;
|
|
131
|
+
* celui-ci doit en prendre un autre, et la sonde doit savoir à qui elle
|
|
132
|
+
* parle. Un port découvert après coup ferait retomber le test sur le premier
|
|
133
|
+
* serveur venu, exactement ce que {@link runningAppPort} refuse de faire.
|
|
134
|
+
*/
|
|
135
|
+
port: number;
|
|
136
|
+
/** Port HTTPS, quand la configuration en ouvre un — même raison. */
|
|
137
|
+
httpsPort?: number;
|
|
138
|
+
/** Variables ajoutées à l'environnement de l'exemplaire. */
|
|
139
|
+
env?: NodeJS.ProcessEnv;
|
|
140
|
+
/** Racine de l'application ; le répertoire courant par défaut. */
|
|
141
|
+
root?: string;
|
|
142
|
+
/** Délai maximal d'attente de la première réponse, en ms (défaut 60 000). */
|
|
143
|
+
timeoutMs?: number;
|
|
144
|
+
}
|
|
145
|
+
/** Un exemplaire jetable, démarré et joignable. */
|
|
146
|
+
export interface ISpareApp {
|
|
147
|
+
/** Port sur lequel il répond — celui qui a été demandé. */
|
|
148
|
+
port: number;
|
|
149
|
+
/** Tout ce qu'il a écrit sur ses deux flux jusqu'ici. */
|
|
150
|
+
output(): string;
|
|
151
|
+
/** L'arrête et REND à l'application son état d'exécution. */
|
|
152
|
+
stop(): Promise<void>;
|
|
153
|
+
}
|
|
154
|
+
/**
|
|
155
|
+
* Démarre un exemplaire JETABLE de l'application, dans un état choisi.
|
|
156
|
+
*
|
|
157
|
+
* ## À quoi ça sert
|
|
158
|
+
*
|
|
159
|
+
* Certaines choses ne s'observent que sur un processus qui démarre dans un état
|
|
160
|
+
* précis : un schéma en retard qui retient la mise en service (`/readyz` rend
|
|
161
|
+
* 503), une dépendance absente, un refus de démarrage. Le décor de la suite,
|
|
162
|
+
* lui, a démarré l'application dans l'état NORMAL — et c'est ce qu'on veut : les
|
|
163
|
+
* autres cas mesurent le fonctionnement.
|
|
164
|
+
*
|
|
165
|
+
* ## 🔴 Ce qu'il faut savoir, et qui ne se voit pas
|
|
166
|
+
*
|
|
167
|
+
* Un exemplaire Nodefony **publie ses ports** dans l'état d'exécution du projet
|
|
168
|
+
* (`node_modules/.cache/nodefony/`), et cet état est un fichier UNIQUE par
|
|
169
|
+
* racine d'application. Un second exemplaire lancé depuis le même dossier
|
|
170
|
+
* l'écrase donc, et {@link runningAppPort} — que tous les autres cas
|
|
171
|
+
* utilisent — se met à désigner le jetable, puis à lever une fois qu'il est
|
|
172
|
+
* mort. Le défaut n'apparaît pas dans le cas qui l'a créé : il tombe sur le
|
|
173
|
+
* SUIVANT, et accuse une route qui n'a rien fait.
|
|
174
|
+
*
|
|
175
|
+
* `stop()` restaure donc l'état d'exécution tel qu'il était avant le démarrage.
|
|
176
|
+
* C'est la raison d'être de cette fonction, bien plus que le `spawn` qu'elle
|
|
177
|
+
* fait à votre place.
|
|
178
|
+
*
|
|
179
|
+
* ```ts
|
|
180
|
+
* const jetable = await startSpareApp({
|
|
181
|
+
* port: 5399,
|
|
182
|
+
* env: { NODE_ENV: "production", NF_DATABASE_URL: "sqlite:/tmp/vierge.db" },
|
|
183
|
+
* });
|
|
184
|
+
* try {
|
|
185
|
+
* const res = await fetch(`http://127.0.0.1:${jetable.port}/readyz`);
|
|
186
|
+
* assert.equal(res.status, 503);
|
|
187
|
+
* } finally {
|
|
188
|
+
* await jetable.stop();
|
|
189
|
+
* }
|
|
190
|
+
* ```
|
|
191
|
+
*
|
|
192
|
+
* @param options - port imposé, environnement, racine.
|
|
193
|
+
* @returns l'exemplaire, une fois qu'il répond.
|
|
194
|
+
* @throws Si le processus meurt avant de répondre, ou si le délai expire — avec
|
|
195
|
+
* ce qu'il a écrit, parce que c'est là que se trouve la cause.
|
|
196
|
+
*/
|
|
197
|
+
export declare function startSpareApp(options: ISpareAppOptions): Promise<ISpareApp>;
|