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,364 @@
|
|
|
1
|
+
import { collectSources } from "./walk.js";
|
|
2
|
+
import { readFileSync, statSync } from "node:fs";
|
|
3
|
+
import path from "node:path";
|
|
4
|
+
//#region src/kernel/checks/surface.ts
|
|
5
|
+
/**
|
|
6
|
+
* `doctor` — la SURFACE OUVERTE, et les entités écrites pour un autre moteur.
|
|
7
|
+
*
|
|
8
|
+
* Deux angles morts, tous deux lisibles sans démarrer, tous deux silencieux
|
|
9
|
+
* aujourd'hui.
|
|
10
|
+
*
|
|
11
|
+
* **La surface ouverte ne se voit nulle part d'un coup.** Une route porte
|
|
12
|
+
* `@BypassFirewall` ou `@Anonymous`, une zone porte `security: false` — chacun
|
|
13
|
+
* est légitime pris isolément, et personne n'a jamais la liste sous les yeux.
|
|
14
|
+
* C'est ainsi qu'une route de mise au point reste ouverte en production. Le
|
|
15
|
+
* remède n'est donc PAS un verdict : c'est un INVENTAIRE. Un contrôle qui crie
|
|
16
|
+
* sur un geste légitime est un contrôle qu'on apprend à passer outre — seul le
|
|
17
|
+
* cas indéfendable (une zone publique qui couvre tout l'espace) devient un
|
|
18
|
+
* manquement.
|
|
19
|
+
*
|
|
20
|
+
* **Une entité écrite pour le mauvais dialecte est ÉCARTÉE EN SILENCE.** Une
|
|
21
|
+
* entité qui importe `drizzle-orm/pg-core` alors que le connecteur est `sqlite`
|
|
22
|
+
* n'est pas une erreur pour l'outil : il la met de côté et écrit une migration
|
|
23
|
+
* sans elle. La table n'est jamais créée, l'application démarre, la route
|
|
24
|
+
* répond 500 au premier usage, et rien dans le code ne montre la cause.
|
|
25
|
+
*
|
|
26
|
+
* ⚠️ Ce module lit des SOURCES, jamais un `dist/` : le contrôle doit répondre y
|
|
27
|
+
* compris sur une application qui ne compile plus — c'est précisément là qu'on
|
|
28
|
+
* le consulte.
|
|
29
|
+
*/
|
|
30
|
+
/** Un import de table Drizzle : `drizzle-orm/pg-core` et ses frères. */
|
|
31
|
+
const DRIZZLE_CORE_RE = /["']drizzle-orm\/(sqlite|pg|mysql)-core["']/gu;
|
|
32
|
+
/** Le dialecte de Nodefony pour un segment d'import Drizzle. */
|
|
33
|
+
const DIALECT_OF_IMPORT = {
|
|
34
|
+
sqlite: "sqlite",
|
|
35
|
+
pg: "postgres",
|
|
36
|
+
mysql: "mysql"
|
|
37
|
+
};
|
|
38
|
+
/**
|
|
39
|
+
* Le caractère du décorateur, COMPOSÉ et non écrit.
|
|
40
|
+
*
|
|
41
|
+
* 🔴 Un contrôle qui cherche une chaîne la contient forcément, et s'accuse
|
|
42
|
+
* lui-même : au premier essai, ce fichier a inventorié deux « routes ouvertes »
|
|
43
|
+
* dans son propre source, et le rendu les affichait au même rang que les
|
|
44
|
+
* vraies. Composer le motif est le seul remède qui ne demande ni exception
|
|
45
|
+
* arbitraire ni exclusion d'un dossier — la chaîne cherchée n'existe nulle part
|
|
46
|
+
* ici, donc rien à excepter.
|
|
47
|
+
*/
|
|
48
|
+
const AT = "@";
|
|
49
|
+
/** `@BypassFirewall`, avec ou sans parenthèses — c'est un DRAPEAU. */
|
|
50
|
+
const BYPASS_RE = new RegExp(`${AT}BypassFirewall\\b`, "gu");
|
|
51
|
+
/** `@Anonymous` — le même mécanisme, dit autrement. */
|
|
52
|
+
const ANONYMOUS_RE = new RegExp(`${AT}Anonymous\\b`, "gu");
|
|
53
|
+
/** `bypassFirewall: true` posé dans les options d'une route. */
|
|
54
|
+
const BYPASS_OPTION_RE = /\bbypassFirewall\s*:\s*true\b/gu;
|
|
55
|
+
/** La déclaration qui SUIT une ouverture — c'est elle qu'on nomme. */
|
|
56
|
+
const MEMBER_AFTER_RE = /\b(?:async\s+)?([A-Za-z_$][\w$]*)\s*\([^)]{0,200}\)\s*[:{]/u;
|
|
57
|
+
/** Une ouverture posée sur la CLASSE ouvre TOUTES ses routes — on le dit. */
|
|
58
|
+
const CLASS_AFTER_RE = /\bclass\s+([A-Za-z_$][\w$]*)/u;
|
|
59
|
+
/**
|
|
60
|
+
* Ce qui fait d'un fichier un porteur de ROUTES.
|
|
61
|
+
*
|
|
62
|
+
* DEUX formes, et il faut les deux : le décorateur, et l'héritage. Les routes
|
|
63
|
+
* d'un contrôleur du framework se posent programmatiquement, sans décorateur —
|
|
64
|
+
* n'accepter que la première ferait disparaître de l'inventaire cinq
|
|
65
|
+
* contrôleurs d'authentification, tous légitimement ouverts, donc exactement
|
|
66
|
+
* ceux qu'on veut voir listés.
|
|
67
|
+
*/
|
|
68
|
+
const CONTROLLER_RE = new RegExp(`${AT}controller\\b|\\bextends\\s+Controller\\b`, "u");
|
|
69
|
+
/** Le bloc `areas: { … }` du manifeste, et lui seul. */
|
|
70
|
+
const AREAS_BLOCK_RE = /\bareas\s*:\s*\{/u;
|
|
71
|
+
/**
|
|
72
|
+
* Des chemins témoins, choisis pour n'avoir AUCUN préfixe commun utile.
|
|
73
|
+
*
|
|
74
|
+
* Un motif qui les accepte tous accepte n'importe quelle requête.
|
|
75
|
+
*/
|
|
76
|
+
const PROBE_PATHS = [
|
|
77
|
+
"/",
|
|
78
|
+
"/admin",
|
|
79
|
+
"/x/y/z",
|
|
80
|
+
"/nodefony/kernel/api"
|
|
81
|
+
];
|
|
82
|
+
/**
|
|
83
|
+
* Ce motif de zone laisse-t-il passer TOUT l'espace d'URL ?
|
|
84
|
+
*
|
|
85
|
+
* CONSTATÉ, jamais listé : le motif est compilé et éprouvé exactement comme le
|
|
86
|
+
* firewall le fait (`SecuredArea.ts:25` — `new RegExp(pattern, "u")`, non
|
|
87
|
+
* ancré, `test(pathname)`), puis confronté à des chemins sans parenté. Une
|
|
88
|
+
* liste écrite à la main disait le contraire du produit dans les deux sens :
|
|
89
|
+
* elle CONDAMNAIT `^/api`, qui ne couvre que `/api…`, et laissait passer
|
|
90
|
+
* `^/.*`, `.*` et `^`, qui ouvrent réellement tout.
|
|
91
|
+
*
|
|
92
|
+
* @param pattern - le motif tel que le manifeste l'écrit.
|
|
93
|
+
* @returns `true` si aucune route ne peut échapper à cette zone.
|
|
94
|
+
*/
|
|
95
|
+
function coversEverything(pattern) {
|
|
96
|
+
let re;
|
|
97
|
+
try {
|
|
98
|
+
re = new RegExp(pattern, "u");
|
|
99
|
+
} catch {
|
|
100
|
+
return false;
|
|
101
|
+
}
|
|
102
|
+
return PROBE_PATHS.every((rawPath) => re.test(rawPath));
|
|
103
|
+
}
|
|
104
|
+
/**
|
|
105
|
+
* Les commentaires, ôtés AVANT toute analyse.
|
|
106
|
+
*
|
|
107
|
+
* Sans quoi le contrôle mord sur la documentation : un commentaire qui apprend
|
|
108
|
+
* à ne PAS ouvrir une zone cite forcément le contre-exemple, et toute
|
|
109
|
+
* application fraîche commencerait par un avertissement portant sur du texte
|
|
110
|
+
* explicatif. Un contrôle qui accuse sa propre documentation est un contrôle
|
|
111
|
+
* qu'on désactive.
|
|
112
|
+
*/
|
|
113
|
+
function withoutComments(source) {
|
|
114
|
+
return source.replace(/\/\*[\s\S]*?\*\//gu, "").replace(/\/\/[^\n]*/gu, "");
|
|
115
|
+
}
|
|
116
|
+
/**
|
|
117
|
+
* Le contenu d'un bloc d'accolades ÉQUILIBRÉES à partir d'une position.
|
|
118
|
+
*
|
|
119
|
+
* Une expression régulière ne sait pas compter les accolades : un bloc `areas`
|
|
120
|
+
* contenant une zone qui contient ses authentificateurs se ferait couper au
|
|
121
|
+
* premier `}` venu, et la moitié des zones deviendrait invisible — un contrôle
|
|
122
|
+
* de surface qui ne voit qu'une partie de la surface est pire qu'aucun.
|
|
123
|
+
*
|
|
124
|
+
* @param source - le texte à lire.
|
|
125
|
+
* @param open - l'index de l'accolade ouvrante.
|
|
126
|
+
* @returns le contenu entre les accolades, vide si elles ne se referment pas.
|
|
127
|
+
*/
|
|
128
|
+
function balancedBlock(source, open) {
|
|
129
|
+
let depth = 0;
|
|
130
|
+
for (let i = open; i < source.length; i++) {
|
|
131
|
+
const c = source[i];
|
|
132
|
+
if (c === "{") depth++;
|
|
133
|
+
else if (c === "}") {
|
|
134
|
+
depth--;
|
|
135
|
+
if (depth === 0) return source.slice(open + 1, i);
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
return "";
|
|
139
|
+
}
|
|
140
|
+
/**
|
|
141
|
+
* Les zones publiques déclarées dans un manifeste.
|
|
142
|
+
*
|
|
143
|
+
* Fonction PURE sur le TEXTE du manifeste : c'est ce qui la rend éprouvable
|
|
144
|
+
* sans écrire de fichier, et ce qui lui permet de répondre sur un manifeste que
|
|
145
|
+
* TypeScript refuserait de compiler.
|
|
146
|
+
*
|
|
147
|
+
* @param manifest - le contenu de `nodefony.config.ts`.
|
|
148
|
+
* @returns une entrée par zone `security: false`, avec son motif.
|
|
149
|
+
*/
|
|
150
|
+
function publicAreas(manifest) {
|
|
151
|
+
const clean = withoutComments(manifest);
|
|
152
|
+
const at = clean.search(AREAS_BLOCK_RE);
|
|
153
|
+
if (at === -1) return [];
|
|
154
|
+
const block = balancedBlock(clean, clean.indexOf("{", at));
|
|
155
|
+
const zones = [];
|
|
156
|
+
let i = 0;
|
|
157
|
+
while (i < block.length) {
|
|
158
|
+
const brace = block.indexOf("{", i);
|
|
159
|
+
if (brace === -1) break;
|
|
160
|
+
const zone = balancedBlock(block, brace);
|
|
161
|
+
i = brace + zone.length + 2;
|
|
162
|
+
if (!/\bsecurity\s*:\s*false\b/u.test(zone)) continue;
|
|
163
|
+
const pattern = /\bpattern\s*:\s*["'`]([^"'`\n]+)["'`]/u.exec(zone)?.[1];
|
|
164
|
+
zones.push({ pattern: pattern ?? "(motif non littéral)" });
|
|
165
|
+
}
|
|
166
|
+
return zones;
|
|
167
|
+
}
|
|
168
|
+
/**
|
|
169
|
+
* Le dialecte du connecteur, tel qu'on peut le déterminer SANS démarrer.
|
|
170
|
+
*
|
|
171
|
+
* Trois sources, dans l'ordre de précédence du produit : l'infrastructure
|
|
172
|
+
* déclarée gagne (un hébergeur pose l'URL), puis ce que le manifeste écrit,
|
|
173
|
+
* puis le défaut du module. La provenance est RENDUE avec la valeur : un
|
|
174
|
+
* dialecte affirmé sans dire d'où il vient ne se contredit pas.
|
|
175
|
+
*
|
|
176
|
+
* @param manifest - le contenu de `nodefony.config.ts`.
|
|
177
|
+
* @param env - l'environnement dans lequel le diagnostic tourne.
|
|
178
|
+
* @returns le dialecte et sa provenance, `null` si rien ne le dit.
|
|
179
|
+
*/
|
|
180
|
+
function connectorDialect(manifest, env) {
|
|
181
|
+
const from = env.NF_DATABASE_URL ? "NF_DATABASE_URL" : "DATABASE_URL";
|
|
182
|
+
const url = env.NF_DATABASE_URL || env.DATABASE_URL;
|
|
183
|
+
if (url) {
|
|
184
|
+
const scheme = /^([a-z0-9+]+):/iu.exec(url)?.[1]?.toLowerCase() ?? "";
|
|
185
|
+
if (scheme.startsWith("postgres")) return {
|
|
186
|
+
dialect: "postgres",
|
|
187
|
+
from
|
|
188
|
+
};
|
|
189
|
+
if (scheme.startsWith("mysql")) return {
|
|
190
|
+
dialect: "mysql",
|
|
191
|
+
from
|
|
192
|
+
};
|
|
193
|
+
if (scheme.startsWith("sqlite") || scheme === "file") return {
|
|
194
|
+
dialect: "sqlite",
|
|
195
|
+
from
|
|
196
|
+
};
|
|
197
|
+
}
|
|
198
|
+
const written = /\bdialect\s*:\s*["'`](sqlite|postgres|mysql)["'`]/u.exec(withoutComments(manifest))?.[1];
|
|
199
|
+
if (written) return {
|
|
200
|
+
dialect: written,
|
|
201
|
+
from: "nodefony.config.ts"
|
|
202
|
+
};
|
|
203
|
+
return {
|
|
204
|
+
dialect: "sqlite",
|
|
205
|
+
from: "défaut du connecteur"
|
|
206
|
+
};
|
|
207
|
+
}
|
|
208
|
+
/** Extensions dans lesquelles une déclaration peut vivre. */
|
|
209
|
+
const SOURCE_EXT = /* @__PURE__ */ new Set([
|
|
210
|
+
".ts",
|
|
211
|
+
".mts",
|
|
212
|
+
".cts"
|
|
213
|
+
]);
|
|
214
|
+
/**
|
|
215
|
+
* Le dossier où les entités sont CHERCHÉES, tel que le producteur le définit.
|
|
216
|
+
*
|
|
217
|
+
* `nodefony/entity/**`, et rien d'autre (`appSchema.ts:71`). Élargir au reste
|
|
218
|
+
* du dépôt ferait accuser ce qui n'est pas une entité : l'adaptateur ORM
|
|
219
|
+
* lui-même importe les trois dialectes, et c'est son travail.
|
|
220
|
+
*/
|
|
221
|
+
const ENTITY_DIR = `${path.sep}nodefony${path.sep}entity${path.sep}`;
|
|
222
|
+
/** Les sources d'une cible, sans jamais entrer dans un `dist/`. */
|
|
223
|
+
function sources(root) {
|
|
224
|
+
return collectSources(root, {
|
|
225
|
+
extensions: [...SOURCE_EXT],
|
|
226
|
+
maxDepth: 8
|
|
227
|
+
});
|
|
228
|
+
}
|
|
229
|
+
/**
|
|
230
|
+
* Le nom déclaré juste après une ouverture.
|
|
231
|
+
*
|
|
232
|
+
* Une ouverture posée sur la CLASSE ne vaut pas pour une méthode : elle ouvre
|
|
233
|
+
* tout le contrôleur, et l'afficher comme une route unique ferait sous-estimer
|
|
234
|
+
* la surface d'un facteur égal au nombre de ses routes.
|
|
235
|
+
*/
|
|
236
|
+
function openingName(source, at) {
|
|
237
|
+
const after = source.slice(at, at + 400);
|
|
238
|
+
const method = MEMBER_AFTER_RE.exec(after)?.[1];
|
|
239
|
+
const klass = CLASS_AFTER_RE.exec(after)?.[1];
|
|
240
|
+
const iMethod = method ? after.indexOf(method) : Infinity;
|
|
241
|
+
const iClass = klass ? after.indexOf(klass) : Infinity;
|
|
242
|
+
if (klass && iClass < iMethod) return `${klass} (toutes ses routes)`;
|
|
243
|
+
return method ?? "(déclaration non nommée)";
|
|
244
|
+
}
|
|
245
|
+
/** Relève une famille d'ouvertures dans un fichier. */
|
|
246
|
+
function collectOpenings(source, file, re, kind, out) {
|
|
247
|
+
re.lastIndex = 0;
|
|
248
|
+
let m;
|
|
249
|
+
while ((m = re.exec(source)) !== null) {
|
|
250
|
+
const what = kind === "bypass-option" ? "" : openingName(source, m.index);
|
|
251
|
+
out.push({
|
|
252
|
+
kind,
|
|
253
|
+
what,
|
|
254
|
+
file
|
|
255
|
+
});
|
|
256
|
+
}
|
|
257
|
+
}
|
|
258
|
+
/**
|
|
259
|
+
* Réécrit un chemin en séparateurs `/`, quelle que soit sa grammaire d'origine.
|
|
260
|
+
*
|
|
261
|
+
* 🔴 **Axiome 2 : normaliser AVANT de filtrer ou comparer.** Une exception de
|
|
262
|
+
* dialecte est un chemin qui VOYAGE — elle vient de la configuration du projet,
|
|
263
|
+
* écrite une fois et lue sur les trois systèmes, donc en `/`. Le chemin auquel
|
|
264
|
+
* on la compare sort de `path.relative` : sous Windows il porte des `\`. Le
|
|
265
|
+
* filtre ne mordait donc jamais là-bas, et une divergence pourtant DÉCLARÉE
|
|
266
|
+
* par le projet était accusée — forge Windows rouge, même passe verte ailleurs.
|
|
267
|
+
*
|
|
268
|
+
* Les DEUX séparateurs sont traités, pas seulement celui du poste : rien ne dit
|
|
269
|
+
* que l'exception n'a pas été écrite avec la grammaire de la machine où elle a
|
|
270
|
+
* été ajoutée.
|
|
271
|
+
*
|
|
272
|
+
* @param rawPath - le chemin à normaliser.
|
|
273
|
+
* @param sep - la grammaire à appliquer ; injectée pour que la règle
|
|
274
|
+
* s'éprouve avec `path.win32.sep` depuis n'importe quel système — sans elle,
|
|
275
|
+
* le cas Windows ne serait vérifiable que sous Windows.
|
|
276
|
+
* @returns le même chemin, en `/`.
|
|
277
|
+
*/
|
|
278
|
+
function toPortablePath(rawPath, sep = path.sep) {
|
|
279
|
+
return rawPath.split(sep).join("/").split("\\").join("/");
|
|
280
|
+
}
|
|
281
|
+
/**
|
|
282
|
+
* Relève la surface ouverte et les entités hors dialecte.
|
|
283
|
+
*
|
|
284
|
+
* @param options - cibles, racine du projet, environnement, exceptions.
|
|
285
|
+
* @returns l'inventaire, les manquements, et ce qui a été parcouru.
|
|
286
|
+
*/
|
|
287
|
+
function checkSurface(options) {
|
|
288
|
+
const { roots, cwd, projectRoot, env } = options;
|
|
289
|
+
const exceptions = (options.dialectExceptions ?? []).map((e) => toPortablePath(e));
|
|
290
|
+
const findings = [];
|
|
291
|
+
const openings = [];
|
|
292
|
+
let scanned = 0;
|
|
293
|
+
let entitiesScanned = 0;
|
|
294
|
+
const read = (file) => {
|
|
295
|
+
try {
|
|
296
|
+
return readFileSync(file, "utf8");
|
|
297
|
+
} catch {
|
|
298
|
+
return "";
|
|
299
|
+
}
|
|
300
|
+
};
|
|
301
|
+
const manifestPath = projectRoot ? path.join(projectRoot, "nodefony.config.ts") : "";
|
|
302
|
+
const manifest = manifestPath ? read(manifestPath) : "";
|
|
303
|
+
for (const zone of publicAreas(manifest)) {
|
|
304
|
+
openings.push({
|
|
305
|
+
kind: "public-area",
|
|
306
|
+
what: zone.pattern,
|
|
307
|
+
file: path.relative(cwd, manifestPath)
|
|
308
|
+
});
|
|
309
|
+
if (!coversEverything(zone.pattern)) continue;
|
|
310
|
+
findings.push({
|
|
311
|
+
kind: "public-area-covers-all",
|
|
312
|
+
file: path.relative(cwd, manifestPath),
|
|
313
|
+
message: `la zone "${zone.pattern}" est publique (security: false) et couvre TOUT l'espace : aucune route de l'application n'est protégée, et une route ajoutée demain naîtra publique sans qu'aucun test ne le voie`
|
|
314
|
+
});
|
|
315
|
+
}
|
|
316
|
+
const { dialect, from } = connectorDialect(manifest, env);
|
|
317
|
+
const seen = /* @__PURE__ */ new Set();
|
|
318
|
+
for (const root of roots) {
|
|
319
|
+
if (!statSync(root, { throwIfNoEntry: false })) continue;
|
|
320
|
+
for (const file of sources(root)) {
|
|
321
|
+
if (seen.has(file)) continue;
|
|
322
|
+
seen.add(file);
|
|
323
|
+
const raw = read(file);
|
|
324
|
+
if (!raw) continue;
|
|
325
|
+
scanned++;
|
|
326
|
+
const relative = path.relative(cwd, file);
|
|
327
|
+
const clean = withoutComments(raw);
|
|
328
|
+
if (CONTROLLER_RE.test(clean)) {
|
|
329
|
+
collectOpenings(clean, relative, BYPASS_RE, "bypass-firewall", openings);
|
|
330
|
+
collectOpenings(clean, relative, ANONYMOUS_RE, "anonymous", openings);
|
|
331
|
+
collectOpenings(clean, relative, BYPASS_OPTION_RE, "bypass-option", openings);
|
|
332
|
+
}
|
|
333
|
+
if (!file.includes(ENTITY_DIR)) continue;
|
|
334
|
+
DRIZZLE_CORE_RE.lastIndex = 0;
|
|
335
|
+
const imported = /* @__PURE__ */ new Set();
|
|
336
|
+
let m;
|
|
337
|
+
while ((m = DRIZZLE_CORE_RE.exec(clean)) !== null) {
|
|
338
|
+
const found = DIALECT_OF_IMPORT[m[1] ?? ""];
|
|
339
|
+
if (found) imported.add(found);
|
|
340
|
+
}
|
|
341
|
+
if (imported.size === 0) continue;
|
|
342
|
+
entitiesScanned++;
|
|
343
|
+
if (!dialect) continue;
|
|
344
|
+
if (imported.has(dialect)) continue;
|
|
345
|
+
if (exceptions.some((e) => toPortablePath(relative).includes(e))) continue;
|
|
346
|
+
const wrote = [...imported].join(", ");
|
|
347
|
+
findings.push({
|
|
348
|
+
kind: "entity-other-dialect",
|
|
349
|
+
file: relative,
|
|
350
|
+
message: `cette entité est écrite pour ${wrote}, alors que le connecteur est ${dialect} (${from}) — l'outil de migration l'ÉCARTE en silence, la table ne sera jamais créée, et la première requête répondra 500`
|
|
351
|
+
});
|
|
352
|
+
}
|
|
353
|
+
}
|
|
354
|
+
return {
|
|
355
|
+
findings,
|
|
356
|
+
openings,
|
|
357
|
+
scanned,
|
|
358
|
+
dialect,
|
|
359
|
+
dialectFrom: from,
|
|
360
|
+
entitiesScanned
|
|
361
|
+
};
|
|
362
|
+
}
|
|
363
|
+
//#endregion
|
|
364
|
+
export { balancedBlock, checkSurface, connectorDialect, coversEverything, publicAreas, toPortablePath };
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
import { readdirSync, statSync } from "node:fs";
|
|
2
|
+
import path from "node:path";
|
|
3
|
+
//#region src/kernel/checks/walk.ts
|
|
4
|
+
/**
|
|
5
|
+
* Le parcours de fichiers de `doctor` — UNE règle d'exclusion, pour tous les
|
|
6
|
+
* contrôles.
|
|
7
|
+
*
|
|
8
|
+
* 🔴 Elle était écrite QUATRE fois. Ce qu'un contrôle sautait, un autre
|
|
9
|
+
* l'inspectait : `surface` ignorait neuf dossiers, `wiring` et `packageDeps`
|
|
10
|
+
* trois chacun (recopiés à l'identique, donc voués à diverger au premier
|
|
11
|
+
* ajout), et `freshness` exprimait la sienne en motifs de chemin. Elle avait
|
|
12
|
+
* déjà divergé — la fraîcheur du build comptait les fichiers de test, que la
|
|
13
|
+
* surface excluait depuis toujours, et réclamait un `npm run build` après
|
|
14
|
+
* chaque test écrit.
|
|
15
|
+
*
|
|
16
|
+
* Ce qui reste PROPRE à un contrôle s'exprime en paramètre, jamais en seconde
|
|
17
|
+
* liste : un test est de la surface non servie pour l'un, une source non bâtie
|
|
18
|
+
* pour l'autre — c'est la même exclusion, motivée différemment.
|
|
19
|
+
*
|
|
20
|
+
* @module
|
|
21
|
+
*/
|
|
22
|
+
/**
|
|
23
|
+
* Les dossiers dans lesquels aucun contrôle n'entre.
|
|
24
|
+
*
|
|
25
|
+
* Trois familles, et chacune a son motif : ce qui est INSTALLÉ
|
|
26
|
+
* (`node_modules`), ce qui est PRODUIT (`dist`, `coverage`, `.turbo`, `tmp`,
|
|
27
|
+
* `var`), et ce qui n'est ni servi ni publié (`tests`, `test`, `__tests__`).
|
|
28
|
+
* Tout dossier commençant par un point est écarté en plus, par
|
|
29
|
+
* {@link isSkippedDir}.
|
|
30
|
+
*/
|
|
31
|
+
const SKIPPED_DIRS = /* @__PURE__ */ new Set([
|
|
32
|
+
"node_modules",
|
|
33
|
+
"dist",
|
|
34
|
+
"coverage",
|
|
35
|
+
".turbo",
|
|
36
|
+
"tmp",
|
|
37
|
+
"var",
|
|
38
|
+
"tests",
|
|
39
|
+
"__tests__"
|
|
40
|
+
]);
|
|
41
|
+
/**
|
|
42
|
+
* Ce dossier est-il hors de portée de tout contrôle ?
|
|
43
|
+
*
|
|
44
|
+
* @param name - le nom du dossier, sans son chemin.
|
|
45
|
+
* @returns `true` s'il ne faut pas y entrer.
|
|
46
|
+
*/
|
|
47
|
+
function isSkippedDir(name) {
|
|
48
|
+
return SKIPPED_DIRS.has(name) || name.startsWith(".");
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* Ce fichier est-il un test ?
|
|
52
|
+
*
|
|
53
|
+
* Reconnaît `x.test.ts` et `x.spec.ts`, dans toutes les extensions de source.
|
|
54
|
+
* Un test n'est ni servi, ni publié, ni bâti : aucun contrôle n'a de raison de
|
|
55
|
+
* le compter, et chacun en avait sa propre définition.
|
|
56
|
+
*
|
|
57
|
+
* @param name - le nom du fichier, ou un chemin.
|
|
58
|
+
* @returns `true` s'il s'agit d'un test.
|
|
59
|
+
*/
|
|
60
|
+
function isTestFile(name) {
|
|
61
|
+
return /\.(test|spec)\.[cm]?tsx?$/u.test(name);
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* Les fichiers de source d'une cible, tests et dossiers produits exclus.
|
|
65
|
+
*
|
|
66
|
+
* @param root - racine à explorer.
|
|
67
|
+
* @param options - extensions retenues, et ce qui restreint le parcours.
|
|
68
|
+
* @returns les chemins absolus, dans l'ordre du système de fichiers.
|
|
69
|
+
*/
|
|
70
|
+
function collectSources(root, options) {
|
|
71
|
+
const found = [];
|
|
72
|
+
const max = options.maxDepth ?? Number.POSITIVE_INFINITY;
|
|
73
|
+
const walk = (dir, depth) => {
|
|
74
|
+
if (depth > max) return;
|
|
75
|
+
let entries;
|
|
76
|
+
try {
|
|
77
|
+
entries = readdirSync(dir, { withFileTypes: true });
|
|
78
|
+
} catch {
|
|
79
|
+
return;
|
|
80
|
+
}
|
|
81
|
+
for (const entry of entries) {
|
|
82
|
+
if (entry.name.startsWith(".")) continue;
|
|
83
|
+
const full = path.join(dir, entry.name);
|
|
84
|
+
if (entry.isDirectory()) {
|
|
85
|
+
if (!isSkippedDir(entry.name)) walk(full, depth + 1);
|
|
86
|
+
} else if (options.extensions.includes(path.extname(entry.name)) && !isTestFile(entry.name)) found.push(full);
|
|
87
|
+
}
|
|
88
|
+
};
|
|
89
|
+
if (options.subdirs) {
|
|
90
|
+
for (const sub of options.subdirs) {
|
|
91
|
+
const dir = path.join(root, sub);
|
|
92
|
+
if (statSync(dir, { throwIfNoEntry: false })) walk(dir, 0);
|
|
93
|
+
}
|
|
94
|
+
return found;
|
|
95
|
+
}
|
|
96
|
+
walk(root, 0);
|
|
97
|
+
return found;
|
|
98
|
+
}
|
|
99
|
+
//#endregion
|
|
100
|
+
export { SKIPPED_DIRS, collectSources, isSkippedDir, isTestFile };
|