@futdevpro/nts-dynamo 1.15.140 → 1.15.141

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 (293) hide show
  1. package/README.md +27 -0
  2. package/__documentations/2026-08-18-standalone-account-security-and-privacy-bedrock.md +131 -0
  3. package/build/_modules/account-security/_enums/account-challenge-purpose.type-enum.d.ts +6 -0
  4. package/build/_modules/account-security/_enums/account-challenge-purpose.type-enum.d.ts.map +1 -0
  5. package/build/_modules/account-security/_enums/account-challenge-purpose.type-enum.js +10 -0
  6. package/build/_modules/account-security/_enums/account-challenge-purpose.type-enum.js.map +1 -0
  7. package/build/_modules/account-security/_enums/account-refresh-token-state.type-enum.d.ts +7 -0
  8. package/build/_modules/account-security/_enums/account-refresh-token-state.type-enum.d.ts.map +1 -0
  9. package/build/_modules/account-security/_enums/account-refresh-token-state.type-enum.js +11 -0
  10. package/build/_modules/account-security/_enums/account-refresh-token-state.type-enum.js.map +1 -0
  11. package/build/_modules/account-security/_enums/account-session-state.type-enum.d.ts +7 -0
  12. package/build/_modules/account-security/_enums/account-session-state.type-enum.d.ts.map +1 -0
  13. package/build/_modules/account-security/_enums/account-session-state.type-enum.js +11 -0
  14. package/build/_modules/account-security/_enums/account-session-state.type-enum.js.map +1 -0
  15. package/build/_modules/account-security/_models/account-challenge-adapter.interface.d.ts +9 -0
  16. package/build/_modules/account-security/_models/account-challenge-adapter.interface.d.ts.map +1 -0
  17. package/build/_modules/account-security/_models/account-challenge-adapter.interface.js +3 -0
  18. package/build/_modules/account-security/_models/account-challenge-adapter.interface.js.map +1 -0
  19. package/build/_modules/account-security/_models/account-challenge-issued.interface.d.ts +7 -0
  20. package/build/_modules/account-security/_models/account-challenge-issued.interface.d.ts.map +1 -0
  21. package/build/_modules/account-security/_models/account-challenge-issued.interface.js +3 -0
  22. package/build/_modules/account-security/_models/account-challenge-issued.interface.js.map +1 -0
  23. package/build/_modules/account-security/_models/account-challenge-record.interface.d.ts +13 -0
  24. package/build/_modules/account-security/_models/account-challenge-record.interface.d.ts.map +1 -0
  25. package/build/_modules/account-security/_models/account-challenge-record.interface.js +3 -0
  26. package/build/_modules/account-security/_models/account-challenge-record.interface.js.map +1 -0
  27. package/build/_modules/account-security/_models/account-challenge-result.interface.d.ts +8 -0
  28. package/build/_modules/account-security/_models/account-challenge-result.interface.d.ts.map +1 -0
  29. package/build/_modules/account-security/_models/account-challenge-result.interface.js +3 -0
  30. package/build/_modules/account-security/_models/account-challenge-result.interface.js.map +1 -0
  31. package/build/_modules/account-security/_models/account-challenge-settings.interface.d.ts +9 -0
  32. package/build/_modules/account-security/_models/account-challenge-settings.interface.d.ts.map +1 -0
  33. package/build/_modules/account-security/_models/account-challenge-settings.interface.js +3 -0
  34. package/build/_modules/account-security/_models/account-challenge-settings.interface.js.map +1 -0
  35. package/build/_modules/account-security/_models/account-password-policy.interface.d.ts +12 -0
  36. package/build/_modules/account-security/_models/account-password-policy.interface.d.ts.map +1 -0
  37. package/build/_modules/account-security/_models/account-password-policy.interface.js +3 -0
  38. package/build/_modules/account-security/_models/account-password-policy.interface.js.map +1 -0
  39. package/build/_modules/account-security/_models/account-password-verification.interface.d.ts +6 -0
  40. package/build/_modules/account-security/_models/account-password-verification.interface.d.ts.map +1 -0
  41. package/build/_modules/account-security/_models/account-password-verification.interface.js +3 -0
  42. package/build/_modules/account-security/_models/account-password-verification.interface.js.map +1 -0
  43. package/build/_modules/account-security/_models/account-refresh-token-record.interface.d.ts +13 -0
  44. package/build/_modules/account-security/_models/account-refresh-token-record.interface.d.ts.map +1 -0
  45. package/build/_modules/account-security/_models/account-refresh-token-record.interface.js +3 -0
  46. package/build/_modules/account-security/_models/account-refresh-token-record.interface.js.map +1 -0
  47. package/build/_modules/account-security/_models/account-session-adapter.interface.d.ts +19 -0
  48. package/build/_modules/account-security/_models/account-session-adapter.interface.d.ts.map +1 -0
  49. package/build/_modules/account-security/_models/account-session-adapter.interface.js +3 -0
  50. package/build/_modules/account-security/_models/account-session-adapter.interface.js.map +1 -0
  51. package/build/_modules/account-security/_models/account-session-claims.interface.d.ts +8 -0
  52. package/build/_modules/account-security/_models/account-session-claims.interface.d.ts.map +1 -0
  53. package/build/_modules/account-security/_models/account-session-claims.interface.js +3 -0
  54. package/build/_modules/account-security/_models/account-session-claims.interface.js.map +1 -0
  55. package/build/_modules/account-security/_models/account-session-context.interface.d.ts +7 -0
  56. package/build/_modules/account-security/_models/account-session-context.interface.d.ts.map +1 -0
  57. package/build/_modules/account-security/_models/account-session-context.interface.js +3 -0
  58. package/build/_modules/account-security/_models/account-session-context.interface.js.map +1 -0
  59. package/build/_modules/account-security/_models/account-session-create.interface.d.ts +8 -0
  60. package/build/_modules/account-security/_models/account-session-create.interface.d.ts.map +1 -0
  61. package/build/_modules/account-security/_models/account-session-create.interface.js +3 -0
  62. package/build/_modules/account-security/_models/account-session-create.interface.js.map +1 -0
  63. package/build/_modules/account-security/_models/account-session-record.interface.d.ts +21 -0
  64. package/build/_modules/account-security/_models/account-session-record.interface.d.ts.map +1 -0
  65. package/build/_modules/account-security/_models/account-session-record.interface.js +3 -0
  66. package/build/_modules/account-security/_models/account-session-record.interface.js.map +1 -0
  67. package/build/_modules/account-security/_models/account-session-rotate.interface.d.ts +11 -0
  68. package/build/_modules/account-security/_models/account-session-rotate.interface.d.ts.map +1 -0
  69. package/build/_modules/account-security/_models/account-session-rotate.interface.js +3 -0
  70. package/build/_modules/account-security/_models/account-session-rotate.interface.js.map +1 -0
  71. package/build/_modules/account-security/_models/account-session-settings.interface.d.ts +11 -0
  72. package/build/_modules/account-security/_models/account-session-settings.interface.d.ts.map +1 -0
  73. package/build/_modules/account-security/_models/account-session-settings.interface.js +3 -0
  74. package/build/_modules/account-security/_models/account-session-settings.interface.js.map +1 -0
  75. package/build/_modules/account-security/_models/account-session-token-pair.interface.d.ts +9 -0
  76. package/build/_modules/account-security/_models/account-session-token-pair.interface.d.ts.map +1 -0
  77. package/build/_modules/account-security/_models/account-session-token-pair.interface.js +3 -0
  78. package/build/_modules/account-security/_models/account-session-token-pair.interface.js.map +1 -0
  79. package/build/_modules/account-security/_models/account-session-view.interface.d.ts +13 -0
  80. package/build/_modules/account-security/_models/account-session-view.interface.d.ts.map +1 -0
  81. package/build/_modules/account-security/_models/account-session-view.interface.js +3 -0
  82. package/build/_modules/account-security/_models/account-session-view.interface.js.map +1 -0
  83. package/build/_modules/account-security/account-challenge.control-service.d.ts +24 -0
  84. package/build/_modules/account-security/account-challenge.control-service.d.ts.map +1 -0
  85. package/build/_modules/account-security/account-challenge.control-service.js +117 -0
  86. package/build/_modules/account-security/account-challenge.control-service.js.map +1 -0
  87. package/build/_modules/account-security/account-password.control-service.d.ts +24 -0
  88. package/build/_modules/account-security/account-password.control-service.d.ts.map +1 -0
  89. package/build/_modules/account-security/account-password.control-service.js +214 -0
  90. package/build/_modules/account-security/account-password.control-service.js.map +1 -0
  91. package/build/_modules/account-security/account-session.control-service.d.ts +39 -0
  92. package/build/_modules/account-security/account-session.control-service.d.ts.map +1 -0
  93. package/build/_modules/account-security/account-session.control-service.js +277 -0
  94. package/build/_modules/account-security/account-session.control-service.js.map +1 -0
  95. package/build/_modules/account-security/index.d.ts +24 -0
  96. package/build/_modules/account-security/index.d.ts.map +1 -0
  97. package/build/_modules/account-security/index.js +16 -0
  98. package/build/_modules/account-security/index.js.map +1 -0
  99. package/build/_modules/privacy-lifecycle/_enums/privacy-consent-decision.type-enum.d.ts +6 -0
  100. package/build/_modules/privacy-lifecycle/_enums/privacy-consent-decision.type-enum.d.ts.map +1 -0
  101. package/build/_modules/privacy-lifecycle/_enums/privacy-consent-decision.type-enum.js +10 -0
  102. package/build/_modules/privacy-lifecycle/_enums/privacy-consent-decision.type-enum.js.map +1 -0
  103. package/build/_modules/privacy-lifecycle/_enums/privacy-contributor-action.type-enum.d.ts +11 -0
  104. package/build/_modules/privacy-lifecycle/_enums/privacy-contributor-action.type-enum.d.ts.map +1 -0
  105. package/build/_modules/privacy-lifecycle/_enums/privacy-contributor-action.type-enum.js +15 -0
  106. package/build/_modules/privacy-lifecycle/_enums/privacy-contributor-action.type-enum.js.map +1 -0
  107. package/build/_modules/privacy-lifecycle/_enums/privacy-contributor-outcome.type-enum.d.ts +8 -0
  108. package/build/_modules/privacy-lifecycle/_enums/privacy-contributor-outcome.type-enum.d.ts.map +1 -0
  109. package/build/_modules/privacy-lifecycle/_enums/privacy-contributor-outcome.type-enum.js +12 -0
  110. package/build/_modules/privacy-lifecycle/_enums/privacy-contributor-outcome.type-enum.js.map +1 -0
  111. package/build/_modules/privacy-lifecycle/_enums/privacy-request-state.type-enum.d.ts +16 -0
  112. package/build/_modules/privacy-lifecycle/_enums/privacy-request-state.type-enum.d.ts.map +1 -0
  113. package/build/_modules/privacy-lifecycle/_enums/privacy-request-state.type-enum.js +20 -0
  114. package/build/_modules/privacy-lifecycle/_enums/privacy-request-state.type-enum.js.map +1 -0
  115. package/build/_modules/privacy-lifecycle/_enums/privacy-request.type-enum.d.ts +10 -0
  116. package/build/_modules/privacy-lifecycle/_enums/privacy-request.type-enum.d.ts.map +1 -0
  117. package/build/_modules/privacy-lifecycle/_enums/privacy-request.type-enum.js +14 -0
  118. package/build/_modules/privacy-lifecycle/_enums/privacy-request.type-enum.js.map +1 -0
  119. package/build/_modules/privacy-lifecycle/_models/privacy-consent-input.interface.d.ts +12 -0
  120. package/build/_modules/privacy-lifecycle/_models/privacy-consent-input.interface.d.ts.map +1 -0
  121. package/build/_modules/privacy-lifecycle/_models/privacy-consent-input.interface.js +3 -0
  122. package/build/_modules/privacy-lifecycle/_models/privacy-consent-input.interface.js.map +1 -0
  123. package/build/_modules/privacy-lifecycle/_models/privacy-consent-persistence-result.interface.d.ts +7 -0
  124. package/build/_modules/privacy-lifecycle/_models/privacy-consent-persistence-result.interface.d.ts.map +1 -0
  125. package/build/_modules/privacy-lifecycle/_models/privacy-consent-persistence-result.interface.js +3 -0
  126. package/build/_modules/privacy-lifecycle/_models/privacy-consent-persistence-result.interface.js.map +1 -0
  127. package/build/_modules/privacy-lifecycle/_models/privacy-consent-record.interface.d.ts +15 -0
  128. package/build/_modules/privacy-lifecycle/_models/privacy-consent-record.interface.d.ts.map +1 -0
  129. package/build/_modules/privacy-lifecycle/_models/privacy-consent-record.interface.js +3 -0
  130. package/build/_modules/privacy-lifecycle/_models/privacy-consent-record.interface.js.map +1 -0
  131. package/build/_modules/privacy-lifecycle/_models/privacy-consent-result.interface.d.ts +7 -0
  132. package/build/_modules/privacy-lifecycle/_models/privacy-consent-result.interface.d.ts.map +1 -0
  133. package/build/_modules/privacy-lifecycle/_models/privacy-consent-result.interface.js +3 -0
  134. package/build/_modules/privacy-lifecycle/_models/privacy-consent-result.interface.js.map +1 -0
  135. package/build/_modules/privacy-lifecycle/_models/privacy-consent-view.interface.d.ts +13 -0
  136. package/build/_modules/privacy-lifecycle/_models/privacy-consent-view.interface.d.ts.map +1 -0
  137. package/build/_modules/privacy-lifecycle/_models/privacy-consent-view.interface.js +3 -0
  138. package/build/_modules/privacy-lifecycle/_models/privacy-consent-view.interface.js.map +1 -0
  139. package/build/_modules/privacy-lifecycle/_models/privacy-contributor-context.interface.d.ts +9 -0
  140. package/build/_modules/privacy-lifecycle/_models/privacy-contributor-context.interface.d.ts.map +1 -0
  141. package/build/_modules/privacy-lifecycle/_models/privacy-contributor-context.interface.js +3 -0
  142. package/build/_modules/privacy-lifecycle/_models/privacy-contributor-context.interface.js.map +1 -0
  143. package/build/_modules/privacy-lifecycle/_models/privacy-contributor-outcome.interface.d.ts +14 -0
  144. package/build/_modules/privacy-lifecycle/_models/privacy-contributor-outcome.interface.d.ts.map +1 -0
  145. package/build/_modules/privacy-lifecycle/_models/privacy-contributor-outcome.interface.js +3 -0
  146. package/build/_modules/privacy-lifecycle/_models/privacy-contributor-outcome.interface.js.map +1 -0
  147. package/build/_modules/privacy-lifecycle/_models/privacy-contributor-plan.interface.d.ts +8 -0
  148. package/build/_modules/privacy-lifecycle/_models/privacy-contributor-plan.interface.d.ts.map +1 -0
  149. package/build/_modules/privacy-lifecycle/_models/privacy-contributor-plan.interface.js +3 -0
  150. package/build/_modules/privacy-lifecycle/_models/privacy-contributor-plan.interface.js.map +1 -0
  151. package/build/_modules/privacy-lifecycle/_models/privacy-contributor.interface.d.ts +11 -0
  152. package/build/_modules/privacy-lifecycle/_models/privacy-contributor.interface.d.ts.map +1 -0
  153. package/build/_modules/privacy-lifecycle/_models/privacy-contributor.interface.js +3 -0
  154. package/build/_modules/privacy-lifecycle/_models/privacy-contributor.interface.js.map +1 -0
  155. package/build/_modules/privacy-lifecycle/_models/privacy-ledger-adapter.interface.d.ts +13 -0
  156. package/build/_modules/privacy-lifecycle/_models/privacy-ledger-adapter.interface.d.ts.map +1 -0
  157. package/build/_modules/privacy-lifecycle/_models/privacy-ledger-adapter.interface.js +3 -0
  158. package/build/_modules/privacy-lifecycle/_models/privacy-ledger-adapter.interface.js.map +1 -0
  159. package/build/_modules/privacy-lifecycle/_models/privacy-ledger-result.interface.d.ts +9 -0
  160. package/build/_modules/privacy-lifecycle/_models/privacy-ledger-result.interface.d.ts.map +1 -0
  161. package/build/_modules/privacy-lifecycle/_models/privacy-ledger-result.interface.js +3 -0
  162. package/build/_modules/privacy-lifecycle/_models/privacy-ledger-result.interface.js.map +1 -0
  163. package/build/_modules/privacy-lifecycle/_models/privacy-ledger-settings.interface.d.ts +7 -0
  164. package/build/_modules/privacy-lifecycle/_models/privacy-ledger-settings.interface.d.ts.map +1 -0
  165. package/build/_modules/privacy-lifecycle/_models/privacy-ledger-settings.interface.js +3 -0
  166. package/build/_modules/privacy-lifecycle/_models/privacy-ledger-settings.interface.js.map +1 -0
  167. package/build/_modules/privacy-lifecycle/_models/privacy-legal-acceptance-input.interface.d.ts +11 -0
  168. package/build/_modules/privacy-lifecycle/_models/privacy-legal-acceptance-input.interface.d.ts.map +1 -0
  169. package/build/_modules/privacy-lifecycle/_models/privacy-legal-acceptance-input.interface.js +3 -0
  170. package/build/_modules/privacy-lifecycle/_models/privacy-legal-acceptance-input.interface.js.map +1 -0
  171. package/build/_modules/privacy-lifecycle/_models/privacy-legal-acceptance-persistence-result.interface.d.ts +7 -0
  172. package/build/_modules/privacy-lifecycle/_models/privacy-legal-acceptance-persistence-result.interface.d.ts.map +1 -0
  173. package/build/_modules/privacy-lifecycle/_models/privacy-legal-acceptance-persistence-result.interface.js +3 -0
  174. package/build/_modules/privacy-lifecycle/_models/privacy-legal-acceptance-persistence-result.interface.js.map +1 -0
  175. package/build/_modules/privacy-lifecycle/_models/privacy-legal-acceptance-result.interface.d.ts +7 -0
  176. package/build/_modules/privacy-lifecycle/_models/privacy-legal-acceptance-result.interface.d.ts.map +1 -0
  177. package/build/_modules/privacy-lifecycle/_models/privacy-legal-acceptance-result.interface.js +3 -0
  178. package/build/_modules/privacy-lifecycle/_models/privacy-legal-acceptance-result.interface.js.map +1 -0
  179. package/build/_modules/privacy-lifecycle/_models/privacy-legal-acceptance-view.interface.d.ts +12 -0
  180. package/build/_modules/privacy-lifecycle/_models/privacy-legal-acceptance-view.interface.d.ts.map +1 -0
  181. package/build/_modules/privacy-lifecycle/_models/privacy-legal-acceptance-view.interface.js +3 -0
  182. package/build/_modules/privacy-lifecycle/_models/privacy-legal-acceptance-view.interface.js.map +1 -0
  183. package/build/_modules/privacy-lifecycle/_models/privacy-legal-acceptance.interface.d.ts +14 -0
  184. package/build/_modules/privacy-lifecycle/_models/privacy-legal-acceptance.interface.d.ts.map +1 -0
  185. package/build/_modules/privacy-lifecycle/_models/privacy-legal-acceptance.interface.js +3 -0
  186. package/build/_modules/privacy-lifecycle/_models/privacy-legal-acceptance.interface.js.map +1 -0
  187. package/build/_modules/privacy-lifecycle/_models/privacy-lifecycle-adapter.interface.d.ts +15 -0
  188. package/build/_modules/privacy-lifecycle/_models/privacy-lifecycle-adapter.interface.d.ts.map +1 -0
  189. package/build/_modules/privacy-lifecycle/_models/privacy-lifecycle-adapter.interface.js +3 -0
  190. package/build/_modules/privacy-lifecycle/_models/privacy-lifecycle-adapter.interface.js.map +1 -0
  191. package/build/_modules/privacy-lifecycle/_models/privacy-lifecycle-settings.interface.d.ts +9 -0
  192. package/build/_modules/privacy-lifecycle/_models/privacy-lifecycle-settings.interface.d.ts.map +1 -0
  193. package/build/_modules/privacy-lifecycle/_models/privacy-lifecycle-settings.interface.js +3 -0
  194. package/build/_modules/privacy-lifecycle/_models/privacy-lifecycle-settings.interface.js.map +1 -0
  195. package/build/_modules/privacy-lifecycle/_models/privacy-request-create-result.interface.d.ts +7 -0
  196. package/build/_modules/privacy-lifecycle/_models/privacy-request-create-result.interface.d.ts.map +1 -0
  197. package/build/_modules/privacy-lifecycle/_models/privacy-request-create-result.interface.js +3 -0
  198. package/build/_modules/privacy-lifecycle/_models/privacy-request-create-result.interface.js.map +1 -0
  199. package/build/_modules/privacy-lifecycle/_models/privacy-request-open.interface.d.ts +10 -0
  200. package/build/_modules/privacy-lifecycle/_models/privacy-request-open.interface.d.ts.map +1 -0
  201. package/build/_modules/privacy-lifecycle/_models/privacy-request-open.interface.js +3 -0
  202. package/build/_modules/privacy-lifecycle/_models/privacy-request-open.interface.js.map +1 -0
  203. package/build/_modules/privacy-lifecycle/_models/privacy-request-persistence-create-result.interface.d.ts +7 -0
  204. package/build/_modules/privacy-lifecycle/_models/privacy-request-persistence-create-result.interface.d.ts.map +1 -0
  205. package/build/_modules/privacy-lifecycle/_models/privacy-request-persistence-create-result.interface.js +3 -0
  206. package/build/_modules/privacy-lifecycle/_models/privacy-request-persistence-create-result.interface.js.map +1 -0
  207. package/build/_modules/privacy-lifecycle/_models/privacy-request-record.interface.d.ts +21 -0
  208. package/build/_modules/privacy-lifecycle/_models/privacy-request-record.interface.d.ts.map +1 -0
  209. package/build/_modules/privacy-lifecycle/_models/privacy-request-record.interface.js +3 -0
  210. package/build/_modules/privacy-lifecycle/_models/privacy-request-record.interface.js.map +1 -0
  211. package/build/_modules/privacy-lifecycle/_models/privacy-request-result.interface.d.ts +8 -0
  212. package/build/_modules/privacy-lifecycle/_models/privacy-request-result.interface.d.ts.map +1 -0
  213. package/build/_modules/privacy-lifecycle/_models/privacy-request-result.interface.js +3 -0
  214. package/build/_modules/privacy-lifecycle/_models/privacy-request-result.interface.js.map +1 -0
  215. package/build/_modules/privacy-lifecycle/_models/privacy-request-view.interface.d.ts +20 -0
  216. package/build/_modules/privacy-lifecycle/_models/privacy-request-view.interface.d.ts.map +1 -0
  217. package/build/_modules/privacy-lifecycle/_models/privacy-request-view.interface.js +3 -0
  218. package/build/_modules/privacy-lifecycle/_models/privacy-request-view.interface.js.map +1 -0
  219. package/build/_modules/privacy-lifecycle/index.d.ts +33 -0
  220. package/build/_modules/privacy-lifecycle/index.d.ts.map +1 -0
  221. package/build/_modules/privacy-lifecycle/index.js +18 -0
  222. package/build/_modules/privacy-lifecycle/index.js.map +1 -0
  223. package/build/_modules/privacy-lifecycle/privacy-ledger.control-service.d.ts +28 -0
  224. package/build/_modules/privacy-lifecycle/privacy-ledger.control-service.d.ts.map +1 -0
  225. package/build/_modules/privacy-lifecycle/privacy-ledger.control-service.js +168 -0
  226. package/build/_modules/privacy-lifecycle/privacy-ledger.control-service.js.map +1 -0
  227. package/build/_modules/privacy-lifecycle/privacy-lifecycle.control-service.d.ts +42 -0
  228. package/build/_modules/privacy-lifecycle/privacy-lifecycle.control-service.d.ts.map +1 -0
  229. package/build/_modules/privacy-lifecycle/privacy-lifecycle.control-service.js +364 -0
  230. package/build/_modules/privacy-lifecycle/privacy-lifecycle.control-service.js.map +1 -0
  231. package/package.json +19 -1
  232. package/src/_modules/account-security/_enums/account-challenge-purpose.type-enum.ts +5 -0
  233. package/src/_modules/account-security/_enums/account-refresh-token-state.type-enum.ts +6 -0
  234. package/src/_modules/account-security/_enums/account-session-state.type-enum.ts +6 -0
  235. package/src/_modules/account-security/_models/account-challenge-adapter.interface.ts +17 -0
  236. package/src/_modules/account-security/_models/account-challenge-issued.interface.ts +6 -0
  237. package/src/_modules/account-security/_models/account-challenge-record.interface.ts +13 -0
  238. package/src/_modules/account-security/_models/account-challenge-result.interface.ts +8 -0
  239. package/src/_modules/account-security/_models/account-challenge-settings.interface.ts +9 -0
  240. package/src/_modules/account-security/_models/account-password-policy.interface.ts +11 -0
  241. package/src/_modules/account-security/_models/account-password-verification.interface.ts +5 -0
  242. package/src/_modules/account-security/_models/account-refresh-token-record.interface.ts +13 -0
  243. package/src/_modules/account-security/_models/account-session-adapter.interface.ts +19 -0
  244. package/src/_modules/account-security/_models/account-session-claims.interface.ts +7 -0
  245. package/src/_modules/account-security/_models/account-session-context.interface.ts +6 -0
  246. package/src/_modules/account-security/_models/account-session-create.interface.ts +8 -0
  247. package/src/_modules/account-security/_models/account-session-record.interface.ts +21 -0
  248. package/src/_modules/account-security/_models/account-session-rotate.interface.ts +11 -0
  249. package/src/_modules/account-security/_models/account-session-settings.interface.ts +11 -0
  250. package/src/_modules/account-security/_models/account-session-token-pair.interface.ts +8 -0
  251. package/src/_modules/account-security/_models/account-session-view.interface.ts +13 -0
  252. package/src/_modules/account-security/account-challenge.control-service.spec.ts +195 -0
  253. package/src/_modules/account-security/account-challenge.control-service.ts +164 -0
  254. package/src/_modules/account-security/account-password.control-service.spec.ts +96 -0
  255. package/src/_modules/account-security/account-password.control-service.ts +288 -0
  256. package/src/_modules/account-security/account-session.control-service.spec.ts +294 -0
  257. package/src/_modules/account-security/account-session.control-service.ts +376 -0
  258. package/src/_modules/account-security/index.ts +31 -0
  259. package/src/_modules/privacy-lifecycle/_enums/privacy-consent-decision.type-enum.ts +5 -0
  260. package/src/_modules/privacy-lifecycle/_enums/privacy-contributor-action.type-enum.ts +10 -0
  261. package/src/_modules/privacy-lifecycle/_enums/privacy-contributor-outcome.type-enum.ts +7 -0
  262. package/src/_modules/privacy-lifecycle/_enums/privacy-request-state.type-enum.ts +15 -0
  263. package/src/_modules/privacy-lifecycle/_enums/privacy-request.type-enum.ts +9 -0
  264. package/src/_modules/privacy-lifecycle/_models/privacy-consent-input.interface.ts +12 -0
  265. package/src/_modules/privacy-lifecycle/_models/privacy-consent-persistence-result.interface.ts +7 -0
  266. package/src/_modules/privacy-lifecycle/_models/privacy-consent-record.interface.ts +15 -0
  267. package/src/_modules/privacy-lifecycle/_models/privacy-consent-result.interface.ts +7 -0
  268. package/src/_modules/privacy-lifecycle/_models/privacy-consent-view.interface.ts +13 -0
  269. package/src/_modules/privacy-lifecycle/_models/privacy-contributor-context.interface.ts +9 -0
  270. package/src/_modules/privacy-lifecycle/_models/privacy-contributor-outcome.interface.ts +14 -0
  271. package/src/_modules/privacy-lifecycle/_models/privacy-contributor-plan.interface.ts +8 -0
  272. package/src/_modules/privacy-lifecycle/_models/privacy-contributor.interface.ts +17 -0
  273. package/src/_modules/privacy-lifecycle/_models/privacy-ledger-adapter.interface.ts +21 -0
  274. package/src/_modules/privacy-lifecycle/_models/privacy-ledger-result.interface.ts +9 -0
  275. package/src/_modules/privacy-lifecycle/_models/privacy-ledger-settings.interface.ts +7 -0
  276. package/src/_modules/privacy-lifecycle/_models/privacy-legal-acceptance-input.interface.ts +10 -0
  277. package/src/_modules/privacy-lifecycle/_models/privacy-legal-acceptance-persistence-result.interface.ts +7 -0
  278. package/src/_modules/privacy-lifecycle/_models/privacy-legal-acceptance-result.interface.ts +7 -0
  279. package/src/_modules/privacy-lifecycle/_models/privacy-legal-acceptance-view.interface.ts +11 -0
  280. package/src/_modules/privacy-lifecycle/_models/privacy-legal-acceptance.interface.ts +13 -0
  281. package/src/_modules/privacy-lifecycle/_models/privacy-lifecycle-adapter.interface.ts +19 -0
  282. package/src/_modules/privacy-lifecycle/_models/privacy-lifecycle-settings.interface.ts +9 -0
  283. package/src/_modules/privacy-lifecycle/_models/privacy-request-create-result.interface.ts +7 -0
  284. package/src/_modules/privacy-lifecycle/_models/privacy-request-open.interface.ts +10 -0
  285. package/src/_modules/privacy-lifecycle/_models/privacy-request-persistence-create-result.interface.ts +7 -0
  286. package/src/_modules/privacy-lifecycle/_models/privacy-request-record.interface.ts +21 -0
  287. package/src/_modules/privacy-lifecycle/_models/privacy-request-result.interface.ts +8 -0
  288. package/src/_modules/privacy-lifecycle/_models/privacy-request-view.interface.ts +20 -0
  289. package/src/_modules/privacy-lifecycle/index.ts +40 -0
  290. package/src/_modules/privacy-lifecycle/privacy-ledger.control-service.spec.ts +206 -0
  291. package/src/_modules/privacy-lifecycle/privacy-ledger.control-service.ts +253 -0
  292. package/src/_modules/privacy-lifecycle/privacy-lifecycle.control-service.spec.ts +353 -0
  293. package/src/_modules/privacy-lifecycle/privacy-lifecycle.control-service.ts +586 -0
package/README.md CHANGED
@@ -301,6 +301,33 @@ Dynamo-NTS provides an abstract `DyNTS_AuthService` class that you can extend to
301
301
  - Session management
302
302
  - Route-level security configuration
303
303
 
304
+ For product-local accounts, the optional `@futdevpro/nts-dynamo/account-security` entry point adds production
305
+ security primitives without coupling a product to a shared account provider:
306
+
307
+ - versioned adaptive password hashing and rehash detection;
308
+ - hash-only email-verification and password-reset challenges with atomic one-time consumption;
309
+ - opaque, hash-only access credentials backed by revocable server-side sessions;
310
+ - one-time refresh rotation, replay detection, session listing and subject-wide revocation.
311
+
312
+ Persistence remains application-owned through explicit atomic adapters. Transports must never put the raw
313
+ credentials in URLs, logs, analytics or durable client storage. A consuming application must also apply its
314
+ rate-limit, authorization, cookie/storage and audit-redaction policy at the API boundary.
315
+
316
+ ### Privacy lifecycle
317
+
318
+ The optional `@futdevpro/nts-dynamo/privacy-lifecycle` entry point provides the shared machinery for standalone
319
+ GDPR-capable products:
320
+
321
+ - identity-gated, deadline-bearing data-subject requests;
322
+ - explicit `received → identity-verified → scoped → planned → executing → verifying` processing;
323
+ - deterministic product-domain contributors with resumable partial outcomes and documented retention bases;
324
+ - append-only, checksummed legal acceptances;
325
+ - versioned, purpose-specific consent grants and withdrawals.
326
+
327
+ The Bedrock module coordinates state and evidence only. Each consuming product must register every data domain,
328
+ implement hard-delete/anonymization/export behavior, and provide transaction-safe persistence. A request is
329
+ never reported complete while a registered contributor has a failed outcome.
330
+
304
331
  ## Modules Overview
305
332
 
306
333
  Dynamo-NTS is organized into focused modules, each providing specific functionality:
@@ -0,0 +1,131 @@
1
+ # Standalone account security and privacy Bedrock
2
+
3
+ **Date:** 2026-08-18
4
+ **Status:** implemented and verified at package-contract level
5
+ **Packages:** `@futdevpro/nts-dynamo/account-security`, `@futdevpro/nts-dynamo/privacy-lifecycle`
6
+
7
+ ## Purpose and boundary
8
+
9
+ This capability lets a Dynamo application own its identity and GDPR lifecycle without redirecting to, or
10
+ depending on, a shared Fleet account. It is reusable Bedrock code, not a complete application account system.
11
+ The consuming product remains responsible for typed persistence models, email delivery, organization and
12
+ permission decisions, HTTP transport, secure browser credential handling, rate limiting, audit wiring and each
13
+ product data-domain contributor.
14
+
15
+ The modules deliberately expose direct Dynamo contracts. They do not add provider-swapping or replacement
16
+ abstractions around Dynamo.
17
+
18
+ ## Account-security contract
19
+
20
+ ### Passwords
21
+
22
+ `DyNTS_AccountPassword_ControlService` uses the versioned `dyn-scrypt-v1` format with a unique random salt,
23
+ bounded scrypt parameters and timing-safe verification. It supports a SHA-256 common-password denylist and
24
+ returns `needsRehash` when stored parameters differ from current policy. Malformed stored hashes and
25
+ attacker-controlled work factors produce a safe negative result while still performing bounded dummy work.
26
+ Passwords are never copied into errors.
27
+
28
+ ### Email verification and password reset
29
+
30
+ `DyNTS_AccountChallenge_ControlService` issues opaque 256-bit-or-stronger credentials for two isolated purposes:
31
+ email verification and password reset. Only SHA-256 token hashes enter persistence. Issuing a replacement
32
+ atomically revokes its active predecessor for the same subject and purpose. Consumption must be a single
33
+ compare-and-set operation that validates purpose, active state and expiry before marking the record consumed.
34
+ Raw tokens are returned only once after successful persistence.
35
+
36
+ Enumeration-neutral register/reset responses are an HTTP-boundary responsibility: the service must not reveal
37
+ whether an email exists. The application must rate-limit issue and consume operations and deliver the raw token
38
+ only through an approved out-of-band channel.
39
+
40
+ ### Sessions
41
+
42
+ `DyNTS_AccountSession_ControlService` uses opaque random access and refresh credentials; no self-contained JWT is
43
+ required. Only hashes are stored. An access credential resolves through an active server-side session, so
44
+ logout, password change, account restriction and incident response can revoke it immediately.
45
+
46
+ Refresh credentials are one-time ledger entries. Rotation uses an adapter-provided compare-and-set transaction.
47
+ Reuse of an already consumed credential, including a concurrent rotation race, revokes the entire family. The
48
+ user-safe session projection excludes subject, family and token hashes. The application decides authorization
49
+ before calling individual or subject-wide revocation methods.
50
+
51
+ The adapter contract is normative: session creation, token replacement and token-state changes must be atomic.
52
+ An in-memory or multi-step production adapter would invalidate replay protection.
53
+
54
+ ## Privacy lifecycle contract
55
+
56
+ ### Data-subject requests
57
+
58
+ `DyNTS_PrivacyLifecycle_ControlService` creates subject-, organization- and request-type-scoped idempotency
59
+ hashes. The raw idempotency key is never stored. Each request has an explicit policy-supplied deadline and uses
60
+ the following durable state family:
61
+
62
+ `received → identity-verified → scoped → planned → executing → verifying → completed`
63
+
64
+ Supported terminal/non-happy states are `partially-completed`, `rejected-with-reason`, `cancelled`,
65
+ `failed-retryable` and `failed-terminal`. The current orchestrator produces `completed` or
66
+ `partially-completed`; policy-specific rejection/cancellation/failure entry points remain consumer-owned until a
67
+ shared cross-product transition contract is justified.
68
+
69
+ Every registered contributor is ordered deterministically. Its durable `plan`, idempotent `execute` and
70
+ read-only `verify` operations return content-free structured outcomes. Planning finishes and is persisted before
71
+ the request enters `planned`; a planning failure becomes a resumable partial outcome without executing another
72
+ domain against an incomplete plan set. Successful contributors are skipped on resume and failed contributors
73
+ are retried. A retention result is valid only with an explicit matching basis code. Cross-subject reads return
74
+ the same not-found response as an absent request.
75
+
76
+ The consuming application must register contributors for identity, session, membership, pipelines/projects,
77
+ agent sessions, artifacts, audit, support, subscription/billing and backup where those domains exist. Export
78
+ contributors must generate machine-readable, checksummed, short-lived artifacts; erasure contributors must use
79
+ hard delete by default and anonymize only where a documented retention basis requires it.
80
+
81
+ ### Legal acceptance and consent
82
+
83
+ `DyNTS_PrivacyLedger_ControlService` keeps legal acceptance separate from optional-purpose consent. Legal records
84
+ bind the subject to an exact document type, version and SHA-256 checksum. Consent is append-only and scoped by
85
+ purpose and policy version; withdrawal creates a new event instead of mutating history. The ledger projection
86
+ returns both full history and the latest decision per purpose.
87
+
88
+ Adapters must enforce tenant/subject scoping and idempotency uniqueness. Document and privacy-notice content is
89
+ not stored in these event records; the checksum binds the separately versioned canonical document.
90
+
91
+ ## Data-minimization and diagnostics
92
+
93
+ - No password, bearer credential, challenge credential or raw idempotency key is persisted by these services.
94
+ - Stable error messages contain no email address, token, password, file content, cell content or contributor
95
+ exception text.
96
+ - Session context is intentionally pre-redacted: device label plus IP and user-agent hashes only.
97
+ - Contributor outcomes carry codes, counts, checksums and retention basis, not exported personal data.
98
+ - User-facing request, consent and legal-acceptance views omit idempotency hashes and request fingerprints;
99
+ those fields remain server-side persistence metadata.
100
+ - Consumers must preserve this boundary in logs, audits, HTTP errors and analytics snapshots.
101
+
102
+ ## Required production integrations
103
+
104
+ Before a product can claim production readiness, it must provide and test:
105
+
106
+ 1. transaction-safe MongoDB adapters for challenges, sessions, privacy requests and ledgers;
107
+ 2. normalized unique identity records and verified-email privilege gates;
108
+ 3. API rate limits for register, login, challenge issue/consume and refresh;
109
+ 4. a reviewed browser credential transport/storage threat model;
110
+ 5. organization membership and permission checks at every tenant-scoped route;
111
+ 6. all applicable DSAR contributors, export delivery expiry and backup restore/re-erasure procedure;
112
+ 7. content-redaction snapshots for logs, errors, analytics and audit events;
113
+ 8. automated feature and cross-feature user-journey E2E coverage including cleanup.
114
+
115
+ ## Verification
116
+
117
+ Measured on 2026-08-18:
118
+
119
+ - account password suite: 7 specs, 0 failures;
120
+ - session suite: 10 specs, 0 failures;
121
+ - one-time challenge suite: 5 specs, 0 failures;
122
+ - privacy lifecycle suite: 7 specs, 0 failures;
123
+ - privacy ledger suite: 5 specs, 0 failures;
124
+ - complete package suite: 1,687 specs, 0 failures, 146 explicitly pending specs;
125
+ - TypeScript build: passed;
126
+ - changed-module ESLint: passed with zero warnings;
127
+ - package import validator: existing baseline, 82 findings in 76 files;
128
+ - package naming validator: existing baseline, 101 findings in 68 files.
129
+
130
+ The repository-wide convention findings predate this capability and are not represented as fixed. The new
131
+ modules pass their direct compiler, lint and regression gates.
@@ -0,0 +1,6 @@
1
+ /** Supported one-time account challenge purposes. */
2
+ export declare enum DyNTS_AccountChallengePurpose_Type {
3
+ emailVerification = "email-verification",
4
+ passwordReset = "password-reset"
5
+ }
6
+ //# sourceMappingURL=account-challenge-purpose.type-enum.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"account-challenge-purpose.type-enum.d.ts","sourceRoot":"","sources":["../../../../src/_modules/account-security/_enums/account-challenge-purpose.type-enum.ts"],"names":[],"mappings":"AAAA,qDAAqD;AACrD,oBAAY,kCAAkC;IAC5C,iBAAiB,uBAAuB;IACxC,aAAa,mBAAmB;CACjC"}
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DyNTS_AccountChallengePurpose_Type = void 0;
4
+ /** Supported one-time account challenge purposes. */
5
+ var DyNTS_AccountChallengePurpose_Type;
6
+ (function (DyNTS_AccountChallengePurpose_Type) {
7
+ DyNTS_AccountChallengePurpose_Type["emailVerification"] = "email-verification";
8
+ DyNTS_AccountChallengePurpose_Type["passwordReset"] = "password-reset";
9
+ })(DyNTS_AccountChallengePurpose_Type || (exports.DyNTS_AccountChallengePurpose_Type = DyNTS_AccountChallengePurpose_Type = {}));
10
+ //# sourceMappingURL=account-challenge-purpose.type-enum.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"account-challenge-purpose.type-enum.js","sourceRoot":"","sources":["../../../../src/_modules/account-security/_enums/account-challenge-purpose.type-enum.ts"],"names":[],"mappings":";;;AAAA,qDAAqD;AACrD,IAAY,kCAGX;AAHD,WAAY,kCAAkC;IAC5C,8EAAwC,CAAA;IACxC,sEAAgC,CAAA;AAClC,CAAC,EAHW,kCAAkC,kDAAlC,kCAAkC,QAG7C"}
@@ -0,0 +1,7 @@
1
+ /** One-time refresh-token ledger states. */
2
+ export declare enum DyNTS_AccountRefreshTokenState_Type {
3
+ active = "active",
4
+ used = "used",
5
+ revoked = "revoked"
6
+ }
7
+ //# sourceMappingURL=account-refresh-token-state.type-enum.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"account-refresh-token-state.type-enum.d.ts","sourceRoot":"","sources":["../../../../src/_modules/account-security/_enums/account-refresh-token-state.type-enum.ts"],"names":[],"mappings":"AAAA,4CAA4C;AAC5C,oBAAY,mCAAmC;IAC7C,MAAM,WAAW;IACjB,IAAI,SAAS;IACb,OAAO,YAAY;CACpB"}
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DyNTS_AccountRefreshTokenState_Type = void 0;
4
+ /** One-time refresh-token ledger states. */
5
+ var DyNTS_AccountRefreshTokenState_Type;
6
+ (function (DyNTS_AccountRefreshTokenState_Type) {
7
+ DyNTS_AccountRefreshTokenState_Type["active"] = "active";
8
+ DyNTS_AccountRefreshTokenState_Type["used"] = "used";
9
+ DyNTS_AccountRefreshTokenState_Type["revoked"] = "revoked";
10
+ })(DyNTS_AccountRefreshTokenState_Type || (exports.DyNTS_AccountRefreshTokenState_Type = DyNTS_AccountRefreshTokenState_Type = {}));
11
+ //# sourceMappingURL=account-refresh-token-state.type-enum.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"account-refresh-token-state.type-enum.js","sourceRoot":"","sources":["../../../../src/_modules/account-security/_enums/account-refresh-token-state.type-enum.ts"],"names":[],"mappings":";;;AAAA,4CAA4C;AAC5C,IAAY,mCAIX;AAJD,WAAY,mCAAmC;IAC7C,wDAAiB,CAAA;IACjB,oDAAa,CAAA;IACb,0DAAmB,CAAA;AACrB,CAAC,EAJW,mCAAmC,mDAAnC,mCAAmC,QAI9C"}
@@ -0,0 +1,7 @@
1
+ /** Persisted standalone account-session states. */
2
+ export declare enum DyNTS_AccountSessionState_Type {
3
+ active = "active",
4
+ revoked = "revoked",
5
+ expired = "expired"
6
+ }
7
+ //# sourceMappingURL=account-session-state.type-enum.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"account-session-state.type-enum.d.ts","sourceRoot":"","sources":["../../../../src/_modules/account-security/_enums/account-session-state.type-enum.ts"],"names":[],"mappings":"AAAA,mDAAmD;AACnD,oBAAY,8BAA8B;IACxC,MAAM,WAAW;IACjB,OAAO,YAAY;IACnB,OAAO,YAAY;CACpB"}
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DyNTS_AccountSessionState_Type = void 0;
4
+ /** Persisted standalone account-session states. */
5
+ var DyNTS_AccountSessionState_Type;
6
+ (function (DyNTS_AccountSessionState_Type) {
7
+ DyNTS_AccountSessionState_Type["active"] = "active";
8
+ DyNTS_AccountSessionState_Type["revoked"] = "revoked";
9
+ DyNTS_AccountSessionState_Type["expired"] = "expired";
10
+ })(DyNTS_AccountSessionState_Type || (exports.DyNTS_AccountSessionState_Type = DyNTS_AccountSessionState_Type = {}));
11
+ //# sourceMappingURL=account-session-state.type-enum.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"account-session-state.type-enum.js","sourceRoot":"","sources":["../../../../src/_modules/account-security/_enums/account-session-state.type-enum.ts"],"names":[],"mappings":";;;AAAA,mDAAmD;AACnD,IAAY,8BAIX;AAJD,WAAY,8BAA8B;IACxC,mDAAiB,CAAA;IACjB,qDAAmB,CAAA;IACnB,qDAAmB,CAAA;AACrB,CAAC,EAJW,8BAA8B,8CAA9B,8BAA8B,QAIzC"}
@@ -0,0 +1,9 @@
1
+ import { DyNTS_AccountChallengePurpose_Type } from '../_enums/account-challenge-purpose.type-enum';
2
+ import { DyNTS_AccountChallengeRecord_Interface } from './account-challenge-record.interface';
3
+ /** Atomic persistence contract for replacing and consuming one-time account challenges. */
4
+ export interface DyNTS_AccountChallengeAdapter_Interface {
5
+ replaceActiveChallenge(record: DyNTS_AccountChallengeRecord_Interface): Promise<void>;
6
+ consumeActiveChallenge(tokenHash: string, purpose: DyNTS_AccountChallengePurpose_Type, consumedAt: string): Promise<DyNTS_AccountChallengeRecord_Interface | null>;
7
+ revokeSubjectChallenges(subjectId: string, purpose: DyNTS_AccountChallengePurpose_Type, revokedAt: string): Promise<void>;
8
+ }
9
+ //# sourceMappingURL=account-challenge-adapter.interface.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"account-challenge-adapter.interface.d.ts","sourceRoot":"","sources":["../../../../src/_modules/account-security/_models/account-challenge-adapter.interface.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kCAAkC,EAAE,MAAM,+CAA+C,CAAC;AACnG,OAAO,EAAE,sCAAsC,EAAE,MAAM,sCAAsC,CAAC;AAE9F,2FAA2F;AAC3F,MAAM,WAAW,uCAAuC;IACtD,sBAAsB,CAAC,MAAM,EAAE,sCAAsC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACtF,sBAAsB,CACpB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,kCAAkC,EAC3C,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,sCAAsC,GAAG,IAAI,CAAC,CAAC;IAC1D,uBAAuB,CACrB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,kCAAkC,EAC3C,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,IAAI,CAAC,CAAC;CAClB"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=account-challenge-adapter.interface.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"account-challenge-adapter.interface.js","sourceRoot":"","sources":["../../../../src/_modules/account-security/_models/account-challenge-adapter.interface.ts"],"names":[],"mappings":""}
@@ -0,0 +1,7 @@
1
+ /** Raw one-time challenge returned once after its hash is persisted. */
2
+ export interface DyNTS_AccountChallengeIssued_Interface {
3
+ challengeId: string;
4
+ token: string;
5
+ expiresAt: string;
6
+ }
7
+ //# sourceMappingURL=account-challenge-issued.interface.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"account-challenge-issued.interface.d.ts","sourceRoot":"","sources":["../../../../src/_modules/account-security/_models/account-challenge-issued.interface.ts"],"names":[],"mappings":"AAAA,wEAAwE;AACxE,MAAM,WAAW,sCAAsC;IACrD,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;CACnB"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=account-challenge-issued.interface.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"account-challenge-issued.interface.js","sourceRoot":"","sources":["../../../../src/_modules/account-security/_models/account-challenge-issued.interface.ts"],"names":[],"mappings":""}
@@ -0,0 +1,13 @@
1
+ import { DyNTS_AccountChallengePurpose_Type } from '../_enums/account-challenge-purpose.type-enum';
2
+ /** Server-only one-time account challenge record containing a credential hash only. */
3
+ export interface DyNTS_AccountChallengeRecord_Interface {
4
+ challengeId: string;
5
+ subjectId: string;
6
+ purpose: DyNTS_AccountChallengePurpose_Type;
7
+ tokenHash: string;
8
+ createdAt: string;
9
+ expiresAt: string;
10
+ consumedAt: string;
11
+ revokedAt: string;
12
+ }
13
+ //# sourceMappingURL=account-challenge-record.interface.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"account-challenge-record.interface.d.ts","sourceRoot":"","sources":["../../../../src/_modules/account-security/_models/account-challenge-record.interface.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kCAAkC,EAAE,MAAM,+CAA+C,CAAC;AAEnG,uFAAuF;AACvF,MAAM,WAAW,sCAAsC;IACrD,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,kCAAkC,CAAC;IAC5C,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;CACnB"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=account-challenge-record.interface.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"account-challenge-record.interface.js","sourceRoot":"","sources":["../../../../src/_modules/account-security/_models/account-challenge-record.interface.ts"],"names":[],"mappings":""}
@@ -0,0 +1,8 @@
1
+ import { DyNTS_AccountChallengePurpose_Type } from '../_enums/account-challenge-purpose.type-enum';
2
+ /** Trusted identity binding returned after an atomic one-time challenge consumption. */
3
+ export interface DyNTS_AccountChallengeResult_Interface {
4
+ challengeId: string;
5
+ subjectId: string;
6
+ purpose: DyNTS_AccountChallengePurpose_Type;
7
+ }
8
+ //# sourceMappingURL=account-challenge-result.interface.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"account-challenge-result.interface.d.ts","sourceRoot":"","sources":["../../../../src/_modules/account-security/_models/account-challenge-result.interface.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kCAAkC,EAAE,MAAM,+CAA+C,CAAC;AAEnG,wFAAwF;AACxF,MAAM,WAAW,sCAAsC;IACrD,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,kCAAkC,CAAC;CAC7C"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=account-challenge-result.interface.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"account-challenge-result.interface.js","sourceRoot":"","sources":["../../../../src/_modules/account-security/_models/account-challenge-result.interface.ts"],"names":[],"mappings":""}
@@ -0,0 +1,9 @@
1
+ import { DyNTS_AccountChallengeAdapter_Interface } from './account-challenge-adapter.interface';
2
+ /** Runtime settings for one-time account challenges. */
3
+ export interface DyNTS_AccountChallengeSettings_Interface {
4
+ adapter: DyNTS_AccountChallengeAdapter_Interface;
5
+ ttlMs?: number;
6
+ tokenBytes?: number;
7
+ clock?: () => Date;
8
+ }
9
+ //# sourceMappingURL=account-challenge-settings.interface.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"account-challenge-settings.interface.d.ts","sourceRoot":"","sources":["../../../../src/_modules/account-security/_models/account-challenge-settings.interface.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uCAAuC,EAAE,MAAM,uCAAuC,CAAC;AAEhG,wDAAwD;AACxD,MAAM,WAAW,wCAAwC;IACvD,OAAO,EAAE,uCAAuC,CAAC;IACjD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,IAAI,CAAC;CACpB"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=account-challenge-settings.interface.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"account-challenge-settings.interface.js","sourceRoot":"","sources":["../../../../src/_modules/account-security/_models/account-challenge-settings.interface.ts"],"names":[],"mappings":""}
@@ -0,0 +1,12 @@
1
+ /** Password-hashing and validation policy for the standalone Dynamo account capability. */
2
+ export interface DyNTS_AccountPasswordPolicy_Interface {
3
+ minLength: number;
4
+ maxLength: number;
5
+ scryptCost: number;
6
+ scryptBlockSize: number;
7
+ scryptParallelization: number;
8
+ derivedKeyLength: number;
9
+ saltLength: number;
10
+ commonPasswordSha256: string[];
11
+ }
12
+ //# sourceMappingURL=account-password-policy.interface.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"account-password-policy.interface.d.ts","sourceRoot":"","sources":["../../../../src/_modules/account-security/_models/account-password-policy.interface.ts"],"names":[],"mappings":"AAAA,2FAA2F;AAC3F,MAAM,WAAW,qCAAqC;IACpD,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,eAAe,EAAE,MAAM,CAAC;IACxB,qBAAqB,EAAE,MAAM,CAAC;IAC9B,gBAAgB,EAAE,MAAM,CAAC;IACzB,UAAU,EAAE,MAAM,CAAC;IACnB,oBAAoB,EAAE,MAAM,EAAE,CAAC;CAChC"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=account-password-policy.interface.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"account-password-policy.interface.js","sourceRoot":"","sources":["../../../../src/_modules/account-security/_models/account-password-policy.interface.ts"],"names":[],"mappings":""}
@@ -0,0 +1,6 @@
1
+ /** Content-free password verification result; never carries the password or derived bytes. */
2
+ export interface DyNTS_AccountPasswordVerification_Interface {
3
+ isValid: boolean;
4
+ needsRehash: boolean;
5
+ }
6
+ //# sourceMappingURL=account-password-verification.interface.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"account-password-verification.interface.d.ts","sourceRoot":"","sources":["../../../../src/_modules/account-security/_models/account-password-verification.interface.ts"],"names":[],"mappings":"AAAA,8FAA8F;AAC9F,MAAM,WAAW,2CAA2C;IAC1D,OAAO,EAAE,OAAO,CAAC;IACjB,WAAW,EAAE,OAAO,CAAC;CACtB"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=account-password-verification.interface.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"account-password-verification.interface.js","sourceRoot":"","sources":["../../../../src/_modules/account-security/_models/account-password-verification.interface.ts"],"names":[],"mappings":""}
@@ -0,0 +1,13 @@
1
+ import { DyNTS_AccountRefreshTokenState_Type } from '../_enums/account-refresh-token-state.type-enum';
2
+ /** Server-only one-time refresh-token ledger record. */
3
+ export interface DyNTS_AccountRefreshTokenRecord_Interface {
4
+ tokenHash: string;
5
+ sessionId: string;
6
+ familyId: string;
7
+ subjectId: string;
8
+ generation: number;
9
+ state: DyNTS_AccountRefreshTokenState_Type;
10
+ expiresAt: string;
11
+ usedAt: string;
12
+ }
13
+ //# sourceMappingURL=account-refresh-token-record.interface.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"account-refresh-token-record.interface.d.ts","sourceRoot":"","sources":["../../../../src/_modules/account-security/_models/account-refresh-token-record.interface.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mCAAmC,EAAE,MAAM,iDAAiD,CAAC;AAEtG,wDAAwD;AACxD,MAAM,WAAW,yCAAyC;IACxD,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,mCAAmC,CAAC;IAC3C,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;CAChB"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=account-refresh-token-record.interface.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"account-refresh-token-record.interface.js","sourceRoot":"","sources":["../../../../src/_modules/account-security/_models/account-refresh-token-record.interface.ts"],"names":[],"mappings":""}
@@ -0,0 +1,19 @@
1
+ import { DyNTS_AccountRefreshTokenRecord_Interface } from './account-refresh-token-record.interface';
2
+ import { DyNTS_AccountSessionCreate_Interface } from './account-session-create.interface';
3
+ import { DyNTS_AccountSessionRecord_Interface } from './account-session-record.interface';
4
+ import { DyNTS_AccountSessionRotate_Interface } from './account-session-rotate.interface';
5
+ /**
6
+ * Persistence contract. Implementations must make create and rotate atomic and apply compare-and-set semantics.
7
+ */
8
+ export interface DyNTS_AccountSessionAdapter_Interface {
9
+ createSession(set: DyNTS_AccountSessionCreate_Interface): Promise<void>;
10
+ findSessionById(sessionId: string): Promise<DyNTS_AccountSessionRecord_Interface | null>;
11
+ findSessionByAccessTokenHash(accessTokenHash: string): Promise<DyNTS_AccountSessionRecord_Interface | null>;
12
+ findRefreshTokenByHash(tokenHash: string): Promise<DyNTS_AccountRefreshTokenRecord_Interface | null>;
13
+ rotateSession(set: DyNTS_AccountSessionRotate_Interface): Promise<boolean>;
14
+ revokeSession(sessionId: string, revokedAt: string, reasonCode: string): Promise<void>;
15
+ revokeFamily(familyId: string, revokedAt: string, reasonCode: string): Promise<void>;
16
+ revokeSubject(subjectId: string, revokedAt: string, reasonCode: string): Promise<void>;
17
+ listSubjectSessions(subjectId: string): Promise<DyNTS_AccountSessionRecord_Interface[]>;
18
+ }
19
+ //# sourceMappingURL=account-session-adapter.interface.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"account-session-adapter.interface.d.ts","sourceRoot":"","sources":["../../../../src/_modules/account-security/_models/account-session-adapter.interface.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,yCAAyC,EAAE,MAAM,0CAA0C,CAAC;AACrG,OAAO,EAAE,oCAAoC,EAAE,MAAM,oCAAoC,CAAC;AAC1F,OAAO,EAAE,oCAAoC,EAAE,MAAM,oCAAoC,CAAC;AAC1F,OAAO,EAAE,oCAAoC,EAAE,MAAM,oCAAoC,CAAC;AAE1F;;GAEG;AACH,MAAM,WAAW,qCAAqC;IACpD,aAAa,CAAC,GAAG,EAAE,oCAAoC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACxE,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,oCAAoC,GAAG,IAAI,CAAC,CAAC;IACzF,4BAA4B,CAAC,eAAe,EAAE,MAAM,GAAG,OAAO,CAAC,oCAAoC,GAAG,IAAI,CAAC,CAAC;IAC5G,sBAAsB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,yCAAyC,GAAG,IAAI,CAAC,CAAC;IACrG,aAAa,CAAC,GAAG,EAAE,oCAAoC,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAC3E,aAAa,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACvF,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACrF,aAAa,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACvF,mBAAmB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,oCAAoC,EAAE,CAAC,CAAC;CACzF"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=account-session-adapter.interface.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"account-session-adapter.interface.js","sourceRoot":"","sources":["../../../../src/_modules/account-security/_models/account-session-adapter.interface.ts"],"names":[],"mappings":""}
@@ -0,0 +1,8 @@
1
+ /** Authenticated server-side subject projection derived from an opaque access token. */
2
+ export interface DyNTS_AccountSessionClaims_Interface {
3
+ subjectId: string;
4
+ sessionId: string;
5
+ familyId: string;
6
+ authorizationVersion: number;
7
+ }
8
+ //# sourceMappingURL=account-session-claims.interface.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"account-session-claims.interface.d.ts","sourceRoot":"","sources":["../../../../src/_modules/account-security/_models/account-session-claims.interface.ts"],"names":[],"mappings":"AAAA,wFAAwF;AACxF,MAAM,WAAW,oCAAoC;IACnD,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,oBAAoB,EAAE,MAAM,CAAC;CAC9B"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=account-session-claims.interface.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"account-session-claims.interface.js","sourceRoot":"","sources":["../../../../src/_modules/account-security/_models/account-session-claims.interface.ts"],"names":[],"mappings":""}
@@ -0,0 +1,7 @@
1
+ /** Minimal, pre-redacted session context persisted for user-facing session recognition. */
2
+ export interface DyNTS_AccountSessionContext_Interface {
3
+ deviceName: string;
4
+ ipAddressHash: string;
5
+ userAgentHash: string;
6
+ }
7
+ //# sourceMappingURL=account-session-context.interface.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"account-session-context.interface.d.ts","sourceRoot":"","sources":["../../../../src/_modules/account-security/_models/account-session-context.interface.ts"],"names":[],"mappings":"AAAA,2FAA2F;AAC3F,MAAM,WAAW,qCAAqC;IACpD,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;IACtB,aAAa,EAAE,MAAM,CAAC;CACvB"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=account-session-context.interface.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"account-session-context.interface.js","sourceRoot":"","sources":["../../../../src/_modules/account-security/_models/account-session-context.interface.ts"],"names":[],"mappings":""}
@@ -0,0 +1,8 @@
1
+ import { DyNTS_AccountRefreshTokenRecord_Interface } from './account-refresh-token-record.interface';
2
+ import { DyNTS_AccountSessionRecord_Interface } from './account-session-record.interface';
3
+ /** Atomic session creation payload for a concrete Dynamo DataService adapter. */
4
+ export interface DyNTS_AccountSessionCreate_Interface {
5
+ session: DyNTS_AccountSessionRecord_Interface;
6
+ refreshToken: DyNTS_AccountRefreshTokenRecord_Interface;
7
+ }
8
+ //# sourceMappingURL=account-session-create.interface.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"account-session-create.interface.d.ts","sourceRoot":"","sources":["../../../../src/_modules/account-security/_models/account-session-create.interface.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,yCAAyC,EAAE,MAAM,0CAA0C,CAAC;AACrG,OAAO,EAAE,oCAAoC,EAAE,MAAM,oCAAoC,CAAC;AAE1F,iFAAiF;AACjF,MAAM,WAAW,oCAAoC;IACnD,OAAO,EAAE,oCAAoC,CAAC;IAC9C,YAAY,EAAE,yCAAyC,CAAC;CACzD"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=account-session-create.interface.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"account-session-create.interface.js","sourceRoot":"","sources":["../../../../src/_modules/account-security/_models/account-session-create.interface.ts"],"names":[],"mappings":""}
@@ -0,0 +1,21 @@
1
+ import { DyNTS_AccountSessionState_Type } from '../_enums/account-session-state.type-enum';
2
+ import { DyNTS_AccountSessionContext_Interface } from './account-session-context.interface';
3
+ /** Server-only session record. It stores token hashes, never bearer credentials. */
4
+ export interface DyNTS_AccountSessionRecord_Interface {
5
+ sessionId: string;
6
+ familyId: string;
7
+ subjectId: string;
8
+ accessTokenHash: string;
9
+ accessExpiresAt: string;
10
+ refreshExpiresAt: string;
11
+ state: DyNTS_AccountSessionState_Type;
12
+ generation: number;
13
+ revision: number;
14
+ authorizationVersion: number;
15
+ createdAt: string;
16
+ lastRotatedAt: string;
17
+ revokedAt: string;
18
+ revocationReason: string;
19
+ context: DyNTS_AccountSessionContext_Interface;
20
+ }
21
+ //# sourceMappingURL=account-session-record.interface.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"account-session-record.interface.d.ts","sourceRoot":"","sources":["../../../../src/_modules/account-security/_models/account-session-record.interface.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,8BAA8B,EAAE,MAAM,2CAA2C,CAAC;AAC3F,OAAO,EAAE,qCAAqC,EAAE,MAAM,qCAAqC,CAAC;AAE5F,oFAAoF;AACpF,MAAM,WAAW,oCAAoC;IACnD,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,eAAe,EAAE,MAAM,CAAC;IACxB,eAAe,EAAE,MAAM,CAAC;IACxB,gBAAgB,EAAE,MAAM,CAAC;IACzB,KAAK,EAAE,8BAA8B,CAAC;IACtC,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,oBAAoB,EAAE,MAAM,CAAC;IAC7B,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,gBAAgB,EAAE,MAAM,CAAC;IACzB,OAAO,EAAE,qCAAqC,CAAC;CAChD"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=account-session-record.interface.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"account-session-record.interface.js","sourceRoot":"","sources":["../../../../src/_modules/account-security/_models/account-session-record.interface.ts"],"names":[],"mappings":""}