emilsoftware-utilities 2.0.0-dev.5 → 2.0.0-dev.51

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 (638) hide show
  1. package/README.MD +199 -38
  2. package/dist/ContractGenerator.d.ts +4 -3
  3. package/dist/ContractGenerator.js +15 -5
  4. package/dist/ContractGenerator.js.map +1 -1
  5. package/dist/DailyFileTransport.d.ts +21 -0
  6. package/dist/DailyFileTransport.js +74 -0
  7. package/dist/DailyFileTransport.js.map +1 -0
  8. package/dist/DatabaseUpdater.d.ts +1 -1
  9. package/dist/DatabaseUpdater.js +32 -29
  10. package/dist/DatabaseUpdater.js.map +1 -1
  11. package/dist/EmilsoftwareModule.d.ts +6 -0
  12. package/dist/EmilsoftwareModule.js.map +1 -1
  13. package/dist/ExecutionTimeLogger.d.ts +2 -2
  14. package/dist/ExecutionTimeLogger.js +5 -4
  15. package/dist/ExecutionTimeLogger.js.map +1 -1
  16. package/dist/Logger.d.ts +22 -11
  17. package/dist/Logger.js +132 -119
  18. package/dist/Logger.js.map +1 -1
  19. package/dist/Orm.d.ts +32 -12
  20. package/dist/Orm.js +194 -153
  21. package/dist/Orm.js.map +1 -1
  22. package/dist/RoutesLoggerMiddleware.js.map +1 -1
  23. package/dist/Utilities.d.ts +18 -8
  24. package/dist/Utilities.js +143 -38
  25. package/dist/Utilities.js.map +1 -1
  26. package/dist/accessi-module/AccessiModule.d.ts +116 -1
  27. package/dist/accessi-module/AccessiModule.js +38 -5
  28. package/dist/accessi-module/AccessiModule.js.map +1 -1
  29. package/dist/accessi-module/Console/accessiFetch.d.ts +16 -0
  30. package/dist/accessi-module/Console/accessiFetch.js +87 -0
  31. package/dist/accessi-module/Console/accessiFetch.js.map +1 -0
  32. package/dist/accessi-module/Console/console.css +735 -0
  33. package/dist/accessi-module/Console/console.d.ts +1 -0
  34. package/dist/accessi-module/Console/console.js +3569 -0
  35. package/dist/accessi-module/Console/console.js.map +1 -0
  36. package/dist/accessi-module/Console/generated/accessiApi.d.ts +638 -0
  37. package/dist/accessi-module/Console/generated/accessiApi.js +589 -0
  38. package/dist/accessi-module/Console/generated/accessiApi.js.map +1 -0
  39. package/dist/accessi-module/Console/generated/model/abilitazioneMenu.d.ts +39 -0
  40. package/dist/accessi-module/Console/generated/model/abilitazioneMenu.js +3 -0
  41. package/dist/accessi-module/Console/generated/model/abilitazioneMenu.js.map +1 -0
  42. package/dist/accessi-module/Console/generated/model/abilitazioneMenuTipoAbilitazione.d.ts +16 -0
  43. package/dist/accessi-module/Console/generated/model/abilitazioneMenuTipoAbilitazione.js +17 -0
  44. package/dist/accessi-module/Console/generated/model/abilitazioneMenuTipoAbilitazione.js.map +1 -0
  45. package/dist/accessi-module/Console/generated/model/actionResponse.d.ts +12 -0
  46. package/dist/accessi-module/Console/generated/model/actionResponse.js +9 -0
  47. package/dist/accessi-module/Console/generated/model/actionResponse.js.map +1 -0
  48. package/dist/accessi-module/Console/generated/model/adminBootstrapStatusResponse.d.ts +14 -0
  49. package/dist/accessi-module/Console/generated/model/adminBootstrapStatusResponse.js +3 -0
  50. package/dist/accessi-module/Console/generated/model/adminBootstrapStatusResponse.js.map +1 -0
  51. package/dist/accessi-module/Console/generated/model/adminBootstrapStatusResult.d.ts +10 -0
  52. package/dist/accessi-module/Console/generated/model/adminBootstrapStatusResult.js +9 -0
  53. package/dist/accessi-module/Console/generated/model/adminBootstrapStatusResult.js.map +1 -0
  54. package/dist/accessi-module/Console/generated/model/assignPermissionsToUserRequest.d.ts +11 -0
  55. package/dist/accessi-module/Console/generated/model/assignPermissionsToUserRequest.js +3 -0
  56. package/dist/accessi-module/Console/generated/model/assignPermissionsToUserRequest.js.map +1 -0
  57. package/dist/accessi-module/Console/generated/model/assignRolesToUserRequest.d.ts +10 -0
  58. package/dist/accessi-module/Console/generated/model/assignRolesToUserRequest.js +9 -0
  59. package/dist/accessi-module/Console/generated/model/assignRolesToUserRequest.js.map +1 -0
  60. package/dist/accessi-module/Console/generated/model/authenticatedTokenPayloadDto.d.ts +10 -0
  61. package/dist/accessi-module/Console/generated/model/authenticatedTokenPayloadDto.js +3 -0
  62. package/dist/accessi-module/Console/generated/model/authenticatedTokenPayloadDto.js.map +1 -0
  63. package/dist/accessi-module/Console/generated/model/authenticatedUserPayloadDto.d.ts +19 -0
  64. package/dist/accessi-module/Console/generated/model/authenticatedUserPayloadDto.js +9 -0
  65. package/dist/accessi-module/Console/generated/model/authenticatedUserPayloadDto.js.map +1 -0
  66. package/dist/accessi-module/Console/generated/model/bootstrapAdminRequest.d.ts +17 -0
  67. package/dist/accessi-module/Console/generated/model/bootstrapAdminRequest.js +9 -0
  68. package/dist/accessi-module/Console/generated/model/bootstrapAdminRequest.js.map +1 -0
  69. package/dist/accessi-module/Console/generated/model/bootstrapAdminResponse.d.ts +14 -0
  70. package/dist/accessi-module/Console/generated/model/bootstrapAdminResponse.js +3 -0
  71. package/dist/accessi-module/Console/generated/model/bootstrapAdminResponse.js.map +1 -0
  72. package/dist/accessi-module/Console/generated/model/bootstrapAdminResultDto.d.ts +13 -0
  73. package/dist/accessi-module/Console/generated/model/bootstrapAdminResultDto.js +9 -0
  74. package/dist/accessi-module/Console/generated/model/bootstrapAdminResultDto.js.map +1 -0
  75. package/dist/accessi-module/Console/generated/model/confirmResetPasswordRequest.d.ts +14 -0
  76. package/dist/accessi-module/Console/generated/model/confirmResetPasswordRequest.js +9 -0
  77. package/dist/accessi-module/Console/generated/model/confirmResetPasswordRequest.js.map +1 -0
  78. package/dist/accessi-module/Console/generated/model/consoleEntryExchangeRequest.d.ts +10 -0
  79. package/dist/accessi-module/Console/generated/model/consoleEntryExchangeRequest.js +9 -0
  80. package/dist/accessi-module/Console/generated/model/consoleEntryExchangeRequest.js.map +1 -0
  81. package/dist/accessi-module/Console/generated/model/consoleEntrySessionResponse.d.ts +14 -0
  82. package/dist/accessi-module/Console/generated/model/consoleEntrySessionResponse.js +3 -0
  83. package/dist/accessi-module/Console/generated/model/consoleEntrySessionResponse.js.map +1 -0
  84. package/dist/accessi-module/Console/generated/model/consoleEntrySessionResult.d.ts +10 -0
  85. package/dist/accessi-module/Console/generated/model/consoleEntrySessionResult.js +3 -0
  86. package/dist/accessi-module/Console/generated/model/consoleEntrySessionResult.js.map +1 -0
  87. package/dist/accessi-module/Console/generated/model/consoleEntryTicketResponse.d.ts +14 -0
  88. package/dist/accessi-module/Console/generated/model/consoleEntryTicketResponse.js +3 -0
  89. package/dist/accessi-module/Console/generated/model/consoleEntryTicketResponse.js.map +1 -0
  90. package/dist/accessi-module/Console/generated/model/consoleEntryTicketResult.d.ts +12 -0
  91. package/dist/accessi-module/Console/generated/model/consoleEntryTicketResult.js +9 -0
  92. package/dist/accessi-module/Console/generated/model/consoleEntryTicketResult.js.map +1 -0
  93. package/dist/accessi-module/Console/generated/model/consoleEntryTokenResult.d.ts +12 -0
  94. package/dist/accessi-module/Console/generated/model/consoleEntryTokenResult.js +9 -0
  95. package/dist/accessi-module/Console/generated/model/consoleEntryTokenResult.js.map +1 -0
  96. package/dist/accessi-module/Console/generated/model/createFederatedIdentityRequest.d.ts +13 -0
  97. package/dist/accessi-module/Console/generated/model/createFederatedIdentityRequest.js +9 -0
  98. package/dist/accessi-module/Console/generated/model/createFederatedIdentityRequest.js.map +1 -0
  99. package/dist/accessi-module/Console/generated/model/createFederatedProviderRequest.d.ts +13 -0
  100. package/dist/accessi-module/Console/generated/model/createFederatedProviderRequest.js +9 -0
  101. package/dist/accessi-module/Console/generated/model/createFederatedProviderRequest.js.map +1 -0
  102. package/dist/accessi-module/Console/generated/model/createFederatedUserRequest.d.ts +18 -0
  103. package/dist/accessi-module/Console/generated/model/createFederatedUserRequest.js +3 -0
  104. package/dist/accessi-module/Console/generated/model/createFederatedUserRequest.js.map +1 -0
  105. package/dist/accessi-module/Console/generated/model/createFilterTypeRequest.d.ts +23 -0
  106. package/dist/accessi-module/Console/generated/model/createFilterTypeRequest.js +3 -0
  107. package/dist/accessi-module/Console/generated/model/createFilterTypeRequest.js.map +1 -0
  108. package/dist/accessi-module/Console/generated/model/createFilterTypeRequestFlgEnabled.d.ts +14 -0
  109. package/dist/accessi-module/Console/generated/model/createFilterTypeRequestFlgEnabled.js +15 -0
  110. package/dist/accessi-module/Console/generated/model/createFilterTypeRequestFlgEnabled.js.map +1 -0
  111. package/dist/accessi-module/Console/generated/model/createMenuGroupRequest.d.ts +22 -0
  112. package/dist/accessi-module/Console/generated/model/createMenuGroupRequest.js +9 -0
  113. package/dist/accessi-module/Console/generated/model/createMenuGroupRequest.js.map +1 -0
  114. package/dist/accessi-module/Console/generated/model/createMenuRequest.d.ts +52 -0
  115. package/dist/accessi-module/Console/generated/model/createMenuRequest.js +9 -0
  116. package/dist/accessi-module/Console/generated/model/createMenuRequest.js.map +1 -0
  117. package/dist/accessi-module/Console/generated/model/createMenuTypeRequest.d.ts +18 -0
  118. package/dist/accessi-module/Console/generated/model/createMenuTypeRequest.js +9 -0
  119. package/dist/accessi-module/Console/generated/model/createMenuTypeRequest.js.map +1 -0
  120. package/dist/accessi-module/Console/generated/model/createServiceTokenRequest.d.ts +16 -0
  121. package/dist/accessi-module/Console/generated/model/createServiceTokenRequest.js +9 -0
  122. package/dist/accessi-module/Console/generated/model/createServiceTokenRequest.js.map +1 -0
  123. package/dist/accessi-module/Console/generated/model/createServiceTokenResponse.d.ts +14 -0
  124. package/dist/accessi-module/Console/generated/model/createServiceTokenResponse.js +3 -0
  125. package/dist/accessi-module/Console/generated/model/createServiceTokenResponse.js.map +1 -0
  126. package/dist/accessi-module/Console/generated/model/errorResponse.d.ts +18 -0
  127. package/dist/accessi-module/Console/generated/model/errorResponse.js +9 -0
  128. package/dist/accessi-module/Console/generated/model/errorResponse.js.map +1 -0
  129. package/dist/accessi-module/Console/generated/model/federatedIdentityListResponse.d.ts +14 -0
  130. package/dist/accessi-module/Console/generated/model/federatedIdentityListResponse.js +3 -0
  131. package/dist/accessi-module/Console/generated/model/federatedIdentityListResponse.js.map +1 -0
  132. package/dist/accessi-module/Console/generated/model/federatedIdentityResponse.d.ts +14 -0
  133. package/dist/accessi-module/Console/generated/model/federatedIdentityResponse.js +3 -0
  134. package/dist/accessi-module/Console/generated/model/federatedIdentityResponse.js.map +1 -0
  135. package/dist/accessi-module/Console/generated/model/federatedIdentityResponseDto.d.ts +23 -0
  136. package/dist/accessi-module/Console/generated/model/federatedIdentityResponseDto.js +9 -0
  137. package/dist/accessi-module/Console/generated/model/federatedIdentityResponseDto.js.map +1 -0
  138. package/dist/accessi-module/Console/generated/model/federatedProviderListResponse.d.ts +14 -0
  139. package/dist/accessi-module/Console/generated/model/federatedProviderListResponse.js +3 -0
  140. package/dist/accessi-module/Console/generated/model/federatedProviderListResponse.js.map +1 -0
  141. package/dist/accessi-module/Console/generated/model/federatedProviderResponse.d.ts +14 -0
  142. package/dist/accessi-module/Console/generated/model/federatedProviderResponse.js +3 -0
  143. package/dist/accessi-module/Console/generated/model/federatedProviderResponse.js.map +1 -0
  144. package/dist/accessi-module/Console/generated/model/federatedProviderResponseDto.d.ts +13 -0
  145. package/dist/accessi-module/Console/generated/model/federatedProviderResponseDto.js +9 -0
  146. package/dist/accessi-module/Console/generated/model/federatedProviderResponseDto.js.map +1 -0
  147. package/dist/accessi-module/Console/generated/model/filtriUtente.d.ts +32 -0
  148. package/dist/accessi-module/Console/generated/model/filtriUtente.js +9 -0
  149. package/dist/accessi-module/Console/generated/model/filtriUtente.js.map +1 -0
  150. package/dist/accessi-module/Console/generated/model/getFiltriResponse.d.ts +14 -0
  151. package/dist/accessi-module/Console/generated/model/getFiltriResponse.js +3 -0
  152. package/dist/accessi-module/Console/generated/model/getFiltriResponse.js.map +1 -0
  153. package/dist/accessi-module/Console/generated/model/getFiltriUtenteParams.d.ts +12 -0
  154. package/dist/accessi-module/Console/generated/model/getFiltriUtenteParams.js +9 -0
  155. package/dist/accessi-module/Console/generated/model/getFiltriUtenteParams.js.map +1 -0
  156. package/dist/accessi-module/Console/generated/model/getFiltriUtenteResponse.d.ts +14 -0
  157. package/dist/accessi-module/Console/generated/model/getFiltriUtenteResponse.js +3 -0
  158. package/dist/accessi-module/Console/generated/model/getFiltriUtenteResponse.js.map +1 -0
  159. package/dist/accessi-module/Console/generated/model/getGroupsWithMenusParams.d.ts +12 -0
  160. package/dist/accessi-module/Console/generated/model/getGroupsWithMenusParams.js +9 -0
  161. package/dist/accessi-module/Console/generated/model/getGroupsWithMenusParams.js.map +1 -0
  162. package/dist/accessi-module/Console/generated/model/getGroupsWithMenusResponse.d.ts +14 -0
  163. package/dist/accessi-module/Console/generated/model/getGroupsWithMenusResponse.js +3 -0
  164. package/dist/accessi-module/Console/generated/model/getGroupsWithMenusResponse.js.map +1 -0
  165. package/dist/accessi-module/Console/generated/model/getMenuTypesResponse.d.ts +14 -0
  166. package/dist/accessi-module/Console/generated/model/getMenuTypesResponse.js +3 -0
  167. package/dist/accessi-module/Console/generated/model/getMenuTypesResponse.js.map +1 -0
  168. package/dist/accessi-module/Console/generated/model/getMenusResponse.d.ts +14 -0
  169. package/dist/accessi-module/Console/generated/model/getMenusResponse.js +3 -0
  170. package/dist/accessi-module/Console/generated/model/getMenusResponse.js.map +1 -0
  171. package/dist/accessi-module/Console/generated/model/getRolesResponse.d.ts +14 -0
  172. package/dist/accessi-module/Console/generated/model/getRolesResponse.js +3 -0
  173. package/dist/accessi-module/Console/generated/model/getRolesResponse.js.map +1 -0
  174. package/dist/accessi-module/Console/generated/model/getSchemaResponse.d.ts +14 -0
  175. package/dist/accessi-module/Console/generated/model/getSchemaResponse.js +3 -0
  176. package/dist/accessi-module/Console/generated/model/getSchemaResponse.js.map +1 -0
  177. package/dist/accessi-module/Console/generated/model/getServiceTokensParams.d.ts +12 -0
  178. package/dist/accessi-module/Console/generated/model/getServiceTokensParams.js +9 -0
  179. package/dist/accessi-module/Console/generated/model/getServiceTokensParams.js.map +1 -0
  180. package/dist/accessi-module/Console/generated/model/getServiceTokensResponse.d.ts +14 -0
  181. package/dist/accessi-module/Console/generated/model/getServiceTokensResponse.js +3 -0
  182. package/dist/accessi-module/Console/generated/model/getServiceTokensResponse.js.map +1 -0
  183. package/dist/accessi-module/Console/generated/model/getUserByTokenRequest.d.ts +10 -0
  184. package/dist/accessi-module/Console/generated/model/getUserByTokenRequest.js +9 -0
  185. package/dist/accessi-module/Console/generated/model/getUserByTokenRequest.js.map +1 -0
  186. package/dist/accessi-module/Console/generated/model/getUserByTokenResponse.d.ts +14 -0
  187. package/dist/accessi-module/Console/generated/model/getUserByTokenResponse.js +3 -0
  188. package/dist/accessi-module/Console/generated/model/getUserByTokenResponse.js.map +1 -0
  189. package/dist/accessi-module/Console/generated/model/getUsersParams.d.ts +32 -0
  190. package/dist/accessi-module/Console/generated/model/getUsersParams.js +9 -0
  191. package/dist/accessi-module/Console/generated/model/getUsersParams.js.map +1 -0
  192. package/dist/accessi-module/Console/generated/model/getUsersResponse.d.ts +14 -0
  193. package/dist/accessi-module/Console/generated/model/getUsersResponse.js +3 -0
  194. package/dist/accessi-module/Console/generated/model/getUsersResponse.js.map +1 -0
  195. package/dist/accessi-module/Console/generated/model/getUsersResult.d.ts +17 -0
  196. package/dist/accessi-module/Console/generated/model/getUsersResult.js +3 -0
  197. package/dist/accessi-module/Console/generated/model/getUsersResult.js.map +1 -0
  198. package/dist/accessi-module/Console/generated/model/getUsersResultExtensionFields.d.ts +12 -0
  199. package/dist/accessi-module/Console/generated/model/getUsersResultExtensionFields.js +9 -0
  200. package/dist/accessi-module/Console/generated/model/getUsersResultExtensionFields.js.map +1 -0
  201. package/dist/accessi-module/Console/generated/model/groupWithMenusEntity.d.ts +19 -0
  202. package/dist/accessi-module/Console/generated/model/groupWithMenusEntity.js +3 -0
  203. package/dist/accessi-module/Console/generated/model/groupWithMenusEntity.js.map +1 -0
  204. package/dist/accessi-module/Console/generated/model/index.d.ts +108 -0
  205. package/dist/accessi-module/Console/generated/model/index.js +125 -0
  206. package/dist/accessi-module/Console/generated/model/index.js.map +1 -0
  207. package/dist/accessi-module/Console/generated/model/issuedServiceTokenDto.d.ts +30 -0
  208. package/dist/accessi-module/Console/generated/model/issuedServiceTokenDto.js +9 -0
  209. package/dist/accessi-module/Console/generated/model/issuedServiceTokenDto.js.map +1 -0
  210. package/dist/accessi-module/Console/generated/model/loginRequest.d.ts +12 -0
  211. package/dist/accessi-module/Console/generated/model/loginRequest.js +9 -0
  212. package/dist/accessi-module/Console/generated/model/loginRequest.js.map +1 -0
  213. package/dist/accessi-module/Console/generated/model/loginResponse.d.ts +14 -0
  214. package/dist/accessi-module/Console/generated/model/loginResponse.js +3 -0
  215. package/dist/accessi-module/Console/generated/model/loginResponse.js.map +1 -0
  216. package/dist/accessi-module/Console/generated/model/loginResult.d.ts +32 -0
  217. package/dist/accessi-module/Console/generated/model/loginResult.js +3 -0
  218. package/dist/accessi-module/Console/generated/model/loginResult.js.map +1 -0
  219. package/dist/accessi-module/Console/generated/model/loginResultExtensionFields.d.ts +12 -0
  220. package/dist/accessi-module/Console/generated/model/loginResultExtensionFields.js +9 -0
  221. package/dist/accessi-module/Console/generated/model/loginResultExtensionFields.js.map +1 -0
  222. package/dist/accessi-module/Console/generated/model/loginResultPasswordRequired.d.ts +13 -0
  223. package/dist/accessi-module/Console/generated/model/loginResultPasswordRequired.js +14 -0
  224. package/dist/accessi-module/Console/generated/model/loginResultPasswordRequired.js.map +1 -0
  225. package/dist/accessi-module/Console/generated/model/menuEntity.d.ts +32 -0
  226. package/dist/accessi-module/Console/generated/model/menuEntity.js +9 -0
  227. package/dist/accessi-module/Console/generated/model/menuEntity.js.map +1 -0
  228. package/dist/accessi-module/Console/generated/model/menuTypeEntity.d.ts +12 -0
  229. package/dist/accessi-module/Console/generated/model/menuTypeEntity.js +9 -0
  230. package/dist/accessi-module/Console/generated/model/menuTypeEntity.js.map +1 -0
  231. package/dist/accessi-module/Console/generated/model/passwordExpiredResponse.d.ts +12 -0
  232. package/dist/accessi-module/Console/generated/model/passwordExpiredResponse.js +9 -0
  233. package/dist/accessi-module/Console/generated/model/passwordExpiredResponse.js.map +1 -0
  234. package/dist/accessi-module/Console/generated/model/permission.d.ts +12 -0
  235. package/dist/accessi-module/Console/generated/model/permission.js +9 -0
  236. package/dist/accessi-module/Console/generated/model/permission.js.map +1 -0
  237. package/dist/accessi-module/Console/generated/model/publicRegisterRequest.d.ts +51 -0
  238. package/dist/accessi-module/Console/generated/model/publicRegisterRequest.js +9 -0
  239. package/dist/accessi-module/Console/generated/model/publicRegisterRequest.js.map +1 -0
  240. package/dist/accessi-module/Console/generated/model/registerRequest.d.ts +62 -0
  241. package/dist/accessi-module/Console/generated/model/registerRequest.js +3 -0
  242. package/dist/accessi-module/Console/generated/model/registerRequest.js.map +1 -0
  243. package/dist/accessi-module/Console/generated/model/registerResponse.d.ts +14 -0
  244. package/dist/accessi-module/Console/generated/model/registerResponse.js +3 -0
  245. package/dist/accessi-module/Console/generated/model/registerResponse.js.map +1 -0
  246. package/dist/accessi-module/Console/generated/model/resendTwoFactorRequest.d.ts +13 -0
  247. package/dist/accessi-module/Console/generated/model/resendTwoFactorRequest.js +9 -0
  248. package/dist/accessi-module/Console/generated/model/resendTwoFactorRequest.js.map +1 -0
  249. package/dist/accessi-module/Console/generated/model/role.d.ts +15 -0
  250. package/dist/accessi-module/Console/generated/model/role.js +3 -0
  251. package/dist/accessi-module/Console/generated/model/role.js.map +1 -0
  252. package/dist/accessi-module/Console/generated/model/ruoliMenu.d.ts +15 -0
  253. package/dist/accessi-module/Console/generated/model/ruoliMenu.js +3 -0
  254. package/dist/accessi-module/Console/generated/model/ruoliMenu.js.map +1 -0
  255. package/dist/accessi-module/Console/generated/model/ruoliMenuTipoAbilitazione.d.ts +16 -0
  256. package/dist/accessi-module/Console/generated/model/ruoliMenuTipoAbilitazione.js +17 -0
  257. package/dist/accessi-module/Console/generated/model/ruoliMenuTipoAbilitazione.js.map +1 -0
  258. package/dist/accessi-module/Console/generated/model/schemaDdlResult.d.ts +20 -0
  259. package/dist/accessi-module/Console/generated/model/schemaDdlResult.js +3 -0
  260. package/dist/accessi-module/Console/generated/model/schemaDdlResult.js.map +1 -0
  261. package/dist/accessi-module/Console/generated/model/schemaDdlSection.d.ts +12 -0
  262. package/dist/accessi-module/Console/generated/model/schemaDdlSection.js +9 -0
  263. package/dist/accessi-module/Console/generated/model/schemaDdlSection.js.map +1 -0
  264. package/dist/accessi-module/Console/generated/model/sendResetPasswordEmailRequest.d.ts +12 -0
  265. package/dist/accessi-module/Console/generated/model/sendResetPasswordEmailRequest.js +9 -0
  266. package/dist/accessi-module/Console/generated/model/sendResetPasswordEmailRequest.js.map +1 -0
  267. package/dist/accessi-module/Console/generated/model/serveResetPasswordPageParams.d.ts +12 -0
  268. package/dist/accessi-module/Console/generated/model/serveResetPasswordPageParams.js +9 -0
  269. package/dist/accessi-module/Console/generated/model/serveResetPasswordPageParams.js.map +1 -0
  270. package/dist/accessi-module/Console/generated/model/serviceTokenDto.d.ts +28 -0
  271. package/dist/accessi-module/Console/generated/model/serviceTokenDto.js +9 -0
  272. package/dist/accessi-module/Console/generated/model/serviceTokenDto.js.map +1 -0
  273. package/dist/accessi-module/Console/generated/model/setPasswordLoginPolicyRequest.d.ts +10 -0
  274. package/dist/accessi-module/Console/generated/model/setPasswordLoginPolicyRequest.js +9 -0
  275. package/dist/accessi-module/Console/generated/model/setPasswordLoginPolicyRequest.js.map +1 -0
  276. package/dist/accessi-module/Console/generated/model/setStatoRegistrazioneDto.d.ts +13 -0
  277. package/dist/accessi-module/Console/generated/model/setStatoRegistrazioneDto.js +3 -0
  278. package/dist/accessi-module/Console/generated/model/setStatoRegistrazioneDto.js.map +1 -0
  279. package/dist/accessi-module/Console/generated/model/setStatoRegistrazioneDtoStatoRegistrazione.d.ts +18 -0
  280. package/dist/accessi-module/Console/generated/model/setStatoRegistrazioneDtoStatoRegistrazione.js +19 -0
  281. package/dist/accessi-module/Console/generated/model/setStatoRegistrazioneDtoStatoRegistrazione.js.map +1 -0
  282. package/dist/accessi-module/Console/generated/model/setUserPasswordRequest.d.ts +14 -0
  283. package/dist/accessi-module/Console/generated/model/setUserPasswordRequest.js +9 -0
  284. package/dist/accessi-module/Console/generated/model/setUserPasswordRequest.js.map +1 -0
  285. package/dist/accessi-module/Console/generated/model/status.d.ts +12 -0
  286. package/dist/accessi-module/Console/generated/model/status.js +9 -0
  287. package/dist/accessi-module/Console/generated/model/status.js.map +1 -0
  288. package/dist/accessi-module/Console/generated/model/tipoFiltro.d.ts +23 -0
  289. package/dist/accessi-module/Console/generated/model/tipoFiltro.js +3 -0
  290. package/dist/accessi-module/Console/generated/model/tipoFiltro.js.map +1 -0
  291. package/dist/accessi-module/Console/generated/model/tipoFiltroFlgEnabled.d.ts +14 -0
  292. package/dist/accessi-module/Console/generated/model/tipoFiltroFlgEnabled.js +15 -0
  293. package/dist/accessi-module/Console/generated/model/tipoFiltroFlgEnabled.js.map +1 -0
  294. package/dist/accessi-module/Console/generated/model/tokenResult.d.ts +15 -0
  295. package/dist/accessi-module/Console/generated/model/tokenResult.js +3 -0
  296. package/dist/accessi-module/Console/generated/model/tokenResult.js.map +1 -0
  297. package/dist/accessi-module/Console/generated/model/tokenResultType.d.ts +14 -0
  298. package/dist/accessi-module/Console/generated/model/tokenResultType.js +15 -0
  299. package/dist/accessi-module/Console/generated/model/tokenResultType.js.map +1 -0
  300. package/dist/accessi-module/Console/generated/model/twoFactorChallengeDto.d.ts +18 -0
  301. package/dist/accessi-module/Console/generated/model/twoFactorChallengeDto.js +3 -0
  302. package/dist/accessi-module/Console/generated/model/twoFactorChallengeDto.js.map +1 -0
  303. package/dist/accessi-module/Console/generated/model/twoFactorChallengeDtoMethod.d.ts +10 -0
  304. package/dist/accessi-module/Console/generated/model/twoFactorChallengeDtoMethod.js +14 -0
  305. package/dist/accessi-module/Console/generated/model/twoFactorChallengeDtoMethod.js.map +1 -0
  306. package/dist/accessi-module/Console/generated/model/twoFactorChallengeDtoTwoFactorRequired.d.ts +13 -0
  307. package/dist/accessi-module/Console/generated/model/twoFactorChallengeDtoTwoFactorRequired.js +14 -0
  308. package/dist/accessi-module/Console/generated/model/twoFactorChallengeDtoTwoFactorRequired.js.map +1 -0
  309. package/dist/accessi-module/Console/generated/model/updateEnabledStatusRequest.d.ts +10 -0
  310. package/dist/accessi-module/Console/generated/model/updateEnabledStatusRequest.js +9 -0
  311. package/dist/accessi-module/Console/generated/model/updateEnabledStatusRequest.js.map +1 -0
  312. package/dist/accessi-module/Console/generated/model/updateFederatedIdentityRequest.d.ts +11 -0
  313. package/dist/accessi-module/Console/generated/model/updateFederatedIdentityRequest.js +9 -0
  314. package/dist/accessi-module/Console/generated/model/updateFederatedIdentityRequest.js.map +1 -0
  315. package/dist/accessi-module/Console/generated/model/updateFederatedProviderRequest.d.ts +12 -0
  316. package/dist/accessi-module/Console/generated/model/updateFederatedProviderRequest.js +9 -0
  317. package/dist/accessi-module/Console/generated/model/updateFederatedProviderRequest.js.map +1 -0
  318. package/dist/accessi-module/Console/generated/model/updateFilterTypeRequest.d.ts +21 -0
  319. package/dist/accessi-module/Console/generated/model/updateFilterTypeRequest.js +3 -0
  320. package/dist/accessi-module/Console/generated/model/updateFilterTypeRequest.js.map +1 -0
  321. package/dist/accessi-module/Console/generated/model/updateFilterTypeRequestFlgEnabled.d.ts +14 -0
  322. package/dist/accessi-module/Console/generated/model/updateFilterTypeRequestFlgEnabled.js +15 -0
  323. package/dist/accessi-module/Console/generated/model/updateFilterTypeRequestFlgEnabled.js.map +1 -0
  324. package/dist/accessi-module/Console/generated/model/updateMenuGroupRequest.d.ts +17 -0
  325. package/dist/accessi-module/Console/generated/model/updateMenuGroupRequest.js +9 -0
  326. package/dist/accessi-module/Console/generated/model/updateMenuGroupRequest.js.map +1 -0
  327. package/dist/accessi-module/Console/generated/model/updateMenuRequest.d.ts +47 -0
  328. package/dist/accessi-module/Console/generated/model/updateMenuRequest.js +9 -0
  329. package/dist/accessi-module/Console/generated/model/updateMenuRequest.js.map +1 -0
  330. package/dist/accessi-module/Console/generated/model/updateMenuTypeRequest.d.ts +13 -0
  331. package/dist/accessi-module/Console/generated/model/updateMenuTypeRequest.js +9 -0
  332. package/dist/accessi-module/Console/generated/model/updateMenuTypeRequest.js.map +1 -0
  333. package/dist/accessi-module/Console/generated/model/userDto.d.ts +88 -0
  334. package/dist/accessi-module/Console/generated/model/userDto.js +3 -0
  335. package/dist/accessi-module/Console/generated/model/userDto.js.map +1 -0
  336. package/dist/accessi-module/Console/generated/model/userDtoStatoRegistrazione.d.ts +18 -0
  337. package/dist/accessi-module/Console/generated/model/userDtoStatoRegistrazione.js +19 -0
  338. package/dist/accessi-module/Console/generated/model/userDtoStatoRegistrazione.js.map +1 -0
  339. package/dist/accessi-module/Console/generated/model/userGrantsDto.d.ts +16 -0
  340. package/dist/accessi-module/Console/generated/model/userGrantsDto.js +3 -0
  341. package/dist/accessi-module/Console/generated/model/userGrantsDto.js.map +1 -0
  342. package/dist/accessi-module/Console/generated/model/userGrantsResponse.d.ts +14 -0
  343. package/dist/accessi-module/Console/generated/model/userGrantsResponse.js +3 -0
  344. package/dist/accessi-module/Console/generated/model/userGrantsResponse.js.map +1 -0
  345. package/dist/accessi-module/Console/generated/model/verifyTwoFactorRequest.d.ts +18 -0
  346. package/dist/accessi-module/Console/generated/model/verifyTwoFactorRequest.js +9 -0
  347. package/dist/accessi-module/Console/generated/model/verifyTwoFactorRequest.js.map +1 -0
  348. package/dist/accessi-module/Console/help.d.ts +13 -0
  349. package/dist/accessi-module/Console/help.js +399 -0
  350. package/dist/accessi-module/Console/help.js.map +1 -0
  351. package/dist/accessi-module/Console/index.html +140 -0
  352. package/dist/accessi-module/Console/wiki.d.ts +52 -0
  353. package/dist/accessi-module/Console/wiki.js +722 -0
  354. package/dist/accessi-module/Console/wiki.js.map +1 -0
  355. package/dist/accessi-module/Controllers/AccessiConsoleController.d.ts +18 -0
  356. package/dist/accessi-module/Controllers/AccessiConsoleController.js +111 -0
  357. package/dist/accessi-module/Controllers/AccessiConsoleController.js.map +1 -0
  358. package/dist/accessi-module/Controllers/AuthController.d.ts +13 -6
  359. package/dist/accessi-module/Controllers/AuthController.js +185 -82
  360. package/dist/accessi-module/Controllers/AuthController.js.map +1 -1
  361. package/dist/accessi-module/Controllers/ConfiguratorController.d.ts +1 -5
  362. package/dist/accessi-module/Controllers/ConfiguratorController.js +26 -44
  363. package/dist/accessi-module/Controllers/ConfiguratorController.js.map +1 -1
  364. package/dist/accessi-module/Controllers/ConsoleEntryController.d.ts +14 -0
  365. package/dist/accessi-module/Controllers/ConsoleEntryController.js +128 -0
  366. package/dist/accessi-module/Controllers/ConsoleEntryController.js.map +1 -0
  367. package/dist/accessi-module/Controllers/EmailController.d.ts +4 -6
  368. package/dist/accessi-module/Controllers/EmailController.js +12 -14
  369. package/dist/accessi-module/Controllers/EmailController.js.map +1 -1
  370. package/dist/accessi-module/Controllers/FiltriController.d.ts +12 -4
  371. package/dist/accessi-module/Controllers/FiltriController.js +153 -6
  372. package/dist/accessi-module/Controllers/FiltriController.js.map +1 -1
  373. package/dist/accessi-module/Controllers/PermissionController.d.ts +20 -2
  374. package/dist/accessi-module/Controllers/PermissionController.js +344 -53
  375. package/dist/accessi-module/Controllers/PermissionController.js.map +1 -1
  376. package/dist/accessi-module/Controllers/SchemaController.d.ts +9 -0
  377. package/dist/accessi-module/Controllers/SchemaController.js +79 -0
  378. package/dist/accessi-module/Controllers/SchemaController.js.map +1 -0
  379. package/dist/accessi-module/Controllers/ServiceTokenController.d.ts +23 -0
  380. package/dist/accessi-module/Controllers/ServiceTokenController.js +176 -0
  381. package/dist/accessi-module/Controllers/ServiceTokenController.js.map +1 -0
  382. package/dist/accessi-module/Controllers/UserController.d.ts +20 -5
  383. package/dist/accessi-module/Controllers/UserController.js +331 -32
  384. package/dist/accessi-module/Controllers/UserController.js.map +1 -1
  385. package/dist/accessi-module/Dtos/Abilitazione.js.map +1 -1
  386. package/dist/accessi-module/Dtos/AbilitazioneMenu.js +16 -8
  387. package/dist/accessi-module/Dtos/AbilitazioneMenu.js.map +1 -1
  388. package/dist/accessi-module/Dtos/AdminBootstrapDtos.d.ts +26 -0
  389. package/dist/accessi-module/Dtos/AdminBootstrapDtos.js +100 -0
  390. package/dist/accessi-module/Dtos/AdminBootstrapDtos.js.map +1 -0
  391. package/dist/accessi-module/Dtos/AssignPermissionsToUserRequest.js +0 -1
  392. package/dist/accessi-module/Dtos/AssignPermissionsToUserRequest.js.map +1 -1
  393. package/dist/accessi-module/Dtos/AssignRolesToUserRequest.js +1 -2
  394. package/dist/accessi-module/Dtos/AssignRolesToUserRequest.js.map +1 -1
  395. package/dist/accessi-module/Dtos/AuthenticatedUserPayloadDto.d.ts +13 -0
  396. package/dist/accessi-module/Dtos/AuthenticatedUserPayloadDto.js +70 -0
  397. package/dist/accessi-module/Dtos/AuthenticatedUserPayloadDto.js.map +1 -0
  398. package/dist/accessi-module/Dtos/BaseResponse.d.ts +22 -0
  399. package/dist/accessi-module/Dtos/BaseResponse.js +106 -1
  400. package/dist/accessi-module/Dtos/BaseResponse.js.map +1 -1
  401. package/dist/accessi-module/Dtos/CatalogDtos.d.ts +64 -0
  402. package/dist/accessi-module/Dtos/CatalogDtos.js +322 -0
  403. package/dist/accessi-module/Dtos/CatalogDtos.js.map +1 -0
  404. package/dist/accessi-module/Dtos/ConfirmResetPasswordRequest.d.ts +3 -0
  405. package/dist/accessi-module/Dtos/ConfirmResetPasswordRequest.js +31 -0
  406. package/dist/accessi-module/Dtos/ConfirmResetPasswordRequest.js.map +1 -0
  407. package/dist/accessi-module/Dtos/ConsoleEntryDtos.d.ts +24 -0
  408. package/dist/accessi-module/Dtos/ConsoleEntryDtos.js +77 -0
  409. package/dist/accessi-module/Dtos/ConsoleEntryDtos.js.map +1 -0
  410. package/dist/accessi-module/Dtos/FederatedIdentityDtos.d.ts +69 -0
  411. package/dist/accessi-module/Dtos/FederatedIdentityDtos.js +236 -0
  412. package/dist/accessi-module/Dtos/FederatedIdentityDtos.js.map +1 -0
  413. package/dist/accessi-module/Dtos/FiltriUtente.js +5 -1
  414. package/dist/accessi-module/Dtos/FiltriUtente.js.map +1 -1
  415. package/dist/accessi-module/Dtos/GetGroupsWithMenusResponse.js.map +1 -1
  416. package/dist/accessi-module/Dtos/GetMenusResponse.js +1 -1
  417. package/dist/accessi-module/Dtos/GetMenusResponse.js.map +1 -1
  418. package/dist/accessi-module/Dtos/GetRolesResponse.js.map +1 -1
  419. package/dist/accessi-module/Dtos/GetUserByTokenRequest.d.ts +3 -0
  420. package/dist/accessi-module/Dtos/GetUserByTokenRequest.js +26 -0
  421. package/dist/accessi-module/Dtos/GetUserByTokenRequest.js.map +1 -0
  422. package/dist/accessi-module/Dtos/GetUserByTokenResponse.d.ts +5 -0
  423. package/dist/accessi-module/Dtos/GetUserByTokenResponse.js +27 -0
  424. package/dist/accessi-module/Dtos/GetUserByTokenResponse.js.map +1 -0
  425. package/dist/accessi-module/Dtos/GetUsersResponse.d.ts +1 -1
  426. package/dist/accessi-module/Dtos/GetUsersResponse.js.map +1 -1
  427. package/dist/accessi-module/Dtos/LoginRequest.d.ts +1 -1
  428. package/dist/accessi-module/Dtos/LoginRequest.js +3 -2
  429. package/dist/accessi-module/Dtos/LoginRequest.js.map +1 -1
  430. package/dist/accessi-module/Dtos/LoginResponse.d.ts +6 -2
  431. package/dist/accessi-module/Dtos/LoginResponse.js +20 -7
  432. package/dist/accessi-module/Dtos/LoginResponse.js.map +1 -1
  433. package/dist/accessi-module/Dtos/MenuItem.js +1 -0
  434. package/dist/accessi-module/Dtos/Permission.d.ts +1 -0
  435. package/dist/accessi-module/Dtos/Permission.js +1 -0
  436. package/dist/accessi-module/Dtos/Permission.js.map +1 -1
  437. package/dist/accessi-module/Dtos/PublicRegisterRequest.d.ts +5 -0
  438. package/dist/accessi-module/Dtos/PublicRegisterRequest.js +15 -0
  439. package/dist/accessi-module/Dtos/PublicRegisterRequest.js.map +1 -0
  440. package/dist/accessi-module/Dtos/RegisterRequest.d.ts +2 -4
  441. package/dist/accessi-module/Dtos/RegisterRequest.js +17 -27
  442. package/dist/accessi-module/Dtos/RegisterRequest.js.map +1 -1
  443. package/dist/accessi-module/Dtos/RegisterResponse.d.ts +1 -1
  444. package/dist/accessi-module/Dtos/RegisterResponse.js +3 -3
  445. package/dist/accessi-module/Dtos/RegisterResponse.js.map +1 -1
  446. package/dist/accessi-module/Dtos/Role.d.ts +4 -0
  447. package/dist/accessi-module/Dtos/Role.js +4 -0
  448. package/dist/accessi-module/Dtos/Role.js.map +1 -1
  449. package/dist/accessi-module/Dtos/RuoliMenu.js.map +1 -1
  450. package/dist/accessi-module/Dtos/SchemaDtos.d.ts +19 -0
  451. package/dist/accessi-module/Dtos/SchemaDtos.js +84 -0
  452. package/dist/accessi-module/Dtos/SchemaDtos.js.map +1 -0
  453. package/dist/accessi-module/Dtos/SendResetPasswordEmailRequest.d.ts +4 -0
  454. package/dist/accessi-module/Dtos/SendResetPasswordEmailRequest.js +36 -0
  455. package/dist/accessi-module/Dtos/SendResetPasswordEmailRequest.js.map +1 -0
  456. package/dist/accessi-module/Dtos/ServiceToken.d.ts +34 -0
  457. package/dist/accessi-module/Dtos/ServiceToken.js +128 -0
  458. package/dist/accessi-module/Dtos/ServiceToken.js.map +1 -0
  459. package/dist/accessi-module/Dtos/SetStatoRegistrazione.js.map +1 -1
  460. package/dist/accessi-module/Dtos/SetUserPasswordRequest.d.ts +4 -0
  461. package/dist/accessi-module/Dtos/SetUserPasswordRequest.js +32 -0
  462. package/dist/accessi-module/Dtos/SetUserPasswordRequest.js.map +1 -0
  463. package/dist/accessi-module/Dtos/StatoRegistrazione.js.map +1 -1
  464. package/dist/accessi-module/Dtos/TipoAbilitazione.d.ts +4 -0
  465. package/dist/accessi-module/Dtos/TipoAbilitazione.js +4 -0
  466. package/dist/accessi-module/Dtos/TipoAbilitazione.js.map +1 -1
  467. package/dist/accessi-module/Dtos/TipoFiltro.js.map +1 -1
  468. package/dist/accessi-module/Dtos/TokenResult.js.map +1 -1
  469. package/dist/accessi-module/Dtos/TwoFactorDtos.d.ts +13 -0
  470. package/dist/accessi-module/Dtos/TwoFactorDtos.js +60 -0
  471. package/dist/accessi-module/Dtos/TwoFactorDtos.js.map +1 -0
  472. package/dist/accessi-module/Dtos/UpdateEnabledStatusRequest.js.map +1 -1
  473. package/dist/accessi-module/Dtos/UserDto.d.ts +9 -4
  474. package/dist/accessi-module/Dtos/UserDto.js +37 -22
  475. package/dist/accessi-module/Dtos/UserDto.js.map +1 -1
  476. package/dist/accessi-module/Dtos/UserGrantsDto.js.map +1 -1
  477. package/dist/accessi-module/Dtos/UserGrantsResponse.d.ts +5 -0
  478. package/dist/accessi-module/Dtos/UserGrantsResponse.js +27 -0
  479. package/dist/accessi-module/Dtos/UserGrantsResponse.js.map +1 -0
  480. package/dist/accessi-module/Dtos/index.d.ts +13 -0
  481. package/dist/accessi-module/Dtos/index.js +13 -0
  482. package/dist/accessi-module/Dtos/index.js.map +1 -1
  483. package/dist/accessi-module/Services/AdminBootstrapService/AdminBootstrapService.d.ts +33 -0
  484. package/dist/accessi-module/Services/AdminBootstrapService/AdminBootstrapService.js +106 -0
  485. package/dist/accessi-module/Services/AdminBootstrapService/AdminBootstrapService.js.map +1 -0
  486. package/dist/accessi-module/Services/AuthService/AuthService.d.ts +46 -5
  487. package/dist/accessi-module/Services/AuthService/AuthService.js +204 -50
  488. package/dist/accessi-module/Services/AuthService/AuthService.js.map +1 -1
  489. package/dist/accessi-module/Services/ConfiguratorService/ConfiguratorService.d.ts +3 -1
  490. package/dist/accessi-module/Services/ConfiguratorService/ConfiguratorService.js +5 -1
  491. package/dist/accessi-module/Services/ConfiguratorService/ConfiguratorService.js.map +1 -1
  492. package/dist/accessi-module/Services/EmailService/EmailService.d.ts +9 -2
  493. package/dist/accessi-module/Services/EmailService/EmailService.js +47 -22
  494. package/dist/accessi-module/Services/EmailService/EmailService.js.map +1 -1
  495. package/dist/accessi-module/Services/FiltriService/FiltriService.d.ts +18 -3
  496. package/dist/accessi-module/Services/FiltriService/FiltriService.js +92 -16
  497. package/dist/accessi-module/Services/FiltriService/FiltriService.js.map +1 -1
  498. package/dist/accessi-module/Services/PermissionService/PermissionService.d.ts +77 -2
  499. package/dist/accessi-module/Services/PermissionService/PermissionService.js +603 -206
  500. package/dist/accessi-module/Services/PermissionService/PermissionService.js.map +1 -1
  501. package/dist/accessi-module/Services/SchemaExportService/SchemaExportService.d.ts +36 -0
  502. package/dist/accessi-module/Services/SchemaExportService/SchemaExportService.js +125 -0
  503. package/dist/accessi-module/Services/SchemaExportService/SchemaExportService.js.map +1 -0
  504. package/dist/accessi-module/Services/ServiceTokenService/ServiceTokenService.d.ts +75 -0
  505. package/dist/accessi-module/Services/ServiceTokenService/ServiceTokenService.js +265 -0
  506. package/dist/accessi-module/Services/ServiceTokenService/ServiceTokenService.js.map +1 -0
  507. package/dist/accessi-module/Services/TwoFactorService/TwoFactorService.d.ts +27 -0
  508. package/dist/accessi-module/Services/TwoFactorService/TwoFactorService.js +175 -0
  509. package/dist/accessi-module/Services/TwoFactorService/TwoFactorService.js.map +1 -0
  510. package/dist/accessi-module/Services/UserService/UserService.d.ts +66 -5
  511. package/dist/accessi-module/Services/UserService/UserService.js +520 -335
  512. package/dist/accessi-module/Services/UserService/UserService.js.map +1 -1
  513. package/dist/accessi-module/Views/reset-password.html +229 -213
  514. package/dist/accessi-module/accessiRuntime.d.ts +45 -0
  515. package/dist/accessi-module/accessiRuntime.js +39 -0
  516. package/dist/accessi-module/accessiRuntime.js.map +1 -0
  517. package/dist/accessi-module/database-updates/AccessiCatalogMigrator.d.ts +83 -0
  518. package/dist/accessi-module/database-updates/AccessiCatalogMigrator.js +360 -0
  519. package/dist/accessi-module/database-updates/AccessiCatalogMigrator.js.map +1 -0
  520. package/dist/accessi-module/database-updates/AccessiDatabaseUpdater.d.ts +58 -10
  521. package/dist/accessi-module/database-updates/AccessiDatabaseUpdater.js +506 -179
  522. package/dist/accessi-module/database-updates/AccessiDatabaseUpdater.js.map +1 -1
  523. package/dist/accessi-module/database-updates/accessiOptionsFromEnv.d.ts +5 -0
  524. package/dist/accessi-module/database-updates/accessiOptionsFromEnv.js +79 -0
  525. package/dist/accessi-module/database-updates/accessiOptionsFromEnv.js.map +1 -0
  526. package/dist/accessi-module/database-updates/accessiSchema.d.ts +67 -0
  527. package/dist/accessi-module/database-updates/accessiSchema.js +124 -0
  528. package/dist/accessi-module/database-updates/accessiSchema.js.map +1 -0
  529. package/dist/accessi-module/database-updates/optionalColumns.d.ts +7 -0
  530. package/dist/accessi-module/database-updates/optionalColumns.js +58 -0
  531. package/dist/accessi-module/database-updates/optionalColumns.js.map +1 -0
  532. package/dist/accessi-module/database-updates/runAccessiCatalogMigrations.d.ts +1 -0
  533. package/dist/accessi-module/database-updates/runAccessiCatalogMigrations.js +69 -0
  534. package/dist/accessi-module/database-updates/runAccessiCatalogMigrations.js.map +1 -0
  535. package/dist/accessi-module/database-updates/runAccessiDbUpdate.js +15 -53
  536. package/dist/accessi-module/database-updates/runAccessiDbUpdate.js.map +1 -1
  537. package/dist/accessi-module/federated-auth/FederatedAuthController.d.ts +33 -0
  538. package/dist/accessi-module/federated-auth/FederatedAuthController.js +373 -0
  539. package/dist/accessi-module/federated-auth/FederatedAuthController.js.map +1 -0
  540. package/dist/accessi-module/federated-auth/FederatedAuthService.d.ts +102 -0
  541. package/dist/accessi-module/federated-auth/FederatedAuthService.js +461 -0
  542. package/dist/accessi-module/federated-auth/FederatedAuthService.js.map +1 -0
  543. package/dist/accessi-module/federated-auth/FederatedAuthTypes.d.ts +53 -0
  544. package/dist/accessi-module/federated-auth/FederatedAuthTypes.js +3 -0
  545. package/dist/accessi-module/federated-auth/FederatedAuthTypes.js.map +1 -0
  546. package/dist/accessi-module/index.d.ts +29 -0
  547. package/dist/accessi-module/index.js +90 -20
  548. package/dist/accessi-module/index.js.map +1 -1
  549. package/dist/accessi-module/jwt/jwt.strategy.d.ts +1 -1
  550. package/dist/accessi-module/jwt/jwt.strategy.js +16 -7
  551. package/dist/accessi-module/jwt/jwt.strategy.js.map +1 -1
  552. package/dist/accessi-module/middleware/accessiRequirements.d.ts +23 -1
  553. package/dist/accessi-module/middleware/accessiRequirements.js +7 -0
  554. package/dist/accessi-module/middleware/accessiRequirements.js.map +1 -1
  555. package/dist/accessi-module/middleware/authenticateGen.d.ts +16 -1
  556. package/dist/accessi-module/middleware/authenticateGen.js +63 -25
  557. package/dist/accessi-module/middleware/authenticateGen.js.map +1 -1
  558. package/dist/accessi-module/security/AccessiHttpExceptionFilter.d.ts +12 -0
  559. package/dist/accessi-module/security/AccessiHttpExceptionFilter.js +77 -0
  560. package/dist/accessi-module/security/AccessiHttpExceptionFilter.js.map +1 -0
  561. package/dist/accessi-module/security/accessControl.d.ts +48 -2
  562. package/dist/accessi-module/security/accessControl.js +84 -8
  563. package/dist/accessi-module/security/accessControl.js.map +1 -1
  564. package/dist/accessi-module/security/accessiValidation.d.ts +9 -0
  565. package/dist/accessi-module/security/accessiValidation.js +41 -0
  566. package/dist/accessi-module/security/accessiValidation.js.map +1 -0
  567. package/dist/accessi-module/security/adminBootstrap.d.ts +8 -0
  568. package/dist/accessi-module/security/adminBootstrap.js +41 -0
  569. package/dist/accessi-module/security/adminBootstrap.js.map +1 -0
  570. package/dist/accessi-module/security/authenticatedToken.d.ts +16 -2
  571. package/dist/accessi-module/security/authenticatedToken.js +31 -4
  572. package/dist/accessi-module/security/authenticatedToken.js.map +1 -1
  573. package/dist/accessi-module/security/consoleEntry.d.ts +16 -0
  574. package/dist/accessi-module/security/consoleEntry.js +50 -0
  575. package/dist/accessi-module/security/consoleEntry.js.map +1 -0
  576. package/dist/accessi-module/security/emailConfiguration.d.ts +20 -0
  577. package/dist/accessi-module/security/emailConfiguration.js +41 -0
  578. package/dist/accessi-module/security/emailConfiguration.js.map +1 -0
  579. package/dist/accessi-module/security/passwordPolicy.d.ts +21 -0
  580. package/dist/accessi-module/security/passwordPolicy.js +71 -0
  581. package/dist/accessi-module/security/passwordPolicy.js.map +1 -0
  582. package/dist/accessi-module/security/passwordResetToken.d.ts +13 -3
  583. package/dist/accessi-module/security/passwordResetToken.js +13 -5
  584. package/dist/accessi-module/security/passwordResetToken.js.map +1 -1
  585. package/dist/accessi-module/security/publicAuthRateLimit.d.ts +3 -3
  586. package/dist/accessi-module/security/publicAuthRateLimit.js +32 -8
  587. package/dist/accessi-module/security/publicAuthRateLimit.js.map +1 -1
  588. package/dist/accessi-module/security/serviceTokenGuard.d.ts +25 -0
  589. package/dist/accessi-module/security/serviceTokenGuard.js +85 -0
  590. package/dist/accessi-module/security/serviceTokenGuard.js.map +1 -0
  591. package/dist/accessi-module/security/serviceTokenRateLimit.d.ts +8 -0
  592. package/dist/accessi-module/security/serviceTokenRateLimit.js +49 -0
  593. package/dist/accessi-module/security/serviceTokenRateLimit.js.map +1 -0
  594. package/dist/accessi-module/startupLog.d.ts +6 -0
  595. package/dist/accessi-module/startupLog.js +25 -0
  596. package/dist/accessi-module/startupLog.js.map +1 -0
  597. package/dist/allegati-module/AllegatiModule.d.ts +12 -1
  598. package/dist/allegati-module/AllegatiModule.js +11 -1
  599. package/dist/allegati-module/AllegatiModule.js.map +1 -1
  600. package/dist/allegati-module/Controllers/AllegatiController.d.ts +2 -1
  601. package/dist/allegati-module/Controllers/AllegatiController.js +23 -15
  602. package/dist/allegati-module/Controllers/AllegatiController.js.map +1 -1
  603. package/dist/allegati-module/Dtos/AllegatoDto.js.map +1 -1
  604. package/dist/allegati-module/Dtos/BaseResponse.js.map +1 -1
  605. package/dist/allegati-module/Dtos/UploadSingleFileRequest.js.map +1 -1
  606. package/dist/allegati-module/Dtos/index.js.map +1 -1
  607. package/dist/allegati-module/Dtos/responses/DownloadAllegatoResponseDto.js.map +1 -1
  608. package/dist/allegati-module/Dtos/responses/GetListResponse.js.map +1 -1
  609. package/dist/allegati-module/Dtos/responses/UploadAllegatoResponseDto.js.map +1 -1
  610. package/dist/allegati-module/Services/AllegatiService/AllegatiService.d.ts +10 -3
  611. package/dist/allegati-module/Services/AllegatiService/AllegatiService.js +150 -101
  612. package/dist/allegati-module/Services/AllegatiService/AllegatiService.js.map +1 -1
  613. package/dist/allegati-module/index.js.map +1 -1
  614. package/dist/allegati-module/security/allegatiAuthorizationGuard.d.ts +14 -0
  615. package/dist/allegati-module/security/allegatiAuthorizationGuard.js +70 -0
  616. package/dist/allegati-module/security/allegatiAuthorizationGuard.js.map +1 -0
  617. package/dist/autobind.d.ts +10 -3
  618. package/dist/autobind.js +24 -9
  619. package/dist/autobind.js.map +1 -1
  620. package/dist/emilsoftware-utilities-2.0.0-dev.51.tgz +0 -0
  621. package/dist/firebird-compat.d.ts +27 -6
  622. package/dist/firebird-compat.js +150 -135
  623. package/dist/firebird-compat.js.map +1 -1
  624. package/dist/index.d.ts +2 -2
  625. package/dist/index.js +2 -2
  626. package/dist/index.js.map +1 -1
  627. package/dist/initEmilsoftwareModule.js +35 -9
  628. package/dist/initEmilsoftwareModule.js.map +1 -1
  629. package/dist/scripts/generateAccessiOpenApi.d.ts +1 -0
  630. package/dist/scripts/generateAccessiOpenApi.js +57 -0
  631. package/dist/scripts/generateAccessiOpenApi.js.map +1 -0
  632. package/dist/scripts/generateAccessiWiki.d.ts +1 -0
  633. package/dist/scripts/generateAccessiWiki.js +131 -0
  634. package/dist/scripts/generateAccessiWiki.js.map +1 -0
  635. package/dist/swagger/SwaggerConfig.d.ts +7 -1
  636. package/dist/swagger/SwaggerConfig.js +23 -8
  637. package/dist/swagger/SwaggerConfig.js.map +1 -1
  638. package/package.json +105 -83
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FederatedAuthController.js","sourceRoot":"","sources":["../../../src/accessi-module/federated-auth/FederatedAuthController.ts"],"names":[],"mappings":"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","sourcesContent":["import { Body, Controller, Delete, Get, HttpException, HttpStatus, NotFoundException, Param, ParseIntPipe, Patch, Post, Req, Res, UseGuards } from '@nestjs/common';\nimport { ApiBearerAuth, ApiBody, ApiCreatedResponse, ApiOkResponse, ApiOperation, ApiParam, ApiResponse, ApiTags } from '@nestjs/swagger';\nimport { Request, Response } from 'express';\nimport { RestUtilities } from '../../Utilities';\nimport { ActionResponse, ErrorResponse } from '../Dtos/BaseResponse';\nimport { CreateFederatedIdentityRequest, CreateFederatedProviderRequest, CreateFederatedUserRequest, FederatedIdentityListResponse, FederatedIdentityResponse, FederatedProviderListResponse, FederatedProviderResponse, SetPasswordLoginPolicyRequest, UpdateFederatedIdentityRequest, UpdateFederatedProviderRequest } from '../Dtos/FederatedIdentityDtos';\nimport { JwtSimpleGuard } from '../jwt/jwt.strategy';\nimport { ensureAdmin, ensureCanManageTargetUser, ensurePrivilegeFlagChanges, ensureUserManagement, getAuthenticatedAccessiUser } from '../security/accessControl';\nimport type { AuthenticatedAccessiUser } from '../security/accessControl';\nimport { UserService } from '../Services/UserService/UserService';\nimport { FederatedAuthService } from './FederatedAuthService';\n\n/**\n * Master-only administration API. Authentication itself is intentionally not\n * exposed over HTTP: the hosting backend validates its SSO and calls\n * FederatedAuthService.authenticate({ provider, subject }) directly.\n */\n@ApiTags('Federated authentication')\n@ApiBearerAuth()\n@UseGuards(JwtSimpleGuard)\n@Controller('accessi/federated-auth')\nexport class FederatedAuthController {\n constructor(\n private readonly federatedAuthService: FederatedAuthService,\n private readonly userService: UserService,\n ) {}\n\n /**\n * Verifica che l'attore possa gestire il target (ADMIN > SUPER > utente):\n * un superutente non puo' toccare le identita SSO di un admin.\n */\n private async ensureManageableTarget(\n actor: AuthenticatedAccessiUser,\n codiceUtente: number,\n ): Promise<void> {\n const target = await this.userService.getAuthenticatedUserSnapshot(codiceUtente);\n if (!target) {\n throw new NotFoundException(`Nessun utente con codice ${codiceUtente}.`);\n }\n ensureCanManageTargetUser(actor, target);\n }\n\n /** Risolve il proprietario di un'identita SSO e verifica che l'attore possa gestirlo. */\n private async ensureManageableIdentity(\n actor: AuthenticatedAccessiUser,\n identityKey: string,\n ): Promise<void> {\n const owner = await this.federatedAuthService.getIdentityOwner(identityKey);\n if (!owner) {\n throw new NotFoundException('Collegamento SSO non trovato.');\n }\n await this.ensureManageableTarget(actor, owner);\n }\n\n @ApiOperation({ summary: 'Elenca i provider SSO censiti', operationId: 'getFederatedProviders', description: 'Riservato a superutente. Restituisce solo catalogo e stato Accessi; issuer, secret e configurazioni SSO restano nel backend.' })\n @ApiOkResponse({ type: FederatedProviderListResponse })\n @Get('providers')\n async getProviders(@Req() request: Request, @Res() res: Response) {\n try {\n // Lettura del catalogo provider: serve anche al superutente per creare utenti SSO.\n // La modifica del catalogo resta riservata agli admin.\n ensureUserManagement(\n getAuthenticatedAccessiUser(request),\n 'Solo gli amministratori possono leggere i provider SSO.',\n );\n return RestUtilities.sendBaseResponse(res, await this.federatedAuthService.getProviders());\n } catch (error) {\n return this.sendError(res, error);\n }\n }\n\n @ApiOperation({ summary: 'Censisce un provider SSO', operationId: 'createFederatedProvider', description: 'Riservato a superutente. La chiave provider deve corrispondere alla configurazione stabile del backend; non salvare segreti, issuer o token.' })\n @ApiBody({ type: CreateFederatedProviderRequest })\n @ApiCreatedResponse({ type: FederatedProviderResponse })\n @Post('providers')\n async createProvider(@Req() request: Request, @Body() body: CreateFederatedProviderRequest, @Res() res: Response) {\n try {\n ensureAdmin(getAuthenticatedAccessiUser(request));\n return RestUtilities.sendBaseResponse(res, await this.federatedAuthService.createProvider(body), HttpStatus.CREATED);\n } catch (error) {\n return this.sendError(res, error);\n }\n }\n\n @ApiOperation({ summary: 'Aggiorna o disabilita un provider SSO', operationId: 'updateFederatedProvider', description: 'Riservato a superutente. La chiave provider è immutabile: disabilitarla blocca nuovi login SSO ma conserva i collegamenti storici.' })\n @ApiParam({ name: 'provider', example: 'azure-ad-acme-produzione', description: 'Chiave stabile del provider censito.' })\n @ApiBody({ type: UpdateFederatedProviderRequest })\n @ApiOkResponse({ type: FederatedProviderResponse })\n @Patch('providers/:provider')\n async updateProvider(@Req() request: Request, @Param('provider') provider: string, @Body() body: UpdateFederatedProviderRequest, @Res() res: Response) {\n try {\n ensureAdmin(getAuthenticatedAccessiUser(request));\n return RestUtilities.sendBaseResponse(res, await this.federatedAuthService.updateProvider(provider, body));\n } catch (error) {\n return this.sendError(res, error);\n }\n }\n\n @ApiOperation({ summary: 'Elimina un provider SSO', operationId: 'deleteFederatedProvider', description: 'Riservato a superutente. Consentito solo se nessuna identita e collegata al provider; in alternativa disabilitalo.' })\n @ApiParam({ name: 'provider', example: 'azure-ad-acme-produzione', description: 'Chiave stabile del provider censito.' })\n @ApiOkResponse({ type: ActionResponse })\n @ApiResponse({ status: 404, type: ErrorResponse, description: 'Provider non registrato.' })\n @ApiResponse({ status: 409, type: ErrorResponse, description: 'Provider ancora utilizzato da identita collegate.' })\n @Delete('providers/:provider')\n async deleteProvider(@Req() request: Request, @Param('provider') provider: string, @Res() res: Response) {\n try {\n ensureAdmin(getAuthenticatedAccessiUser(request));\n await this.federatedAuthService.deleteProvider(provider);\n return RestUtilities.sendOKMessage(res, `Provider SSO ${provider} eliminato.`);\n } catch (error) {\n return this.sendError(res, error);\n }\n }\n\n @ApiOperation({ summary: 'Elenca le identita SSO di un utente', operationId: 'getFederatedIdentities', description: 'Riservato a superutente. Non restituisce token esterni o claim del provider.' })\n @ApiParam({ name: 'codiceUtente', example: 123 })\n @ApiOkResponse({ type: FederatedIdentityListResponse })\n @ApiResponse({ status: 403, type: ErrorResponse })\n @Get('users/:codiceUtente/identities')\n async getIdentities(@Req() request: Request, @Param('codiceUtente', ParseIntPipe) codiceUtente: number, @Res() res: Response) {\n try {\n ensureUserManagement(\n getAuthenticatedAccessiUser(request),\n 'Solo gli amministratori possono leggere le identita SSO.',\n );\n return RestUtilities.sendBaseResponse(res, await this.federatedAuthService.getUserIdentities(codiceUtente));\n } catch (error) {\n return this.sendError(res, error);\n }\n }\n\n @ApiOperation({ summary: 'Associa un SSO gia verificato a un utente esistente', operationId: 'linkFederatedIdentity', description: 'Il master deve fornire un provider e subject ottenuti da una verifica SSO lato backend; questo endpoint non verifica token esterni.' })\n @ApiParam({ name: 'codiceUtente', example: 123 })\n @ApiBody({ type: CreateFederatedIdentityRequest })\n @ApiCreatedResponse({ type: FederatedIdentityResponse })\n @Post('users/:codiceUtente/identities')\n async linkIdentity(@Req() request: Request, @Param('codiceUtente', ParseIntPipe) codiceUtente: number, @Body() body: CreateFederatedIdentityRequest, @Res() res: Response) {\n try {\n const authenticatedUser = getAuthenticatedAccessiUser(request);\n ensureUserManagement(authenticatedUser, 'Solo gli amministratori possono collegare identita SSO.');\n await this.ensureManageableTarget(authenticatedUser, codiceUtente);\n const identity = await this.federatedAuthService.linkIdentity(codiceUtente, body, body.note);\n return RestUtilities.sendBaseResponse(res, identity, HttpStatus.CREATED);\n } catch (error) {\n return this.sendError(res, error);\n }\n }\n\n @ApiOperation({ summary: 'Crea un utente gestito e SSO-only', operationId: 'createFederatedUser', description: 'Riservato a superutente. L utente nasce confermato, con identita collegata e senza password salvo opt-in esplicito.' })\n @ApiBody({ type: CreateFederatedUserRequest })\n @ApiCreatedResponse({ type: FederatedIdentityResponse })\n @ApiResponse({ status: 400, type: ErrorResponse, description: 'Provider o subject non validi.' })\n @ApiResponse({ status: 404, type: ErrorResponse, description: 'Provider SSO non censito.' })\n @ApiResponse({ status: 409, type: ErrorResponse, description: 'Email o identità SSO già associate a un utente.' })\n @ApiResponse({ status: 503, type: ErrorResponse, description: 'Schema Accessi non aggiornato.' })\n @ApiResponse({ status: 500, type: ErrorResponse, description: 'Errore inatteso durante il provisioning; la risposta contiene FEDERATED_USER_PROVISIONING_FAILED.' })\n @Post('users')\n async createUser(@Req() request: Request, @Body() body: CreateFederatedUserRequest, @Res() res: Response) {\n try {\n const authenticatedUser = getAuthenticatedAccessiUser(request);\n ensureUserManagement(authenticatedUser, 'Solo gli amministratori possono creare utenti SSO.');\n ensurePrivilegeFlagChanges(authenticatedUser, body.user);\n const identity = await this.federatedAuthService.createManagedFederatedUser(body.user, body, body.passwordLoginEnabled === true, body.note);\n return RestUtilities.sendBaseResponse(res, identity, HttpStatus.CREATED);\n } catch (error) {\n return this.sendError(res, error);\n }\n }\n\n @ApiOperation({ summary: 'Abilita o disabilita il login con password', operationId: 'setPasswordLoginPolicy', description: 'Con false il login locale restituisce PASSWORD_LOGIN_DISABLED; le identita SSO attive restano utilizzabili.' })\n @ApiParam({ name: 'codiceUtente', example: 123 })\n @ApiBody({ type: SetPasswordLoginPolicyRequest })\n @ApiOkResponse({ type: ActionResponse })\n @Patch('users/:codiceUtente/password-login')\n async setPasswordPolicy(@Req() request: Request, @Param('codiceUtente', ParseIntPipe) codiceUtente: number, @Body() body: SetPasswordLoginPolicyRequest, @Res() res: Response) {\n try {\n const authenticatedUser = getAuthenticatedAccessiUser(request);\n ensureUserManagement(authenticatedUser, 'Solo gli amministratori possono modificare la policy di accesso.');\n await this.ensureManageableTarget(authenticatedUser, codiceUtente);\n await this.federatedAuthService.setPasswordLoginEnabled(codiceUtente, body.passwordLoginEnabled);\n return RestUtilities.sendOKMessage(res, 'Policy di autenticazione aggiornata.');\n } catch (error) {\n return this.sendError(res, error);\n }\n }\n\n @ApiOperation({ summary: 'Disabilita un identita SSO', operationId: 'disableFederatedIdentity', description: 'Soft delete: l associazione resta tracciata ma non puo piu autenticare.' })\n @ApiParam({ name: 'identityKey', description: 'SHA-256 restituito dagli endpoint di elenco o creazione.' })\n @ApiOkResponse({ type: ActionResponse })\n @Delete('identities/:identityKey')\n async disableIdentity(@Req() request: Request, @Param('identityKey') identityKey: string, @Res() res: Response) {\n try {\n const authenticatedUser = getAuthenticatedAccessiUser(request);\n ensureUserManagement(authenticatedUser, 'Solo gli amministratori possono disabilitare identita SSO.');\n await this.ensureManageableIdentity(authenticatedUser, identityKey);\n await this.federatedAuthService.disableIdentity(identityKey);\n return RestUtilities.sendOKMessage(res, 'Identita SSO disabilitata.');\n } catch (error) {\n return this.sendError(res, error);\n }\n }\n\n @ApiOperation({ summary: 'Elimina definitivamente un collegamento SSO', operationId: 'deleteFederatedIdentityPermanently', description: 'Riservato a superutente. Rimuove il collegamento provider e subject dall’utente, senza eliminare l’utente Accessi.' })\n @ApiParam({ name: 'codiceUtente', example: 123 })\n @ApiParam({ name: 'identityKey', description: 'SHA-256 del collegamento da eliminare.' })\n @ApiOkResponse({ type: ActionResponse })\n @ApiResponse({ status: 404, type: ErrorResponse, description: 'Collegamento assente o non appartenente all’utente.' })\n @Delete('users/:codiceUtente/identities/:identityKey')\n async deleteIdentity(@Req() request: Request, @Param('codiceUtente', ParseIntPipe) codiceUtente: number, @Param('identityKey') identityKey: string, @Res() res: Response) {\n try {\n const authenticatedUser = getAuthenticatedAccessiUser(request);\n ensureUserManagement(authenticatedUser, 'Solo gli amministratori possono eliminare collegamenti SSO.');\n await this.ensureManageableTarget(authenticatedUser, codiceUtente);\n await this.federatedAuthService.deleteIdentity(codiceUtente, identityKey);\n return RestUtilities.sendOKMessage(res, 'Collegamento SSO eliminato definitivamente.');\n } catch (error) {\n return this.sendError(res, error);\n }\n }\n\n @ApiOperation({ summary: 'Aggiorna un collegamento SSO', operationId: 'updateFederatedIdentity', description: 'Consente di modificare nota e stato attivo del collegamento. identityKey e una chiave tecnica, non un token SSO.' })\n @ApiParam({ name: 'identityKey', description: 'SHA-256 restituito dagli endpoint di elenco o creazione.' })\n @ApiBody({ type: UpdateFederatedIdentityRequest })\n @ApiOkResponse({ type: ActionResponse })\n @Patch('identities/:identityKey')\n async updateIdentity(@Req() request: Request, @Param('identityKey') identityKey: string, @Body() body: UpdateFederatedIdentityRequest, @Res() res: Response) {\n try {\n const authenticatedUser = getAuthenticatedAccessiUser(request);\n ensureUserManagement(authenticatedUser, 'Solo gli amministratori possono aggiornare collegamenti SSO.');\n await this.ensureManageableIdentity(authenticatedUser, identityKey);\n await this.federatedAuthService.updateIdentity(identityKey, body);\n return RestUtilities.sendOKMessage(res, 'Collegamento SSO aggiornato.');\n } catch (error) {\n return this.sendError(res, error);\n }\n }\n\n private sendError(res: Response, error: unknown) {\n const status = error instanceof HttpException ? error.getStatus() : HttpStatus.INTERNAL_SERVER_ERROR;\n return RestUtilities.sendErrorMessage(res, error, FederatedAuthController.name, status);\n }\n}\n"]}
@@ -0,0 +1,102 @@
1
+ import { OnModuleInit } from '@nestjs/common';
2
+ import type { AccessiOptions } from '../AccessiModule';
3
+ import { RegisterRequest } from '../Dtos/RegisterRequest';
4
+ import { AuthService } from '../Services/AuthService/AuthService';
5
+ import { UserService } from '../Services/UserService/UserService';
6
+ import { FederatedAuthenticationResult, FederatedIdentity, FederatedProvider, VerifiedFederatedIdentity } from './FederatedAuthTypes';
7
+ /**
8
+ * Maps externally verified identities to Accessi users and issues the usual
9
+ * Accessi JWT. It deliberately has no provider SDK dependency: validating an
10
+ * Azure, Google, Apple, SAML, or custom token is always the hosting backend's job.
11
+ */
12
+ export declare class FederatedAuthService implements OnModuleInit {
13
+ private readonly options;
14
+ private readonly userService;
15
+ private readonly authService;
16
+ constructor(options: AccessiOptions, userService: UserService, authService: AuthService);
17
+ /** Await the same schema barrier as the module updater; never race two DDL implementations. */
18
+ onModuleInit(): Promise<void>;
19
+ /** Returns true only when the host application opted in to federated authentication. */
20
+ isEnabled(): boolean;
21
+ /**
22
+ * Exchanges a backend-verified identity for the same login result and JWT
23
+ * emitted by the local password endpoint. No raw external token is accepted.
24
+ */
25
+ authenticate(identity: VerifiedFederatedIdentity): Promise<FederatedAuthenticationResult>;
26
+ /** Links an external identity to an existing Accessi user. It never changes that user's password policy. */
27
+ linkIdentity(codiceUtente: number, identity: VerifiedFederatedIdentity, note?: string): Promise<FederatedIdentity>;
28
+ /** Creates a confirmed Accessi user, associates an SSO identity and defaults the new user to SSO-only. */
29
+ createManagedFederatedUser(registrationData: RegisterRequest, identity: VerifiedFederatedIdentity, passwordLoginEnabled?: boolean, note?: string): Promise<FederatedIdentity>;
30
+ /**
31
+ * Allows self-provisioning only when explicitly enabled. The caller must have
32
+ * verified the external identity and decide which profile fields are trusted.
33
+ */
34
+ registerSelfServiceFederatedUser(registrationData: RegisterRequest, identity: VerifiedFederatedIdentity): Promise<FederatedIdentity>;
35
+ /** Returns all linked identities for administration; disabled identities are included. */
36
+ getUserIdentities(codiceUtente: number): Promise<FederatedIdentity[]>;
37
+ /** Returns the complete provider catalog, including inactive providers, for superuser administration. */
38
+ getProviders(): Promise<FederatedProvider[]>;
39
+ /** Registers a provider key that must match the backend's SSO configuration exactly. */
40
+ createProvider(input: {
41
+ provider: string;
42
+ description: string;
43
+ note?: string;
44
+ }): Promise<FederatedProvider>;
45
+ /** Updates provider metadata or disables the provider without removing its identity history. */
46
+ /**
47
+ * Aggiorna metadati amministrativi del catalogo. La chiave provider e immutabile perche parte dell'identita
48
+ * persistita e deve coincidere esattamente con la configurazione del backend validante.
49
+ */
50
+ updateProvider(providerValue: string, update: {
51
+ description?: string;
52
+ active?: boolean;
53
+ note?: string;
54
+ }): Promise<FederatedProvider>;
55
+ /**
56
+ * Elimina un provider dal catalogo. Consentito solo se nessuna identita lo referenzia: la FK
57
+ * `FK_UTEIDEXT_PROVIDER` impedirebbe comunque la delete, ma verifichiamo prima per restituire un
58
+ * messaggio amministrativo chiaro. I collegamenti storici vanno rimossi o il provider disabilitato.
59
+ */
60
+ deleteProvider(providerValue: string): Promise<void>;
61
+ /** Enables or disables all local password authentication for one user. */
62
+ /**
63
+ * Imposta la policy di login locale. `false` non rimuove password ne identita SSO: blocca solo il percorso
64
+ * email/password, che restituisce `PASSWORD_LOGIN_DISABLED`. L'assenza della riga mantiene il default legacy `true`.
65
+ */
66
+ setPasswordLoginEnabled(codiceUtente: number, enabled: boolean): Promise<void>;
67
+ /** Returns the effective local password policy. Users without a policy row retain the historic enabled default. */
68
+ /** Restituisce la policy effettiva; utenti precedenti alla migrazione restano abilitati alla password. */
69
+ isPasswordLoginEnabled(codiceUtente: number): Promise<boolean>;
70
+ /** Soft-disables a linked identity without deleting operational history. */
71
+ /** Disabilita logicamente un collegamento SSO conservando audit e possibilita di successiva riattivazione. */
72
+ disableIdentity(identityKey: string): Promise<void>;
73
+ /** Restituisce il CODUTE proprietario di un collegamento SSO, o null se assente. */
74
+ getIdentityOwner(identityKey: string): Promise<number | null>;
75
+ /** Permanently removes one identity link from its owning user after administrative confirmation. */
76
+ /**
77
+ * Elimina fisicamente un collegamento SSO soltanto dopo aver verificato che appartenga all'utente indicato.
78
+ * Non elimina mai l'utente Accessi, password, ruoli o grant associati.
79
+ */
80
+ deleteIdentity(codiceUtente: number, identityKey: string): Promise<void>;
81
+ /** Aggiorna lo stato o la nota di un collegamento SSO usando la sua chiave tecnica amministrativa. */
82
+ /** Aggiorna stato o nota amministrativa senza modificare provider e subject, che identificano la persona. */
83
+ updateIdentity(identityKey: string, update: {
84
+ active?: boolean;
85
+ note?: string;
86
+ }): Promise<void>;
87
+ /** Explicit administrative schema reconciliation, shared with the standard updater. */
88
+ ensureSchema(): Promise<void>;
89
+ private findIdentity;
90
+ private assertUserExists;
91
+ private assertEnabled;
92
+ /** Validates the opaque SHA-256 key used only by administrative identity endpoints. */
93
+ private assertIdentityKey;
94
+ private normalizeIdentity;
95
+ private normalizeProvider;
96
+ private normalizeDescription;
97
+ private assertProviderActive;
98
+ private findProvider;
99
+ private getIdentityKey;
100
+ private toIdentity;
101
+ private toProvider;
102
+ }
@@ -0,0 +1,461 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ var __param = (this && this.__param) || function (paramIndex, decorator) {
12
+ return function (target, key) { decorator(target, key, paramIndex); }
13
+ };
14
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
15
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
16
+ return new (P || (P = Promise))(function (resolve, reject) {
17
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
18
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
19
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
20
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
21
+ });
22
+ };
23
+ Object.defineProperty(exports, "__esModule", { value: true });
24
+ exports.FederatedAuthService = void 0;
25
+ const common_1 = require("@nestjs/common");
26
+ const crypto_1 = require("crypto");
27
+ const AccessiDatabaseUpdater_1 = require("../database-updates/AccessiDatabaseUpdater");
28
+ const Orm_1 = require("../../Orm");
29
+ const Utilities_1 = require("../../Utilities");
30
+ const StatoRegistrazione_1 = require("../Dtos/StatoRegistrazione");
31
+ const AuthService_1 = require("../Services/AuthService/AuthService");
32
+ const UserService_1 = require("../Services/UserService/UserService");
33
+ const authenticatedToken_1 = require("../security/authenticatedToken");
34
+ /**
35
+ * Maps externally verified identities to Accessi users and issues the usual
36
+ * Accessi JWT. It deliberately has no provider SDK dependency: validating an
37
+ * Azure, Google, Apple, SAML, or custom token is always the hosting backend's job.
38
+ */
39
+ let FederatedAuthService = class FederatedAuthService {
40
+ constructor(options, userService, authService) {
41
+ this.options = options;
42
+ this.userService = userService;
43
+ this.authService = authService;
44
+ }
45
+ /** Await the same schema barrier as the module updater; never race two DDL implementations. */
46
+ onModuleInit() {
47
+ return __awaiter(this, void 0, void 0, function* () {
48
+ yield AccessiDatabaseUpdater_1.AccessiDatabaseUpdater.initialize(this.options);
49
+ });
50
+ }
51
+ /** Returns true only when the host application opted in to federated authentication. */
52
+ isEnabled() {
53
+ var _a;
54
+ return ((_a = this.options.federatedAuthentication) === null || _a === void 0 ? void 0 : _a.enabled) === true;
55
+ }
56
+ /**
57
+ * Exchanges a backend-verified identity for the same login result and JWT
58
+ * emitted by the local password endpoint. No raw external token is accepted.
59
+ */
60
+ authenticate(identity) {
61
+ return __awaiter(this, void 0, void 0, function* () {
62
+ this.assertEnabled();
63
+ const normalized = this.normalizeIdentity(identity);
64
+ yield this.assertProviderActive(normalized.provider);
65
+ const linkedIdentity = yield this.findIdentity(normalized, true);
66
+ if (!linkedIdentity) {
67
+ throw new common_1.NotFoundException({ code: 'FEDERATED_IDENTITY_NOT_LINKED', message: 'Identita esterna non associata a un utente Accessi.' });
68
+ }
69
+ const currentUser = yield this.userService.getAuthenticatedUserSnapshot(linkedIdentity.codiceUtente);
70
+ if (!(0, authenticatedToken_1.isAuthenticatedUserEnabledForJwt)(currentUser)) {
71
+ throw new common_1.ForbiddenException({ code: 'FEDERATED_USER_DISABLED', message: 'Utente Accessi non abilitato.' });
72
+ }
73
+ if (currentUser.flagDueFattori) {
74
+ const login = yield this.authService.beginFederatedTwoFactor(linkedIdentity.codiceUtente, linkedIdentity.identityKey);
75
+ return { codiceUtente: linkedIdentity.codiceUtente, login };
76
+ }
77
+ yield Orm_1.Orm.execute(this.options.databaseOptions, 'UPDATE UTENTI_IDENTITA_EXT SET DATLASTLOGIN = CURRENT_TIMESTAMP WHERE IDNKEY = ?', [linkedIdentity.identityKey]);
78
+ yield Orm_1.Orm.execute(this.options.databaseOptions, 'UPDATE UTENTI SET DATLASTLOGIN = CURRENT_TIMESTAMP WHERE CODUTE = ?', [linkedIdentity.codiceUtente]);
79
+ const login = yield this.authService.getLoginResultForUser(linkedIdentity.codiceUtente);
80
+ return {
81
+ codiceUtente: linkedIdentity.codiceUtente,
82
+ login,
83
+ token: this.authService.createAccessiToken(login.utente, ['federated']),
84
+ };
85
+ });
86
+ }
87
+ /** Links an external identity to an existing Accessi user. It never changes that user's password policy. */
88
+ linkIdentity(codiceUtente, identity, note) {
89
+ return __awaiter(this, void 0, void 0, function* () {
90
+ var _a;
91
+ this.assertEnabled();
92
+ yield this.assertUserExists(codiceUtente);
93
+ const normalized = this.normalizeIdentity(identity);
94
+ yield this.assertProviderActive(normalized.provider);
95
+ const existing = yield this.findIdentity(normalized, false);
96
+ if (existing && existing.codiceUtente !== codiceUtente) {
97
+ throw new common_1.ConflictException({ code: 'FEDERATED_IDENTITY_ALREADY_LINKED', message: 'Identita esterna gia associata a un altro utente.' });
98
+ }
99
+ if (existing) {
100
+ yield Orm_1.Orm.execute(this.options.databaseOptions, 'UPDATE UTENTI_IDENTITA_EXT SET FLGATTIVO = 1, DATDISATT = NULL, NOTA = ? WHERE IDNKEY = ?', [(_a = note !== null && note !== void 0 ? note : existing.note) !== null && _a !== void 0 ? _a : null, existing.identityKey]);
101
+ }
102
+ else {
103
+ yield Orm_1.Orm.execute(this.options.databaseOptions, `INSERT INTO UTENTI_IDENTITA_EXT (IDNKEY, CODUTE, PROVIDER, SUBJECT, FLGATTIVO, NOTA)
104
+ VALUES (?, ?, ?, ?, 1, ?)`, [this.getIdentityKey(normalized), codiceUtente, normalized.provider, normalized.subject, note !== null && note !== void 0 ? note : null]);
105
+ }
106
+ return (yield this.findIdentity(normalized, false));
107
+ });
108
+ }
109
+ /** Creates a confirmed Accessi user, associates an SSO identity and defaults the new user to SSO-only. */
110
+ createManagedFederatedUser(registrationData_1, identity_1) {
111
+ return __awaiter(this, arguments, void 0, function* (registrationData, identity, passwordLoginEnabled = false, note) {
112
+ this.assertEnabled();
113
+ const normalizedIdentity = this.normalizeIdentity(identity);
114
+ yield this.assertProviderActive(normalizedIdentity.provider);
115
+ if (yield this.findIdentity(normalizedIdentity, false)) {
116
+ throw new common_1.ConflictException({ code: 'FEDERATED_IDENTITY_ALREADY_LINKED', message: 'Identità esterna già associata a un utente Accessi.' });
117
+ }
118
+ try {
119
+ const codiceUtente = yield this.userService.register(registrationData, {
120
+ allowPrivilegedFields: true,
121
+ initialState: StatoRegistrazione_1.StatoRegistrazione.CONF,
122
+ });
123
+ yield this.setPasswordLoginEnabled(codiceUtente, passwordLoginEnabled);
124
+ return yield this.linkIdentity(codiceUtente, normalizedIdentity, note);
125
+ }
126
+ catch (error) {
127
+ if (error instanceof common_1.BadRequestException || error instanceof common_1.ConflictException || error instanceof common_1.ForbiddenException || error instanceof common_1.NotFoundException || error instanceof common_1.ServiceUnavailableException) {
128
+ throw error;
129
+ }
130
+ if (Utilities_1.RestUtilities.isDatabaseSchemaError(error)) {
131
+ throw new common_1.ServiceUnavailableException({ code: 'ACCESSI_DATABASE_SCHEMA_OUTDATED', message: 'Lo schema del database Accessi non è aggiornato. Eseguire la migrazione database e riprovare.' });
132
+ }
133
+ throw new common_1.InternalServerErrorException({ code: 'FEDERATED_USER_PROVISIONING_FAILED', message: 'La creazione dell’utente SSO non è stata completata. Verificare il log del backend e l’eventuale utente creato senza identità SSO.' });
134
+ }
135
+ });
136
+ }
137
+ /**
138
+ * Allows self-provisioning only when explicitly enabled. The caller must have
139
+ * verified the external identity and decide which profile fields are trusted.
140
+ */
141
+ registerSelfServiceFederatedUser(registrationData, identity) {
142
+ return __awaiter(this, void 0, void 0, function* () {
143
+ var _a;
144
+ this.assertEnabled();
145
+ if (((_a = this.options.federatedAuthentication) === null || _a === void 0 ? void 0 : _a.allowSelfRegistration) !== true) {
146
+ throw new common_1.ForbiddenException({ code: 'FEDERATED_SELF_REGISTRATION_DISABLED', message: 'Auto-registrazione SSO non abilitata.' });
147
+ }
148
+ const codiceUtente = yield this.userService.register(registrationData, {
149
+ allowPrivilegedFields: false,
150
+ initialState: StatoRegistrazione_1.StatoRegistrazione.CONF,
151
+ });
152
+ yield this.setPasswordLoginEnabled(codiceUtente, false);
153
+ return this.linkIdentity(codiceUtente, identity);
154
+ });
155
+ }
156
+ /** Returns all linked identities for administration; disabled identities are included. */
157
+ getUserIdentities(codiceUtente) {
158
+ return __awaiter(this, void 0, void 0, function* () {
159
+ this.assertEnabled();
160
+ const rows = yield Orm_1.Orm.query(this.options.databaseOptions, `SELECT I.IDNKEY AS identity_key, I.CODUTE AS codice_utente, I.PROVIDER, I.SUBJECT,
161
+ I.FLGATTIVO AS active, I.DATINS AS created_at, I.DATLASTLOGIN AS last_login_at,
162
+ I.DATDISATT AS disabled_at, I.NOTA,
163
+ COALESCE(C.FLGPASSWORD, 1) AS password_login_enabled
164
+ FROM UTENTI_IDENTITA_EXT I
165
+ LEFT JOIN UTENTI_CONFIG C ON C.CODUTE = I.CODUTE
166
+ WHERE I.CODUTE = ?
167
+ ORDER BY I.DATINS DESC`, [codiceUtente]);
168
+ return rows.map(Utilities_1.RestUtilities.convertKeysToCamelCase).map((row) => this.toIdentity(row));
169
+ });
170
+ }
171
+ /** Returns the complete provider catalog, including inactive providers, for superuser administration. */
172
+ getProviders() {
173
+ return __awaiter(this, void 0, void 0, function* () {
174
+ this.assertEnabled();
175
+ const rows = yield Orm_1.Orm.query(this.options.databaseOptions, `SELECT PROVIDER AS provider, DESCRIZIONE AS description, FLGATTIVO AS active,
176
+ DATINS AS created_at, NOTA AS note
177
+ FROM SSO_PROVIDER
178
+ ORDER BY FLGATTIVO DESC, DESCRIZIONE, PROVIDER`);
179
+ return rows.map(Utilities_1.RestUtilities.convertKeysToCamelCase).map((row) => this.toProvider(row));
180
+ });
181
+ }
182
+ /** Registers a provider key that must match the backend's SSO configuration exactly. */
183
+ createProvider(input) {
184
+ return __awaiter(this, void 0, void 0, function* () {
185
+ var _a;
186
+ this.assertEnabled();
187
+ const provider = this.normalizeProvider(input.provider);
188
+ const description = this.normalizeDescription(input.description);
189
+ const existing = yield this.findProvider(provider);
190
+ if (existing) {
191
+ throw new common_1.ConflictException({ code: 'FEDERATED_PROVIDER_ALREADY_EXISTS', message: 'Il provider SSO è già registrato.' });
192
+ }
193
+ yield Orm_1.Orm.execute(this.options.databaseOptions, 'INSERT INTO SSO_PROVIDER (PROVIDER, DESCRIZIONE, FLGATTIVO, NOTA) VALUES (?, ?, 1, ?)', [provider, description, ((_a = input.note) === null || _a === void 0 ? void 0 : _a.trim()) || null]);
194
+ return (yield this.findProvider(provider));
195
+ });
196
+ }
197
+ /** Updates provider metadata or disables the provider without removing its identity history. */
198
+ /**
199
+ * Aggiorna metadati amministrativi del catalogo. La chiave provider e immutabile perche parte dell'identita
200
+ * persistita e deve coincidere esattamente con la configurazione del backend validante.
201
+ */
202
+ updateProvider(providerValue, update) {
203
+ return __awaiter(this, void 0, void 0, function* () {
204
+ this.assertEnabled();
205
+ const provider = this.normalizeProvider(providerValue);
206
+ if (!(yield this.findProvider(provider))) {
207
+ throw new common_1.NotFoundException({ code: 'FEDERATED_PROVIDER_NOT_FOUND', message: 'Provider SSO non registrato.' });
208
+ }
209
+ const changes = [];
210
+ const params = [];
211
+ if (update.description !== undefined) {
212
+ changes.push('DESCRIZIONE = ?');
213
+ params.push(this.normalizeDescription(update.description));
214
+ }
215
+ if (update.active !== undefined) {
216
+ changes.push('FLGATTIVO = ?');
217
+ params.push(update.active ? 1 : 0);
218
+ }
219
+ if (update.note !== undefined) {
220
+ changes.push('NOTA = ?');
221
+ params.push(update.note.trim() || null);
222
+ }
223
+ if (changes.length > 0) {
224
+ params.push(provider);
225
+ yield Orm_1.Orm.execute(this.options.databaseOptions, `UPDATE SSO_PROVIDER SET ${changes.join(', ')} WHERE PROVIDER = ?`, params);
226
+ }
227
+ return (yield this.findProvider(provider));
228
+ });
229
+ }
230
+ /**
231
+ * Elimina un provider dal catalogo. Consentito solo se nessuna identita lo referenzia: la FK
232
+ * `FK_UTEIDEXT_PROVIDER` impedirebbe comunque la delete, ma verifichiamo prima per restituire un
233
+ * messaggio amministrativo chiaro. I collegamenti storici vanno rimossi o il provider disabilitato.
234
+ */
235
+ deleteProvider(providerValue) {
236
+ return __awaiter(this, void 0, void 0, function* () {
237
+ var _a, _b, _c;
238
+ this.assertEnabled();
239
+ const provider = this.normalizeProvider(providerValue);
240
+ if (!(yield this.findProvider(provider))) {
241
+ throw new common_1.NotFoundException({ code: 'FEDERATED_PROVIDER_NOT_FOUND', message: 'Provider SSO non registrato.' });
242
+ }
243
+ const usage = yield Orm_1.Orm.query(this.options.databaseOptions, 'SELECT COUNT(*) AS total FROM UTENTI_IDENTITA_EXT WHERE PROVIDER = ?', [provider]);
244
+ const rawTotal = (_b = (_a = usage === null || usage === void 0 ? void 0 : usage[0]) === null || _a === void 0 ? void 0 : _a.TOTAL) !== null && _b !== void 0 ? _b : (_c = usage === null || usage === void 0 ? void 0 : usage[0]) === null || _c === void 0 ? void 0 : _c.total;
245
+ const total = typeof rawTotal === 'number' ? rawTotal : Number.parseInt(`${rawTotal !== null && rawTotal !== void 0 ? rawTotal : '0'}`, 10);
246
+ if (total > 0) {
247
+ throw new common_1.ConflictException({
248
+ code: 'FEDERATED_PROVIDER_IN_USE',
249
+ message: `Impossibile eliminare il provider ${provider}: ${total} identita collegate. Disabilitalo oppure rimuovi prima i collegamenti.`,
250
+ });
251
+ }
252
+ yield Orm_1.Orm.execute(this.options.databaseOptions, 'DELETE FROM SSO_PROVIDER WHERE PROVIDER = ?', [provider]);
253
+ });
254
+ }
255
+ /** Enables or disables all local password authentication for one user. */
256
+ /**
257
+ * Imposta la policy di login locale. `false` non rimuove password ne identita SSO: blocca solo il percorso
258
+ * email/password, che restituisce `PASSWORD_LOGIN_DISABLED`. L'assenza della riga mantiene il default legacy `true`.
259
+ */
260
+ setPasswordLoginEnabled(codiceUtente, enabled) {
261
+ return __awaiter(this, void 0, void 0, function* () {
262
+ this.assertEnabled();
263
+ yield this.assertUserExists(codiceUtente);
264
+ // Upsert: per utenti legacy senza riga in UTENTI_CONFIG una UPDATE a vuoto
265
+ // lasciava la policy al default, rendendo la disattivazione un no-op silenzioso.
266
+ yield Orm_1.Orm.execute(this.options.databaseOptions, 'UPDATE OR INSERT INTO UTENTI_CONFIG (CODUTE, FLGPASSWORD) VALUES (?, ?) MATCHING (CODUTE)', [codiceUtente, enabled ? 1 : 0]);
267
+ });
268
+ }
269
+ /** Returns the effective local password policy. Users without a policy row retain the historic enabled default. */
270
+ /** Restituisce la policy effettiva; utenti precedenti alla migrazione restano abilitati alla password. */
271
+ isPasswordLoginEnabled(codiceUtente) {
272
+ return __awaiter(this, void 0, void 0, function* () {
273
+ if (!this.isEnabled())
274
+ return true;
275
+ const rows = yield Orm_1.Orm.query(this.options.databaseOptions, 'SELECT COALESCE(FLGPASSWORD, 1) AS password_login_enabled FROM UTENTI_CONFIG WHERE CODUTE = ?', [codiceUtente]);
276
+ const row = rows.map(Utilities_1.RestUtilities.convertKeysToCamelCase)[0];
277
+ return (row === null || row === void 0 ? void 0 : row.passwordLoginEnabled) !== false && (row === null || row === void 0 ? void 0 : row.passwordLoginEnabled) !== 0 && (row === null || row === void 0 ? void 0 : row.passwordLoginEnabled) !== '0';
278
+ });
279
+ }
280
+ /** Soft-disables a linked identity without deleting operational history. */
281
+ /** Disabilita logicamente un collegamento SSO conservando audit e possibilita di successiva riattivazione. */
282
+ disableIdentity(identityKey) {
283
+ return __awaiter(this, void 0, void 0, function* () {
284
+ this.assertEnabled();
285
+ this.assertIdentityKey(identityKey);
286
+ yield Orm_1.Orm.execute(this.options.databaseOptions, 'UPDATE UTENTI_IDENTITA_EXT SET FLGATTIVO = 0, DATDISATT = CURRENT_TIMESTAMP WHERE IDNKEY = ?', [identityKey]);
287
+ });
288
+ }
289
+ /** Restituisce il CODUTE proprietario di un collegamento SSO, o null se assente. */
290
+ getIdentityOwner(identityKey) {
291
+ return __awaiter(this, void 0, void 0, function* () {
292
+ this.assertIdentityKey(identityKey);
293
+ const rows = (yield Orm_1.Orm.query(this.options.databaseOptions, 'SELECT CODUTE AS codice_utente FROM UTENTI_IDENTITA_EXT WHERE IDNKEY = ?', [identityKey]));
294
+ const row = rows.map(Utilities_1.RestUtilities.convertKeysToCamelCase)[0];
295
+ const owner = Number(row === null || row === void 0 ? void 0 : row.codiceUtente);
296
+ return Number.isSafeInteger(owner) && owner > 0 ? owner : null;
297
+ });
298
+ }
299
+ /** Permanently removes one identity link from its owning user after administrative confirmation. */
300
+ /**
301
+ * Elimina fisicamente un collegamento SSO soltanto dopo aver verificato che appartenga all'utente indicato.
302
+ * Non elimina mai l'utente Accessi, password, ruoli o grant associati.
303
+ */
304
+ deleteIdentity(codiceUtente, identityKey) {
305
+ return __awaiter(this, void 0, void 0, function* () {
306
+ this.assertEnabled();
307
+ this.assertIdentityKey(identityKey);
308
+ const identity = (yield this.getUserIdentities(codiceUtente)).find((item) => item.identityKey === identityKey);
309
+ if (!identity) {
310
+ throw new common_1.NotFoundException({ code: 'FEDERATED_IDENTITY_NOT_FOUND', message: 'Collegamento SSO non trovato per questo utente.' });
311
+ }
312
+ yield Orm_1.Orm.execute(this.options.databaseOptions, 'DELETE FROM UTENTI_IDENTITA_EXT WHERE IDNKEY = ? AND CODUTE = ?', [identityKey, codiceUtente]);
313
+ });
314
+ }
315
+ /** Aggiorna lo stato o la nota di un collegamento SSO usando la sua chiave tecnica amministrativa. */
316
+ /** Aggiorna stato o nota amministrativa senza modificare provider e subject, che identificano la persona. */
317
+ updateIdentity(identityKey, update) {
318
+ return __awaiter(this, void 0, void 0, function* () {
319
+ this.assertEnabled();
320
+ this.assertIdentityKey(identityKey);
321
+ const changes = [];
322
+ const params = [];
323
+ if (update.active !== undefined) {
324
+ changes.push('FLGATTIVO = ?');
325
+ params.push(update.active ? 1 : 0);
326
+ if (update.active)
327
+ changes.push('DATDISATT = NULL');
328
+ else
329
+ changes.push('DATDISATT = CURRENT_TIMESTAMP');
330
+ }
331
+ if (update.note !== undefined) {
332
+ changes.push('NOTA = ?');
333
+ params.push(update.note);
334
+ }
335
+ if (changes.length === 0)
336
+ return;
337
+ params.push(identityKey);
338
+ yield Orm_1.Orm.execute(this.options.databaseOptions, `UPDATE UTENTI_IDENTITA_EXT SET ${changes.join(', ')} WHERE IDNKEY = ?`, params);
339
+ });
340
+ }
341
+ /** Explicit administrative schema reconciliation, shared with the standard updater. */
342
+ ensureSchema() {
343
+ return __awaiter(this, void 0, void 0, function* () {
344
+ if (this.isEnabled())
345
+ yield AccessiDatabaseUpdater_1.AccessiDatabaseUpdater.run(this.options);
346
+ });
347
+ }
348
+ findIdentity(identity, onlyActive) {
349
+ return __awaiter(this, void 0, void 0, function* () {
350
+ const rows = yield Orm_1.Orm.query(this.options.databaseOptions, `SELECT I.IDNKEY AS identity_key, I.CODUTE AS codice_utente, I.PROVIDER, I.SUBJECT,
351
+ I.FLGATTIVO AS active, I.DATINS AS created_at, I.DATLASTLOGIN AS last_login_at,
352
+ I.DATDISATT AS disabled_at, I.NOTA,
353
+ COALESCE(C.FLGPASSWORD, 1) AS password_login_enabled
354
+ FROM UTENTI_IDENTITA_EXT I
355
+ LEFT JOIN UTENTI_CONFIG C ON C.CODUTE = I.CODUTE
356
+ WHERE I.IDNKEY = ? AND I.PROVIDER = ? AND I.SUBJECT = ?${onlyActive ? ' AND I.FLGATTIVO = 1' : ''}`, [this.getIdentityKey(identity), identity.provider, identity.subject]);
357
+ const row = rows.map(Utilities_1.RestUtilities.convertKeysToCamelCase)[0];
358
+ return row ? this.toIdentity(row) : null;
359
+ });
360
+ }
361
+ assertUserExists(codiceUtente) {
362
+ return __awaiter(this, void 0, void 0, function* () {
363
+ const user = yield this.userService.getAuthenticatedUserSnapshot(codiceUtente);
364
+ if (!user)
365
+ throw new common_1.NotFoundException('Utente Accessi non trovato.');
366
+ });
367
+ }
368
+ assertEnabled() {
369
+ if (!this.isEnabled()) {
370
+ throw new common_1.ForbiddenException({ code: 'FEDERATED_AUTH_DISABLED', message: 'Autenticazione federata non abilitata in AccessiOptions.' });
371
+ }
372
+ }
373
+ /** Validates the opaque SHA-256 key used only by administrative identity endpoints. */
374
+ assertIdentityKey(identityKey) {
375
+ if (!/^[a-f0-9]{64}$/i.test(identityKey)) {
376
+ throw new common_1.BadRequestException({ code: 'FEDERATED_IDENTITY_KEY_INVALID', message: 'Chiave del collegamento SSO non valida.' });
377
+ }
378
+ }
379
+ normalizeIdentity(identity) {
380
+ const provider = this.normalizeProvider(identity === null || identity === void 0 ? void 0 : identity.provider);
381
+ const subject = typeof (identity === null || identity === void 0 ? void 0 : identity.subject) === 'string' ? identity.subject.trim() : '';
382
+ if (!subject || Buffer.byteLength(subject, 'utf8') > 512) {
383
+ throw new common_1.BadRequestException({ code: 'FEDERATED_SUBJECT_INVALID', message: 'Subject non valido: è obbligatorio e può occupare al massimo 512 byte UTF-8.' });
384
+ }
385
+ return { provider, subject };
386
+ }
387
+ normalizeProvider(value) {
388
+ const provider = typeof value === 'string' ? value.trim().toLowerCase() : '';
389
+ if (!/^[a-z0-9][a-z0-9._-]{0,63}$/.test(provider)) {
390
+ throw new common_1.BadRequestException({ code: 'FEDERATED_PROVIDER_INVALID', message: 'Provider non valido: usare un namespace ASCII stabile di massimo 64 caratteri.' });
391
+ }
392
+ return provider;
393
+ }
394
+ normalizeDescription(value) {
395
+ const description = typeof value === 'string' ? value.trim() : '';
396
+ if (!description || description.length > 160) {
397
+ throw new common_1.BadRequestException({ code: 'FEDERATED_PROVIDER_DESCRIPTION_INVALID', message: 'La descrizione del provider deve contenere da 1 a 160 caratteri.' });
398
+ }
399
+ return description;
400
+ }
401
+ assertProviderActive(provider) {
402
+ return __awaiter(this, void 0, void 0, function* () {
403
+ const registered = yield this.findProvider(provider);
404
+ if (!registered) {
405
+ throw new common_1.NotFoundException({ code: 'FEDERATED_PROVIDER_NOT_FOUND', message: 'Provider SSO non registrato.' });
406
+ }
407
+ if (!registered.active) {
408
+ throw new common_1.ForbiddenException({ code: 'FEDERATED_PROVIDER_DISABLED', message: 'Provider SSO disabilitato.' });
409
+ }
410
+ return registered;
411
+ });
412
+ }
413
+ findProvider(provider) {
414
+ return __awaiter(this, void 0, void 0, function* () {
415
+ const rows = yield Orm_1.Orm.query(this.options.databaseOptions, `SELECT PROVIDER AS provider, DESCRIZIONE AS description, FLGATTIVO AS active,
416
+ DATINS AS created_at, NOTA AS note
417
+ FROM SSO_PROVIDER
418
+ WHERE PROVIDER = ?`, [provider]);
419
+ const row = rows.map(Utilities_1.RestUtilities.convertKeysToCamelCase)[0];
420
+ return row ? this.toProvider(row) : null;
421
+ });
422
+ }
423
+ getIdentityKey(identity) {
424
+ const provider = Buffer.from(identity.provider, 'utf8');
425
+ const subject = Buffer.from(identity.subject, 'utf8');
426
+ const payload = Buffer.concat([Buffer.from('accessi:federated:v1:'), Buffer.from(`${provider.length}:`), provider, Buffer.from(`${subject.length}:`), subject]);
427
+ return (0, crypto_1.createHash)('sha256').update(payload).digest('hex');
428
+ }
429
+ toIdentity(row) {
430
+ return {
431
+ identityKey: String(row.identityKey),
432
+ codiceUtente: Number(row.codiceUtente),
433
+ provider: String(row.provider).trim(),
434
+ subject: String(row.subject),
435
+ active: row.active === true || row.active === 1 || row.active === '1',
436
+ passwordLoginEnabled: !(row.passwordLoginEnabled === false || row.passwordLoginEnabled === 0 || row.passwordLoginEnabled === '0'),
437
+ createdAt: row.createdAt,
438
+ lastLoginAt: row.lastLoginAt,
439
+ disabledAt: row.disabledAt,
440
+ note: row.note,
441
+ };
442
+ }
443
+ toProvider(row) {
444
+ var _a;
445
+ return {
446
+ provider: String(row.provider).trim(),
447
+ description: String((_a = row.description) !== null && _a !== void 0 ? _a : '').trim(),
448
+ active: row.active === true || row.active === 1 || row.active === '1',
449
+ createdAt: row.createdAt,
450
+ note: row.note,
451
+ };
452
+ }
453
+ };
454
+ exports.FederatedAuthService = FederatedAuthService;
455
+ exports.FederatedAuthService = FederatedAuthService = __decorate([
456
+ (0, common_1.Injectable)(),
457
+ __param(0, (0, common_1.Inject)('ACCESSI_OPTIONS')),
458
+ __metadata("design:paramtypes", [Object, UserService_1.UserService,
459
+ AuthService_1.AuthService])
460
+ ], FederatedAuthService);
461
+ //# sourceMappingURL=FederatedAuthService.js.map