@futdevpro/nts-dynamo 1.15.155 → 1.15.156

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 (763) hide show
  1. package/README.md +10 -10
  2. package/__documentations/2026-08-22-bfr-ctm-018-content-free-endpoint-errors.md +54 -0
  3. package/__documentations/2026-08-22-content-free-process-error-boundary.md +26 -6
  4. package/build/_collections/app-version-header.util.d.ts +41 -41
  5. package/build/_collections/app-version-header.util.js +66 -66
  6. package/build/_collections/archive-service-registry.const.d.ts +15 -15
  7. package/build/_collections/archive-service-registry.const.js +14 -14
  8. package/build/_collections/archive.util.d.ts +12 -12
  9. package/build/_collections/archive.util.js +18 -18
  10. package/build/_collections/atlas-default-db-options.const.d.ts +2 -2
  11. package/build/_collections/atlas-default-db-options.const.js +9 -9
  12. package/build/_collections/client-safe-error.util.d.ts +38 -38
  13. package/build/_collections/client-safe-error.util.js +96 -96
  14. package/build/_collections/default-fallback-cache-max-age.const.d.ts +2 -2
  15. package/build/_collections/default-fallback-cache-max-age.const.js +5 -5
  16. package/build/_collections/default-not-found-page.const.d.ts +5 -5
  17. package/build/_collections/default-not-found-page.const.js +24 -24
  18. package/build/_collections/default-socket-path.const.d.ts +2 -2
  19. package/build/_collections/default-socket-path.const.js +5 -5
  20. package/build/_collections/field-encryption.util.d.ts +85 -85
  21. package/build/_collections/field-encryption.util.js +192 -192
  22. package/build/_collections/get-environment-settings.util.d.ts +2 -2
  23. package/build/_collections/get-environment-settings.util.js +43 -43
  24. package/build/_collections/global-settings.const.d.ts +6 -6
  25. package/build/_collections/global-settings.const.js +104 -104
  26. package/build/_collections/load-shed.util.d.ts +15 -15
  27. package/build/_collections/load-shed.util.js +42 -42
  28. package/build/_collections/mongo-reconnect-guard.util.d.ts +73 -73
  29. package/build/_collections/mongo-reconnect-guard.util.js +110 -110
  30. package/build/_collections/npm-token-check.util.d.ts +138 -138
  31. package/build/_collections/npm-token-check.util.js +301 -301
  32. package/build/_collections/security-headers.util.d.ts +16 -16
  33. package/build/_collections/security-headers.util.js +77 -77
  34. package/build/_collections/signed-url.util.d.ts +84 -84
  35. package/build/_collections/signed-url.util.js +145 -145
  36. package/build/_collections/star.controller.d.ts +7 -7
  37. package/build/_collections/star.controller.js +97 -97
  38. package/build/_collections/static-cache-control.util.d.ts +17 -17
  39. package/build/_collections/static-cache-control.util.js +23 -23
  40. package/build/_enums/data-model-type.enum.d.ts +13 -13
  41. package/build/_enums/data-model-type.enum.js +17 -17
  42. package/build/_enums/data-service-function.enum.d.ts +18 -18
  43. package/build/_enums/data-service-function.enum.js +24 -24
  44. package/build/_enums/predefined-data-types.enum.d.ts +15 -15
  45. package/build/_enums/predefined-data-types.enum.js +19 -19
  46. package/build/_enums/route-security.enum.d.ts +11 -11
  47. package/build/_enums/route-security.enum.js +15 -15
  48. package/build/_models/control-models/api-call-params.control-model.d.ts +79 -79
  49. package/build/_models/control-models/api-call-params.control-model.js +101 -101
  50. package/build/_models/control-models/app-ext-system-controls.control-model.d.ts +6 -6
  51. package/build/_models/control-models/app-ext-system-controls.control-model.js +10 -10
  52. package/build/_models/control-models/app-params.control-model.d.ts +51 -51
  53. package/build/_models/control-models/app-params.control-model.js +118 -118
  54. package/build/_models/control-models/app-system-controls.control-model.d.ts +7 -7
  55. package/build/_models/control-models/app-system-controls.control-model.js +11 -11
  56. package/build/_models/control-models/endpoint-params.control-model.d.ts +125 -119
  57. package/build/_models/control-models/endpoint-params.control-model.d.ts.map +1 -1
  58. package/build/_models/control-models/endpoint-params.control-model.js +409 -484
  59. package/build/_models/control-models/endpoint-params.control-model.js.map +1 -1
  60. package/build/_models/control-models/http-settings.control-model.d.ts +17 -17
  61. package/build/_models/control-models/http-settings.control-model.js +34 -34
  62. package/build/_models/control-models/system-control.control-model.d.ts +5 -5
  63. package/build/_models/control-models/system-control.control-model.js +11 -11
  64. package/build/_models/data-models/schema-migration.data-model.d.ts +28 -28
  65. package/build/_models/data-models/schema-migration.data-model.js +46 -46
  66. package/build/_models/interfaces/app-version-header-settings.interface.d.ts +16 -16
  67. package/build/_models/interfaces/app-version-header-settings.interface.js +2 -2
  68. package/build/_models/interfaces/certification-settings.interface.d.ts +5 -5
  69. package/build/_models/interfaces/certification-settings.interface.js +2 -2
  70. package/build/_models/interfaces/compare-data-options.interface.d.ts +26 -26
  71. package/build/_models/interfaces/compare-data-options.interface.js +2 -2
  72. package/build/_models/interfaces/compare-data-result.interface.d.ts +12 -12
  73. package/build/_models/interfaces/compare-data-result.interface.js +2 -2
  74. package/build/_models/interfaces/cors-settings.interface.d.ts +51 -51
  75. package/build/_models/interfaces/cors-settings.interface.js +2 -2
  76. package/build/_models/interfaces/db-query-options.interface.d.ts +32 -32
  77. package/build/_models/interfaces/db-query-options.interface.js +2 -2
  78. package/build/_models/interfaces/environment-settings.interface.d.ts +34 -34
  79. package/build/_models/interfaces/environment-settings.interface.js +2 -2
  80. package/build/_models/interfaces/global-log-settings.interface.d.ts +145 -145
  81. package/build/_models/interfaces/global-log-settings.interface.js +2 -2
  82. package/build/_models/interfaces/global-service-settings.interface.d.ts +30 -30
  83. package/build/_models/interfaces/global-service-settings.interface.js +2 -2
  84. package/build/_models/interfaces/global-settings.interface.d.ts +265 -265
  85. package/build/_models/interfaces/global-settings.interface.js +2 -2
  86. package/build/_models/interfaces/migration-entry.interface.d.ts +19 -19
  87. package/build/_models/interfaces/migration-entry.interface.js +2 -2
  88. package/build/_models/interfaces/mongo-transaction-settings.interface.d.ts +8 -8
  89. package/build/_models/interfaces/mongo-transaction-settings.interface.js +2 -2
  90. package/build/_models/interfaces/routing-module-settings.interface.d.ts +19 -19
  91. package/build/_models/interfaces/routing-module-settings.interface.js +2 -2
  92. package/build/_models/interfaces/security-headers-settings.interface.d.ts +41 -41
  93. package/build/_models/interfaces/security-headers-settings.interface.js +2 -2
  94. package/build/_models/interfaces/signed-url-verify-result.interface.d.ts +13 -13
  95. package/build/_models/interfaces/signed-url-verify-result.interface.js +2 -2
  96. package/build/_models/interfaces/static-client-settings.interface.d.ts +36 -36
  97. package/build/_models/interfaces/static-client-settings.interface.js +2 -2
  98. package/build/_models/types/db-update.type.d.ts +129 -129
  99. package/build/_models/types/db-update.type.js +2 -2
  100. package/build/_modules/account-security/_enums/account-challenge-purpose.type-enum.d.ts +5 -5
  101. package/build/_modules/account-security/_enums/account-challenge-purpose.type-enum.js +9 -9
  102. package/build/_modules/account-security/_enums/account-refresh-token-state.type-enum.d.ts +6 -6
  103. package/build/_modules/account-security/_enums/account-refresh-token-state.type-enum.js +10 -10
  104. package/build/_modules/account-security/_enums/account-session-state.type-enum.d.ts +6 -6
  105. package/build/_modules/account-security/_enums/account-session-state.type-enum.js +10 -10
  106. package/build/_modules/account-security/_models/account-challenge-adapter.interface.d.ts +8 -8
  107. package/build/_modules/account-security/_models/account-challenge-adapter.interface.js +2 -2
  108. package/build/_modules/account-security/_models/account-challenge-issued.interface.d.ts +6 -6
  109. package/build/_modules/account-security/_models/account-challenge-issued.interface.js +2 -2
  110. package/build/_modules/account-security/_models/account-challenge-record.interface.d.ts +12 -12
  111. package/build/_modules/account-security/_models/account-challenge-record.interface.js +2 -2
  112. package/build/_modules/account-security/_models/account-challenge-result.interface.d.ts +7 -7
  113. package/build/_modules/account-security/_models/account-challenge-result.interface.js +2 -2
  114. package/build/_modules/account-security/_models/account-challenge-settings.interface.d.ts +8 -8
  115. package/build/_modules/account-security/_models/account-challenge-settings.interface.js +2 -2
  116. package/build/_modules/account-security/_models/account-password-policy.interface.d.ts +11 -11
  117. package/build/_modules/account-security/_models/account-password-policy.interface.js +2 -2
  118. package/build/_modules/account-security/_models/account-password-verification.interface.d.ts +5 -5
  119. package/build/_modules/account-security/_models/account-password-verification.interface.js +2 -2
  120. package/build/_modules/account-security/_models/account-refresh-token-record.interface.d.ts +12 -12
  121. package/build/_modules/account-security/_models/account-refresh-token-record.interface.js +2 -2
  122. package/build/_modules/account-security/_models/account-session-adapter.interface.d.ts +18 -18
  123. package/build/_modules/account-security/_models/account-session-adapter.interface.js +2 -2
  124. package/build/_modules/account-security/_models/account-session-claims.interface.d.ts +7 -7
  125. package/build/_modules/account-security/_models/account-session-claims.interface.js +2 -2
  126. package/build/_modules/account-security/_models/account-session-context.interface.d.ts +6 -6
  127. package/build/_modules/account-security/_models/account-session-context.interface.js +2 -2
  128. package/build/_modules/account-security/_models/account-session-create.interface.d.ts +7 -7
  129. package/build/_modules/account-security/_models/account-session-create.interface.js +2 -2
  130. package/build/_modules/account-security/_models/account-session-record.interface.d.ts +20 -20
  131. package/build/_modules/account-security/_models/account-session-record.interface.js +2 -2
  132. package/build/_modules/account-security/_models/account-session-rotate.interface.d.ts +10 -10
  133. package/build/_modules/account-security/_models/account-session-rotate.interface.js +2 -2
  134. package/build/_modules/account-security/_models/account-session-settings.interface.d.ts +10 -10
  135. package/build/_modules/account-security/_models/account-session-settings.interface.js +2 -2
  136. package/build/_modules/account-security/_models/account-session-token-pair.interface.d.ts +8 -8
  137. package/build/_modules/account-security/_models/account-session-token-pair.interface.js +2 -2
  138. package/build/_modules/account-security/_models/account-session-view.interface.d.ts +12 -12
  139. package/build/_modules/account-security/_models/account-session-view.interface.js +2 -2
  140. package/build/_modules/account-security/account-challenge.control-service.d.ts +23 -23
  141. package/build/_modules/account-security/account-challenge.control-service.js +116 -116
  142. package/build/_modules/account-security/account-password.control-service.d.ts +23 -23
  143. package/build/_modules/account-security/account-password.control-service.js +213 -213
  144. package/build/_modules/account-security/account-session.control-service.d.ts +38 -38
  145. package/build/_modules/account-security/account-session.control-service.js +276 -276
  146. package/build/_modules/account-security/index.d.ts +23 -23
  147. package/build/_modules/account-security/index.js +15 -15
  148. package/build/_modules/admin-auth/_models/admin-api-key-config.interface.d.ts +31 -31
  149. package/build/_modules/admin-auth/_models/admin-api-key-config.interface.js +2 -2
  150. package/build/_modules/admin-auth/admin-api-key.auth-service.d.ts +89 -89
  151. package/build/_modules/admin-auth/admin-api-key.auth-service.js +194 -194
  152. package/build/_modules/admin-auth/index.d.ts +2 -2
  153. package/build/_modules/admin-auth/index.js +5 -5
  154. package/build/_modules/ai/_collections/ai-model-config-validator.util.d.ts +31 -31
  155. package/build/_modules/ai/_collections/ai-model-config-validator.util.js +94 -94
  156. package/build/_modules/ai/_collections/ai-provider-error.util.d.ts +43 -43
  157. package/build/_modules/ai/_collections/ai-provider-error.util.js +120 -120
  158. package/build/_modules/ai/_models/ai-input-interfaces.d.ts +53 -53
  159. package/build/_modules/ai/_models/ai-input-interfaces.js +5 -5
  160. package/build/_modules/ai/_models/ai-test-generation-result.interface.d.ts +16 -16
  161. package/build/_modules/ai/_models/ai-test-generation-result.interface.js +2 -2
  162. package/build/_modules/ai/_models/interfaces/dynts-ai-cost-event-callback.interface.d.ts +13 -13
  163. package/build/_modules/ai/_models/interfaces/dynts-ai-cost-event-callback.interface.js +2 -2
  164. package/build/_modules/ai/_models/interfaces/dynts-ai-cost-event.interface.d.ts +49 -49
  165. package/build/_modules/ai/_models/interfaces/dynts-ai-cost-event.interface.js +2 -2
  166. package/build/_modules/ai/_models/interfaces/dynts-ai-provider-error.interface.d.ts +16 -16
  167. package/build/_modules/ai/_models/interfaces/dynts-ai-provider-error.interface.js +2 -2
  168. package/build/_modules/ai/_modules/ai-mock/_collections/aim-default-collection.util.d.ts +22 -22
  169. package/build/_modules/ai/_modules/ai-mock/_collections/aim-default-collection.util.js +51 -51
  170. package/build/_modules/ai/_modules/ai-mock/_collections/aim-fixture-match.util.d.ts +33 -33
  171. package/build/_modules/ai/_modules/ai-mock/_collections/aim-fixture-match.util.js +55 -55
  172. package/build/_modules/ai/_modules/ai-mock/_collections/aim-fixture-serializer.util.d.ts +40 -40
  173. package/build/_modules/ai/_modules/ai-mock/_collections/aim-fixture-serializer.util.js +89 -89
  174. package/build/_modules/ai/_modules/ai-mock/_enums/aim-modality.enum.d.ts +27 -27
  175. package/build/_modules/ai/_modules/ai-mock/_enums/aim-modality.enum.js +28 -28
  176. package/build/_modules/ai/_modules/ai-mock/_models/interfaces/aim-call-input.interface.d.ts +14 -14
  177. package/build/_modules/ai/_modules/ai-mock/_models/interfaces/aim-call-input.interface.js +2 -2
  178. package/build/_modules/ai/_modules/ai-mock/_models/interfaces/aim-error.interface.d.ts +10 -10
  179. package/build/_modules/ai/_modules/ai-mock/_models/interfaces/aim-error.interface.js +2 -2
  180. package/build/_modules/ai/_modules/ai-mock/_models/interfaces/aim-fixture.interface.d.ts +29 -29
  181. package/build/_modules/ai/_modules/ai-mock/_models/interfaces/aim-fixture.interface.js +2 -2
  182. package/build/_modules/ai/_modules/ai-mock/_models/interfaces/aim-request.interface.d.ts +18 -18
  183. package/build/_modules/ai/_modules/ai-mock/_models/interfaces/aim-request.interface.js +2 -2
  184. package/build/_modules/ai/_modules/ai-mock/_models/interfaces/aim-service-collection.interface.d.ts +18 -18
  185. package/build/_modules/ai/_modules/ai-mock/_models/interfaces/aim-service-collection.interface.js +2 -2
  186. package/build/_modules/ai/_modules/ai-mock/_services/ai-embedding-mock.service.d.ts +80 -80
  187. package/build/_modules/ai/_modules/ai-mock/_services/ai-embedding-mock.service.js +166 -166
  188. package/build/_modules/ai/_modules/ai-mock/_services/aim-fixture-harness.service.d.ts +47 -47
  189. package/build/_modules/ai/_modules/ai-mock/_services/aim-fixture-harness.service.js +103 -103
  190. package/build/_modules/ai/_modules/ai-mock/_services/aim-fixture-store.service.d.ts +34 -34
  191. package/build/_modules/ai/_modules/ai-mock/_services/aim-fixture-store.service.js +59 -59
  192. package/build/_modules/ai/_modules/ai-mock/_services/aim-mock.service.d.ts +73 -73
  193. package/build/_modules/ai/_modules/ai-mock/_services/aim-mock.service.js +133 -133
  194. package/build/_modules/ai/_modules/ai-mock/fixtures/aim-text.fixtures.d.ts +8 -8
  195. package/build/_modules/ai/_modules/ai-mock/fixtures/aim-text.fixtures.js +650 -650
  196. package/build/_modules/ai/_modules/ai-mock/index.d.ts +14 -14
  197. package/build/_modules/ai/_modules/ai-mock/index.js +42 -42
  198. package/build/_modules/ai/_modules/anthropic/_services/aai-user-key.control-service.d.ts +35 -35
  199. package/build/_modules/ai/_modules/anthropic/_services/aai-user-key.control-service.js +117 -117
  200. package/build/_modules/ai/_modules/anthropic/index.d.ts +2 -2
  201. package/build/_modules/ai/_modules/anthropic/index.js +7 -7
  202. package/build/_modules/ai/_modules/document-ai/_collections/dai-chunking.util.d.ts +84 -84
  203. package/build/_modules/ai/_modules/document-ai/_collections/dai-chunking.util.js +467 -467
  204. package/build/_modules/ai/_modules/document-ai/_collections/dai-code-chunking.util.d.ts +109 -109
  205. package/build/_modules/ai/_modules/document-ai/_collections/dai-code-chunking.util.js +418 -418
  206. package/build/_modules/ai/_modules/document-ai/_collections/dai-document.util.d.ts +28 -28
  207. package/build/_modules/ai/_modules/document-ai/_collections/dai-document.util.js +73 -73
  208. package/build/_modules/ai/_modules/document-ai/_enums/dai-compare-result-type.enum.d.ts +6 -6
  209. package/build/_modules/ai/_modules/document-ai/_enums/dai-compare-result-type.enum.js +10 -10
  210. package/build/_modules/ai/_modules/document-ai/_models/data-models/dai-doc-chunk.data-model.d.ts +51 -51
  211. package/build/_modules/ai/_modules/document-ai/_models/data-models/dai-doc-chunk.data-model.js +132 -132
  212. package/build/_modules/ai/_modules/document-ai/_models/data-models/dai-doc-page.data-model.d.ts +47 -47
  213. package/build/_modules/ai/_modules/document-ai/_models/data-models/dai-doc-page.data-model.js +136 -136
  214. package/build/_modules/ai/_modules/document-ai/_models/data-models/dai-document.data-model.d.ts +17 -17
  215. package/build/_modules/ai/_modules/document-ai/_models/data-models/dai-document.data-model.js +76 -76
  216. package/build/_modules/ai/_modules/document-ai/_models/interfaces/dai-code-chunk.interface.d.ts +49 -49
  217. package/build/_modules/ai/_modules/document-ai/_models/interfaces/dai-code-chunk.interface.js +2 -2
  218. package/build/_modules/ai/_modules/document-ai/_models/interfaces/dai-doc-chunk-compare-result.interface.d.ts +8 -8
  219. package/build/_modules/ai/_modules/document-ai/_models/interfaces/dai-doc-chunk-compare-result.interface.js +2 -2
  220. package/build/_modules/ai/_modules/document-ai/_models/interfaces/dai-doc-page-compare-result.interface.d.ts +11 -11
  221. package/build/_modules/ai/_modules/document-ai/_models/interfaces/dai-doc-page-compare-result.interface.js +2 -2
  222. package/build/_modules/ai/_modules/document-ai/_models/interfaces/dai-document-compare-result.interface.d.ts +12 -12
  223. package/build/_modules/ai/_modules/document-ai/_models/interfaces/dai-document-compare-result.interface.js +2 -2
  224. package/build/_modules/ai/_modules/document-ai/index.d.ts +12 -12
  225. package/build/_modules/ai/_modules/document-ai/index.js +27 -27
  226. package/build/_modules/ai/_modules/fdp-ai/_services/fdpai-user-key.control-service.d.ts +34 -34
  227. package/build/_modules/ai/_modules/fdp-ai/_services/fdpai-user-key.control-service.js +128 -128
  228. package/build/_modules/ai/_modules/fdp-ai/index.d.ts +2 -2
  229. package/build/_modules/ai/_modules/fdp-ai/index.js +7 -7
  230. package/build/_modules/ai/_modules/open-ai/_collections/oai-global-settings.const.d.ts +2 -2
  231. package/build/_modules/ai/_modules/open-ai/_collections/oai-global-settings.const.js +8 -8
  232. package/build/_modules/ai/_modules/open-ai/_collections/oai-llm-predefined-requests-hu.conts.d.ts +2 -2
  233. package/build/_modules/ai/_modules/open-ai/_collections/oai-llm-predefined-requests-hu.conts.js +74 -74
  234. package/build/_modules/ai/_modules/open-ai/_collections/oai-llm-predefined-requests.conts.d.ts +2 -2
  235. package/build/_modules/ai/_modules/open-ai/_collections/oai-llm-predefined-requests.conts.js +67 -67
  236. package/build/_modules/ai/_modules/open-ai/_enums/oai-gpt-message-role.enum.js +42 -42
  237. package/build/_modules/ai/_modules/open-ai/_models/interfaces/oai-global-settings.interface.d.ts +5 -5
  238. package/build/_modules/ai/_modules/open-ai/_models/interfaces/oai-global-settings.interface.js +2 -2
  239. package/build/_modules/ai/_modules/open-ai/_models/interfaces/oai-gpt-message.interface.js +6 -6
  240. package/build/_modules/ai/_modules/open-ai/_models/interfaces/oai-llm-predefined-requests.interface.d.ts +51 -51
  241. package/build/_modules/ai/_modules/open-ai/_models/interfaces/oai-llm-predefined-requests.interface.js +2 -2
  242. package/build/_modules/ai/_modules/open-ai/_services/data-services/oai-doc-chunk-data.service.d.ts +21 -21
  243. package/build/_modules/ai/_modules/open-ai/_services/data-services/oai-doc-chunk-data.service.js +187 -187
  244. package/build/_modules/ai/_modules/open-ai/_services/data-services/oai-doc-page.data-service.d.ts +26 -26
  245. package/build/_modules/ai/_modules/open-ai/_services/data-services/oai-doc-page.data-service.js +278 -278
  246. package/build/_modules/ai/_modules/open-ai/_services/data-services/oai-document.data-service.d.ts +22 -22
  247. package/build/_modules/ai/_modules/open-ai/_services/data-services/oai-document.data-service.js +322 -322
  248. package/build/_modules/ai/_modules/open-ai/_services/data-services/oai-vector-data.service.d.ts +119 -119
  249. package/build/_modules/ai/_modules/open-ai/_services/data-services/oai-vector-data.service.js +480 -480
  250. package/build/_modules/ai/_modules/open-ai/_services/oai-embedding.control-service.d.ts +25 -25
  251. package/build/_modules/ai/_modules/open-ai/_services/oai-embedding.control-service.js +103 -103
  252. package/build/_modules/ai/_modules/open-ai/_services/oai-llm-chat.service-base.d.ts +169 -169
  253. package/build/_modules/ai/_modules/open-ai/_services/oai-llm-chat.service-base.js +479 -479
  254. package/build/_modules/ai/_modules/open-ai/_services/oai-llm.service-base.d.ts +229 -229
  255. package/build/_modules/ai/_modules/open-ai/_services/oai-llm.service-base.js +617 -617
  256. package/build/_modules/ai/_modules/open-ai/_services/oai-user-key.control-service.d.ts +39 -39
  257. package/build/_modules/ai/_modules/open-ai/_services/oai-user-key.control-service.js +110 -110
  258. package/build/_modules/ai/_modules/open-ai/index.d.ts +14 -14
  259. package/build/_modules/ai/_modules/open-ai/index.js +55 -55
  260. package/build/_modules/ai/_services/ai-embedding-provider.registry.d.ts +51 -51
  261. package/build/_modules/ai/_services/ai-embedding-provider.registry.js +78 -78
  262. package/build/_modules/ai/_services/ai-embedding.service-base.d.ts +41 -41
  263. package/build/_modules/ai/_services/ai-embedding.service-base.js +11 -11
  264. package/build/_modules/ai/_services/ai-llm-chat.service-base.d.ts +39 -39
  265. package/build/_modules/ai/_services/ai-llm-chat.service-base.js +11 -11
  266. package/build/_modules/ai/_services/ai-llm.service-base.d.ts +148 -148
  267. package/build/_modules/ai/_services/ai-llm.service-base.js +378 -378
  268. package/build/_modules/ai/_services/ai-provider.service-base.d.ts +46 -46
  269. package/build/_modules/ai/_services/ai-provider.service-base.js +43 -43
  270. package/build/_modules/ai/_services/ai-user-key.service-base.d.ts +44 -44
  271. package/build/_modules/ai/_services/ai-user-key.service-base.js +14 -14
  272. package/build/_modules/ai/_services/lmstudio-embedding.control-service.d.ts +110 -110
  273. package/build/_modules/ai/_services/lmstudio-embedding.control-service.js +297 -297
  274. package/build/_modules/ai/index.d.ts +16 -16
  275. package/build/_modules/ai/index.js +30 -30
  276. package/build/_modules/artifact-compiler/_enums/artifact-compile-outcome.type-enum.d.ts +5 -5
  277. package/build/_modules/artifact-compiler/_enums/artifact-compile-outcome.type-enum.js +9 -9
  278. package/build/_modules/artifact-compiler/_enums/artifact-compile-stage.type-enum.d.ts +8 -8
  279. package/build/_modules/artifact-compiler/_enums/artifact-compile-stage.type-enum.js +12 -12
  280. package/build/_modules/artifact-compiler/_enums/artifact-retry-class.type-enum.d.ts +6 -6
  281. package/build/_modules/artifact-compiler/_enums/artifact-retry-class.type-enum.js +10 -10
  282. package/build/_modules/artifact-compiler/_models/artifact-compile.interface.d.ts +32 -32
  283. package/build/_modules/artifact-compiler/_models/artifact-compile.interface.js +2 -2
  284. package/build/_modules/artifact-compiler/artifact-compiler.control-service.d.ts +36 -36
  285. package/build/_modules/artifact-compiler/artifact-compiler.control-service.js +273 -273
  286. package/build/_modules/artifact-compiler/index.d.ts +5 -5
  287. package/build/_modules/artifact-compiler/index.js +11 -11
  288. package/build/_modules/assistant/_collections/ass-global-settings.const.d.ts +2 -2
  289. package/build/_modules/assistant/_collections/ass-global-settings.const.js +14 -14
  290. package/build/_modules/assistant/_collections/ass.util.d.ts +15 -15
  291. package/build/_modules/assistant/_collections/ass.util.js +42 -42
  292. package/build/_modules/assistant/_models/ass-global-settings.interface.d.ts +13 -13
  293. package/build/_modules/assistant/_models/ass-global-settings.interface.js +2 -2
  294. package/build/_modules/assistant/_services/ass-io.control-service.d.ts +19 -19
  295. package/build/_modules/assistant/_services/ass-io.control-service.js +57 -57
  296. package/build/_modules/assistant/_services/ass-main.control-service.d.ts +32 -32
  297. package/build/_modules/assistant/_services/ass-main.control-service.js +65 -65
  298. package/build/_modules/assistant/index.d.ts +6 -6
  299. package/build/_modules/assistant/index.js +18 -18
  300. package/build/_modules/bot/_collections/bot-default-commands.const.d.ts +2 -2
  301. package/build/_modules/bot/_collections/bot-default-commands.const.js +13 -13
  302. package/build/_modules/bot/_collections/bot-global-settings.const.d.ts +2 -2
  303. package/build/_modules/bot/_collections/bot-global-settings.const.js +31 -31
  304. package/build/_modules/bot/_models/bot-channel-wrapper.interface.d.ts +25 -25
  305. package/build/_modules/bot/_models/bot-channel-wrapper.interface.js +38 -38
  306. package/build/_modules/bot/_models/bot-command.interface.d.ts +7 -7
  307. package/build/_modules/bot/_models/bot-command.interface.js +2 -2
  308. package/build/_modules/bot/_models/bot-global-settings.interface.d.ts +85 -85
  309. package/build/_modules/bot/_models/bot-global-settings.interface.js +2 -2
  310. package/build/_modules/bot/_models/bot-last-mention-date.interface.d.ts +6 -6
  311. package/build/_modules/bot/_models/bot-last-mention-date.interface.js +2 -2
  312. package/build/_modules/bot/_models/bot-last-message-date.interface.d.ts +5 -5
  313. package/build/_modules/bot/_models/bot-last-message-date.interface.js +2 -2
  314. package/build/_modules/bot/_models/bot-message-wrapper.interface.d.ts +37 -37
  315. package/build/_modules/bot/_models/bot-message-wrapper.interface.js +54 -54
  316. package/build/_modules/bot/_models/bot-user-wrapper.interface.d.ts +23 -23
  317. package/build/_modules/bot/_models/bot-user-wrapper.interface.js +28 -28
  318. package/build/_modules/bot/_modules/discord-bot/_models/dib-platform.types.js +10 -10
  319. package/build/_modules/bot/_modules/discord-bot/_services/dib-messaging-provider.control-service.d.ts +69 -69
  320. package/build/_modules/bot/_modules/discord-bot/_services/dib-messaging-provider.control-service.js +497 -497
  321. package/build/_modules/bot/_modules/discord-bot/index.d.ts +1 -1
  322. package/build/_modules/bot/_modules/discord-bot/index.js +12 -12
  323. package/build/_modules/bot/_modules/dynamo-bot/_collections/dyb-operations.util.d.ts +16 -16
  324. package/build/_modules/bot/_modules/dynamo-bot/_collections/dyb-operations.util.js +42 -42
  325. package/build/_modules/bot/_modules/dynamo-bot/_models/dyb-platform.types.d.ts +9 -9
  326. package/build/_modules/bot/_modules/dynamo-bot/_models/dyb-platform.types.js +2 -2
  327. package/build/_modules/bot/_modules/dynamo-bot/_services/dyb-messaging-provider.control-service.d.ts +59 -59
  328. package/build/_modules/bot/_modules/dynamo-bot/_services/dyb-messaging-provider.control-service.js +349 -349
  329. package/build/_modules/bot/_modules/dynamo-bot/index.d.ts +3 -3
  330. package/build/_modules/bot/_modules/dynamo-bot/index.js +15 -15
  331. package/build/_modules/bot/_modules/slack-bot/_models/slb-platform.types.d.ts +6 -6
  332. package/build/_modules/bot/_modules/slack-bot/_models/slb-platform.types.js +2 -2
  333. package/build/_modules/bot/_modules/slack-bot/_services/slb-messaging-provider.control-service.d.ts +56 -56
  334. package/build/_modules/bot/_modules/slack-bot/_services/slb-messaging-provider.control-service.js +137 -137
  335. package/build/_modules/bot/_modules/slack-bot/index.d.ts +2 -2
  336. package/build/_modules/bot/_modules/slack-bot/index.js +12 -12
  337. package/build/_modules/bot/_modules/teams-bot/_models/teb-platform.types.d.ts +6 -6
  338. package/build/_modules/bot/_modules/teams-bot/_models/teb-platform.types.js +2 -2
  339. package/build/_modules/bot/_modules/teams-bot/_services/teb-messaging-provider.control-service.d.ts +56 -56
  340. package/build/_modules/bot/_modules/teams-bot/_services/teb-messaging-provider.control-service.js +137 -137
  341. package/build/_modules/bot/_modules/teams-bot/index.d.ts +2 -2
  342. package/build/_modules/bot/_modules/teams-bot/index.js +12 -12
  343. package/build/_modules/bot/_services/bot-commands.control-service.d.ts +12 -12
  344. package/build/_modules/bot/_services/bot-commands.control-service.js +117 -117
  345. package/build/_modules/bot/_services/bot-io.control-service.d.ts +23 -23
  346. package/build/_modules/bot/_services/bot-io.control-service.js +226 -226
  347. package/build/_modules/bot/_services/bot-main.control-service.d.ts +35 -35
  348. package/build/_modules/bot/_services/bot-main.control-service.js +195 -195
  349. package/build/_modules/bot/_services/bot-messaging-provider.service-base.d.ts +71 -71
  350. package/build/_modules/bot/_services/bot-messaging-provider.service-base.js +15 -15
  351. package/build/_modules/bot/_services/bot-routines.control-service.d.ts +13 -13
  352. package/build/_modules/bot/_services/bot-routines.control-service.js +59 -59
  353. package/build/_modules/bot/index.d.ts +17 -17
  354. package/build/_modules/bot/index.js +36 -36
  355. package/build/_modules/custom-data/custom-data.controller.d.ts +5 -5
  356. package/build/_modules/custom-data/custom-data.controller.js +56 -56
  357. package/build/_modules/custom-data/custom-data.data-service.d.ts +5 -5
  358. package/build/_modules/custom-data/custom-data.data-service.js +11 -11
  359. package/build/_modules/custom-data/get-custom-data-routing-module.util.d.ts +3 -3
  360. package/build/_modules/custom-data/get-custom-data-routing-module.util.js +16 -16
  361. package/build/_modules/custom-data/index.d.ts +4 -4
  362. package/build/_modules/custom-data/index.js +9 -9
  363. package/build/_modules/data-readers/_collections/dynts-sqlite-reader.util.d.ts +58 -58
  364. package/build/_modules/data-readers/_collections/dynts-sqlite-reader.util.js +168 -168
  365. package/build/_modules/data-readers/_models/interfaces/dynts-sqlite-reader.interface.d.ts +31 -31
  366. package/build/_modules/data-readers/_models/interfaces/dynts-sqlite-reader.interface.js +7 -7
  367. package/build/_modules/data-readers/index.d.ts +2 -2
  368. package/build/_modules/data-readers/index.js +10 -10
  369. package/build/_modules/defaults/_collections/default-endpoints.util.d.ts +248 -248
  370. package/build/_modules/defaults/_collections/default-endpoints.util.js +386 -386
  371. package/build/_modules/defaults/_models/default-user.data-model.d.ts +19 -19
  372. package/build/_modules/defaults/_models/default-user.data-model.js +72 -72
  373. package/build/_modules/defaults/_services/default-auth.service.d.ts +50 -50
  374. package/build/_modules/defaults/_services/default-auth.service.js +158 -158
  375. package/build/_modules/defaults/_services/default-socket-events.service.d.ts +23 -23
  376. package/build/_modules/defaults/_services/default-socket-events.service.js +60 -60
  377. package/build/_modules/defaults/_services/default-user.data-service.d.ts +24 -24
  378. package/build/_modules/defaults/_services/default-user.data-service.js +87 -87
  379. package/build/_modules/defaults/index.d.ts +5 -5
  380. package/build/_modules/defaults/index.js +17 -17
  381. package/build/_modules/discord-assistant/_collections/dias-global-settings.const.d.ts +2 -2
  382. package/build/_modules/discord-assistant/_collections/dias-global-settings.const.js +16 -16
  383. package/build/_modules/discord-assistant/_collections/dias.util.d.ts +31 -31
  384. package/build/_modules/discord-assistant/_collections/dias.util.js +85 -85
  385. package/build/_modules/discord-assistant/_models/dias-global-settings.interface.d.ts +17 -17
  386. package/build/_modules/discord-assistant/_models/dias-global-settings.interface.js +2 -2
  387. package/build/_modules/discord-assistant/_models/dias-knowledge.data-model.d.ts +8 -8
  388. package/build/_modules/discord-assistant/_models/dias-knowledge.data-model.js +46 -46
  389. package/build/_modules/discord-assistant/_services/dias-chunk.data-service.d.ts +17 -17
  390. package/build/_modules/discord-assistant/_services/dias-chunk.data-service.js +123 -123
  391. package/build/_modules/discord-assistant/_services/dias-io.control-service.d.ts +10 -10
  392. package/build/_modules/discord-assistant/_services/dias-io.control-service.js +49 -49
  393. package/build/_modules/discord-assistant/_services/dias-main.control-service.d.ts +3 -3
  394. package/build/_modules/discord-assistant/_services/dias-main.control-service.js +7 -7
  395. package/build/_modules/discord-assistant/_services/dias.service-base.d.ts +18 -18
  396. package/build/_modules/discord-assistant/_services/dias.service-base.js +46 -46
  397. package/build/_modules/discord-assistant/index.d.ts +11 -11
  398. package/build/_modules/discord-assistant/index.js +24 -24
  399. package/build/_modules/discord-assistant-voiced/_services/dias-discord-bot.control-service.d.ts +3 -3
  400. package/build/_modules/discord-assistant-voiced/_services/dias-discord-bot.control-service.js +7 -7
  401. package/build/_modules/discord-assistant-voiced/index.d.ts +2 -2
  402. package/build/_modules/discord-assistant-voiced/index.js +28 -28
  403. package/build/_modules/discord-bot/_collections/dibo-default-commands.const.d.ts +2 -2
  404. package/build/_modules/discord-bot/_collections/dibo-default-commands.const.js +12 -12
  405. package/build/_modules/discord-bot/_collections/dibo-global-settings.conts.d.ts +2 -2
  406. package/build/_modules/discord-bot/_collections/dibo-global-settings.conts.js +43 -43
  407. package/build/_modules/discord-bot/_collections/dibo-operations.util.d.ts +22 -22
  408. package/build/_modules/discord-bot/_collections/dibo-operations.util.js +275 -275
  409. package/build/_modules/discord-bot/_models/dibo-command.interface.d.ts +7 -7
  410. package/build/_modules/discord-bot/_models/dibo-command.interface.js +2 -2
  411. package/build/_modules/discord-bot/_models/dibo-global-settings.interface.d.ts +87 -87
  412. package/build/_modules/discord-bot/_models/dibo-global-settings.interface.js +2 -2
  413. package/build/_modules/discord-bot/_models/dibo-last-mention-date.inteface.d.ts +6 -6
  414. package/build/_modules/discord-bot/_models/dibo-last-mention-date.inteface.js +2 -2
  415. package/build/_modules/discord-bot/_models/dibo-last-message-date.interface.d.ts +5 -5
  416. package/build/_modules/discord-bot/_models/dibo-last-message-date.interface.js +2 -2
  417. package/build/_modules/discord-bot/_services/dibo-commands.control-service.d.ts +11 -11
  418. package/build/_modules/discord-bot/_services/dibo-commands.control-service.js +109 -109
  419. package/build/_modules/discord-bot/_services/dibo-io.control-service.d.ts +21 -21
  420. package/build/_modules/discord-bot/_services/dibo-io.control-service.js +218 -218
  421. package/build/_modules/discord-bot/_services/dibo-main.control-service.d.ts +89 -89
  422. package/build/_modules/discord-bot/_services/dibo-main.control-service.js +363 -363
  423. package/build/_modules/discord-bot/_services/dibo-routines.control-service.d.ts +13 -13
  424. package/build/_modules/discord-bot/_services/dibo-routines.control-service.js +73 -73
  425. package/build/_modules/discord-bot/index.d.ts +11 -11
  426. package/build/_modules/discord-bot/index.js +30 -30
  427. package/build/_modules/local-vector-search/_enums/lvs-search-mode.enum.d.ts +34 -34
  428. package/build/_modules/local-vector-search/_enums/lvs-search-mode.enum.js +38 -38
  429. package/build/_modules/local-vector-search/_models/data-models/lvs-vector-persist.data-model.d.ts +35 -35
  430. package/build/_modules/local-vector-search/_models/data-models/lvs-vector-persist.data-model.js +53 -53
  431. package/build/_modules/local-vector-search/_models/lvs-search-result.interface.d.ts +16 -16
  432. package/build/_modules/local-vector-search/_models/lvs-search-result.interface.js +2 -2
  433. package/build/_modules/local-vector-search/_services/lvs-bm25.util.d.ts +88 -88
  434. package/build/_modules/local-vector-search/_services/lvs-bm25.util.js +189 -189
  435. package/build/_modules/local-vector-search/_services/lvs-doc-chunk-data.service.d.ts +26 -26
  436. package/build/_modules/local-vector-search/_services/lvs-doc-chunk-data.service.js +197 -197
  437. package/build/_modules/local-vector-search/_services/lvs-local-vector-search.data-service.d.ts +145 -145
  438. package/build/_modules/local-vector-search/_services/lvs-local-vector-search.data-service.js +294 -294
  439. package/build/_modules/local-vector-search/_services/lvs-persistent-vector-pool.control-service.d.ts +74 -74
  440. package/build/_modules/local-vector-search/_services/lvs-persistent-vector-pool.control-service.js +152 -152
  441. package/build/_modules/local-vector-search/_services/lvs-vector-persist.data-service.d.ts +51 -51
  442. package/build/_modules/local-vector-search/_services/lvs-vector-persist.data-service.js +83 -83
  443. package/build/_modules/local-vector-search/_services/lvs-vector-pool.control-service.d.ts +99 -99
  444. package/build/_modules/local-vector-search/_services/lvs-vector-pool.control-service.js +276 -276
  445. package/build/_modules/local-vector-search/index.d.ts +8 -8
  446. package/build/_modules/local-vector-search/index.js +15 -15
  447. package/build/_modules/logs/_models/file-log-entry.interface.d.ts +13 -13
  448. package/build/_modules/logs/_models/file-log-entry.interface.js +2 -2
  449. package/build/_modules/logs/_models/file-log-read-result.interface.d.ts +35 -35
  450. package/build/_modules/logs/_models/file-log-read-result.interface.js +2 -2
  451. package/build/_modules/logs/file-log.service.d.ts +132 -132
  452. package/build/_modules/logs/file-log.service.js +444 -444
  453. package/build/_modules/logs/file-logs.controller.d.ts +40 -40
  454. package/build/_modules/logs/file-logs.controller.js +138 -138
  455. package/build/_modules/logs/get-file-logs-routing-module.util.d.ts +31 -31
  456. package/build/_modules/logs/get-file-logs-routing-module.util.js +37 -37
  457. package/build/_modules/logs/get-logs-routing-module.util.d.ts +18 -18
  458. package/build/_modules/logs/get-logs-routing-module.util.js +31 -31
  459. package/build/_modules/logs/index.d.ts +8 -8
  460. package/build/_modules/logs/index.js +15 -15
  461. package/build/_modules/logs/log-buffer.service.d.ts +37 -37
  462. package/build/_modules/logs/log-buffer.service.js +96 -96
  463. package/build/_modules/logs/logs.controller.d.ts +26 -26
  464. package/build/_modules/logs/logs.controller.js +89 -89
  465. package/build/_modules/logs/logs.service.d.ts +39 -39
  466. package/build/_modules/logs/logs.service.js +96 -96
  467. package/build/_modules/mcp/_models/interfaces/dynts-mcp.interface.d.ts +108 -108
  468. package/build/_modules/mcp/_models/interfaces/dynts-mcp.interface.js +13 -13
  469. package/build/_modules/mcp/_services/dynts-mcp-server.service-base.d.ts +70 -70
  470. package/build/_modules/mcp/_services/dynts-mcp-server.service-base.js +98 -98
  471. package/build/_modules/mcp/_services/dynts-mcp.adapter.d.ts +56 -56
  472. package/build/_modules/mcp/_services/dynts-mcp.adapter.js +138 -138
  473. package/build/_modules/mcp/index.d.ts +3 -3
  474. package/build/_modules/mcp/index.js +12 -12
  475. package/build/_modules/messaging/_collections/get-messaging-routing-module.util.d.ts +7 -7
  476. package/build/_modules/messaging/_collections/get-messaging-routing-module.util.js +20 -20
  477. package/build/_modules/messaging/_collections/msg-global-settings.const.d.ts +5 -5
  478. package/build/_modules/messaging/_collections/msg-global-settings.const.js +22 -22
  479. package/build/_modules/messaging/_collections/msg.util.d.ts +24 -24
  480. package/build/_modules/messaging/_collections/msg.util.js +62 -62
  481. package/build/_modules/messaging/_models/msg-global-settings.interface.d.ts +28 -28
  482. package/build/_modules/messaging/_models/msg-global-settings.interface.js +2 -2
  483. package/build/_modules/messaging/_services/msg-conversation.data-service.d.ts +28 -28
  484. package/build/_modules/messaging/_services/msg-conversation.data-service.js +109 -109
  485. package/build/_modules/messaging/_services/msg-events.service.d.ts +61 -61
  486. package/build/_modules/messaging/_services/msg-events.service.js +203 -203
  487. package/build/_modules/messaging/_services/msg-integration.control-service.js +180 -180
  488. package/build/_modules/messaging/_services/msg-main.control-service.d.ts +62 -62
  489. package/build/_modules/messaging/_services/msg-main.control-service.js +428 -428
  490. package/build/_modules/messaging/_services/msg-message.data-service.d.ts +28 -28
  491. package/build/_modules/messaging/_services/msg-message.data-service.js +103 -103
  492. package/build/_modules/messaging/_services/msg.controller.d.ts +12 -12
  493. package/build/_modules/messaging/_services/msg.controller.js +256 -256
  494. package/build/_modules/messaging/index.d.ts +10 -10
  495. package/build/_modules/messaging/index.js +27 -27
  496. package/build/_modules/mock/app-extended-server.mock.d.ts +41 -41
  497. package/build/_modules/mock/app-extended-server.mock.js +169 -169
  498. package/build/_modules/mock/app-integration-test.mock.d.ts +19 -19
  499. package/build/_modules/mock/app-integration-test.mock.js +45 -45
  500. package/build/_modules/mock/app-params.mock.d.ts +2 -2
  501. package/build/_modules/mock/app-params.mock.js +9 -9
  502. package/build/_modules/mock/app-server.mock.d.ts +41 -41
  503. package/build/_modules/mock/app-server.mock.js +148 -148
  504. package/build/_modules/mock/auth-service.mock.d.ts +10 -10
  505. package/build/_modules/mock/auth-service.mock.js +19 -19
  506. package/build/_modules/mock/controller.mock.d.ts +5 -5
  507. package/build/_modules/mock/controller.mock.js +14 -14
  508. package/build/_modules/mock/data-model.mock.d.ts +26 -26
  509. package/build/_modules/mock/data-model.mock.js +72 -72
  510. package/build/_modules/mock/email-service-collection.mock.d.ts +7 -7
  511. package/build/_modules/mock/email-service-collection.mock.js +12 -12
  512. package/build/_modules/mock/email-service.mock.d.ts +4 -4
  513. package/build/_modules/mock/email-service.mock.js +20 -20
  514. package/build/_modules/mock/endpoint.mock.d.ts +8 -8
  515. package/build/_modules/mock/endpoint.mock.js +79 -79
  516. package/build/_modules/mock/socket-client.mock.d.ts +9 -9
  517. package/build/_modules/mock/socket-client.mock.js +38 -38
  518. package/build/_modules/mock/socket-server.mock.d.ts +15 -15
  519. package/build/_modules/mock/socket-server.mock.js +32 -32
  520. package/build/_modules/oauth2/_routes/oauth2.controller.d.ts +16 -16
  521. package/build/_modules/oauth2/_routes/oauth2.controller.js +96 -96
  522. package/build/_modules/oauth2/_services/oauth2.auth-service.d.ts +30 -30
  523. package/build/_modules/oauth2/_services/oauth2.auth-service.js +215 -215
  524. package/build/_modules/oauth2/_services/oauth2.control-service.d.ts +132 -132
  525. package/build/_modules/oauth2/_services/oauth2.control-service.js +576 -576
  526. package/build/_modules/oauth2/index.d.ts +3 -3
  527. package/build/_modules/oauth2/index.js +14 -14
  528. package/build/_modules/privacy-lifecycle/_enums/privacy-consent-decision.type-enum.d.ts +5 -5
  529. package/build/_modules/privacy-lifecycle/_enums/privacy-consent-decision.type-enum.js +9 -9
  530. package/build/_modules/privacy-lifecycle/_enums/privacy-contributor-action.type-enum.d.ts +10 -10
  531. package/build/_modules/privacy-lifecycle/_enums/privacy-contributor-action.type-enum.js +14 -14
  532. package/build/_modules/privacy-lifecycle/_enums/privacy-contributor-outcome.type-enum.d.ts +7 -7
  533. package/build/_modules/privacy-lifecycle/_enums/privacy-contributor-outcome.type-enum.js +11 -11
  534. package/build/_modules/privacy-lifecycle/_enums/privacy-request-state.type-enum.d.ts +15 -15
  535. package/build/_modules/privacy-lifecycle/_enums/privacy-request-state.type-enum.js +19 -19
  536. package/build/_modules/privacy-lifecycle/_enums/privacy-request.type-enum.d.ts +9 -9
  537. package/build/_modules/privacy-lifecycle/_enums/privacy-request.type-enum.js +13 -13
  538. package/build/_modules/privacy-lifecycle/_models/privacy-consent-input.interface.d.ts +11 -11
  539. package/build/_modules/privacy-lifecycle/_models/privacy-consent-input.interface.js +2 -2
  540. package/build/_modules/privacy-lifecycle/_models/privacy-consent-persistence-result.interface.d.ts +6 -6
  541. package/build/_modules/privacy-lifecycle/_models/privacy-consent-persistence-result.interface.js +2 -2
  542. package/build/_modules/privacy-lifecycle/_models/privacy-consent-record.interface.d.ts +14 -14
  543. package/build/_modules/privacy-lifecycle/_models/privacy-consent-record.interface.js +2 -2
  544. package/build/_modules/privacy-lifecycle/_models/privacy-consent-result.interface.d.ts +6 -6
  545. package/build/_modules/privacy-lifecycle/_models/privacy-consent-result.interface.js +2 -2
  546. package/build/_modules/privacy-lifecycle/_models/privacy-consent-view.interface.d.ts +12 -12
  547. package/build/_modules/privacy-lifecycle/_models/privacy-consent-view.interface.js +2 -2
  548. package/build/_modules/privacy-lifecycle/_models/privacy-contributor-context.interface.d.ts +8 -8
  549. package/build/_modules/privacy-lifecycle/_models/privacy-contributor-context.interface.js +2 -2
  550. package/build/_modules/privacy-lifecycle/_models/privacy-contributor-outcome.interface.d.ts +13 -13
  551. package/build/_modules/privacy-lifecycle/_models/privacy-contributor-outcome.interface.js +2 -2
  552. package/build/_modules/privacy-lifecycle/_models/privacy-contributor-plan.interface.d.ts +7 -7
  553. package/build/_modules/privacy-lifecycle/_models/privacy-contributor-plan.interface.js +2 -2
  554. package/build/_modules/privacy-lifecycle/_models/privacy-contributor.interface.d.ts +10 -10
  555. package/build/_modules/privacy-lifecycle/_models/privacy-contributor.interface.js +2 -2
  556. package/build/_modules/privacy-lifecycle/_models/privacy-ledger-adapter.interface.d.ts +12 -12
  557. package/build/_modules/privacy-lifecycle/_models/privacy-ledger-adapter.interface.js +2 -2
  558. package/build/_modules/privacy-lifecycle/_models/privacy-ledger-result.interface.d.ts +8 -8
  559. package/build/_modules/privacy-lifecycle/_models/privacy-ledger-result.interface.js +2 -2
  560. package/build/_modules/privacy-lifecycle/_models/privacy-ledger-settings.interface.d.ts +6 -6
  561. package/build/_modules/privacy-lifecycle/_models/privacy-ledger-settings.interface.js +2 -2
  562. package/build/_modules/privacy-lifecycle/_models/privacy-legal-acceptance-input.interface.d.ts +10 -10
  563. package/build/_modules/privacy-lifecycle/_models/privacy-legal-acceptance-input.interface.js +2 -2
  564. package/build/_modules/privacy-lifecycle/_models/privacy-legal-acceptance-persistence-result.interface.d.ts +6 -6
  565. package/build/_modules/privacy-lifecycle/_models/privacy-legal-acceptance-persistence-result.interface.js +2 -2
  566. package/build/_modules/privacy-lifecycle/_models/privacy-legal-acceptance-result.interface.d.ts +6 -6
  567. package/build/_modules/privacy-lifecycle/_models/privacy-legal-acceptance-result.interface.js +2 -2
  568. package/build/_modules/privacy-lifecycle/_models/privacy-legal-acceptance-view.interface.d.ts +11 -11
  569. package/build/_modules/privacy-lifecycle/_models/privacy-legal-acceptance-view.interface.js +2 -2
  570. package/build/_modules/privacy-lifecycle/_models/privacy-legal-acceptance.interface.d.ts +13 -13
  571. package/build/_modules/privacy-lifecycle/_models/privacy-legal-acceptance.interface.js +2 -2
  572. package/build/_modules/privacy-lifecycle/_models/privacy-lifecycle-adapter.interface.d.ts +14 -14
  573. package/build/_modules/privacy-lifecycle/_models/privacy-lifecycle-adapter.interface.js +2 -2
  574. package/build/_modules/privacy-lifecycle/_models/privacy-lifecycle-settings.interface.d.ts +8 -8
  575. package/build/_modules/privacy-lifecycle/_models/privacy-lifecycle-settings.interface.js +2 -2
  576. package/build/_modules/privacy-lifecycle/_models/privacy-request-create-result.interface.d.ts +6 -6
  577. package/build/_modules/privacy-lifecycle/_models/privacy-request-create-result.interface.js +2 -2
  578. package/build/_modules/privacy-lifecycle/_models/privacy-request-open.interface.d.ts +9 -9
  579. package/build/_modules/privacy-lifecycle/_models/privacy-request-open.interface.js +2 -2
  580. package/build/_modules/privacy-lifecycle/_models/privacy-request-persistence-create-result.interface.d.ts +6 -6
  581. package/build/_modules/privacy-lifecycle/_models/privacy-request-persistence-create-result.interface.js +2 -2
  582. package/build/_modules/privacy-lifecycle/_models/privacy-request-record.interface.d.ts +20 -20
  583. package/build/_modules/privacy-lifecycle/_models/privacy-request-record.interface.js +2 -2
  584. package/build/_modules/privacy-lifecycle/_models/privacy-request-result.interface.d.ts +7 -7
  585. package/build/_modules/privacy-lifecycle/_models/privacy-request-result.interface.js +2 -2
  586. package/build/_modules/privacy-lifecycle/_models/privacy-request-view.interface.d.ts +19 -19
  587. package/build/_modules/privacy-lifecycle/_models/privacy-request-view.interface.js +2 -2
  588. package/build/_modules/privacy-lifecycle/index.d.ts +32 -32
  589. package/build/_modules/privacy-lifecycle/index.js +17 -17
  590. package/build/_modules/privacy-lifecycle/privacy-ledger.control-service.d.ts +27 -27
  591. package/build/_modules/privacy-lifecycle/privacy-ledger.control-service.js +167 -167
  592. package/build/_modules/privacy-lifecycle/privacy-lifecycle.control-service.d.ts +41 -41
  593. package/build/_modules/privacy-lifecycle/privacy-lifecycle.control-service.js +363 -363
  594. package/build/_modules/rate-limit/_enums/rate-limit-store-kind.type-enum.d.ts +5 -5
  595. package/build/_modules/rate-limit/_enums/rate-limit-store-kind.type-enum.js +9 -9
  596. package/build/_modules/rate-limit/_models/rate-limit-config.interface.d.ts +70 -70
  597. package/build/_modules/rate-limit/_models/rate-limit-config.interface.js +2 -2
  598. package/build/_modules/rate-limit/_models/rate-limit-consume-request.interface.d.ts +8 -8
  599. package/build/_modules/rate-limit/_models/rate-limit-consume-request.interface.js +2 -2
  600. package/build/_modules/rate-limit/_models/rate-limit-consume-result.interface.d.ts +6 -6
  601. package/build/_modules/rate-limit/_models/rate-limit-consume-result.interface.js +2 -2
  602. package/build/_modules/rate-limit/_models/rate-limit-policy.interface.d.ts +15 -15
  603. package/build/_modules/rate-limit/_models/rate-limit-policy.interface.js +2 -2
  604. package/build/_modules/rate-limit/_models/rate-limit-store.interface.d.ts +8 -8
  605. package/build/_modules/rate-limit/_models/rate-limit-store.interface.js +2 -2
  606. package/build/_modules/rate-limit/index.d.ts +8 -8
  607. package/build/_modules/rate-limit/index.js +9 -9
  608. package/build/_modules/rate-limit/rate-limit-in-memory.store.d.ts +18 -18
  609. package/build/_modules/rate-limit/rate-limit-in-memory.store.js +70 -70
  610. package/build/_modules/rate-limit/rate-limit.middleware.d.ts +68 -68
  611. package/build/_modules/rate-limit/rate-limit.middleware.js +378 -378
  612. package/build/_modules/scheduler/_models/scheduler-job.interface.d.ts +33 -33
  613. package/build/_modules/scheduler/_models/scheduler-job.interface.js +2 -2
  614. package/build/_modules/scheduler/get-scheduler-routing-module.util.d.ts +17 -17
  615. package/build/_modules/scheduler/get-scheduler-routing-module.util.js +30 -30
  616. package/build/_modules/scheduler/index.d.ts +4 -4
  617. package/build/_modules/scheduler/index.js +9 -9
  618. package/build/_modules/scheduler/scheduler.controller.d.ts +24 -24
  619. package/build/_modules/scheduler/scheduler.controller.js +53 -53
  620. package/build/_modules/scheduler/scheduler.service.d.ts +53 -53
  621. package/build/_modules/scheduler/scheduler.service.js +163 -163
  622. package/build/_modules/scoped-config/_enums/dynts-scoped-config-level.enum.d.ts +18 -18
  623. package/build/_modules/scoped-config/_enums/dynts-scoped-config-level.enum.js +22 -22
  624. package/build/_modules/scoped-config/_models/data-models/dynts-scoped-config.data-model.d.ts +43 -43
  625. package/build/_modules/scoped-config/_models/data-models/dynts-scoped-config.data-model.js +67 -67
  626. package/build/_modules/scoped-config/_models/interfaces/dynts-scoped-config.interface.d.ts +88 -88
  627. package/build/_modules/scoped-config/_models/interfaces/dynts-scoped-config.interface.js +11 -11
  628. package/build/_modules/scoped-config/_services/dynts-scoped-config.control-service.d.ts +83 -83
  629. package/build/_modules/scoped-config/_services/dynts-scoped-config.control-service.js +219 -219
  630. package/build/_modules/scoped-config/_services/dynts-scoped-config.data-service.d.ts +53 -53
  631. package/build/_modules/scoped-config/_services/dynts-scoped-config.data-service.js +75 -75
  632. package/build/_modules/scoped-config/index.d.ts +5 -5
  633. package/build/_modules/scoped-config/index.js +14 -14
  634. package/build/_modules/server/errors/errors.control-service.d.ts +21 -21
  635. package/build/_modules/server/errors/errors.control-service.js +10 -10
  636. package/build/_modules/server/errors/errors.controller.d.ts +144 -144
  637. package/build/_modules/server/errors/errors.controller.js +404 -404
  638. package/build/_modules/server/errors/errors.data-service.d.ts +70 -70
  639. package/build/_modules/server/errors/errors.data-service.js +677 -677
  640. package/build/_modules/server/index.d.ts +15 -15
  641. package/build/_modules/server/index.js +35 -35
  642. package/build/_modules/server/safe-diagnostic/safe-diagnostic-cause.type-enum.d.ts +8 -8
  643. package/build/_modules/server/safe-diagnostic/safe-diagnostic-cause.type-enum.js +12 -12
  644. package/build/_modules/server/safe-diagnostic/safe-diagnostic-stage.type-enum.d.ts +20 -19
  645. package/build/_modules/server/safe-diagnostic/safe-diagnostic-stage.type-enum.d.ts.map +1 -1
  646. package/build/_modules/server/safe-diagnostic/safe-diagnostic-stage.type-enum.js +24 -23
  647. package/build/_modules/server/safe-diagnostic/safe-diagnostic-stage.type-enum.js.map +1 -1
  648. package/build/_modules/server/safe-diagnostic/safe-diagnostic.control-service.d.ts +18 -18
  649. package/build/_modules/server/safe-diagnostic/safe-diagnostic.control-service.js +82 -82
  650. package/build/_modules/server/safe-diagnostic/safe-diagnostic.interface.d.ts +18 -18
  651. package/build/_modules/server/safe-diagnostic/safe-diagnostic.interface.js +2 -2
  652. package/build/_modules/server/server-status/db-readiness-probe-code.type-enum.d.ts +13 -13
  653. package/build/_modules/server/server-status/db-readiness-probe-code.type-enum.js +17 -17
  654. package/build/_modules/server/server-status/db-readiness-probe-stage.type-enum.d.ts +7 -7
  655. package/build/_modules/server/server-status/db-readiness-probe-stage.type-enum.js +11 -11
  656. package/build/_modules/server/server-status/db-readiness-probe.control-service.d.ts +13 -13
  657. package/build/_modules/server/server-status/db-readiness-probe.control-service.js +125 -125
  658. package/build/_modules/server/server-status/db-readiness-probe.interface.d.ts +17 -17
  659. package/build/_modules/server/server-status/db-readiness-probe.interface.js +2 -2
  660. package/build/_modules/server/server-status/server-status-snapshot.control-service.d.ts +4 -4
  661. package/build/_modules/server/server-status/server-status-snapshot.control-service.js +7 -7
  662. package/build/_modules/server/server-status/server-status-snapshot.data-service.d.ts +6 -6
  663. package/build/_modules/server/server-status/server-status-snapshot.data-service.js +22 -22
  664. package/build/_modules/server/server-status/server-status.control-service.d.ts +111 -111
  665. package/build/_modules/server/server-status/server-status.control-service.js +302 -302
  666. package/build/_modules/server/server-status/server-status.controller.d.ts +92 -92
  667. package/build/_modules/server/server-status/server-status.controller.js +253 -253
  668. package/build/_modules/socket/_enums/socket-security.enum.d.ts +10 -10
  669. package/build/_modules/socket/_enums/socket-security.enum.js +14 -14
  670. package/build/_modules/socket/_models/socket-client-service-params.control-model.d.ts +8 -8
  671. package/build/_modules/socket/_models/socket-client-service-params.control-model.js +16 -16
  672. package/build/_modules/socket/_models/socket-presence.control-model.d.ts +25 -25
  673. package/build/_modules/socket/_models/socket-presence.control-model.js +140 -140
  674. package/build/_modules/socket/_models/socket-server-service-params.control-model.d.ts +22 -22
  675. package/build/_modules/socket/_models/socket-server-service-params.control-model.js +31 -31
  676. package/build/_modules/socket/_services/socket-client.service.d.ts +37 -37
  677. package/build/_modules/socket/_services/socket-client.service.js +196 -196
  678. package/build/_modules/socket/_services/socket-server.service.d.ts +98 -98
  679. package/build/_modules/socket/_services/socket-server.service.js +673 -673
  680. package/build/_modules/socket/app-extended.server.d.ts +145 -145
  681. package/build/_modules/socket/app-extended.server.js +521 -521
  682. package/build/_modules/socket/index.d.ts +8 -8
  683. package/build/_modules/socket/index.js +35 -35
  684. package/build/_modules/test/get-test-routing-module.util.d.ts +3 -3
  685. package/build/_modules/test/get-test-routing-module.util.js +16 -16
  686. package/build/_modules/test/index.d.ts +3 -3
  687. package/build/_modules/test/index.js +11 -11
  688. package/build/_modules/test/test.controller.d.ts +5 -5
  689. package/build/_modules/test/test.controller.js +103 -103
  690. package/build/_modules/test-email-sink/_collections/test-email-pattern.const.d.ts +10 -10
  691. package/build/_modules/test-email-sink/_collections/test-email-pattern.const.js +13 -13
  692. package/build/_modules/test-email-sink/_models/data-models/dynts-sent-test-mail.data-model.d.ts +21 -21
  693. package/build/_modules/test-email-sink/_models/data-models/dynts-sent-test-mail.data-model.js +38 -38
  694. package/build/_modules/test-email-sink/_services/dynts-test-email-sink.service.d.ts +49 -49
  695. package/build/_modules/test-email-sink/_services/dynts-test-email-sink.service.js +117 -117
  696. package/build/_modules/test-email-sink/get-sent-mail-routing-module.util.d.ts +14 -14
  697. package/build/_modules/test-email-sink/get-sent-mail-routing-module.util.js +26 -26
  698. package/build/_modules/test-email-sink/index.d.ts +11 -11
  699. package/build/_modules/test-email-sink/index.js +14 -14
  700. package/build/_modules/test-email-sink/test-email-sink.controller.d.ts +23 -23
  701. package/build/_modules/test-email-sink/test-email-sink.controller.js +66 -66
  702. package/build/_modules/usage/get-usage-routing-module.util.d.ts +3 -3
  703. package/build/_modules/usage/get-usage-routing-module.util.js +16 -16
  704. package/build/_modules/usage/index.d.ts +4 -4
  705. package/build/_modules/usage/index.js +13 -13
  706. package/build/_modules/usage/usage.controller.d.ts +6 -6
  707. package/build/_modules/usage/usage.controller.js +105 -105
  708. package/build/_modules/usage/usage.data-service.d.ts +17 -17
  709. package/build/_modules/usage/usage.data-service.js +135 -135
  710. package/build/_services/base/api.service-base.d.ts +9 -9
  711. package/build/_services/base/api.service-base.js +46 -46
  712. package/build/_services/base/archive-data.service.d.ts +25 -25
  713. package/build/_services/base/archive-data.service.js +151 -151
  714. package/build/_services/base/data.service.d.ts +402 -402
  715. package/build/_services/base/data.service.js +2131 -2131
  716. package/build/_services/base/db.service.d.ts +424 -424
  717. package/build/_services/base/db.service.js +1356 -1356
  718. package/build/_services/base/singleton.service-base.d.ts +8 -8
  719. package/build/_services/base/singleton.service-base.js +21 -21
  720. package/build/_services/base/singleton.service.d.ts +11 -11
  721. package/build/_services/base/singleton.service.js +31 -31
  722. package/build/_services/core/api.service.d.ts +45 -45
  723. package/build/_services/core/api.service.js +456 -456
  724. package/build/_services/core/auth.service.d.ts +129 -129
  725. package/build/_services/core/auth.service.js +59 -59
  726. package/build/_services/core/collection-growth-monitor.service.d.ts +76 -76
  727. package/build/_services/core/collection-growth-monitor.service.js +165 -165
  728. package/build/_services/core/db-stats.service.d.ts +33 -33
  729. package/build/_services/core/db-stats.service.js +64 -64
  730. package/build/_services/core/diagnostics.service.d.ts +42 -42
  731. package/build/_services/core/diagnostics.service.js +121 -121
  732. package/build/_services/core/email.service.d.ts +77 -77
  733. package/build/_services/core/email.service.js +503 -503
  734. package/build/_services/core/event-loop-diag.service.d.ts +49 -49
  735. package/build/_services/core/event-loop-diag.service.js +106 -106
  736. package/build/_services/core/global.service.d.ts +83 -83
  737. package/build/_services/core/global.service.js +386 -386
  738. package/build/_services/core/memory-guard.service.d.ts +166 -166
  739. package/build/_services/core/memory-guard.service.js +369 -369
  740. package/build/_services/core/migration-runner.service.d.ts +39 -39
  741. package/build/_services/core/migration-runner.service.js +74 -74
  742. package/build/_services/core/mongo-transaction.control-service.d.ts +18 -18
  743. package/build/_services/core/mongo-transaction.control-service.js +94 -94
  744. package/build/_services/core/request-hunter.service.d.ts +73 -73
  745. package/build/_services/core/request-hunter.service.js +122 -122
  746. package/build/_services/core/service-collection.service.d.ts +4 -4
  747. package/build/_services/core/service-collection.service.js +7 -7
  748. package/build/_services/route/controller.service.d.ts +124 -124
  749. package/build/_services/route/controller.service.js +95 -95
  750. package/build/_services/route/routing-module.service.d.ts +80 -80
  751. package/build/_services/route/routing-module.service.js +250 -250
  752. package/build/_services/server/app.server.d.ts +429 -429
  753. package/build/_services/server/app.server.js +1226 -1226
  754. package/build/_services/shared.static-service.d.ts +43 -43
  755. package/build/_services/shared.static-service.js +92 -92
  756. package/build/index.d.ts +63 -63
  757. package/build/index.js +101 -101
  758. package/package.json +1 -1
  759. package/src/_models/control-models/endpoint-params.control-model.spec.ts +102 -17
  760. package/src/_models/control-models/endpoint-params.control-model.ts +131 -220
  761. package/src/_modules/server/safe-diagnostic/safe-diagnostic-stage.type-enum.ts +3 -2
  762. package/src/_services/shared.static-service.spec.ts +57 -57
  763. package/src/_services/shared.static-service.ts +48 -48
@@ -1,364 +1,364 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.DyNTS_PrivacyLifecycle_ControlService = void 0;
4
- const crypto_1 = require("crypto");
5
- const fsm_dynamo_1 = require("@futdevpro/fsm-dynamo");
6
- const global_settings_const_1 = require("../../_collections/global-settings.const");
7
- const privacy_contributor_action_type_enum_1 = require("./_enums/privacy-contributor-action.type-enum");
8
- const privacy_contributor_outcome_type_enum_1 = require("./_enums/privacy-contributor-outcome.type-enum");
9
- const privacy_request_state_type_enum_1 = require("./_enums/privacy-request-state.type-enum");
10
- const privacy_request_type_enum_1 = require("./_enums/privacy-request.type-enum");
11
- /** Coordinates identity-gated, resumable data-subject requests across product-owned data contributors. */
12
- class DyNTS_PrivacyLifecycle_ControlService {
13
- adapter;
14
- contributors;
15
- clock;
16
- /** Creates an orchestrator with a stable contributor registry. */
17
- constructor(set) {
18
- this.adapter = set.adapter;
19
- this.contributors = [...set.contributors]
20
- .sort((first, second) => (first.contributorId.localeCompare(second.contributorId)));
21
- this.clock = set.clock ?? (() => new Date());
22
- this.validateSettings();
23
- }
24
- /** Opens or safely replays a subject-scoped request without persisting the raw idempotency key. */
25
- async openRequest(set) {
26
- if (!this.isBoundedText(set.subjectId, 256)
27
- || !this.isBoundedText(set.organizationId, 256)
28
- || !Object.values(privacy_request_type_enum_1.DyNTS_PrivacyRequest_Type).includes(set.type)) {
29
- throw this.buildError(400, 'REQUEST_INVALID', 'The privacy request is invalid.');
30
- }
31
- if (!this.isBoundedText(set.idempotencyKey, 256)
32
- || !this.isFutureDate(set.deadlineAt)) {
33
- throw this.buildError(400, 'IDEMPOTENCY_KEY_INVALID', 'The privacy request key is invalid.');
34
- }
35
- const createdAt = this.clock().toISOString();
36
- const request = {
37
- requestId: (0, crypto_1.randomUUID)(),
38
- subjectId: set.subjectId,
39
- organizationId: set.organizationId,
40
- type: set.type,
41
- state: privacy_request_state_type_enum_1.DyNTS_PrivacyRequestState_Type.received,
42
- idempotencyHash: this.hashIdempotency(set),
43
- revision: 0,
44
- createdAt: createdAt,
45
- deadlineAt: set.deadlineAt,
46
- identityVerifiedAt: '',
47
- scopedAt: '',
48
- plannedAt: '',
49
- executionStartedAt: '',
50
- verifyingStartedAt: '',
51
- completedAt: '',
52
- };
53
- const result = await this.adapter.createOrGetRequest(request);
54
- if (result.request.idempotencyHash !== request.idempotencyHash
55
- || result.request.subjectId !== request.subjectId
56
- || result.request.organizationId !== request.organizationId
57
- || result.request.type !== request.type) {
58
- throw this.buildError(409, 'IDEMPOTENCY_CONFLICT', 'The idempotency key belongs to another request.');
59
- }
60
- return { request: this.toRequestView(result.request), created: result.created };
61
- }
62
- /** Marks request identity verified after the application has completed its security challenge. */
63
- async verifyIdentity(requestId, subjectId) {
64
- const request = await this.requireOwnedRequest(requestId, subjectId);
65
- if (request.state === privacy_request_state_type_enum_1.DyNTS_PrivacyRequestState_Type.identityVerified) {
66
- return this.toRequestView(request);
67
- }
68
- if (request.state !== privacy_request_state_type_enum_1.DyNTS_PrivacyRequestState_Type.received) {
69
- throw this.buildError(409, 'IDENTITY_STATE_CONFLICT', 'The request cannot be identity-verified now.');
70
- }
71
- const replacement = await this.replaceState(request, privacy_request_state_type_enum_1.DyNTS_PrivacyRequestState_Type.identityVerified, {
72
- identityVerifiedAt: this.clock().toISOString(),
73
- });
74
- return this.toRequestView(replacement);
75
- }
76
- /** Executes or resumes all contributors and never reports complete while one contributor failed. */
77
- async processRequest(requestId, subjectId) {
78
- let request = await this.requireOwnedRequest(requestId, subjectId);
79
- if (request.state === privacy_request_state_type_enum_1.DyNTS_PrivacyRequestState_Type.completed) {
80
- return this.buildResult(request, await this.adapter.listContributorOutcomes(request.requestId));
81
- }
82
- if (request.state !== privacy_request_state_type_enum_1.DyNTS_PrivacyRequestState_Type.identityVerified
83
- && request.state !== privacy_request_state_type_enum_1.DyNTS_PrivacyRequestState_Type.scoped
84
- && request.state !== privacy_request_state_type_enum_1.DyNTS_PrivacyRequestState_Type.planned
85
- && request.state !== privacy_request_state_type_enum_1.DyNTS_PrivacyRequestState_Type.executing
86
- && request.state !== privacy_request_state_type_enum_1.DyNTS_PrivacyRequestState_Type.verifying
87
- && request.state !== privacy_request_state_type_enum_1.DyNTS_PrivacyRequestState_Type.partiallyCompleted) {
88
- throw this.buildError(409, 'EXECUTION_STATE_CONFLICT', 'The request is not ready for execution.');
89
- }
90
- if (request.state === privacy_request_state_type_enum_1.DyNTS_PrivacyRequestState_Type.identityVerified) {
91
- request = await this.replaceState(request, privacy_request_state_type_enum_1.DyNTS_PrivacyRequestState_Type.scoped, {
92
- scopedAt: this.clock().toISOString(),
93
- });
94
- }
95
- const context = this.buildContext(request);
96
- let plans = await this.adapter.listContributorPlans(request.requestId);
97
- this.validateStoredPlans(plans);
98
- if (request.state === privacy_request_state_type_enum_1.DyNTS_PrivacyRequestState_Type.scoped
99
- || request.state === privacy_request_state_type_enum_1.DyNTS_PrivacyRequestState_Type.partiallyCompleted) {
100
- await this.planMissingContributors(request.requestId, context, plans);
101
- plans = await this.adapter.listContributorPlans(request.requestId);
102
- this.validateStoredPlans(plans);
103
- if (!this.hasAllContributorPlans(plans)) {
104
- request = await this.replaceState(request, privacy_request_state_type_enum_1.DyNTS_PrivacyRequestState_Type.partiallyCompleted, {
105
- completedAt: '',
106
- });
107
- return this.buildResult(request, await this.adapter.listContributorOutcomes(request.requestId));
108
- }
109
- request = await this.replaceState(request, privacy_request_state_type_enum_1.DyNTS_PrivacyRequestState_Type.planned, {
110
- plannedAt: this.clock().toISOString(),
111
- });
112
- }
113
- if (request.state === privacy_request_state_type_enum_1.DyNTS_PrivacyRequestState_Type.planned) {
114
- this.validateStoredPlans(plans);
115
- request = await this.replaceState(request, privacy_request_state_type_enum_1.DyNTS_PrivacyRequestState_Type.executing, {
116
- executionStartedAt: request.executionStartedAt || this.clock().toISOString(),
117
- completedAt: '',
118
- });
119
- }
120
- if (request.state === privacy_request_state_type_enum_1.DyNTS_PrivacyRequestState_Type.executing) {
121
- await this.executeMissingContributors(request.requestId, context, plans);
122
- request = await this.replaceState(request, privacy_request_state_type_enum_1.DyNTS_PrivacyRequestState_Type.verifying, {
123
- verifyingStartedAt: this.clock().toISOString(),
124
- });
125
- }
126
- let outcomes = await this.adapter.listContributorOutcomes(request.requestId);
127
- if (request.state === privacy_request_state_type_enum_1.DyNTS_PrivacyRequestState_Type.verifying) {
128
- await this.verifyContributorOutcomes(context, plans, outcomes);
129
- outcomes = await this.adapter.listContributorOutcomes(request.requestId);
130
- }
131
- const isComplete = this.contributors.every((contributor) => (outcomes.some((outcome) => (outcome.contributorId === contributor.contributorId
132
- && outcome.outcome !== privacy_contributor_outcome_type_enum_1.DyNTS_PrivacyContributorOutcome_Type.failed))));
133
- const finalState = isComplete
134
- ? privacy_request_state_type_enum_1.DyNTS_PrivacyRequestState_Type.completed
135
- : privacy_request_state_type_enum_1.DyNTS_PrivacyRequestState_Type.partiallyCompleted;
136
- request = await this.replaceState(request, finalState, {
137
- completedAt: isComplete ? this.clock().toISOString() : '',
138
- });
139
- return this.buildResult(request, outcomes);
140
- }
141
- /** Returns an owned request and its content-free contributor outcomes. */
142
- async getRequest(requestId, subjectId) {
143
- const request = await this.requireOwnedRequest(requestId, subjectId);
144
- return this.buildResult(request, await this.adapter.listContributorOutcomes(request.requestId));
145
- }
146
- async planMissingContributors(requestId, context, existingPlans) {
147
- const plannedContributorIds = new Set(existingPlans.map((plan) => plan.contributorId));
148
- for (const contributor of this.contributors) {
149
- if (plannedContributorIds.has(contributor.contributorId)) {
150
- continue;
151
- }
152
- try {
153
- const plan = await contributor.plan(context);
154
- this.validatePlan(contributor, plan);
155
- await this.adapter.saveContributorPlan(requestId, plan);
156
- }
157
- catch (error) {
158
- await this.adapter.saveContributorOutcome(requestId, this.buildFailedOutcome(contributor.contributorId, privacy_contributor_action_type_enum_1.DyNTS_PrivacyContributorAction_Type.noData, error instanceof fsm_dynamo_1.DyFM_Error ? 'CONTRIBUTOR_PLAN_INVALID' : 'CONTRIBUTOR_PLAN_FAILED'));
159
- }
160
- }
161
- }
162
- async executeMissingContributors(requestId, context, plans) {
163
- const existing = await this.adapter.listContributorOutcomes(requestId);
164
- const completedContributorIds = new Set();
165
- for (const contributor of this.contributors) {
166
- const plan = plans.find((item) => item.contributorId === contributor.contributorId);
167
- const outcome = existing.find((item) => item.contributorId === contributor.contributorId);
168
- if (plan && outcome && this.isValidCompletedOutcome(contributor, plan, outcome)) {
169
- completedContributorIds.add(contributor.contributorId);
170
- }
171
- }
172
- for (const contributor of this.contributors) {
173
- if (completedContributorIds.has(contributor.contributorId)) {
174
- continue;
175
- }
176
- const plan = plans.find((item) => item.contributorId === contributor.contributorId);
177
- const outcome = plan
178
- ? await this.executeContributor(contributor, context, plan)
179
- : this.buildFailedOutcome(contributor.contributorId, privacy_contributor_action_type_enum_1.DyNTS_PrivacyContributorAction_Type.noData, 'CONTRIBUTOR_PLAN_MISSING');
180
- await this.adapter.saveContributorOutcome(requestId, outcome);
181
- }
182
- }
183
- async executeContributor(contributor, context, plan) {
184
- try {
185
- const outcome = await contributor.execute(context, plan);
186
- this.validateOutcome(contributor, plan, outcome);
187
- return { ...outcome };
188
- }
189
- catch (error) {
190
- return this.buildFailedOutcome(contributor.contributorId, plan.action, error instanceof fsm_dynamo_1.DyFM_Error ? 'CONTRIBUTOR_CONTRACT_FAILED' : 'CONTRIBUTOR_EXECUTION_FAILED');
191
- }
192
- }
193
- async verifyContributorOutcomes(context, plans, outcomes) {
194
- for (const contributor of this.contributors) {
195
- const outcome = outcomes.find((item) => item.contributorId === contributor.contributorId);
196
- const plan = plans.find((item) => item.contributorId === contributor.contributorId);
197
- if (!outcome || outcome.outcome === privacy_contributor_outcome_type_enum_1.DyNTS_PrivacyContributorOutcome_Type.failed || !plan) {
198
- continue;
199
- }
200
- try {
201
- this.validateOutcome(contributor, plan, outcome);
202
- if (!await contributor.verify(context, outcome)) {
203
- await this.adapter.saveContributorOutcome(context.requestId, this.buildFailedOutcome(contributor.contributorId, outcome.action, 'CONTRIBUTOR_VERIFY_FAILED'));
204
- }
205
- }
206
- catch {
207
- await this.adapter.saveContributorOutcome(context.requestId, this.buildFailedOutcome(contributor.contributorId, outcome.action, 'CONTRIBUTOR_VERIFY_FAILED'));
208
- }
209
- }
210
- }
211
- validatePlan(contributor, plan) {
212
- if (plan.contributorId !== contributor.contributorId
213
- || !this.isBoundedText(plan.contributorId, 128)
214
- || !Object.values(privacy_contributor_action_type_enum_1.DyNTS_PrivacyContributorAction_Type).includes(plan.action)
215
- || (plan.action === privacy_contributor_action_type_enum_1.DyNTS_PrivacyContributorAction_Type.retainWithBasis && !plan.retentionBasisCode)
216
- || (plan.action !== privacy_contributor_action_type_enum_1.DyNTS_PrivacyContributorAction_Type.retainWithBasis && !!plan.retentionBasisCode)) {
217
- throw this.buildError(500, 'CONTRIBUTOR_PLAN_INVALID', 'A privacy contributor returned an invalid plan.');
218
- }
219
- }
220
- validateOutcome(contributor, plan, outcome) {
221
- if (outcome.contributorId !== contributor.contributorId
222
- || outcome.action !== plan.action
223
- || !Object.values(privacy_contributor_outcome_type_enum_1.DyNTS_PrivacyContributorOutcome_Type).includes(outcome.outcome)
224
- || !Number.isSafeInteger(outcome.processedRecordCount)
225
- || outcome.processedRecordCount < 0
226
- || (outcome.outcome === privacy_contributor_outcome_type_enum_1.DyNTS_PrivacyContributorOutcome_Type.retainedWithBasis
227
- && outcome.retentionBasisCode !== plan.retentionBasisCode)
228
- || (outcome.outcome !== privacy_contributor_outcome_type_enum_1.DyNTS_PrivacyContributorOutcome_Type.retainedWithBasis
229
- && !!outcome.retentionBasisCode)
230
- || (outcome.outcome === privacy_contributor_outcome_type_enum_1.DyNTS_PrivacyContributorOutcome_Type.failed && !outcome.errorCode)
231
- || (outcome.outcome !== privacy_contributor_outcome_type_enum_1.DyNTS_PrivacyContributorOutcome_Type.failed && !!outcome.errorCode)
232
- || (outcome.action === privacy_contributor_action_type_enum_1.DyNTS_PrivacyContributorAction_Type.retainWithBasis
233
- && outcome.outcome !== privacy_contributor_outcome_type_enum_1.DyNTS_PrivacyContributorOutcome_Type.retainedWithBasis
234
- && outcome.outcome !== privacy_contributor_outcome_type_enum_1.DyNTS_PrivacyContributorOutcome_Type.failed)
235
- || (outcome.action !== privacy_contributor_action_type_enum_1.DyNTS_PrivacyContributorAction_Type.retainWithBasis
236
- && outcome.outcome === privacy_contributor_outcome_type_enum_1.DyNTS_PrivacyContributorOutcome_Type.retainedWithBasis)
237
- || (!!outcome.artifactChecksum && !/^[a-f0-9]{64}$/u.test(outcome.artifactChecksum))
238
- || !Number.isFinite(new Date(outcome.completedAt).getTime())) {
239
- throw this.buildError(500, 'CONTRIBUTOR_OUTCOME_INVALID', 'A privacy contributor returned an invalid outcome.');
240
- }
241
- }
242
- buildFailedOutcome(contributorId, action, errorCode) {
243
- return {
244
- contributorId: contributorId,
245
- action: action,
246
- outcome: privacy_contributor_outcome_type_enum_1.DyNTS_PrivacyContributorOutcome_Type.failed,
247
- retentionBasisCode: '',
248
- artifactChecksum: '',
249
- processedRecordCount: 0,
250
- errorCode: errorCode,
251
- completedAt: this.clock().toISOString(),
252
- };
253
- }
254
- async requireOwnedRequest(requestId, subjectId) {
255
- const request = await this.adapter.findRequestById(requestId);
256
- if (request?.subjectId !== subjectId) {
257
- throw this.buildError(404, 'REQUEST_NOT_FOUND', 'The privacy request was not found.');
258
- }
259
- return request;
260
- }
261
- async replaceState(request, state, dates) {
262
- const replacement = {
263
- ...request,
264
- ...dates,
265
- state: state,
266
- revision: request.revision + 1,
267
- };
268
- const didReplace = await this.adapter.replaceRequest(replacement, request.revision);
269
- if (!didReplace) {
270
- throw this.buildError(409, 'REQUEST_REVISION_CONFLICT', 'The privacy request changed concurrently.');
271
- }
272
- return replacement;
273
- }
274
- buildContext(request) {
275
- return {
276
- requestId: request.requestId,
277
- subjectId: request.subjectId,
278
- organizationId: request.organizationId,
279
- type: request.type,
280
- };
281
- }
282
- buildResult(request, outcomes) {
283
- if (outcomes.some((outcome) => (!this.contributors.some((contributor) => (contributor.contributorId === outcome.contributorId))))) {
284
- throw this.buildError(500, 'CONTRIBUTOR_OUTCOME_UNKNOWN', 'An unknown contributor outcome was stored.');
285
- }
286
- return {
287
- request: this.toRequestView(request),
288
- outcomes: [...outcomes].sort((first, second) => (first.contributorId.localeCompare(second.contributorId))),
289
- };
290
- }
291
- toRequestView(request) {
292
- return {
293
- requestId: request.requestId,
294
- subjectId: request.subjectId,
295
- organizationId: request.organizationId,
296
- type: request.type,
297
- state: request.state,
298
- revision: request.revision,
299
- createdAt: request.createdAt,
300
- deadlineAt: request.deadlineAt,
301
- identityVerifiedAt: request.identityVerifiedAt,
302
- scopedAt: request.scopedAt,
303
- plannedAt: request.plannedAt,
304
- executionStartedAt: request.executionStartedAt,
305
- verifyingStartedAt: request.verifyingStartedAt,
306
- completedAt: request.completedAt,
307
- };
308
- }
309
- hashIdempotency(set) {
310
- return (0, crypto_1.createHash)('sha256')
311
- .update(`${set.subjectId}\u0000${set.organizationId}\u0000${set.type}\u0000${set.idempotencyKey}`)
312
- .digest('hex');
313
- }
314
- isFutureDate(value) {
315
- const timestamp = new Date(value).getTime();
316
- return Number.isFinite(timestamp) && timestamp > this.clock().getTime();
317
- }
318
- isBoundedText(value, maxLength) {
319
- return typeof value === 'string' && !!value && value.length <= maxLength && !value.includes('\u0000');
320
- }
321
- hasAllContributorPlans(plans) {
322
- return this.contributors.every((contributor) => (plans.some((plan) => (plan.contributorId === contributor.contributorId))));
323
- }
324
- validateStoredPlans(plans) {
325
- for (const plan of plans) {
326
- const contributor = this.contributors.find((item) => item.contributorId === plan.contributorId);
327
- if (!contributor) {
328
- throw this.buildError(500, 'CONTRIBUTOR_PLAN_UNKNOWN', 'An unknown privacy contributor plan was stored.');
329
- }
330
- this.validatePlan(contributor, plan);
331
- }
332
- }
333
- isValidCompletedOutcome(contributor, plan, outcome) {
334
- try {
335
- this.validateOutcome(contributor, plan, outcome);
336
- return outcome.outcome !== privacy_contributor_outcome_type_enum_1.DyNTS_PrivacyContributorOutcome_Type.failed;
337
- }
338
- catch {
339
- return false;
340
- }
341
- }
342
- validateSettings() {
343
- const contributorIds = this.contributors.map((item) => (item.contributorId));
344
- if (!this.adapter
345
- || !this.contributors.length
346
- || contributorIds.some((contributorId) => !contributorId)
347
- || new Set(contributorIds).size !== contributorIds.length) {
348
- throw this.buildError(500, 'SETTINGS_INVALID', 'The privacy lifecycle settings are invalid.');
349
- }
350
- }
351
- buildError(status, errorCode, message) {
352
- return new fsm_dynamo_1.DyFM_Error({
353
- status: status,
354
- errorCode: `${global_settings_const_1.DyNTS_global_settings.systemShortCodeName}|PRIVACY_LIFECYCLE|${errorCode}`,
355
- message: message,
356
- userMessage: status < 500
357
- ? message
358
- : 'The privacy request could not be processed safely. Please try again later.',
359
- issuerService: this.constructor.name,
360
- });
361
- }
362
- }
363
- exports.DyNTS_PrivacyLifecycle_ControlService = DyNTS_PrivacyLifecycle_ControlService;
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DyNTS_PrivacyLifecycle_ControlService = void 0;
4
+ const crypto_1 = require("crypto");
5
+ const fsm_dynamo_1 = require("@futdevpro/fsm-dynamo");
6
+ const global_settings_const_1 = require("../../_collections/global-settings.const");
7
+ const privacy_contributor_action_type_enum_1 = require("./_enums/privacy-contributor-action.type-enum");
8
+ const privacy_contributor_outcome_type_enum_1 = require("./_enums/privacy-contributor-outcome.type-enum");
9
+ const privacy_request_state_type_enum_1 = require("./_enums/privacy-request-state.type-enum");
10
+ const privacy_request_type_enum_1 = require("./_enums/privacy-request.type-enum");
11
+ /** Coordinates identity-gated, resumable data-subject requests across product-owned data contributors. */
12
+ class DyNTS_PrivacyLifecycle_ControlService {
13
+ adapter;
14
+ contributors;
15
+ clock;
16
+ /** Creates an orchestrator with a stable contributor registry. */
17
+ constructor(set) {
18
+ this.adapter = set.adapter;
19
+ this.contributors = [...set.contributors]
20
+ .sort((first, second) => (first.contributorId.localeCompare(second.contributorId)));
21
+ this.clock = set.clock ?? (() => new Date());
22
+ this.validateSettings();
23
+ }
24
+ /** Opens or safely replays a subject-scoped request without persisting the raw idempotency key. */
25
+ async openRequest(set) {
26
+ if (!this.isBoundedText(set.subjectId, 256)
27
+ || !this.isBoundedText(set.organizationId, 256)
28
+ || !Object.values(privacy_request_type_enum_1.DyNTS_PrivacyRequest_Type).includes(set.type)) {
29
+ throw this.buildError(400, 'REQUEST_INVALID', 'The privacy request is invalid.');
30
+ }
31
+ if (!this.isBoundedText(set.idempotencyKey, 256)
32
+ || !this.isFutureDate(set.deadlineAt)) {
33
+ throw this.buildError(400, 'IDEMPOTENCY_KEY_INVALID', 'The privacy request key is invalid.');
34
+ }
35
+ const createdAt = this.clock().toISOString();
36
+ const request = {
37
+ requestId: (0, crypto_1.randomUUID)(),
38
+ subjectId: set.subjectId,
39
+ organizationId: set.organizationId,
40
+ type: set.type,
41
+ state: privacy_request_state_type_enum_1.DyNTS_PrivacyRequestState_Type.received,
42
+ idempotencyHash: this.hashIdempotency(set),
43
+ revision: 0,
44
+ createdAt: createdAt,
45
+ deadlineAt: set.deadlineAt,
46
+ identityVerifiedAt: '',
47
+ scopedAt: '',
48
+ plannedAt: '',
49
+ executionStartedAt: '',
50
+ verifyingStartedAt: '',
51
+ completedAt: '',
52
+ };
53
+ const result = await this.adapter.createOrGetRequest(request);
54
+ if (result.request.idempotencyHash !== request.idempotencyHash
55
+ || result.request.subjectId !== request.subjectId
56
+ || result.request.organizationId !== request.organizationId
57
+ || result.request.type !== request.type) {
58
+ throw this.buildError(409, 'IDEMPOTENCY_CONFLICT', 'The idempotency key belongs to another request.');
59
+ }
60
+ return { request: this.toRequestView(result.request), created: result.created };
61
+ }
62
+ /** Marks request identity verified after the application has completed its security challenge. */
63
+ async verifyIdentity(requestId, subjectId) {
64
+ const request = await this.requireOwnedRequest(requestId, subjectId);
65
+ if (request.state === privacy_request_state_type_enum_1.DyNTS_PrivacyRequestState_Type.identityVerified) {
66
+ return this.toRequestView(request);
67
+ }
68
+ if (request.state !== privacy_request_state_type_enum_1.DyNTS_PrivacyRequestState_Type.received) {
69
+ throw this.buildError(409, 'IDENTITY_STATE_CONFLICT', 'The request cannot be identity-verified now.');
70
+ }
71
+ const replacement = await this.replaceState(request, privacy_request_state_type_enum_1.DyNTS_PrivacyRequestState_Type.identityVerified, {
72
+ identityVerifiedAt: this.clock().toISOString(),
73
+ });
74
+ return this.toRequestView(replacement);
75
+ }
76
+ /** Executes or resumes all contributors and never reports complete while one contributor failed. */
77
+ async processRequest(requestId, subjectId) {
78
+ let request = await this.requireOwnedRequest(requestId, subjectId);
79
+ if (request.state === privacy_request_state_type_enum_1.DyNTS_PrivacyRequestState_Type.completed) {
80
+ return this.buildResult(request, await this.adapter.listContributorOutcomes(request.requestId));
81
+ }
82
+ if (request.state !== privacy_request_state_type_enum_1.DyNTS_PrivacyRequestState_Type.identityVerified
83
+ && request.state !== privacy_request_state_type_enum_1.DyNTS_PrivacyRequestState_Type.scoped
84
+ && request.state !== privacy_request_state_type_enum_1.DyNTS_PrivacyRequestState_Type.planned
85
+ && request.state !== privacy_request_state_type_enum_1.DyNTS_PrivacyRequestState_Type.executing
86
+ && request.state !== privacy_request_state_type_enum_1.DyNTS_PrivacyRequestState_Type.verifying
87
+ && request.state !== privacy_request_state_type_enum_1.DyNTS_PrivacyRequestState_Type.partiallyCompleted) {
88
+ throw this.buildError(409, 'EXECUTION_STATE_CONFLICT', 'The request is not ready for execution.');
89
+ }
90
+ if (request.state === privacy_request_state_type_enum_1.DyNTS_PrivacyRequestState_Type.identityVerified) {
91
+ request = await this.replaceState(request, privacy_request_state_type_enum_1.DyNTS_PrivacyRequestState_Type.scoped, {
92
+ scopedAt: this.clock().toISOString(),
93
+ });
94
+ }
95
+ const context = this.buildContext(request);
96
+ let plans = await this.adapter.listContributorPlans(request.requestId);
97
+ this.validateStoredPlans(plans);
98
+ if (request.state === privacy_request_state_type_enum_1.DyNTS_PrivacyRequestState_Type.scoped
99
+ || request.state === privacy_request_state_type_enum_1.DyNTS_PrivacyRequestState_Type.partiallyCompleted) {
100
+ await this.planMissingContributors(request.requestId, context, plans);
101
+ plans = await this.adapter.listContributorPlans(request.requestId);
102
+ this.validateStoredPlans(plans);
103
+ if (!this.hasAllContributorPlans(plans)) {
104
+ request = await this.replaceState(request, privacy_request_state_type_enum_1.DyNTS_PrivacyRequestState_Type.partiallyCompleted, {
105
+ completedAt: '',
106
+ });
107
+ return this.buildResult(request, await this.adapter.listContributorOutcomes(request.requestId));
108
+ }
109
+ request = await this.replaceState(request, privacy_request_state_type_enum_1.DyNTS_PrivacyRequestState_Type.planned, {
110
+ plannedAt: this.clock().toISOString(),
111
+ });
112
+ }
113
+ if (request.state === privacy_request_state_type_enum_1.DyNTS_PrivacyRequestState_Type.planned) {
114
+ this.validateStoredPlans(plans);
115
+ request = await this.replaceState(request, privacy_request_state_type_enum_1.DyNTS_PrivacyRequestState_Type.executing, {
116
+ executionStartedAt: request.executionStartedAt || this.clock().toISOString(),
117
+ completedAt: '',
118
+ });
119
+ }
120
+ if (request.state === privacy_request_state_type_enum_1.DyNTS_PrivacyRequestState_Type.executing) {
121
+ await this.executeMissingContributors(request.requestId, context, plans);
122
+ request = await this.replaceState(request, privacy_request_state_type_enum_1.DyNTS_PrivacyRequestState_Type.verifying, {
123
+ verifyingStartedAt: this.clock().toISOString(),
124
+ });
125
+ }
126
+ let outcomes = await this.adapter.listContributorOutcomes(request.requestId);
127
+ if (request.state === privacy_request_state_type_enum_1.DyNTS_PrivacyRequestState_Type.verifying) {
128
+ await this.verifyContributorOutcomes(context, plans, outcomes);
129
+ outcomes = await this.adapter.listContributorOutcomes(request.requestId);
130
+ }
131
+ const isComplete = this.contributors.every((contributor) => (outcomes.some((outcome) => (outcome.contributorId === contributor.contributorId
132
+ && outcome.outcome !== privacy_contributor_outcome_type_enum_1.DyNTS_PrivacyContributorOutcome_Type.failed))));
133
+ const finalState = isComplete
134
+ ? privacy_request_state_type_enum_1.DyNTS_PrivacyRequestState_Type.completed
135
+ : privacy_request_state_type_enum_1.DyNTS_PrivacyRequestState_Type.partiallyCompleted;
136
+ request = await this.replaceState(request, finalState, {
137
+ completedAt: isComplete ? this.clock().toISOString() : '',
138
+ });
139
+ return this.buildResult(request, outcomes);
140
+ }
141
+ /** Returns an owned request and its content-free contributor outcomes. */
142
+ async getRequest(requestId, subjectId) {
143
+ const request = await this.requireOwnedRequest(requestId, subjectId);
144
+ return this.buildResult(request, await this.adapter.listContributorOutcomes(request.requestId));
145
+ }
146
+ async planMissingContributors(requestId, context, existingPlans) {
147
+ const plannedContributorIds = new Set(existingPlans.map((plan) => plan.contributorId));
148
+ for (const contributor of this.contributors) {
149
+ if (plannedContributorIds.has(contributor.contributorId)) {
150
+ continue;
151
+ }
152
+ try {
153
+ const plan = await contributor.plan(context);
154
+ this.validatePlan(contributor, plan);
155
+ await this.adapter.saveContributorPlan(requestId, plan);
156
+ }
157
+ catch (error) {
158
+ await this.adapter.saveContributorOutcome(requestId, this.buildFailedOutcome(contributor.contributorId, privacy_contributor_action_type_enum_1.DyNTS_PrivacyContributorAction_Type.noData, error instanceof fsm_dynamo_1.DyFM_Error ? 'CONTRIBUTOR_PLAN_INVALID' : 'CONTRIBUTOR_PLAN_FAILED'));
159
+ }
160
+ }
161
+ }
162
+ async executeMissingContributors(requestId, context, plans) {
163
+ const existing = await this.adapter.listContributorOutcomes(requestId);
164
+ const completedContributorIds = new Set();
165
+ for (const contributor of this.contributors) {
166
+ const plan = plans.find((item) => item.contributorId === contributor.contributorId);
167
+ const outcome = existing.find((item) => item.contributorId === contributor.contributorId);
168
+ if (plan && outcome && this.isValidCompletedOutcome(contributor, plan, outcome)) {
169
+ completedContributorIds.add(contributor.contributorId);
170
+ }
171
+ }
172
+ for (const contributor of this.contributors) {
173
+ if (completedContributorIds.has(contributor.contributorId)) {
174
+ continue;
175
+ }
176
+ const plan = plans.find((item) => item.contributorId === contributor.contributorId);
177
+ const outcome = plan
178
+ ? await this.executeContributor(contributor, context, plan)
179
+ : this.buildFailedOutcome(contributor.contributorId, privacy_contributor_action_type_enum_1.DyNTS_PrivacyContributorAction_Type.noData, 'CONTRIBUTOR_PLAN_MISSING');
180
+ await this.adapter.saveContributorOutcome(requestId, outcome);
181
+ }
182
+ }
183
+ async executeContributor(contributor, context, plan) {
184
+ try {
185
+ const outcome = await contributor.execute(context, plan);
186
+ this.validateOutcome(contributor, plan, outcome);
187
+ return { ...outcome };
188
+ }
189
+ catch (error) {
190
+ return this.buildFailedOutcome(contributor.contributorId, plan.action, error instanceof fsm_dynamo_1.DyFM_Error ? 'CONTRIBUTOR_CONTRACT_FAILED' : 'CONTRIBUTOR_EXECUTION_FAILED');
191
+ }
192
+ }
193
+ async verifyContributorOutcomes(context, plans, outcomes) {
194
+ for (const contributor of this.contributors) {
195
+ const outcome = outcomes.find((item) => item.contributorId === contributor.contributorId);
196
+ const plan = plans.find((item) => item.contributorId === contributor.contributorId);
197
+ if (!outcome || outcome.outcome === privacy_contributor_outcome_type_enum_1.DyNTS_PrivacyContributorOutcome_Type.failed || !plan) {
198
+ continue;
199
+ }
200
+ try {
201
+ this.validateOutcome(contributor, plan, outcome);
202
+ if (!await contributor.verify(context, outcome)) {
203
+ await this.adapter.saveContributorOutcome(context.requestId, this.buildFailedOutcome(contributor.contributorId, outcome.action, 'CONTRIBUTOR_VERIFY_FAILED'));
204
+ }
205
+ }
206
+ catch {
207
+ await this.adapter.saveContributorOutcome(context.requestId, this.buildFailedOutcome(contributor.contributorId, outcome.action, 'CONTRIBUTOR_VERIFY_FAILED'));
208
+ }
209
+ }
210
+ }
211
+ validatePlan(contributor, plan) {
212
+ if (plan.contributorId !== contributor.contributorId
213
+ || !this.isBoundedText(plan.contributorId, 128)
214
+ || !Object.values(privacy_contributor_action_type_enum_1.DyNTS_PrivacyContributorAction_Type).includes(plan.action)
215
+ || (plan.action === privacy_contributor_action_type_enum_1.DyNTS_PrivacyContributorAction_Type.retainWithBasis && !plan.retentionBasisCode)
216
+ || (plan.action !== privacy_contributor_action_type_enum_1.DyNTS_PrivacyContributorAction_Type.retainWithBasis && !!plan.retentionBasisCode)) {
217
+ throw this.buildError(500, 'CONTRIBUTOR_PLAN_INVALID', 'A privacy contributor returned an invalid plan.');
218
+ }
219
+ }
220
+ validateOutcome(contributor, plan, outcome) {
221
+ if (outcome.contributorId !== contributor.contributorId
222
+ || outcome.action !== plan.action
223
+ || !Object.values(privacy_contributor_outcome_type_enum_1.DyNTS_PrivacyContributorOutcome_Type).includes(outcome.outcome)
224
+ || !Number.isSafeInteger(outcome.processedRecordCount)
225
+ || outcome.processedRecordCount < 0
226
+ || (outcome.outcome === privacy_contributor_outcome_type_enum_1.DyNTS_PrivacyContributorOutcome_Type.retainedWithBasis
227
+ && outcome.retentionBasisCode !== plan.retentionBasisCode)
228
+ || (outcome.outcome !== privacy_contributor_outcome_type_enum_1.DyNTS_PrivacyContributorOutcome_Type.retainedWithBasis
229
+ && !!outcome.retentionBasisCode)
230
+ || (outcome.outcome === privacy_contributor_outcome_type_enum_1.DyNTS_PrivacyContributorOutcome_Type.failed && !outcome.errorCode)
231
+ || (outcome.outcome !== privacy_contributor_outcome_type_enum_1.DyNTS_PrivacyContributorOutcome_Type.failed && !!outcome.errorCode)
232
+ || (outcome.action === privacy_contributor_action_type_enum_1.DyNTS_PrivacyContributorAction_Type.retainWithBasis
233
+ && outcome.outcome !== privacy_contributor_outcome_type_enum_1.DyNTS_PrivacyContributorOutcome_Type.retainedWithBasis
234
+ && outcome.outcome !== privacy_contributor_outcome_type_enum_1.DyNTS_PrivacyContributorOutcome_Type.failed)
235
+ || (outcome.action !== privacy_contributor_action_type_enum_1.DyNTS_PrivacyContributorAction_Type.retainWithBasis
236
+ && outcome.outcome === privacy_contributor_outcome_type_enum_1.DyNTS_PrivacyContributorOutcome_Type.retainedWithBasis)
237
+ || (!!outcome.artifactChecksum && !/^[a-f0-9]{64}$/u.test(outcome.artifactChecksum))
238
+ || !Number.isFinite(new Date(outcome.completedAt).getTime())) {
239
+ throw this.buildError(500, 'CONTRIBUTOR_OUTCOME_INVALID', 'A privacy contributor returned an invalid outcome.');
240
+ }
241
+ }
242
+ buildFailedOutcome(contributorId, action, errorCode) {
243
+ return {
244
+ contributorId: contributorId,
245
+ action: action,
246
+ outcome: privacy_contributor_outcome_type_enum_1.DyNTS_PrivacyContributorOutcome_Type.failed,
247
+ retentionBasisCode: '',
248
+ artifactChecksum: '',
249
+ processedRecordCount: 0,
250
+ errorCode: errorCode,
251
+ completedAt: this.clock().toISOString(),
252
+ };
253
+ }
254
+ async requireOwnedRequest(requestId, subjectId) {
255
+ const request = await this.adapter.findRequestById(requestId);
256
+ if (request?.subjectId !== subjectId) {
257
+ throw this.buildError(404, 'REQUEST_NOT_FOUND', 'The privacy request was not found.');
258
+ }
259
+ return request;
260
+ }
261
+ async replaceState(request, state, dates) {
262
+ const replacement = {
263
+ ...request,
264
+ ...dates,
265
+ state: state,
266
+ revision: request.revision + 1,
267
+ };
268
+ const didReplace = await this.adapter.replaceRequest(replacement, request.revision);
269
+ if (!didReplace) {
270
+ throw this.buildError(409, 'REQUEST_REVISION_CONFLICT', 'The privacy request changed concurrently.');
271
+ }
272
+ return replacement;
273
+ }
274
+ buildContext(request) {
275
+ return {
276
+ requestId: request.requestId,
277
+ subjectId: request.subjectId,
278
+ organizationId: request.organizationId,
279
+ type: request.type,
280
+ };
281
+ }
282
+ buildResult(request, outcomes) {
283
+ if (outcomes.some((outcome) => (!this.contributors.some((contributor) => (contributor.contributorId === outcome.contributorId))))) {
284
+ throw this.buildError(500, 'CONTRIBUTOR_OUTCOME_UNKNOWN', 'An unknown contributor outcome was stored.');
285
+ }
286
+ return {
287
+ request: this.toRequestView(request),
288
+ outcomes: [...outcomes].sort((first, second) => (first.contributorId.localeCompare(second.contributorId))),
289
+ };
290
+ }
291
+ toRequestView(request) {
292
+ return {
293
+ requestId: request.requestId,
294
+ subjectId: request.subjectId,
295
+ organizationId: request.organizationId,
296
+ type: request.type,
297
+ state: request.state,
298
+ revision: request.revision,
299
+ createdAt: request.createdAt,
300
+ deadlineAt: request.deadlineAt,
301
+ identityVerifiedAt: request.identityVerifiedAt,
302
+ scopedAt: request.scopedAt,
303
+ plannedAt: request.plannedAt,
304
+ executionStartedAt: request.executionStartedAt,
305
+ verifyingStartedAt: request.verifyingStartedAt,
306
+ completedAt: request.completedAt,
307
+ };
308
+ }
309
+ hashIdempotency(set) {
310
+ return (0, crypto_1.createHash)('sha256')
311
+ .update(`${set.subjectId}\u0000${set.organizationId}\u0000${set.type}\u0000${set.idempotencyKey}`)
312
+ .digest('hex');
313
+ }
314
+ isFutureDate(value) {
315
+ const timestamp = new Date(value).getTime();
316
+ return Number.isFinite(timestamp) && timestamp > this.clock().getTime();
317
+ }
318
+ isBoundedText(value, maxLength) {
319
+ return typeof value === 'string' && !!value && value.length <= maxLength && !value.includes('\u0000');
320
+ }
321
+ hasAllContributorPlans(plans) {
322
+ return this.contributors.every((contributor) => (plans.some((plan) => (plan.contributorId === contributor.contributorId))));
323
+ }
324
+ validateStoredPlans(plans) {
325
+ for (const plan of plans) {
326
+ const contributor = this.contributors.find((item) => item.contributorId === plan.contributorId);
327
+ if (!contributor) {
328
+ throw this.buildError(500, 'CONTRIBUTOR_PLAN_UNKNOWN', 'An unknown privacy contributor plan was stored.');
329
+ }
330
+ this.validatePlan(contributor, plan);
331
+ }
332
+ }
333
+ isValidCompletedOutcome(contributor, plan, outcome) {
334
+ try {
335
+ this.validateOutcome(contributor, plan, outcome);
336
+ return outcome.outcome !== privacy_contributor_outcome_type_enum_1.DyNTS_PrivacyContributorOutcome_Type.failed;
337
+ }
338
+ catch {
339
+ return false;
340
+ }
341
+ }
342
+ validateSettings() {
343
+ const contributorIds = this.contributors.map((item) => (item.contributorId));
344
+ if (!this.adapter
345
+ || !this.contributors.length
346
+ || contributorIds.some((contributorId) => !contributorId)
347
+ || new Set(contributorIds).size !== contributorIds.length) {
348
+ throw this.buildError(500, 'SETTINGS_INVALID', 'The privacy lifecycle settings are invalid.');
349
+ }
350
+ }
351
+ buildError(status, errorCode, message) {
352
+ return new fsm_dynamo_1.DyFM_Error({
353
+ status: status,
354
+ errorCode: `${global_settings_const_1.DyNTS_global_settings.systemShortCodeName}|PRIVACY_LIFECYCLE|${errorCode}`,
355
+ message: message,
356
+ userMessage: status < 500
357
+ ? message
358
+ : 'The privacy request could not be processed safely. Please try again later.',
359
+ issuerService: this.constructor.name,
360
+ });
361
+ }
362
+ }
363
+ exports.DyNTS_PrivacyLifecycle_ControlService = DyNTS_PrivacyLifecycle_ControlService;
364
364
  //# sourceMappingURL=privacy-lifecycle.control-service.js.map