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,84 @@
1
+ //#region src/runtime/bearer.ts
2
+ /**
3
+ * Extraction du jeton d'un en-tête `Authorization: Bearer …` — sans expression
4
+ * régulière, et volontairement.
5
+ *
6
+ * Le motif d'origine, `/^bearer\s+(.+)$/i`, était dupliqué dans deux
7
+ * authentificateurs et **quadratique** : `\s+` suivi de `(.+)` laisse le moteur
8
+ * essayer chaque point de découpage entre les deux quantificateurs. Un client
9
+ * anonyme envoyant `Bearer ` suivi de milliers d'espaces faisait donc brûler du
10
+ * temps processeur à chaque requête — sur la boucle d'événements, qui est
11
+ * unique. Aggravant : le test de support s'exécute AVANT toute authentification,
12
+ * donc le coût se paie pour un porteur qui n'a rien prouvé, et la taille
13
+ * d'en-tête tolérée par Node (16 Kio) suffit largement à le rendre sensible.
14
+ *
15
+ * Ici, tout est linéaire : une comparaison de préfixe, un saut d'espaces, une
16
+ * découpe. Aucun retour arrière n'est possible parce qu'il n'y a pas d'automate.
17
+ *
18
+ * **Séparateur restreint à l'espace et à la tabulation** : c'est ce que la
19
+ * RFC 9110 §5.6.3 autorise entre le schéma et ses paramètres (`OWS`). `\s`
20
+ * acceptait retours à la ligne et espaces Unicode — plus permissif que la norme,
21
+ * pour aucun bénéfice.
22
+ *
23
+ * ## Pourquoi au CŒUR, et pas dans le module de sécurité
24
+ *
25
+ * Deux couches lisent le même en-tête sans pouvoir se voir : les
26
+ * authentificateurs de `@nodefony/security`, et la porte MCP, dont le protocole
27
+ * vit ici. Une frontière de paquets aurait imposé une copie — or une copie de
28
+ * cette fonction ne diverge pas bruyamment : elle diverge sur un cas limite
29
+ * (`Bearer …`, `Bearer` sans séparateur) que chaque copie continue de
30
+ * passer dans ses propres tests. La règle « 1 règle = 1 implémentation » veut
31
+ * donc qu'elle vive au niveau que les deux peuvent atteindre — le plus bas.
32
+ *
33
+ * Elle est ici, et non dans un dossier `mcp/`, parce qu'elle ne doit rien à ce
34
+ * protocole : c'est de la sémantique HTTP, lue à chaque requête entrante.
35
+ */
36
+ /** Le schéma, en minuscules — comparé sans allouer de version normalisée. */
37
+ const SCHEME = "bearer";
38
+ /**
39
+ * Lit un en-tête `Authorization` et dit ce qu'il porte.
40
+ *
41
+ * @param header - la valeur brute de l'en-tête (absente, d'un autre schéma, ou
42
+ * vide — aucun de ces cas ne lève).
43
+ * @returns le verdict de lecture ; jamais une exception.
44
+ */
45
+ function readBearerHeader(header) {
46
+ if (typeof header !== "string" || header.length === 0) return { kind: "absent" };
47
+ if (header.length < 6) return { kind: "other" };
48
+ if (header.slice(0, 6).toLowerCase() !== SCHEME) return { kind: "other" };
49
+ let i = 6;
50
+ if (i === header.length) return { kind: "empty" };
51
+ const first = header.charCodeAt(i);
52
+ if (first !== 32 && first !== 9) return { kind: "other" };
53
+ while (i < header.length) {
54
+ const c = header.charCodeAt(i);
55
+ if (c !== 32 && c !== 9) break;
56
+ i++;
57
+ }
58
+ const token = header.slice(i).trimEnd();
59
+ return token.length > 0 ? {
60
+ kind: "token",
61
+ token
62
+ } : { kind: "empty" };
63
+ }
64
+ /**
65
+ * Rend le jeton porté par un en-tête `Authorization`, ou `null`.
66
+ *
67
+ * Projection de {@link readBearerHeader} pour les appelants que la NUANCE ne
68
+ * regarde pas — un authentificateur qui cherche un porteur et passe la main s'il
69
+ * n'y en a pas. Une porte qui doit RÉPONDRE (401 ? 400 ? anonyme ?) lit le
70
+ * verdict complet : sans lui, elle ne peut pas distinguer « rien présenté » de
71
+ * « mal présenté », et elle tranche donc toujours du mauvais côté pour l'un des
72
+ * deux.
73
+ *
74
+ * @param header - la valeur brute de l'en-tête (peut être absente ou d'un autre
75
+ * schéma — les deux rendent `null`, jamais une exception).
76
+ * @returns le jeton débarrassé de ses espaces de tête et de queue, ou `null` si
77
+ * l'en-tête n'est pas un `Bearer` valide ou ne porte aucun jeton.
78
+ */
79
+ function bearerToken(header) {
80
+ const lu = readBearerHeader(header);
81
+ return lu.kind === "token" ? lu.token : null;
82
+ }
83
+ //#endregion
84
+ export { bearerToken, readBearerHeader };
@@ -0,0 +1,79 @@
1
+ //#region src/runtime/engineEnvironment.ts
2
+ /**
3
+ * Mode retenu lorsque ni l'environnement ni la commande n'en désignent un.
4
+ *
5
+ * 🔴 **`development`, et c'est un choix de SÛRETÉ.** Le raisonnement, parce
6
+ * qu'il se reprendra le jour où quelqu'un voudra l'inverser :
7
+ *
8
+ * Ce défaut ne s'applique QUE si `NODE_ENV` est absent ET que la commande
9
+ * n'exprime aucune intention. Or aucun serveur ne démarre dans cet état : les
10
+ * trois lanceurs posent leur mode eux-mêmes (`ProdCommand`, `DevCommand`,
11
+ * `ClusterCommand`), et il n'existe pas d'autre façon d'en lancer un. Le défaut
12
+ * ne gouverne donc que les commandes UTILITAIRES — `inspect`, `check`, `env`,
13
+ * `security:*` — tapées, dans leur écrasante majorité, sur un poste de
14
+ * développement. Le défaut doit protéger le cas où l'information manque, et
15
+ * l'information manque là.
16
+ *
17
+ * ⚠️ **Ce n'est pas le « 12-factor » qui le justifie** : sa section Config
18
+ * déconseille au contraire les *environment groups* comme `NODE_ENV`, et rien
19
+ * n'oblige un orchestrateur à le poser. Ce qui garantit le mode en production
20
+ * ici est FACTUEL, pas doctrinal — l'image générée pose
21
+ * `ENV NODE_ENV=production`, et les lanceurs déclarent leur intention. Ce qui
22
+ * relève vraiment du 12-factor est la PRÉCÉDENCE : l'ambiant l'emporte sur
23
+ * l'intention de la commande.
24
+ *
25
+ * Risque résiduel, nommé plutôt que masqué : une commande utilitaire lancée sur
26
+ * un déploiement de production SANS `NODE_ENV` et HORS image officielle partira
27
+ * en `development`. Le symétrique — le poste de développement traité comme la
28
+ * production — est ce qui a réellement cassé trois fois : un jeton émis contre
29
+ * la mauvaise configuration, une inspection montrant les modules de production
30
+ * sur une machine de développement, et un contrôle de banc comparant deux
31
+ * applications distinctes. Aucun n'a levé la moindre erreur.
32
+ */
33
+ const DEFAULT_ENGINE_ENVIRONMENT = "development";
34
+ /**
35
+ * Le défaut à retenir SELON que `NODE_ENV` a été posé ou non.
36
+ *
37
+ * 🔴 **Poser `NODE_ENV` est un ACTE DE DÉPLOIEMENT ; ne rien poser est l'état
38
+ * d'un poste de développement.** C'est toute la distinction, et l'ignorer a
39
+ * failli coûter cher : une première version de cette règle rendait
40
+ * `development` dès que `NODE_ENV` ne désignait aucun mode moteur — donc pour
41
+ * `staging`, `canary`, `prod-eu`, `test`. Un déploiement de pré-production
42
+ * aurait chargé les modules `policy:"dev"` (console d'administration, outillage
43
+ * de développement) et détaillé ses traces. La suite de tests l'a arrêté.
44
+ *
45
+ * Les valeurs non-moteur ne sont donc PAS traitées comme une absence : elles
46
+ * nomment un déploiement, et un déploiement tourne comme la production. Seule
47
+ * l'absence TOTALE de la variable désigne un poste de développement.
48
+ *
49
+ * Une chaîne vide compte comme POSÉE — on ne peut pas distinguer « vidée par
50
+ * erreur » de « vidée exprès », et le choix conservateur ne coûte qu'une
51
+ * commande utilitaire, là où l'inverse expose une console d'administration.
52
+ *
53
+ * @param nodeEnv - `process.env.NODE_ENV` tel quel, `undefined` s'il est absent.
54
+ * @returns le mode à retenir quand rien d'autre ne le désigne.
55
+ */
56
+ function defaultEngineEnvironment(nodeEnv) {
57
+ return nodeEnv === void 0 ? DEFAULT_ENGINE_ENVIRONMENT : "production";
58
+ }
59
+ /**
60
+ * Le mode MOTEUR que désigne une étiquette d'environnement — le « collapse ».
61
+ *
62
+ * 🔴 Tout ce qui n'est pas `dev`/`development` tourne comme la PRODUCTION :
63
+ * `staging`, `canary`, `prod-eu` nomment un déploiement, et un déploiement est
64
+ * optimisé, gated et tracé comme la production.
65
+ *
66
+ * Écrite ici, et nulle part ailleurs : cette règle décide à la fois de ce que
67
+ * le Kernel FAIT au démarrage et de ce que `doctor --env` PRÉDIT. Deux copies
68
+ * qui divergent feraient annoncer un déploiement que l'application ne produit
69
+ * pas — le pire défaut possible pour un outil dont c'est tout le propos.
70
+ *
71
+ * @param raw - l'étiquette telle qu'elle est posée (`NODE_ENV`, `--env`, …).
72
+ * @returns `"development"` ou `"production"` — jamais les formes courtes
73
+ * `dev`/`prod`, que ce collapse a justement pour rôle de résoudre.
74
+ */
75
+ function engineModeOf(raw) {
76
+ return raw === "dev" || raw === "development" ? "development" : "production";
77
+ }
78
+ //#endregion
79
+ export { DEFAULT_ENGINE_ENVIRONMENT, defaultEngineEnvironment, engineModeOf };
@@ -0,0 +1,105 @@
1
+ import { parseEnv } from "node:util";
2
+ import { readFileSync } from "node:fs";
3
+ import { resolve } from "node:path";
4
+ //#region src/runtime/loadEnv.ts
5
+ /**
6
+ * Charge les fichiers `.env` du projet dans `process.env`, en cascade et SANS
7
+ * jamais écraser une variable déjà présente.
8
+ *
9
+ * **Convention B (Vite / Next.js)** — règle : les fichiers `*.local` (gitignorés,
10
+ * secrets/machine) priment TOUJOURS sur les committés ; à rang égal, le plus
11
+ * spécifique gagne. Nodefony ajoute un 2ᵉ axe : `appEnv` (déploiement) est plus
12
+ * spécifique que `runtimeEnv` (mode). Précédence, du PLUS fort au PLUS faible :
13
+ *
14
+ * ```
15
+ * process.env ← shell / orchestrateur k8s (gagne TOUJOURS)
16
+ * > .env.<appEnv>.local ┐ gitignorés (*.local) ┐ si appEnv défini
17
+ * > .env.<runtimeEnv>.local │ │ & ≠ runtimeEnv
18
+ * > .env.local ┘ │
19
+ * > .env.<appEnv> ┐ committés (non-secrets) ┘
20
+ * > .env.<runtimeEnv> │
21
+ * > .env ┘ défauts communs (le + faible)
22
+ * ```
23
+ *
24
+ * Mécanique : on lit du **plus** prioritaire au **moins** prioritaire et on
25
+ * n'assigne QUE les clés encore absentes de `process.env`. Une variable déjà
26
+ * posée — shell, orchestrateur, ou fichier plus prioritaire déjà traité — n'est
27
+ * jamais réécrite → la précédence ci-dessus en découle naturellement.
28
+ *
29
+ * Parse natif `node:util.parseEnv` (Node ≥ 21) → **zéro dépendance**. Un fichier
30
+ * absent ou illisible est ignoré silencieusement (tout `.env` est optionnel).
31
+ *
32
+ * Appelé une seule fois au démarrage du bin CLI, **AVANT `new CliKernel()`** : les
33
+ * configs de modules lisent `process.env` au boot (ex. `REDIS_*` dans
34
+ * `defineRedisConfig`), l'env doit donc être peuplé en amont.
35
+ *
36
+ * @param opts - {@link ILoadEnvOptions} (runtimeEnv / appEnv / cwd).
37
+ * @returns le nombre de variables effectivement injectées (diagnostic / tests).
38
+ */
39
+ /**
40
+ * Les fichiers de la cascade, du PLUS prioritaire au MOINS prioritaire.
41
+ *
42
+ * Extrait de {@link loadEnv} pour être la source UNIQUE de cet ordre : la
43
+ * commande `nodefony env` l'affiche, et un ordre affiché qui différerait de
44
+ * l'ordre appliqué serait pire que pas d'affichage du tout — c'est exactement ce
45
+ * qu'un utilisateur croirait sur parole en cherchant pourquoi sa variable est
46
+ * ignorée.
47
+ *
48
+ * @param opts - `runtimeEnv` (mode) et `appEnv` (déploiement).
49
+ * @returns les noms de fichiers, ordonnés ; ne dit pas lesquels existent.
50
+ */
51
+ function envFileOrder(opts = {}) {
52
+ const { runtimeEnv, appEnv } = opts;
53
+ const deployEnv = appEnv && appEnv !== runtimeEnv ? appEnv : void 0;
54
+ const files = [];
55
+ if (deployEnv) files.push(`.env.${deployEnv}.local`);
56
+ if (runtimeEnv) files.push(`.env.${runtimeEnv}.local`);
57
+ files.push(".env.local");
58
+ if (deployEnv) files.push(`.env.${deployEnv}`);
59
+ if (runtimeEnv) files.push(`.env.${runtimeEnv}`);
60
+ files.push(".env");
61
+ return files;
62
+ }
63
+ /**
64
+ * L'environnement EFFECTIF d'un projet, sans toucher à `process.env`.
65
+ *
66
+ * Même cascade et même précédence que {@link loadEnv} — dont c'est désormais le
67
+ * moteur —, mais rendue plutôt qu'injectée. Elle sert à tout ce qui doit LIRE
68
+ * l'environnement d'une application sans être cette application : un diagnostic
69
+ * lancé depuis un poste voit ainsi ce que l'app verra, alors que `process.env`
70
+ * nu ne montre que ce que le terminal a posé.
71
+ *
72
+ * 🔴 C'est exactement le trou que `doctor` portait : le dialecte du connecteur
73
+ * était déduit de `process.env` seul, donc une application dont l'URL vit dans
74
+ * `.env.local` — le chemin que le gabarit PRESCRIT — voyait chacune de ses
75
+ * entités accusée d'être écrite pour le mauvais moteur.
76
+ *
77
+ * @param base - l'environnement de départ, qui GAGNE sur les fichiers.
78
+ * @param opts - la cascade à lire (racine, mode runtime, environnement de déploiement).
79
+ * @returns un objet neuf ; ni `base` ni `process.env` ne sont modifiés.
80
+ */
81
+ function resolveEnvCascade(base, opts = {}) {
82
+ const { cwd = process.cwd() } = opts;
83
+ const merged = { ...base };
84
+ for (const file of envFileOrder(opts)) {
85
+ let parsed;
86
+ try {
87
+ parsed = parseEnv(readFileSync(resolve(cwd, file), "utf8"));
88
+ } catch {
89
+ continue;
90
+ }
91
+ for (const key in parsed) if (merged[key] === void 0) merged[key] = parsed[key];
92
+ }
93
+ return merged;
94
+ }
95
+ function loadEnv(opts = {}) {
96
+ const resolved = resolveEnvCascade(process.env, opts);
97
+ let injected = 0;
98
+ for (const key in resolved) if (process.env[key] === void 0) {
99
+ process.env[key] = resolved[key];
100
+ injected++;
101
+ }
102
+ return injected;
103
+ }
104
+ //#endregion
105
+ export { envFileOrder, loadEnv, resolveEnvCascade };
@@ -0,0 +1,85 @@
1
+ //#region src/runtime/pageFacets.ts
2
+ /**
3
+ * Ce qu'un store rend quand il ne PEUT pas compter — convention de tous les
4
+ * backends du dépôt (`countSessions`, `countTokens`, `countEndpoints`).
5
+ *
6
+ * Une valeur sentinelle plutôt qu'une exception : ne pas savoir compter est un
7
+ * état nominal d'un backend en curseur, pas une panne.
8
+ */
9
+ const UNKNOWN_COUNT = -1;
10
+ /**
11
+ * Compte plusieurs **facettes** d'une même collection en un seul geste.
12
+ *
13
+ * Une facette est une question fermée posée à la collection entière — « combien
14
+ * de sessions authentifiées ? », « combien de clés révoquées ? ». C'est ce que
15
+ * les cartes en tête d'un écran d'administration prétendent afficher, et ce
16
+ * qu'elles calculaient jusqu'ici **sur la page chargée** : avec une fenêtre de
17
+ * 25 lignes, une carte annonçant « 3 comptes actifs » décrit trois lignes
18
+ * visibles, pas l'annuaire. Un nombre présenté sans qualificatif est lu comme un
19
+ * total ; le corriger d'une mention en petits caractères ne le rend pas vrai.
20
+ *
21
+ * L'algorithme vit ici en **un seul exemplaire** ; ce qui varie d'une ressource
22
+ * à l'autre est la **donnée** — la table des facettes — qui se déclare à côté du
23
+ * contrat de la ressource, jamais sous forme de fonction.
24
+ *
25
+ * Aucune facette n'est dérivée d'une autre (`inactive = total - active`) : deux
26
+ * facettes peuvent se recouvrir (un compte peut être à la fois désactivé et
27
+ * verrouillé), et une soustraction rendrait alors un nombre que rien ne compte.
28
+ * Chaque facette est une question posée telle quelle au store.
29
+ *
30
+ * @param facets - nom public → filtre à appliquer. Un filtre vide compte tout.
31
+ * @param count - le compteur du store, appelé une fois par facette. Il rend
32
+ * {@link UNKNOWN_COUNT} lorsqu'il ne sait pas compter.
33
+ * @returns un compteur par facette, `null` là où le store a répondu « inconnu ».
34
+ *
35
+ * @remarks **Cold path d'administration.** Les facettes partent en parallèle
36
+ * (une requête `COUNT` chacune) : c'est acceptable pour quatre questions
37
+ * posées à l'ouverture d'un écran, et ce ne serait pas acceptable dans un
38
+ * chemin de requête. Ne pas rejouer ces comptages à chaque tour de page — ils
39
+ * ne dépendent ni de `limit`, ni de `offset`, ni de l'ordre.
40
+ *
41
+ * @example
42
+ * ```ts
43
+ * const SESSION_FACETS = {
44
+ * total: {},
45
+ * authenticated: { authenticated: true },
46
+ * anonymous: { authenticated: false },
47
+ * } as const satisfies IFacetSpec<ISessionListQuery>;
48
+ *
49
+ * const counts = await countFacets(SESSION_FACETS, (q) => storage.countSessions(q));
50
+ * // → { total: 1204, authenticated: 87, anonymous: 1117 } (Redis : que des null)
51
+ * ```
52
+ */
53
+ async function countFacets(facets, count) {
54
+ const names = Object.keys(facets);
55
+ const values = await Promise.all(names.map(async (name) => {
56
+ const n = await count(facets[name]);
57
+ return Number.isFinite(n) && n >= 0 ? n : null;
58
+ }));
59
+ const out = {};
60
+ for (let i = 0; i < names.length; i++) out[names[i]] = values[i];
61
+ return out;
62
+ }
63
+ /**
64
+ * Les champs qu'une table de facettes **décompose** — donc ceux qu'un client ne
65
+ * peut pas filtrer sur l'endpoint qui les rend.
66
+ *
67
+ * Poser `?status=active` sur un endpoint dont les facettes sont justement les
68
+ * états produirait une réponse qui se contredit : le total suivrait le filtre,
69
+ * et chaque facette l'écraserait par le sien (« 5 clés au total, dont 538
70
+ * révoquées »). Ce n'est pas un cas tordu, c'est le cas NOMINAL — un client
71
+ * envoie naturellement le même query string à la liste et aux compteurs.
72
+ *
73
+ * Sert donc de garde : la spec de filtre d'un endpoint de statistiques ne doit
74
+ * contenir aucune de ces clés, ce qu'un test vérifie par ressource.
75
+ *
76
+ * @param facets - la table déclarée.
77
+ * @returns les noms de champs apparaissant dans au moins une facette, triés.
78
+ */
79
+ function facetDimensions(facets) {
80
+ const out = /* @__PURE__ */ new Set();
81
+ for (const facet of Object.values(facets)) for (const key of Object.keys(facet)) out.add(key);
82
+ return [...out].sort();
83
+ }
84
+ //#endregion
85
+ export { UNKNOWN_COUNT, countFacets, facetDimensions };
@@ -0,0 +1,103 @@
1
+ import { PAGE_QUERY_KEYS, PageQueryError, singleValue } from "./pageQuery.js";
2
+ //#region src/runtime/pageFilters.ts
3
+ /** Une définition est-elle répétable ? (discriminant de {@link FilterEach}) */
4
+ const isEach = (def) => typeof def === "object" && !Array.isArray(def);
5
+ /**
6
+ * Valide et convertit UNE valeur brute selon une nature scalaire — le cœur de
7
+ * la lecture, partagé par les filtres simples et par chaque occurrence d'un
8
+ * filtre `{ each }`. Les écrire deux fois les aurait fait diverger : c'est
9
+ * exactement ce qui s'était produit dans les data planes, où la variante
10
+ * multi-valeurs validait moins que la variante simple.
11
+ *
12
+ * @throws {@link PageQueryError} (`code` 400) si la valeur ne correspond pas.
13
+ */
14
+ function coerce(raw, def, name) {
15
+ if (Array.isArray(def)) {
16
+ if (!def.includes(raw)) throw new PageQueryError(`Invalid value "${raw}" for "${name}". Accepted: ${def.join(", ")}.`);
17
+ return raw;
18
+ }
19
+ if (def === "boolean") {
20
+ if (raw !== "true" && raw !== "false") throw new PageQueryError(`Invalid value "${raw}" for "${name}" (expected true or false).`);
21
+ return raw === "true";
22
+ }
23
+ if (def === "int") {
24
+ const n = Number.parseInt(raw, 10);
25
+ if (!Number.isFinite(n) || String(n) !== raw.trim()) throw new PageQueryError(`Invalid value "${raw}" for "${name}" (expected an integer).`);
26
+ return n;
27
+ }
28
+ return raw;
29
+ }
30
+ /**
31
+ * **Le** lecteur de filtres : transforme une source clé→valeur en filtres
32
+ * validés, selon la spec déclarée par la ressource. Fonction **pure**.
33
+ *
34
+ * Il remplace les lectures `one(query, "x")` que chaque data plane recopiait —
35
+ * une vingtaine dans le dépôt, avec autant de coercitions maison. Ce n'est pas
36
+ * la répétition qui coûtait, c'est ce qu'elles faisaient toutes : **accepter
37
+ * puis jeter**. `?revoked=oui` posait le filtre à `undefined`, `?category=zzz`
38
+ * tombait hors de l'énumération, `?enbaled=true` n'existait pour personne — et
39
+ * dans les trois cas la réponse était une page NON filtrée, que le client lit
40
+ * comme le résultat de son filtre. Le tri a cessé de faire ça ; les filtres le
41
+ * faisaient encore.
42
+ *
43
+ * Trois refus, tous en `400` :
44
+ *
45
+ * | Cas | Exemple |
46
+ * | ---------------------------------- | -------------------------- |
47
+ * | valeur mal formée | `?revoked=oui` |
48
+ * | valeur hors énumération | `?category=zzz` |
49
+ * | paramètre reconnu par personne | `?enbaled=true` |
50
+ *
51
+ * Le troisième est le plus important et le moins évident : sans lui, une faute
52
+ * de frappe dans une URL d'administration rend silencieusement la collection
53
+ * ENTIÈRE. Les clés du contrat de page ({@link PAGE_QUERY_KEYS}) sont bien sûr
54
+ * admises — c'est le même URL qui porte les deux.
55
+ *
56
+ * @param source - la query string parsée, ou le corps d'une requête `QUERY`.
57
+ * @param spec - ce que ce point d'entrée sait filtrer.
58
+ * @param options - paramètres que l'appelant lit lui-même (voir
59
+ * {@link IParseFiltersOptions.accepts}).
60
+ * @returns les filtres présents et valides (les absents ne sont pas posés).
61
+ * @throws {@link PageQueryError} (`code` 400) sur l'un des trois cas ci-dessus.
62
+ *
63
+ * @example
64
+ * ```ts
65
+ * const TOKEN_FILTERS = {
66
+ * subjectId: "string",
67
+ * revoked: "boolean",
68
+ * kind: ["pat", "refresh"],
69
+ * } as const satisfies IFilterSpec;
70
+ *
71
+ * const page = parsePageQuery(request.query, { sortable });
72
+ * const filters = parseFilters(request.query, TOKEN_FILTERS);
73
+ * return store.listPage({ ...page, ...filters });
74
+ * ```
75
+ */
76
+ function parseFilters(source, spec, options = {}) {
77
+ const out = {};
78
+ const accepts = options.accepts;
79
+ for (const key of Object.keys(source)) {
80
+ if (PAGE_QUERY_KEYS.has(key)) continue;
81
+ if (accepts?.includes(key)) continue;
82
+ if (!Object.hasOwn(spec, key)) {
83
+ const known = Object.keys(spec);
84
+ throw new PageQueryError(known.length ? `Unknown parameter "${key}". Filterable fields: ${known.join(", ")}.` : `Unknown parameter "${key}"; this endpoint has no filters.`);
85
+ }
86
+ }
87
+ for (const [name, def] of Object.entries(spec)) {
88
+ if (isEach(def)) {
89
+ const raw = source[name];
90
+ if (raw === void 0) continue;
91
+ const values = (Array.isArray(raw) ? raw : [raw]).filter((v) => v !== "");
92
+ if (values.length === 0) continue;
93
+ out[name] = values.map((v) => coerce(v, def.each, name));
94
+ continue;
95
+ }
96
+ const raw = singleValue(source, name);
97
+ if (raw === void 0 || raw === "") continue;
98
+ out[name] = coerce(raw, def, name);
99
+ }
100
+ return out;
101
+ }
102
+ //#endregion
103
+ export { parseFilters };
@@ -0,0 +1,84 @@
1
+ import nodefonyError from "../Error.js";
2
+ //#region src/runtime/pageGuard.ts
3
+ /**
4
+ * Erreur levée quand un `listPage` reçoit le champ de pagination du mode que son
5
+ * store **ne sait pas honorer** — un `cursor` pour un store offset, ou un `offset`
6
+ * de navigation pour un store curseur.
7
+ *
8
+ * `code = 400` : c'est une erreur du **client** (mauvais paramètre), jamais une
9
+ * panne serveur. Avant ce garde-fou, le champ hors-mode était **avalé en silence**
10
+ * (un client curseur bouclait indéfiniment sur la page 1 d'un store offset, cf
11
+ * l'écart F27/F51 du registre doc↔code). Le data plane admin (`AdminApiController`)
12
+ * traduit ce `code` en statut HTTP 400 au lieu du 500 générique.
13
+ */
14
+ var PaginationModeError = class extends nodefonyError {
15
+ /**
16
+ * @param received - le mode dont un champ a été fourni (celui de trop).
17
+ * @param supported - le mode réellement supporté par le store.
18
+ */
19
+ constructor(received, supported) {
20
+ super(`Pagination mode mismatch: this store paginates by "${supported}", but a "${received}" parameter was supplied. Pass "${supported}" only (offset and cursor are mutually exclusive per the IPage contract).`, 400);
21
+ }
22
+ };
23
+ /**
24
+ * Erreur levée quand un store paginant par **curseur** reçoit un
25
+ * {@link IPageQuery.order} : il ne peut pas l'honorer, et l'avaler mentirait.
26
+ *
27
+ * Ce n'est pas une limite d'implémentation, c'est la nature du curseur : le
28
+ * jeton encode une **position dans un ordre total**, celui-là même que le store
29
+ * applique. Le rendre paramétrable rendrait tout jeton déjà émis ininterprétable
30
+ * — la page suivante sauterait ou répéterait des lignes, silencieusement, ce qui
31
+ * est le pire défaut possible sur un journal d'audit.
32
+ *
33
+ * `code = 400` : c'est le client qui demande une capacité que ce point d'entrée
34
+ * n'a pas. Un backend curseur qui saurait trier devrait d'abord embarquer
35
+ * l'ordre DANS son curseur ; il déclarerait alors `sortableFields` et cette
36
+ * garde serait à revoir avec lui — pas avant.
37
+ */
38
+ var CursorOrderError = class extends nodefonyError {
39
+ /** @param fields - les champs de tri demandés, dans l'ordre reçu. */
40
+ constructor(fields) {
41
+ super(`Sorting is not supported by a cursor-paginated store (requested: ${fields.join(", ")}). The cursor encodes a position in the store's own total order; changing that order would invalidate every token already issued. Drop "order", or use an offset-paginated backend.`, 400);
42
+ }
43
+ };
44
+ /**
45
+ * Fait respecter le contrat « un store expose UN seul mode » au point d'entrée
46
+ * d'un `listPage`, sur la requête **brute** reçue de l'appelant (avant qu'elle ne
47
+ * soit normalisée) : rejette explicitement le champ du mode non supporté plutôt
48
+ * que de l'ignorer sans un mot.
49
+ *
50
+ * Chaque store connaît son mode **statiquement** (constante de l'implémentation) et
51
+ * appelle ce garde-fou en première ligne. À placer côté store — jamais dans un
52
+ * helper de pagination en aval (`paginate()`), qui reçoit une requête déjà
53
+ * reconstruite d'où le champ hors-mode a pu disparaître, laissant la violation
54
+ * passer inaperçue.
55
+ *
56
+ * **Valeurs neutres tolérées** (pas une navigation) : un `cursor` **vide** côté
57
+ * offset et un `offset` **0** côté curseur désignent tous deux « le début » — ils
58
+ * ne trahissent aucune intention du mauvais mode et ne sont donc pas rejetés. Seule
59
+ * une vraie navigation du mode adverse (`cursor` non vide, `offset > 0`) lève.
60
+ *
61
+ * **Le mode curseur refuse aussi le TRI** ({@link CursorOrderError}) : son ordre
62
+ * est imposé par le jeton, pas choisi par l'appelant. Le data plane le refuse
63
+ * déjà en amont (aucun endpoint curseur ne déclare `sortable`), mais un appelant
64
+ * interne — un autre service, un test, un futur endpoint — fabrique son
65
+ * `IPageQuery` à la main ; sans cette ligne, son `order` était ignoré sans un
66
+ * mot par les six stores curseur du dépôt.
67
+ *
68
+ * @param query - la requête de page brute reçue par le store.
69
+ * @param mode - le mode que le store sait honorer.
70
+ * @throws {@link PaginationModeError} (`code` 400) si le champ du mode adverse est
71
+ * présent avec une valeur de navigation.
72
+ * @throws {@link CursorOrderError} (`code` 400) si un `order` non vide est fourni
73
+ * à un store curseur.
74
+ */
75
+ function assertPageQuery(query, mode) {
76
+ if (mode === "offset") {
77
+ if (typeof query.cursor === "string" && query.cursor !== "") throw new PaginationModeError("cursor", "offset");
78
+ return;
79
+ }
80
+ if (typeof query.offset === "number" && query.offset > 0) throw new PaginationModeError("offset", "cursor");
81
+ if (query.order && query.order.length > 0) throw new CursorOrderError(query.order.map(([field]) => field));
82
+ }
83
+ //#endregion
84
+ export { CursorOrderError, PaginationModeError, assertPageQuery };