@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,40 +0,0 @@
1
-
2
- //
3
- // Server module
4
- //
5
- // This module contains solutions for basic server endpoints such as:
6
- //
7
- // - Errors;
8
- // saving and retrieving errors that are occuring on the server
9
- //
10
- // - Server Status;
11
- // retrieving the status of the server
12
- //
13
- // - Server Status Snapshot;
14
- // saving and retrieving the status of the server at a specific time
15
- //
16
-
17
-
18
- // ERRORS
19
- export * from './errors/errors.controller';
20
- export * from './errors/errors.control-service';
21
- export * from './errors/errors.data-service';
22
-
23
- // SERVER-STATUS
24
- export * from './server-status/db-readiness-probe-code.type-enum';
25
- export * from './server-status/db-readiness-probe-stage.type-enum';
26
- export * from './server-status/db-readiness-probe.interface';
27
- export * from './server-status/db-readiness-probe.control-service';
28
- export * from './server-status/server-status-snapshot.data-service';
29
- export * from './server-status/server-status-snapshot.control-service';
30
- export * from './server-status/server-status.control-service';
31
- export * from './server-status/server-status.controller';
32
-
33
- // SAFE-DIAGNOSTIC
34
- export * from './safe-diagnostic/safe-diagnostic-cause.type-enum';
35
- export * from './safe-diagnostic/safe-diagnostic-stage.type-enum';
36
- export * from './safe-diagnostic/safe-diagnostic.interface';
37
- export * from './safe-diagnostic/safe-diagnostic.control-service';
38
-
39
-
40
-
@@ -1,8 +0,0 @@
1
- /** Stable, content-free classifications for framework-owned failures. */
2
- export enum DyNTS_SafeDiagnosticCause_Type {
3
- dynamoError = 'dynamo-error',
4
- nativeError = 'native-error',
5
- object = 'object',
6
- primitive = 'primitive',
7
- unknown = 'unknown',
8
- }
@@ -1,20 +0,0 @@
1
- /** Framework stages that may emit a content-free diagnostic. */
2
- export enum DyNTS_SafeDiagnosticStage_Type {
3
- bootstrap = 'bootstrap',
4
- collectionGrowthMonitor = 'collection-growth-monitor',
5
- databaseConnect = 'database-connect',
6
- databaseRuntime = 'database-runtime',
7
- eventLoopDiagnostic = 'event-loop-diagnostic',
8
- endpoint = 'endpoint',
9
- expressFallback = 'express-fallback',
10
- globalErrorHandler = 'global-error-handler',
11
- httpServer = 'http-server',
12
- httpsServer = 'https-server',
13
- memoryGuard = 'memory-guard',
14
- mongoReconnectGuard = 'mongo-reconnect-guard',
15
- postProcess = 'post-process',
16
- readiness = 'readiness',
17
- retention = 'retention',
18
- routing = 'routing',
19
- unhandledRejection = 'unhandled-rejection',
20
- }
@@ -1,124 +0,0 @@
1
- import { DyFM_Error, DyFM_Log } from '@futdevpro/fsm-dynamo';
2
-
3
- import { DyNTS_SafeDiagnosticCause_Type } from './safe-diagnostic-cause.type-enum';
4
- import { DyNTS_SafeDiagnosticStage_Type } from './safe-diagnostic-stage.type-enum';
5
- import {
6
- DyNTS_SafeDiagnosticInput_Interface,
7
- DyNTS_SafeDiagnostic_Interface
8
- } from './safe-diagnostic.interface';
9
- import { DyNTS_SafeDiagnostic_ControlService } from './safe-diagnostic.control-service';
10
-
11
- describe('| DyNTS_SafeDiagnostic_ControlService', (): void => {
12
- const canary: string = 'mongodb://user:secret@private-host.example/raw-driver-message';
13
-
14
- it('| returns the exact immutable content-free allowlist', (): void => {
15
- const result: DyNTS_SafeDiagnostic_Interface = DyNTS_SafeDiagnostic_ControlService.project({
16
- code: 'DYNTS|APP|DB_CONNECT_FAILED',
17
- stage: DyNTS_SafeDiagnosticStage_Type.databaseConnect,
18
- error: new Error(canary),
19
- status: 503,
20
- });
21
-
22
- expect(Object.keys(result).sort()).toEqual([
23
- 'causeType',
24
- 'code',
25
- 'contractVersion',
26
- 'fingerprint',
27
- 'stage',
28
- 'status',
29
- ]);
30
- expect(result).toEqual({
31
- contractVersion: 'dynts-safe-diagnostic/1',
32
- code: 'DYNTS|APP|DB_CONNECT_FAILED',
33
- stage: DyNTS_SafeDiagnosticStage_Type.databaseConnect,
34
- causeType: DyNTS_SafeDiagnosticCause_Type.nativeError,
35
- fingerprint: jasmine.stringMatching(/^[a-f0-9]{64}$/),
36
- status: 503,
37
- });
38
- expect(Object.isFrozen(result)).toBeTrue();
39
- expect(JSON.stringify(result)).not.toContain(canary);
40
- expect(JSON.stringify(result)).not.toContain('secret');
41
- });
42
-
43
- it('| creates a deterministic correlation without reflecting its raw subject', (): void => {
44
- const input: DyNTS_SafeDiagnosticInput_Interface = {
45
- code: 'DYNTS|APP|BOOT_FAILED',
46
- stage: DyNTS_SafeDiagnosticStage_Type.bootstrap,
47
- error: new Error(canary),
48
- };
49
- const first: DyNTS_SafeDiagnostic_Interface = DyNTS_SafeDiagnostic_ControlService.project(input);
50
- const second: DyNTS_SafeDiagnostic_Interface = DyNTS_SafeDiagnostic_ControlService.project(input);
51
-
52
- expect(first.fingerprint).toBe(second.fingerprint);
53
- expect(first.fingerprint).not.toContain(canary);
54
- });
55
-
56
- it('| classifies Dynamo, object, primitive and absent failures without returning content', (): void => {
57
- const failures: unknown[] = [
58
- new DyFM_Error({ errorCode: 'TEST', message: canary }),
59
- { privateValue: canary },
60
- canary,
61
- undefined,
62
- ];
63
- const expected: DyNTS_SafeDiagnosticCause_Type[] = [
64
- DyNTS_SafeDiagnosticCause_Type.dynamoError,
65
- DyNTS_SafeDiagnosticCause_Type.object,
66
- DyNTS_SafeDiagnosticCause_Type.primitive,
67
- DyNTS_SafeDiagnosticCause_Type.unknown,
68
- ];
69
-
70
- failures.forEach((error: unknown, index: number): void => {
71
- const result: DyNTS_SafeDiagnostic_Interface = DyNTS_SafeDiagnostic_ControlService.project({
72
- code: 'DYNTS|APP|FAILURE',
73
- stage: DyNTS_SafeDiagnosticStage_Type.bootstrap,
74
- error: error,
75
- });
76
-
77
- expect(result.causeType).toBe(expected[index]);
78
- expect(JSON.stringify(result)).not.toContain(canary);
79
- });
80
- });
81
-
82
- it('| fails closed for invalid code, status and hostile getters', (): void => {
83
- const hostile: Error = new Error('placeholder');
84
-
85
- Object.defineProperty(hostile, 'message', {
86
- get: (): never => {
87
- throw new Error(canary);
88
- },
89
- });
90
- Object.defineProperty(hostile, 'stack', {
91
- get: (): never => {
92
- throw new Error(canary);
93
- },
94
- });
95
-
96
- const result: DyNTS_SafeDiagnostic_Interface = DyNTS_SafeDiagnostic_ControlService.project({
97
- code: canary,
98
- stage: DyNTS_SafeDiagnosticStage_Type.bootstrap,
99
- error: hostile,
100
- status: 999,
101
- });
102
-
103
- expect(result.code).toBe('DYNTS_SAFE_DIAGNOSTIC_INVALID_CODE');
104
- expect(result.status).toBe(500);
105
- expect(result.fingerprint).toMatch(/^[a-f0-9]{64}$/);
106
- expect(JSON.stringify(result)).not.toContain(canary);
107
- });
108
-
109
- it('| reports and creates framework errors from the safe result only', (): void => {
110
- const logSpy: jasmine.Spy = spyOn(DyFM_Log, 'error');
111
- const diagnostic: DyNTS_SafeDiagnostic_Interface = DyNTS_SafeDiagnostic_ControlService.report({
112
- code: 'DYNTS|APP|FAILURE',
113
- stage: DyNTS_SafeDiagnosticStage_Type.bootstrap,
114
- error: new Error(canary),
115
- });
116
- const error: DyFM_Error = DyNTS_SafeDiagnostic_ControlService.toError(diagnostic);
117
- const serialized: string = JSON.stringify(error);
118
-
119
- expect(logSpy).toHaveBeenCalledOnceWith('[DyNTS safe diagnostic]', diagnostic);
120
- expect(serialized).not.toContain(canary);
121
- expect(serialized).not.toContain('secret');
122
- expect(serialized).toContain(diagnostic.fingerprint);
123
- });
124
- });
@@ -1,99 +0,0 @@
1
- import { createHash } from 'crypto';
2
-
3
- import { DyFM_Error, DyFM_Log } from '@futdevpro/fsm-dynamo';
4
-
5
- import { DyNTS_SafeDiagnosticCause_Type } from './safe-diagnostic-cause.type-enum';
6
- import {
7
- DyNTS_SafeDiagnosticInput_Interface,
8
- DyNTS_SafeDiagnostic_Interface
9
- } from './safe-diagnostic.interface';
10
-
11
- /** Projects arbitrary failures to a versioned, content-free public diagnostic. */
12
- export class DyNTS_SafeDiagnostic_ControlService {
13
- private static readonly contractVersion: 'dynts-safe-diagnostic/1' = 'dynts-safe-diagnostic/1';
14
- private static readonly defaultCode: string = 'DYNTS_SAFE_DIAGNOSTIC_INVALID_CODE';
15
- private static readonly defaultStatus: number = 500;
16
-
17
- /** Returns an immutable exact allowlist and never reflects raw failure content. */
18
- static project(input: DyNTS_SafeDiagnosticInput_Interface): DyNTS_SafeDiagnostic_Interface {
19
- const code: string = this.getCode(input.code);
20
- const causeType: DyNTS_SafeDiagnosticCause_Type = this.getCauseType(input.error);
21
- const status: number = this.getStatus(input.status);
22
- const fingerprint: string = this.getFingerprint([
23
- this.contractVersion,
24
- code,
25
- input.stage,
26
- causeType,
27
- status.toString(),
28
- ]);
29
-
30
- return Object.freeze({
31
- contractVersion: this.contractVersion,
32
- code: code,
33
- stage: input.stage,
34
- causeType: causeType,
35
- fingerprint: fingerprint,
36
- status: status,
37
- });
38
- }
39
-
40
- /** Logs only the projected allowlist and returns the same immutable diagnostic. */
41
- static report(input: DyNTS_SafeDiagnosticInput_Interface): DyNTS_SafeDiagnostic_Interface {
42
- const diagnostic: DyNTS_SafeDiagnostic_Interface = this.project(input);
43
-
44
- DyFM_Log.error('[DyNTS safe diagnostic]', diagnostic);
45
-
46
- return diagnostic;
47
- }
48
-
49
- /** Creates a framework error that carries only the safe diagnostic allowlist. */
50
- static toError(diagnostic: DyNTS_SafeDiagnostic_Interface): DyFM_Error {
51
- return new DyFM_Error({
52
- errorCode: diagnostic.code,
53
- message: `Framework failure at ${diagnostic.stage}. Correlation: ${diagnostic.fingerprint}.`,
54
- userMessage: 'A server operation failed. Contact the responsible team with the correlation fingerprint.',
55
- additionalContent: { diagnostic: diagnostic },
56
- status: diagnostic.status,
57
- });
58
- }
59
-
60
- private static getCode(code: string): string {
61
- return /^[A-Z][A-Z0-9_|-]{2,127}$/.test(code) ? code : this.defaultCode;
62
- }
63
-
64
- private static getCauseType(error: unknown): DyNTS_SafeDiagnosticCause_Type {
65
- try {
66
- if (error instanceof DyFM_Error) {
67
- return DyNTS_SafeDiagnosticCause_Type.dynamoError;
68
- }
69
-
70
- if (error instanceof Error) {
71
- return DyNTS_SafeDiagnosticCause_Type.nativeError;
72
- }
73
-
74
- if (error !== null && typeof error === 'object') {
75
- return DyNTS_SafeDiagnosticCause_Type.object;
76
- }
77
-
78
- if (error !== undefined) {
79
- return DyNTS_SafeDiagnosticCause_Type.primitive;
80
- }
81
- } catch {
82
- return DyNTS_SafeDiagnosticCause_Type.unknown;
83
- }
84
-
85
- return DyNTS_SafeDiagnosticCause_Type.unknown;
86
- }
87
-
88
- private static getStatus(status?: number): number {
89
- if (typeof status !== 'number' || !Number.isInteger(status) || status < 100 || status > 599) {
90
- return this.defaultStatus;
91
- }
92
-
93
- return status;
94
- }
95
-
96
- private static getFingerprint(subject: string[]): string {
97
- return createHash('sha256').update(subject.join('\u0000'), 'utf8').digest('hex');
98
- }
99
- }
@@ -1,20 +0,0 @@
1
- import { DyNTS_SafeDiagnosticCause_Type } from './safe-diagnostic-cause.type-enum';
2
- import { DyNTS_SafeDiagnosticStage_Type } from './safe-diagnostic-stage.type-enum';
3
-
4
- /** Caller-owned input whose raw failure content is never returned or logged. */
5
- export interface DyNTS_SafeDiagnosticInput_Interface {
6
- code: string;
7
- stage: DyNTS_SafeDiagnosticStage_Type;
8
- error?: unknown;
9
- status?: number;
10
- }
11
-
12
- /** Exact public allowlist emitted by the safe diagnostic boundary. */
13
- export interface DyNTS_SafeDiagnostic_Interface {
14
- contractVersion: 'dynts-safe-diagnostic/1';
15
- code: string;
16
- stage: DyNTS_SafeDiagnosticStage_Type;
17
- causeType: DyNTS_SafeDiagnosticCause_Type;
18
- fingerprint: string;
19
- status: number;
20
- }
@@ -1,13 +0,0 @@
1
- /** Stable, content-free result codes emitted by the database-readiness probe. */
2
- export enum DyNTS_DbReadinessProbeCode_Type {
3
- ready = 'dynts-db-readiness-ready',
4
- connectionUnavailable = 'dynts-db-readiness-connection-unavailable',
5
- disconnected = 'dynts-db-readiness-disconnected',
6
- connecting = 'dynts-db-readiness-connecting',
7
- disconnecting = 'dynts-db-readiness-disconnecting',
8
- stateUnknown = 'dynts-db-readiness-state-unknown',
9
- databaseUnavailable = 'dynts-db-readiness-database-unavailable',
10
- pingFailed = 'dynts-db-readiness-ping-failed',
11
- cancelled = 'dynts-db-readiness-cancelled',
12
- probeFailed = 'dynts-db-readiness-probe-failed',
13
- }
@@ -1,7 +0,0 @@
1
- /** Bounded stages of the foreground database-readiness probe. */
2
- export enum DyNTS_DbReadinessProbeStage_Type {
3
- input = 'input',
4
- state = 'state',
5
- ping = 'ping',
6
- complete = 'complete',
7
- }
@@ -1,235 +0,0 @@
1
- import * as mongoose from 'mongoose';
2
-
3
- import { DyNTS_DbReadinessProbeCode_Type } from './db-readiness-probe-code.type-enum';
4
- import { DyNTS_DbReadinessProbe_ControlService } from './db-readiness-probe.control-service';
5
- import {
6
- DyNTS_DbReadinessProbeRequest_Interface,
7
- DyNTS_DbReadinessProbeResult_Interface
8
- } from './db-readiness-probe.interface';
9
- import { DyNTS_DbReadinessProbeStage_Type } from './db-readiness-probe-stage.type-enum';
10
-
11
- interface TestConnectionSet {
12
- readyState?: number;
13
- databaseAvailable?: boolean;
14
- ping?: () => Promise<Record<string, number>>;
15
- readyStateGetter?: () => number;
16
- databaseGetter?: () => mongoose.Connection['db'];
17
- }
18
-
19
- interface CyclicFailure {
20
- marker: string;
21
- self?: CyclicFailure;
22
- }
23
-
24
- describe('| DyNTS_DbReadinessProbe_ControlService', (): void => {
25
- const canary: string = 'mongodb://user:secret@private-host.example/internal-driver-message';
26
-
27
- /** Creates a local Mongoose connection handle with deterministic probe capabilities. */
28
- function createConnection(set: TestConnectionSet = {}): mongoose.Connection {
29
- const connection: mongoose.Connection = mongoose.createConnection();
30
- const registryIndex: number = mongoose.connections.indexOf(connection);
31
-
32
- if (registryIndex >= 0) {
33
- mongoose.connections.splice(registryIndex, 1);
34
- }
35
-
36
- Object.defineProperty(connection, 'readyState', {
37
- configurable: true,
38
- get: set.readyStateGetter ?? ((): number => set.readyState ?? 1),
39
- });
40
- Object.defineProperty(connection, 'db', {
41
- configurable: true,
42
- get: set.databaseGetter ?? ((): unknown => {
43
- if (set.databaseAvailable === false) {
44
- return undefined;
45
- }
46
-
47
- return {
48
- admin: (): { ping: () => Promise<Record<string, number>> } => ({
49
- ping: set.ping ?? (async (): Promise<Record<string, number>> => ({ ok: 1 })),
50
- }),
51
- };
52
- }),
53
- });
54
-
55
- return connection;
56
- }
57
-
58
- /** Runs the content-free probe against a deterministic test connection. */
59
- async function probe(connection: mongoose.Connection): Promise<DyNTS_DbReadinessProbeResult_Interface> {
60
- return DyNTS_DbReadinessProbe_ControlService.probe({ connection: connection });
61
- }
62
-
63
- it('| returns the exact allowlisted ready result after a successful ping', async (): Promise<void> => {
64
- const result: DyNTS_DbReadinessProbeResult_Interface = await probe(createConnection());
65
-
66
- expect(result).toEqual({
67
- contractVersion: 'dynts-db-readiness/1',
68
- ready: true,
69
- readyState: 1,
70
- pingOk: true,
71
- stage: DyNTS_DbReadinessProbeStage_Type.complete,
72
- code: DyNTS_DbReadinessProbeCode_Type.ready,
73
- });
74
- expect(Object.keys(result)).toEqual([
75
- 'contractVersion',
76
- 'ready',
77
- 'readyState',
78
- 'pingOk',
79
- 'stage',
80
- 'code',
81
- ]);
82
- });
83
-
84
- [
85
- { readyState: 0, code: DyNTS_DbReadinessProbeCode_Type.disconnected },
86
- { readyState: 2, code: DyNTS_DbReadinessProbeCode_Type.connecting },
87
- { readyState: 3, code: DyNTS_DbReadinessProbeCode_Type.disconnecting },
88
- ].forEach((set: { readyState: number; code: DyNTS_DbReadinessProbeCode_Type }): void => {
89
- it(`| reports state ${set.readyState} without pinging`, async (): Promise<void> => {
90
- const ping: jasmine.Spy = jasmine.createSpy('ping');
91
- const result: DyNTS_DbReadinessProbeResult_Interface = await probe(createConnection({
92
- readyState: set.readyState,
93
- ping: ping,
94
- }));
95
-
96
- expect(result.ready).toBeFalse();
97
- expect(result.readyState).toBe(set.readyState);
98
- expect(result.pingOk).toBeFalse();
99
- expect(result.stage).toBe(DyNTS_DbReadinessProbeStage_Type.state);
100
- expect(result.code).toBe(set.code);
101
- expect(ping).not.toHaveBeenCalled();
102
- });
103
- });
104
-
105
- it('| normalizes an out-of-range state without exposing its value', async (): Promise<void> => {
106
- const result: DyNTS_DbReadinessProbeResult_Interface = await probe(createConnection({ readyState: 99 }));
107
-
108
- expect(result.readyState).toBe(-1);
109
- expect(result.code).toBe(DyNTS_DbReadinessProbeCode_Type.stateUnknown);
110
- });
111
-
112
- it('| fails closed when the runtime connection input is unavailable', async (): Promise<void> => {
113
- const request: DyNTS_DbReadinessProbeRequest_Interface = Object.create(null);
114
-
115
- Object.defineProperty(request, 'connection', { configurable: true, get: (): undefined => undefined });
116
-
117
- const result: DyNTS_DbReadinessProbeResult_Interface =
118
- await DyNTS_DbReadinessProbe_ControlService.probe(request);
119
-
120
- expect(result.code).toBe(DyNTS_DbReadinessProbeCode_Type.connectionUnavailable);
121
- expect(result.ready).toBeFalse();
122
- });
123
-
124
- it('| fails closed when the connected handle has no database', async (): Promise<void> => {
125
- const result: DyNTS_DbReadinessProbeResult_Interface = await probe(createConnection({
126
- databaseAvailable: false,
127
- }));
128
-
129
- expect(result.readyState).toBe(1);
130
- expect(result.stage).toBe(DyNTS_DbReadinessProbeStage_Type.ping);
131
- expect(result.code).toBe(DyNTS_DbReadinessProbeCode_Type.databaseUnavailable);
132
- });
133
-
134
- it('| converts a ping rejection to a stable result without leaking its content', async (): Promise<void> => {
135
- const stdoutSpy: jasmine.Spy = spyOn(process.stdout, 'write');
136
- const stderrSpy: jasmine.Spy = spyOn(process.stderr, 'write');
137
- const result: DyNTS_DbReadinessProbeResult_Interface = await probe(createConnection({
138
- ping: async (): Promise<Record<string, number>> => Promise.reject(new Error(canary)),
139
- }));
140
- const serialized: string = JSON.stringify(result);
141
-
142
- expect(result.code).toBe(DyNTS_DbReadinessProbeCode_Type.pingFailed);
143
- expect(result.readyState).toBe(1);
144
- expect(result.ready).toBeFalse();
145
- expect(result.pingOk).toBeFalse();
146
- expect(serialized).not.toContain(canary);
147
- expect(serialized).not.toContain('secret');
148
- expect(serialized).not.toContain('private-host');
149
- expect(stdoutSpy).not.toHaveBeenCalled();
150
- expect(stderrSpy).not.toHaveBeenCalled();
151
- });
152
-
153
- it('| honors caller-owned cancellation before the probe', async (): Promise<void> => {
154
- const controller: AbortController = new AbortController();
155
-
156
- controller.abort();
157
-
158
- const result: DyNTS_DbReadinessProbeResult_Interface =
159
- await DyNTS_DbReadinessProbe_ControlService.probe({
160
- connection: createConnection(),
161
- abortSignal: controller.signal,
162
- });
163
-
164
- expect(result.stage).toBe(DyNTS_DbReadinessProbeStage_Type.input);
165
- expect(result.code).toBe(DyNTS_DbReadinessProbeCode_Type.cancelled);
166
- });
167
-
168
- it('| honors caller-owned cancellation after the ping settles', async (): Promise<void> => {
169
- const controller: AbortController = new AbortController();
170
- const connection: mongoose.Connection = createConnection({
171
- ping: async (): Promise<Record<string, number>> => {
172
- controller.abort();
173
-
174
- return { ok: 1 };
175
- },
176
- });
177
-
178
- const result: DyNTS_DbReadinessProbeResult_Interface =
179
- await DyNTS_DbReadinessProbe_ControlService.probe({ connection: connection, abortSignal: controller.signal });
180
-
181
- expect(result.stage).toBe(DyNTS_DbReadinessProbeStage_Type.ping);
182
- expect(result.code).toBe(DyNTS_DbReadinessProbeCode_Type.cancelled);
183
- expect(result.pingOk).toBeFalse();
184
- });
185
-
186
- it('| contains a hostile ready-state getter without reflecting its value', async (): Promise<void> => {
187
- const failure: CyclicFailure = { marker: canary };
188
-
189
- failure.self = failure;
190
- const result: DyNTS_DbReadinessProbeResult_Interface = await probe(createConnection({
191
- readyStateGetter: (): number => {
192
- throw failure;
193
- },
194
- }));
195
-
196
- expect(result.code).toBe(DyNTS_DbReadinessProbeCode_Type.probeFailed);
197
- expect(JSON.stringify(result)).not.toContain(canary);
198
- });
199
-
200
- it('| contains a hostile database getter without reflecting its value', async (): Promise<void> => {
201
- const failure: CyclicFailure = { marker: canary };
202
-
203
- failure.self = failure;
204
- const result: DyNTS_DbReadinessProbeResult_Interface = await probe(createConnection({
205
- databaseGetter: (): mongoose.Connection['db'] => {
206
- throw failure;
207
- },
208
- }));
209
-
210
- expect(result.code).toBe(DyNTS_DbReadinessProbeCode_Type.pingFailed);
211
- expect(JSON.stringify(result)).not.toContain(canary);
212
- });
213
-
214
- it('| starts no timer or signal listener and writes no output', async (): Promise<void> => {
215
- const timeoutSpy: jasmine.Spy = spyOn(globalThis, 'setTimeout');
216
- const intervalSpy: jasmine.Spy = spyOn(globalThis, 'setInterval');
217
- const listenerSpy: jasmine.Spy = spyOn(AbortSignal.prototype, 'addEventListener');
218
- const stdoutSpy: jasmine.Spy = spyOn(process.stdout, 'write');
219
- const stderrSpy: jasmine.Spy = spyOn(process.stderr, 'write');
220
- const controller: AbortController = new AbortController();
221
-
222
- const result: DyNTS_DbReadinessProbeResult_Interface =
223
- await DyNTS_DbReadinessProbe_ControlService.probe({
224
- connection: createConnection(),
225
- abortSignal: controller.signal,
226
- });
227
-
228
- expect(result.ready).toBeTrue();
229
- expect(timeoutSpy).not.toHaveBeenCalled();
230
- expect(intervalSpy).not.toHaveBeenCalled();
231
- expect(listenerSpy).not.toHaveBeenCalled();
232
- expect(stdoutSpy).not.toHaveBeenCalled();
233
- expect(stderrSpy).not.toHaveBeenCalled();
234
- });
235
- });