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,279 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* DebugBar — toolbar de debug par-page type Symfony WDT, **dev-only**, pensée
|
|
3
|
+
* comme une **vitrine du realtime Nodefony** (on doit *voir* le framework
|
|
4
|
+
* respirer en direct).
|
|
5
|
+
*
|
|
6
|
+
* 2ᵉ consommateur navigateur du Core isomorphe après Studio : MÊME backbone
|
|
7
|
+
* realtime (WS JSON-RPC 2.0, canaux `nodefony:supervision` / `nodefony:syslog`) via
|
|
8
|
+
* {@link RealtimeClient}. Aucun rendu serveur splicé dans le body : le serveur
|
|
9
|
+
* *collecte*, le client *rend*.
|
|
10
|
+
*
|
|
11
|
+
* UI : **onglets** (Realtime / Network / Perf / Logs / Runtime) — un seul pane
|
|
12
|
+
* rendu/visible à la fois (≠ grid fourre-tout) + **poignée de resize** (hauteur
|
|
13
|
+
* persistée). Vanilla TS + **Shadow DOM** + sparklines **SVG maison** — 0 dep UI.
|
|
14
|
+
*
|
|
15
|
+
* Perf scroll (critique) : fond OPAQUE sur le panneau (le `backdrop-filter:blur`
|
|
16
|
+
* sur le conteneur scrollable recompositait à chaque frame), `contain:content`
|
|
17
|
+
* par pane, et la liste Network en **mise à jour incrémentale** (nœuds stables,
|
|
18
|
+
* jamais de rebuild `innerHTML` global → le clic n'est plus perdu, le scroll ne
|
|
19
|
+
* saute plus).
|
|
20
|
+
*
|
|
21
|
+
* Panneau **Network** (dev-only) : intercepte `fetch`/`XHR` (header-only,
|
|
22
|
+
* défensif, réversible) → liste des appels AJAX ; clic sur un appel → fetch du
|
|
23
|
+
* profil serveur (`/nodefony/profiler/api/{requestId}`, corrélé via le header
|
|
24
|
+
* `X-Request-Id`) → **waterfall des phases** du pipeline. SPA-first : on profile
|
|
25
|
+
* les appels, pas la page. Le `traceparent` W3C (RFC-propre) est aussi remonté.
|
|
26
|
+
*/
|
|
27
|
+
import { RealtimeClient } from "../realtime/RealtimeClient.js";
|
|
28
|
+
/** Contexte frontend injecté par le builder Vite (@nodefony/frontend) en dev. */
|
|
29
|
+
export interface DebugBarFrontend {
|
|
30
|
+
/** Type de preset : `react19` | `vue3` | `angular` | `vanilla`. */
|
|
31
|
+
framework?: string;
|
|
32
|
+
/** Nom logique de l'entrée frontend (bundle). */
|
|
33
|
+
name?: string;
|
|
34
|
+
/** Origine du serveur Vite (ex. `https://127.0.0.1:5173`). */
|
|
35
|
+
viteOrigin?: string;
|
|
36
|
+
}
|
|
37
|
+
export interface DebugBarOptions {
|
|
38
|
+
/** URL/chemin du WS realtime. Défaut : `/nodefony/studio/api/realtime`. */
|
|
39
|
+
url?: string;
|
|
40
|
+
/** Client realtime injectable (partage / tests). Sinon créé en interne. */
|
|
41
|
+
client?: RealtimeClient;
|
|
42
|
+
/** Position verticale du widget. Défaut `bottom`. */
|
|
43
|
+
position?: "bottom" | "top";
|
|
44
|
+
/** Ouvre le panneau au montage. Défaut `false`. */
|
|
45
|
+
open?: boolean;
|
|
46
|
+
/** Contexte frontend (active la carte Frontend + la sonde HMR Vite). */
|
|
47
|
+
frontend?: DebugBarFrontend;
|
|
48
|
+
/**
|
|
49
|
+
* Active le panneau Network (intercepte `fetch`/`XHR`). Défaut `true`.
|
|
50
|
+
* `false` → aucun monkey-patch des globals (opt-out total).
|
|
51
|
+
*/
|
|
52
|
+
network?: boolean;
|
|
53
|
+
/** Base du data-plane profiler. Défaut `/nodefony/profiler/api`. */
|
|
54
|
+
profilerBase?: string;
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* Handle global exposé sur `window.__NODEFONY_DEBUGBAR__` — permet à une app
|
|
58
|
+
* (ex. Studio) de piloter la visibilité de la barre auto-injectée sans la
|
|
59
|
+
* remonter. Bridge entre le widget (Core) et un store applicatif.
|
|
60
|
+
*/
|
|
61
|
+
export interface DebugBarHandle {
|
|
62
|
+
isVisible(): boolean;
|
|
63
|
+
setVisible(v: boolean): void;
|
|
64
|
+
toggle(): void;
|
|
65
|
+
minimize(): void;
|
|
66
|
+
restore(): void;
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* Widget DOM. Lazy : ne construit le Shadow DOM qu'au `mount()`. Idempotent
|
|
70
|
+
* (un seul `#nodefony-debugbar` par page).
|
|
71
|
+
*/
|
|
72
|
+
export declare class DebugBar {
|
|
73
|
+
private readonly client;
|
|
74
|
+
private readonly model;
|
|
75
|
+
private readonly url;
|
|
76
|
+
private readonly position;
|
|
77
|
+
private readonly startOpen;
|
|
78
|
+
private readonly ownClient;
|
|
79
|
+
private readonly frontend;
|
|
80
|
+
private host;
|
|
81
|
+
private bar;
|
|
82
|
+
private visible;
|
|
83
|
+
private minimized;
|
|
84
|
+
private side;
|
|
85
|
+
private activeTab;
|
|
86
|
+
private panelH;
|
|
87
|
+
private live;
|
|
88
|
+
/** dispose des abonnements realtime (null quand OFF). */
|
|
89
|
+
private liveOff;
|
|
90
|
+
private rafPending;
|
|
91
|
+
private feedLen;
|
|
92
|
+
/** Filtre de sévérité de l'onglet Logs — `all` par défaut. */
|
|
93
|
+
private feedSev;
|
|
94
|
+
/** Recherche courante, déjà en minuscules (comparée telle quelle). */
|
|
95
|
+
private feedQuery;
|
|
96
|
+
/**
|
|
97
|
+
* Affichage suspendu. Les entrées continuent d'arriver dans le modèle : à la
|
|
98
|
+
* reprise, la liste se reconstruit complète — mettre en pause ne fait pas
|
|
99
|
+
* perdre ce qui s'est passé pendant, ce qui serait le pire des deux mondes.
|
|
100
|
+
*/
|
|
101
|
+
private feedPaused;
|
|
102
|
+
/** La liste affichée doit être refaite (changement de filtre ou de recherche). */
|
|
103
|
+
private feedDirty;
|
|
104
|
+
private prevFrames;
|
|
105
|
+
private rtRate;
|
|
106
|
+
private rtPeak;
|
|
107
|
+
private readonly rtSeries;
|
|
108
|
+
private viteConnected;
|
|
109
|
+
private hmrCount;
|
|
110
|
+
private hmrPrev;
|
|
111
|
+
private hmrRate;
|
|
112
|
+
private hmrLast;
|
|
113
|
+
private readonly hmrSeries;
|
|
114
|
+
private flashTimer;
|
|
115
|
+
private readonly disposers;
|
|
116
|
+
private readonly el;
|
|
117
|
+
private readonly networkEnabled;
|
|
118
|
+
private readonly profilerBase;
|
|
119
|
+
private readonly net;
|
|
120
|
+
/** Observe la barre → publie sa hauteur (var CSS) pour l'app hôte. */
|
|
121
|
+
private ro;
|
|
122
|
+
private readonly netRows;
|
|
123
|
+
private selectedRid;
|
|
124
|
+
private selRowId;
|
|
125
|
+
private selNoRid;
|
|
126
|
+
private detailVersion;
|
|
127
|
+
private detailRendered;
|
|
128
|
+
constructor(opts?: DebugBarOptions);
|
|
129
|
+
/** Construit le DOM, branche le realtime et ouvre la connexion. No-op si déjà monté. */
|
|
130
|
+
mount(): this;
|
|
131
|
+
/** Détache listeners, ferme la connexion (si propriétaire) et retire le DOM. */
|
|
132
|
+
unmount(): void;
|
|
133
|
+
/** Affiche/masque la barre (pilotable depuis une app via le handle global). */
|
|
134
|
+
setVisible(v: boolean): void;
|
|
135
|
+
private setMinimized;
|
|
136
|
+
private toggleSide;
|
|
137
|
+
/**
|
|
138
|
+
* Déplie ou replie le panneau — le SEUL endroit qui bascule cet état.
|
|
139
|
+
*
|
|
140
|
+
* Il porte aussi ce qu'un lecteur d'écran doit entendre : `aria-expanded` sur
|
|
141
|
+
* le bouton qui commande, et un nom qui dit l'action à venir (« Déplier » /
|
|
142
|
+
* « Replier »), pas l'état courant — un nom qui décrit l'état laisse
|
|
143
|
+
* l'utilisateur deviner ce que le bouton va faire.
|
|
144
|
+
*/
|
|
145
|
+
private setOpen;
|
|
146
|
+
private setTab;
|
|
147
|
+
private setPanelH;
|
|
148
|
+
/** Reflète l'onglet actif sur les boutons + panes. */
|
|
149
|
+
private applyTab;
|
|
150
|
+
/** Applique l'état chrome au DOM (display + classes de dock + hauteur). */
|
|
151
|
+
private applyChrome;
|
|
152
|
+
/**
|
|
153
|
+
* Publie la hauteur occupée par la barre (dock bas, visible, dépliée) en
|
|
154
|
+
* variable CSS `--nodefony-debugbar-height` sur `:root`. L'app hôte (Studio)
|
|
155
|
+
* la réserve en `padding-bottom` → le contenu n'est jamais masqué. `0px` si
|
|
156
|
+
* masquée / réduite (chip flottante) / dockée en haut.
|
|
157
|
+
*/
|
|
158
|
+
private publishHeight;
|
|
159
|
+
private registerHandle;
|
|
160
|
+
private unregisterHandle;
|
|
161
|
+
private buildDom;
|
|
162
|
+
private startResize;
|
|
163
|
+
/**
|
|
164
|
+
* Retour visuel bref sur un bouton d'action.
|
|
165
|
+
*
|
|
166
|
+
* Une copie réussie ne change rien à l'écran : sans ce clin d'œil, on ne sait
|
|
167
|
+
* pas si le clic a porté, et on reclique.
|
|
168
|
+
*/
|
|
169
|
+
private flashBtn;
|
|
170
|
+
private wireBtn;
|
|
171
|
+
private template;
|
|
172
|
+
private realtimePane;
|
|
173
|
+
private networkPane;
|
|
174
|
+
private perfPane;
|
|
175
|
+
/**
|
|
176
|
+
* L'onglet Logs — une petite console de lecture, pas une liste qui défile.
|
|
177
|
+
*
|
|
178
|
+
* Ce qu'elle porte, et pourquoi : un FILTRE par sévérité et une RECHERCHE
|
|
179
|
+
* (sans quoi on lit le bruit au lieu de son incident) ; une PAUSE (sans quoi
|
|
180
|
+
* la ligne qu'on essaie de lire s'en va) ; une COPIE (une trace se colle dans
|
|
181
|
+
* un ticket) ; et le DÉTAIL d'une entrée, où vit le `requestId` — le champ qui
|
|
182
|
+
* relie ce journal à sa requête, et que la barre recevait sans jamais le
|
|
183
|
+
* montrer.
|
|
184
|
+
*/
|
|
185
|
+
private logsPane;
|
|
186
|
+
/**
|
|
187
|
+
* Ce que la barre garde sur CE navigateur — écrit noir sur blanc.
|
|
188
|
+
*
|
|
189
|
+
* Une console de développement qui écrit dans le stockage local sans le dire
|
|
190
|
+
* est exactement ce qu'on reproche aux autres. La liste est dérivée des clés
|
|
191
|
+
* réelles, donc elle ne peut pas mentir par oubli, et le bouton efface
|
|
192
|
+
* précisément celles-là — jamais le stockage de l'application hôte.
|
|
193
|
+
*/
|
|
194
|
+
private storageCard;
|
|
195
|
+
private runtimePane;
|
|
196
|
+
/**
|
|
197
|
+
* Un indicateur du bandeau — et un RACCOURCI vers l'onglet qui le détaille.
|
|
198
|
+
*
|
|
199
|
+
* C'est un `<button>` et non un `<span>` : le bandeau ne se replie plus au
|
|
200
|
+
* clic (c'était le défaut principal — lire une valeur refermait le panneau),
|
|
201
|
+
* donc chaque indicateur peut faire quelque chose d'utile de son propre clic.
|
|
202
|
+
* Mener à l'onglet qui explique le chiffre est ce que l'utilisateur attend,
|
|
203
|
+
* et un bouton l'annonce et s'atteint au clavier.
|
|
204
|
+
*/
|
|
205
|
+
private miniMetric;
|
|
206
|
+
private chart;
|
|
207
|
+
private kv;
|
|
208
|
+
/** Carte Frontend / HMR — affichée seulement si un contexte frontend est fourni. */
|
|
209
|
+
private frontendCard;
|
|
210
|
+
private wireRealtime;
|
|
211
|
+
/**
|
|
212
|
+
* Démarre les abonnements realtime (tickers serveur stats+syslog). REF-COMPTÉ
|
|
213
|
+
* (UNE fois) sur le client PARTAGÉ : un canal reste actif tant qu'un
|
|
214
|
+
* consommateur le veut ; le client ré-abonne seul au reconnect. Idempotent.
|
|
215
|
+
*/
|
|
216
|
+
private startLive;
|
|
217
|
+
/** Arrête les abonnements realtime (relâche la réf de la barre). Idempotent. */
|
|
218
|
+
private stopLive;
|
|
219
|
+
/** Active/désactive le temps réel (bouton de la barre) + persiste la préférence. */
|
|
220
|
+
setLive(v: boolean): void;
|
|
221
|
+
/** Met à jour l'aspect du bouton « Temps réel » selon l'état. */
|
|
222
|
+
private updateLiveBtn;
|
|
223
|
+
private sampleThroughput;
|
|
224
|
+
private wireHmr;
|
|
225
|
+
private onHmr;
|
|
226
|
+
private flashHmr;
|
|
227
|
+
private wireNetwork;
|
|
228
|
+
private onNetEntry;
|
|
229
|
+
/** Crée ou met à jour le nœud de ligne d'un appel (jamais d'innerHTML global). */
|
|
230
|
+
private upsertNetRow;
|
|
231
|
+
/** Remplit/actualise les cellules d'une ligne (textContent → 0 échappement). */
|
|
232
|
+
private fillNetRow;
|
|
233
|
+
/** Sélectionne une ligne (highlight) + déclenche le fetch du profil. */
|
|
234
|
+
private selectRow;
|
|
235
|
+
/** Fetch `/{profilerBase}/{requestId}` (ignoré par l'intercepteur). */
|
|
236
|
+
private fetchProfile;
|
|
237
|
+
private scheduleRender;
|
|
238
|
+
private text;
|
|
239
|
+
/** className safe pour HTML *et* SVG (SVGElement.className n'est pas une string). */
|
|
240
|
+
private cls;
|
|
241
|
+
private setPoints;
|
|
242
|
+
private render;
|
|
243
|
+
/** Bandeau toujours visible (chips + pouls) — léger. */
|
|
244
|
+
private renderStrip;
|
|
245
|
+
private renderRealtimePane;
|
|
246
|
+
private renderPerf;
|
|
247
|
+
private renderRuntime;
|
|
248
|
+
private renderLogsPane;
|
|
249
|
+
/** Classe de couleur d'une entrée, dérivée de sa sévérité RFC 5424. */
|
|
250
|
+
private static tierOf;
|
|
251
|
+
/** L'entrée passe-t-elle le filtre de sévérité et la recherche en cours ? */
|
|
252
|
+
private feedMatch;
|
|
253
|
+
/** Une ligne de journal — horodatage, sévérité, module, texte, requête. */
|
|
254
|
+
private feedRow;
|
|
255
|
+
/** Le détail d'une entrée — ce qu'on colle dans un ticket. */
|
|
256
|
+
private feedDetail;
|
|
257
|
+
/**
|
|
258
|
+
* Rendu du journal — **incrémental**, et c'est le point.
|
|
259
|
+
*
|
|
260
|
+
* L'ancienne version réassignait `innerHTML` en entier à chaque arrivée. Deux
|
|
261
|
+
* conséquences qu'on ne voit pas dans le code et qu'on subit à l'écran : la
|
|
262
|
+
* SÉLECTION de texte s'efface — impossible de copier une ligne pendant que le
|
|
263
|
+
* flux tourne — et la position de DÉFILEMENT saute. Ici, seules les entrées
|
|
264
|
+
* nouvelles sont insérées en tête ; ce qui est affiché n'est jamais reconstruit.
|
|
265
|
+
*
|
|
266
|
+
* Un changement de filtre ou de recherche, lui, refait bien la liste : le jeu
|
|
267
|
+
* affiché change entièrement, il n'y a rien à préserver.
|
|
268
|
+
*/
|
|
269
|
+
private renderFeed;
|
|
270
|
+
private renderNetwork;
|
|
271
|
+
private renderDetail;
|
|
272
|
+
/** Désélectionne la requête → referme le détail (placeholder). */
|
|
273
|
+
private deselect;
|
|
274
|
+
/** Rend le détail d'un profil serveur (méta + waterfall des phases). */
|
|
275
|
+
private profileHtml;
|
|
276
|
+
/** Rend les requêtes ORM (SEAM futur) — vide tant qu'aucun adapter ne pushe. */
|
|
277
|
+
private queriesHtml;
|
|
278
|
+
}
|
|
279
|
+
export default DebugBar;
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Helpers de formatage PURS de la debug bar — aucune dépendance DOM/réseau,
|
|
3
|
+
* donc unit-testables côté Node (suite mocha du core).
|
|
4
|
+
*/
|
|
5
|
+
/**
|
|
6
|
+
* Formatte un nombre d'octets en unité lisible (1 décimale, base 1024).
|
|
7
|
+
*
|
|
8
|
+
* @param bytes - taille en octets (négatif/NaN → "0 B")
|
|
9
|
+
* @returns ex. `"1.5 MB"`, `"0 B"`
|
|
10
|
+
*/
|
|
11
|
+
export declare function formatBytes(bytes: number): string;
|
|
12
|
+
/**
|
|
13
|
+
* Formatte une durée (secondes) en chaîne compacte (`1h 02m`, `3m 12s`, `45s`).
|
|
14
|
+
*
|
|
15
|
+
* @param seconds - uptime en secondes
|
|
16
|
+
*/
|
|
17
|
+
export declare function formatUptime(seconds: number): string;
|
|
18
|
+
/** Palier de santé d'une jauge 0-100 — pilote la couleur du widget. */
|
|
19
|
+
export type GaugeTier = "ok" | "warn" | "crit";
|
|
20
|
+
/**
|
|
21
|
+
* Classe une valeur 0-100 en palier vert/orange/rouge.
|
|
22
|
+
*
|
|
23
|
+
* @param percent - valeur de la jauge
|
|
24
|
+
* @param warn - seuil orange (défaut 70)
|
|
25
|
+
* @param crit - seuil rouge (défaut 90)
|
|
26
|
+
*/
|
|
27
|
+
export declare function gauge(percent: number, warn?: number, crit?: number): GaugeTier;
|
|
28
|
+
/** Retire les séquences d'échappement ANSI (couleurs terminal) d'une chaîne. */
|
|
29
|
+
export declare function stripAnsi(input: string): string;
|
|
30
|
+
/**
|
|
31
|
+
* Calcule l'attribut `points` d'un `<polyline>` SVG (sparkline) à partir d'une
|
|
32
|
+
* série de valeurs. Pur → testable. Mise à l'échelle sur `[0, max]`.
|
|
33
|
+
*
|
|
34
|
+
* @param values - série temporelle (gauche = ancien, droite = récent)
|
|
35
|
+
* @param width - largeur du viewBox
|
|
36
|
+
* @param height - hauteur du viewBox
|
|
37
|
+
* @param max - plafond de l'axe Y (défaut = max de la série, plancher 1)
|
|
38
|
+
* @returns ex. `"0,14 10,7 20,2"` (vide si < 2 points)
|
|
39
|
+
*/
|
|
40
|
+
export declare function sparklinePoints(values: number[], width: number, height: number, max?: number): string;
|
|
41
|
+
/**
|
|
42
|
+
* Heure locale d'un horodatage, à la milliseconde — `14:03:27.482`.
|
|
43
|
+
*
|
|
44
|
+
* La date n'y figure pas : une barre de débogage montre ce qui vient de se
|
|
45
|
+
* passer, et une date répétée sur chaque ligne coûte de la place sans rien
|
|
46
|
+
* apprendre. Le détail d'une entrée, lui, rend l'horodatage complet.
|
|
47
|
+
*/
|
|
48
|
+
export declare function fmtClock(ts: number): string;
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
export type HmrKind = "connected" | "update" | "full-reload" | "error" | "prune";
|
|
2
|
+
export interface HmrEvent {
|
|
3
|
+
kind: HmrKind;
|
|
4
|
+
/** Chemin du module mis à jour (si fourni par Vite). */
|
|
5
|
+
path?: string;
|
|
6
|
+
}
|
|
7
|
+
/** Nom de l'événement DOM émis par le pont HMR côté page. */
|
|
8
|
+
export declare const HMR_EVENT: "nodefony:hmr";
|
|
9
|
+
/**
|
|
10
|
+
* Observe les hot-updates Vite via l'événement `window` `nodefony:hmr`.
|
|
11
|
+
* Aucune connexion réseau ouverte. No-op hors navigateur.
|
|
12
|
+
*
|
|
13
|
+
* @param onEvent - appelé à chaque hot-update relayé par le pont.
|
|
14
|
+
* @returns dispose() — retire le listener (OBLIGATOIRE au démontage).
|
|
15
|
+
*/
|
|
16
|
+
export declare function observeViteHmr(onEvent: (e: HmrEvent) => void): () => void;
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Subpath `nodefony/debugbar` — point d'entrée de la debug bar Nodefony.
|
|
3
|
+
*
|
|
4
|
+
* Entry Rollup SÉPARÉE (tree-shakée, 0 octet si non importée) : ce fichier ne
|
|
5
|
+
* doit JAMAIS être réexporté depuis `client/index.ts` (sinon le barrel `nodefony`
|
|
6
|
+
* navigateur tire toute la barre). Cf décision `project_client_lib_subpaths_decision`.
|
|
7
|
+
*
|
|
8
|
+
* Usage :
|
|
9
|
+
* ```ts
|
|
10
|
+
* import { mountDebugBar } from "nodefony/debugbar";
|
|
11
|
+
* mountDebugBar(); // dev only
|
|
12
|
+
* ```
|
|
13
|
+
*/
|
|
14
|
+
import { DebugBar, type DebugBarOptions } from "./DebugBar.js";
|
|
15
|
+
export { DebugBar };
|
|
16
|
+
export type { DebugBarOptions };
|
|
17
|
+
export type { DebugBarView, DebugBarModel } from "./model.js";
|
|
18
|
+
export { computeWaterfall, phaseTier, NetworkModel, isError as isNetworkError, } from "./profile.js";
|
|
19
|
+
export type { ProfileEntry, ProfilePhase, ProfileQuery, ProfileState, WaterfallBar, } from "./profile.js";
|
|
20
|
+
export type { NetEntry } from "./network.js";
|
|
21
|
+
/**
|
|
22
|
+
* Monte la debug bar sur la page courante. Idempotent (un seul widget par page).
|
|
23
|
+
* No-op hors navigateur (SSR). Branche un {@link RealtimeClient} sur le WS
|
|
24
|
+
* realtime et rend l'overlay live.
|
|
25
|
+
*
|
|
26
|
+
* @param opts - URL du WS, client partagé, position, ouverture initiale
|
|
27
|
+
* @returns l'instance {@link DebugBar} (appeler `.unmount()` pour retirer)
|
|
28
|
+
*/
|
|
29
|
+
export declare function mountDebugBar(opts?: DebugBarOptions): DebugBar;
|
|
30
|
+
export default mountDebugBar;
|
|
@@ -0,0 +1,158 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* État PUR de la debug bar — ingère les payloads des canaux realtime
|
|
3
|
+
* (`nodefony:supervision`, `nodefony:syslog`) et expose une vue dénormalisée prête
|
|
4
|
+
* à rendre (séries temporelles pour sparklines incluses). Aucune dépendance
|
|
5
|
+
* DOM/réseau → unit-testable côté Node.
|
|
6
|
+
*
|
|
7
|
+
* Le rendu (DOM/Shadow/SVG) vit dans `DebugBar.ts` : ce modèle ne fait QUE de la
|
|
8
|
+
* collecte/agrégation, exactement comme les providers serveur sont découplés du
|
|
9
|
+
* transport. Découplage collecte / rendu.
|
|
10
|
+
*/
|
|
11
|
+
import type { RealtimeState } from "../realtime/RealtimeClient.js";
|
|
12
|
+
/** Métadonnées applicatives statiques (env, branche git, version) — bloc `app`. */
|
|
13
|
+
export interface AppMeta {
|
|
14
|
+
name?: string;
|
|
15
|
+
version?: string;
|
|
16
|
+
env?: string;
|
|
17
|
+
debug?: boolean;
|
|
18
|
+
branch?: string;
|
|
19
|
+
}
|
|
20
|
+
/** Payload du canal `nodefony:supervision` (cf studio `createStatsTicker`). */
|
|
21
|
+
export interface StatsPayload {
|
|
22
|
+
ts: number;
|
|
23
|
+
app?: AppMeta;
|
|
24
|
+
instanceId?: string;
|
|
25
|
+
uptime?: number;
|
|
26
|
+
pid?: number;
|
|
27
|
+
cpuPercent?: number;
|
|
28
|
+
cpuCount?: number;
|
|
29
|
+
eventLoopMs?: number;
|
|
30
|
+
loadavg?: number[];
|
|
31
|
+
memory?: {
|
|
32
|
+
rss?: number;
|
|
33
|
+
heapUsed?: number;
|
|
34
|
+
heapTotal?: number;
|
|
35
|
+
heapLimit?: number;
|
|
36
|
+
external?: number;
|
|
37
|
+
};
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Pdu sérialisé tel qu'il transite sur `nodefony:syslog` (JSON.stringify d'un
|
|
41
|
+
* {@link Pdu} côté serveur). Le message vit dans `payload`, le producteur dans
|
|
42
|
+
* `moduleName` — on réhydrate un vrai {@link Pdu} (même classe Core des 2 côtés).
|
|
43
|
+
*/
|
|
44
|
+
export interface LogEntry {
|
|
45
|
+
payload?: unknown;
|
|
46
|
+
severity?: number;
|
|
47
|
+
severityName?: string;
|
|
48
|
+
moduleName?: string;
|
|
49
|
+
msgid?: string;
|
|
50
|
+
msg?: string;
|
|
51
|
+
/**
|
|
52
|
+
* Les champs ci-dessous voyagent DÉJÀ sur le canal : le pont publie le `Pdu`
|
|
53
|
+
* entier, et `JSON.stringify` sérialise toutes ses propriétés publiques (il
|
|
54
|
+
* n'a pas de `toJSON` qui les filtrerait). La console d'administration les lit
|
|
55
|
+
* sur cette même source. La barre les ignorait — c'est tout ce qui lui
|
|
56
|
+
* manquait pour corréler ce qu'elle montre avec le reste du framework.
|
|
57
|
+
*/
|
|
58
|
+
timeStamp?: number;
|
|
59
|
+
uid?: number;
|
|
60
|
+
pid?: number;
|
|
61
|
+
/**
|
|
62
|
+
* Identifiant de la requête qui a produit ce journal. C'est LE champ qui relie
|
|
63
|
+
* un clic dans le navigateur à sa route, à sa requête de base de données et à
|
|
64
|
+
* sa réponse — la trace de bout en bout. Absent hors de toute portée de
|
|
65
|
+
* requête (démarrage, tâche de fond), et c'est normal.
|
|
66
|
+
*/
|
|
67
|
+
requestId?: string;
|
|
68
|
+
}
|
|
69
|
+
/** Payload coalescé du canal `nodefony:syslog` (cf studio `createSyslogBridge`). */
|
|
70
|
+
export interface SyslogPayload {
|
|
71
|
+
logs?: LogEntry[];
|
|
72
|
+
dropped?: number;
|
|
73
|
+
}
|
|
74
|
+
/** Log normalisé pour le feed du widget. */
|
|
75
|
+
export interface FeedLog {
|
|
76
|
+
severity: number;
|
|
77
|
+
name: string;
|
|
78
|
+
text: string;
|
|
79
|
+
module: string;
|
|
80
|
+
/** Horodatage du PRODUCTEUR, pas de la réception : deux horloges mentiraient. */
|
|
81
|
+
ts: number;
|
|
82
|
+
/** Numéro de séquence du `Pdu` — identifie une entrée sans ambiguïté. */
|
|
83
|
+
uid: number;
|
|
84
|
+
/** Catégorie du message (`KERNEL`, `ROUTER`, `AUTH`…), vide si absente. */
|
|
85
|
+
msgid: string;
|
|
86
|
+
/** Worker émetteur — en cluster, dit LEQUEL a parlé. */
|
|
87
|
+
pid: number;
|
|
88
|
+
/** Requête corrélée, quand elle est connue. */
|
|
89
|
+
requestId?: string;
|
|
90
|
+
}
|
|
91
|
+
/** Vue dénormalisée consommée par le rendu. */
|
|
92
|
+
export interface DebugBarView {
|
|
93
|
+
state: RealtimeState;
|
|
94
|
+
/** Métadonnées app (env, branche git, version) — depuis le bloc `app` des stats. */
|
|
95
|
+
appName: string;
|
|
96
|
+
appVersion: string;
|
|
97
|
+
env: string;
|
|
98
|
+
debug: boolean;
|
|
99
|
+
branch: string;
|
|
100
|
+
cpuPercent: number;
|
|
101
|
+
cpuPeak: number;
|
|
102
|
+
cpuCount: number;
|
|
103
|
+
eventLoopMs: number;
|
|
104
|
+
eventLoopPeak: number;
|
|
105
|
+
uptime: number;
|
|
106
|
+
pid: number;
|
|
107
|
+
instanceId: string;
|
|
108
|
+
loadavg: number[];
|
|
109
|
+
rss: number;
|
|
110
|
+
heapUsed: number;
|
|
111
|
+
heapTotal: number;
|
|
112
|
+
heapLimit: number;
|
|
113
|
+
external: number;
|
|
114
|
+
/** heapUsed / heapLimit en %, 0 si limite inconnue. */
|
|
115
|
+
heapPercent: number;
|
|
116
|
+
heapPeak: number;
|
|
117
|
+
/** Séries temporelles (anciens → récents) pour les sparklines. */
|
|
118
|
+
cpuSeries: number[];
|
|
119
|
+
heapSeries: number[];
|
|
120
|
+
loopSeries: number[];
|
|
121
|
+
/** Total de logs reçus depuis le montage. */
|
|
122
|
+
logTotal: number;
|
|
123
|
+
/** Logs de sévérité ≤ 3 (ERROR/CRITIC/ALERT/EMERGENCY). */
|
|
124
|
+
errorCount: number;
|
|
125
|
+
/** Logs de sévérité === 4 (WARNING). */
|
|
126
|
+
warnCount: number;
|
|
127
|
+
/** Logs omis par le coalescing serveur (surcharge). */
|
|
128
|
+
dropped: number;
|
|
129
|
+
/** Derniers logs (récents en dernier), capés. */
|
|
130
|
+
feed: FeedLog[];
|
|
131
|
+
}
|
|
132
|
+
/** Logs conservés dans le feed. */
|
|
133
|
+
export declare const FEED_MAX = 40;
|
|
134
|
+
export declare class DebugBarModel {
|
|
135
|
+
private _state;
|
|
136
|
+
private _stats;
|
|
137
|
+
private _cpuPeak;
|
|
138
|
+
private _heapPeak;
|
|
139
|
+
private _loopPeak;
|
|
140
|
+
private readonly _cpuSeries;
|
|
141
|
+
private readonly _heapSeries;
|
|
142
|
+
private readonly _loopSeries;
|
|
143
|
+
private _logTotal;
|
|
144
|
+
private _errorCount;
|
|
145
|
+
private _warnCount;
|
|
146
|
+
private _dropped;
|
|
147
|
+
private readonly _feed;
|
|
148
|
+
setState(state: RealtimeState): void;
|
|
149
|
+
/** Mémorise le dernier tick stats + alimente les séries/peaks. */
|
|
150
|
+
ingestStats(payload: StatsPayload): void;
|
|
151
|
+
/**
|
|
152
|
+
* Comptabilise un batch de logs coalescés (compteurs cumulés + feed). Chaque
|
|
153
|
+
* entrée est **réhydratée en {@link Pdu}** — la MÊME classe Core que côté
|
|
154
|
+
* serveur (severityName/payload canoniques, pas de devinette de champ).
|
|
155
|
+
*/
|
|
156
|
+
ingestSyslog(payload: SyslogPayload): void;
|
|
157
|
+
get view(): DebugBarView;
|
|
158
|
+
}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Intercepteur réseau **dev-only** de la debug bar — capture les appels AJAX
|
|
3
|
+
* (`fetch` + `XMLHttpRequest`) de la page pour le panneau Network, et lit le
|
|
4
|
+
* header `X-Request-Id` de chaque réponse → corrélation avec le profil serveur
|
|
5
|
+
* (`/nodefony/profiler/api/{requestId}`).
|
|
6
|
+
*
|
|
7
|
+
* ⚠️ Monkey-patch des globals = intrusif. Donc 6 garde-fous (cf décision design) :
|
|
8
|
+
* 1. **dev-only** : n'est installé que par la debug bar, jamais en prod.
|
|
9
|
+
* 2. **défensif** : toute la collecte est en try/catch — un bug ici ne casse
|
|
10
|
+
* JAMAIS la requête de l'app (on relaie toujours l'appel original).
|
|
11
|
+
* 3. **header-only** : on ne touche jamais au body (pas de `.clone()`, pas de
|
|
12
|
+
* lecture du stream) → 0 risque de consommer/altérer la réponse.
|
|
13
|
+
* 4. **réversible** : `uninstall()` restaure les implémentations d'origine.
|
|
14
|
+
* 5. **chain-safe** : on wrappe le `fetch`/XHR COURANT (déjà potentiellement
|
|
15
|
+
* patché par une autre lib), on ne clobber pas — l'uninstall ne restaure que
|
|
16
|
+
* si personne n'a re-patché par-dessus.
|
|
17
|
+
* 6. **opt-out** : `mountDebugBar({ network:false })` n'installe rien.
|
|
18
|
+
*
|
|
19
|
+
* Coût : 2 `performance.now()` + lecture d'1 header + 1 push capé par appel.
|
|
20
|
+
* Négligeable vs la latence réseau.
|
|
21
|
+
*/
|
|
22
|
+
/** Une entrée du panneau Network (1 appel AJAX observé). */
|
|
23
|
+
export interface NetEntry {
|
|
24
|
+
/** Id local monotone (clé de rendu, ≠ requestId serveur). */
|
|
25
|
+
id: number;
|
|
26
|
+
method: string;
|
|
27
|
+
url: string;
|
|
28
|
+
/** Path seul (sans origin/query) pour l'affichage compact. */
|
|
29
|
+
path: string;
|
|
30
|
+
status: number | null;
|
|
31
|
+
ok: boolean;
|
|
32
|
+
/** Durée client (ms, envoi → réponse), `null` tant que pending. */
|
|
33
|
+
durationMs: number | null;
|
|
34
|
+
startedAt: number;
|
|
35
|
+
/** `X-Request-Id` de la réponse → clé du profil serveur. `null` si absent. */
|
|
36
|
+
requestId: string | null;
|
|
37
|
+
/** `traceparent` W3C (RFC-propre) de la réponse, pour la corrélation distribuée. */
|
|
38
|
+
traceparent: string | null;
|
|
39
|
+
/** Vrai tant que la réponse n'est pas arrivée. */
|
|
40
|
+
pending: boolean;
|
|
41
|
+
/** Message d'erreur réseau (fetch rejeté / XHR error), sinon `null`. */
|
|
42
|
+
error: string | null;
|
|
43
|
+
}
|
|
44
|
+
export interface NetworkInterceptorOptions {
|
|
45
|
+
/** Appelé à chaque création/mise à jour d'entrée (re-render). */
|
|
46
|
+
onChange: (entry: NetEntry) => void;
|
|
47
|
+
/** Prédicat d'exclusion d'une URL (ex. l'API profiler elle-même). */
|
|
48
|
+
ignore?: (url: string) => boolean;
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* Installe l'intercepteur fetch + XHR. No-op hors navigateur.
|
|
52
|
+
*
|
|
53
|
+
* @returns `uninstall()` — restaure les globals (OBLIGATOIRE à l'unmount).
|
|
54
|
+
*/
|
|
55
|
+
export declare function installNetworkInterceptor(opts: NetworkInterceptorOptions): () => void;
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Modèle PUR du panneau Network + profil serveur — aucune dépendance DOM/réseau
|
|
3
|
+
* (le fetch vit dans `DebugBar.ts`, l'interception dans `network.ts`). Testable
|
|
4
|
+
* côté Node, comme {@link DebugBarModel}.
|
|
5
|
+
*
|
|
6
|
+
* Deux responsabilités :
|
|
7
|
+
* - {@link NetworkModel} : ring buffer des appels AJAX observés + compteurs +
|
|
8
|
+
* cache des profils serveur déjà fetchés (par `requestId`).
|
|
9
|
+
* - {@link computeWaterfall} : layout proportionnel des phases serveur (le
|
|
10
|
+
* centre UX — une timeline type Chrome/Symfony).
|
|
11
|
+
*/
|
|
12
|
+
import type { NetEntry } from "./network.js";
|
|
13
|
+
/** Phase serveur projetée (miroir client de `@nodefony/http` `ProfilePhase`). */
|
|
14
|
+
export interface ProfilePhase {
|
|
15
|
+
name: string;
|
|
16
|
+
startMs: number;
|
|
17
|
+
durationMs: number | null;
|
|
18
|
+
}
|
|
19
|
+
/** Requête ORM (miroir client de `@nodefony/http` `ProfileQuery` — SEAM futur). */
|
|
20
|
+
export interface ProfileQuery {
|
|
21
|
+
sql: string;
|
|
22
|
+
durationMs: number;
|
|
23
|
+
rows?: number;
|
|
24
|
+
connector?: string;
|
|
25
|
+
}
|
|
26
|
+
/** Profil serveur complet (miroir client de `@nodefony/http` `ProfileEntry`). */
|
|
27
|
+
export interface ProfileEntry {
|
|
28
|
+
requestId: string;
|
|
29
|
+
ts: number;
|
|
30
|
+
kind: "http" | "ws";
|
|
31
|
+
method: string | null;
|
|
32
|
+
url: string;
|
|
33
|
+
scheme: string;
|
|
34
|
+
status: number | null;
|
|
35
|
+
durationMs: number | null;
|
|
36
|
+
route: string | null;
|
|
37
|
+
controller: string | null;
|
|
38
|
+
action: string | null;
|
|
39
|
+
remoteAddress: string | null;
|
|
40
|
+
user: string | null;
|
|
41
|
+
/** `traceparent` W3C (RFC-propre), si présent. */
|
|
42
|
+
traceparent: string | null;
|
|
43
|
+
error: string | null;
|
|
44
|
+
phases: ProfilePhase[];
|
|
45
|
+
/** Requêtes ORM (SEAM futur — `undefined` tant qu'aucun adapter ne pushe). */
|
|
46
|
+
queries?: ProfileQuery[];
|
|
47
|
+
}
|
|
48
|
+
/** État de chargement d'un profil serveur dans le cache. */
|
|
49
|
+
export type ProfileState = {
|
|
50
|
+
status: "loading";
|
|
51
|
+
} | {
|
|
52
|
+
status: "ready";
|
|
53
|
+
profile: ProfileEntry;
|
|
54
|
+
} | {
|
|
55
|
+
status: "missing";
|
|
56
|
+
} | {
|
|
57
|
+
status: "error";
|
|
58
|
+
message: string;
|
|
59
|
+
};
|
|
60
|
+
/** Une barre du waterfall (positions en % du span total). */
|
|
61
|
+
export interface WaterfallBar {
|
|
62
|
+
name: string;
|
|
63
|
+
leftPct: number;
|
|
64
|
+
widthPct: number;
|
|
65
|
+
durationMs: number;
|
|
66
|
+
/** Classe de couleur CSS (cf STYLES `.wf-<tier>`). */
|
|
67
|
+
tier: string;
|
|
68
|
+
}
|
|
69
|
+
/** Mappe un nom de phase vers sa classe de couleur (défaut neutre). */
|
|
70
|
+
export declare function phaseTier(name: string): string;
|
|
71
|
+
export declare class NetworkModel {
|
|
72
|
+
private readonly _byId;
|
|
73
|
+
private readonly _profiles;
|
|
74
|
+
private _total;
|
|
75
|
+
private _errors;
|
|
76
|
+
/** Upsert d'une entrée (pending puis résolue partagent le même `id`). */
|
|
77
|
+
ingest(entry: NetEntry): void;
|
|
78
|
+
/** Entrées récentes (récent → ancien) pour le rendu. */
|
|
79
|
+
entries(): NetEntry[];
|
|
80
|
+
get total(): number;
|
|
81
|
+
get errors(): number;
|
|
82
|
+
get pending(): number;
|
|
83
|
+
profileState(requestId: string): ProfileState | undefined;
|
|
84
|
+
setProfileState(requestId: string, state: ProfileState): void;
|
|
85
|
+
clear(): void;
|
|
86
|
+
}
|
|
87
|
+
/** Vrai si une entrée est en erreur réseau ou status ≥ 400. */
|
|
88
|
+
export declare function isError(e: NetEntry): boolean;
|
|
89
|
+
/**
|
|
90
|
+
* Calcule le layout proportionnel des phases serveur (waterfall). Pur.
|
|
91
|
+
*
|
|
92
|
+
* Chaque barre est positionnée sur le span `[min start, max end]` en %. Une
|
|
93
|
+
* phase de durée nulle reçoit une largeur plancher (visibilité). Span nul →
|
|
94
|
+
* barres vides (évite la division par zéro).
|
|
95
|
+
*
|
|
96
|
+
* @param phases - phases du profil serveur (startMs relatif + durationMs)
|
|
97
|
+
* @returns barres prêtes à rendre (gauche/largeur en %)
|
|
98
|
+
*/
|
|
99
|
+
export declare function computeWaterfall(phases: ProfilePhase[]): WaterfallBar[];
|