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,367 @@
|
|
|
1
|
+
import { extend, isPlainObject } from "./Tools.js";
|
|
2
|
+
//#region src/Container.ts
|
|
3
|
+
const ISDefined = function(ele) {
|
|
4
|
+
return ele !== null && ele !== void 0;
|
|
5
|
+
};
|
|
6
|
+
const parseParameterString = function(str, value) {
|
|
7
|
+
if (!this) throw new Error(`Bad call`);
|
|
8
|
+
const parts = str.split(".");
|
|
9
|
+
const currentPart = parts.shift();
|
|
10
|
+
if (currentPart !== void 0) {
|
|
11
|
+
if (parts.length === 0) {
|
|
12
|
+
if (value !== void 0) this[currentPart] = value;
|
|
13
|
+
return this[currentPart] ?? null;
|
|
14
|
+
}
|
|
15
|
+
if (this[currentPart] === void 0 || this[currentPart] === null) {
|
|
16
|
+
if (value !== void 0) this[currentPart] = {};
|
|
17
|
+
else return null;
|
|
18
|
+
}
|
|
19
|
+
if (typeof this[currentPart] !== "object") throw new Error(`Cannot create property '${parts[0]}' on ${typeof this[currentPart]} '${this[currentPart]}'`);
|
|
20
|
+
return parseParameterString.call(this[currentPart], parts.join("."), value);
|
|
21
|
+
}
|
|
22
|
+
return this;
|
|
23
|
+
};
|
|
24
|
+
let containerSeq = 0;
|
|
25
|
+
/**
|
|
26
|
+
* Dependency Injection container — registers services by name and exposes
|
|
27
|
+
* them to the rest of the framework.
|
|
28
|
+
*
|
|
29
|
+
* Services are stored on a prototype-backed object (`protoService`) so they
|
|
30
|
+
* are inherited by child scopes (see {@link Scope}). The container also
|
|
31
|
+
* carries an arbitrary parameter tree (`parameters`) used for configuration.
|
|
32
|
+
*
|
|
33
|
+
* Conventional usage:
|
|
34
|
+
* ```ts
|
|
35
|
+
* const c = new Container();
|
|
36
|
+
* c.set("logger", new LoggerService());
|
|
37
|
+
* c.setParameters("kernel.environment", "development");
|
|
38
|
+
* const logger = c.get<LoggerService>("logger");
|
|
39
|
+
* ```
|
|
40
|
+
*
|
|
41
|
+
* See `src/nodefony/docs/container.md` for the high-level rationale and the
|
|
42
|
+
* scope model used by the HTTP/WS request pipeline.
|
|
43
|
+
*/
|
|
44
|
+
var Container = class Container {
|
|
45
|
+
protoService;
|
|
46
|
+
services;
|
|
47
|
+
protoParameters;
|
|
48
|
+
parameters;
|
|
49
|
+
id;
|
|
50
|
+
scopes = null;
|
|
51
|
+
/**
|
|
52
|
+
* Create a new container. When an existing container is passed in, the
|
|
53
|
+
* new instance inherits its services (via prototype chaining) and clones
|
|
54
|
+
* its parameters — used by {@link Scope} to build short-lived containers
|
|
55
|
+
* that share base services but isolate per-request state.
|
|
56
|
+
*
|
|
57
|
+
* @param input - parent container to inherit services from
|
|
58
|
+
* @param deep - if `true`, parameters are deep-cloned via `structuredClone`
|
|
59
|
+
* (falls back to shallow copy if `structuredClone` throws on unsupported types)
|
|
60
|
+
* @param adoptedProtoService - @internal canal {@link Scope} : adopte le
|
|
61
|
+
* proto-services du PARENT au lieu d'allouer une closure locale morte
|
|
62
|
+
* (2 closures + 2 `Object.create` jetés par requête avant ce chemin)
|
|
63
|
+
* @param adoptedProtoParameters - @internal idem pour les paramètres
|
|
64
|
+
*/
|
|
65
|
+
constructor(input, deep = false, adoptedProtoService, adoptedProtoParameters) {
|
|
66
|
+
this.id = (++containerSeq).toString(36);
|
|
67
|
+
this.protoService = adoptedProtoService ?? function() {};
|
|
68
|
+
this.protoParameters = adoptedProtoParameters ?? function() {};
|
|
69
|
+
if (input && input instanceof Container) {
|
|
70
|
+
this.services = Object.create(input.protoService.prototype);
|
|
71
|
+
this.parameters = Object.create(input.protoParameters.prototype);
|
|
72
|
+
this.setServices(input.services ?? {});
|
|
73
|
+
if (deep) try {
|
|
74
|
+
this.setParametersBulk(structuredClone(input.parameters ?? {}));
|
|
75
|
+
} catch {
|
|
76
|
+
this.setParametersBulk(input.parameters ?? {});
|
|
77
|
+
}
|
|
78
|
+
else this.setParametersBulk(input.parameters ?? {});
|
|
79
|
+
} else {
|
|
80
|
+
this.services = Object.create(this.protoService.prototype);
|
|
81
|
+
this.parameters = Object.create(this.protoParameters.prototype);
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
setServices(services) {
|
|
85
|
+
for (const service in services) this.set(service, services[service]);
|
|
86
|
+
}
|
|
87
|
+
setParametersBulk(parameters) {
|
|
88
|
+
for (const parameter in parameters) this.setParameters(parameter, parameters[parameter]);
|
|
89
|
+
}
|
|
90
|
+
/**
|
|
91
|
+
* Emit a log entry through the registered `syslog` service. Falls back to
|
|
92
|
+
* `console.warn` when no syslog is set (early boot, isolated test).
|
|
93
|
+
*
|
|
94
|
+
* @param pci - log payload (string or structured PDU body)
|
|
95
|
+
* @param severity - syslog severity level
|
|
96
|
+
* @param msgid - message id; defaults to `"SERVICES CONTAINER"`
|
|
97
|
+
* @param msg - optional message detail
|
|
98
|
+
*/
|
|
99
|
+
log(pci, severity, msgid, msg) {
|
|
100
|
+
const syslog = this.get("syslog");
|
|
101
|
+
if (!syslog) {
|
|
102
|
+
console.warn(`[Container] no syslog registered —`, pci);
|
|
103
|
+
return;
|
|
104
|
+
}
|
|
105
|
+
if (!msgid) msgid = "SERVICES CONTAINER";
|
|
106
|
+
return syslog.log(pci, severity, msgid, msg);
|
|
107
|
+
}
|
|
108
|
+
/**
|
|
109
|
+
* Register a service under `name`. The service is stored both directly on
|
|
110
|
+
* the container and on its prototype, so child scopes can read it without
|
|
111
|
+
* an extra hop.
|
|
112
|
+
*
|
|
113
|
+
* @param name - service identifier (any non-empty string)
|
|
114
|
+
* @param object - the instance to register (no type constraint — services
|
|
115
|
+
* are not required to extend any base class)
|
|
116
|
+
* @throws Error if `name` is empty or the container has been cleaned
|
|
117
|
+
*/
|
|
118
|
+
set(name, object) {
|
|
119
|
+
if (this.services && name) {
|
|
120
|
+
this.protoService.prototype[name] = object;
|
|
121
|
+
this.services[name] = object;
|
|
122
|
+
} else throw new Error("Container bad argument name");
|
|
123
|
+
}
|
|
124
|
+
/**
|
|
125
|
+
* Resolve a service by name. Returns `null` if the service is unknown or
|
|
126
|
+
* the container has been cleaned — callers should narrow the result
|
|
127
|
+
* before use.
|
|
128
|
+
*
|
|
129
|
+
* @param name - service identifier
|
|
130
|
+
* @returns the service instance typed as `T`, or `null`
|
|
131
|
+
*/
|
|
132
|
+
get(name) {
|
|
133
|
+
if (this.services && name in this.services) return this.services[name];
|
|
134
|
+
return null;
|
|
135
|
+
}
|
|
136
|
+
/**
|
|
137
|
+
* Unregister a service and cascade the removal into every child scope.
|
|
138
|
+
*
|
|
139
|
+
* @param name - service identifier
|
|
140
|
+
* @returns `true` when a service was actually removed, `false` otherwise
|
|
141
|
+
*/
|
|
142
|
+
remove(name) {
|
|
143
|
+
if (!this.services) return false;
|
|
144
|
+
if (name in this.services) {
|
|
145
|
+
delete this.services[name];
|
|
146
|
+
if (name in this.protoService.prototype) delete this.protoService.prototype[name];
|
|
147
|
+
if (this.scopes) for (const bucket of this.scopes.values()) for (const scope of bucket.values()) scope.remove(name);
|
|
148
|
+
return true;
|
|
149
|
+
}
|
|
150
|
+
return false;
|
|
151
|
+
}
|
|
152
|
+
/** Whether a service is registered under `name`. */
|
|
153
|
+
has(name) {
|
|
154
|
+
return this.services != null && name in this.services;
|
|
155
|
+
}
|
|
156
|
+
/** All service names currently registered on this container. */
|
|
157
|
+
keys() {
|
|
158
|
+
return Object.keys(this.services ?? {});
|
|
159
|
+
}
|
|
160
|
+
/** All `[name, service]` pairs currently registered on this container. */
|
|
161
|
+
entries() {
|
|
162
|
+
return Object.entries(this.services ?? {});
|
|
163
|
+
}
|
|
164
|
+
/**
|
|
165
|
+
* Declare a scope. Scopes are short-lived containers (typically created
|
|
166
|
+
* per HTTP/WS request) that inherit services from this container but
|
|
167
|
+
* store their own per-request services and parameters. Must be called
|
|
168
|
+
* once before {@link enterScope} can produce instances.
|
|
169
|
+
*
|
|
170
|
+
* @param name - scope identifier (e.g. `"request"`)
|
|
171
|
+
* @returns the underlying scope bucket (rarely used by callers)
|
|
172
|
+
*/
|
|
173
|
+
addScope(name) {
|
|
174
|
+
if (this.scopes === null) this.scopes = /* @__PURE__ */ new Map();
|
|
175
|
+
let bucket = this.scopes.get(name);
|
|
176
|
+
if (!bucket) {
|
|
177
|
+
bucket = /* @__PURE__ */ new Map();
|
|
178
|
+
this.scopes.set(name, bucket);
|
|
179
|
+
}
|
|
180
|
+
return bucket;
|
|
181
|
+
}
|
|
182
|
+
/**
|
|
183
|
+
* Open a new instance of the named scope. The returned {@link Scope}
|
|
184
|
+
* inherits services from this container but tracks its own services and
|
|
185
|
+
* parameters in isolation.
|
|
186
|
+
*
|
|
187
|
+
* @param name - scope name previously declared via {@link addScope}
|
|
188
|
+
* @returns a fresh `Scope` instance with a unique `id`
|
|
189
|
+
* @throws Error when the scope has not been declared
|
|
190
|
+
*/
|
|
191
|
+
enterScope(name) {
|
|
192
|
+
const bucket = this.scopes?.get(name);
|
|
193
|
+
if (!bucket) throw new Error(`Scope "${name}" not declared. Call addScope("${name}") first.`);
|
|
194
|
+
const sc = new Scope(name, this, this.protoService, this.protoParameters);
|
|
195
|
+
bucket.set(sc.id, sc);
|
|
196
|
+
return sc;
|
|
197
|
+
}
|
|
198
|
+
/**
|
|
199
|
+
* Close a scope instance and release its services/parameters. Always
|
|
200
|
+
* called when the unit of work that opened the scope finishes (request
|
|
201
|
+
* end, WS close).
|
|
202
|
+
*
|
|
203
|
+
* @param scope - the scope instance returned by {@link enterScope}
|
|
204
|
+
*/
|
|
205
|
+
leaveScope(scope) {
|
|
206
|
+
const bucket = this.scopes?.get(scope.name);
|
|
207
|
+
if (bucket) {
|
|
208
|
+
const sc = bucket.get(scope.id);
|
|
209
|
+
if (sc) {
|
|
210
|
+
sc.clean();
|
|
211
|
+
bucket.delete(scope.id);
|
|
212
|
+
}
|
|
213
|
+
}
|
|
214
|
+
}
|
|
215
|
+
/**
|
|
216
|
+
* Nombre d'instances VIVANTES du scope nommé — introspection bon marché
|
|
217
|
+
* (sondes de fuite, Studio, diagnostics) sans exposer la structure interne.
|
|
218
|
+
*
|
|
219
|
+
* @param name - scope identifier (e.g. `"request"`)
|
|
220
|
+
* @returns le nombre de scopes ouverts, `0` si le scope est inconnu
|
|
221
|
+
*/
|
|
222
|
+
scopeCount(name) {
|
|
223
|
+
return this.scopes?.get(name)?.size ?? 0;
|
|
224
|
+
}
|
|
225
|
+
/**
|
|
226
|
+
* Close every open instance of the named scope and forget it. After this
|
|
227
|
+
* call, {@link enterScope}(`name`) will throw until {@link addScope} is
|
|
228
|
+
* called again.
|
|
229
|
+
*
|
|
230
|
+
* @param name - scope identifier
|
|
231
|
+
*/
|
|
232
|
+
removeScope(name) {
|
|
233
|
+
const bucket = this.scopes?.get(name);
|
|
234
|
+
if (bucket) {
|
|
235
|
+
for (const scope of bucket.values()) this.leaveScope(scope);
|
|
236
|
+
this.scopes?.delete(name);
|
|
237
|
+
}
|
|
238
|
+
}
|
|
239
|
+
removeAllScopes() {
|
|
240
|
+
if (!this.scopes) return;
|
|
241
|
+
for (const name of this.scopes.keys()) this.removeScope(name);
|
|
242
|
+
this.scopes = null;
|
|
243
|
+
}
|
|
244
|
+
/**
|
|
245
|
+
* Set a value in the parameter tree using a dotted path. Intermediate
|
|
246
|
+
* objects are created on demand (`a.b.c = 1` creates `a` and `b` if they
|
|
247
|
+
* are missing).
|
|
248
|
+
*
|
|
249
|
+
* @param name - dotted path (e.g. `"kernel.environment"`)
|
|
250
|
+
* @param ele - value to assign (must not be `undefined`)
|
|
251
|
+
* @returns the parameter subtree containing the assigned value, or `null`
|
|
252
|
+
* if the container has been cleaned
|
|
253
|
+
* @throws Error when `name` is not a string or `ele` is `undefined`
|
|
254
|
+
*/
|
|
255
|
+
setParameters(name, ele) {
|
|
256
|
+
if (typeof name !== "string") throw new Error("setParameters : container parameter name must be a string");
|
|
257
|
+
if (ele === void 0) throw new Error(`setParameters : ${name} container parameter value must be defined`);
|
|
258
|
+
if (!this.parameters) return null;
|
|
259
|
+
return parseParameterString.call(this.parameters, name, ele);
|
|
260
|
+
}
|
|
261
|
+
/**
|
|
262
|
+
* Read a value (or subtree) from the parameter tree.
|
|
263
|
+
*
|
|
264
|
+
* @param name - dotted path (e.g. `"kernel.environment"`)
|
|
265
|
+
* @returns the value, the subtree, or `null` if absent
|
|
266
|
+
* @throws Error when `name` is empty
|
|
267
|
+
*/
|
|
268
|
+
getParameters(name) {
|
|
269
|
+
if (!name) throw new Error(`getParameters : invalid name "${name}"`);
|
|
270
|
+
if (!this.parameters) return null;
|
|
271
|
+
return parseParameterString.call(this.parameters, name);
|
|
272
|
+
}
|
|
273
|
+
/**
|
|
274
|
+
* Tear the container down: close every scope, drop services and
|
|
275
|
+
* parameters. After `clean()`, any `get`/`set`/`enterScope` call on this
|
|
276
|
+
* instance throws or returns `null`. Called by the kernel during
|
|
277
|
+
* graceful shutdown.
|
|
278
|
+
*/
|
|
279
|
+
clean() {
|
|
280
|
+
this.removeAllScopes();
|
|
281
|
+
this.services = null;
|
|
282
|
+
this.parameters = null;
|
|
283
|
+
}
|
|
284
|
+
/**
|
|
285
|
+
* Clean the container and rebuild fresh prototype chains, leaving it
|
|
286
|
+
* ready to register services again. Used by hot-reload paths in tests
|
|
287
|
+
* and dev mode; production code rarely calls this directly.
|
|
288
|
+
*/
|
|
289
|
+
reset() {
|
|
290
|
+
this.clean();
|
|
291
|
+
this.protoService = function() {};
|
|
292
|
+
this.protoParameters = function() {};
|
|
293
|
+
this.services = Object.create(this.protoService.prototype);
|
|
294
|
+
this.parameters = Object.create(this.protoParameters.prototype);
|
|
295
|
+
}
|
|
296
|
+
};
|
|
297
|
+
/**
|
|
298
|
+
* Short-lived child container tied to a parent {@link Container}. Used by
|
|
299
|
+
* the HTTP/WS kernel to isolate per-request services (e.g. request-bound
|
|
300
|
+
* sessions, scoped resolvers) without polluting the global container.
|
|
301
|
+
*
|
|
302
|
+
* Services and parameters defined on a `Scope` shadow the parent's — reads
|
|
303
|
+
* fall back to the parent transparently when nothing is found locally.
|
|
304
|
+
*/
|
|
305
|
+
var Scope = class extends Container {
|
|
306
|
+
name;
|
|
307
|
+
parent;
|
|
308
|
+
constructor(name, parent, parentProtoService, parentProtoParameters) {
|
|
309
|
+
super(void 0, false, parentProtoService, parentProtoParameters);
|
|
310
|
+
this.name = name;
|
|
311
|
+
this.parent = parent;
|
|
312
|
+
}
|
|
313
|
+
/**
|
|
314
|
+
* Register a per-request service — own property ONLY (shadowing). Depuis
|
|
315
|
+
* l'adoption des protos parents, l'écriture prototype de
|
|
316
|
+
* {@link Container.set} toucherait le proto PARTAGÉ du parent : un service
|
|
317
|
+
* per-request (controller, context) deviendrait visible de TOUTES les
|
|
318
|
+
* requêtes concurrentes. (L'ancien chemin écrivait sur un proto local mort
|
|
319
|
+
* — travail perdu à chaque set.)
|
|
320
|
+
*/
|
|
321
|
+
set(name, object) {
|
|
322
|
+
if (this.services && name) this.services[name] = object;
|
|
323
|
+
else throw new Error("Container bad argument name");
|
|
324
|
+
}
|
|
325
|
+
/**
|
|
326
|
+
* Unregister a service registered ON THIS SCOPE (own property only). Les
|
|
327
|
+
* services hérités du parent ne sont jamais touchés — même raison que
|
|
328
|
+
* {@link Scope.set} : le proto est partagé depuis l'adoption.
|
|
329
|
+
*/
|
|
330
|
+
remove(name) {
|
|
331
|
+
if (this.services && Object.prototype.hasOwnProperty.call(this.services, name)) {
|
|
332
|
+
delete this.services[name];
|
|
333
|
+
return true;
|
|
334
|
+
}
|
|
335
|
+
return false;
|
|
336
|
+
}
|
|
337
|
+
/**
|
|
338
|
+
* Read a parameter from the scope, falling back to the parent container.
|
|
339
|
+
* When both sides hold plain objects, the result is a merged view (deep
|
|
340
|
+
* by default) so a scope can override a few keys without losing the rest.
|
|
341
|
+
*
|
|
342
|
+
* @param name - dotted path
|
|
343
|
+
* @param merge - when `true` (default), merge scope and parent objects;
|
|
344
|
+
* when `false`, scope value wins outright if present
|
|
345
|
+
* @param deep - deep vs. shallow merge (only when `merge` is `true`)
|
|
346
|
+
*/
|
|
347
|
+
getParameters(name, merge = true, deep = true) {
|
|
348
|
+
const res = parseParameterString.call(this.parameters ?? {}, name);
|
|
349
|
+
const obj = this.parent?.getParameters(name);
|
|
350
|
+
if (ISDefined(res)) {
|
|
351
|
+
if (merge && isPlainObject(obj) && isPlainObject(res)) return extend(deep, obj, res);
|
|
352
|
+
return res;
|
|
353
|
+
}
|
|
354
|
+
return obj ?? null;
|
|
355
|
+
}
|
|
356
|
+
/**
|
|
357
|
+
* Break the parent link and clean the scope. Called by
|
|
358
|
+
* {@link Container.leaveScope} when the unit of work that owns the scope
|
|
359
|
+
* finishes.
|
|
360
|
+
*/
|
|
361
|
+
clean() {
|
|
362
|
+
this.parent = null;
|
|
363
|
+
return super.clean();
|
|
364
|
+
}
|
|
365
|
+
};
|
|
366
|
+
//#endregion
|
|
367
|
+
export { Scope, Container as default };
|
|
@@ -0,0 +1,198 @@
|
|
|
1
|
+
import { EventEmitter } from "./client/shim/events.js";
|
|
2
|
+
//#region src/Event.ts
|
|
3
|
+
const regListenOn = /^on(.*)$/;
|
|
4
|
+
/** Sentinelle de rejet interne au timeout d'{@link Event.emitAsyncGuarded} (jamais exposée). */
|
|
5
|
+
const timeoutSentinel = Symbol("nodefony.emitAsyncGuarded.timeout");
|
|
6
|
+
/**
|
|
7
|
+
* Bus d'événements Nodefony — extension de Node.js {@link EventEmitter} avec
|
|
8
|
+
* deux ajouts maison : `emitAsync` (await tous les listeners en séquence) et
|
|
9
|
+
* `settingsToListen` (mapping config → listeners via convention `onXxx`).
|
|
10
|
+
*
|
|
11
|
+
* Utilisé par {@link Service} comme `notificationsCenter`. Une seule instance
|
|
12
|
+
* peut être partagée entre plusieurs services — chaque service track ses
|
|
13
|
+
* propres listeners pour les retirer proprement à `clean()`.
|
|
14
|
+
*
|
|
15
|
+
* @example Bus dédié
|
|
16
|
+
* ```ts
|
|
17
|
+
* const bus = new Event({ onReady: () => console.log("ready!") }, this);
|
|
18
|
+
* bus.fire("onReady");
|
|
19
|
+
* ```
|
|
20
|
+
*
|
|
21
|
+
* @example Bus partagé entre services
|
|
22
|
+
* ```ts
|
|
23
|
+
* const sharedBus = new Event();
|
|
24
|
+
* new ServiceA(name, container, sharedBus);
|
|
25
|
+
* new ServiceB(name, container, sharedBus);
|
|
26
|
+
* ```
|
|
27
|
+
*/
|
|
28
|
+
var Event = class extends EventEmitter {
|
|
29
|
+
/**
|
|
30
|
+
* @param settings - objet de config dont les clés `onXxx` sont auto-bindées
|
|
31
|
+
* comme listeners (via {@link settingsToListen}).
|
|
32
|
+
* @param context - `this` à bind sur les listeners auto-enregistrés.
|
|
33
|
+
* @param options - `nbListeners` surcharge la limite d'abonnés de Node.js ;
|
|
34
|
+
* absent, c'est celle de Node qui s'applique (10), et le dépassement
|
|
35
|
+
* signale une fuite probable. La valeur `0` vaut **illimité**, comme dans
|
|
36
|
+
* `setMaxListeners` — un bus dont on SAIT qu'il portera beaucoup d'abonnés
|
|
37
|
+
* se déclare ainsi, au lieu de subir un avertissement qui n'annonce rien.
|
|
38
|
+
*/
|
|
39
|
+
constructor(settings, context, options) {
|
|
40
|
+
super();
|
|
41
|
+
if (options?.nbListeners !== void 0) this.setMaxListeners(options.nbListeners);
|
|
42
|
+
if (settings) this.settingsToListen(settings, context);
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Parcourt `localSettings` et enregistre chaque clé matchant `/^on(.*)$/`
|
|
46
|
+
* comme listener — convention héritée des composants WebComponent / config
|
|
47
|
+
* Nodefony historique. Utile pour wirer des hooks via config plate.
|
|
48
|
+
*
|
|
49
|
+
* @param localSettings - objet plat ; les clés `onReady`, `onClose`, etc.
|
|
50
|
+
* sont prises comme noms d'événements ET comme listeners.
|
|
51
|
+
* @param context - si fourni, le listener est bindé sur ce contexte.
|
|
52
|
+
*/
|
|
53
|
+
settingsToListen(localSettings, context) {
|
|
54
|
+
for (const i of Object.keys(localSettings)) {
|
|
55
|
+
const res = regListenOn.exec(i);
|
|
56
|
+
if (!res) continue;
|
|
57
|
+
if (context) {
|
|
58
|
+
this.listen(context, res[0], localSettings[i]);
|
|
59
|
+
continue;
|
|
60
|
+
}
|
|
61
|
+
this.on(res[0], localSettings[i]);
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* Bind `listener` sur `context` puis l'enregistre. Renvoie une fonction
|
|
66
|
+
* dispatcher qui ré-émet l'événement avec ses propres args (façon trigger).
|
|
67
|
+
*
|
|
68
|
+
* @returns dispatcher `(...args) => this.emit(eventName, ...args)` — pratique
|
|
69
|
+
* pour exposer un trigger sans donner accès au bus complet.
|
|
70
|
+
*/
|
|
71
|
+
listen(context, eventName, listener) {
|
|
72
|
+
if (typeof listener === "function") this.addListener(eventName, listener.bind(context));
|
|
73
|
+
return (...args) => this.emit(eventName, ...args);
|
|
74
|
+
}
|
|
75
|
+
/** Alias `emit` — émission synchrone (API EventEmitter standard). */
|
|
76
|
+
fire(eventName, ...args) {
|
|
77
|
+
return super.emit(eventName, ...args);
|
|
78
|
+
}
|
|
79
|
+
/**
|
|
80
|
+
* Émet et attend chaque listener en séquence (`await Reflect.apply` un par
|
|
81
|
+
* un). Différent de `emit` qui appelle synchroniquement sans attendre les
|
|
82
|
+
* Promises retournées.
|
|
83
|
+
*
|
|
84
|
+
* @returns tableau des valeurs résolues par chaque listener (ordre d'append),
|
|
85
|
+
* ou `false` si aucun listener n'est attaché.
|
|
86
|
+
* @remarks Séquentiel par design — si tu veux Promise.all, fais un wrapper
|
|
87
|
+
* au-dessus. La séquence garantit l'ordre prévisible des side-effects.
|
|
88
|
+
*/
|
|
89
|
+
async emitAsync(eventName, ...args) {
|
|
90
|
+
if (this.listenerCount(eventName) === 0) return false;
|
|
91
|
+
const handlers = this.rawListeners(eventName);
|
|
92
|
+
const result = [];
|
|
93
|
+
for (const handler of handlers) {
|
|
94
|
+
const r = Reflect.apply(handler, this, args);
|
|
95
|
+
result.push(r != null && typeof r.then === "function" ? await r : r);
|
|
96
|
+
}
|
|
97
|
+
return result;
|
|
98
|
+
}
|
|
99
|
+
/** Alias `emitAsync`. */
|
|
100
|
+
async fireAsync(eventName, ...args) {
|
|
101
|
+
return this.emitAsync(eventName, ...args);
|
|
102
|
+
}
|
|
103
|
+
/**
|
|
104
|
+
* Variante **gardée** de {@link emitAsync} : émet les listeners en SÉRIE (ordre
|
|
105
|
+
* préservé) mais isole chacun par un `try/catch` + un `timeout` optionnel, et
|
|
106
|
+
* COLLECTE les échecs au lieu de laisser le premier rejet faire sauter les
|
|
107
|
+
* suivants (ou un listener figé geler tout le reste).
|
|
108
|
+
*
|
|
109
|
+
* Ne décide d'AUCUNE politique (log, criticité, propagation) : c'est l'appelant
|
|
110
|
+
* qui tranche via `onListenerError` (continuer / arrêter) et `onListenerSlow`.
|
|
111
|
+
* Cette séparation MÉCANIQUE / POLITIQUE permet de réutiliser la garde hors boot
|
|
112
|
+
* en toute connaissance de cause.
|
|
113
|
+
*
|
|
114
|
+
* 🚨 **Coût** : quand `timeoutMs > 0`, 1 timer + 1 Promise de course PAR listener.
|
|
115
|
+
* Réservé au **boot / lifecycle / jobs** (cf `Kernel.fireLifecycle`) — appelé
|
|
116
|
+
* ≪ 1×/process. **JAMAIS dans le hot path HTTP/WS** : celui-ci garde `emitAsync`
|
|
117
|
+
* nu (aucun timer, aucune alloc par requête).
|
|
118
|
+
*
|
|
119
|
+
* @param eventName - événement à émettre.
|
|
120
|
+
* @param options - garde (timeout/seuil de lenteur) + callbacks de politique.
|
|
121
|
+
* @param args - arguments passés à chaque listener.
|
|
122
|
+
* @returns `{ results, errors, stopped }` (cf {@link IGuardedEmitResult}).
|
|
123
|
+
*/
|
|
124
|
+
async emitAsyncGuarded(eventName, options = {}, ...args) {
|
|
125
|
+
const results = [];
|
|
126
|
+
const errors = [];
|
|
127
|
+
if (this.listenerCount(eventName) === 0) return {
|
|
128
|
+
results,
|
|
129
|
+
errors,
|
|
130
|
+
stopped: false
|
|
131
|
+
};
|
|
132
|
+
const handlers = this.rawListeners(eventName);
|
|
133
|
+
const timeoutOption = options.timeoutMs ?? 0;
|
|
134
|
+
const perListener = typeof timeoutOption === "function";
|
|
135
|
+
const warnMs = options.warnMs ?? 0;
|
|
136
|
+
const measure = warnMs > 0;
|
|
137
|
+
for (let index = 0; index < handlers.length; index += 1) {
|
|
138
|
+
const handler = handlers[index];
|
|
139
|
+
const timeoutMs = perListener ? timeoutOption(handler, index) : timeoutOption;
|
|
140
|
+
const startedAt = measure ? Date.now() : 0;
|
|
141
|
+
let timedOut = false;
|
|
142
|
+
try {
|
|
143
|
+
const call = Promise.resolve(Reflect.apply(handler, this, args));
|
|
144
|
+
let value;
|
|
145
|
+
if (timeoutMs > 0) {
|
|
146
|
+
call.catch(() => {});
|
|
147
|
+
let timer;
|
|
148
|
+
try {
|
|
149
|
+
value = await Promise.race([call, new Promise((_, reject) => {
|
|
150
|
+
timer = setTimeout(() => {
|
|
151
|
+
timedOut = true;
|
|
152
|
+
reject(timeoutSentinel);
|
|
153
|
+
}, timeoutMs);
|
|
154
|
+
timer.unref?.();
|
|
155
|
+
})]);
|
|
156
|
+
} finally {
|
|
157
|
+
if (timer) clearTimeout(timer);
|
|
158
|
+
}
|
|
159
|
+
} else value = await call;
|
|
160
|
+
results.push(value);
|
|
161
|
+
if (measure && options.onListenerSlow) {
|
|
162
|
+
const durationMs = Date.now() - startedAt;
|
|
163
|
+
if (durationMs >= warnMs) options.onListenerSlow({
|
|
164
|
+
index,
|
|
165
|
+
listener: handler,
|
|
166
|
+
timedOut: false,
|
|
167
|
+
durationMs
|
|
168
|
+
});
|
|
169
|
+
}
|
|
170
|
+
} catch (caught) {
|
|
171
|
+
const durationMs = measure ? Date.now() - startedAt : 0;
|
|
172
|
+
const error = timedOut ? /* @__PURE__ */ new Error(`listener timeout après ${timeoutMs}ms`) : caught;
|
|
173
|
+
errors.push({
|
|
174
|
+
index,
|
|
175
|
+
error,
|
|
176
|
+
timedOut
|
|
177
|
+
});
|
|
178
|
+
if (options.onListenerError?.(error, {
|
|
179
|
+
index,
|
|
180
|
+
listener: handler,
|
|
181
|
+
timedOut,
|
|
182
|
+
durationMs
|
|
183
|
+
}) === true) return {
|
|
184
|
+
results,
|
|
185
|
+
errors,
|
|
186
|
+
stopped: true
|
|
187
|
+
};
|
|
188
|
+
}
|
|
189
|
+
}
|
|
190
|
+
return {
|
|
191
|
+
results,
|
|
192
|
+
errors,
|
|
193
|
+
stopped: false
|
|
194
|
+
};
|
|
195
|
+
}
|
|
196
|
+
};
|
|
197
|
+
//#endregion
|
|
198
|
+
export { Event as default };
|