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,198 @@
|
|
|
1
|
+
import { EventEmitter } from "node:events";
|
|
2
|
+
//#region src/Event.ts
|
|
3
|
+
const regListenOn = /^on(.*)$/;
|
|
4
|
+
/** Sentinelle de rejet interne au timeout d'{@link Event.emitAsyncGuarded} (jamais exposée). */
|
|
5
|
+
const timeoutSentinel = Symbol("nodefony.emitAsyncGuarded.timeout");
|
|
6
|
+
/**
|
|
7
|
+
* Bus d'événements Nodefony — extension de Node.js {@link EventEmitter} avec
|
|
8
|
+
* deux ajouts maison : `emitAsync` (await tous les listeners en séquence) et
|
|
9
|
+
* `settingsToListen` (mapping config → listeners via convention `onXxx`).
|
|
10
|
+
*
|
|
11
|
+
* Utilisé par {@link Service} comme `notificationsCenter`. Une seule instance
|
|
12
|
+
* peut être partagée entre plusieurs services — chaque service track ses
|
|
13
|
+
* propres listeners pour les retirer proprement à `clean()`.
|
|
14
|
+
*
|
|
15
|
+
* @example Bus dédié
|
|
16
|
+
* ```ts
|
|
17
|
+
* const bus = new Event({ onReady: () => console.log("ready!") }, this);
|
|
18
|
+
* bus.fire("onReady");
|
|
19
|
+
* ```
|
|
20
|
+
*
|
|
21
|
+
* @example Bus partagé entre services
|
|
22
|
+
* ```ts
|
|
23
|
+
* const sharedBus = new Event();
|
|
24
|
+
* new ServiceA(name, container, sharedBus);
|
|
25
|
+
* new ServiceB(name, container, sharedBus);
|
|
26
|
+
* ```
|
|
27
|
+
*/
|
|
28
|
+
var Event = class extends EventEmitter {
|
|
29
|
+
/**
|
|
30
|
+
* @param settings - objet de config dont les clés `onXxx` sont auto-bindées
|
|
31
|
+
* comme listeners (via {@link settingsToListen}).
|
|
32
|
+
* @param context - `this` à bind sur les listeners auto-enregistrés.
|
|
33
|
+
* @param options - `nbListeners` surcharge la limite d'abonnés de Node.js ;
|
|
34
|
+
* absent, c'est celle de Node qui s'applique (10), et le dépassement
|
|
35
|
+
* signale une fuite probable. La valeur `0` vaut **illimité**, comme dans
|
|
36
|
+
* `setMaxListeners` — un bus dont on SAIT qu'il portera beaucoup d'abonnés
|
|
37
|
+
* se déclare ainsi, au lieu de subir un avertissement qui n'annonce rien.
|
|
38
|
+
*/
|
|
39
|
+
constructor(settings, context, options) {
|
|
40
|
+
super();
|
|
41
|
+
if (options?.nbListeners !== void 0) this.setMaxListeners(options.nbListeners);
|
|
42
|
+
if (settings) this.settingsToListen(settings, context);
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Parcourt `localSettings` et enregistre chaque clé matchant `/^on(.*)$/`
|
|
46
|
+
* comme listener — convention héritée des composants WebComponent / config
|
|
47
|
+
* Nodefony historique. Utile pour wirer des hooks via config plate.
|
|
48
|
+
*
|
|
49
|
+
* @param localSettings - objet plat ; les clés `onReady`, `onClose`, etc.
|
|
50
|
+
* sont prises comme noms d'événements ET comme listeners.
|
|
51
|
+
* @param context - si fourni, le listener est bindé sur ce contexte.
|
|
52
|
+
*/
|
|
53
|
+
settingsToListen(localSettings, context) {
|
|
54
|
+
for (const i of Object.keys(localSettings)) {
|
|
55
|
+
const res = regListenOn.exec(i);
|
|
56
|
+
if (!res) continue;
|
|
57
|
+
if (context) {
|
|
58
|
+
this.listen(context, res[0], localSettings[i]);
|
|
59
|
+
continue;
|
|
60
|
+
}
|
|
61
|
+
this.on(res[0], localSettings[i]);
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* Bind `listener` sur `context` puis l'enregistre. Renvoie une fonction
|
|
66
|
+
* dispatcher qui ré-émet l'événement avec ses propres args (façon trigger).
|
|
67
|
+
*
|
|
68
|
+
* @returns dispatcher `(...args) => this.emit(eventName, ...args)` — pratique
|
|
69
|
+
* pour exposer un trigger sans donner accès au bus complet.
|
|
70
|
+
*/
|
|
71
|
+
listen(context, eventName, listener) {
|
|
72
|
+
if (typeof listener === "function") this.addListener(eventName, listener.bind(context));
|
|
73
|
+
return (...args) => this.emit(eventName, ...args);
|
|
74
|
+
}
|
|
75
|
+
/** Alias `emit` — émission synchrone (API EventEmitter standard). */
|
|
76
|
+
fire(eventName, ...args) {
|
|
77
|
+
return super.emit(eventName, ...args);
|
|
78
|
+
}
|
|
79
|
+
/**
|
|
80
|
+
* Émet et attend chaque listener en séquence (`await Reflect.apply` un par
|
|
81
|
+
* un). Différent de `emit` qui appelle synchroniquement sans attendre les
|
|
82
|
+
* Promises retournées.
|
|
83
|
+
*
|
|
84
|
+
* @returns tableau des valeurs résolues par chaque listener (ordre d'append),
|
|
85
|
+
* ou `false` si aucun listener n'est attaché.
|
|
86
|
+
* @remarks Séquentiel par design — si tu veux Promise.all, fais un wrapper
|
|
87
|
+
* au-dessus. La séquence garantit l'ordre prévisible des side-effects.
|
|
88
|
+
*/
|
|
89
|
+
async emitAsync(eventName, ...args) {
|
|
90
|
+
if (this.listenerCount(eventName) === 0) return false;
|
|
91
|
+
const handlers = this.rawListeners(eventName);
|
|
92
|
+
const result = [];
|
|
93
|
+
for (const handler of handlers) {
|
|
94
|
+
const r = Reflect.apply(handler, this, args);
|
|
95
|
+
result.push(r != null && typeof r.then === "function" ? await r : r);
|
|
96
|
+
}
|
|
97
|
+
return result;
|
|
98
|
+
}
|
|
99
|
+
/** Alias `emitAsync`. */
|
|
100
|
+
async fireAsync(eventName, ...args) {
|
|
101
|
+
return this.emitAsync(eventName, ...args);
|
|
102
|
+
}
|
|
103
|
+
/**
|
|
104
|
+
* Variante **gardée** de {@link emitAsync} : émet les listeners en SÉRIE (ordre
|
|
105
|
+
* préservé) mais isole chacun par un `try/catch` + un `timeout` optionnel, et
|
|
106
|
+
* COLLECTE les échecs au lieu de laisser le premier rejet faire sauter les
|
|
107
|
+
* suivants (ou un listener figé geler tout le reste).
|
|
108
|
+
*
|
|
109
|
+
* Ne décide d'AUCUNE politique (log, criticité, propagation) : c'est l'appelant
|
|
110
|
+
* qui tranche via `onListenerError` (continuer / arrêter) et `onListenerSlow`.
|
|
111
|
+
* Cette séparation MÉCANIQUE / POLITIQUE permet de réutiliser la garde hors boot
|
|
112
|
+
* en toute connaissance de cause.
|
|
113
|
+
*
|
|
114
|
+
* 🚨 **Coût** : quand `timeoutMs > 0`, 1 timer + 1 Promise de course PAR listener.
|
|
115
|
+
* Réservé au **boot / lifecycle / jobs** (cf `Kernel.fireLifecycle`) — appelé
|
|
116
|
+
* ≪ 1×/process. **JAMAIS dans le hot path HTTP/WS** : celui-ci garde `emitAsync`
|
|
117
|
+
* nu (aucun timer, aucune alloc par requête).
|
|
118
|
+
*
|
|
119
|
+
* @param eventName - événement à émettre.
|
|
120
|
+
* @param options - garde (timeout/seuil de lenteur) + callbacks de politique.
|
|
121
|
+
* @param args - arguments passés à chaque listener.
|
|
122
|
+
* @returns `{ results, errors, stopped }` (cf {@link IGuardedEmitResult}).
|
|
123
|
+
*/
|
|
124
|
+
async emitAsyncGuarded(eventName, options = {}, ...args) {
|
|
125
|
+
const results = [];
|
|
126
|
+
const errors = [];
|
|
127
|
+
if (this.listenerCount(eventName) === 0) return {
|
|
128
|
+
results,
|
|
129
|
+
errors,
|
|
130
|
+
stopped: false
|
|
131
|
+
};
|
|
132
|
+
const handlers = this.rawListeners(eventName);
|
|
133
|
+
const timeoutOption = options.timeoutMs ?? 0;
|
|
134
|
+
const perListener = typeof timeoutOption === "function";
|
|
135
|
+
const warnMs = options.warnMs ?? 0;
|
|
136
|
+
const measure = warnMs > 0;
|
|
137
|
+
for (let index = 0; index < handlers.length; index += 1) {
|
|
138
|
+
const handler = handlers[index];
|
|
139
|
+
const timeoutMs = perListener ? timeoutOption(handler, index) : timeoutOption;
|
|
140
|
+
const startedAt = measure ? Date.now() : 0;
|
|
141
|
+
let timedOut = false;
|
|
142
|
+
try {
|
|
143
|
+
const call = Promise.resolve(Reflect.apply(handler, this, args));
|
|
144
|
+
let value;
|
|
145
|
+
if (timeoutMs > 0) {
|
|
146
|
+
call.catch(() => {});
|
|
147
|
+
let timer;
|
|
148
|
+
try {
|
|
149
|
+
value = await Promise.race([call, new Promise((_, reject) => {
|
|
150
|
+
timer = setTimeout(() => {
|
|
151
|
+
timedOut = true;
|
|
152
|
+
reject(timeoutSentinel);
|
|
153
|
+
}, timeoutMs);
|
|
154
|
+
timer.unref?.();
|
|
155
|
+
})]);
|
|
156
|
+
} finally {
|
|
157
|
+
if (timer) clearTimeout(timer);
|
|
158
|
+
}
|
|
159
|
+
} else value = await call;
|
|
160
|
+
results.push(value);
|
|
161
|
+
if (measure && options.onListenerSlow) {
|
|
162
|
+
const durationMs = Date.now() - startedAt;
|
|
163
|
+
if (durationMs >= warnMs) options.onListenerSlow({
|
|
164
|
+
index,
|
|
165
|
+
listener: handler,
|
|
166
|
+
timedOut: false,
|
|
167
|
+
durationMs
|
|
168
|
+
});
|
|
169
|
+
}
|
|
170
|
+
} catch (caught) {
|
|
171
|
+
const durationMs = measure ? Date.now() - startedAt : 0;
|
|
172
|
+
const error = timedOut ? /* @__PURE__ */ new Error(`listener timeout après ${timeoutMs}ms`) : caught;
|
|
173
|
+
errors.push({
|
|
174
|
+
index,
|
|
175
|
+
error,
|
|
176
|
+
timedOut
|
|
177
|
+
});
|
|
178
|
+
if (options.onListenerError?.(error, {
|
|
179
|
+
index,
|
|
180
|
+
listener: handler,
|
|
181
|
+
timedOut,
|
|
182
|
+
durationMs
|
|
183
|
+
}) === true) return {
|
|
184
|
+
results,
|
|
185
|
+
errors,
|
|
186
|
+
stopped: true
|
|
187
|
+
};
|
|
188
|
+
}
|
|
189
|
+
}
|
|
190
|
+
return {
|
|
191
|
+
results,
|
|
192
|
+
errors,
|
|
193
|
+
stopped: false
|
|
194
|
+
};
|
|
195
|
+
}
|
|
196
|
+
};
|
|
197
|
+
//#endregion
|
|
198
|
+
export { Event as default };
|
|
@@ -0,0 +1,308 @@
|
|
|
1
|
+
import { extend } from "./Tools.js";
|
|
2
|
+
import crypto from "node:crypto";
|
|
3
|
+
import fs from "node:fs";
|
|
4
|
+
import path from "node:path";
|
|
5
|
+
import mime from "mime-types";
|
|
6
|
+
import fsp from "node:fs/promises";
|
|
7
|
+
//#region src/FileClass.ts
|
|
8
|
+
const checkPath = function(myPath) {
|
|
9
|
+
if (!myPath) throw new Error(`Bad path`);
|
|
10
|
+
if (path.isAbsolute(myPath)) return myPath;
|
|
11
|
+
return path.resolve(process.cwd(), myPath);
|
|
12
|
+
};
|
|
13
|
+
const regHidden = /^\./;
|
|
14
|
+
const defaultWriteOption = {
|
|
15
|
+
flags: "w",
|
|
16
|
+
defaultEncoding: "utf8"
|
|
17
|
+
};
|
|
18
|
+
const defaultEncoding = {
|
|
19
|
+
encoding: "utf8",
|
|
20
|
+
flag: "r"
|
|
21
|
+
};
|
|
22
|
+
/**
|
|
23
|
+
* Wrapper fs Node.js avec métadonnées pré-parsées (path, name, ext, mime, stats).
|
|
24
|
+
*
|
|
25
|
+
* Utilisé par le Kernel/Module pour résoudre des chemins, par le `Finder` pour représenter
|
|
26
|
+
* un résultat de recherche, et par les Controllers HTTP pour servir des fichiers statiques.
|
|
27
|
+
*
|
|
28
|
+
* @example
|
|
29
|
+
* ```ts
|
|
30
|
+
* import { FileClass } from "nodefony";
|
|
31
|
+
* const file = new FileClass("/path/to/file.txt");
|
|
32
|
+
* file.isFile(); // true
|
|
33
|
+
* file.mimeType; // "text/plain"
|
|
34
|
+
* const content = file.read();
|
|
35
|
+
* ```
|
|
36
|
+
*
|
|
37
|
+
* @remarks Le constructeur `new FileClass(path)` fait un `fs.lstatSync()` **synchrone**
|
|
38
|
+
* (bloque l'event-loop) — réservé au boot/CLI. Dans **tout hot path** (requête HTTP,
|
|
39
|
+
* Finder, upload), utiliser `await FileClass.from(path)` qui résout les stats en async
|
|
40
|
+
* (`fsp.lstat`/`fsp.realpath`) sans bloquer la loop. Idem `moveAsync()` vs `move()`.
|
|
41
|
+
*/
|
|
42
|
+
var FileClass = class FileClass {
|
|
43
|
+
stats;
|
|
44
|
+
type;
|
|
45
|
+
path;
|
|
46
|
+
parse;
|
|
47
|
+
name;
|
|
48
|
+
shortName;
|
|
49
|
+
ext;
|
|
50
|
+
mimeType = false;
|
|
51
|
+
encoding = "UTF-8";
|
|
52
|
+
extention = false;
|
|
53
|
+
dirName;
|
|
54
|
+
match = null;
|
|
55
|
+
/**
|
|
56
|
+
* Construit un FileClass à partir d'un chemin (absolu OR relatif à `process.cwd()`).
|
|
57
|
+
*
|
|
58
|
+
* Par défaut : résout `lstatSync` (suit pas les symlinks) + `realpathSync.native`, parse
|
|
59
|
+
* le path, devine le MIME type — **synchrone, bloque l'event-loop** (boot/CLI uniquement).
|
|
60
|
+
* Passer `{ defer: true }` n'effectue AUCUNE I/O (utilisé par `FileClass.from()` async).
|
|
61
|
+
*
|
|
62
|
+
* @param Path - chemin absolu OR relatif vers le fichier/dossier.
|
|
63
|
+
* @param options - `defer: true` → pas de stat au constructeur (hydrater via `stat()`).
|
|
64
|
+
* @throws Si `Path` est falsy OR si `lstatSync` échoue (fichier inexistant, hors defer).
|
|
65
|
+
*/
|
|
66
|
+
constructor(Path, options) {
|
|
67
|
+
if (!Path) throw new Error(`error fileClass Path : ${Path}`);
|
|
68
|
+
this.path = checkPath(Path);
|
|
69
|
+
if (!options?.defer) {
|
|
70
|
+
const stats = fs.lstatSync(this.path);
|
|
71
|
+
const resolved = stats.isSymbolicLink() ? this.path : fs.realpathSync.native(this.path);
|
|
72
|
+
this.hydrate(stats, resolved);
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* Construit un FileClass SANS I/O synchrone — `fsp.lstat`/`fsp.realpath` async.
|
|
77
|
+
*
|
|
78
|
+
* À utiliser dans tout hot path (Finder, upload, render controller) pour ne PAS
|
|
79
|
+
* bloquer l'event-loop. Équivalent async de `new FileClass(path)`.
|
|
80
|
+
*
|
|
81
|
+
* @param Path - chemin absolu ou relatif à `process.cwd()`.
|
|
82
|
+
* @returns une instance hydratée (stats résolus).
|
|
83
|
+
* @throws Si `Path` est falsy ou si `lstat` échoue (inexistant).
|
|
84
|
+
*/
|
|
85
|
+
static async from(Path) {
|
|
86
|
+
const file = new FileClass(Path, { defer: true });
|
|
87
|
+
await file.stat();
|
|
88
|
+
return file;
|
|
89
|
+
}
|
|
90
|
+
/**
|
|
91
|
+
* Résout les stats en async (`fsp.lstat` + `fsp.realpath`) puis hydrate l'instance.
|
|
92
|
+
* Aucune I/O synchrone. Appelé par `FileClass.from()` ; rappelable pour rafraîchir.
|
|
93
|
+
*
|
|
94
|
+
* @returns `this` (chaînable, type polymorphe pour les sous-classes type `File`).
|
|
95
|
+
*/
|
|
96
|
+
async stat() {
|
|
97
|
+
const p = checkPath(this.path);
|
|
98
|
+
const stats = await fsp.lstat(p);
|
|
99
|
+
const resolved = stats.isSymbolicLink() ? p : await fsp.realpath(p);
|
|
100
|
+
this.hydrate(stats, resolved);
|
|
101
|
+
return this;
|
|
102
|
+
}
|
|
103
|
+
/**
|
|
104
|
+
* Renseigne stats/type/path/parse/name/mime à partir de stats déjà résolus.
|
|
105
|
+
* Partagé par le constructeur sync et `stat()` async — **aucune I/O ici** (pur).
|
|
106
|
+
*
|
|
107
|
+
* @param stats - résultat d'un `lstat` (sync ou async).
|
|
108
|
+
* @param resolvedPath - path réel (realpath) ou path original si symlink.
|
|
109
|
+
*/
|
|
110
|
+
hydrate(stats, resolvedPath) {
|
|
111
|
+
this.stats = stats;
|
|
112
|
+
this.type = this.checkType();
|
|
113
|
+
this.path = resolvedPath;
|
|
114
|
+
this.parse = path.parse(this.path);
|
|
115
|
+
this.name = this.parse.name + this.parse.ext;
|
|
116
|
+
this.ext = this.parse.ext;
|
|
117
|
+
this.shortName = this.parse.name;
|
|
118
|
+
if (this.type === "File") {
|
|
119
|
+
this.mimeType = this.getMimeType(this.name);
|
|
120
|
+
this.encoding = "UTF-8";
|
|
121
|
+
this.extention = this.getExtension(this.mimeType);
|
|
122
|
+
}
|
|
123
|
+
this.dirName = this.parse.dir;
|
|
124
|
+
}
|
|
125
|
+
/**
|
|
126
|
+
* @returns le path absolu (utile pour les concat string).
|
|
127
|
+
*/
|
|
128
|
+
toString() {
|
|
129
|
+
return JSON.stringify(this.toJson(), null, "\n");
|
|
130
|
+
}
|
|
131
|
+
/**
|
|
132
|
+
* Sérialise les métadonnées du fichier en objet plain (compatible JSON.stringify).
|
|
133
|
+
*
|
|
134
|
+
* @returns objet contenant path, name, ext, stats, mime, etc.
|
|
135
|
+
*/
|
|
136
|
+
toJson() {
|
|
137
|
+
const obj = {
|
|
138
|
+
path: this.path,
|
|
139
|
+
name: this.name,
|
|
140
|
+
ext: this.ext,
|
|
141
|
+
shortName: this.shortName,
|
|
142
|
+
type: this.type,
|
|
143
|
+
stats: this.stats,
|
|
144
|
+
dirName: this.dirName,
|
|
145
|
+
parse: this.parse
|
|
146
|
+
};
|
|
147
|
+
if (this.type === "File") {
|
|
148
|
+
obj.encoding = this.encoding;
|
|
149
|
+
obj.mimeType = this.mimeType;
|
|
150
|
+
obj.extention = this.extention;
|
|
151
|
+
}
|
|
152
|
+
return obj;
|
|
153
|
+
}
|
|
154
|
+
/**
|
|
155
|
+
* Détermine le type — `"File"`, `"Directory"`, `"SymbolicLink"`, etc.
|
|
156
|
+
*
|
|
157
|
+
* @returns nom du type ou `undefined` si stats indéterminé.
|
|
158
|
+
*/
|
|
159
|
+
checkType() {
|
|
160
|
+
if (this.stats.isDirectory()) return "Directory";
|
|
161
|
+
if (this.stats.isFile()) return "File";
|
|
162
|
+
if (this.stats.isBlockDevice()) return "BlockDevice";
|
|
163
|
+
if (this.stats.isCharacterDevice()) return "CharacterDevice";
|
|
164
|
+
if (this.stats.isSymbolicLink()) return "symbolicLink";
|
|
165
|
+
if (this.stats.isFIFO()) return "Fifo";
|
|
166
|
+
if (this.stats.isSocket()) return "Socket";
|
|
167
|
+
}
|
|
168
|
+
/**
|
|
169
|
+
* Calcule le hash du contenu du fichier (synchronous).
|
|
170
|
+
*
|
|
171
|
+
* @param type - algorithme (`"md5"` défaut, `"sha1"`, `"sha256"`, etc.).
|
|
172
|
+
* @param hasOption - options crypto.HashOptions.
|
|
173
|
+
* @returns hash hexadécimal.
|
|
174
|
+
*/
|
|
175
|
+
checkSum(type = "md5", hasOption) {
|
|
176
|
+
return crypto.createHash(type, hasOption).update(this.content()).digest("hex");
|
|
177
|
+
}
|
|
178
|
+
getMimeType(name) {
|
|
179
|
+
return mime.lookup(name || this.name);
|
|
180
|
+
}
|
|
181
|
+
getExtension(mimeType) {
|
|
182
|
+
if (mimeType) return mime.extension(mimeType);
|
|
183
|
+
return mime.extension(this.mimeType);
|
|
184
|
+
}
|
|
185
|
+
/**
|
|
186
|
+
* Canonicalise un chemin par la voie SYSTÈME (`uv_fs_realpath`), la même que
|
|
187
|
+
* `fsp.realpath` employé par la voie async.
|
|
188
|
+
*
|
|
189
|
+
* @remarks `fs.realpathSync` (sans `.native`) est une implémentation JavaScript qui
|
|
190
|
+
* se contente de dérouler les liens : sous Windows elle **conserve les noms courts
|
|
191
|
+
* 8.3** (`C:\Users\RUNNER~1\…`) là où la voie système rend la forme longue
|
|
192
|
+
* (`C:\Users\runneradmin\…`). Deux canonicalisations pour un même fichier, donc
|
|
193
|
+
* deux `path` différents selon qu'on est passé par le constructeur ou par
|
|
194
|
+
* `FileClass.from()` — et toute comparaison de chemins (dédup, cache, garde
|
|
195
|
+
* « la cible reste-t-elle sous le dossier autorisé ? ») devient fausse sans un mot.
|
|
196
|
+
* Sous POSIX les deux voies sont identiques : l'alignement ne change rien.
|
|
197
|
+
*
|
|
198
|
+
* @param Path - chemin à canonicaliser.
|
|
199
|
+
* @param options - encodage (cf `fs.EncodingOption`).
|
|
200
|
+
* @returns le chemin réel, forme canonique du système de fichiers.
|
|
201
|
+
*/
|
|
202
|
+
getRealpath(Path, options = {}) {
|
|
203
|
+
return fs.realpathSync.native(Path, options);
|
|
204
|
+
}
|
|
205
|
+
matchName(ele) {
|
|
206
|
+
if (ele instanceof RegExp) {
|
|
207
|
+
this.match = ele.exec(this.name);
|
|
208
|
+
return this.match;
|
|
209
|
+
}
|
|
210
|
+
return ele === this.name;
|
|
211
|
+
}
|
|
212
|
+
matchType(type) {
|
|
213
|
+
return type === this.type;
|
|
214
|
+
}
|
|
215
|
+
/** @returns `true` si le path pointe vers un fichier régulier. */
|
|
216
|
+
isFile() {
|
|
217
|
+
return this.type === "File";
|
|
218
|
+
}
|
|
219
|
+
/** @returns `true` si le path pointe vers un dossier. */
|
|
220
|
+
isDirectory() {
|
|
221
|
+
return this.type === "Directory";
|
|
222
|
+
}
|
|
223
|
+
/** @returns `true` si le path est un lien symbolique. */
|
|
224
|
+
isSymbolicLink() {
|
|
225
|
+
return this.type === "symbolicLink";
|
|
226
|
+
}
|
|
227
|
+
dirname() {
|
|
228
|
+
return path.dirname(this.path);
|
|
229
|
+
}
|
|
230
|
+
/** @returns `true` si le nom commence par `.` (fichier caché Unix). */
|
|
231
|
+
isHidden() {
|
|
232
|
+
return regHidden.test(this.name);
|
|
233
|
+
}
|
|
234
|
+
content(encoding) {
|
|
235
|
+
const encode = extend({}, defaultEncoding, { encoding });
|
|
236
|
+
return fs.readFileSync(this.path, encode);
|
|
237
|
+
}
|
|
238
|
+
/**
|
|
239
|
+
* Lit le contenu du fichier (synchronous).
|
|
240
|
+
*
|
|
241
|
+
* @param encoding - encoding (défaut `"utf8"`). Si non fourni → retourne Buffer.
|
|
242
|
+
* @returns contenu sous forme de string OR Buffer.
|
|
243
|
+
*/
|
|
244
|
+
read(encoding) {
|
|
245
|
+
const encode = extend({}, defaultEncoding, { encoding });
|
|
246
|
+
if (this.type === "symbolicLink") {
|
|
247
|
+
const linked = fs.readlinkSync(this.path, encode);
|
|
248
|
+
return fs.readFileSync(linked, encode);
|
|
249
|
+
}
|
|
250
|
+
return fs.readFileSync(this.path, encode);
|
|
251
|
+
}
|
|
252
|
+
async readAsync(encoding) {
|
|
253
|
+
if (this.type === "symbolicLink") {
|
|
254
|
+
const linked = await fsp.readlink(this.path);
|
|
255
|
+
return fsp.readFile(linked, encoding);
|
|
256
|
+
}
|
|
257
|
+
return fsp.readFile(this.path, encoding);
|
|
258
|
+
}
|
|
259
|
+
readByLine(callback, encoding) {
|
|
260
|
+
const res = this.content(encoding);
|
|
261
|
+
let nb = 0;
|
|
262
|
+
res.toString().split("\n").forEach((line) => {
|
|
263
|
+
callback(line, ++nb);
|
|
264
|
+
});
|
|
265
|
+
return res;
|
|
266
|
+
}
|
|
267
|
+
/**
|
|
268
|
+
* Écrit du contenu dans le fichier (synchronous).
|
|
269
|
+
*
|
|
270
|
+
* @param data - contenu à écrire (string OR Buffer).
|
|
271
|
+
* @param options - options fs.write (encoding, flags).
|
|
272
|
+
* @returns this (chaînable).
|
|
273
|
+
*/
|
|
274
|
+
write(data, options) {
|
|
275
|
+
fs.writeFileSync(this.path, data, extend({}, defaultWriteOption, options));
|
|
276
|
+
}
|
|
277
|
+
/**
|
|
278
|
+
* Déplace/renomme le fichier (synchronous).
|
|
279
|
+
*
|
|
280
|
+
* @param target - chemin de destination.
|
|
281
|
+
* @returns nouvelle instance FileClass pointant vers `target`.
|
|
282
|
+
*/
|
|
283
|
+
move(target) {
|
|
284
|
+
fs.renameSync(this.path, target);
|
|
285
|
+
return new FileClass(target);
|
|
286
|
+
}
|
|
287
|
+
/**
|
|
288
|
+
* Déplace/renomme le fichier en **async** (`fsp.rename`) — variante non bloquante
|
|
289
|
+
* de `move()`. À préférer dans le pipeline (upload, controller).
|
|
290
|
+
*
|
|
291
|
+
* @param target - chemin de destination.
|
|
292
|
+
* @returns nouvelle instance FileClass (hydratée async) sur `target`.
|
|
293
|
+
*/
|
|
294
|
+
async moveAsync(target) {
|
|
295
|
+
await fsp.rename(this.path, target);
|
|
296
|
+
return FileClass.from(target);
|
|
297
|
+
}
|
|
298
|
+
/** Supprime le fichier du filesystem (synchronous, irréversible). */
|
|
299
|
+
unlink() {
|
|
300
|
+
fs.unlinkSync(this.path);
|
|
301
|
+
}
|
|
302
|
+
/** Supprime le fichier du filesystem en **async** (`fsp.unlink`). */
|
|
303
|
+
async unlinkAsync() {
|
|
304
|
+
await fsp.unlink(this.path);
|
|
305
|
+
}
|
|
306
|
+
};
|
|
307
|
+
//#endregion
|
|
308
|
+
export { FileClass as default };
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
import { version } from "./package.js";
|
|
2
|
+
import { randomUUID, randomUUIDv7 } from "node:crypto";
|
|
3
|
+
//#region src/Nodefony.ts
|
|
4
|
+
/**
|
|
5
|
+
* Façade statique du framework — point d'entrée global remplaçant le singleton JS legacy.
|
|
6
|
+
*
|
|
7
|
+
* Expose le `Kernel` courant (registre des modules + services), la version du
|
|
8
|
+
* package, et des générateurs d'identifiants UUID. Constructeur privé — aucune
|
|
9
|
+
* instance ne doit être créée ; tout passe par les statics.
|
|
10
|
+
*
|
|
11
|
+
* @example
|
|
12
|
+
* ```ts
|
|
13
|
+
* import { Nodefony } from "nodefony";
|
|
14
|
+
* const kernel = Nodefony.getKernel();
|
|
15
|
+
* const id = Nodefony.generateId();
|
|
16
|
+
* ```
|
|
17
|
+
*
|
|
18
|
+
* @remarks Le `Kernel` est `null` tant qu'il n'a pas été instancié par
|
|
19
|
+
* `bin/nodefony` ou par un test — toujours tester avec `?.`.
|
|
20
|
+
*/
|
|
21
|
+
var Nodefony = class Nodefony {
|
|
22
|
+
/** Version du package `nodefony` (lue depuis `package.json` au build). */
|
|
23
|
+
static version = version;
|
|
24
|
+
static #kernel = null;
|
|
25
|
+
constructor() {}
|
|
26
|
+
/**
|
|
27
|
+
* Retourne le `Kernel` courant ou `null` s'il n'a pas encore été instancié.
|
|
28
|
+
*
|
|
29
|
+
* @returns instance unique du Kernel ou `null` (avant boot ou après shutdown).
|
|
30
|
+
*/
|
|
31
|
+
static getKernel() {
|
|
32
|
+
return Nodefony.#kernel;
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Enregistre le `Kernel` courant — appelé une seule fois au boot.
|
|
36
|
+
*
|
|
37
|
+
* @param k - instance du Kernel à mémoriser.
|
|
38
|
+
* @remarks Appels multiples écrasent la référence précédente sans warning.
|
|
39
|
+
*/
|
|
40
|
+
static setKernel(k) {
|
|
41
|
+
Nodefony.#kernel = k;
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Génère un UUID v4 (aléatoire) — utilisé pour `requestId`, ids divers, etc.
|
|
45
|
+
* Natif `node:crypto` (CSPRNG) — plus de dépendance `uuid`.
|
|
46
|
+
*
|
|
47
|
+
* @returns string UUID format `8-4-4-4-12`.
|
|
48
|
+
*/
|
|
49
|
+
static generateId() {
|
|
50
|
+
return randomUUID();
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* Génère un UUID **v7** (RFC 9562) — identifiant **ordonné dans le temps**, à
|
|
54
|
+
* préférer pour une clé primaire de base de données.
|
|
55
|
+
*
|
|
56
|
+
* Pourquoi lui plutôt que {@link generateId} (v4) sur une clé primaire : les 48
|
|
57
|
+
* premiers bits portent l'horodatage, donc les lignes insérées à la suite
|
|
58
|
+
* atterrissent **côte à côte dans l'index** ; un UUID v4, purement aléatoire,
|
|
59
|
+
* fragmente le B-tree à chaque insertion. Et contrairement à un auto-incrément,
|
|
60
|
+
* il ne donne pas l'énumération de toutes les ressources.
|
|
61
|
+
*
|
|
62
|
+
* ⚠️ **Deux limites à connaître.**
|
|
63
|
+
* 1. **Pas d'ordre garanti dans une même milliseconde** : Node n'implémente pas le
|
|
64
|
+
* compteur monotone optionnel de la RFC (§6.2) — mesuré : ~50 % d'inversions
|
|
65
|
+
* entre identifiants tirés dans la même milliseconde. Trier des créations se
|
|
66
|
+
* fait sur `createdAt`, **jamais** sur l'identifiant.
|
|
67
|
+
* 2. **Pas un secret** : la RFC l'interdit explicitement comme capacité de sécurité
|
|
68
|
+
* (« MUST NOT be used as security capabilities ») — l'instant de création fuit et
|
|
69
|
+
* une partie est devinable. Pour un jeton imprévisible → {@link generateId} (v4).
|
|
70
|
+
*
|
|
71
|
+
* @returns UUID v7, format `8-4-4-4-12`.
|
|
72
|
+
*/
|
|
73
|
+
static generateSortableId() {
|
|
74
|
+
return randomUUIDv7();
|
|
75
|
+
}
|
|
76
|
+
};
|
|
77
|
+
//#endregion
|
|
78
|
+
export { Nodefony };
|