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,70 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Notice temps réel normalisée — Core isomorphe Nodefony.
|
|
3
|
+
*
|
|
4
|
+
* Format **unique** d'un retour à porter à l'attention de l'utilisateur, quelle
|
|
5
|
+
* que soit sa source (transport temps réel, appel data plane, push serveur). Le
|
|
6
|
+
* centre de notifications d'une app (Studio : snackbar Mantine) consomme ce format
|
|
7
|
+
* sans connaître l'origine → réutilisable par TOUTE app (`import … from "nodefony"`).
|
|
8
|
+
*/
|
|
9
|
+
import type { IRealtimeDenied } from "../../realtime/RealtimeEventMap.js";
|
|
10
|
+
export type { IRealtimeDenied };
|
|
11
|
+
/** Sévérité d'affichage — alignée sur les niveaux snackbar usuels. */
|
|
12
|
+
export type NoticeLevel = "success" | "info" | "warning" | "error";
|
|
13
|
+
/** Notice normalisée prête à afficher (snackbar / centre de notifications). */
|
|
14
|
+
export interface NodefonyNotice {
|
|
15
|
+
/** Sévérité d'affichage. */
|
|
16
|
+
level: NoticeLevel;
|
|
17
|
+
/** Titre court (gras), optionnel. */
|
|
18
|
+
title?: string;
|
|
19
|
+
/** Message lisible (déjà localisé FR). */
|
|
20
|
+
message: string;
|
|
21
|
+
/** Origine — `realtime` (transport WS), `api` (data plane HTTP), `server` (push). */
|
|
22
|
+
source: "realtime" | "api" | "server";
|
|
23
|
+
/** Code corrélé : close code WS, status HTTP ou code d'erreur JSON-RPC. */
|
|
24
|
+
code?: number;
|
|
25
|
+
/** Timestamp (ms epoch) de production. */
|
|
26
|
+
ts: number;
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Traduit un refus de canal (`realtime:denied`, {@link IRealtimeDenied}) en
|
|
30
|
+
* {@link NodefonyNotice}. Pendant FRAME du {@link closeCodeToNotice} (qui traite
|
|
31
|
+
* la fermeture de la CONNEXION) : ici la connexion vit, seul l'abonnement à CE
|
|
32
|
+
* canal n'a pas abouti.
|
|
33
|
+
*
|
|
34
|
+
* Le message SUIT le motif, parce que les trois n'appellent pas le même geste :
|
|
35
|
+
* un accès refusé demande une élévation de droits, un plafond atteint demande de
|
|
36
|
+
* libérer un abonnement, un canal sans producteur demande de relire son nom. Un
|
|
37
|
+
* « accès refusé » affiché sur une faute de frappe envoie chercher un droit qui
|
|
38
|
+
* n'a jamais manqué. Ce qui reste générique, et le restera, c'est le DÉTAIL de la
|
|
39
|
+
* politique : le serveur ne dit jamais quel rôle ou quel scope manque.
|
|
40
|
+
*
|
|
41
|
+
* @param denied - `{ channel, reason }` reçu du serveur.
|
|
42
|
+
* @returns une notice prête à afficher (toujours, contrairement au close-code).
|
|
43
|
+
*/
|
|
44
|
+
export declare function deniedToNotice(denied: IRealtimeDenied): NodefonyNotice;
|
|
45
|
+
/**
|
|
46
|
+
* Traduit un **code de fermeture WebSocket** (RFC 6455 §7.4) en {@link NodefonyNotice}
|
|
47
|
+
* — pendant CLIENT du `toWsCloseCode` serveur (`@nodefony/http`). Pur, sans état,
|
|
48
|
+
* donc trivialement testable et réutilisable.
|
|
49
|
+
*
|
|
50
|
+
* Retourne `null` pour une fermeture **propre** (1000) ou **attendue** (1001 going
|
|
51
|
+
* away = restart serveur, le reconnect rétablit) : pas de bruit inutile.
|
|
52
|
+
*
|
|
53
|
+
* @param code - code de fermeture reçu (`CloseEvent.code`).
|
|
54
|
+
* @param reason - description optionnelle (`CloseEvent.reason`), ajoutée au message.
|
|
55
|
+
* @returns une notice à afficher, ou `null` si la fermeture ne mérite aucune alerte.
|
|
56
|
+
*/
|
|
57
|
+
export declare function closeCodeToNotice(code: number | undefined, reason?: string): NodefonyNotice | null;
|
|
58
|
+
/**
|
|
59
|
+
* Faut-il tenter une reconnexion après ce close code WebSocket ? Pendant CLIENT
|
|
60
|
+
* de la sémantique RFC 6455 §7.4 émise par le serveur (`toWsCloseCode`).
|
|
61
|
+
*
|
|
62
|
+
* `false` pour les fermetures DÉFINITIVES (cf {@link FATAL_CLOSE_CODES}) : l'app
|
|
63
|
+
* doit agir (ex. login après un 1008) puis rétablir explicitement (`connect()` /
|
|
64
|
+
* `retryNow()`). `true` pour les transitoires (1001 restart, 1006 perte réseau,
|
|
65
|
+
* 1011 erreur serveur, code absent/inconnu) où la reconnexion a une chance.
|
|
66
|
+
*
|
|
67
|
+
* @param code - close code reçu (`CloseEvent.code`), ou `undefined` (anormal).
|
|
68
|
+
* @returns `true` si une reconnexion auto est pertinente.
|
|
69
|
+
*/
|
|
70
|
+
export declare function isReconnectableCloseCode(code: number | undefined): boolean;
|
|
@@ -0,0 +1,284 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* observe — **socle agnostique des liaisons de vue** du client temps réel.
|
|
3
|
+
*
|
|
4
|
+
* Souscrire à un canal, tenir une dernière valeur, borner un journal, filtrer par
|
|
5
|
+
* sévérité, se désabonner proprement : rien de tout cela n'appartient à React, à
|
|
6
|
+
* Vue, à Angular ni à Svelte. Ce qui leur appartient — la SEULE chose qu'une
|
|
7
|
+
* liaison a le droit de contenir — c'est la traduction *rappel + libération →
|
|
8
|
+
* réactivité locale* : un `useState`, un `ref`, un `signal`, une rune.
|
|
9
|
+
*
|
|
10
|
+
* Chaque fonction de ce module a donc la même forme, et c'est tout le contrat :
|
|
11
|
+
*
|
|
12
|
+
* ```
|
|
13
|
+
* observeX(client, …arguments, emit) → dispose
|
|
14
|
+
* ```
|
|
15
|
+
*
|
|
16
|
+
* `emit` est appelé avec la valeur courante ; `dispose` coupe tout. Une liaison
|
|
17
|
+
* s'écrit alors en trois lignes dans n'importe quel framework, et les onze règles
|
|
18
|
+
* qui vivaient dans les hooks React — précédence de la socket fournie, cycle de
|
|
19
|
+
* connexion, appariement `on`↔`subscribe`, format coalescé du journal, tailles
|
|
20
|
+
* d'anneau, canal par défaut — n'existent qu'ICI.
|
|
21
|
+
*
|
|
22
|
+
* Pourquoi ce module existe : sans lui, porter les douze hooks vers trois autres
|
|
23
|
+
* fronts donnait **quatre implémentations de la même règle**, qui divergent en
|
|
24
|
+
* silence. Le dépôt l'a déjà payé — `"__state__"` était recopié en dur dans les
|
|
25
|
+
* trois gabarits, et la convention de cadence avait été fabriquée à la main trois
|
|
26
|
+
* fois côté navigateur avant d'être centralisée.
|
|
27
|
+
*
|
|
28
|
+
* Zéro dépendance à un framework de vue, zéro DOM : ce fichier tourne dans un
|
|
29
|
+
* test Node comme dans un bundle navigateur.
|
|
30
|
+
*
|
|
31
|
+
* @module nodefony/client
|
|
32
|
+
*/
|
|
33
|
+
import { RealtimeClient } from "./RealtimeClient.js";
|
|
34
|
+
import type { RealtimeState, RealtimeIdentity, RealtimeReconnectInfo, NodefonyNotice, MessageStats } from "./RealtimeClient.js";
|
|
35
|
+
import type { BindAdaptiveOptions, AdaptiveChannelBinding } from "./AdaptiveRate.js";
|
|
36
|
+
/** Rappel d'une liaison de vue : reçoit la valeur courante. */
|
|
37
|
+
export type Emit<T> = (value: T) => void;
|
|
38
|
+
/** Libération d'une souscription. Idempotente chez tous les observateurs de ce module. */
|
|
39
|
+
export type Dispose = () => void;
|
|
40
|
+
/**
|
|
41
|
+
* Socket sur laquelle un observateur travaille. Volontairement le client
|
|
42
|
+
* NON paramétré : une liaison de vue ne connaît pas les cartes d'événements
|
|
43
|
+
* typées de l'application.
|
|
44
|
+
*/
|
|
45
|
+
export type ObservableClient = RealtimeClient;
|
|
46
|
+
/** Options de {@link connectShared} — l'adresse, ou la socket déjà construite. */
|
|
47
|
+
export interface ConnectSharedOptions {
|
|
48
|
+
/**
|
|
49
|
+
* Adresse du serveur temps réel — la voie SIMPLE. La socket partagée de cette
|
|
50
|
+
* URL est fabriquée (ou réutilisée) et connectée par {@link SharedConnection.start}.
|
|
51
|
+
*/
|
|
52
|
+
url?: string;
|
|
53
|
+
/**
|
|
54
|
+
* Socket déjà construite — la voie AVANCÉE, quand l'application possède son
|
|
55
|
+
* cycle de connexion (c'est le cas de la console d'administration, qui
|
|
56
|
+
* re-négocie la socket sur changement d'identité).
|
|
57
|
+
*
|
|
58
|
+
* Fournie, elle l'emporte sur `url` et son cycle n'est **pas** touché : ni
|
|
59
|
+
* `connect`, ni `disconnect`.
|
|
60
|
+
*/
|
|
61
|
+
client?: ObservableClient;
|
|
62
|
+
}
|
|
63
|
+
/** Résultat de {@link connectShared} : la socket, à qui elle appartient, et comment la démarrer. */
|
|
64
|
+
export interface SharedConnection {
|
|
65
|
+
/** La socket à donner aux observateurs. */
|
|
66
|
+
socket: ObservableClient;
|
|
67
|
+
/**
|
|
68
|
+
* `true` si c'est nous qui l'avons obtenue depuis l'URL — donc à nous de la
|
|
69
|
+
* connecter. `false` si l'application l'a fournie : son cycle lui appartient.
|
|
70
|
+
*/
|
|
71
|
+
owned: boolean;
|
|
72
|
+
/**
|
|
73
|
+
* Ouvre la connexion si elle nous appartient, sinon ne fait rien. Idempotente
|
|
74
|
+
* (`connect()` est un no-op si la socket est déjà connectée ou en cours), et
|
|
75
|
+
* le rejet est avalé : la reconnexion automatique prend le relais, et l'état
|
|
76
|
+
* reste lisible par {@link observeState}.
|
|
77
|
+
*/
|
|
78
|
+
start(): void;
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* Résout la socket partagée d'une adresse — ou adopte celle qu'on lui donne —
|
|
82
|
+
* et rend de quoi la démarrer sans jamais la couper.
|
|
83
|
+
*
|
|
84
|
+
* Trois règles tiennent dans cette fonction, et c'est pour cela qu'elle existe :
|
|
85
|
+
*
|
|
86
|
+
* 1. **`client` l'emporte sur `url`** ; une socket fournie appartient à
|
|
87
|
+
* l'application.
|
|
88
|
+
* 2. **`connect()` est idempotent et son rejet est avalé** — le double montage
|
|
89
|
+
* du mode strict de React n'ouvre pas deux sockets, et un serveur absent au
|
|
90
|
+
* premier essai ne remonte pas une erreur non gérée.
|
|
91
|
+
* 3. **Jamais de `disconnect()` au démontage.** La connexion appartient à la
|
|
92
|
+
* PAGE, pas au composant : couper ici tranche les requêtes en vol des autres
|
|
93
|
+
* consommateurs de la même socket partagée. C'est une régression déjà vécue.
|
|
94
|
+
*
|
|
95
|
+
* Recopiée dans une quatrième liaison, la règle 3 se perd — elle est en creux
|
|
96
|
+
* (« ne pas faire »), donc invisible à la relecture.
|
|
97
|
+
*
|
|
98
|
+
* @example La voie simple, dans n'importe quel framework :
|
|
99
|
+
* ```ts
|
|
100
|
+
* const live = connectShared({ url: "/api/live/realtime" });
|
|
101
|
+
* live.start();
|
|
102
|
+
* observeChannelData(live.socket, "live:events", (e) => setDernier(e));
|
|
103
|
+
* ```
|
|
104
|
+
*
|
|
105
|
+
* @throws si ni `url` ni `client` ne sont fournis — l'adresse dépend de
|
|
106
|
+
* l'application, le framework n'en devine aucune.
|
|
107
|
+
*/
|
|
108
|
+
export declare function connectShared(opts: ConnectSharedOptions): SharedConnection;
|
|
109
|
+
/**
|
|
110
|
+
* Observe l'état de la connexion. `emit` reçoit l'état courant **immédiatement**,
|
|
111
|
+
* puis à chaque transition — une liaison n'a donc rien à initialiser à part.
|
|
112
|
+
*/
|
|
113
|
+
export declare function observeState(client: ObservableClient, emit: Emit<RealtimeState>): Dispose;
|
|
114
|
+
/**
|
|
115
|
+
* Observe l'identité résolue par le serveur au welcome (`null` tant qu'aucun
|
|
116
|
+
* welcome n'est arrivé, et après un `disconnect()` volontaire). `emit` reçoit la
|
|
117
|
+
* valeur courante immédiatement, puis à chaque (re)welcome.
|
|
118
|
+
*
|
|
119
|
+
* Brique du gating d'écran : `authenticated: false` → écran de connexion, sans
|
|
120
|
+
* route `/auth/me`.
|
|
121
|
+
*/
|
|
122
|
+
export declare function observeIdentity(client: ObservableClient, emit: Emit<RealtimeIdentity | null>): Dispose;
|
|
123
|
+
/**
|
|
124
|
+
* Observe les **tentatives de reconnexion** programmées par le back-off :
|
|
125
|
+
* numéro d'essai, délai retenu, échéance absolue. De quoi rendre un compte à
|
|
126
|
+
* rebours plutôt qu'un « déconnecté » muet.
|
|
127
|
+
*
|
|
128
|
+
* Contrairement aux autres observateurs, rien n'est émis à la souscription : une
|
|
129
|
+
* tentative est un ÉVÉNEMENT, pas un état — il n'y a pas de « valeur courante »
|
|
130
|
+
* à rejouer, et en inventer une afficherait un compte à rebours périmé.
|
|
131
|
+
*/
|
|
132
|
+
export declare function observeReconnect(client: ObservableClient, emit: Emit<RealtimeReconnectInfo>): Dispose;
|
|
133
|
+
/**
|
|
134
|
+
* Observe un canal pub/sub : `emit` est appelé pour chaque message reçu.
|
|
135
|
+
*
|
|
136
|
+
* L'appariement `on`↔`subscribe` et `dispose`↔`unsubscribe` n'est pas réécrit
|
|
137
|
+
* ici : c'est {@link RealtimeClient.channel} qui l'encapsule, et le rejouer
|
|
138
|
+
* mettrait la même règle deux fois dans le cœur. L'abonnement serveur est
|
|
139
|
+
* ref-compté (N observateurs du même canal = un seul abonnement réseau) et
|
|
140
|
+
* rejoué à chaque reconnexion.
|
|
141
|
+
*/
|
|
142
|
+
export declare function observeChannel(client: ObservableClient, channel: string, emit: Emit<unknown>): Dispose;
|
|
143
|
+
/**
|
|
144
|
+
* Observe la **dernière valeur** reçue sur un canal — le cas le plus courant
|
|
145
|
+
* (dernière mesure d'un flux d'état). `emit` reçoit `initial` immédiatement,
|
|
146
|
+
* puis chaque nouvelle valeur : dernier arrivé gagne.
|
|
147
|
+
*/
|
|
148
|
+
export declare function observeChannelData<T = unknown>(client: ObservableClient, channel: string, emit: Emit<T | null>, initial?: T | null): Dispose;
|
|
149
|
+
/**
|
|
150
|
+
* Observe les **statistiques** d'un canal (débit, série du VU-mètre, total),
|
|
151
|
+
* rafraîchies par l'échantillonneur du client une fois par seconde. `emit`
|
|
152
|
+
* reçoit l'instantané courant immédiatement, puis à chaque échantillon.
|
|
153
|
+
*
|
|
154
|
+
* L'instantané est un objet recréé à chaque lecture : une liaison qui exige une
|
|
155
|
+
* référence stable (le store externe de React) ne doit pas s'y brancher
|
|
156
|
+
* directement — c'est pourquoi le hook correspondant tient un état local.
|
|
157
|
+
*/
|
|
158
|
+
export declare function observeChannelStats(client: ObservableClient, channel: string, emit: Emit<MessageStats | null>): Dispose;
|
|
159
|
+
/**
|
|
160
|
+
* Clé de **re-liaison** d'un canal en cadence adaptative.
|
|
161
|
+
*
|
|
162
|
+
* Trois valeurs, et trois seulement, doivent défaire puis refaire l'abonnement :
|
|
163
|
+
* le canal de base, la cadence désirée et l'interrupteur adaptatif. Ni le
|
|
164
|
+
* gestionnaire, ni le reste des réglages — leur identité change à chaque rendu
|
|
165
|
+
* dans la plupart des frameworks, et re-lier à chaque rendu couperait le flux en
|
|
166
|
+
* boucle.
|
|
167
|
+
*
|
|
168
|
+
* Chaque liaison a besoin de cette clé sous une forme différente (liste de
|
|
169
|
+
* dépendances React, source d'un `watch` Vue, `$effect` Svelte) ; ce qui doit
|
|
170
|
+
* rester commun, c'est **ce qu'elle contient**.
|
|
171
|
+
*/
|
|
172
|
+
export declare function adaptiveRebindKey(base: string, desiredMs: number, enabled?: boolean): string;
|
|
173
|
+
/** Options de {@link observeAdaptiveChannel} — la cadence désirée est passée à part. */
|
|
174
|
+
export type AdaptiveObserveOptions = Omit<BindAdaptiveOptions, "intervalMs">;
|
|
175
|
+
/**
|
|
176
|
+
* Observe un canal d'ÉTAT en **cadence adaptative** (AIMD piloté par le client) :
|
|
177
|
+
* la cadence recule sous famine et remonte quand c'est sain, sans changement
|
|
178
|
+
* serveur. `emit` reçoit chaque frame à travers les changements de cadence.
|
|
179
|
+
*
|
|
180
|
+
* Réservé aux canaux latest-wins : décimer un canal d'événements perd des
|
|
181
|
+
* messages.
|
|
182
|
+
*
|
|
183
|
+
* @param desiredMs - cadence souhaitée (ms).
|
|
184
|
+
* @param options - réglages AIMD ; `onRate` reste disponible pour afficher la
|
|
185
|
+
* cadence effective dans un badge.
|
|
186
|
+
* @returns la poignée du binding (cadence courante, canal effectif, `dispose`).
|
|
187
|
+
*/
|
|
188
|
+
export declare function observeAdaptiveChannel(client: ObservableClient, base: string, emit: Emit<unknown>, desiredMs: number, options?: AdaptiveObserveOptions): AdaptiveChannelBinding;
|
|
189
|
+
/**
|
|
190
|
+
* Ce que le client sait de sa PROPRE socket, à un instant donné.
|
|
191
|
+
*
|
|
192
|
+
* Pourquoi ce contrat existe : quatre écrans lisaient déjà `subscribedChannels`,
|
|
193
|
+
* `framesReceived`, `lastFrameAt` et `lastFrameMethod` à la main pour afficher
|
|
194
|
+
* la même chose — c'est-à-dire quatre lectures qui divergeront. La donnée est
|
|
195
|
+
* parfaitement agnostique ; seule sa mise en page appartient à la vue.
|
|
196
|
+
*
|
|
197
|
+
* La frontière est là, et elle est nette : **l'instantané est ici, la boîte qui
|
|
198
|
+
* l'affiche reste chez chaque front**. Publier un composant obligerait à en
|
|
199
|
+
* écrire un par framework de vue, et ferait entrer du DOM dans un module dont
|
|
200
|
+
* toute la valeur est de n'en avoir aucun.
|
|
201
|
+
*/
|
|
202
|
+
export interface SocketSnapshot {
|
|
203
|
+
/** L'adresse du serveur temps réel — de QUELLE socket cet instantané parle. */
|
|
204
|
+
url: string | null;
|
|
205
|
+
/** État de la connexion. */
|
|
206
|
+
state: RealtimeState;
|
|
207
|
+
/** Canaux effectivement tenus par cette connexion. */
|
|
208
|
+
channels: readonly string[];
|
|
209
|
+
/** Trames reçues depuis l'ouverture. */
|
|
210
|
+
frames: number;
|
|
211
|
+
/** Trames perdues faute de transport ouvert — un silence qui se compte. */
|
|
212
|
+
unsent: number;
|
|
213
|
+
/** Méthode et horodatage de la dernière trame reçue (`null` si aucune). */
|
|
214
|
+
lastFrame: {
|
|
215
|
+
method: string | null;
|
|
216
|
+
at: number | null;
|
|
217
|
+
};
|
|
218
|
+
/** Tentatives de reconnexion depuis la dernière connexion réussie. */
|
|
219
|
+
reconnectAttempts: number;
|
|
220
|
+
/** Échéance de la prochaine tentative (ms epoch), `null` hors reconnexion. */
|
|
221
|
+
nextRetryAt: number | null;
|
|
222
|
+
/** Identité résolue par le serveur, `null` avant le premier welcome. */
|
|
223
|
+
identity: RealtimeIdentity | null;
|
|
224
|
+
}
|
|
225
|
+
/**
|
|
226
|
+
* Lit l'instantané courant. Purement local : aucune trame n'est émise, rien
|
|
227
|
+
* n'est demandé au serveur — afficher cet état ne coûte donc rien au réseau.
|
|
228
|
+
*/
|
|
229
|
+
export declare function socketSnapshot(client: ObservableClient): SocketSnapshot;
|
|
230
|
+
/**
|
|
231
|
+
* Observe l'instantané : `emit` reçoit la valeur courante immédiatement, puis à
|
|
232
|
+
* chaque échantillon du client (une fois par seconde) et à chaque changement
|
|
233
|
+
* d'état — les deux seuls moments où il peut avoir bougé de façon visible.
|
|
234
|
+
*
|
|
235
|
+
* L'horloge est celle de l'échantillonneur DÉJÀ en place ; une liaison qui
|
|
236
|
+
* poserait son propre `setInterval` ajouterait un second réveil par seconde
|
|
237
|
+
* pour la même mesure.
|
|
238
|
+
*/
|
|
239
|
+
export declare function observeSnapshot(client: ObservableClient, emit: Emit<SocketSnapshot>): Dispose;
|
|
240
|
+
/** Options de {@link observeSyslog}. */
|
|
241
|
+
export interface ObserveSyslogOptions {
|
|
242
|
+
/** Taille max de l'anneau (les plus anciennes lignes sont évincées). Défaut 500. */
|
|
243
|
+
max?: number;
|
|
244
|
+
/** Ne garder que ces sévérités (ex. `["ERROR", "CRITIC"]`). Toutes par défaut. */
|
|
245
|
+
severities?: string[];
|
|
246
|
+
/** Canal source. Défaut : le canal de journaux de la plateforme. */
|
|
247
|
+
channel?: string;
|
|
248
|
+
}
|
|
249
|
+
/**
|
|
250
|
+
* Observe le **journal du serveur** : anneau borné, filtre de sévérité, et
|
|
251
|
+
* surtout le format **coalescé** du canal (`{ logs: Pdu[], dropped }`) autant que
|
|
252
|
+
* l'entrée unique. `emit` reçoit le tableau complet à chaque changement — une
|
|
253
|
+
* nouvelle référence, directement affichable.
|
|
254
|
+
*
|
|
255
|
+
* Le format coalescé est du **protocole serveur** : le décoder dans une liaison
|
|
256
|
+
* de vue, c'est le redécoder dans les trois suivantes. C'est la pire des règles
|
|
257
|
+
* qui vivaient côté React.
|
|
258
|
+
*
|
|
259
|
+
* Le canal par défaut vient de la table des canaux de plateforme — jamais d'une
|
|
260
|
+
* chaîne écrite en clair, que le prochain renommage laisserait derrière lui.
|
|
261
|
+
*/
|
|
262
|
+
export declare function observeSyslog(client: ObservableClient, emit: Emit<unknown[]>, opts?: ObserveSyslogOptions): Dispose;
|
|
263
|
+
/**
|
|
264
|
+
* Observe les **notices normalisées** du client : criticités qui cassent le temps
|
|
265
|
+
* réel (codes de fermeture RFC 6455 interprétés), erreurs poussées par le
|
|
266
|
+
* serveur, rétablissement de connexion. `emit` est appelé pour CHAQUE notice —
|
|
267
|
+
* de quoi brancher un centre de notifications.
|
|
268
|
+
*
|
|
269
|
+
* À monter **une seule fois** par page, sans quoi les notifications se dupliquent.
|
|
270
|
+
*/
|
|
271
|
+
export declare function observeNotices(client: ObservableClient, emit: Emit<NodefonyNotice>): Dispose;
|
|
272
|
+
/** Options de {@link observeNoticeLog}. */
|
|
273
|
+
export interface ObserveNoticeLogOptions {
|
|
274
|
+
/** Taille max de l'anneau (les plus anciennes notices sont évincées). Défaut 50. */
|
|
275
|
+
max?: number;
|
|
276
|
+
/** Ne garder que ces sources (ex. `["realtime"]`). Toutes par défaut. */
|
|
277
|
+
sources?: NodefonyNotice["source"][];
|
|
278
|
+
}
|
|
279
|
+
/**
|
|
280
|
+
* Observe un **historique borné** des dernières notices, filtrable par source :
|
|
281
|
+
* un journal léger des incidents temps réel, distinct des notifications
|
|
282
|
+
* éphémères. `emit` reçoit le tableau complet à chaque changement.
|
|
283
|
+
*/
|
|
284
|
+
export declare function observeNoticeLog(client: ObservableClient, emit: Emit<NodefonyNotice[]>, opts?: ObserveNoticeLogOptions): Dispose;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `nodefony/roles` — utilitaires d'autorisation par rôles, **purs et isomorphes**
|
|
3
|
+
* (front + serveur), sans dépendance ni état global.
|
|
4
|
+
*
|
|
5
|
+
* - Source de vérité = chaînes `ROLE_*` (ce que transportent JWT/OAuth/claims).
|
|
6
|
+
* - Contrôle ponctuel sans allocation : {@link hasRole}, {@link hasAnyRole}, {@link hasAllRoles}.
|
|
7
|
+
* - Contrôles répétés en O(1) : {@link RoleSet}.
|
|
8
|
+
* - Masques binaires pour ensemble FIXE en hot path serveur : {@link RoleRegistry}.
|
|
9
|
+
*
|
|
10
|
+
* Le mécanisme est générique : les rôles applicatifs (ex. `ROLE_DEV`) sont définis par
|
|
11
|
+
* le consommateur, **jamais** par le core.
|
|
12
|
+
*/
|
|
13
|
+
export type { Role } from "./roles.js";
|
|
14
|
+
export { hasRole, hasAnyRole, hasAllRoles, RoleSet } from "./roles.js";
|
|
15
|
+
export { RoleRegistry, ROLE_MASK_CAPACITY } from "./registry.js";
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
import type { Role } from "./roles.js";
|
|
2
|
+
/**
|
|
3
|
+
* Nombre maximum de rôles qu'un {@link RoleRegistry} peut indexer en masque `number`.
|
|
4
|
+
*
|
|
5
|
+
* Les opérateurs bit-à-bit de JavaScript travaillent sur des entiers **32 bits signés** :
|
|
6
|
+
* `1 << 31` devient négatif et `1 << 32` repart à `1`. On réserve donc les bits 0..30
|
|
7
|
+
* (31 rôles) pour rester sur des masques positifs sûrs. Au-delà → utiliser les chaînes
|
|
8
|
+
* ({@link RoleSet}) ou un futur registre `BigInt`.
|
|
9
|
+
*/
|
|
10
|
+
export declare const ROLE_MASK_CAPACITY = 31;
|
|
11
|
+
/**
|
|
12
|
+
* Registre OPTIONNEL qui assigne un bit à chaque rôle d'un ENSEMBLE FIXE, pour des
|
|
13
|
+
* contrôles d'autorisation en masque (`&`/`|`) — O(1), sans allocation, adapté au hot path
|
|
14
|
+
* serveur (voters, pipeline sécurité) quand les rôles sont connus à l'avance.
|
|
15
|
+
*
|
|
16
|
+
* ⚠️ Inadapté aux rôles DYNAMIQUES (créés en base à l'exécution) : ils n'ont pas de bit
|
|
17
|
+
* fixe → rester sur les chaînes ({@link hasRole}, {@link RoleSet}).
|
|
18
|
+
* ⚠️ Capacité = {@link ROLE_MASK_CAPACITY} rôles (limite 32 bits de JS).
|
|
19
|
+
*
|
|
20
|
+
* @example
|
|
21
|
+
* const reg = new RoleRegistry().define("ROLE_DEV", "ROLE_SUPERVISOR");
|
|
22
|
+
* const userMask = reg.mask(["ROLE_DEV"]);
|
|
23
|
+
* RoleRegistry.hasAny(userMask, reg.mask(["ROLE_DEV", "ROLE_SUPERVISOR"])); // true
|
|
24
|
+
*/
|
|
25
|
+
export declare class RoleRegistry {
|
|
26
|
+
#private;
|
|
27
|
+
/**
|
|
28
|
+
* Déclare un ou plusieurs rôles et leur assigne un bit (idempotent : un rôle déjà
|
|
29
|
+
* connu conserve son bit).
|
|
30
|
+
*
|
|
31
|
+
* @param roles - rôles à enregistrer
|
|
32
|
+
* @returns le registre (chaînable)
|
|
33
|
+
* @throws {RangeError} si la capacité {@link ROLE_MASK_CAPACITY} est dépassée
|
|
34
|
+
*/
|
|
35
|
+
define(...roles: Role[]): this;
|
|
36
|
+
/**
|
|
37
|
+
* @param role - rôle recherché
|
|
38
|
+
* @returns le bit du rôle (puissance de 2), ou `0` si inconnu
|
|
39
|
+
*/
|
|
40
|
+
bit(role: Role): number;
|
|
41
|
+
/**
|
|
42
|
+
* Compile une liste de rôles en masque (OR des bits). Les rôles inconnus sont ignorés
|
|
43
|
+
* (bit 0) — les déclarer d'abord via {@link RoleRegistry.define}.
|
|
44
|
+
*
|
|
45
|
+
* @param roles - rôles à encoder
|
|
46
|
+
* @returns le masque binaire
|
|
47
|
+
*/
|
|
48
|
+
mask(roles: readonly Role[]): number;
|
|
49
|
+
/**
|
|
50
|
+
* Décode un masque en liste de rôles (ordre de déclaration).
|
|
51
|
+
*
|
|
52
|
+
* @param mask - masque binaire
|
|
53
|
+
* @returns les rôles dont le bit est positionné
|
|
54
|
+
*/
|
|
55
|
+
roles(mask: number): Role[];
|
|
56
|
+
/**
|
|
57
|
+
* Test OR sur masques.
|
|
58
|
+
*
|
|
59
|
+
* @param userMask - masque des rôles de l'utilisateur
|
|
60
|
+
* @param requiredMask - masque des rôles acceptés
|
|
61
|
+
* @returns `true` si l'utilisateur a au moins un des rôles requis
|
|
62
|
+
*/
|
|
63
|
+
static hasAny(userMask: number, requiredMask: number): boolean;
|
|
64
|
+
/**
|
|
65
|
+
* Test AND sur masques.
|
|
66
|
+
*
|
|
67
|
+
* @param userMask - masque des rôles de l'utilisateur
|
|
68
|
+
* @param requiredMask - masque des rôles requis
|
|
69
|
+
* @returns `true` si l'utilisateur a tous les rôles requis
|
|
70
|
+
*/
|
|
71
|
+
static hasAll(userMask: number, requiredMask: number): boolean;
|
|
72
|
+
}
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Type d'un rôle Nodefony. Convention `ROLE_*` (alignée Symfony) — mais le mécanisme
|
|
3
|
+
* reste agnostique : n'importe quelle chaîne fait office de rôle.
|
|
4
|
+
*/
|
|
5
|
+
export type Role = string;
|
|
6
|
+
/**
|
|
7
|
+
* Indique si l'utilisateur possède `role`.
|
|
8
|
+
*
|
|
9
|
+
* Implémentation sans allocation (parcours linéaire) : optimale pour un contrôle
|
|
10
|
+
* ponctuel sur un petit tableau (cas courant : 1 à 5 rôles dans un JWT). Pour des
|
|
11
|
+
* contrôles répétés contre le même utilisateur, préférer {@link RoleSet} (O(1) après
|
|
12
|
+
* une unique allocation).
|
|
13
|
+
*
|
|
14
|
+
* @param userRoles - rôles portés par l'utilisateur (ex. claim `roles` du JWT)
|
|
15
|
+
* @param role - rôle recherché
|
|
16
|
+
* @returns `true` si `userRoles` contient `role`
|
|
17
|
+
*/
|
|
18
|
+
export declare function hasRole(userRoles: readonly Role[] | null | undefined, role: Role): boolean;
|
|
19
|
+
/**
|
|
20
|
+
* Indique si l'utilisateur possède AU MOINS UN des `roles` (OR logique).
|
|
21
|
+
*
|
|
22
|
+
* @param userRoles - rôles de l'utilisateur
|
|
23
|
+
* @param roles - rôles acceptés (l'un suffit)
|
|
24
|
+
* @returns `true` si l'intersection est non vide ; `false` si `roles` est vide
|
|
25
|
+
* (aucune exigence ne peut être satisfaite)
|
|
26
|
+
*/
|
|
27
|
+
export declare function hasAnyRole(userRoles: readonly Role[] | null | undefined, roles: readonly Role[]): boolean;
|
|
28
|
+
/**
|
|
29
|
+
* Indique si l'utilisateur possède TOUS les `roles` (AND logique).
|
|
30
|
+
*
|
|
31
|
+
* @param userRoles - rôles de l'utilisateur
|
|
32
|
+
* @param roles - rôles tous requis
|
|
33
|
+
* @returns `true` si chaque rôle requis est présent ; `true` si `roles` est vide
|
|
34
|
+
* (aucune exigence — convention de `Array.every`)
|
|
35
|
+
*/
|
|
36
|
+
export declare function hasAllRoles(userRoles: readonly Role[] | null | undefined, roles: readonly Role[]): boolean;
|
|
37
|
+
/**
|
|
38
|
+
* Ensemble de rôles indexé pour des contrôles répétés en O(1).
|
|
39
|
+
*
|
|
40
|
+
* À utiliser quand on teste plusieurs fois les rôles d'un même utilisateur (filtrage
|
|
41
|
+
* d'une navigation, rendu conditionnel de N panneaux) : une seule allocation de `Set`,
|
|
42
|
+
* puis chaque `has`/`hasAny`/`hasAll` est O(1)/O(k). Pour un contrôle unique, préférer
|
|
43
|
+
* les fonctions {@link hasRole} & co (zéro allocation).
|
|
44
|
+
*/
|
|
45
|
+
export declare class RoleSet {
|
|
46
|
+
#private;
|
|
47
|
+
/** @param roles - rôles de l'utilisateur (dédoublonnés à la construction) */
|
|
48
|
+
constructor(roles?: Iterable<Role> | null);
|
|
49
|
+
/** Nombre de rôles distincts. */
|
|
50
|
+
get size(): number;
|
|
51
|
+
/**
|
|
52
|
+
* @param role - rôle recherché
|
|
53
|
+
* @returns `true` si le rôle est présent (O(1))
|
|
54
|
+
*/
|
|
55
|
+
has(role: Role): boolean;
|
|
56
|
+
/**
|
|
57
|
+
* @param roles - rôles acceptés
|
|
58
|
+
* @returns `true` si AU MOINS UN des `roles` est présent (OR)
|
|
59
|
+
*/
|
|
60
|
+
hasAny(roles: readonly Role[]): boolean;
|
|
61
|
+
/**
|
|
62
|
+
* @param roles - rôles requis
|
|
63
|
+
* @returns `true` si TOUS les `roles` sont présents (AND ; `true` si liste vide)
|
|
64
|
+
*/
|
|
65
|
+
hasAll(roles: readonly Role[]): boolean;
|
|
66
|
+
/** Copie triée des rôles (affichage / sérialisation déterministe). */
|
|
67
|
+
toArray(): Role[];
|
|
68
|
+
}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shim browser de `node:events` — EventEmitter minimal mais complet pour
|
|
3
|
+
* Event.ts (on/once/off/emit/setMaxListeners + raw/prepend). Aucune dépendance npm.
|
|
4
|
+
*
|
|
5
|
+
* Couvre l'API EventEmitter réellement appelée par le core isomorphe (Service /
|
|
6
|
+
* Event / Syslog) : `rawListeners` (utilisé par `Event.emitAsync`/`emitAsyncGuarded`,
|
|
7
|
+
* le bus async `fireAsync`) et `prependListener`/`prependOnceListener` (Service.nc).
|
|
8
|
+
* Ce shim ne distingue PAS les wrappers `once` des listeners bruts (`rawListeners`
|
|
9
|
+
* ≡ `listeners`) — suffisant pour l'itération de `emitAsync`. Pas d'event `error`
|
|
10
|
+
* spécial ni `Symbol.for("nodejs.rejection")`.
|
|
11
|
+
*/
|
|
12
|
+
type Listener = (...args: any[]) => void;
|
|
13
|
+
export declare class EventEmitter {
|
|
14
|
+
private _listeners;
|
|
15
|
+
private _maxListeners;
|
|
16
|
+
on(event: string | symbol, fn: Listener): this;
|
|
17
|
+
addListener(event: string | symbol, fn: Listener): this;
|
|
18
|
+
once(event: string | symbol, fn: Listener): this;
|
|
19
|
+
off(event: string | symbol, fn: Listener): this;
|
|
20
|
+
removeListener(event: string | symbol, fn: Listener): this;
|
|
21
|
+
removeAllListeners(event?: string | symbol): this;
|
|
22
|
+
emit(event: string | symbol, ...args: any[]): boolean;
|
|
23
|
+
listenerCount(event: string | symbol): number;
|
|
24
|
+
listeners(event: string | symbol): Listener[];
|
|
25
|
+
eventNames(): (string | symbol)[];
|
|
26
|
+
setMaxListeners(n: number): this;
|
|
27
|
+
getMaxListeners(): number;
|
|
28
|
+
/**
|
|
29
|
+
* Copie des listeners — ce shim ne wrappe pas distinctement les `once`, donc
|
|
30
|
+
* `rawListeners` ≡ {@link listeners}. Appelé par `Event.emitAsync` (hot path
|
|
31
|
+
* du bus async `fireAsync`) pour itérer les handlers sans muter la liste.
|
|
32
|
+
*/
|
|
33
|
+
rawListeners(event: string | symbol): Listener[];
|
|
34
|
+
/** Comme {@link on} mais inséré en TÊTE de la liste des listeners. */
|
|
35
|
+
prependListener(event: string | symbol, fn: Listener): this;
|
|
36
|
+
/** Comme {@link once} mais inséré en TÊTE de la liste des listeners. */
|
|
37
|
+
prependOnceListener(event: string | symbol, fn: Listener): this;
|
|
38
|
+
}
|
|
39
|
+
export default EventEmitter;
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shim browser de `node:util` — fournit `inspect` via JSON.stringify.
|
|
3
|
+
* Suffisant pour la sortie Syslog côté browser (debug/log uniquement).
|
|
4
|
+
*/
|
|
5
|
+
export declare const inspect: (obj: any, _opts?: {
|
|
6
|
+
colors?: boolean;
|
|
7
|
+
depth?: number;
|
|
8
|
+
}) => string;
|
|
9
|
+
/**
|
|
10
|
+
* Shim browser de `util.styleText` — identité (le navigateur n'a pas de TTY
|
|
11
|
+
* ANSI). Consommé par la façade couleur `src/colors.ts` → jamais d'ANSI côté
|
|
12
|
+
* client (parité ancien shim `cli-color` identity Proxy).
|
|
13
|
+
*/
|
|
14
|
+
export declare const styleText: (_format: any, text: string | number, _opts?: any) => string;
|