@futdevpro/nts-dynamo 1.15.157 → 1.15.163

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 (642) hide show
  1. package/LICENSE +17 -17
  2. package/build/_modules/account-security/_enums/account-challenge-purpose.type-enum.d.ts +7 -1
  3. package/build/_modules/account-security/_enums/account-challenge-purpose.type-enum.d.ts.map +1 -1
  4. package/build/_modules/account-security/_enums/account-challenge-purpose.type-enum.js +6 -0
  5. package/build/_modules/account-security/_enums/account-challenge-purpose.type-enum.js.map +1 -1
  6. package/build/_modules/account-security/account-challenge.control-service.d.ts +1 -1
  7. package/build/_modules/account-security/account-challenge.control-service.d.ts.map +1 -1
  8. package/build/_modules/account-security/account-challenge.control-service.js +1 -1
  9. package/build/_modules/account-security/account-challenge.control-service.js.map +1 -1
  10. package/build/_modules/privacy-lifecycle/_models/privacy-export-artifact.interface.d.ts +71 -0
  11. package/build/_modules/privacy-lifecycle/_models/privacy-export-artifact.interface.d.ts.map +1 -0
  12. package/build/_modules/privacy-lifecycle/_models/privacy-export-artifact.interface.js +3 -0
  13. package/build/_modules/privacy-lifecycle/_models/privacy-export-artifact.interface.js.map +1 -0
  14. package/build/_modules/privacy-lifecycle/index.d.ts +3 -0
  15. package/build/_modules/privacy-lifecycle/index.d.ts.map +1 -1
  16. package/build/_modules/privacy-lifecycle/index.js +5 -1
  17. package/build/_modules/privacy-lifecycle/index.js.map +1 -1
  18. package/build/_modules/privacy-lifecycle/privacy-export-artifact.control-service.d.ts +48 -0
  19. package/build/_modules/privacy-lifecycle/privacy-export-artifact.control-service.d.ts.map +1 -0
  20. package/build/_modules/privacy-lifecycle/privacy-export-artifact.control-service.js +332 -0
  21. package/build/_modules/privacy-lifecycle/privacy-export-artifact.control-service.js.map +1 -0
  22. package/build/_modules/privacy-lifecycle/privacy-export-artifact.mongo-store.d.ts +25 -0
  23. package/build/_modules/privacy-lifecycle/privacy-export-artifact.mongo-store.d.ts.map +1 -0
  24. package/build/_modules/privacy-lifecycle/privacy-export-artifact.mongo-store.js +126 -0
  25. package/build/_modules/privacy-lifecycle/privacy-export-artifact.mongo-store.js.map +1 -0
  26. package/package.json +11 -4
  27. package/.c8rc.json +0 -26
  28. package/.copilot/patterns.json +0 -8
  29. package/.cursor/rules/__assistant_guide.mdc +0 -30
  30. package/.cursor/rules/__main.mdc +0 -64
  31. package/.cursor/rules/_ag_backend-structure.mdc +0 -86
  32. package/.cursor/rules/_ag_backend.mdc +0 -16
  33. package/.cursor/rules/_ag_debug.mdc +0 -8
  34. package/.cursor/rules/_ag_documentation_writing_rules.mdc +0 -372
  35. package/.cursor/rules/_ag_file-refactoring.mdc +0 -113
  36. package/.cursor/rules/_ag_fixes_rules.mdc +0 -6
  37. package/.cursor/rules/_ag_frontend-structure.mdc +0 -87
  38. package/.cursor/rules/_ag_frontend.mdc +0 -40
  39. package/.cursor/rules/_ag_import-rules.mdc +0 -45
  40. package/.cursor/rules/_ag_naming.mdc +0 -116
  41. package/.cursor/rules/_ag_running_commands.mdc +0 -5
  42. package/.cursor/rules/_ag_server-controller.mdc +0 -6
  43. package/.cursor/rules/_ag_should-be.mdc +0 -7
  44. package/.cursor/rules/_ag_swearing.mdc +0 -47
  45. package/.cursor/rules/ai_development_guide.md +0 -61
  46. package/.cursor/rules/ai_directives.md +0 -114
  47. package/.cursor/rules/cursor-rules.md +0 -160
  48. package/.cursor/rules/default-command.mdc +0 -465
  49. package/.cursor/rules/error_code_pattern.md +0 -40
  50. package/.cursor/rules/saved rule mcp server use.md +0 -16
  51. package/.dynamo/pipeline.cicd.config.json +0 -190
  52. package/.dynamo/version-bump.config.json +0 -5
  53. package/.github/workflows/main.yml +0 -438
  54. package/.husky/pre-commit +0 -3
  55. package/.vscode/settings.json +0 -11
  56. package/BuildPackage.bat +0 -1
  57. package/HOWTO.md +0 -15
  58. package/__documentations/2026-04-28-logs-module.md +0 -49
  59. package/__documentations/2026-05-17-oai-compatible-providers.md +0 -229
  60. package/__documentations/2026-05-17-static-client-serving-howto.md +0 -144
  61. package/__documentations/2026-06-01-fr041-cors-middleware.md +0 -96
  62. package/__documentations/2026-06-01-fr047-p2p3-function-calling.md +0 -81
  63. package/__documentations/2026-06-15-fr193-memory-guard.md +0 -73
  64. package/__documentations/2026-08-08-fr292-app-version-header.md +0 -38
  65. package/__documentations/2026-08-14-field-encryption-mongoose-document-spread.md +0 -124
  66. package/__documentations/2026-08-18-artifact-compiler.md +0 -46
  67. package/__documentations/2026-08-18-mongo-transaction-control-service.md +0 -82
  68. package/__documentations/2026-08-18-standalone-account-security-and-privacy-bedrock.md +0 -132
  69. package/__documentations/2026-08-21-distributed-rate-limit-bfr-ctm-010.md +0 -59
  70. package/__documentations/2026-08-22-bfr-ctm-018-content-free-endpoint-errors.md +0 -54
  71. package/__documentations/2026-08-22-bfr-ctm-020-content-free-request-telemetry.md +0 -65
  72. package/__documentations/2026-08-22-content-free-process-error-boundary.md +0 -111
  73. package/__documentations/2026-08-22-npm-token-state-classifier.md +0 -92
  74. package/__documentations/nts-integration-tests-2026-03-17.md +0 -26
  75. package/__documentations/plans/BEDROCK-HYPERPLAN.md +0 -95
  76. package/_specifications/BACKLOG.md +0 -92
  77. package/_specifications/TODO.md +0 -15
  78. package/_specifications/agent.md +0 -138
  79. package/eslint.config.js +0 -3
  80. package/nodemon.json +0 -24
  81. package/pnpm-workspace.yaml +0 -6
  82. package/scripts/_seed-out/aim-seed.fixtures.ts +0 -161
  83. package/scripts/_seed-out/image-raw.json +0 -1
  84. package/scripts/_seed-out/llm-expand-raw.json +0 -60
  85. package/scripts/_seed-out/sample-image.png +0 -0
  86. package/scripts/_seed-out/seed-raw.json +0 -153
  87. package/scripts/ai-fixture-seed.js +0 -126
  88. package/scripts/run-coverage-tests.js +0 -28
  89. package/spec/support/helpers/spec-reporter-loader.js +0 -359
  90. package/spec/support/helpers/ts-node-helper.js +0 -93
  91. package/spec/support/jasmine.coverage.json +0 -24
  92. package/spec/support/jasmine.json +0 -24
  93. package/src/_assets/dynamo-nts-logo-128.png +0 -0
  94. package/src/_assets/dynamo-nts-logo-256.png +0 -0
  95. package/src/_assets/dynamo-nts-logo-512.png +0 -0
  96. package/src/_assets/dynamo-nts-logo-64.png +0 -0
  97. package/src/_collections/app-version-header.util.spec.ts +0 -108
  98. package/src/_collections/app-version-header.util.ts +0 -74
  99. package/src/_collections/archive-service-registry.const.ts +0 -21
  100. package/src/_collections/archive.util.spec.ts +0 -57
  101. package/src/_collections/archive.util.ts +0 -18
  102. package/src/_collections/atlas-default-db-options.const.ts +0 -10
  103. package/src/_collections/client-safe-error.util.spec.ts +0 -151
  104. package/src/_collections/client-safe-error.util.ts +0 -107
  105. package/src/_collections/default-fallback-cache-max-age.const.spec.ts +0 -11
  106. package/src/_collections/default-fallback-cache-max-age.const.ts +0 -2
  107. package/src/_collections/default-not-found-page.const.spec.ts +0 -19
  108. package/src/_collections/default-not-found-page.const.ts +0 -22
  109. package/src/_collections/default-socket-path.const.spec.ts +0 -12
  110. package/src/_collections/default-socket-path.const.ts +0 -2
  111. package/src/_collections/field-encryption.util.spec.ts +0 -195
  112. package/src/_collections/field-encryption.util.ts +0 -222
  113. package/src/_collections/get-environment-settings.util.spec.ts +0 -210
  114. package/src/_collections/get-environment-settings.util.ts +0 -49
  115. package/src/_collections/global-settings.const.ts +0 -126
  116. package/src/_collections/load-shed.util.spec.ts +0 -62
  117. package/src/_collections/load-shed.util.ts +0 -51
  118. package/src/_collections/mongo-reconnect-guard.util.spec.ts +0 -52
  119. package/src/_collections/mongo-reconnect-guard.util.ts +0 -172
  120. package/src/_collections/npm-token-check.util.spec.ts +0 -218
  121. package/src/_collections/npm-token-check.util.ts +0 -327
  122. package/src/_collections/sample.env +0 -21
  123. package/src/_collections/security-headers.util.spec.ts +0 -98
  124. package/src/_collections/security-headers.util.ts +0 -96
  125. package/src/_collections/signed-url.util.spec.ts +0 -198
  126. package/src/_collections/signed-url.util.ts +0 -170
  127. package/src/_collections/star.controller.spec.ts +0 -224
  128. package/src/_collections/star.controller.ts +0 -130
  129. package/src/_collections/static-cache-control.util.spec.ts +0 -47
  130. package/src/_collections/static-cache-control.util.ts +0 -25
  131. package/src/_enums/data-model-type.enum.ts +0 -14
  132. package/src/_enums/data-service-function.enum.ts +0 -24
  133. package/src/_enums/predefined-data-types.enum.ts +0 -17
  134. package/src/_enums/route-security.enum.ts +0 -12
  135. package/src/_models/control-models/api-call-params.control-model.spec.ts +0 -152
  136. package/src/_models/control-models/api-call-params.control-model.ts +0 -142
  137. package/src/_models/control-models/app-ext-system-controls.control-model.spec.ts +0 -52
  138. package/src/_models/control-models/app-ext-system-controls.control-model.ts +0 -9
  139. package/src/_models/control-models/app-params.control-model.spec.ts +0 -229
  140. package/src/_models/control-models/app-params.control-model.ts +0 -137
  141. package/src/_models/control-models/app-system-controls.control-model.spec.ts +0 -31
  142. package/src/_models/control-models/app-system-controls.control-model.ts +0 -9
  143. package/src/_models/control-models/endpoint-params.control-model.spec.ts +0 -754
  144. package/src/_models/control-models/endpoint-params.control-model.ts +0 -575
  145. package/src/_models/control-models/http-settings.control-model.spec.ts +0 -77
  146. package/src/_models/control-models/http-settings.control-model.ts +0 -37
  147. package/src/_models/control-models/system-control.control-model.spec.ts +0 -27
  148. package/src/_models/control-models/system-control.control-model.ts +0 -12
  149. package/src/_models/data-models/schema-migration.data-model.ts +0 -50
  150. package/src/_models/interfaces/app-version-header-settings.interface.ts +0 -17
  151. package/src/_models/interfaces/certification-settings.interface.ts +0 -7
  152. package/src/_models/interfaces/compare-data-options.interface.ts +0 -27
  153. package/src/_models/interfaces/compare-data-result.interface.ts +0 -12
  154. package/src/_models/interfaces/cors-settings.interface.spec.ts +0 -52
  155. package/src/_models/interfaces/cors-settings.interface.ts +0 -56
  156. package/src/_models/interfaces/db-query-options.interface.ts +0 -33
  157. package/src/_models/interfaces/environment-settings.interface.ts +0 -59
  158. package/src/_models/interfaces/global-log-settings.interface.ts +0 -171
  159. package/src/_models/interfaces/global-service-settings.interface.ts +0 -47
  160. package/src/_models/interfaces/global-settings.interface.ts +0 -294
  161. package/src/_models/interfaces/migration-entry.interface.ts +0 -19
  162. package/src/_models/interfaces/mongo-transaction-settings.interface.ts +0 -9
  163. package/src/_models/interfaces/request-telemetry-settings.interface.ts +0 -9
  164. package/src/_models/interfaces/request-telemetry-snapshot.interface.ts +0 -30
  165. package/src/_models/interfaces/routing-module-settings.interface.ts +0 -21
  166. package/src/_models/interfaces/security-headers-settings.interface.ts +0 -50
  167. package/src/_models/interfaces/signed-url-verify-result.interface.ts +0 -13
  168. package/src/_models/interfaces/static-client-settings.interface.spec.ts +0 -29
  169. package/src/_models/interfaces/static-client-settings.interface.ts +0 -36
  170. package/src/_models/types/db-update.type.ts +0 -100
  171. package/src/_modules/account-security/_enums/account-challenge-purpose.type-enum.ts +0 -5
  172. package/src/_modules/account-security/_enums/account-refresh-token-state.type-enum.ts +0 -6
  173. package/src/_modules/account-security/_enums/account-session-state.type-enum.ts +0 -6
  174. package/src/_modules/account-security/_models/account-challenge-adapter.interface.ts +0 -17
  175. package/src/_modules/account-security/_models/account-challenge-issued.interface.ts +0 -6
  176. package/src/_modules/account-security/_models/account-challenge-record.interface.ts +0 -13
  177. package/src/_modules/account-security/_models/account-challenge-result.interface.ts +0 -8
  178. package/src/_modules/account-security/_models/account-challenge-settings.interface.ts +0 -9
  179. package/src/_modules/account-security/_models/account-password-policy.interface.ts +0 -11
  180. package/src/_modules/account-security/_models/account-password-verification.interface.ts +0 -5
  181. package/src/_modules/account-security/_models/account-refresh-token-record.interface.ts +0 -13
  182. package/src/_modules/account-security/_models/account-session-adapter.interface.ts +0 -19
  183. package/src/_modules/account-security/_models/account-session-claims.interface.ts +0 -7
  184. package/src/_modules/account-security/_models/account-session-context.interface.ts +0 -6
  185. package/src/_modules/account-security/_models/account-session-create.interface.ts +0 -8
  186. package/src/_modules/account-security/_models/account-session-record.interface.ts +0 -21
  187. package/src/_modules/account-security/_models/account-session-rotate.interface.ts +0 -11
  188. package/src/_modules/account-security/_models/account-session-settings.interface.ts +0 -11
  189. package/src/_modules/account-security/_models/account-session-token-pair.interface.ts +0 -8
  190. package/src/_modules/account-security/_models/account-session-view.interface.ts +0 -13
  191. package/src/_modules/account-security/account-challenge.control-service.spec.ts +0 -195
  192. package/src/_modules/account-security/account-challenge.control-service.ts +0 -164
  193. package/src/_modules/account-security/account-password.control-service.spec.ts +0 -96
  194. package/src/_modules/account-security/account-password.control-service.ts +0 -288
  195. package/src/_modules/account-security/account-session.control-service.spec.ts +0 -294
  196. package/src/_modules/account-security/account-session.control-service.ts +0 -376
  197. package/src/_modules/account-security/index.ts +0 -31
  198. package/src/_modules/admin-auth/_models/admin-api-key-config.interface.ts +0 -33
  199. package/src/_modules/admin-auth/admin-api-key.auth-service.spec.ts +0 -200
  200. package/src/_modules/admin-auth/admin-api-key.auth-service.ts +0 -220
  201. package/src/_modules/admin-auth/index.ts +0 -2
  202. package/src/_modules/ai/_collections/ai-model-config-validator.util.spec.ts +0 -150
  203. package/src/_modules/ai/_collections/ai-model-config-validator.util.ts +0 -131
  204. package/src/_modules/ai/_collections/ai-provider-error.util.ts +0 -144
  205. package/src/_modules/ai/_models/ai-input-interfaces.ts +0 -117
  206. package/src/_modules/ai/_models/ai-test-generation-result.interface.ts +0 -16
  207. package/src/_modules/ai/_models/interfaces/dynts-ai-cost-event-callback.interface.ts +0 -14
  208. package/src/_modules/ai/_models/interfaces/dynts-ai-cost-event.interface.ts +0 -56
  209. package/src/_modules/ai/_models/interfaces/dynts-ai-provider-error.interface.ts +0 -16
  210. package/src/_modules/ai/_modules/ai-mock/_collections/aim-default-collection.util.spec.ts +0 -72
  211. package/src/_modules/ai/_modules/ai-mock/_collections/aim-default-collection.util.ts +0 -71
  212. package/src/_modules/ai/_modules/ai-mock/_collections/aim-fixture-match.util.spec.ts +0 -57
  213. package/src/_modules/ai/_modules/ai-mock/_collections/aim-fixture-match.util.ts +0 -60
  214. package/src/_modules/ai/_modules/ai-mock/_collections/aim-fixture-serializer.util.spec.ts +0 -56
  215. package/src/_modules/ai/_modules/ai-mock/_collections/aim-fixture-serializer.util.ts +0 -117
  216. package/src/_modules/ai/_modules/ai-mock/_enums/aim-modality.enum.ts +0 -28
  217. package/src/_modules/ai/_modules/ai-mock/_models/interfaces/aim-call-input.interface.ts +0 -14
  218. package/src/_modules/ai/_modules/ai-mock/_models/interfaces/aim-error.interface.ts +0 -11
  219. package/src/_modules/ai/_modules/ai-mock/_models/interfaces/aim-fixture.interface.ts +0 -30
  220. package/src/_modules/ai/_modules/ai-mock/_models/interfaces/aim-request.interface.ts +0 -19
  221. package/src/_modules/ai/_modules/ai-mock/_models/interfaces/aim-service-collection.interface.ts +0 -20
  222. package/src/_modules/ai/_modules/ai-mock/_services/ai-embedding-mock.service.spec.ts +0 -115
  223. package/src/_modules/ai/_modules/ai-mock/_services/ai-embedding-mock.service.ts +0 -233
  224. package/src/_modules/ai/_modules/ai-mock/_services/aim-fixture-harness.service.spec.ts +0 -134
  225. package/src/_modules/ai/_modules/ai-mock/_services/aim-fixture-harness.service.ts +0 -127
  226. package/src/_modules/ai/_modules/ai-mock/_services/aim-fixture-pipeline.spec.ts +0 -105
  227. package/src/_modules/ai/_modules/ai-mock/_services/aim-fixture-store.service.spec.ts +0 -50
  228. package/src/_modules/ai/_modules/ai-mock/_services/aim-fixture-store.service.ts +0 -65
  229. package/src/_modules/ai/_modules/ai-mock/_services/aim-integration-proof.spec.ts +0 -92
  230. package/src/_modules/ai/_modules/ai-mock/_services/aim-mock.service.spec.ts +0 -112
  231. package/src/_modules/ai/_modules/ai-mock/_services/aim-mock.service.ts +0 -155
  232. package/src/_modules/ai/_modules/ai-mock/fixtures/aim-text.fixtures.ts +0 -649
  233. package/src/_modules/ai/_modules/ai-mock/index.ts +0 -47
  234. package/src/_modules/ai/_modules/anthropic/_services/aai-user-key.control-service.ts +0 -138
  235. package/src/_modules/ai/_modules/anthropic/index.ts +0 -5
  236. package/src/_modules/ai/_modules/document-ai/_collections/dai-chunking.util.spec.ts +0 -242
  237. package/src/_modules/ai/_modules/document-ai/_collections/dai-chunking.util.ts +0 -639
  238. package/src/_modules/ai/_modules/document-ai/_collections/dai-code-chunking.util.spec.ts +0 -295
  239. package/src/_modules/ai/_modules/document-ai/_collections/dai-code-chunking.util.ts +0 -552
  240. package/src/_modules/ai/_modules/document-ai/_collections/dai-document.util.spec.ts +0 -209
  241. package/src/_modules/ai/_modules/document-ai/_collections/dai-document.util.ts +0 -85
  242. package/src/_modules/ai/_modules/document-ai/_enums/dai-compare-result-type.enum.ts +0 -8
  243. package/src/_modules/ai/_modules/document-ai/_models/data-models/dai-doc-chunk.data-model.ts +0 -146
  244. package/src/_modules/ai/_modules/document-ai/_models/data-models/dai-doc-page.data-model.ts +0 -163
  245. package/src/_modules/ai/_modules/document-ai/_models/data-models/dai-document.data-model.ts +0 -100
  246. package/src/_modules/ai/_modules/document-ai/_models/interfaces/dai-code-chunk.interface.ts +0 -68
  247. package/src/_modules/ai/_modules/document-ai/_models/interfaces/dai-doc-chunk-compare-result.interface.ts +0 -18
  248. package/src/_modules/ai/_modules/document-ai/_models/interfaces/dai-doc-page-compare-result.interface.ts +0 -19
  249. package/src/_modules/ai/_modules/document-ai/_models/interfaces/dai-document-compare-result.interface.ts +0 -25
  250. package/src/_modules/ai/_modules/document-ai/index.ts +0 -30
  251. package/src/_modules/ai/_modules/fdp-ai/_services/fdpai-user-key.control-service.ts +0 -189
  252. package/src/_modules/ai/_modules/fdp-ai/index.ts +0 -5
  253. package/src/_modules/ai/_modules/open-ai/_collections/oai-global-settings.const.ts +0 -9
  254. package/src/_modules/ai/_modules/open-ai/_collections/oai-llm-predefined-requests-hu.conts.ts +0 -83
  255. package/src/_modules/ai/_modules/open-ai/_collections/oai-llm-predefined-requests.conts.ts +0 -76
  256. package/src/_modules/ai/_modules/open-ai/_enums/oai-gpt-message-role.enum.ts +0 -45
  257. package/src/_modules/ai/_modules/open-ai/_models/interfaces/oai-global-settings.interface.ts +0 -8
  258. package/src/_modules/ai/_modules/open-ai/_models/interfaces/oai-gpt-message.interface.ts +0 -7
  259. package/src/_modules/ai/_modules/open-ai/_models/interfaces/oai-llm-predefined-requests.interface.ts +0 -57
  260. package/src/_modules/ai/_modules/open-ai/_services/data-services/oai-doc-chunk-data.service.ts +0 -293
  261. package/src/_modules/ai/_modules/open-ai/_services/data-services/oai-doc-page.data-service.ts +0 -572
  262. package/src/_modules/ai/_modules/open-ai/_services/data-services/oai-document.data-service.spec.ts +0 -342
  263. package/src/_modules/ai/_modules/open-ai/_services/data-services/oai-document.data-service.ts +0 -435
  264. package/src/_modules/ai/_modules/open-ai/_services/data-services/oai-vector-data.service.spec.ts +0 -550
  265. package/src/_modules/ai/_modules/open-ai/_services/data-services/oai-vector-data.service.ts +0 -631
  266. package/src/_modules/ai/_modules/open-ai/_services/oai-embedding.control-service.spec.ts +0 -332
  267. package/src/_modules/ai/_modules/open-ai/_services/oai-embedding.control-service.ts +0 -132
  268. package/src/_modules/ai/_modules/open-ai/_services/oai-llm-chat.service-base.spec.ts +0 -462
  269. package/src/_modules/ai/_modules/open-ai/_services/oai-llm-chat.service-base.ts +0 -635
  270. package/src/_modules/ai/_modules/open-ai/_services/oai-llm.service-base.spec.ts +0 -489
  271. package/src/_modules/ai/_modules/open-ai/_services/oai-llm.service-base.tools.spec.ts +0 -173
  272. package/src/_modules/ai/_modules/open-ai/_services/oai-llm.service-base.ts +0 -1085
  273. package/src/_modules/ai/_modules/open-ai/_services/oai-user-key.control-service.ts +0 -157
  274. package/src/_modules/ai/_modules/open-ai/index.ts +0 -74
  275. package/src/_modules/ai/_services/ai-embedding-provider.registry.spec.ts +0 -110
  276. package/src/_modules/ai/_services/ai-embedding-provider.registry.ts +0 -114
  277. package/src/_modules/ai/_services/ai-embedding.service-base.spec.ts +0 -98
  278. package/src/_modules/ai/_services/ai-embedding.service-base.ts +0 -48
  279. package/src/_modules/ai/_services/ai-llm-chat.service-base.spec.ts +0 -229
  280. package/src/_modules/ai/_services/ai-llm-chat.service-base.ts +0 -68
  281. package/src/_modules/ai/_services/ai-llm.service-base.reconciler.spec.ts +0 -133
  282. package/src/_modules/ai/_services/ai-llm.service-base.spec.ts +0 -250
  283. package/src/_modules/ai/_services/ai-llm.service-base.ts +0 -599
  284. package/src/_modules/ai/_services/ai-provider.service-base.spec.ts +0 -158
  285. package/src/_modules/ai/_services/ai-provider.service-base.ts +0 -67
  286. package/src/_modules/ai/_services/ai-user-key.service-base.ts +0 -59
  287. package/src/_modules/ai/_services/lmstudio-embedding.control-service.spec.ts +0 -197
  288. package/src/_modules/ai/_services/lmstudio-embedding.control-service.ts +0 -399
  289. package/src/_modules/ai/index.ts +0 -33
  290. package/src/_modules/artifact-compiler/_enums/artifact-compile-outcome.type-enum.ts +0 -5
  291. package/src/_modules/artifact-compiler/_enums/artifact-compile-stage.type-enum.ts +0 -8
  292. package/src/_modules/artifact-compiler/_enums/artifact-retry-class.type-enum.ts +0 -6
  293. package/src/_modules/artifact-compiler/_models/artifact-compile.interface.ts +0 -35
  294. package/src/_modules/artifact-compiler/artifact-compiler.control-service.spec.ts +0 -151
  295. package/src/_modules/artifact-compiler/artifact-compiler.control-service.ts +0 -356
  296. package/src/_modules/artifact-compiler/index.ts +0 -9
  297. package/src/_modules/assistant/_collections/ass-global-settings.const.ts +0 -13
  298. package/src/_modules/assistant/_collections/ass.util.spec.ts +0 -176
  299. package/src/_modules/assistant/_collections/ass.util.ts +0 -50
  300. package/src/_modules/assistant/_models/ass-global-settings.interface.ts +0 -15
  301. package/src/_modules/assistant/_services/ass-io.control-service.spec.ts +0 -140
  302. package/src/_modules/assistant/_services/ass-io.control-service.ts +0 -74
  303. package/src/_modules/assistant/_services/ass-main.control-service.spec.ts +0 -192
  304. package/src/_modules/assistant/_services/ass-main.control-service.ts +0 -107
  305. package/src/_modules/assistant/index.ts +0 -19
  306. package/src/_modules/bot/_collections/bot-default-commands.const.ts +0 -12
  307. package/src/_modules/bot/_collections/bot-global-settings.const.ts +0 -39
  308. package/src/_modules/bot/_models/bot-channel-wrapper.interface.ts +0 -62
  309. package/src/_modules/bot/_models/bot-command.interface.ts +0 -8
  310. package/src/_modules/bot/_models/bot-global-settings.interface.ts +0 -96
  311. package/src/_modules/bot/_models/bot-last-mention-date.interface.ts +0 -6
  312. package/src/_modules/bot/_models/bot-last-message-date.interface.ts +0 -5
  313. package/src/_modules/bot/_models/bot-message-wrapper.interface.ts +0 -90
  314. package/src/_modules/bot/_models/bot-user-wrapper.interface.ts +0 -41
  315. package/src/_modules/bot/_modules/discord-bot/_models/dib-platform.types.ts +0 -10
  316. package/src/_modules/bot/_modules/discord-bot/_services/dib-messaging-provider.control-service.spec.ts +0 -431
  317. package/src/_modules/bot/_modules/discord-bot/_services/dib-messaging-provider.control-service.ts +0 -641
  318. package/src/_modules/bot/_modules/discord-bot/index.ts +0 -12
  319. package/src/_modules/bot/_modules/dynamo-bot/_collections/dyb-operations.util.spec.ts +0 -160
  320. package/src/_modules/bot/_modules/dynamo-bot/_collections/dyb-operations.util.ts +0 -55
  321. package/src/_modules/bot/_modules/dynamo-bot/_models/dyb-platform.types.ts +0 -15
  322. package/src/_modules/bot/_modules/dynamo-bot/_services/dyb-messaging-provider.control-service.spec.ts +0 -374
  323. package/src/_modules/bot/_modules/dynamo-bot/_services/dyb-messaging-provider.control-service.ts +0 -447
  324. package/src/_modules/bot/_modules/dynamo-bot/index.ts +0 -15
  325. package/src/_modules/bot/_modules/slack-bot/_models/slb-platform.types.ts +0 -9
  326. package/src/_modules/bot/_modules/slack-bot/_services/slb-messaging-provider.control-service.spec.ts +0 -344
  327. package/src/_modules/bot/_modules/slack-bot/_services/slb-messaging-provider.control-service.ts +0 -197
  328. package/src/_modules/bot/_modules/slack-bot/index.ts +0 -12
  329. package/src/_modules/bot/_modules/teams-bot/_models/teb-platform.types.ts +0 -9
  330. package/src/_modules/bot/_modules/teams-bot/_services/teb-messaging-provider.control-service.spec.ts +0 -345
  331. package/src/_modules/bot/_modules/teams-bot/_services/teb-messaging-provider.control-service.ts +0 -197
  332. package/src/_modules/bot/_modules/teams-bot/index.ts +0 -11
  333. package/src/_modules/bot/_services/bot-commands.control-service.spec.ts +0 -116
  334. package/src/_modules/bot/_services/bot-commands.control-service.ts +0 -158
  335. package/src/_modules/bot/_services/bot-io.control-service.spec.ts +0 -285
  336. package/src/_modules/bot/_services/bot-io.control-service.ts +0 -329
  337. package/src/_modules/bot/_services/bot-main.control-service.spec.ts +0 -208
  338. package/src/_modules/bot/_services/bot-main.control-service.ts +0 -489
  339. package/src/_modules/bot/_services/bot-messaging-provider.service-base.spec.ts +0 -349
  340. package/src/_modules/bot/_services/bot-messaging-provider.service-base.ts +0 -158
  341. package/src/_modules/bot/_services/bot-routines.control-service.spec.ts +0 -111
  342. package/src/_modules/bot/_services/bot-routines.control-service.ts +0 -78
  343. package/src/_modules/bot/index.ts +0 -37
  344. package/src/_modules/custom-data/custom-data.controller.spec.ts +0 -49
  345. package/src/_modules/custom-data/custom-data.controller.ts +0 -67
  346. package/src/_modules/custom-data/custom-data.data-service.spec.ts +0 -54
  347. package/src/_modules/custom-data/custom-data.data-service.ts +0 -22
  348. package/src/_modules/custom-data/get-custom-data-routing-module.util.spec.ts +0 -28
  349. package/src/_modules/custom-data/get-custom-data-routing-module.util.ts +0 -24
  350. package/src/_modules/custom-data/index.ts +0 -9
  351. package/src/_modules/data-readers/_collections/dynts-sqlite-reader.util.spec.ts +0 -176
  352. package/src/_modules/data-readers/_collections/dynts-sqlite-reader.util.ts +0 -203
  353. package/src/_modules/data-readers/_models/interfaces/dynts-sqlite-reader.interface.ts +0 -33
  354. package/src/_modules/data-readers/index.ts +0 -11
  355. package/src/_modules/defaults/_collections/default-endpoints.util.ts +0 -487
  356. package/src/_modules/defaults/_models/default-user.data-model.ts +0 -72
  357. package/src/_modules/defaults/_services/default-auth.service.spec.ts +0 -269
  358. package/src/_modules/defaults/_services/default-auth.service.ts +0 -177
  359. package/src/_modules/defaults/_services/default-socket-events.service.spec.ts +0 -42
  360. package/src/_modules/defaults/_services/default-socket-events.service.ts +0 -61
  361. package/src/_modules/defaults/_services/default-user.data-service.spec.ts +0 -187
  362. package/src/_modules/defaults/_services/default-user.data-service.ts +0 -98
  363. package/src/_modules/defaults/index.ts +0 -17
  364. package/src/_modules/discord-assistant/_collections/dias-global-settings.const.ts +0 -19
  365. package/src/_modules/discord-assistant/_collections/dias.util.spec.ts +0 -366
  366. package/src/_modules/discord-assistant/_collections/dias.util.ts +0 -133
  367. package/src/_modules/discord-assistant/_models/dias-global-settings.interface.ts +0 -20
  368. package/src/_modules/discord-assistant/_models/dias-knowledge.data-model.ts +0 -53
  369. package/src/_modules/discord-assistant/_services/dias-chunk.data-service.ts +0 -177
  370. package/src/_modules/discord-assistant/_services/dias-io.control-service.spec.ts +0 -108
  371. package/src/_modules/discord-assistant/_services/dias-io.control-service.ts +0 -69
  372. package/src/_modules/discord-assistant/_services/dias-main.control-service.spec.ts +0 -22
  373. package/src/_modules/discord-assistant/_services/dias-main.control-service.ts +0 -27
  374. package/src/_modules/discord-assistant/_services/dias.service-base.spec.ts +0 -195
  375. package/src/_modules/discord-assistant/_services/dias.service-base.ts +0 -77
  376. package/src/_modules/discord-assistant/index.ts +0 -38
  377. package/src/_modules/discord-assistant-voiced/_services/dias-discord-bot.control-service.spec.ts +0 -34
  378. package/src/_modules/discord-assistant-voiced/_services/dias-discord-bot.control-service.ts +0 -11
  379. package/src/_modules/discord-assistant-voiced/index.ts +0 -36
  380. package/src/_modules/discord-bot/_collections/dibo-default-commands.const.ts +0 -17
  381. package/src/_modules/discord-bot/_collections/dibo-global-settings.conts.ts +0 -56
  382. package/src/_modules/discord-bot/_collections/dibo-operations.util.spec.ts +0 -214
  383. package/src/_modules/discord-bot/_collections/dibo-operations.util.ts +0 -387
  384. package/src/_modules/discord-bot/_models/dibo-command.interface.ts +0 -12
  385. package/src/_modules/discord-bot/_models/dibo-global-settings.interface.ts +0 -98
  386. package/src/_modules/discord-bot/_models/dibo-last-mention-date.inteface.ts +0 -8
  387. package/src/_modules/discord-bot/_models/dibo-last-message-date.interface.ts +0 -6
  388. package/src/_modules/discord-bot/_services/dibo-commands.control-service.spec.ts +0 -154
  389. package/src/_modules/discord-bot/_services/dibo-commands.control-service.ts +0 -153
  390. package/src/_modules/discord-bot/_services/dibo-io.control-service.spec.ts +0 -264
  391. package/src/_modules/discord-bot/_services/dibo-io.control-service.ts +0 -306
  392. package/src/_modules/discord-bot/_services/dibo-main.control-service.spec.ts +0 -408
  393. package/src/_modules/discord-bot/_services/dibo-main.control-service.ts +0 -488
  394. package/src/_modules/discord-bot/_services/dibo-routines.control-service.spec.ts +0 -105
  395. package/src/_modules/discord-bot/_services/dibo-routines.control-service.ts +0 -97
  396. package/src/_modules/discord-bot/index.ts +0 -36
  397. package/src/_modules/local-vector-search/_enums/lvs-search-mode.enum.ts +0 -35
  398. package/src/_modules/local-vector-search/_models/data-models/lvs-vector-persist.data-model.ts +0 -60
  399. package/src/_modules/local-vector-search/_models/lvs-search-result.interface.ts +0 -17
  400. package/src/_modules/local-vector-search/_services/lvs-bm25.util.spec.ts +0 -159
  401. package/src/_modules/local-vector-search/_services/lvs-bm25.util.ts +0 -206
  402. package/src/_modules/local-vector-search/_services/lvs-doc-chunk-data.service.spec.ts +0 -418
  403. package/src/_modules/local-vector-search/_services/lvs-doc-chunk-data.service.ts +0 -276
  404. package/src/_modules/local-vector-search/_services/lvs-local-vector-search.data-service.spec.ts +0 -480
  405. package/src/_modules/local-vector-search/_services/lvs-local-vector-search.data-service.ts +0 -416
  406. package/src/_modules/local-vector-search/_services/lvs-persistent-vector-pool.control-service.spec.ts +0 -214
  407. package/src/_modules/local-vector-search/_services/lvs-persistent-vector-pool.control-service.ts +0 -186
  408. package/src/_modules/local-vector-search/_services/lvs-vector-persist.data-service.spec.ts +0 -167
  409. package/src/_modules/local-vector-search/_services/lvs-vector-persist.data-service.ts +0 -130
  410. package/src/_modules/local-vector-search/_services/lvs-vector-pool.control-service.spec.ts +0 -509
  411. package/src/_modules/local-vector-search/_services/lvs-vector-pool.control-service.ts +0 -323
  412. package/src/_modules/local-vector-search/index.ts +0 -17
  413. package/src/_modules/logs/_models/file-log-entry.interface.ts +0 -13
  414. package/src/_modules/logs/_models/file-log-read-result.interface.ts +0 -37
  415. package/src/_modules/logs/file-log.service.spec.ts +0 -341
  416. package/src/_modules/logs/file-log.service.ts +0 -466
  417. package/src/_modules/logs/file-logs.controller.spec.ts +0 -245
  418. package/src/_modules/logs/file-logs.controller.ts +0 -165
  419. package/src/_modules/logs/get-file-logs-routing-module.util.ts +0 -51
  420. package/src/_modules/logs/get-logs-routing-module.util.ts +0 -36
  421. package/src/_modules/logs/index.ts +0 -11
  422. package/src/_modules/logs/log-buffer.service.ts +0 -101
  423. package/src/_modules/logs/logs.controller.ts +0 -109
  424. package/src/_modules/logs/logs.service.ts +0 -100
  425. package/src/_modules/mcp/_models/interfaces/dynts-mcp.interface.ts +0 -111
  426. package/src/_modules/mcp/_services/dynts-mcp-server.service-base.spec.ts +0 -151
  427. package/src/_modules/mcp/_services/dynts-mcp-server.service-base.ts +0 -125
  428. package/src/_modules/mcp/_services/dynts-mcp.adapter.ts +0 -168
  429. package/src/_modules/mcp/index.ts +0 -13
  430. package/src/_modules/messaging/README.md +0 -354
  431. package/src/_modules/messaging/_collections/get-messaging-routing-module.util.ts +0 -26
  432. package/src/_modules/messaging/_collections/msg-global-settings.const.ts +0 -22
  433. package/src/_modules/messaging/_collections/msg.util.spec.ts +0 -226
  434. package/src/_modules/messaging/_collections/msg.util.ts +0 -83
  435. package/src/_modules/messaging/_models/msg-global-settings.interface.ts +0 -37
  436. package/src/_modules/messaging/_services/msg-conversation.data-service.ts +0 -146
  437. package/src/_modules/messaging/_services/msg-events.service.spec.ts +0 -219
  438. package/src/_modules/messaging/_services/msg-events.service.ts +0 -267
  439. package/src/_modules/messaging/_services/msg-integration.control-service.ts +0 -180
  440. package/src/_modules/messaging/_services/msg-main.control-service.spec.ts +0 -147
  441. package/src/_modules/messaging/_services/msg-main.control-service.ts +0 -572
  442. package/src/_modules/messaging/_services/msg-message.data-service.ts +0 -129
  443. package/src/_modules/messaging/_services/msg.controller.spec.ts +0 -201
  444. package/src/_modules/messaging/_services/msg.controller.ts +0 -370
  445. package/src/_modules/messaging/index.ts +0 -30
  446. package/src/_modules/mock/app-extended-server.mock.ts +0 -201
  447. package/src/_modules/mock/app-integration-test.mock.ts +0 -51
  448. package/src/_modules/mock/app-params.mock.spec.ts +0 -21
  449. package/src/_modules/mock/app-params.mock.ts +0 -9
  450. package/src/_modules/mock/app-server.mock.ts +0 -188
  451. package/src/_modules/mock/auth-service.mock.spec.ts +0 -47
  452. package/src/_modules/mock/auth-service.mock.ts +0 -28
  453. package/src/_modules/mock/controller.mock.spec.ts +0 -26
  454. package/src/_modules/mock/controller.mock.ts +0 -16
  455. package/src/_modules/mock/data-model.mock.spec.ts +0 -111
  456. package/src/_modules/mock/data-model.mock.ts +0 -82
  457. package/src/_modules/mock/email-service-collection.mock.spec.ts +0 -24
  458. package/src/_modules/mock/email-service-collection.mock.ts +0 -15
  459. package/src/_modules/mock/email-service.mock.spec.ts +0 -17
  460. package/src/_modules/mock/email-service.mock.ts +0 -20
  461. package/src/_modules/mock/email-template.mock.html +0 -15
  462. package/src/_modules/mock/endpoint.mock.ts +0 -91
  463. package/src/_modules/mock/socket-client.mock.spec.ts +0 -40
  464. package/src/_modules/mock/socket-client.mock.ts +0 -45
  465. package/src/_modules/mock/socket-server.mock.spec.ts +0 -44
  466. package/src/_modules/mock/socket-server.mock.ts +0 -46
  467. package/src/_modules/oauth2/_routes/oauth2.controller.spec.ts +0 -107
  468. package/src/_modules/oauth2/_routes/oauth2.controller.ts +0 -99
  469. package/src/_modules/oauth2/_services/oauth2.auth-service.spec.ts +0 -254
  470. package/src/_modules/oauth2/_services/oauth2.auth-service.ts +0 -232
  471. package/src/_modules/oauth2/_services/oauth2.control-service.spec.ts +0 -585
  472. package/src/_modules/oauth2/_services/oauth2.control-service.ts +0 -654
  473. package/src/_modules/oauth2/index.ts +0 -17
  474. package/src/_modules/privacy-lifecycle/_enums/privacy-consent-decision.type-enum.ts +0 -5
  475. package/src/_modules/privacy-lifecycle/_enums/privacy-contributor-action.type-enum.ts +0 -10
  476. package/src/_modules/privacy-lifecycle/_enums/privacy-contributor-outcome.type-enum.ts +0 -7
  477. package/src/_modules/privacy-lifecycle/_enums/privacy-request-state.type-enum.ts +0 -15
  478. package/src/_modules/privacy-lifecycle/_enums/privacy-request.type-enum.ts +0 -9
  479. package/src/_modules/privacy-lifecycle/_models/privacy-consent-input.interface.ts +0 -12
  480. package/src/_modules/privacy-lifecycle/_models/privacy-consent-persistence-result.interface.ts +0 -7
  481. package/src/_modules/privacy-lifecycle/_models/privacy-consent-record.interface.ts +0 -15
  482. package/src/_modules/privacy-lifecycle/_models/privacy-consent-result.interface.ts +0 -7
  483. package/src/_modules/privacy-lifecycle/_models/privacy-consent-view.interface.ts +0 -13
  484. package/src/_modules/privacy-lifecycle/_models/privacy-contributor-context.interface.ts +0 -9
  485. package/src/_modules/privacy-lifecycle/_models/privacy-contributor-outcome.interface.ts +0 -14
  486. package/src/_modules/privacy-lifecycle/_models/privacy-contributor-plan.interface.ts +0 -8
  487. package/src/_modules/privacy-lifecycle/_models/privacy-contributor.interface.ts +0 -17
  488. package/src/_modules/privacy-lifecycle/_models/privacy-ledger-adapter.interface.ts +0 -21
  489. package/src/_modules/privacy-lifecycle/_models/privacy-ledger-result.interface.ts +0 -9
  490. package/src/_modules/privacy-lifecycle/_models/privacy-ledger-settings.interface.ts +0 -7
  491. package/src/_modules/privacy-lifecycle/_models/privacy-legal-acceptance-input.interface.ts +0 -10
  492. package/src/_modules/privacy-lifecycle/_models/privacy-legal-acceptance-persistence-result.interface.ts +0 -7
  493. package/src/_modules/privacy-lifecycle/_models/privacy-legal-acceptance-result.interface.ts +0 -7
  494. package/src/_modules/privacy-lifecycle/_models/privacy-legal-acceptance-view.interface.ts +0 -11
  495. package/src/_modules/privacy-lifecycle/_models/privacy-legal-acceptance.interface.ts +0 -13
  496. package/src/_modules/privacy-lifecycle/_models/privacy-lifecycle-adapter.interface.ts +0 -19
  497. package/src/_modules/privacy-lifecycle/_models/privacy-lifecycle-settings.interface.ts +0 -9
  498. package/src/_modules/privacy-lifecycle/_models/privacy-request-create-result.interface.ts +0 -7
  499. package/src/_modules/privacy-lifecycle/_models/privacy-request-open.interface.ts +0 -10
  500. package/src/_modules/privacy-lifecycle/_models/privacy-request-persistence-create-result.interface.ts +0 -7
  501. package/src/_modules/privacy-lifecycle/_models/privacy-request-record.interface.ts +0 -21
  502. package/src/_modules/privacy-lifecycle/_models/privacy-request-result.interface.ts +0 -8
  503. package/src/_modules/privacy-lifecycle/_models/privacy-request-view.interface.ts +0 -20
  504. package/src/_modules/privacy-lifecycle/index.ts +0 -40
  505. package/src/_modules/privacy-lifecycle/privacy-ledger.control-service.spec.ts +0 -206
  506. package/src/_modules/privacy-lifecycle/privacy-ledger.control-service.ts +0 -253
  507. package/src/_modules/privacy-lifecycle/privacy-lifecycle.control-service.spec.ts +0 -353
  508. package/src/_modules/privacy-lifecycle/privacy-lifecycle.control-service.ts +0 -586
  509. package/src/_modules/rate-limit/_enums/rate-limit-store-kind.type-enum.ts +0 -5
  510. package/src/_modules/rate-limit/_models/rate-limit-config.interface.ts +0 -82
  511. package/src/_modules/rate-limit/_models/rate-limit-consume-request.interface.ts +0 -9
  512. package/src/_modules/rate-limit/_models/rate-limit-consume-result.interface.ts +0 -6
  513. package/src/_modules/rate-limit/_models/rate-limit-policy.interface.ts +0 -16
  514. package/src/_modules/rate-limit/_models/rate-limit-store.interface.ts +0 -9
  515. package/src/_modules/rate-limit/index.ts +0 -8
  516. package/src/_modules/rate-limit/rate-limit-in-memory.store.ts +0 -91
  517. package/src/_modules/rate-limit/rate-limit.middleware.spec.ts +0 -488
  518. package/src/_modules/rate-limit/rate-limit.middleware.ts +0 -504
  519. package/src/_modules/scheduler/_models/scheduler-job.interface.ts +0 -35
  520. package/src/_modules/scheduler/get-scheduler-routing-module.util.ts +0 -33
  521. package/src/_modules/scheduler/index.ts +0 -8
  522. package/src/_modules/scheduler/scheduler.controller.spec.ts +0 -42
  523. package/src/_modules/scheduler/scheduler.controller.ts +0 -69
  524. package/src/_modules/scheduler/scheduler.service.spec.ts +0 -141
  525. package/src/_modules/scheduler/scheduler.service.ts +0 -176
  526. package/src/_modules/scoped-config/_enums/dynts-scoped-config-level.enum.ts +0 -22
  527. package/src/_modules/scoped-config/_models/data-models/dynts-scoped-config.data-model.ts +0 -82
  528. package/src/_modules/scoped-config/_models/interfaces/dynts-scoped-config.interface.ts +0 -107
  529. package/src/_modules/scoped-config/_services/dynts-scoped-config.control-service.spec.ts +0 -312
  530. package/src/_modules/scoped-config/_services/dynts-scoped-config.control-service.ts +0 -311
  531. package/src/_modules/scoped-config/_services/dynts-scoped-config.data-service.spec.ts +0 -123
  532. package/src/_modules/scoped-config/_services/dynts-scoped-config.data-service.ts +0 -108
  533. package/src/_modules/scoped-config/index.ts +0 -17
  534. package/src/_modules/server/errors/errors.control-service.spec.ts +0 -246
  535. package/src/_modules/server/errors/errors.control-service.ts +0 -100
  536. package/src/_modules/server/errors/errors.controller.spec.ts +0 -340
  537. package/src/_modules/server/errors/errors.controller.ts +0 -559
  538. package/src/_modules/server/errors/errors.data-service.spec.ts +0 -480
  539. package/src/_modules/server/errors/errors.data-service.ts +0 -867
  540. package/src/_modules/server/index.ts +0 -40
  541. package/src/_modules/server/safe-diagnostic/safe-diagnostic-cause.type-enum.ts +0 -8
  542. package/src/_modules/server/safe-diagnostic/safe-diagnostic-stage.type-enum.ts +0 -20
  543. package/src/_modules/server/safe-diagnostic/safe-diagnostic.control-service.spec.ts +0 -124
  544. package/src/_modules/server/safe-diagnostic/safe-diagnostic.control-service.ts +0 -99
  545. package/src/_modules/server/safe-diagnostic/safe-diagnostic.interface.ts +0 -20
  546. package/src/_modules/server/server-status/db-readiness-probe-code.type-enum.ts +0 -13
  547. package/src/_modules/server/server-status/db-readiness-probe-stage.type-enum.ts +0 -7
  548. package/src/_modules/server/server-status/db-readiness-probe.control-service.spec.ts +0 -235
  549. package/src/_modules/server/server-status/db-readiness-probe.control-service.ts +0 -158
  550. package/src/_modules/server/server-status/db-readiness-probe.interface.ts +0 -20
  551. package/src/_modules/server/server-status/server-status-snapshot.control-service.spec.ts +0 -70
  552. package/src/_modules/server/server-status/server-status-snapshot.control-service.ts +0 -17
  553. package/src/_modules/server/server-status/server-status-snapshot.data-service.spec.ts +0 -77
  554. package/src/_modules/server/server-status/server-status-snapshot.data-service.ts +0 -37
  555. package/src/_modules/server/server-status/server-status.control-service.spec.ts +0 -672
  556. package/src/_modules/server/server-status/server-status.control-service.ts +0 -491
  557. package/src/_modules/server/server-status/server-status.controller.spec.ts +0 -276
  558. package/src/_modules/server/server-status/server-status.controller.ts +0 -336
  559. package/src/_modules/socket/_enums/socket-security.enum.ts +0 -11
  560. package/src/_modules/socket/_models/socket-client-service-params.control-model.spec.ts +0 -32
  561. package/src/_modules/socket/_models/socket-client-service-params.control-model.ts +0 -22
  562. package/src/_modules/socket/_models/socket-presence.control-model.spec.ts +0 -165
  563. package/src/_modules/socket/_models/socket-presence.control-model.ts +0 -211
  564. package/src/_modules/socket/_models/socket-server-service-params.control-model.spec.ts +0 -69
  565. package/src/_modules/socket/_models/socket-server-service-params.control-model.ts +0 -33
  566. package/src/_modules/socket/_services/socket-client.service.spec.ts +0 -15
  567. package/src/_modules/socket/_services/socket-client.service.ts +0 -260
  568. package/src/_modules/socket/_services/socket-server.service.spec.ts +0 -272
  569. package/src/_modules/socket/_services/socket-server.service.ts +0 -1037
  570. package/src/_modules/socket/app-extended.integration.spec.ts +0 -85
  571. package/src/_modules/socket/app-extended.server.ts +0 -648
  572. package/src/_modules/socket/index.ts +0 -42
  573. package/src/_modules/test/get-test-routing-module.util.spec.ts +0 -28
  574. package/src/_modules/test/get-test-routing-module.util.ts +0 -23
  575. package/src/_modules/test/index.ts +0 -12
  576. package/src/_modules/test/test.controller.spec.ts +0 -72
  577. package/src/_modules/test/test.controller.ts +0 -115
  578. package/src/_modules/test-email-sink/_collections/test-email-pattern.const.ts +0 -10
  579. package/src/_modules/test-email-sink/_models/data-models/dynts-sent-test-mail.data-model.ts +0 -41
  580. package/src/_modules/test-email-sink/_services/dynts-test-email-sink.service.spec.ts +0 -112
  581. package/src/_modules/test-email-sink/_services/dynts-test-email-sink.service.ts +0 -141
  582. package/src/_modules/test-email-sink/get-sent-mail-routing-module.util.ts +0 -29
  583. package/src/_modules/test-email-sink/index.ts +0 -11
  584. package/src/_modules/test-email-sink/test-email-sink.controller.ts +0 -83
  585. package/src/_modules/usage/get-usage-routing-module.util.ts +0 -23
  586. package/src/_modules/usage/index.ts +0 -15
  587. package/src/_modules/usage/usage.controller.spec.ts +0 -106
  588. package/src/_modules/usage/usage.controller.ts +0 -140
  589. package/src/_modules/usage/usage.data-service.spec.ts +0 -332
  590. package/src/_modules/usage/usage.data-service.ts +0 -185
  591. package/src/_services/base/api.service-base.spec.ts +0 -125
  592. package/src/_services/base/api.service-base.ts +0 -75
  593. package/src/_services/base/archive-data.service.spec.ts +0 -209
  594. package/src/_services/base/archive-data.service.ts +0 -228
  595. package/src/_services/base/data.service.spec.ts +0 -784
  596. package/src/_services/base/data.service.ts +0 -2792
  597. package/src/_services/base/db.service.encryption.spec.ts +0 -76
  598. package/src/_services/base/db.service.spec.ts +0 -160
  599. package/src/_services/base/db.service.ts +0 -1698
  600. package/src/_services/base/singleton.service-base.spec.ts +0 -28
  601. package/src/_services/base/singleton.service-base.ts +0 -24
  602. package/src/_services/base/singleton.service.spec.ts +0 -114
  603. package/src/_services/base/singleton.service.ts +0 -38
  604. package/src/_services/core/api.service.spec.ts +0 -187
  605. package/src/_services/core/api.service.ts +0 -627
  606. package/src/_services/core/auth.service.spec.ts +0 -159
  607. package/src/_services/core/auth.service.ts +0 -174
  608. package/src/_services/core/collection-growth-monitor.service.spec.ts +0 -119
  609. package/src/_services/core/collection-growth-monitor.service.ts +0 -234
  610. package/src/_services/core/db-stats.service.ts +0 -104
  611. package/src/_services/core/diagnostics.service.spec.ts +0 -44
  612. package/src/_services/core/diagnostics.service.ts +0 -158
  613. package/src/_services/core/email.service.spec.ts +0 -85
  614. package/src/_services/core/email.service.ts +0 -757
  615. package/src/_services/core/event-loop-diag.service.spec.ts +0 -22
  616. package/src/_services/core/event-loop-diag.service.ts +0 -144
  617. package/src/_services/core/global.service.spec.ts +0 -292
  618. package/src/_services/core/global.service.ts +0 -488
  619. package/src/_services/core/memory-guard.service.spec.ts +0 -245
  620. package/src/_services/core/memory-guard.service.ts +0 -481
  621. package/src/_services/core/migration-runner.service.spec.ts +0 -91
  622. package/src/_services/core/migration-runner.service.ts +0 -106
  623. package/src/_services/core/mongo-transaction.control-service.spec.ts +0 -165
  624. package/src/_services/core/mongo-transaction.control-service.ts +0 -148
  625. package/src/_services/core/request-hunter.service.spec.ts +0 -124
  626. package/src/_services/core/request-hunter.service.ts +0 -157
  627. package/src/_services/core/request-telemetry.control-service.spec.ts +0 -217
  628. package/src/_services/core/request-telemetry.control-service.ts +0 -381
  629. package/src/_services/core/service-collection.service.spec.ts +0 -46
  630. package/src/_services/core/service-collection.service.ts +0 -6
  631. package/src/_services/route/controller.service.spec.ts +0 -53
  632. package/src/_services/route/controller.service.ts +0 -148
  633. package/src/_services/route/routing-module.service.spec.ts +0 -98
  634. package/src/_services/route/routing-module.service.ts +0 -339
  635. package/src/_services/server/app-safe-diagnostic.spec.ts +0 -124
  636. package/src/_services/server/app.server-retention.spec.ts +0 -106
  637. package/src/_services/server/app.server.ts +0 -1979
  638. package/src/_services/shared.static-service.spec.ts +0 -133
  639. package/src/_services/shared.static-service.ts +0 -107
  640. package/src/index.ts +0 -120
  641. package/tsconfig.app.json +0 -12
  642. package/tsconfig.json +0 -42
@@ -1,1037 +0,0 @@
1
-
2
- import * as SocketIO from 'socket.io';
3
-
4
- import {
5
- DyFM_AnyError, DyFM_Array, DyFM_Error, DyFM_Error_Settings, DyFM_errorFlag, DyFM_Log
6
- } from '@futdevpro/fsm-dynamo';
7
-
8
-
9
- import {
10
- DyFM_SocketEvent,
11
- DyFM_SocketEvent_Key, DyFM_SocketEventPreprocessTask, DyFM_SocketEventTask
12
- } from '@futdevpro/fsm-dynamo/socket';
13
-
14
- import { DyNTS_global_settings } from '../../../_collections/global-settings.const';
15
- import { DyNTS_SingletonService } from '../../../_services/base/singleton.service';
16
- import { DyNTS_SocketSecurity } from '../_enums/socket-security.enum';
17
- import {
18
- DyNTS_SocketPresence
19
- } from '../_models/socket-presence.control-model';
20
- import {
21
- DyNTS_SocketServerService_Params
22
- } from '../_models/socket-server-service-params.control-model';
23
-
24
- /** Opciók a setupSocketServer híváshoz: attacholt HTTP szerver esetén ne hívjuk a listen()-t. */
25
- export interface DyNTS_SocketServerSetupOptions {
26
- /** Ha true, a Socket.IO egy már listenelő HTTP/HTTPS szerverre van attacholva – ne hívjuk a listen()-t. */
27
- attachedToExistingServer?: boolean;
28
- /** A tényleges port (pl. defaultolt httpPort/httpsPort) – logokban használjuk. */
29
- effectivePort?: number;
30
- }
31
-
32
- /**
33
- * You need to define the following functions:
34
- * ```ts
35
- * getServiceParams(): DyNTS_SocketServerServiceParams;
36
- *
37
- * getIncomingEvents(): DyFM_SocketEvent<any>[];
38
- *
39
- * getPresenceFromSubscriptionEventContent(
40
- * socketSubscription: T_SubscriptionContent,
41
- * socket: SocketIO.Socket
42
- * ): Promise<T_Presence>;
43
- * ```
44
- */
45
- export abstract class DyNTS_SocketServerService<
46
- T_Presence extends DyNTS_SocketPresence = DyNTS_SocketPresence,
47
- T_SubscriptionContent = any,
48
- T_ErrorContent = any
49
- > extends DyNTS_SingletonService {
50
-
51
- protected params: DyNTS_SocketServerService_Params;
52
- get name(): string { return this.params.name; }
53
- get port(): number | undefined { return this.params.port; }
54
- /** BFR-MASTERPROMPTER-025: explicit dedikált-listener opt-in (default false = shared). */
55
- get dedicatedPort(): boolean { return this.params.dedicatedPort ?? false; }
56
- get security(): DyNTS_SocketSecurity { return this.params.security; }
57
- get activeSubscriptionsCount(): number { return this.presences.length; }
58
-
59
- protected openSocketServer: SocketIO.Server;
60
- protected secureSocketServer: SocketIO.Server;
61
-
62
- /* private connectEvent: DyFM_SocketEvent<SocketIO.Socket>; */
63
- protected incomingEvents: DyFM_SocketEvent<any>[];
64
-
65
- /* private subscriptionEvent: DyFM_SocketEvent<any>; */
66
- /* private unsubscribeEvent: DyFM_SocketEvent<any>; */
67
-
68
- protected presences: T_Presence[] = [];
69
- private readonly disconnectedSockets: WeakSet<SocketIO.Socket> = new WeakSet();
70
-
71
- get logSetup(): boolean { return DyNTS_global_settings.log_settings.setup; }
72
- get highDetailedLogs(): boolean { return DyNTS_global_settings.log_settings.highDetailedLogs; }
73
-
74
- override readonly defaultErrorUserMsg =
75
- `We encountered an unhandled Socket Server Error, ` +
76
- `\nplease contact the responsible development team.`;
77
-
78
- /* readonly thisLocationStack: string; */
79
-
80
- protected constructor(){
81
- super();
82
-
83
- /* this.thisLocationStack = DyNTS_getStackLocation(); */
84
-
85
- this.asyncConstructor().catch((error: any) => {
86
- DyFM_Log.error(
87
- `Socket Server Service setup failed: "${this.params?.name}" (${this.params?.port})`,
88
- error
89
- );
90
- });
91
- }
92
-
93
- /**
94
- * You need to setup a function that converts subscription event content to presence.
95
- * You should do authentication and authorization here.
96
- */
97
- protected abstract getPresenceFromSubscriptionEventContent(
98
- socketSubscription: T_SubscriptionContent,
99
- socket: SocketIO.Socket
100
- ): Promise<T_Presence>;
101
-
102
- private async asyncConstructor(): Promise<void> {
103
- try {
104
- this.params = this.getServiceParams();
105
- this.incomingEvents = this.getIncomingEvents() ?? [];
106
-
107
- await this.prepareEvents();
108
-
109
- if (this.logSetup) console.log(
110
- `Socket Server Service setup done: "${this.params.name}" (${this.params.port}) ` +
111
- `security: ${this.params.security}\n`
112
- );
113
- } catch (error) {
114
- DyFM_Log.error(
115
- `Socket Server Service setup failed: "${this.params?.name}" (${this.params?.port})`,
116
- error
117
- );
118
-
119
- throw new DyFM_Error({
120
- errorCode: `${DyNTS_global_settings.systemShortCodeName}|DyNTS-SSS-GPFSRC0`,
121
- error: error,
122
- });
123
- }
124
- }
125
-
126
- /**
127
- * You must setup events and required services for this function
128
- */
129
- private async prepareEvents(): Promise<void> {
130
- try {
131
- /** Setup connect event */
132
- /* const connectEventIndex = this.incomingEvents.findIndex(
133
- (event: DyFM_SocketEvent<any>) =>
134
- event.eventKey === DyFM_SocketEvent_Key.connection
135
- );
136
-
137
- if (0 <= connectEventIndex) {
138
- this.connectEvent = this.incomingEvents.splice(connectEventIndex)[0];
139
- } else {
140
- this.connectEvent = new DyFM_SocketEvent({
141
- eventKey: DyFM_SocketEvent_Key.connection,
142
- });
143
- }
144
- this.connectEvent.serviceName = this.params.name; */
145
-
146
- if (!this.getPresenceFromSubscriptionEventContent) {
147
- throw new DyFM_Error({
148
- error: new Error('getPresenceFromSubscriptionEventContent must be set'),
149
- errorCode: `${DyNTS_global_settings.systemShortCodeName}|DyNTS-SSS-PPE1`,
150
- });
151
- }
152
-
153
- if (!this.getSubscriptionTasks) {
154
- DyFM_Log.warn(
155
- `You should not set the subscription event, ` +
156
- `in case you need additional steps for your subscriptions.`,
157
- `${this.params.name} (${this.params.port})`
158
- );
159
- }
160
-
161
- if (this.incomingEvents.find(
162
- (event: DyFM_SocketEvent<any>) =>
163
- event.eventKey === DyFM_SocketEvent_Key.subscribe
164
- )) {
165
- DyFM_Log.warn(
166
- `You need to use getSubscriptionTasks() ` +
167
- `instead of setting the subscribe event in getIncomingEvents().`,
168
- `${this.params.name} (${this.params.port})`
169
- );
170
- }
171
-
172
- if (!this.incomingEvents.find(
173
- (event: DyFM_SocketEvent<any>) =>
174
- event.eventKey === DyFM_SocketEvent_Key.unsubscribe
175
- )) {
176
- DyFM_Log.warn(
177
- `You should not set the unsubscribe event, ` +
178
- `in case you need additional steps for your unsubscribe.`,
179
- `${this.params.name} (${this.params.port})`
180
- );
181
- }
182
-
183
- if (this.incomingEvents.find(
184
- (event: DyFM_SocketEvent<any>) => !event.eventKey
185
- )) {
186
- throw new DyFM_Error({
187
- error: new Error('eventKey must be set'),
188
- errorCode: `${DyNTS_global_settings.systemShortCodeName}|DyNTS-SSS-PPE2`,
189
- });
190
- }
191
-
192
- this.incomingEvents.push(
193
- new DyFM_SocketEvent({
194
- eventKey: DyFM_SocketEvent_Key.disconnect,
195
- })
196
- );
197
-
198
- if (this.errorHandling) {
199
- this.incomingEvents.push(new DyFM_SocketEvent<T_ErrorContent>({
200
- serviceName: this.params.name,
201
- eventKey: DyFM_SocketEvent_Key.error,
202
- tasks: [
203
- async (content: any) => this.errorHandling(content),
204
- ],
205
- }));
206
- } else {
207
- DyFM_Log.warn(
208
- `You should not set the error event, ` +
209
- `in case you need additional steps for your error.`,
210
- `${this.params.name} (${this.params.port})`
211
- );
212
-
213
- this.incomingEvents.push(new DyFM_SocketEvent<T_ErrorContent>({
214
- serviceName: this.params.name,
215
- eventKey: DyFM_SocketEvent_Key.error,
216
- tasks: [
217
- async (content: any) => {
218
- if (content instanceof DyFM_Error) {
219
- content.logSimple(`=--> socket-client (${this.params.name}) ERROR`);
220
- } else {
221
- DyFM_Log.error(`=--> socket-client (${this.params.name}) ERROR:`, content);
222
- }
223
- }
224
- ],
225
- }));
226
- }
227
-
228
- // Merge incoming events of the same eventKey
229
- const eventKeys = this.incomingEvents.map(
230
- (event: DyFM_SocketEvent<any>) => event.eventKey
231
- ).filter(
232
- (eventKey: string, index: number, self: string[]) =>
233
- self.indexOf(eventKey) === index
234
- );
235
- const mergedEvents: DyFM_SocketEvent<any>[] = [];
236
- eventKeys.forEach((eventKey: string) => {
237
- const events = this.incomingEvents.filter(
238
- (event: DyFM_SocketEvent<any>) => event.eventKey === eventKey
239
- );
240
-
241
- mergedEvents.push(new DyFM_SocketEvent({
242
- eventKey: eventKey,
243
- preProcesses: events.map((event: DyFM_SocketEvent<any>) => event.preProcesses).flat(),
244
- tasks: events.map((event: DyFM_SocketEvent<any>) => event.tasks).flat(),
245
- }));
246
- });
247
- this.incomingEvents = mergedEvents;
248
-
249
- if (DyNTS_global_settings.log_settings.setup) {
250
- DyFM_Log.log(
251
- `Socket Server Service - Event Preparation setup done: ` +
252
- `"${this.params?.name}" (${this.params?.port})` +
253
- `\nincomingEvents:`, this.incomingEvents.map(
254
- (event: DyFM_SocketEvent<any>) =>
255
- `\n\t"${event.eventKey}": preProcesses: ${event.preProcesses?.length} ` +
256
- `tasks: ${event.tasks?.length}`
257
- )
258
- );
259
- }
260
-
261
- // Set incoming events serviceName
262
- this.incomingEvents.forEach((event: DyFM_SocketEvent<any>) => {
263
- event.serviceName = this.params.name;
264
- });
265
- } catch (error) {
266
- DyFM_Log.error(
267
- `Socket Server Service - Event Preparation setup failed: ` +
268
- `"${this.params?.name}" (${this.params?.port})`,
269
- error
270
- );
271
-
272
- throw error;
273
- }
274
- }
275
-
276
- // eslint-disable-next-line max-lines-per-function
277
- async setupSocketServer(
278
- newSocketServer: SocketIO.Server,
279
- security: DyNTS_SocketSecurity.open | DyNTS_SocketSecurity.secure,
280
- successCallback: () => void,
281
- options?: DyNTS_SocketServerSetupOptions
282
- ): Promise<SocketIO.Server> {
283
- try {
284
- if (this.highDetailedLogs) console.log('\nfn:. setupSocketServer');
285
-
286
- const effectivePort: number | undefined = options?.effectivePort ?? this.params.port;
287
-
288
- newSocketServer.on(DyFM_SocketEvent_Key.incomingNewConnection, async (socket: SocketIO.Socket) => {
289
- try {
290
- let issuer: string = `${this.params.name} anonymous socket`;
291
-
292
- /* await this.connectEvent.executeEventTasks(socket); */
293
-
294
- await DyFM_Array.asyncForEach(
295
- this.incomingEvents.filter(
296
- (event: DyFM_SocketEvent<any>) =>
297
- event.eventKey === DyFM_SocketEvent_Key.incomingNewConnection
298
- ),
299
- async (event: DyFM_SocketEvent<any>) => {
300
- await event.executeEventTasks(socket);
301
- }
302
- );
303
-
304
-
305
- if (this.getPresenceFromSubscriptionEventContent) {
306
- socket.on(
307
- DyFM_SocketEvent_Key.subscribe,
308
- async (content: any) => {
309
- let presence: T_Presence;
310
-
311
- try {
312
- /**
313
- * usually socket logs are in event.executeEventTasks(),
314
- * but subscribe event is an exception from this,
315
- * to be able to check content before getPresenceFromSubscriptionEventContent
316
- */
317
- if (DyNTS_global_settings.log_settings.socket_eventContent) {
318
- DyFM_Log.log(
319
- `--=> incoming socket (${this.params.name}) ` +
320
- `event: "${DyFM_SocketEvent_Key.subscribe}";` +
321
- `\ncontent:`, content
322
- );
323
- } else {
324
- DyFM_Log.log(
325
- `--=> incoming socket (${this.params.name}) ` +
326
- `event: "${DyFM_SocketEvent_Key.subscribe}"`
327
- );
328
- }
329
-
330
- presence = await this.getPresenceFromSubscriptionEventContent(
331
- content, socket
332
- );
333
-
334
- presence.serviceName = this.params.name;
335
- issuer = presence.issuerLocalId;
336
-
337
- await this.addSocketToPresence(presence);
338
- /* await this.subscriptionEvent.executeEventTasks(content, issuer); */
339
-
340
- if (this.getSubscriptionTasks) {
341
- await DyFM_Array.asyncForEach(
342
- this.getSubscriptionTasks(),
343
- async (task: DyFM_SocketEventTask<T_SubscriptionContent>) => {
344
- await task(content, issuer);
345
- }
346
- );
347
- }
348
-
349
- socket.emit(
350
- DyFM_SocketEvent_Key.subscriptionSuccessful,
351
- 'subscribe was successful',
352
- error => {
353
- DyFM_Log.error(
354
- `Emitting subscriptionSuccessful event failed!` +
355
- `\nerror:`, error
356
- );
357
- }
358
- );
359
-
360
- DyFM_Log.success(
361
- `<-==> socket(${this.params.name}) subscription successful (${issuer})`
362
- );
363
- } catch (error) {
364
- if (error instanceof DyFM_Error) {
365
- error.logShort(
366
- `Socket Subscription failed: "${this.params.name}" ` +
367
- `(${this.params.port}) will disconnect now...`
368
- )
369
- } else if (DyNTS_global_settings.log_settings.socket_eventContent) {
370
- DyFM_Log.error(
371
- `Socket Subscription failed: "${this.params.name}" ` +
372
- `(${this.params.port}) will disconnect now...`,
373
- /* `${this.thisLocationStack}`, */
374
- error
375
- );
376
- } else {
377
- DyFM_Log.error(
378
- `Socket Subscription failed: "${this.params.name}" ` ,
379
- `(${this.params.port}) will disconnect now...`,
380
- /* `${this.thisLocationStack}` */
381
- );
382
- }
383
- await this.closeSocket(socket, issuer, error);
384
- }
385
- }
386
- );
387
-
388
- socket.on(
389
- DyFM_SocketEvent_Key.unsubscribe,
390
- async (issuer: string) => {
391
- try {
392
- /**
393
- * usually socket logs are in event.executeEventTasks(),
394
- * but unsubscribe event is an exception from this,
395
- * to be able to check content before getPresenceFromSubscriptionEventContent
396
- */
397
- if (DyNTS_global_settings.log_settings.socket_eventContent) {
398
- DyFM_Log.log(
399
- `--=> incoming socket (${this.params.name}) ` +
400
- `event: ${DyFM_SocketEvent_Key.unsubscribe};` +
401
- `\ncontent:`, issuer
402
- );
403
- } else {
404
- DyFM_Log.log(
405
- `--=> incoming socket (${this.params.name}) ` +
406
- `event: ${DyFM_SocketEvent_Key.unsubscribe}`
407
- );
408
- }
409
-
410
- /* await this.unsubscribeEvent.executeEventTasks(null, issuer); */
411
- await DyFM_Array.asyncForEach(
412
- this.incomingEvents.filter(
413
- (event: DyFM_SocketEvent<any>) =>
414
- event.eventKey === DyFM_SocketEvent_Key.unsubscribe
415
- ),
416
- async (event: DyFM_SocketEvent<any>) => {
417
- await event.executeEventTasks(null, issuer);
418
- }
419
- );
420
-
421
- await this.removeSubscription(socket, issuer);
422
-
423
- DyFM_Log.success(
424
- `< x > socket(${this.params.name}) unsubscribe successful (${issuer})`
425
- );
426
- } catch (error) {
427
- if (error instanceof DyFM_Error) {
428
- error.logSimple(
429
- `Socket Unsubscription failed: "${this.params.name}" ` +
430
- `(${this.params.port}) will disconnect now...`
431
- )
432
- } else if (DyNTS_global_settings.log_settings.socket_eventContent) {
433
- DyFM_Log.error(
434
- `Socket unsubscribe failed: "${this.params.name}" ` ,
435
- `(${this.params.port}) will disconnect now...`,
436
- error
437
- );
438
- } else {
439
- DyFM_Log.error(
440
- `Socket unsubscribe failed: "${this.params.name}" ` ,
441
- `(${this.params.port}) will disconnect now...`
442
- );
443
- }
444
- socket.emit(DyFM_SocketEvent_Key.error, error);
445
- await this.removeSubscription(socket, issuer);
446
- }
447
- }
448
- );
449
- }
450
-
451
- this.incomingEvents.filter(
452
- (event: DyFM_SocketEvent<any>) =>
453
- event.eventKey !== DyFM_SocketEvent_Key.incomingNewConnection &&
454
- event.eventKey !== DyFM_SocketEvent_Key.subscribe &&
455
- event.eventKey !== DyFM_SocketEvent_Key.unsubscribe
456
- ).forEach((event: DyFM_SocketEvent<any>) => {
457
- socket.on(
458
- event.eventKey,
459
- async (content: any) => {
460
- try {
461
- if (event.eventKey === DyFM_SocketEvent_Key.disconnect) {
462
- await this.executeDisconnectTasks(socket, issuer);
463
- } else {
464
- await event.executeEventTasks(content, issuer, socket);
465
- }
466
- } catch (error) {
467
- if (error instanceof DyFM_Error) {
468
- error.logSimple(
469
- `Socket Event failed: "${this.params.name}" (${this.params.port})`
470
- )
471
- } else {
472
- DyFM_Log.error(
473
- `Socket Event failed: "${this.params.name}" (${this.params.port})`,
474
- error
475
- );
476
- }
477
- socket.emit(DyFM_SocketEvent_Key.error, error);
478
- }
479
- }
480
- );
481
- });
482
-
483
- if (DyNTS_global_settings.log_settings.socket_mainEvents) {
484
- DyFM_Log.success(`< > socket(${this.params.name}): new CONNECTION established`);
485
- }
486
- } catch (error) {
487
- if (error instanceof DyFM_Error) {
488
- error.logSimple(
489
- `Socket Connection failed: "${this.params.name}" ` +
490
- `(${this.params.port}) will disconnect now...`
491
- )
492
- } else {
493
- DyFM_Log.error(
494
- `Socket Connection failed: "${this.params.name}" ` +
495
- `(${this.params.port}) will disconnect now...`,
496
- error
497
- );
498
- }
499
-
500
- await this.closeSocket(socket, `${this.params.name} on connection error`, error);
501
- }
502
- });
503
-
504
- const isAttach: boolean =
505
- options?.attachedToExistingServer === true ||
506
- (this.params.port === undefined && options?.effectivePort !== undefined);
507
-
508
- if (isAttach) {
509
- DyFM_Log.success(
510
- `\nsocket server setup finished: "${this.params.name}"` +
511
- (effectivePort !== undefined ? ` (attached to server on port: ${effectivePort})` : ' (attached to existing server)')
512
- );
513
- successCallback();
514
- } else {
515
- try {
516
- const portToListen: number | undefined = this.params.port ?? options?.effectivePort;
517
- if (portToListen === undefined) {
518
- throw new Error(
519
- `PORT NOT SET: "${this.params.name}". ` +
520
- `Either set port in getServiceParams() or pass effectivePort in setupSocketServer options.`
521
- );
522
- }
523
- newSocketServer.listen(portToListen);
524
-
525
- DyFM_Log.success(
526
- `\nsocket server setup finished: "${this.params.name}"` +
527
- `\nsocket server listening on port: "${portToListen}"`
528
- );
529
- } catch (listenError) {
530
- const portForMsg: number | undefined = this.params.port ?? options?.effectivePort;
531
- const errorMessage = `Failed to bind socket server "${this.params.name}" to port ${portForMsg}. ` +
532
- `This could be due to port already in use or insufficient permissions. ` +
533
- `Please ensure the port is available and try again.`;
534
-
535
- DyFM_Log.error(errorMessage, listenError);
536
- throw new Error(errorMessage);
537
- }
538
-
539
- successCallback();
540
- }
541
-
542
- if (security === DyNTS_SocketSecurity.open) {
543
- this.openSocketServer = newSocketServer;
544
-
545
- return this.openSocketServer;
546
- } else {
547
- this.secureSocketServer = newSocketServer;
548
-
549
- return this.secureSocketServer;
550
- }
551
- } catch (error) {
552
- if (error instanceof DyFM_Error) {
553
- error.logSimple(
554
- `Socket Server Service - Deep Setup failed: "${this.params?.name}" ` +
555
- `(${this.params?.port})`
556
- )
557
- } else {
558
- DyFM_Log.error(
559
- `Socket Server Service - Deep Setup failed: "${this.params?.name}" ` +
560
- `(${this.params?.port})`,
561
- error
562
- );
563
- }
564
-
565
- throw error;
566
- }
567
- }
568
-
569
- protected async addSocketToPresence(newPresence: T_Presence): Promise<void> {
570
- try {
571
- const activePresence: T_Presence = this.presences.find(
572
- (pres: T_Presence) => pres.issuerLocalId === newPresence.issuerLocalId
573
- );
574
-
575
- if (activePresence) {
576
- activePresence.sockets.push(...newPresence.sockets);
577
- } else {
578
- this.presences.push(newPresence);
579
- }
580
- } catch (error) {
581
- if (error instanceof DyFM_Error) {
582
- error.logShort(
583
- `Socket Subscription failed: "${this.params?.name}" (${this.params?.port})`
584
- )
585
- } else if (DyNTS_global_settings.log_settings.socket_eventContent) {
586
- DyFM_Log.error(
587
- `Socket Subscription failed: "${this.params?.name}" (${this.params?.port})`,
588
- /* `${this.thisLocationStack}`, */
589
- error
590
- );
591
- } else {
592
- DyFM_Log.error(
593
- `Socket Subscription failed: "${this.params?.name}" (${this.params?.port})`,
594
- /* `${this.thisLocationStack}` */
595
- );
596
- }
597
-
598
- throw error;
599
- }
600
- }
601
-
602
- protected async closeSocket(socket: SocketIO.Socket, issuer: string, withError?: DyFM_AnyError): Promise<void> {
603
- try {
604
- if (withError) {
605
- socket.emit(DyFM_SocketEvent_Key.error, withError);
606
- }
607
-
608
- await this.executeDisconnectTasks(socket, issuer);
609
-
610
- /* if (this.getSubscriptionCloseTasks) {
611
- await DyFM_Array.asyncForEach(
612
- this.getSubscriptionCloseTasks(),
613
- async (task: DyFM_SocketEventTask<null>) => {
614
- await task(null, issuer);
615
- }
616
- );
617
- } */
618
-
619
- socket.disconnect();
620
- } catch (error) {
621
- throw new DyFM_Error({
622
- ...this._getDefaultErrorSettings('closeSocket', error),
623
- errorCode: `${DyNTS_global_settings.systemShortCodeName}|DyNTS-SSS-CS0`,
624
- });
625
- }
626
- }
627
-
628
- /** Disconnect taskokat socketenkent pontosan egyszer, magaval a sockettel futtatja. */
629
- protected async executeDisconnectTasks(
630
- socket: SocketIO.Socket,
631
- issuer: string
632
- ): Promise<void> {
633
- if (this.disconnectedSockets.has(socket)) {
634
- return;
635
- }
636
-
637
- this.disconnectedSockets.add(socket);
638
- try {
639
- await DyFM_Array.asyncForEach(
640
- this.incomingEvents.filter(
641
- (event: DyFM_SocketEvent<unknown>): boolean =>
642
- event.eventKey === DyFM_SocketEvent_Key.disconnect
643
- ),
644
- async (event: DyFM_SocketEvent<unknown>): Promise<void> => {
645
- await event.executeEventTasks(socket, issuer);
646
- }
647
- );
648
- await this.removeSocketFromPresence(socket);
649
- DyFM_Log.info(`< x > socket(${this.params.name}) disconnected (${issuer})`);
650
- } catch (error) {
651
- this.disconnectedSockets.delete(socket);
652
- throw error;
653
- }
654
- }
655
-
656
- protected async removeSocketFromPresence(socket: SocketIO.Socket): Promise<void> {
657
- try {
658
- const presence: T_Presence = this.presences.find(
659
- (pres: T_Presence) => pres.sockets.includes(socket)
660
- );
661
-
662
- if (presence) {
663
- const socketIndex: number = presence.sockets.indexOf(socket);
664
-
665
- if (socketIndex !== -1) {
666
- presence.sockets.splice(socketIndex, 1);
667
- }
668
-
669
- if (presence.sockets.length === 0) {
670
- const presenceIndex: number = this.presences.indexOf(presence);
671
-
672
- if (presenceIndex !== -1) {
673
- this.presences.splice(presenceIndex, 1);
674
- }
675
- }
676
- }
677
- } catch (error) {
678
- throw new DyFM_Error({
679
- ...this._getDefaultErrorSettings('removeSocketFromPresence', error),
680
- errorCode: `${DyNTS_global_settings.systemShortCodeName}|DyNTS-SSS-RSO0`,
681
- });
682
- }
683
- }
684
-
685
- private async removeSubscription(socket: SocketIO.Socket, issuer?: string): Promise<void> {
686
- try {
687
- if (!this.presences.length) {
688
- throw new DyFM_Error({
689
- ...this._getDefaultErrorSettings(
690
- 'removeSubscription',
691
- new Error(`No presences found (${this.params.name})`),
692
- issuer ?? 'unknown issuer'
693
- ),
694
-
695
- errorCode: `${DyNTS_global_settings.systemShortCodeName}|DyNTS-SSS-RS1`,
696
- });
697
- }
698
-
699
- const activePresenceIndex: number = this.presences.findIndex(
700
- (pres: DyNTS_SocketPresence) => pres.sockets.includes(socket)
701
- );
702
-
703
- if (activePresenceIndex === -1) {
704
- throw new DyFM_Error({
705
- ...this._getDefaultErrorSettings(
706
- 'sendEventForId',
707
- new Error(
708
- `closing socket (${this.params.name}) does not match any in the activePresences`
709
- ),
710
- issuer ?? 'unknown issuer'
711
- ),
712
-
713
- errorCode: `${DyNTS_global_settings.systemShortCodeName}|DyNTS-SSS-RS2`,
714
- });
715
- }
716
-
717
- const activePresence: DyNTS_SocketPresence = this.presences[activePresenceIndex];
718
-
719
- if (issuer && activePresence.issuerLocalId !== issuer) {
720
- throw new DyFM_Error({
721
- ...this._getDefaultErrorSettings(
722
- 'sendEventForId',
723
- new Error(
724
- `socket unsubscription for "${issuer}" and ` +
725
- `"${activePresence.issuerLocalId}" does not match.`
726
- ),
727
- issuer
728
- ),
729
-
730
- errorCode: `${DyNTS_global_settings.systemShortCodeName}|DyNTS-SSS-RS3`,
731
- });
732
- }
733
-
734
- const socketIndex = activePresence.sockets.findIndex((s: SocketIO.Socket) => s === socket);
735
-
736
- if (socketIndex === -1) {
737
- throw new DyFM_Error({
738
- ...this._getDefaultErrorSettings(
739
- 'sendEventForId',
740
- new Error(
741
- `closing socket (${this.params.name}) does not match any in the activePresences`
742
- ),
743
- activePresence.issuerLocalId
744
- ),
745
-
746
- errorCode: `${DyNTS_global_settings.systemShortCodeName}|DyNTS-SSS-RS4`,
747
- });
748
- }
749
-
750
- activePresence.sockets.splice(socketIndex, 1);
751
-
752
- await DyFM_Array.asyncForEach(
753
- this.incomingEvents.filter(
754
- (event: DyFM_SocketEvent<any>) =>
755
- event.eventKey === DyFM_SocketEvent_Key.unsubscribeSuccessful
756
- ),
757
- async (event: DyFM_SocketEvent<any>) => {
758
- await event.executeEventTasks(null, issuer);
759
- }
760
- );
761
-
762
- /* if (this.getSubscriptionCloseTasks) {
763
- await DyFM_Array.asyncForEach(
764
- this.getSubscriptionCloseTasks(),
765
- async (task: DyFM_SocketEventTask<null>) => {
766
- await task(null, issuer);
767
- }
768
- );
769
- } */
770
-
771
- if (activePresence.sockets.length === 0) {
772
- this.presences.splice(activePresenceIndex, 1);
773
- }
774
-
775
- socket.emit(DyFM_SocketEvent_Key.unsubscribeSuccessful, 'unsubscribe was successful');
776
- socket.disconnect();
777
- DyFM_Log.info(`<x==> socket (${this.params.name}) unsubscription successful (${issuer})`);
778
- } catch (error) {
779
- throw new DyFM_Error({
780
- ...this._getDefaultErrorSettings(
781
- 'sendEventForId',
782
- error,
783
- issuer ?? 'unknown issuer'
784
- ),
785
-
786
- errorCode: `${DyNTS_global_settings.systemShortCodeName}|DyNTS-SSS-RS0`,
787
- message: `socket (${this.params.name}) Subscription Removal failed: "${this.params?.name}"`,
788
- });
789
- }
790
- }
791
-
792
- /* emitServerEvent(event: string, content: any): void {
793
- try {
794
- DyFM_Log.log(` <=-- emitting server socket(${this.params.name}) event: ${event}`);
795
-
796
- this.openSocketServer.emit(event, content, error => {
797
- DyFM_Log.error(`Emitting server event '${event}' failed!\nerror:`, error);
798
- });
799
- } catch (error) {
800
- throw new DyFM_Error({
801
- ...this._getDefaultErrorSettings(
802
- 'emitEvent',
803
- error
804
- ),
805
-
806
- errorCode: `${DyNTS_global_settings.systemShortCodeName}|DyNTS-SSS-500',
807
- message: `socket(${this.params.name}) Event Emit (${event}) failed: ${this.params?.name}`,
808
- });
809
- }
810
- } */
811
-
812
- idIsSubscribed(id: string): boolean {
813
- try {
814
- return !!this.presences.find(
815
- (presence: DyNTS_SocketPresence) => presence.issuerLocalId === id
816
- );
817
- } catch (error) {
818
- throw new DyFM_Error({
819
- ...this._getDefaultErrorSettings(
820
- 'idIsSubscribed',
821
- error
822
- ),
823
-
824
- errorCode: `${DyNTS_global_settings.systemShortCodeName}|DyNTS-SSS-IIS0`,
825
- message: `socket (${this.params.name}) ID Subscription Check (${id}) failed`,
826
- });
827
- }
828
- }
829
-
830
- async emitError(presenceIssuerId: string, error: any, issuer: string): Promise<void> {
831
- try {
832
- await this.sendEventForId(presenceIssuerId, DyFM_SocketEvent_Key.error, error, issuer);
833
- } catch (error) {
834
- throw new DyFM_Error({
835
- ...this._getDefaultErrorSettings(
836
- 'emitError',
837
- error,
838
- presenceIssuerId
839
- ),
840
- errorCode: `${DyNTS_global_settings.systemShortCodeName}|DyNTS-SSS-EE0`,
841
- message: `socket (${this.params.name}) Error Emit (id: ${presenceIssuerId}) failed`,
842
- });
843
- }
844
- }
845
-
846
- async sendEventForId(id: string, event: string, content: any, issuer: string): Promise<void> {
847
- try {
848
- if (!event) {
849
- throw new DyFM_Error({
850
- ...this._getDefaultErrorSettings(
851
- 'sendEventForId',
852
- new Error('No event was provided'),
853
- content?.source
854
- ),
855
- errorCode: `${DyNTS_global_settings.systemShortCodeName}|DyNTS-SSS-SEFI1`,
856
- });
857
- }
858
-
859
- if (!id) {
860
- throw new DyFM_Error({
861
- ...this._getDefaultErrorSettings(
862
- 'sendEventForId',
863
- new Error('No ID was provided'),
864
- content?.source
865
- ),
866
- errorCode: `${DyNTS_global_settings.systemShortCodeName}|DyNTS-SSS-SEFI2`,
867
- });
868
- }
869
-
870
- const presence: DyNTS_SocketPresence = this.presences.find(
871
- (pres: DyNTS_SocketPresence) => pres.issuerLocalId === id
872
- );
873
-
874
- if (!presence) {
875
- throw new DyFM_Error({
876
- ...this._getDefaultErrorSettings(
877
- 'sendEventForId',
878
- new Error(`No active socket with this specific ID: "${id}"`),
879
- content?.source
880
- ),
881
- errorCode: `${DyNTS_global_settings.systemShortCodeName}|DyNTS-SSS-SEFI3`,
882
- });
883
- }
884
-
885
- presence.emitEvent(event, content, issuer);
886
-
887
- if (DyNTS_global_settings.log_settings.socket_eventContent) {
888
- DyFM_Log.success(
889
- ` <--= emitted socket (${this.params.name}) event: "${event}", ` +
890
- `\n presenceId: "${id}", sockets: ${presence.sockets.length}` +
891
- `\n content:`, content
892
- );
893
- } else {
894
- DyFM_Log.success(
895
- ` <--= emitted socket (${this.params.name}) event: "${event}", ` +
896
- `\n presenceId: ${id}, sockets: ${presence.sockets.length}`
897
- );
898
- }
899
- } catch (error) {
900
- try {
901
- if (error?.flag?.includes(DyFM_errorFlag) && error?.additionalInfo?.inactiveSockets) {
902
- const sockets: SocketIO.Socket[] = error.additionalInfo.inactiveSockets;
903
-
904
- await DyFM_Array.asyncForEach(sockets, async (socket: SocketIO.Socket) => {
905
- await this.removeSubscription(socket);
906
- });
907
-
908
- const presence: DyNTS_SocketPresence = this.presences.find(
909
- (pres: DyNTS_SocketPresence) => pres.issuerLocalId === id
910
- );
911
-
912
- if (!presence) {
913
- throw new DyFM_Error({
914
- ...this._getDefaultErrorSettings(
915
- 'sendEventForId',
916
- new Error(`No active socket (${this.params.name}) with this specific ID: "${id}"`),
917
- content?.source
918
- ),
919
- errorCode: `${DyNTS_global_settings.systemShortCodeName}|DyNTS-SSS-SEFI4`,
920
- });
921
- }
922
- }
923
- } catch (error) {
924
- throw new DyFM_Error({
925
- ...this._getDefaultErrorSettings('sendEventForId', error, content?.source),
926
- errorCode: `${DyNTS_global_settings.systemShortCodeName}|DyNTS-SSS-SEFI5`,
927
- message:
928
- `Error handling of inactive sockets (${this.params.name}) failed!` +
929
- `\n(Socket Event Emit for id (${id}, ${event}) failed)`,
930
- });
931
- }
932
-
933
- throw new DyFM_Error({
934
- ...this._getDefaultErrorSettings('sendEventForId', error, content?.source),
935
- errorCode: `${DyNTS_global_settings.systemShortCodeName}|DyNTS-SSS-SEFI0`,
936
- message: `socket (${this.params.name}) Event Emit for id (${id}, ${event}) failed`,
937
- });
938
- }
939
- }
940
-
941
- async broadcastEvent(event: string, content: any, issuer: string): Promise<void> {
942
- try {
943
- DyFM_Log.log(`<=-== broadcasting socket (${this.params.name}) event: "${event}"`);
944
-
945
- this.presences.forEach((presence: DyNTS_SocketPresence) => {
946
- presence.emitEvent(event, content, issuer);
947
- });
948
- } catch (error) {
949
- if (DyNTS_global_settings.log_settings.detailedErrors) {
950
- if (error instanceof DyFM_Error) {
951
- error.logSimple(`socket (${this.params.name}) Event Broadcast (${event}) failed`);
952
- } else {
953
- DyFM_Log.error(`socket (${this.params.name}) Event Broadcast (${event}) failed`, error);
954
- }
955
- }
956
-
957
- throw new DyFM_Error({
958
- ...this._getDefaultErrorSettings('broadcastEvent', error),
959
-
960
- errorCode: `${DyNTS_global_settings.systemShortCodeName}|DyNTS-SSS-BE0`,
961
- message: `socket (${this.params.name}) Event Broadcast (${event}) failed`,
962
- });
963
- }
964
- }
965
-
966
- async sendError(error: DyFM_AnyError, issuer: string): Promise<void> {
967
- try {
968
- await this.sendEventForId(issuer, DyFM_SocketEvent_Key.error, error, issuer);
969
- } catch (error) {
970
- throw new DyFM_Error({
971
- ...this._getDefaultErrorSettings('sendError', error, issuer),
972
- errorCode: `${DyNTS_global_settings.systemShortCodeName}|DyNTS-SSS-SE0`,
973
- message: `socket (${this.params.name}) Error Send (${issuer}) failed`,
974
- });
975
- }
976
- }
977
-
978
- private _getDefaultErrorSettings(
979
- fnName: string,
980
- error: DyFM_AnyError,
981
- issuer?: string
982
- ): DyFM_Error_Settings {
983
- return {
984
- status: (error as DyFM_Error)?.___status ?? 500,
985
- message: (error as Error)?.message ??
986
- (error as DyFM_Error)?._message ??
987
- `${fnName} was UNSUCCESSFUL (NTS)`,
988
- addECToUserMsg: !(error as DyFM_Error)?.__userMessage,
989
- userMessage: (error as DyFM_Error)?.__userMessage ?? this.defaultErrorUserMsg,
990
- issuer: issuer,
991
- issuerService: this.constructor?.name,
992
- error: error,
993
- };
994
- }
995
-
996
- /**
997
- * You must setup params for the service in this function
998
- */
999
- protected abstract getServiceParams(): DyNTS_SocketServerService_Params;
1000
-
1001
- /**
1002
- * You must setup events and required services in this function
1003
- */
1004
- protected abstract getIncomingEvents(): DyFM_SocketEvent<any>[];
1005
-
1006
- /**
1007
- * You can setup tasks for the subscription event in this function
1008
- */
1009
- /* protected getSubscriptionCloseTasks?(): DyFM_SocketEventTask<null>[]; */
1010
-
1011
- /**
1012
- * You can setup preprocesses for the subscription event in this function
1013
- */
1014
- /* protected getSubscriptionPreProcesses?(): DyFM_SocketEventPreprocessTask[]; */
1015
-
1016
- /**
1017
- * You can setup tasks for the subscription event in this function
1018
- * This will happen after the presence is created
1019
- * If this throws an error, the socket will be closed
1020
- */
1021
- protected getSubscriptionTasks?(): DyFM_SocketEventTask<T_SubscriptionContent>[];
1022
-
1023
- /**
1024
- * You can setup tasks for the unsubscribe event in this function
1025
- */
1026
- /* protected getUnsubscribeTasks?(): DyFM_SocketEventTask<T_SubscriptionContent>[]; */
1027
-
1028
- /**
1029
- * You can setup preprocesses for the unsubscribe event in this function
1030
- */
1031
- /* protected getUnsubscribePreProcesses?(): DyFM_SocketEventPreprocessTask[]; */
1032
-
1033
- /**
1034
- * You can setup tasks for the error event in this function
1035
- */
1036
- protected errorHandling?: DyFM_SocketEventTask<T_ErrorContent>;
1037
- }