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,545 @@
|
|
|
1
|
+
import { findProjectRoot } from "../projectRoot.js";
|
|
2
|
+
import { type TEntityDialect, type TEntityIdKind, type IEntityField } from "./entityFields.js";
|
|
3
|
+
import { ScaffoldWriter, type IScaffoldChange } from "./writer.js";
|
|
4
|
+
import { type IScaffoldTypeSpec, type TDatabaseChoice, type TFrontendChoice } from "./spec.js";
|
|
5
|
+
/**
|
|
6
|
+
* Moteur de scaffold — PUR : réponses validées → fichiers écrits. Aucune I/O
|
|
7
|
+
* terminal, aucun kernel : le même moteur sert le CLI rapide (argv), le CLI
|
|
8
|
+
* interactif (readline) et Studio (endpoint data plane). Rendu par **eta**
|
|
9
|
+
* (dep runtime du core) : les choix (preset × frontend) exigent des
|
|
10
|
+
* conditionnels dans `package.json`/`nodefony.config.ts` — des overlays de
|
|
11
|
+
* fichiers entiers n'auraient pas tenu deux axes croisés.
|
|
12
|
+
*/
|
|
13
|
+
/**
|
|
14
|
+
* Réponses d'un scaffold, complétées et validées contre la spec.
|
|
15
|
+
*
|
|
16
|
+
* Le tableau de chaînes sert les questions de type `"list"` — plusieurs valeurs
|
|
17
|
+
* qui doivent rester DISTINCTES. Les fondre dans le type texte reviendrait à les
|
|
18
|
+
* concaténer, et deux index de deux colonnes deviendraient un index de quatre.
|
|
19
|
+
*/
|
|
20
|
+
export type TScaffoldAnswers = Record<string, string | boolean | string[]>;
|
|
21
|
+
/** Capacités d'environnement évaluées par le front (cf `IScaffoldQuestion.askIf`). */
|
|
22
|
+
export interface IScaffoldCaps {
|
|
23
|
+
hasCheckout: boolean;
|
|
24
|
+
}
|
|
25
|
+
export interface IScaffoldRequest {
|
|
26
|
+
type: string;
|
|
27
|
+
answers: TScaffoldAnswers;
|
|
28
|
+
/** Dossier cible complet (défaut : `./<name>` relatif au cwd de l'appelant). */
|
|
29
|
+
dir: string;
|
|
30
|
+
force: boolean;
|
|
31
|
+
}
|
|
32
|
+
export interface IScaffoldResult {
|
|
33
|
+
dest: string;
|
|
34
|
+
/** Chemins relatifs écrits (triés). */
|
|
35
|
+
files: string[];
|
|
36
|
+
/** Paquets nodefony câblés en `file:` (mode link). */
|
|
37
|
+
linked: string[];
|
|
38
|
+
/** Points d'entrée utiles du scaffold (routes, canaux…) — affichés tels quels. */
|
|
39
|
+
notes?: string[];
|
|
40
|
+
/**
|
|
41
|
+
* Dépendances AJOUTÉES au `package.json` du projet par cette génération.
|
|
42
|
+
*
|
|
43
|
+
* Le fait remonte plutôt que de rester dans une note en français : c'est lui
|
|
44
|
+
* qui décide s'il faut installer. Déclarer sans installer est un demi-geste —
|
|
45
|
+
* la commande suivante échoue alors sur un paquet que le manifeste annonce,
|
|
46
|
+
* et l'utilisateur répare à la main ce que le générateur savait faire.
|
|
47
|
+
*/
|
|
48
|
+
depsAdded?: string[];
|
|
49
|
+
/**
|
|
50
|
+
* Écritures PRÉVUES, avec l'ancien contenu quand il y en a un — présent
|
|
51
|
+
* uniquement en dry-run (rien n'a touché le disque).
|
|
52
|
+
*/
|
|
53
|
+
changes?: IScaffoldChange[];
|
|
54
|
+
/**
|
|
55
|
+
* Fichiers formatables laissés SANS mise en forme, faute de prettier dans le
|
|
56
|
+
* projet (cas courant : `--no-install`). Zéro dès qu'il est là — le CLI ne
|
|
57
|
+
* parle que quand ça compte.
|
|
58
|
+
*/
|
|
59
|
+
unformatted?: number;
|
|
60
|
+
}
|
|
61
|
+
/** Options d'exécution d'un scaffold (cf {@link runScaffold}). */
|
|
62
|
+
export interface IScaffoldRunOptions {
|
|
63
|
+
/**
|
|
64
|
+
* Ne rien écrire : le scaffold se déroule entièrement (gardes comprises) et
|
|
65
|
+
* rend son plan dans `result.changes`. Un refus reste un refus — c'est le but,
|
|
66
|
+
* une simulation qui ne validerait pas ne servirait à rien.
|
|
67
|
+
*/
|
|
68
|
+
dryRun?: boolean;
|
|
69
|
+
/**
|
|
70
|
+
* Transaction déjà ouverte par un scaffold APPELANT (`create module` délègue
|
|
71
|
+
* à `controller`/`front`). Le sous-scaffold y écrit sans committer : la
|
|
72
|
+
* décision de vider sur disque appartient au scaffold racine, sinon la
|
|
73
|
+
* transaction serait coupée en morceaux et le refus tardif d'une étape
|
|
74
|
+
* laisserait les précédentes écrites.
|
|
75
|
+
*/
|
|
76
|
+
writer?: ScaffoldWriter;
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* Paramètres frontend par framework — type registerEntry, entry, nœud de
|
|
80
|
+
* montage, ET les dépendances npm (SOURCE UNIQUE : consommée par le
|
|
81
|
+
* `package.json.tpl` de `create app` ET par `create front` qui les ajoute au
|
|
82
|
+
* package.json d'une cible existante — une version ne vit qu'ici).
|
|
83
|
+
*
|
|
84
|
+
* ⚠️ **Le framework front lui-même est une devDependency, et `deps` est vide.**
|
|
85
|
+
* Le test qui tranche est le même que pour la toolchain : *le paquet est-il
|
|
86
|
+
* importé au RUNTIME du serveur ?* Ici non — aucun fichier hors `frontend/`
|
|
87
|
+
* n'importe `react`/`vue`/`@angular/*` : Vite les inline dans le bundle
|
|
88
|
+
* navigateur, et c'est ce bundle que la production sert. Les déclarer en
|
|
89
|
+
* `dependencies` les faisait survivre au `npm prune --omit=dev` de l'image et
|
|
90
|
+
* embarquer un framework entier que rien ne charge (mesuré ailleurs : 26,6 Mo
|
|
91
|
+
* pour `vue` seul, y compris dans une app React).
|
|
92
|
+
*
|
|
93
|
+
* L'ordre du `Dockerfile` généré est ce qui rend la bascule sûre :
|
|
94
|
+
* `RUN npm run build && npm prune --omit=dev` — le build les a quand il en a
|
|
95
|
+
* besoin, le prune les retire ensuite. Toute recette qui élaguerait AVANT de
|
|
96
|
+
* construire casserait, et c'est vrai de n'importe quelle devDependency.
|
|
97
|
+
*
|
|
98
|
+
* `deps` reste dans le contrat : le jour où un rendu côté serveur importera
|
|
99
|
+
* vraiment le framework, c'est là que la déclaration devra revenir.
|
|
100
|
+
*/
|
|
101
|
+
export declare const FRONTEND_PARAMS: Record<Exclude<TFrontendChoice, "none">, {
|
|
102
|
+
type: string;
|
|
103
|
+
entry: string;
|
|
104
|
+
mountNode: string;
|
|
105
|
+
deps: Record<string, string>;
|
|
106
|
+
devDeps: Record<string, string>;
|
|
107
|
+
}>;
|
|
108
|
+
/**
|
|
109
|
+
* Paramètres de la base SQL retenue au scaffold — SOURCE UNIQUE du service
|
|
110
|
+
* docker, du port publié et de l'URL de connexion, consommée par les TROIS
|
|
111
|
+
* gabarits qui en parlent (`compose.yaml`, `.env`, `README.md`).
|
|
112
|
+
*
|
|
113
|
+
* Pourquoi ici plutôt que recopié en eta : ces valeurs doivent coïncider EXACTEMENT
|
|
114
|
+
* — l'URL du `.env` joint le port que le compose publie, et le README montre la
|
|
115
|
+
* même. Trois littéraux séparés divergent au premier réglage, et l'écart ne se
|
|
116
|
+
* voit qu'à la connexion refusée.
|
|
117
|
+
*
|
|
118
|
+
* ⚠️ **MySQL est publié sur 3306, pas 3307.** Le port décalé n'existait que pour
|
|
119
|
+
* faire cohabiter MySQL et MariaDB dans un compose qui portait les deux ; une
|
|
120
|
+
* app qui retient UN dialecte n'a plus rien avec quoi cohabiter, et un port
|
|
121
|
+
* inattendu est une friction gratuite.
|
|
122
|
+
*/
|
|
123
|
+
export declare const DATABASE_PARAMS: Record<Exclude<TDatabaseChoice, "sqlite">, {
|
|
124
|
+
/** Nom du service dans le compose (et suffixe du container_name). */
|
|
125
|
+
service: string;
|
|
126
|
+
/** Libellé humain — README et commentaires du compose. */
|
|
127
|
+
label: string;
|
|
128
|
+
/** Scheme de `NF_DATABASE_URL` : c'est LUI qui décide du dialecte de l'ORM. */
|
|
129
|
+
scheme: string;
|
|
130
|
+
/** Port publié sur 127.0.0.1 (l'app tourne sur l'hôte). */
|
|
131
|
+
port: number;
|
|
132
|
+
/**
|
|
133
|
+
* Image docker — SOURCE UNIQUE : consommée par `compose.yaml.tpl` ET par
|
|
134
|
+
* le `ci.yml.tpl` (service container GitHub). Écrite en dur dans chacun,
|
|
135
|
+
* elle divergerait au premier bump sans qu'aucun des deux ne le dise.
|
|
136
|
+
*/
|
|
137
|
+
image: string;
|
|
138
|
+
}>;
|
|
139
|
+
/**
|
|
140
|
+
* Compose le bloc `db` offert aux gabarits — `null` pour sqlite, qui n'a ni
|
|
141
|
+
* service ni URL (le fichier vit dans `var/databases/`, l'ORM s'en charge seul).
|
|
142
|
+
*/
|
|
143
|
+
export declare function resolveDatabase(choice: TDatabaseChoice, appName: string): {
|
|
144
|
+
choice: string;
|
|
145
|
+
service: string;
|
|
146
|
+
label: string;
|
|
147
|
+
scheme: string;
|
|
148
|
+
port: number;
|
|
149
|
+
url: string;
|
|
150
|
+
database: string;
|
|
151
|
+
databaseE2e: string;
|
|
152
|
+
databaseScratch: string;
|
|
153
|
+
urlE2e: string;
|
|
154
|
+
urlScratch: string;
|
|
155
|
+
} | null;
|
|
156
|
+
/**
|
|
157
|
+
* Racine du paquet `nodefony` contenant `templates/` — remontée depuis CE fichier
|
|
158
|
+
* (source `src/cli/scaffold/`, bundle `dist/node/cli/scaffold/` : la remontée
|
|
159
|
+
* marche pour les deux sans dépendre de la profondeur).
|
|
160
|
+
*/
|
|
161
|
+
export declare function findPackageRoot(): string;
|
|
162
|
+
/**
|
|
163
|
+
* Workspaces nodefony d'un CHECKOUT du repo (`src/nodefony` + `src/packages/@nodefony/*`),
|
|
164
|
+
* résolus depuis la racine du paquet `nodefony`. Un paquet INSTALLÉ (node_modules)
|
|
165
|
+
* n'a pas ce voisinage → `null` (le mode link n'a de sens que sur un checkout).
|
|
166
|
+
*/
|
|
167
|
+
export declare function resolveLocalWorkspaces(packageRoot: string): Record<string, string> | null;
|
|
168
|
+
/**
|
|
169
|
+
* Mode link : réécrit dans le `package.json` GÉNÉRÉ toute dep `nodefony` /
|
|
170
|
+
* `@nodefony/*` en `file:<workspace>` — `npm install` symlinke le checkout local
|
|
171
|
+
* et installe ses deps transitives. Rend l'app contrôlable AVANT toute release
|
|
172
|
+
* npm (dev du framework) ; les deps publiques (zod, react…) restent au registre.
|
|
173
|
+
*
|
|
174
|
+
* @returns les noms de paquets liés (triés, pour le récap)
|
|
175
|
+
* @throws si une dep du scope nodefony n'existe pas dans le checkout
|
|
176
|
+
*/
|
|
177
|
+
export declare function linkLocalDeps(destDir: string, workspaces: Record<string, string>, writer: ScaffoldWriter): string[];
|
|
178
|
+
/**
|
|
179
|
+
* Complète et VALIDE des réponses partielles contre la spec d'un type : défauts
|
|
180
|
+
* appliqués, patterns vérifiés, choix contraints à leur liste. Le contexte des
|
|
181
|
+
* templates est donc complet PAR CONSTRUCTION (eta ne rend jamais un `undefined`
|
|
182
|
+
* silencieux). Les questions `askIf` non satisfaites sont forcées à `false` ;
|
|
183
|
+
* celles dont l'`askWhen` n'est pas satisfait retombent à leur DÉFAUT — une
|
|
184
|
+
* réponse qui porte sur ce qui ne sera pas généré n'a rien à décider.
|
|
185
|
+
*
|
|
186
|
+
* L'ordre de la spec fait foi : une question `askWhen` lit la réponse DÉJÀ
|
|
187
|
+
* résolue de celle qu'elle désigne, donc cette dernière doit la précéder.
|
|
188
|
+
*
|
|
189
|
+
* @throws Error si une valeur viole la spec (message = libellé + attendu)
|
|
190
|
+
*/
|
|
191
|
+
export declare function resolveAnswers(spec: IScaffoldTypeSpec, partial: TScaffoldAnswers, caps: IScaffoldCaps): TScaffoldAnswers;
|
|
192
|
+
/**
|
|
193
|
+
* Pose le fichier-POINTEUR d'instructions des agents donnés, s'il manque.
|
|
194
|
+
*
|
|
195
|
+
* Extrait de {@link renderProjectAgents} pour être appelable AILLEURS : c'est
|
|
196
|
+
* `nodefony ai:mcp --agent <clé>` qui câble un agent après la création de
|
|
197
|
+
* l'application, et c'est donc là que son pointeur doit apparaître. Sans cette
|
|
198
|
+
* fonction, filtrer les pointeurs à la création (pour ne plus déposer un
|
|
199
|
+
* `GEMINI.md` chez qui a demandé Claude) aurait privé de son fichier tout agent
|
|
200
|
+
* ajouté ensuite — on aurait remplacé un défaut par un autre.
|
|
201
|
+
*
|
|
202
|
+
* Un pointeur DÉJÀ présent n'est jamais réécrit : celui qu'un développeur a
|
|
203
|
+
* remplacé lui appartient.
|
|
204
|
+
*
|
|
205
|
+
* @param projectRoot - racine de l'application.
|
|
206
|
+
* @param keys - clés des agents concernés.
|
|
207
|
+
* @param appName - nom de l'application (rendu dans le gabarit).
|
|
208
|
+
* @returns les fichiers réellement écrits, relatifs à la racine.
|
|
209
|
+
*/
|
|
210
|
+
export declare function writeAgentPointers(projectRoot: string, keys: readonly string[], appName: string): string[];
|
|
211
|
+
/**
|
|
212
|
+
* Racine du PROJET Nodefony courant — cible des scaffolds IN-PROJECT (controller,
|
|
213
|
+
* module, entity), par opposition à `create app` qui crée un dossier neuf.
|
|
214
|
+
*
|
|
215
|
+
* Ré-export : la définition vit dans `../projectRoot` (module sans dépendance),
|
|
216
|
+
* partagée avec le lanceur `bin/nodefony` qui s'en sert pour déléguer au CLI de
|
|
217
|
+
* l'app. Une seule définition de « où commence l'app ».
|
|
218
|
+
*/
|
|
219
|
+
export { findProjectRoot };
|
|
220
|
+
/** Cible d'un scaffold in-project : l'app racine ou un module du projet. */
|
|
221
|
+
export interface IScaffoldTarget {
|
|
222
|
+
kind: "app" | "module";
|
|
223
|
+
/** Nom affichable (package.json `name`). */
|
|
224
|
+
name: string;
|
|
225
|
+
/** Dossier du code (contient `index.ts` + `nodefony/`). */
|
|
226
|
+
dir: string;
|
|
227
|
+
}
|
|
228
|
+
/**
|
|
229
|
+
* Cibles de scaffold du projet : l'app racine + les modules locaux
|
|
230
|
+
* (`modules/<x>/` portant `package.json` + `index.ts` — le layout produit par
|
|
231
|
+
* `create module`). Consommée par le CLI (validation `--module`) et par le
|
|
232
|
+
* futur formulaire Studio (liste de choix dynamique par projet).
|
|
233
|
+
*/
|
|
234
|
+
/**
|
|
235
|
+
* Capacités de l'environnement, telles que le MOTEUR les voit.
|
|
236
|
+
*
|
|
237
|
+
* Sert aux questions conditionnelles (`askIf`) : `link` (créer une app branchée sur le
|
|
238
|
+
* checkout local du framework, au lieu des paquets npm publiés) n'a de sens que si un
|
|
239
|
+
* checkout est résolvable. Un front ne peut PAS le deviner — seul le serveur sait ce
|
|
240
|
+
* qu'il y a sur le disque. Le figer côté client à `false` reviendrait à supprimer
|
|
241
|
+
* l'option en silence.
|
|
242
|
+
*
|
|
243
|
+
* @returns les capacités passées à {@link resolveAnswers}.
|
|
244
|
+
*/
|
|
245
|
+
export declare function scaffoldCaps(): IScaffoldCaps;
|
|
246
|
+
/**
|
|
247
|
+
* Ce que le PROJET RÉEL offre comme choix à un scaffold, sans démarrer le noyau.
|
|
248
|
+
*
|
|
249
|
+
* Une question dont les réponses valides dépendent du projet ne peut pas être
|
|
250
|
+
* décrite par la spec seule : les connecteurs déclarés, les entités déjà créées
|
|
251
|
+
* et les types de colonnes réellement disponibles varient d'une application à
|
|
252
|
+
* l'autre. Sans ce contexte, chaque front redemande la même chose en texte
|
|
253
|
+
* libre — et une faute de frappe ne se voit qu'au démarrage suivant.
|
|
254
|
+
*
|
|
255
|
+
* Le calcul vit ici, au moteur, et pas dans Studio : un formulaire intelligent
|
|
256
|
+
* écrit côté navigateur ne profiterait ni au terminal ni à un agent, et
|
|
257
|
+
* dériverait du projet réel à la première évolution.
|
|
258
|
+
*/
|
|
259
|
+
export interface IScaffoldContext {
|
|
260
|
+
/** Cibles possibles : l'application racine et ses modules locaux. */
|
|
261
|
+
targets: IScaffoldTarget[];
|
|
262
|
+
/** Connecteurs déclarés, avec le moteur SQL de chacun. */
|
|
263
|
+
connectors: IScaffoldConnector[];
|
|
264
|
+
/**
|
|
265
|
+
* Types de champ disponibles, et ce qu'ils deviennent dans CHAQUE moteur.
|
|
266
|
+
*
|
|
267
|
+
* La traduction est montrée plutôt que promise : `json` devient `jsonb` en
|
|
268
|
+
* PostgreSQL et une colonne texte en SQLite, et c'est une information dont
|
|
269
|
+
* dépend le choix de celui qui modélise.
|
|
270
|
+
*/
|
|
271
|
+
columnTypes: Array<{
|
|
272
|
+
/** Nom du type dans le vocabulaire Nodefony. */
|
|
273
|
+
type: string;
|
|
274
|
+
/** Colonne Drizzle produite, par dialecte. */
|
|
275
|
+
byDialect: Record<string, string>;
|
|
276
|
+
}>;
|
|
277
|
+
/** Entités existantes par cible — ce que `ref:` peut viser. */
|
|
278
|
+
entities: Record<string, string[]>;
|
|
279
|
+
/** Stratégies de clé primaire proposées. */
|
|
280
|
+
idKinds: readonly string[];
|
|
281
|
+
}
|
|
282
|
+
/**
|
|
283
|
+
* Lit le contexte du projet contenant `dir`.
|
|
284
|
+
*
|
|
285
|
+
* @param dir - un dossier quelconque du projet (la racine est retrouvée seule).
|
|
286
|
+
* @param writer - accès fichiers (injectable pour les tests).
|
|
287
|
+
* @returns le contexte, ou `null` si `dir` n'est pas dans un projet Nodefony.
|
|
288
|
+
*/
|
|
289
|
+
export declare function getScaffoldContext(dir: string, writer?: ScaffoldWriter): IScaffoldContext | null;
|
|
290
|
+
export declare function listTargets(projectRoot: string, writer?: ScaffoldWriter): IScaffoldTarget[];
|
|
291
|
+
/** `blog-post` / `BlogPost` / `blogPost` → `BlogPost`. */
|
|
292
|
+
export declare function toPascalCase(name: string): string;
|
|
293
|
+
/** `BlogPost` / `blog_post` → `blog-post`. */
|
|
294
|
+
export declare function toKebabCase(name: string): string;
|
|
295
|
+
export declare function wireDecoratorList(indexPath: string, decorator: "controllers" | "entities" | "services", className: string, importPath: string, writer: ScaffoldWriter): void;
|
|
296
|
+
/**
|
|
297
|
+
* Exécute un scaffold — point d'entrée UNIQUE des trois fronts (CLI rapide,
|
|
298
|
+
* CLI interactif, Studio), dispatché par type :
|
|
299
|
+
* - `app` : projet NEUF dans `request.dir` (layers base/preset/frontend) ;
|
|
300
|
+
* - `controller` : IN-PROJECT — `request.dir` est le point de départ de la
|
|
301
|
+
* détection de racine (cwd de l'appelant), la cible réelle vient de
|
|
302
|
+
* `answers.module` (vide = app racine).
|
|
303
|
+
*
|
|
304
|
+
* Toutes les écritures passent par une TRANSACTION ({@link ScaffoldWriter}) que
|
|
305
|
+
* seul le scaffold RACINE vide sur disque, une fois toutes les étapes passées :
|
|
306
|
+
* un refus, même tardif, ne laisse donc jamais de projet à moitié modifié. Et
|
|
307
|
+
* comme la simulation n'est que « la même exécution sans vidage », `dryRun`
|
|
308
|
+
* décrit exactement ce qui se passerait — pas ce qu'un second code de
|
|
309
|
+
* prévision croirait.
|
|
310
|
+
*
|
|
311
|
+
* @returns fichiers écrits + paquets liés — l'appelant décide du rendu (CLI ou JSON)
|
|
312
|
+
* @throws Error si réponses invalides, dossier non vide sans force, ou template cassé
|
|
313
|
+
*/
|
|
314
|
+
export declare function runScaffold(request: IScaffoldRequest, version: string, options?: IScaffoldRunOptions): IScaffoldResult;
|
|
315
|
+
/**
|
|
316
|
+
* Déclare `modules/*` en workspaces npm de l'app et branche les scripts sur eux.
|
|
317
|
+
*
|
|
318
|
+
* POURQUOI c'est indispensable : le Kernel charge un module par son NOM
|
|
319
|
+
* (`import("@app/blog")`, cf `Kernel.loadModule`) — pas par un chemin. Sans le
|
|
320
|
+
* symlink que npm pose pour un workspace, le boot échoue sur « Cannot find
|
|
321
|
+
* package ». Les scripts sont chaînés dans la foulée, sinon le module ne serait
|
|
322
|
+
* ni construit (le bundler de l'app ne regarde que `index.ts` + `nodefony/**`),
|
|
323
|
+
* ni typé, ni testé : du code mort au premier jour.
|
|
324
|
+
*
|
|
325
|
+
* Idempotent — relancé pour le 2ᵉ module, il ne touche plus à rien.
|
|
326
|
+
*
|
|
327
|
+
* @returns true si le `package.json` de l'app a été modifié.
|
|
328
|
+
*/
|
|
329
|
+
export declare function ensureWorkspaces(projectRoot: string, writer: ScaffoldWriter): boolean;
|
|
330
|
+
/**
|
|
331
|
+
* Ajoute le module au manifeste `modules` de `nodefony.config.ts` — c'est CE
|
|
332
|
+
* tableau qui décide de ce qui se charge, et dans quel ordre. Un module local
|
|
333
|
+
* vient à la fin : le socle (http, framework, security…) doit être debout avant.
|
|
334
|
+
*
|
|
335
|
+
* Édition textuelle GARDÉE (même doctrine que `wireDecoratorList`) : on n'écrit
|
|
336
|
+
* que si l'ancre est trouvée sans ambiguïté, sinon on rend une note actionnable —
|
|
337
|
+
* jamais un `nodefony.config.ts` corrompu, qui empêcherait l'app de booter.
|
|
338
|
+
*
|
|
339
|
+
* @param moduleDir - dossier où le module a été créé, relatif à la racine (en
|
|
340
|
+
* `/`) — seulement pour NOMMER le bon endroit dans le commentaire inséré.
|
|
341
|
+
* @returns note à afficher si un geste manuel reste nécessaire, sinon `null`.
|
|
342
|
+
*/
|
|
343
|
+
export declare function wireModuleManifest(configPath: string, pkgName: string, writer: ScaffoldWriter, moduleDir?: string): string | null;
|
|
344
|
+
/**
|
|
345
|
+
* Déclare un rôle applicatif sous `ROLE_ADMIN` dans la hiérarchie de l'app.
|
|
346
|
+
*
|
|
347
|
+
* ## Pourquoi la hiérarchie, et pas une liste de rôles sur l'action
|
|
348
|
+
*
|
|
349
|
+
* Deux gestes rendent la même réponse sur la route qu'on vient d'écrire — une
|
|
350
|
+
* hiérarchie, ou `@IsGranted(["ROLE_X", "ROLE_ADMIN"])`. Un seul GÉNÉRALISE :
|
|
351
|
+
* la hiérarchie vaut pour toute route future gardée par ce rôle, la liste
|
|
352
|
+
* s'arrête à cette action-là et devra être recopiée à chaque fois. Le troisième
|
|
353
|
+
* geste — attribuer le rôle à l'administrateur au semis — est pire encore : il
|
|
354
|
+
* ne se voit dans aucun diff de route et se perd au premier compte recréé.
|
|
355
|
+
*
|
|
356
|
+
* ## Ce que cette fonction n'invente pas
|
|
357
|
+
*
|
|
358
|
+
* Elle n'ajoute JAMAIS une clé `roleHierarchy` absente, ni un `ROLE_ADMIN`
|
|
359
|
+
* absent : composer un bloc de configuration à l'aveugle dans un fichier que
|
|
360
|
+
* l'utilisateur a pu réorganiser produirait un manifeste qui ne boote plus.
|
|
361
|
+
* Quand l'ancre manque, elle rend la note à taper — même doctrine que
|
|
362
|
+
* {@link wireModuleManifest} et `wireDecoratorList`.
|
|
363
|
+
*
|
|
364
|
+
* @param configPath - `nodefony.config.ts` de l'application.
|
|
365
|
+
* @param role - le rôle à déclarer (déjà validé par le schéma de la question).
|
|
366
|
+
* @param writer - écrivain du scaffold (respecte `--dry-run`).
|
|
367
|
+
* @returns note à afficher si un geste manuel reste nécessaire, sinon `null`.
|
|
368
|
+
*/
|
|
369
|
+
export declare function wireRoleHierarchy(configPath: string, role: string, writer: ScaffoldWriter): string | null;
|
|
370
|
+
/**
|
|
371
|
+
* Câble `this.addCommand(<Classe>)` dans le constructeur du Module d'un
|
|
372
|
+
* `index.ts` : ajoute l'import après le dernier import, insère l'appel juste
|
|
373
|
+
* après le `super(…)` du constructeur.
|
|
374
|
+
*
|
|
375
|
+
* L'ancre est le `super(…)` et non l'accolade du constructeur : c'est la seule
|
|
376
|
+
* ligne dont l'existence est GARANTIE (un `Module` doit appeler `super`), et
|
|
377
|
+
* insérer après elle vaut pour un constructeur vide comme pour un constructeur
|
|
378
|
+
* déjà rempli. Édition textuelle gardée, même contrat que
|
|
379
|
+
* {@link wireDecoratorList} : toute ambiguïté = throw actionnable, jamais un
|
|
380
|
+
* fichier corrompu.
|
|
381
|
+
*
|
|
382
|
+
* @throws si la classe y est déjà, si aucun import n'ancre l'insertion, ou si
|
|
383
|
+
* le `super(…)` du constructeur est introuvable (le message donne l'édition
|
|
384
|
+
* manuelle exacte).
|
|
385
|
+
*/
|
|
386
|
+
export declare function wireCommandCall(indexPath: string, className: string, importPath: string, writer: ScaffoldWriter): void;
|
|
387
|
+
/**
|
|
388
|
+
* Valeur d'exemple d'un champ — VALIDE au regard du schéma de l'entité.
|
|
389
|
+
*
|
|
390
|
+
* Un échantillon n'est pas une décoration : les tests générés s'en servent pour
|
|
391
|
+
* insérer, et la documentation pour montrer un appel qui marche. S'il viole le
|
|
392
|
+
* schéma, l'entité naît avec un test rouge, et la première impression du
|
|
393
|
+
* générateur est qu'il produit du code cassé.
|
|
394
|
+
*
|
|
395
|
+
* Ce piège s'est présenté trois fois, sur trois types ajoutés à trois moments
|
|
396
|
+
* différents — l'énumération, puis le décimal et le caractère fixe. Chaque fois,
|
|
397
|
+
* la valeur générique `nom-1` passait à côté d'une contrainte que le schéma, lui,
|
|
398
|
+
* faisait respecter. D'où cette fonction unique : tout type qui restreint ses
|
|
399
|
+
* valeurs doit dire ici ce qu'il accepte, sinon rien ne le rappellera.
|
|
400
|
+
*
|
|
401
|
+
* @param field - le champ à illustrer.
|
|
402
|
+
* @param id - stratégie de clé primaire (une référence vers une clé numérique
|
|
403
|
+
* attend un nombre, pas une chaîne).
|
|
404
|
+
* @returns `fixed` pour le JSON de la documentation, `expr` pour la fabrique
|
|
405
|
+
* paramétrée des tests (une expression TypeScript où `n` varie).
|
|
406
|
+
*/
|
|
407
|
+
/**
|
|
408
|
+
* Le filtre sur lequel le test généré peut prouver qu'un filtre FILTRE — ou
|
|
409
|
+
* `null` si aucun champ ne s'y prête.
|
|
410
|
+
*
|
|
411
|
+
* Prouver un refus (`?actf=x` → 400) et prouver un filtre sont deux choses
|
|
412
|
+
* différentes, et la seconde exige une ligne qui NE matche PAS. Sans elle,
|
|
413
|
+
* l'assertion « toutes les lignes rendues portent la valeur demandée » reste
|
|
414
|
+
* vraie quand le filtre est ignoré : tous les échantillons d'un booléen valent
|
|
415
|
+
* `true`, ceux d'une énumération valent sa première valeur ({@link sampleValue}).
|
|
416
|
+
* Le test serait vert sur un filtre débranché — exactement le défaut qu'il est
|
|
417
|
+
* censé attraper.
|
|
418
|
+
*
|
|
419
|
+
* D'où les deux seules natures retenues, celles qui offrent un contraire sûr et
|
|
420
|
+
* gratuit. Une clé étrangère en est écartée : poser une seconde valeur
|
|
421
|
+
* demanderait de créer l'entité visée, et le test parlerait d'autre chose.
|
|
422
|
+
*
|
|
423
|
+
* Deux écritures de chaque valeur, et ce n'est pas une redondance : `match` part
|
|
424
|
+
* dans l'URL (`?publie=true` — tout y est du texte), `matchJson` est la
|
|
425
|
+
* littérale TypeScript posée dans le corps envoyé (`publie: true`, un booléen —
|
|
426
|
+
* `"true"` y serait refusé par le schéma).
|
|
427
|
+
*
|
|
428
|
+
* @param fields - les champs déclarés de l'entité.
|
|
429
|
+
* @returns le nom du filtre et ses deux valeurs sous les deux écritures, ou
|
|
430
|
+
* `null` si l'entité n'a aucun champ éprouvable.
|
|
431
|
+
*/
|
|
432
|
+
export declare function filterProbe(fields: readonly IEntityField[]): {
|
|
433
|
+
name: string;
|
|
434
|
+
match: string;
|
|
435
|
+
matchJson: string;
|
|
436
|
+
other: string;
|
|
437
|
+
otherJson: string;
|
|
438
|
+
} | null;
|
|
439
|
+
/**
|
|
440
|
+
* Le filtre sur lequel une valeur MAL FORMÉE existe, et de quoi la fabriquer —
|
|
441
|
+
* ou `null` si aucun filtre de l'entité ne peut en refuser une.
|
|
442
|
+
*
|
|
443
|
+
* Toutes les natures ne refusent pas : un filtre `"string"` accepte n'importe
|
|
444
|
+
* quelle chaîne, par construction. Le test généré visait pourtant le PREMIER
|
|
445
|
+
* filtre déclaré quel qu'il soit, et attendait un `400` — sur une entité dont
|
|
446
|
+
* le seul filtre est une clé étrangère à identifiant textuel
|
|
447
|
+
* (`author:ref:Author` avec des `uuid`), il exigeait donc le refus d'une valeur
|
|
448
|
+
* parfaitement valide, et échouait sur le générateur au lieu de l'éprouver.
|
|
449
|
+
*
|
|
450
|
+
* @param filters - le vocabulaire de filtre déjà calculé (nom → littérale de sa
|
|
451
|
+
* nature, telle qu'elle sera écrite dans le gabarit).
|
|
452
|
+
* @returns le nom du filtre et une valeur qu'il doit refuser, ou `null`.
|
|
453
|
+
*/
|
|
454
|
+
export declare function malformedProbe(filters: readonly {
|
|
455
|
+
name: string;
|
|
456
|
+
def: string;
|
|
457
|
+
}[]): {
|
|
458
|
+
name: string;
|
|
459
|
+
value: string;
|
|
460
|
+
} | null;
|
|
461
|
+
export declare function sampleValue(field: IEntityField, id: TEntityIdKind): {
|
|
462
|
+
fixed: unknown;
|
|
463
|
+
expr: string;
|
|
464
|
+
};
|
|
465
|
+
/** Un connecteur de base de données, tel que déclaré dans la configuration. */
|
|
466
|
+
export interface IScaffoldConnector {
|
|
467
|
+
/** Nom sous lequel les entités le désignent (`default`, `analytics`…). */
|
|
468
|
+
name: string;
|
|
469
|
+
/** Moteur SQL visé — décide des types de colonnes générés. */
|
|
470
|
+
dialect: TEntityDialect;
|
|
471
|
+
/**
|
|
472
|
+
* Qui fabrique le schéma de ce connecteur, quand l'application l'ÉCRIT.
|
|
473
|
+
*
|
|
474
|
+
* `undefined` = la configuration ne le dit pas, et le mode sera résolu au
|
|
475
|
+
* démarrage depuis l'environnement (développement → `auto`, le reste →
|
|
476
|
+
* `none`). Le scaffold ne le devine pas : il ne sait pas dans quel mode
|
|
477
|
+
* l'application tournera, et affirmer « créée au prochain boot » à qui a
|
|
478
|
+
* écrit `none` serait faux.
|
|
479
|
+
*/
|
|
480
|
+
ddl?: string;
|
|
481
|
+
}
|
|
482
|
+
/**
|
|
483
|
+
* Ajoute une entité au décorateur `@entities([...])` de la cible — **en le créant
|
|
484
|
+
* s'il n'existe pas encore**.
|
|
485
|
+
*
|
|
486
|
+
* Différence avec `wireDecoratorList` : une app n'a aucune raison de porter un
|
|
487
|
+
* `@entities([])` vide tant qu'elle n'a pas d'entité, et les apps déjà générées n'en
|
|
488
|
+
* ont pas. Plutôt que d'exiger une ancre (throw) ou de l'imposer à tous les templates,
|
|
489
|
+
* on **pose le décorateur au premier usage**, juste au-dessus de `@controllers` (ou de
|
|
490
|
+
* la déclaration de classe s'il n'y en a pas).
|
|
491
|
+
*
|
|
492
|
+
* Édition textuelle conservatrice : toute ambiguïté fait échouer avec un geste à
|
|
493
|
+
* appliquer à la main, plutôt que de corrompre le fichier.
|
|
494
|
+
*
|
|
495
|
+
* @param indexPath - `index.ts` de la cible.
|
|
496
|
+
* @param className - nom du descripteur (`PostEntity`).
|
|
497
|
+
* @param importPath - chemin relatif du descripteur.
|
|
498
|
+
* @throws si l'entité est déjà référencée, ou si aucun point d'insertion n'est trouvé.
|
|
499
|
+
*/
|
|
500
|
+
/**
|
|
501
|
+
* Position d'insertion devant la classe `… extends Module` — décorateurs de
|
|
502
|
+
* classe COMPRIS, puisque `@entities([…])` doit se poser au-dessus d'eux.
|
|
503
|
+
*
|
|
504
|
+
* Volontairement PAS une expression régulière. Le motif naturel
|
|
505
|
+
* (`(?:@\w+\([\s\S]*?\)\s*)*class …`) est ambigu — le contenu paresseux d'un
|
|
506
|
+
* décorateur peut se découper de plusieurs façons entre deux itérations — donc
|
|
507
|
+
* exponentiel au backtracking : mesuré ici, 26 décorateurs sans classe à trouver
|
|
508
|
+
* coûtaient 636 ms, et chaque paire supplémentaire multipliait par ~3,5. Or le
|
|
509
|
+
* pire cas EST le cas d'échec prévu par l'appelant (ancre introuvable) : la
|
|
510
|
+
* commande figeait au lieu de rendre son geste manuel.
|
|
511
|
+
*
|
|
512
|
+
* Le balayage ci-dessous remonte les décorateurs un par un en appariant les
|
|
513
|
+
* parenthèses — linéaire, et correct sur un décorateur qui en contient
|
|
514
|
+
* lui-même (`@entities([defineEntity(x)])`).
|
|
515
|
+
*
|
|
516
|
+
* @param source - contenu de l'`index.ts` de la cible.
|
|
517
|
+
* @returns l'index d'insertion, ou `undefined` si aucune classe `extends Module`.
|
|
518
|
+
*/
|
|
519
|
+
export declare function findModuleClassAnchor(source: string): number | undefined;
|
|
520
|
+
/**
|
|
521
|
+
* Câble un descripteur d'entité au module de la cible.
|
|
522
|
+
*
|
|
523
|
+
* @param indexPath - `index.ts` de la cible (app racine ou module).
|
|
524
|
+
* @param className - nom exporté du descripteur.
|
|
525
|
+
* @param importPath - chemin d'import, en `/`.
|
|
526
|
+
* @param writer - écrivain du scaffold (respecte `--dry-run`).
|
|
527
|
+
* @param alreadyWiredIsNormal - `true` quand RÉGÉNÉRER l'entité est le geste
|
|
528
|
+
* attendu, et non un doublon. C'est le cas de l'utilisateur : son fichier
|
|
529
|
+
* PRESCRIT « relance la commande avec tes champs », et l'entité est déjà
|
|
530
|
+
* câblée depuis la naissance de l'application. Le refus reste entier pour
|
|
531
|
+
* toutes les autres : deux entités du même nom dans un registre PLAT font
|
|
532
|
+
* échouer le démarrage.
|
|
533
|
+
* @throws Si le nom est déjà référencé hors de ce cas, ou si l'`index.ts` n'a
|
|
534
|
+
* aucun import où s'accrocher.
|
|
535
|
+
*/
|
|
536
|
+
export declare function wireEntitiesDecorator(indexPath: string, className: string, importPath: string, writer: ScaffoldWriter, alreadyWiredIsNormal?: boolean): void;
|
|
537
|
+
/**
|
|
538
|
+
* Câble un appel dans le hook `onKernelBoot()` de l'`index.ts` cible : import
|
|
539
|
+
* de la fonction + soit INSERTION d'un hook complet (s'il n'existe pas — le
|
|
540
|
+
* layout des index générés est connu), soit note actionnable (un hook existant
|
|
541
|
+
* n'est JAMAIS édité : on ne réécrit pas du code utilisateur).
|
|
542
|
+
*
|
|
543
|
+
* @returns note à afficher si un geste manuel reste nécessaire, sinon `null`.
|
|
544
|
+
*/
|
|
545
|
+
export declare function wireKernelBootCall(indexPath: string, fnName: string, importPath: string, writer: ScaffoldWriter): string | null;
|