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,53 @@
|
|
|
1
|
+
# ══════════════════════════════════════════════════════════════════════════
|
|
2
|
+
# Environnement de <%= it.appName %> — fichier COMMITÉ (défauts NON-secrets)
|
|
3
|
+
# ══════════════════════════════════════════════════════════════════════════
|
|
4
|
+
# Convention (celle du framework, style Vite/Next) :
|
|
5
|
+
# .env → CE fichier : catalogue + défauts partagés, JAMAIS de secret
|
|
6
|
+
# .env.local → tes valeurs machine + SECRETS (gitignoré via *.local,
|
|
7
|
+
# généré à la création de l'app)
|
|
8
|
+
# Priorité de chargement : .env.local PRIME sur .env (première clé gagne).
|
|
9
|
+
# Chaque variable est déclarée et validée dans env.ts (seul lecteur de
|
|
10
|
+
# process.env) — une variable non déclarée là-bas n'existe pas pour l'app.
|
|
11
|
+
|
|
12
|
+
# ── Réseau ──────────────────────────────────────────────────────────────────
|
|
13
|
+
# Ports d'écoute. Absents = défauts du framework (HTTP 5151, HTTPS 5152).
|
|
14
|
+
# En DEV, si le port est déjà pris (une autre app Nodefony), l'app prend le
|
|
15
|
+
# suivant libre et l'ANNONCE (`portPolicy: "auto"`). En PRODUCTION le port est un
|
|
16
|
+
# CONTRAT (service, ingress, sonde) : occupé = échec franc (`portPolicy: "strict"`).
|
|
17
|
+
# `PORT` est l'alias des plateformes (Cloud Run, Heroku, Railway) — elles
|
|
18
|
+
# l'injectent elles-mêmes ; `NF_PORT` l'emporte si les deux sont là.
|
|
19
|
+
# NF_PORT=5151
|
|
20
|
+
# NF_PORT_HTTPS=5152
|
|
21
|
+
|
|
22
|
+
# ── Observabilité ───────────────────────────────────────────────────────────
|
|
23
|
+
# Sink des logs : stdout (cloud-native, défaut) | file | null
|
|
24
|
+
# NF_LOG_DRIVER=stdout
|
|
25
|
+
|
|
26
|
+
# ── Persistance (infra déclarée → stores dérivés automatiquement) ───────────
|
|
27
|
+
# URL unique, dialecte déduit du scheme. ABSENTE = profil solo : sqlite local
|
|
28
|
+
# (var/databases/) — l'app persiste out-of-the-box (users, sessions, jetons).
|
|
29
|
+
<% if (it.db) { %># Tu as retenu <%= it.db.label %> à la création : l'URL ci-dessous joint le service
|
|
30
|
+
# du `compose.yaml` généré. Lance-le avant l'app — `npm run infra:up`.
|
|
31
|
+
# (Repasser en sqlite local : commente cette ligne, rien d'autre à changer.)
|
|
32
|
+
# Elle joint le service `<%= it.db.service %>` du compose, avec ses identifiants de dev.
|
|
33
|
+
NF_DATABASE_URL=<%= it.db.url %>
|
|
34
|
+
|
|
35
|
+
<% } else { %># NF_DATABASE_URL=postgres://user:pass@localhost:5432/<%= it.appName %> (exemple)
|
|
36
|
+
|
|
37
|
+
<% } %>
|
|
38
|
+
|
|
39
|
+
# Cache/éphémère partagé : sa présence CHARGE @nodefony/redis (sessions,
|
|
40
|
+
# idempotence, backplane realtime cross-pod).
|
|
41
|
+
# NF_REDIS_URL=redis://localhost:6379
|
|
42
|
+
|
|
43
|
+
# ── Secrets (module security) — VALEURS dans .env.local, jamais ici ─────────
|
|
44
|
+
# Générées à la création de l'app ; rotation/rattrapage :
|
|
45
|
+
# npx nodefony security:secrets --write
|
|
46
|
+
# NF_TOTP_KEY= → .env.local (chiffrement des secrets 2FA au repos)
|
|
47
|
+
# NF_WEBHOOK_KEY= → .env.local (chiffrement des signatures webhook)
|
|
48
|
+
# NF_CSRF_SECRET= → .env.local (jetons anti-CSRF, partagé en cluster)
|
|
49
|
+
|
|
50
|
+
# ── Compte admin (seedé au premier boot — nodefony/security/provisionUsers.ts)
|
|
51
|
+
# DEV : défaut admin / admin (local). PROD : OBLIGATOIRE, sans lui aucun compte
|
|
52
|
+
# n'est créé (le définir via le secret-manager, pas dans un fichier commité).
|
|
53
|
+
# NF_ADMIN_PASSWORD=
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
import { defineEntity } from "@nodefony/orm-core";
|
|
2
|
+
import { createUserTable, FRAMEWORK_CONNECTOR } from "@nodefony/drizzle";
|
|
3
|
+
import type { SqlDialect } from "@nodefony/drizzle";
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* L'entité `User` de cette application.
|
|
7
|
+
*
|
|
8
|
+
* **L'identité appartient à ton application**, pas au framework : c'est toi qui
|
|
9
|
+
* décris cette table, qui y ajoutes tes champs et qui en portes les migrations.
|
|
10
|
+
* Sans ce fichier, l'application marcherait en développement — où le schéma est
|
|
11
|
+
* dérivé du code — et refuserait de servir en production, où personne ne créerait
|
|
12
|
+
* la table.
|
|
13
|
+
*
|
|
14
|
+
* ## Ajouter tes propres champs
|
|
15
|
+
*
|
|
16
|
+
* Ne modifie pas ce fichier à la main : relance la commande avec tes champs, elle
|
|
17
|
+
* réécrit l'entité avec les colonnes du contrat EN CLAIR, plus les tiennes.
|
|
18
|
+
*
|
|
19
|
+
* ```bash
|
|
20
|
+
* nodefony create entity User firstName:string(100)? department:string?
|
|
21
|
+
* ```
|
|
22
|
+
*
|
|
23
|
+
* Un champ obligatoire doit avoir une valeur par défaut (`role:string=membre`) ou
|
|
24
|
+
* être facultatif (`department:string?`) : le framework crée des utilisateurs sans
|
|
25
|
+
* le connaître — au semis d'un administrateur, à la première connexion par un
|
|
26
|
+
* fournisseur externe — et ces créations échoueraient.
|
|
27
|
+
*
|
|
28
|
+
* ## Écrire et lire un champ métier
|
|
29
|
+
*
|
|
30
|
+
* En ÉCRITURE, `IUserRepository` est typé sur le contrat et refuse tes champs :
|
|
31
|
+
* la porte est le dépôt générique, `orm.getRepository("User")`. En LECTURE il n'y
|
|
32
|
+
* a rien à faire — le dépôt reporte toute colonne hors contrat sur l'utilisateur.
|
|
33
|
+
*
|
|
34
|
+
* ## Après un changement de schéma
|
|
35
|
+
*
|
|
36
|
+
* ```bash
|
|
37
|
+
* nodefony orm:generate --name utilisateur # écrit la migration
|
|
38
|
+
* nodefony orm:migrate # l'applique
|
|
39
|
+
* ```
|
|
40
|
+
*/
|
|
41
|
+
/**
|
|
42
|
+
* Le moteur choisi à la création de cette application.
|
|
43
|
+
*
|
|
44
|
+
* Il est FIGÉ ici, comme dans toute entité générée : une table Drizzle est
|
|
45
|
+
* écrite pour un dialecte: `sqliteTable` et `pgTable` n'ont ni les mêmes types
|
|
46
|
+
* ni les mêmes options. Changer de moteur demande donc de changer cette ligne —
|
|
47
|
+
* et d'écrire la migration correspondante, ce que `orm:generate` fait pour toi.
|
|
48
|
+
*
|
|
49
|
+
* (Il n'est PAS déduit de l'environnement : dans une application Nodefony,
|
|
50
|
+
* `env.ts` en est le SEUL lecteur. Une seconde lecture ailleurs fait diverger la
|
|
51
|
+
* configuration effective de ce que le catalogue déclare.)
|
|
52
|
+
*/
|
|
53
|
+
const DIALECTE: SqlDialect = "<%= it.dialect %>";
|
|
54
|
+
|
|
55
|
+
/**
|
|
56
|
+
* La table, EXPORTÉE — et pas seulement passée au descripteur.
|
|
57
|
+
*
|
|
58
|
+
* L'outil qui écrit les migrations est un process séparé : il lit les fichiers de
|
|
59
|
+
* `nodefony/entity/` et y cherche les tables exportées. Une table seulement
|
|
60
|
+
* passée en argument y serait invisible, et la migration s'écrirait SANS elle.
|
|
61
|
+
*/
|
|
62
|
+
export const userTable = createUserTable(DIALECTE);
|
|
63
|
+
|
|
64
|
+
export const UserEntity = defineEntity({
|
|
65
|
+
name: "User",
|
|
66
|
+
module: "app",
|
|
67
|
+
connector: FRAMEWORK_CONNECTOR,
|
|
68
|
+
schema: userTable,
|
|
69
|
+
});
|
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
import type { Module } from "nodefony";
|
|
2
|
+
import { ormRegistry } from "@nodefony/orm-core";
|
|
3
|
+
import { InMemoryUserRepository, UserService } from "@nodefony/user";
|
|
4
|
+
import type { IPasswordEncoder } from "@nodefony/user";
|
|
5
|
+
import { DrizzleUserRepository } from "@nodefony/drizzle";
|
|
6
|
+
import type { DrizzleOrm } from "@nodefony/drizzle";
|
|
7
|
+
import { env } from "../../env";
|
|
8
|
+
|
|
9
|
+
const LOG_CTX = "USERS";
|
|
10
|
+
|
|
11
|
+
/** Identifiant (login) du compte administrateur seedé au premier boot. */
|
|
12
|
+
export const ADMIN_IDENTIFIER = "admin";
|
|
13
|
+
|
|
14
|
+
/**
|
|
15
|
+
* Rôles du compte admin — donnés À PLAT (en plus de la hiérarchie déclarée dans
|
|
16
|
+
* `nodefony.config.ts`) : `ROLE_NODEFONY_ADMIN` ouvre la console Studio
|
|
17
|
+
* (`/nodefony`), `ROLE_ADMIN` la gestion applicative des utilisateurs.
|
|
18
|
+
*/
|
|
19
|
+
export const ADMIN_ROLES = ["ROLE_ADMIN", "ROLE_NODEFONY_ADMIN"];
|
|
20
|
+
|
|
21
|
+
/**
|
|
22
|
+
* Pose le service applicatif `"users"` (la source d'identité du firewall) au
|
|
23
|
+
* démarrage de l'app, puis seed le compte admin s'il n'existe pas.
|
|
24
|
+
*
|
|
25
|
+
* **C'est la responsabilité de TON application, pas du framework** :
|
|
26
|
+
* `@nodefony/security` sait *authentifier*, mais c'est l'app qui décide *qui*
|
|
27
|
+
* sont ses utilisateurs et *où* ils sont stockés. Sans ce service, toutes les
|
|
28
|
+
* méthodes d'auth (mot de passe, JWT, social) échouent avec
|
|
29
|
+
* « aucun service users ».
|
|
30
|
+
*
|
|
31
|
+
* Dépôt : Drizzle (SQL — sqlite local par défaut, `NF_DATABASE_URL` pour une
|
|
32
|
+
* vraie base). Si l'ORM n'est pas chargé (module retiré du manifeste), repli
|
|
33
|
+
* ANNONCÉ sur un annuaire mémoire volatil — l'auth marche, mais les comptes ne
|
|
34
|
+
* survivent pas au redémarrage.
|
|
35
|
+
*
|
|
36
|
+
* Mot de passe admin :
|
|
37
|
+
* - DÉVELOPPEMENT : `admin` / `admin` par défaut (local uniquement — même
|
|
38
|
+
* esprit que Grafana). Surcharge : `NF_ADMIN_PASSWORD` dans `.env.local`.
|
|
39
|
+
* - PRODUCTION : `NF_ADMIN_PASSWORD` OBLIGATOIRE (secret-manager) — sans lui,
|
|
40
|
+
* AUCUN compte n'est créé (jamais de mot de passe par défaut en prod) et un
|
|
41
|
+
* WARNING explique quoi faire (`nodefony security:user:add`).
|
|
42
|
+
*
|
|
43
|
+
* Idempotent et non destructif : ne remplace jamais un annuaire déjà posé, ne
|
|
44
|
+
* recrée jamais un compte existant.
|
|
45
|
+
*
|
|
46
|
+
* @param module - le module applicatif (`App`) — fournit container, kernel, log.
|
|
47
|
+
*/
|
|
48
|
+
export async function provisionUsers(module: Module): Promise<void> {
|
|
49
|
+
const container = module.container;
|
|
50
|
+
if (!container || container.has("users")) {
|
|
51
|
+
return;
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
// L'encodeur (Argon2id par défaut) est posé par le firewall (@nodefony/security).
|
|
55
|
+
// Son absence = module security non chargé → échec franc, pas de fallback muet.
|
|
56
|
+
const encoder = container.get<IPasswordEncoder>("passwordEncoder");
|
|
57
|
+
if (!encoder) {
|
|
58
|
+
throw new Error(
|
|
59
|
+
`provisionUsers: service "passwordEncoder" absent — le module ` +
|
|
60
|
+
`@nodefony/security est-il chargé dans nodefony.config.ts ?`,
|
|
61
|
+
);
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
// `get()` LÈVE sur un nom inconnu : interroger AVANT, sinon ce repli
|
|
65
|
+
// fail-soft — tout l'objet du bloc qui suit — ne s'exécute jamais et le
|
|
66
|
+
// boot casse là où il devait dégrader.
|
|
67
|
+
const orm = ormRegistry.has("default")
|
|
68
|
+
? (ormRegistry.get("default") as DrizzleOrm)
|
|
69
|
+
: undefined;
|
|
70
|
+
if (!orm) {
|
|
71
|
+
// Repli ANNONCÉ (jamais silencieux) : sans ORM, annuaire mémoire volatil.
|
|
72
|
+
module.log(
|
|
73
|
+
`ORM "default" absent (module @nodefony/drizzle retiré ?) → annuaire ` +
|
|
74
|
+
`utilisateurs EN MÉMOIRE : les comptes ne survivront pas au redémarrage.`,
|
|
75
|
+
"WARNING",
|
|
76
|
+
LOG_CTX,
|
|
77
|
+
);
|
|
78
|
+
const users = new UserService(new InMemoryUserRepository([]), encoder);
|
|
79
|
+
container.set("users", users);
|
|
80
|
+
await seedAdmin(users, module);
|
|
81
|
+
return;
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
const users = new UserService(DrizzleUserRepository.from(orm), encoder);
|
|
85
|
+
container.set("users", users);
|
|
86
|
+
await seedAdmin(users, module);
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
/**
|
|
90
|
+
* Crée le compte admin s'il n'existe pas (idempotent). Le hash Argon2id est
|
|
91
|
+
* fait par `UserService.createUser` — jamais de mot de passe en clair stocké.
|
|
92
|
+
*
|
|
93
|
+
* @param users - service utilisateur branché sur son dépôt.
|
|
94
|
+
* @param module - module applicatif (logs + environnement).
|
|
95
|
+
*/
|
|
96
|
+
async function seedAdmin(users: UserService, module: Module): Promise<void> {
|
|
97
|
+
if (await users.findByIdentifier(ADMIN_IDENTIFIER)) {
|
|
98
|
+
return;
|
|
99
|
+
}
|
|
100
|
+
const isProd = module.kernel?.environment === "production";
|
|
101
|
+
const password = env.NF_ADMIN_PASSWORD ?? (isProd ? null : "admin");
|
|
102
|
+
if (!password) {
|
|
103
|
+
module.log(
|
|
104
|
+
`Aucun admin et NF_ADMIN_PASSWORD non défini → aucun compte seedé en ` +
|
|
105
|
+
`production. Définis NF_ADMIN_PASSWORD (secret-manager) ou crée un ` +
|
|
106
|
+
`compte : \`npx nodefony security:user:add admin --admin\`.`,
|
|
107
|
+
"WARNING",
|
|
108
|
+
LOG_CTX,
|
|
109
|
+
);
|
|
110
|
+
return;
|
|
111
|
+
}
|
|
112
|
+
await users.createUser({
|
|
113
|
+
identifier: ADMIN_IDENTIFIER,
|
|
114
|
+
plainPassword: password,
|
|
115
|
+
roles: ADMIN_ROLES,
|
|
116
|
+
});
|
|
117
|
+
module.log(
|
|
118
|
+
isProd
|
|
119
|
+
? `Compte admin seedé (mot de passe : NF_ADMIN_PASSWORD).`
|
|
120
|
+
: `Compte admin seedé — connexion : admin / ${env.NF_ADMIN_PASSWORD ? "(NF_ADMIN_PASSWORD)" : "admin"} (Studio : /nodefony).`,
|
|
121
|
+
"INFO",
|
|
122
|
+
LOG_CTX,
|
|
123
|
+
);
|
|
124
|
+
}
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
import {
|
|
2
|
+
Service,
|
|
3
|
+
Module,
|
|
4
|
+
Container,
|
|
5
|
+
Event,
|
|
6
|
+
injectable,
|
|
7
|
+
inject,
|
|
8
|
+
} from "nodefony";
|
|
9
|
+
|
|
10
|
+
import AppInfoService from "./AppInfoService";
|
|
11
|
+
|
|
12
|
+
/**
|
|
13
|
+
* ⚡ **Tu veux un service ? Ne recopie pas ce fichier — génère-le :**
|
|
14
|
+
*
|
|
15
|
+
* ```bash
|
|
16
|
+
* npx nodefony create service <Nom> # la classe + sa déclaration
|
|
17
|
+
* npx nodefony create service <Nom> --inject <Autre> # + la dépendance écrite
|
|
18
|
+
* ```
|
|
19
|
+
*
|
|
20
|
+
* Le générateur écrit la version COURANTE du framework et déclare le service sur
|
|
21
|
+
* le module ; recopié à la main, il naît déjà décalé et personne ne le signale.
|
|
22
|
+
* Ce fichier reste là pour se LIRE — comprendre ce qu'est un service — pas pour
|
|
23
|
+
* se dupliquer.
|
|
24
|
+
*
|
|
25
|
+
*
|
|
26
|
+
* Un service qui en CONSOMME un autre — l'exemplaire à imiter dès que ta
|
|
27
|
+
* logique a besoin d'une brique déjà écrite.
|
|
28
|
+
*
|
|
29
|
+
* `AppInfoService`, à côté, montre à quoi ressemble un service. Il ne montrait
|
|
30
|
+
* pas le geste le plus fréquent, et de loin : **s'en servir depuis ailleurs**.
|
|
31
|
+
* Sans un exemplaire sous les yeux, ce geste se réinvente — et il se réinvente
|
|
32
|
+
* mal. Les deux erreurs qui reviennent, toutes deux compilables :
|
|
33
|
+
*
|
|
34
|
+
* `new AppInfoService(module)` un SECOND exemplaire, qui n'est pas celui
|
|
35
|
+
* du conteneur : sa configuration, son
|
|
36
|
+
* `init()` et son état ne sont pas les siens
|
|
37
|
+
* un import direct, appelé en statique
|
|
38
|
+
* plus de conteneur du tout, donc plus rien
|
|
39
|
+
* à remplacer en test
|
|
40
|
+
*
|
|
41
|
+
* La bonne voie est ci-dessous, et il y en a deux :
|
|
42
|
+
*
|
|
43
|
+
* 1. **Par le CONSTRUCTEUR** (`@inject`) — la dépendance est DÉCLARÉE, donc le
|
|
44
|
+
* conteneur construit `AppInfoService` AVANT celui-ci et passe l'exemplaire
|
|
45
|
+
* unique. C'est la voie par défaut. `@inject` prend le nom de la **CLASSE**
|
|
46
|
+
* (`AppInfoService`), jamais la clé d'instance.
|
|
47
|
+
* 2. **Par le CONTENEUR** (`this.container.get("appInfo")`) — utile quand la
|
|
48
|
+
* dépendance est tardive ou optionnelle. Ici c'est la clé d'**INSTANCE**,
|
|
49
|
+
* celle que l'autre fichier passe en premier argument à son constructeur
|
|
50
|
+
* parent — pas le nom de sa classe.
|
|
51
|
+
*
|
|
52
|
+
* Tu en veux un nouveau ? Ne recopie pas ce fichier :
|
|
53
|
+
* `npx nodefony create service <Nom> --inject AppInfoService` écrit ce
|
|
54
|
+
* constructeur pour toi, à la version courante du framework.
|
|
55
|
+
*/
|
|
56
|
+
@injectable()
|
|
57
|
+
class AppBannerService extends Service {
|
|
58
|
+
module: Module;
|
|
59
|
+
|
|
60
|
+
constructor(
|
|
61
|
+
module: Module,
|
|
62
|
+
// La dépendance passe par le CONSTRUCTEUR : le conteneur la construit avant
|
|
63
|
+
// celui-ci et l'ordonnance. `@inject` prend le nom de la CLASSE — la clé
|
|
64
|
+
// d'instance (`"appInfo"`) ne sert qu'à `container.get`.
|
|
65
|
+
@inject("AppInfoService") private readonly appInfo: AppInfoService,
|
|
66
|
+
) {
|
|
67
|
+
super(
|
|
68
|
+
"appBanner",
|
|
69
|
+
module.container as Container,
|
|
70
|
+
module.notificationsCenter as Event,
|
|
71
|
+
);
|
|
72
|
+
this.module = module;
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
/**
|
|
76
|
+
* Hook de démarrage, appelé UNE fois par le kernel après la construction.
|
|
77
|
+
*
|
|
78
|
+
* ⚠️ `init`, pas `initialize` — le kernel ne cherche que `init`.
|
|
79
|
+
*/
|
|
80
|
+
async init(): Promise<this> {
|
|
81
|
+
this.log("service appBanner initialisé", "DEBUG");
|
|
82
|
+
return this;
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
/**
|
|
86
|
+
* Compose une ligne lisible à partir du service injecté — remplace ce corps
|
|
87
|
+
* par ta logique.
|
|
88
|
+
*
|
|
89
|
+
* Noter qu'on n'a rien reconstruit : `this.appInfo` EST l'exemplaire du
|
|
90
|
+
* conteneur, avec sa configuration et son `init()` déjà passés.
|
|
91
|
+
*/
|
|
92
|
+
banner(): string {
|
|
93
|
+
const { app, env } = this.appInfo.identity();
|
|
94
|
+
return `${app} — ${env}`;
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
export default AppBannerService;
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
import { Service, Module, Container, Event, injectable } from "nodefony";
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* ⚡ **Tu veux un service ? Ne recopie pas ce fichier — génère-le :**
|
|
5
|
+
*
|
|
6
|
+
* ```bash
|
|
7
|
+
* npx nodefony create service <Nom> # la classe + sa déclaration
|
|
8
|
+
* npx nodefony create service <Nom> --inject <Autre> # + la dépendance écrite
|
|
9
|
+
* ```
|
|
10
|
+
*
|
|
11
|
+
* Le générateur écrit la version COURANTE du framework et déclare le service sur
|
|
12
|
+
* le module ; recopié à la main, il naît déjà décalé et personne ne le signale.
|
|
13
|
+
* Ce fichier reste là pour se LIRE — comprendre ce qu'est un service — pas pour
|
|
14
|
+
* se dupliquer.
|
|
15
|
+
*
|
|
16
|
+
* Un SERVICE de ton application — l'exemplaire à LIRE quand tu écris de la
|
|
17
|
+
* logique métier.
|
|
18
|
+
*
|
|
19
|
+
* Il est là pour une raison précise : ton application naît avec des controllers
|
|
20
|
+
* d'exemple, et un agent — comme un développeur — imite ce qu'il a sous les
|
|
21
|
+
* yeux. Sans un service à copier, la logique finit dans un controller, ou dans
|
|
22
|
+
* une classe ordinaire instanciée à la main. Les deux COMPILENT et passent les
|
|
23
|
+
* tests ; les deux perdent tout ce que le conteneur apporte.
|
|
24
|
+
*
|
|
25
|
+
* **Quand écrire un service plutôt qu'une méthode de controller ?** Dès que le
|
|
26
|
+
* même traitement sert à DEUX endroits — deux routes, une route et une commande
|
|
27
|
+
* CLI, un controller et un canal temps réel. Un controller traduit du HTTP ou du
|
|
28
|
+
* WebSocket ; un service porte le métier, et le même exemplaire sert tous les
|
|
29
|
+
* transports sans être réécrit pour chacun.
|
|
30
|
+
*
|
|
31
|
+
* Trois choses en font un service Nodefony, et aucune n'est décorative :
|
|
32
|
+
*
|
|
33
|
+
* `@injectable()` le conteneur peut le construire et l'injecter
|
|
34
|
+
* `extends Service` il reçoit `this.log`, les événements, le conteneur
|
|
35
|
+
* `super("appInfo", …)` sa clé d'instance — `container.get("appInfo")`
|
|
36
|
+
*
|
|
37
|
+
* Le décorateur nomme la CLASSE (ce qu'on écrit dans `@inject("AppInfoService")`),
|
|
38
|
+
* le `super()` nomme l'INSTANCE. Les deux mènent au même exemplaire.
|
|
39
|
+
*
|
|
40
|
+
* ⚠️ Écrire cette classe ne suffit PAS : un service doit être DÉCLARÉ sur le
|
|
41
|
+
* module, dans `@services([…])` de l'`index.ts`. Une classe `@injectable()` que
|
|
42
|
+
* personne ne déclare n'existe pour personne — `npx nodefony doctor` le dit
|
|
43
|
+
* (règle `orphan-service`), mais seulement si le décorateur est là.
|
|
44
|
+
*/
|
|
45
|
+
@injectable()
|
|
46
|
+
class AppInfoService extends Service {
|
|
47
|
+
module: Module;
|
|
48
|
+
|
|
49
|
+
constructor(module: Module) {
|
|
50
|
+
super(
|
|
51
|
+
"appInfo",
|
|
52
|
+
module.container as Container,
|
|
53
|
+
module.notificationsCenter as Event,
|
|
54
|
+
);
|
|
55
|
+
this.module = module;
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
/**
|
|
59
|
+
* Hook de démarrage, appelé UNE fois par le kernel après la construction.
|
|
60
|
+
*
|
|
61
|
+
* ⚠️ Il s'appelle `init`, pas `initialize` : le kernel ne cherche que `init`.
|
|
62
|
+
* Une méthode `initialize` sur un service n'est jamais appelée, et rien ne le
|
|
63
|
+
* signale. (`initialize` existe, mais sur un CONTROLLER, où il tourne à CHAQUE
|
|
64
|
+
* requête — deux cycles de vie, deux noms.)
|
|
65
|
+
*/
|
|
66
|
+
async init(): Promise<this> {
|
|
67
|
+
this.log("service appInfo initialisé", "DEBUG");
|
|
68
|
+
return this;
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
/**
|
|
72
|
+
* La carte d'identité de l'application — remplace ce corps par ta logique.
|
|
73
|
+
*
|
|
74
|
+
* Elle lit la CONFIGURATION plutôt qu'une valeur écrite en dur : c'est ce qui
|
|
75
|
+
* permet de changer le comportement par environnement sans retoucher au code.
|
|
76
|
+
*/
|
|
77
|
+
identity(): { app: string; env: string } {
|
|
78
|
+
return {
|
|
79
|
+
app: "<%= it.appName %>",
|
|
80
|
+
env: String(this.kernel?.environment ?? "development"),
|
|
81
|
+
};
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
export default AppInfoService;
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Accent Angular — sa couleur et l'animation de son logo.
|
|
3
|
+
*
|
|
4
|
+
* La mise en page et la palette de la démonstration vivent dans
|
|
5
|
+
* `showcase.css`, PARTAGÉE par les trois vitrines : seules ces variables
|
|
6
|
+
* changent d'un framework à l'autre.
|
|
7
|
+
*
|
|
8
|
+
* Pourquoi un fichier CSS et non le bloc de styles du composant : Angular
|
|
9
|
+
* renomme les `@keyframes` déclarés dans `styles: [...]` (encapsulation de
|
|
10
|
+
* vue) — l'animation nommée par la variable ne serait alors plus trouvée.
|
|
11
|
+
* Les trois vitrines utilisent donc le même mécanisme, un import CSS que
|
|
12
|
+
* Vite injecte globalement.
|
|
13
|
+
*/
|
|
14
|
+
|
|
15
|
+
:root {
|
|
16
|
+
--nf-accent: #dd0031;
|
|
17
|
+
/* Encre : la MÊME teinte, assez foncée pour être lue SUR le lavis.
|
|
18
|
+
La couleur de marque ne se négocie pas ; sa luminosité, si — écrire
|
|
19
|
+
`--nf-accent` sur `--nf-accent-wash` donnait 2,78:1, sous le seuil AA. */
|
|
20
|
+
--nf-accent-ink: #a30024;
|
|
21
|
+
--nf-accent-glow: rgba(221, 0, 49, 0.28);
|
|
22
|
+
--nf-accent-wash: rgba(221, 0, 49, 0.1);
|
|
23
|
+
--nf-accent-line: rgba(221, 0, 49, 0.3);
|
|
24
|
+
--nf-logo-anim: nf-pulse 4s ease-in-out infinite;
|
|
25
|
+
}
|
|
26
|
+
@keyframes nf-pulse {
|
|
27
|
+
0%,
|
|
28
|
+
100% {
|
|
29
|
+
transform: scale(1);
|
|
30
|
+
}
|
|
31
|
+
50% {
|
|
32
|
+
transform: scale(1.07);
|
|
33
|
+
}
|
|
34
|
+
}
|