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.
Files changed (903) hide show
  1. package/.ai/symbols.json +36135 -0
  2. package/LICENSE +544 -0
  3. package/README.md +316 -694
  4. package/bin/nodefony +2183 -85
  5. package/dist/client/Container.js +367 -0
  6. package/dist/client/Event.js +198 -0
  7. package/dist/client/Service.js +344 -0
  8. package/dist/client/Tools.js +162 -0
  9. package/dist/client/client/ClientKernel.js +276 -0
  10. package/dist/client/client/angular/index.js +352 -0
  11. package/dist/client/client/announce.js +212 -0
  12. package/dist/client/client/debugbar/DebugBar.js +1624 -0
  13. package/dist/client/client/debugbar/format.js +103 -0
  14. package/dist/client/client/debugbar/hmr.js +37 -0
  15. package/dist/client/client/debugbar/index.js +29 -0
  16. package/dist/client/client/debugbar/model.js +133 -0
  17. package/dist/client/client/debugbar/network.js +173 -0
  18. package/dist/client/client/debugbar/profile.js +114 -0
  19. package/dist/client/client/index.js +34 -0
  20. package/dist/client/client/react/index.js +268 -0
  21. package/dist/client/client/realtime/AdaptiveRate.js +240 -0
  22. package/dist/client/client/realtime/BrowserWsTransport.js +57 -0
  23. package/dist/client/client/realtime/RealtimeClient.js +898 -0
  24. package/dist/client/client/realtime/localEvents.js +56 -0
  25. package/dist/client/client/realtime/notice.js +125 -0
  26. package/dist/client/client/realtime/observe.js +280 -0
  27. package/dist/client/client/roles/index.js +3 -0
  28. package/dist/client/client/roles/registry.js +97 -0
  29. package/dist/client/client/roles/roles.js +91 -0
  30. package/dist/client/client/shim/events.js +88 -0
  31. package/dist/client/client/shim/util.js +20 -0
  32. package/dist/client/client/svelte/index.js +319 -0
  33. package/dist/client/client/syslog/context.js +122 -0
  34. package/dist/client/client/syslog/errors.js +49 -0
  35. package/dist/client/client/syslog/uplink.js +106 -0
  36. package/dist/client/client/vue/index.js +321 -0
  37. package/dist/client/colors.js +63 -0
  38. package/dist/client/debugbar.standalone.js +4274 -0
  39. package/dist/client/realtime/IRealtimeTransport.js +32 -0
  40. package/dist/client/realtime/JsonRpcPeer.js +251 -0
  41. package/dist/client/realtime/channelRate.js +39 -0
  42. package/dist/client/realtime/platformChannels.js +155 -0
  43. package/dist/client/syslog/Pdu.js +224 -0
  44. package/dist/client/syslog/Syslog.js +1159 -0
  45. package/dist/client/syslog/drivers/pduFlow.js +106 -0
  46. package/dist/client/syslog/drivers/pduProtocol.js +28 -0
  47. package/dist/client/syslog/logColor.js +80 -0
  48. package/dist/client/types/src/Container.d.ts +221 -0
  49. package/dist/client/types/src/Event.d.ts +171 -0
  50. package/dist/client/types/src/FileClass.d.ts +184 -0
  51. package/dist/client/types/src/Service.d.ts +165 -0
  52. package/dist/client/types/src/Tools.d.ts +116 -0
  53. package/dist/client/types/src/client/ClientKernel.d.ts +90 -0
  54. package/dist/client/types/src/client/IClientKernel.d.ts +195 -0
  55. package/dist/client/types/src/client/angular/index.d.ts +273 -0
  56. package/dist/client/types/src/client/announce.d.ts +74 -0
  57. package/dist/client/types/src/client/debugbar/DebugBar.d.ts +279 -0
  58. package/dist/client/types/src/client/debugbar/format.d.ts +48 -0
  59. package/dist/client/types/src/client/debugbar/hmr.d.ts +16 -0
  60. package/dist/client/types/src/client/debugbar/index.d.ts +30 -0
  61. package/dist/client/types/src/client/debugbar/model.d.ts +158 -0
  62. package/dist/client/types/src/client/debugbar/network.d.ts +55 -0
  63. package/dist/client/types/src/client/debugbar/profile.d.ts +99 -0
  64. package/dist/client/types/src/client/index.d.ts +47 -0
  65. package/dist/client/types/src/client/react/index.d.ts +207 -0
  66. package/dist/client/types/src/client/realtime/AdaptiveRate.d.ts +138 -0
  67. package/dist/client/types/src/client/realtime/BrowserWsTransport.d.ts +27 -0
  68. package/dist/client/types/src/client/realtime/RealtimeClient.d.ts +573 -0
  69. package/dist/client/types/src/client/realtime/localEvents.d.ts +53 -0
  70. package/dist/client/types/src/client/realtime/notice.d.ts +70 -0
  71. package/dist/client/types/src/client/realtime/observe.d.ts +284 -0
  72. package/dist/client/types/src/client/roles/index.d.ts +15 -0
  73. package/dist/client/types/src/client/roles/registry.d.ts +72 -0
  74. package/dist/client/types/src/client/roles/roles.d.ts +68 -0
  75. package/dist/client/types/src/client/shim/cli-color.d.ts +2 -0
  76. package/dist/client/types/src/client/shim/events.d.ts +39 -0
  77. package/dist/client/types/src/client/shim/util.d.ts +14 -0
  78. package/dist/client/types/src/client/svelte/index.d.ts +216 -0
  79. package/dist/client/types/src/client/syslog/context.d.ts +76 -0
  80. package/dist/client/types/src/client/syslog/errors.d.ts +46 -0
  81. package/dist/client/types/src/client/syslog/uplink.d.ts +89 -0
  82. package/dist/client/types/src/client/transport/websocket.d.ts +5 -0
  83. package/dist/client/types/src/client/vue/index.d.ts +234 -0
  84. package/dist/client/types/src/colors.d.ts +32 -0
  85. package/dist/client/types/src/config/infra.d.ts +171 -0
  86. package/dist/client/types/src/kernel/bootReport.d.ts +112 -0
  87. package/dist/client/types/src/kernel/readinessRegistry.d.ts +104 -0
  88. package/dist/client/types/src/realtime/IRealtimeSocket.d.ts +142 -0
  89. package/dist/client/types/src/realtime/IRealtimeTransport.d.ts +50 -0
  90. package/dist/client/types/src/realtime/JsonRpcPeer.d.ts +251 -0
  91. package/dist/client/types/src/realtime/RealtimeEventMap.d.ts +269 -0
  92. package/dist/client/types/src/realtime/channelRate.d.ts +55 -0
  93. package/dist/client/types/src/realtime/platformChannels.d.ts +147 -0
  94. package/dist/client/types/src/syslog/Pdu.d.ts +134 -0
  95. package/dist/client/types/src/syslog/Syslog.d.ts +482 -0
  96. package/dist/client/types/src/syslog/drivers/ILogDriver.d.ts +177 -0
  97. package/dist/client/types/src/syslog/drivers/pduFlow.d.ts +53 -0
  98. package/dist/client/types/src/syslog/drivers/pduProtocol.d.ts +20 -0
  99. package/dist/client/types/src/syslog/logColor.d.ts +59 -0
  100. package/dist/client/types/src/types/ICliKernel.d.ts +28 -0
  101. package/dist/client/types/src/types/ICommand.d.ts +14 -0
  102. package/dist/client/types/src/types/IContainer.d.ts +35 -0
  103. package/dist/client/types/src/types/IKernel.d.ts +138 -0
  104. package/dist/client/types/src/types/IMcpTool.d.ts +157 -0
  105. package/dist/client/types/src/types/IModule.d.ts +73 -0
  106. package/dist/client/types/src/types/IPage.d.ts +119 -0
  107. package/dist/client/types/src/types/IService.d.ts +62 -0
  108. package/dist/client/types/src/types/ISyslog.d.ts +58 -0
  109. package/dist/client/types/src/types/ITransport.d.ts +5 -0
  110. package/dist/client/types/src/types/globals.d.ts +47 -0
  111. package/dist/node/Cli.js +750 -0
  112. package/dist/node/Container.js +367 -0
  113. package/dist/node/Error.js +309 -0
  114. package/dist/node/Event.js +198 -0
  115. package/dist/node/FileClass.js +308 -0
  116. package/dist/node/Nodefony.js +78 -0
  117. package/dist/node/Service.js +344 -0
  118. package/dist/node/Tools.js +205 -0
  119. package/dist/node/bin/resolveLocalCli.js +10 -0
  120. package/dist/node/bundler/index.js +103 -0
  121. package/dist/node/cli/agentTargets.js +461 -0
  122. package/dist/node/cli/aiMcp.js +553 -0
  123. package/dist/node/cli/aiMcpReport.js +129 -0
  124. package/dist/node/cli/aiSync.js +323 -0
  125. package/dist/node/cli/aiSyncReport.js +142 -0
  126. package/dist/node/cli/card.js +186 -0
  127. package/dist/node/cli/cardReport.js +110 -0
  128. package/dist/node/cli/completion.js +415 -0
  129. package/dist/node/cli/create.js +805 -0
  130. package/dist/node/cli/env.js +332 -0
  131. package/dist/node/cli/envReport.js +159 -0
  132. package/dist/node/cli/execPortable.js +60 -0
  133. package/dist/node/cli/gitHooks.js +191 -0
  134. package/dist/node/cli/gitHooksReport.js +119 -0
  135. package/dist/node/cli/globalFlags.js +67 -0
  136. package/dist/node/cli/helpReport.js +288 -0
  137. package/dist/node/cli/manPage.js +165 -0
  138. package/dist/node/cli/nodefonyBin.js +61 -0
  139. package/dist/node/cli/outdated.js +144 -0
  140. package/dist/node/cli/progress.js +555 -0
  141. package/dist/node/cli/projectRoot.js +32 -0
  142. package/dist/node/cli/promptPassword.js +44 -0
  143. package/dist/node/cli/prompts.js +86 -0
  144. package/dist/node/cli/scaffold/destination.js +92 -0
  145. package/dist/node/cli/scaffold/engine.js +2156 -0
  146. package/dist/node/cli/scaffold/entityFields.js +589 -0
  147. package/dist/node/cli/scaffold/format.js +243 -0
  148. package/dist/node/cli/scaffold/interactive.js +124 -0
  149. package/dist/node/cli/scaffold/moduleLayout.js +38 -0
  150. package/dist/node/cli/scaffold/reservedEntities.js +74 -0
  151. package/dist/node/cli/scaffold/spec.js +704 -0
  152. package/dist/node/cli/scaffold/steps.js +40 -0
  153. package/dist/node/cli/scaffold/userContractSource.js +133 -0
  154. package/dist/node/cli/scaffold/versions.js +57 -0
  155. package/dist/node/cli/scaffold/writer.js +172 -0
  156. package/dist/node/cli/startMenu.js +496 -0
  157. package/dist/node/cli/symbols.js +205 -0
  158. package/dist/node/cli/sysexits.js +34 -0
  159. package/dist/node/cli/tableReport.js +184 -0
  160. package/dist/node/cli/usageReport.js +144 -0
  161. package/dist/node/colors.js +63 -0
  162. package/dist/node/command/Builder.js +153 -0
  163. package/dist/node/command/Command.js +348 -0
  164. package/dist/node/config/configProvenance.js +101 -0
  165. package/dist/node/config/defaults.js +39 -0
  166. package/dist/node/config/defineConfig.js +129 -0
  167. package/dist/node/config/defineEnv.js +264 -0
  168. package/dist/node/config/envExample.js +41 -0
  169. package/dist/node/config/envOverride.js +423 -0
  170. package/dist/node/config/infra.js +163 -0
  171. package/dist/node/config/reactivity.js +23 -0
  172. package/dist/node/config/reservedEnv.js +118 -0
  173. package/dist/node/config/schema.js +134 -0
  174. package/dist/node/config/use.js +24 -0
  175. package/dist/node/finder/File.js +49 -0
  176. package/dist/node/finder/FileResult.js +86 -0
  177. package/dist/node/finder/Finder.js +201 -0
  178. package/dist/node/finder/Result.js +45 -0
  179. package/dist/node/index.js +121 -0
  180. package/dist/node/kernel/BootConfigurationError.js +54 -0
  181. package/dist/node/kernel/CliKernel.js +630 -0
  182. package/dist/node/kernel/Kernel.js +2198 -0
  183. package/dist/node/kernel/Module.js +453 -0
  184. package/dist/node/kernel/adminPlane/adminCaller.js +98 -0
  185. package/dist/node/kernel/adminPlane/adminRbac.js +51 -0
  186. package/dist/node/kernel/adminPlane/catalog.js +158 -0
  187. package/dist/node/kernel/adminPlane/executeAdmin.js +78 -0
  188. package/dist/node/kernel/checks/deep.js +335 -0
  189. package/dist/node/kernel/checks/freshness.js +139 -0
  190. package/dist/node/kernel/checks/gating.js +231 -0
  191. package/dist/node/kernel/checks/guards.js +232 -0
  192. package/dist/node/kernel/checks/lastBoot.js +136 -0
  193. package/dist/node/kernel/checks/live.js +330 -0
  194. package/dist/node/kernel/checks/packageDeps.js +292 -0
  195. package/dist/node/kernel/checks/readiness.js +153 -0
  196. package/dist/node/kernel/checks/renderReport.js +780 -0
  197. package/dist/node/kernel/checks/report.js +421 -0
  198. package/dist/node/kernel/checks/runDoctor.js +731 -0
  199. package/dist/node/kernel/checks/surface.js +364 -0
  200. package/dist/node/kernel/checks/walk.js +100 -0
  201. package/dist/node/kernel/checks/wiring.js +450 -0
  202. package/dist/node/kernel/commands/AiMcpCommand.js +65 -0
  203. package/dist/node/kernel/commands/AiSyncCommand.js +48 -0
  204. package/dist/node/kernel/commands/BuildCommand.js +49 -0
  205. package/dist/node/kernel/commands/CardCommand.js +50 -0
  206. package/dist/node/kernel/commands/ClusterCommand.js +58 -0
  207. package/dist/node/kernel/commands/CompletionCommand.js +31 -0
  208. package/dist/node/kernel/commands/CreateCommand.js +45 -0
  209. package/dist/node/kernel/commands/DevCommand.js +99 -0
  210. package/dist/node/kernel/commands/DoctorCommand.js +115 -0
  211. package/dist/node/kernel/commands/EnvCommand.js +52 -0
  212. package/dist/node/kernel/commands/GitHooksCommand.js +47 -0
  213. package/dist/node/kernel/commands/InspectCommand.js +153 -0
  214. package/dist/node/kernel/commands/InstallCommand.js +20 -0
  215. package/dist/node/kernel/commands/MenuCommand.js +261 -0
  216. package/dist/node/kernel/commands/OutdatedCommand.js +164 -0
  217. package/dist/node/kernel/commands/ProdCommand.js +60 -0
  218. package/dist/node/kernel/commands/StatusCommand.js +30 -0
  219. package/dist/node/kernel/commands/StopCommand.js +35 -0
  220. package/dist/node/kernel/commands/SymbolsCommand.js +45 -0
  221. package/dist/node/kernel/commands/runtimeLauncher.js +95 -0
  222. package/dist/node/kernel/decorators/kernelDecorator.js +110 -0
  223. package/dist/node/kernel/injector/injector.js +137 -0
  224. package/dist/node/kernel/injector/serviceOrder.js +106 -0
  225. package/dist/node/kernel/inspect/adminSubjects.js +194 -0
  226. package/dist/node/kernel/inspect/docOutline.js +86 -0
  227. package/dist/node/kernel/lifecycleTags.js +76 -0
  228. package/dist/node/kernel/moduleConfig.js +75 -0
  229. package/dist/node/kernel/moduleGating.js +68 -0
  230. package/dist/node/kernel/readinessRegistry.js +98 -0
  231. package/dist/node/kernel/resolveModuleEntry.js +61 -0
  232. package/dist/node/mcp/caller.js +40 -0
  233. package/dist/node/mcp/guard.js +51 -0
  234. package/dist/node/mcp/protocol.js +157 -0
  235. package/dist/node/mcp/server.js +216 -0
  236. package/dist/node/mcp/tools.js +861 -0
  237. package/dist/node/oauth/authorizationServer.js +221 -0
  238. package/dist/node/oauth/protectedResource.js +293 -0
  239. package/dist/node/package.js +4 -0
  240. package/dist/node/realtime/IRealtimeTransport.js +32 -0
  241. package/dist/node/realtime/JsonRpcPeer.js +251 -0
  242. package/dist/node/realtime/RealtimeEventMap.js +15 -0
  243. package/dist/node/realtime/channelRate.js +39 -0
  244. package/dist/node/realtime/platformChannels.js +155 -0
  245. package/dist/node/runtime/GcScheduler.js +92 -0
  246. package/dist/node/runtime/RequestContext.js +76 -0
  247. package/dist/node/runtime/bearer.js +84 -0
  248. package/dist/node/runtime/engineEnvironment.js +79 -0
  249. package/dist/node/runtime/loadEnv.js +105 -0
  250. package/dist/node/runtime/pageFacets.js +85 -0
  251. package/dist/node/runtime/pageFilters.js +103 -0
  252. package/dist/node/runtime/pageGuard.js +84 -0
  253. package/dist/node/runtime/pageQuery.js +160 -0
  254. package/dist/node/runtime/pageSort.js +114 -0
  255. package/dist/node/runtime/redact.js +43 -0
  256. package/dist/node/runtime/withTimeout.js +71 -0
  257. package/dist/node/service/cluster/ClusterManager.js +202 -0
  258. package/dist/node/service/cluster/ClusterProbeAggregator.js +120 -0
  259. package/dist/node/service/cluster/ClusterRelay.js +74 -0
  260. package/dist/node/service/cluster/clusterMaster.js +65 -0
  261. package/dist/node/service/cluster/clusterMessage.js +70 -0
  262. package/dist/node/service/cluster/cpuQuota.js +59 -0
  263. package/dist/node/service/cluster/instanceProbe.js +52 -0
  264. package/dist/node/service/cluster/podEnvironment.js +48 -0
  265. package/dist/node/service/cluster/processProbe.js +70 -0
  266. package/dist/node/service/cluster/richProcessProbe.js +115 -0
  267. package/dist/node/service/cluster/topology.js +71 -0
  268. package/dist/node/service/dev/BootReporter.js +490 -0
  269. package/dist/node/service/dev/DevSupervisor.js +1004 -0
  270. package/dist/node/service/dev/bootVerdict.js +158 -0
  271. package/dist/node/service/dev/detachedStart.js +372 -0
  272. package/dist/node/service/dev/devProcess.js +1137 -0
  273. package/dist/node/service/dev/devProjects.js +138 -0
  274. package/dist/node/service/dev/devStatusReport.js +395 -0
  275. package/dist/node/service/dev/devStop.js +263 -0
  276. package/dist/node/service/fetchService.js +35 -0
  277. package/dist/node/service/gitService.js +62 -0
  278. package/dist/node/syslog/Pdu.js +224 -0
  279. package/dist/node/syslog/Syslog.js +1159 -0
  280. package/dist/node/syslog/drivers/ClusterFileLogDriver.js +114 -0
  281. package/dist/node/syslog/drivers/FileLogDriver.js +127 -0
  282. package/dist/node/syslog/drivers/ILogDriver.js +26 -0
  283. package/dist/node/syslog/drivers/LokiLogDriver.js +144 -0
  284. package/dist/node/syslog/drivers/MemoryLogDriver.js +33 -0
  285. package/dist/node/syslog/drivers/OpenSearchLogDriver.js +159 -0
  286. package/dist/node/syslog/drivers/builtinLogDrivers.js +114 -0
  287. package/dist/node/syslog/drivers/filterPdus.js +71 -0
  288. package/dist/node/syslog/drivers/logDriverRegistry.js +83 -0
  289. package/dist/node/syslog/drivers/opensearchShared.js +17 -0
  290. package/dist/node/syslog/drivers/pduFlow.js +106 -0
  291. package/dist/node/syslog/drivers/pduProtocol.js +28 -0
  292. package/dist/node/syslog/httpFetch.js +43 -0
  293. package/dist/node/syslog/logColor.js +80 -0
  294. package/dist/node/syslog/sinks/FileSink.js +142 -0
  295. package/dist/node/syslog/transports/BatchingHttpTransport.js +98 -0
  296. package/dist/node/syslog/transports/ConsoleTransport.js +14 -0
  297. package/dist/node/syslog/transports/FileTransport.js +17 -0
  298. package/dist/node/syslog/transports/HttpTransport.js +44 -0
  299. package/dist/node/syslog/transports/LokiTransport.js +80 -0
  300. package/dist/node/syslog/transports/OpenSearchTransport.js +53 -0
  301. package/dist/node/syslog/transports/SyslogTransport.js +13 -0
  302. package/dist/node/syslog/transports/index.js +8 -0
  303. package/dist/node/testing/index.js +190 -0
  304. package/dist/types/Cli.d.ts +177 -0
  305. package/dist/types/Container.d.ts +221 -0
  306. package/dist/types/Error.d.ts +162 -0
  307. package/dist/types/Event.d.ts +171 -0
  308. package/dist/types/FileClass.d.ts +184 -0
  309. package/dist/types/Nodefony.d.ts +66 -0
  310. package/dist/types/Service.d.ts +165 -0
  311. package/dist/types/Tools.d.ts +116 -0
  312. package/dist/types/bin/resolveLocalCli.d.ts +49 -0
  313. package/dist/types/bundler/index.d.ts +66 -0
  314. package/dist/types/cli/agentTargets.d.ts +378 -0
  315. package/dist/types/cli/aiMcp.d.ts +239 -0
  316. package/dist/types/cli/aiMcpReport.d.ts +113 -0
  317. package/dist/types/cli/aiSync.d.ts +68 -0
  318. package/dist/types/cli/aiSyncReport.d.ts +149 -0
  319. package/dist/types/cli/card.d.ts +49 -0
  320. package/dist/types/cli/cardReport.d.ts +127 -0
  321. package/dist/types/cli/completion.d.ts +154 -0
  322. package/dist/types/cli/create.d.ts +177 -0
  323. package/dist/types/cli/env.d.ts +103 -0
  324. package/dist/types/cli/envReport.d.ts +153 -0
  325. package/dist/types/cli/execPortable.d.ts +54 -0
  326. package/dist/types/cli/gitHooks.d.ts +48 -0
  327. package/dist/types/cli/gitHooksReport.d.ts +101 -0
  328. package/dist/types/cli/globalFlags.d.ts +48 -0
  329. package/dist/types/cli/helpReport.d.ts +110 -0
  330. package/dist/types/cli/manPage.d.ts +21 -0
  331. package/dist/types/cli/nodefonyBin.d.ts +45 -0
  332. package/dist/types/cli/outdated.d.ts +119 -0
  333. package/dist/types/cli/progress.d.ts +349 -0
  334. package/dist/types/cli/projectRoot.d.ts +19 -0
  335. package/dist/types/cli/promptPassword.d.ts +22 -0
  336. package/dist/types/cli/prompts.d.ts +102 -0
  337. package/dist/types/cli/scaffold/destination.d.ts +70 -0
  338. package/dist/types/cli/scaffold/engine.d.ts +545 -0
  339. package/dist/types/cli/scaffold/entityFields.d.ts +238 -0
  340. package/dist/types/cli/scaffold/format.d.ts +78 -0
  341. package/dist/types/cli/scaffold/interactive.d.ts +11 -0
  342. package/dist/types/cli/scaffold/moduleLayout.d.ts +69 -0
  343. package/dist/types/cli/scaffold/reservedEntities.d.ts +49 -0
  344. package/dist/types/cli/scaffold/spec.d.ts +159 -0
  345. package/dist/types/cli/scaffold/steps.d.ts +24 -0
  346. package/dist/types/cli/scaffold/userContractSource.d.ts +86 -0
  347. package/dist/types/cli/scaffold/versions.d.ts +14 -0
  348. package/dist/types/cli/scaffold/writer.d.ts +100 -0
  349. package/dist/types/cli/startMenu.d.ts +195 -0
  350. package/dist/types/cli/symbols.d.ts +84 -0
  351. package/dist/types/cli/sysexits.d.ts +31 -0
  352. package/dist/types/cli/tableReport.d.ts +44 -0
  353. package/dist/types/cli/usageReport.d.ts +108 -0
  354. package/dist/types/client/ClientKernel.d.ts +90 -0
  355. package/dist/types/client/IClientKernel.d.ts +195 -0
  356. package/dist/types/client/angular/index.d.ts +273 -0
  357. package/dist/types/client/announce.d.ts +74 -0
  358. package/dist/types/client/debugbar/DebugBar.d.ts +279 -0
  359. package/dist/types/client/debugbar/format.d.ts +48 -0
  360. package/dist/types/client/debugbar/hmr.d.ts +16 -0
  361. package/dist/types/client/debugbar/index.d.ts +30 -0
  362. package/dist/types/client/debugbar/model.d.ts +158 -0
  363. package/dist/types/client/debugbar/network.d.ts +55 -0
  364. package/dist/types/client/debugbar/profile.d.ts +99 -0
  365. package/dist/types/client/index.d.ts +47 -0
  366. package/dist/types/client/react/index.d.ts +207 -0
  367. package/dist/types/client/realtime/AdaptiveRate.d.ts +138 -0
  368. package/dist/types/client/realtime/BrowserWsTransport.d.ts +27 -0
  369. package/dist/types/client/realtime/RealtimeClient.d.ts +573 -0
  370. package/dist/types/client/realtime/localEvents.d.ts +53 -0
  371. package/dist/types/client/realtime/notice.d.ts +70 -0
  372. package/dist/types/client/realtime/observe.d.ts +284 -0
  373. package/dist/types/client/roles/index.d.ts +15 -0
  374. package/dist/types/client/roles/registry.d.ts +72 -0
  375. package/dist/types/client/roles/roles.d.ts +68 -0
  376. package/dist/types/client/shim/cli-color.d.ts +2 -0
  377. package/dist/types/client/shim/events.d.ts +39 -0
  378. package/dist/types/client/shim/util.d.ts +14 -0
  379. package/dist/types/client/svelte/index.d.ts +216 -0
  380. package/dist/types/client/syslog/context.d.ts +76 -0
  381. package/dist/types/client/syslog/errors.d.ts +46 -0
  382. package/dist/types/client/syslog/uplink.d.ts +89 -0
  383. package/dist/types/client/transport/websocket.d.ts +5 -0
  384. package/dist/types/client/vue/index.d.ts +234 -0
  385. package/dist/types/colors.d.ts +32 -0
  386. package/dist/types/command/Builder.d.ts +47 -0
  387. package/dist/types/command/Command.d.ts +268 -0
  388. package/dist/types/config/configMeta.d.ts +53 -0
  389. package/dist/types/config/configProvenance.d.ts +58 -0
  390. package/dist/types/config/defaults.d.ts +33 -0
  391. package/dist/types/config/defineConfig.d.ts +70 -0
  392. package/dist/types/config/defineEnv.d.ts +170 -0
  393. package/dist/types/config/envExample.d.ts +23 -0
  394. package/dist/types/config/envOverride.d.ts +236 -0
  395. package/dist/types/config/index.d.ts +23 -0
  396. package/dist/types/config/infra.d.ts +171 -0
  397. package/dist/types/config/reactivity.d.ts +36 -0
  398. package/dist/types/config/reservedEnv.d.ts +145 -0
  399. package/dist/types/config/schema.d.ts +113 -0
  400. package/dist/types/config/types.d.ts +374 -0
  401. package/dist/types/config/use.d.ts +80 -0
  402. package/dist/types/finder/File.d.ts +26 -0
  403. package/dist/types/finder/FileResult.d.ts +14 -0
  404. package/dist/types/finder/Finder.d.ts +51 -0
  405. package/dist/types/finder/Result.d.ts +10 -0
  406. package/dist/types/index.d.ts +205 -0
  407. package/dist/types/kernel/BootConfigurationError.d.ts +50 -0
  408. package/dist/types/kernel/CliKernel.d.ts +289 -0
  409. package/dist/types/kernel/Kernel.d.ts +1255 -0
  410. package/dist/types/kernel/Module.d.ts +326 -0
  411. package/dist/types/kernel/adminPlane/adminCaller.d.ts +105 -0
  412. package/dist/types/kernel/adminPlane/adminRbac.d.ts +44 -0
  413. package/dist/types/kernel/adminPlane/catalog.d.ts +122 -0
  414. package/dist/types/kernel/adminPlane/executeAdmin.d.ts +99 -0
  415. package/dist/types/kernel/bootReport.d.ts +112 -0
  416. package/dist/types/kernel/checks/deep.d.ts +122 -0
  417. package/dist/types/kernel/checks/freshness.d.ts +49 -0
  418. package/dist/types/kernel/checks/gating.d.ts +134 -0
  419. package/dist/types/kernel/checks/guards.d.ts +57 -0
  420. package/dist/types/kernel/checks/lastBoot.d.ts +189 -0
  421. package/dist/types/kernel/checks/live.d.ts +110 -0
  422. package/dist/types/kernel/checks/packageDeps.d.ts +44 -0
  423. package/dist/types/kernel/checks/readiness.d.ts +97 -0
  424. package/dist/types/kernel/checks/renderReport.d.ts +107 -0
  425. package/dist/types/kernel/checks/report.d.ts +414 -0
  426. package/dist/types/kernel/checks/runDoctor.d.ts +361 -0
  427. package/dist/types/kernel/checks/surface.d.ts +148 -0
  428. package/dist/types/kernel/checks/walk.d.ts +45 -0
  429. package/dist/types/kernel/checks/wiring.d.ts +54 -0
  430. package/dist/types/kernel/commands/AiMcpCommand.d.ts +39 -0
  431. package/dist/types/kernel/commands/AiSyncCommand.d.ts +28 -0
  432. package/dist/types/kernel/commands/BuildCommand.d.ts +13 -0
  433. package/dist/types/kernel/commands/CardCommand.d.ts +34 -0
  434. package/dist/types/kernel/commands/ClusterCommand.d.ts +29 -0
  435. package/dist/types/kernel/commands/CompletionCommand.d.ts +17 -0
  436. package/dist/types/kernel/commands/CreateCommand.d.ts +16 -0
  437. package/dist/types/kernel/commands/DevCommand.d.ts +40 -0
  438. package/dist/types/kernel/commands/DoctorCommand.d.ts +55 -0
  439. package/dist/types/kernel/commands/EnvCommand.d.ts +35 -0
  440. package/dist/types/kernel/commands/GitHooksCommand.d.ts +27 -0
  441. package/dist/types/kernel/commands/InspectCommand.d.ts +59 -0
  442. package/dist/types/kernel/commands/InstallCommand.d.ts +7 -0
  443. package/dist/types/kernel/commands/MenuCommand.d.ts +58 -0
  444. package/dist/types/kernel/commands/OutdatedCommand.d.ts +47 -0
  445. package/dist/types/kernel/commands/ProdCommand.d.ts +29 -0
  446. package/dist/types/kernel/commands/StatusCommand.d.ts +17 -0
  447. package/dist/types/kernel/commands/StopCommand.d.ts +17 -0
  448. package/dist/types/kernel/commands/SymbolsCommand.d.ts +29 -0
  449. package/dist/types/kernel/commands/runtimeLauncher.d.ts +76 -0
  450. package/dist/types/kernel/decorators/kernelDecorator.d.ts +76 -0
  451. package/dist/types/kernel/injector/injector.d.ts +47 -0
  452. package/dist/types/kernel/injector/serviceOrder.d.ts +29 -0
  453. package/dist/types/kernel/inspect/adminSubjects.d.ts +169 -0
  454. package/dist/types/kernel/inspect/docOutline.d.ts +53 -0
  455. package/dist/types/kernel/lifecycleTags.d.ts +79 -0
  456. package/dist/types/kernel/moduleConfig.d.ts +35 -0
  457. package/dist/types/kernel/moduleGating.d.ts +78 -0
  458. package/dist/types/kernel/readinessRegistry.d.ts +104 -0
  459. package/dist/types/kernel/resolveModuleEntry.d.ts +46 -0
  460. package/dist/types/mcp/caller.d.ts +55 -0
  461. package/dist/types/mcp/guard.d.ts +66 -0
  462. package/dist/types/mcp/protocol.d.ts +163 -0
  463. package/dist/types/mcp/server.d.ts +70 -0
  464. package/dist/types/mcp/tools.d.ts +209 -0
  465. package/dist/types/oauth/authorizationServer.d.ts +204 -0
  466. package/dist/types/oauth/protectedResource.d.ts +339 -0
  467. package/dist/types/realtime/IRealtimeSocket.d.ts +142 -0
  468. package/dist/types/realtime/IRealtimeTransport.d.ts +50 -0
  469. package/dist/types/realtime/JsonRpcPeer.d.ts +251 -0
  470. package/dist/types/realtime/RealtimeEventMap.d.ts +269 -0
  471. package/dist/types/realtime/channelRate.d.ts +55 -0
  472. package/dist/types/realtime/platformChannels.d.ts +147 -0
  473. package/dist/types/runtime/GcScheduler.d.ts +96 -0
  474. package/dist/types/runtime/RequestContext.d.ts +152 -0
  475. package/dist/types/runtime/bearer.d.ts +88 -0
  476. package/dist/types/runtime/engineEnvironment.d.ts +115 -0
  477. package/dist/types/runtime/loadEnv.d.ts +86 -0
  478. package/dist/types/runtime/pageFacets.d.ts +104 -0
  479. package/dist/types/runtime/pageFilters.d.ts +139 -0
  480. package/dist/types/runtime/pageGuard.d.ts +78 -0
  481. package/dist/types/runtime/pageQuery.d.ts +138 -0
  482. package/dist/types/runtime/pageSort.d.ts +86 -0
  483. package/dist/types/runtime/redact.d.ts +27 -0
  484. package/dist/types/runtime/withTimeout.d.ts +51 -0
  485. package/dist/types/service/cluster/ClusterManager.d.ts +112 -0
  486. package/dist/types/service/cluster/ClusterProbeAggregator.d.ts +68 -0
  487. package/dist/types/service/cluster/ClusterRelay.d.ts +57 -0
  488. package/dist/types/service/cluster/clusterMaster.d.ts +40 -0
  489. package/dist/types/service/cluster/clusterMessage.d.ts +94 -0
  490. package/dist/types/service/cluster/cpuQuota.d.ts +37 -0
  491. package/dist/types/service/cluster/instanceProbe.d.ts +82 -0
  492. package/dist/types/service/cluster/podEnvironment.d.ts +35 -0
  493. package/dist/types/service/cluster/processProbe.d.ts +53 -0
  494. package/dist/types/service/cluster/richProcessProbe.d.ts +77 -0
  495. package/dist/types/service/cluster/topology.d.ts +64 -0
  496. package/dist/types/service/dev/BootReporter.d.ts +67 -0
  497. package/dist/types/service/dev/DevSupervisor.d.ts +117 -0
  498. package/dist/types/service/dev/bootVerdict.d.ts +99 -0
  499. package/dist/types/service/dev/detachedStart.d.ts +164 -0
  500. package/dist/types/service/dev/devProcess.d.ts +638 -0
  501. package/dist/types/service/dev/devProjects.d.ts +121 -0
  502. package/dist/types/service/dev/devStatusReport.d.ts +141 -0
  503. package/dist/types/service/dev/devStop.d.ts +57 -0
  504. package/dist/types/service/fetchService.d.ts +29 -0
  505. package/dist/types/service/gitService.d.ts +24 -0
  506. package/dist/types/syslog/Pdu.d.ts +134 -0
  507. package/dist/types/syslog/Syslog.d.ts +482 -0
  508. package/dist/types/syslog/drivers/ClusterFileLogDriver.d.ts +40 -0
  509. package/dist/types/syslog/drivers/FileLogDriver.d.ts +55 -0
  510. package/dist/types/syslog/drivers/ILogDriver.d.ts +177 -0
  511. package/dist/types/syslog/drivers/LokiLogDriver.d.ts +44 -0
  512. package/dist/types/syslog/drivers/MemoryLogDriver.d.ts +20 -0
  513. package/dist/types/syslog/drivers/OpenSearchLogDriver.d.ts +40 -0
  514. package/dist/types/syslog/drivers/builtinLogDrivers.d.ts +43 -0
  515. package/dist/types/syslog/drivers/filterPdus.d.ts +21 -0
  516. package/dist/types/syslog/drivers/logDriverRegistry.d.ts +100 -0
  517. package/dist/types/syslog/drivers/opensearchShared.d.ts +11 -0
  518. package/dist/types/syslog/drivers/pduFlow.d.ts +53 -0
  519. package/dist/types/syslog/drivers/pduProtocol.d.ts +20 -0
  520. package/dist/types/syslog/httpFetch.d.ts +48 -0
  521. package/dist/types/syslog/logColor.d.ts +59 -0
  522. package/dist/types/syslog/sinks/FileSink.d.ts +78 -0
  523. package/dist/types/syslog/transports/BatchingHttpTransport.d.ts +59 -0
  524. package/dist/types/syslog/transports/ConsoleTransport.d.ts +8 -0
  525. package/dist/types/syslog/transports/FileTransport.d.ts +13 -0
  526. package/dist/types/syslog/transports/HttpTransport.d.ts +15 -0
  527. package/dist/types/syslog/transports/LokiTransport.d.ts +45 -0
  528. package/dist/types/syslog/transports/OpenSearchTransport.d.ts +40 -0
  529. package/dist/types/syslog/transports/SyslogTransport.d.ts +9 -0
  530. package/dist/types/syslog/transports/index.d.ts +12 -0
  531. package/dist/types/testing/index.d.ts +197 -0
  532. package/dist/types/types/IAdminApi.d.ts +246 -0
  533. package/dist/types/types/ICliKernel.d.ts +28 -0
  534. package/dist/types/types/ICommand.d.ts +14 -0
  535. package/dist/types/types/IContainer.d.ts +35 -0
  536. package/dist/types/types/IIdempotencyStore.d.ts +159 -0
  537. package/dist/types/types/IKernel.d.ts +138 -0
  538. package/dist/types/types/IMcpTool.d.ts +157 -0
  539. package/dist/types/types/IModule.d.ts +73 -0
  540. package/dist/types/types/IModuleManifest.d.ts +49 -0
  541. package/dist/types/types/IPage.d.ts +119 -0
  542. package/dist/types/types/IService.d.ts +62 -0
  543. package/dist/types/types/ISyslog.d.ts +58 -0
  544. package/dist/types/types/ITransport.d.ts +5 -0
  545. package/dist/types/types/globals.d.ts +47 -0
  546. package/docs/angular-services.md +318 -0
  547. package/docs/catalogue.md +184 -0
  548. package/docs/cli.md +369 -0
  549. package/docs/client.md +616 -0
  550. package/docs/debugbar.md +218 -0
  551. package/docs/environnement.md +308 -0
  552. package/docs/index.md +388 -0
  553. package/docs/kernel.md +670 -0
  554. package/docs/progression.md +228 -0
  555. package/docs/react-hooks.md +686 -0
  556. package/docs/request-context.md +507 -0
  557. package/docs/service.md +590 -0
  558. package/docs/svelte-reactivite.md +293 -0
  559. package/docs/syslog.md +848 -0
  560. package/docs/testing.md +203 -0
  561. package/docs/vue-composables.md +255 -0
  562. package/man/nodefony.1 +152 -0
  563. package/package.json +163 -83
  564. package/templates/app/agents/AGENTS.md.tpl +967 -0
  565. package/templates/app/agents/POINTEUR.md.tpl +12 -0
  566. package/templates/app/base/Dockerfile.tpl +104 -0
  567. package/templates/app/base/README.md.tpl +314 -0
  568. package/templates/app/base/dockerignore.tpl +28 -0
  569. package/templates/app/base/env.ts.tpl +130 -0
  570. package/templates/app/base/gitattributes.tpl +28 -0
  571. package/templates/app/base/github/workflows/ci.yml.tpl +91 -0
  572. package/templates/app/base/gitignore.tpl +46 -0
  573. package/templates/app/base/gitlab-ci.yml.tpl +42 -0
  574. package/templates/app/base/index.ts.tpl +69 -0
  575. package/templates/app/base/nodefony.config.ts.tpl +342 -0
  576. package/templates/app/base/oxlintrc.json.tpl +127 -0
  577. package/templates/app/base/package.json.tpl +75 -0
  578. package/templates/app/base/prettierignore.tpl +24 -0
  579. package/templates/app/base/prettierrc.json.tpl +12 -0
  580. package/templates/app/base/rolldown.config.ts.tpl +8 -0
  581. package/templates/app/base/tests/config.test.ts.tpl +29 -0
  582. package/templates/app/base/tests/e2e.setup.ts.tpl +181 -0
  583. package/templates/app/base/tests/e2e.test.ts.tpl +105 -0
  584. package/templates/app/base/tests/migrations.e2e.test.ts.tpl +579 -0
  585. package/templates/app/base/tsconfig.json.tpl +47 -0
  586. package/templates/app/base/vitest.config.ts.tpl +88 -0
  587. package/templates/app/base/vitest.e2e.config.ts.tpl +39 -0
  588. package/templates/app/complete/compose.yaml.tpl +328 -0
  589. package/templates/app/complete/deploy/migrate-job.yaml.tpl +100 -0
  590. package/templates/app/complete/docker/db/init-nodefony-e2e.sql.tpl +30 -0
  591. package/templates/app/complete/docker/grafana/provisioning/datasources/loki.yaml.tpl +15 -0
  592. package/templates/app/complete/env.local.tpl +11 -0
  593. package/templates/app/complete/env.tpl +53 -0
  594. package/templates/app/complete/nodefony/entity/User.ts.tpl +69 -0
  595. package/templates/app/complete/nodefony/security/provisionUsers.ts.tpl +124 -0
  596. package/templates/app/complete/nodefony/service/AppBannerService.ts.tpl +98 -0
  597. package/templates/app/complete/nodefony/service/AppInfoService.ts.tpl +85 -0
  598. package/templates/app/frontend/angular/frontend/src/accent.css.tpl +34 -0
  599. package/templates/app/frontend/angular/frontend/src/app/app.component.ts.tpl +400 -0
  600. package/templates/app/frontend/react/frontend/src/App.tsx.tpl +421 -0
  601. package/templates/app/frontend/react/frontend/src/accent.css.tpl +30 -0
  602. package/templates/app/frontend/shared/frontend/src/brand.ts.tpl +3 -0
  603. package/templates/app/frontend/shared/frontend/src/showcase.css.tpl +224 -0
  604. package/templates/app/frontend/shared/nodefony/controllers/AppController.ts.tpl +45 -0
  605. package/templates/app/frontend/svelte/frontend/src/App.svelte.tpl +371 -0
  606. package/templates/app/frontend/svelte/frontend/src/accent.css.tpl +34 -0
  607. package/templates/app/frontend/vue/frontend/src/App.vue.tpl +367 -0
  608. package/templates/app/frontend/vue/frontend/src/accent.css.tpl +34 -0
  609. package/templates/app/home/nodefony/controllers/HomeController.ts.tpl +38 -0
  610. package/templates/command/nodefony/command/__NAME__.ts.tpl +132 -0
  611. package/templates/controller/duplex/nodefony/controllers/__NAME__.ts.tpl +188 -0
  612. package/templates/controller/example/nodefony/controllers/__NAME__.ts.tpl +348 -0
  613. package/templates/controller/hello/nodefony/controllers/__NAME__.ts.tpl +143 -0
  614. package/templates/controller/realtime/nodefony/controllers/__NAME__.ts.tpl +153 -0
  615. package/templates/controller/realtime/tests/__KEBAB__-realtime.test.ts.tpl +79 -0
  616. package/templates/controller/rest/nodefony/controllers/__NAME__.ts.tpl +159 -0
  617. package/templates/entity/base/nodefony/entity/__PASCAL__.schema.ts.tpl +31 -0
  618. package/templates/entity/base/nodefony/entity/__PASCAL__.ts.tpl +68 -0
  619. package/templates/entity/controller/nodefony/controllers/__PASCAL__Controller.ts.tpl +335 -0
  620. package/templates/entity/service/nodefony/service/__PASCAL__Service.ts.tpl +126 -0
  621. package/templates/entity/tests/tests/__KEBAB__.e2e.test.ts.tpl +358 -0
  622. package/templates/entity/tests/tests/__KEBAB__.test.ts.tpl +87 -0
  623. package/templates/front/angular/frontend/src/app/app.component.ts.tpl +30 -0
  624. package/templates/front/base/nodefony/controllers/__NAME__.ts.tpl +60 -0
  625. package/templates/front/react/frontend/src/App.tsx.tpl +26 -0
  626. package/templates/front/svelte/frontend/src/App.svelte.tpl +19 -0
  627. package/templates/front/vue/frontend/src/App.vue.tpl +23 -0
  628. package/templates/module/ai/AGENTS.md.tpl +71 -0
  629. package/templates/module/base/README.md.tpl +62 -0
  630. package/templates/module/base/docs/index.md.tpl +55 -0
  631. package/templates/module/base/index.ts.tpl +50 -0
  632. package/templates/module/base/nodefony/config/config.ts.tpl +60 -0
  633. package/templates/module/base/nodefony/config/defineModuleConfig.ts.tpl +55 -0
  634. package/templates/module/base/nodefony/src/errors/__PASCAL__Error.ts.tpl +20 -0
  635. package/templates/module/base/package.json.tpl +53 -0
  636. package/templates/module/base/rolldown.config.ts.tpl +14 -0
  637. package/templates/module/base/tests/__KEBAB__.test.ts.tpl +39 -0
  638. package/templates/module/base/tsconfig.json.tpl +42 -0
  639. package/templates/module/base/vitest.config.ts.tpl +27 -0
  640. package/templates/module/packages/CLAUDE.md.tpl +51 -0
  641. package/templates/module/packages/MEMORY.md.tpl +39 -0
  642. package/templates/module/packages/tsconfig.declarations.json.tpl +19 -0
  643. package/templates/module/packages/tsconfig.tests.json.tpl +11 -0
  644. package/templates/module/service/nodefony/interfaces/I__PASCAL__Service.ts.tpl +14 -0
  645. package/templates/module/service/nodefony/interfaces/index.ts.tpl +1 -0
  646. package/templates/module/service/nodefony/service/__PASCAL__Service.ts.tpl +116 -0
  647. package/templates/service/nodefony/interfaces/I__PASCAL__Service.ts.tpl +19 -0
  648. package/templates/service/nodefony/service/__PASCAL__Service.ts.tpl +136 -0
  649. package/templates/service/tests/__PASCAL__Service.test.ts.tpl +53 -0
  650. package/templates/shared/front-entry/angular/frontend/src/main.ts.tpl +17 -0
  651. package/templates/shared/front-entry/react/frontend/src/main.tsx.tpl +11 -0
  652. package/templates/shared/front-entry/svelte/frontend/src/main.ts.tpl +13 -0
  653. package/templates/shared/front-entry/vue/frontend/src/main.ts.tpl +12 -0
  654. package/templates/shared/front-registrar/nodefony/frontend/register__PASCAL__Entry.ts.tpl +40 -0
  655. package/templates/shared/front-shell/frontend/index.html.tpl +39 -0
  656. package/templates/shared/ng-app-tsconfig/frontend/tsconfig.app.json.tpl +18 -0
  657. package/templates/shared/svelte-shim/frontend/src/env.d.ts.tpl +12 -0
  658. package/templates/shared/vue-shim/frontend/src/env.d.ts.tpl +15 -0
  659. package/.yarnclean +0 -45
  660. package/CHANGELOG.md +0 -406
  661. package/autoloader.es6 +0 -253
  662. package/builder.es6 +0 -366
  663. package/cli/builder/bundles/bundle.js +0 -328
  664. package/cli/builder/bundles/controller.js +0 -73
  665. package/cli/builder/bundles/users-bundle/.yarnclean +0 -45
  666. package/cli/builder/bundles/users-bundle/Command/fixtureTask.js +0 -47
  667. package/cli/builder/bundles/users-bundle/Command/usersCommand.js +0 -105
  668. package/cli/builder/bundles/users-bundle/Entity/mongoose/userEntity.js +0 -168
  669. package/cli/builder/bundles/users-bundle/Entity/sequelize/userEntity.js +0 -231
  670. package/cli/builder/bundles/users-bundle/Fixtures/users.js +0 -117
  671. package/cli/builder/bundles/users-bundle/Fixtures/usersFixtures.js +0 -114
  672. package/cli/builder/bundles/users-bundle/Resources/config/config.js +0 -90
  673. package/cli/builder/bundles/users-bundle/Resources/config/routing.js +0 -17
  674. package/cli/builder/bundles/users-bundle/Resources/config/security.js +0 -96
  675. package/cli/builder/bundles/users-bundle/Resources/config/services.js +0 -7
  676. package/cli/builder/bundles/users-bundle/Resources/config/webpack/webpack.dev.config.js +0 -13
  677. package/cli/builder/bundles/users-bundle/Resources/config/webpack/webpack.prod.config.js +0 -31
  678. package/cli/builder/bundles/users-bundle/Resources/config/webpack.config.js +0 -146
  679. package/cli/builder/bundles/users-bundle/Resources/js/users.js +0 -153
  680. package/cli/builder/bundles/users-bundle/Resources/public/favicon.ico +0 -0
  681. package/cli/builder/bundles/users-bundle/Resources/public/images/users-logo.png +0 -0
  682. package/cli/builder/bundles/users-bundle/Resources/scss/awesome/font-awesome.config.js +0 -11
  683. package/cli/builder/bundles/users-bundle/Resources/scss/custom.scss +0 -23
  684. package/cli/builder/bundles/users-bundle/Resources/scss/users.scss +0 -59
  685. package/cli/builder/bundles/users-bundle/Resources/swagger/openapi/login.js +0 -235
  686. package/cli/builder/bundles/users-bundle/Resources/swagger/openapi/users.js +0 -232
  687. package/cli/builder/bundles/users-bundle/Resources/translations/login.en_en.yml +0 -14
  688. package/cli/builder/bundles/users-bundle/Resources/translations/login.fr_fr.yml +0 -14
  689. package/cli/builder/bundles/users-bundle/Resources/translations/users.en_en.yml +0 -35
  690. package/cli/builder/bundles/users-bundle/Resources/translations/users.fr_fr.yml +0 -36
  691. package/cli/builder/bundles/users-bundle/Resources/views/base.html.twig +0 -32
  692. package/cli/builder/bundles/users-bundle/Resources/views/footer.html.twig +0 -7
  693. package/cli/builder/bundles/users-bundle/Resources/views/header.html.twig +0 -90
  694. package/cli/builder/bundles/users-bundle/Resources/views/login/login.html.twig +0 -43
  695. package/cli/builder/bundles/users-bundle/Resources/views/users/createUser.html.twig +0 -296
  696. package/cli/builder/bundles/users-bundle/Resources/views/users/readUsers.html.twig +0 -94
  697. package/cli/builder/bundles/users-bundle/controller/api/graphql/graphqlController.js +0 -56
  698. package/cli/builder/bundles/users-bundle/controller/api/graphql/userResolver.js +0 -121
  699. package/cli/builder/bundles/users-bundle/controller/api/graphql/usertype.js +0 -58
  700. package/cli/builder/bundles/users-bundle/controller/api/openapi/loginApiController.js +0 -210
  701. package/cli/builder/bundles/users-bundle/controller/api/openapi/restUserController.js +0 -244
  702. package/cli/builder/bundles/users-bundle/controller/loginController.js +0 -91
  703. package/cli/builder/bundles/users-bundle/controller/usersController.js +0 -332
  704. package/cli/builder/bundles/users-bundle/package.json +0 -58
  705. package/cli/builder/bundles/users-bundle/readme.md +0 -360
  706. package/cli/builder/bundles/users-bundle/services/usersService.js +0 -411
  707. package/cli/builder/bundles/users-bundle/src/providers/mongoose/userProvider.js +0 -47
  708. package/cli/builder/bundles/users-bundle/src/providers/sequelize/userProvider.js +0 -48
  709. package/cli/builder/bundles/users-bundle/tests/loginTest.js +0 -182
  710. package/cli/builder/bundles/users-bundle/usersBundle.js +0 -26
  711. package/cli/builder/microService/microService.js +0 -261
  712. package/cli/builder/microService/skeletons/.editorconfig +0 -18
  713. package/cli/builder/microService/skeletons/.env-cmdrc.js +0 -32
  714. package/cli/builder/microService/skeletons/.jshintrc +0 -37
  715. package/cli/builder/microService/skeletons/README.md +0 -117
  716. package/cli/builder/microService/skeletons/bin/bash/hello.sh +0 -5
  717. package/cli/builder/microService/skeletons/bin/cli +0 -13
  718. package/cli/builder/microService/skeletons/bin/python/hello.py +0 -20
  719. package/cli/builder/microService/skeletons/config/config.js +0 -29
  720. package/cli/builder/microService/skeletons/config/pm2.config.js +0 -72
  721. package/cli/builder/microService/skeletons/config/webpack/webpack.config.dev.js +0 -8
  722. package/cli/builder/microService/skeletons/config/webpack/webpack.config.prod.js +0 -25
  723. package/cli/builder/microService/skeletons/config/webpack.config.js +0 -114
  724. package/cli/builder/microService/skeletons/package.json +0 -76
  725. package/cli/builder/microService/skeletons/src/browser/index.css +0 -3
  726. package/cli/builder/microService/skeletons/src/browser/index.js +0 -16
  727. package/cli/builder/microService/skeletons/src/browser/socketio.js +0 -46
  728. package/cli/builder/microService/skeletons/src/cli/cli.js +0 -224
  729. package/cli/builder/microService/skeletons/src/cli/menu.js +0 -28
  730. package/cli/builder/microService/skeletons/src/n-api/README.md +0 -1
  731. package/cli/builder/microService/skeletons/src/n-api/binding.gyp +0 -14
  732. package/cli/builder/microService/skeletons/src/n-api/hello.cc +0 -14
  733. package/cli/builder/microService/skeletons/src/n-api/hello.js +0 -23
  734. package/cli/builder/microService/skeletons/src/n-api/package.json +0 -15
  735. package/cli/builder/microService/skeletons/src/node/examples/index.js +0 -120
  736. package/cli/builder/microService/skeletons/src/node/index.js +0 -102
  737. package/cli/builder/microService/skeletons/src/node/services/markdown/markdown.js +0 -27
  738. package/cli/builder/microService/skeletons/src/node/services/servers/http.js +0 -45
  739. package/cli/builder/microService/skeletons/src/node/services/servers/https.js +0 -44
  740. package/cli/builder/microService/skeletons/src/node/services/socketio/socketio.js +0 -46
  741. package/cli/builder/microService/skeletons/src/node/services/syscall/syscall.js +0 -111
  742. package/cli/builder/microService/skeletons/src/node/services/worker/thread.js +0 -59
  743. package/cli/builder/microService/skeletons/src/node/services/worker/worker.js +0 -60
  744. package/cli/builder/microService/skeletons/src/templates/base.html +0 -12
  745. package/cli/builder/microService/skeletons/src/templates/socket.html +0 -23
  746. package/cli/builder/microService/skeletons/tests/unit/serviceTest.js +0 -30
  747. package/cli/builder/project/project.js +0 -474
  748. package/cli/builder/project/skeletons/README.md +0 -778
  749. package/cli/builder/project/skeletons/bin/dev-deploy.sh +0 -5
  750. package/cli/builder/project/skeletons/bin/generateCertificates.sh.skeleton +0 -180
  751. package/cli/builder/project/skeletons/bin/prod-deploy.sh +0 -3
  752. package/cli/builder/project/skeletons/config/config.js.skeleton +0 -178
  753. package/cli/builder/project/skeletons/config/openssl/ca/openssl.cnf.skeleton +0 -150
  754. package/cli/builder/project/skeletons/config/openssl/ca_intermediate/openssl.cnf.skeleton +0 -152
  755. package/cli/builder/project/skeletons/config/pm2.config.js.skeleton +0 -62
  756. package/cli/builder/project/skeletons/documentation.html.twig +0 -24
  757. package/cli/builder/project/skeletons/editorconfig.skeleton +0 -18
  758. package/cli/builder/project/skeletons/eslintignore.skeleton +0 -15
  759. package/cli/builder/project/skeletons/eslintrc.js.skeleton +0 -97
  760. package/cli/builder/project/skeletons/gitignore.skeleton +0 -32
  761. package/cli/builder/project/skeletons/migrations/2022.12.25T17.37.37.entity-user.js +0 -137
  762. package/cli/builder/project/skeletons/migrations/2022.12.25T17.37.38.entity-session.js +0 -97
  763. package/cli/builder/project/skeletons/migrations/2022.12.25T17.37.39.entity-requests.js +0 -115
  764. package/cli/builder/project/skeletons/migrations/2022.12.25T17.37.40.entity-jwts.js +0 -97
  765. package/cli/builder/project/skeletons/migrations/migrations.skeleton.js +0 -101
  766. package/cli/builder/project/skeletons/package.json.twig +0 -71
  767. package/cli/builder/react/reactBuilder.js +0 -224
  768. package/cli/builder/react/skeletons/app/Resources/databases/nodefony.db +0 -0
  769. package/cli/builder/react/skeletons/app/Resources/translations/messages.en_en.yml +0 -5
  770. package/cli/builder/react/skeletons/app/Resources/translations/messages.fr_fr.yml +0 -5
  771. package/cli/builder/react/skeletons/app/Resources/views/base.html.twig +0 -33
  772. package/cli/builder/react/skeletons/app/config/config.js +0 -392
  773. package/cli/builder/react/skeletons/app/config/routing.js +0 -10
  774. package/cli/builder/react/skeletons/app/config/security.js +0 -74
  775. package/cli/builder/react/skeletons/app/controller/appController.js +0 -22
  776. package/cli/builder/sandbox/sandBoxBuilder.js +0 -610
  777. package/cli/builder/sandbox/skeletons/Resources/css/entry.css +0 -48
  778. package/cli/builder/sandbox/skeletons/Resources/js/entry.js +0 -60
  779. package/cli/builder/sandbox/skeletons/Resources/public/manifest.json +0 -32
  780. package/cli/builder/sandbox/skeletons/Resources/translations/messages.en_en.yml +0 -5
  781. package/cli/builder/sandbox/skeletons/Resources/translations/messages.fr_fr.yml +0 -5
  782. package/cli/builder/sandbox/skeletons/Resources/views/base.html.twig +0 -46
  783. package/cli/builder/sandbox/skeletons/Resources/views/index.html.twig +0 -34
  784. package/cli/builder/sandbox/skeletons/bootstrap/custom.scss +0 -27
  785. package/cli/builder/sandbox/skeletons/bootstrap/entry.scss +0 -60
  786. package/cli/builder/sandbox/skeletons/workbox/templates/index.html.twig +0 -32
  787. package/cli/builder/sandbox/skeletons/workbox/workers/service-worker.js +0 -196
  788. package/cli/builder/skeletons/Resources/public/favicon.ico +0 -0
  789. package/cli/builder/skeletons/Resources/public/images/app-logo.png +0 -0
  790. package/cli/builder/skeletons/Resources/views/framework-bundle/views/401.html.twig +0 -1
  791. package/cli/builder/skeletons/Resources/views/framework-bundle/views/401.json.twig +0 -24
  792. package/cli/builder/skeletons/Resources/views/framework-bundle/views/403.html.twig +0 -1
  793. package/cli/builder/skeletons/Resources/views/framework-bundle/views/403.json.twig +0 -20
  794. package/cli/builder/skeletons/Resources/views/framework-bundle/views/404.html.twig +0 -1
  795. package/cli/builder/skeletons/Resources/views/framework-bundle/views/404.json.twig +0 -20
  796. package/cli/builder/skeletons/Resources/views/framework-bundle/views/500.html.twig +0 -1
  797. package/cli/builder/skeletons/Resources/views/framework-bundle/views/base.html.twig +0 -30
  798. package/cli/builder/skeletons/Resources/views/framework-bundle/views/exception.html.twig +0 -1
  799. package/cli/builder/skeletons/Resources/views/framework-bundle/views/exception.json.twig +0 -24
  800. package/cli/builder/skeletons/Resources/views/framework-bundle/views/footer.html.twig +0 -33
  801. package/cli/builder/skeletons/Resources/views/framework-bundle/views/header.html.twig +0 -6
  802. package/cli/builder/skeletons/Resources/views/framework-bundle/views/index.html.twig +0 -6
  803. package/cli/builder/skeletons/Resources/views/framework-bundle/views/index.json.twig +0 -1
  804. package/cli/builder/skeletons/Resources/views/framework-bundle/views/layout.html.twig +0 -125
  805. package/cli/builder/skeletons/Resources/views/framework-bundle/views/layout.json.twig +0 -5
  806. package/cli/builder/skeletons/Resources/views/framework-bundle/views/timeout.html.twig +0 -1
  807. package/cli/builder/skeletons/Resources/views/framework-bundle/views/timeout.json.twig +0 -24
  808. package/cli/builder/skeletons/app/appKernel.js +0 -133
  809. package/cli/builder/skeletons/binding/binding.cc +0 -26
  810. package/cli/builder/skeletons/binding/binding.skeleton +0 -8
  811. package/cli/builder/skeletons/bundle/bundleClass.js +0 -37
  812. package/cli/builder/skeletons/command/commandClass.js +0 -11
  813. package/cli/builder/skeletons/command/taskClass.js +0 -20
  814. package/cli/builder/skeletons/config/config.js +0 -138
  815. package/cli/builder/skeletons/config/nodefony/elastic-bundle.js +0 -37
  816. package/cli/builder/skeletons/config/nodefony/framework-bundle.js +0 -22
  817. package/cli/builder/skeletons/config/nodefony/http-bundle.js +0 -104
  818. package/cli/builder/skeletons/config/nodefony/mail-bundle.js +0 -44
  819. package/cli/builder/skeletons/config/nodefony/mongoose-bundle.js +0 -51
  820. package/cli/builder/skeletons/config/nodefony/monitoring-bundle.js +0 -34
  821. package/cli/builder/skeletons/config/nodefony/realtime-bundle.js +0 -15
  822. package/cli/builder/skeletons/config/nodefony/redis-bundle.js +0 -44
  823. package/cli/builder/skeletons/config/nodefony/security-bundle.js +0 -25
  824. package/cli/builder/skeletons/config/nodefony/sequelize-bundle.js +0 -156
  825. package/cli/builder/skeletons/config/routing.js +0 -55
  826. package/cli/builder/skeletons/config/security.js +0 -102
  827. package/cli/builder/skeletons/config/services.js +0 -1
  828. package/cli/builder/skeletons/config/webpack/webpack.dev.config.js +0 -13
  829. package/cli/builder/skeletons/config/webpack/webpack.prod.config.js +0 -20
  830. package/cli/builder/skeletons/config/webpack.config.js +0 -148
  831. package/cli/builder/skeletons/controller/controllerClass.js +0 -75
  832. package/cli/builder/skeletons/package.json.twig +0 -57
  833. package/cli/builder/skeletons/unittest/testFile.js +0 -46
  834. package/cli/builder/vue/skeletons/Resources/public/images/app-logo.png +0 -0
  835. package/cli/builder/vue/skeletons/Resources/translations/messages.en_en.yml +0 -5
  836. package/cli/builder/vue/skeletons/Resources/translations/messages.fr_fr.yml +0 -5
  837. package/cli/builder/vue/skeletons/vue.config.js +0 -129
  838. package/cli/builder/vue/vueBuilder.js +0 -410
  839. package/cli/generate/generate.es6 +0 -103
  840. package/cli/install/install.js +0 -190
  841. package/cli/sequelize/sequelize.js +0 -94
  842. package/cli/start.js +0 -702
  843. package/cli/tools/pm2.es6 +0 -112
  844. package/cli/tools/tools.es6 +0 -97
  845. package/cli.es6 +0 -925
  846. package/container.es6 +0 -272
  847. package/error.es6 +0 -293
  848. package/fileClass.es6 +0 -242
  849. package/finder/file.es6 +0 -33
  850. package/finder/fileResult.es6 +0 -138
  851. package/finder/finder2.es6 +0 -275
  852. package/finder.es6 +0 -427
  853. package/kernel/annotations/annotations.es6 +0 -286
  854. package/kernel/api/api.es6 +0 -61
  855. package/kernel/api/graphqlApi.es6 +0 -107
  856. package/kernel/api/jsonApi.es6 +0 -177
  857. package/kernel/api/openApi.es6 +0 -139
  858. package/kernel/api/schemas/openApiSchema.js +0 -394
  859. package/kernel/babylon.es6 +0 -162
  860. package/kernel/bundle.es6 +0 -1200
  861. package/kernel/cliKernel.es6 +0 -869
  862. package/kernel/command.es6 +0 -78
  863. package/kernel/commands/nodefonyCommand.es6 +0 -247
  864. package/kernel/commands/tasks/bundlesTask.es6 +0 -59
  865. package/kernel/controllers/controller.es6 +0 -791
  866. package/kernel/fixture.es6 +0 -19
  867. package/kernel/injections/injections.es6 +0 -424
  868. package/kernel/kernel.es6 +0 -1960
  869. package/kernel/kernelWatcher.es6 +0 -387
  870. package/kernel/orm/entity.es6 +0 -59
  871. package/kernel/orm/orm.es6 +0 -139
  872. package/kernel/reader.es6 +0 -290
  873. package/kernel/security/encoder.es6 +0 -17
  874. package/kernel/security/factories/factory.es6 +0 -111
  875. package/kernel/security/factories/passeportFactory.es6 +0 -61
  876. package/kernel/security/provider.es6 +0 -58
  877. package/kernel/security/providers/chainProvider.es6 +0 -99
  878. package/kernel/security/providers/memoryProvider.es6 +0 -55
  879. package/kernel/security/providers/providerManager.es6 +0 -67
  880. package/kernel/security/providers/userEntityProvider.es6 +0 -50
  881. package/kernel/security/role.es6 +0 -12
  882. package/kernel/security/secureArea.es6 +0 -431
  883. package/kernel/security/tokens/token.es6 +0 -171
  884. package/kernel/security/user.es6 +0 -106
  885. package/kernel/serviceRealTime.es6 +0 -21
  886. package/kernel/services/connectionsService.es6 +0 -93
  887. package/kernel/services/cron/cronService.es6 +0 -123
  888. package/kernel/task.es6 +0 -80
  889. package/kernel/templates.es6 +0 -22
  890. package/kernel/templating/twig.es6 +0 -218
  891. package/kernel/tests/cliTest.js +0 -59
  892. package/kernel/tests/containerTest.js +0 -232
  893. package/kernel/tests/kernelTest.js +0 -39
  894. package/nodefony.es6 +0 -1084
  895. package/notificationsCenter.es6 +0 -118
  896. package/protocol.es6 +0 -86
  897. package/protocols/bayeux.es6 +0 -174
  898. package/protocols/jsonRpc/jsonrpc.es6 +0 -56
  899. package/result.es6 +0 -99
  900. package/service.es6 +0 -288
  901. package/syslog/pdu.es6 +0 -141
  902. package/syslog/syslog.es6 +0 -754
  903. package/watcher.es6 +0 -113
@@ -0,0 +1,589 @@
1
+ //#region src/cli/scaffold/entityFields.ts
2
+ /**
3
+ * Champs d'entité : de la syntaxe `title:string` au code Drizzle du dialecte visé.
4
+ *
5
+ * Module **pur** (aucune I/O, aucun template) : c'est lui qui porte la traduction
6
+ * « vocabulaire Nodefony → colonne Drizzle native », donc c'est lui qu'on teste.
7
+ *
8
+ * Vocabulaire volontairement restreint — le scaffold doit produire du code qu'un
9
+ * humain relit et étend, pas couvrir toute la surface SQL. Un besoin exotique
10
+ * (`numeric(12,4)`, `citext`, tableau PG…) s'écrit à la main dans la table générée :
11
+ * c'est du Drizzle natif, il n'y a rien à contourner.
12
+ */
13
+ /** Dialectes SQL supportés par le scaffold (ceux de `@nodefony/drizzle`). */
14
+ const ENTITY_DIALECTS = [
15
+ "sqlite",
16
+ "postgres",
17
+ "mysql"
18
+ ];
19
+ /** Stratégies de clé primaire. */
20
+ const ENTITY_ID_KINDS = [
21
+ "uuid7",
22
+ "uuid4",
23
+ "serial"
24
+ ];
25
+ /** Types de champ du vocabulaire Nodefony (jamais le vocabulaire Drizzle). */
26
+ const ENTITY_FIELD_TYPES = [
27
+ "string",
28
+ "text",
29
+ "int",
30
+ "float",
31
+ "bool",
32
+ "json",
33
+ "date",
34
+ "uuid",
35
+ "enum",
36
+ "char",
37
+ "decimal"
38
+ ];
39
+ /**
40
+ * Casses de nom de colonne SQL proposées — la propriété TypeScript ne bouge jamais.
41
+ *
42
+ * `camel` reproduit la propriété telle quelle (défaut historique) ; `snake` émet
43
+ * `site_id` là où la propriété reste `siteId`. Drizzle porte nativement cette
44
+ * dissociation — le premier argument d'un constructeur de colonne EST le nom SQL.
45
+ *
46
+ * Une seule option couvre l'écrasante majorité des schémas existants : sur les 134
47
+ * renommages qu'exige le schéma d'Umami, **115 sont ce passage mécanique** au
48
+ * `snake_case`. Les nommer un par un aurait demandé un dictionnaire ; ils tiennent
49
+ * dans un choix.
50
+ */
51
+ const COLUMN_CASES = ["camel", "snake"];
52
+ /** `BlogPost` / `blog-post` / `siteId` → `blog_post` / `site_id`. */
53
+ function toSnakeCase(name) {
54
+ return name.replace(/([a-z0-9])([A-Z])/gu, "$1_$2").replaceAll("-", "_").toLowerCase();
55
+ }
56
+ /**
57
+ * Nom SQL d'une colonne, dérivé de sa propriété TypeScript.
58
+ *
59
+ * @param property - nom de la propriété (`siteId`).
60
+ * @param columnCase - casse demandée ; `camel` rend la propriété inchangée.
61
+ */
62
+ function sqlColumn(property, columnCase) {
63
+ return columnCase === "snake" ? toSnakeCase(property) : property;
64
+ }
65
+ /** Erreur de syntaxe dans la déclaration d'un champ — message actionnable. */
66
+ var EntityFieldError = class extends Error {};
67
+ const NAME_RE = /^[a-z][a-zA-Z0-9]*$/u;
68
+ const ENTITY_RE = /^[A-Z][A-Za-z0-9]*$/u;
69
+ /** Types qui n'acceptent pas de valeur par défaut littérale. */
70
+ const NO_DEFAULT = /* @__PURE__ */ new Set([
71
+ "json",
72
+ "date",
73
+ "ref"
74
+ ]);
75
+ /**
76
+ * Analyse la déclaration textuelle des champs.
77
+ *
78
+ * Grammaire : `nom:type[?][!][=defaut][:index]` · `nom:ref:Entité[?][!][:index]`
79
+ * - `?` → nullable (sinon **NOT NULL** : une colonne nullable est une décision, pas un oubli) ;
80
+ * - `!` → unique ;
81
+ * - `=valeur` → valeur par défaut (`price:float=0`, `status:enum(draft,published)=draft`) ;
82
+ * - `:index` → index simple.
83
+ *
84
+ * Le type `enum` porte ses valeurs entre parenthèses : `status:enum(draft,published)`.
85
+ *
86
+ * @param input - `"title:string! content:text? views:int=0 author:ref:User"`.
87
+ * @returns les champs, dans l'ordre de déclaration.
88
+ * @throws EntityFieldError si un champ est mal formé (le mot « invalide » est attendu
89
+ * par le routeur d'erreurs du CLI pour sortir en `EX_USAGE`).
90
+ */
91
+ function parseEntityFields(input) {
92
+ const fields = [];
93
+ const seen = /* @__PURE__ */ new Set();
94
+ for (const raw of input.split(/\s+/u).filter(Boolean)) {
95
+ let spec = raw;
96
+ let indexed = false;
97
+ if (spec.endsWith(":index")) {
98
+ indexed = true;
99
+ spec = spec.slice(0, -6);
100
+ }
101
+ let defaultValue;
102
+ const equalsAt = spec.indexOf("=", spec.lastIndexOf(")") + 1);
103
+ if (equalsAt >= 0) {
104
+ defaultValue = spec.slice(equalsAt + 1);
105
+ spec = spec.slice(0, equalsAt);
106
+ if (defaultValue === "") throw new EntityFieldError(`champ invalide « ${raw} » — valeur par défaut vide après « = » (ex : views:int=0)`);
107
+ }
108
+ let nullable = false;
109
+ let unique = false;
110
+ for (;;) {
111
+ if (spec.endsWith("?")) {
112
+ nullable = true;
113
+ spec = spec.slice(0, -1);
114
+ continue;
115
+ }
116
+ if (spec.endsWith("!")) {
117
+ unique = true;
118
+ spec = spec.slice(0, -1);
119
+ continue;
120
+ }
121
+ break;
122
+ }
123
+ const parts = spec.split(":");
124
+ const name = parts[0];
125
+ if (!name || !NAME_RE.test(name)) throw new EntityFieldError(`champ invalide « ${raw} » — nom attendu en camelCase (ex : title, publishedAt)`);
126
+ if (seen.has(name)) throw new EntityFieldError(`champ invalide « ${raw} » — « ${name} » déclaré deux fois`);
127
+ if (name === "id") throw new EntityFieldError(`champ invalide « ${raw} » — « id » est la clé primaire, posée par --id (uuid7 | uuid4 | serial)`);
128
+ seen.add(name);
129
+ if (parts[1] === "ref") {
130
+ const target = parts[2];
131
+ if (!target || !ENTITY_RE.test(target)) throw new EntityFieldError(`champ invalide « ${raw} » — cible attendue : nom d'entité en PascalCase (ex : author:ref:User)`);
132
+ if (defaultValue !== void 0) throw new EntityFieldError(`champ invalide « ${raw} » — une relation n'a pas de valeur par défaut`);
133
+ fields.push({
134
+ name,
135
+ type: "ref",
136
+ target,
137
+ nullable,
138
+ unique,
139
+ indexed: indexed || !unique
140
+ });
141
+ continue;
142
+ }
143
+ const enumMatch = /^enum\((.*)\)$/u.exec(parts[1] ?? "");
144
+ if (enumMatch) {
145
+ const values = (enumMatch[1] ?? "").split(",").map((value) => value.trim()).filter(Boolean);
146
+ if (values.length === 0) throw new EntityFieldError(`champ invalide « ${raw} » — enum sans valeur (ex : status:enum(draft,published))`);
147
+ if (defaultValue !== void 0 && !values.includes(defaultValue)) throw new EntityFieldError(`champ invalide « ${raw} » — défaut « ${defaultValue} » absent des valeurs (${values.join(", ")})`);
148
+ fields.push({
149
+ name,
150
+ type: "enum",
151
+ values,
152
+ nullable,
153
+ unique,
154
+ indexed,
155
+ ...defaultValue !== void 0 ? { defaultValue } : {}
156
+ });
157
+ continue;
158
+ }
159
+ const spec2 = parts[1] ?? "string";
160
+ let length;
161
+ let precision;
162
+ let scale;
163
+ const sized = /^(string|char)\((\d+)\)$/u.exec(spec2);
164
+ const decimalMatch = /^decimal\((\d+),\s*(\d+)\)$/u.exec(spec2);
165
+ if (sized) {
166
+ length = Number(sized[2]);
167
+ if (length < 1) throw new EntityFieldError(`champ invalide « ${raw} » — longueur nulle (ex : title:string(200), country:char(2))`);
168
+ parts[1] = sized[1];
169
+ } else if (decimalMatch) {
170
+ precision = Number(decimalMatch[1]);
171
+ scale = Number(decimalMatch[2]);
172
+ if (precision < 1 || scale > precision) throw new EntityFieldError(`champ invalide « ${raw} » — décimal incohérent : l'échelle (${scale}) ne peut dépasser la précision (${precision}), ex : price:decimal(12,2)`);
173
+ parts[1] = "decimal";
174
+ } else if (spec2 === "char" || spec2 === "decimal") throw new EntityFieldError(spec2 === "char" ? `champ invalide « ${raw} » — char doit déclarer sa longueur (ex : country:char(2))` : `champ invalide « ${raw} » — décimal doit déclarer sa précision et son échelle (ex : price:decimal(12,2))`);
175
+ const type = parts[1] ?? "string";
176
+ if (!ENTITY_FIELD_TYPES.includes(type)) throw new EntityFieldError(`champ invalide « ${raw} » — type « ${type} » inconnu ; attendus : ${ENTITY_FIELD_TYPES.join(" | ")} | ref:<Entité>`);
177
+ if (type === "enum") throw new EntityFieldError(`champ invalide « ${raw} » — enum doit lister ses valeurs (ex : status:enum(draft,published))`);
178
+ if (parts.length > 2) throw new EntityFieldError(`champ invalide « ${raw} » — trop de segments (attendu nom:type[?][!][=defaut][:index])`);
179
+ if (defaultValue !== void 0) {
180
+ if (NO_DEFAULT.has(type)) throw new EntityFieldError(`champ invalide « ${raw} » — le type « ${type} » n'accepte pas de valeur par défaut`);
181
+ if ((type === "int" || type === "float") && !Number.isFinite(Number(defaultValue))) throw new EntityFieldError(`champ invalide « ${raw} » — défaut « ${defaultValue} » n'est pas un nombre`);
182
+ if (type === "bool" && defaultValue !== "true" && defaultValue !== "false") throw new EntityFieldError(`champ invalide « ${raw} » — défaut d'un booléen : true ou false`);
183
+ }
184
+ fields.push({
185
+ name,
186
+ type,
187
+ nullable,
188
+ unique,
189
+ indexed,
190
+ ...length !== void 0 ? { length } : {},
191
+ ...precision !== void 0 ? {
192
+ precision,
193
+ scale
194
+ } : {},
195
+ ...defaultValue !== void 0 ? { defaultValue } : {}
196
+ });
197
+ }
198
+ return fields;
199
+ }
200
+ /**
201
+ * Colonnes qu'une entité possède SANS qu'un champ les déclare.
202
+ *
203
+ * Elles sont indexables comme les autres — un index composite sur la date de
204
+ * création est même le cas le plus courant sur une table d'événements — mais elles
205
+ * n'apparaissent pas dans la liste des champs analysés, d'où cette table.
206
+ */
207
+ function implicitColumns(options) {
208
+ const names = ["id"];
209
+ if (options.timestamps) names.push("createdAt", "updatedAt");
210
+ if (options.softDelete) names.push("deletedAt");
211
+ return names;
212
+ }
213
+ /**
214
+ * Analyse les index de table déclarés par `--index` / `--unique`.
215
+ *
216
+ * Chaque valeur est une liste de colonnes séparées par des virgules
217
+ * (`"websiteId,createdAt"`). Toute colonne citée doit exister : sans ce contrôle, on
218
+ * écrirait une entité qui ne compile pas, et l'erreur tomberait chez l'utilisateur
219
+ * sous la forme d'une propriété inconnue — loin de la commande qui l'a causée.
220
+ *
221
+ * @param specs - valeurs brutes des options, dans l'ordre de la ligne de commande.
222
+ * @param fields - champs déjà analysés, qui fournissent les noms légitimes.
223
+ * @param options - présence des colonnes implicites (horodatages, suppression douce).
224
+ * @param unique - `true` quand ces valeurs viennent de `--unique`.
225
+ * @returns les index analysés, doublons retirés.
226
+ * @throws {EntityFieldError} colonne inconnue, liste vide, ou colonne répétée.
227
+ */
228
+ function parseEntityIndexes(specs, fields, options, unique = false) {
229
+ const known = /* @__PURE__ */ new Set([...implicitColumns(options), ...fields.map((f) => f.name)]);
230
+ const out = [];
231
+ const seen = /* @__PURE__ */ new Set();
232
+ for (const raw of specs) {
233
+ const columns = raw.split(",").map((c) => c.trim()).filter((c) => c.length > 0);
234
+ if (columns.length === 0) throw new EntityFieldError(`index « ${raw} » : aucune colonne — attendu une liste séparée par des virgules, ex. --index "websiteId,createdAt"`);
235
+ for (const column of columns) if (!known.has(column)) throw new EntityFieldError(`index « ${raw} » : la colonne « ${column} » n'existe pas sur cette entité — colonnes disponibles : ${[...known].join(", ")}`);
236
+ const duplicate = columns.find((c, i) => columns.indexOf(c) !== i);
237
+ if (duplicate !== void 0) throw new EntityFieldError(`index « ${raw} » : la colonne « ${duplicate} » est citée deux fois`);
238
+ const key = `${unique ? "u" : "i"}:${columns.join(",")}`;
239
+ if (seen.has(key)) continue;
240
+ seen.add(key);
241
+ out.push({
242
+ columns,
243
+ unique
244
+ });
245
+ }
246
+ return out;
247
+ }
248
+ /** Liste de valeurs d'énumération, écrite comme option Drizzle (`{ enum: [...] }`). */
249
+ const enumOption = (values = []) => `enum: [${values.map((value) => JSON.stringify(value)).join(", ")}] as const`;
250
+ /** Longueur d'une chaîne, avec le repli historique quand rien n'est déclaré. */
251
+ const len = (size) => size?.length ?? 255;
252
+ /**
253
+ * Option de précision d'un décimal, écrite comme Drizzle l'attend.
254
+ *
255
+ * Sans précision déclarée, on n'écrit RIEN plutôt qu'un défaut inventé : les
256
+ * moteurs n'ont pas la même idée d'un `numeric` nu, et choisir à leur place
257
+ * masquerait ce désaccord au lieu de le laisser paraître.
258
+ */
259
+ const decimalOption = (size) => size?.precision === void 0 ? "" : `, { precision: ${size.precision}, scale: ${size.scale ?? 0} }`;
260
+ /**
261
+ * Constructeur de colonne Drizzle par (dialecte, type) — le cœur de la traduction.
262
+ *
263
+ * Le second argument ne sert qu'aux énumérations, le troisième aux tailles
264
+ * (longueur d'une chaîne, précision d'un décimal).
265
+ *
266
+ * Les trois moteurs n'offrent pas le même vocabulaire, et la table le dit au lieu
267
+ * de le contourner : SQLite ignore `varchar` et `char` — toute chaîne y est un
268
+ * `text`, la longueur n'y est de toute façon pas appliquée —, et MySQL n'expose
269
+ * pas `numeric`, dont `decimal` est l'exact équivalent.
270
+ */
271
+ const COLUMN = {
272
+ sqlite: {
273
+ string: (c) => `text("${c}")`,
274
+ char: (c) => `text("${c}")`,
275
+ decimal: (c) => `numeric("${c}")`,
276
+ text: (c) => `text("${c}")`,
277
+ int: (c) => `integer("${c}")`,
278
+ float: (c) => `real("${c}")`,
279
+ bool: (c) => `integer("${c}", { mode: "boolean" })`,
280
+ json: (c) => `text("${c}", { mode: "json" })`,
281
+ date: (c) => `integer("${c}", { mode: "timestamp_ms" })`,
282
+ uuid: (c) => `text("${c}")`,
283
+ ref: (c) => `text("${c}")`,
284
+ enum: (c, v) => `text("${c}", { ${enumOption(v)} })`
285
+ },
286
+ postgres: {
287
+ string: (c, _v, s) => `varchar("${c}", { length: ${len(s)} })`,
288
+ char: (c, _v, s) => `char("${c}", { length: ${len(s)} })`,
289
+ decimal: (c, _v, s) => `numeric("${c}"${decimalOption(s)})`,
290
+ text: (c) => `text("${c}")`,
291
+ int: (c) => `integer("${c}")`,
292
+ float: (c) => `doublePrecision("${c}")`,
293
+ bool: (c) => `boolean("${c}")`,
294
+ json: (c) => `jsonb("${c}")`,
295
+ date: (c) => `timestamp("${c}", { withTimezone: true, precision: 3 })`,
296
+ uuid: (c) => `uuid("${c}")`,
297
+ ref: (c) => `text("${c}")`,
298
+ enum: (c, v) => `varchar("${c}", { length: 255, ${enumOption(v)} })`
299
+ },
300
+ mysql: {
301
+ string: (c, _v, s) => `varchar("${c}", { length: ${len(s)} })`,
302
+ char: (c, _v, s) => `char("${c}", { length: ${len(s)} })`,
303
+ decimal: (c, _v, s) => `decimal("${c}"${decimalOption(s)})`,
304
+ text: (c) => `text("${c}")`,
305
+ int: (c) => `int("${c}")`,
306
+ float: (c) => `double("${c}")`,
307
+ bool: (c) => `boolean("${c}")`,
308
+ json: (c) => `json("${c}")`,
309
+ date: (c) => `datetime("${c}", { fsp: 3 })`,
310
+ uuid: (c) => `varchar("${c}", { length: 36 })`,
311
+ ref: (c) => `varchar("${c}", { length: 255 })`,
312
+ enum: (c, v) => `varchar("${c}", { length: 255, ${enumOption(v)} })`
313
+ }
314
+ };
315
+ /**
316
+ * Ce que chaque type de champ devient, dans chaque moteur.
317
+ *
318
+ * Montrer la traduction plutôt que la promettre : `json` devient `jsonb` en
319
+ * PostgreSQL et une colonne texte en SQLite, `string` un `varchar(255)` ici et un
320
+ * `text` là. C'est une information dont dépend le choix de celui qui modélise, et
321
+ * elle n'est déductible d'aucune documentation générique.
322
+ *
323
+ * Dérivé de la table de traduction elle-même : impossible que ce catalogue
324
+ * dérive de ce que le générateur produit réellement.
325
+ *
326
+ * @returns un descripteur par type, avec sa colonne Drizzle par dialecte.
327
+ */
328
+ function describeColumnTypes() {
329
+ return [...ENTITY_FIELD_TYPES, "ref"].map((type) => ({
330
+ type,
331
+ byDialect: Object.fromEntries(ENTITY_DIALECTS.map((dialect) => [dialect, COLUMN[dialect][type]("exemple", ["a", "b"], {
332
+ ...type === "char" ? { length: 2 } : {},
333
+ ...type === "decimal" ? {
334
+ precision: 12,
335
+ scale: 2
336
+ } : {}
337
+ })]))
338
+ }));
339
+ }
340
+ /** Fonction de table Drizzle du dialecte (`sqliteTable`…) et son import. */
341
+ const TABLE_FN = {
342
+ sqlite: {
343
+ fn: "sqliteTable",
344
+ module: "drizzle-orm/sqlite-core"
345
+ },
346
+ postgres: {
347
+ fn: "pgTable",
348
+ module: "drizzle-orm/pg-core"
349
+ },
350
+ mysql: {
351
+ fn: "mysqlTable",
352
+ module: "drizzle-orm/mysql-core"
353
+ }
354
+ };
355
+ /** Type TypeScript de la propriété correspondante (interface `XRow`). */
356
+ const TS_TYPE = {
357
+ string: "string",
358
+ text: "string",
359
+ int: "number",
360
+ float: "number",
361
+ bool: "boolean",
362
+ json: "unknown",
363
+ date: "Date",
364
+ uuid: "string",
365
+ ref: "string",
366
+ enum: "string",
367
+ char: "string",
368
+ decimal: "string"
369
+ };
370
+ /** Schéma Zod correspondant (validation à la frontière). */
371
+ const ZOD_TYPE = {
372
+ string: "z.string().min(1).max(255)",
373
+ text: "z.string()",
374
+ int: "z.number().int()",
375
+ float: "z.number()",
376
+ bool: "z.boolean()",
377
+ json: "z.unknown()",
378
+ date: "z.coerce.date()",
379
+ uuid: "z.string().uuid()",
380
+ ref: "z.string()",
381
+ enum: "z.string()",
382
+ char: "z.string()",
383
+ decimal: "z.string()"
384
+ };
385
+ /**
386
+ * Littéral TypeScript d'une valeur par défaut, selon le type du champ.
387
+ *
388
+ * Les nombres et booléens sont écrits nus, tout le reste est une chaîne : c'est
389
+ * la seule interprétation possible d'un texte saisi en ligne de commande.
390
+ */
391
+ function defaultLiteral(field) {
392
+ if (field.type === "int" || field.type === "float") return String(Number(field.defaultValue));
393
+ if (field.type === "bool") return String(field.defaultValue === "true");
394
+ if (field.type === "json") try {
395
+ return JSON.stringify(JSON.parse(String(field.defaultValue)));
396
+ } catch {
397
+ return JSON.stringify(field.defaultValue);
398
+ }
399
+ return JSON.stringify(field.defaultValue);
400
+ }
401
+ /** Type TS d'un champ — union littérale pour une énumération. */
402
+ function tsTypeOf(field) {
403
+ if (field.type === "enum" && field.values) return field.values.map((value) => JSON.stringify(value)).join(" | ");
404
+ return TS_TYPE[field.type];
405
+ }
406
+ /**
407
+ * Schéma Zod d'un champ — `z.enum` pour une énumération, borné pour une taille.
408
+ *
409
+ * C'est ici que les tailles deviennent une garantie RÉELLE. La colonne, elle, ne
410
+ * protège pas partout : SQLite n'applique aucune longueur, et une valeur trop
411
+ * longue y entrerait sans un mot pour ressortir tronquée le jour d'une migration
412
+ * vers PostgreSQL. Le schéma, lui, s'applique sur tous les transports — REST,
413
+ * socket, ligne de commande — et dans les trois moteurs.
414
+ */
415
+ function zodTypeOf(field) {
416
+ if (field.type === "enum" && field.values) return `z.enum([${field.values.map((value) => JSON.stringify(value)).join(", ")}])`;
417
+ if (field.type === "string") return `z.string().min(1).max(${field.length ?? 255})`;
418
+ if (field.type === "char") return field.length === void 0 ? "z.string()" : `z.string().length(${field.length})`;
419
+ if (field.type === "decimal") {
420
+ const hint = field.precision === void 0 ? "décimal attendu" : `d\u00e9cimal attendu (${field.precision} chiffres dont ${field.scale ?? 0} apr\u00e8s la virgule)`;
421
+ return `z.string().regex(/^-?\\d+(\\.\\d+)?$/, ${JSON.stringify(hint)})`;
422
+ }
423
+ return ZOD_TYPE[field.type];
424
+ }
425
+ /**
426
+ * Colonne de clé primaire, selon la stratégie retenue.
427
+ *
428
+ * La PROPRIÉTÉ reste `id` en toutes circonstances : le service CRUD, le controller,
429
+ * le tri par défaut et les tests générés la nomment ainsi, et un schéma existant
430
+ * n'a aucune raison d'imposer sa convention au code TypeScript. Seule la COLONNE
431
+ * SQL suit le nom demandé — c'est elle qui doit épouser la table déjà en place
432
+ * (`website_id` chez Umami, `session_id`, `user_id`… : 18 des 134 renommages).
433
+ *
434
+ * @param column - nom SQL de la colonne (`id` par défaut).
435
+ */
436
+ function primaryKeyColumn(dialect, id, column) {
437
+ if (id === "serial") return {
438
+ line: dialect === "sqlite" ? `id: integer("${column}").primaryKey({ autoIncrement: true }),` : dialect === "postgres" ? `id: serial("${column}").primaryKey(),` : `id: int("${column}").autoincrement().primaryKey(),`,
439
+ tsType: "number",
440
+ imports: dialect === "sqlite" ? ["integer"] : dialect === "postgres" ? ["serial"] : ["int"]
441
+ };
442
+ const generator = id === "uuid7" ? "Nodefony.generateSortableId()" : "Nodefony.generateId()";
443
+ return {
444
+ line: `id: ${COLUMN[dialect].uuid(column)}.primaryKey().$defaultFn(() => ${generator}),`,
445
+ tsType: "string",
446
+ imports: [dialect === "postgres" ? "uuid" : dialect === "mysql" ? "varchar" : "text"]
447
+ };
448
+ }
449
+ /**
450
+ * Colonne qui PORTE une référence — le pendant exact de {@link primaryKeyColumn}.
451
+ *
452
+ * Une clé étrangère doit avoir le TYPE de la clé qu'elle désigne, et c'est la
453
+ * raison d'être de cette fonction : la référence était jusqu'ici une colonne
454
+ * texte, quelle que soit la clé visée. En PostgreSQL, comparer un `text` à un
455
+ * `uuid` échoue — « operator does not exist: text = uuid ». La jointure que cette
456
+ * colonne existe précisément pour servir refusait donc de s'exécuter, et le
457
+ * `?include=` avec elle. En SQLite, moteur du développement, la même comparaison
458
+ * passe sans broncher : la panne n'attendait que le premier vrai serveur.
459
+ *
460
+ * La stratégie retenue est celle de l'entité qu'on crée. C'est le seul indice
461
+ * dont dispose le générateur — il ne lit pas l'entité visée —, et il est juste
462
+ * tant qu'une application ne mélange pas ses styles d'identifiant, ce qui est le
463
+ * cas ordinaire. Une cible d'un autre style se corrige dans la table générée :
464
+ * c'est du Drizzle natif.
465
+ *
466
+ * Aucune contrainte `REFERENCES` n'est émise — même raison qu'ailleurs : le DDL
467
+ * dérivé du mode développement ne l'appliquerait pas, et une promesse non tenue
468
+ * coûte plus cher qu'un commentaire honnête.
469
+ *
470
+ * @param dialect - moteur visé.
471
+ * @param id - stratégie de clé primaire de l'entité en cours.
472
+ * @param col - nom de la colonne.
473
+ * @returns l'expression Drizzle, son type TypeScript et l'import nécessaire.
474
+ */
475
+ function foreignKeyColumn(dialect, id, col) {
476
+ if (id === "serial") return {
477
+ expr: dialect === "mysql" ? `int("${col}")` : `integer("${col}")`,
478
+ tsType: "number",
479
+ imports: [dialect === "mysql" ? "int" : "integer"]
480
+ };
481
+ return {
482
+ expr: COLUMN[dialect].uuid(col),
483
+ tsType: "string",
484
+ imports: [dialect === "postgres" ? "uuid" : dialect === "mysql" ? "varchar" : "text"]
485
+ };
486
+ }
487
+ /** Nom du constructeur Drizzle utilisé par un champ (pour la liste d'imports). */
488
+ function columnImport(dialect, type) {
489
+ return COLUMN[dialect][type]("x").split("(")[0];
490
+ }
491
+ /**
492
+ * Produit le code des colonnes, de l'interface de ligne et du schéma Zod.
493
+ *
494
+ * Les horodatages sont posés **côté JS** (`$defaultFn`/`$onUpdateFn`) et non en SQL :
495
+ * le DDL dérivé du mode dev n'émet pas les `DEFAULT` — un défaut SQL serait donc
496
+ * silencieusement absent des tables créées au boot.
497
+ *
498
+ * @param fields - champs analysés par {@link parseEntityFields}.
499
+ * @param options - dialecte, stratégie d'identifiant, horodatages, suppression douce.
500
+ */
501
+ function buildEntityCodegen(fields, options) {
502
+ const { dialect, id, timestamps, softDelete, table } = options;
503
+ const columnCase = options.columnCase ?? "camel";
504
+ const idName = options.idName ?? "id";
505
+ /** Nom SQL d'une propriété, dans la casse retenue. */
506
+ const sql = (property) => sqlColumn(property, columnCase);
507
+ const imports = /* @__PURE__ */ new Set();
508
+ const columns = [];
509
+ const rowProps = [];
510
+ const zodProps = [];
511
+ const pk = primaryKeyColumn(dialect, id, idName);
512
+ pk.imports.forEach((i) => imports.add(i));
513
+ columns.push(pk.line);
514
+ rowProps.push(`id: ${pk.tsType};`);
515
+ for (const field of fields) {
516
+ const column = sql(field.name);
517
+ const fk = field.type === "ref" ? foreignKeyColumn(dialect, id, column) : void 0;
518
+ if (fk) fk.imports.forEach((i) => imports.add(i));
519
+ else imports.add(columnImport(dialect, field.type));
520
+ let col = fk?.expr ?? COLUMN[dialect][field.type](column, field.values, {
521
+ length: field.length,
522
+ precision: field.precision,
523
+ scale: field.scale
524
+ });
525
+ if (!field.nullable) col += ".notNull()";
526
+ if (field.unique) col += ".unique()";
527
+ if (field.defaultNow) {
528
+ col += ".$defaultFn(() => new Date())";
529
+ if (field.refreshedOnWrite) col += ".$onUpdateFn(() => new Date())";
530
+ }
531
+ if (field.defaultValue !== void 0) col += `.default(${defaultLiteral(field)}).$defaultFn(() => ${defaultLiteral(field)})`;
532
+ columns.push(`${field.name}: ${col},`);
533
+ const optional = field.nullable ? " | null" : "";
534
+ rowProps.push(`${field.name}: ${fk?.tsType ?? tsTypeOf(field)}${optional};`);
535
+ let zod = fk?.tsType === "number" ? "z.number().int()" : zodTypeOf(field);
536
+ if (field.nullable) zod += ".nullable().optional()";
537
+ if (field.defaultValue !== void 0) zod += `.default(${defaultLiteral(field)})`;
538
+ zodProps.push(`${field.name}: ${zod},`);
539
+ if (field.type === "ref") columns[columns.length - 1] += ` // → ${field.target}.id (contrainte FK à ajouter en migration)`;
540
+ }
541
+ if (timestamps) {
542
+ const dateCol = COLUMN[dialect].date;
543
+ imports.add(columnImport(dialect, "date"));
544
+ columns.push(`createdAt: ${dateCol("created_at")}.notNull().$defaultFn(() => new Date()),`, `updatedAt: ${dateCol("updated_at")}.notNull().$defaultFn(() => new Date()).$onUpdateFn(() => new Date()),`);
545
+ rowProps.push("createdAt: Date;", "updatedAt: Date;");
546
+ }
547
+ if (softDelete) {
548
+ const dateCol = COLUMN[dialect].date;
549
+ imports.add(columnImport(dialect, "date"));
550
+ columns.push(`deletedAt: ${dateCol("deleted_at")},`);
551
+ rowProps.push("deletedAt: Date | null;");
552
+ }
553
+ const declared = [...fields.filter((field) => field.indexed).map((field) => ({
554
+ columns: [field.name],
555
+ unique: false
556
+ })), ...options.indexes ?? []];
557
+ let tableExtras = "";
558
+ if (declared.length > 0) {
559
+ const seen = /* @__PURE__ */ new Set();
560
+ const lines = [];
561
+ for (const entry of declared) {
562
+ const suffix = entry.unique ? "key" : "idx";
563
+ const name = `${table}_${entry.columns.map(sql).join("_")}_${suffix}`;
564
+ if (seen.has(name)) continue;
565
+ seen.add(name);
566
+ const fn = entry.unique ? "uniqueIndex" : "index";
567
+ imports.add(fn);
568
+ const cols = entry.columns.map((c) => `t.${c}`).join(", ");
569
+ lines.push(` ${fn}("${name}").on(${cols}),`);
570
+ }
571
+ tableExtras = `, (t) => [\n${lines.join("\n")}\n ]`;
572
+ }
573
+ const { fn, module } = TABLE_FN[dialect];
574
+ imports.add(fn);
575
+ const block = (lines) => lines.join("\n ");
576
+ const blockLn = (lines) => `${block(lines)}\n`;
577
+ return {
578
+ columns: blockLn(columns),
579
+ drizzleImport: `import { ${[...imports].sort().join(", ")} } from "${module}";`,
580
+ tableFn: fn,
581
+ rowProps: block(rowProps),
582
+ zodProps: block(zodProps),
583
+ tableExtras,
584
+ needsNodefony: id !== "serial",
585
+ idType: pk.tsType
586
+ };
587
+ }
588
+ //#endregion
589
+ export { COLUMN_CASES, ENTITY_DIALECTS, ENTITY_FIELD_TYPES, ENTITY_ID_KINDS, EntityFieldError, TABLE_FN, buildEntityCodegen, describeColumnTypes, parseEntityFields, parseEntityIndexes, sqlColumn, toSnakeCase };