nodefony 7.0.2 → 10.0.0-alpha.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.ai/symbols.json +36135 -0
- package/LICENSE +544 -0
- package/README.md +316 -694
- package/bin/nodefony +2183 -85
- package/dist/client/Container.js +367 -0
- package/dist/client/Event.js +198 -0
- package/dist/client/Service.js +344 -0
- package/dist/client/Tools.js +162 -0
- package/dist/client/client/ClientKernel.js +276 -0
- package/dist/client/client/angular/index.js +352 -0
- package/dist/client/client/announce.js +212 -0
- package/dist/client/client/debugbar/DebugBar.js +1624 -0
- package/dist/client/client/debugbar/format.js +103 -0
- package/dist/client/client/debugbar/hmr.js +37 -0
- package/dist/client/client/debugbar/index.js +29 -0
- package/dist/client/client/debugbar/model.js +133 -0
- package/dist/client/client/debugbar/network.js +173 -0
- package/dist/client/client/debugbar/profile.js +114 -0
- package/dist/client/client/index.js +34 -0
- package/dist/client/client/react/index.js +268 -0
- package/dist/client/client/realtime/AdaptiveRate.js +240 -0
- package/dist/client/client/realtime/BrowserWsTransport.js +57 -0
- package/dist/client/client/realtime/RealtimeClient.js +898 -0
- package/dist/client/client/realtime/localEvents.js +56 -0
- package/dist/client/client/realtime/notice.js +125 -0
- package/dist/client/client/realtime/observe.js +280 -0
- package/dist/client/client/roles/index.js +3 -0
- package/dist/client/client/roles/registry.js +97 -0
- package/dist/client/client/roles/roles.js +91 -0
- package/dist/client/client/shim/events.js +88 -0
- package/dist/client/client/shim/util.js +20 -0
- package/dist/client/client/svelte/index.js +319 -0
- package/dist/client/client/syslog/context.js +122 -0
- package/dist/client/client/syslog/errors.js +49 -0
- package/dist/client/client/syslog/uplink.js +106 -0
- package/dist/client/client/vue/index.js +321 -0
- package/dist/client/colors.js +63 -0
- package/dist/client/debugbar.standalone.js +4274 -0
- package/dist/client/realtime/IRealtimeTransport.js +32 -0
- package/dist/client/realtime/JsonRpcPeer.js +251 -0
- package/dist/client/realtime/channelRate.js +39 -0
- package/dist/client/realtime/platformChannels.js +155 -0
- package/dist/client/syslog/Pdu.js +224 -0
- package/dist/client/syslog/Syslog.js +1159 -0
- package/dist/client/syslog/drivers/pduFlow.js +106 -0
- package/dist/client/syslog/drivers/pduProtocol.js +28 -0
- package/dist/client/syslog/logColor.js +80 -0
- package/dist/client/types/src/Container.d.ts +221 -0
- package/dist/client/types/src/Event.d.ts +171 -0
- package/dist/client/types/src/FileClass.d.ts +184 -0
- package/dist/client/types/src/Service.d.ts +165 -0
- package/dist/client/types/src/Tools.d.ts +116 -0
- package/dist/client/types/src/client/ClientKernel.d.ts +90 -0
- package/dist/client/types/src/client/IClientKernel.d.ts +195 -0
- package/dist/client/types/src/client/angular/index.d.ts +273 -0
- package/dist/client/types/src/client/announce.d.ts +74 -0
- package/dist/client/types/src/client/debugbar/DebugBar.d.ts +279 -0
- package/dist/client/types/src/client/debugbar/format.d.ts +48 -0
- package/dist/client/types/src/client/debugbar/hmr.d.ts +16 -0
- package/dist/client/types/src/client/debugbar/index.d.ts +30 -0
- package/dist/client/types/src/client/debugbar/model.d.ts +158 -0
- package/dist/client/types/src/client/debugbar/network.d.ts +55 -0
- package/dist/client/types/src/client/debugbar/profile.d.ts +99 -0
- package/dist/client/types/src/client/index.d.ts +47 -0
- package/dist/client/types/src/client/react/index.d.ts +207 -0
- package/dist/client/types/src/client/realtime/AdaptiveRate.d.ts +138 -0
- package/dist/client/types/src/client/realtime/BrowserWsTransport.d.ts +27 -0
- package/dist/client/types/src/client/realtime/RealtimeClient.d.ts +573 -0
- package/dist/client/types/src/client/realtime/localEvents.d.ts +53 -0
- package/dist/client/types/src/client/realtime/notice.d.ts +70 -0
- package/dist/client/types/src/client/realtime/observe.d.ts +284 -0
- package/dist/client/types/src/client/roles/index.d.ts +15 -0
- package/dist/client/types/src/client/roles/registry.d.ts +72 -0
- package/dist/client/types/src/client/roles/roles.d.ts +68 -0
- package/dist/client/types/src/client/shim/cli-color.d.ts +2 -0
- package/dist/client/types/src/client/shim/events.d.ts +39 -0
- package/dist/client/types/src/client/shim/util.d.ts +14 -0
- package/dist/client/types/src/client/svelte/index.d.ts +216 -0
- package/dist/client/types/src/client/syslog/context.d.ts +76 -0
- package/dist/client/types/src/client/syslog/errors.d.ts +46 -0
- package/dist/client/types/src/client/syslog/uplink.d.ts +89 -0
- package/dist/client/types/src/client/transport/websocket.d.ts +5 -0
- package/dist/client/types/src/client/vue/index.d.ts +234 -0
- package/dist/client/types/src/colors.d.ts +32 -0
- package/dist/client/types/src/config/infra.d.ts +171 -0
- package/dist/client/types/src/kernel/bootReport.d.ts +112 -0
- package/dist/client/types/src/kernel/readinessRegistry.d.ts +104 -0
- package/dist/client/types/src/realtime/IRealtimeSocket.d.ts +142 -0
- package/dist/client/types/src/realtime/IRealtimeTransport.d.ts +50 -0
- package/dist/client/types/src/realtime/JsonRpcPeer.d.ts +251 -0
- package/dist/client/types/src/realtime/RealtimeEventMap.d.ts +269 -0
- package/dist/client/types/src/realtime/channelRate.d.ts +55 -0
- package/dist/client/types/src/realtime/platformChannels.d.ts +147 -0
- package/dist/client/types/src/syslog/Pdu.d.ts +134 -0
- package/dist/client/types/src/syslog/Syslog.d.ts +482 -0
- package/dist/client/types/src/syslog/drivers/ILogDriver.d.ts +177 -0
- package/dist/client/types/src/syslog/drivers/pduFlow.d.ts +53 -0
- package/dist/client/types/src/syslog/drivers/pduProtocol.d.ts +20 -0
- package/dist/client/types/src/syslog/logColor.d.ts +59 -0
- package/dist/client/types/src/types/ICliKernel.d.ts +28 -0
- package/dist/client/types/src/types/ICommand.d.ts +14 -0
- package/dist/client/types/src/types/IContainer.d.ts +35 -0
- package/dist/client/types/src/types/IKernel.d.ts +138 -0
- package/dist/client/types/src/types/IMcpTool.d.ts +157 -0
- package/dist/client/types/src/types/IModule.d.ts +73 -0
- package/dist/client/types/src/types/IPage.d.ts +119 -0
- package/dist/client/types/src/types/IService.d.ts +62 -0
- package/dist/client/types/src/types/ISyslog.d.ts +58 -0
- package/dist/client/types/src/types/ITransport.d.ts +5 -0
- package/dist/client/types/src/types/globals.d.ts +47 -0
- package/dist/node/Cli.js +750 -0
- package/dist/node/Container.js +367 -0
- package/dist/node/Error.js +309 -0
- package/dist/node/Event.js +198 -0
- package/dist/node/FileClass.js +308 -0
- package/dist/node/Nodefony.js +78 -0
- package/dist/node/Service.js +344 -0
- package/dist/node/Tools.js +205 -0
- package/dist/node/bin/resolveLocalCli.js +10 -0
- package/dist/node/bundler/index.js +103 -0
- package/dist/node/cli/agentTargets.js +461 -0
- package/dist/node/cli/aiMcp.js +553 -0
- package/dist/node/cli/aiMcpReport.js +129 -0
- package/dist/node/cli/aiSync.js +323 -0
- package/dist/node/cli/aiSyncReport.js +142 -0
- package/dist/node/cli/card.js +186 -0
- package/dist/node/cli/cardReport.js +110 -0
- package/dist/node/cli/completion.js +415 -0
- package/dist/node/cli/create.js +805 -0
- package/dist/node/cli/env.js +332 -0
- package/dist/node/cli/envReport.js +159 -0
- package/dist/node/cli/execPortable.js +60 -0
- package/dist/node/cli/gitHooks.js +191 -0
- package/dist/node/cli/gitHooksReport.js +119 -0
- package/dist/node/cli/globalFlags.js +67 -0
- package/dist/node/cli/helpReport.js +288 -0
- package/dist/node/cli/manPage.js +165 -0
- package/dist/node/cli/nodefonyBin.js +61 -0
- package/dist/node/cli/outdated.js +144 -0
- package/dist/node/cli/progress.js +555 -0
- package/dist/node/cli/projectRoot.js +32 -0
- package/dist/node/cli/promptPassword.js +44 -0
- package/dist/node/cli/prompts.js +86 -0
- package/dist/node/cli/scaffold/destination.js +92 -0
- package/dist/node/cli/scaffold/engine.js +2156 -0
- package/dist/node/cli/scaffold/entityFields.js +589 -0
- package/dist/node/cli/scaffold/format.js +243 -0
- package/dist/node/cli/scaffold/interactive.js +124 -0
- package/dist/node/cli/scaffold/moduleLayout.js +38 -0
- package/dist/node/cli/scaffold/reservedEntities.js +74 -0
- package/dist/node/cli/scaffold/spec.js +704 -0
- package/dist/node/cli/scaffold/steps.js +40 -0
- package/dist/node/cli/scaffold/userContractSource.js +133 -0
- package/dist/node/cli/scaffold/versions.js +57 -0
- package/dist/node/cli/scaffold/writer.js +172 -0
- package/dist/node/cli/startMenu.js +496 -0
- package/dist/node/cli/symbols.js +205 -0
- package/dist/node/cli/sysexits.js +34 -0
- package/dist/node/cli/tableReport.js +184 -0
- package/dist/node/cli/usageReport.js +144 -0
- package/dist/node/colors.js +63 -0
- package/dist/node/command/Builder.js +153 -0
- package/dist/node/command/Command.js +348 -0
- package/dist/node/config/configProvenance.js +101 -0
- package/dist/node/config/defaults.js +39 -0
- package/dist/node/config/defineConfig.js +129 -0
- package/dist/node/config/defineEnv.js +264 -0
- package/dist/node/config/envExample.js +41 -0
- package/dist/node/config/envOverride.js +423 -0
- package/dist/node/config/infra.js +163 -0
- package/dist/node/config/reactivity.js +23 -0
- package/dist/node/config/reservedEnv.js +118 -0
- package/dist/node/config/schema.js +134 -0
- package/dist/node/config/use.js +24 -0
- package/dist/node/finder/File.js +49 -0
- package/dist/node/finder/FileResult.js +86 -0
- package/dist/node/finder/Finder.js +201 -0
- package/dist/node/finder/Result.js +45 -0
- package/dist/node/index.js +121 -0
- package/dist/node/kernel/BootConfigurationError.js +54 -0
- package/dist/node/kernel/CliKernel.js +630 -0
- package/dist/node/kernel/Kernel.js +2198 -0
- package/dist/node/kernel/Module.js +453 -0
- package/dist/node/kernel/adminPlane/adminCaller.js +98 -0
- package/dist/node/kernel/adminPlane/adminRbac.js +51 -0
- package/dist/node/kernel/adminPlane/catalog.js +158 -0
- package/dist/node/kernel/adminPlane/executeAdmin.js +78 -0
- package/dist/node/kernel/checks/deep.js +335 -0
- package/dist/node/kernel/checks/freshness.js +139 -0
- package/dist/node/kernel/checks/gating.js +231 -0
- package/dist/node/kernel/checks/guards.js +232 -0
- package/dist/node/kernel/checks/lastBoot.js +136 -0
- package/dist/node/kernel/checks/live.js +330 -0
- package/dist/node/kernel/checks/packageDeps.js +292 -0
- package/dist/node/kernel/checks/readiness.js +153 -0
- package/dist/node/kernel/checks/renderReport.js +780 -0
- package/dist/node/kernel/checks/report.js +421 -0
- package/dist/node/kernel/checks/runDoctor.js +731 -0
- package/dist/node/kernel/checks/surface.js +364 -0
- package/dist/node/kernel/checks/walk.js +100 -0
- package/dist/node/kernel/checks/wiring.js +450 -0
- package/dist/node/kernel/commands/AiMcpCommand.js +65 -0
- package/dist/node/kernel/commands/AiSyncCommand.js +48 -0
- package/dist/node/kernel/commands/BuildCommand.js +49 -0
- package/dist/node/kernel/commands/CardCommand.js +50 -0
- package/dist/node/kernel/commands/ClusterCommand.js +58 -0
- package/dist/node/kernel/commands/CompletionCommand.js +31 -0
- package/dist/node/kernel/commands/CreateCommand.js +45 -0
- package/dist/node/kernel/commands/DevCommand.js +99 -0
- package/dist/node/kernel/commands/DoctorCommand.js +115 -0
- package/dist/node/kernel/commands/EnvCommand.js +52 -0
- package/dist/node/kernel/commands/GitHooksCommand.js +47 -0
- package/dist/node/kernel/commands/InspectCommand.js +153 -0
- package/dist/node/kernel/commands/InstallCommand.js +20 -0
- package/dist/node/kernel/commands/MenuCommand.js +261 -0
- package/dist/node/kernel/commands/OutdatedCommand.js +164 -0
- package/dist/node/kernel/commands/ProdCommand.js +60 -0
- package/dist/node/kernel/commands/StatusCommand.js +30 -0
- package/dist/node/kernel/commands/StopCommand.js +35 -0
- package/dist/node/kernel/commands/SymbolsCommand.js +45 -0
- package/dist/node/kernel/commands/runtimeLauncher.js +95 -0
- package/dist/node/kernel/decorators/kernelDecorator.js +110 -0
- package/dist/node/kernel/injector/injector.js +137 -0
- package/dist/node/kernel/injector/serviceOrder.js +106 -0
- package/dist/node/kernel/inspect/adminSubjects.js +194 -0
- package/dist/node/kernel/inspect/docOutline.js +86 -0
- package/dist/node/kernel/lifecycleTags.js +76 -0
- package/dist/node/kernel/moduleConfig.js +75 -0
- package/dist/node/kernel/moduleGating.js +68 -0
- package/dist/node/kernel/readinessRegistry.js +98 -0
- package/dist/node/kernel/resolveModuleEntry.js +61 -0
- package/dist/node/mcp/caller.js +40 -0
- package/dist/node/mcp/guard.js +51 -0
- package/dist/node/mcp/protocol.js +157 -0
- package/dist/node/mcp/server.js +216 -0
- package/dist/node/mcp/tools.js +861 -0
- package/dist/node/oauth/authorizationServer.js +221 -0
- package/dist/node/oauth/protectedResource.js +293 -0
- package/dist/node/package.js +4 -0
- package/dist/node/realtime/IRealtimeTransport.js +32 -0
- package/dist/node/realtime/JsonRpcPeer.js +251 -0
- package/dist/node/realtime/RealtimeEventMap.js +15 -0
- package/dist/node/realtime/channelRate.js +39 -0
- package/dist/node/realtime/platformChannels.js +155 -0
- package/dist/node/runtime/GcScheduler.js +92 -0
- package/dist/node/runtime/RequestContext.js +76 -0
- package/dist/node/runtime/bearer.js +84 -0
- package/dist/node/runtime/engineEnvironment.js +79 -0
- package/dist/node/runtime/loadEnv.js +105 -0
- package/dist/node/runtime/pageFacets.js +85 -0
- package/dist/node/runtime/pageFilters.js +103 -0
- package/dist/node/runtime/pageGuard.js +84 -0
- package/dist/node/runtime/pageQuery.js +160 -0
- package/dist/node/runtime/pageSort.js +114 -0
- package/dist/node/runtime/redact.js +43 -0
- package/dist/node/runtime/withTimeout.js +71 -0
- package/dist/node/service/cluster/ClusterManager.js +202 -0
- package/dist/node/service/cluster/ClusterProbeAggregator.js +120 -0
- package/dist/node/service/cluster/ClusterRelay.js +74 -0
- package/dist/node/service/cluster/clusterMaster.js +65 -0
- package/dist/node/service/cluster/clusterMessage.js +70 -0
- package/dist/node/service/cluster/cpuQuota.js +59 -0
- package/dist/node/service/cluster/instanceProbe.js +52 -0
- package/dist/node/service/cluster/podEnvironment.js +48 -0
- package/dist/node/service/cluster/processProbe.js +70 -0
- package/dist/node/service/cluster/richProcessProbe.js +115 -0
- package/dist/node/service/cluster/topology.js +71 -0
- package/dist/node/service/dev/BootReporter.js +490 -0
- package/dist/node/service/dev/DevSupervisor.js +1004 -0
- package/dist/node/service/dev/bootVerdict.js +158 -0
- package/dist/node/service/dev/detachedStart.js +372 -0
- package/dist/node/service/dev/devProcess.js +1137 -0
- package/dist/node/service/dev/devProjects.js +138 -0
- package/dist/node/service/dev/devStatusReport.js +395 -0
- package/dist/node/service/dev/devStop.js +263 -0
- package/dist/node/service/fetchService.js +35 -0
- package/dist/node/service/gitService.js +62 -0
- package/dist/node/syslog/Pdu.js +224 -0
- package/dist/node/syslog/Syslog.js +1159 -0
- package/dist/node/syslog/drivers/ClusterFileLogDriver.js +114 -0
- package/dist/node/syslog/drivers/FileLogDriver.js +127 -0
- package/dist/node/syslog/drivers/ILogDriver.js +26 -0
- package/dist/node/syslog/drivers/LokiLogDriver.js +144 -0
- package/dist/node/syslog/drivers/MemoryLogDriver.js +33 -0
- package/dist/node/syslog/drivers/OpenSearchLogDriver.js +159 -0
- package/dist/node/syslog/drivers/builtinLogDrivers.js +114 -0
- package/dist/node/syslog/drivers/filterPdus.js +71 -0
- package/dist/node/syslog/drivers/logDriverRegistry.js +83 -0
- package/dist/node/syslog/drivers/opensearchShared.js +17 -0
- package/dist/node/syslog/drivers/pduFlow.js +106 -0
- package/dist/node/syslog/drivers/pduProtocol.js +28 -0
- package/dist/node/syslog/httpFetch.js +43 -0
- package/dist/node/syslog/logColor.js +80 -0
- package/dist/node/syslog/sinks/FileSink.js +142 -0
- package/dist/node/syslog/transports/BatchingHttpTransport.js +98 -0
- package/dist/node/syslog/transports/ConsoleTransport.js +14 -0
- package/dist/node/syslog/transports/FileTransport.js +17 -0
- package/dist/node/syslog/transports/HttpTransport.js +44 -0
- package/dist/node/syslog/transports/LokiTransport.js +80 -0
- package/dist/node/syslog/transports/OpenSearchTransport.js +53 -0
- package/dist/node/syslog/transports/SyslogTransport.js +13 -0
- package/dist/node/syslog/transports/index.js +8 -0
- package/dist/node/testing/index.js +190 -0
- package/dist/types/Cli.d.ts +177 -0
- package/dist/types/Container.d.ts +221 -0
- package/dist/types/Error.d.ts +162 -0
- package/dist/types/Event.d.ts +171 -0
- package/dist/types/FileClass.d.ts +184 -0
- package/dist/types/Nodefony.d.ts +66 -0
- package/dist/types/Service.d.ts +165 -0
- package/dist/types/Tools.d.ts +116 -0
- package/dist/types/bin/resolveLocalCli.d.ts +49 -0
- package/dist/types/bundler/index.d.ts +66 -0
- package/dist/types/cli/agentTargets.d.ts +378 -0
- package/dist/types/cli/aiMcp.d.ts +239 -0
- package/dist/types/cli/aiMcpReport.d.ts +113 -0
- package/dist/types/cli/aiSync.d.ts +68 -0
- package/dist/types/cli/aiSyncReport.d.ts +149 -0
- package/dist/types/cli/card.d.ts +49 -0
- package/dist/types/cli/cardReport.d.ts +127 -0
- package/dist/types/cli/completion.d.ts +154 -0
- package/dist/types/cli/create.d.ts +177 -0
- package/dist/types/cli/env.d.ts +103 -0
- package/dist/types/cli/envReport.d.ts +153 -0
- package/dist/types/cli/execPortable.d.ts +54 -0
- package/dist/types/cli/gitHooks.d.ts +48 -0
- package/dist/types/cli/gitHooksReport.d.ts +101 -0
- package/dist/types/cli/globalFlags.d.ts +48 -0
- package/dist/types/cli/helpReport.d.ts +110 -0
- package/dist/types/cli/manPage.d.ts +21 -0
- package/dist/types/cli/nodefonyBin.d.ts +45 -0
- package/dist/types/cli/outdated.d.ts +119 -0
- package/dist/types/cli/progress.d.ts +349 -0
- package/dist/types/cli/projectRoot.d.ts +19 -0
- package/dist/types/cli/promptPassword.d.ts +22 -0
- package/dist/types/cli/prompts.d.ts +102 -0
- package/dist/types/cli/scaffold/destination.d.ts +70 -0
- package/dist/types/cli/scaffold/engine.d.ts +545 -0
- package/dist/types/cli/scaffold/entityFields.d.ts +238 -0
- package/dist/types/cli/scaffold/format.d.ts +78 -0
- package/dist/types/cli/scaffold/interactive.d.ts +11 -0
- package/dist/types/cli/scaffold/moduleLayout.d.ts +69 -0
- package/dist/types/cli/scaffold/reservedEntities.d.ts +49 -0
- package/dist/types/cli/scaffold/spec.d.ts +159 -0
- package/dist/types/cli/scaffold/steps.d.ts +24 -0
- package/dist/types/cli/scaffold/userContractSource.d.ts +86 -0
- package/dist/types/cli/scaffold/versions.d.ts +14 -0
- package/dist/types/cli/scaffold/writer.d.ts +100 -0
- package/dist/types/cli/startMenu.d.ts +195 -0
- package/dist/types/cli/symbols.d.ts +84 -0
- package/dist/types/cli/sysexits.d.ts +31 -0
- package/dist/types/cli/tableReport.d.ts +44 -0
- package/dist/types/cli/usageReport.d.ts +108 -0
- package/dist/types/client/ClientKernel.d.ts +90 -0
- package/dist/types/client/IClientKernel.d.ts +195 -0
- package/dist/types/client/angular/index.d.ts +273 -0
- package/dist/types/client/announce.d.ts +74 -0
- package/dist/types/client/debugbar/DebugBar.d.ts +279 -0
- package/dist/types/client/debugbar/format.d.ts +48 -0
- package/dist/types/client/debugbar/hmr.d.ts +16 -0
- package/dist/types/client/debugbar/index.d.ts +30 -0
- package/dist/types/client/debugbar/model.d.ts +158 -0
- package/dist/types/client/debugbar/network.d.ts +55 -0
- package/dist/types/client/debugbar/profile.d.ts +99 -0
- package/dist/types/client/index.d.ts +47 -0
- package/dist/types/client/react/index.d.ts +207 -0
- package/dist/types/client/realtime/AdaptiveRate.d.ts +138 -0
- package/dist/types/client/realtime/BrowserWsTransport.d.ts +27 -0
- package/dist/types/client/realtime/RealtimeClient.d.ts +573 -0
- package/dist/types/client/realtime/localEvents.d.ts +53 -0
- package/dist/types/client/realtime/notice.d.ts +70 -0
- package/dist/types/client/realtime/observe.d.ts +284 -0
- package/dist/types/client/roles/index.d.ts +15 -0
- package/dist/types/client/roles/registry.d.ts +72 -0
- package/dist/types/client/roles/roles.d.ts +68 -0
- package/dist/types/client/shim/cli-color.d.ts +2 -0
- package/dist/types/client/shim/events.d.ts +39 -0
- package/dist/types/client/shim/util.d.ts +14 -0
- package/dist/types/client/svelte/index.d.ts +216 -0
- package/dist/types/client/syslog/context.d.ts +76 -0
- package/dist/types/client/syslog/errors.d.ts +46 -0
- package/dist/types/client/syslog/uplink.d.ts +89 -0
- package/dist/types/client/transport/websocket.d.ts +5 -0
- package/dist/types/client/vue/index.d.ts +234 -0
- package/dist/types/colors.d.ts +32 -0
- package/dist/types/command/Builder.d.ts +47 -0
- package/dist/types/command/Command.d.ts +268 -0
- package/dist/types/config/configMeta.d.ts +53 -0
- package/dist/types/config/configProvenance.d.ts +58 -0
- package/dist/types/config/defaults.d.ts +33 -0
- package/dist/types/config/defineConfig.d.ts +70 -0
- package/dist/types/config/defineEnv.d.ts +170 -0
- package/dist/types/config/envExample.d.ts +23 -0
- package/dist/types/config/envOverride.d.ts +236 -0
- package/dist/types/config/index.d.ts +23 -0
- package/dist/types/config/infra.d.ts +171 -0
- package/dist/types/config/reactivity.d.ts +36 -0
- package/dist/types/config/reservedEnv.d.ts +145 -0
- package/dist/types/config/schema.d.ts +113 -0
- package/dist/types/config/types.d.ts +374 -0
- package/dist/types/config/use.d.ts +80 -0
- package/dist/types/finder/File.d.ts +26 -0
- package/dist/types/finder/FileResult.d.ts +14 -0
- package/dist/types/finder/Finder.d.ts +51 -0
- package/dist/types/finder/Result.d.ts +10 -0
- package/dist/types/index.d.ts +205 -0
- package/dist/types/kernel/BootConfigurationError.d.ts +50 -0
- package/dist/types/kernel/CliKernel.d.ts +289 -0
- package/dist/types/kernel/Kernel.d.ts +1255 -0
- package/dist/types/kernel/Module.d.ts +326 -0
- package/dist/types/kernel/adminPlane/adminCaller.d.ts +105 -0
- package/dist/types/kernel/adminPlane/adminRbac.d.ts +44 -0
- package/dist/types/kernel/adminPlane/catalog.d.ts +122 -0
- package/dist/types/kernel/adminPlane/executeAdmin.d.ts +99 -0
- package/dist/types/kernel/bootReport.d.ts +112 -0
- package/dist/types/kernel/checks/deep.d.ts +122 -0
- package/dist/types/kernel/checks/freshness.d.ts +49 -0
- package/dist/types/kernel/checks/gating.d.ts +134 -0
- package/dist/types/kernel/checks/guards.d.ts +57 -0
- package/dist/types/kernel/checks/lastBoot.d.ts +189 -0
- package/dist/types/kernel/checks/live.d.ts +110 -0
- package/dist/types/kernel/checks/packageDeps.d.ts +44 -0
- package/dist/types/kernel/checks/readiness.d.ts +97 -0
- package/dist/types/kernel/checks/renderReport.d.ts +107 -0
- package/dist/types/kernel/checks/report.d.ts +414 -0
- package/dist/types/kernel/checks/runDoctor.d.ts +361 -0
- package/dist/types/kernel/checks/surface.d.ts +148 -0
- package/dist/types/kernel/checks/walk.d.ts +45 -0
- package/dist/types/kernel/checks/wiring.d.ts +54 -0
- package/dist/types/kernel/commands/AiMcpCommand.d.ts +39 -0
- package/dist/types/kernel/commands/AiSyncCommand.d.ts +28 -0
- package/dist/types/kernel/commands/BuildCommand.d.ts +13 -0
- package/dist/types/kernel/commands/CardCommand.d.ts +34 -0
- package/dist/types/kernel/commands/ClusterCommand.d.ts +29 -0
- package/dist/types/kernel/commands/CompletionCommand.d.ts +17 -0
- package/dist/types/kernel/commands/CreateCommand.d.ts +16 -0
- package/dist/types/kernel/commands/DevCommand.d.ts +40 -0
- package/dist/types/kernel/commands/DoctorCommand.d.ts +55 -0
- package/dist/types/kernel/commands/EnvCommand.d.ts +35 -0
- package/dist/types/kernel/commands/GitHooksCommand.d.ts +27 -0
- package/dist/types/kernel/commands/InspectCommand.d.ts +59 -0
- package/dist/types/kernel/commands/InstallCommand.d.ts +7 -0
- package/dist/types/kernel/commands/MenuCommand.d.ts +58 -0
- package/dist/types/kernel/commands/OutdatedCommand.d.ts +47 -0
- package/dist/types/kernel/commands/ProdCommand.d.ts +29 -0
- package/dist/types/kernel/commands/StatusCommand.d.ts +17 -0
- package/dist/types/kernel/commands/StopCommand.d.ts +17 -0
- package/dist/types/kernel/commands/SymbolsCommand.d.ts +29 -0
- package/dist/types/kernel/commands/runtimeLauncher.d.ts +76 -0
- package/dist/types/kernel/decorators/kernelDecorator.d.ts +76 -0
- package/dist/types/kernel/injector/injector.d.ts +47 -0
- package/dist/types/kernel/injector/serviceOrder.d.ts +29 -0
- package/dist/types/kernel/inspect/adminSubjects.d.ts +169 -0
- package/dist/types/kernel/inspect/docOutline.d.ts +53 -0
- package/dist/types/kernel/lifecycleTags.d.ts +79 -0
- package/dist/types/kernel/moduleConfig.d.ts +35 -0
- package/dist/types/kernel/moduleGating.d.ts +78 -0
- package/dist/types/kernel/readinessRegistry.d.ts +104 -0
- package/dist/types/kernel/resolveModuleEntry.d.ts +46 -0
- package/dist/types/mcp/caller.d.ts +55 -0
- package/dist/types/mcp/guard.d.ts +66 -0
- package/dist/types/mcp/protocol.d.ts +163 -0
- package/dist/types/mcp/server.d.ts +70 -0
- package/dist/types/mcp/tools.d.ts +209 -0
- package/dist/types/oauth/authorizationServer.d.ts +204 -0
- package/dist/types/oauth/protectedResource.d.ts +339 -0
- package/dist/types/realtime/IRealtimeSocket.d.ts +142 -0
- package/dist/types/realtime/IRealtimeTransport.d.ts +50 -0
- package/dist/types/realtime/JsonRpcPeer.d.ts +251 -0
- package/dist/types/realtime/RealtimeEventMap.d.ts +269 -0
- package/dist/types/realtime/channelRate.d.ts +55 -0
- package/dist/types/realtime/platformChannels.d.ts +147 -0
- package/dist/types/runtime/GcScheduler.d.ts +96 -0
- package/dist/types/runtime/RequestContext.d.ts +152 -0
- package/dist/types/runtime/bearer.d.ts +88 -0
- package/dist/types/runtime/engineEnvironment.d.ts +115 -0
- package/dist/types/runtime/loadEnv.d.ts +86 -0
- package/dist/types/runtime/pageFacets.d.ts +104 -0
- package/dist/types/runtime/pageFilters.d.ts +139 -0
- package/dist/types/runtime/pageGuard.d.ts +78 -0
- package/dist/types/runtime/pageQuery.d.ts +138 -0
- package/dist/types/runtime/pageSort.d.ts +86 -0
- package/dist/types/runtime/redact.d.ts +27 -0
- package/dist/types/runtime/withTimeout.d.ts +51 -0
- package/dist/types/service/cluster/ClusterManager.d.ts +112 -0
- package/dist/types/service/cluster/ClusterProbeAggregator.d.ts +68 -0
- package/dist/types/service/cluster/ClusterRelay.d.ts +57 -0
- package/dist/types/service/cluster/clusterMaster.d.ts +40 -0
- package/dist/types/service/cluster/clusterMessage.d.ts +94 -0
- package/dist/types/service/cluster/cpuQuota.d.ts +37 -0
- package/dist/types/service/cluster/instanceProbe.d.ts +82 -0
- package/dist/types/service/cluster/podEnvironment.d.ts +35 -0
- package/dist/types/service/cluster/processProbe.d.ts +53 -0
- package/dist/types/service/cluster/richProcessProbe.d.ts +77 -0
- package/dist/types/service/cluster/topology.d.ts +64 -0
- package/dist/types/service/dev/BootReporter.d.ts +67 -0
- package/dist/types/service/dev/DevSupervisor.d.ts +117 -0
- package/dist/types/service/dev/bootVerdict.d.ts +99 -0
- package/dist/types/service/dev/detachedStart.d.ts +164 -0
- package/dist/types/service/dev/devProcess.d.ts +638 -0
- package/dist/types/service/dev/devProjects.d.ts +121 -0
- package/dist/types/service/dev/devStatusReport.d.ts +141 -0
- package/dist/types/service/dev/devStop.d.ts +57 -0
- package/dist/types/service/fetchService.d.ts +29 -0
- package/dist/types/service/gitService.d.ts +24 -0
- package/dist/types/syslog/Pdu.d.ts +134 -0
- package/dist/types/syslog/Syslog.d.ts +482 -0
- package/dist/types/syslog/drivers/ClusterFileLogDriver.d.ts +40 -0
- package/dist/types/syslog/drivers/FileLogDriver.d.ts +55 -0
- package/dist/types/syslog/drivers/ILogDriver.d.ts +177 -0
- package/dist/types/syslog/drivers/LokiLogDriver.d.ts +44 -0
- package/dist/types/syslog/drivers/MemoryLogDriver.d.ts +20 -0
- package/dist/types/syslog/drivers/OpenSearchLogDriver.d.ts +40 -0
- package/dist/types/syslog/drivers/builtinLogDrivers.d.ts +43 -0
- package/dist/types/syslog/drivers/filterPdus.d.ts +21 -0
- package/dist/types/syslog/drivers/logDriverRegistry.d.ts +100 -0
- package/dist/types/syslog/drivers/opensearchShared.d.ts +11 -0
- package/dist/types/syslog/drivers/pduFlow.d.ts +53 -0
- package/dist/types/syslog/drivers/pduProtocol.d.ts +20 -0
- package/dist/types/syslog/httpFetch.d.ts +48 -0
- package/dist/types/syslog/logColor.d.ts +59 -0
- package/dist/types/syslog/sinks/FileSink.d.ts +78 -0
- package/dist/types/syslog/transports/BatchingHttpTransport.d.ts +59 -0
- package/dist/types/syslog/transports/ConsoleTransport.d.ts +8 -0
- package/dist/types/syslog/transports/FileTransport.d.ts +13 -0
- package/dist/types/syslog/transports/HttpTransport.d.ts +15 -0
- package/dist/types/syslog/transports/LokiTransport.d.ts +45 -0
- package/dist/types/syslog/transports/OpenSearchTransport.d.ts +40 -0
- package/dist/types/syslog/transports/SyslogTransport.d.ts +9 -0
- package/dist/types/syslog/transports/index.d.ts +12 -0
- package/dist/types/testing/index.d.ts +197 -0
- package/dist/types/types/IAdminApi.d.ts +246 -0
- package/dist/types/types/ICliKernel.d.ts +28 -0
- package/dist/types/types/ICommand.d.ts +14 -0
- package/dist/types/types/IContainer.d.ts +35 -0
- package/dist/types/types/IIdempotencyStore.d.ts +159 -0
- package/dist/types/types/IKernel.d.ts +138 -0
- package/dist/types/types/IMcpTool.d.ts +157 -0
- package/dist/types/types/IModule.d.ts +73 -0
- package/dist/types/types/IModuleManifest.d.ts +49 -0
- package/dist/types/types/IPage.d.ts +119 -0
- package/dist/types/types/IService.d.ts +62 -0
- package/dist/types/types/ISyslog.d.ts +58 -0
- package/dist/types/types/ITransport.d.ts +5 -0
- package/dist/types/types/globals.d.ts +47 -0
- package/docs/angular-services.md +318 -0
- package/docs/catalogue.md +184 -0
- package/docs/cli.md +369 -0
- package/docs/client.md +616 -0
- package/docs/debugbar.md +218 -0
- package/docs/environnement.md +308 -0
- package/docs/index.md +388 -0
- package/docs/kernel.md +670 -0
- package/docs/progression.md +228 -0
- package/docs/react-hooks.md +686 -0
- package/docs/request-context.md +507 -0
- package/docs/service.md +590 -0
- package/docs/svelte-reactivite.md +293 -0
- package/docs/syslog.md +848 -0
- package/docs/testing.md +203 -0
- package/docs/vue-composables.md +255 -0
- package/man/nodefony.1 +152 -0
- package/package.json +163 -83
- package/templates/app/agents/AGENTS.md.tpl +967 -0
- package/templates/app/agents/POINTEUR.md.tpl +12 -0
- package/templates/app/base/Dockerfile.tpl +104 -0
- package/templates/app/base/README.md.tpl +314 -0
- package/templates/app/base/dockerignore.tpl +28 -0
- package/templates/app/base/env.ts.tpl +130 -0
- package/templates/app/base/gitattributes.tpl +28 -0
- package/templates/app/base/github/workflows/ci.yml.tpl +91 -0
- package/templates/app/base/gitignore.tpl +46 -0
- package/templates/app/base/gitlab-ci.yml.tpl +42 -0
- package/templates/app/base/index.ts.tpl +69 -0
- package/templates/app/base/nodefony.config.ts.tpl +342 -0
- package/templates/app/base/oxlintrc.json.tpl +127 -0
- package/templates/app/base/package.json.tpl +75 -0
- package/templates/app/base/prettierignore.tpl +24 -0
- package/templates/app/base/prettierrc.json.tpl +12 -0
- package/templates/app/base/rolldown.config.ts.tpl +8 -0
- package/templates/app/base/tests/config.test.ts.tpl +29 -0
- package/templates/app/base/tests/e2e.setup.ts.tpl +181 -0
- package/templates/app/base/tests/e2e.test.ts.tpl +105 -0
- package/templates/app/base/tests/migrations.e2e.test.ts.tpl +579 -0
- package/templates/app/base/tsconfig.json.tpl +47 -0
- package/templates/app/base/vitest.config.ts.tpl +88 -0
- package/templates/app/base/vitest.e2e.config.ts.tpl +39 -0
- package/templates/app/complete/compose.yaml.tpl +328 -0
- package/templates/app/complete/deploy/migrate-job.yaml.tpl +100 -0
- package/templates/app/complete/docker/db/init-nodefony-e2e.sql.tpl +30 -0
- package/templates/app/complete/docker/grafana/provisioning/datasources/loki.yaml.tpl +15 -0
- package/templates/app/complete/env.local.tpl +11 -0
- package/templates/app/complete/env.tpl +53 -0
- package/templates/app/complete/nodefony/entity/User.ts.tpl +69 -0
- package/templates/app/complete/nodefony/security/provisionUsers.ts.tpl +124 -0
- package/templates/app/complete/nodefony/service/AppBannerService.ts.tpl +98 -0
- package/templates/app/complete/nodefony/service/AppInfoService.ts.tpl +85 -0
- package/templates/app/frontend/angular/frontend/src/accent.css.tpl +34 -0
- package/templates/app/frontend/angular/frontend/src/app/app.component.ts.tpl +400 -0
- package/templates/app/frontend/react/frontend/src/App.tsx.tpl +421 -0
- package/templates/app/frontend/react/frontend/src/accent.css.tpl +30 -0
- package/templates/app/frontend/shared/frontend/src/brand.ts.tpl +3 -0
- package/templates/app/frontend/shared/frontend/src/showcase.css.tpl +224 -0
- package/templates/app/frontend/shared/nodefony/controllers/AppController.ts.tpl +45 -0
- package/templates/app/frontend/svelte/frontend/src/App.svelte.tpl +371 -0
- package/templates/app/frontend/svelte/frontend/src/accent.css.tpl +34 -0
- package/templates/app/frontend/vue/frontend/src/App.vue.tpl +367 -0
- package/templates/app/frontend/vue/frontend/src/accent.css.tpl +34 -0
- package/templates/app/home/nodefony/controllers/HomeController.ts.tpl +38 -0
- package/templates/command/nodefony/command/__NAME__.ts.tpl +132 -0
- package/templates/controller/duplex/nodefony/controllers/__NAME__.ts.tpl +188 -0
- package/templates/controller/example/nodefony/controllers/__NAME__.ts.tpl +348 -0
- package/templates/controller/hello/nodefony/controllers/__NAME__.ts.tpl +143 -0
- package/templates/controller/realtime/nodefony/controllers/__NAME__.ts.tpl +153 -0
- package/templates/controller/realtime/tests/__KEBAB__-realtime.test.ts.tpl +79 -0
- package/templates/controller/rest/nodefony/controllers/__NAME__.ts.tpl +159 -0
- package/templates/entity/base/nodefony/entity/__PASCAL__.schema.ts.tpl +31 -0
- package/templates/entity/base/nodefony/entity/__PASCAL__.ts.tpl +68 -0
- package/templates/entity/controller/nodefony/controllers/__PASCAL__Controller.ts.tpl +335 -0
- package/templates/entity/service/nodefony/service/__PASCAL__Service.ts.tpl +126 -0
- package/templates/entity/tests/tests/__KEBAB__.e2e.test.ts.tpl +358 -0
- package/templates/entity/tests/tests/__KEBAB__.test.ts.tpl +87 -0
- package/templates/front/angular/frontend/src/app/app.component.ts.tpl +30 -0
- package/templates/front/base/nodefony/controllers/__NAME__.ts.tpl +60 -0
- package/templates/front/react/frontend/src/App.tsx.tpl +26 -0
- package/templates/front/svelte/frontend/src/App.svelte.tpl +19 -0
- package/templates/front/vue/frontend/src/App.vue.tpl +23 -0
- package/templates/module/ai/AGENTS.md.tpl +71 -0
- package/templates/module/base/README.md.tpl +62 -0
- package/templates/module/base/docs/index.md.tpl +55 -0
- package/templates/module/base/index.ts.tpl +50 -0
- package/templates/module/base/nodefony/config/config.ts.tpl +60 -0
- package/templates/module/base/nodefony/config/defineModuleConfig.ts.tpl +55 -0
- package/templates/module/base/nodefony/src/errors/__PASCAL__Error.ts.tpl +20 -0
- package/templates/module/base/package.json.tpl +53 -0
- package/templates/module/base/rolldown.config.ts.tpl +14 -0
- package/templates/module/base/tests/__KEBAB__.test.ts.tpl +39 -0
- package/templates/module/base/tsconfig.json.tpl +42 -0
- package/templates/module/base/vitest.config.ts.tpl +27 -0
- package/templates/module/packages/CLAUDE.md.tpl +51 -0
- package/templates/module/packages/MEMORY.md.tpl +39 -0
- package/templates/module/packages/tsconfig.declarations.json.tpl +19 -0
- package/templates/module/packages/tsconfig.tests.json.tpl +11 -0
- package/templates/module/service/nodefony/interfaces/I__PASCAL__Service.ts.tpl +14 -0
- package/templates/module/service/nodefony/interfaces/index.ts.tpl +1 -0
- package/templates/module/service/nodefony/service/__PASCAL__Service.ts.tpl +116 -0
- package/templates/service/nodefony/interfaces/I__PASCAL__Service.ts.tpl +19 -0
- package/templates/service/nodefony/service/__PASCAL__Service.ts.tpl +136 -0
- package/templates/service/tests/__PASCAL__Service.test.ts.tpl +53 -0
- package/templates/shared/front-entry/angular/frontend/src/main.ts.tpl +17 -0
- package/templates/shared/front-entry/react/frontend/src/main.tsx.tpl +11 -0
- package/templates/shared/front-entry/svelte/frontend/src/main.ts.tpl +13 -0
- package/templates/shared/front-entry/vue/frontend/src/main.ts.tpl +12 -0
- package/templates/shared/front-registrar/nodefony/frontend/register__PASCAL__Entry.ts.tpl +40 -0
- package/templates/shared/front-shell/frontend/index.html.tpl +39 -0
- package/templates/shared/ng-app-tsconfig/frontend/tsconfig.app.json.tpl +18 -0
- package/templates/shared/svelte-shim/frontend/src/env.d.ts.tpl +12 -0
- package/templates/shared/vue-shim/frontend/src/env.d.ts.tpl +15 -0
- package/.yarnclean +0 -45
- package/CHANGELOG.md +0 -406
- package/autoloader.es6 +0 -253
- package/builder.es6 +0 -366
- package/cli/builder/bundles/bundle.js +0 -328
- package/cli/builder/bundles/controller.js +0 -73
- package/cli/builder/bundles/users-bundle/.yarnclean +0 -45
- package/cli/builder/bundles/users-bundle/Command/fixtureTask.js +0 -47
- package/cli/builder/bundles/users-bundle/Command/usersCommand.js +0 -105
- package/cli/builder/bundles/users-bundle/Entity/mongoose/userEntity.js +0 -168
- package/cli/builder/bundles/users-bundle/Entity/sequelize/userEntity.js +0 -231
- package/cli/builder/bundles/users-bundle/Fixtures/users.js +0 -117
- package/cli/builder/bundles/users-bundle/Fixtures/usersFixtures.js +0 -114
- package/cli/builder/bundles/users-bundle/Resources/config/config.js +0 -90
- package/cli/builder/bundles/users-bundle/Resources/config/routing.js +0 -17
- package/cli/builder/bundles/users-bundle/Resources/config/security.js +0 -96
- package/cli/builder/bundles/users-bundle/Resources/config/services.js +0 -7
- package/cli/builder/bundles/users-bundle/Resources/config/webpack/webpack.dev.config.js +0 -13
- package/cli/builder/bundles/users-bundle/Resources/config/webpack/webpack.prod.config.js +0 -31
- package/cli/builder/bundles/users-bundle/Resources/config/webpack.config.js +0 -146
- package/cli/builder/bundles/users-bundle/Resources/js/users.js +0 -153
- package/cli/builder/bundles/users-bundle/Resources/public/favicon.ico +0 -0
- package/cli/builder/bundles/users-bundle/Resources/public/images/users-logo.png +0 -0
- package/cli/builder/bundles/users-bundle/Resources/scss/awesome/font-awesome.config.js +0 -11
- package/cli/builder/bundles/users-bundle/Resources/scss/custom.scss +0 -23
- package/cli/builder/bundles/users-bundle/Resources/scss/users.scss +0 -59
- package/cli/builder/bundles/users-bundle/Resources/swagger/openapi/login.js +0 -235
- package/cli/builder/bundles/users-bundle/Resources/swagger/openapi/users.js +0 -232
- package/cli/builder/bundles/users-bundle/Resources/translations/login.en_en.yml +0 -14
- package/cli/builder/bundles/users-bundle/Resources/translations/login.fr_fr.yml +0 -14
- package/cli/builder/bundles/users-bundle/Resources/translations/users.en_en.yml +0 -35
- package/cli/builder/bundles/users-bundle/Resources/translations/users.fr_fr.yml +0 -36
- package/cli/builder/bundles/users-bundle/Resources/views/base.html.twig +0 -32
- package/cli/builder/bundles/users-bundle/Resources/views/footer.html.twig +0 -7
- package/cli/builder/bundles/users-bundle/Resources/views/header.html.twig +0 -90
- package/cli/builder/bundles/users-bundle/Resources/views/login/login.html.twig +0 -43
- package/cli/builder/bundles/users-bundle/Resources/views/users/createUser.html.twig +0 -296
- package/cli/builder/bundles/users-bundle/Resources/views/users/readUsers.html.twig +0 -94
- package/cli/builder/bundles/users-bundle/controller/api/graphql/graphqlController.js +0 -56
- package/cli/builder/bundles/users-bundle/controller/api/graphql/userResolver.js +0 -121
- package/cli/builder/bundles/users-bundle/controller/api/graphql/usertype.js +0 -58
- package/cli/builder/bundles/users-bundle/controller/api/openapi/loginApiController.js +0 -210
- package/cli/builder/bundles/users-bundle/controller/api/openapi/restUserController.js +0 -244
- package/cli/builder/bundles/users-bundle/controller/loginController.js +0 -91
- package/cli/builder/bundles/users-bundle/controller/usersController.js +0 -332
- package/cli/builder/bundles/users-bundle/package.json +0 -58
- package/cli/builder/bundles/users-bundle/readme.md +0 -360
- package/cli/builder/bundles/users-bundle/services/usersService.js +0 -411
- package/cli/builder/bundles/users-bundle/src/providers/mongoose/userProvider.js +0 -47
- package/cli/builder/bundles/users-bundle/src/providers/sequelize/userProvider.js +0 -48
- package/cli/builder/bundles/users-bundle/tests/loginTest.js +0 -182
- package/cli/builder/bundles/users-bundle/usersBundle.js +0 -26
- package/cli/builder/microService/microService.js +0 -261
- package/cli/builder/microService/skeletons/.editorconfig +0 -18
- package/cli/builder/microService/skeletons/.env-cmdrc.js +0 -32
- package/cli/builder/microService/skeletons/.jshintrc +0 -37
- package/cli/builder/microService/skeletons/README.md +0 -117
- package/cli/builder/microService/skeletons/bin/bash/hello.sh +0 -5
- package/cli/builder/microService/skeletons/bin/cli +0 -13
- package/cli/builder/microService/skeletons/bin/python/hello.py +0 -20
- package/cli/builder/microService/skeletons/config/config.js +0 -29
- package/cli/builder/microService/skeletons/config/pm2.config.js +0 -72
- package/cli/builder/microService/skeletons/config/webpack/webpack.config.dev.js +0 -8
- package/cli/builder/microService/skeletons/config/webpack/webpack.config.prod.js +0 -25
- package/cli/builder/microService/skeletons/config/webpack.config.js +0 -114
- package/cli/builder/microService/skeletons/package.json +0 -76
- package/cli/builder/microService/skeletons/src/browser/index.css +0 -3
- package/cli/builder/microService/skeletons/src/browser/index.js +0 -16
- package/cli/builder/microService/skeletons/src/browser/socketio.js +0 -46
- package/cli/builder/microService/skeletons/src/cli/cli.js +0 -224
- package/cli/builder/microService/skeletons/src/cli/menu.js +0 -28
- package/cli/builder/microService/skeletons/src/n-api/README.md +0 -1
- package/cli/builder/microService/skeletons/src/n-api/binding.gyp +0 -14
- package/cli/builder/microService/skeletons/src/n-api/hello.cc +0 -14
- package/cli/builder/microService/skeletons/src/n-api/hello.js +0 -23
- package/cli/builder/microService/skeletons/src/n-api/package.json +0 -15
- package/cli/builder/microService/skeletons/src/node/examples/index.js +0 -120
- package/cli/builder/microService/skeletons/src/node/index.js +0 -102
- package/cli/builder/microService/skeletons/src/node/services/markdown/markdown.js +0 -27
- package/cli/builder/microService/skeletons/src/node/services/servers/http.js +0 -45
- package/cli/builder/microService/skeletons/src/node/services/servers/https.js +0 -44
- package/cli/builder/microService/skeletons/src/node/services/socketio/socketio.js +0 -46
- package/cli/builder/microService/skeletons/src/node/services/syscall/syscall.js +0 -111
- package/cli/builder/microService/skeletons/src/node/services/worker/thread.js +0 -59
- package/cli/builder/microService/skeletons/src/node/services/worker/worker.js +0 -60
- package/cli/builder/microService/skeletons/src/templates/base.html +0 -12
- package/cli/builder/microService/skeletons/src/templates/socket.html +0 -23
- package/cli/builder/microService/skeletons/tests/unit/serviceTest.js +0 -30
- package/cli/builder/project/project.js +0 -474
- package/cli/builder/project/skeletons/README.md +0 -778
- package/cli/builder/project/skeletons/bin/dev-deploy.sh +0 -5
- package/cli/builder/project/skeletons/bin/generateCertificates.sh.skeleton +0 -180
- package/cli/builder/project/skeletons/bin/prod-deploy.sh +0 -3
- package/cli/builder/project/skeletons/config/config.js.skeleton +0 -178
- package/cli/builder/project/skeletons/config/openssl/ca/openssl.cnf.skeleton +0 -150
- package/cli/builder/project/skeletons/config/openssl/ca_intermediate/openssl.cnf.skeleton +0 -152
- package/cli/builder/project/skeletons/config/pm2.config.js.skeleton +0 -62
- package/cli/builder/project/skeletons/documentation.html.twig +0 -24
- package/cli/builder/project/skeletons/editorconfig.skeleton +0 -18
- package/cli/builder/project/skeletons/eslintignore.skeleton +0 -15
- package/cli/builder/project/skeletons/eslintrc.js.skeleton +0 -97
- package/cli/builder/project/skeletons/gitignore.skeleton +0 -32
- package/cli/builder/project/skeletons/migrations/2022.12.25T17.37.37.entity-user.js +0 -137
- package/cli/builder/project/skeletons/migrations/2022.12.25T17.37.38.entity-session.js +0 -97
- package/cli/builder/project/skeletons/migrations/2022.12.25T17.37.39.entity-requests.js +0 -115
- package/cli/builder/project/skeletons/migrations/2022.12.25T17.37.40.entity-jwts.js +0 -97
- package/cli/builder/project/skeletons/migrations/migrations.skeleton.js +0 -101
- package/cli/builder/project/skeletons/package.json.twig +0 -71
- package/cli/builder/react/reactBuilder.js +0 -224
- package/cli/builder/react/skeletons/app/Resources/databases/nodefony.db +0 -0
- package/cli/builder/react/skeletons/app/Resources/translations/messages.en_en.yml +0 -5
- package/cli/builder/react/skeletons/app/Resources/translations/messages.fr_fr.yml +0 -5
- package/cli/builder/react/skeletons/app/Resources/views/base.html.twig +0 -33
- package/cli/builder/react/skeletons/app/config/config.js +0 -392
- package/cli/builder/react/skeletons/app/config/routing.js +0 -10
- package/cli/builder/react/skeletons/app/config/security.js +0 -74
- package/cli/builder/react/skeletons/app/controller/appController.js +0 -22
- package/cli/builder/sandbox/sandBoxBuilder.js +0 -610
- package/cli/builder/sandbox/skeletons/Resources/css/entry.css +0 -48
- package/cli/builder/sandbox/skeletons/Resources/js/entry.js +0 -60
- package/cli/builder/sandbox/skeletons/Resources/public/manifest.json +0 -32
- package/cli/builder/sandbox/skeletons/Resources/translations/messages.en_en.yml +0 -5
- package/cli/builder/sandbox/skeletons/Resources/translations/messages.fr_fr.yml +0 -5
- package/cli/builder/sandbox/skeletons/Resources/views/base.html.twig +0 -46
- package/cli/builder/sandbox/skeletons/Resources/views/index.html.twig +0 -34
- package/cli/builder/sandbox/skeletons/bootstrap/custom.scss +0 -27
- package/cli/builder/sandbox/skeletons/bootstrap/entry.scss +0 -60
- package/cli/builder/sandbox/skeletons/workbox/templates/index.html.twig +0 -32
- package/cli/builder/sandbox/skeletons/workbox/workers/service-worker.js +0 -196
- package/cli/builder/skeletons/Resources/public/favicon.ico +0 -0
- package/cli/builder/skeletons/Resources/public/images/app-logo.png +0 -0
- package/cli/builder/skeletons/Resources/views/framework-bundle/views/401.html.twig +0 -1
- package/cli/builder/skeletons/Resources/views/framework-bundle/views/401.json.twig +0 -24
- package/cli/builder/skeletons/Resources/views/framework-bundle/views/403.html.twig +0 -1
- package/cli/builder/skeletons/Resources/views/framework-bundle/views/403.json.twig +0 -20
- package/cli/builder/skeletons/Resources/views/framework-bundle/views/404.html.twig +0 -1
- package/cli/builder/skeletons/Resources/views/framework-bundle/views/404.json.twig +0 -20
- package/cli/builder/skeletons/Resources/views/framework-bundle/views/500.html.twig +0 -1
- package/cli/builder/skeletons/Resources/views/framework-bundle/views/base.html.twig +0 -30
- package/cli/builder/skeletons/Resources/views/framework-bundle/views/exception.html.twig +0 -1
- package/cli/builder/skeletons/Resources/views/framework-bundle/views/exception.json.twig +0 -24
- package/cli/builder/skeletons/Resources/views/framework-bundle/views/footer.html.twig +0 -33
- package/cli/builder/skeletons/Resources/views/framework-bundle/views/header.html.twig +0 -6
- package/cli/builder/skeletons/Resources/views/framework-bundle/views/index.html.twig +0 -6
- package/cli/builder/skeletons/Resources/views/framework-bundle/views/index.json.twig +0 -1
- package/cli/builder/skeletons/Resources/views/framework-bundle/views/layout.html.twig +0 -125
- package/cli/builder/skeletons/Resources/views/framework-bundle/views/layout.json.twig +0 -5
- package/cli/builder/skeletons/Resources/views/framework-bundle/views/timeout.html.twig +0 -1
- package/cli/builder/skeletons/Resources/views/framework-bundle/views/timeout.json.twig +0 -24
- package/cli/builder/skeletons/app/appKernel.js +0 -133
- package/cli/builder/skeletons/binding/binding.cc +0 -26
- package/cli/builder/skeletons/binding/binding.skeleton +0 -8
- package/cli/builder/skeletons/bundle/bundleClass.js +0 -37
- package/cli/builder/skeletons/command/commandClass.js +0 -11
- package/cli/builder/skeletons/command/taskClass.js +0 -20
- package/cli/builder/skeletons/config/config.js +0 -138
- package/cli/builder/skeletons/config/nodefony/elastic-bundle.js +0 -37
- package/cli/builder/skeletons/config/nodefony/framework-bundle.js +0 -22
- package/cli/builder/skeletons/config/nodefony/http-bundle.js +0 -104
- package/cli/builder/skeletons/config/nodefony/mail-bundle.js +0 -44
- package/cli/builder/skeletons/config/nodefony/mongoose-bundle.js +0 -51
- package/cli/builder/skeletons/config/nodefony/monitoring-bundle.js +0 -34
- package/cli/builder/skeletons/config/nodefony/realtime-bundle.js +0 -15
- package/cli/builder/skeletons/config/nodefony/redis-bundle.js +0 -44
- package/cli/builder/skeletons/config/nodefony/security-bundle.js +0 -25
- package/cli/builder/skeletons/config/nodefony/sequelize-bundle.js +0 -156
- package/cli/builder/skeletons/config/routing.js +0 -55
- package/cli/builder/skeletons/config/security.js +0 -102
- package/cli/builder/skeletons/config/services.js +0 -1
- package/cli/builder/skeletons/config/webpack/webpack.dev.config.js +0 -13
- package/cli/builder/skeletons/config/webpack/webpack.prod.config.js +0 -20
- package/cli/builder/skeletons/config/webpack.config.js +0 -148
- package/cli/builder/skeletons/controller/controllerClass.js +0 -75
- package/cli/builder/skeletons/package.json.twig +0 -57
- package/cli/builder/skeletons/unittest/testFile.js +0 -46
- package/cli/builder/vue/skeletons/Resources/public/images/app-logo.png +0 -0
- package/cli/builder/vue/skeletons/Resources/translations/messages.en_en.yml +0 -5
- package/cli/builder/vue/skeletons/Resources/translations/messages.fr_fr.yml +0 -5
- package/cli/builder/vue/skeletons/vue.config.js +0 -129
- package/cli/builder/vue/vueBuilder.js +0 -410
- package/cli/generate/generate.es6 +0 -103
- package/cli/install/install.js +0 -190
- package/cli/sequelize/sequelize.js +0 -94
- package/cli/start.js +0 -702
- package/cli/tools/pm2.es6 +0 -112
- package/cli/tools/tools.es6 +0 -97
- package/cli.es6 +0 -925
- package/container.es6 +0 -272
- package/error.es6 +0 -293
- package/fileClass.es6 +0 -242
- package/finder/file.es6 +0 -33
- package/finder/fileResult.es6 +0 -138
- package/finder/finder2.es6 +0 -275
- package/finder.es6 +0 -427
- package/kernel/annotations/annotations.es6 +0 -286
- package/kernel/api/api.es6 +0 -61
- package/kernel/api/graphqlApi.es6 +0 -107
- package/kernel/api/jsonApi.es6 +0 -177
- package/kernel/api/openApi.es6 +0 -139
- package/kernel/api/schemas/openApiSchema.js +0 -394
- package/kernel/babylon.es6 +0 -162
- package/kernel/bundle.es6 +0 -1200
- package/kernel/cliKernel.es6 +0 -869
- package/kernel/command.es6 +0 -78
- package/kernel/commands/nodefonyCommand.es6 +0 -247
- package/kernel/commands/tasks/bundlesTask.es6 +0 -59
- package/kernel/controllers/controller.es6 +0 -791
- package/kernel/fixture.es6 +0 -19
- package/kernel/injections/injections.es6 +0 -424
- package/kernel/kernel.es6 +0 -1960
- package/kernel/kernelWatcher.es6 +0 -387
- package/kernel/orm/entity.es6 +0 -59
- package/kernel/orm/orm.es6 +0 -139
- package/kernel/reader.es6 +0 -290
- package/kernel/security/encoder.es6 +0 -17
- package/kernel/security/factories/factory.es6 +0 -111
- package/kernel/security/factories/passeportFactory.es6 +0 -61
- package/kernel/security/provider.es6 +0 -58
- package/kernel/security/providers/chainProvider.es6 +0 -99
- package/kernel/security/providers/memoryProvider.es6 +0 -55
- package/kernel/security/providers/providerManager.es6 +0 -67
- package/kernel/security/providers/userEntityProvider.es6 +0 -50
- package/kernel/security/role.es6 +0 -12
- package/kernel/security/secureArea.es6 +0 -431
- package/kernel/security/tokens/token.es6 +0 -171
- package/kernel/security/user.es6 +0 -106
- package/kernel/serviceRealTime.es6 +0 -21
- package/kernel/services/connectionsService.es6 +0 -93
- package/kernel/services/cron/cronService.es6 +0 -123
- package/kernel/task.es6 +0 -80
- package/kernel/templates.es6 +0 -22
- package/kernel/templating/twig.es6 +0 -218
- package/kernel/tests/cliTest.js +0 -59
- package/kernel/tests/containerTest.js +0 -232
- package/kernel/tests/kernelTest.js +0 -39
- package/nodefony.es6 +0 -1084
- package/notificationsCenter.es6 +0 -118
- package/protocol.es6 +0 -86
- package/protocols/bayeux.es6 +0 -174
- package/protocols/jsonRpc/jsonrpc.es6 +0 -56
- package/result.es6 +0 -99
- package/service.es6 +0 -288
- package/syslog/pdu.es6 +0 -141
- package/syslog/syslog.es6 +0 -754
- package/watcher.es6 +0 -113
|
@@ -0,0 +1,367 @@
|
|
|
1
|
+
import { extend, isPlainObject } from "./Tools.js";
|
|
2
|
+
//#region src/Container.ts
|
|
3
|
+
const ISDefined = function(ele) {
|
|
4
|
+
return ele !== null && ele !== void 0;
|
|
5
|
+
};
|
|
6
|
+
const parseParameterString = function(str, value) {
|
|
7
|
+
if (!this) throw new Error(`Bad call`);
|
|
8
|
+
const parts = str.split(".");
|
|
9
|
+
const currentPart = parts.shift();
|
|
10
|
+
if (currentPart !== void 0) {
|
|
11
|
+
if (parts.length === 0) {
|
|
12
|
+
if (value !== void 0) this[currentPart] = value;
|
|
13
|
+
return this[currentPart] ?? null;
|
|
14
|
+
}
|
|
15
|
+
if (this[currentPart] === void 0 || this[currentPart] === null) {
|
|
16
|
+
if (value !== void 0) this[currentPart] = {};
|
|
17
|
+
else return null;
|
|
18
|
+
}
|
|
19
|
+
if (typeof this[currentPart] !== "object") throw new Error(`Cannot create property '${parts[0]}' on ${typeof this[currentPart]} '${this[currentPart]}'`);
|
|
20
|
+
return parseParameterString.call(this[currentPart], parts.join("."), value);
|
|
21
|
+
}
|
|
22
|
+
return this;
|
|
23
|
+
};
|
|
24
|
+
let containerSeq = 0;
|
|
25
|
+
/**
|
|
26
|
+
* Dependency Injection container — registers services by name and exposes
|
|
27
|
+
* them to the rest of the framework.
|
|
28
|
+
*
|
|
29
|
+
* Services are stored on a prototype-backed object (`protoService`) so they
|
|
30
|
+
* are inherited by child scopes (see {@link Scope}). The container also
|
|
31
|
+
* carries an arbitrary parameter tree (`parameters`) used for configuration.
|
|
32
|
+
*
|
|
33
|
+
* Conventional usage:
|
|
34
|
+
* ```ts
|
|
35
|
+
* const c = new Container();
|
|
36
|
+
* c.set("logger", new LoggerService());
|
|
37
|
+
* c.setParameters("kernel.environment", "development");
|
|
38
|
+
* const logger = c.get<LoggerService>("logger");
|
|
39
|
+
* ```
|
|
40
|
+
*
|
|
41
|
+
* See `src/nodefony/docs/container.md` for the high-level rationale and the
|
|
42
|
+
* scope model used by the HTTP/WS request pipeline.
|
|
43
|
+
*/
|
|
44
|
+
var Container = class Container {
|
|
45
|
+
protoService;
|
|
46
|
+
services;
|
|
47
|
+
protoParameters;
|
|
48
|
+
parameters;
|
|
49
|
+
id;
|
|
50
|
+
scopes = null;
|
|
51
|
+
/**
|
|
52
|
+
* Create a new container. When an existing container is passed in, the
|
|
53
|
+
* new instance inherits its services (via prototype chaining) and clones
|
|
54
|
+
* its parameters — used by {@link Scope} to build short-lived containers
|
|
55
|
+
* that share base services but isolate per-request state.
|
|
56
|
+
*
|
|
57
|
+
* @param input - parent container to inherit services from
|
|
58
|
+
* @param deep - if `true`, parameters are deep-cloned via `structuredClone`
|
|
59
|
+
* (falls back to shallow copy if `structuredClone` throws on unsupported types)
|
|
60
|
+
* @param adoptedProtoService - @internal canal {@link Scope} : adopte le
|
|
61
|
+
* proto-services du PARENT au lieu d'allouer une closure locale morte
|
|
62
|
+
* (2 closures + 2 `Object.create` jetés par requête avant ce chemin)
|
|
63
|
+
* @param adoptedProtoParameters - @internal idem pour les paramètres
|
|
64
|
+
*/
|
|
65
|
+
constructor(input, deep = false, adoptedProtoService, adoptedProtoParameters) {
|
|
66
|
+
this.id = (++containerSeq).toString(36);
|
|
67
|
+
this.protoService = adoptedProtoService ?? function() {};
|
|
68
|
+
this.protoParameters = adoptedProtoParameters ?? function() {};
|
|
69
|
+
if (input && input instanceof Container) {
|
|
70
|
+
this.services = Object.create(input.protoService.prototype);
|
|
71
|
+
this.parameters = Object.create(input.protoParameters.prototype);
|
|
72
|
+
this.setServices(input.services ?? {});
|
|
73
|
+
if (deep) try {
|
|
74
|
+
this.setParametersBulk(structuredClone(input.parameters ?? {}));
|
|
75
|
+
} catch {
|
|
76
|
+
this.setParametersBulk(input.parameters ?? {});
|
|
77
|
+
}
|
|
78
|
+
else this.setParametersBulk(input.parameters ?? {});
|
|
79
|
+
} else {
|
|
80
|
+
this.services = Object.create(this.protoService.prototype);
|
|
81
|
+
this.parameters = Object.create(this.protoParameters.prototype);
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
setServices(services) {
|
|
85
|
+
for (const service in services) this.set(service, services[service]);
|
|
86
|
+
}
|
|
87
|
+
setParametersBulk(parameters) {
|
|
88
|
+
for (const parameter in parameters) this.setParameters(parameter, parameters[parameter]);
|
|
89
|
+
}
|
|
90
|
+
/**
|
|
91
|
+
* Emit a log entry through the registered `syslog` service. Falls back to
|
|
92
|
+
* `console.warn` when no syslog is set (early boot, isolated test).
|
|
93
|
+
*
|
|
94
|
+
* @param pci - log payload (string or structured PDU body)
|
|
95
|
+
* @param severity - syslog severity level
|
|
96
|
+
* @param msgid - message id; defaults to `"SERVICES CONTAINER"`
|
|
97
|
+
* @param msg - optional message detail
|
|
98
|
+
*/
|
|
99
|
+
log(pci, severity, msgid, msg) {
|
|
100
|
+
const syslog = this.get("syslog");
|
|
101
|
+
if (!syslog) {
|
|
102
|
+
console.warn(`[Container] no syslog registered —`, pci);
|
|
103
|
+
return;
|
|
104
|
+
}
|
|
105
|
+
if (!msgid) msgid = "SERVICES CONTAINER";
|
|
106
|
+
return syslog.log(pci, severity, msgid, msg);
|
|
107
|
+
}
|
|
108
|
+
/**
|
|
109
|
+
* Register a service under `name`. The service is stored both directly on
|
|
110
|
+
* the container and on its prototype, so child scopes can read it without
|
|
111
|
+
* an extra hop.
|
|
112
|
+
*
|
|
113
|
+
* @param name - service identifier (any non-empty string)
|
|
114
|
+
* @param object - the instance to register (no type constraint — services
|
|
115
|
+
* are not required to extend any base class)
|
|
116
|
+
* @throws Error if `name` is empty or the container has been cleaned
|
|
117
|
+
*/
|
|
118
|
+
set(name, object) {
|
|
119
|
+
if (this.services && name) {
|
|
120
|
+
this.protoService.prototype[name] = object;
|
|
121
|
+
this.services[name] = object;
|
|
122
|
+
} else throw new Error("Container bad argument name");
|
|
123
|
+
}
|
|
124
|
+
/**
|
|
125
|
+
* Resolve a service by name. Returns `null` if the service is unknown or
|
|
126
|
+
* the container has been cleaned — callers should narrow the result
|
|
127
|
+
* before use.
|
|
128
|
+
*
|
|
129
|
+
* @param name - service identifier
|
|
130
|
+
* @returns the service instance typed as `T`, or `null`
|
|
131
|
+
*/
|
|
132
|
+
get(name) {
|
|
133
|
+
if (this.services && name in this.services) return this.services[name];
|
|
134
|
+
return null;
|
|
135
|
+
}
|
|
136
|
+
/**
|
|
137
|
+
* Unregister a service and cascade the removal into every child scope.
|
|
138
|
+
*
|
|
139
|
+
* @param name - service identifier
|
|
140
|
+
* @returns `true` when a service was actually removed, `false` otherwise
|
|
141
|
+
*/
|
|
142
|
+
remove(name) {
|
|
143
|
+
if (!this.services) return false;
|
|
144
|
+
if (name in this.services) {
|
|
145
|
+
delete this.services[name];
|
|
146
|
+
if (name in this.protoService.prototype) delete this.protoService.prototype[name];
|
|
147
|
+
if (this.scopes) for (const bucket of this.scopes.values()) for (const scope of bucket.values()) scope.remove(name);
|
|
148
|
+
return true;
|
|
149
|
+
}
|
|
150
|
+
return false;
|
|
151
|
+
}
|
|
152
|
+
/** Whether a service is registered under `name`. */
|
|
153
|
+
has(name) {
|
|
154
|
+
return this.services != null && name in this.services;
|
|
155
|
+
}
|
|
156
|
+
/** All service names currently registered on this container. */
|
|
157
|
+
keys() {
|
|
158
|
+
return Object.keys(this.services ?? {});
|
|
159
|
+
}
|
|
160
|
+
/** All `[name, service]` pairs currently registered on this container. */
|
|
161
|
+
entries() {
|
|
162
|
+
return Object.entries(this.services ?? {});
|
|
163
|
+
}
|
|
164
|
+
/**
|
|
165
|
+
* Declare a scope. Scopes are short-lived containers (typically created
|
|
166
|
+
* per HTTP/WS request) that inherit services from this container but
|
|
167
|
+
* store their own per-request services and parameters. Must be called
|
|
168
|
+
* once before {@link enterScope} can produce instances.
|
|
169
|
+
*
|
|
170
|
+
* @param name - scope identifier (e.g. `"request"`)
|
|
171
|
+
* @returns the underlying scope bucket (rarely used by callers)
|
|
172
|
+
*/
|
|
173
|
+
addScope(name) {
|
|
174
|
+
if (this.scopes === null) this.scopes = /* @__PURE__ */ new Map();
|
|
175
|
+
let bucket = this.scopes.get(name);
|
|
176
|
+
if (!bucket) {
|
|
177
|
+
bucket = /* @__PURE__ */ new Map();
|
|
178
|
+
this.scopes.set(name, bucket);
|
|
179
|
+
}
|
|
180
|
+
return bucket;
|
|
181
|
+
}
|
|
182
|
+
/**
|
|
183
|
+
* Open a new instance of the named scope. The returned {@link Scope}
|
|
184
|
+
* inherits services from this container but tracks its own services and
|
|
185
|
+
* parameters in isolation.
|
|
186
|
+
*
|
|
187
|
+
* @param name - scope name previously declared via {@link addScope}
|
|
188
|
+
* @returns a fresh `Scope` instance with a unique `id`
|
|
189
|
+
* @throws Error when the scope has not been declared
|
|
190
|
+
*/
|
|
191
|
+
enterScope(name) {
|
|
192
|
+
const bucket = this.scopes?.get(name);
|
|
193
|
+
if (!bucket) throw new Error(`Scope "${name}" not declared. Call addScope("${name}") first.`);
|
|
194
|
+
const sc = new Scope(name, this, this.protoService, this.protoParameters);
|
|
195
|
+
bucket.set(sc.id, sc);
|
|
196
|
+
return sc;
|
|
197
|
+
}
|
|
198
|
+
/**
|
|
199
|
+
* Close a scope instance and release its services/parameters. Always
|
|
200
|
+
* called when the unit of work that opened the scope finishes (request
|
|
201
|
+
* end, WS close).
|
|
202
|
+
*
|
|
203
|
+
* @param scope - the scope instance returned by {@link enterScope}
|
|
204
|
+
*/
|
|
205
|
+
leaveScope(scope) {
|
|
206
|
+
const bucket = this.scopes?.get(scope.name);
|
|
207
|
+
if (bucket) {
|
|
208
|
+
const sc = bucket.get(scope.id);
|
|
209
|
+
if (sc) {
|
|
210
|
+
sc.clean();
|
|
211
|
+
bucket.delete(scope.id);
|
|
212
|
+
}
|
|
213
|
+
}
|
|
214
|
+
}
|
|
215
|
+
/**
|
|
216
|
+
* Nombre d'instances VIVANTES du scope nommé — introspection bon marché
|
|
217
|
+
* (sondes de fuite, Studio, diagnostics) sans exposer la structure interne.
|
|
218
|
+
*
|
|
219
|
+
* @param name - scope identifier (e.g. `"request"`)
|
|
220
|
+
* @returns le nombre de scopes ouverts, `0` si le scope est inconnu
|
|
221
|
+
*/
|
|
222
|
+
scopeCount(name) {
|
|
223
|
+
return this.scopes?.get(name)?.size ?? 0;
|
|
224
|
+
}
|
|
225
|
+
/**
|
|
226
|
+
* Close every open instance of the named scope and forget it. After this
|
|
227
|
+
* call, {@link enterScope}(`name`) will throw until {@link addScope} is
|
|
228
|
+
* called again.
|
|
229
|
+
*
|
|
230
|
+
* @param name - scope identifier
|
|
231
|
+
*/
|
|
232
|
+
removeScope(name) {
|
|
233
|
+
const bucket = this.scopes?.get(name);
|
|
234
|
+
if (bucket) {
|
|
235
|
+
for (const scope of bucket.values()) this.leaveScope(scope);
|
|
236
|
+
this.scopes?.delete(name);
|
|
237
|
+
}
|
|
238
|
+
}
|
|
239
|
+
removeAllScopes() {
|
|
240
|
+
if (!this.scopes) return;
|
|
241
|
+
for (const name of this.scopes.keys()) this.removeScope(name);
|
|
242
|
+
this.scopes = null;
|
|
243
|
+
}
|
|
244
|
+
/**
|
|
245
|
+
* Set a value in the parameter tree using a dotted path. Intermediate
|
|
246
|
+
* objects are created on demand (`a.b.c = 1` creates `a` and `b` if they
|
|
247
|
+
* are missing).
|
|
248
|
+
*
|
|
249
|
+
* @param name - dotted path (e.g. `"kernel.environment"`)
|
|
250
|
+
* @param ele - value to assign (must not be `undefined`)
|
|
251
|
+
* @returns the parameter subtree containing the assigned value, or `null`
|
|
252
|
+
* if the container has been cleaned
|
|
253
|
+
* @throws Error when `name` is not a string or `ele` is `undefined`
|
|
254
|
+
*/
|
|
255
|
+
setParameters(name, ele) {
|
|
256
|
+
if (typeof name !== "string") throw new Error("setParameters : container parameter name must be a string");
|
|
257
|
+
if (ele === void 0) throw new Error(`setParameters : ${name} container parameter value must be defined`);
|
|
258
|
+
if (!this.parameters) return null;
|
|
259
|
+
return parseParameterString.call(this.parameters, name, ele);
|
|
260
|
+
}
|
|
261
|
+
/**
|
|
262
|
+
* Read a value (or subtree) from the parameter tree.
|
|
263
|
+
*
|
|
264
|
+
* @param name - dotted path (e.g. `"kernel.environment"`)
|
|
265
|
+
* @returns the value, the subtree, or `null` if absent
|
|
266
|
+
* @throws Error when `name` is empty
|
|
267
|
+
*/
|
|
268
|
+
getParameters(name) {
|
|
269
|
+
if (!name) throw new Error(`getParameters : invalid name "${name}"`);
|
|
270
|
+
if (!this.parameters) return null;
|
|
271
|
+
return parseParameterString.call(this.parameters, name);
|
|
272
|
+
}
|
|
273
|
+
/**
|
|
274
|
+
* Tear the container down: close every scope, drop services and
|
|
275
|
+
* parameters. After `clean()`, any `get`/`set`/`enterScope` call on this
|
|
276
|
+
* instance throws or returns `null`. Called by the kernel during
|
|
277
|
+
* graceful shutdown.
|
|
278
|
+
*/
|
|
279
|
+
clean() {
|
|
280
|
+
this.removeAllScopes();
|
|
281
|
+
this.services = null;
|
|
282
|
+
this.parameters = null;
|
|
283
|
+
}
|
|
284
|
+
/**
|
|
285
|
+
* Clean the container and rebuild fresh prototype chains, leaving it
|
|
286
|
+
* ready to register services again. Used by hot-reload paths in tests
|
|
287
|
+
* and dev mode; production code rarely calls this directly.
|
|
288
|
+
*/
|
|
289
|
+
reset() {
|
|
290
|
+
this.clean();
|
|
291
|
+
this.protoService = function() {};
|
|
292
|
+
this.protoParameters = function() {};
|
|
293
|
+
this.services = Object.create(this.protoService.prototype);
|
|
294
|
+
this.parameters = Object.create(this.protoParameters.prototype);
|
|
295
|
+
}
|
|
296
|
+
};
|
|
297
|
+
/**
|
|
298
|
+
* Short-lived child container tied to a parent {@link Container}. Used by
|
|
299
|
+
* the HTTP/WS kernel to isolate per-request services (e.g. request-bound
|
|
300
|
+
* sessions, scoped resolvers) without polluting the global container.
|
|
301
|
+
*
|
|
302
|
+
* Services and parameters defined on a `Scope` shadow the parent's — reads
|
|
303
|
+
* fall back to the parent transparently when nothing is found locally.
|
|
304
|
+
*/
|
|
305
|
+
var Scope = class extends Container {
|
|
306
|
+
name;
|
|
307
|
+
parent;
|
|
308
|
+
constructor(name, parent, parentProtoService, parentProtoParameters) {
|
|
309
|
+
super(void 0, false, parentProtoService, parentProtoParameters);
|
|
310
|
+
this.name = name;
|
|
311
|
+
this.parent = parent;
|
|
312
|
+
}
|
|
313
|
+
/**
|
|
314
|
+
* Register a per-request service — own property ONLY (shadowing). Depuis
|
|
315
|
+
* l'adoption des protos parents, l'écriture prototype de
|
|
316
|
+
* {@link Container.set} toucherait le proto PARTAGÉ du parent : un service
|
|
317
|
+
* per-request (controller, context) deviendrait visible de TOUTES les
|
|
318
|
+
* requêtes concurrentes. (L'ancien chemin écrivait sur un proto local mort
|
|
319
|
+
* — travail perdu à chaque set.)
|
|
320
|
+
*/
|
|
321
|
+
set(name, object) {
|
|
322
|
+
if (this.services && name) this.services[name] = object;
|
|
323
|
+
else throw new Error("Container bad argument name");
|
|
324
|
+
}
|
|
325
|
+
/**
|
|
326
|
+
* Unregister a service registered ON THIS SCOPE (own property only). Les
|
|
327
|
+
* services hérités du parent ne sont jamais touchés — même raison que
|
|
328
|
+
* {@link Scope.set} : le proto est partagé depuis l'adoption.
|
|
329
|
+
*/
|
|
330
|
+
remove(name) {
|
|
331
|
+
if (this.services && Object.prototype.hasOwnProperty.call(this.services, name)) {
|
|
332
|
+
delete this.services[name];
|
|
333
|
+
return true;
|
|
334
|
+
}
|
|
335
|
+
return false;
|
|
336
|
+
}
|
|
337
|
+
/**
|
|
338
|
+
* Read a parameter from the scope, falling back to the parent container.
|
|
339
|
+
* When both sides hold plain objects, the result is a merged view (deep
|
|
340
|
+
* by default) so a scope can override a few keys without losing the rest.
|
|
341
|
+
*
|
|
342
|
+
* @param name - dotted path
|
|
343
|
+
* @param merge - when `true` (default), merge scope and parent objects;
|
|
344
|
+
* when `false`, scope value wins outright if present
|
|
345
|
+
* @param deep - deep vs. shallow merge (only when `merge` is `true`)
|
|
346
|
+
*/
|
|
347
|
+
getParameters(name, merge = true, deep = true) {
|
|
348
|
+
const res = parseParameterString.call(this.parameters ?? {}, name);
|
|
349
|
+
const obj = this.parent?.getParameters(name);
|
|
350
|
+
if (ISDefined(res)) {
|
|
351
|
+
if (merge && isPlainObject(obj) && isPlainObject(res)) return extend(deep, obj, res);
|
|
352
|
+
return res;
|
|
353
|
+
}
|
|
354
|
+
return obj ?? null;
|
|
355
|
+
}
|
|
356
|
+
/**
|
|
357
|
+
* Break the parent link and clean the scope. Called by
|
|
358
|
+
* {@link Container.leaveScope} when the unit of work that owns the scope
|
|
359
|
+
* finishes.
|
|
360
|
+
*/
|
|
361
|
+
clean() {
|
|
362
|
+
this.parent = null;
|
|
363
|
+
return super.clean();
|
|
364
|
+
}
|
|
365
|
+
};
|
|
366
|
+
//#endregion
|
|
367
|
+
export { Scope, Container as default };
|
|
@@ -0,0 +1,309 @@
|
|
|
1
|
+
import { Nodefony } from "./Nodefony.js";
|
|
2
|
+
import clc from "./colors.js";
|
|
3
|
+
import { typeOf } from "./Tools.js";
|
|
4
|
+
import { inspect } from "node:util";
|
|
5
|
+
import assert from "node:assert";
|
|
6
|
+
import { STATUS_CODES } from "node:http";
|
|
7
|
+
//#region src/Error.ts
|
|
8
|
+
Object.defineProperty(Error.prototype, "toJSON", {
|
|
9
|
+
configurable: true,
|
|
10
|
+
writable: true,
|
|
11
|
+
value() {
|
|
12
|
+
const alt = {};
|
|
13
|
+
const storeKey = function(key) {
|
|
14
|
+
alt[key] = this[key];
|
|
15
|
+
};
|
|
16
|
+
Object.getOwnPropertyNames(this).forEach(storeKey, this);
|
|
17
|
+
return alt;
|
|
18
|
+
}
|
|
19
|
+
});
|
|
20
|
+
const exclude = {
|
|
21
|
+
context: true,
|
|
22
|
+
resolver: true,
|
|
23
|
+
container: true,
|
|
24
|
+
secure: true
|
|
25
|
+
};
|
|
26
|
+
const jsonNodefony = {
|
|
27
|
+
configurable: true,
|
|
28
|
+
writable: true,
|
|
29
|
+
value() {
|
|
30
|
+
const alt = {};
|
|
31
|
+
const storeKey = function(key) {
|
|
32
|
+
if (key in exclude) return;
|
|
33
|
+
alt[key] = this[key];
|
|
34
|
+
};
|
|
35
|
+
Object.getOwnPropertyNames(this).forEach(storeKey, this);
|
|
36
|
+
return alt;
|
|
37
|
+
}
|
|
38
|
+
};
|
|
39
|
+
let _errorAdapters = null;
|
|
40
|
+
/**
|
|
41
|
+
* Enregistre un adapter d'erreurs tiers sous une clé (ex. le nom du driver ORM
|
|
42
|
+
* `"mongoose"`). Inversion de dépendance : le module s'enregistre lui-même à son
|
|
43
|
+
* boot, le core ne connaît aucune bibliothèque. `null` retire l'adapter (teardown,
|
|
44
|
+
* tests).
|
|
45
|
+
*
|
|
46
|
+
* @param name - clé unique de l'adapter (nom du module/driver).
|
|
47
|
+
* @param adapter - implémentation `{ isError, errorToString }`, ou `null` pour retirer.
|
|
48
|
+
*/
|
|
49
|
+
function registerErrorAdapter(name, adapter) {
|
|
50
|
+
if (adapter === null) {
|
|
51
|
+
_errorAdapters?.delete(name);
|
|
52
|
+
return;
|
|
53
|
+
}
|
|
54
|
+
if (_errorAdapters === null) _errorAdapters = /* @__PURE__ */ new Map();
|
|
55
|
+
_errorAdapters.set(name, adapter);
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* Premier adapter dont relève l'erreur, ou `null`. Gratuit tant qu'aucun adapter
|
|
59
|
+
* n'est enregistré (registre `null`). Un adapter qui throw est ignoré — il ne doit
|
|
60
|
+
* jamais casser la classification d'une erreur.
|
|
61
|
+
*/
|
|
62
|
+
const findErrorAdapter = function(error) {
|
|
63
|
+
if (_errorAdapters === null) return null;
|
|
64
|
+
for (const adapter of _errorAdapters.values()) try {
|
|
65
|
+
if (adapter.isError(error)) return adapter;
|
|
66
|
+
} catch {}
|
|
67
|
+
return null;
|
|
68
|
+
};
|
|
69
|
+
/**
|
|
70
|
+
* Erreur Nodefony — wrapper riche autour de `Error` natif qui ajoute :
|
|
71
|
+
* - Un `code` numérique (HTTP status ou code custom — pas un string).
|
|
72
|
+
* - Un `errorType` détecté automatiquement (TypeError, SystemError,
|
|
73
|
+
* AssertionError, OrmError, ClientError, etc.).
|
|
74
|
+
* - Une sérialisation `toJSON()` filtrée qui exclut `context`, `resolver`,
|
|
75
|
+
* `container`, `secure` (références circulaires).
|
|
76
|
+
* - Un `toString()` coloré (cli-color) qui adapte le format selon
|
|
77
|
+
* l'environnement (production = message court ; dev = champs détaillés).
|
|
78
|
+
*
|
|
79
|
+
* @example Wrap d'une erreur existante
|
|
80
|
+
* ```ts
|
|
81
|
+
* try { ... } catch (e) { throw new nodefonyError(e, 500); }
|
|
82
|
+
* ```
|
|
83
|
+
*
|
|
84
|
+
* @example Erreur custom
|
|
85
|
+
* ```ts
|
|
86
|
+
* throw new nodefonyError("user not found", 404);
|
|
87
|
+
* ```
|
|
88
|
+
*
|
|
89
|
+
* @remarks Les erreurs de bibliothèques tierces (drivers ORM…) sont reconnues
|
|
90
|
+
* et formatées via un adapter injecté par `registerErrorAdapter` — le core
|
|
91
|
+
* reste découplé des modules. Sans adapter enregistré, l'erreur retombe sur la
|
|
92
|
+
* classification générique.
|
|
93
|
+
*/
|
|
94
|
+
var nodefonyError = class nodefonyError extends Error {
|
|
95
|
+
code;
|
|
96
|
+
error;
|
|
97
|
+
errorType;
|
|
98
|
+
/** Adapter d'erreur tiers résolu (erreur ORM…) quand `errorType === "OrmError"`. */
|
|
99
|
+
#errorAdapter = null;
|
|
100
|
+
/**
|
|
101
|
+
* @param message - string ou `Error` natif à wrapper. Si Error, ses champs
|
|
102
|
+
* (message, code, stack) sont copiés ; le type est détecté.
|
|
103
|
+
* @param code - statut HTTP ou code custom (utilisé par HttpError pour le
|
|
104
|
+
* status code de la réponse).
|
|
105
|
+
*/
|
|
106
|
+
constructor(message, code) {
|
|
107
|
+
if (message instanceof Error) super(message.message);
|
|
108
|
+
else super(message);
|
|
109
|
+
this.name = this.constructor.name;
|
|
110
|
+
this.code = null;
|
|
111
|
+
this.errorType = this.name;
|
|
112
|
+
if (code) this.code = code;
|
|
113
|
+
if (message) this.parseMessage(message);
|
|
114
|
+
}
|
|
115
|
+
/**
|
|
116
|
+
* Type guard — vérifie qu'une valeur est une instance d'`Error`.
|
|
117
|
+
*
|
|
118
|
+
* Override de la méthode native ajoutée par TS 6 ; conserve la signature
|
|
119
|
+
* pour rester compatible avec les consommateurs qui utilisent `Error.isError`.
|
|
120
|
+
*
|
|
121
|
+
* @param error - valeur inconnue à tester.
|
|
122
|
+
* @returns `true` si `error instanceof Error`.
|
|
123
|
+
*/
|
|
124
|
+
static isError(error) {
|
|
125
|
+
return error instanceof Error;
|
|
126
|
+
}
|
|
127
|
+
/**
|
|
128
|
+
* Détecte la catégorie d'une erreur (TypeError, SystemError, OrmError, etc.).
|
|
129
|
+
*
|
|
130
|
+
* Utilisée par `getType()` pour peupler `errorType` et copier les champs
|
|
131
|
+
* spécifiques au type (errno, syscall, bytesParsed, etc.).
|
|
132
|
+
*
|
|
133
|
+
* @param error - instance d'`Error` à classifier.
|
|
134
|
+
* @returns nom de la catégorie ou `false` si pas une `Error`.
|
|
135
|
+
*/
|
|
136
|
+
static detectType(error) {
|
|
137
|
+
switch (true) {
|
|
138
|
+
case error instanceof ReferenceError: return "ReferenceError";
|
|
139
|
+
case error instanceof TypeError: return "TypeError";
|
|
140
|
+
case error instanceof SyntaxError: return "SyntaxError";
|
|
141
|
+
case error instanceof assert.AssertionError: return "AssertionError";
|
|
142
|
+
case findErrorAdapter(error) !== null: return "OrmError";
|
|
143
|
+
case error instanceof Error:
|
|
144
|
+
if (error.errno) return "SystemError";
|
|
145
|
+
if (error.bytesParsed) return "ClientError";
|
|
146
|
+
try {
|
|
147
|
+
return error.constructor.name || "Error";
|
|
148
|
+
} catch (e) {
|
|
149
|
+
return "Error";
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
return false;
|
|
153
|
+
}
|
|
154
|
+
/**
|
|
155
|
+
* Détecte le type d'erreur et copie ses champs spécifiques sur `this`.
|
|
156
|
+
*
|
|
157
|
+
* Côté SystemError → `errno/syscall/address/port` ; AssertionError →
|
|
158
|
+
* `actual/expected/operator` ; ClientError → `bytesParsed/rawPacket`, etc.
|
|
159
|
+
*
|
|
160
|
+
* @param error - erreur source à analyser.
|
|
161
|
+
* @returns nom de la catégorie (jamais `false` — fallback `error.constructor.name` ou `"Error"`).
|
|
162
|
+
*/
|
|
163
|
+
getType(error) {
|
|
164
|
+
const errorType = nodefonyError.detectType(error);
|
|
165
|
+
if (errorType) switch (errorType) {
|
|
166
|
+
case "TypeError":
|
|
167
|
+
case "ReferenceError":
|
|
168
|
+
case "SyntaxError": return errorType;
|
|
169
|
+
case "AssertionError":
|
|
170
|
+
this.actual = error.actual;
|
|
171
|
+
this.expected = error.expected;
|
|
172
|
+
this.operator = error.operator;
|
|
173
|
+
return errorType;
|
|
174
|
+
case "SystemError":
|
|
175
|
+
this.errno = error.errno;
|
|
176
|
+
this.syscall = error.syscall;
|
|
177
|
+
this.address = error.address;
|
|
178
|
+
this.port = error.port;
|
|
179
|
+
this.stack = error.stack;
|
|
180
|
+
return errorType;
|
|
181
|
+
case "ClientError":
|
|
182
|
+
this.bytesParsed = error.bytesParsed;
|
|
183
|
+
this.rawPacket = error.rawPacket;
|
|
184
|
+
return errorType;
|
|
185
|
+
case "OrmError":
|
|
186
|
+
this.#errorAdapter = findErrorAdapter(error);
|
|
187
|
+
return errorType;
|
|
188
|
+
default: return error.constructor.name;
|
|
189
|
+
}
|
|
190
|
+
if (error && error.constructor) return error.constructor.name;
|
|
191
|
+
return "Error";
|
|
192
|
+
}
|
|
193
|
+
/**
|
|
194
|
+
* Sérialise l'erreur en string coloré (cli-color) selon `errorType` et l'environnement.
|
|
195
|
+
*
|
|
196
|
+
* En **production**, retourne un message court (type + message) ; sinon, formatage
|
|
197
|
+
* détaillé multi-lignes. Ajoute la stack si `kernel.debug` est actif.
|
|
198
|
+
*
|
|
199
|
+
* ⚠️ La garde compare à `"production"` **en toutes lettres**. Elle a longtemps
|
|
200
|
+
* comparé à `"prod"` — jamais vraie : `Kernel.setEnv()` réduit toujours
|
|
201
|
+
* l'environnement à `"development" | "production"` (`resolveRuntimeEnv`), même
|
|
202
|
+
* quand l'utilisateur a écrit `prod`. Le format court n'était donc jamais rendu.
|
|
203
|
+
*
|
|
204
|
+
* @returns string formatée prête pour `console.log` ou syslog.
|
|
205
|
+
*/
|
|
206
|
+
toString() {
|
|
207
|
+
let err = "";
|
|
208
|
+
switch (this.errorType) {
|
|
209
|
+
case "Error":
|
|
210
|
+
if (Nodefony.getKernel()?.environment === "production") return err;
|
|
211
|
+
err = `${clc.blue("Name :")} ${this.name}
|
|
212
|
+
${clc.blue("Type :")} ${this.errorType}
|
|
213
|
+
${clc.red("Code :")} ${this.code}
|
|
214
|
+
${clc.red("Message :")} ${this.message}`;
|
|
215
|
+
break;
|
|
216
|
+
case "SystemError":
|
|
217
|
+
if (Nodefony.getKernel()?.environment === "production") return ` ${clc.blue("Type :")} ${this.errorType} ${clc.red(this.message)}`;
|
|
218
|
+
err = `${clc.blue("Name :")} ${this.name}
|
|
219
|
+
${clc.blue("Type :")} ${this.errorType}
|
|
220
|
+
${clc.red("Message :")} ${this.message}
|
|
221
|
+
${clc.red("Ernno :")} ${this.errno}
|
|
222
|
+
${clc.blue("Syscall :")} ${this.syscall}
|
|
223
|
+
${clc.blue("Address :")} ${this.address}
|
|
224
|
+
${clc.blue("Port :")} ${this.port}`;
|
|
225
|
+
break;
|
|
226
|
+
case "AssertionError":
|
|
227
|
+
if (Nodefony.getKernel()?.environment === "production") return ` ${clc.blue("Type :")} ${this.errorType} ${clc.red(this.message)}`;
|
|
228
|
+
err = `${clc.blue("Name :")} ${this.name}
|
|
229
|
+
${clc.blue("Type :")} ${this.errorType}
|
|
230
|
+
${clc.red("Code :")} ${this.code}
|
|
231
|
+
${clc.red("Message :")} ${this.message}
|
|
232
|
+
${clc.white("Actual :")} ${this.actual}
|
|
233
|
+
${clc.white("Expected :")} ${this.expected}
|
|
234
|
+
${clc.white("Operator :")} ${this.operator}`;
|
|
235
|
+
break;
|
|
236
|
+
case "ClientError":
|
|
237
|
+
if (Nodefony.getKernel()?.environment === "production") return ` ${clc.blue("Type :")} ${this.errorType} ${clc.red(this.message)}`;
|
|
238
|
+
err = `${clc.blue("Name :")} ${this.name}
|
|
239
|
+
${clc.blue("Type :")} ${this.errorType}
|
|
240
|
+
${clc.red("Code :")} ${this.code}
|
|
241
|
+
${clc.red("Message :")} ${this.message}
|
|
242
|
+
${clc.white("BytesParsed :")} ${this.bytesParsed}
|
|
243
|
+
${clc.white("RawPacket :")} ${this.rawPacket}`;
|
|
244
|
+
break;
|
|
245
|
+
case "OrmError": return this.#errorAdapter?.errorToString(this) ?? this.message;
|
|
246
|
+
default:
|
|
247
|
+
if (Nodefony.getKernel()?.environment === "production") return ` ${clc.blue("Type :")} ${this.errorType} ${clc.red(this.message)}`;
|
|
248
|
+
err = `${clc.blue("Name :")} ${this.name}
|
|
249
|
+
${clc.blue("Type :")} ${this.errorType}
|
|
250
|
+
${clc.red("Message :")} ${this.message}`;
|
|
251
|
+
}
|
|
252
|
+
if (Nodefony.getKernel()?.debug) err += `
|
|
253
|
+
${clc.green("Stack :")} ${this.stack}`;
|
|
254
|
+
return err;
|
|
255
|
+
}
|
|
256
|
+
/**
|
|
257
|
+
* Parse l'argument du constructeur et hydrate les champs (`message`, `code`, `stack`).
|
|
258
|
+
*
|
|
259
|
+
* Trois cas : `Error` natif (copie message/code/stack), `object` (extrait
|
|
260
|
+
* `status/code/message` + capture stack), autre (fallback `getDefaultMessage`).
|
|
261
|
+
*
|
|
262
|
+
* @param message - string, `Error`, ou objet quelconque à interpréter.
|
|
263
|
+
*/
|
|
264
|
+
parseMessage(message) {
|
|
265
|
+
this.errorType = this.getType(message);
|
|
266
|
+
switch (typeOf(message)) {
|
|
267
|
+
case "Error":
|
|
268
|
+
this.message = message.message;
|
|
269
|
+
if (message.code) this.code = message.code;
|
|
270
|
+
this.stack = message.stack;
|
|
271
|
+
break;
|
|
272
|
+
case "object":
|
|
273
|
+
Error.captureStackTrace(message, this.constructor);
|
|
274
|
+
if (message.status) this.code = message.status;
|
|
275
|
+
if (message.code) this.code = message.code;
|
|
276
|
+
try {
|
|
277
|
+
if (message.message) this.message = message.message;
|
|
278
|
+
else this.message = inspect(message, { depth: 0 });
|
|
279
|
+
} catch (e) {
|
|
280
|
+
this.error = e;
|
|
281
|
+
}
|
|
282
|
+
break;
|
|
283
|
+
default: this.getDefaultMessage();
|
|
284
|
+
}
|
|
285
|
+
}
|
|
286
|
+
/**
|
|
287
|
+
* Renseigne `this.message` à partir du `code` HTTP via `STATUS_CODES`.
|
|
288
|
+
*
|
|
289
|
+
* Fallback quand aucun message n'est fourni mais qu'un code est connu —
|
|
290
|
+
* ex : `new nodefonyError(undefined, 404)` → message `"Not Found"`.
|
|
291
|
+
*/
|
|
292
|
+
getDefaultMessage() {
|
|
293
|
+
if (!this.message && this.code) {
|
|
294
|
+
const str = this.code.toString();
|
|
295
|
+
if (str in STATUS_CODES) this.message = STATUS_CODES[str] || "";
|
|
296
|
+
}
|
|
297
|
+
}
|
|
298
|
+
/**
|
|
299
|
+
* Affiche l'erreur formatée sur `console.log` (raccourci de `toString()`).
|
|
300
|
+
*
|
|
301
|
+
* @returns `undefined` — `console.log` ne retourne rien.
|
|
302
|
+
*/
|
|
303
|
+
logger() {
|
|
304
|
+
return console.log(this.toString());
|
|
305
|
+
}
|
|
306
|
+
};
|
|
307
|
+
Object.defineProperty(nodefonyError.prototype, "toJSON", jsonNodefony);
|
|
308
|
+
//#endregion
|
|
309
|
+
export { nodefonyError as default, registerErrorAdapter };
|