@futdevpro/nts-dynamo 1.15.68 → 1.15.70

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 (928) 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/logs/cicd-pipeline/output.log +2805 -0
  26. package/.dynamo/logs/cicd-pipeline/status.json +94 -0
  27. package/.dynamo/pipeline.cicd.config.json +180 -180
  28. package/.dynamo/version-bump.config.json +5 -5
  29. package/.github/workflows/main.yml +438 -438
  30. package/.husky/pre-commit +3 -3
  31. package/.vscode/settings.json +10 -10
  32. package/HOWTO.md +15 -15
  33. package/LICENSE +21 -21
  34. package/README.md +678 -678
  35. package/__documentations/2026-04-28-logs-module.md +49 -49
  36. package/__documentations/2026-05-17-oai-compatible-providers.md +229 -229
  37. package/__documentations/2026-05-17-static-client-serving-howto.md +144 -144
  38. package/__documentations/2026-06-01-fr041-cors-middleware.md +96 -96
  39. package/__documentations/2026-06-01-fr047-p2p3-function-calling.md +81 -81
  40. package/__documentations/2026-06-15-fr193-memory-guard.md +73 -73
  41. package/__documentations/nts-integration-tests-2026-03-17.md +26 -26
  42. package/_specifications/BACKLOG.md +92 -92
  43. package/_specifications/TODO.md +15 -15
  44. package/_specifications/agent.md +138 -138
  45. package/build/_collections/archive.util.d.ts +12 -12
  46. package/build/_collections/archive.util.js +18 -18
  47. package/build/_collections/atlas-default-db-options.const.d.ts +2 -2
  48. package/build/_collections/atlas-default-db-options.const.js +9 -9
  49. package/build/_collections/default-fallback-cache-max-age.const.d.ts +2 -2
  50. package/build/_collections/default-fallback-cache-max-age.const.js +5 -5
  51. package/build/_collections/default-not-found-page.const.d.ts +5 -5
  52. package/build/_collections/default-not-found-page.const.js +24 -24
  53. package/build/_collections/default-socket-path.const.d.ts +2 -2
  54. package/build/_collections/default-socket-path.const.js +5 -5
  55. package/build/_collections/get-environment-settings.util.d.ts +2 -2
  56. package/build/_collections/get-environment-settings.util.js +43 -43
  57. package/build/_collections/global-settings.const.d.ts +6 -6
  58. package/build/_collections/global-settings.const.js +69 -69
  59. package/build/_collections/mongo-reconnect-guard.util.d.ts +73 -73
  60. package/build/_collections/mongo-reconnect-guard.util.js +110 -110
  61. package/build/_collections/star.controller.d.ts +7 -7
  62. package/build/_collections/star.controller.js +97 -97
  63. package/build/_enums/data-model-type.enum.d.ts +13 -13
  64. package/build/_enums/data-model-type.enum.js +17 -17
  65. package/build/_enums/data-service-function.enum.d.ts +18 -18
  66. package/build/_enums/data-service-function.enum.js +24 -24
  67. package/build/_enums/predefined-data-types.enum.d.ts +15 -15
  68. package/build/_enums/predefined-data-types.enum.js +19 -19
  69. package/build/_enums/route-security.enum.d.ts +11 -11
  70. package/build/_enums/route-security.enum.js +15 -15
  71. package/build/_models/control-models/api-call-params.control-model.d.ts +79 -79
  72. package/build/_models/control-models/api-call-params.control-model.js +101 -101
  73. package/build/_models/control-models/app-ext-system-controls.control-model.d.ts +6 -6
  74. package/build/_models/control-models/app-ext-system-controls.control-model.js +10 -10
  75. package/build/_models/control-models/app-params.control-model.d.ts +51 -51
  76. package/build/_models/control-models/app-params.control-model.js +119 -119
  77. package/build/_models/control-models/app-system-controls.control-model.d.ts +7 -7
  78. package/build/_models/control-models/app-system-controls.control-model.js +11 -11
  79. package/build/_models/control-models/endpoint-params.control-model.d.ts +114 -114
  80. package/build/_models/control-models/endpoint-params.control-model.js +442 -442
  81. package/build/_models/control-models/http-settings.control-model.d.ts +17 -17
  82. package/build/_models/control-models/http-settings.control-model.js +34 -34
  83. package/build/_models/control-models/system-control.control-model.d.ts +5 -5
  84. package/build/_models/control-models/system-control.control-model.js +11 -11
  85. package/build/_models/interfaces/certification-settings.interface.d.ts +5 -5
  86. package/build/_models/interfaces/certification-settings.interface.js +2 -2
  87. package/build/_models/interfaces/compare-data-options.interface.d.ts +26 -26
  88. package/build/_models/interfaces/compare-data-options.interface.js +2 -2
  89. package/build/_models/interfaces/compare-data-result.interface.d.ts +12 -12
  90. package/build/_models/interfaces/compare-data-result.interface.js +2 -2
  91. package/build/_models/interfaces/cors-settings.interface.d.ts +51 -51
  92. package/build/_models/interfaces/cors-settings.interface.js +2 -2
  93. package/build/_models/interfaces/environment-settings.interface.d.ts +34 -34
  94. package/build/_models/interfaces/environment-settings.interface.js +2 -2
  95. package/build/_models/interfaces/global-log-settings.interface.d.ts +145 -145
  96. package/build/_models/interfaces/global-log-settings.interface.js +2 -2
  97. package/build/_models/interfaces/global-service-settings.interface.d.ts +30 -30
  98. package/build/_models/interfaces/global-service-settings.interface.js +2 -2
  99. package/build/_models/interfaces/global-settings.interface.d.ts +161 -161
  100. package/build/_models/interfaces/global-settings.interface.js +2 -2
  101. package/build/_models/interfaces/routing-module-settings.interface.d.ts +19 -19
  102. package/build/_models/interfaces/routing-module-settings.interface.js +2 -2
  103. package/build/_models/interfaces/static-client-settings.interface.d.ts +28 -28
  104. package/build/_models/interfaces/static-client-settings.interface.js +2 -2
  105. package/build/_models/types/db-update.type.d.ts +129 -129
  106. package/build/_models/types/db-update.type.js +2 -2
  107. package/build/_modules/admin-auth/_models/admin-api-key-config.interface.d.ts +31 -31
  108. package/build/_modules/admin-auth/_models/admin-api-key-config.interface.js +2 -2
  109. package/build/_modules/admin-auth/admin-api-key.auth-service.d.ts +89 -89
  110. package/build/_modules/admin-auth/admin-api-key.auth-service.js +194 -194
  111. package/build/_modules/admin-auth/index.d.ts +2 -2
  112. package/build/_modules/admin-auth/index.js +5 -5
  113. package/build/_modules/ai/_models/ai-input-interfaces.d.ts +53 -53
  114. package/build/_modules/ai/_models/ai-input-interfaces.js +5 -5
  115. package/build/_modules/ai/_models/ai-test-generation-result.interface.d.ts +16 -16
  116. package/build/_modules/ai/_models/ai-test-generation-result.interface.js +2 -2
  117. package/build/_modules/ai/_models/interfaces/dynts-ai-cost-event-callback.interface.d.ts +13 -13
  118. package/build/_modules/ai/_models/interfaces/dynts-ai-cost-event-callback.interface.js +2 -2
  119. package/build/_modules/ai/_models/interfaces/dynts-ai-cost-event.interface.d.ts +49 -49
  120. package/build/_modules/ai/_models/interfaces/dynts-ai-cost-event.interface.js +2 -2
  121. package/build/_modules/ai/_modules/anthropic/_services/aai-user-key.control-service.d.ts +35 -35
  122. package/build/_modules/ai/_modules/anthropic/_services/aai-user-key.control-service.js +117 -117
  123. package/build/_modules/ai/_modules/anthropic/index.d.ts +2 -2
  124. package/build/_modules/ai/_modules/anthropic/index.js +7 -7
  125. package/build/_modules/ai/_modules/document-ai/_collections/dai-chunking.util.d.ts +84 -84
  126. package/build/_modules/ai/_modules/document-ai/_collections/dai-chunking.util.js +467 -467
  127. package/build/_modules/ai/_modules/document-ai/_collections/dai-code-chunking.util.d.ts +109 -109
  128. package/build/_modules/ai/_modules/document-ai/_collections/dai-code-chunking.util.js +418 -418
  129. package/build/_modules/ai/_modules/document-ai/_collections/dai-document.util.d.ts +28 -28
  130. package/build/_modules/ai/_modules/document-ai/_collections/dai-document.util.js +73 -73
  131. package/build/_modules/ai/_modules/document-ai/_enums/dai-compare-result-type.enum.d.ts +6 -6
  132. package/build/_modules/ai/_modules/document-ai/_enums/dai-compare-result-type.enum.js +10 -10
  133. package/build/_modules/ai/_modules/document-ai/_models/data-models/dai-doc-chunk.data-model.d.ts +51 -51
  134. package/build/_modules/ai/_modules/document-ai/_models/data-models/dai-doc-chunk.data-model.js +132 -132
  135. package/build/_modules/ai/_modules/document-ai/_models/data-models/dai-doc-page.data-model.d.ts +47 -47
  136. package/build/_modules/ai/_modules/document-ai/_models/data-models/dai-doc-page.data-model.js +136 -136
  137. package/build/_modules/ai/_modules/document-ai/_models/data-models/dai-document.data-model.d.ts +17 -17
  138. package/build/_modules/ai/_modules/document-ai/_models/data-models/dai-document.data-model.js +76 -76
  139. package/build/_modules/ai/_modules/document-ai/_models/interfaces/dai-code-chunk.interface.d.ts +49 -49
  140. package/build/_modules/ai/_modules/document-ai/_models/interfaces/dai-code-chunk.interface.js +2 -2
  141. package/build/_modules/ai/_modules/document-ai/_models/interfaces/dai-doc-chunk-compare-result.interface.d.ts +8 -8
  142. package/build/_modules/ai/_modules/document-ai/_models/interfaces/dai-doc-chunk-compare-result.interface.js +2 -2
  143. package/build/_modules/ai/_modules/document-ai/_models/interfaces/dai-doc-page-compare-result.interface.d.ts +11 -11
  144. package/build/_modules/ai/_modules/document-ai/_models/interfaces/dai-doc-page-compare-result.interface.js +2 -2
  145. package/build/_modules/ai/_modules/document-ai/_models/interfaces/dai-document-compare-result.interface.d.ts +12 -12
  146. package/build/_modules/ai/_modules/document-ai/_models/interfaces/dai-document-compare-result.interface.js +2 -2
  147. package/build/_modules/ai/_modules/document-ai/index.d.ts +12 -12
  148. package/build/_modules/ai/_modules/document-ai/index.js +27 -27
  149. package/build/_modules/ai/_modules/fdp-ai/_services/fdpai-user-key.control-service.d.ts +34 -34
  150. package/build/_modules/ai/_modules/fdp-ai/_services/fdpai-user-key.control-service.js +128 -128
  151. package/build/_modules/ai/_modules/fdp-ai/index.d.ts +2 -2
  152. package/build/_modules/ai/_modules/fdp-ai/index.js +7 -7
  153. package/build/_modules/ai/_modules/open-ai/_collections/oai-global-settings.const.d.ts +2 -2
  154. package/build/_modules/ai/_modules/open-ai/_collections/oai-global-settings.const.js +8 -8
  155. package/build/_modules/ai/_modules/open-ai/_collections/oai-llm-predefined-requests-hu.conts.d.ts +2 -2
  156. package/build/_modules/ai/_modules/open-ai/_collections/oai-llm-predefined-requests-hu.conts.js +74 -74
  157. package/build/_modules/ai/_modules/open-ai/_collections/oai-llm-predefined-requests.conts.d.ts +2 -2
  158. package/build/_modules/ai/_modules/open-ai/_collections/oai-llm-predefined-requests.conts.js +67 -67
  159. package/build/_modules/ai/_modules/open-ai/_enums/oai-gpt-message-role.enum.js +42 -42
  160. package/build/_modules/ai/_modules/open-ai/_models/interfaces/oai-global-settings.interface.d.ts +5 -5
  161. package/build/_modules/ai/_modules/open-ai/_models/interfaces/oai-global-settings.interface.js +2 -2
  162. package/build/_modules/ai/_modules/open-ai/_models/interfaces/oai-gpt-message.interface.js +6 -6
  163. package/build/_modules/ai/_modules/open-ai/_models/interfaces/oai-llm-predefined-requests.interface.d.ts +51 -51
  164. package/build/_modules/ai/_modules/open-ai/_models/interfaces/oai-llm-predefined-requests.interface.js +2 -2
  165. package/build/_modules/ai/_modules/open-ai/_services/data-services/oai-doc-chunk-data.service.d.ts +21 -21
  166. package/build/_modules/ai/_modules/open-ai/_services/data-services/oai-doc-chunk-data.service.js +187 -187
  167. package/build/_modules/ai/_modules/open-ai/_services/data-services/oai-doc-page.data-service.d.ts +26 -26
  168. package/build/_modules/ai/_modules/open-ai/_services/data-services/oai-doc-page.data-service.js +278 -278
  169. package/build/_modules/ai/_modules/open-ai/_services/data-services/oai-document.data-service.d.ts +22 -22
  170. package/build/_modules/ai/_modules/open-ai/_services/data-services/oai-document.data-service.js +322 -322
  171. package/build/_modules/ai/_modules/open-ai/_services/data-services/oai-vector-data.service.d.ts +119 -119
  172. package/build/_modules/ai/_modules/open-ai/_services/data-services/oai-vector-data.service.js +480 -480
  173. package/build/_modules/ai/_modules/open-ai/_services/oai-embedding.control-service.d.ts +25 -25
  174. package/build/_modules/ai/_modules/open-ai/_services/oai-embedding.control-service.js +103 -103
  175. package/build/_modules/ai/_modules/open-ai/_services/oai-llm-chat.service-base.d.ts +169 -169
  176. package/build/_modules/ai/_modules/open-ai/_services/oai-llm-chat.service-base.js +479 -479
  177. package/build/_modules/ai/_modules/open-ai/_services/oai-llm.service-base.d.ts +201 -201
  178. package/build/_modules/ai/_modules/open-ai/_services/oai-llm.service-base.js +579 -579
  179. package/build/_modules/ai/_modules/open-ai/_services/oai-user-key.control-service.d.ts +39 -39
  180. package/build/_modules/ai/_modules/open-ai/_services/oai-user-key.control-service.js +110 -110
  181. package/build/_modules/ai/_modules/open-ai/index.d.ts +14 -14
  182. package/build/_modules/ai/_modules/open-ai/index.js +55 -55
  183. package/build/_modules/ai/_services/ai-embedding-mock.service.d.ts +80 -80
  184. package/build/_modules/ai/_services/ai-embedding-mock.service.js +166 -166
  185. package/build/_modules/ai/_services/ai-embedding-provider.registry.d.ts +51 -51
  186. package/build/_modules/ai/_services/ai-embedding-provider.registry.js +78 -78
  187. package/build/_modules/ai/_services/ai-embedding.service-base.d.ts +41 -41
  188. package/build/_modules/ai/_services/ai-embedding.service-base.js +11 -11
  189. package/build/_modules/ai/_services/ai-llm-chat.service-base.d.ts +39 -39
  190. package/build/_modules/ai/_services/ai-llm-chat.service-base.js +11 -11
  191. package/build/_modules/ai/_services/ai-llm.service-base.d.ts +132 -132
  192. package/build/_modules/ai/_services/ai-llm.service-base.js +313 -313
  193. package/build/_modules/ai/_services/ai-provider.service-base.d.ts +46 -46
  194. package/build/_modules/ai/_services/ai-provider.service-base.js +43 -43
  195. package/build/_modules/ai/_services/ai-user-key.service-base.d.ts +44 -44
  196. package/build/_modules/ai/_services/ai-user-key.service-base.js +14 -14
  197. package/build/_modules/ai/_services/lmstudio-embedding.control-service.d.ts +110 -110
  198. package/build/_modules/ai/_services/lmstudio-embedding.control-service.js +297 -297
  199. package/build/_modules/ai/index.d.ts +13 -13
  200. package/build/_modules/ai/index.js +22 -22
  201. package/build/_modules/assistant/_collections/ass-global-settings.const.d.ts +2 -2
  202. package/build/_modules/assistant/_collections/ass-global-settings.const.js +14 -14
  203. package/build/_modules/assistant/_collections/ass.util.d.ts +15 -15
  204. package/build/_modules/assistant/_collections/ass.util.js +42 -42
  205. package/build/_modules/assistant/_models/ass-global-settings.interface.d.ts +13 -13
  206. package/build/_modules/assistant/_models/ass-global-settings.interface.js +2 -2
  207. package/build/_modules/assistant/_services/ass-io.control-service.d.ts +19 -19
  208. package/build/_modules/assistant/_services/ass-io.control-service.js +57 -57
  209. package/build/_modules/assistant/_services/ass-main.control-service.d.ts +32 -32
  210. package/build/_modules/assistant/_services/ass-main.control-service.js +65 -65
  211. package/build/_modules/assistant/index.d.ts +6 -6
  212. package/build/_modules/assistant/index.js +18 -18
  213. package/build/_modules/bot/_collections/bot-default-commands.const.d.ts +2 -2
  214. package/build/_modules/bot/_collections/bot-default-commands.const.js +13 -13
  215. package/build/_modules/bot/_collections/bot-global-settings.const.d.ts +2 -2
  216. package/build/_modules/bot/_collections/bot-global-settings.const.js +31 -31
  217. package/build/_modules/bot/_models/bot-channel-wrapper.interface.d.ts +25 -25
  218. package/build/_modules/bot/_models/bot-channel-wrapper.interface.js +38 -38
  219. package/build/_modules/bot/_models/bot-command.interface.d.ts +7 -7
  220. package/build/_modules/bot/_models/bot-command.interface.js +2 -2
  221. package/build/_modules/bot/_models/bot-global-settings.interface.d.ts +85 -85
  222. package/build/_modules/bot/_models/bot-global-settings.interface.js +2 -2
  223. package/build/_modules/bot/_models/bot-last-mention-date.interface.d.ts +6 -6
  224. package/build/_modules/bot/_models/bot-last-mention-date.interface.js +2 -2
  225. package/build/_modules/bot/_models/bot-last-message-date.interface.d.ts +5 -5
  226. package/build/_modules/bot/_models/bot-last-message-date.interface.js +2 -2
  227. package/build/_modules/bot/_models/bot-message-wrapper.interface.d.ts +37 -37
  228. package/build/_modules/bot/_models/bot-message-wrapper.interface.js +54 -54
  229. package/build/_modules/bot/_models/bot-user-wrapper.interface.d.ts +23 -23
  230. package/build/_modules/bot/_models/bot-user-wrapper.interface.js +28 -28
  231. package/build/_modules/bot/_modules/discord-bot/_models/dib-platform.types.js +10 -10
  232. package/build/_modules/bot/_modules/discord-bot/_services/dib-messaging-provider.control-service.d.ts +69 -69
  233. package/build/_modules/bot/_modules/discord-bot/_services/dib-messaging-provider.control-service.js +497 -497
  234. package/build/_modules/bot/_modules/discord-bot/index.d.ts +1 -1
  235. package/build/_modules/bot/_modules/discord-bot/index.js +12 -12
  236. package/build/_modules/bot/_modules/dynamo-bot/_collections/dyb-operations.util.d.ts +16 -16
  237. package/build/_modules/bot/_modules/dynamo-bot/_collections/dyb-operations.util.js +42 -42
  238. package/build/_modules/bot/_modules/dynamo-bot/_models/dyb-platform.types.d.ts +9 -9
  239. package/build/_modules/bot/_modules/dynamo-bot/_models/dyb-platform.types.js +2 -2
  240. package/build/_modules/bot/_modules/dynamo-bot/_services/dyb-messaging-provider.control-service.d.ts +59 -59
  241. package/build/_modules/bot/_modules/dynamo-bot/_services/dyb-messaging-provider.control-service.js +349 -349
  242. package/build/_modules/bot/_modules/dynamo-bot/index.d.ts +3 -3
  243. package/build/_modules/bot/_modules/dynamo-bot/index.js +15 -15
  244. package/build/_modules/bot/_modules/slack-bot/_models/slb-platform.types.d.ts +6 -6
  245. package/build/_modules/bot/_modules/slack-bot/_models/slb-platform.types.js +2 -2
  246. package/build/_modules/bot/_modules/slack-bot/_services/slb-messaging-provider.control-service.d.ts +56 -56
  247. package/build/_modules/bot/_modules/slack-bot/_services/slb-messaging-provider.control-service.js +137 -137
  248. package/build/_modules/bot/_modules/slack-bot/index.d.ts +2 -2
  249. package/build/_modules/bot/_modules/slack-bot/index.js +12 -12
  250. package/build/_modules/bot/_modules/teams-bot/_models/teb-platform.types.d.ts +6 -6
  251. package/build/_modules/bot/_modules/teams-bot/_models/teb-platform.types.js +2 -2
  252. package/build/_modules/bot/_modules/teams-bot/_services/teb-messaging-provider.control-service.d.ts +56 -56
  253. package/build/_modules/bot/_modules/teams-bot/_services/teb-messaging-provider.control-service.js +137 -137
  254. package/build/_modules/bot/_modules/teams-bot/index.d.ts +2 -2
  255. package/build/_modules/bot/_modules/teams-bot/index.js +12 -12
  256. package/build/_modules/bot/_services/bot-commands.control-service.d.ts +12 -12
  257. package/build/_modules/bot/_services/bot-commands.control-service.js +117 -117
  258. package/build/_modules/bot/_services/bot-io.control-service.d.ts +23 -23
  259. package/build/_modules/bot/_services/bot-io.control-service.js +226 -226
  260. package/build/_modules/bot/_services/bot-main.control-service.d.ts +35 -35
  261. package/build/_modules/bot/_services/bot-main.control-service.js +195 -195
  262. package/build/_modules/bot/_services/bot-messaging-provider.service-base.d.ts +71 -71
  263. package/build/_modules/bot/_services/bot-messaging-provider.service-base.js +15 -15
  264. package/build/_modules/bot/_services/bot-routines.control-service.d.ts +13 -13
  265. package/build/_modules/bot/_services/bot-routines.control-service.js +59 -59
  266. package/build/_modules/bot/index.d.ts +17 -17
  267. package/build/_modules/bot/index.js +36 -36
  268. package/build/_modules/custom-data/custom-data.controller.d.ts +5 -5
  269. package/build/_modules/custom-data/custom-data.controller.js +56 -56
  270. package/build/_modules/custom-data/custom-data.data-service.d.ts +5 -5
  271. package/build/_modules/custom-data/custom-data.data-service.js +11 -11
  272. package/build/_modules/custom-data/get-custom-data-routing-module.util.d.ts +3 -3
  273. package/build/_modules/custom-data/get-custom-data-routing-module.util.js +16 -16
  274. package/build/_modules/custom-data/index.d.ts +4 -4
  275. package/build/_modules/custom-data/index.js +9 -9
  276. package/build/_modules/data-readers/_collections/dynts-sqlite-reader.util.d.ts +58 -58
  277. package/build/_modules/data-readers/_collections/dynts-sqlite-reader.util.js +168 -168
  278. package/build/_modules/data-readers/_models/interfaces/dynts-sqlite-reader.interface.d.ts +31 -31
  279. package/build/_modules/data-readers/_models/interfaces/dynts-sqlite-reader.interface.js +7 -7
  280. package/build/_modules/data-readers/index.d.ts +2 -2
  281. package/build/_modules/data-readers/index.js +10 -10
  282. package/build/_modules/defaults/_collections/default-endpoints.util.d.ts +248 -248
  283. package/build/_modules/defaults/_collections/default-endpoints.util.js +386 -386
  284. package/build/_modules/defaults/_models/default-user.data-model.d.ts +19 -19
  285. package/build/_modules/defaults/_models/default-user.data-model.js +72 -72
  286. package/build/_modules/defaults/_services/default-auth.service.d.ts +50 -50
  287. package/build/_modules/defaults/_services/default-auth.service.js +158 -158
  288. package/build/_modules/defaults/_services/default-socket-events.service.d.ts +23 -23
  289. package/build/_modules/defaults/_services/default-socket-events.service.js +60 -60
  290. package/build/_modules/defaults/_services/default-user.data-service.d.ts +24 -24
  291. package/build/_modules/defaults/_services/default-user.data-service.js +87 -87
  292. package/build/_modules/defaults/index.d.ts +5 -5
  293. package/build/_modules/defaults/index.js +17 -17
  294. package/build/_modules/discord-assistant/_collections/dias-global-settings.const.d.ts +2 -2
  295. package/build/_modules/discord-assistant/_collections/dias-global-settings.const.js +16 -16
  296. package/build/_modules/discord-assistant/_collections/dias.util.d.ts +31 -31
  297. package/build/_modules/discord-assistant/_collections/dias.util.js +85 -85
  298. package/build/_modules/discord-assistant/_models/dias-global-settings.interface.d.ts +17 -17
  299. package/build/_modules/discord-assistant/_models/dias-global-settings.interface.js +2 -2
  300. package/build/_modules/discord-assistant/_models/dias-knowledge.data-model.d.ts +8 -8
  301. package/build/_modules/discord-assistant/_models/dias-knowledge.data-model.js +46 -46
  302. package/build/_modules/discord-assistant/_services/dias-chunk.data-service.d.ts +17 -17
  303. package/build/_modules/discord-assistant/_services/dias-chunk.data-service.js +123 -123
  304. package/build/_modules/discord-assistant/_services/dias-io.control-service.d.ts +10 -10
  305. package/build/_modules/discord-assistant/_services/dias-io.control-service.js +49 -49
  306. package/build/_modules/discord-assistant/_services/dias-main.control-service.d.ts +3 -3
  307. package/build/_modules/discord-assistant/_services/dias-main.control-service.js +7 -7
  308. package/build/_modules/discord-assistant/_services/dias.service-base.d.ts +18 -18
  309. package/build/_modules/discord-assistant/_services/dias.service-base.js +46 -46
  310. package/build/_modules/discord-assistant/index.d.ts +11 -11
  311. package/build/_modules/discord-assistant/index.js +24 -24
  312. package/build/_modules/discord-assistant-voiced/_services/dias-discord-bot.control-service.d.ts +3 -3
  313. package/build/_modules/discord-assistant-voiced/_services/dias-discord-bot.control-service.js +7 -7
  314. package/build/_modules/discord-assistant-voiced/index.d.ts +2 -2
  315. package/build/_modules/discord-assistant-voiced/index.js +28 -28
  316. package/build/_modules/discord-bot/_collections/dibo-default-commands.const.d.ts +2 -2
  317. package/build/_modules/discord-bot/_collections/dibo-default-commands.const.js +12 -12
  318. package/build/_modules/discord-bot/_collections/dibo-global-settings.conts.d.ts +2 -2
  319. package/build/_modules/discord-bot/_collections/dibo-global-settings.conts.js +43 -43
  320. package/build/_modules/discord-bot/_collections/dibo-operations.util.d.ts +22 -22
  321. package/build/_modules/discord-bot/_collections/dibo-operations.util.js +275 -275
  322. package/build/_modules/discord-bot/_models/dibo-command.interface.d.ts +7 -7
  323. package/build/_modules/discord-bot/_models/dibo-command.interface.js +2 -2
  324. package/build/_modules/discord-bot/_models/dibo-global-settings.interface.d.ts +87 -87
  325. package/build/_modules/discord-bot/_models/dibo-global-settings.interface.js +2 -2
  326. package/build/_modules/discord-bot/_models/dibo-last-mention-date.inteface.d.ts +6 -6
  327. package/build/_modules/discord-bot/_models/dibo-last-mention-date.inteface.js +2 -2
  328. package/build/_modules/discord-bot/_models/dibo-last-message-date.interface.d.ts +5 -5
  329. package/build/_modules/discord-bot/_models/dibo-last-message-date.interface.js +2 -2
  330. package/build/_modules/discord-bot/_services/dibo-commands.control-service.d.ts +11 -11
  331. package/build/_modules/discord-bot/_services/dibo-commands.control-service.js +109 -109
  332. package/build/_modules/discord-bot/_services/dibo-io.control-service.d.ts +21 -21
  333. package/build/_modules/discord-bot/_services/dibo-io.control-service.js +218 -218
  334. package/build/_modules/discord-bot/_services/dibo-main.control-service.d.ts +89 -89
  335. package/build/_modules/discord-bot/_services/dibo-main.control-service.js +363 -363
  336. package/build/_modules/discord-bot/_services/dibo-routines.control-service.d.ts +13 -13
  337. package/build/_modules/discord-bot/_services/dibo-routines.control-service.js +73 -73
  338. package/build/_modules/discord-bot/index.d.ts +11 -11
  339. package/build/_modules/discord-bot/index.js +30 -30
  340. package/build/_modules/local-vector-search/_enums/lvs-search-mode.enum.d.ts +34 -34
  341. package/build/_modules/local-vector-search/_enums/lvs-search-mode.enum.js +38 -38
  342. package/build/_modules/local-vector-search/_models/data-models/lvs-vector-persist.data-model.d.ts +35 -35
  343. package/build/_modules/local-vector-search/_models/data-models/lvs-vector-persist.data-model.js +53 -53
  344. package/build/_modules/local-vector-search/_models/lvs-search-result.interface.d.ts +16 -16
  345. package/build/_modules/local-vector-search/_models/lvs-search-result.interface.js +2 -2
  346. package/build/_modules/local-vector-search/_services/lvs-bm25.util.d.ts +88 -88
  347. package/build/_modules/local-vector-search/_services/lvs-bm25.util.js +189 -189
  348. package/build/_modules/local-vector-search/_services/lvs-doc-chunk-data.service.d.ts +26 -26
  349. package/build/_modules/local-vector-search/_services/lvs-doc-chunk-data.service.js +197 -197
  350. package/build/_modules/local-vector-search/_services/lvs-local-vector-search.data-service.d.ts +145 -145
  351. package/build/_modules/local-vector-search/_services/lvs-local-vector-search.data-service.js +294 -294
  352. package/build/_modules/local-vector-search/_services/lvs-persistent-vector-pool.control-service.d.ts +69 -69
  353. package/build/_modules/local-vector-search/_services/lvs-persistent-vector-pool.control-service.js +122 -122
  354. package/build/_modules/local-vector-search/_services/lvs-vector-persist.data-service.d.ts +42 -42
  355. package/build/_modules/local-vector-search/_services/lvs-vector-persist.data-service.js +71 -71
  356. package/build/_modules/local-vector-search/_services/lvs-vector-pool.control-service.d.ts +70 -70
  357. package/build/_modules/local-vector-search/_services/lvs-vector-pool.control-service.d.ts.map +1 -1
  358. package/build/_modules/local-vector-search/_services/lvs-vector-pool.control-service.js +187 -181
  359. package/build/_modules/local-vector-search/_services/lvs-vector-pool.control-service.js.map +1 -1
  360. package/build/_modules/local-vector-search/index.d.ts +8 -8
  361. package/build/_modules/local-vector-search/index.js +15 -15
  362. package/build/_modules/logs/_models/file-log-entry.interface.d.ts +13 -13
  363. package/build/_modules/logs/_models/file-log-entry.interface.js +2 -2
  364. package/build/_modules/logs/_models/file-log-read-result.interface.d.ts +35 -35
  365. package/build/_modules/logs/_models/file-log-read-result.interface.js +2 -2
  366. package/build/_modules/logs/file-log.service.d.ts +132 -132
  367. package/build/_modules/logs/file-log.service.js +444 -444
  368. package/build/_modules/logs/file-logs.controller.d.ts +40 -40
  369. package/build/_modules/logs/file-logs.controller.js +138 -138
  370. package/build/_modules/logs/get-file-logs-routing-module.util.d.ts +31 -31
  371. package/build/_modules/logs/get-file-logs-routing-module.util.js +37 -37
  372. package/build/_modules/logs/get-logs-routing-module.util.d.ts +18 -18
  373. package/build/_modules/logs/get-logs-routing-module.util.js +31 -31
  374. package/build/_modules/logs/index.d.ts +8 -8
  375. package/build/_modules/logs/index.js +15 -15
  376. package/build/_modules/logs/log-buffer.service.d.ts +37 -37
  377. package/build/_modules/logs/log-buffer.service.js +96 -96
  378. package/build/_modules/logs/logs.controller.d.ts +26 -26
  379. package/build/_modules/logs/logs.controller.js +89 -89
  380. package/build/_modules/logs/logs.service.d.ts +39 -39
  381. package/build/_modules/logs/logs.service.js +96 -96
  382. package/build/_modules/mcp/_models/interfaces/dynts-mcp.interface.d.ts +108 -108
  383. package/build/_modules/mcp/_models/interfaces/dynts-mcp.interface.js +13 -13
  384. package/build/_modules/mcp/_services/dynts-mcp-server.service-base.d.ts +70 -70
  385. package/build/_modules/mcp/_services/dynts-mcp-server.service-base.js +98 -98
  386. package/build/_modules/mcp/_services/dynts-mcp.adapter.d.ts +56 -56
  387. package/build/_modules/mcp/_services/dynts-mcp.adapter.js +138 -138
  388. package/build/_modules/mcp/index.d.ts +3 -3
  389. package/build/_modules/mcp/index.js +12 -12
  390. package/build/_modules/messaging/_collections/get-messaging-routing-module.util.d.ts +7 -7
  391. package/build/_modules/messaging/_collections/get-messaging-routing-module.util.js +20 -20
  392. package/build/_modules/messaging/_collections/msg-global-settings.const.d.ts +5 -5
  393. package/build/_modules/messaging/_collections/msg-global-settings.const.js +22 -22
  394. package/build/_modules/messaging/_collections/msg.util.d.ts +24 -24
  395. package/build/_modules/messaging/_collections/msg.util.js +62 -62
  396. package/build/_modules/messaging/_models/msg-global-settings.interface.d.ts +28 -28
  397. package/build/_modules/messaging/_models/msg-global-settings.interface.js +2 -2
  398. package/build/_modules/messaging/_services/msg-conversation.data-service.d.ts +28 -28
  399. package/build/_modules/messaging/_services/msg-conversation.data-service.js +109 -109
  400. package/build/_modules/messaging/_services/msg-events.service.d.ts +61 -61
  401. package/build/_modules/messaging/_services/msg-events.service.js +203 -203
  402. package/build/_modules/messaging/_services/msg-integration.control-service.js +180 -180
  403. package/build/_modules/messaging/_services/msg-main.control-service.d.ts +62 -62
  404. package/build/_modules/messaging/_services/msg-main.control-service.js +428 -428
  405. package/build/_modules/messaging/_services/msg-message.data-service.d.ts +28 -28
  406. package/build/_modules/messaging/_services/msg-message.data-service.js +103 -103
  407. package/build/_modules/messaging/_services/msg.controller.d.ts +12 -12
  408. package/build/_modules/messaging/_services/msg.controller.js +256 -256
  409. package/build/_modules/messaging/index.d.ts +10 -10
  410. package/build/_modules/messaging/index.js +27 -27
  411. package/build/_modules/mock/app-extended-server.mock.d.ts +41 -41
  412. package/build/_modules/mock/app-extended-server.mock.js +169 -169
  413. package/build/_modules/mock/app-integration-test.mock.d.ts +19 -19
  414. package/build/_modules/mock/app-integration-test.mock.js +45 -45
  415. package/build/_modules/mock/app-params.mock.d.ts +2 -2
  416. package/build/_modules/mock/app-params.mock.js +9 -9
  417. package/build/_modules/mock/app-server.mock.d.ts +41 -41
  418. package/build/_modules/mock/app-server.mock.js +148 -148
  419. package/build/_modules/mock/auth-service.mock.d.ts +10 -10
  420. package/build/_modules/mock/auth-service.mock.js +19 -19
  421. package/build/_modules/mock/controller.mock.d.ts +5 -5
  422. package/build/_modules/mock/controller.mock.js +14 -14
  423. package/build/_modules/mock/data-model.mock.d.ts +26 -26
  424. package/build/_modules/mock/data-model.mock.js +72 -72
  425. package/build/_modules/mock/email-service-collection.mock.d.ts +7 -7
  426. package/build/_modules/mock/email-service-collection.mock.js +12 -12
  427. package/build/_modules/mock/email-service.mock.d.ts +4 -4
  428. package/build/_modules/mock/email-service.mock.js +20 -20
  429. package/build/_modules/mock/endpoint.mock.d.ts +8 -8
  430. package/build/_modules/mock/endpoint.mock.js +79 -79
  431. package/build/_modules/mock/socket-client.mock.d.ts +9 -9
  432. package/build/_modules/mock/socket-client.mock.js +38 -38
  433. package/build/_modules/mock/socket-server.mock.d.ts +15 -15
  434. package/build/_modules/mock/socket-server.mock.js +32 -32
  435. package/build/_modules/oauth2/_routes/oauth2.controller.d.ts +16 -16
  436. package/build/_modules/oauth2/_routes/oauth2.controller.js +96 -96
  437. package/build/_modules/oauth2/_services/oauth2.auth-service.d.ts +30 -30
  438. package/build/_modules/oauth2/_services/oauth2.auth-service.js +215 -215
  439. package/build/_modules/oauth2/_services/oauth2.control-service.d.ts +132 -132
  440. package/build/_modules/oauth2/_services/oauth2.control-service.js +576 -576
  441. package/build/_modules/oauth2/index.d.ts +3 -3
  442. package/build/_modules/oauth2/index.js +14 -14
  443. package/build/_modules/rate-limit/_models/rate-limit-config.interface.d.ts +61 -61
  444. package/build/_modules/rate-limit/_models/rate-limit-config.interface.js +2 -2
  445. package/build/_modules/rate-limit/_models/rate-limit-policy.interface.d.ts +15 -15
  446. package/build/_modules/rate-limit/_models/rate-limit-policy.interface.js +2 -2
  447. package/build/_modules/rate-limit/index.d.ts +3 -3
  448. package/build/_modules/rate-limit/index.js +5 -5
  449. package/build/_modules/rate-limit/rate-limit.middleware.d.ts +132 -132
  450. package/build/_modules/rate-limit/rate-limit.middleware.js +289 -289
  451. package/build/_modules/scoped-config/_enums/dynts-scoped-config-level.enum.d.ts +18 -18
  452. package/build/_modules/scoped-config/_enums/dynts-scoped-config-level.enum.js +22 -22
  453. package/build/_modules/scoped-config/_models/data-models/dynts-scoped-config.data-model.d.ts +43 -43
  454. package/build/_modules/scoped-config/_models/data-models/dynts-scoped-config.data-model.js +67 -67
  455. package/build/_modules/scoped-config/_models/interfaces/dynts-scoped-config.interface.d.ts +88 -88
  456. package/build/_modules/scoped-config/_models/interfaces/dynts-scoped-config.interface.js +11 -11
  457. package/build/_modules/scoped-config/_services/dynts-scoped-config.control-service.d.ts +83 -83
  458. package/build/_modules/scoped-config/_services/dynts-scoped-config.control-service.js +219 -219
  459. package/build/_modules/scoped-config/_services/dynts-scoped-config.data-service.d.ts +53 -53
  460. package/build/_modules/scoped-config/_services/dynts-scoped-config.data-service.js +75 -75
  461. package/build/_modules/scoped-config/index.d.ts +5 -5
  462. package/build/_modules/scoped-config/index.js +14 -14
  463. package/build/_modules/server/errors/errors.control-service.d.ts +21 -21
  464. package/build/_modules/server/errors/errors.control-service.js +10 -10
  465. package/build/_modules/server/errors/errors.controller.d.ts +100 -100
  466. package/build/_modules/server/errors/errors.controller.js +355 -355
  467. package/build/_modules/server/errors/errors.data-service.d.ts +64 -64
  468. package/build/_modules/server/errors/errors.data-service.js +628 -628
  469. package/build/_modules/server/index.d.ts +7 -7
  470. package/build/_modules/server/index.js +26 -26
  471. package/build/_modules/server/server-status/server-status-snapshot.control-service.d.ts +4 -4
  472. package/build/_modules/server/server-status/server-status-snapshot.control-service.js +7 -7
  473. package/build/_modules/server/server-status/server-status-snapshot.data-service.d.ts +6 -6
  474. package/build/_modules/server/server-status/server-status-snapshot.data-service.js +22 -22
  475. package/build/_modules/server/server-status/server-status.control-service.d.ts +74 -74
  476. package/build/_modules/server/server-status/server-status.control-service.js +234 -234
  477. package/build/_modules/server/server-status/server-status.controller.d.ts +84 -84
  478. package/build/_modules/server/server-status/server-status.controller.js +172 -172
  479. package/build/_modules/socket/_enums/socket-security.enum.d.ts +10 -10
  480. package/build/_modules/socket/_enums/socket-security.enum.js +14 -14
  481. package/build/_modules/socket/_models/socket-client-service-params.control-model.d.ts +8 -8
  482. package/build/_modules/socket/_models/socket-client-service-params.control-model.js +16 -16
  483. package/build/_modules/socket/_models/socket-presence.control-model.d.ts +25 -25
  484. package/build/_modules/socket/_models/socket-presence.control-model.js +139 -139
  485. package/build/_modules/socket/_models/socket-server-service-params.control-model.d.ts +12 -12
  486. package/build/_modules/socket/_models/socket-server-service-params.control-model.js +20 -20
  487. package/build/_modules/socket/_services/socket-client.service.d.ts +37 -37
  488. package/build/_modules/socket/_services/socket-client.service.js +196 -196
  489. package/build/_modules/socket/_services/socket-server.service.d.ts +94 -94
  490. package/build/_modules/socket/_services/socket-server.service.js +689 -689
  491. package/build/_modules/socket/app-extended.server.d.ts +145 -145
  492. package/build/_modules/socket/app-extended.server.js +506 -506
  493. package/build/_modules/socket/index.d.ts +8 -8
  494. package/build/_modules/socket/index.js +35 -35
  495. package/build/_modules/test/get-test-routing-module.util.d.ts +3 -3
  496. package/build/_modules/test/get-test-routing-module.util.js +16 -16
  497. package/build/_modules/test/index.d.ts +3 -3
  498. package/build/_modules/test/index.js +11 -11
  499. package/build/_modules/test/test.controller.d.ts +5 -5
  500. package/build/_modules/test/test.controller.js +103 -103
  501. package/build/_modules/usage/get-usage-routing-module.util.d.ts +3 -3
  502. package/build/_modules/usage/get-usage-routing-module.util.js +16 -16
  503. package/build/_modules/usage/index.d.ts +4 -4
  504. package/build/_modules/usage/index.js +13 -13
  505. package/build/_modules/usage/usage.controller.d.ts +6 -6
  506. package/build/_modules/usage/usage.controller.js +95 -95
  507. package/build/_modules/usage/usage.data-service.d.ts +17 -17
  508. package/build/_modules/usage/usage.data-service.js +135 -135
  509. package/build/_services/base/api.service-base.d.ts +9 -9
  510. package/build/_services/base/api.service-base.js +46 -46
  511. package/build/_services/base/archive-data.service.d.ts +25 -25
  512. package/build/_services/base/archive-data.service.js +140 -140
  513. package/build/_services/base/data.service.d.ts +381 -381
  514. package/build/_services/base/data.service.js +2068 -2068
  515. package/build/_services/base/db.service.d.ts +393 -393
  516. package/build/_services/base/db.service.js +1256 -1256
  517. package/build/_services/base/singleton.service-base.d.ts +8 -8
  518. package/build/_services/base/singleton.service-base.js +21 -21
  519. package/build/_services/base/singleton.service.d.ts +11 -11
  520. package/build/_services/base/singleton.service.js +31 -31
  521. package/build/_services/core/api.service.d.ts +45 -45
  522. package/build/_services/core/api.service.js +436 -436
  523. package/build/_services/core/auth.service.d.ts +129 -129
  524. package/build/_services/core/auth.service.js +59 -59
  525. package/build/_services/core/email.service.d.ts +77 -77
  526. package/build/_services/core/email.service.js +489 -489
  527. package/build/_services/core/global.service.d.ts +76 -76
  528. package/build/_services/core/global.service.js +370 -370
  529. package/build/_services/core/memory-guard.service.d.ts +110 -110
  530. package/build/_services/core/memory-guard.service.js +197 -197
  531. package/build/_services/core/service-collection.service.d.ts +4 -4
  532. package/build/_services/core/service-collection.service.js +7 -7
  533. package/build/_services/route/controller.service.d.ts +124 -124
  534. package/build/_services/route/controller.service.js +95 -95
  535. package/build/_services/route/routing-module.service.d.ts +80 -80
  536. package/build/_services/route/routing-module.service.js +250 -250
  537. package/build/_services/server/app.server.d.ts +352 -352
  538. package/build/_services/server/app.server.js +1323 -1323
  539. package/build/_services/shared.static-service.d.ts +36 -36
  540. package/build/_services/shared.static-service.js +72 -72
  541. package/build/index.d.ts +43 -43
  542. package/build/index.js +80 -80
  543. package/eslint.config.js +3 -3
  544. package/nodemon.json +24 -24
  545. package/package.json +417 -416
  546. package/pnpm-workspace.yaml +5 -5
  547. package/scripts/run-coverage-tests.js +28 -28
  548. package/spec/support/helpers/spec-reporter-loader.js +359 -359
  549. package/spec/support/helpers/ts-node-helper.js +93 -93
  550. package/spec/support/jasmine.coverage.json +24 -24
  551. package/spec/support/jasmine.json +24 -24
  552. package/src/_collections/archive.util.spec.ts +57 -57
  553. package/src/_collections/archive.util.ts +18 -18
  554. package/src/_collections/atlas-default-db-options.const.ts +9 -9
  555. package/src/_collections/default-fallback-cache-max-age.const.spec.ts +11 -11
  556. package/src/_collections/default-fallback-cache-max-age.const.ts +2 -2
  557. package/src/_collections/default-not-found-page.const.spec.ts +19 -19
  558. package/src/_collections/default-not-found-page.const.ts +22 -22
  559. package/src/_collections/default-socket-path.const.spec.ts +12 -12
  560. package/src/_collections/default-socket-path.const.ts +2 -2
  561. package/src/_collections/get-environment-settings.util.spec.ts +210 -210
  562. package/src/_collections/get-environment-settings.util.ts +48 -48
  563. package/src/_collections/global-settings.const.ts +89 -89
  564. package/src/_collections/mongo-reconnect-guard.util.spec.ts +52 -52
  565. package/src/_collections/mongo-reconnect-guard.util.ts +172 -172
  566. package/src/_collections/sample.env +21 -21
  567. package/src/_collections/star.controller.spec.ts +224 -224
  568. package/src/_collections/star.controller.ts +129 -129
  569. package/src/_enums/data-model-type.enum.ts +14 -14
  570. package/src/_enums/data-service-function.enum.ts +24 -24
  571. package/src/_enums/predefined-data-types.enum.ts +16 -16
  572. package/src/_enums/route-security.enum.ts +12 -12
  573. package/src/_models/control-models/api-call-params.control-model.spec.ts +152 -152
  574. package/src/_models/control-models/api-call-params.control-model.ts +142 -142
  575. package/src/_models/control-models/app-ext-system-controls.control-model.spec.ts +52 -52
  576. package/src/_models/control-models/app-ext-system-controls.control-model.ts +9 -9
  577. package/src/_models/control-models/app-params.control-model.spec.ts +225 -225
  578. package/src/_models/control-models/app-params.control-model.ts +136 -136
  579. package/src/_models/control-models/app-system-controls.control-model.spec.ts +31 -31
  580. package/src/_models/control-models/app-system-controls.control-model.ts +9 -9
  581. package/src/_models/control-models/endpoint-params.control-model.spec.ts +627 -627
  582. package/src/_models/control-models/endpoint-params.control-model.ts +627 -627
  583. package/src/_models/control-models/http-settings.control-model.spec.ts +77 -77
  584. package/src/_models/control-models/http-settings.control-model.ts +37 -37
  585. package/src/_models/control-models/system-control.control-model.spec.ts +27 -27
  586. package/src/_models/control-models/system-control.control-model.ts +12 -12
  587. package/src/_models/interfaces/certification-settings.interface.ts +7 -7
  588. package/src/_models/interfaces/compare-data-options.interface.ts +27 -27
  589. package/src/_models/interfaces/compare-data-result.interface.ts +12 -12
  590. package/src/_models/interfaces/cors-settings.interface.spec.ts +52 -52
  591. package/src/_models/interfaces/cors-settings.interface.ts +56 -56
  592. package/src/_models/interfaces/environment-settings.interface.ts +59 -59
  593. package/src/_models/interfaces/global-log-settings.interface.ts +171 -171
  594. package/src/_models/interfaces/global-service-settings.interface.ts +47 -47
  595. package/src/_models/interfaces/global-settings.interface.ts +185 -185
  596. package/src/_models/interfaces/routing-module-settings.interface.ts +21 -21
  597. package/src/_models/interfaces/static-client-settings.interface.spec.ts +29 -29
  598. package/src/_models/interfaces/static-client-settings.interface.ts +28 -28
  599. package/src/_models/types/db-update.type.ts +100 -100
  600. package/src/_modules/admin-auth/_models/admin-api-key-config.interface.ts +33 -33
  601. package/src/_modules/admin-auth/admin-api-key.auth-service.spec.ts +200 -200
  602. package/src/_modules/admin-auth/admin-api-key.auth-service.ts +220 -220
  603. package/src/_modules/admin-auth/index.ts +2 -2
  604. package/src/_modules/ai/_models/ai-input-interfaces.ts +117 -117
  605. package/src/_modules/ai/_models/ai-test-generation-result.interface.ts +16 -16
  606. package/src/_modules/ai/_models/interfaces/dynts-ai-cost-event-callback.interface.ts +14 -14
  607. package/src/_modules/ai/_models/interfaces/dynts-ai-cost-event.interface.ts +56 -56
  608. package/src/_modules/ai/_modules/anthropic/_services/aai-user-key.control-service.ts +138 -138
  609. package/src/_modules/ai/_modules/anthropic/index.ts +5 -5
  610. package/src/_modules/ai/_modules/document-ai/_collections/dai-chunking.util.spec.ts +242 -242
  611. package/src/_modules/ai/_modules/document-ai/_collections/dai-chunking.util.ts +639 -639
  612. package/src/_modules/ai/_modules/document-ai/_collections/dai-code-chunking.util.spec.ts +295 -295
  613. package/src/_modules/ai/_modules/document-ai/_collections/dai-code-chunking.util.ts +552 -552
  614. package/src/_modules/ai/_modules/document-ai/_collections/dai-document.util.spec.ts +209 -209
  615. package/src/_modules/ai/_modules/document-ai/_collections/dai-document.util.ts +85 -85
  616. package/src/_modules/ai/_modules/document-ai/_enums/dai-compare-result-type.enum.ts +7 -7
  617. package/src/_modules/ai/_modules/document-ai/_models/data-models/dai-doc-chunk.data-model.ts +146 -146
  618. package/src/_modules/ai/_modules/document-ai/_models/data-models/dai-doc-page.data-model.ts +162 -162
  619. package/src/_modules/ai/_modules/document-ai/_models/data-models/dai-document.data-model.ts +99 -99
  620. package/src/_modules/ai/_modules/document-ai/_models/interfaces/dai-code-chunk.interface.ts +68 -68
  621. package/src/_modules/ai/_modules/document-ai/_models/interfaces/dai-doc-chunk-compare-result.interface.ts +18 -18
  622. package/src/_modules/ai/_modules/document-ai/_models/interfaces/dai-doc-page-compare-result.interface.ts +19 -19
  623. package/src/_modules/ai/_modules/document-ai/_models/interfaces/dai-document-compare-result.interface.ts +25 -25
  624. package/src/_modules/ai/_modules/document-ai/index.ts +30 -30
  625. package/src/_modules/ai/_modules/fdp-ai/_services/fdpai-user-key.control-service.ts +189 -189
  626. package/src/_modules/ai/_modules/fdp-ai/index.ts +5 -5
  627. package/src/_modules/ai/_modules/open-ai/_collections/oai-global-settings.const.ts +9 -9
  628. package/src/_modules/ai/_modules/open-ai/_collections/oai-llm-predefined-requests-hu.conts.ts +82 -82
  629. package/src/_modules/ai/_modules/open-ai/_collections/oai-llm-predefined-requests.conts.ts +75 -75
  630. package/src/_modules/ai/_modules/open-ai/_enums/oai-gpt-message-role.enum.ts +45 -45
  631. package/src/_modules/ai/_modules/open-ai/_models/interfaces/oai-global-settings.interface.ts +7 -7
  632. package/src/_modules/ai/_modules/open-ai/_models/interfaces/oai-gpt-message.interface.ts +7 -7
  633. package/src/_modules/ai/_modules/open-ai/_models/interfaces/oai-llm-predefined-requests.interface.ts +57 -57
  634. package/src/_modules/ai/_modules/open-ai/_services/data-services/oai-doc-chunk-data.service.ts +292 -292
  635. package/src/_modules/ai/_modules/open-ai/_services/data-services/oai-doc-page.data-service.ts +572 -572
  636. package/src/_modules/ai/_modules/open-ai/_services/data-services/oai-document.data-service.spec.ts +342 -342
  637. package/src/_modules/ai/_modules/open-ai/_services/data-services/oai-document.data-service.ts +435 -435
  638. package/src/_modules/ai/_modules/open-ai/_services/data-services/oai-vector-data.service.spec.ts +550 -550
  639. package/src/_modules/ai/_modules/open-ai/_services/data-services/oai-vector-data.service.ts +630 -630
  640. package/src/_modules/ai/_modules/open-ai/_services/oai-embedding.control-service.spec.ts +332 -332
  641. package/src/_modules/ai/_modules/open-ai/_services/oai-embedding.control-service.ts +132 -132
  642. package/src/_modules/ai/_modules/open-ai/_services/oai-llm-chat.service-base.spec.ts +462 -462
  643. package/src/_modules/ai/_modules/open-ai/_services/oai-llm-chat.service-base.ts +634 -634
  644. package/src/_modules/ai/_modules/open-ai/_services/oai-llm.service-base.spec.ts +489 -489
  645. package/src/_modules/ai/_modules/open-ai/_services/oai-llm.service-base.tools.spec.ts +173 -173
  646. package/src/_modules/ai/_modules/open-ai/_services/oai-llm.service-base.ts +1033 -1033
  647. package/src/_modules/ai/_modules/open-ai/_services/oai-user-key.control-service.ts +157 -157
  648. package/src/_modules/ai/_modules/open-ai/index.ts +74 -74
  649. package/src/_modules/ai/_services/ai-embedding-mock.service.spec.ts +115 -115
  650. package/src/_modules/ai/_services/ai-embedding-mock.service.ts +233 -233
  651. package/src/_modules/ai/_services/ai-embedding-provider.registry.spec.ts +110 -110
  652. package/src/_modules/ai/_services/ai-embedding-provider.registry.ts +114 -114
  653. package/src/_modules/ai/_services/ai-embedding.service-base.spec.ts +98 -98
  654. package/src/_modules/ai/_services/ai-embedding.service-base.ts +48 -48
  655. package/src/_modules/ai/_services/ai-llm-chat.service-base.spec.ts +229 -229
  656. package/src/_modules/ai/_services/ai-llm-chat.service-base.ts +68 -68
  657. package/src/_modules/ai/_services/ai-llm.service-base.spec.ts +250 -250
  658. package/src/_modules/ai/_services/ai-llm.service-base.ts +519 -519
  659. package/src/_modules/ai/_services/ai-provider.service-base.spec.ts +158 -158
  660. package/src/_modules/ai/_services/ai-provider.service-base.ts +67 -67
  661. package/src/_modules/ai/_services/ai-user-key.service-base.ts +59 -59
  662. package/src/_modules/ai/_services/lmstudio-embedding.control-service.spec.ts +197 -197
  663. package/src/_modules/ai/_services/lmstudio-embedding.control-service.ts +399 -399
  664. package/src/_modules/ai/index.ts +23 -23
  665. package/src/_modules/assistant/_collections/ass-global-settings.const.ts +13 -13
  666. package/src/_modules/assistant/_collections/ass.util.spec.ts +176 -176
  667. package/src/_modules/assistant/_collections/ass.util.ts +50 -50
  668. package/src/_modules/assistant/_models/ass-global-settings.interface.ts +15 -15
  669. package/src/_modules/assistant/_services/ass-io.control-service.spec.ts +140 -140
  670. package/src/_modules/assistant/_services/ass-io.control-service.ts +74 -74
  671. package/src/_modules/assistant/_services/ass-main.control-service.spec.ts +192 -192
  672. package/src/_modules/assistant/_services/ass-main.control-service.ts +107 -107
  673. package/src/_modules/assistant/index.ts +19 -19
  674. package/src/_modules/bot/_collections/bot-default-commands.const.ts +12 -12
  675. package/src/_modules/bot/_collections/bot-global-settings.const.ts +39 -39
  676. package/src/_modules/bot/_models/bot-channel-wrapper.interface.ts +62 -62
  677. package/src/_modules/bot/_models/bot-command.interface.ts +8 -8
  678. package/src/_modules/bot/_models/bot-global-settings.interface.ts +96 -96
  679. package/src/_modules/bot/_models/bot-last-mention-date.interface.ts +6 -6
  680. package/src/_modules/bot/_models/bot-last-message-date.interface.ts +5 -5
  681. package/src/_modules/bot/_models/bot-message-wrapper.interface.ts +90 -90
  682. package/src/_modules/bot/_models/bot-user-wrapper.interface.ts +41 -41
  683. package/src/_modules/bot/_modules/discord-bot/_models/dib-platform.types.ts +9 -9
  684. package/src/_modules/bot/_modules/discord-bot/_services/dib-messaging-provider.control-service.spec.ts +431 -431
  685. package/src/_modules/bot/_modules/discord-bot/_services/dib-messaging-provider.control-service.ts +641 -641
  686. package/src/_modules/bot/_modules/discord-bot/index.ts +12 -12
  687. package/src/_modules/bot/_modules/dynamo-bot/_collections/dyb-operations.util.spec.ts +160 -160
  688. package/src/_modules/bot/_modules/dynamo-bot/_collections/dyb-operations.util.ts +55 -55
  689. package/src/_modules/bot/_modules/dynamo-bot/_models/dyb-platform.types.ts +15 -15
  690. package/src/_modules/bot/_modules/dynamo-bot/_services/dyb-messaging-provider.control-service.spec.ts +374 -374
  691. package/src/_modules/bot/_modules/dynamo-bot/_services/dyb-messaging-provider.control-service.ts +447 -447
  692. package/src/_modules/bot/_modules/dynamo-bot/index.ts +15 -15
  693. package/src/_modules/bot/_modules/slack-bot/_models/slb-platform.types.ts +9 -9
  694. package/src/_modules/bot/_modules/slack-bot/_services/slb-messaging-provider.control-service.spec.ts +344 -344
  695. package/src/_modules/bot/_modules/slack-bot/_services/slb-messaging-provider.control-service.ts +197 -197
  696. package/src/_modules/bot/_modules/slack-bot/index.ts +12 -12
  697. package/src/_modules/bot/_modules/teams-bot/_models/teb-platform.types.ts +9 -9
  698. package/src/_modules/bot/_modules/teams-bot/_services/teb-messaging-provider.control-service.spec.ts +345 -345
  699. package/src/_modules/bot/_modules/teams-bot/_services/teb-messaging-provider.control-service.ts +197 -197
  700. package/src/_modules/bot/_modules/teams-bot/index.ts +11 -11
  701. package/src/_modules/bot/_services/bot-commands.control-service.spec.ts +116 -116
  702. package/src/_modules/bot/_services/bot-commands.control-service.ts +158 -158
  703. package/src/_modules/bot/_services/bot-io.control-service.spec.ts +285 -285
  704. package/src/_modules/bot/_services/bot-io.control-service.ts +329 -329
  705. package/src/_modules/bot/_services/bot-main.control-service.spec.ts +208 -208
  706. package/src/_modules/bot/_services/bot-main.control-service.ts +489 -489
  707. package/src/_modules/bot/_services/bot-messaging-provider.service-base.spec.ts +349 -349
  708. package/src/_modules/bot/_services/bot-messaging-provider.service-base.ts +158 -158
  709. package/src/_modules/bot/_services/bot-routines.control-service.spec.ts +111 -111
  710. package/src/_modules/bot/_services/bot-routines.control-service.ts +78 -78
  711. package/src/_modules/bot/index.ts +37 -37
  712. package/src/_modules/custom-data/custom-data.controller.spec.ts +49 -49
  713. package/src/_modules/custom-data/custom-data.controller.ts +67 -67
  714. package/src/_modules/custom-data/custom-data.data-service.spec.ts +54 -54
  715. package/src/_modules/custom-data/custom-data.data-service.ts +21 -21
  716. package/src/_modules/custom-data/get-custom-data-routing-module.util.spec.ts +28 -28
  717. package/src/_modules/custom-data/get-custom-data-routing-module.util.ts +24 -24
  718. package/src/_modules/custom-data/index.ts +9 -9
  719. package/src/_modules/data-readers/_collections/dynts-sqlite-reader.util.spec.ts +176 -176
  720. package/src/_modules/data-readers/_collections/dynts-sqlite-reader.util.ts +203 -203
  721. package/src/_modules/data-readers/_models/interfaces/dynts-sqlite-reader.interface.ts +33 -33
  722. package/src/_modules/data-readers/index.ts +11 -11
  723. package/src/_modules/defaults/_collections/default-endpoints.util.ts +487 -487
  724. package/src/_modules/defaults/_models/default-user.data-model.ts +72 -72
  725. package/src/_modules/defaults/_services/default-auth.service.spec.ts +269 -269
  726. package/src/_modules/defaults/_services/default-auth.service.ts +177 -177
  727. package/src/_modules/defaults/_services/default-socket-events.service.spec.ts +42 -42
  728. package/src/_modules/defaults/_services/default-socket-events.service.ts +61 -61
  729. package/src/_modules/defaults/_services/default-user.data-service.spec.ts +187 -187
  730. package/src/_modules/defaults/_services/default-user.data-service.ts +98 -98
  731. package/src/_modules/defaults/index.ts +17 -17
  732. package/src/_modules/discord-assistant/_collections/dias-global-settings.const.ts +19 -19
  733. package/src/_modules/discord-assistant/_collections/dias.util.spec.ts +366 -366
  734. package/src/_modules/discord-assistant/_collections/dias.util.ts +132 -132
  735. package/src/_modules/discord-assistant/_models/dias-global-settings.interface.ts +19 -19
  736. package/src/_modules/discord-assistant/_models/dias-knowledge.data-model.ts +52 -52
  737. package/src/_modules/discord-assistant/_services/dias-chunk.data-service.ts +177 -177
  738. package/src/_modules/discord-assistant/_services/dias-io.control-service.spec.ts +108 -108
  739. package/src/_modules/discord-assistant/_services/dias-io.control-service.ts +69 -69
  740. package/src/_modules/discord-assistant/_services/dias-main.control-service.spec.ts +22 -22
  741. package/src/_modules/discord-assistant/_services/dias-main.control-service.ts +27 -27
  742. package/src/_modules/discord-assistant/_services/dias.service-base.spec.ts +195 -195
  743. package/src/_modules/discord-assistant/_services/dias.service-base.ts +76 -76
  744. package/src/_modules/discord-assistant/index.ts +38 -38
  745. package/src/_modules/discord-assistant-voiced/_services/dias-discord-bot.control-service.spec.ts +34 -34
  746. package/src/_modules/discord-assistant-voiced/_services/dias-discord-bot.control-service.ts +11 -11
  747. package/src/_modules/discord-assistant-voiced/index.ts +36 -36
  748. package/src/_modules/discord-bot/_collections/dibo-default-commands.const.ts +16 -16
  749. package/src/_modules/discord-bot/_collections/dibo-global-settings.conts.ts +55 -55
  750. package/src/_modules/discord-bot/_collections/dibo-operations.util.spec.ts +214 -214
  751. package/src/_modules/discord-bot/_collections/dibo-operations.util.ts +387 -387
  752. package/src/_modules/discord-bot/_models/dibo-command.interface.ts +12 -12
  753. package/src/_modules/discord-bot/_models/dibo-global-settings.interface.ts +98 -98
  754. package/src/_modules/discord-bot/_models/dibo-last-mention-date.inteface.ts +7 -7
  755. package/src/_modules/discord-bot/_models/dibo-last-message-date.interface.ts +6 -6
  756. package/src/_modules/discord-bot/_services/dibo-commands.control-service.spec.ts +154 -154
  757. package/src/_modules/discord-bot/_services/dibo-commands.control-service.ts +153 -153
  758. package/src/_modules/discord-bot/_services/dibo-io.control-service.spec.ts +264 -264
  759. package/src/_modules/discord-bot/_services/dibo-io.control-service.ts +306 -306
  760. package/src/_modules/discord-bot/_services/dibo-main.control-service.spec.ts +408 -408
  761. package/src/_modules/discord-bot/_services/dibo-main.control-service.ts +487 -487
  762. package/src/_modules/discord-bot/_services/dibo-routines.control-service.spec.ts +105 -105
  763. package/src/_modules/discord-bot/_services/dibo-routines.control-service.ts +97 -97
  764. package/src/_modules/discord-bot/index.ts +36 -36
  765. package/src/_modules/local-vector-search/_enums/lvs-search-mode.enum.ts +35 -35
  766. package/src/_modules/local-vector-search/_models/data-models/lvs-vector-persist.data-model.ts +60 -60
  767. package/src/_modules/local-vector-search/_models/lvs-search-result.interface.ts +17 -17
  768. package/src/_modules/local-vector-search/_services/lvs-bm25.util.spec.ts +159 -159
  769. package/src/_modules/local-vector-search/_services/lvs-bm25.util.ts +206 -206
  770. package/src/_modules/local-vector-search/_services/lvs-doc-chunk-data.service.spec.ts +418 -418
  771. package/src/_modules/local-vector-search/_services/lvs-doc-chunk-data.service.ts +276 -276
  772. package/src/_modules/local-vector-search/_services/lvs-local-vector-search.data-service.spec.ts +480 -480
  773. package/src/_modules/local-vector-search/_services/lvs-local-vector-search.data-service.ts +416 -416
  774. package/src/_modules/local-vector-search/_services/lvs-persistent-vector-pool.control-service.spec.ts +198 -198
  775. package/src/_modules/local-vector-search/_services/lvs-persistent-vector-pool.control-service.ts +150 -150
  776. package/src/_modules/local-vector-search/_services/lvs-vector-persist.data-service.spec.ts +167 -167
  777. package/src/_modules/local-vector-search/_services/lvs-vector-persist.data-service.ts +108 -108
  778. package/src/_modules/local-vector-search/_services/lvs-vector-pool.control-service.spec.ts +409 -393
  779. package/src/_modules/local-vector-search/_services/lvs-vector-pool.control-service.ts +224 -220
  780. package/src/_modules/local-vector-search/index.ts +16 -16
  781. package/src/_modules/logs/_models/file-log-entry.interface.ts +13 -13
  782. package/src/_modules/logs/_models/file-log-read-result.interface.ts +37 -37
  783. package/src/_modules/logs/file-log.service.spec.ts +341 -341
  784. package/src/_modules/logs/file-log.service.ts +466 -466
  785. package/src/_modules/logs/file-logs.controller.spec.ts +245 -245
  786. package/src/_modules/logs/file-logs.controller.ts +165 -165
  787. package/src/_modules/logs/get-file-logs-routing-module.util.ts +51 -51
  788. package/src/_modules/logs/get-logs-routing-module.util.ts +36 -36
  789. package/src/_modules/logs/index.ts +11 -11
  790. package/src/_modules/logs/log-buffer.service.ts +101 -101
  791. package/src/_modules/logs/logs.controller.ts +109 -109
  792. package/src/_modules/logs/logs.service.ts +100 -100
  793. package/src/_modules/mcp/_models/interfaces/dynts-mcp.interface.ts +111 -111
  794. package/src/_modules/mcp/_services/dynts-mcp-server.service-base.spec.ts +151 -151
  795. package/src/_modules/mcp/_services/dynts-mcp-server.service-base.ts +125 -125
  796. package/src/_modules/mcp/_services/dynts-mcp.adapter.ts +168 -168
  797. package/src/_modules/mcp/index.ts +13 -13
  798. package/src/_modules/messaging/README.md +354 -354
  799. package/src/_modules/messaging/_collections/get-messaging-routing-module.util.ts +26 -26
  800. package/src/_modules/messaging/_collections/msg-global-settings.const.ts +22 -22
  801. package/src/_modules/messaging/_collections/msg.util.spec.ts +226 -226
  802. package/src/_modules/messaging/_collections/msg.util.ts +83 -83
  803. package/src/_modules/messaging/_models/msg-global-settings.interface.ts +37 -37
  804. package/src/_modules/messaging/_services/msg-conversation.data-service.ts +146 -146
  805. package/src/_modules/messaging/_services/msg-events.service.spec.ts +219 -219
  806. package/src/_modules/messaging/_services/msg-events.service.ts +267 -267
  807. package/src/_modules/messaging/_services/msg-integration.control-service.ts +179 -179
  808. package/src/_modules/messaging/_services/msg-main.control-service.spec.ts +147 -147
  809. package/src/_modules/messaging/_services/msg-main.control-service.ts +571 -571
  810. package/src/_modules/messaging/_services/msg-message.data-service.ts +129 -129
  811. package/src/_modules/messaging/_services/msg.controller.spec.ts +201 -201
  812. package/src/_modules/messaging/_services/msg.controller.ts +370 -370
  813. package/src/_modules/messaging/index.ts +30 -30
  814. package/src/_modules/mock/app-extended-server.mock.ts +201 -201
  815. package/src/_modules/mock/app-integration-test.mock.ts +51 -51
  816. package/src/_modules/mock/app-params.mock.spec.ts +21 -21
  817. package/src/_modules/mock/app-params.mock.ts +9 -9
  818. package/src/_modules/mock/app-server.mock.ts +188 -188
  819. package/src/_modules/mock/auth-service.mock.spec.ts +47 -47
  820. package/src/_modules/mock/auth-service.mock.ts +28 -28
  821. package/src/_modules/mock/controller.mock.spec.ts +26 -26
  822. package/src/_modules/mock/controller.mock.ts +16 -16
  823. package/src/_modules/mock/data-model.mock.spec.ts +111 -111
  824. package/src/_modules/mock/data-model.mock.ts +82 -82
  825. package/src/_modules/mock/email-service-collection.mock.spec.ts +24 -24
  826. package/src/_modules/mock/email-service-collection.mock.ts +15 -15
  827. package/src/_modules/mock/email-service.mock.spec.ts +17 -17
  828. package/src/_modules/mock/email-service.mock.ts +20 -20
  829. package/src/_modules/mock/email-template.mock.html +14 -14
  830. package/src/_modules/mock/endpoint.mock.ts +91 -91
  831. package/src/_modules/mock/socket-client.mock.spec.ts +40 -40
  832. package/src/_modules/mock/socket-client.mock.ts +45 -45
  833. package/src/_modules/mock/socket-server.mock.spec.ts +44 -44
  834. package/src/_modules/mock/socket-server.mock.ts +46 -46
  835. package/src/_modules/oauth2/_routes/oauth2.controller.spec.ts +107 -107
  836. package/src/_modules/oauth2/_routes/oauth2.controller.ts +98 -98
  837. package/src/_modules/oauth2/_services/oauth2.auth-service.spec.ts +254 -254
  838. package/src/_modules/oauth2/_services/oauth2.auth-service.ts +232 -232
  839. package/src/_modules/oauth2/_services/oauth2.control-service.spec.ts +585 -585
  840. package/src/_modules/oauth2/_services/oauth2.control-service.ts +653 -653
  841. package/src/_modules/oauth2/index.ts +17 -17
  842. package/src/_modules/rate-limit/_models/rate-limit-config.interface.ts +69 -69
  843. package/src/_modules/rate-limit/_models/rate-limit-policy.interface.ts +16 -16
  844. package/src/_modules/rate-limit/index.ts +3 -3
  845. package/src/_modules/rate-limit/rate-limit.middleware.spec.ts +264 -264
  846. package/src/_modules/rate-limit/rate-limit.middleware.ts +343 -343
  847. package/src/_modules/scoped-config/_enums/dynts-scoped-config-level.enum.ts +22 -22
  848. package/src/_modules/scoped-config/_models/data-models/dynts-scoped-config.data-model.ts +82 -82
  849. package/src/_modules/scoped-config/_models/interfaces/dynts-scoped-config.interface.ts +107 -107
  850. package/src/_modules/scoped-config/_services/dynts-scoped-config.control-service.spec.ts +312 -312
  851. package/src/_modules/scoped-config/_services/dynts-scoped-config.control-service.ts +311 -311
  852. package/src/_modules/scoped-config/_services/dynts-scoped-config.data-service.spec.ts +123 -123
  853. package/src/_modules/scoped-config/_services/dynts-scoped-config.data-service.ts +108 -108
  854. package/src/_modules/scoped-config/index.ts +17 -17
  855. package/src/_modules/server/errors/errors.control-service.spec.ts +246 -246
  856. package/src/_modules/server/errors/errors.control-service.ts +100 -100
  857. package/src/_modules/server/errors/errors.controller.spec.ts +249 -249
  858. package/src/_modules/server/errors/errors.controller.ts +489 -489
  859. package/src/_modules/server/errors/errors.data-service.spec.ts +480 -480
  860. package/src/_modules/server/errors/errors.data-service.ts +816 -816
  861. package/src/_modules/server/index.ts +30 -30
  862. package/src/_modules/server/server-status/server-status-snapshot.control-service.spec.ts +70 -70
  863. package/src/_modules/server/server-status/server-status-snapshot.control-service.ts +17 -17
  864. package/src/_modules/server/server-status/server-status-snapshot.data-service.spec.ts +77 -77
  865. package/src/_modules/server/server-status/server-status-snapshot.data-service.ts +37 -37
  866. package/src/_modules/server/server-status/server-status.control-service.spec.ts +584 -584
  867. package/src/_modules/server/server-status/server-status.control-service.ts +396 -396
  868. package/src/_modules/server/server-status/server-status.controller.spec.ts +248 -248
  869. package/src/_modules/server/server-status/server-status.controller.ts +253 -253
  870. package/src/_modules/socket/_enums/socket-security.enum.ts +11 -11
  871. package/src/_modules/socket/_models/socket-client-service-params.control-model.spec.ts +32 -32
  872. package/src/_modules/socket/_models/socket-client-service-params.control-model.ts +22 -22
  873. package/src/_modules/socket/_models/socket-presence.control-model.spec.ts +164 -164
  874. package/src/_modules/socket/_models/socket-presence.control-model.ts +210 -210
  875. package/src/_modules/socket/_models/socket-server-service-params.control-model.spec.ts +46 -46
  876. package/src/_modules/socket/_models/socket-server-service-params.control-model.ts +22 -22
  877. package/src/_modules/socket/_services/socket-client.service.spec.ts +15 -15
  878. package/src/_modules/socket/_services/socket-client.service.ts +260 -260
  879. package/src/_modules/socket/_services/socket-server.service.spec.ts +11 -11
  880. package/src/_modules/socket/_services/socket-server.service.ts +1068 -1068
  881. package/src/_modules/socket/app-extended.integration.spec.ts +85 -85
  882. package/src/_modules/socket/app-extended.server.ts +630 -630
  883. package/src/_modules/socket/index.ts +42 -42
  884. package/src/_modules/test/get-test-routing-module.util.spec.ts +28 -28
  885. package/src/_modules/test/get-test-routing-module.util.ts +23 -23
  886. package/src/_modules/test/index.ts +11 -11
  887. package/src/_modules/test/test.controller.spec.ts +72 -72
  888. package/src/_modules/test/test.controller.ts +115 -115
  889. package/src/_modules/usage/get-usage-routing-module.util.ts +22 -22
  890. package/src/_modules/usage/index.ts +15 -15
  891. package/src/_modules/usage/usage.controller.spec.ts +81 -81
  892. package/src/_modules/usage/usage.controller.ts +126 -126
  893. package/src/_modules/usage/usage.data-service.spec.ts +332 -332
  894. package/src/_modules/usage/usage.data-service.ts +185 -185
  895. package/src/_services/base/api.service-base.spec.ts +125 -125
  896. package/src/_services/base/api.service-base.ts +74 -74
  897. package/src/_services/base/archive-data.service.spec.ts +196 -196
  898. package/src/_services/base/archive-data.service.ts +216 -216
  899. package/src/_services/base/data.service.spec.ts +674 -674
  900. package/src/_services/base/data.service.ts +2719 -2719
  901. package/src/_services/base/db.service.spec.ts +73 -73
  902. package/src/_services/base/db.service.ts +1575 -1575
  903. package/src/_services/base/singleton.service-base.spec.ts +28 -28
  904. package/src/_services/base/singleton.service-base.ts +24 -24
  905. package/src/_services/base/singleton.service.spec.ts +114 -114
  906. package/src/_services/base/singleton.service.ts +38 -38
  907. package/src/_services/core/api.service.spec.ts +140 -140
  908. package/src/_services/core/api.service.ts +607 -607
  909. package/src/_services/core/auth.service.spec.ts +159 -159
  910. package/src/_services/core/auth.service.ts +174 -174
  911. package/src/_services/core/email.service.spec.ts +85 -85
  912. package/src/_services/core/email.service.ts +742 -742
  913. package/src/_services/core/global.service.spec.ts +292 -292
  914. package/src/_services/core/global.service.ts +475 -475
  915. package/src/_services/core/memory-guard.service.spec.ts +165 -165
  916. package/src/_services/core/memory-guard.service.ts +281 -281
  917. package/src/_services/core/service-collection.service.spec.ts +46 -46
  918. package/src/_services/core/service-collection.service.ts +6 -6
  919. package/src/_services/route/controller.service.spec.ts +53 -53
  920. package/src/_services/route/controller.service.ts +148 -148
  921. package/src/_services/route/routing-module.service.spec.ts +98 -98
  922. package/src/_services/route/routing-module.service.ts +330 -330
  923. package/src/_services/server/app.server.ts +1747 -1747
  924. package/src/_services/shared.static-service.spec.ts +99 -99
  925. package/src/_services/shared.static-service.ts +78 -78
  926. package/src/index.ts +96 -96
  927. package/tsconfig.app.json +12 -12
  928. package/tsconfig.json +42 -42
@@ -1,639 +1,639 @@
1
- import { DyFM_Log, DyFM_Error, DyFM_AnyError, DyFM_Error_Settings } from '@futdevpro/fsm-dynamo';
2
- import { DyNTS_global_settings } from '../../../../../_collections/global-settings.const';
3
- import { DyNTS_DAI_DocChunk } from '../_models/data-models/dai-doc-chunk.data-model';
4
- import { DyNTS_DAI_DocPage } from '../_models/data-models/dai-doc-page.data-model';
5
-
6
-
7
- interface DyNTS_DAI_DocChunking_Header {
8
- level: number;
9
- header: string;
10
- index: number;
11
- }
12
-
13
- interface DyNTS_DAI_DocChunking_BreakPoint {
14
- index: number;
15
- level: number;
16
- }
17
-
18
- /**
19
- * ClickUp dokumentum chunking szolgáltatás
20
- * @author AI
21
- * @description ClickUp dokumentumok intelligens chunking-ja a leghosszabb lehetséges chunk-ok létrehozásához
22
- */
23
- export class DyNTS_DAI_DocChunking_Util {
24
-
25
- protected static readonly defaultErrorUserMsg: string =
26
- `We encountered an unhandled Control Service Error, ` +
27
- `\nplease contact the responsible development team.`;
28
-
29
- /**
30
- * Unified break points configuration
31
- */
32
- private static readonly breakPoints: { pattern: string, level: number, includeLength: number }[] = [
33
- { pattern: '\n# ', level: 1, includeLength: 0 }, // Header 1 - cut before marker
34
- { pattern: '\n## ', level: 2, includeLength: 0 }, // Header 2 - cut before marker
35
- { pattern: '\n### ', level: 3, includeLength: 0 }, // Header 3 - cut before marker
36
- { pattern: '\n#### ', level: 4, includeLength: 0 }, // Header 4 - cut before marker
37
- { pattern: '\n\n', level: 0, includeLength: 2 }, // Double line break - include
38
- { pattern: '\n', level: 0, includeLength: 1 }, // Single line break - include
39
- { pattern: '. ', level: 0, includeLength: 2 }, // Sentence end - include
40
- { pattern: ' ', level: 0, includeLength: 1 }, // Word break - include
41
- ];
42
-
43
- protected static readonly debugLog: boolean = false;
44
-
45
- /**
46
- * Markdown tartalom chunking-ja a leghosszabb lehetséges chunk-ok létrehozásához
47
- * @param page - ClickUp dokumentum oldal
48
- * @param issuer - Kérés kezdeményezője
49
- * @returns Promise<CU_DocChunk[]> - Létrehozott chunk-ok listája
50
- */
51
- static async chunkMdContent<
52
- T_Chunk extends DyNTS_DAI_DocChunk,
53
- T_Page extends DyNTS_DAI_DocPage<T_Chunk>,
54
- >(
55
- page: T_Page,
56
- getPageLink: (page: T_Page, issuer: string) => string,
57
- issuer: string,
58
- debugLog?: boolean
59
- ): Promise<T_Chunk[]> {
60
- try {
61
- if (debugLog) {
62
- DyFM_Log.info(`Chunking page "${page.name}"...`);
63
- }
64
-
65
- if (page.content.includes('#####')) {
66
- DyFM_Log.warn('lvl5+ headers are not supported yet for page: ' + page.name);
67
- }
68
-
69
- if (!page.documentId) {
70
- throw new DyFM_Error({
71
- ...this.getDefaultErrorSettings('chunkMdContent', new Error('Page documentId is not set'), issuer),
72
- errorCode: 'CCAP-CUC-CC2',
73
- });
74
- }
75
-
76
- if (!page._id) {
77
- throw new DyFM_Error({
78
- ...this.getDefaultErrorSettings('chunkMdContent', new Error('Page _id is not set'), issuer),
79
- errorCode: 'CCAP-CUC-CC3',
80
- });
81
- }
82
-
83
- /* DyFM_Log.log(`Chunking page: ${page.name}\n\n`, JSON.stringify(page.content, null, 2)); */
84
-
85
- let leftovers: string = page.content;
86
- const maxChunkSize: number = DyNTS_global_settings.docChunking.maxChunkSize;
87
- const maxChunkCount: number = DyNTS_global_settings.docChunking.maxChunkCount;
88
- const chunks: T_Chunk[] = [];
89
- let chunkIndex: number = 0;
90
- let currentPosition: number = 0; // Track current position in original content
91
-
92
- // Parse all headers to build hierarchy
93
- const headerHierarchy: DyNTS_DAI_DocChunking_Header[] = this.parseHeaderHierarchy(leftovers);
94
-
95
- // Debug: Log parsed headers
96
- /* console.log('\n=== Parsed Header Hierarchy ===');
97
- headerHierarchy.forEach((header, index) => {
98
- console.log(`${index}: Level ${header.level} at position ${header.index}: "${header.header}"`);
99
- });
100
- console.log('=== End Header Hierarchy ===\n'); */
101
-
102
- // Track the last headers of each level as we progress
103
- const lastHeaders: Map<number, string> = new Map();
104
-
105
- while (leftovers.length > 0 && chunkIndex < maxChunkCount) {
106
- // Ha a teljes tartalom belefér egy chunk-ba, adjuk vissza az egészet
107
- if (leftovers.length <= maxChunkSize) {
108
- const chunkContent = leftovers.trim();
109
-
110
- if (chunkContent.length > 0) {
111
- //const chunkWithHierarchy: string = this.addHeaderHierarchy(chunkContent, headerHierarchy, currentPosition, currentPosition + leftovers.length, lastHeaders);
112
- //const chunkPath: string[] = this.buildChunkPath(page.name, headerHierarchy, currentPosition, currentPosition + leftovers.length, lastHeaders);
113
- const headParents: string[] = this.getRelevantHeaders(headerHierarchy, currentPosition, currentPosition + leftovers.length, lastHeaders); // headerHierarchy.map(header => header.header);
114
- //const allFlaggedParents: string[] = [ ...page.allFlaggedParents, ...headParents ];
115
-
116
- const chunk: T_Chunk = new DyNTS_DAI_DocChunk({
117
- externalDocumentId: page.externalDocumentId,
118
- documentId: page.documentId,
119
- externalPageId: page.externalPageId,
120
- pageId: page._id,
121
-
122
- filePathParents: page.parentedPath,
123
- chunkHeadParents: headParents,
124
-
125
- allFlaggedParents: [ ...page.allFlaggedParents, ...headParents ],
126
- /* path: [ ...page.parentedPath, ...headParents ].join('/'), */
127
- path: page.allFlaggedParentsMerged,
128
-
129
- documentName: page.externalDocumentId,
130
- pageName: page.name,
131
- pageLink: getPageLink(page, issuer),
132
- chunkIndex: chunkIndex,
133
-
134
- chunkContent: chunkContent,
135
- /* chunkOriginalContent: chunkContent,
136
-
137
- chunkContent: chunkWithHierarchy, */
138
- }) as T_Chunk;
139
-
140
- if (this.debugLog || debugLog) {
141
- DyFM_Log.H_info(
142
- 'Full content (before assembleChunkWithHeaders)',
143
- `Chunk ${chunkIndex}: ${chunk.path.replaceAll('/', '/\n').split('/')}`,
144
- { chunk: chunk.chunkContent }
145
- );
146
- }
147
-
148
- /* chunk.chunkContent = this.assembleChunkWithHeaders(chunk, issuer); */
149
- if (this.debugLog || debugLog) {
150
- DyFM_Log.H_info(
151
- 'Full content (after assembleChunkWithHeaders)',
152
- `Chunk ${chunkIndex}: ${chunk.path.replaceAll('/', '/\n').split('/')}`,
153
- {
154
- chunk: chunk.chunkContent,
155
- }
156
- );
157
- }
158
-
159
- /* await DyFM_Async.wait(100_000); */
160
- chunks.push(chunk);
161
- }
162
- break;
163
- }
164
-
165
- // Keressük meg a legjobb break point-ot a maxChunkSize-n belül
166
- const breakPoint: DyNTS_DAI_DocChunking_BreakPoint | null = this.findBestBreakPoint(leftovers, maxChunkSize);
167
-
168
- if (breakPoint && breakPoint.index > 0) {
169
- // Ha találtunk break point-ot, vágjunk a marker előtt
170
- const chunkContent: string = leftovers.substring(0, breakPoint.index).trim();
171
-
172
- // Debug: Log current state
173
- /* console.log(`\n--- Creating chunk ${chunkIndex} ---`);
174
- console.log(`Current position: ${currentPosition}`);
175
- console.log(`Last headers:`, Object.fromEntries(lastHeaders));
176
- console.log(`Chunk content preview:`, chunkContent.substring(0, 100) + '...'); */
177
-
178
- // Check if chunk has headers
179
- //const hasHeaders: boolean = headerHierarchy.some(header =>
180
- // header.index >= currentPosition && header.index < currentPosition + breakPoint.index
181
- //);
182
- /* console.log(`Chunk has headers: ${hasHeaders}`); */
183
-
184
- //const chunkWithHierarchy: string = this.addHeaderHierarchy(chunkContent, headerHierarchy, currentPosition, currentPosition + breakPoint.index, lastHeaders);
185
- //const chunkPath: string[] = this.buildChunkPath(page.name, headerHierarchy, currentPosition, currentPosition + breakPoint.index, lastHeaders);
186
- const headParents: string[] = this.getRelevantHeaders(headerHierarchy, currentPosition, currentPosition + breakPoint.index, lastHeaders); // headerHierarchy.map(header => header.header);
187
- //const allFlaggedParents: string[] = [ ...page.allFlaggedParents, ...headParents ];
188
-
189
- /* console.log(`Chunk path:`, chunkPath);
190
- console.log(`Chunk with hierarchy preview:`, chunkWithHierarchy.substring(0, 100) + '...'); */
191
-
192
- const chunk: T_Chunk = new DyNTS_DAI_DocChunk({
193
- externalDocumentId: page.externalDocumentId,
194
- externalPageId: page.externalPageId,
195
- documentId: page.documentId,
196
- pageId: page._id,
197
-
198
- filePathParents: page.parentedPath,
199
- chunkHeadParents: headParents,
200
-
201
- allFlaggedParents: [ ...page.allFlaggedParents, ...headParents ],
202
- path: [ ...page.parentedPath, ...headParents ].join('/'),
203
-
204
- documentName: page.externalDocumentId,
205
- pageName: page.name,
206
- pageLink: getPageLink(page, issuer),
207
- chunkIndex: chunkIndex,
208
-
209
- chunkContent: chunkContent,
210
- /* chunkOriginalContent: chunkContent,
211
-
212
- chunkContent: chunkWithHierarchy, */
213
- }) as T_Chunk;
214
-
215
- if (this.debugLog || debugLog) {
216
- DyFM_Log.H_info(
217
- 'Break point (before assembleChunkWithHeaders)',
218
- `Chunk ${chunkIndex}: ${chunk.path.replaceAll('/', '/\n').split('/')}`,
219
- { chunk: chunk.chunkContent }
220
- );
221
- }
222
-
223
- /* chunk.chunkContent = this.assembleChunkWithHeaders(chunk, issuer); */
224
- if (this.debugLog || debugLog) {
225
- DyFM_Log.H_info(
226
- 'Break point (after assembleChunkWithHeaders)',
227
- `Chunk ${chunkIndex}: ${chunk.path.replaceAll('/', '/\n').split('/')}`,
228
- {
229
- chunk: chunk.chunkContent,
230
- }
231
- );
232
- }
233
-
234
- chunks.push(chunk);
235
- chunkIndex++;
236
- currentPosition += breakPoint.index;
237
- leftovers = leftovers.substring(breakPoint.index);
238
-
239
- // Update last headers after creating the chunk
240
- this.updateLastHeaders(headerHierarchy, currentPosition, lastHeaders);
241
-
242
- /* console.log(`Updated last headers:`, Object.fromEntries(lastHeaders));
243
- console.log(`--- End chunk ${chunkIndex - 1} ---\n`); */
244
- } else {
245
- // Ha nem találtunk break point-ot, használjuk a maxChunkSize-t
246
- const chunkContent: string = leftovers.substring(0, maxChunkSize).trim();
247
- //const chunkWithHierarchy: string = this.addHeaderHierarchy(chunkContent, headerHierarchy, currentPosition, currentPosition + maxChunkSize, lastHeaders);
248
- //const chunkPath: string[] = this.buildChunkPath(page.name, headerHierarchy, currentPosition, currentPosition + maxChunkSize, lastHeaders);
249
- const headParents: string[] = this.getRelevantHeaders(headerHierarchy, currentPosition, currentPosition + maxChunkSize, lastHeaders); // headerHierarchy.map(header => header.header);
250
- //const allFlaggedParents: string[] = [ ...page.allFlaggedParents, ...headParents ];
251
-
252
- const chunk: T_Chunk = new DyNTS_DAI_DocChunk({
253
- externalDocumentId: page.externalDocumentId,
254
- externalPageId: page.externalPageId,
255
- documentId: page.documentId,
256
- pageId: page._id,
257
-
258
- filePathParents: page.parentedPath,
259
- chunkHeadParents: headParents,
260
-
261
- allFlaggedParents: [ ...page.allFlaggedParents, ...headParents ],
262
- path: [ ...page.parentedPath, ...headParents ].join('/'),
263
-
264
- documentName: page.externalDocumentId,
265
- pageName: page.name,
266
- pageLink: getPageLink(page, issuer),
267
- chunkIndex: chunkIndex,
268
-
269
- chunkContent: chunkContent,
270
- /* chunkOriginalContent: chunkContent,
271
-
272
- chunkContent: chunkWithHierarchy, */
273
- }) as T_Chunk;
274
-
275
- if (this.debugLog || debugLog) {
276
- DyFM_Log.H_info(
277
- 'Max chunk size',
278
- `Chunk ${chunkIndex}: ${chunk.path.replaceAll('/', '/\n').split('/')}`,
279
- { chunk: chunk.chunkContent }
280
- );
281
- }
282
-
283
- /* chunk.chunkContent = this.assembleChunkWithHeaders(chunk, issuer); */
284
- if (this.debugLog || debugLog) {
285
- DyFM_Log.H_info(
286
- `Chunk ${chunkIndex}: ${chunk.path.replaceAll('/', '/\n').split('/')}`,
287
- {
288
- chunk: chunk.chunkContent,
289
- }
290
- );
291
- }
292
-
293
- chunks.push(chunk);
294
- chunkIndex++;
295
- currentPosition += maxChunkSize;
296
- leftovers = leftovers.substring(maxChunkSize);
297
-
298
- // Update last headers after creating the chunk
299
- this.updateLastHeaders(headerHierarchy, currentPosition, lastHeaders);
300
- }
301
-
302
- // Safety check to prevent infinite loops
303
- if (leftovers.length > 0 && leftovers.length >= page.content.length) {
304
- throw new DyFM_Error({
305
- ...this.getDefaultErrorSettings(
306
- 'chunkMdContent',
307
- new Error('Infinite loop detected in chunking'),
308
- issuer
309
- ),
310
- errorCode: 'CCAP-CUC-CC1',
311
- });
312
- }
313
- }
314
-
315
- // Log warning if we hit the chunk count limit
316
- if (chunkIndex >= maxChunkCount && leftovers.length > 0) {
317
- DyFM_Log.warn(
318
- `⚠️ Reached maximum chunk count (${maxChunkCount}). Remaining content: ${leftovers.length} characters`,
319
- {
320
- pageName: page.name,
321
- pageSize: page.content.length,
322
- }
323
- );
324
- }
325
-
326
- /* DyFM_Log.info(`✅ Created ${chunks.length} chunks`); */
327
- return chunks;
328
- } catch (error) {
329
- throw new DyFM_Error({
330
- ...this.getDefaultErrorSettings('chunkMdContent', error, issuer),
331
- errorCode: 'CCAP-CUC-CP0',
332
- });
333
- }
334
- }
335
-
336
- /* private static assembleChunkWithHeaders(chunk: DyNTS_DAI_DocChunk, issuer: string): string {
337
- try {
338
- const fileHeaders = chunk.filePathParents.map(
339
- (header, index) => `${'>'.repeat(index + 1)} **${header}**`
340
- ).join('\n');
341
- const headers = chunk.chunkHeadParents.filter(
342
- path => !chunk.chunkOriginalContent.includes(path)
343
- ).join('\n');
344
- return `${fileHeaders}\n\n${headers}\n\n${chunk.chunkOriginalContent}`;
345
- } catch (error) {
346
- throw new DyFM_Error({
347
- ...this.getDefaultErrorSettings('assembleChunkWithHeaders', error, issuer),
348
- errorCode: 'CCAP-CUC-ACH0',
349
- });
350
- }
351
- } */
352
-
353
- static reassembleChunksToContent(
354
- chunks: DyNTS_DAI_DocChunk[],
355
- issuer: string
356
- ): string {
357
- try {
358
- let pageContent: string = '';
359
-
360
- for (const chunk of chunks) {
361
- if (!chunk) {
362
- throw new DyFM_Error({
363
- ...this.getDefaultErrorSettings(
364
- 'reassembleChunksToContent',
365
- new Error('Chunk is null, you`ve passing null chunks to the function'),
366
- issuer
367
- ),
368
- errorCode: 'CCAP-CUC-RCTC0',
369
-
370
- additionalContent: {
371
- chunks: chunks,
372
- },
373
- });
374
- }
375
-
376
- pageContent += chunk.chunkContent;
377
- }
378
-
379
- return pageContent;
380
- } catch (error) {
381
- throw new DyFM_Error({
382
- ...this.getDefaultErrorSettings('reassembleChunks', error, issuer),
383
- errorCode: 'CCAP-CUC-RC0',
384
- });
385
- }
386
- }
387
-
388
- /**
389
- * Find the best break point within the chunk size
390
- * @param text - The text to search in
391
- * @param maxIndex - Maximum index to search up to
392
- * @returns The best break point or null if not found
393
- */
394
- private static findBestBreakPoint(text: string, maxIndex: number): DyNTS_DAI_DocChunking_BreakPoint | null {
395
- for (const breakPoint of this.breakPoints) {
396
- const index: number = this.findLastOccurrence(text, breakPoint.pattern, maxIndex);
397
-
398
- if (index > 0) {
399
- return {
400
- index: index + breakPoint.includeLength,
401
- level: breakPoint.level
402
- };
403
- }
404
- }
405
- return null;
406
- }
407
-
408
- /**
409
- * Parse header hierarchy from the content
410
- * @param content - The content to parse
411
- * @returns Array of header positions and levels
412
- */
413
- private static parseHeaderHierarchy(content: string): DyNTS_DAI_DocChunking_Header[] {
414
- const headers: DyNTS_DAI_DocChunking_Header[] = [];
415
- const lines: string[] = content.split('\n');
416
- let currentIndex: number = 0;
417
-
418
- for (const line of lines) {
419
- const trimmedLine: string = line.trim();
420
-
421
- // Check if line starts with # and determine the level
422
- if (trimmedLine.startsWith('#')) {
423
- const match: RegExpMatchArray | null = trimmedLine.match(/^(#+)\s+(.+)$/);
424
-
425
- if (match) {
426
- const level: number = match[1].length; // Count the number of # symbols
427
- const headerText: string = trimmedLine;
428
-
429
- if (level >= 1 && level <= 4) { // Only support levels 1-4
430
- headers.push({
431
- index: currentIndex,
432
- level: level,
433
- header: headerText
434
- });
435
- }
436
- }
437
- }
438
-
439
- currentIndex += line.length + 1; // +1 for the newline
440
- }
441
-
442
- return headers;
443
- }
444
-
445
- /**
446
- * Update the last headers map based on current position
447
- * @param headerHierarchy - The parsed header hierarchy
448
- * @param currentPosition - Current position in content
449
- * @param lastHeaders - Map to store last headers of each level
450
- */
451
- private static updateLastHeaders(
452
- headerHierarchy: DyNTS_DAI_DocChunking_Header[],
453
- currentPosition: number,
454
- lastHeaders: Map<number, string>
455
- ): void {
456
- // Find all headers that come before current position (not including current position)
457
- for (const header of headerHierarchy) {
458
- if (header.index < currentPosition) {
459
- // Set this header as the last header for its level
460
- lastHeaders.set(header.level, header.header);
461
-
462
- // Clear all lower level headers (higher level numbers) when any header comes
463
- // For example, if we see a level 2 header, clear levels 3, 4
464
- // If we see a level 1 header, clear levels 2, 3, 4
465
- for (let level: number = header.level + 1; level <= 4; level++) {
466
- lastHeaders.delete(level);
467
- }
468
- }
469
- }
470
- }
471
-
472
- /**
473
- * Visszaadja a chunk-hoz tartozó releváns szülő fejléceket a hierarchia alapján.
474
- * @param headerHierarchy - A feldolgozott fejléc-hierarchia
475
- * @param startIndex - A chunk kezdőindexe az eredeti tartalomban
476
- * @param endIndex - A chunk végindexe az eredeti tartalomban
477
- * @param lastHeaders - Az utolsó ismert fejlécek szintenként
478
- * @returns A releváns szülő fejlécek tömbje
479
- */
480
- private static getRelevantHeaders(
481
- headerHierarchy: DyNTS_DAI_DocChunking_Header[],
482
- startIndex: number,
483
- endIndex: number,
484
- lastHeaders: Map<number, string>
485
- ): string[] {
486
- // Keressük meg az első fejlécet a chunkban
487
- const firstHeaderInChunk: DyNTS_DAI_DocChunking_Header | undefined = headerHierarchy.find(header =>
488
- header.index >= startIndex && header.index < endIndex
489
- );
490
-
491
- if (!firstHeaderInChunk) {
492
- // Nincs fejléc a chunkban, a legmagasabb szintű utolsó fejlécet használjuk
493
- let highestLevel: number = 0;
494
- let highestHeader: string = '';
495
-
496
- for (const [level, header] of lastHeaders.entries()) {
497
- if (level > highestLevel) {
498
- highestLevel = level;
499
- highestHeader = header;
500
- }
501
- }
502
- return highestHeader ? [highestHeader] : [];
503
- }
504
-
505
- // Szülő fejlécek összegyűjtése az első fejléc szintje alapján
506
- const relevantHeaders: string[] = [];
507
- for (let level: number = 1; level < firstHeaderInChunk.level; level++) {
508
- const parentHeader: string | undefined = lastHeaders.get(level);
509
-
510
- if (parentHeader) {
511
- relevantHeaders.push(parentHeader);
512
- }
513
- }
514
- return relevantHeaders;
515
- }
516
-
517
- /**
518
- * Build hierarchical chunk path based on header structure
519
- * @param pageName - The page name
520
- * @param headerHierarchy - The parsed header hierarchy
521
- * @param startIndex - Start index of the chunk in original content
522
- * @param endIndex - End index of the chunk in original content
523
- * @param lastHeaders - Map of last headers for each level
524
- * @returns Hierarchical path array
525
- */
526
- private static buildChunkPath(
527
- pageName: string,
528
- headerHierarchy: DyNTS_DAI_DocChunking_Header[],
529
- startIndex: number,
530
- endIndex: number,
531
- lastHeaders: Map<number, string>
532
- ): string[] {
533
- // Find the first header within this chunk
534
- const firstHeaderInChunk: DyNTS_DAI_DocChunking_Header | undefined = headerHierarchy.find(header =>
535
- header.index >= startIndex && header.index < endIndex
536
- );
537
-
538
- if (!firstHeaderInChunk) {
539
- // No header in chunk, use the highest level from lastHeaders as parent
540
- const pathParts: string[] = [pageName];
541
-
542
- // Find the highest level header from lastHeaders
543
- let highestLevel: number = 0;
544
- let highestHeader: string = '';
545
-
546
- for (const [level, header] of lastHeaders.entries()) {
547
- if (level > highestLevel) {
548
- highestLevel = level;
549
- highestHeader = header;
550
- }
551
- }
552
-
553
- if (highestHeader) {
554
- pathParts.push(highestHeader);
555
- }
556
-
557
- return pathParts;
558
- }
559
-
560
- // Build the path hierarchy
561
- const pathParts: string[] = [pageName];
562
-
563
- // Add parent headers from lastHeaders (these are the actual parent headers)
564
- for (let level = 1; level < firstHeaderInChunk.level; level++) {
565
- const parentHeader: string | undefined = lastHeaders.get(level);
566
-
567
- if (parentHeader) {
568
- pathParts.push(parentHeader); // Include the full header with markdown symbols
569
- }
570
- }
571
-
572
- // Add the first header in chunk
573
- pathParts.push(firstHeaderInChunk.header); // Include the full header with markdown symbols
574
-
575
- return pathParts;
576
- }
577
-
578
- /**
579
- * Add header hierarchy to the beginning of a chunk
580
- * @param chunkContent - The chunk content
581
- * @param headerHierarchy - The parsed header hierarchy
582
- * @param startIndex - Start index of the chunk in original content
583
- * @param endIndex - End index of the chunk in original content
584
- * @param lastHeaders - Map of last headers for each level
585
- * @returns Content with header hierarchy added
586
- */
587
- private static addHeaderHierarchy(
588
- chunkContent: string,
589
- headerHierarchy: DyNTS_DAI_DocChunking_Header[],
590
- startIndex: number,
591
- endIndex: number,
592
- lastHeaders: Map<number, string>
593
- ): string {
594
- const relevantHeaders: string[] = this.getRelevantHeaders(headerHierarchy, startIndex, endIndex, lastHeaders);
595
-
596
- if (relevantHeaders.length > 0) {
597
- return relevantHeaders.join('\n') + '\n\n' + chunkContent;
598
- }
599
-
600
- return chunkContent;
601
- }
602
-
603
- /**
604
- * Helper method to find the last occurrence of a pattern within a specified range
605
- * @param text - The text to search in
606
- * @param pattern - The pattern to search for
607
- * @param maxIndex - Maximum index to search up to
608
- * @returns The index of the last occurrence, or -1 if not found
609
- */
610
- private static findLastOccurrence(text: string, pattern: string, maxIndex: number): number {
611
- const searchText: string = text.substring(0, maxIndex);
612
- const lastIndex: number = searchText.lastIndexOf(pattern);
613
-
614
- return lastIndex;
615
- }
616
-
617
- protected static getDefaultErrorSettings(
618
- fnName: string,
619
- error: DyFM_AnyError,
620
- issuer: string,
621
- /** @deprecated we wont support the separate user message in the future, use the message instead */
622
- useMessageAsUserMessage: boolean = true,
623
- /* errorCode: string, */
624
- ): DyFM_Error_Settings {
625
- return {
626
- status: (error as DyFM_Error)?.___status ?? 500,
627
- message: (error as Error)?.message ??
628
- (error as DyFM_Error)?._message ??
629
- `${fnName} was UNSUCCESSFUL (${DyNTS_global_settings.systemShortCodeName})`,
630
- addECToUserMsg: !(error as DyFM_Error)?.__userMessage,
631
- userMessage: (error as DyFM_Error)?.__userMessage ??
632
- (useMessageAsUserMessage ? (error as Error)?.message : this.defaultErrorUserMsg),
633
- /* errorCode: errorCode, */
634
- issuer: issuer,
635
- issuerService: this.constructor?.name,
636
- error: error,
637
- };
638
- }
639
- }
1
+ import { DyFM_Log, DyFM_Error, DyFM_AnyError, DyFM_Error_Settings } from '@futdevpro/fsm-dynamo';
2
+ import { DyNTS_global_settings } from '../../../../../_collections/global-settings.const';
3
+ import { DyNTS_DAI_DocChunk } from '../_models/data-models/dai-doc-chunk.data-model';
4
+ import { DyNTS_DAI_DocPage } from '../_models/data-models/dai-doc-page.data-model';
5
+
6
+
7
+ interface DyNTS_DAI_DocChunking_Header {
8
+ level: number;
9
+ header: string;
10
+ index: number;
11
+ }
12
+
13
+ interface DyNTS_DAI_DocChunking_BreakPoint {
14
+ index: number;
15
+ level: number;
16
+ }
17
+
18
+ /**
19
+ * ClickUp dokumentum chunking szolgáltatás
20
+ * @author AI
21
+ * @description ClickUp dokumentumok intelligens chunking-ja a leghosszabb lehetséges chunk-ok létrehozásához
22
+ */
23
+ export class DyNTS_DAI_DocChunking_Util {
24
+
25
+ protected static readonly defaultErrorUserMsg: string =
26
+ `We encountered an unhandled Control Service Error, ` +
27
+ `\nplease contact the responsible development team.`;
28
+
29
+ /**
30
+ * Unified break points configuration
31
+ */
32
+ private static readonly breakPoints: { pattern: string, level: number, includeLength: number }[] = [
33
+ { pattern: '\n# ', level: 1, includeLength: 0 }, // Header 1 - cut before marker
34
+ { pattern: '\n## ', level: 2, includeLength: 0 }, // Header 2 - cut before marker
35
+ { pattern: '\n### ', level: 3, includeLength: 0 }, // Header 3 - cut before marker
36
+ { pattern: '\n#### ', level: 4, includeLength: 0 }, // Header 4 - cut before marker
37
+ { pattern: '\n\n', level: 0, includeLength: 2 }, // Double line break - include
38
+ { pattern: '\n', level: 0, includeLength: 1 }, // Single line break - include
39
+ { pattern: '. ', level: 0, includeLength: 2 }, // Sentence end - include
40
+ { pattern: ' ', level: 0, includeLength: 1 }, // Word break - include
41
+ ];
42
+
43
+ protected static readonly debugLog: boolean = false;
44
+
45
+ /**
46
+ * Markdown tartalom chunking-ja a leghosszabb lehetséges chunk-ok létrehozásához
47
+ * @param page - ClickUp dokumentum oldal
48
+ * @param issuer - Kérés kezdeményezője
49
+ * @returns Promise<CU_DocChunk[]> - Létrehozott chunk-ok listája
50
+ */
51
+ static async chunkMdContent<
52
+ T_Chunk extends DyNTS_DAI_DocChunk,
53
+ T_Page extends DyNTS_DAI_DocPage<T_Chunk>,
54
+ >(
55
+ page: T_Page,
56
+ getPageLink: (page: T_Page, issuer: string) => string,
57
+ issuer: string,
58
+ debugLog?: boolean
59
+ ): Promise<T_Chunk[]> {
60
+ try {
61
+ if (debugLog) {
62
+ DyFM_Log.info(`Chunking page "${page.name}"...`);
63
+ }
64
+
65
+ if (page.content.includes('#####')) {
66
+ DyFM_Log.warn('lvl5+ headers are not supported yet for page: ' + page.name);
67
+ }
68
+
69
+ if (!page.documentId) {
70
+ throw new DyFM_Error({
71
+ ...this.getDefaultErrorSettings('chunkMdContent', new Error('Page documentId is not set'), issuer),
72
+ errorCode: 'CCAP-CUC-CC2',
73
+ });
74
+ }
75
+
76
+ if (!page._id) {
77
+ throw new DyFM_Error({
78
+ ...this.getDefaultErrorSettings('chunkMdContent', new Error('Page _id is not set'), issuer),
79
+ errorCode: 'CCAP-CUC-CC3',
80
+ });
81
+ }
82
+
83
+ /* DyFM_Log.log(`Chunking page: ${page.name}\n\n`, JSON.stringify(page.content, null, 2)); */
84
+
85
+ let leftovers: string = page.content;
86
+ const maxChunkSize: number = DyNTS_global_settings.docChunking.maxChunkSize;
87
+ const maxChunkCount: number = DyNTS_global_settings.docChunking.maxChunkCount;
88
+ const chunks: T_Chunk[] = [];
89
+ let chunkIndex: number = 0;
90
+ let currentPosition: number = 0; // Track current position in original content
91
+
92
+ // Parse all headers to build hierarchy
93
+ const headerHierarchy: DyNTS_DAI_DocChunking_Header[] = this.parseHeaderHierarchy(leftovers);
94
+
95
+ // Debug: Log parsed headers
96
+ /* console.log('\n=== Parsed Header Hierarchy ===');
97
+ headerHierarchy.forEach((header, index) => {
98
+ console.log(`${index}: Level ${header.level} at position ${header.index}: "${header.header}"`);
99
+ });
100
+ console.log('=== End Header Hierarchy ===\n'); */
101
+
102
+ // Track the last headers of each level as we progress
103
+ const lastHeaders: Map<number, string> = new Map();
104
+
105
+ while (leftovers.length > 0 && chunkIndex < maxChunkCount) {
106
+ // Ha a teljes tartalom belefér egy chunk-ba, adjuk vissza az egészet
107
+ if (leftovers.length <= maxChunkSize) {
108
+ const chunkContent = leftovers.trim();
109
+
110
+ if (chunkContent.length > 0) {
111
+ //const chunkWithHierarchy: string = this.addHeaderHierarchy(chunkContent, headerHierarchy, currentPosition, currentPosition + leftovers.length, lastHeaders);
112
+ //const chunkPath: string[] = this.buildChunkPath(page.name, headerHierarchy, currentPosition, currentPosition + leftovers.length, lastHeaders);
113
+ const headParents: string[] = this.getRelevantHeaders(headerHierarchy, currentPosition, currentPosition + leftovers.length, lastHeaders); // headerHierarchy.map(header => header.header);
114
+ //const allFlaggedParents: string[] = [ ...page.allFlaggedParents, ...headParents ];
115
+
116
+ const chunk: T_Chunk = new DyNTS_DAI_DocChunk({
117
+ externalDocumentId: page.externalDocumentId,
118
+ documentId: page.documentId,
119
+ externalPageId: page.externalPageId,
120
+ pageId: page._id,
121
+
122
+ filePathParents: page.parentedPath,
123
+ chunkHeadParents: headParents,
124
+
125
+ allFlaggedParents: [ ...page.allFlaggedParents, ...headParents ],
126
+ /* path: [ ...page.parentedPath, ...headParents ].join('/'), */
127
+ path: page.allFlaggedParentsMerged,
128
+
129
+ documentName: page.externalDocumentId,
130
+ pageName: page.name,
131
+ pageLink: getPageLink(page, issuer),
132
+ chunkIndex: chunkIndex,
133
+
134
+ chunkContent: chunkContent,
135
+ /* chunkOriginalContent: chunkContent,
136
+
137
+ chunkContent: chunkWithHierarchy, */
138
+ }) as T_Chunk;
139
+
140
+ if (this.debugLog || debugLog) {
141
+ DyFM_Log.H_info(
142
+ 'Full content (before assembleChunkWithHeaders)',
143
+ `Chunk ${chunkIndex}: ${chunk.path.replaceAll('/', '/\n').split('/')}`,
144
+ { chunk: chunk.chunkContent }
145
+ );
146
+ }
147
+
148
+ /* chunk.chunkContent = this.assembleChunkWithHeaders(chunk, issuer); */
149
+ if (this.debugLog || debugLog) {
150
+ DyFM_Log.H_info(
151
+ 'Full content (after assembleChunkWithHeaders)',
152
+ `Chunk ${chunkIndex}: ${chunk.path.replaceAll('/', '/\n').split('/')}`,
153
+ {
154
+ chunk: chunk.chunkContent,
155
+ }
156
+ );
157
+ }
158
+
159
+ /* await DyFM_Async.wait(100_000); */
160
+ chunks.push(chunk);
161
+ }
162
+ break;
163
+ }
164
+
165
+ // Keressük meg a legjobb break point-ot a maxChunkSize-n belül
166
+ const breakPoint: DyNTS_DAI_DocChunking_BreakPoint | null = this.findBestBreakPoint(leftovers, maxChunkSize);
167
+
168
+ if (breakPoint && breakPoint.index > 0) {
169
+ // Ha találtunk break point-ot, vágjunk a marker előtt
170
+ const chunkContent: string = leftovers.substring(0, breakPoint.index).trim();
171
+
172
+ // Debug: Log current state
173
+ /* console.log(`\n--- Creating chunk ${chunkIndex} ---`);
174
+ console.log(`Current position: ${currentPosition}`);
175
+ console.log(`Last headers:`, Object.fromEntries(lastHeaders));
176
+ console.log(`Chunk content preview:`, chunkContent.substring(0, 100) + '...'); */
177
+
178
+ // Check if chunk has headers
179
+ //const hasHeaders: boolean = headerHierarchy.some(header =>
180
+ // header.index >= currentPosition && header.index < currentPosition + breakPoint.index
181
+ //);
182
+ /* console.log(`Chunk has headers: ${hasHeaders}`); */
183
+
184
+ //const chunkWithHierarchy: string = this.addHeaderHierarchy(chunkContent, headerHierarchy, currentPosition, currentPosition + breakPoint.index, lastHeaders);
185
+ //const chunkPath: string[] = this.buildChunkPath(page.name, headerHierarchy, currentPosition, currentPosition + breakPoint.index, lastHeaders);
186
+ const headParents: string[] = this.getRelevantHeaders(headerHierarchy, currentPosition, currentPosition + breakPoint.index, lastHeaders); // headerHierarchy.map(header => header.header);
187
+ //const allFlaggedParents: string[] = [ ...page.allFlaggedParents, ...headParents ];
188
+
189
+ /* console.log(`Chunk path:`, chunkPath);
190
+ console.log(`Chunk with hierarchy preview:`, chunkWithHierarchy.substring(0, 100) + '...'); */
191
+
192
+ const chunk: T_Chunk = new DyNTS_DAI_DocChunk({
193
+ externalDocumentId: page.externalDocumentId,
194
+ externalPageId: page.externalPageId,
195
+ documentId: page.documentId,
196
+ pageId: page._id,
197
+
198
+ filePathParents: page.parentedPath,
199
+ chunkHeadParents: headParents,
200
+
201
+ allFlaggedParents: [ ...page.allFlaggedParents, ...headParents ],
202
+ path: [ ...page.parentedPath, ...headParents ].join('/'),
203
+
204
+ documentName: page.externalDocumentId,
205
+ pageName: page.name,
206
+ pageLink: getPageLink(page, issuer),
207
+ chunkIndex: chunkIndex,
208
+
209
+ chunkContent: chunkContent,
210
+ /* chunkOriginalContent: chunkContent,
211
+
212
+ chunkContent: chunkWithHierarchy, */
213
+ }) as T_Chunk;
214
+
215
+ if (this.debugLog || debugLog) {
216
+ DyFM_Log.H_info(
217
+ 'Break point (before assembleChunkWithHeaders)',
218
+ `Chunk ${chunkIndex}: ${chunk.path.replaceAll('/', '/\n').split('/')}`,
219
+ { chunk: chunk.chunkContent }
220
+ );
221
+ }
222
+
223
+ /* chunk.chunkContent = this.assembleChunkWithHeaders(chunk, issuer); */
224
+ if (this.debugLog || debugLog) {
225
+ DyFM_Log.H_info(
226
+ 'Break point (after assembleChunkWithHeaders)',
227
+ `Chunk ${chunkIndex}: ${chunk.path.replaceAll('/', '/\n').split('/')}`,
228
+ {
229
+ chunk: chunk.chunkContent,
230
+ }
231
+ );
232
+ }
233
+
234
+ chunks.push(chunk);
235
+ chunkIndex++;
236
+ currentPosition += breakPoint.index;
237
+ leftovers = leftovers.substring(breakPoint.index);
238
+
239
+ // Update last headers after creating the chunk
240
+ this.updateLastHeaders(headerHierarchy, currentPosition, lastHeaders);
241
+
242
+ /* console.log(`Updated last headers:`, Object.fromEntries(lastHeaders));
243
+ console.log(`--- End chunk ${chunkIndex - 1} ---\n`); */
244
+ } else {
245
+ // Ha nem találtunk break point-ot, használjuk a maxChunkSize-t
246
+ const chunkContent: string = leftovers.substring(0, maxChunkSize).trim();
247
+ //const chunkWithHierarchy: string = this.addHeaderHierarchy(chunkContent, headerHierarchy, currentPosition, currentPosition + maxChunkSize, lastHeaders);
248
+ //const chunkPath: string[] = this.buildChunkPath(page.name, headerHierarchy, currentPosition, currentPosition + maxChunkSize, lastHeaders);
249
+ const headParents: string[] = this.getRelevantHeaders(headerHierarchy, currentPosition, currentPosition + maxChunkSize, lastHeaders); // headerHierarchy.map(header => header.header);
250
+ //const allFlaggedParents: string[] = [ ...page.allFlaggedParents, ...headParents ];
251
+
252
+ const chunk: T_Chunk = new DyNTS_DAI_DocChunk({
253
+ externalDocumentId: page.externalDocumentId,
254
+ externalPageId: page.externalPageId,
255
+ documentId: page.documentId,
256
+ pageId: page._id,
257
+
258
+ filePathParents: page.parentedPath,
259
+ chunkHeadParents: headParents,
260
+
261
+ allFlaggedParents: [ ...page.allFlaggedParents, ...headParents ],
262
+ path: [ ...page.parentedPath, ...headParents ].join('/'),
263
+
264
+ documentName: page.externalDocumentId,
265
+ pageName: page.name,
266
+ pageLink: getPageLink(page, issuer),
267
+ chunkIndex: chunkIndex,
268
+
269
+ chunkContent: chunkContent,
270
+ /* chunkOriginalContent: chunkContent,
271
+
272
+ chunkContent: chunkWithHierarchy, */
273
+ }) as T_Chunk;
274
+
275
+ if (this.debugLog || debugLog) {
276
+ DyFM_Log.H_info(
277
+ 'Max chunk size',
278
+ `Chunk ${chunkIndex}: ${chunk.path.replaceAll('/', '/\n').split('/')}`,
279
+ { chunk: chunk.chunkContent }
280
+ );
281
+ }
282
+
283
+ /* chunk.chunkContent = this.assembleChunkWithHeaders(chunk, issuer); */
284
+ if (this.debugLog || debugLog) {
285
+ DyFM_Log.H_info(
286
+ `Chunk ${chunkIndex}: ${chunk.path.replaceAll('/', '/\n').split('/')}`,
287
+ {
288
+ chunk: chunk.chunkContent,
289
+ }
290
+ );
291
+ }
292
+
293
+ chunks.push(chunk);
294
+ chunkIndex++;
295
+ currentPosition += maxChunkSize;
296
+ leftovers = leftovers.substring(maxChunkSize);
297
+
298
+ // Update last headers after creating the chunk
299
+ this.updateLastHeaders(headerHierarchy, currentPosition, lastHeaders);
300
+ }
301
+
302
+ // Safety check to prevent infinite loops
303
+ if (leftovers.length > 0 && leftovers.length >= page.content.length) {
304
+ throw new DyFM_Error({
305
+ ...this.getDefaultErrorSettings(
306
+ 'chunkMdContent',
307
+ new Error('Infinite loop detected in chunking'),
308
+ issuer
309
+ ),
310
+ errorCode: 'CCAP-CUC-CC1',
311
+ });
312
+ }
313
+ }
314
+
315
+ // Log warning if we hit the chunk count limit
316
+ if (chunkIndex >= maxChunkCount && leftovers.length > 0) {
317
+ DyFM_Log.warn(
318
+ `⚠️ Reached maximum chunk count (${maxChunkCount}). Remaining content: ${leftovers.length} characters`,
319
+ {
320
+ pageName: page.name,
321
+ pageSize: page.content.length,
322
+ }
323
+ );
324
+ }
325
+
326
+ /* DyFM_Log.info(`✅ Created ${chunks.length} chunks`); */
327
+ return chunks;
328
+ } catch (error) {
329
+ throw new DyFM_Error({
330
+ ...this.getDefaultErrorSettings('chunkMdContent', error, issuer),
331
+ errorCode: 'CCAP-CUC-CP0',
332
+ });
333
+ }
334
+ }
335
+
336
+ /* private static assembleChunkWithHeaders(chunk: DyNTS_DAI_DocChunk, issuer: string): string {
337
+ try {
338
+ const fileHeaders = chunk.filePathParents.map(
339
+ (header, index) => `${'>'.repeat(index + 1)} **${header}**`
340
+ ).join('\n');
341
+ const headers = chunk.chunkHeadParents.filter(
342
+ path => !chunk.chunkOriginalContent.includes(path)
343
+ ).join('\n');
344
+ return `${fileHeaders}\n\n${headers}\n\n${chunk.chunkOriginalContent}`;
345
+ } catch (error) {
346
+ throw new DyFM_Error({
347
+ ...this.getDefaultErrorSettings('assembleChunkWithHeaders', error, issuer),
348
+ errorCode: 'CCAP-CUC-ACH0',
349
+ });
350
+ }
351
+ } */
352
+
353
+ static reassembleChunksToContent(
354
+ chunks: DyNTS_DAI_DocChunk[],
355
+ issuer: string
356
+ ): string {
357
+ try {
358
+ let pageContent: string = '';
359
+
360
+ for (const chunk of chunks) {
361
+ if (!chunk) {
362
+ throw new DyFM_Error({
363
+ ...this.getDefaultErrorSettings(
364
+ 'reassembleChunksToContent',
365
+ new Error('Chunk is null, you`ve passing null chunks to the function'),
366
+ issuer
367
+ ),
368
+ errorCode: 'CCAP-CUC-RCTC0',
369
+
370
+ additionalContent: {
371
+ chunks: chunks,
372
+ },
373
+ });
374
+ }
375
+
376
+ pageContent += chunk.chunkContent;
377
+ }
378
+
379
+ return pageContent;
380
+ } catch (error) {
381
+ throw new DyFM_Error({
382
+ ...this.getDefaultErrorSettings('reassembleChunks', error, issuer),
383
+ errorCode: 'CCAP-CUC-RC0',
384
+ });
385
+ }
386
+ }
387
+
388
+ /**
389
+ * Find the best break point within the chunk size
390
+ * @param text - The text to search in
391
+ * @param maxIndex - Maximum index to search up to
392
+ * @returns The best break point or null if not found
393
+ */
394
+ private static findBestBreakPoint(text: string, maxIndex: number): DyNTS_DAI_DocChunking_BreakPoint | null {
395
+ for (const breakPoint of this.breakPoints) {
396
+ const index: number = this.findLastOccurrence(text, breakPoint.pattern, maxIndex);
397
+
398
+ if (index > 0) {
399
+ return {
400
+ index: index + breakPoint.includeLength,
401
+ level: breakPoint.level
402
+ };
403
+ }
404
+ }
405
+ return null;
406
+ }
407
+
408
+ /**
409
+ * Parse header hierarchy from the content
410
+ * @param content - The content to parse
411
+ * @returns Array of header positions and levels
412
+ */
413
+ private static parseHeaderHierarchy(content: string): DyNTS_DAI_DocChunking_Header[] {
414
+ const headers: DyNTS_DAI_DocChunking_Header[] = [];
415
+ const lines: string[] = content.split('\n');
416
+ let currentIndex: number = 0;
417
+
418
+ for (const line of lines) {
419
+ const trimmedLine: string = line.trim();
420
+
421
+ // Check if line starts with # and determine the level
422
+ if (trimmedLine.startsWith('#')) {
423
+ const match: RegExpMatchArray | null = trimmedLine.match(/^(#+)\s+(.+)$/);
424
+
425
+ if (match) {
426
+ const level: number = match[1].length; // Count the number of # symbols
427
+ const headerText: string = trimmedLine;
428
+
429
+ if (level >= 1 && level <= 4) { // Only support levels 1-4
430
+ headers.push({
431
+ index: currentIndex,
432
+ level: level,
433
+ header: headerText
434
+ });
435
+ }
436
+ }
437
+ }
438
+
439
+ currentIndex += line.length + 1; // +1 for the newline
440
+ }
441
+
442
+ return headers;
443
+ }
444
+
445
+ /**
446
+ * Update the last headers map based on current position
447
+ * @param headerHierarchy - The parsed header hierarchy
448
+ * @param currentPosition - Current position in content
449
+ * @param lastHeaders - Map to store last headers of each level
450
+ */
451
+ private static updateLastHeaders(
452
+ headerHierarchy: DyNTS_DAI_DocChunking_Header[],
453
+ currentPosition: number,
454
+ lastHeaders: Map<number, string>
455
+ ): void {
456
+ // Find all headers that come before current position (not including current position)
457
+ for (const header of headerHierarchy) {
458
+ if (header.index < currentPosition) {
459
+ // Set this header as the last header for its level
460
+ lastHeaders.set(header.level, header.header);
461
+
462
+ // Clear all lower level headers (higher level numbers) when any header comes
463
+ // For example, if we see a level 2 header, clear levels 3, 4
464
+ // If we see a level 1 header, clear levels 2, 3, 4
465
+ for (let level: number = header.level + 1; level <= 4; level++) {
466
+ lastHeaders.delete(level);
467
+ }
468
+ }
469
+ }
470
+ }
471
+
472
+ /**
473
+ * Visszaadja a chunk-hoz tartozó releváns szülő fejléceket a hierarchia alapján.
474
+ * @param headerHierarchy - A feldolgozott fejléc-hierarchia
475
+ * @param startIndex - A chunk kezdőindexe az eredeti tartalomban
476
+ * @param endIndex - A chunk végindexe az eredeti tartalomban
477
+ * @param lastHeaders - Az utolsó ismert fejlécek szintenként
478
+ * @returns A releváns szülő fejlécek tömbje
479
+ */
480
+ private static getRelevantHeaders(
481
+ headerHierarchy: DyNTS_DAI_DocChunking_Header[],
482
+ startIndex: number,
483
+ endIndex: number,
484
+ lastHeaders: Map<number, string>
485
+ ): string[] {
486
+ // Keressük meg az első fejlécet a chunkban
487
+ const firstHeaderInChunk: DyNTS_DAI_DocChunking_Header | undefined = headerHierarchy.find(header =>
488
+ header.index >= startIndex && header.index < endIndex
489
+ );
490
+
491
+ if (!firstHeaderInChunk) {
492
+ // Nincs fejléc a chunkban, a legmagasabb szintű utolsó fejlécet használjuk
493
+ let highestLevel: number = 0;
494
+ let highestHeader: string = '';
495
+
496
+ for (const [level, header] of lastHeaders.entries()) {
497
+ if (level > highestLevel) {
498
+ highestLevel = level;
499
+ highestHeader = header;
500
+ }
501
+ }
502
+ return highestHeader ? [highestHeader] : [];
503
+ }
504
+
505
+ // Szülő fejlécek összegyűjtése az első fejléc szintje alapján
506
+ const relevantHeaders: string[] = [];
507
+ for (let level: number = 1; level < firstHeaderInChunk.level; level++) {
508
+ const parentHeader: string | undefined = lastHeaders.get(level);
509
+
510
+ if (parentHeader) {
511
+ relevantHeaders.push(parentHeader);
512
+ }
513
+ }
514
+ return relevantHeaders;
515
+ }
516
+
517
+ /**
518
+ * Build hierarchical chunk path based on header structure
519
+ * @param pageName - The page name
520
+ * @param headerHierarchy - The parsed header hierarchy
521
+ * @param startIndex - Start index of the chunk in original content
522
+ * @param endIndex - End index of the chunk in original content
523
+ * @param lastHeaders - Map of last headers for each level
524
+ * @returns Hierarchical path array
525
+ */
526
+ private static buildChunkPath(
527
+ pageName: string,
528
+ headerHierarchy: DyNTS_DAI_DocChunking_Header[],
529
+ startIndex: number,
530
+ endIndex: number,
531
+ lastHeaders: Map<number, string>
532
+ ): string[] {
533
+ // Find the first header within this chunk
534
+ const firstHeaderInChunk: DyNTS_DAI_DocChunking_Header | undefined = headerHierarchy.find(header =>
535
+ header.index >= startIndex && header.index < endIndex
536
+ );
537
+
538
+ if (!firstHeaderInChunk) {
539
+ // No header in chunk, use the highest level from lastHeaders as parent
540
+ const pathParts: string[] = [pageName];
541
+
542
+ // Find the highest level header from lastHeaders
543
+ let highestLevel: number = 0;
544
+ let highestHeader: string = '';
545
+
546
+ for (const [level, header] of lastHeaders.entries()) {
547
+ if (level > highestLevel) {
548
+ highestLevel = level;
549
+ highestHeader = header;
550
+ }
551
+ }
552
+
553
+ if (highestHeader) {
554
+ pathParts.push(highestHeader);
555
+ }
556
+
557
+ return pathParts;
558
+ }
559
+
560
+ // Build the path hierarchy
561
+ const pathParts: string[] = [pageName];
562
+
563
+ // Add parent headers from lastHeaders (these are the actual parent headers)
564
+ for (let level = 1; level < firstHeaderInChunk.level; level++) {
565
+ const parentHeader: string | undefined = lastHeaders.get(level);
566
+
567
+ if (parentHeader) {
568
+ pathParts.push(parentHeader); // Include the full header with markdown symbols
569
+ }
570
+ }
571
+
572
+ // Add the first header in chunk
573
+ pathParts.push(firstHeaderInChunk.header); // Include the full header with markdown symbols
574
+
575
+ return pathParts;
576
+ }
577
+
578
+ /**
579
+ * Add header hierarchy to the beginning of a chunk
580
+ * @param chunkContent - The chunk content
581
+ * @param headerHierarchy - The parsed header hierarchy
582
+ * @param startIndex - Start index of the chunk in original content
583
+ * @param endIndex - End index of the chunk in original content
584
+ * @param lastHeaders - Map of last headers for each level
585
+ * @returns Content with header hierarchy added
586
+ */
587
+ private static addHeaderHierarchy(
588
+ chunkContent: string,
589
+ headerHierarchy: DyNTS_DAI_DocChunking_Header[],
590
+ startIndex: number,
591
+ endIndex: number,
592
+ lastHeaders: Map<number, string>
593
+ ): string {
594
+ const relevantHeaders: string[] = this.getRelevantHeaders(headerHierarchy, startIndex, endIndex, lastHeaders);
595
+
596
+ if (relevantHeaders.length > 0) {
597
+ return relevantHeaders.join('\n') + '\n\n' + chunkContent;
598
+ }
599
+
600
+ return chunkContent;
601
+ }
602
+
603
+ /**
604
+ * Helper method to find the last occurrence of a pattern within a specified range
605
+ * @param text - The text to search in
606
+ * @param pattern - The pattern to search for
607
+ * @param maxIndex - Maximum index to search up to
608
+ * @returns The index of the last occurrence, or -1 if not found
609
+ */
610
+ private static findLastOccurrence(text: string, pattern: string, maxIndex: number): number {
611
+ const searchText: string = text.substring(0, maxIndex);
612
+ const lastIndex: number = searchText.lastIndexOf(pattern);
613
+
614
+ return lastIndex;
615
+ }
616
+
617
+ protected static getDefaultErrorSettings(
618
+ fnName: string,
619
+ error: DyFM_AnyError,
620
+ issuer: string,
621
+ /** @deprecated we wont support the separate user message in the future, use the message instead */
622
+ useMessageAsUserMessage: boolean = true,
623
+ /* errorCode: string, */
624
+ ): DyFM_Error_Settings {
625
+ return {
626
+ status: (error as DyFM_Error)?.___status ?? 500,
627
+ message: (error as Error)?.message ??
628
+ (error as DyFM_Error)?._message ??
629
+ `${fnName} was UNSUCCESSFUL (${DyNTS_global_settings.systemShortCodeName})`,
630
+ addECToUserMsg: !(error as DyFM_Error)?.__userMessage,
631
+ userMessage: (error as DyFM_Error)?.__userMessage ??
632
+ (useMessageAsUserMessage ? (error as Error)?.message : this.defaultErrorUserMsg),
633
+ /* errorCode: errorCode, */
634
+ issuer: issuer,
635
+ issuerService: this.constructor?.name,
636
+ error: error,
637
+ };
638
+ }
639
+ }