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,76 @@
|
|
|
1
|
+
import "reflect-metadata";
|
|
2
|
+
import Module from "../Module.js";
|
|
3
|
+
import { ServiceConstructor } from "../Kernel.js";
|
|
4
|
+
import Service from "../../Service.js";
|
|
5
|
+
import { InjectableOptions } from "../injector/injector.js";
|
|
6
|
+
type Constructor = new (...args: any[]) => Module<unknown>;
|
|
7
|
+
type Injectable<T = {
|
|
8
|
+
service: Service;
|
|
9
|
+
}> = new (...args: any[]) => T;
|
|
10
|
+
/**
|
|
11
|
+
* Déclare les services qu'un module enregistre dans son conteneur au démarrage.
|
|
12
|
+
*
|
|
13
|
+
* Décorateur de **classe de module**. Les services sont instanciés au hook
|
|
14
|
+
* `onPreBoot`, et **l'ordre écrit ici n'a aucune importance** : il est recalculé
|
|
15
|
+
* depuis les dépendances déclarées (`@inject`), de sorte qu'un service réclamé
|
|
16
|
+
* soit présent avant son consommateur. Le hook est tagué au nom du module : un
|
|
17
|
+
* service qui échoue suit la politique de criticité de SON module — fatal en
|
|
18
|
+
* production, dégradation annoncée ailleurs — au lieu de faire tomber le boot
|
|
19
|
+
* anonymement.
|
|
20
|
+
*
|
|
21
|
+
* @param nameOrPath - Une classe de service, un chemin de fichier, ou un tableau
|
|
22
|
+
* mêlant les deux.
|
|
23
|
+
* @returns Le décorateur de classe, qui renvoie le module enrichi du hook.
|
|
24
|
+
* @example
|
|
25
|
+
* ```typescript
|
|
26
|
+
* @services([Router, Eta, AdminBroker])
|
|
27
|
+
* class FrameworkModule extends Module {}
|
|
28
|
+
* ```
|
|
29
|
+
*/
|
|
30
|
+
declare function services(nameOrPath: string | (string | ServiceConstructor)[] | ServiceConstructor): <T extends Constructor>(constructor: T) => T;
|
|
31
|
+
/**
|
|
32
|
+
* Rend une classe de service résoluble par le conteneur d'injection.
|
|
33
|
+
*
|
|
34
|
+
* Décorateur de **classe**. Il inscrit la classe à l'annuaire d'injection sous
|
|
35
|
+
* un nom — celui de la classe par défaut — et fige sa portée. Sans lui, la
|
|
36
|
+
* classe reste une classe ordinaire : elle ne peut être ni découverte, ni
|
|
37
|
+
* injectée, et un `@inject("…")` qui la réclame échouera à la résolution.
|
|
38
|
+
*
|
|
39
|
+
* @param nameOrOptions - Le nom d'enregistrement, ou `{ name?, scope? }`. La
|
|
40
|
+
* portée vaut `"singleton"` par défaut — une seule instance pour le
|
|
41
|
+
* processus ; `"transient"` en fabrique une par résolution.
|
|
42
|
+
* @returns Le décorateur de classe, qui renvoie la classe inchangée.
|
|
43
|
+
* @example
|
|
44
|
+
* ```typescript
|
|
45
|
+
* @injectable()
|
|
46
|
+
* class Router extends Service {}
|
|
47
|
+
*
|
|
48
|
+
* @injectable({ name: "pdfRenderer", scope: "transient" })
|
|
49
|
+
* class PdfRenderer extends Service {}
|
|
50
|
+
* ```
|
|
51
|
+
*/
|
|
52
|
+
declare function injectable(nameOrOptions?: string | InjectableOptions): <T extends Injectable<Service>>(constructor: T) => T;
|
|
53
|
+
/**
|
|
54
|
+
* Injecter une Service avec son nom dans le constructeur.
|
|
55
|
+
*
|
|
56
|
+
* @param serviceName - Le nom du service à injecter (doit correspondre à un @injectable)
|
|
57
|
+
*
|
|
58
|
+
* @example
|
|
59
|
+
* class MyService extends Service {
|
|
60
|
+
* constructor(@inject("Fetch") private fetch: Fetch) { super("my", ...) }
|
|
61
|
+
* }
|
|
62
|
+
*/
|
|
63
|
+
declare function inject(serviceName: string): ParameterDecorator;
|
|
64
|
+
/**
|
|
65
|
+
* Injecter une Service sur une propriété de classe (property injection).
|
|
66
|
+
* Distinct de @inject (minuscule) qui cible les paramètres de constructeur.
|
|
67
|
+
*
|
|
68
|
+
* Le nom est obligatoire si emitDecoratorMetadata n'est pas actif (tests tsx).
|
|
69
|
+
*
|
|
70
|
+
* @example
|
|
71
|
+
* class MyService extends Service {
|
|
72
|
+
* @Inject("Fetch") private fetch!: Fetch;
|
|
73
|
+
* }
|
|
74
|
+
*/
|
|
75
|
+
declare function Inject(name?: string): PropertyDecorator;
|
|
76
|
+
export { injectable, inject, Inject, services };
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import "reflect-metadata";
|
|
2
|
+
import Service from "../../Service.js";
|
|
3
|
+
import Kernel, { ServiceConstructor } from "../Kernel.js";
|
|
4
|
+
export type DIScope = "singleton" | "transient";
|
|
5
|
+
export interface InjectableOptions {
|
|
6
|
+
name?: string;
|
|
7
|
+
scope?: DIScope;
|
|
8
|
+
}
|
|
9
|
+
export interface PropertyInjectMeta {
|
|
10
|
+
key: string | symbol;
|
|
11
|
+
name: string;
|
|
12
|
+
}
|
|
13
|
+
declare class Injector extends Service {
|
|
14
|
+
static injectables: Record<string, ServiceConstructor>;
|
|
15
|
+
constructor(kernel: Kernel);
|
|
16
|
+
static register(serviceName: string, service: ServiceConstructor): ServiceConstructor;
|
|
17
|
+
static isRegistered(serviceName: string): boolean;
|
|
18
|
+
/**
|
|
19
|
+
* Mémorise la clé sous laquelle une classe de service vit RÉELLEMENT dans le
|
|
20
|
+
* container — apprise au moment où l'instance y est posée.
|
|
21
|
+
*
|
|
22
|
+
* @remarks Sans elle, `@inject("Router")` interrogeait le container avec
|
|
23
|
+
* `"Router"` alors que l'instance y est rangée sous `"router"` (le nom de son
|
|
24
|
+
* `super()`) : le container répondait `null` et le service était RECONSTRUIT,
|
|
25
|
+
* son cache vide, silencieusement. Un seul des 7 `@injectable` échappait au
|
|
26
|
+
* piège — `HttpKernel`, par coïncidence de casse.
|
|
27
|
+
*
|
|
28
|
+
* @param service - le constructeur, tel qu'enregistré par `@injectable`.
|
|
29
|
+
* @param containerKey - `instance.name`, la clé réelle du container.
|
|
30
|
+
*/
|
|
31
|
+
static rememberContainerKey(service: ServiceConstructor, containerKey: string): void;
|
|
32
|
+
/**
|
|
33
|
+
* Clé container connue d'une classe de service, ou `null` si elle n'a jamais
|
|
34
|
+
* été posée au container (rien à apprendre encore).
|
|
35
|
+
*/
|
|
36
|
+
static containerKeyOf(service: ServiceConstructor): string | null;
|
|
37
|
+
static getScope(serviceName: string): DIScope;
|
|
38
|
+
static get(serviceName: string): ServiceConstructor;
|
|
39
|
+
static inject<T extends Service = Service>(service: ServiceConstructor, ...args: unknown[]): T;
|
|
40
|
+
instantiate<T extends Service = Service>(constructor: ServiceConstructor, ...args: unknown[]): T;
|
|
41
|
+
static instantiate<T extends Service = Service>(constructor: ServiceConstructor, ...argsClass: unknown[]): T;
|
|
42
|
+
private static _resolveWithStack;
|
|
43
|
+
private static _applyPropertyInjection;
|
|
44
|
+
private static _instantiateWithStack;
|
|
45
|
+
reflect<T extends Service = Service>(constructor: ServiceConstructor, ...args: unknown[]): T;
|
|
46
|
+
}
|
|
47
|
+
export default Injector;
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import "reflect-metadata";
|
|
2
|
+
import type { ServiceConstructor } from "../Kernel.js";
|
|
3
|
+
/** Entrée d'un `@services([...])` : un constructeur, ou un chemin à charger. */
|
|
4
|
+
export type ServiceEntry = string | ServiceConstructor;
|
|
5
|
+
/**
|
|
6
|
+
* Réordonne les services d'un `@services([...])` selon leurs dépendances
|
|
7
|
+
* **déclarées**, pour que l'ordre d'écriture cesse de compter.
|
|
8
|
+
*
|
|
9
|
+
* `@services` instancie séquentiellement et pose chaque instance au container :
|
|
10
|
+
* un service réclamé par un autre doit donc exister AVANT lui, sinon le DI le
|
|
11
|
+
* reconstruit sans argument et son constructeur casse. Faire reposer ça sur
|
|
12
|
+
* l'ordre d'une liste écrite à la main est un piège : déplacer `HttpKernel` de
|
|
13
|
+
* trois lignes dans `@nodefony/http` suffisait à rendre 499 sur chaque requête.
|
|
14
|
+
* Les dépendances étant déjà déclarées (`@inject` / `design:paramtypes`), l'ordre
|
|
15
|
+
* correct se **calcule** — c'est ce que font Symfony (container compilé) et
|
|
16
|
+
* NestJS (résolution du graphe).
|
|
17
|
+
*
|
|
18
|
+
* Tri topologique **stable** : à contrainte égale, l'ordre d'écriture est
|
|
19
|
+
* conservé — un `@services` déjà correct sort inchangé.
|
|
20
|
+
*
|
|
21
|
+
* Ne touche pas aux entrées dont les dépendances sont inconnaissables sans les
|
|
22
|
+
* charger (chemins `string`) ni aux constructeurs hors registre : elles gardent
|
|
23
|
+
* leur position relative.
|
|
24
|
+
*
|
|
25
|
+
* @param entries - la liste telle qu'écrite dans `@services([...])`.
|
|
26
|
+
* @returns la même liste, réordonnée ; jamais une entrée perdue ou dupliquée.
|
|
27
|
+
* @throws Si les dépendances déclarées forment un cycle (message nommant le cycle).
|
|
28
|
+
*/
|
|
29
|
+
export declare function orderServicesByDependencies(entries: readonly ServiceEntry[]): ServiceEntry[];
|
|
@@ -0,0 +1,169 @@
|
|
|
1
|
+
import type { AdminHttpMethod, IAdminApi } from "../../types/IAdminApi.js";
|
|
2
|
+
import type { IAdminCaller } from "../adminPlane/adminCaller.js";
|
|
3
|
+
/**
|
|
4
|
+
* Ce qu'un sujet inspectable désigne : où le lire dans le plan d'administration.
|
|
5
|
+
*/
|
|
6
|
+
export interface IInspectSubject {
|
|
7
|
+
/** Producteur d'administration (`kernel`, `framework`, `orm`…). */
|
|
8
|
+
namespace: string;
|
|
9
|
+
/** Chemin de l'endpoint, tel que le producteur le déclare. */
|
|
10
|
+
path: string;
|
|
11
|
+
/** Ce que le sujet montre, en une ligne. */
|
|
12
|
+
summary: string;
|
|
13
|
+
/** Nom du paramètre attendu, quand le chemin en porte un (`module/{name}`). */
|
|
14
|
+
param?: string;
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Sujets inspectables, et l'endpoint d'administration qui les sert.
|
|
18
|
+
*
|
|
19
|
+
* **Aucune donnée n'est calculée ici.** Chaque sujet pointe le producteur qui
|
|
20
|
+
* répond déjà en HTTP : toutes les portes rendent le même objet, parce que
|
|
21
|
+
* c'est le même code qui le produit. Une table de correspondance peut se
|
|
22
|
+
* périmer ; une réimplémentation, elle, diverge en silence — et c'est la porte
|
|
23
|
+
* secondaire qu'on croirait sur parole.
|
|
24
|
+
*
|
|
25
|
+
* ⚠️ Cette table est la SOURCE UNIQUE des sujets. La commande `inspect`, le
|
|
26
|
+
* serveur MCP et toute porte future la lisent ici — aucune n'en tient une
|
|
27
|
+
* copie.
|
|
28
|
+
*/
|
|
29
|
+
export declare const INSPECT_SUBJECTS: Record<string, IInspectSubject>;
|
|
30
|
+
/**
|
|
31
|
+
* Extrait la donnée d'une réponse d'administration.
|
|
32
|
+
*
|
|
33
|
+
* Un handler rend soit la donnée, soit une enveloppe `{status, body}` (pour
|
|
34
|
+
* porter un 404). Même discrimination que le pont HTTP : enveloppe **si et
|
|
35
|
+
* seulement si** `body` est présent AVEC `status` ou `headers` — un objet
|
|
36
|
+
* métier qui posséderait un champ `body` n'est pas une enveloppe.
|
|
37
|
+
*/
|
|
38
|
+
export declare function unwrapAdminResult(result: unknown): {
|
|
39
|
+
status: number;
|
|
40
|
+
data: unknown;
|
|
41
|
+
};
|
|
42
|
+
/** Pourquoi une lecture de sujet n'a pas abouti — chaque porte le traduit. */
|
|
43
|
+
export type InspectFailure =
|
|
44
|
+
/** Le sujet demandé n'est pas dans {@link INSPECT_SUBJECTS}. */
|
|
45
|
+
"unknown-subject"
|
|
46
|
+
/** Le sujet exige un paramètre qui n'a pas été fourni. */
|
|
47
|
+
| "missing-target"
|
|
48
|
+
/** Le module qui sert ce sujet n'est pas chargé dans cette application. */
|
|
49
|
+
| "producer-missing"
|
|
50
|
+
/** Le producteur existe mais ne déclare pas cet endpoint (version ?). */
|
|
51
|
+
| "endpoint-missing"
|
|
52
|
+
/** Le handler a levé. */
|
|
53
|
+
| "handler-failed"
|
|
54
|
+
/** Le handler a répondu un statut d'erreur (404 sur une cible inconnue). */
|
|
55
|
+
| "not-found"
|
|
56
|
+
/**
|
|
57
|
+
* L'appelant n'a pas le rôle exigé par l'endpoint.
|
|
58
|
+
*
|
|
59
|
+
* Distinct de `not-found` : confondre « tu n'as pas le droit » avec « ça
|
|
60
|
+
* n'existe pas » envoie chercher une cible valide au lieu d'un jeton.
|
|
61
|
+
*/
|
|
62
|
+
| "forbidden";
|
|
63
|
+
/** Résultat d'une lecture de sujet : la donnée, ou la raison de l'échec. */
|
|
64
|
+
export type InspectResult = {
|
|
65
|
+
ok: true;
|
|
66
|
+
status: number;
|
|
67
|
+
data: unknown;
|
|
68
|
+
} | {
|
|
69
|
+
ok: false;
|
|
70
|
+
reason: InspectFailure;
|
|
71
|
+
message: string;
|
|
72
|
+
status?: number;
|
|
73
|
+
/**
|
|
74
|
+
* Le corps que le PRODUCTEUR a préparé pour ce refus, quand il en a
|
|
75
|
+
* préparé un — le plan d'une page dont la section demandée n'existe pas,
|
|
76
|
+
* la liste des valeurs acceptées, le nom du champ fautif.
|
|
77
|
+
*
|
|
78
|
+
* ⚠️ Ce champ a été ajouté parce que son absence faisait conclure
|
|
79
|
+
* l'inverse de la vérité : un refus « section inconnue » (la page existe,
|
|
80
|
+
* son plan est joint) arrivait à l'appelant sous la forme « introuvable
|
|
81
|
+
* (404) », et un agent en déduisait que la PAGE n'existait pas. Une porte
|
|
82
|
+
* qui résume un refus lui fait dire autre chose.
|
|
83
|
+
*/
|
|
84
|
+
body?: unknown;
|
|
85
|
+
/**
|
|
86
|
+
* Message de l'exception, quand le handler a LEVÉ — réservé à un
|
|
87
|
+
* appelant local.
|
|
88
|
+
*
|
|
89
|
+
* 🔴 **Il ne traverse aucune porte distante.** Le transport HTTP rend
|
|
90
|
+
* « Internal admin handler error » et rien d'autre : le message d'une
|
|
91
|
+
* exception porte ce que le code avait sous la main au moment de
|
|
92
|
+
* l'échec — un chemin de disque, une requête, une valeur de
|
|
93
|
+
* configuration. Le recopier dans {@link InspectResult.message} faisait
|
|
94
|
+
* fuir par la porte MCP ce que la porte HTTP masque, sur exactement les
|
|
95
|
+
* mêmes handlers. Une porte qui en dit plus qu'une autre sur la même
|
|
96
|
+
* donnée est une faille, pas une commodité.
|
|
97
|
+
*
|
|
98
|
+
* L'opérateur qui lance une commande sur sa propre machine, lui, peut le
|
|
99
|
+
* lire : il possède déjà le processus et ses journaux.
|
|
100
|
+
*/
|
|
101
|
+
cause?: string;
|
|
102
|
+
};
|
|
103
|
+
/** Vue minimale du broker dont cette lecture a besoin. */
|
|
104
|
+
export interface IAdminBrokerLike {
|
|
105
|
+
list(): readonly IAdminApi[];
|
|
106
|
+
}
|
|
107
|
+
/** Ce qu'il faut pour joindre un endpoint du plan d'administration. */
|
|
108
|
+
export interface IAdminCall {
|
|
109
|
+
/** Producteur d'administration (`kernel`, `framework`, `orm`…). */
|
|
110
|
+
namespace: string;
|
|
111
|
+
/** Chemin de l'endpoint, tel que le producteur le déclare. */
|
|
112
|
+
path: string;
|
|
113
|
+
/**
|
|
114
|
+
* Méthode de l'endpoint visé, défaut `"GET"`.
|
|
115
|
+
*
|
|
116
|
+
* ⚠️ **Elle fait partie de l'identité d'un endpoint, pas de son décor** : huit
|
|
117
|
+
* chemins du plan portent deux ou trois méthodes (`webhooks` en GET et POST,
|
|
118
|
+
* `users/{id}` en GET, PATCH et DELETE, `recent` en GET et DELETE). Résoudre
|
|
119
|
+
* par le seul chemin rendait le PREMIER déclaré — une lecture aujourd'hui, par
|
|
120
|
+
* chance, et une suppression le jour où un producteur réordonne son tableau.
|
|
121
|
+
*/
|
|
122
|
+
method?: AdminHttpMethod;
|
|
123
|
+
/** Variables de route, quand le chemin en porte (`module/{name}`). */
|
|
124
|
+
params?: Readonly<Record<string, string>>;
|
|
125
|
+
/** Paramètres de requête, tels qu'une URL les porterait. */
|
|
126
|
+
query?: Readonly<Record<string, string | string[]>>;
|
|
127
|
+
/** Ce qu'on nomme dans les messages d'échec — le sujet, la cible, l'appel. */
|
|
128
|
+
label?: string;
|
|
129
|
+
}
|
|
130
|
+
/**
|
|
131
|
+
* Appelle un endpoint du plan d'administration, hors HTTP.
|
|
132
|
+
*
|
|
133
|
+
* ⭐ **Une source, plusieurs portes** : cette fonction ne fait que RÉSOUDRE
|
|
134
|
+
* l'endpoint (par producteur et chemin, là où la route HTTP le résout par nom
|
|
135
|
+
* de route), puis délègue à {@link ../adminPlane/executeAdmin.executeAdminEndpoint} —
|
|
136
|
+
* la même exécution que le transport HTTP. Autorisation, normalisation du
|
|
137
|
+
* retour et traduction des erreurs sont donc identiques par CONSTRUCTION, et
|
|
138
|
+
* non par vigilance.
|
|
139
|
+
*
|
|
140
|
+
* Ce que la version précédente perdait : elle appelait le handler directement
|
|
141
|
+
* et ne gardait, d'un statut d'erreur, que le nombre. Le corps préparé par le
|
|
142
|
+
* producteur — le plan d'une page, les valeurs acceptées — disparaissait, et
|
|
143
|
+
* l'appelant concluait l'inverse de la vérité. Il voyage désormais entier
|
|
144
|
+
* ({@link InspectResult}`.body`).
|
|
145
|
+
*
|
|
146
|
+
* Le rôle d'administrateur est **annoncé**, pas contourné : certains
|
|
147
|
+
* producteurs graduent leur réponse selon les rôles, et un appelant qui se
|
|
148
|
+
* présenterait en anonyme obtiendrait une vue amputée — il mentirait par
|
|
149
|
+
* omission face à la même donnée lue en HTTP. Le contrôle d'accès du plan
|
|
150
|
+
* d'administration protège le RÉSEAU ; la redaction des secrets, elle, vit dans
|
|
151
|
+
* les producteurs et s'applique donc à toutes les portes.
|
|
152
|
+
*
|
|
153
|
+
* @param broker - le service `adminBroker` du conteneur
|
|
154
|
+
* @param call - producteur, chemin, et ce qu'on lui passe
|
|
155
|
+
* @returns la donnée du producteur, ou la raison précise de l'échec
|
|
156
|
+
*/
|
|
157
|
+
export declare function callAdminEndpoint(broker: IAdminBrokerLike | undefined, call: IAdminCall, caller: IAdminCaller): Promise<InspectResult>;
|
|
158
|
+
/**
|
|
159
|
+
* Lit un sujet d'inspection dans le plan d'administration.
|
|
160
|
+
*
|
|
161
|
+
* Résout le sujet dans {@link INSPECT_SUBJECTS}, puis délègue à
|
|
162
|
+
* {@link callAdminEndpoint} — ce qui vaut pour l'appel vaut donc ici.
|
|
163
|
+
*
|
|
164
|
+
* @param broker - le service `adminBroker` du conteneur
|
|
165
|
+
* @param subject - clé de {@link INSPECT_SUBJECTS}
|
|
166
|
+
* @param target - valeur du paramètre, pour les sujets qui en portent un
|
|
167
|
+
* @returns la donnée du producteur, ou la raison précise de l'échec
|
|
168
|
+
*/
|
|
169
|
+
export declare function readAdminSubject(broker: IAdminBrokerLike | undefined, subject: string, caller: IAdminCaller, target?: string): Promise<InspectResult>;
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Découpe d'un markdown par ses titres — le plan, puis une section.
|
|
3
|
+
*
|
|
4
|
+
* ⭐ **Pourquoi ce fichier existe** : les pages de documentation du framework
|
|
5
|
+
* pèsent 50 à 80 ko. Rendues entières à un agent, elles saturent sa fenêtre pour
|
|
6
|
+
* une question qui tenait dans un paragraphe ; tronquées, elles s'arrêtent au
|
|
7
|
+
* milieu d'une phrase sans dire ce qui manque. Le plan est la troisième voie :
|
|
8
|
+
* il coûte quelques centaines d'octets et permet de demander LA section utile.
|
|
9
|
+
*
|
|
10
|
+
* Vit dans le cœur parce que ses deux consommateurs sont de part et d'autre de
|
|
11
|
+
* la frontière de dépendance — le serveur MCP (cœur) et le plan
|
|
12
|
+
* d'administration (`@nodefony/framework`, qui peut importer le cœur, l'inverse
|
|
13
|
+
* étant interdit).
|
|
14
|
+
*/
|
|
15
|
+
/** Un titre du document, et ce qu'il ouvre. */
|
|
16
|
+
export interface IMarkdownSection {
|
|
17
|
+
/** Niveau du titre : 1 pour `#`, 2 pour `##`… */
|
|
18
|
+
level: number;
|
|
19
|
+
/** Texte du titre, tel qu'il est écrit. */
|
|
20
|
+
title: string;
|
|
21
|
+
/** Ligne (1-indexée) du titre dans le document. */
|
|
22
|
+
line: number;
|
|
23
|
+
/** Poids de la section, titre compris — de quoi choisir sans l'ouvrir. */
|
|
24
|
+
chars: number;
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Repère les titres d'un markdown, **en ignorant les blocs de code**.
|
|
28
|
+
*
|
|
29
|
+
* Cette exclusion n'est pas un détail de forme : la documentation du framework
|
|
30
|
+
* est pleine d'exemples shell, où un `# commentaire` en début de ligne serait
|
|
31
|
+
* lu comme un titre de niveau 1 — et découperait le document à des endroits qui
|
|
32
|
+
* n'existent pas.
|
|
33
|
+
*
|
|
34
|
+
* @param markdown - corps du document (frontmatter déjà retiré)
|
|
35
|
+
* @returns les titres dans l'ordre du document, avec le poids de leur section
|
|
36
|
+
*/
|
|
37
|
+
export declare function outlineMarkdown(markdown: string): IMarkdownSection[];
|
|
38
|
+
/**
|
|
39
|
+
* Extrait UNE section d'un markdown, sous-sections comprises.
|
|
40
|
+
*
|
|
41
|
+
* Le titre demandé est reconnu sans casse, sans accents et sans ponctuation
|
|
42
|
+
* décorative ({@link foldTitle}) : « securite » retrouve « 🔐 Sécurité ». À
|
|
43
|
+
* défaut d'égalité, une inclusion suffit — un agent cite plus souvent un bout
|
|
44
|
+
* de titre que sa forme exacte.
|
|
45
|
+
*
|
|
46
|
+
* @param markdown - corps du document (frontmatter déjà retiré)
|
|
47
|
+
* @param wanted - titre cherché, sous n'importe quelle forme approchante
|
|
48
|
+
* @returns le titre RÉEL et le corps de sa section, ou `null` si rien ne matche
|
|
49
|
+
*/
|
|
50
|
+
export declare function extractMarkdownSection(markdown: string, wanted: string): {
|
|
51
|
+
title: string;
|
|
52
|
+
markdown: string;
|
|
53
|
+
} | null;
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Tags de **politique de boot** posés sur les listeners de lifecycle d'un
|
|
3
|
+
* {@link Module} — la couche POLITIQUE de la résilience de boot (cf
|
|
4
|
+
* `Event.emitAsyncGuarded` = la MÉCANIQUE générique, qui, elle, ignore tout de la
|
|
5
|
+
* notion de module/criticité).
|
|
6
|
+
*
|
|
7
|
+
* `Module.setEvents()` tague chaque hook (`onKernelRegister/Boot/Ready`) avec son
|
|
8
|
+
* propriétaire (`owner`) et sa criticité (`critical`) ; `Kernel.fireLifecycle()`
|
|
9
|
+
* relit ces tags via {@link readListenerTags} pour décider, en cas d'échec, de
|
|
10
|
+
* propager (module critique en production) ou de continuer (fail-soft).
|
|
11
|
+
*
|
|
12
|
+
* @module
|
|
13
|
+
*/
|
|
14
|
+
/** Tags relus depuis un listener (valeurs `undefined` si non tagué). */
|
|
15
|
+
export interface IListenerTags {
|
|
16
|
+
/** Nom du module propriétaire du hook, ou `undefined` (listener interne/anonyme). */
|
|
17
|
+
owner?: string;
|
|
18
|
+
/** Criticité déclarée du module, ou `undefined` (→ traité comme critique par défaut). */
|
|
19
|
+
critical?: boolean;
|
|
20
|
+
/**
|
|
21
|
+
* Nom de la FONCTION listener, quand elle en a un — repli d'identification
|
|
22
|
+
* pour les hooks posés à la main (`kernel.on("onBoot", …)`), qui ne portent
|
|
23
|
+
* aucun `owner`. Sans lui, un échec de boot se journalise « (anonyme) » et ne
|
|
24
|
+
* désigne personne : en production, où l'échec interrompt le boot, le seul
|
|
25
|
+
* indice exploitable disparaît. `undefined` pour une lambda inline anonyme.
|
|
26
|
+
*/
|
|
27
|
+
name?: string;
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Pose `owner` + `critical` sur une fonction listener, **en place**, et la renvoie.
|
|
31
|
+
*
|
|
32
|
+
* @typeParam F - type de la fonction (préservé).
|
|
33
|
+
* @param fn - listener (typiquement `hook.bind(module)`).
|
|
34
|
+
* @param owner - nom du module propriétaire.
|
|
35
|
+
* @param critical - criticité du module (cf `Module.critical`).
|
|
36
|
+
* @returns la même fonction `fn`, taguée.
|
|
37
|
+
*/
|
|
38
|
+
export declare function tagListener<F extends object>(fn: F, owner: string, critical: boolean): F;
|
|
39
|
+
/**
|
|
40
|
+
* Marque un listener comme n'étant PAS soumis à la borne de temps du boot.
|
|
41
|
+
*
|
|
42
|
+
* 🔴 Vécu, et c'est le pire mode de panne qui soit : l'action d'une commande est
|
|
43
|
+
* câblée comme un écouteur de cycle de vie (`Command.setEvents`), donc bornée
|
|
44
|
+
* comme un hook de module. Passé vingt secondes, la garde abandonnait
|
|
45
|
+
* l'écouteur en fail-soft, le boot enchaînait sur `finishOrPark(0)` et le
|
|
46
|
+
* processus sortait en **0 au milieu du travail**, sans un mot — `doctor
|
|
47
|
+
* --deep` rendait ainsi un succès muet en plein `npm run test`.
|
|
48
|
+
*
|
|
49
|
+
* La distinction est de NATURE, pas de durée : la borne existe pour qu'un module
|
|
50
|
+
* qui se fige ne gèle pas le DÉMARRAGE. Une commande, elle, EST le programme —
|
|
51
|
+
* une migration, une construction, une suite de tests ou une question posée à
|
|
52
|
+
* l'utilisateur dépassent vingt secondes sans rien avoir d'anormal.
|
|
53
|
+
*
|
|
54
|
+
* @typeParam F - type de la fonction (préservé).
|
|
55
|
+
* @param fn - le listener à marquer.
|
|
56
|
+
* @returns la même fonction `fn`, marquée.
|
|
57
|
+
*/
|
|
58
|
+
export declare function tagUnboundedListener<F extends object>(fn: F): F;
|
|
59
|
+
/**
|
|
60
|
+
* Dit si un listener a été marqué par {@link tagUnboundedListener}.
|
|
61
|
+
*
|
|
62
|
+
* **Déballe le wrapper `once`** pour la même raison que {@link readListenerTags} :
|
|
63
|
+
* les actions de commande sont câblées via `kernel.once(...)`, et lire le
|
|
64
|
+
* marquage sur le wrapper interne de Node rendrait toujours `false`.
|
|
65
|
+
*
|
|
66
|
+
* @param fn - listener (wrapper `once` ou fonction directe).
|
|
67
|
+
* @returns `true` si ce listener échappe à la borne de temps du boot.
|
|
68
|
+
*/
|
|
69
|
+
export declare function isUnboundedListener(fn: unknown): boolean;
|
|
70
|
+
/**
|
|
71
|
+
* Relit les tags d'un listener. **Déballe le wrapper `once`** : `rawListeners()`
|
|
72
|
+
* renvoie le wrapper interne d'`EventEmitter.once` (qui porte `.listener` =
|
|
73
|
+
* fonction d'origine) — les hooks de module étant câblés via `kernel.once(...)`,
|
|
74
|
+
* lire les tags directement sur le wrapper renverrait toujours `undefined`.
|
|
75
|
+
*
|
|
76
|
+
* @param fn - listener (wrapper `once` ou fonction directe).
|
|
77
|
+
* @returns `{ owner, critical }` (valeurs `undefined` si non tagué).
|
|
78
|
+
*/
|
|
79
|
+
export declare function readListenerTags(fn: unknown): IListenerTags;
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import type { ZodType } from "zod";
|
|
2
|
+
/**
|
|
3
|
+
* Valide la configuration d'un module contre son schéma Zod, et transforme un
|
|
4
|
+
* refus en {@link BootConfigurationError} nommant le module et la clé fautive.
|
|
5
|
+
*
|
|
6
|
+
* ⭐ TL;DR : c'est LA porte par laquelle toute config de module est validée.
|
|
7
|
+
* Chaque module l'appelle depuis son `define<X>Config()` ; aucun ne réécrit le
|
|
8
|
+
* bloc `try`/`catch`.
|
|
9
|
+
*
|
|
10
|
+
* **Pourquoi une fonction du cœur, et pas un bloc recopié par module.** Les dix
|
|
11
|
+
* modules du framework portaient le même `catch` à l'identique, et il avait
|
|
12
|
+
* divergé sur les deux points qui comptent : le TYPE de l'erreur levée et la
|
|
13
|
+
* LANGUE du message. Une règle écrite à dix endroits diverge au premier ajout.
|
|
14
|
+
*
|
|
15
|
+
* **Pourquoi `BootConfigurationError` et pas une `Error` ordinaire.** Le kernel
|
|
16
|
+
* distingue les deux ({@link BootConfigurationError}) : un hook de cycle de vie
|
|
17
|
+
* qui lève une erreur QUELCONQUE est absorbé en développement — c'est le
|
|
18
|
+
* fail-soft, il protège la DX d'un module optionnel cassé — tandis qu'une
|
|
19
|
+
* erreur de CONFIGURATION interrompt le boot dans TOUS les environnements. Une
|
|
20
|
+
* `Error` nue rendait donc le refus INVISIBLE là où il est le plus utile :
|
|
21
|
+
* sur le poste de celui qui vient d'écrire la faute de frappe.
|
|
22
|
+
*
|
|
23
|
+
* ⚠️ Ne gèle rien — le gel est la décision du module appelant. `@nodefony/http`
|
|
24
|
+
* ne peut PAS geler sa config (ses services la mutent au boot : `uploadDir`,
|
|
25
|
+
* `serialNumber`), quand les autres le font.
|
|
26
|
+
*
|
|
27
|
+
* @param schema - schéma Zod du module (source unique des défauts).
|
|
28
|
+
* @param input - configuration brute venue de `use("<paquet>", { … })`.
|
|
29
|
+
* @param packageName - nom du paquet, préfixe du message (`@nodefony/http`).
|
|
30
|
+
* @returns la configuration validée, défauts appliqués.
|
|
31
|
+
* @throws BootConfigurationError si un champ est invalide ou une clé inconnue —
|
|
32
|
+
* toutes les anomalies agrégées, chacune avec son chemin.
|
|
33
|
+
*/
|
|
34
|
+
export declare function parseModuleConfig<T>(schema: ZodType<T>, input: unknown, packageName: string): T;
|
|
35
|
+
export default parseModuleConfig;
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* La règle qui décide QUELS modules du manifeste seront chargés — et lesquels
|
|
3
|
+
* disparaîtront.
|
|
4
|
+
*
|
|
5
|
+
* Extraite du Kernel pour une raison précise : cette décision se pose à DEUX
|
|
6
|
+
* moments, et pas seulement au démarrage. Le boot l'applique pour de vrai ; le
|
|
7
|
+
* diagnostic (`nodefony doctor --env production`) la rejoue à froid, sur un
|
|
8
|
+
* poste de développement, pour répondre à la question qu'on se pose AVANT de
|
|
9
|
+
* déployer — « qu'est-ce qui ne sera plus là, là-bas ? ». Deux copies de la
|
|
10
|
+
* règle divergeraient au premier cas particulier, et c'est précisément le
|
|
11
|
+
* silence qu'on veut casser qui reviendrait par la porte de derrière.
|
|
12
|
+
*
|
|
13
|
+
* Fonction PURE : ni `process.env`, ni kernel, ni journal. Ce qui la rend
|
|
14
|
+
* éprouvable pour un environnement dans lequel on ne tourne PAS — et c'est tout
|
|
15
|
+
* l'objet de son second lecteur.
|
|
16
|
+
*/
|
|
17
|
+
import type { IModuleManifest, IModuleManifestEntry } from "../types/IModuleManifest.js";
|
|
18
|
+
/** Ce que la garde `when()` d'un manifeste reçoit — la config fusionnée du kernel. */
|
|
19
|
+
export type GateConfig = Parameters<NonNullable<IModuleManifestEntry["when"]>>[0];
|
|
20
|
+
/** Une entrée retenue, prête à charger. */
|
|
21
|
+
export interface IModuleEntry {
|
|
22
|
+
name: string;
|
|
23
|
+
config?: Record<string, unknown>;
|
|
24
|
+
}
|
|
25
|
+
/** Un module volontairement écarté, avec la raison qui le dit. */
|
|
26
|
+
export interface IModuleGated {
|
|
27
|
+
/** Nom d'entrée du manifeste (`config.modules`). */
|
|
28
|
+
module: string;
|
|
29
|
+
/** Raison lisible du non-chargement. */
|
|
30
|
+
reason: string;
|
|
31
|
+
}
|
|
32
|
+
/** Ce que la règle décide d'un manifeste, sans rien exécuter. */
|
|
33
|
+
export interface IGatingOutcome {
|
|
34
|
+
/** Les entrées retenues, dans l'ordre du manifeste (= priorité de chargement). */
|
|
35
|
+
entries: IModuleEntry[];
|
|
36
|
+
/** Les entrées écartées, avec leur raison. */
|
|
37
|
+
gated: IModuleGated[];
|
|
38
|
+
/**
|
|
39
|
+
* Les modules `policy:"dev"` chargés en production PAR DÉROGATION.
|
|
40
|
+
*
|
|
41
|
+
* Rendus à part parce qu'ils appellent un geste que la règle pure ne peut pas
|
|
42
|
+
* faire : le crier au journal et armer l'auto-arrêt. Un module de banc dans
|
|
43
|
+
* un runtime de production est une surface offerte — personne ne doit la
|
|
44
|
+
* découvrir en lisant les routes.
|
|
45
|
+
*/
|
|
46
|
+
derogated: string[];
|
|
47
|
+
}
|
|
48
|
+
/** Ce que la règle a besoin de savoir de l'environnement — jamais lu ici. */
|
|
49
|
+
export interface IGatingInput {
|
|
50
|
+
/** `true` si le runtime visé est un runtime de production (collapse dev/prod). */
|
|
51
|
+
isProduction: boolean;
|
|
52
|
+
/** `true` si la dérogation `NF_WITH_DEV_MODULES=1` est posée. */
|
|
53
|
+
forceDevModules: boolean;
|
|
54
|
+
/**
|
|
55
|
+
* La config fusionnée, sur laquelle chaque `when()` est évalué.
|
|
56
|
+
*
|
|
57
|
+
* Le type est DÉRIVÉ de la garde du manifeste plutôt qu'importé du Kernel :
|
|
58
|
+
* la règle n'a besoin de rien savoir du Kernel, et l'y raccrocher rendrait
|
|
59
|
+
* ce module inatteignable depuis un diagnostic qui, justement, ne boote pas.
|
|
60
|
+
*/
|
|
61
|
+
config: GateConfig;
|
|
62
|
+
}
|
|
63
|
+
/** La raison affichée quand la politique du module l'écarte d'un runtime de production. */
|
|
64
|
+
export declare const GATED_BY_POLICY = "policy \"dev\" \u2014 runtime production";
|
|
65
|
+
/** La raison affichée quand la garde `when(config)` du module refuse. */
|
|
66
|
+
export declare const GATED_BY_CONDITION = "condition when(config) non remplie";
|
|
67
|
+
/**
|
|
68
|
+
* Applique la règle de gating à un manifeste.
|
|
69
|
+
*
|
|
70
|
+
* `policy`/`when` ne font que FILTRER — jamais réordonner : l'ordre du tableau
|
|
71
|
+
* est la priorité de chargement, et un tri introduirait une dépendance que
|
|
72
|
+
* personne n'a écrite.
|
|
73
|
+
*
|
|
74
|
+
* @param manifest - le manifeste `config.modules`, tel qu'il est déclaré.
|
|
75
|
+
* @param input - ce qu'il faut savoir de l'environnement visé.
|
|
76
|
+
* @returns les entrées retenues, celles écartées, et les dérogations.
|
|
77
|
+
*/
|
|
78
|
+
export declare function gateModuleManifest(manifest: IModuleManifest | unknown, input: IGatingInput): IGatingOutcome;
|