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,238 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Champs d'entité : de la syntaxe `title:string` au code Drizzle du dialecte visé.
|
|
3
|
+
*
|
|
4
|
+
* Module **pur** (aucune I/O, aucun template) : c'est lui qui porte la traduction
|
|
5
|
+
* « vocabulaire Nodefony → colonne Drizzle native », donc c'est lui qu'on teste.
|
|
6
|
+
*
|
|
7
|
+
* Vocabulaire volontairement restreint — le scaffold doit produire du code qu'un
|
|
8
|
+
* humain relit et étend, pas couvrir toute la surface SQL. Un besoin exotique
|
|
9
|
+
* (`numeric(12,4)`, `citext`, tableau PG…) s'écrit à la main dans la table générée :
|
|
10
|
+
* c'est du Drizzle natif, il n'y a rien à contourner.
|
|
11
|
+
*/
|
|
12
|
+
/** Dialectes SQL supportés par le scaffold (ceux de `@nodefony/drizzle`). */
|
|
13
|
+
export declare const ENTITY_DIALECTS: readonly ["sqlite", "postgres", "mysql"];
|
|
14
|
+
export type TEntityDialect = (typeof ENTITY_DIALECTS)[number];
|
|
15
|
+
/** Stratégies de clé primaire. */
|
|
16
|
+
export declare const ENTITY_ID_KINDS: readonly ["uuid7", "uuid4", "serial"];
|
|
17
|
+
export type TEntityIdKind = (typeof ENTITY_ID_KINDS)[number];
|
|
18
|
+
/** Types de champ du vocabulaire Nodefony (jamais le vocabulaire Drizzle). */
|
|
19
|
+
export declare const ENTITY_FIELD_TYPES: readonly ["string", "text", "int", "float", "bool", "json", "date", "uuid", "enum", "char", "decimal"];
|
|
20
|
+
export type TEntityFieldType = (typeof ENTITY_FIELD_TYPES)[number];
|
|
21
|
+
/** Un champ déclaré, après analyse de `title:string!` ou `author:ref:User`. */
|
|
22
|
+
export interface IEntityField {
|
|
23
|
+
/** Nom de la propriété (camelCase). */
|
|
24
|
+
name: string;
|
|
25
|
+
/** Type Nodefony, ou `ref` pour une clé étrangère. */
|
|
26
|
+
type: TEntityFieldType | "ref";
|
|
27
|
+
/** Entité cible quand `type === "ref"`. */
|
|
28
|
+
target?: string;
|
|
29
|
+
/** Valeurs admises quand `type === "enum"` (`status:enum(draft,published)`). */
|
|
30
|
+
values?: string[];
|
|
31
|
+
/**
|
|
32
|
+
* Longueur déclarée d'une chaîne (`title:string(200)`, `country:char(2)`).
|
|
33
|
+
*
|
|
34
|
+
* Absente pour `string`, la colonne retombe sur 255 — la valeur par défaut
|
|
35
|
+
* historique. Un schéma réel dimensionne ses colonnes (onze longueurs
|
|
36
|
+
* distinctes chez Umami) : la place perdue se paie en octets par ligne, et
|
|
37
|
+
* l'absence de borne laisse passer des valeurs qu'aucune règle ne veut.
|
|
38
|
+
*/
|
|
39
|
+
length?: number;
|
|
40
|
+
/** Chiffres significatifs d'un décimal exact (`price:decimal(12,2)` → 12). */
|
|
41
|
+
precision?: number;
|
|
42
|
+
/** Chiffres après la virgule d'un décimal exact (`price:decimal(12,2)` → 2). */
|
|
43
|
+
scale?: number;
|
|
44
|
+
/**
|
|
45
|
+
* Valeur par défaut littérale, telle qu'écrite (`price:float=0` → `"0"`).
|
|
46
|
+
*
|
|
47
|
+
* Conservée en texte : c'est le générateur qui sait la traduire en littéral du
|
|
48
|
+
* bon type, et lui seul connaît le dialecte visé.
|
|
49
|
+
*/
|
|
50
|
+
defaultValue?: string;
|
|
51
|
+
/** `true` si `?` — la colonne accepte `NULL`. Non-null par DÉFAUT. */
|
|
52
|
+
nullable: boolean;
|
|
53
|
+
/** `true` si `!` — contrainte d'unicité. */
|
|
54
|
+
unique: boolean;
|
|
55
|
+
/** `true` si `:index`. */
|
|
56
|
+
indexed: boolean;
|
|
57
|
+
/**
|
|
58
|
+
* Horodatage posé à l'insertion (`new Date()`), sans `DEFAULT` SQL.
|
|
59
|
+
*
|
|
60
|
+
* La grammaire de champs ne peut pas l'exprimer — « maintenant » n'est pas une
|
|
61
|
+
* valeur littérale —, et pourtant le contrat utilisateur en porte deux. Sans
|
|
62
|
+
* cette propriété, ces colonnes seraient écrites à la main quelque part, donc
|
|
63
|
+
* en double.
|
|
64
|
+
*/
|
|
65
|
+
defaultNow?: boolean;
|
|
66
|
+
/** Horodatage RÉÉCRIT à chaque mise à jour (`$onUpdateFn`). */
|
|
67
|
+
refreshedOnWrite?: boolean;
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* Casses de nom de colonne SQL proposées — la propriété TypeScript ne bouge jamais.
|
|
71
|
+
*
|
|
72
|
+
* `camel` reproduit la propriété telle quelle (défaut historique) ; `snake` émet
|
|
73
|
+
* `site_id` là où la propriété reste `siteId`. Drizzle porte nativement cette
|
|
74
|
+
* dissociation — le premier argument d'un constructeur de colonne EST le nom SQL.
|
|
75
|
+
*
|
|
76
|
+
* Une seule option couvre l'écrasante majorité des schémas existants : sur les 134
|
|
77
|
+
* renommages qu'exige le schéma d'Umami, **115 sont ce passage mécanique** au
|
|
78
|
+
* `snake_case`. Les nommer un par un aurait demandé un dictionnaire ; ils tiennent
|
|
79
|
+
* dans un choix.
|
|
80
|
+
*/
|
|
81
|
+
export declare const COLUMN_CASES: readonly ["camel", "snake"];
|
|
82
|
+
export type TColumnCase = (typeof COLUMN_CASES)[number];
|
|
83
|
+
/** `BlogPost` / `blog-post` / `siteId` → `blog_post` / `site_id`. */
|
|
84
|
+
export declare function toSnakeCase(name: string): string;
|
|
85
|
+
/**
|
|
86
|
+
* Nom SQL d'une colonne, dérivé de sa propriété TypeScript.
|
|
87
|
+
*
|
|
88
|
+
* @param property - nom de la propriété (`siteId`).
|
|
89
|
+
* @param columnCase - casse demandée ; `camel` rend la propriété inchangée.
|
|
90
|
+
*/
|
|
91
|
+
export declare function sqlColumn(property: string, columnCase: TColumnCase): string;
|
|
92
|
+
/** Erreur de syntaxe dans la déclaration d'un champ — message actionnable. */
|
|
93
|
+
export declare class EntityFieldError extends Error {
|
|
94
|
+
}
|
|
95
|
+
/**
|
|
96
|
+
* Analyse la déclaration textuelle des champs.
|
|
97
|
+
*
|
|
98
|
+
* Grammaire : `nom:type[?][!][=defaut][:index]` · `nom:ref:Entité[?][!][:index]`
|
|
99
|
+
* - `?` → nullable (sinon **NOT NULL** : une colonne nullable est une décision, pas un oubli) ;
|
|
100
|
+
* - `!` → unique ;
|
|
101
|
+
* - `=valeur` → valeur par défaut (`price:float=0`, `status:enum(draft,published)=draft`) ;
|
|
102
|
+
* - `:index` → index simple.
|
|
103
|
+
*
|
|
104
|
+
* Le type `enum` porte ses valeurs entre parenthèses : `status:enum(draft,published)`.
|
|
105
|
+
*
|
|
106
|
+
* @param input - `"title:string! content:text? views:int=0 author:ref:User"`.
|
|
107
|
+
* @returns les champs, dans l'ordre de déclaration.
|
|
108
|
+
* @throws EntityFieldError si un champ est mal formé (le mot « invalide » est attendu
|
|
109
|
+
* par le routeur d'erreurs du CLI pour sortir en `EX_USAGE`).
|
|
110
|
+
*/
|
|
111
|
+
export declare function parseEntityFields(input: string): IEntityField[];
|
|
112
|
+
/**
|
|
113
|
+
* Index portant sur PLUSIEURS colonnes, déclaré au niveau de la table.
|
|
114
|
+
*
|
|
115
|
+
* Un index composite n'appartient à aucune colonne en particulier — il décrit une
|
|
116
|
+
* façon d'interroger la table (« les événements de ce site, du plus récent au plus
|
|
117
|
+
* ancien »). C'est pourquoi il se déclare à part de la grammaire de champs, et non
|
|
118
|
+
* par un modificateur : il n'y aurait pas de champ légitime où l'accrocher.
|
|
119
|
+
*
|
|
120
|
+
* L'ORDRE des colonnes est significatif et se conserve : un index sur `(site, date)`
|
|
121
|
+
* sert les requêtes qui filtrent sur le site, celles qui ne filtrent que sur la date
|
|
122
|
+
* ne le verront pas.
|
|
123
|
+
*/
|
|
124
|
+
export interface IEntityIndex {
|
|
125
|
+
/** Colonnes indexées, dans l'ordre déclaré. */
|
|
126
|
+
columns: string[];
|
|
127
|
+
/** `true` pour une contrainte d'unicité portant sur la combinaison. */
|
|
128
|
+
unique: boolean;
|
|
129
|
+
}
|
|
130
|
+
/**
|
|
131
|
+
* Analyse les index de table déclarés par `--index` / `--unique`.
|
|
132
|
+
*
|
|
133
|
+
* Chaque valeur est une liste de colonnes séparées par des virgules
|
|
134
|
+
* (`"websiteId,createdAt"`). Toute colonne citée doit exister : sans ce contrôle, on
|
|
135
|
+
* écrirait une entité qui ne compile pas, et l'erreur tomberait chez l'utilisateur
|
|
136
|
+
* sous la forme d'une propriété inconnue — loin de la commande qui l'a causée.
|
|
137
|
+
*
|
|
138
|
+
* @param specs - valeurs brutes des options, dans l'ordre de la ligne de commande.
|
|
139
|
+
* @param fields - champs déjà analysés, qui fournissent les noms légitimes.
|
|
140
|
+
* @param options - présence des colonnes implicites (horodatages, suppression douce).
|
|
141
|
+
* @param unique - `true` quand ces valeurs viennent de `--unique`.
|
|
142
|
+
* @returns les index analysés, doublons retirés.
|
|
143
|
+
* @throws {EntityFieldError} colonne inconnue, liste vide, ou colonne répétée.
|
|
144
|
+
*/
|
|
145
|
+
export declare function parseEntityIndexes(specs: readonly string[], fields: readonly IEntityField[], options: {
|
|
146
|
+
timestamps: boolean;
|
|
147
|
+
softDelete: boolean;
|
|
148
|
+
}, unique?: boolean): IEntityIndex[];
|
|
149
|
+
/**
|
|
150
|
+
* Ce que chaque type de champ devient, dans chaque moteur.
|
|
151
|
+
*
|
|
152
|
+
* Montrer la traduction plutôt que la promettre : `json` devient `jsonb` en
|
|
153
|
+
* PostgreSQL et une colonne texte en SQLite, `string` un `varchar(255)` ici et un
|
|
154
|
+
* `text` là. C'est une information dont dépend le choix de celui qui modélise, et
|
|
155
|
+
* elle n'est déductible d'aucune documentation générique.
|
|
156
|
+
*
|
|
157
|
+
* Dérivé de la table de traduction elle-même : impossible que ce catalogue
|
|
158
|
+
* dérive de ce que le générateur produit réellement.
|
|
159
|
+
*
|
|
160
|
+
* @returns un descripteur par type, avec sa colonne Drizzle par dialecte.
|
|
161
|
+
*/
|
|
162
|
+
export declare function describeColumnTypes(): Array<{
|
|
163
|
+
type: string;
|
|
164
|
+
byDialect: Record<string, string>;
|
|
165
|
+
}>;
|
|
166
|
+
/** Fonction de table Drizzle du dialecte (`sqliteTable`…) et son import. */
|
|
167
|
+
export declare const TABLE_FN: Record<TEntityDialect, {
|
|
168
|
+
fn: string;
|
|
169
|
+
module: string;
|
|
170
|
+
}>;
|
|
171
|
+
/** Tout ce dont les templates ont besoin pour rendre une entité. */
|
|
172
|
+
export interface IEntityCodegen {
|
|
173
|
+
/** Corps de la table (lignes `nom: colonne,`). */
|
|
174
|
+
columns: string;
|
|
175
|
+
/** Import Drizzle du dialecte (`import { text, integer } from "drizzle-orm/sqlite-core";`). */
|
|
176
|
+
drizzleImport: string;
|
|
177
|
+
/** Fonction de table (`sqliteTable`). */
|
|
178
|
+
tableFn: string;
|
|
179
|
+
/** Propriétés de l'interface de ligne. */
|
|
180
|
+
rowProps: string;
|
|
181
|
+
/** Corps du schéma Zod de création. */
|
|
182
|
+
zodProps: string;
|
|
183
|
+
/**
|
|
184
|
+
* Troisième argument de la table Drizzle — les index déclarés par `:index`.
|
|
185
|
+
*
|
|
186
|
+
* Chaîne vide quand aucun index n'est demandé : la table garde alors sa forme
|
|
187
|
+
* à deux arguments.
|
|
188
|
+
*/
|
|
189
|
+
tableExtras: string;
|
|
190
|
+
/** `true` si la clé primaire est générée côté JS (le template importe `Nodefony`). */
|
|
191
|
+
needsNodefony: boolean;
|
|
192
|
+
/** Type TS de la clé primaire. */
|
|
193
|
+
idType: string;
|
|
194
|
+
}
|
|
195
|
+
/**
|
|
196
|
+
* Produit le code des colonnes, de l'interface de ligne et du schéma Zod.
|
|
197
|
+
*
|
|
198
|
+
* Les horodatages sont posés **côté JS** (`$defaultFn`/`$onUpdateFn`) et non en SQL :
|
|
199
|
+
* le DDL dérivé du mode dev n'émet pas les `DEFAULT` — un défaut SQL serait donc
|
|
200
|
+
* silencieusement absent des tables créées au boot.
|
|
201
|
+
*
|
|
202
|
+
* @param fields - champs analysés par {@link parseEntityFields}.
|
|
203
|
+
* @param options - dialecte, stratégie d'identifiant, horodatages, suppression douce.
|
|
204
|
+
*/
|
|
205
|
+
export declare function buildEntityCodegen(fields: IEntityField[], options: {
|
|
206
|
+
dialect: TEntityDialect;
|
|
207
|
+
id: TEntityIdKind;
|
|
208
|
+
timestamps: boolean;
|
|
209
|
+
softDelete: boolean;
|
|
210
|
+
/**
|
|
211
|
+
* Nom de la table — sert à préfixer les noms d'index.
|
|
212
|
+
*
|
|
213
|
+
* Requis : en PostgreSQL comme en SQLite, un nom d'index est unique pour
|
|
214
|
+
* TOUTE la base. Deux entités qui indexeraient chacune un `title` se
|
|
215
|
+
* marcheraient dessus au premier boot.
|
|
216
|
+
*/
|
|
217
|
+
table: string;
|
|
218
|
+
/**
|
|
219
|
+
* Index de TABLE, portant une ou plusieurs colonnes ({@link parseEntityIndexes}).
|
|
220
|
+
*
|
|
221
|
+
* Fusionnés avec ceux que les champs déclarent par `:index` — un même jeu de
|
|
222
|
+
* colonnes n'est émis qu'une fois, quelle que soit la voie empruntée.
|
|
223
|
+
*/
|
|
224
|
+
indexes?: IEntityIndex[];
|
|
225
|
+
/**
|
|
226
|
+
* Casse des noms de COLONNES SQL — les propriétés TypeScript n'en dépendent pas.
|
|
227
|
+
*
|
|
228
|
+
* Défaut `camel` : le comportement historique, où la colonne porte le nom de la
|
|
229
|
+
* propriété. Une application existante impose presque toujours `snake`.
|
|
230
|
+
*/
|
|
231
|
+
columnCase?: TColumnCase;
|
|
232
|
+
/**
|
|
233
|
+
* Nom SQL de la colonne de clé primaire (défaut `id`).
|
|
234
|
+
*
|
|
235
|
+
* La propriété reste `id` quoi qu'il arrive — cf {@link primaryKeyColumn}.
|
|
236
|
+
*/
|
|
237
|
+
idName?: string;
|
|
238
|
+
}): IEntityCodegen;
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Met en forme ce que le scaffold produit, avec le prettier DU PROJET.
|
|
3
|
+
*
|
|
4
|
+
* Pourquoi c'est ici et pas dans les gabarits : la forme canonique d'une ligne
|
|
5
|
+
* dépend souvent d'un identifiant que l'UTILISATEUR choisit.
|
|
6
|
+
* `export type ReportingMensuelConfigInput = z.input<…>` fait 87 colonnes ;
|
|
7
|
+
* le même gabarit nommé `blog` tient sous 80. Un gabarit rend UNE forme, donc
|
|
8
|
+
* aucune écriture de gabarit ne peut être juste pour tous les noms — ce n'est
|
|
9
|
+
* pas un cas particulier, c'est la règle, puisque presque tout ce qu'un
|
|
10
|
+
* générateur produit porte un nom dérivé. Mesuré : une application avec tous
|
|
11
|
+
* les générateurs rendait 16 fichiers que son propre `npm run format`
|
|
12
|
+
* réécrivait au premier passage.
|
|
13
|
+
*
|
|
14
|
+
* Le coût qui avait fait écarter cette solution — embarquer prettier dans le
|
|
15
|
+
* CLI, ~8 Mo dans chaque image de production — n'existe pas : l'application
|
|
16
|
+
* générée a DÉJÀ prettier en dépendance de développement. On emprunte le sien,
|
|
17
|
+
* et on ne fait rien s'il est absent.
|
|
18
|
+
*
|
|
19
|
+
* Trois règles, chacune tenant à une raison précise :
|
|
20
|
+
*
|
|
21
|
+
* 1. **Une CRÉATION est formatée, une RÉÉCRITURE seulement si le fichier
|
|
22
|
+
* suivait déjà prettier.** Une réécriture touche du code que l'utilisateur a
|
|
23
|
+
* écrit ; reformater en entier un fichier qui a son propre style produirait
|
|
24
|
+
* un diff énorme et lui imposerait notre convention. `format(avant) ===
|
|
25
|
+
* avant` répond exactement à « ce projet suit-il prettier ? ».
|
|
26
|
+
* 2. **Le formatage a lieu AVANT que le plan soit calculé**, jamais au vidage
|
|
27
|
+
* de la transaction : sinon `--dry-run` annoncerait une forme que
|
|
28
|
+
* l'exécution ne produirait pas. Une option dont le seul rôle est de dire ce
|
|
29
|
+
* qui va se passer ne peut pas mentir.
|
|
30
|
+
* 3. **Un échec ne bloque jamais une génération.** Prettier absent, illisible,
|
|
31
|
+
* ou qui refuse un fichier : on écrit le contenu tel quel. La mise en forme
|
|
32
|
+
* est un confort, pas une garantie.
|
|
33
|
+
*/
|
|
34
|
+
import type { ScaffoldWriter } from "./writer.js";
|
|
35
|
+
/** Ce que la mise en forme a fait — matière du récapitulatif du CLI. */
|
|
36
|
+
export interface IFormatOutcome {
|
|
37
|
+
/** Fichiers effectivement remis en forme. */
|
|
38
|
+
formatted: number;
|
|
39
|
+
/**
|
|
40
|
+
* Fichiers formatables qu'on a laissés tels quels faute de prettier. Zéro
|
|
41
|
+
* quand il n'y avait rien à formater : le CLI ne parle que si ça compte.
|
|
42
|
+
*/
|
|
43
|
+
pending: number;
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Met en forme des fichiers DÉJÀ ÉCRITS, nommés un par un.
|
|
47
|
+
*
|
|
48
|
+
* La seconde porte, pour le seul cas que la transaction ne peut pas servir :
|
|
49
|
+
* `create app` écrit ses fichiers AVANT `npm install`, donc au moment du rendu
|
|
50
|
+
* le projet n'a aucun prettier à prêter. On repasse après l'installation.
|
|
51
|
+
*
|
|
52
|
+
* 🔴 **La liste est celle des fichiers que le scaffold a ÉCRITS, jamais un
|
|
53
|
+
* dossier.** Passer `.` à prettier reformaterait le projet ENTIER — le code que
|
|
54
|
+
* l'utilisateur a écrit compris, avec un diff qui déborde très loin de ce qu'on
|
|
55
|
+
* vient de générer. Un générateur met en forme ce qu'il produit, rien d'autre.
|
|
56
|
+
*
|
|
57
|
+
* Le prettier du projet est chargé comme MODULE, jamais lancé comme binaire :
|
|
58
|
+
* sous Windows le binaire est un `.cmd`, et depuis le correctif de
|
|
59
|
+
* CVE-2024-27980 Node refuse d'exécuter un `.cmd` sans `shell: true` (`EINVAL`).
|
|
60
|
+
* Passer par un shell demanderait ensuite d'échapper un chemin qui contient
|
|
61
|
+
* couramment des espaces. Le module n'a aucun de ces deux problèmes.
|
|
62
|
+
*
|
|
63
|
+
* @param files - chemins ABSOLUS des fichiers écrits par le scaffold.
|
|
64
|
+
* @param dest - dossier du projet, point de départ de la recherche de prettier.
|
|
65
|
+
* @returns ce qui a été mis en forme, et ce qui attend faute de prettier.
|
|
66
|
+
*/
|
|
67
|
+
export declare function formatFilesOnDisk(files: string[], dest: string): IFormatOutcome;
|
|
68
|
+
/**
|
|
69
|
+
* Met en forme les écritures en attente, dans la transaction.
|
|
70
|
+
*
|
|
71
|
+
* Appelée par {@link runScaffold} AVANT la bifurcation dry-run / vidage, pour
|
|
72
|
+
* que le plan annoncé et le résultat écrit soient le même texte.
|
|
73
|
+
*
|
|
74
|
+
* @param writer - la transaction du scaffold racine.
|
|
75
|
+
* @param dest - dossier visé, point de départ de la recherche de prettier.
|
|
76
|
+
* @returns ce qui a été mis en forme, et ce qui attend faute de prettier.
|
|
77
|
+
*/
|
|
78
|
+
export declare function formatScaffoldOutput(writer: ScaffoldWriter, dest: string): IFormatOutcome;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { Readable, Writable } from "node:stream";
|
|
2
|
+
import type { IScaffoldTypeSpec } from "./spec.js";
|
|
3
|
+
import type { IScaffoldCaps, IScaffoldContext, TScaffoldAnswers } from "./engine.js";
|
|
4
|
+
/** Confirmation simple `[O/n]` — pour le récap final avant génération. */
|
|
5
|
+
export declare function confirm(question: string, input?: Readable, output?: Writable): Promise<boolean>;
|
|
6
|
+
/**
|
|
7
|
+
* Pose les questions de la spec NON déjà répondues (les flags argv gagnent —
|
|
8
|
+
* on ne redemande jamais ce que l'utilisateur a déjà dit) et retourne les
|
|
9
|
+
* réponses fusionnées. Les questions `askIf` non satisfaites sont sautées.
|
|
10
|
+
*/
|
|
11
|
+
export declare function askMissing(spec: IScaffoldTypeSpec, partial: TScaffoldAnswers, caps: IScaffoldCaps, input?: Readable, output?: Writable, context?: IScaffoldContext | null): Promise<TScaffoldAnswers>;
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* OÙ les modules d'un dépôt vivent, et sous quel NOM ils naissent.
|
|
3
|
+
*
|
|
4
|
+
* ## Le problème que ça règle
|
|
5
|
+
*
|
|
6
|
+
* `create module` posait ses modules dans `modules/<nom>` en dur, avec un scope
|
|
7
|
+
* npm dérivé du nom de l'application. C'est juste pour une app générée — et faux
|
|
8
|
+
* pour un monorepo qui range ses paquets ailleurs, à commencer par le dépôt du
|
|
9
|
+
* framework lui-même (`src/packages/@nodefony/*`). Conséquence vécue : l'auteur
|
|
10
|
+
* du framework écrivait à la main le squelette que sa propre commande sait
|
|
11
|
+
* produire, et le squelette dérivait sans que rien ne le signale.
|
|
12
|
+
*
|
|
13
|
+
* ## La règle
|
|
14
|
+
*
|
|
15
|
+
* Le layout se **CONSTATE** dans les `workspaces` du `package.json` de la
|
|
16
|
+
* racine — jamais ne se déduit d'un nom de dépôt ni d'un chemin en dur. Une
|
|
17
|
+
* entrée de la forme `<prefixe>/@<scope>/*` déclare un dossier de **paquets
|
|
18
|
+
* scopés** : un module qui y naît est un paquet publiable, et prend ce scope.
|
|
19
|
+
* Sans une telle entrée, on est dans le layout d'une application : `modules/`,
|
|
20
|
+
* scope dérivé du nom de l'app.
|
|
21
|
+
*
|
|
22
|
+
* Tout est DÉRIVÉ de la déclaration : rien n'est écrit en dur ici, pas même
|
|
23
|
+
* `@nodefony` — le dépôt du framework n'est qu'un cas particulier de la règle.
|
|
24
|
+
*
|
|
25
|
+
* ⚠️ Les chemins rendus ici **voyagent** (messages, comparaisons, gabarits) :
|
|
26
|
+
* ils sont donc en `/`, jamais en séparateur natif. Pour OUVRIR, l'appelant
|
|
27
|
+
* recompose (`path.join(root, ...dir.split("/"))`).
|
|
28
|
+
*/
|
|
29
|
+
/** Manifeste racine, réduit à ce dont le layout dépend. */
|
|
30
|
+
export interface IRootManifest {
|
|
31
|
+
name?: string;
|
|
32
|
+
workspaces?: string[];
|
|
33
|
+
}
|
|
34
|
+
/** Où poser un module, sous quel nom, et ce que le dépôt déclare déjà. */
|
|
35
|
+
export interface IModuleLayout {
|
|
36
|
+
/**
|
|
37
|
+
* `packages` : dossier de paquets scopés déclaré en workspace → le module naît
|
|
38
|
+
* PUBLIABLE (exports, types, `files`, peerDependencies).
|
|
39
|
+
* `modules` : layout d'application → module local, privé.
|
|
40
|
+
*/
|
|
41
|
+
kind: "packages" | "modules";
|
|
42
|
+
/** Dossier où créer un module neuf, relatif à la racine, en `/`. */
|
|
43
|
+
createDir: string;
|
|
44
|
+
/** Scope npm des modules créés, `@` compris. */
|
|
45
|
+
scope: string;
|
|
46
|
+
/** Dossiers à balayer pour lister les cibles existantes, en `/`. */
|
|
47
|
+
targetDirs: string[];
|
|
48
|
+
/**
|
|
49
|
+
* Le dépôt déclare-t-il DÉJÀ {@link createDir} en workspace npm ?
|
|
50
|
+
*
|
|
51
|
+
* `false` ⇒ l'appelant doit l'ajouter (sans le symlink de workspace, le Kernel
|
|
52
|
+
* ne peut pas importer le module par son nom). `true` ⇒ ne toucher à rien : un
|
|
53
|
+
* monorepo établi a ses propres scripts, et les chaîner par-dessus casserait sa
|
|
54
|
+
* chaîne de construction.
|
|
55
|
+
*/
|
|
56
|
+
workspaceDeclared: boolean;
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* Déduit le layout des modules à partir du manifeste de la racine.
|
|
60
|
+
*
|
|
61
|
+
* Fonction PURE (aucun accès disque) : le manifeste est lu par l'appelant, ce
|
|
62
|
+
* qui la rend éprouvable sur des dépôts qu'on n'a pas.
|
|
63
|
+
*
|
|
64
|
+
* @param manifest - `package.json` de la racine du projet, déjà analysé.
|
|
65
|
+
* @param projectDirName - nom du dossier racine, repli quand le manifeste n'a
|
|
66
|
+
* pas de `name` (le scope d'une app en dérive).
|
|
67
|
+
* @returns le layout à appliquer.
|
|
68
|
+
*/
|
|
69
|
+
export declare function resolveModuleLayout(manifest: IRootManifest, projectDirName: string): IModuleLayout;
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Noms d'entités que les modules du framework occupent déjà dans le registre ORM.
|
|
3
|
+
*
|
|
4
|
+
* Le registre d'entités est PLAT et partagé par toute l'application : deux entités
|
|
5
|
+
* du même nom ne cohabitent pas. Une application qui déclare la sienne écrase
|
|
6
|
+
* silencieusement celle d'un module, et l'échec ne se voit qu'au démarrage suivant,
|
|
7
|
+
* sous la forme d'une colonne inconnue dans une requête du module dépossédé — un
|
|
8
|
+
* message qui ne nomme ni le doublon, ni le fichier fautif. D'où le refus AVANT
|
|
9
|
+
* d'écrire, avec le nom du propriétaire et une porte de sortie.
|
|
10
|
+
*
|
|
11
|
+
* ⚠️ Cette table décrit le FRAMEWORK, pas les modules tiers : un module applicatif
|
|
12
|
+
* inconnu d'ici peut réserver un nom qu'elle ignore. Elle est tenue honnête par le
|
|
13
|
+
* gate `NF_RUN_CLI_BOOT=1` de `CliIntegration.test.ts`, qui la confronte à ce que
|
|
14
|
+
* `nodefony inspect entities --json` rapporte réellement sur ce dépôt.
|
|
15
|
+
*/
|
|
16
|
+
/** Entité du framework : le nom occupé et le module qui le porte. */
|
|
17
|
+
export interface IReservedEntity {
|
|
18
|
+
/** Nom tel qu'il est enregistré au registre ORM. */
|
|
19
|
+
readonly name: string;
|
|
20
|
+
/** Module propriétaire (nom court, tel que rapporté par `inspect entities`). */
|
|
21
|
+
readonly module: string;
|
|
22
|
+
/** Ce que l'utilisateur devrait faire à la place. */
|
|
23
|
+
readonly advice: string;
|
|
24
|
+
/**
|
|
25
|
+
* `true` quand l'entité appartient à l'APPLICATION et non au framework.
|
|
26
|
+
*
|
|
27
|
+
* Le nom reste connu d'ici — un module le lit, et le registre reste plat —
|
|
28
|
+
* mais il n'est plus INTERDIT : le générateur écrit l'entité au lieu de la
|
|
29
|
+
* refuser, et le contrôle de câblage ne la dénonce plus. Sans cette
|
|
30
|
+
* distinction, les deux lieux qui consultent cette table auraient chacun leur
|
|
31
|
+
* exception, et elles auraient divergé.
|
|
32
|
+
*/
|
|
33
|
+
readonly appOwned?: true;
|
|
34
|
+
}
|
|
35
|
+
export declare const RESERVED_ENTITY_NAMES: readonly IReservedEntity[];
|
|
36
|
+
/**
|
|
37
|
+
* Cherche une collision de nom d'entité avec le framework.
|
|
38
|
+
*
|
|
39
|
+
* Comparaison INSENSIBLE À LA CASSE et aux séparateurs : `AccessToken`,
|
|
40
|
+
* `access_token` et `accesstoken` désignent la même table pour un humain comme
|
|
41
|
+
* pour la plupart des moteurs (MySQL et SQLite comparent les noms de table sans
|
|
42
|
+
* égard à la casse sur les systèmes de fichiers courants). Laisser passer
|
|
43
|
+
* `AccessToken` parce que le registre écrit `access_token` reviendrait à autoriser
|
|
44
|
+
* exactement la panne qu'on cherche à éviter.
|
|
45
|
+
*
|
|
46
|
+
* @param name - nom d'entité demandé (`create entity <Nom>`).
|
|
47
|
+
* @returns l'entrée réservée qui entre en conflit, ou `null` si le nom est libre.
|
|
48
|
+
*/
|
|
49
|
+
export declare function findReservedEntity(name: string): IReservedEntity | null;
|
|
@@ -0,0 +1,159 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Spec DÉCLARATIVE du scaffold — la source unique des choix de création.
|
|
3
|
+
*
|
|
4
|
+
* Les questions sont des DONNÉES (JSON-able, zéro fonction) : le même contrat
|
|
5
|
+
* alimente les TROIS fronts de création —
|
|
6
|
+
* 1. CLI rapide : flags argv → réponses (`--preset minimal --frontend react`) ;
|
|
7
|
+
* 2. CLI interactif : `interactive.ts` rend chaque question en readline natif ;
|
|
8
|
+
* 3. Studio : un endpoint data plane sert `getScaffoldSpec()` en JSON,
|
|
9
|
+
* le formulaire React poste les réponses au MÊME moteur (`engine.ts`).
|
|
10
|
+
*
|
|
11
|
+
* ⚠️ **Deux fronts sur trois se servent seuls** : l'interactif et Studio LISENT
|
|
12
|
+
* cette spec, donc une question ajoutée y apparaît sans qu'on les touche. La
|
|
13
|
+
* voie FLAGS, elle, a une analyse écrite à la main (`parseCreateArgv`) : une
|
|
14
|
+
* question sans drapeau est servie à l'humain et REFUSÉE au script, sans un mot
|
|
15
|
+
* — c'est arrivé. Le drapeau se déduit de la clé (`maClé` → `--ma-cle`), sauf
|
|
16
|
+
* mention `flag` ; et un test du dépôt refuse toute question qu'aucun drapeau
|
|
17
|
+
* ne sert.
|
|
18
|
+
*/
|
|
19
|
+
export interface IScaffoldQuestion {
|
|
20
|
+
key: string;
|
|
21
|
+
/** Libellé montré tel quel par le CLI interactif et Studio. */
|
|
22
|
+
label: string;
|
|
23
|
+
/**
|
|
24
|
+
* `"list"` = plusieurs valeurs indépendantes, chacune conservée entière.
|
|
25
|
+
*
|
|
26
|
+
* Distinct de `"string"` pour une raison qui se paie cher autrement : les
|
|
27
|
+
* réponses sont normalisées en texte, et deux valeurs concaténées deviennent
|
|
28
|
+
* indiscernables d'une seule. Deux index de deux colonnes se fondraient ainsi en
|
|
29
|
+
* un index de quatre — du code qui compile et n'indexe pas ce qu'on croit.
|
|
30
|
+
*/
|
|
31
|
+
type: "string" | "boolean" | "choice" | "list";
|
|
32
|
+
/** Choix ordonnés (type "choice") — le premier N'est PAS forcément le défaut. */
|
|
33
|
+
choices?: {
|
|
34
|
+
value: string;
|
|
35
|
+
label: string;
|
|
36
|
+
hint?: string;
|
|
37
|
+
}[];
|
|
38
|
+
default: string | boolean | string[];
|
|
39
|
+
/** Regex source (sans flags) que la valeur string doit satisfaire. */
|
|
40
|
+
pattern?: string;
|
|
41
|
+
/** Message d'aide affiché si la validation échoue. */
|
|
42
|
+
patternHint?: string;
|
|
43
|
+
/**
|
|
44
|
+
* Condition d'affichage par CAPACITÉ d'environnement (JSON-able — pas de
|
|
45
|
+
* fonction) : la question n'est posée que si le front la déclare vraie.
|
|
46
|
+
* `hasCheckout` = un checkout nodefony-core est résolvable (mode --link).
|
|
47
|
+
*/
|
|
48
|
+
askIf?: "hasCheckout";
|
|
49
|
+
/**
|
|
50
|
+
* Condition d'affichage par RÉPONSE PRÉCÉDENTE (JSON-able) : la question n'est
|
|
51
|
+
* posée que si `key` a déjà pour valeur `equals`. Distinct d'`askIf`, qui
|
|
52
|
+
* interroge l'ENVIRONNEMENT (un checkout est-il là ?) là où celle-ci exprime
|
|
53
|
+
* une dépendance entre deux choix de la même création.
|
|
54
|
+
*
|
|
55
|
+
* Non satisfaite, la question n'est ni posée ni honorée : sa valeur retombe au
|
|
56
|
+
* DÉFAUT de la spec. Une réponse portant sur ce qui ne sera pas généré n'a pas
|
|
57
|
+
* de sens à conserver — `--database postgres --preset minimal` ne rend aucun
|
|
58
|
+
* `compose.yaml` où mettre un service.
|
|
59
|
+
*
|
|
60
|
+
* La question référencée doit précéder celle-ci : le moteur comme le dialogue
|
|
61
|
+
* résolvent les questions dans l'ordre de la spec.
|
|
62
|
+
*/
|
|
63
|
+
askWhen?: {
|
|
64
|
+
key: string;
|
|
65
|
+
equals: string;
|
|
66
|
+
};
|
|
67
|
+
/**
|
|
68
|
+
* Source des choix RÉELS de cette question, dans le projet courant (JSON-able,
|
|
69
|
+
* même esprit qu'`askIf`).
|
|
70
|
+
*
|
|
71
|
+
* Certaines réponses ne sont connues que du projet : les connecteurs qu'il
|
|
72
|
+
* déclare, les entités qu'il contient déjà. Les écrire dans la spec serait
|
|
73
|
+
* faux le lendemain. La question désigne donc une clé de
|
|
74
|
+
* `getScaffoldContext()`, et chaque front l'hydrate à sa manière — Studio en
|
|
75
|
+
* liste déroulante, le terminal en choix numérotés, `--describe-json` en
|
|
76
|
+
* embarquant le contexte.
|
|
77
|
+
*
|
|
78
|
+
* Sans cela, `ref:` et `--connector` restent du texte libre : une faute de
|
|
79
|
+
* frappe passe le scaffold et ne se voit qu'au démarrage suivant.
|
|
80
|
+
*/
|
|
81
|
+
optionsFrom?: "connectors" | "entities";
|
|
82
|
+
/**
|
|
83
|
+
* Réglage **avancé** : jamais posé en dialogue (son défaut est sûr), mais piloté par
|
|
84
|
+
* une option de la ligne de commande — et proposé par Studio dans un repli.
|
|
85
|
+
*
|
|
86
|
+
* Pourquoi ce drapeau plutôt que sortir la question de la spec : c'est la spec qui
|
|
87
|
+
* porte les défauts, la validation et les valeurs permises. Une option absente d'ici
|
|
88
|
+
* serait silencieusement ignorée par le moteur (`resolveAnswers` ne garde que les
|
|
89
|
+
* clés déclarées) — le pire des deux mondes.
|
|
90
|
+
*/
|
|
91
|
+
advanced?: boolean;
|
|
92
|
+
/**
|
|
93
|
+
* Nom du drapeau de ligne de commande, quand il ne se DÉDUIT pas de la clé.
|
|
94
|
+
*
|
|
95
|
+
* La convention est `maClé` → `--ma-cle`, et elle couvre presque tout. Restent
|
|
96
|
+
* les cas où le drapeau dit l'inverse (`timestamps` se règle par
|
|
97
|
+
* `--no-timestamps` : le défaut est vrai, seul le retrait se nomme) ou porte
|
|
98
|
+
* un autre mot (`uniqueIndex` → `--unique`, répétable).
|
|
99
|
+
*
|
|
100
|
+
* 🔴 **Pourquoi ce champ existe plutôt qu'une table dans un test** : sans lui,
|
|
101
|
+
* rien ne relie une question à sa voie « script », et une question ajoutée
|
|
102
|
+
* sans drapeau est servie à l'humain, refusée au script — sans un mot. C'est
|
|
103
|
+
* arrivé (`agents`). Le déclarer ICI rend le contrôle possible depuis la spec
|
|
104
|
+
* elle-même, et l'affirmation de l'en-tête enfin vraie.
|
|
105
|
+
*/
|
|
106
|
+
flag?: string;
|
|
107
|
+
}
|
|
108
|
+
/** Spec d'un type de scaffold (`app` aujourd'hui ; `module`/`controller`/`entity` suivent). */
|
|
109
|
+
export interface IScaffoldTypeSpec {
|
|
110
|
+
type: string;
|
|
111
|
+
description: string;
|
|
112
|
+
questions: IScaffoldQuestion[];
|
|
113
|
+
}
|
|
114
|
+
/** Frameworks front supportés par `@nodefony/frontend` (builder Vite multi-framework). */
|
|
115
|
+
export declare const FRONTEND_CHOICES: readonly ["none", "react", "vue", "angular", "svelte"];
|
|
116
|
+
export type TFrontendChoice = (typeof FRONTEND_CHOICES)[number];
|
|
117
|
+
/** Presets d'app : la vitrine complète (défaut) ou la base saine http+framework. */
|
|
118
|
+
export declare const PRESET_CHOICES: readonly ["complete", "minimal"];
|
|
119
|
+
export type TPresetChoice = (typeof PRESET_CHOICES)[number];
|
|
120
|
+
/**
|
|
121
|
+
* Base SQL de développement — le dialecte que l'app vise, choisi À LA CRÉATION.
|
|
122
|
+
*
|
|
123
|
+
* `sqlite` reste le défaut : c'est le seul qui n'exige aucun service, et la
|
|
124
|
+
* promesse du framework est qu'une app fraîche démarre sans rien allumer. Les
|
|
125
|
+
* trois autres ne changent RIEN dans le code de l'app (l'ORM déduit le dialecte
|
|
126
|
+
* du scheme de `NF_DATABASE_URL`) — ils décident du service que l'infra de dev
|
|
127
|
+
* fournit, et de l'URL qui la joint.
|
|
128
|
+
*/
|
|
129
|
+
export declare const DATABASE_CHOICES: readonly ["sqlite", "postgres", "mariadb", "mysql"];
|
|
130
|
+
export type TDatabaseChoice = (typeof DATABASE_CHOICES)[number];
|
|
131
|
+
/** Saveurs de controller : le WS est TOUJOURS là (différenciateur Nodefony). */
|
|
132
|
+
export declare const CONTROLLER_KIND_CHOICES: readonly ["hello", "rest", "duplex", "realtime", "example"];
|
|
133
|
+
export type TControllerKindChoice = (typeof CONTROLLER_KIND_CHOICES)[number];
|
|
134
|
+
/**
|
|
135
|
+
* Saveurs de controller posables AVEC le module — les mêmes que `create
|
|
136
|
+
* controller` (le scaffold module DÉLÈGUE, il ne duplique aucun template),
|
|
137
|
+
* plus `none` pour une coquille nue.
|
|
138
|
+
*/
|
|
139
|
+
export declare const MODULE_CONTROLLER_CHOICES: readonly ["none", "hello", "rest", "duplex", "realtime", "example"];
|
|
140
|
+
export type TModuleControllerChoice = (typeof MODULE_CONTROLLER_CHOICES)[number];
|
|
141
|
+
/**
|
|
142
|
+
* Phases de boot proposées comme point d'exécution d'une commande.
|
|
143
|
+
*
|
|
144
|
+
* C'est le `kernelEvent` de `OptionsCommandInterface` — le kernel s'ARRÊTE à
|
|
145
|
+
* cette phase. Trois valeurs suffisent à couvrir les usages réels ; les autres
|
|
146
|
+
* phases (`onPreBoot`, `onServersReady`…) restent atteignables en éditant le
|
|
147
|
+
* fichier généré, mais n'ont pas à être proposées à qui crée sa première
|
|
148
|
+
* commande.
|
|
149
|
+
*/
|
|
150
|
+
export declare const COMMAND_PHASE_CHOICES: readonly ["onReady", "onRegister", "onPostReady"];
|
|
151
|
+
export type TCommandPhaseChoice = (typeof COMMAND_PHASE_CHOICES)[number];
|
|
152
|
+
/** Stratégies de clé primaire proposées par `create entity`. */
|
|
153
|
+
export declare const ENTITY_ID_CHOICES: readonly ["uuid7", "uuid4", "serial"];
|
|
154
|
+
export type TEntityIdChoice = (typeof ENTITY_ID_CHOICES)[number];
|
|
155
|
+
/**
|
|
156
|
+
* La spec complète du scaffold — contrat des trois fronts (CLI rapide,
|
|
157
|
+
* CLI interactif, Studio). Structure 100 % sérialisable en JSON.
|
|
158
|
+
*/
|
|
159
|
+
export declare function getScaffoldSpec(type?: string): IScaffoldTypeSpec[];
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Étapes qui SUIVENT l'écriture d'un scaffold.
|
|
3
|
+
*
|
|
4
|
+
* Le moteur (`engine.ts`) est pur : il écrit des fichiers et s'arrête là. Mais
|
|
5
|
+
* du code écrit n'est pas encore du code qui tourne — il reste à installer les
|
|
6
|
+
* dépendances, construire, vérifier les types. Ces étapes sont donc décrites
|
|
7
|
+
* ICI, une fois, et exécutées par chaque front à sa façon : le CLI hérite du
|
|
8
|
+
* terminal de l'utilisateur, Studio streame chaque ligne sur un canal temps
|
|
9
|
+
* réel. Les deux manières de LES MONTRER sont légitimement différentes ; ce qui
|
|
10
|
+
* ne doit pas diverger, c'est CE QU'ELLES SONT.
|
|
11
|
+
*
|
|
12
|
+
* La commande de chaque étape est figée côté serveur. Un front n'envoie jamais
|
|
13
|
+
* qu'un identifiant d'étape, jamais une ligne de commande : c'est ce qui sépare
|
|
14
|
+
* « piloter un générateur » de « exécuter du shell à distance ».
|
|
15
|
+
*/
|
|
16
|
+
/** Étapes possibles, dans leur ordre d'exécution naturel. */
|
|
17
|
+
export declare const SCAFFOLD_STEPS: readonly ["install", "build", "typecheck"];
|
|
18
|
+
export type TScaffoldStep = (typeof SCAFFOLD_STEPS)[number];
|
|
19
|
+
/** Arguments passés à `npm` pour chaque étape. */
|
|
20
|
+
export declare const SCAFFOLD_STEP_COMMANDS: Record<TScaffoldStep, readonly string[]>;
|
|
21
|
+
/** Ce que chaque étape apporte — affiché avant de la lancer. */
|
|
22
|
+
export declare const SCAFFOLD_STEP_LABELS: Record<TScaffoldStep, string>;
|
|
23
|
+
/** Une étape connue ? (garde des entrées venues du réseau). */
|
|
24
|
+
export declare function isScaffoldStep(value: unknown): value is TScaffoldStep;
|