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,127 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "./node_modules/oxlint/configuration_schema.json",
|
|
3
|
+
"plugins": ["typescript", "unicorn", "oxc", "promise", "import"],
|
|
4
|
+
"categories": {
|
|
5
|
+
"correctness": "error",
|
|
6
|
+
"suspicious": "warn",
|
|
7
|
+
"perf": "warn"
|
|
8
|
+
},
|
|
9
|
+
"env": { "node": true, "es2024": true },
|
|
10
|
+
"ignorePatterns": ["node_modules/**", "dist/**", "var/**", "*.log"],
|
|
11
|
+
"rules": {
|
|
12
|
+
"no-unused-vars": [
|
|
13
|
+
"error",
|
|
14
|
+
{
|
|
15
|
+
"argsIgnorePattern": "^_",
|
|
16
|
+
"varsIgnorePattern": "^_",
|
|
17
|
+
"caughtErrors": "none"
|
|
18
|
+
}
|
|
19
|
+
],
|
|
20
|
+
"no-restricted-imports": [
|
|
21
|
+
"error",
|
|
22
|
+
{
|
|
23
|
+
"paths": [
|
|
24
|
+
{
|
|
25
|
+
"name": "assert",
|
|
26
|
+
"message": "Préfixe Node obligatoire : importe \"node:assert\"."
|
|
27
|
+
},
|
|
28
|
+
{
|
|
29
|
+
"name": "buffer",
|
|
30
|
+
"message": "Préfixe Node obligatoire : importe \"node:buffer\"."
|
|
31
|
+
},
|
|
32
|
+
{
|
|
33
|
+
"name": "child_process",
|
|
34
|
+
"message": "Préfixe Node obligatoire : importe \"node:child_process\"."
|
|
35
|
+
},
|
|
36
|
+
{
|
|
37
|
+
"name": "crypto",
|
|
38
|
+
"message": "Préfixe Node obligatoire : importe \"node:crypto\"."
|
|
39
|
+
},
|
|
40
|
+
{
|
|
41
|
+
"name": "events",
|
|
42
|
+
"message": "Préfixe Node obligatoire : importe \"node:events\"."
|
|
43
|
+
},
|
|
44
|
+
{
|
|
45
|
+
"name": "fs",
|
|
46
|
+
"message": "Préfixe Node obligatoire : importe \"node:fs\"."
|
|
47
|
+
},
|
|
48
|
+
{
|
|
49
|
+
"name": "fs/promises",
|
|
50
|
+
"message": "Préfixe Node obligatoire : importe \"node:fs/promises\"."
|
|
51
|
+
},
|
|
52
|
+
{
|
|
53
|
+
"name": "http",
|
|
54
|
+
"message": "Préfixe Node obligatoire : importe \"node:http\"."
|
|
55
|
+
},
|
|
56
|
+
{
|
|
57
|
+
"name": "http2",
|
|
58
|
+
"message": "Préfixe Node obligatoire : importe \"node:http2\"."
|
|
59
|
+
},
|
|
60
|
+
{
|
|
61
|
+
"name": "https",
|
|
62
|
+
"message": "Préfixe Node obligatoire : importe \"node:https\"."
|
|
63
|
+
},
|
|
64
|
+
{
|
|
65
|
+
"name": "net",
|
|
66
|
+
"message": "Préfixe Node obligatoire : importe \"node:net\"."
|
|
67
|
+
},
|
|
68
|
+
{
|
|
69
|
+
"name": "os",
|
|
70
|
+
"message": "Préfixe Node obligatoire : importe \"node:os\"."
|
|
71
|
+
},
|
|
72
|
+
{
|
|
73
|
+
"name": "path",
|
|
74
|
+
"message": "Préfixe Node obligatoire : importe \"node:path\"."
|
|
75
|
+
},
|
|
76
|
+
{
|
|
77
|
+
"name": "process",
|
|
78
|
+
"message": "Préfixe Node obligatoire : importe \"node:process\"."
|
|
79
|
+
},
|
|
80
|
+
{
|
|
81
|
+
"name": "stream",
|
|
82
|
+
"message": "Préfixe Node obligatoire : importe \"node:stream\"."
|
|
83
|
+
},
|
|
84
|
+
{
|
|
85
|
+
"name": "timers",
|
|
86
|
+
"message": "Préfixe Node obligatoire : importe \"node:timers\"."
|
|
87
|
+
},
|
|
88
|
+
{
|
|
89
|
+
"name": "url",
|
|
90
|
+
"message": "Préfixe Node obligatoire : importe \"node:url\"."
|
|
91
|
+
},
|
|
92
|
+
{
|
|
93
|
+
"name": "util",
|
|
94
|
+
"message": "Préfixe Node obligatoire : importe \"node:util\"."
|
|
95
|
+
},
|
|
96
|
+
{
|
|
97
|
+
"name": "worker_threads",
|
|
98
|
+
"message": "Préfixe Node obligatoire : importe \"node:worker_threads\"."
|
|
99
|
+
}
|
|
100
|
+
]
|
|
101
|
+
}
|
|
102
|
+
],
|
|
103
|
+
"typescript/no-explicit-any": "warn",
|
|
104
|
+
"typescript/ban-ts-comment": "warn",
|
|
105
|
+
// ESM strict : une application Nodefony n'écrit jamais `require`.
|
|
106
|
+
"typescript/no-require-imports": "warn",
|
|
107
|
+
"no-eval": "error",
|
|
108
|
+
"no-new-func": "error",
|
|
109
|
+
"no-await-in-loop": "off",
|
|
110
|
+
"no-console": "off",
|
|
111
|
+
"unicorn/no-array-reverse": "off",
|
|
112
|
+
"unicorn/consistent-function-scoping": "off",
|
|
113
|
+
"typescript/no-extraneous-class": "off"
|
|
114
|
+
},
|
|
115
|
+
"overrides": [
|
|
116
|
+
{
|
|
117
|
+
"files": ["**/*.test.ts", "**/*.spec.ts", "tests/**/*.ts"],
|
|
118
|
+
"rules": {
|
|
119
|
+
"typescript/no-explicit-any": "off",
|
|
120
|
+
"no-unused-vars": "off",
|
|
121
|
+
"no-unused-expressions": "off",
|
|
122
|
+
"no-restricted-imports": "off",
|
|
123
|
+
"promise/no-callback-in-promise": "off"
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
]
|
|
127
|
+
}
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "<%= it.appName %>",
|
|
3
|
+
"version": "0.1.0",
|
|
4
|
+
"private": true,
|
|
5
|
+
"type": "module",
|
|
6
|
+
"description": "Application Nodefony — générée par `nodefony create app`",
|
|
7
|
+
"main": "dist/index.js",
|
|
8
|
+
"engines": {
|
|
9
|
+
"node": ">=24.0.0"
|
|
10
|
+
},
|
|
11
|
+
<% if (it.complete && it.dialect === "sqlite") { %> "allowScripts": {
|
|
12
|
+
"better-sqlite3": false
|
|
13
|
+
},
|
|
14
|
+
<% } %> "scripts": {
|
|
15
|
+
"prepare": "node --eval \"const f=require('node:fs');if(f.existsSync('.githooks'))try{require('node:child_process').execSync('git config core.hooksPath .githooks',{stdio:'ignore'})}catch{}\"",
|
|
16
|
+
"dev": "nodefony development",
|
|
17
|
+
"build": "rolldown -c rolldown.config.ts<% if (it.front) { %> && nodefony frontend:build<% } %>",
|
|
18
|
+
"start": "nodefony production",
|
|
19
|
+
"stop": "nodefony stop",
|
|
20
|
+
"status": "nodefony status",
|
|
21
|
+
"test": "vitest run",
|
|
22
|
+
"coverage:setup": "npm i -D @vitest/coverage-v8",
|
|
23
|
+
"coverage": "vitest run --coverage",
|
|
24
|
+
"test:e2e": "npm run build && vitest run -c vitest.e2e.config.ts",
|
|
25
|
+
"typecheck": "tsgo --noEmit",
|
|
26
|
+
"verify": "npm run typecheck && npm run lint && npm run format:check && npm test && npm run doctor",
|
|
27
|
+
"doctor": "nodefony doctor",
|
|
28
|
+
"inspect": "nodefony inspect",
|
|
29
|
+
"ai:sync": "nodefony ai:sync",
|
|
30
|
+
"see:setup": "npm i -D playwright axe-core",
|
|
31
|
+
"see": "node node_modules/@nodefony/devkit/skills/nodefony-browser/scripts/inspect.mjs",
|
|
32
|
+
"watch:screen": "node node_modules/@nodefony/devkit/skills/nodefony-browser/scripts/watch.mjs",
|
|
33
|
+
"audit:setup": "npm i -D playwright lighthouse",
|
|
34
|
+
"audit:web": "node node_modules/@nodefony/devkit/skills/nodefony-browser/scripts/audit.mjs",
|
|
35
|
+
"clean": "node --eval \"require('node:fs').rmSync('dist',{recursive:true,force:true})\"",
|
|
36
|
+
"lint": "oxlint --deny-warnings",
|
|
37
|
+
"format": "prettier --write .",
|
|
38
|
+
"format:check": "prettier --check ."<% if (it.complete) { %>,
|
|
39
|
+
"infra:up": "docker compose up -d",
|
|
40
|
+
"infra:down": "docker compose down"<% } %>
|
|
41
|
+
},
|
|
42
|
+
"dependencies": {
|
|
43
|
+
"nodefony": "^<%= it.nodefonyVersion %>",
|
|
44
|
+
"@nodefony/http": "^<%= it.nodefonyVersion %>",
|
|
45
|
+
"@nodefony/framework": "^<%= it.nodefonyVersion %>",
|
|
46
|
+
<% if (it.complete) { %> "@nodefony/orm-core": "^<%= it.nodefonyVersion %>",
|
|
47
|
+
"@nodefony/drizzle": "^<%= it.nodefonyVersion %>",
|
|
48
|
+
"drizzle-orm": "<%= it.pkg["drizzle-orm"] %>",
|
|
49
|
+
<% if (it.dialect === "postgres") { %> "pg": "<%= it.pkg["pg"] %>",
|
|
50
|
+
<% } else if (it.dialect === "mysql") { %> "mysql2": "<%= it.pkg["mysql2"] %>",
|
|
51
|
+
<% } else { %> "better-sqlite3": "<%= it.pkg["better-sqlite3"] %>",
|
|
52
|
+
<% } %> "@nodefony/user": "^<%= it.nodefonyVersion %>",
|
|
53
|
+
"@node-rs/argon2": "<%= it.pkg["@node-rs/argon2"] %>",
|
|
54
|
+
"@nodefony/realtime": "^<%= it.nodefonyVersion %>",
|
|
55
|
+
"@nodefony/security": "^<%= it.nodefonyVersion %>",
|
|
56
|
+
"@nodefony/frontend": "^<%= it.nodefonyVersion %>",
|
|
57
|
+
"@nodefony/studio": "^<%= it.nodefonyVersion %>",
|
|
58
|
+
"@nodefony/redis": "^<%= it.nodefonyVersion %>",
|
|
59
|
+
<% } else if (it.front) { %> "@nodefony/frontend": "^<%= it.nodefonyVersion %>",
|
|
60
|
+
<% } %><% if (it.front) { for (const [n, v] of Object.entries(it.front.deps)) { %> "<%= n %>": "<%= v %>",
|
|
61
|
+
<% } } %> "zod": "<%= it.pkg["zod"] %>"
|
|
62
|
+
},
|
|
63
|
+
"devDependencies": {
|
|
64
|
+
"@nodefony/devkit": "^<%= it.nodefonyVersion %>",
|
|
65
|
+
"@types/node": "<%= it.pkg["@types/node"] %>",
|
|
66
|
+
"drizzle-kit": "<%= it.pkg["drizzle-kit"] %>",
|
|
67
|
+
"@typescript/native-preview": "<%= it.pkg["@typescript/native-preview"] %>",
|
|
68
|
+
"oxlint": "<%= it.pkg["oxlint"] %>",
|
|
69
|
+
"prettier": "<%= it.pkg["prettier"] %>",
|
|
70
|
+
"rolldown": "<%= it.pkg["rolldown"] %>",
|
|
71
|
+
<% if (it.front) { for (const [n, v] of Object.entries(it.front.devDeps)) { %> "<%= n %>": "<%= v %>",
|
|
72
|
+
<% } } %> "typescript": "<%= it.pkg["typescript"] %>",
|
|
73
|
+
"vitest": "<%= it.pkg["vitest"] %>"
|
|
74
|
+
}
|
|
75
|
+
}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
# Ce que le formateur ne doit PAS toucher.
|
|
2
|
+
#
|
|
3
|
+
# `npm run format` lance `prettier --write .` sur tout le projet. Prettier
|
|
4
|
+
# écarte `node_modules` de lui-même — mais PAS `dist/`, ni `var/`, ni les
|
|
5
|
+
# artefacts du build front. Sans ce fichier, un seul `npm run format` reformate
|
|
6
|
+
# le BUILD : des milliers de lignes modifiées, un diff illisible, et un `dist`
|
|
7
|
+
# qui ne correspond plus à ce que le bundler vient d'écrire.
|
|
8
|
+
|
|
9
|
+
# Artefacts générés / build
|
|
10
|
+
dist/
|
|
11
|
+
public/dist/
|
|
12
|
+
**/dist/**
|
|
13
|
+
node_modules/
|
|
14
|
+
var/
|
|
15
|
+
.turbo/
|
|
16
|
+
coverage/
|
|
17
|
+
|
|
18
|
+
# Photos jetables (captures, journaux) — elles se refont, on ne les aligne pas.
|
|
19
|
+
tmp/
|
|
20
|
+
|
|
21
|
+
# Lockfiles & minifiés : ni lisibles ni à relire.
|
|
22
|
+
package-lock.json
|
|
23
|
+
**/*.min.js
|
|
24
|
+
**/*.min.css
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { defineNodefonyRolldownConfig } from "nodefony/bundler";
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Build de l'app — tout le socle (preserveModules, treeshake, décorateurs lus
|
|
5
|
+
* du tsconfig) vit dans `nodefony/bundler`. `externalDeps` : le runtime vient
|
|
6
|
+
* de `node_modules`, seul TON code est bundlé.
|
|
7
|
+
*/
|
|
8
|
+
export default defineNodefonyRolldownConfig({ externalDeps: true });
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { describe, it, expect } from "vitest";
|
|
2
|
+
import config from "../nodefony.config";
|
|
3
|
+
import { env } from "../env";
|
|
4
|
+
import App from "../index";
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* Tests UNITAIRES — zéro serveur, zéro infra : ils valident que l'app se CHARGE.
|
|
8
|
+
*
|
|
9
|
+
* C'est le filet le moins cher qui attrape le plus d'erreurs : un import cassé,
|
|
10
|
+
* un décorateur mal appliqué, une config qui déréférence le kernel trop tôt
|
|
11
|
+
* (interdit — le kernel n'existe pas encore à l'import) font échouer CE fichier
|
|
12
|
+
* avant même de booter quoi que ce soit.
|
|
13
|
+
*/
|
|
14
|
+
describe("l'app se charge (imports, décorateurs, config)", () => {
|
|
15
|
+
it("le descripteur de config existe (defineConfig)", () => {
|
|
16
|
+
expect(config).toBeDefined();
|
|
17
|
+
});
|
|
18
|
+
|
|
19
|
+
it("le catalogue d'env typé existe (defineEnv — seul lecteur de process.env)", () => {
|
|
20
|
+
expect(env).toBeDefined();
|
|
21
|
+
});
|
|
22
|
+
|
|
23
|
+
it("le module App est défini et décoré (ses controllers sont attachés)", () => {
|
|
24
|
+
// @controllers([...]) WRAPPE la classe (c'est le décorateur qui attache les
|
|
25
|
+
// controllers au module) : on vérifie le constructeur, pas son nom interne.
|
|
26
|
+
expect(App).toBeTypeOf("function");
|
|
27
|
+
expect(App.prototype).toBeDefined();
|
|
28
|
+
});
|
|
29
|
+
});
|
|
@@ -0,0 +1,181 @@
|
|
|
1
|
+
import { execFileSync } from "node:child_process";
|
|
2
|
+
<% if (!it.db) { %>import { rmSync } from "node:fs";
|
|
3
|
+
import path from "node:path";
|
|
4
|
+
<% } %>import { nodefonyBin, runningAppPort } from "nodefony/testing";
|
|
5
|
+
/**
|
|
6
|
+
* Démarre l'application UNE fois pour toute la suite E2E, et l'arrête à la fin.
|
|
7
|
+
*
|
|
8
|
+
* Pourquoi ici et pas dans chaque fichier de test : chaque entité générée apporte
|
|
9
|
+
* son propre fichier `*.e2e.test.ts`, et un `beforeAll` par fichier signifierait
|
|
10
|
+
* un démarrage complet par fichier — la suite se paierait en minutes, et deux
|
|
11
|
+
* fichiers qui démarrent la même application se marcheraient dessus.
|
|
12
|
+
*
|
|
13
|
+
* La mécanique est 100 % native Nodefony :
|
|
14
|
+
* - `nodefony production --detach --wait` : lancement détaché, exit 0 seulement
|
|
15
|
+
* quand la readiness est sondée (ports ouverts) — aucun sleep arbitraire ;
|
|
16
|
+
* - `nodefony stop` : arrêt propre de tout runtime de l'application.
|
|
17
|
+
*
|
|
18
|
+
* Les tests ne reçoivent pas le port par ce fichier : ils le lisent eux-mêmes
|
|
19
|
+
* avec `runningAppPort()`. Un port écrit en dur casse dès que l'application
|
|
20
|
+
* déclare le sien (`NF_PORT`, `PORT` en PaaS) ou qu'un port occupé l'a fait
|
|
21
|
+
* glisser — et un port de REPLI est pire encore, il fait interroger le premier
|
|
22
|
+
* serveur venu sur la machine.
|
|
23
|
+
*/
|
|
24
|
+
|
|
25
|
+
/**
|
|
26
|
+
* Le lanceur du framework — RÉSOLU par le framework lui-même.
|
|
27
|
+
*
|
|
28
|
+
* Aucun chemin n'est écrit ici, et c'est le point : `node_modules/.bin/nodefony`
|
|
29
|
+
* n'existe pas sous Windows (npm y écrit un `.cmd`, que Node refuse d'exécuter
|
|
30
|
+
* sans shell), et l'emplacement du paquet dépend du hoisting, des espaces de
|
|
31
|
+
* travail, du gestionnaire utilisé. `nodefonyBin()` demande à Node de localiser
|
|
32
|
+
* le paquet et lit son champ `bin` : une seule implémentation, dans le
|
|
33
|
+
* framework, qui suit ses propres déménagements.
|
|
34
|
+
*
|
|
35
|
+
* Le résultat se donne à `node`, jamais au système : c'est un script.
|
|
36
|
+
*/
|
|
37
|
+
const bin = nodefonyBin();
|
|
38
|
+
|
|
39
|
+
/**
|
|
40
|
+
* Base de données de la suite E2E — jetable, et surtout SÉPARÉE de celle du
|
|
41
|
+
* développement.
|
|
42
|
+
*
|
|
43
|
+
* Une suite qui écrit dans la base de dev ne fait pas que la salir : elle y
|
|
44
|
+
* sème un compte `admin` dont le mot de passe est celui, écrit en clair dans ce
|
|
45
|
+
* fichier. Le seed étant idempotent, `admin` / `admin` — le couple annoncé par
|
|
46
|
+
* le `.env` et le README — cesse alors de fonctionner pour toujours, sans le
|
|
47
|
+
* moindre message. Symétriquement, un `admin` déjà semé en développement fait
|
|
48
|
+
* échouer `connexionAdmin()`, et la suite accuse la route qu'elle mesure au
|
|
49
|
+
* lieu de son décor. Un fichier à part supprime les deux pannes d'un coup, et
|
|
50
|
+
* rend la suite reproductible.
|
|
51
|
+
*
|
|
52
|
+
* Surcharge : `NF_E2E_DATABASE_URL` — pour éprouver la suite sur un AUTRE
|
|
53
|
+
* serveur que celui du développement (une instance PostgreSQL de recette, par
|
|
54
|
+
* exemple).
|
|
55
|
+
*
|
|
56
|
+
* ⚠️ **Elle ne change pas le DIALECTE de vos entités.** Elles sont écrites pour
|
|
57
|
+
* celui que vous avez choisi à la création de l'application, et l'ORM refuse de
|
|
58
|
+
* démarrer sur un autre en nommant l'entité fautive. Viser un moteur différent
|
|
59
|
+
* suppose de porter chaque entité (`createXTable("postgres")`) — un chantier,
|
|
60
|
+
* pas une variable.
|
|
61
|
+
<% if (it.db) { %> *
|
|
62
|
+
* Sur <%= it.db.label %>, c'est une base À PART sur le même serveur —
|
|
63
|
+
* `<%= it.db.databaseE2e %>`, que votre décor FOURNIT : le compose généré la
|
|
64
|
+
* crée, et votre recette doit faire de même. Une suite de tests ne se fabrique
|
|
65
|
+
* pas une base : `CREATE DATABASE` est un privilège d'administration que
|
|
66
|
+
* l'utilisateur applicatif n'a pas.
|
|
67
|
+
<% } %> */
|
|
68
|
+
export const URL_BASE_E2E =
|
|
69
|
+
<% if (it.db) { %> process.env.NF_E2E_DATABASE_URL ?? "<%= it.db.urlE2e %>";<% } else { %> process.env.NF_E2E_DATABASE_URL ??
|
|
70
|
+
`sqlite:${path.resolve("var/databases/e2e.db")}`;<% } %>
|
|
71
|
+
<% if (it.hasSecurity) { %>
|
|
72
|
+
/**
|
|
73
|
+
* Mot de passe du compte d'administration, POUR LA SUITE DE TESTS UNIQUEMENT.
|
|
74
|
+
*
|
|
75
|
+
* La suite tourne en `production`, où aucun compte n'est semé sans mot de passe
|
|
76
|
+
* explicite — c'est voulu : une application ne doit jamais naître en production
|
|
77
|
+
* avec des identifiants connus. Les tests, eux, ont besoin d'une identité pour
|
|
78
|
+
* éprouver les routes protégées (la suppression, notamment), d'où cette valeur
|
|
79
|
+
* jetable, posée dans l'environnement du serveur de test et nulle part ailleurs.
|
|
80
|
+
*/
|
|
81
|
+
export const MOT_DE_PASSE_ADMIN = "e2e-admin-jetable";
|
|
82
|
+
|
|
83
|
+
/**
|
|
84
|
+
* Ouvre une session d'administration et rend l'en-tête `Cookie` à rejouer.
|
|
85
|
+
*
|
|
86
|
+
* C'est ainsi qu'un client réel s'authentifie auprès de l'application : un POST
|
|
87
|
+
* sur la route de connexion du framework, puis le cookie de session sur chaque
|
|
88
|
+
* requête suivante. Les tests d'une route protégée s'en servent ; les autres
|
|
89
|
+
* l'ignorent.
|
|
90
|
+
*
|
|
91
|
+
* @returns L'en-tête `Cookie` complet, à passer tel quel à `fetch`.
|
|
92
|
+
* @throws Si la connexion échoue — mieux vaut un test qui dit « je n'ai pas pu
|
|
93
|
+
* m'authentifier » qu'un test qui conclut « accès refusé » sur un décor cassé.
|
|
94
|
+
*/
|
|
95
|
+
export async function connexionAdmin(): Promise<string> {
|
|
96
|
+
const port = runningAppPort();
|
|
97
|
+
const res = await fetch(
|
|
98
|
+
`http://127.0.0.1:${port}/nodefony/security/api/auth/login`,
|
|
99
|
+
{
|
|
100
|
+
method: "POST",
|
|
101
|
+
headers: { "content-type": "application/json" },
|
|
102
|
+
body: JSON.stringify({
|
|
103
|
+
username: "admin",
|
|
104
|
+
password: MOT_DE_PASSE_ADMIN,
|
|
105
|
+
}),
|
|
106
|
+
},
|
|
107
|
+
);
|
|
108
|
+
if (res.status !== 200) {
|
|
109
|
+
throw new Error(
|
|
110
|
+
`connexion admin impossible (${res.status}) — le décor de test, pas la route mesurée`,
|
|
111
|
+
);
|
|
112
|
+
}
|
|
113
|
+
const cookies = res.headers.getSetCookie?.() ?? [];
|
|
114
|
+
return cookies.map((c) => c.split(";")[0]).join("; ");
|
|
115
|
+
}
|
|
116
|
+
<% } %>
|
|
117
|
+
export async function setup(): Promise<void> {
|
|
118
|
+
// Repartir d'une base VIERGE : une suite dont le verdict dépend de ce qu'un
|
|
119
|
+
// run précédent a laissé n'est pas reproductible.
|
|
120
|
+
<% if (it.db) { %> //
|
|
121
|
+
// Sur un moteur serveur, une base ne s'EFFACE pas — on retire ses tables.
|
|
122
|
+
// `orm:reset` est le geste que le framework prévoit pour ça, et il n'existe
|
|
123
|
+
// qu'en développement : cette base-ci n'a pas d'autre usage que la suite.
|
|
124
|
+
execFileSync(process.execPath, [bin, "orm:reset", "--yes"], {
|
|
125
|
+
stdio: "inherit",
|
|
126
|
+
timeout: 120_000,
|
|
127
|
+
env: {
|
|
128
|
+
...process.env,
|
|
129
|
+
NODE_ENV: "development",
|
|
130
|
+
NF_DATABASE_URL: URL_BASE_E2E,
|
|
131
|
+
},
|
|
132
|
+
});
|
|
133
|
+
<% } else { %> // Les compagnons `-wal` et `-shm` partent avec le fichier, sinon SQLite
|
|
134
|
+
// ressuscite l'état d'avant.
|
|
135
|
+
if (URL_BASE_E2E.startsWith("sqlite:")) {
|
|
136
|
+
const fichier = URL_BASE_E2E.slice("sqlite:".length);
|
|
137
|
+
for (const suffixe of ["", "-wal", "-shm"]) {
|
|
138
|
+
rmSync(`${fichier}${suffixe}`, { force: true });
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
<% } %>
|
|
142
|
+
<% if (it.hasOrm) { %> // Le schéma AVANT le trafic — le patron de production, appliqué ici tel quel.
|
|
143
|
+
//
|
|
144
|
+
// En production le démarrage ne fabrique JAMAIS le schéma (mode `ddl: none`) :
|
|
145
|
+
// c'est délibéré, parce que plusieurs exemplaires partent en même temps et
|
|
146
|
+
// qu'aucun d'eux ne doit toucher aux tables. C'est un travail d'orchestrateur,
|
|
147
|
+
// qui passe AVANT. Sans cette étape, la base qu'on vient d'effacer reste vide,
|
|
148
|
+
// la mise en service est retenue (`/readyz` rend 503), et `--wait` attend une
|
|
149
|
+
// disponibilité qui ne viendra jamais.
|
|
150
|
+
execFileSync(process.execPath, [bin, "orm:migrate"], {
|
|
151
|
+
stdio: "inherit",
|
|
152
|
+
timeout: 120_000,
|
|
153
|
+
env: {
|
|
154
|
+
...process.env,
|
|
155
|
+
NODE_ENV: "production",
|
|
156
|
+
NF_DATABASE_URL: URL_BASE_E2E,
|
|
157
|
+
},
|
|
158
|
+
});
|
|
159
|
+
<% } %> execFileSync(process.execPath, [bin, "production", "--detach", "--wait"], {
|
|
160
|
+
stdio: "inherit",
|
|
161
|
+
timeout: 120_000,
|
|
162
|
+
env: {
|
|
163
|
+
...process.env,
|
|
164
|
+
// La suite ne touche JAMAIS la base de développement — cf `URL_BASE_E2E`.
|
|
165
|
+
NF_DATABASE_URL: URL_BASE_E2E,
|
|
166
|
+
<% if (it.hasSecurity) { %> // Sans cette variable, la production ne sème AUCUN compte : les tests des
|
|
167
|
+
// routes protégées n'auraient aucune identité à présenter, et échoueraient
|
|
168
|
+
// en accusant la garde plutôt que le décor.
|
|
169
|
+
NF_ADMIN_PASSWORD: MOT_DE_PASSE_ADMIN,
|
|
170
|
+
<% } %> },
|
|
171
|
+
});
|
|
172
|
+
}
|
|
173
|
+
|
|
174
|
+
export async function teardown(): Promise<void> {
|
|
175
|
+
// Jamais de serveur laissé derrière : un runtime orphelin tient les ports et
|
|
176
|
+
// fait échouer le run suivant sur une erreur qui ne parle pas de lui.
|
|
177
|
+
execFileSync(process.execPath, [bin, "stop"], {
|
|
178
|
+
stdio: "inherit",
|
|
179
|
+
timeout: 30_000,
|
|
180
|
+
});
|
|
181
|
+
}
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
import { runningAppPort } from "nodefony/testing";
|
|
2
|
+
import { readRuntimeState } from "nodefony";
|
|
3
|
+
<% if (it.complete) { %>// La façade temps réel isomorphe — côté Node, subpath `nodefony/client`.
|
|
4
|
+
import { RealtimeClient } from "nodefony/client";
|
|
5
|
+
<% } %>import { describe, it, expect, beforeAll } from "vitest";
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* Test E2E — parle en HTTP + WebSocket à l'application RÉELLE (mode production).
|
|
9
|
+
*
|
|
10
|
+
* Seule porte d'entrée : `npm run test:e2e` (build d'abord : un serveur spawné
|
|
11
|
+
* valide le DIST, pas le source). Ce fichier est EXCLU de `vitest.config.ts` et
|
|
12
|
+
* ciblé par `vitest.e2e.config.ts` — invoqué, il tourne TOUJOURS : pas de gate
|
|
13
|
+
* d'environnement qui l'afficherait « skipped » dans un rapport vert.
|
|
14
|
+
*
|
|
15
|
+
* Le démarrage et l'arrêt de l'application vivent dans `tests/e2e.setup.ts`
|
|
16
|
+
* (une fois pour toute la suite), pas ici.
|
|
17
|
+
* Client WebSocket = `WebSocket` NATIF Node (≥ 22) — zéro dépendance de test.
|
|
18
|
+
*
|
|
19
|
+
* Le port n'est PAS écrit en dur : le serveur publie ses ports effectifs
|
|
20
|
+
* (`runningAppPort`) — un test qui suppose 5151 casse dès que l'app déclare son
|
|
21
|
+
* port (`NF_PORT`, `PORT` en PaaS) ou qu'un port occupé l'a fait glisser en dev.
|
|
22
|
+
*/
|
|
23
|
+
let BASE = "http://127.0.0.1:5151";
|
|
24
|
+
let WS_BASE = "ws://127.0.0.1:5151";
|
|
25
|
+
|
|
26
|
+
describe("e2e — l'app boote et répond (HTTP + WS)", () => {
|
|
27
|
+
beforeAll(() => {
|
|
28
|
+
// Le serveur est PRÊT (le setup global n'est sorti qu'après la readiness) :
|
|
29
|
+
// ses ports sont publiés. Le premier est celui du serveur en clair (une app
|
|
30
|
+
// TLS-only adaptera ces deux lignes).
|
|
31
|
+
const port = runningAppPort();
|
|
32
|
+
BASE = `http://127.0.0.1:${port}`;
|
|
33
|
+
WS_BASE = `ws://127.0.0.1:${port}`;
|
|
34
|
+
});
|
|
35
|
+
|
|
36
|
+
it("GET /api/hello → 200 + payload JSON", async () => {
|
|
37
|
+
const res = await fetch(`${BASE}/api/hello`);
|
|
38
|
+
expect(res.status).toBe(200);
|
|
39
|
+
const body = (await res.json()) as { hello: string; pid: number };
|
|
40
|
+
expect(body.hello).toBe("<%= it.appName %>");
|
|
41
|
+
expect(body.pid).toBeGreaterThan(0);
|
|
42
|
+
});
|
|
43
|
+
|
|
44
|
+
it("WS /api/echo → echo du message (même controller que le HTTP)", async () => {
|
|
45
|
+
const ws = new WebSocket(`${WS_BASE}/api/echo`);
|
|
46
|
+
const echoed = await new Promise<unknown>((resolve, reject) => {
|
|
47
|
+
const timer = setTimeout(
|
|
48
|
+
() => reject(new Error("timeout WS 10s")),
|
|
49
|
+
10_000,
|
|
50
|
+
);
|
|
51
|
+
ws.addEventListener("open", () => ws.send("ping-e2e"));
|
|
52
|
+
ws.addEventListener("message", (event) => {
|
|
53
|
+
const data = JSON.parse(String(event.data)) as { echo?: string };
|
|
54
|
+
// Le handshake du controller peut répondre d'abord — on attend l'echo.
|
|
55
|
+
if (data.echo !== undefined) {
|
|
56
|
+
clearTimeout(timer);
|
|
57
|
+
resolve(data);
|
|
58
|
+
}
|
|
59
|
+
});
|
|
60
|
+
ws.addEventListener("error", () => reject(new Error("erreur WS")));
|
|
61
|
+
});
|
|
62
|
+
ws.close();
|
|
63
|
+
expect(echoed).toEqual({ echo: "ping-e2e" });
|
|
64
|
+
});
|
|
65
|
+
|
|
66
|
+
it("probe cloud-native /livez → 200 (celle qu'interroge k8s)", async () => {
|
|
67
|
+
const res = await fetch(`${BASE}/livez`);
|
|
68
|
+
expect(res.status).toBe(200);
|
|
69
|
+
});
|
|
70
|
+
<% if (it.complete) { %>
|
|
71
|
+
it("realtime — RPC live:ping + aller-retour sur le canal live:events", async () => {
|
|
72
|
+
// La MÊME façade que les vitrines navigateur — zéro `ws` à la main.
|
|
73
|
+
const live = new RealtimeClient({ url: `${WS_BASE}/api/live/realtime` });
|
|
74
|
+
try {
|
|
75
|
+
// Listener posé AVANT subscribe : le fournisseur démarre au 1ᵉʳ abonné.
|
|
76
|
+
const receivedP = new Promise<unknown>((resolve, reject) => {
|
|
77
|
+
const timer = setTimeout(
|
|
78
|
+
() => reject(new Error("timeout canal 10s")),
|
|
79
|
+
10_000,
|
|
80
|
+
);
|
|
81
|
+
live.on("live:events", (msg) => {
|
|
82
|
+
clearTimeout(timer);
|
|
83
|
+
resolve(msg);
|
|
84
|
+
});
|
|
85
|
+
});
|
|
86
|
+
await live.connect();
|
|
87
|
+
// Action OUVERTE ({ authenticated: false }) — répond même anonyme.
|
|
88
|
+
const pong = (await live.request("live:ping", {})) as { pong: boolean };
|
|
89
|
+
expect(pong.pong).toBe(true);
|
|
90
|
+
// Canal libre. Il ne bat PAS tout seul : il parle quand il se passe
|
|
91
|
+
// quelque chose — ici, ce que cette connexion envoie et que toutes
|
|
92
|
+
// reçoivent. C'est ce partage qui fait l'intérêt d'une socket, pas un
|
|
93
|
+
// battement qui coûterait une trame par seconde et par client.
|
|
94
|
+
live.subscribe("live:events");
|
|
95
|
+
live.emit("live:say", { text: "bonjour e2e" });
|
|
96
|
+
const received = (await receivedP) as { text: string; pid: number };
|
|
97
|
+
expect(received.text).toBe("bonjour e2e");
|
|
98
|
+
expect(received.pid).toBeGreaterThan(0);
|
|
99
|
+
} finally {
|
|
100
|
+
// Le nettoyage vit dans le `finally` : une assertion qui tombe ne doit
|
|
101
|
+
// jamais laisser une socket ouverte derrière le run.
|
|
102
|
+
live.disconnect();
|
|
103
|
+
}
|
|
104
|
+
}, 15_000);
|
|
105
|
+
<% } %>});
|