@futdevpro/nts-dynamo 1.15.64 → 1.15.68

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 (932) hide show
  1. package/.c8rc.json +26 -26
  2. package/.copilot/patterns.json +7 -7
  3. package/.cursor/rules/__assistant_guide.mdc +30 -30
  4. package/.cursor/rules/__main.mdc +64 -64
  5. package/.cursor/rules/_ag_backend-structure.mdc +85 -85
  6. package/.cursor/rules/_ag_backend.mdc +16 -16
  7. package/.cursor/rules/_ag_debug.mdc +7 -7
  8. package/.cursor/rules/_ag_documentation_writing_rules.mdc +372 -372
  9. package/.cursor/rules/_ag_file-refactoring.mdc +113 -113
  10. package/.cursor/rules/_ag_fixes_rules.mdc +5 -5
  11. package/.cursor/rules/_ag_frontend-structure.mdc +86 -86
  12. package/.cursor/rules/_ag_frontend.mdc +39 -39
  13. package/.cursor/rules/_ag_import-rules.mdc +44 -44
  14. package/.cursor/rules/_ag_naming.mdc +115 -115
  15. package/.cursor/rules/_ag_running_commands.mdc +4 -4
  16. package/.cursor/rules/_ag_server-controller.mdc +5 -5
  17. package/.cursor/rules/_ag_should-be.mdc +6 -6
  18. package/.cursor/rules/_ag_swearing.mdc +47 -47
  19. package/.cursor/rules/ai_development_guide.md +60 -60
  20. package/.cursor/rules/ai_directives.md +114 -114
  21. package/.cursor/rules/cursor-rules.md +160 -160
  22. package/.cursor/rules/default-command.mdc +464 -464
  23. package/.cursor/rules/error_code_pattern.md +39 -39
  24. package/.cursor/rules/saved rule mcp server use.md +15 -15
  25. package/.dynamo/pipeline.cicd.config.json +180 -180
  26. package/.dynamo/version-bump.config.json +5 -5
  27. package/.github/workflows/main.yml +438 -438
  28. package/.husky/pre-commit +3 -3
  29. package/.vscode/settings.json +10 -10
  30. package/HOWTO.md +15 -15
  31. package/LICENSE +21 -21
  32. package/README.md +678 -678
  33. package/__documentations/2026-04-28-logs-module.md +49 -49
  34. package/__documentations/2026-05-17-oai-compatible-providers.md +229 -229
  35. package/__documentations/2026-05-17-static-client-serving-howto.md +144 -144
  36. package/__documentations/2026-06-01-fr041-cors-middleware.md +96 -96
  37. package/__documentations/2026-06-01-fr047-p2p3-function-calling.md +81 -81
  38. package/__documentations/2026-06-15-fr193-memory-guard.md +73 -73
  39. package/__documentations/nts-integration-tests-2026-03-17.md +26 -26
  40. package/_specifications/BACKLOG.md +92 -92
  41. package/_specifications/TODO.md +15 -15
  42. package/_specifications/agent.md +138 -138
  43. package/build/_collections/archive.util.d.ts +12 -12
  44. package/build/_collections/archive.util.js +18 -18
  45. package/build/_collections/atlas-default-db-options.const.d.ts +2 -2
  46. package/build/_collections/atlas-default-db-options.const.js +9 -9
  47. package/build/_collections/default-fallback-cache-max-age.const.d.ts +2 -2
  48. package/build/_collections/default-fallback-cache-max-age.const.js +5 -5
  49. package/build/_collections/default-not-found-page.const.d.ts +5 -5
  50. package/build/_collections/default-not-found-page.const.js +24 -24
  51. package/build/_collections/default-socket-path.const.d.ts +2 -2
  52. package/build/_collections/default-socket-path.const.js +5 -5
  53. package/build/_collections/get-environment-settings.util.d.ts +2 -2
  54. package/build/_collections/get-environment-settings.util.js +43 -43
  55. package/build/_collections/global-settings.const.d.ts +6 -6
  56. package/build/_collections/global-settings.const.js +69 -69
  57. package/build/_collections/mongo-reconnect-guard.util.d.ts +73 -73
  58. package/build/_collections/mongo-reconnect-guard.util.js +110 -110
  59. package/build/_collections/star.controller.d.ts +7 -7
  60. package/build/_collections/star.controller.js +97 -97
  61. package/build/_enums/data-model-type.enum.d.ts +13 -13
  62. package/build/_enums/data-model-type.enum.js +17 -17
  63. package/build/_enums/data-service-function.enum.d.ts +18 -18
  64. package/build/_enums/data-service-function.enum.js +24 -24
  65. package/build/_enums/predefined-data-types.enum.d.ts +15 -15
  66. package/build/_enums/predefined-data-types.enum.js +19 -19
  67. package/build/_enums/route-security.enum.d.ts +11 -11
  68. package/build/_enums/route-security.enum.js +15 -15
  69. package/build/_models/control-models/api-call-params.control-model.d.ts +79 -79
  70. package/build/_models/control-models/api-call-params.control-model.js +101 -101
  71. package/build/_models/control-models/app-ext-system-controls.control-model.d.ts +6 -6
  72. package/build/_models/control-models/app-ext-system-controls.control-model.js +10 -10
  73. package/build/_models/control-models/app-params.control-model.d.ts +51 -51
  74. package/build/_models/control-models/app-params.control-model.js +119 -119
  75. package/build/_models/control-models/app-system-controls.control-model.d.ts +7 -7
  76. package/build/_models/control-models/app-system-controls.control-model.js +11 -11
  77. package/build/_models/control-models/endpoint-params.control-model.d.ts +114 -114
  78. package/build/_models/control-models/endpoint-params.control-model.js +442 -442
  79. package/build/_models/control-models/http-settings.control-model.d.ts +17 -17
  80. package/build/_models/control-models/http-settings.control-model.js +34 -34
  81. package/build/_models/control-models/system-control.control-model.d.ts +5 -5
  82. package/build/_models/control-models/system-control.control-model.js +11 -11
  83. package/build/_models/interfaces/certification-settings.interface.d.ts +5 -5
  84. package/build/_models/interfaces/certification-settings.interface.js +2 -2
  85. package/build/_models/interfaces/compare-data-options.interface.d.ts +26 -26
  86. package/build/_models/interfaces/compare-data-options.interface.js +2 -2
  87. package/build/_models/interfaces/compare-data-result.interface.d.ts +12 -12
  88. package/build/_models/interfaces/compare-data-result.interface.js +2 -2
  89. package/build/_models/interfaces/cors-settings.interface.d.ts +51 -51
  90. package/build/_models/interfaces/cors-settings.interface.js +2 -2
  91. package/build/_models/interfaces/environment-settings.interface.d.ts +34 -34
  92. package/build/_models/interfaces/environment-settings.interface.js +2 -2
  93. package/build/_models/interfaces/global-log-settings.interface.d.ts +145 -145
  94. package/build/_models/interfaces/global-log-settings.interface.js +2 -2
  95. package/build/_models/interfaces/global-service-settings.interface.d.ts +30 -30
  96. package/build/_models/interfaces/global-service-settings.interface.js +2 -2
  97. package/build/_models/interfaces/global-settings.interface.d.ts +161 -161
  98. package/build/_models/interfaces/global-settings.interface.js +2 -2
  99. package/build/_models/interfaces/routing-module-settings.interface.d.ts +19 -19
  100. package/build/_models/interfaces/routing-module-settings.interface.js +2 -2
  101. package/build/_models/interfaces/static-client-settings.interface.d.ts +28 -28
  102. package/build/_models/interfaces/static-client-settings.interface.js +2 -2
  103. package/build/_models/types/db-update.type.d.ts +129 -129
  104. package/build/_models/types/db-update.type.js +2 -2
  105. package/build/_modules/admin-auth/_models/admin-api-key-config.interface.d.ts +31 -31
  106. package/build/_modules/admin-auth/_models/admin-api-key-config.interface.js +2 -2
  107. package/build/_modules/admin-auth/admin-api-key.auth-service.d.ts +89 -89
  108. package/build/_modules/admin-auth/admin-api-key.auth-service.js +194 -194
  109. package/build/_modules/admin-auth/index.d.ts +2 -2
  110. package/build/_modules/admin-auth/index.js +5 -5
  111. package/build/_modules/ai/_models/ai-input-interfaces.d.ts +53 -53
  112. package/build/_modules/ai/_models/ai-input-interfaces.js +5 -5
  113. package/build/_modules/ai/_models/ai-test-generation-result.interface.d.ts +16 -16
  114. package/build/_modules/ai/_models/ai-test-generation-result.interface.js +2 -2
  115. package/build/_modules/ai/_models/interfaces/dynts-ai-cost-event-callback.interface.d.ts +13 -13
  116. package/build/_modules/ai/_models/interfaces/dynts-ai-cost-event-callback.interface.js +2 -2
  117. package/build/_modules/ai/_models/interfaces/dynts-ai-cost-event.interface.d.ts +49 -49
  118. package/build/_modules/ai/_models/interfaces/dynts-ai-cost-event.interface.js +2 -2
  119. package/build/_modules/ai/_modules/anthropic/_services/aai-user-key.control-service.d.ts +35 -35
  120. package/build/_modules/ai/_modules/anthropic/_services/aai-user-key.control-service.js +117 -117
  121. package/build/_modules/ai/_modules/anthropic/index.d.ts +2 -2
  122. package/build/_modules/ai/_modules/anthropic/index.js +7 -7
  123. package/build/_modules/ai/_modules/document-ai/_collections/dai-chunking.util.d.ts +84 -84
  124. package/build/_modules/ai/_modules/document-ai/_collections/dai-chunking.util.js +467 -467
  125. package/build/_modules/ai/_modules/document-ai/_collections/dai-code-chunking.util.d.ts +109 -109
  126. package/build/_modules/ai/_modules/document-ai/_collections/dai-code-chunking.util.js +418 -418
  127. package/build/_modules/ai/_modules/document-ai/_collections/dai-document.util.d.ts +28 -28
  128. package/build/_modules/ai/_modules/document-ai/_collections/dai-document.util.js +73 -73
  129. package/build/_modules/ai/_modules/document-ai/_enums/dai-compare-result-type.enum.d.ts +6 -6
  130. package/build/_modules/ai/_modules/document-ai/_enums/dai-compare-result-type.enum.js +10 -10
  131. package/build/_modules/ai/_modules/document-ai/_models/data-models/dai-doc-chunk.data-model.d.ts +51 -51
  132. package/build/_modules/ai/_modules/document-ai/_models/data-models/dai-doc-chunk.data-model.js +132 -132
  133. package/build/_modules/ai/_modules/document-ai/_models/data-models/dai-doc-page.data-model.d.ts +47 -47
  134. package/build/_modules/ai/_modules/document-ai/_models/data-models/dai-doc-page.data-model.js +136 -136
  135. package/build/_modules/ai/_modules/document-ai/_models/data-models/dai-document.data-model.d.ts +17 -17
  136. package/build/_modules/ai/_modules/document-ai/_models/data-models/dai-document.data-model.js +76 -76
  137. package/build/_modules/ai/_modules/document-ai/_models/interfaces/dai-code-chunk.interface.d.ts +49 -49
  138. package/build/_modules/ai/_modules/document-ai/_models/interfaces/dai-code-chunk.interface.js +2 -2
  139. package/build/_modules/ai/_modules/document-ai/_models/interfaces/dai-doc-chunk-compare-result.interface.d.ts +8 -8
  140. package/build/_modules/ai/_modules/document-ai/_models/interfaces/dai-doc-chunk-compare-result.interface.js +2 -2
  141. package/build/_modules/ai/_modules/document-ai/_models/interfaces/dai-doc-page-compare-result.interface.d.ts +11 -11
  142. package/build/_modules/ai/_modules/document-ai/_models/interfaces/dai-doc-page-compare-result.interface.js +2 -2
  143. package/build/_modules/ai/_modules/document-ai/_models/interfaces/dai-document-compare-result.interface.d.ts +12 -12
  144. package/build/_modules/ai/_modules/document-ai/_models/interfaces/dai-document-compare-result.interface.js +2 -2
  145. package/build/_modules/ai/_modules/document-ai/index.d.ts +12 -12
  146. package/build/_modules/ai/_modules/document-ai/index.js +27 -27
  147. package/build/_modules/ai/_modules/fdp-ai/_services/fdpai-user-key.control-service.d.ts +34 -34
  148. package/build/_modules/ai/_modules/fdp-ai/_services/fdpai-user-key.control-service.js +128 -128
  149. package/build/_modules/ai/_modules/fdp-ai/index.d.ts +2 -2
  150. package/build/_modules/ai/_modules/fdp-ai/index.js +7 -7
  151. package/build/_modules/ai/_modules/open-ai/_collections/oai-global-settings.const.d.ts +2 -2
  152. package/build/_modules/ai/_modules/open-ai/_collections/oai-global-settings.const.js +8 -8
  153. package/build/_modules/ai/_modules/open-ai/_collections/oai-llm-predefined-requests-hu.conts.d.ts +2 -2
  154. package/build/_modules/ai/_modules/open-ai/_collections/oai-llm-predefined-requests-hu.conts.js +74 -74
  155. package/build/_modules/ai/_modules/open-ai/_collections/oai-llm-predefined-requests.conts.d.ts +2 -2
  156. package/build/_modules/ai/_modules/open-ai/_collections/oai-llm-predefined-requests.conts.js +67 -67
  157. package/build/_modules/ai/_modules/open-ai/_enums/oai-gpt-message-role.enum.js +42 -42
  158. package/build/_modules/ai/_modules/open-ai/_models/interfaces/oai-global-settings.interface.d.ts +5 -5
  159. package/build/_modules/ai/_modules/open-ai/_models/interfaces/oai-global-settings.interface.js +2 -2
  160. package/build/_modules/ai/_modules/open-ai/_models/interfaces/oai-gpt-message.interface.js +6 -6
  161. package/build/_modules/ai/_modules/open-ai/_models/interfaces/oai-llm-predefined-requests.interface.d.ts +51 -51
  162. package/build/_modules/ai/_modules/open-ai/_models/interfaces/oai-llm-predefined-requests.interface.js +2 -2
  163. package/build/_modules/ai/_modules/open-ai/_services/data-services/oai-doc-chunk-data.service.d.ts +21 -21
  164. package/build/_modules/ai/_modules/open-ai/_services/data-services/oai-doc-chunk-data.service.js +187 -187
  165. package/build/_modules/ai/_modules/open-ai/_services/data-services/oai-doc-page.data-service.d.ts +26 -26
  166. package/build/_modules/ai/_modules/open-ai/_services/data-services/oai-doc-page.data-service.js +278 -278
  167. package/build/_modules/ai/_modules/open-ai/_services/data-services/oai-document.data-service.d.ts +22 -22
  168. package/build/_modules/ai/_modules/open-ai/_services/data-services/oai-document.data-service.js +322 -322
  169. package/build/_modules/ai/_modules/open-ai/_services/data-services/oai-vector-data.service.d.ts +119 -119
  170. package/build/_modules/ai/_modules/open-ai/_services/data-services/oai-vector-data.service.js +480 -480
  171. package/build/_modules/ai/_modules/open-ai/_services/oai-embedding.control-service.d.ts +25 -25
  172. package/build/_modules/ai/_modules/open-ai/_services/oai-embedding.control-service.js +103 -103
  173. package/build/_modules/ai/_modules/open-ai/_services/oai-llm-chat.service-base.d.ts +169 -169
  174. package/build/_modules/ai/_modules/open-ai/_services/oai-llm-chat.service-base.js +479 -479
  175. package/build/_modules/ai/_modules/open-ai/_services/oai-llm.service-base.d.ts +201 -201
  176. package/build/_modules/ai/_modules/open-ai/_services/oai-llm.service-base.js +579 -579
  177. package/build/_modules/ai/_modules/open-ai/_services/oai-user-key.control-service.d.ts +39 -39
  178. package/build/_modules/ai/_modules/open-ai/_services/oai-user-key.control-service.js +110 -110
  179. package/build/_modules/ai/_modules/open-ai/index.d.ts +14 -14
  180. package/build/_modules/ai/_modules/open-ai/index.js +55 -55
  181. package/build/_modules/ai/_services/ai-embedding-mock.service.d.ts +80 -80
  182. package/build/_modules/ai/_services/ai-embedding-mock.service.js +166 -166
  183. package/build/_modules/ai/_services/ai-embedding-provider.registry.d.ts +51 -51
  184. package/build/_modules/ai/_services/ai-embedding-provider.registry.js +78 -78
  185. package/build/_modules/ai/_services/ai-embedding.service-base.d.ts +41 -41
  186. package/build/_modules/ai/_services/ai-embedding.service-base.js +11 -11
  187. package/build/_modules/ai/_services/ai-llm-chat.service-base.d.ts +39 -39
  188. package/build/_modules/ai/_services/ai-llm-chat.service-base.js +11 -11
  189. package/build/_modules/ai/_services/ai-llm.service-base.d.ts +132 -132
  190. package/build/_modules/ai/_services/ai-llm.service-base.js +313 -313
  191. package/build/_modules/ai/_services/ai-provider.service-base.d.ts +46 -46
  192. package/build/_modules/ai/_services/ai-provider.service-base.js +43 -43
  193. package/build/_modules/ai/_services/ai-user-key.service-base.d.ts +44 -44
  194. package/build/_modules/ai/_services/ai-user-key.service-base.js +14 -14
  195. package/build/_modules/ai/_services/lmstudio-embedding.control-service.d.ts +110 -110
  196. package/build/_modules/ai/_services/lmstudio-embedding.control-service.js +297 -297
  197. package/build/_modules/ai/index.d.ts +13 -13
  198. package/build/_modules/ai/index.js +22 -22
  199. package/build/_modules/assistant/_collections/ass-global-settings.const.d.ts +2 -2
  200. package/build/_modules/assistant/_collections/ass-global-settings.const.js +14 -14
  201. package/build/_modules/assistant/_collections/ass.util.d.ts +15 -15
  202. package/build/_modules/assistant/_collections/ass.util.js +42 -42
  203. package/build/_modules/assistant/_models/ass-global-settings.interface.d.ts +13 -13
  204. package/build/_modules/assistant/_models/ass-global-settings.interface.js +2 -2
  205. package/build/_modules/assistant/_services/ass-io.control-service.d.ts +19 -19
  206. package/build/_modules/assistant/_services/ass-io.control-service.js +57 -57
  207. package/build/_modules/assistant/_services/ass-main.control-service.d.ts +32 -32
  208. package/build/_modules/assistant/_services/ass-main.control-service.js +65 -65
  209. package/build/_modules/assistant/index.d.ts +6 -6
  210. package/build/_modules/assistant/index.js +18 -18
  211. package/build/_modules/bot/_collections/bot-default-commands.const.d.ts +2 -2
  212. package/build/_modules/bot/_collections/bot-default-commands.const.js +13 -13
  213. package/build/_modules/bot/_collections/bot-global-settings.const.d.ts +2 -2
  214. package/build/_modules/bot/_collections/bot-global-settings.const.js +31 -31
  215. package/build/_modules/bot/_models/bot-channel-wrapper.interface.d.ts +25 -25
  216. package/build/_modules/bot/_models/bot-channel-wrapper.interface.js +38 -38
  217. package/build/_modules/bot/_models/bot-command.interface.d.ts +7 -7
  218. package/build/_modules/bot/_models/bot-command.interface.js +2 -2
  219. package/build/_modules/bot/_models/bot-global-settings.interface.d.ts +85 -85
  220. package/build/_modules/bot/_models/bot-global-settings.interface.js +2 -2
  221. package/build/_modules/bot/_models/bot-last-mention-date.interface.d.ts +6 -6
  222. package/build/_modules/bot/_models/bot-last-mention-date.interface.js +2 -2
  223. package/build/_modules/bot/_models/bot-last-message-date.interface.d.ts +5 -5
  224. package/build/_modules/bot/_models/bot-last-message-date.interface.js +2 -2
  225. package/build/_modules/bot/_models/bot-message-wrapper.interface.d.ts +37 -37
  226. package/build/_modules/bot/_models/bot-message-wrapper.interface.js +54 -54
  227. package/build/_modules/bot/_models/bot-user-wrapper.interface.d.ts +23 -23
  228. package/build/_modules/bot/_models/bot-user-wrapper.interface.js +28 -28
  229. package/build/_modules/bot/_modules/discord-bot/_models/dib-platform.types.js +10 -10
  230. package/build/_modules/bot/_modules/discord-bot/_services/dib-messaging-provider.control-service.d.ts +69 -69
  231. package/build/_modules/bot/_modules/discord-bot/_services/dib-messaging-provider.control-service.js +497 -497
  232. package/build/_modules/bot/_modules/discord-bot/index.d.ts +1 -1
  233. package/build/_modules/bot/_modules/discord-bot/index.js +12 -12
  234. package/build/_modules/bot/_modules/dynamo-bot/_collections/dyb-operations.util.d.ts +16 -16
  235. package/build/_modules/bot/_modules/dynamo-bot/_collections/dyb-operations.util.js +42 -42
  236. package/build/_modules/bot/_modules/dynamo-bot/_models/dyb-platform.types.d.ts +9 -9
  237. package/build/_modules/bot/_modules/dynamo-bot/_models/dyb-platform.types.js +2 -2
  238. package/build/_modules/bot/_modules/dynamo-bot/_services/dyb-messaging-provider.control-service.d.ts +59 -59
  239. package/build/_modules/bot/_modules/dynamo-bot/_services/dyb-messaging-provider.control-service.js +349 -349
  240. package/build/_modules/bot/_modules/dynamo-bot/index.d.ts +3 -3
  241. package/build/_modules/bot/_modules/dynamo-bot/index.js +15 -15
  242. package/build/_modules/bot/_modules/slack-bot/_models/slb-platform.types.d.ts +6 -6
  243. package/build/_modules/bot/_modules/slack-bot/_models/slb-platform.types.js +2 -2
  244. package/build/_modules/bot/_modules/slack-bot/_services/slb-messaging-provider.control-service.d.ts +56 -56
  245. package/build/_modules/bot/_modules/slack-bot/_services/slb-messaging-provider.control-service.js +137 -137
  246. package/build/_modules/bot/_modules/slack-bot/index.d.ts +2 -2
  247. package/build/_modules/bot/_modules/slack-bot/index.js +12 -12
  248. package/build/_modules/bot/_modules/teams-bot/_models/teb-platform.types.d.ts +6 -6
  249. package/build/_modules/bot/_modules/teams-bot/_models/teb-platform.types.js +2 -2
  250. package/build/_modules/bot/_modules/teams-bot/_services/teb-messaging-provider.control-service.d.ts +56 -56
  251. package/build/_modules/bot/_modules/teams-bot/_services/teb-messaging-provider.control-service.js +137 -137
  252. package/build/_modules/bot/_modules/teams-bot/index.d.ts +2 -2
  253. package/build/_modules/bot/_modules/teams-bot/index.js +12 -12
  254. package/build/_modules/bot/_services/bot-commands.control-service.d.ts +12 -12
  255. package/build/_modules/bot/_services/bot-commands.control-service.js +117 -117
  256. package/build/_modules/bot/_services/bot-io.control-service.d.ts +23 -23
  257. package/build/_modules/bot/_services/bot-io.control-service.js +226 -226
  258. package/build/_modules/bot/_services/bot-main.control-service.d.ts +35 -35
  259. package/build/_modules/bot/_services/bot-main.control-service.js +195 -195
  260. package/build/_modules/bot/_services/bot-messaging-provider.service-base.d.ts +71 -71
  261. package/build/_modules/bot/_services/bot-messaging-provider.service-base.js +15 -15
  262. package/build/_modules/bot/_services/bot-routines.control-service.d.ts +13 -13
  263. package/build/_modules/bot/_services/bot-routines.control-service.js +59 -59
  264. package/build/_modules/bot/index.d.ts +17 -17
  265. package/build/_modules/bot/index.js +36 -36
  266. package/build/_modules/custom-data/custom-data.controller.d.ts +5 -5
  267. package/build/_modules/custom-data/custom-data.controller.js +56 -56
  268. package/build/_modules/custom-data/custom-data.data-service.d.ts +5 -5
  269. package/build/_modules/custom-data/custom-data.data-service.js +11 -11
  270. package/build/_modules/custom-data/get-custom-data-routing-module.util.d.ts +3 -3
  271. package/build/_modules/custom-data/get-custom-data-routing-module.util.js +16 -16
  272. package/build/_modules/custom-data/index.d.ts +4 -4
  273. package/build/_modules/custom-data/index.js +9 -9
  274. package/build/_modules/data-readers/_collections/dynts-sqlite-reader.util.d.ts +58 -58
  275. package/build/_modules/data-readers/_collections/dynts-sqlite-reader.util.js +168 -168
  276. package/build/_modules/data-readers/_models/interfaces/dynts-sqlite-reader.interface.d.ts +31 -31
  277. package/build/_modules/data-readers/_models/interfaces/dynts-sqlite-reader.interface.js +7 -7
  278. package/build/_modules/data-readers/index.d.ts +2 -2
  279. package/build/_modules/data-readers/index.js +10 -10
  280. package/build/_modules/defaults/_collections/default-endpoints.util.d.ts +248 -248
  281. package/build/_modules/defaults/_collections/default-endpoints.util.js +386 -386
  282. package/build/_modules/defaults/_models/default-user.data-model.d.ts +19 -19
  283. package/build/_modules/defaults/_models/default-user.data-model.js +72 -72
  284. package/build/_modules/defaults/_services/default-auth.service.d.ts +50 -50
  285. package/build/_modules/defaults/_services/default-auth.service.js +158 -158
  286. package/build/_modules/defaults/_services/default-socket-events.service.d.ts +23 -23
  287. package/build/_modules/defaults/_services/default-socket-events.service.js +60 -60
  288. package/build/_modules/defaults/_services/default-user.data-service.d.ts +24 -24
  289. package/build/_modules/defaults/_services/default-user.data-service.js +87 -87
  290. package/build/_modules/defaults/index.d.ts +5 -5
  291. package/build/_modules/defaults/index.js +17 -17
  292. package/build/_modules/discord-assistant/_collections/dias-global-settings.const.d.ts +2 -2
  293. package/build/_modules/discord-assistant/_collections/dias-global-settings.const.js +16 -16
  294. package/build/_modules/discord-assistant/_collections/dias.util.d.ts +31 -31
  295. package/build/_modules/discord-assistant/_collections/dias.util.js +85 -85
  296. package/build/_modules/discord-assistant/_models/dias-global-settings.interface.d.ts +17 -17
  297. package/build/_modules/discord-assistant/_models/dias-global-settings.interface.js +2 -2
  298. package/build/_modules/discord-assistant/_models/dias-knowledge.data-model.d.ts +8 -8
  299. package/build/_modules/discord-assistant/_models/dias-knowledge.data-model.js +46 -46
  300. package/build/_modules/discord-assistant/_services/dias-chunk.data-service.d.ts +17 -17
  301. package/build/_modules/discord-assistant/_services/dias-chunk.data-service.js +123 -123
  302. package/build/_modules/discord-assistant/_services/dias-io.control-service.d.ts +10 -10
  303. package/build/_modules/discord-assistant/_services/dias-io.control-service.js +49 -49
  304. package/build/_modules/discord-assistant/_services/dias-main.control-service.d.ts +3 -3
  305. package/build/_modules/discord-assistant/_services/dias-main.control-service.js +7 -7
  306. package/build/_modules/discord-assistant/_services/dias.service-base.d.ts +18 -18
  307. package/build/_modules/discord-assistant/_services/dias.service-base.js +46 -46
  308. package/build/_modules/discord-assistant/index.d.ts +11 -11
  309. package/build/_modules/discord-assistant/index.js +24 -24
  310. package/build/_modules/discord-assistant-voiced/_services/dias-discord-bot.control-service.d.ts +3 -3
  311. package/build/_modules/discord-assistant-voiced/_services/dias-discord-bot.control-service.js +7 -7
  312. package/build/_modules/discord-assistant-voiced/index.d.ts +2 -2
  313. package/build/_modules/discord-assistant-voiced/index.js +28 -28
  314. package/build/_modules/discord-bot/_collections/dibo-default-commands.const.d.ts +2 -2
  315. package/build/_modules/discord-bot/_collections/dibo-default-commands.const.js +12 -12
  316. package/build/_modules/discord-bot/_collections/dibo-global-settings.conts.d.ts +2 -2
  317. package/build/_modules/discord-bot/_collections/dibo-global-settings.conts.js +43 -43
  318. package/build/_modules/discord-bot/_collections/dibo-operations.util.d.ts +22 -22
  319. package/build/_modules/discord-bot/_collections/dibo-operations.util.js +275 -275
  320. package/build/_modules/discord-bot/_models/dibo-command.interface.d.ts +7 -7
  321. package/build/_modules/discord-bot/_models/dibo-command.interface.js +2 -2
  322. package/build/_modules/discord-bot/_models/dibo-global-settings.interface.d.ts +87 -87
  323. package/build/_modules/discord-bot/_models/dibo-global-settings.interface.js +2 -2
  324. package/build/_modules/discord-bot/_models/dibo-last-mention-date.inteface.d.ts +6 -6
  325. package/build/_modules/discord-bot/_models/dibo-last-mention-date.inteface.js +2 -2
  326. package/build/_modules/discord-bot/_models/dibo-last-message-date.interface.d.ts +5 -5
  327. package/build/_modules/discord-bot/_models/dibo-last-message-date.interface.js +2 -2
  328. package/build/_modules/discord-bot/_services/dibo-commands.control-service.d.ts +11 -11
  329. package/build/_modules/discord-bot/_services/dibo-commands.control-service.js +109 -109
  330. package/build/_modules/discord-bot/_services/dibo-io.control-service.d.ts +21 -21
  331. package/build/_modules/discord-bot/_services/dibo-io.control-service.js +218 -218
  332. package/build/_modules/discord-bot/_services/dibo-main.control-service.d.ts +89 -89
  333. package/build/_modules/discord-bot/_services/dibo-main.control-service.js +363 -363
  334. package/build/_modules/discord-bot/_services/dibo-routines.control-service.d.ts +13 -13
  335. package/build/_modules/discord-bot/_services/dibo-routines.control-service.js +73 -73
  336. package/build/_modules/discord-bot/index.d.ts +11 -11
  337. package/build/_modules/discord-bot/index.js +30 -30
  338. package/build/_modules/local-vector-search/_enums/lvs-search-mode.enum.d.ts +34 -34
  339. package/build/_modules/local-vector-search/_enums/lvs-search-mode.enum.js +38 -38
  340. package/build/_modules/local-vector-search/_models/data-models/lvs-vector-persist.data-model.d.ts +35 -35
  341. package/build/_modules/local-vector-search/_models/data-models/lvs-vector-persist.data-model.js +53 -53
  342. package/build/_modules/local-vector-search/_models/lvs-search-result.interface.d.ts +16 -16
  343. package/build/_modules/local-vector-search/_models/lvs-search-result.interface.js +2 -2
  344. package/build/_modules/local-vector-search/_services/lvs-bm25.util.d.ts +88 -88
  345. package/build/_modules/local-vector-search/_services/lvs-bm25.util.js +189 -189
  346. package/build/_modules/local-vector-search/_services/lvs-doc-chunk-data.service.d.ts +26 -26
  347. package/build/_modules/local-vector-search/_services/lvs-doc-chunk-data.service.js +197 -197
  348. package/build/_modules/local-vector-search/_services/lvs-local-vector-search.data-service.d.ts +145 -145
  349. package/build/_modules/local-vector-search/_services/lvs-local-vector-search.data-service.js +294 -294
  350. package/build/_modules/local-vector-search/_services/lvs-persistent-vector-pool.control-service.d.ts +69 -69
  351. package/build/_modules/local-vector-search/_services/lvs-persistent-vector-pool.control-service.js +122 -122
  352. package/build/_modules/local-vector-search/_services/lvs-vector-persist.data-service.d.ts +42 -42
  353. package/build/_modules/local-vector-search/_services/lvs-vector-persist.data-service.js +71 -71
  354. package/build/_modules/local-vector-search/_services/lvs-vector-pool.control-service.d.ts +70 -70
  355. package/build/_modules/local-vector-search/_services/lvs-vector-pool.control-service.js +181 -181
  356. package/build/_modules/local-vector-search/index.d.ts +8 -8
  357. package/build/_modules/local-vector-search/index.js +15 -15
  358. package/build/_modules/logs/_models/file-log-entry.interface.d.ts +13 -13
  359. package/build/_modules/logs/_models/file-log-entry.interface.js +2 -2
  360. package/build/_modules/logs/_models/file-log-read-result.interface.d.ts +35 -35
  361. package/build/_modules/logs/_models/file-log-read-result.interface.js +2 -2
  362. package/build/_modules/logs/file-log.service.d.ts +132 -132
  363. package/build/_modules/logs/file-log.service.js +444 -444
  364. package/build/_modules/logs/file-logs.controller.d.ts +40 -40
  365. package/build/_modules/logs/file-logs.controller.js +138 -138
  366. package/build/_modules/logs/get-file-logs-routing-module.util.d.ts +31 -31
  367. package/build/_modules/logs/get-file-logs-routing-module.util.js +37 -37
  368. package/build/_modules/logs/get-logs-routing-module.util.d.ts +18 -18
  369. package/build/_modules/logs/get-logs-routing-module.util.js +31 -31
  370. package/build/_modules/logs/index.d.ts +8 -8
  371. package/build/_modules/logs/index.js +15 -15
  372. package/build/_modules/logs/log-buffer.service.d.ts +37 -37
  373. package/build/_modules/logs/log-buffer.service.js +96 -96
  374. package/build/_modules/logs/logs.controller.d.ts +26 -26
  375. package/build/_modules/logs/logs.controller.js +89 -89
  376. package/build/_modules/logs/logs.service.d.ts +39 -39
  377. package/build/_modules/logs/logs.service.js +96 -96
  378. package/build/_modules/mcp/_models/interfaces/dynts-mcp.interface.d.ts +108 -108
  379. package/build/_modules/mcp/_models/interfaces/dynts-mcp.interface.js +13 -13
  380. package/build/_modules/mcp/_services/dynts-mcp-server.service-base.d.ts +70 -70
  381. package/build/_modules/mcp/_services/dynts-mcp-server.service-base.js +98 -98
  382. package/build/_modules/mcp/_services/dynts-mcp.adapter.d.ts +56 -56
  383. package/build/_modules/mcp/_services/dynts-mcp.adapter.js +138 -138
  384. package/build/_modules/mcp/index.d.ts +3 -3
  385. package/build/_modules/mcp/index.js +12 -12
  386. package/build/_modules/messaging/_collections/get-messaging-routing-module.util.d.ts +7 -7
  387. package/build/_modules/messaging/_collections/get-messaging-routing-module.util.js +20 -20
  388. package/build/_modules/messaging/_collections/msg-global-settings.const.d.ts +5 -5
  389. package/build/_modules/messaging/_collections/msg-global-settings.const.js +22 -22
  390. package/build/_modules/messaging/_collections/msg.util.d.ts +24 -24
  391. package/build/_modules/messaging/_collections/msg.util.js +62 -62
  392. package/build/_modules/messaging/_models/msg-global-settings.interface.d.ts +28 -28
  393. package/build/_modules/messaging/_models/msg-global-settings.interface.js +2 -2
  394. package/build/_modules/messaging/_services/msg-conversation.data-service.d.ts +28 -28
  395. package/build/_modules/messaging/_services/msg-conversation.data-service.js +109 -109
  396. package/build/_modules/messaging/_services/msg-events.service.d.ts +61 -61
  397. package/build/_modules/messaging/_services/msg-events.service.js +203 -203
  398. package/build/_modules/messaging/_services/msg-integration.control-service.js +180 -180
  399. package/build/_modules/messaging/_services/msg-main.control-service.d.ts +62 -62
  400. package/build/_modules/messaging/_services/msg-main.control-service.js +428 -428
  401. package/build/_modules/messaging/_services/msg-message.data-service.d.ts +28 -28
  402. package/build/_modules/messaging/_services/msg-message.data-service.js +103 -103
  403. package/build/_modules/messaging/_services/msg.controller.d.ts +12 -12
  404. package/build/_modules/messaging/_services/msg.controller.js +256 -256
  405. package/build/_modules/messaging/index.d.ts +10 -10
  406. package/build/_modules/messaging/index.js +27 -27
  407. package/build/_modules/mock/app-extended-server.mock.d.ts +41 -41
  408. package/build/_modules/mock/app-extended-server.mock.js +169 -169
  409. package/build/_modules/mock/app-integration-test.mock.d.ts +19 -19
  410. package/build/_modules/mock/app-integration-test.mock.js +45 -45
  411. package/build/_modules/mock/app-params.mock.d.ts +2 -2
  412. package/build/_modules/mock/app-params.mock.js +9 -9
  413. package/build/_modules/mock/app-server.mock.d.ts +41 -41
  414. package/build/_modules/mock/app-server.mock.js +148 -148
  415. package/build/_modules/mock/auth-service.mock.d.ts +10 -10
  416. package/build/_modules/mock/auth-service.mock.js +19 -19
  417. package/build/_modules/mock/controller.mock.d.ts +5 -5
  418. package/build/_modules/mock/controller.mock.js +14 -14
  419. package/build/_modules/mock/data-model.mock.d.ts +26 -26
  420. package/build/_modules/mock/data-model.mock.js +72 -72
  421. package/build/_modules/mock/email-service-collection.mock.d.ts +7 -7
  422. package/build/_modules/mock/email-service-collection.mock.js +12 -12
  423. package/build/_modules/mock/email-service.mock.d.ts +4 -4
  424. package/build/_modules/mock/email-service.mock.js +20 -20
  425. package/build/_modules/mock/endpoint.mock.d.ts +8 -8
  426. package/build/_modules/mock/endpoint.mock.js +79 -79
  427. package/build/_modules/mock/socket-client.mock.d.ts +9 -9
  428. package/build/_modules/mock/socket-client.mock.js +38 -38
  429. package/build/_modules/mock/socket-server.mock.d.ts +15 -15
  430. package/build/_modules/mock/socket-server.mock.js +32 -32
  431. package/build/_modules/oauth2/_routes/oauth2.controller.d.ts +16 -16
  432. package/build/_modules/oauth2/_routes/oauth2.controller.js +96 -96
  433. package/build/_modules/oauth2/_services/oauth2.auth-service.d.ts +30 -30
  434. package/build/_modules/oauth2/_services/oauth2.auth-service.js +215 -215
  435. package/build/_modules/oauth2/_services/oauth2.control-service.d.ts +132 -132
  436. package/build/_modules/oauth2/_services/oauth2.control-service.js +576 -576
  437. package/build/_modules/oauth2/index.d.ts +3 -3
  438. package/build/_modules/oauth2/index.js +14 -14
  439. package/build/_modules/rate-limit/_models/rate-limit-config.interface.d.ts +61 -61
  440. package/build/_modules/rate-limit/_models/rate-limit-config.interface.js +2 -2
  441. package/build/_modules/rate-limit/_models/rate-limit-policy.interface.d.ts +15 -15
  442. package/build/_modules/rate-limit/_models/rate-limit-policy.interface.js +2 -2
  443. package/build/_modules/rate-limit/index.d.ts +3 -3
  444. package/build/_modules/rate-limit/index.js +5 -5
  445. package/build/_modules/rate-limit/rate-limit.middleware.d.ts +132 -132
  446. package/build/_modules/rate-limit/rate-limit.middleware.js +289 -289
  447. package/build/_modules/scoped-config/_enums/dynts-scoped-config-level.enum.d.ts +18 -18
  448. package/build/_modules/scoped-config/_enums/dynts-scoped-config-level.enum.js +22 -22
  449. package/build/_modules/scoped-config/_models/data-models/dynts-scoped-config.data-model.d.ts +43 -43
  450. package/build/_modules/scoped-config/_models/data-models/dynts-scoped-config.data-model.js +67 -67
  451. package/build/_modules/scoped-config/_models/interfaces/dynts-scoped-config.interface.d.ts +88 -88
  452. package/build/_modules/scoped-config/_models/interfaces/dynts-scoped-config.interface.js +11 -11
  453. package/build/_modules/scoped-config/_services/dynts-scoped-config.control-service.d.ts +83 -83
  454. package/build/_modules/scoped-config/_services/dynts-scoped-config.control-service.js +219 -219
  455. package/build/_modules/scoped-config/_services/dynts-scoped-config.data-service.d.ts +53 -53
  456. package/build/_modules/scoped-config/_services/dynts-scoped-config.data-service.js +75 -75
  457. package/build/_modules/scoped-config/index.d.ts +5 -5
  458. package/build/_modules/scoped-config/index.js +14 -14
  459. package/build/_modules/server/errors/errors.control-service.d.ts +21 -19
  460. package/build/_modules/server/errors/errors.control-service.d.ts.map +1 -1
  461. package/build/_modules/server/errors/errors.control-service.js +10 -10
  462. package/build/_modules/server/errors/errors.control-service.js.map +1 -1
  463. package/build/_modules/server/errors/errors.controller.d.ts +100 -99
  464. package/build/_modules/server/errors/errors.controller.d.ts.map +1 -1
  465. package/build/_modules/server/errors/errors.controller.js +355 -313
  466. package/build/_modules/server/errors/errors.controller.js.map +1 -1
  467. package/build/_modules/server/errors/errors.data-service.d.ts +64 -47
  468. package/build/_modules/server/errors/errors.data-service.d.ts.map +1 -1
  469. package/build/_modules/server/errors/errors.data-service.js +628 -552
  470. package/build/_modules/server/errors/errors.data-service.js.map +1 -1
  471. package/build/_modules/server/index.d.ts +7 -7
  472. package/build/_modules/server/index.js +26 -26
  473. package/build/_modules/server/server-status/server-status-snapshot.control-service.d.ts +4 -4
  474. package/build/_modules/server/server-status/server-status-snapshot.control-service.js +7 -7
  475. package/build/_modules/server/server-status/server-status-snapshot.data-service.d.ts +6 -6
  476. package/build/_modules/server/server-status/server-status-snapshot.data-service.js +22 -22
  477. package/build/_modules/server/server-status/server-status.control-service.d.ts +74 -74
  478. package/build/_modules/server/server-status/server-status.control-service.js +234 -234
  479. package/build/_modules/server/server-status/server-status.controller.d.ts +84 -84
  480. package/build/_modules/server/server-status/server-status.controller.js +172 -172
  481. package/build/_modules/socket/_enums/socket-security.enum.d.ts +10 -10
  482. package/build/_modules/socket/_enums/socket-security.enum.js +14 -14
  483. package/build/_modules/socket/_models/socket-client-service-params.control-model.d.ts +8 -8
  484. package/build/_modules/socket/_models/socket-client-service-params.control-model.js +16 -16
  485. package/build/_modules/socket/_models/socket-presence.control-model.d.ts +25 -25
  486. package/build/_modules/socket/_models/socket-presence.control-model.js +139 -139
  487. package/build/_modules/socket/_models/socket-server-service-params.control-model.d.ts +12 -12
  488. package/build/_modules/socket/_models/socket-server-service-params.control-model.js +20 -20
  489. package/build/_modules/socket/_services/socket-client.service.d.ts +37 -37
  490. package/build/_modules/socket/_services/socket-client.service.js +196 -196
  491. package/build/_modules/socket/_services/socket-server.service.d.ts +94 -94
  492. package/build/_modules/socket/_services/socket-server.service.js +689 -689
  493. package/build/_modules/socket/app-extended.server.d.ts +145 -145
  494. package/build/_modules/socket/app-extended.server.js +506 -506
  495. package/build/_modules/socket/index.d.ts +8 -8
  496. package/build/_modules/socket/index.js +35 -35
  497. package/build/_modules/test/get-test-routing-module.util.d.ts +3 -3
  498. package/build/_modules/test/get-test-routing-module.util.js +16 -16
  499. package/build/_modules/test/index.d.ts +3 -3
  500. package/build/_modules/test/index.js +11 -11
  501. package/build/_modules/test/test.controller.d.ts +5 -5
  502. package/build/_modules/test/test.controller.js +103 -103
  503. package/build/_modules/usage/get-usage-routing-module.util.d.ts +3 -3
  504. package/build/_modules/usage/get-usage-routing-module.util.js +16 -16
  505. package/build/_modules/usage/index.d.ts +4 -4
  506. package/build/_modules/usage/index.js +13 -13
  507. package/build/_modules/usage/usage.controller.d.ts +6 -6
  508. package/build/_modules/usage/usage.controller.js +95 -95
  509. package/build/_modules/usage/usage.data-service.d.ts +17 -17
  510. package/build/_modules/usage/usage.data-service.js +135 -135
  511. package/build/_services/base/api.service-base.d.ts +9 -9
  512. package/build/_services/base/api.service-base.js +46 -46
  513. package/build/_services/base/archive-data.service.d.ts +25 -25
  514. package/build/_services/base/archive-data.service.js +140 -140
  515. package/build/_services/base/data.service.d.ts +381 -381
  516. package/build/_services/base/data.service.js +2068 -2068
  517. package/build/_services/base/db.service.d.ts +393 -393
  518. package/build/_services/base/db.service.js +1256 -1256
  519. package/build/_services/base/singleton.service-base.d.ts +8 -8
  520. package/build/_services/base/singleton.service-base.js +21 -21
  521. package/build/_services/base/singleton.service.d.ts +11 -11
  522. package/build/_services/base/singleton.service.js +31 -31
  523. package/build/_services/core/api.service.d.ts +45 -45
  524. package/build/_services/core/api.service.js +436 -436
  525. package/build/_services/core/auth.service.d.ts +129 -129
  526. package/build/_services/core/auth.service.js +59 -59
  527. package/build/_services/core/email.service.d.ts +77 -77
  528. package/build/_services/core/email.service.js +489 -489
  529. package/build/_services/core/global.service.d.ts +76 -76
  530. package/build/_services/core/global.service.js +370 -370
  531. package/build/_services/core/memory-guard.service.d.ts +110 -110
  532. package/build/_services/core/memory-guard.service.js +197 -197
  533. package/build/_services/core/service-collection.service.d.ts +4 -4
  534. package/build/_services/core/service-collection.service.js +7 -7
  535. package/build/_services/route/controller.service.d.ts +124 -124
  536. package/build/_services/route/controller.service.js +95 -95
  537. package/build/_services/route/routing-module.service.d.ts +80 -80
  538. package/build/_services/route/routing-module.service.js +250 -250
  539. package/build/_services/server/app.server.d.ts +352 -352
  540. package/build/_services/server/app.server.js +1323 -1323
  541. package/build/_services/shared.static-service.d.ts +36 -36
  542. package/build/_services/shared.static-service.js +72 -72
  543. package/build/index.d.ts +43 -43
  544. package/build/index.js +80 -80
  545. package/eslint.config.js +3 -3
  546. package/nodemon.json +24 -24
  547. package/package.json +416 -417
  548. package/pnpm-workspace.yaml +5 -5
  549. package/scripts/run-coverage-tests.js +28 -28
  550. package/spec/support/helpers/spec-reporter-loader.js +359 -359
  551. package/spec/support/helpers/ts-node-helper.js +93 -93
  552. package/spec/support/jasmine.coverage.json +24 -24
  553. package/spec/support/jasmine.json +24 -24
  554. package/src/_collections/archive.util.spec.ts +57 -57
  555. package/src/_collections/archive.util.ts +18 -18
  556. package/src/_collections/atlas-default-db-options.const.ts +9 -9
  557. package/src/_collections/default-fallback-cache-max-age.const.spec.ts +11 -11
  558. package/src/_collections/default-fallback-cache-max-age.const.ts +2 -2
  559. package/src/_collections/default-not-found-page.const.spec.ts +19 -19
  560. package/src/_collections/default-not-found-page.const.ts +22 -22
  561. package/src/_collections/default-socket-path.const.spec.ts +12 -12
  562. package/src/_collections/default-socket-path.const.ts +2 -2
  563. package/src/_collections/get-environment-settings.util.spec.ts +210 -210
  564. package/src/_collections/get-environment-settings.util.ts +48 -48
  565. package/src/_collections/global-settings.const.ts +89 -89
  566. package/src/_collections/mongo-reconnect-guard.util.spec.ts +52 -52
  567. package/src/_collections/mongo-reconnect-guard.util.ts +172 -172
  568. package/src/_collections/sample.env +21 -21
  569. package/src/_collections/star.controller.spec.ts +224 -224
  570. package/src/_collections/star.controller.ts +129 -129
  571. package/src/_enums/data-model-type.enum.ts +14 -14
  572. package/src/_enums/data-service-function.enum.ts +24 -24
  573. package/src/_enums/predefined-data-types.enum.ts +16 -16
  574. package/src/_enums/route-security.enum.ts +12 -12
  575. package/src/_models/control-models/api-call-params.control-model.spec.ts +152 -152
  576. package/src/_models/control-models/api-call-params.control-model.ts +142 -142
  577. package/src/_models/control-models/app-ext-system-controls.control-model.spec.ts +52 -52
  578. package/src/_models/control-models/app-ext-system-controls.control-model.ts +9 -9
  579. package/src/_models/control-models/app-params.control-model.spec.ts +225 -225
  580. package/src/_models/control-models/app-params.control-model.ts +136 -136
  581. package/src/_models/control-models/app-system-controls.control-model.spec.ts +31 -31
  582. package/src/_models/control-models/app-system-controls.control-model.ts +9 -9
  583. package/src/_models/control-models/endpoint-params.control-model.spec.ts +627 -627
  584. package/src/_models/control-models/endpoint-params.control-model.ts +627 -627
  585. package/src/_models/control-models/http-settings.control-model.spec.ts +77 -77
  586. package/src/_models/control-models/http-settings.control-model.ts +37 -37
  587. package/src/_models/control-models/system-control.control-model.spec.ts +27 -27
  588. package/src/_models/control-models/system-control.control-model.ts +12 -12
  589. package/src/_models/interfaces/certification-settings.interface.ts +7 -7
  590. package/src/_models/interfaces/compare-data-options.interface.ts +27 -27
  591. package/src/_models/interfaces/compare-data-result.interface.ts +12 -12
  592. package/src/_models/interfaces/cors-settings.interface.spec.ts +52 -52
  593. package/src/_models/interfaces/cors-settings.interface.ts +56 -56
  594. package/src/_models/interfaces/environment-settings.interface.ts +59 -59
  595. package/src/_models/interfaces/global-log-settings.interface.ts +171 -171
  596. package/src/_models/interfaces/global-service-settings.interface.ts +47 -47
  597. package/src/_models/interfaces/global-settings.interface.ts +185 -185
  598. package/src/_models/interfaces/routing-module-settings.interface.ts +21 -21
  599. package/src/_models/interfaces/static-client-settings.interface.spec.ts +29 -29
  600. package/src/_models/interfaces/static-client-settings.interface.ts +28 -28
  601. package/src/_models/types/db-update.type.ts +100 -100
  602. package/src/_modules/admin-auth/_models/admin-api-key-config.interface.ts +33 -33
  603. package/src/_modules/admin-auth/admin-api-key.auth-service.spec.ts +200 -200
  604. package/src/_modules/admin-auth/admin-api-key.auth-service.ts +220 -220
  605. package/src/_modules/admin-auth/index.ts +2 -2
  606. package/src/_modules/ai/_models/ai-input-interfaces.ts +117 -117
  607. package/src/_modules/ai/_models/ai-test-generation-result.interface.ts +16 -16
  608. package/src/_modules/ai/_models/interfaces/dynts-ai-cost-event-callback.interface.ts +14 -14
  609. package/src/_modules/ai/_models/interfaces/dynts-ai-cost-event.interface.ts +56 -56
  610. package/src/_modules/ai/_modules/anthropic/_services/aai-user-key.control-service.ts +138 -138
  611. package/src/_modules/ai/_modules/anthropic/index.ts +5 -5
  612. package/src/_modules/ai/_modules/document-ai/_collections/dai-chunking.util.spec.ts +242 -242
  613. package/src/_modules/ai/_modules/document-ai/_collections/dai-chunking.util.ts +639 -639
  614. package/src/_modules/ai/_modules/document-ai/_collections/dai-code-chunking.util.spec.ts +295 -295
  615. package/src/_modules/ai/_modules/document-ai/_collections/dai-code-chunking.util.ts +552 -552
  616. package/src/_modules/ai/_modules/document-ai/_collections/dai-document.util.spec.ts +209 -209
  617. package/src/_modules/ai/_modules/document-ai/_collections/dai-document.util.ts +85 -85
  618. package/src/_modules/ai/_modules/document-ai/_enums/dai-compare-result-type.enum.ts +7 -7
  619. package/src/_modules/ai/_modules/document-ai/_models/data-models/dai-doc-chunk.data-model.ts +146 -146
  620. package/src/_modules/ai/_modules/document-ai/_models/data-models/dai-doc-page.data-model.ts +162 -162
  621. package/src/_modules/ai/_modules/document-ai/_models/data-models/dai-document.data-model.ts +99 -99
  622. package/src/_modules/ai/_modules/document-ai/_models/interfaces/dai-code-chunk.interface.ts +68 -68
  623. package/src/_modules/ai/_modules/document-ai/_models/interfaces/dai-doc-chunk-compare-result.interface.ts +18 -18
  624. package/src/_modules/ai/_modules/document-ai/_models/interfaces/dai-doc-page-compare-result.interface.ts +19 -19
  625. package/src/_modules/ai/_modules/document-ai/_models/interfaces/dai-document-compare-result.interface.ts +25 -25
  626. package/src/_modules/ai/_modules/document-ai/index.ts +30 -30
  627. package/src/_modules/ai/_modules/fdp-ai/_services/fdpai-user-key.control-service.ts +189 -189
  628. package/src/_modules/ai/_modules/fdp-ai/index.ts +5 -5
  629. package/src/_modules/ai/_modules/open-ai/_collections/oai-global-settings.const.ts +9 -9
  630. package/src/_modules/ai/_modules/open-ai/_collections/oai-llm-predefined-requests-hu.conts.ts +82 -82
  631. package/src/_modules/ai/_modules/open-ai/_collections/oai-llm-predefined-requests.conts.ts +75 -75
  632. package/src/_modules/ai/_modules/open-ai/_enums/oai-gpt-message-role.enum.ts +45 -45
  633. package/src/_modules/ai/_modules/open-ai/_models/interfaces/oai-global-settings.interface.ts +7 -7
  634. package/src/_modules/ai/_modules/open-ai/_models/interfaces/oai-gpt-message.interface.ts +7 -7
  635. package/src/_modules/ai/_modules/open-ai/_models/interfaces/oai-llm-predefined-requests.interface.ts +57 -57
  636. package/src/_modules/ai/_modules/open-ai/_services/data-services/oai-doc-chunk-data.service.ts +292 -292
  637. package/src/_modules/ai/_modules/open-ai/_services/data-services/oai-doc-page.data-service.ts +572 -572
  638. package/src/_modules/ai/_modules/open-ai/_services/data-services/oai-document.data-service.spec.ts +342 -342
  639. package/src/_modules/ai/_modules/open-ai/_services/data-services/oai-document.data-service.ts +435 -435
  640. package/src/_modules/ai/_modules/open-ai/_services/data-services/oai-vector-data.service.spec.ts +550 -550
  641. package/src/_modules/ai/_modules/open-ai/_services/data-services/oai-vector-data.service.ts +630 -630
  642. package/src/_modules/ai/_modules/open-ai/_services/oai-embedding.control-service.spec.ts +332 -332
  643. package/src/_modules/ai/_modules/open-ai/_services/oai-embedding.control-service.ts +132 -132
  644. package/src/_modules/ai/_modules/open-ai/_services/oai-llm-chat.service-base.spec.ts +462 -462
  645. package/src/_modules/ai/_modules/open-ai/_services/oai-llm-chat.service-base.ts +634 -634
  646. package/src/_modules/ai/_modules/open-ai/_services/oai-llm.service-base.spec.ts +489 -489
  647. package/src/_modules/ai/_modules/open-ai/_services/oai-llm.service-base.tools.spec.ts +173 -173
  648. package/src/_modules/ai/_modules/open-ai/_services/oai-llm.service-base.ts +1033 -1033
  649. package/src/_modules/ai/_modules/open-ai/_services/oai-user-key.control-service.ts +157 -157
  650. package/src/_modules/ai/_modules/open-ai/index.ts +74 -74
  651. package/src/_modules/ai/_services/ai-embedding-mock.service.spec.ts +115 -115
  652. package/src/_modules/ai/_services/ai-embedding-mock.service.ts +233 -233
  653. package/src/_modules/ai/_services/ai-embedding-provider.registry.spec.ts +110 -110
  654. package/src/_modules/ai/_services/ai-embedding-provider.registry.ts +114 -114
  655. package/src/_modules/ai/_services/ai-embedding.service-base.spec.ts +98 -98
  656. package/src/_modules/ai/_services/ai-embedding.service-base.ts +48 -48
  657. package/src/_modules/ai/_services/ai-llm-chat.service-base.spec.ts +229 -229
  658. package/src/_modules/ai/_services/ai-llm-chat.service-base.ts +68 -68
  659. package/src/_modules/ai/_services/ai-llm.service-base.spec.ts +250 -250
  660. package/src/_modules/ai/_services/ai-llm.service-base.ts +519 -519
  661. package/src/_modules/ai/_services/ai-provider.service-base.spec.ts +158 -158
  662. package/src/_modules/ai/_services/ai-provider.service-base.ts +67 -67
  663. package/src/_modules/ai/_services/ai-user-key.service-base.ts +59 -59
  664. package/src/_modules/ai/_services/lmstudio-embedding.control-service.spec.ts +197 -197
  665. package/src/_modules/ai/_services/lmstudio-embedding.control-service.ts +399 -399
  666. package/src/_modules/ai/index.ts +23 -23
  667. package/src/_modules/assistant/_collections/ass-global-settings.const.ts +13 -13
  668. package/src/_modules/assistant/_collections/ass.util.spec.ts +176 -176
  669. package/src/_modules/assistant/_collections/ass.util.ts +50 -50
  670. package/src/_modules/assistant/_models/ass-global-settings.interface.ts +15 -15
  671. package/src/_modules/assistant/_services/ass-io.control-service.spec.ts +140 -140
  672. package/src/_modules/assistant/_services/ass-io.control-service.ts +74 -74
  673. package/src/_modules/assistant/_services/ass-main.control-service.spec.ts +192 -192
  674. package/src/_modules/assistant/_services/ass-main.control-service.ts +107 -107
  675. package/src/_modules/assistant/index.ts +19 -19
  676. package/src/_modules/bot/_collections/bot-default-commands.const.ts +12 -12
  677. package/src/_modules/bot/_collections/bot-global-settings.const.ts +39 -39
  678. package/src/_modules/bot/_models/bot-channel-wrapper.interface.ts +62 -62
  679. package/src/_modules/bot/_models/bot-command.interface.ts +8 -8
  680. package/src/_modules/bot/_models/bot-global-settings.interface.ts +96 -96
  681. package/src/_modules/bot/_models/bot-last-mention-date.interface.ts +6 -6
  682. package/src/_modules/bot/_models/bot-last-message-date.interface.ts +5 -5
  683. package/src/_modules/bot/_models/bot-message-wrapper.interface.ts +90 -90
  684. package/src/_modules/bot/_models/bot-user-wrapper.interface.ts +41 -41
  685. package/src/_modules/bot/_modules/discord-bot/_models/dib-platform.types.ts +9 -9
  686. package/src/_modules/bot/_modules/discord-bot/_services/dib-messaging-provider.control-service.spec.ts +431 -431
  687. package/src/_modules/bot/_modules/discord-bot/_services/dib-messaging-provider.control-service.ts +641 -641
  688. package/src/_modules/bot/_modules/discord-bot/index.ts +12 -12
  689. package/src/_modules/bot/_modules/dynamo-bot/_collections/dyb-operations.util.spec.ts +160 -160
  690. package/src/_modules/bot/_modules/dynamo-bot/_collections/dyb-operations.util.ts +55 -55
  691. package/src/_modules/bot/_modules/dynamo-bot/_models/dyb-platform.types.ts +15 -15
  692. package/src/_modules/bot/_modules/dynamo-bot/_services/dyb-messaging-provider.control-service.spec.ts +374 -374
  693. package/src/_modules/bot/_modules/dynamo-bot/_services/dyb-messaging-provider.control-service.ts +447 -447
  694. package/src/_modules/bot/_modules/dynamo-bot/index.ts +15 -15
  695. package/src/_modules/bot/_modules/slack-bot/_models/slb-platform.types.ts +9 -9
  696. package/src/_modules/bot/_modules/slack-bot/_services/slb-messaging-provider.control-service.spec.ts +344 -344
  697. package/src/_modules/bot/_modules/slack-bot/_services/slb-messaging-provider.control-service.ts +197 -197
  698. package/src/_modules/bot/_modules/slack-bot/index.ts +12 -12
  699. package/src/_modules/bot/_modules/teams-bot/_models/teb-platform.types.ts +9 -9
  700. package/src/_modules/bot/_modules/teams-bot/_services/teb-messaging-provider.control-service.spec.ts +345 -345
  701. package/src/_modules/bot/_modules/teams-bot/_services/teb-messaging-provider.control-service.ts +197 -197
  702. package/src/_modules/bot/_modules/teams-bot/index.ts +11 -11
  703. package/src/_modules/bot/_services/bot-commands.control-service.spec.ts +116 -116
  704. package/src/_modules/bot/_services/bot-commands.control-service.ts +158 -158
  705. package/src/_modules/bot/_services/bot-io.control-service.spec.ts +285 -285
  706. package/src/_modules/bot/_services/bot-io.control-service.ts +329 -329
  707. package/src/_modules/bot/_services/bot-main.control-service.spec.ts +208 -208
  708. package/src/_modules/bot/_services/bot-main.control-service.ts +489 -489
  709. package/src/_modules/bot/_services/bot-messaging-provider.service-base.spec.ts +349 -349
  710. package/src/_modules/bot/_services/bot-messaging-provider.service-base.ts +158 -158
  711. package/src/_modules/bot/_services/bot-routines.control-service.spec.ts +111 -111
  712. package/src/_modules/bot/_services/bot-routines.control-service.ts +78 -78
  713. package/src/_modules/bot/index.ts +37 -37
  714. package/src/_modules/custom-data/custom-data.controller.spec.ts +49 -49
  715. package/src/_modules/custom-data/custom-data.controller.ts +67 -67
  716. package/src/_modules/custom-data/custom-data.data-service.spec.ts +54 -54
  717. package/src/_modules/custom-data/custom-data.data-service.ts +21 -21
  718. package/src/_modules/custom-data/get-custom-data-routing-module.util.spec.ts +28 -28
  719. package/src/_modules/custom-data/get-custom-data-routing-module.util.ts +24 -24
  720. package/src/_modules/custom-data/index.ts +9 -9
  721. package/src/_modules/data-readers/_collections/dynts-sqlite-reader.util.spec.ts +176 -176
  722. package/src/_modules/data-readers/_collections/dynts-sqlite-reader.util.ts +203 -203
  723. package/src/_modules/data-readers/_models/interfaces/dynts-sqlite-reader.interface.ts +33 -33
  724. package/src/_modules/data-readers/index.ts +11 -11
  725. package/src/_modules/defaults/_collections/default-endpoints.util.ts +487 -487
  726. package/src/_modules/defaults/_models/default-user.data-model.ts +72 -72
  727. package/src/_modules/defaults/_services/default-auth.service.spec.ts +269 -269
  728. package/src/_modules/defaults/_services/default-auth.service.ts +177 -177
  729. package/src/_modules/defaults/_services/default-socket-events.service.spec.ts +42 -42
  730. package/src/_modules/defaults/_services/default-socket-events.service.ts +61 -61
  731. package/src/_modules/defaults/_services/default-user.data-service.spec.ts +187 -187
  732. package/src/_modules/defaults/_services/default-user.data-service.ts +98 -98
  733. package/src/_modules/defaults/index.ts +17 -17
  734. package/src/_modules/discord-assistant/_collections/dias-global-settings.const.ts +19 -19
  735. package/src/_modules/discord-assistant/_collections/dias.util.spec.ts +366 -366
  736. package/src/_modules/discord-assistant/_collections/dias.util.ts +132 -132
  737. package/src/_modules/discord-assistant/_models/dias-global-settings.interface.ts +19 -19
  738. package/src/_modules/discord-assistant/_models/dias-knowledge.data-model.ts +52 -52
  739. package/src/_modules/discord-assistant/_services/dias-chunk.data-service.ts +177 -177
  740. package/src/_modules/discord-assistant/_services/dias-io.control-service.spec.ts +108 -108
  741. package/src/_modules/discord-assistant/_services/dias-io.control-service.ts +69 -69
  742. package/src/_modules/discord-assistant/_services/dias-main.control-service.spec.ts +22 -22
  743. package/src/_modules/discord-assistant/_services/dias-main.control-service.ts +27 -27
  744. package/src/_modules/discord-assistant/_services/dias.service-base.spec.ts +195 -195
  745. package/src/_modules/discord-assistant/_services/dias.service-base.ts +76 -76
  746. package/src/_modules/discord-assistant/index.ts +38 -38
  747. package/src/_modules/discord-assistant-voiced/_services/dias-discord-bot.control-service.spec.ts +34 -34
  748. package/src/_modules/discord-assistant-voiced/_services/dias-discord-bot.control-service.ts +11 -11
  749. package/src/_modules/discord-assistant-voiced/index.ts +36 -36
  750. package/src/_modules/discord-bot/_collections/dibo-default-commands.const.ts +16 -16
  751. package/src/_modules/discord-bot/_collections/dibo-global-settings.conts.ts +55 -55
  752. package/src/_modules/discord-bot/_collections/dibo-operations.util.spec.ts +214 -214
  753. package/src/_modules/discord-bot/_collections/dibo-operations.util.ts +387 -387
  754. package/src/_modules/discord-bot/_models/dibo-command.interface.ts +12 -12
  755. package/src/_modules/discord-bot/_models/dibo-global-settings.interface.ts +98 -98
  756. package/src/_modules/discord-bot/_models/dibo-last-mention-date.inteface.ts +7 -7
  757. package/src/_modules/discord-bot/_models/dibo-last-message-date.interface.ts +6 -6
  758. package/src/_modules/discord-bot/_services/dibo-commands.control-service.spec.ts +154 -154
  759. package/src/_modules/discord-bot/_services/dibo-commands.control-service.ts +153 -153
  760. package/src/_modules/discord-bot/_services/dibo-io.control-service.spec.ts +264 -264
  761. package/src/_modules/discord-bot/_services/dibo-io.control-service.ts +306 -306
  762. package/src/_modules/discord-bot/_services/dibo-main.control-service.spec.ts +408 -408
  763. package/src/_modules/discord-bot/_services/dibo-main.control-service.ts +487 -487
  764. package/src/_modules/discord-bot/_services/dibo-routines.control-service.spec.ts +105 -105
  765. package/src/_modules/discord-bot/_services/dibo-routines.control-service.ts +97 -97
  766. package/src/_modules/discord-bot/index.ts +36 -36
  767. package/src/_modules/local-vector-search/_enums/lvs-search-mode.enum.ts +35 -35
  768. package/src/_modules/local-vector-search/_models/data-models/lvs-vector-persist.data-model.ts +60 -60
  769. package/src/_modules/local-vector-search/_models/lvs-search-result.interface.ts +17 -17
  770. package/src/_modules/local-vector-search/_services/lvs-bm25.util.spec.ts +159 -159
  771. package/src/_modules/local-vector-search/_services/lvs-bm25.util.ts +206 -206
  772. package/src/_modules/local-vector-search/_services/lvs-doc-chunk-data.service.spec.ts +418 -418
  773. package/src/_modules/local-vector-search/_services/lvs-doc-chunk-data.service.ts +276 -276
  774. package/src/_modules/local-vector-search/_services/lvs-local-vector-search.data-service.spec.ts +480 -480
  775. package/src/_modules/local-vector-search/_services/lvs-local-vector-search.data-service.ts +416 -416
  776. package/src/_modules/local-vector-search/_services/lvs-persistent-vector-pool.control-service.spec.ts +198 -198
  777. package/src/_modules/local-vector-search/_services/lvs-persistent-vector-pool.control-service.ts +150 -150
  778. package/src/_modules/local-vector-search/_services/lvs-vector-persist.data-service.spec.ts +167 -167
  779. package/src/_modules/local-vector-search/_services/lvs-vector-persist.data-service.ts +108 -108
  780. package/src/_modules/local-vector-search/_services/lvs-vector-pool.control-service.spec.ts +393 -393
  781. package/src/_modules/local-vector-search/_services/lvs-vector-pool.control-service.ts +220 -220
  782. package/src/_modules/local-vector-search/index.ts +16 -16
  783. package/src/_modules/logs/_models/file-log-entry.interface.ts +13 -13
  784. package/src/_modules/logs/_models/file-log-read-result.interface.ts +37 -37
  785. package/src/_modules/logs/file-log.service.spec.ts +341 -341
  786. package/src/_modules/logs/file-log.service.ts +466 -466
  787. package/src/_modules/logs/file-logs.controller.spec.ts +245 -245
  788. package/src/_modules/logs/file-logs.controller.ts +165 -165
  789. package/src/_modules/logs/get-file-logs-routing-module.util.ts +51 -51
  790. package/src/_modules/logs/get-logs-routing-module.util.ts +36 -36
  791. package/src/_modules/logs/index.ts +11 -11
  792. package/src/_modules/logs/log-buffer.service.ts +101 -101
  793. package/src/_modules/logs/logs.controller.ts +109 -109
  794. package/src/_modules/logs/logs.service.ts +100 -100
  795. package/src/_modules/mcp/_models/interfaces/dynts-mcp.interface.ts +111 -111
  796. package/src/_modules/mcp/_services/dynts-mcp-server.service-base.spec.ts +151 -151
  797. package/src/_modules/mcp/_services/dynts-mcp-server.service-base.ts +125 -125
  798. package/src/_modules/mcp/_services/dynts-mcp.adapter.ts +168 -168
  799. package/src/_modules/mcp/index.ts +13 -13
  800. package/src/_modules/messaging/README.md +354 -354
  801. package/src/_modules/messaging/_collections/get-messaging-routing-module.util.ts +26 -26
  802. package/src/_modules/messaging/_collections/msg-global-settings.const.ts +22 -22
  803. package/src/_modules/messaging/_collections/msg.util.spec.ts +226 -226
  804. package/src/_modules/messaging/_collections/msg.util.ts +83 -83
  805. package/src/_modules/messaging/_models/msg-global-settings.interface.ts +37 -37
  806. package/src/_modules/messaging/_services/msg-conversation.data-service.ts +146 -146
  807. package/src/_modules/messaging/_services/msg-events.service.spec.ts +219 -219
  808. package/src/_modules/messaging/_services/msg-events.service.ts +267 -267
  809. package/src/_modules/messaging/_services/msg-integration.control-service.ts +179 -179
  810. package/src/_modules/messaging/_services/msg-main.control-service.spec.ts +147 -147
  811. package/src/_modules/messaging/_services/msg-main.control-service.ts +571 -571
  812. package/src/_modules/messaging/_services/msg-message.data-service.ts +129 -129
  813. package/src/_modules/messaging/_services/msg.controller.spec.ts +201 -201
  814. package/src/_modules/messaging/_services/msg.controller.ts +370 -370
  815. package/src/_modules/messaging/index.ts +30 -30
  816. package/src/_modules/mock/app-extended-server.mock.ts +201 -201
  817. package/src/_modules/mock/app-integration-test.mock.ts +51 -51
  818. package/src/_modules/mock/app-params.mock.spec.ts +21 -21
  819. package/src/_modules/mock/app-params.mock.ts +9 -9
  820. package/src/_modules/mock/app-server.mock.ts +188 -188
  821. package/src/_modules/mock/auth-service.mock.spec.ts +47 -47
  822. package/src/_modules/mock/auth-service.mock.ts +28 -28
  823. package/src/_modules/mock/controller.mock.spec.ts +26 -26
  824. package/src/_modules/mock/controller.mock.ts +16 -16
  825. package/src/_modules/mock/data-model.mock.spec.ts +111 -111
  826. package/src/_modules/mock/data-model.mock.ts +82 -82
  827. package/src/_modules/mock/email-service-collection.mock.spec.ts +24 -24
  828. package/src/_modules/mock/email-service-collection.mock.ts +15 -15
  829. package/src/_modules/mock/email-service.mock.spec.ts +17 -17
  830. package/src/_modules/mock/email-service.mock.ts +20 -20
  831. package/src/_modules/mock/email-template.mock.html +14 -14
  832. package/src/_modules/mock/endpoint.mock.ts +91 -91
  833. package/src/_modules/mock/socket-client.mock.spec.ts +40 -40
  834. package/src/_modules/mock/socket-client.mock.ts +45 -45
  835. package/src/_modules/mock/socket-server.mock.spec.ts +44 -44
  836. package/src/_modules/mock/socket-server.mock.ts +46 -46
  837. package/src/_modules/oauth2/_routes/oauth2.controller.spec.ts +107 -107
  838. package/src/_modules/oauth2/_routes/oauth2.controller.ts +98 -98
  839. package/src/_modules/oauth2/_services/oauth2.auth-service.spec.ts +254 -254
  840. package/src/_modules/oauth2/_services/oauth2.auth-service.ts +232 -232
  841. package/src/_modules/oauth2/_services/oauth2.control-service.spec.ts +585 -585
  842. package/src/_modules/oauth2/_services/oauth2.control-service.ts +653 -653
  843. package/src/_modules/oauth2/index.ts +17 -17
  844. package/src/_modules/rate-limit/_models/rate-limit-config.interface.ts +69 -69
  845. package/src/_modules/rate-limit/_models/rate-limit-policy.interface.ts +16 -16
  846. package/src/_modules/rate-limit/index.ts +3 -3
  847. package/src/_modules/rate-limit/rate-limit.middleware.spec.ts +264 -264
  848. package/src/_modules/rate-limit/rate-limit.middleware.ts +343 -343
  849. package/src/_modules/scoped-config/_enums/dynts-scoped-config-level.enum.ts +22 -22
  850. package/src/_modules/scoped-config/_models/data-models/dynts-scoped-config.data-model.ts +82 -82
  851. package/src/_modules/scoped-config/_models/interfaces/dynts-scoped-config.interface.ts +107 -107
  852. package/src/_modules/scoped-config/_services/dynts-scoped-config.control-service.spec.ts +312 -312
  853. package/src/_modules/scoped-config/_services/dynts-scoped-config.control-service.ts +311 -311
  854. package/src/_modules/scoped-config/_services/dynts-scoped-config.data-service.spec.ts +123 -123
  855. package/src/_modules/scoped-config/_services/dynts-scoped-config.data-service.ts +108 -108
  856. package/src/_modules/scoped-config/index.ts +17 -17
  857. package/src/_modules/server/errors/errors.control-service.spec.ts +246 -238
  858. package/src/_modules/server/errors/errors.control-service.ts +100 -85
  859. package/src/_modules/server/errors/errors.controller.spec.ts +249 -241
  860. package/src/_modules/server/errors/errors.controller.ts +489 -431
  861. package/src/_modules/server/errors/errors.data-service.spec.ts +480 -361
  862. package/src/_modules/server/errors/errors.data-service.ts +816 -722
  863. package/src/_modules/server/index.ts +30 -30
  864. package/src/_modules/server/server-status/server-status-snapshot.control-service.spec.ts +70 -70
  865. package/src/_modules/server/server-status/server-status-snapshot.control-service.ts +17 -17
  866. package/src/_modules/server/server-status/server-status-snapshot.data-service.spec.ts +77 -77
  867. package/src/_modules/server/server-status/server-status-snapshot.data-service.ts +37 -37
  868. package/src/_modules/server/server-status/server-status.control-service.spec.ts +584 -576
  869. package/src/_modules/server/server-status/server-status.control-service.ts +396 -396
  870. package/src/_modules/server/server-status/server-status.controller.spec.ts +248 -240
  871. package/src/_modules/server/server-status/server-status.controller.ts +253 -253
  872. package/src/_modules/socket/_enums/socket-security.enum.ts +11 -11
  873. package/src/_modules/socket/_models/socket-client-service-params.control-model.spec.ts +32 -32
  874. package/src/_modules/socket/_models/socket-client-service-params.control-model.ts +22 -22
  875. package/src/_modules/socket/_models/socket-presence.control-model.spec.ts +164 -164
  876. package/src/_modules/socket/_models/socket-presence.control-model.ts +210 -210
  877. package/src/_modules/socket/_models/socket-server-service-params.control-model.spec.ts +46 -46
  878. package/src/_modules/socket/_models/socket-server-service-params.control-model.ts +22 -22
  879. package/src/_modules/socket/_services/socket-client.service.spec.ts +15 -15
  880. package/src/_modules/socket/_services/socket-client.service.ts +260 -260
  881. package/src/_modules/socket/_services/socket-server.service.spec.ts +11 -11
  882. package/src/_modules/socket/_services/socket-server.service.ts +1068 -1068
  883. package/src/_modules/socket/app-extended.integration.spec.ts +85 -85
  884. package/src/_modules/socket/app-extended.server.ts +630 -630
  885. package/src/_modules/socket/index.ts +42 -42
  886. package/src/_modules/test/get-test-routing-module.util.spec.ts +28 -28
  887. package/src/_modules/test/get-test-routing-module.util.ts +23 -23
  888. package/src/_modules/test/index.ts +11 -11
  889. package/src/_modules/test/test.controller.spec.ts +72 -72
  890. package/src/_modules/test/test.controller.ts +115 -115
  891. package/src/_modules/usage/get-usage-routing-module.util.ts +22 -22
  892. package/src/_modules/usage/index.ts +15 -15
  893. package/src/_modules/usage/usage.controller.spec.ts +81 -81
  894. package/src/_modules/usage/usage.controller.ts +126 -126
  895. package/src/_modules/usage/usage.data-service.spec.ts +332 -332
  896. package/src/_modules/usage/usage.data-service.ts +185 -185
  897. package/src/_services/base/api.service-base.spec.ts +125 -125
  898. package/src/_services/base/api.service-base.ts +74 -74
  899. package/src/_services/base/archive-data.service.spec.ts +196 -196
  900. package/src/_services/base/archive-data.service.ts +216 -216
  901. package/src/_services/base/data.service.spec.ts +674 -674
  902. package/src/_services/base/data.service.ts +2719 -2719
  903. package/src/_services/base/db.service.spec.ts +73 -73
  904. package/src/_services/base/db.service.ts +1575 -1575
  905. package/src/_services/base/singleton.service-base.spec.ts +28 -28
  906. package/src/_services/base/singleton.service-base.ts +24 -24
  907. package/src/_services/base/singleton.service.spec.ts +114 -114
  908. package/src/_services/base/singleton.service.ts +38 -38
  909. package/src/_services/core/api.service.spec.ts +140 -140
  910. package/src/_services/core/api.service.ts +607 -607
  911. package/src/_services/core/auth.service.spec.ts +159 -159
  912. package/src/_services/core/auth.service.ts +174 -174
  913. package/src/_services/core/email.service.spec.ts +85 -85
  914. package/src/_services/core/email.service.ts +742 -742
  915. package/src/_services/core/global.service.spec.ts +292 -292
  916. package/src/_services/core/global.service.ts +475 -475
  917. package/src/_services/core/memory-guard.service.spec.ts +165 -165
  918. package/src/_services/core/memory-guard.service.ts +281 -281
  919. package/src/_services/core/service-collection.service.spec.ts +46 -46
  920. package/src/_services/core/service-collection.service.ts +6 -6
  921. package/src/_services/route/controller.service.spec.ts +53 -53
  922. package/src/_services/route/controller.service.ts +148 -148
  923. package/src/_services/route/routing-module.service.spec.ts +98 -98
  924. package/src/_services/route/routing-module.service.ts +330 -330
  925. package/src/_services/server/app.server.ts +1747 -1747
  926. package/src/_services/shared.static-service.spec.ts +99 -99
  927. package/src/_services/shared.static-service.ts +78 -78
  928. package/src/index.ts +96 -96
  929. package/tsconfig.app.json +12 -12
  930. package/tsconfig.json +42 -42
  931. package/.dynamo/logs/cicd-pipeline/output.log +0 -2771
  932. package/.dynamo/logs/cicd-pipeline/status.json +0 -94
@@ -1,343 +1,343 @@
1
- import { Request, Response } from 'express';
2
-
3
- import { DyFM_Error } from '@futdevpro/fsm-dynamo';
4
-
5
- import { DyNTS_SingletonServiceBase } from '../../_services/base/singleton.service-base';
6
- import { DyNTS_global_settings } from '../../_collections/global-settings.const';
7
-
8
- import { DyNTS_RateLimit_Config } from './_models/rate-limit-config.interface';
9
- import { DyNTS_RateLimit_Policy } from './_models/rate-limit-policy.interface';
10
-
11
-
12
- /** Default request-limit per default-window. */
13
- const DEFAULT_LIMIT: number = 100;
14
-
15
- /** Default sliding-window hossza ms-ben (1 perc). */
16
- const DEFAULT_WINDOW_MS: number = 60000;
17
-
18
- /** Default response-header allitas. */
19
- const DEFAULT_RESPONSE_HEADERS: boolean = true;
20
-
21
- /** Periodikus garbage-collection intervallum ms-ben (5 perc).
22
- * A request-log-bol takaritja a regen inaktiv kulcsokat (memory-leak prevention).
23
- */
24
- const GC_INTERVAL_MS: number = 5 * 60 * 1000;
25
-
26
- /** Service-nev az error-okhoz. */
27
- const SERVICE_NAME: string = 'DyNTS_RateLimit_Middleware';
28
-
29
- /** ErrorCode-builder — system shortcode + sajat kod. */
30
- const buildErrorCode = (subcode: string): string => {
31
- const sys: string = DyNTS_global_settings.systemShortCodeName ?? 'DyNTS';
32
- return `${sys}|DyNTS-RL-${subcode}`;
33
- };
34
-
35
-
36
- /**
37
- * Sliding-window HTTP rate-limit middleware — opt-in service-szel, a meglevo
38
- * `DyNTS_Endpoint_Params.preProcesses` mechanizmus mellol mukodik.
39
- *
40
- * **Hasznalat (host app):**
41
- * ```ts
42
- * const rateLimit = DyNTS_RateLimit_Middleware.getInstance();
43
- * rateLimit.configure({
44
- * defaultLimit: 100, // 100 req/perc default
45
- * defaultWindowMs: 60_000,
46
- * keyExtractor: (req) => req.headers['x-api-key'] as string || req.ip,
47
- * });
48
- *
49
- * new DyNTS_Endpoint_Params({
50
- * ...,
51
- * preProcesses: [rateLimit.check, ...other],
52
- * });
53
- *
54
- * // subscription-tier-up: per-kulcs egyedi limit
55
- * rateLimit.setPolicyForKey('subscriber-tier-key-123', {
56
- * limit: 1000,
57
- * windowMs: 60_000,
58
- * });
59
- * ```
60
- *
61
- * **Viselkedes:**
62
- * - Sliding-window algoritmus: minden request egy timestamp; a window-on
63
- * kivuli timestamp-ek nem szamolnak. Tobb pontos mint a fix-bucket
64
- * (boundary-burst nincs).
65
- * - In-memory storage — single-instance MVP-nek megfelelo. Multi-instance
66
- * prod-hoz Redis-backed extension kell (lasd a kozelebb dokumentumaltot).
67
- * - Limit lepes: 429 DyFM_Error + `X-RateLimit-*` + `Retry-After` header-ek.
68
- *
69
- * **Storage:** `Map<storageKey, timestamps[]>` ahol storageKey = `${subject}|${endpoint}`.
70
- * Periodikus GC takaritja a inaktiv kulcsokat.
71
- *
72
- * **Singleton:** `getInstance()`-szel hivd. A `.check` mezo binding-elve van
73
- * `this`-re, igy direkt atadhato `preProcesses`-be ujracsomagolas nelkul.
74
- */
75
- export class DyNTS_RateLimit_Middleware extends DyNTS_SingletonServiceBase {
76
-
77
- static getInstance(): DyNTS_RateLimit_Middleware {
78
- return DyNTS_RateLimit_Middleware.getSingletonInstance() as DyNTS_RateLimit_Middleware;
79
- }
80
-
81
- private defaultLimit: number = DEFAULT_LIMIT;
82
- private defaultWindowMs: number = DEFAULT_WINDOW_MS;
83
- private responseHeaders: boolean = DEFAULT_RESPONSE_HEADERS;
84
-
85
- private keyExtractor: (req: Request) => string =
86
- (req: Request): string => this.defaultKeyExtractor(req);
87
- private endpointGrouper: (req: Request) => string =
88
- (req: Request): string => req.path;
89
-
90
- /** request-log: storageKey → timestamp-tomb (Date.now() ms). */
91
- private requestLog: Map<string, number[]> = new Map();
92
-
93
- /** Per-kulcs egyedi policy-k. */
94
- private keyPolicies: Map<string, DyNTS_RateLimit_Policy> = new Map();
95
-
96
- /** Per-endpoint(-csoport) egyedi policy-k (a `endpointGrouper` outputjara kulcsolva). */
97
- private endpointPolicies: Map<string, DyNTS_RateLimit_Policy> = new Map();
98
-
99
- /** GC timer handle. */
100
- private gcTimer: NodeJS.Timeout | null = null;
101
-
102
-
103
- /**
104
- * Konfig override. Hianyzo mezok a default-okat orzik. Hivhato barmikor —
105
- * a `check()` a friss config-ot olvassa.
106
- */
107
- configure(config: DyNTS_RateLimit_Config): void {
108
- if (config.defaultLimit !== undefined) {
109
- this.defaultLimit = config.defaultLimit;
110
- }
111
- if (config.defaultWindowMs !== undefined) {
112
- this.defaultWindowMs = config.defaultWindowMs;
113
- }
114
- if (config.keyExtractor !== undefined) {
115
- this.keyExtractor = config.keyExtractor;
116
- }
117
- if (config.endpointGrouper !== undefined) {
118
- this.endpointGrouper = config.endpointGrouper;
119
- }
120
- if (config.responseHeaders !== undefined) {
121
- this.responseHeaders = config.responseHeaders;
122
- }
123
- if (config.initialKeyPolicies !== undefined) {
124
- for (const [ key, policy ] of Object.entries(config.initialKeyPolicies)) {
125
- this.keyPolicies.set(key, policy);
126
- }
127
- }
128
- if (config.initialEndpointPolicies !== undefined) {
129
- for (const [ endpoint, policy ] of Object.entries(config.initialEndpointPolicies)) {
130
- this.endpointPolicies.set(endpoint, policy);
131
- }
132
- }
133
- this.startGcTimer();
134
- }
135
-
136
- /**
137
- * Aktualis konfig olvasasa (diagnosztika celokra).
138
- */
139
- getConfig(): {
140
- defaultLimit: number;
141
- defaultWindowMs: number;
142
- responseHeaders: boolean;
143
- activeKeyPolicies: number;
144
- activeEndpointPolicies: number;
145
- trackedStorageKeys: number;
146
- } {
147
- return {
148
- defaultLimit: this.defaultLimit,
149
- defaultWindowMs: this.defaultWindowMs,
150
- responseHeaders: this.responseHeaders,
151
- activeKeyPolicies: this.keyPolicies.size,
152
- activeEndpointPolicies: this.endpointPolicies.size,
153
- trackedStorageKeys: this.requestLog.size,
154
- };
155
- }
156
-
157
- /**
158
- * Per-kulcs egyedi policy beallitas (pl. subscription-tier alapjan).
159
- * A `key`-nek pontosan azzal a stringgel kell egyeznie, amit a `keyExtractor`
160
- * visszaad.
161
- */
162
- setPolicyForKey(key: string, policy: DyNTS_RateLimit_Policy): void {
163
- this.keyPolicies.set(key, policy);
164
- }
165
-
166
- /**
167
- * Per-kulcs policy torlese (visszaall a default-ra).
168
- */
169
- clearPolicyForKey(key: string): void {
170
- this.keyPolicies.delete(key);
171
- }
172
-
173
- /**
174
- * Per-endpoint(-csoport) egyedi policy beallitas. Az `endpoint`-nek pontosan
175
- * azzal a stringgel kell egyeznie, amit az `endpointGrouper` visszaad (default: `req.path`).
176
- * Akkor hasznos, ha egy endpointnak a globalis default-tol eltero limit kell — pl. egy
177
- * webhook nagy burst-toleranciat igenyel (a legit, distributed forgalom ne bukjon), mig
178
- * egy admin-endpoint szuk limitet. Precedencia: per-kulcs policy > per-endpoint policy > default.
179
- */
180
- setPolicyForEndpoint(endpoint: string, policy: DyNTS_RateLimit_Policy): void {
181
- this.endpointPolicies.set(endpoint, policy);
182
- }
183
-
184
- /**
185
- * Per-endpoint policy torlese (visszaall a default-ra).
186
- */
187
- clearPolicyForEndpoint(endpoint: string): void {
188
- this.endpointPolicies.delete(endpoint);
189
- }
190
-
191
-
192
- /**
193
- * Pre-process function — atadhato `DyNTS_Endpoint_Params.preProcesses`-be.
194
- *
195
- * Throws:
196
- * - 429 ha az aktualis request meghaladna a limit-et a sliding window-on
197
- *
198
- * Side-effect: ha `responseHeaders === true`, beallitja az `X-RateLimit-Limit`,
199
- * `X-RateLimit-Remaining`, `X-RateLimit-Reset` header-eket; 429 eseten
200
- * a `Retry-After` header-t is.
201
- */
202
- readonly check = async (req: Request, res: Response): Promise<void> => {
203
- const subject: string = this.keyExtractor(req);
204
- const endpoint: string = this.endpointGrouper(req);
205
- const storageKey: string = `${subject}|${endpoint}`;
206
-
207
- // precedencia: per-kulcs policy (legspecifikusabb, pl. subscriber-tier) > per-endpoint policy > default
208
- const policy: DyNTS_RateLimit_Policy =
209
- this.keyPolicies.get(subject) ??
210
- this.endpointPolicies.get(endpoint) ??
211
- {
212
- limit: this.defaultLimit,
213
- windowMs: this.defaultWindowMs,
214
- };
215
-
216
- const now: number = Date.now();
217
- const windowStart: number = now - policy.windowMs;
218
-
219
- // sliding-window: tartomanyon kivuli timestamp-eket eldobjuk
220
- const existing: number[] = this.requestLog.get(storageKey) ?? [];
221
- const recent: number[] = existing.filter((t: number): boolean => t > windowStart);
222
-
223
- if (recent.length >= policy.limit) {
224
- const oldest: number = recent[0];
225
- const resetAt: number = oldest + policy.windowMs;
226
- const retryAfterSec: number = Math.max(1, Math.ceil((resetAt - now) / 1000));
227
-
228
- if (this.responseHeaders) {
229
- res.setHeader('X-RateLimit-Limit', policy.limit.toString());
230
- res.setHeader('X-RateLimit-Remaining', '0');
231
- res.setHeader('X-RateLimit-Reset', Math.ceil(resetAt / 1000).toString());
232
- res.setHeader('Retry-After', retryAfterSec.toString());
233
- }
234
-
235
- // Frissitjuk a log-ot a kiszurt verzioval (felesleges regi timestamp-eket eldobtuk)
236
- this.requestLog.set(storageKey, recent);
237
-
238
- throw new DyFM_Error({
239
- status: 429,
240
- errorCode: buildErrorCode('LIMIT'),
241
- addECToUserMsg: true,
242
- message: `Rate limit exceeded: ${policy.limit} req per ${policy.windowMs}ms for ${storageKey}`,
243
- userMessage: `Too many requests, retry after ${retryAfterSec}s`,
244
- issuerService: SERVICE_NAME,
245
- });
246
- }
247
-
248
- // alatta vagyunk a limit-nek: append the current request
249
- recent.push(now);
250
- this.requestLog.set(storageKey, recent);
251
-
252
- if (this.responseHeaders) {
253
- res.setHeader('X-RateLimit-Limit', policy.limit.toString());
254
- res.setHeader('X-RateLimit-Remaining', Math.max(0, policy.limit - recent.length).toString());
255
- res.setHeader('X-RateLimit-Reset', Math.ceil((now + policy.windowMs) / 1000).toString());
256
- }
257
- };
258
-
259
-
260
- /**
261
- * Default key-extractor: x-forwarded-for vagy req.ip vagy 'unknown'.
262
- * Csak akkor hasznalt, ha a host nem allit be sajat extractort a configure-ben.
263
- */
264
- private defaultKeyExtractor(req: Request): string {
265
- const xff: unknown = req.headers['x-forwarded-for'];
266
- if (typeof xff === 'string' && xff.length > 0) {
267
- const first: string = xff.split(',')[0]?.trim() ?? '';
268
- if (first.length > 0) {
269
- return first;
270
- }
271
- }
272
- if (Array.isArray(xff) && xff.length > 0) {
273
- const first: string = xff[0]?.split(',')[0]?.trim() ?? '';
274
- if (first.length > 0) {
275
- return first;
276
- }
277
- }
278
- return req.ip ?? 'unknown';
279
- }
280
-
281
-
282
- /**
283
- * GC timer inditasa (idempotent). Periodikusan eltavolitja az inaktiv
284
- * storage-key-eket a request-log-bol — memory-leak prevention.
285
- */
286
- private startGcTimer(): void {
287
- if (this.gcTimer !== null) {
288
- return;
289
- }
290
- this.gcTimer = setInterval((): void => {
291
- this.runGc();
292
- }, GC_INTERVAL_MS);
293
- // unref hogy a process ne maradjon eletben a timer miatt
294
- if (typeof this.gcTimer.unref === 'function') {
295
- this.gcTimer.unref();
296
- }
297
- }
298
-
299
- /**
300
- * GC sweep — minden storage-key-rol levagja a regi timestamp-eket, es
301
- * eltavolitja az ureseket. Hivhato kulonosen test-bol.
302
- */
303
- runGc(): void {
304
- const now: number = Date.now();
305
- const horizon: number = now - this.defaultWindowMs;
306
-
307
- for (const [ key, timestamps ] of this.requestLog) {
308
- const recent: number[] = timestamps.filter((t: number): boolean => t > horizon);
309
- if (recent.length === 0) {
310
- this.requestLog.delete(key);
311
- } else {
312
- this.requestLog.set(key, recent);
313
- }
314
- }
315
- }
316
-
317
- /**
318
- * GC timer leallitasa (graceful shutdown vagy test-cleanup).
319
- */
320
- stopGcTimer(): void {
321
- if (this.gcTimer !== null) {
322
- clearInterval(this.gcTimer);
323
- this.gcTimer = null;
324
- }
325
- }
326
-
327
-
328
- /**
329
- * Test-only: visszaallitja a default config-ot + uriti a state-et, hogy a
330
- * specfajlok ne szivarogjak at egymas state-jet. Production code NE hivja.
331
- */
332
- _resetForTesting(): void {
333
- this.defaultLimit = DEFAULT_LIMIT;
334
- this.defaultWindowMs = DEFAULT_WINDOW_MS;
335
- this.responseHeaders = DEFAULT_RESPONSE_HEADERS;
336
- this.keyExtractor = (req: Request): string => this.defaultKeyExtractor(req);
337
- this.endpointGrouper = (req: Request): string => req.path;
338
- this.requestLog.clear();
339
- this.keyPolicies.clear();
340
- this.endpointPolicies.clear();
341
- this.stopGcTimer();
342
- }
343
- }
1
+ import { Request, Response } from 'express';
2
+
3
+ import { DyFM_Error } from '@futdevpro/fsm-dynamo';
4
+
5
+ import { DyNTS_SingletonServiceBase } from '../../_services/base/singleton.service-base';
6
+ import { DyNTS_global_settings } from '../../_collections/global-settings.const';
7
+
8
+ import { DyNTS_RateLimit_Config } from './_models/rate-limit-config.interface';
9
+ import { DyNTS_RateLimit_Policy } from './_models/rate-limit-policy.interface';
10
+
11
+
12
+ /** Default request-limit per default-window. */
13
+ const DEFAULT_LIMIT: number = 100;
14
+
15
+ /** Default sliding-window hossza ms-ben (1 perc). */
16
+ const DEFAULT_WINDOW_MS: number = 60000;
17
+
18
+ /** Default response-header allitas. */
19
+ const DEFAULT_RESPONSE_HEADERS: boolean = true;
20
+
21
+ /** Periodikus garbage-collection intervallum ms-ben (5 perc).
22
+ * A request-log-bol takaritja a regen inaktiv kulcsokat (memory-leak prevention).
23
+ */
24
+ const GC_INTERVAL_MS: number = 5 * 60 * 1000;
25
+
26
+ /** Service-nev az error-okhoz. */
27
+ const SERVICE_NAME: string = 'DyNTS_RateLimit_Middleware';
28
+
29
+ /** ErrorCode-builder — system shortcode + sajat kod. */
30
+ const buildErrorCode = (subcode: string): string => {
31
+ const sys: string = DyNTS_global_settings.systemShortCodeName ?? 'DyNTS';
32
+ return `${sys}|DyNTS-RL-${subcode}`;
33
+ };
34
+
35
+
36
+ /**
37
+ * Sliding-window HTTP rate-limit middleware — opt-in service-szel, a meglevo
38
+ * `DyNTS_Endpoint_Params.preProcesses` mechanizmus mellol mukodik.
39
+ *
40
+ * **Hasznalat (host app):**
41
+ * ```ts
42
+ * const rateLimit = DyNTS_RateLimit_Middleware.getInstance();
43
+ * rateLimit.configure({
44
+ * defaultLimit: 100, // 100 req/perc default
45
+ * defaultWindowMs: 60_000,
46
+ * keyExtractor: (req) => req.headers['x-api-key'] as string || req.ip,
47
+ * });
48
+ *
49
+ * new DyNTS_Endpoint_Params({
50
+ * ...,
51
+ * preProcesses: [rateLimit.check, ...other],
52
+ * });
53
+ *
54
+ * // subscription-tier-up: per-kulcs egyedi limit
55
+ * rateLimit.setPolicyForKey('subscriber-tier-key-123', {
56
+ * limit: 1000,
57
+ * windowMs: 60_000,
58
+ * });
59
+ * ```
60
+ *
61
+ * **Viselkedes:**
62
+ * - Sliding-window algoritmus: minden request egy timestamp; a window-on
63
+ * kivuli timestamp-ek nem szamolnak. Tobb pontos mint a fix-bucket
64
+ * (boundary-burst nincs).
65
+ * - In-memory storage — single-instance MVP-nek megfelelo. Multi-instance
66
+ * prod-hoz Redis-backed extension kell (lasd a kozelebb dokumentumaltot).
67
+ * - Limit lepes: 429 DyFM_Error + `X-RateLimit-*` + `Retry-After` header-ek.
68
+ *
69
+ * **Storage:** `Map<storageKey, timestamps[]>` ahol storageKey = `${subject}|${endpoint}`.
70
+ * Periodikus GC takaritja a inaktiv kulcsokat.
71
+ *
72
+ * **Singleton:** `getInstance()`-szel hivd. A `.check` mezo binding-elve van
73
+ * `this`-re, igy direkt atadhato `preProcesses`-be ujracsomagolas nelkul.
74
+ */
75
+ export class DyNTS_RateLimit_Middleware extends DyNTS_SingletonServiceBase {
76
+
77
+ static getInstance(): DyNTS_RateLimit_Middleware {
78
+ return DyNTS_RateLimit_Middleware.getSingletonInstance() as DyNTS_RateLimit_Middleware;
79
+ }
80
+
81
+ private defaultLimit: number = DEFAULT_LIMIT;
82
+ private defaultWindowMs: number = DEFAULT_WINDOW_MS;
83
+ private responseHeaders: boolean = DEFAULT_RESPONSE_HEADERS;
84
+
85
+ private keyExtractor: (req: Request) => string =
86
+ (req: Request): string => this.defaultKeyExtractor(req);
87
+ private endpointGrouper: (req: Request) => string =
88
+ (req: Request): string => req.path;
89
+
90
+ /** request-log: storageKey → timestamp-tomb (Date.now() ms). */
91
+ private requestLog: Map<string, number[]> = new Map();
92
+
93
+ /** Per-kulcs egyedi policy-k. */
94
+ private keyPolicies: Map<string, DyNTS_RateLimit_Policy> = new Map();
95
+
96
+ /** Per-endpoint(-csoport) egyedi policy-k (a `endpointGrouper` outputjara kulcsolva). */
97
+ private endpointPolicies: Map<string, DyNTS_RateLimit_Policy> = new Map();
98
+
99
+ /** GC timer handle. */
100
+ private gcTimer: NodeJS.Timeout | null = null;
101
+
102
+
103
+ /**
104
+ * Konfig override. Hianyzo mezok a default-okat orzik. Hivhato barmikor —
105
+ * a `check()` a friss config-ot olvassa.
106
+ */
107
+ configure(config: DyNTS_RateLimit_Config): void {
108
+ if (config.defaultLimit !== undefined) {
109
+ this.defaultLimit = config.defaultLimit;
110
+ }
111
+ if (config.defaultWindowMs !== undefined) {
112
+ this.defaultWindowMs = config.defaultWindowMs;
113
+ }
114
+ if (config.keyExtractor !== undefined) {
115
+ this.keyExtractor = config.keyExtractor;
116
+ }
117
+ if (config.endpointGrouper !== undefined) {
118
+ this.endpointGrouper = config.endpointGrouper;
119
+ }
120
+ if (config.responseHeaders !== undefined) {
121
+ this.responseHeaders = config.responseHeaders;
122
+ }
123
+ if (config.initialKeyPolicies !== undefined) {
124
+ for (const [ key, policy ] of Object.entries(config.initialKeyPolicies)) {
125
+ this.keyPolicies.set(key, policy);
126
+ }
127
+ }
128
+ if (config.initialEndpointPolicies !== undefined) {
129
+ for (const [ endpoint, policy ] of Object.entries(config.initialEndpointPolicies)) {
130
+ this.endpointPolicies.set(endpoint, policy);
131
+ }
132
+ }
133
+ this.startGcTimer();
134
+ }
135
+
136
+ /**
137
+ * Aktualis konfig olvasasa (diagnosztika celokra).
138
+ */
139
+ getConfig(): {
140
+ defaultLimit: number;
141
+ defaultWindowMs: number;
142
+ responseHeaders: boolean;
143
+ activeKeyPolicies: number;
144
+ activeEndpointPolicies: number;
145
+ trackedStorageKeys: number;
146
+ } {
147
+ return {
148
+ defaultLimit: this.defaultLimit,
149
+ defaultWindowMs: this.defaultWindowMs,
150
+ responseHeaders: this.responseHeaders,
151
+ activeKeyPolicies: this.keyPolicies.size,
152
+ activeEndpointPolicies: this.endpointPolicies.size,
153
+ trackedStorageKeys: this.requestLog.size,
154
+ };
155
+ }
156
+
157
+ /**
158
+ * Per-kulcs egyedi policy beallitas (pl. subscription-tier alapjan).
159
+ * A `key`-nek pontosan azzal a stringgel kell egyeznie, amit a `keyExtractor`
160
+ * visszaad.
161
+ */
162
+ setPolicyForKey(key: string, policy: DyNTS_RateLimit_Policy): void {
163
+ this.keyPolicies.set(key, policy);
164
+ }
165
+
166
+ /**
167
+ * Per-kulcs policy torlese (visszaall a default-ra).
168
+ */
169
+ clearPolicyForKey(key: string): void {
170
+ this.keyPolicies.delete(key);
171
+ }
172
+
173
+ /**
174
+ * Per-endpoint(-csoport) egyedi policy beallitas. Az `endpoint`-nek pontosan
175
+ * azzal a stringgel kell egyeznie, amit az `endpointGrouper` visszaad (default: `req.path`).
176
+ * Akkor hasznos, ha egy endpointnak a globalis default-tol eltero limit kell — pl. egy
177
+ * webhook nagy burst-toleranciat igenyel (a legit, distributed forgalom ne bukjon), mig
178
+ * egy admin-endpoint szuk limitet. Precedencia: per-kulcs policy > per-endpoint policy > default.
179
+ */
180
+ setPolicyForEndpoint(endpoint: string, policy: DyNTS_RateLimit_Policy): void {
181
+ this.endpointPolicies.set(endpoint, policy);
182
+ }
183
+
184
+ /**
185
+ * Per-endpoint policy torlese (visszaall a default-ra).
186
+ */
187
+ clearPolicyForEndpoint(endpoint: string): void {
188
+ this.endpointPolicies.delete(endpoint);
189
+ }
190
+
191
+
192
+ /**
193
+ * Pre-process function — atadhato `DyNTS_Endpoint_Params.preProcesses`-be.
194
+ *
195
+ * Throws:
196
+ * - 429 ha az aktualis request meghaladna a limit-et a sliding window-on
197
+ *
198
+ * Side-effect: ha `responseHeaders === true`, beallitja az `X-RateLimit-Limit`,
199
+ * `X-RateLimit-Remaining`, `X-RateLimit-Reset` header-eket; 429 eseten
200
+ * a `Retry-After` header-t is.
201
+ */
202
+ readonly check = async (req: Request, res: Response): Promise<void> => {
203
+ const subject: string = this.keyExtractor(req);
204
+ const endpoint: string = this.endpointGrouper(req);
205
+ const storageKey: string = `${subject}|${endpoint}`;
206
+
207
+ // precedencia: per-kulcs policy (legspecifikusabb, pl. subscriber-tier) > per-endpoint policy > default
208
+ const policy: DyNTS_RateLimit_Policy =
209
+ this.keyPolicies.get(subject) ??
210
+ this.endpointPolicies.get(endpoint) ??
211
+ {
212
+ limit: this.defaultLimit,
213
+ windowMs: this.defaultWindowMs,
214
+ };
215
+
216
+ const now: number = Date.now();
217
+ const windowStart: number = now - policy.windowMs;
218
+
219
+ // sliding-window: tartomanyon kivuli timestamp-eket eldobjuk
220
+ const existing: number[] = this.requestLog.get(storageKey) ?? [];
221
+ const recent: number[] = existing.filter((t: number): boolean => t > windowStart);
222
+
223
+ if (recent.length >= policy.limit) {
224
+ const oldest: number = recent[0];
225
+ const resetAt: number = oldest + policy.windowMs;
226
+ const retryAfterSec: number = Math.max(1, Math.ceil((resetAt - now) / 1000));
227
+
228
+ if (this.responseHeaders) {
229
+ res.setHeader('X-RateLimit-Limit', policy.limit.toString());
230
+ res.setHeader('X-RateLimit-Remaining', '0');
231
+ res.setHeader('X-RateLimit-Reset', Math.ceil(resetAt / 1000).toString());
232
+ res.setHeader('Retry-After', retryAfterSec.toString());
233
+ }
234
+
235
+ // Frissitjuk a log-ot a kiszurt verzioval (felesleges regi timestamp-eket eldobtuk)
236
+ this.requestLog.set(storageKey, recent);
237
+
238
+ throw new DyFM_Error({
239
+ status: 429,
240
+ errorCode: buildErrorCode('LIMIT'),
241
+ addECToUserMsg: true,
242
+ message: `Rate limit exceeded: ${policy.limit} req per ${policy.windowMs}ms for ${storageKey}`,
243
+ userMessage: `Too many requests, retry after ${retryAfterSec}s`,
244
+ issuerService: SERVICE_NAME,
245
+ });
246
+ }
247
+
248
+ // alatta vagyunk a limit-nek: append the current request
249
+ recent.push(now);
250
+ this.requestLog.set(storageKey, recent);
251
+
252
+ if (this.responseHeaders) {
253
+ res.setHeader('X-RateLimit-Limit', policy.limit.toString());
254
+ res.setHeader('X-RateLimit-Remaining', Math.max(0, policy.limit - recent.length).toString());
255
+ res.setHeader('X-RateLimit-Reset', Math.ceil((now + policy.windowMs) / 1000).toString());
256
+ }
257
+ };
258
+
259
+
260
+ /**
261
+ * Default key-extractor: x-forwarded-for vagy req.ip vagy 'unknown'.
262
+ * Csak akkor hasznalt, ha a host nem allit be sajat extractort a configure-ben.
263
+ */
264
+ private defaultKeyExtractor(req: Request): string {
265
+ const xff: unknown = req.headers['x-forwarded-for'];
266
+ if (typeof xff === 'string' && xff.length > 0) {
267
+ const first: string = xff.split(',')[0]?.trim() ?? '';
268
+ if (first.length > 0) {
269
+ return first;
270
+ }
271
+ }
272
+ if (Array.isArray(xff) && xff.length > 0) {
273
+ const first: string = xff[0]?.split(',')[0]?.trim() ?? '';
274
+ if (first.length > 0) {
275
+ return first;
276
+ }
277
+ }
278
+ return req.ip ?? 'unknown';
279
+ }
280
+
281
+
282
+ /**
283
+ * GC timer inditasa (idempotent). Periodikusan eltavolitja az inaktiv
284
+ * storage-key-eket a request-log-bol — memory-leak prevention.
285
+ */
286
+ private startGcTimer(): void {
287
+ if (this.gcTimer !== null) {
288
+ return;
289
+ }
290
+ this.gcTimer = setInterval((): void => {
291
+ this.runGc();
292
+ }, GC_INTERVAL_MS);
293
+ // unref hogy a process ne maradjon eletben a timer miatt
294
+ if (typeof this.gcTimer.unref === 'function') {
295
+ this.gcTimer.unref();
296
+ }
297
+ }
298
+
299
+ /**
300
+ * GC sweep — minden storage-key-rol levagja a regi timestamp-eket, es
301
+ * eltavolitja az ureseket. Hivhato kulonosen test-bol.
302
+ */
303
+ runGc(): void {
304
+ const now: number = Date.now();
305
+ const horizon: number = now - this.defaultWindowMs;
306
+
307
+ for (const [ key, timestamps ] of this.requestLog) {
308
+ const recent: number[] = timestamps.filter((t: number): boolean => t > horizon);
309
+ if (recent.length === 0) {
310
+ this.requestLog.delete(key);
311
+ } else {
312
+ this.requestLog.set(key, recent);
313
+ }
314
+ }
315
+ }
316
+
317
+ /**
318
+ * GC timer leallitasa (graceful shutdown vagy test-cleanup).
319
+ */
320
+ stopGcTimer(): void {
321
+ if (this.gcTimer !== null) {
322
+ clearInterval(this.gcTimer);
323
+ this.gcTimer = null;
324
+ }
325
+ }
326
+
327
+
328
+ /**
329
+ * Test-only: visszaallitja a default config-ot + uriti a state-et, hogy a
330
+ * specfajlok ne szivarogjak at egymas state-jet. Production code NE hivja.
331
+ */
332
+ _resetForTesting(): void {
333
+ this.defaultLimit = DEFAULT_LIMIT;
334
+ this.defaultWindowMs = DEFAULT_WINDOW_MS;
335
+ this.responseHeaders = DEFAULT_RESPONSE_HEADERS;
336
+ this.keyExtractor = (req: Request): string => this.defaultKeyExtractor(req);
337
+ this.endpointGrouper = (req: Request): string => req.path;
338
+ this.requestLog.clear();
339
+ this.keyPolicies.clear();
340
+ this.endpointPolicies.clear();
341
+ this.stopGcTimer();
342
+ }
343
+ }