@futdevpro/nts-dynamo 1.15.151 → 1.15.153

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 (621) hide show
  1. package/.c8rc.json +26 -26
  2. package/.copilot/patterns.json +7 -7
  3. package/.cursor/rules/__assistant_guide.mdc +30 -30
  4. package/.cursor/rules/__main.mdc +64 -64
  5. package/.cursor/rules/_ag_backend-structure.mdc +85 -85
  6. package/.cursor/rules/_ag_backend.mdc +16 -16
  7. package/.cursor/rules/_ag_debug.mdc +7 -7
  8. package/.cursor/rules/_ag_documentation_writing_rules.mdc +372 -372
  9. package/.cursor/rules/_ag_file-refactoring.mdc +113 -113
  10. package/.cursor/rules/_ag_fixes_rules.mdc +5 -5
  11. package/.cursor/rules/_ag_frontend-structure.mdc +86 -86
  12. package/.cursor/rules/_ag_frontend.mdc +39 -39
  13. package/.cursor/rules/_ag_import-rules.mdc +44 -44
  14. package/.cursor/rules/_ag_naming.mdc +115 -115
  15. package/.cursor/rules/_ag_running_commands.mdc +4 -4
  16. package/.cursor/rules/_ag_server-controller.mdc +5 -5
  17. package/.cursor/rules/_ag_should-be.mdc +6 -6
  18. package/.cursor/rules/_ag_swearing.mdc +47 -47
  19. package/.cursor/rules/ai_development_guide.md +60 -60
  20. package/.cursor/rules/ai_directives.md +114 -114
  21. package/.cursor/rules/cursor-rules.md +160 -160
  22. package/.cursor/rules/default-command.mdc +464 -464
  23. package/.cursor/rules/error_code_pattern.md +39 -39
  24. package/.cursor/rules/saved rule mcp server use.md +15 -15
  25. package/.dynamo/pipeline.cicd.config.json +190 -190
  26. package/.dynamo/version-bump.config.json +5 -5
  27. package/.github/workflows/main.yml +438 -438
  28. package/.husky/pre-commit +3 -3
  29. package/.vscode/settings.json +10 -10
  30. package/HOWTO.md +15 -15
  31. package/LICENSE +21 -21
  32. package/README.md +780 -754
  33. package/__documentations/2026-04-28-logs-module.md +49 -49
  34. package/__documentations/2026-05-17-oai-compatible-providers.md +229 -229
  35. package/__documentations/2026-05-17-static-client-serving-howto.md +144 -144
  36. package/__documentations/2026-06-01-fr041-cors-middleware.md +96 -96
  37. package/__documentations/2026-06-01-fr047-p2p3-function-calling.md +81 -81
  38. package/__documentations/2026-06-15-fr193-memory-guard.md +73 -73
  39. package/__documentations/2026-08-08-fr292-app-version-header.md +38 -38
  40. package/__documentations/2026-08-14-field-encryption-mongoose-document-spread.md +124 -124
  41. package/__documentations/2026-08-18-artifact-compiler.md +46 -46
  42. package/__documentations/2026-08-18-mongo-transaction-control-service.md +82 -82
  43. package/__documentations/2026-08-18-standalone-account-security-and-privacy-bedrock.md +132 -132
  44. package/__documentations/2026-08-21-distributed-rate-limit-bfr-ctm-010.md +59 -59
  45. package/__documentations/2026-08-22-npm-token-state-classifier.md +92 -92
  46. package/__documentations/nts-integration-tests-2026-03-17.md +26 -26
  47. package/__documentations/plans/BEDROCK-HYPERPLAN.md +95 -95
  48. package/_specifications/BACKLOG.md +92 -92
  49. package/_specifications/TODO.md +15 -15
  50. package/_specifications/agent.md +138 -138
  51. package/build/_modules/server/index.d.ts +4 -0
  52. package/build/_modules/server/index.d.ts.map +1 -1
  53. package/build/_modules/server/index.js +4 -0
  54. package/build/_modules/server/index.js.map +1 -1
  55. package/build/_modules/server/server-status/db-readiness-probe-code.type-enum.d.ts +14 -0
  56. package/build/_modules/server/server-status/db-readiness-probe-code.type-enum.d.ts.map +1 -0
  57. package/build/_modules/server/server-status/db-readiness-probe-code.type-enum.js +18 -0
  58. package/build/_modules/server/server-status/db-readiness-probe-code.type-enum.js.map +1 -0
  59. package/build/_modules/server/server-status/db-readiness-probe-stage.type-enum.d.ts +8 -0
  60. package/build/_modules/server/server-status/db-readiness-probe-stage.type-enum.d.ts.map +1 -0
  61. package/build/_modules/server/server-status/db-readiness-probe-stage.type-enum.js +12 -0
  62. package/build/_modules/server/server-status/db-readiness-probe-stage.type-enum.js.map +1 -0
  63. package/build/_modules/server/server-status/db-readiness-probe.control-service.d.ts +14 -0
  64. package/build/_modules/server/server-status/db-readiness-probe.control-service.d.ts.map +1 -0
  65. package/build/_modules/server/server-status/db-readiness-probe.control-service.js +126 -0
  66. package/build/_modules/server/server-status/db-readiness-probe.control-service.js.map +1 -0
  67. package/build/_modules/server/server-status/db-readiness-probe.interface.d.ts +18 -0
  68. package/build/_modules/server/server-status/db-readiness-probe.interface.d.ts.map +1 -0
  69. package/build/_modules/server/server-status/db-readiness-probe.interface.js +3 -0
  70. package/build/_modules/server/server-status/db-readiness-probe.interface.js.map +1 -0
  71. package/eslint.config.js +3 -3
  72. package/nodemon.json +24 -24
  73. package/package.json +1 -1
  74. package/pnpm-workspace.yaml +6 -6
  75. package/scripts/_seed-out/aim-seed.fixtures.ts +161 -161
  76. package/scripts/_seed-out/llm-expand-raw.json +59 -59
  77. package/scripts/_seed-out/seed-raw.json +152 -152
  78. package/scripts/ai-fixture-seed.js +126 -126
  79. package/scripts/run-coverage-tests.js +28 -28
  80. package/spec/support/helpers/spec-reporter-loader.js +359 -359
  81. package/spec/support/helpers/ts-node-helper.js +93 -93
  82. package/spec/support/jasmine.coverage.json +24 -24
  83. package/spec/support/jasmine.json +24 -24
  84. package/src/_collections/app-version-header.util.spec.ts +108 -108
  85. package/src/_collections/app-version-header.util.ts +74 -74
  86. package/src/_collections/archive-service-registry.const.ts +21 -21
  87. package/src/_collections/archive.util.spec.ts +57 -57
  88. package/src/_collections/archive.util.ts +18 -18
  89. package/src/_collections/atlas-default-db-options.const.ts +9 -9
  90. package/src/_collections/client-safe-error.util.spec.ts +151 -151
  91. package/src/_collections/client-safe-error.util.ts +107 -107
  92. package/src/_collections/default-fallback-cache-max-age.const.spec.ts +11 -11
  93. package/src/_collections/default-fallback-cache-max-age.const.ts +2 -2
  94. package/src/_collections/default-not-found-page.const.spec.ts +19 -19
  95. package/src/_collections/default-not-found-page.const.ts +22 -22
  96. package/src/_collections/default-socket-path.const.spec.ts +12 -12
  97. package/src/_collections/default-socket-path.const.ts +2 -2
  98. package/src/_collections/field-encryption.util.spec.ts +195 -195
  99. package/src/_collections/field-encryption.util.ts +222 -222
  100. package/src/_collections/get-environment-settings.util.spec.ts +210 -210
  101. package/src/_collections/get-environment-settings.util.ts +48 -48
  102. package/src/_collections/global-settings.const.ts +126 -126
  103. package/src/_collections/load-shed.util.spec.ts +62 -62
  104. package/src/_collections/load-shed.util.ts +51 -51
  105. package/src/_collections/mongo-reconnect-guard.util.spec.ts +52 -52
  106. package/src/_collections/mongo-reconnect-guard.util.ts +172 -172
  107. package/src/_collections/npm-token-check.util.spec.ts +218 -218
  108. package/src/_collections/npm-token-check.util.ts +327 -327
  109. package/src/_collections/sample.env +21 -21
  110. package/src/_collections/security-headers.util.spec.ts +98 -98
  111. package/src/_collections/security-headers.util.ts +96 -96
  112. package/src/_collections/signed-url.util.spec.ts +198 -198
  113. package/src/_collections/signed-url.util.ts +170 -170
  114. package/src/_collections/star.controller.spec.ts +224 -224
  115. package/src/_collections/star.controller.ts +129 -129
  116. package/src/_collections/static-cache-control.util.spec.ts +47 -47
  117. package/src/_collections/static-cache-control.util.ts +25 -25
  118. package/src/_enums/data-model-type.enum.ts +14 -14
  119. package/src/_enums/data-service-function.enum.ts +24 -24
  120. package/src/_enums/predefined-data-types.enum.ts +16 -16
  121. package/src/_enums/route-security.enum.ts +12 -12
  122. package/src/_models/control-models/api-call-params.control-model.spec.ts +152 -152
  123. package/src/_models/control-models/api-call-params.control-model.ts +142 -142
  124. package/src/_models/control-models/app-ext-system-controls.control-model.spec.ts +52 -52
  125. package/src/_models/control-models/app-ext-system-controls.control-model.ts +9 -9
  126. package/src/_models/control-models/app-params.control-model.spec.ts +225 -225
  127. package/src/_models/control-models/app-params.control-model.ts +136 -136
  128. package/src/_models/control-models/app-system-controls.control-model.spec.ts +31 -31
  129. package/src/_models/control-models/app-system-controls.control-model.ts +9 -9
  130. package/src/_models/control-models/endpoint-params.control-model.spec.ts +669 -669
  131. package/src/_models/control-models/endpoint-params.control-model.ts +664 -664
  132. package/src/_models/control-models/http-settings.control-model.spec.ts +77 -77
  133. package/src/_models/control-models/http-settings.control-model.ts +37 -37
  134. package/src/_models/control-models/system-control.control-model.spec.ts +27 -27
  135. package/src/_models/control-models/system-control.control-model.ts +12 -12
  136. package/src/_models/data-models/schema-migration.data-model.ts +50 -50
  137. package/src/_models/interfaces/app-version-header-settings.interface.ts +17 -17
  138. package/src/_models/interfaces/certification-settings.interface.ts +7 -7
  139. package/src/_models/interfaces/compare-data-options.interface.ts +27 -27
  140. package/src/_models/interfaces/compare-data-result.interface.ts +12 -12
  141. package/src/_models/interfaces/cors-settings.interface.spec.ts +52 -52
  142. package/src/_models/interfaces/cors-settings.interface.ts +56 -56
  143. package/src/_models/interfaces/db-query-options.interface.ts +33 -33
  144. package/src/_models/interfaces/environment-settings.interface.ts +59 -59
  145. package/src/_models/interfaces/global-log-settings.interface.ts +171 -171
  146. package/src/_models/interfaces/global-service-settings.interface.ts +47 -47
  147. package/src/_models/interfaces/global-settings.interface.ts +294 -294
  148. package/src/_models/interfaces/migration-entry.interface.ts +19 -19
  149. package/src/_models/interfaces/mongo-transaction-settings.interface.ts +9 -9
  150. package/src/_models/interfaces/routing-module-settings.interface.ts +21 -21
  151. package/src/_models/interfaces/security-headers-settings.interface.ts +50 -50
  152. package/src/_models/interfaces/signed-url-verify-result.interface.ts +13 -13
  153. package/src/_models/interfaces/static-client-settings.interface.spec.ts +29 -29
  154. package/src/_models/interfaces/static-client-settings.interface.ts +36 -36
  155. package/src/_models/types/db-update.type.ts +100 -100
  156. package/src/_modules/account-security/_enums/account-challenge-purpose.type-enum.ts +5 -5
  157. package/src/_modules/account-security/_enums/account-refresh-token-state.type-enum.ts +6 -6
  158. package/src/_modules/account-security/_enums/account-session-state.type-enum.ts +6 -6
  159. package/src/_modules/account-security/_models/account-challenge-adapter.interface.ts +17 -17
  160. package/src/_modules/account-security/_models/account-challenge-issued.interface.ts +6 -6
  161. package/src/_modules/account-security/_models/account-challenge-record.interface.ts +13 -13
  162. package/src/_modules/account-security/_models/account-challenge-result.interface.ts +8 -8
  163. package/src/_modules/account-security/_models/account-challenge-settings.interface.ts +9 -9
  164. package/src/_modules/account-security/_models/account-password-policy.interface.ts +11 -11
  165. package/src/_modules/account-security/_models/account-password-verification.interface.ts +5 -5
  166. package/src/_modules/account-security/_models/account-refresh-token-record.interface.ts +13 -13
  167. package/src/_modules/account-security/_models/account-session-adapter.interface.ts +19 -19
  168. package/src/_modules/account-security/_models/account-session-claims.interface.ts +7 -7
  169. package/src/_modules/account-security/_models/account-session-context.interface.ts +6 -6
  170. package/src/_modules/account-security/_models/account-session-create.interface.ts +8 -8
  171. package/src/_modules/account-security/_models/account-session-record.interface.ts +21 -21
  172. package/src/_modules/account-security/_models/account-session-rotate.interface.ts +11 -11
  173. package/src/_modules/account-security/_models/account-session-settings.interface.ts +11 -11
  174. package/src/_modules/account-security/_models/account-session-token-pair.interface.ts +8 -8
  175. package/src/_modules/account-security/_models/account-session-view.interface.ts +13 -13
  176. package/src/_modules/account-security/account-challenge.control-service.spec.ts +195 -195
  177. package/src/_modules/account-security/account-challenge.control-service.ts +164 -164
  178. package/src/_modules/account-security/account-password.control-service.spec.ts +96 -96
  179. package/src/_modules/account-security/account-password.control-service.ts +288 -288
  180. package/src/_modules/account-security/account-session.control-service.spec.ts +294 -294
  181. package/src/_modules/account-security/account-session.control-service.ts +376 -376
  182. package/src/_modules/account-security/index.ts +31 -31
  183. package/src/_modules/admin-auth/_models/admin-api-key-config.interface.ts +33 -33
  184. package/src/_modules/admin-auth/admin-api-key.auth-service.spec.ts +200 -200
  185. package/src/_modules/admin-auth/admin-api-key.auth-service.ts +220 -220
  186. package/src/_modules/admin-auth/index.ts +2 -2
  187. package/src/_modules/ai/_collections/ai-model-config-validator.util.spec.ts +150 -150
  188. package/src/_modules/ai/_collections/ai-model-config-validator.util.ts +131 -131
  189. package/src/_modules/ai/_collections/ai-provider-error.util.ts +144 -144
  190. package/src/_modules/ai/_models/ai-input-interfaces.ts +117 -117
  191. package/src/_modules/ai/_models/ai-test-generation-result.interface.ts +16 -16
  192. package/src/_modules/ai/_models/interfaces/dynts-ai-cost-event-callback.interface.ts +14 -14
  193. package/src/_modules/ai/_models/interfaces/dynts-ai-cost-event.interface.ts +56 -56
  194. package/src/_modules/ai/_models/interfaces/dynts-ai-provider-error.interface.ts +16 -16
  195. package/src/_modules/ai/_modules/ai-mock/_collections/aim-default-collection.util.spec.ts +72 -72
  196. package/src/_modules/ai/_modules/ai-mock/_collections/aim-default-collection.util.ts +71 -71
  197. package/src/_modules/ai/_modules/ai-mock/_collections/aim-fixture-match.util.spec.ts +57 -57
  198. package/src/_modules/ai/_modules/ai-mock/_collections/aim-fixture-match.util.ts +60 -60
  199. package/src/_modules/ai/_modules/ai-mock/_collections/aim-fixture-serializer.util.spec.ts +56 -56
  200. package/src/_modules/ai/_modules/ai-mock/_collections/aim-fixture-serializer.util.ts +117 -117
  201. package/src/_modules/ai/_modules/ai-mock/_enums/aim-modality.enum.ts +28 -28
  202. package/src/_modules/ai/_modules/ai-mock/_models/interfaces/aim-call-input.interface.ts +14 -14
  203. package/src/_modules/ai/_modules/ai-mock/_models/interfaces/aim-error.interface.ts +11 -11
  204. package/src/_modules/ai/_modules/ai-mock/_models/interfaces/aim-fixture.interface.ts +30 -30
  205. package/src/_modules/ai/_modules/ai-mock/_models/interfaces/aim-request.interface.ts +19 -19
  206. package/src/_modules/ai/_modules/ai-mock/_models/interfaces/aim-service-collection.interface.ts +20 -20
  207. package/src/_modules/ai/_modules/ai-mock/_services/ai-embedding-mock.service.spec.ts +115 -115
  208. package/src/_modules/ai/_modules/ai-mock/_services/ai-embedding-mock.service.ts +233 -233
  209. package/src/_modules/ai/_modules/ai-mock/_services/aim-fixture-harness.service.spec.ts +134 -134
  210. package/src/_modules/ai/_modules/ai-mock/_services/aim-fixture-harness.service.ts +127 -127
  211. package/src/_modules/ai/_modules/ai-mock/_services/aim-fixture-pipeline.spec.ts +105 -105
  212. package/src/_modules/ai/_modules/ai-mock/_services/aim-fixture-store.service.spec.ts +50 -50
  213. package/src/_modules/ai/_modules/ai-mock/_services/aim-fixture-store.service.ts +65 -65
  214. package/src/_modules/ai/_modules/ai-mock/_services/aim-integration-proof.spec.ts +92 -92
  215. package/src/_modules/ai/_modules/ai-mock/_services/aim-mock.service.spec.ts +112 -112
  216. package/src/_modules/ai/_modules/ai-mock/_services/aim-mock.service.ts +155 -155
  217. package/src/_modules/ai/_modules/ai-mock/fixtures/aim-text.fixtures.ts +649 -649
  218. package/src/_modules/ai/_modules/ai-mock/index.ts +47 -47
  219. package/src/_modules/ai/_modules/anthropic/_services/aai-user-key.control-service.ts +138 -138
  220. package/src/_modules/ai/_modules/anthropic/index.ts +5 -5
  221. package/src/_modules/ai/_modules/document-ai/_collections/dai-chunking.util.spec.ts +242 -242
  222. package/src/_modules/ai/_modules/document-ai/_collections/dai-chunking.util.ts +639 -639
  223. package/src/_modules/ai/_modules/document-ai/_collections/dai-code-chunking.util.spec.ts +295 -295
  224. package/src/_modules/ai/_modules/document-ai/_collections/dai-code-chunking.util.ts +552 -552
  225. package/src/_modules/ai/_modules/document-ai/_collections/dai-document.util.spec.ts +209 -209
  226. package/src/_modules/ai/_modules/document-ai/_collections/dai-document.util.ts +85 -85
  227. package/src/_modules/ai/_modules/document-ai/_enums/dai-compare-result-type.enum.ts +7 -7
  228. package/src/_modules/ai/_modules/document-ai/_models/data-models/dai-doc-chunk.data-model.ts +146 -146
  229. package/src/_modules/ai/_modules/document-ai/_models/data-models/dai-doc-page.data-model.ts +162 -162
  230. package/src/_modules/ai/_modules/document-ai/_models/data-models/dai-document.data-model.ts +99 -99
  231. package/src/_modules/ai/_modules/document-ai/_models/interfaces/dai-code-chunk.interface.ts +68 -68
  232. package/src/_modules/ai/_modules/document-ai/_models/interfaces/dai-doc-chunk-compare-result.interface.ts +18 -18
  233. package/src/_modules/ai/_modules/document-ai/_models/interfaces/dai-doc-page-compare-result.interface.ts +19 -19
  234. package/src/_modules/ai/_modules/document-ai/_models/interfaces/dai-document-compare-result.interface.ts +25 -25
  235. package/src/_modules/ai/_modules/document-ai/index.ts +30 -30
  236. package/src/_modules/ai/_modules/fdp-ai/_services/fdpai-user-key.control-service.ts +189 -189
  237. package/src/_modules/ai/_modules/fdp-ai/index.ts +5 -5
  238. package/src/_modules/ai/_modules/open-ai/_collections/oai-global-settings.const.ts +9 -9
  239. package/src/_modules/ai/_modules/open-ai/_collections/oai-llm-predefined-requests-hu.conts.ts +82 -82
  240. package/src/_modules/ai/_modules/open-ai/_collections/oai-llm-predefined-requests.conts.ts +75 -75
  241. package/src/_modules/ai/_modules/open-ai/_enums/oai-gpt-message-role.enum.ts +45 -45
  242. package/src/_modules/ai/_modules/open-ai/_models/interfaces/oai-global-settings.interface.ts +7 -7
  243. package/src/_modules/ai/_modules/open-ai/_models/interfaces/oai-gpt-message.interface.ts +7 -7
  244. package/src/_modules/ai/_modules/open-ai/_models/interfaces/oai-llm-predefined-requests.interface.ts +57 -57
  245. package/src/_modules/ai/_modules/open-ai/_services/data-services/oai-doc-chunk-data.service.ts +292 -292
  246. package/src/_modules/ai/_modules/open-ai/_services/data-services/oai-doc-page.data-service.ts +572 -572
  247. package/src/_modules/ai/_modules/open-ai/_services/data-services/oai-document.data-service.spec.ts +342 -342
  248. package/src/_modules/ai/_modules/open-ai/_services/data-services/oai-document.data-service.ts +435 -435
  249. package/src/_modules/ai/_modules/open-ai/_services/data-services/oai-vector-data.service.spec.ts +550 -550
  250. package/src/_modules/ai/_modules/open-ai/_services/data-services/oai-vector-data.service.ts +630 -630
  251. package/src/_modules/ai/_modules/open-ai/_services/oai-embedding.control-service.spec.ts +332 -332
  252. package/src/_modules/ai/_modules/open-ai/_services/oai-embedding.control-service.ts +132 -132
  253. package/src/_modules/ai/_modules/open-ai/_services/oai-llm-chat.service-base.spec.ts +462 -462
  254. package/src/_modules/ai/_modules/open-ai/_services/oai-llm-chat.service-base.ts +634 -634
  255. package/src/_modules/ai/_modules/open-ai/_services/oai-llm.service-base.spec.ts +489 -489
  256. package/src/_modules/ai/_modules/open-ai/_services/oai-llm.service-base.tools.spec.ts +173 -173
  257. package/src/_modules/ai/_modules/open-ai/_services/oai-llm.service-base.ts +1085 -1085
  258. package/src/_modules/ai/_modules/open-ai/_services/oai-user-key.control-service.ts +157 -157
  259. package/src/_modules/ai/_modules/open-ai/index.ts +74 -74
  260. package/src/_modules/ai/_services/ai-embedding-provider.registry.spec.ts +110 -110
  261. package/src/_modules/ai/_services/ai-embedding-provider.registry.ts +114 -114
  262. package/src/_modules/ai/_services/ai-embedding.service-base.spec.ts +98 -98
  263. package/src/_modules/ai/_services/ai-embedding.service-base.ts +48 -48
  264. package/src/_modules/ai/_services/ai-llm-chat.service-base.spec.ts +229 -229
  265. package/src/_modules/ai/_services/ai-llm-chat.service-base.ts +68 -68
  266. package/src/_modules/ai/_services/ai-llm.service-base.reconciler.spec.ts +133 -133
  267. package/src/_modules/ai/_services/ai-llm.service-base.spec.ts +250 -250
  268. package/src/_modules/ai/_services/ai-llm.service-base.ts +599 -599
  269. package/src/_modules/ai/_services/ai-provider.service-base.spec.ts +158 -158
  270. package/src/_modules/ai/_services/ai-provider.service-base.ts +67 -67
  271. package/src/_modules/ai/_services/ai-user-key.service-base.ts +59 -59
  272. package/src/_modules/ai/_services/lmstudio-embedding.control-service.spec.ts +197 -197
  273. package/src/_modules/ai/_services/lmstudio-embedding.control-service.ts +399 -399
  274. package/src/_modules/ai/index.ts +33 -33
  275. package/src/_modules/artifact-compiler/_enums/artifact-compile-outcome.type-enum.ts +5 -5
  276. package/src/_modules/artifact-compiler/_enums/artifact-compile-stage.type-enum.ts +8 -8
  277. package/src/_modules/artifact-compiler/_enums/artifact-retry-class.type-enum.ts +6 -6
  278. package/src/_modules/artifact-compiler/_models/artifact-compile.interface.ts +35 -35
  279. package/src/_modules/artifact-compiler/artifact-compiler.control-service.spec.ts +151 -151
  280. package/src/_modules/artifact-compiler/artifact-compiler.control-service.ts +356 -356
  281. package/src/_modules/artifact-compiler/index.ts +9 -9
  282. package/src/_modules/assistant/_collections/ass-global-settings.const.ts +13 -13
  283. package/src/_modules/assistant/_collections/ass.util.spec.ts +176 -176
  284. package/src/_modules/assistant/_collections/ass.util.ts +50 -50
  285. package/src/_modules/assistant/_models/ass-global-settings.interface.ts +15 -15
  286. package/src/_modules/assistant/_services/ass-io.control-service.spec.ts +140 -140
  287. package/src/_modules/assistant/_services/ass-io.control-service.ts +74 -74
  288. package/src/_modules/assistant/_services/ass-main.control-service.spec.ts +192 -192
  289. package/src/_modules/assistant/_services/ass-main.control-service.ts +107 -107
  290. package/src/_modules/assistant/index.ts +19 -19
  291. package/src/_modules/bot/_collections/bot-default-commands.const.ts +12 -12
  292. package/src/_modules/bot/_collections/bot-global-settings.const.ts +39 -39
  293. package/src/_modules/bot/_models/bot-channel-wrapper.interface.ts +62 -62
  294. package/src/_modules/bot/_models/bot-command.interface.ts +8 -8
  295. package/src/_modules/bot/_models/bot-global-settings.interface.ts +96 -96
  296. package/src/_modules/bot/_models/bot-last-mention-date.interface.ts +6 -6
  297. package/src/_modules/bot/_models/bot-last-message-date.interface.ts +5 -5
  298. package/src/_modules/bot/_models/bot-message-wrapper.interface.ts +90 -90
  299. package/src/_modules/bot/_models/bot-user-wrapper.interface.ts +41 -41
  300. package/src/_modules/bot/_modules/discord-bot/_models/dib-platform.types.ts +9 -9
  301. package/src/_modules/bot/_modules/discord-bot/_services/dib-messaging-provider.control-service.spec.ts +431 -431
  302. package/src/_modules/bot/_modules/discord-bot/_services/dib-messaging-provider.control-service.ts +641 -641
  303. package/src/_modules/bot/_modules/discord-bot/index.ts +12 -12
  304. package/src/_modules/bot/_modules/dynamo-bot/_collections/dyb-operations.util.spec.ts +160 -160
  305. package/src/_modules/bot/_modules/dynamo-bot/_collections/dyb-operations.util.ts +55 -55
  306. package/src/_modules/bot/_modules/dynamo-bot/_models/dyb-platform.types.ts +15 -15
  307. package/src/_modules/bot/_modules/dynamo-bot/_services/dyb-messaging-provider.control-service.spec.ts +374 -374
  308. package/src/_modules/bot/_modules/dynamo-bot/_services/dyb-messaging-provider.control-service.ts +447 -447
  309. package/src/_modules/bot/_modules/dynamo-bot/index.ts +15 -15
  310. package/src/_modules/bot/_modules/slack-bot/_models/slb-platform.types.ts +9 -9
  311. package/src/_modules/bot/_modules/slack-bot/_services/slb-messaging-provider.control-service.spec.ts +344 -344
  312. package/src/_modules/bot/_modules/slack-bot/_services/slb-messaging-provider.control-service.ts +197 -197
  313. package/src/_modules/bot/_modules/slack-bot/index.ts +12 -12
  314. package/src/_modules/bot/_modules/teams-bot/_models/teb-platform.types.ts +9 -9
  315. package/src/_modules/bot/_modules/teams-bot/_services/teb-messaging-provider.control-service.spec.ts +345 -345
  316. package/src/_modules/bot/_modules/teams-bot/_services/teb-messaging-provider.control-service.ts +197 -197
  317. package/src/_modules/bot/_modules/teams-bot/index.ts +11 -11
  318. package/src/_modules/bot/_services/bot-commands.control-service.spec.ts +116 -116
  319. package/src/_modules/bot/_services/bot-commands.control-service.ts +158 -158
  320. package/src/_modules/bot/_services/bot-io.control-service.spec.ts +285 -285
  321. package/src/_modules/bot/_services/bot-io.control-service.ts +329 -329
  322. package/src/_modules/bot/_services/bot-main.control-service.spec.ts +208 -208
  323. package/src/_modules/bot/_services/bot-main.control-service.ts +489 -489
  324. package/src/_modules/bot/_services/bot-messaging-provider.service-base.spec.ts +349 -349
  325. package/src/_modules/bot/_services/bot-messaging-provider.service-base.ts +158 -158
  326. package/src/_modules/bot/_services/bot-routines.control-service.spec.ts +111 -111
  327. package/src/_modules/bot/_services/bot-routines.control-service.ts +78 -78
  328. package/src/_modules/bot/index.ts +37 -37
  329. package/src/_modules/custom-data/custom-data.controller.spec.ts +49 -49
  330. package/src/_modules/custom-data/custom-data.controller.ts +67 -67
  331. package/src/_modules/custom-data/custom-data.data-service.spec.ts +54 -54
  332. package/src/_modules/custom-data/custom-data.data-service.ts +21 -21
  333. package/src/_modules/custom-data/get-custom-data-routing-module.util.spec.ts +28 -28
  334. package/src/_modules/custom-data/get-custom-data-routing-module.util.ts +24 -24
  335. package/src/_modules/custom-data/index.ts +9 -9
  336. package/src/_modules/data-readers/_collections/dynts-sqlite-reader.util.spec.ts +176 -176
  337. package/src/_modules/data-readers/_collections/dynts-sqlite-reader.util.ts +203 -203
  338. package/src/_modules/data-readers/_models/interfaces/dynts-sqlite-reader.interface.ts +33 -33
  339. package/src/_modules/data-readers/index.ts +11 -11
  340. package/src/_modules/defaults/_collections/default-endpoints.util.ts +487 -487
  341. package/src/_modules/defaults/_models/default-user.data-model.ts +72 -72
  342. package/src/_modules/defaults/_services/default-auth.service.spec.ts +269 -269
  343. package/src/_modules/defaults/_services/default-auth.service.ts +177 -177
  344. package/src/_modules/defaults/_services/default-socket-events.service.spec.ts +42 -42
  345. package/src/_modules/defaults/_services/default-socket-events.service.ts +61 -61
  346. package/src/_modules/defaults/_services/default-user.data-service.spec.ts +187 -187
  347. package/src/_modules/defaults/_services/default-user.data-service.ts +98 -98
  348. package/src/_modules/defaults/index.ts +17 -17
  349. package/src/_modules/discord-assistant/_collections/dias-global-settings.const.ts +19 -19
  350. package/src/_modules/discord-assistant/_collections/dias.util.spec.ts +366 -366
  351. package/src/_modules/discord-assistant/_collections/dias.util.ts +132 -132
  352. package/src/_modules/discord-assistant/_models/dias-global-settings.interface.ts +19 -19
  353. package/src/_modules/discord-assistant/_models/dias-knowledge.data-model.ts +52 -52
  354. package/src/_modules/discord-assistant/_services/dias-chunk.data-service.ts +177 -177
  355. package/src/_modules/discord-assistant/_services/dias-io.control-service.spec.ts +108 -108
  356. package/src/_modules/discord-assistant/_services/dias-io.control-service.ts +69 -69
  357. package/src/_modules/discord-assistant/_services/dias-main.control-service.spec.ts +22 -22
  358. package/src/_modules/discord-assistant/_services/dias-main.control-service.ts +27 -27
  359. package/src/_modules/discord-assistant/_services/dias.service-base.spec.ts +195 -195
  360. package/src/_modules/discord-assistant/_services/dias.service-base.ts +76 -76
  361. package/src/_modules/discord-assistant/index.ts +38 -38
  362. package/src/_modules/discord-assistant-voiced/_services/dias-discord-bot.control-service.spec.ts +34 -34
  363. package/src/_modules/discord-assistant-voiced/_services/dias-discord-bot.control-service.ts +11 -11
  364. package/src/_modules/discord-assistant-voiced/index.ts +36 -36
  365. package/src/_modules/discord-bot/_collections/dibo-default-commands.const.ts +16 -16
  366. package/src/_modules/discord-bot/_collections/dibo-global-settings.conts.ts +55 -55
  367. package/src/_modules/discord-bot/_collections/dibo-operations.util.spec.ts +214 -214
  368. package/src/_modules/discord-bot/_collections/dibo-operations.util.ts +387 -387
  369. package/src/_modules/discord-bot/_models/dibo-command.interface.ts +12 -12
  370. package/src/_modules/discord-bot/_models/dibo-global-settings.interface.ts +98 -98
  371. package/src/_modules/discord-bot/_models/dibo-last-mention-date.inteface.ts +7 -7
  372. package/src/_modules/discord-bot/_models/dibo-last-message-date.interface.ts +6 -6
  373. package/src/_modules/discord-bot/_services/dibo-commands.control-service.spec.ts +154 -154
  374. package/src/_modules/discord-bot/_services/dibo-commands.control-service.ts +153 -153
  375. package/src/_modules/discord-bot/_services/dibo-io.control-service.spec.ts +264 -264
  376. package/src/_modules/discord-bot/_services/dibo-io.control-service.ts +306 -306
  377. package/src/_modules/discord-bot/_services/dibo-main.control-service.spec.ts +408 -408
  378. package/src/_modules/discord-bot/_services/dibo-main.control-service.ts +487 -487
  379. package/src/_modules/discord-bot/_services/dibo-routines.control-service.spec.ts +105 -105
  380. package/src/_modules/discord-bot/_services/dibo-routines.control-service.ts +97 -97
  381. package/src/_modules/discord-bot/index.ts +36 -36
  382. package/src/_modules/local-vector-search/_enums/lvs-search-mode.enum.ts +35 -35
  383. package/src/_modules/local-vector-search/_models/data-models/lvs-vector-persist.data-model.ts +60 -60
  384. package/src/_modules/local-vector-search/_models/lvs-search-result.interface.ts +17 -17
  385. package/src/_modules/local-vector-search/_services/lvs-bm25.util.spec.ts +159 -159
  386. package/src/_modules/local-vector-search/_services/lvs-bm25.util.ts +206 -206
  387. package/src/_modules/local-vector-search/_services/lvs-doc-chunk-data.service.spec.ts +418 -418
  388. package/src/_modules/local-vector-search/_services/lvs-doc-chunk-data.service.ts +276 -276
  389. package/src/_modules/local-vector-search/_services/lvs-local-vector-search.data-service.spec.ts +480 -480
  390. package/src/_modules/local-vector-search/_services/lvs-local-vector-search.data-service.ts +416 -416
  391. package/src/_modules/local-vector-search/_services/lvs-persistent-vector-pool.control-service.spec.ts +214 -214
  392. package/src/_modules/local-vector-search/_services/lvs-persistent-vector-pool.control-service.ts +186 -186
  393. package/src/_modules/local-vector-search/_services/lvs-vector-persist.data-service.spec.ts +167 -167
  394. package/src/_modules/local-vector-search/_services/lvs-vector-persist.data-service.ts +130 -130
  395. package/src/_modules/local-vector-search/_services/lvs-vector-pool.control-service.spec.ts +509 -509
  396. package/src/_modules/local-vector-search/_services/lvs-vector-pool.control-service.ts +323 -323
  397. package/src/_modules/local-vector-search/index.ts +16 -16
  398. package/src/_modules/logs/_models/file-log-entry.interface.ts +13 -13
  399. package/src/_modules/logs/_models/file-log-read-result.interface.ts +37 -37
  400. package/src/_modules/logs/file-log.service.spec.ts +341 -341
  401. package/src/_modules/logs/file-log.service.ts +466 -466
  402. package/src/_modules/logs/file-logs.controller.spec.ts +245 -245
  403. package/src/_modules/logs/file-logs.controller.ts +165 -165
  404. package/src/_modules/logs/get-file-logs-routing-module.util.ts +51 -51
  405. package/src/_modules/logs/get-logs-routing-module.util.ts +36 -36
  406. package/src/_modules/logs/index.ts +11 -11
  407. package/src/_modules/logs/log-buffer.service.ts +101 -101
  408. package/src/_modules/logs/logs.controller.ts +109 -109
  409. package/src/_modules/logs/logs.service.ts +100 -100
  410. package/src/_modules/mcp/_models/interfaces/dynts-mcp.interface.ts +111 -111
  411. package/src/_modules/mcp/_services/dynts-mcp-server.service-base.spec.ts +151 -151
  412. package/src/_modules/mcp/_services/dynts-mcp-server.service-base.ts +125 -125
  413. package/src/_modules/mcp/_services/dynts-mcp.adapter.ts +168 -168
  414. package/src/_modules/mcp/index.ts +13 -13
  415. package/src/_modules/messaging/README.md +354 -354
  416. package/src/_modules/messaging/_collections/get-messaging-routing-module.util.ts +26 -26
  417. package/src/_modules/messaging/_collections/msg-global-settings.const.ts +22 -22
  418. package/src/_modules/messaging/_collections/msg.util.spec.ts +226 -226
  419. package/src/_modules/messaging/_collections/msg.util.ts +83 -83
  420. package/src/_modules/messaging/_models/msg-global-settings.interface.ts +37 -37
  421. package/src/_modules/messaging/_services/msg-conversation.data-service.ts +146 -146
  422. package/src/_modules/messaging/_services/msg-events.service.spec.ts +219 -219
  423. package/src/_modules/messaging/_services/msg-events.service.ts +267 -267
  424. package/src/_modules/messaging/_services/msg-integration.control-service.ts +179 -179
  425. package/src/_modules/messaging/_services/msg-main.control-service.spec.ts +147 -147
  426. package/src/_modules/messaging/_services/msg-main.control-service.ts +571 -571
  427. package/src/_modules/messaging/_services/msg-message.data-service.ts +129 -129
  428. package/src/_modules/messaging/_services/msg.controller.spec.ts +201 -201
  429. package/src/_modules/messaging/_services/msg.controller.ts +370 -370
  430. package/src/_modules/messaging/index.ts +30 -30
  431. package/src/_modules/mock/app-extended-server.mock.ts +201 -201
  432. package/src/_modules/mock/app-integration-test.mock.ts +51 -51
  433. package/src/_modules/mock/app-params.mock.spec.ts +21 -21
  434. package/src/_modules/mock/app-params.mock.ts +9 -9
  435. package/src/_modules/mock/app-server.mock.ts +188 -188
  436. package/src/_modules/mock/auth-service.mock.spec.ts +47 -47
  437. package/src/_modules/mock/auth-service.mock.ts +28 -28
  438. package/src/_modules/mock/controller.mock.spec.ts +26 -26
  439. package/src/_modules/mock/controller.mock.ts +16 -16
  440. package/src/_modules/mock/data-model.mock.spec.ts +111 -111
  441. package/src/_modules/mock/data-model.mock.ts +82 -82
  442. package/src/_modules/mock/email-service-collection.mock.spec.ts +24 -24
  443. package/src/_modules/mock/email-service-collection.mock.ts +15 -15
  444. package/src/_modules/mock/email-service.mock.spec.ts +17 -17
  445. package/src/_modules/mock/email-service.mock.ts +20 -20
  446. package/src/_modules/mock/email-template.mock.html +14 -14
  447. package/src/_modules/mock/endpoint.mock.ts +91 -91
  448. package/src/_modules/mock/socket-client.mock.spec.ts +40 -40
  449. package/src/_modules/mock/socket-client.mock.ts +45 -45
  450. package/src/_modules/mock/socket-server.mock.spec.ts +44 -44
  451. package/src/_modules/mock/socket-server.mock.ts +46 -46
  452. package/src/_modules/oauth2/_routes/oauth2.controller.spec.ts +107 -107
  453. package/src/_modules/oauth2/_routes/oauth2.controller.ts +98 -98
  454. package/src/_modules/oauth2/_services/oauth2.auth-service.spec.ts +254 -254
  455. package/src/_modules/oauth2/_services/oauth2.auth-service.ts +232 -232
  456. package/src/_modules/oauth2/_services/oauth2.control-service.spec.ts +585 -585
  457. package/src/_modules/oauth2/_services/oauth2.control-service.ts +653 -653
  458. package/src/_modules/oauth2/index.ts +17 -17
  459. package/src/_modules/privacy-lifecycle/_enums/privacy-consent-decision.type-enum.ts +5 -5
  460. package/src/_modules/privacy-lifecycle/_enums/privacy-contributor-action.type-enum.ts +10 -10
  461. package/src/_modules/privacy-lifecycle/_enums/privacy-contributor-outcome.type-enum.ts +7 -7
  462. package/src/_modules/privacy-lifecycle/_enums/privacy-request-state.type-enum.ts +15 -15
  463. package/src/_modules/privacy-lifecycle/_enums/privacy-request.type-enum.ts +9 -9
  464. package/src/_modules/privacy-lifecycle/_models/privacy-consent-input.interface.ts +12 -12
  465. package/src/_modules/privacy-lifecycle/_models/privacy-consent-persistence-result.interface.ts +7 -7
  466. package/src/_modules/privacy-lifecycle/_models/privacy-consent-record.interface.ts +15 -15
  467. package/src/_modules/privacy-lifecycle/_models/privacy-consent-result.interface.ts +7 -7
  468. package/src/_modules/privacy-lifecycle/_models/privacy-consent-view.interface.ts +13 -13
  469. package/src/_modules/privacy-lifecycle/_models/privacy-contributor-context.interface.ts +9 -9
  470. package/src/_modules/privacy-lifecycle/_models/privacy-contributor-outcome.interface.ts +14 -14
  471. package/src/_modules/privacy-lifecycle/_models/privacy-contributor-plan.interface.ts +8 -8
  472. package/src/_modules/privacy-lifecycle/_models/privacy-contributor.interface.ts +17 -17
  473. package/src/_modules/privacy-lifecycle/_models/privacy-ledger-adapter.interface.ts +21 -21
  474. package/src/_modules/privacy-lifecycle/_models/privacy-ledger-result.interface.ts +9 -9
  475. package/src/_modules/privacy-lifecycle/_models/privacy-ledger-settings.interface.ts +7 -7
  476. package/src/_modules/privacy-lifecycle/_models/privacy-legal-acceptance-input.interface.ts +10 -10
  477. package/src/_modules/privacy-lifecycle/_models/privacy-legal-acceptance-persistence-result.interface.ts +7 -7
  478. package/src/_modules/privacy-lifecycle/_models/privacy-legal-acceptance-result.interface.ts +7 -7
  479. package/src/_modules/privacy-lifecycle/_models/privacy-legal-acceptance-view.interface.ts +11 -11
  480. package/src/_modules/privacy-lifecycle/_models/privacy-legal-acceptance.interface.ts +13 -13
  481. package/src/_modules/privacy-lifecycle/_models/privacy-lifecycle-adapter.interface.ts +19 -19
  482. package/src/_modules/privacy-lifecycle/_models/privacy-lifecycle-settings.interface.ts +9 -9
  483. package/src/_modules/privacy-lifecycle/_models/privacy-request-create-result.interface.ts +7 -7
  484. package/src/_modules/privacy-lifecycle/_models/privacy-request-open.interface.ts +10 -10
  485. package/src/_modules/privacy-lifecycle/_models/privacy-request-persistence-create-result.interface.ts +7 -7
  486. package/src/_modules/privacy-lifecycle/_models/privacy-request-record.interface.ts +21 -21
  487. package/src/_modules/privacy-lifecycle/_models/privacy-request-result.interface.ts +8 -8
  488. package/src/_modules/privacy-lifecycle/_models/privacy-request-view.interface.ts +20 -20
  489. package/src/_modules/privacy-lifecycle/index.ts +40 -40
  490. package/src/_modules/privacy-lifecycle/privacy-ledger.control-service.spec.ts +206 -206
  491. package/src/_modules/privacy-lifecycle/privacy-ledger.control-service.ts +253 -253
  492. package/src/_modules/privacy-lifecycle/privacy-lifecycle.control-service.spec.ts +353 -353
  493. package/src/_modules/privacy-lifecycle/privacy-lifecycle.control-service.ts +586 -586
  494. package/src/_modules/rate-limit/_enums/rate-limit-store-kind.type-enum.ts +5 -5
  495. package/src/_modules/rate-limit/_models/rate-limit-config.interface.ts +82 -82
  496. package/src/_modules/rate-limit/_models/rate-limit-consume-request.interface.ts +9 -9
  497. package/src/_modules/rate-limit/_models/rate-limit-consume-result.interface.ts +6 -6
  498. package/src/_modules/rate-limit/_models/rate-limit-policy.interface.ts +16 -16
  499. package/src/_modules/rate-limit/_models/rate-limit-store.interface.ts +9 -9
  500. package/src/_modules/rate-limit/index.ts +8 -8
  501. package/src/_modules/rate-limit/rate-limit-in-memory.store.ts +91 -91
  502. package/src/_modules/rate-limit/rate-limit.middleware.spec.ts +488 -488
  503. package/src/_modules/rate-limit/rate-limit.middleware.ts +504 -504
  504. package/src/_modules/scheduler/_models/scheduler-job.interface.ts +35 -35
  505. package/src/_modules/scheduler/get-scheduler-routing-module.util.ts +33 -33
  506. package/src/_modules/scheduler/index.ts +8 -8
  507. package/src/_modules/scheduler/scheduler.controller.spec.ts +42 -42
  508. package/src/_modules/scheduler/scheduler.controller.ts +69 -69
  509. package/src/_modules/scheduler/scheduler.service.spec.ts +141 -141
  510. package/src/_modules/scheduler/scheduler.service.ts +176 -176
  511. package/src/_modules/scoped-config/_enums/dynts-scoped-config-level.enum.ts +22 -22
  512. package/src/_modules/scoped-config/_models/data-models/dynts-scoped-config.data-model.ts +82 -82
  513. package/src/_modules/scoped-config/_models/interfaces/dynts-scoped-config.interface.ts +107 -107
  514. package/src/_modules/scoped-config/_services/dynts-scoped-config.control-service.spec.ts +312 -312
  515. package/src/_modules/scoped-config/_services/dynts-scoped-config.control-service.ts +311 -311
  516. package/src/_modules/scoped-config/_services/dynts-scoped-config.data-service.spec.ts +123 -123
  517. package/src/_modules/scoped-config/_services/dynts-scoped-config.data-service.ts +108 -108
  518. package/src/_modules/scoped-config/index.ts +17 -17
  519. package/src/_modules/server/errors/errors.control-service.spec.ts +246 -246
  520. package/src/_modules/server/errors/errors.control-service.ts +100 -100
  521. package/src/_modules/server/errors/errors.controller.spec.ts +340 -340
  522. package/src/_modules/server/errors/errors.controller.ts +559 -559
  523. package/src/_modules/server/errors/errors.data-service.spec.ts +480 -480
  524. package/src/_modules/server/errors/errors.data-service.ts +867 -867
  525. package/src/_modules/server/index.ts +34 -30
  526. package/src/_modules/server/server-status/db-readiness-probe-code.type-enum.ts +13 -0
  527. package/src/_modules/server/server-status/db-readiness-probe-stage.type-enum.ts +7 -0
  528. package/src/_modules/server/server-status/db-readiness-probe.control-service.spec.ts +235 -0
  529. package/src/_modules/server/server-status/db-readiness-probe.control-service.ts +158 -0
  530. package/src/_modules/server/server-status/db-readiness-probe.interface.ts +20 -0
  531. package/src/_modules/server/server-status/server-status-snapshot.control-service.spec.ts +70 -70
  532. package/src/_modules/server/server-status/server-status-snapshot.control-service.ts +17 -17
  533. package/src/_modules/server/server-status/server-status-snapshot.data-service.spec.ts +77 -77
  534. package/src/_modules/server/server-status/server-status-snapshot.data-service.ts +37 -37
  535. package/src/_modules/server/server-status/server-status.control-service.spec.ts +672 -672
  536. package/src/_modules/server/server-status/server-status.control-service.ts +490 -490
  537. package/src/_modules/server/server-status/server-status.controller.spec.ts +276 -276
  538. package/src/_modules/server/server-status/server-status.controller.ts +336 -336
  539. package/src/_modules/socket/_enums/socket-security.enum.ts +11 -11
  540. package/src/_modules/socket/_models/socket-client-service-params.control-model.spec.ts +32 -32
  541. package/src/_modules/socket/_models/socket-client-service-params.control-model.ts +22 -22
  542. package/src/_modules/socket/_models/socket-presence.control-model.spec.ts +165 -165
  543. package/src/_modules/socket/_models/socket-presence.control-model.ts +211 -211
  544. package/src/_modules/socket/_models/socket-server-service-params.control-model.spec.ts +69 -69
  545. package/src/_modules/socket/_models/socket-server-service-params.control-model.ts +33 -33
  546. package/src/_modules/socket/_services/socket-client.service.spec.ts +15 -15
  547. package/src/_modules/socket/_services/socket-client.service.ts +260 -260
  548. package/src/_modules/socket/_services/socket-server.service.spec.ts +272 -272
  549. package/src/_modules/socket/_services/socket-server.service.ts +1037 -1037
  550. package/src/_modules/socket/app-extended.integration.spec.ts +85 -85
  551. package/src/_modules/socket/app-extended.server.ts +648 -648
  552. package/src/_modules/socket/index.ts +42 -42
  553. package/src/_modules/test/get-test-routing-module.util.spec.ts +28 -28
  554. package/src/_modules/test/get-test-routing-module.util.ts +23 -23
  555. package/src/_modules/test/index.ts +11 -11
  556. package/src/_modules/test/test.controller.spec.ts +72 -72
  557. package/src/_modules/test/test.controller.ts +115 -115
  558. package/src/_modules/test-email-sink/_collections/test-email-pattern.const.ts +10 -10
  559. package/src/_modules/test-email-sink/_models/data-models/dynts-sent-test-mail.data-model.ts +41 -41
  560. package/src/_modules/test-email-sink/_services/dynts-test-email-sink.service.spec.ts +112 -112
  561. package/src/_modules/test-email-sink/_services/dynts-test-email-sink.service.ts +141 -141
  562. package/src/_modules/test-email-sink/get-sent-mail-routing-module.util.ts +29 -29
  563. package/src/_modules/test-email-sink/index.ts +11 -11
  564. package/src/_modules/test-email-sink/test-email-sink.controller.ts +83 -83
  565. package/src/_modules/usage/get-usage-routing-module.util.ts +22 -22
  566. package/src/_modules/usage/index.ts +15 -15
  567. package/src/_modules/usage/usage.controller.spec.ts +106 -106
  568. package/src/_modules/usage/usage.controller.ts +140 -140
  569. package/src/_modules/usage/usage.data-service.spec.ts +332 -332
  570. package/src/_modules/usage/usage.data-service.ts +185 -185
  571. package/src/_services/base/api.service-base.spec.ts +125 -125
  572. package/src/_services/base/api.service-base.ts +74 -74
  573. package/src/_services/base/archive-data.service.spec.ts +209 -209
  574. package/src/_services/base/archive-data.service.ts +228 -228
  575. package/src/_services/base/data.service.spec.ts +784 -784
  576. package/src/_services/base/data.service.ts +2792 -2792
  577. package/src/_services/base/db.service.encryption.spec.ts +76 -76
  578. package/src/_services/base/db.service.spec.ts +160 -160
  579. package/src/_services/base/db.service.ts +1698 -1698
  580. package/src/_services/base/singleton.service-base.spec.ts +28 -28
  581. package/src/_services/base/singleton.service-base.ts +24 -24
  582. package/src/_services/base/singleton.service.spec.ts +114 -114
  583. package/src/_services/base/singleton.service.ts +38 -38
  584. package/src/_services/core/api.service.spec.ts +187 -187
  585. package/src/_services/core/api.service.ts +627 -627
  586. package/src/_services/core/auth.service.spec.ts +159 -159
  587. package/src/_services/core/auth.service.ts +174 -174
  588. package/src/_services/core/collection-growth-monitor.service.spec.ts +119 -119
  589. package/src/_services/core/collection-growth-monitor.service.ts +234 -234
  590. package/src/_services/core/db-stats.service.ts +104 -104
  591. package/src/_services/core/diagnostics.service.spec.ts +44 -44
  592. package/src/_services/core/diagnostics.service.ts +158 -158
  593. package/src/_services/core/email.service.spec.ts +85 -85
  594. package/src/_services/core/email.service.ts +757 -757
  595. package/src/_services/core/event-loop-diag.service.spec.ts +22 -22
  596. package/src/_services/core/event-loop-diag.service.ts +144 -144
  597. package/src/_services/core/global.service.spec.ts +292 -292
  598. package/src/_services/core/global.service.ts +487 -487
  599. package/src/_services/core/memory-guard.service.spec.ts +245 -245
  600. package/src/_services/core/memory-guard.service.ts +481 -481
  601. package/src/_services/core/migration-runner.service.spec.ts +91 -91
  602. package/src/_services/core/migration-runner.service.ts +106 -106
  603. package/src/_services/core/mongo-transaction.control-service.spec.ts +165 -165
  604. package/src/_services/core/mongo-transaction.control-service.ts +148 -148
  605. package/src/_services/core/request-hunter.service.spec.ts +124 -124
  606. package/src/_services/core/request-hunter.service.ts +157 -157
  607. package/src/_services/core/service-collection.service.spec.ts +46 -46
  608. package/src/_services/core/service-collection.service.ts +6 -6
  609. package/src/_services/route/controller.service.spec.ts +53 -53
  610. package/src/_services/route/controller.service.ts +148 -148
  611. package/src/_services/route/routing-module.service.spec.ts +98 -98
  612. package/src/_services/route/routing-module.service.ts +330 -330
  613. package/src/_services/server/app.server-retention.spec.ts +106 -106
  614. package/src/_services/server/app.server.ts +2012 -2012
  615. package/src/_services/shared.static-service.spec.ts +99 -99
  616. package/src/_services/shared.static-service.ts +78 -78
  617. package/src/index.ts +117 -117
  618. package/tsconfig.app.json +12 -12
  619. package/tsconfig.json +42 -42
  620. package/.dynamo/logs/cicd-pipeline/output.log +0 -2883
  621. package/.dynamo/logs/cicd-pipeline/status.json +0 -74
@@ -1,46 +1,46 @@
1
- # Dynamo NTS in-memory artifact compiler
2
-
3
- **Contract:** `dynts-artifact-compiler/1`
4
-
5
- **Release candidate:** `@futdevpro/nts-dynamo@1.15.144`
6
-
7
- ## Purpose
8
-
9
- The artifact compiler turns one already policy-validated TypeScript program into a self-contained JavaScript bundle
10
- for a classic browser Worker. It is a shared build capability, not a sandbox, an authorization layer or a source
11
- policy validator. Consumers must validate source before compilation and execute the output inside an independently
12
- enforced runtime boundary.
13
-
14
- ## Guarantees
15
-
16
- - source is supplied through an in-memory virtual entry;
17
- - output uses the asynchronous esbuild API with `bundle:true`, `platform:'browser'`, `format:'iife'` and
18
- `write:false`;
19
- - no sourcemap, embedded source content, legal comment file, plugin supplied by the caller or filesystem output;
20
- - the TypeScript AST is traversed before bundling, so unused imports cannot disappear through tree-shaking before
21
- policy evaluation;
22
- - only caller-allowlisted static package roots resolve from the supplied absolute dependency directory;
23
- - relative, absolute, re-export, import-equals, `require()` and dynamic `import()` module loads fail closed;
24
- - transitive modules resolve only through the installed dependency graph;
25
- - source and output byte limits, allowlist cardinality, package names and path fields have absolute Bedrock
26
- ceilings;
27
- - success returns exactly one JavaScript output with SHA-256 metadata;
28
- - errors return stable codes and optional line/column only, never esbuild message text, source excerpt or path.
29
-
30
- The output is deterministic for the same source, settings, installed lock graph, platform and compiler version. The
31
- consumer must therefore version and checksum the compiler version and dependency lock together with the bundle.
32
-
33
- ## Security boundary
34
-
35
- esbuild's own documentation explicitly states that esbuild is not a sandbox. This module never executes generated
36
- code, and successful compilation must not be interpreted as permission to run it. Direct relative/absolute, Node,
37
- HTTP or non-allowlisted imports fail because only package roots in `allowedPackages` can resolve from the virtual
38
- entry. Trusted allowed packages may resolve their own installed transitive graph.
39
-
40
- ## Verification
41
-
42
- The eight focused Bedrock specs cover deterministic output, a real bundled dependency, non-allowlisted imports,
43
- all supported static and dynamic module-load syntax, content-free syntax diagnostics, invalid request contracts and
44
- source/output budgets. Company Toolmaker is the first direct consumer under `BFR-CTM-008`. The request was
45
- initially recorded as `BFR-CTM-007`, but that identifier already belonged to the atomic Mongo transaction boundary;
46
- the correction preserves both trace histories.
1
+ # Dynamo NTS in-memory artifact compiler
2
+
3
+ **Contract:** `dynts-artifact-compiler/1`
4
+
5
+ **Release candidate:** `@futdevpro/nts-dynamo@1.15.144`
6
+
7
+ ## Purpose
8
+
9
+ The artifact compiler turns one already policy-validated TypeScript program into a self-contained JavaScript bundle
10
+ for a classic browser Worker. It is a shared build capability, not a sandbox, an authorization layer or a source
11
+ policy validator. Consumers must validate source before compilation and execute the output inside an independently
12
+ enforced runtime boundary.
13
+
14
+ ## Guarantees
15
+
16
+ - source is supplied through an in-memory virtual entry;
17
+ - output uses the asynchronous esbuild API with `bundle:true`, `platform:'browser'`, `format:'iife'` and
18
+ `write:false`;
19
+ - no sourcemap, embedded source content, legal comment file, plugin supplied by the caller or filesystem output;
20
+ - the TypeScript AST is traversed before bundling, so unused imports cannot disappear through tree-shaking before
21
+ policy evaluation;
22
+ - only caller-allowlisted static package roots resolve from the supplied absolute dependency directory;
23
+ - relative, absolute, re-export, import-equals, `require()` and dynamic `import()` module loads fail closed;
24
+ - transitive modules resolve only through the installed dependency graph;
25
+ - source and output byte limits, allowlist cardinality, package names and path fields have absolute Bedrock
26
+ ceilings;
27
+ - success returns exactly one JavaScript output with SHA-256 metadata;
28
+ - errors return stable codes and optional line/column only, never esbuild message text, source excerpt or path.
29
+
30
+ The output is deterministic for the same source, settings, installed lock graph, platform and compiler version. The
31
+ consumer must therefore version and checksum the compiler version and dependency lock together with the bundle.
32
+
33
+ ## Security boundary
34
+
35
+ esbuild's own documentation explicitly states that esbuild is not a sandbox. This module never executes generated
36
+ code, and successful compilation must not be interpreted as permission to run it. Direct relative/absolute, Node,
37
+ HTTP or non-allowlisted imports fail because only package roots in `allowedPackages` can resolve from the virtual
38
+ entry. Trusted allowed packages may resolve their own installed transitive graph.
39
+
40
+ ## Verification
41
+
42
+ The eight focused Bedrock specs cover deterministic output, a real bundled dependency, non-allowlisted imports,
43
+ all supported static and dynamic module-load syntax, content-free syntax diagnostics, invalid request contracts and
44
+ source/output budgets. Company Toolmaker is the first direct consumer under `BFR-CTM-008`. The request was
45
+ initially recorded as `BFR-CTM-007`, but that identifier already belonged to the atomic Mongo transaction boundary;
46
+ the correction preserves both trace histories.
@@ -1,82 +1,82 @@
1
- # Mongo transaction control service
2
-
3
- **Date:** 2026-08-18
4
- **Status:** implemented and verified
5
- **Bedrock capability:** atomic multi-document MongoDB business operation
6
-
7
- ## Purpose
8
-
9
- `DyNTS_MongoTransaction_ControlService` provides one reusable Dynamo NTS transaction boundary for consumers
10
- that must persist related state and audit records atomically. The first consumer is Company Toolmaker's
11
- approval-gated pipeline lifecycle, where a state transition and its immutable transition event must either both
12
- commit or both remain absent.
13
-
14
- The primitive owns transaction lifecycle and safety policy. It deliberately does not own a consuming product's
15
- business rules, collection schemas, idempotency contract or authorization decisions.
16
-
17
- ## Contract
18
-
19
- The caller supplies:
20
-
21
- - a non-empty, diagnostic-only `transactionName`;
22
- - a non-empty `issuer`;
23
- - an optional positive safe-integer `maxCommitTimeMs`;
24
- - an asynchronous task receiving the active Mongoose `ClientSession`.
25
-
26
- The service:
27
-
28
- 1. validates settings before allocating a session;
29
- 2. creates exactly one Mongoose session;
30
- 3. executes the task through `ClientSession.withTransaction`;
31
- 4. uses `snapshot` read concern, `majority` write concern and `primary` read preference;
32
- 5. returns the committed task value, including a legitimate `undefined` task value through an internal wrapper;
33
- 6. always attempts session cleanup after a session was created;
34
- 7. fails closed when no committed result is returned.
35
-
36
- Every MongoDB read or write participating in the atomic operation must explicitly receive the callback's
37
- session. Starting a transaction does not automatically attach the session to unrelated model calls.
38
-
39
- Mongoose may invoke the transaction task more than once when retrying a transient transaction error. The task
40
- must therefore keep all mutations inside the MongoDB transaction and must not send messages, call external
41
- mutation endpoints or perform any other non-transactional side effect. Such work belongs after a successful
42
- commit and requires its own idempotency contract.
43
-
44
- ## Stable failures and data minimization
45
-
46
- | Code | Meaning |
47
- |---|---|
48
- | `DyNTS|MONGO_TRANSACTION|SETTINGS_INVALID` | Required settings are absent or invalid. |
49
- | `DyNTS|MONGO_TRANSACTION|COMMIT_TIME_INVALID` | Commit budget is not a positive safe integer. |
50
- | `DyNTS|MONGO_TRANSACTION|SESSION_FAILED` | A MongoDB session could not be created. |
51
- | `DyNTS|MONGO_TRANSACTION|NO_COMMIT_RESULT` | The transaction callback produced no committed wrapper result. |
52
- | `DyNTS|MONGO_TRANSACTION|FAILED` | Transaction execution or commit failed. |
53
-
54
- Failure objects include only the transaction name and the JavaScript error class name. The original error
55
- message, stack, database payload and task input are not copied into the stable error, preventing accidental
56
- sensitive-data disclosure. Cleanup warnings likewise log only the transaction name and error class name.
57
-
58
- ## Deployment requirement
59
-
60
- MongoDB multi-document transactions require a replica set or a sharded cluster. Production and integration-test
61
- deployments using this primitive must therefore provide a transaction-capable MongoDB topology. A standalone
62
- MongoDB process must fail the operation rather than silently degrading to non-atomic writes.
63
-
64
- ## Verification
65
-
66
- The focused Jasmine suite covers successful commit and result forwarding, shared-session forwarding,
67
- transaction failure sanitization, pre-session validation, invalid commit-budget rejection, session-creation
68
- failure, missing commit result, cleanup failure tolerance and singleton access.
69
-
70
- Measured on 2026-08-18:
71
-
72
- - focused suite: 8 specs, 0 failures;
73
- - complete package suite: 1,653 specs, 0 failures, 146 explicitly pending specs;
74
- - TypeScript build: passed;
75
- - changed-file ESLint: passed without findings;
76
- - package-wide ESLint: completed with the repository's pre-existing warning baseline;
77
- - import validator: blocked by the existing Dynamo ESLint v9 flat-config incompatibility in unrelated files;
78
- - naming validator: reports the repository's existing 6,400-finding baseline in 230 files.
79
-
80
- The two convention-validator baselines are not introduced by this capability. The changed source files pass the
81
- direct ESLint gate, and the full compiler and regression suite are green. Repairing the repository-wide
82
- validator baseline is separate technical-debt work and must not be represented as completed by this change.
1
+ # Mongo transaction control service
2
+
3
+ **Date:** 2026-08-18
4
+ **Status:** implemented and verified
5
+ **Bedrock capability:** atomic multi-document MongoDB business operation
6
+
7
+ ## Purpose
8
+
9
+ `DyNTS_MongoTransaction_ControlService` provides one reusable Dynamo NTS transaction boundary for consumers
10
+ that must persist related state and audit records atomically. The first consumer is Company Toolmaker's
11
+ approval-gated pipeline lifecycle, where a state transition and its immutable transition event must either both
12
+ commit or both remain absent.
13
+
14
+ The primitive owns transaction lifecycle and safety policy. It deliberately does not own a consuming product's
15
+ business rules, collection schemas, idempotency contract or authorization decisions.
16
+
17
+ ## Contract
18
+
19
+ The caller supplies:
20
+
21
+ - a non-empty, diagnostic-only `transactionName`;
22
+ - a non-empty `issuer`;
23
+ - an optional positive safe-integer `maxCommitTimeMs`;
24
+ - an asynchronous task receiving the active Mongoose `ClientSession`.
25
+
26
+ The service:
27
+
28
+ 1. validates settings before allocating a session;
29
+ 2. creates exactly one Mongoose session;
30
+ 3. executes the task through `ClientSession.withTransaction`;
31
+ 4. uses `snapshot` read concern, `majority` write concern and `primary` read preference;
32
+ 5. returns the committed task value, including a legitimate `undefined` task value through an internal wrapper;
33
+ 6. always attempts session cleanup after a session was created;
34
+ 7. fails closed when no committed result is returned.
35
+
36
+ Every MongoDB read or write participating in the atomic operation must explicitly receive the callback's
37
+ session. Starting a transaction does not automatically attach the session to unrelated model calls.
38
+
39
+ Mongoose may invoke the transaction task more than once when retrying a transient transaction error. The task
40
+ must therefore keep all mutations inside the MongoDB transaction and must not send messages, call external
41
+ mutation endpoints or perform any other non-transactional side effect. Such work belongs after a successful
42
+ commit and requires its own idempotency contract.
43
+
44
+ ## Stable failures and data minimization
45
+
46
+ | Code | Meaning |
47
+ |---|---|
48
+ | `DyNTS|MONGO_TRANSACTION|SETTINGS_INVALID` | Required settings are absent or invalid. |
49
+ | `DyNTS|MONGO_TRANSACTION|COMMIT_TIME_INVALID` | Commit budget is not a positive safe integer. |
50
+ | `DyNTS|MONGO_TRANSACTION|SESSION_FAILED` | A MongoDB session could not be created. |
51
+ | `DyNTS|MONGO_TRANSACTION|NO_COMMIT_RESULT` | The transaction callback produced no committed wrapper result. |
52
+ | `DyNTS|MONGO_TRANSACTION|FAILED` | Transaction execution or commit failed. |
53
+
54
+ Failure objects include only the transaction name and the JavaScript error class name. The original error
55
+ message, stack, database payload and task input are not copied into the stable error, preventing accidental
56
+ sensitive-data disclosure. Cleanup warnings likewise log only the transaction name and error class name.
57
+
58
+ ## Deployment requirement
59
+
60
+ MongoDB multi-document transactions require a replica set or a sharded cluster. Production and integration-test
61
+ deployments using this primitive must therefore provide a transaction-capable MongoDB topology. A standalone
62
+ MongoDB process must fail the operation rather than silently degrading to non-atomic writes.
63
+
64
+ ## Verification
65
+
66
+ The focused Jasmine suite covers successful commit and result forwarding, shared-session forwarding,
67
+ transaction failure sanitization, pre-session validation, invalid commit-budget rejection, session-creation
68
+ failure, missing commit result, cleanup failure tolerance and singleton access.
69
+
70
+ Measured on 2026-08-18:
71
+
72
+ - focused suite: 8 specs, 0 failures;
73
+ - complete package suite: 1,653 specs, 0 failures, 146 explicitly pending specs;
74
+ - TypeScript build: passed;
75
+ - changed-file ESLint: passed without findings;
76
+ - package-wide ESLint: completed with the repository's pre-existing warning baseline;
77
+ - import validator: blocked by the existing Dynamo ESLint v9 flat-config incompatibility in unrelated files;
78
+ - naming validator: reports the repository's existing 6,400-finding baseline in 230 files.
79
+
80
+ The two convention-validator baselines are not introduced by this capability. The changed source files pass the
81
+ direct ESLint gate, and the full compiler and regression suite are green. Repairing the repository-wide
82
+ validator baseline is separate technical-debt work and must not be represented as completed by this change.
@@ -1,132 +1,132 @@
1
- # Standalone account security and privacy Bedrock
2
-
3
- **Date:** 2026-08-18
4
- **Status:** implemented and verified at package-contract level
5
- **Packages:** `@futdevpro/nts-dynamo/account-security`, `@futdevpro/nts-dynamo/privacy-lifecycle`
6
-
7
- ## Purpose and boundary
8
-
9
- This capability lets a Dynamo application own its identity and GDPR lifecycle without redirecting to, or
10
- depending on, a shared Fleet account. It is reusable Bedrock code, not a complete application account system.
11
- The consuming product remains responsible for typed persistence models, email delivery, organization and
12
- permission decisions, HTTP transport, secure browser credential handling, rate limiting, audit wiring and each
13
- product data-domain contributor.
14
-
15
- The modules deliberately expose direct Dynamo contracts. They do not add provider-swapping or replacement
16
- abstractions around Dynamo.
17
-
18
- ## Account-security contract
19
-
20
- ### Passwords
21
-
22
- `DyNTS_AccountPassword_ControlService` uses the versioned `dyn-scrypt-v1` format with a unique random salt,
23
- bounded scrypt parameters and timing-safe verification. It supports a SHA-256 common-password denylist and
24
- returns `needsRehash` when stored parameters differ from current policy. Malformed stored hashes and
25
- attacker-controlled work factors produce a safe negative result while still performing bounded dummy work.
26
- Passwords are never copied into errors.
27
-
28
- ### Email verification and password reset
29
-
30
- `DyNTS_AccountChallenge_ControlService` issues opaque 256-bit-or-stronger credentials for two isolated purposes:
31
- email verification and password reset. Only SHA-256 token hashes enter persistence. Issuing a replacement
32
- atomically revokes its active predecessor for the same subject and purpose. Consumption must be a single
33
- compare-and-set operation that validates purpose, active state and expiry before marking the record consumed.
34
- Raw tokens are returned only once after successful persistence.
35
-
36
- Enumeration-neutral register/reset responses are an HTTP-boundary responsibility: the service must not reveal
37
- whether an email exists. The application must rate-limit issue and consume operations and deliver the raw token
38
- only through an approved out-of-band channel.
39
-
40
- ### Sessions
41
-
42
- `DyNTS_AccountSession_ControlService` uses opaque random access and refresh credentials; no self-contained JWT is
43
- required. Only hashes are stored. An access credential resolves through an active server-side session, so
44
- logout, password change, account restriction and incident response can revoke it immediately.
45
-
46
- Refresh credentials are one-time ledger entries. Rotation uses an adapter-provided compare-and-set transaction.
47
- Reuse of an already consumed credential, including a concurrent rotation race, revokes the entire family. The
48
- user-safe session projection excludes subject, family and token hashes. The application decides authorization
49
- before calling individual or subject-wide revocation methods.
50
-
51
- The adapter contract is normative: session creation, token replacement and token-state changes must be atomic.
52
- An in-memory or multi-step production adapter would invalidate replay protection.
53
-
54
- ## Privacy lifecycle contract
55
-
56
- ### Data-subject requests
57
-
58
- `DyNTS_PrivacyLifecycle_ControlService` creates subject-, organization- and request-type-scoped idempotency
59
- hashes. The raw idempotency key is never stored. Each request has an explicit policy-supplied deadline and uses
60
- the following durable state family:
61
-
62
- `received → identity-verified → scoped → planned → executing → verifying → completed`
63
-
64
- Supported terminal/non-happy states are `partially-completed`, `rejected-with-reason`, `cancelled`,
65
- `failed-retryable` and `failed-terminal`. The current orchestrator produces `completed` or
66
- `partially-completed`; policy-specific rejection/cancellation/failure entry points remain consumer-owned until a
67
- shared cross-product transition contract is justified.
68
-
69
- Every registered contributor is ordered deterministically. Its durable `plan`, idempotent `execute` and
70
- read-only `verify` operations return content-free structured outcomes. Planning finishes and is persisted before
71
- the request enters `planned`; a planning failure becomes a resumable partial outcome without executing another
72
- domain against an incomplete plan set. Successful contributors are skipped on resume and failed contributors
73
- are retried. A retention result is valid only with an explicit matching basis code. Cross-subject reads return
74
- the same not-found response as an absent request.
75
-
76
- The consuming application must register contributors for identity, session, membership, pipelines/projects,
77
- agent sessions, artifacts, audit, support, subscription/billing and backup where those domains exist. Export
78
- contributors must generate machine-readable, checksummed, short-lived artifacts; erasure contributors must use
79
- hard delete by default and anonymize only where a documented retention basis requires it.
80
-
81
- ### Legal acceptance and consent
82
-
83
- `DyNTS_PrivacyLedger_ControlService` keeps legal acceptance separate from optional-purpose consent. Legal records
84
- bind the subject to an exact document type, version and SHA-256 checksum. Consent is append-only and scoped by
85
- purpose and policy version; withdrawal creates a new event instead of mutating history. The ledger projection
86
- returns both full history and the latest decision per purpose.
87
-
88
- Adapters must enforce tenant/subject scoping and idempotency uniqueness. Document and privacy-notice content is
89
- not stored in these event records; the checksum binds the separately versioned canonical document.
90
-
91
- ## Data-minimization and diagnostics
92
-
93
- - No password, bearer credential, challenge credential or raw idempotency key is persisted by these services.
94
- - Stable error messages contain no email address, token, password, file content, cell content or contributor
95
- exception text.
96
- - Session context is intentionally pre-redacted: device label plus IP and user-agent hashes only.
97
- - Contributor outcomes carry codes, counts, checksums and retention basis, not exported personal data.
98
- - User-facing request, consent and legal-acceptance views omit idempotency hashes and request fingerprints;
99
- those fields remain server-side persistence metadata.
100
- - Consumers must preserve this boundary in logs, audits, HTTP errors and analytics snapshots.
101
-
102
- ## Required production integrations
103
-
104
- Before a product can claim production readiness, it must provide and test:
105
-
106
- 1. transaction-safe MongoDB adapters for challenges, sessions, privacy requests and ledgers;
107
- 2. normalized unique identity records and verified-email privilege gates;
108
- 3. API rate limits for register, login, challenge issue/consume and refresh;
109
- 4. a reviewed browser credential transport/storage threat model;
110
- 5. organization membership and permission checks at every tenant-scoped route;
111
- 6. all applicable DSAR contributors, export delivery expiry and backup restore/re-erasure procedure;
112
- 7. content-redaction snapshots for logs, errors, analytics and audit events;
113
- 8. automated feature and cross-feature user-journey E2E coverage including cleanup.
114
-
115
- ## Verification
116
-
117
- Measured on 2026-08-18:
118
-
119
- - account password suite: 7 specs, 0 failures;
120
- - session suite: 10 specs, 0 failures;
121
- - one-time challenge suite: 5 specs, 0 failures;
122
- - privacy lifecycle suite: 7 specs, 0 failures;
123
- - privacy ledger suite: 5 specs, 0 failures;
124
- - complete package suite: 1,687 specs, 0 failures, 146 explicitly pending specs;
125
- - TypeScript build: passed;
126
- - changed-module ESLint: passed with zero warnings;
127
- - release tarball: local untracked `SKILLS.md` explicitly excluded by `.npmignore`;
128
- - package import validator: existing baseline, 82 findings in 76 files;
129
- - package naming validator: existing baseline, 101 findings in 68 files.
130
-
131
- The repository-wide convention findings predate this capability and are not represented as fixed. The new
132
- modules pass their direct compiler, lint and regression gates.
1
+ # Standalone account security and privacy Bedrock
2
+
3
+ **Date:** 2026-08-18
4
+ **Status:** implemented and verified at package-contract level
5
+ **Packages:** `@futdevpro/nts-dynamo/account-security`, `@futdevpro/nts-dynamo/privacy-lifecycle`
6
+
7
+ ## Purpose and boundary
8
+
9
+ This capability lets a Dynamo application own its identity and GDPR lifecycle without redirecting to, or
10
+ depending on, a shared Fleet account. It is reusable Bedrock code, not a complete application account system.
11
+ The consuming product remains responsible for typed persistence models, email delivery, organization and
12
+ permission decisions, HTTP transport, secure browser credential handling, rate limiting, audit wiring and each
13
+ product data-domain contributor.
14
+
15
+ The modules deliberately expose direct Dynamo contracts. They do not add provider-swapping or replacement
16
+ abstractions around Dynamo.
17
+
18
+ ## Account-security contract
19
+
20
+ ### Passwords
21
+
22
+ `DyNTS_AccountPassword_ControlService` uses the versioned `dyn-scrypt-v1` format with a unique random salt,
23
+ bounded scrypt parameters and timing-safe verification. It supports a SHA-256 common-password denylist and
24
+ returns `needsRehash` when stored parameters differ from current policy. Malformed stored hashes and
25
+ attacker-controlled work factors produce a safe negative result while still performing bounded dummy work.
26
+ Passwords are never copied into errors.
27
+
28
+ ### Email verification and password reset
29
+
30
+ `DyNTS_AccountChallenge_ControlService` issues opaque 256-bit-or-stronger credentials for two isolated purposes:
31
+ email verification and password reset. Only SHA-256 token hashes enter persistence. Issuing a replacement
32
+ atomically revokes its active predecessor for the same subject and purpose. Consumption must be a single
33
+ compare-and-set operation that validates purpose, active state and expiry before marking the record consumed.
34
+ Raw tokens are returned only once after successful persistence.
35
+
36
+ Enumeration-neutral register/reset responses are an HTTP-boundary responsibility: the service must not reveal
37
+ whether an email exists. The application must rate-limit issue and consume operations and deliver the raw token
38
+ only through an approved out-of-band channel.
39
+
40
+ ### Sessions
41
+
42
+ `DyNTS_AccountSession_ControlService` uses opaque random access and refresh credentials; no self-contained JWT is
43
+ required. Only hashes are stored. An access credential resolves through an active server-side session, so
44
+ logout, password change, account restriction and incident response can revoke it immediately.
45
+
46
+ Refresh credentials are one-time ledger entries. Rotation uses an adapter-provided compare-and-set transaction.
47
+ Reuse of an already consumed credential, including a concurrent rotation race, revokes the entire family. The
48
+ user-safe session projection excludes subject, family and token hashes. The application decides authorization
49
+ before calling individual or subject-wide revocation methods.
50
+
51
+ The adapter contract is normative: session creation, token replacement and token-state changes must be atomic.
52
+ An in-memory or multi-step production adapter would invalidate replay protection.
53
+
54
+ ## Privacy lifecycle contract
55
+
56
+ ### Data-subject requests
57
+
58
+ `DyNTS_PrivacyLifecycle_ControlService` creates subject-, organization- and request-type-scoped idempotency
59
+ hashes. The raw idempotency key is never stored. Each request has an explicit policy-supplied deadline and uses
60
+ the following durable state family:
61
+
62
+ `received → identity-verified → scoped → planned → executing → verifying → completed`
63
+
64
+ Supported terminal/non-happy states are `partially-completed`, `rejected-with-reason`, `cancelled`,
65
+ `failed-retryable` and `failed-terminal`. The current orchestrator produces `completed` or
66
+ `partially-completed`; policy-specific rejection/cancellation/failure entry points remain consumer-owned until a
67
+ shared cross-product transition contract is justified.
68
+
69
+ Every registered contributor is ordered deterministically. Its durable `plan`, idempotent `execute` and
70
+ read-only `verify` operations return content-free structured outcomes. Planning finishes and is persisted before
71
+ the request enters `planned`; a planning failure becomes a resumable partial outcome without executing another
72
+ domain against an incomplete plan set. Successful contributors are skipped on resume and failed contributors
73
+ are retried. A retention result is valid only with an explicit matching basis code. Cross-subject reads return
74
+ the same not-found response as an absent request.
75
+
76
+ The consuming application must register contributors for identity, session, membership, pipelines/projects,
77
+ agent sessions, artifacts, audit, support, subscription/billing and backup where those domains exist. Export
78
+ contributors must generate machine-readable, checksummed, short-lived artifacts; erasure contributors must use
79
+ hard delete by default and anonymize only where a documented retention basis requires it.
80
+
81
+ ### Legal acceptance and consent
82
+
83
+ `DyNTS_PrivacyLedger_ControlService` keeps legal acceptance separate from optional-purpose consent. Legal records
84
+ bind the subject to an exact document type, version and SHA-256 checksum. Consent is append-only and scoped by
85
+ purpose and policy version; withdrawal creates a new event instead of mutating history. The ledger projection
86
+ returns both full history and the latest decision per purpose.
87
+
88
+ Adapters must enforce tenant/subject scoping and idempotency uniqueness. Document and privacy-notice content is
89
+ not stored in these event records; the checksum binds the separately versioned canonical document.
90
+
91
+ ## Data-minimization and diagnostics
92
+
93
+ - No password, bearer credential, challenge credential or raw idempotency key is persisted by these services.
94
+ - Stable error messages contain no email address, token, password, file content, cell content or contributor
95
+ exception text.
96
+ - Session context is intentionally pre-redacted: device label plus IP and user-agent hashes only.
97
+ - Contributor outcomes carry codes, counts, checksums and retention basis, not exported personal data.
98
+ - User-facing request, consent and legal-acceptance views omit idempotency hashes and request fingerprints;
99
+ those fields remain server-side persistence metadata.
100
+ - Consumers must preserve this boundary in logs, audits, HTTP errors and analytics snapshots.
101
+
102
+ ## Required production integrations
103
+
104
+ Before a product can claim production readiness, it must provide and test:
105
+
106
+ 1. transaction-safe MongoDB adapters for challenges, sessions, privacy requests and ledgers;
107
+ 2. normalized unique identity records and verified-email privilege gates;
108
+ 3. API rate limits for register, login, challenge issue/consume and refresh;
109
+ 4. a reviewed browser credential transport/storage threat model;
110
+ 5. organization membership and permission checks at every tenant-scoped route;
111
+ 6. all applicable DSAR contributors, export delivery expiry and backup restore/re-erasure procedure;
112
+ 7. content-redaction snapshots for logs, errors, analytics and audit events;
113
+ 8. automated feature and cross-feature user-journey E2E coverage including cleanup.
114
+
115
+ ## Verification
116
+
117
+ Measured on 2026-08-18:
118
+
119
+ - account password suite: 7 specs, 0 failures;
120
+ - session suite: 10 specs, 0 failures;
121
+ - one-time challenge suite: 5 specs, 0 failures;
122
+ - privacy lifecycle suite: 7 specs, 0 failures;
123
+ - privacy ledger suite: 5 specs, 0 failures;
124
+ - complete package suite: 1,687 specs, 0 failures, 146 explicitly pending specs;
125
+ - TypeScript build: passed;
126
+ - changed-module ESLint: passed with zero warnings;
127
+ - release tarball: local untracked `SKILLS.md` explicitly excluded by `.npmignore`;
128
+ - package import validator: existing baseline, 82 findings in 76 files;
129
+ - package naming validator: existing baseline, 101 findings in 68 files.
130
+
131
+ The repository-wide convention findings predate this capability and are not represented as fixed. The new
132
+ modules pass their direct compiler, lint and regression gates.