emilsoftware-utilities 2.0.0-dev.4 → 2.0.0-dev.40

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 (596) 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.js.map +1 -1
  12. package/dist/ExecutionTimeLogger.d.ts +2 -2
  13. package/dist/ExecutionTimeLogger.js +5 -4
  14. package/dist/ExecutionTimeLogger.js.map +1 -1
  15. package/dist/Logger.d.ts +22 -11
  16. package/dist/Logger.js +132 -119
  17. package/dist/Logger.js.map +1 -1
  18. package/dist/Orm.d.ts +28 -12
  19. package/dist/Orm.js +194 -153
  20. package/dist/Orm.js.map +1 -1
  21. package/dist/RoutesLoggerMiddleware.js.map +1 -1
  22. package/dist/Utilities.d.ts +18 -8
  23. package/dist/Utilities.js +117 -38
  24. package/dist/Utilities.js.map +1 -1
  25. package/dist/accessi-module/AccessiModule.d.ts +116 -2
  26. package/dist/accessi-module/AccessiModule.js +36 -5
  27. package/dist/accessi-module/AccessiModule.js.map +1 -1
  28. package/dist/accessi-module/Console/accessiFetch.d.ts +7 -0
  29. package/dist/accessi-module/Console/accessiFetch.js +59 -0
  30. package/dist/accessi-module/Console/accessiFetch.js.map +1 -0
  31. package/dist/accessi-module/Console/console.css +676 -0
  32. package/dist/accessi-module/Console/console.d.ts +1 -0
  33. package/dist/accessi-module/Console/console.js +3351 -0
  34. package/dist/accessi-module/Console/console.js.map +1 -0
  35. package/dist/accessi-module/Console/generated/accessiApi.d.ts +582 -0
  36. package/dist/accessi-module/Console/generated/accessiApi.js +549 -0
  37. package/dist/accessi-module/Console/generated/accessiApi.js.map +1 -0
  38. package/dist/accessi-module/Console/generated/model/abilitazioneMenu.d.ts +39 -0
  39. package/dist/accessi-module/Console/generated/model/abilitazioneMenu.js +3 -0
  40. package/dist/accessi-module/Console/generated/model/abilitazioneMenu.js.map +1 -0
  41. package/dist/accessi-module/Console/generated/model/abilitazioneMenuTipoAbilitazione.d.ts +16 -0
  42. package/dist/accessi-module/Console/generated/model/abilitazioneMenuTipoAbilitazione.js +17 -0
  43. package/dist/accessi-module/Console/generated/model/abilitazioneMenuTipoAbilitazione.js.map +1 -0
  44. package/dist/accessi-module/Console/generated/model/actionResponse.d.ts +12 -0
  45. package/dist/accessi-module/Console/generated/model/actionResponse.js +9 -0
  46. package/dist/accessi-module/Console/generated/model/actionResponse.js.map +1 -0
  47. package/dist/accessi-module/Console/generated/model/assignPermissionsToUserRequest.d.ts +11 -0
  48. package/dist/accessi-module/Console/generated/model/assignPermissionsToUserRequest.js +3 -0
  49. package/dist/accessi-module/Console/generated/model/assignPermissionsToUserRequest.js.map +1 -0
  50. package/dist/accessi-module/Console/generated/model/assignRolesToUserRequest.d.ts +10 -0
  51. package/dist/accessi-module/Console/generated/model/assignRolesToUserRequest.js +9 -0
  52. package/dist/accessi-module/Console/generated/model/assignRolesToUserRequest.js.map +1 -0
  53. package/dist/accessi-module/Console/generated/model/authenticatedTokenPayloadDto.d.ts +10 -0
  54. package/dist/accessi-module/Console/generated/model/authenticatedTokenPayloadDto.js +3 -0
  55. package/dist/accessi-module/Console/generated/model/authenticatedTokenPayloadDto.js.map +1 -0
  56. package/dist/accessi-module/Console/generated/model/authenticatedUserPayloadDto.d.ts +19 -0
  57. package/dist/accessi-module/Console/generated/model/authenticatedUserPayloadDto.js +9 -0
  58. package/dist/accessi-module/Console/generated/model/authenticatedUserPayloadDto.js.map +1 -0
  59. package/dist/accessi-module/Console/generated/model/bootstrapAdminRequest.d.ts +17 -0
  60. package/dist/accessi-module/Console/generated/model/bootstrapAdminRequest.js +9 -0
  61. package/dist/accessi-module/Console/generated/model/bootstrapAdminRequest.js.map +1 -0
  62. package/dist/accessi-module/Console/generated/model/bootstrapAdminResponse.d.ts +14 -0
  63. package/dist/accessi-module/Console/generated/model/bootstrapAdminResponse.js +3 -0
  64. package/dist/accessi-module/Console/generated/model/bootstrapAdminResponse.js.map +1 -0
  65. package/dist/accessi-module/Console/generated/model/bootstrapAdminResultDto.d.ts +13 -0
  66. package/dist/accessi-module/Console/generated/model/bootstrapAdminResultDto.js +9 -0
  67. package/dist/accessi-module/Console/generated/model/bootstrapAdminResultDto.js.map +1 -0
  68. package/dist/accessi-module/Console/generated/model/confirmResetPasswordRequest.d.ts +14 -0
  69. package/dist/accessi-module/Console/generated/model/confirmResetPasswordRequest.js +9 -0
  70. package/dist/accessi-module/Console/generated/model/confirmResetPasswordRequest.js.map +1 -0
  71. package/dist/accessi-module/Console/generated/model/createFederatedIdentityRequest.d.ts +13 -0
  72. package/dist/accessi-module/Console/generated/model/createFederatedIdentityRequest.js +9 -0
  73. package/dist/accessi-module/Console/generated/model/createFederatedIdentityRequest.js.map +1 -0
  74. package/dist/accessi-module/Console/generated/model/createFederatedProviderRequest.d.ts +13 -0
  75. package/dist/accessi-module/Console/generated/model/createFederatedProviderRequest.js +9 -0
  76. package/dist/accessi-module/Console/generated/model/createFederatedProviderRequest.js.map +1 -0
  77. package/dist/accessi-module/Console/generated/model/createFederatedUserRequest.d.ts +18 -0
  78. package/dist/accessi-module/Console/generated/model/createFederatedUserRequest.js +3 -0
  79. package/dist/accessi-module/Console/generated/model/createFederatedUserRequest.js.map +1 -0
  80. package/dist/accessi-module/Console/generated/model/createFilterTypeRequest.d.ts +23 -0
  81. package/dist/accessi-module/Console/generated/model/createFilterTypeRequest.js +3 -0
  82. package/dist/accessi-module/Console/generated/model/createFilterTypeRequest.js.map +1 -0
  83. package/dist/accessi-module/Console/generated/model/createFilterTypeRequestFlgEnabled.d.ts +14 -0
  84. package/dist/accessi-module/Console/generated/model/createFilterTypeRequestFlgEnabled.js +15 -0
  85. package/dist/accessi-module/Console/generated/model/createFilterTypeRequestFlgEnabled.js.map +1 -0
  86. package/dist/accessi-module/Console/generated/model/createMenuGroupRequest.d.ts +22 -0
  87. package/dist/accessi-module/Console/generated/model/createMenuGroupRequest.js +9 -0
  88. package/dist/accessi-module/Console/generated/model/createMenuGroupRequest.js.map +1 -0
  89. package/dist/accessi-module/Console/generated/model/createMenuRequest.d.ts +52 -0
  90. package/dist/accessi-module/Console/generated/model/createMenuRequest.js +9 -0
  91. package/dist/accessi-module/Console/generated/model/createMenuRequest.js.map +1 -0
  92. package/dist/accessi-module/Console/generated/model/createMenuTypeRequest.d.ts +18 -0
  93. package/dist/accessi-module/Console/generated/model/createMenuTypeRequest.js +9 -0
  94. package/dist/accessi-module/Console/generated/model/createMenuTypeRequest.js.map +1 -0
  95. package/dist/accessi-module/Console/generated/model/createServiceTokenRequest.d.ts +16 -0
  96. package/dist/accessi-module/Console/generated/model/createServiceTokenRequest.js +9 -0
  97. package/dist/accessi-module/Console/generated/model/createServiceTokenRequest.js.map +1 -0
  98. package/dist/accessi-module/Console/generated/model/createServiceTokenResponse.d.ts +14 -0
  99. package/dist/accessi-module/Console/generated/model/createServiceTokenResponse.js +3 -0
  100. package/dist/accessi-module/Console/generated/model/createServiceTokenResponse.js.map +1 -0
  101. package/dist/accessi-module/Console/generated/model/errorResponse.d.ts +18 -0
  102. package/dist/accessi-module/Console/generated/model/errorResponse.js +9 -0
  103. package/dist/accessi-module/Console/generated/model/errorResponse.js.map +1 -0
  104. package/dist/accessi-module/Console/generated/model/federatedIdentityListResponse.d.ts +14 -0
  105. package/dist/accessi-module/Console/generated/model/federatedIdentityListResponse.js +3 -0
  106. package/dist/accessi-module/Console/generated/model/federatedIdentityListResponse.js.map +1 -0
  107. package/dist/accessi-module/Console/generated/model/federatedIdentityResponse.d.ts +14 -0
  108. package/dist/accessi-module/Console/generated/model/federatedIdentityResponse.js +3 -0
  109. package/dist/accessi-module/Console/generated/model/federatedIdentityResponse.js.map +1 -0
  110. package/dist/accessi-module/Console/generated/model/federatedIdentityResponseDto.d.ts +23 -0
  111. package/dist/accessi-module/Console/generated/model/federatedIdentityResponseDto.js +9 -0
  112. package/dist/accessi-module/Console/generated/model/federatedIdentityResponseDto.js.map +1 -0
  113. package/dist/accessi-module/Console/generated/model/federatedProviderListResponse.d.ts +14 -0
  114. package/dist/accessi-module/Console/generated/model/federatedProviderListResponse.js +3 -0
  115. package/dist/accessi-module/Console/generated/model/federatedProviderListResponse.js.map +1 -0
  116. package/dist/accessi-module/Console/generated/model/federatedProviderResponse.d.ts +14 -0
  117. package/dist/accessi-module/Console/generated/model/federatedProviderResponse.js +3 -0
  118. package/dist/accessi-module/Console/generated/model/federatedProviderResponse.js.map +1 -0
  119. package/dist/accessi-module/Console/generated/model/federatedProviderResponseDto.d.ts +13 -0
  120. package/dist/accessi-module/Console/generated/model/federatedProviderResponseDto.js +9 -0
  121. package/dist/accessi-module/Console/generated/model/federatedProviderResponseDto.js.map +1 -0
  122. package/dist/accessi-module/Console/generated/model/filtriUtente.d.ts +32 -0
  123. package/dist/accessi-module/Console/generated/model/filtriUtente.js +9 -0
  124. package/dist/accessi-module/Console/generated/model/filtriUtente.js.map +1 -0
  125. package/dist/accessi-module/Console/generated/model/getFiltriResponse.d.ts +14 -0
  126. package/dist/accessi-module/Console/generated/model/getFiltriResponse.js +3 -0
  127. package/dist/accessi-module/Console/generated/model/getFiltriResponse.js.map +1 -0
  128. package/dist/accessi-module/Console/generated/model/getFiltriUtenteParams.d.ts +12 -0
  129. package/dist/accessi-module/Console/generated/model/getFiltriUtenteParams.js +9 -0
  130. package/dist/accessi-module/Console/generated/model/getFiltriUtenteParams.js.map +1 -0
  131. package/dist/accessi-module/Console/generated/model/getFiltriUtenteResponse.d.ts +14 -0
  132. package/dist/accessi-module/Console/generated/model/getFiltriUtenteResponse.js +3 -0
  133. package/dist/accessi-module/Console/generated/model/getFiltriUtenteResponse.js.map +1 -0
  134. package/dist/accessi-module/Console/generated/model/getGroupsWithMenusParams.d.ts +12 -0
  135. package/dist/accessi-module/Console/generated/model/getGroupsWithMenusParams.js +9 -0
  136. package/dist/accessi-module/Console/generated/model/getGroupsWithMenusParams.js.map +1 -0
  137. package/dist/accessi-module/Console/generated/model/getGroupsWithMenusResponse.d.ts +14 -0
  138. package/dist/accessi-module/Console/generated/model/getGroupsWithMenusResponse.js +3 -0
  139. package/dist/accessi-module/Console/generated/model/getGroupsWithMenusResponse.js.map +1 -0
  140. package/dist/accessi-module/Console/generated/model/getMenuTypesResponse.d.ts +14 -0
  141. package/dist/accessi-module/Console/generated/model/getMenuTypesResponse.js +3 -0
  142. package/dist/accessi-module/Console/generated/model/getMenuTypesResponse.js.map +1 -0
  143. package/dist/accessi-module/Console/generated/model/getMenusResponse.d.ts +14 -0
  144. package/dist/accessi-module/Console/generated/model/getMenusResponse.js +3 -0
  145. package/dist/accessi-module/Console/generated/model/getMenusResponse.js.map +1 -0
  146. package/dist/accessi-module/Console/generated/model/getRolesResponse.d.ts +14 -0
  147. package/dist/accessi-module/Console/generated/model/getRolesResponse.js +3 -0
  148. package/dist/accessi-module/Console/generated/model/getRolesResponse.js.map +1 -0
  149. package/dist/accessi-module/Console/generated/model/getSchemaResponse.d.ts +14 -0
  150. package/dist/accessi-module/Console/generated/model/getSchemaResponse.js +3 -0
  151. package/dist/accessi-module/Console/generated/model/getSchemaResponse.js.map +1 -0
  152. package/dist/accessi-module/Console/generated/model/getServiceTokensParams.d.ts +12 -0
  153. package/dist/accessi-module/Console/generated/model/getServiceTokensParams.js +9 -0
  154. package/dist/accessi-module/Console/generated/model/getServiceTokensParams.js.map +1 -0
  155. package/dist/accessi-module/Console/generated/model/getServiceTokensResponse.d.ts +14 -0
  156. package/dist/accessi-module/Console/generated/model/getServiceTokensResponse.js +3 -0
  157. package/dist/accessi-module/Console/generated/model/getServiceTokensResponse.js.map +1 -0
  158. package/dist/accessi-module/Console/generated/model/getUserByTokenRequest.d.ts +10 -0
  159. package/dist/accessi-module/Console/generated/model/getUserByTokenRequest.js +9 -0
  160. package/dist/accessi-module/Console/generated/model/getUserByTokenRequest.js.map +1 -0
  161. package/dist/accessi-module/Console/generated/model/getUserByTokenResponse.d.ts +14 -0
  162. package/dist/accessi-module/Console/generated/model/getUserByTokenResponse.js +3 -0
  163. package/dist/accessi-module/Console/generated/model/getUserByTokenResponse.js.map +1 -0
  164. package/dist/accessi-module/Console/generated/model/getUsersParams.d.ts +32 -0
  165. package/dist/accessi-module/Console/generated/model/getUsersParams.js +9 -0
  166. package/dist/accessi-module/Console/generated/model/getUsersParams.js.map +1 -0
  167. package/dist/accessi-module/Console/generated/model/getUsersResponse.d.ts +14 -0
  168. package/dist/accessi-module/Console/generated/model/getUsersResponse.js +3 -0
  169. package/dist/accessi-module/Console/generated/model/getUsersResponse.js.map +1 -0
  170. package/dist/accessi-module/Console/generated/model/getUsersResult.d.ts +17 -0
  171. package/dist/accessi-module/Console/generated/model/getUsersResult.js +3 -0
  172. package/dist/accessi-module/Console/generated/model/getUsersResult.js.map +1 -0
  173. package/dist/accessi-module/Console/generated/model/getUsersResultExtensionFields.d.ts +12 -0
  174. package/dist/accessi-module/Console/generated/model/getUsersResultExtensionFields.js +9 -0
  175. package/dist/accessi-module/Console/generated/model/getUsersResultExtensionFields.js.map +1 -0
  176. package/dist/accessi-module/Console/generated/model/groupWithMenusEntity.d.ts +19 -0
  177. package/dist/accessi-module/Console/generated/model/groupWithMenusEntity.js +3 -0
  178. package/dist/accessi-module/Console/generated/model/groupWithMenusEntity.js.map +1 -0
  179. package/dist/accessi-module/Console/generated/model/index.d.ts +99 -0
  180. package/dist/accessi-module/Console/generated/model/index.js +116 -0
  181. package/dist/accessi-module/Console/generated/model/index.js.map +1 -0
  182. package/dist/accessi-module/Console/generated/model/issuedServiceTokenDto.d.ts +30 -0
  183. package/dist/accessi-module/Console/generated/model/issuedServiceTokenDto.js +9 -0
  184. package/dist/accessi-module/Console/generated/model/issuedServiceTokenDto.js.map +1 -0
  185. package/dist/accessi-module/Console/generated/model/loginRequest.d.ts +12 -0
  186. package/dist/accessi-module/Console/generated/model/loginRequest.js +9 -0
  187. package/dist/accessi-module/Console/generated/model/loginRequest.js.map +1 -0
  188. package/dist/accessi-module/Console/generated/model/loginResponse.d.ts +14 -0
  189. package/dist/accessi-module/Console/generated/model/loginResponse.js +3 -0
  190. package/dist/accessi-module/Console/generated/model/loginResponse.js.map +1 -0
  191. package/dist/accessi-module/Console/generated/model/loginResult.d.ts +32 -0
  192. package/dist/accessi-module/Console/generated/model/loginResult.js +3 -0
  193. package/dist/accessi-module/Console/generated/model/loginResult.js.map +1 -0
  194. package/dist/accessi-module/Console/generated/model/loginResultExtensionFields.d.ts +12 -0
  195. package/dist/accessi-module/Console/generated/model/loginResultExtensionFields.js +9 -0
  196. package/dist/accessi-module/Console/generated/model/loginResultExtensionFields.js.map +1 -0
  197. package/dist/accessi-module/Console/generated/model/loginResultPasswordRequired.d.ts +13 -0
  198. package/dist/accessi-module/Console/generated/model/loginResultPasswordRequired.js +14 -0
  199. package/dist/accessi-module/Console/generated/model/loginResultPasswordRequired.js.map +1 -0
  200. package/dist/accessi-module/Console/generated/model/menuEntity.d.ts +32 -0
  201. package/dist/accessi-module/Console/generated/model/menuEntity.js +9 -0
  202. package/dist/accessi-module/Console/generated/model/menuEntity.js.map +1 -0
  203. package/dist/accessi-module/Console/generated/model/menuTypeEntity.d.ts +12 -0
  204. package/dist/accessi-module/Console/generated/model/menuTypeEntity.js +9 -0
  205. package/dist/accessi-module/Console/generated/model/menuTypeEntity.js.map +1 -0
  206. package/dist/accessi-module/Console/generated/model/passwordExpiredResponse.d.ts +12 -0
  207. package/dist/accessi-module/Console/generated/model/passwordExpiredResponse.js +9 -0
  208. package/dist/accessi-module/Console/generated/model/passwordExpiredResponse.js.map +1 -0
  209. package/dist/accessi-module/Console/generated/model/permission.d.ts +12 -0
  210. package/dist/accessi-module/Console/generated/model/permission.js +9 -0
  211. package/dist/accessi-module/Console/generated/model/permission.js.map +1 -0
  212. package/dist/accessi-module/Console/generated/model/publicRegisterRequest.d.ts +51 -0
  213. package/dist/accessi-module/Console/generated/model/publicRegisterRequest.js +9 -0
  214. package/dist/accessi-module/Console/generated/model/publicRegisterRequest.js.map +1 -0
  215. package/dist/accessi-module/Console/generated/model/registerRequest.d.ts +62 -0
  216. package/dist/accessi-module/Console/generated/model/registerRequest.js +3 -0
  217. package/dist/accessi-module/Console/generated/model/registerRequest.js.map +1 -0
  218. package/dist/accessi-module/Console/generated/model/registerResponse.d.ts +14 -0
  219. package/dist/accessi-module/Console/generated/model/registerResponse.js +3 -0
  220. package/dist/accessi-module/Console/generated/model/registerResponse.js.map +1 -0
  221. package/dist/accessi-module/Console/generated/model/resendTwoFactorRequest.d.ts +13 -0
  222. package/dist/accessi-module/Console/generated/model/resendTwoFactorRequest.js +9 -0
  223. package/dist/accessi-module/Console/generated/model/resendTwoFactorRequest.js.map +1 -0
  224. package/dist/accessi-module/Console/generated/model/role.d.ts +15 -0
  225. package/dist/accessi-module/Console/generated/model/role.js +3 -0
  226. package/dist/accessi-module/Console/generated/model/role.js.map +1 -0
  227. package/dist/accessi-module/Console/generated/model/ruoliMenu.d.ts +15 -0
  228. package/dist/accessi-module/Console/generated/model/ruoliMenu.js +3 -0
  229. package/dist/accessi-module/Console/generated/model/ruoliMenu.js.map +1 -0
  230. package/dist/accessi-module/Console/generated/model/ruoliMenuTipoAbilitazione.d.ts +16 -0
  231. package/dist/accessi-module/Console/generated/model/ruoliMenuTipoAbilitazione.js +17 -0
  232. package/dist/accessi-module/Console/generated/model/ruoliMenuTipoAbilitazione.js.map +1 -0
  233. package/dist/accessi-module/Console/generated/model/schemaDdlResult.d.ts +20 -0
  234. package/dist/accessi-module/Console/generated/model/schemaDdlResult.js +3 -0
  235. package/dist/accessi-module/Console/generated/model/schemaDdlResult.js.map +1 -0
  236. package/dist/accessi-module/Console/generated/model/schemaDdlSection.d.ts +12 -0
  237. package/dist/accessi-module/Console/generated/model/schemaDdlSection.js +9 -0
  238. package/dist/accessi-module/Console/generated/model/schemaDdlSection.js.map +1 -0
  239. package/dist/accessi-module/Console/generated/model/sendResetPasswordEmailRequest.d.ts +12 -0
  240. package/dist/accessi-module/Console/generated/model/sendResetPasswordEmailRequest.js +9 -0
  241. package/dist/accessi-module/Console/generated/model/sendResetPasswordEmailRequest.js.map +1 -0
  242. package/dist/accessi-module/Console/generated/model/serveResetPasswordPageParams.d.ts +12 -0
  243. package/dist/accessi-module/Console/generated/model/serveResetPasswordPageParams.js +9 -0
  244. package/dist/accessi-module/Console/generated/model/serveResetPasswordPageParams.js.map +1 -0
  245. package/dist/accessi-module/Console/generated/model/serviceTokenDto.d.ts +28 -0
  246. package/dist/accessi-module/Console/generated/model/serviceTokenDto.js +9 -0
  247. package/dist/accessi-module/Console/generated/model/serviceTokenDto.js.map +1 -0
  248. package/dist/accessi-module/Console/generated/model/setPasswordLoginPolicyRequest.d.ts +10 -0
  249. package/dist/accessi-module/Console/generated/model/setPasswordLoginPolicyRequest.js +9 -0
  250. package/dist/accessi-module/Console/generated/model/setPasswordLoginPolicyRequest.js.map +1 -0
  251. package/dist/accessi-module/Console/generated/model/setStatoRegistrazioneDto.d.ts +13 -0
  252. package/dist/accessi-module/Console/generated/model/setStatoRegistrazioneDto.js +3 -0
  253. package/dist/accessi-module/Console/generated/model/setStatoRegistrazioneDto.js.map +1 -0
  254. package/dist/accessi-module/Console/generated/model/setStatoRegistrazioneDtoStatoRegistrazione.d.ts +18 -0
  255. package/dist/accessi-module/Console/generated/model/setStatoRegistrazioneDtoStatoRegistrazione.js +19 -0
  256. package/dist/accessi-module/Console/generated/model/setStatoRegistrazioneDtoStatoRegistrazione.js.map +1 -0
  257. package/dist/accessi-module/Console/generated/model/status.d.ts +12 -0
  258. package/dist/accessi-module/Console/generated/model/status.js +9 -0
  259. package/dist/accessi-module/Console/generated/model/status.js.map +1 -0
  260. package/dist/accessi-module/Console/generated/model/tipoFiltro.d.ts +23 -0
  261. package/dist/accessi-module/Console/generated/model/tipoFiltro.js +3 -0
  262. package/dist/accessi-module/Console/generated/model/tipoFiltro.js.map +1 -0
  263. package/dist/accessi-module/Console/generated/model/tipoFiltroFlgEnabled.d.ts +14 -0
  264. package/dist/accessi-module/Console/generated/model/tipoFiltroFlgEnabled.js +15 -0
  265. package/dist/accessi-module/Console/generated/model/tipoFiltroFlgEnabled.js.map +1 -0
  266. package/dist/accessi-module/Console/generated/model/tokenResult.d.ts +15 -0
  267. package/dist/accessi-module/Console/generated/model/tokenResult.js +3 -0
  268. package/dist/accessi-module/Console/generated/model/tokenResult.js.map +1 -0
  269. package/dist/accessi-module/Console/generated/model/tokenResultType.d.ts +14 -0
  270. package/dist/accessi-module/Console/generated/model/tokenResultType.js +15 -0
  271. package/dist/accessi-module/Console/generated/model/tokenResultType.js.map +1 -0
  272. package/dist/accessi-module/Console/generated/model/twoFactorChallengeDto.d.ts +18 -0
  273. package/dist/accessi-module/Console/generated/model/twoFactorChallengeDto.js +3 -0
  274. package/dist/accessi-module/Console/generated/model/twoFactorChallengeDto.js.map +1 -0
  275. package/dist/accessi-module/Console/generated/model/twoFactorChallengeDtoMethod.d.ts +10 -0
  276. package/dist/accessi-module/Console/generated/model/twoFactorChallengeDtoMethod.js +14 -0
  277. package/dist/accessi-module/Console/generated/model/twoFactorChallengeDtoMethod.js.map +1 -0
  278. package/dist/accessi-module/Console/generated/model/twoFactorChallengeDtoTwoFactorRequired.d.ts +13 -0
  279. package/dist/accessi-module/Console/generated/model/twoFactorChallengeDtoTwoFactorRequired.js +14 -0
  280. package/dist/accessi-module/Console/generated/model/twoFactorChallengeDtoTwoFactorRequired.js.map +1 -0
  281. package/dist/accessi-module/Console/generated/model/updateEnabledStatusRequest.d.ts +10 -0
  282. package/dist/accessi-module/Console/generated/model/updateEnabledStatusRequest.js +9 -0
  283. package/dist/accessi-module/Console/generated/model/updateEnabledStatusRequest.js.map +1 -0
  284. package/dist/accessi-module/Console/generated/model/updateFederatedIdentityRequest.d.ts +11 -0
  285. package/dist/accessi-module/Console/generated/model/updateFederatedIdentityRequest.js +9 -0
  286. package/dist/accessi-module/Console/generated/model/updateFederatedIdentityRequest.js.map +1 -0
  287. package/dist/accessi-module/Console/generated/model/updateFederatedProviderRequest.d.ts +12 -0
  288. package/dist/accessi-module/Console/generated/model/updateFederatedProviderRequest.js +9 -0
  289. package/dist/accessi-module/Console/generated/model/updateFederatedProviderRequest.js.map +1 -0
  290. package/dist/accessi-module/Console/generated/model/updateFilterTypeRequest.d.ts +21 -0
  291. package/dist/accessi-module/Console/generated/model/updateFilterTypeRequest.js +3 -0
  292. package/dist/accessi-module/Console/generated/model/updateFilterTypeRequest.js.map +1 -0
  293. package/dist/accessi-module/Console/generated/model/updateFilterTypeRequestFlgEnabled.d.ts +14 -0
  294. package/dist/accessi-module/Console/generated/model/updateFilterTypeRequestFlgEnabled.js +15 -0
  295. package/dist/accessi-module/Console/generated/model/updateFilterTypeRequestFlgEnabled.js.map +1 -0
  296. package/dist/accessi-module/Console/generated/model/updateMenuGroupRequest.d.ts +17 -0
  297. package/dist/accessi-module/Console/generated/model/updateMenuGroupRequest.js +9 -0
  298. package/dist/accessi-module/Console/generated/model/updateMenuGroupRequest.js.map +1 -0
  299. package/dist/accessi-module/Console/generated/model/updateMenuRequest.d.ts +47 -0
  300. package/dist/accessi-module/Console/generated/model/updateMenuRequest.js +9 -0
  301. package/dist/accessi-module/Console/generated/model/updateMenuRequest.js.map +1 -0
  302. package/dist/accessi-module/Console/generated/model/updateMenuTypeRequest.d.ts +13 -0
  303. package/dist/accessi-module/Console/generated/model/updateMenuTypeRequest.js +9 -0
  304. package/dist/accessi-module/Console/generated/model/updateMenuTypeRequest.js.map +1 -0
  305. package/dist/accessi-module/Console/generated/model/userDto.d.ts +88 -0
  306. package/dist/accessi-module/Console/generated/model/userDto.js +3 -0
  307. package/dist/accessi-module/Console/generated/model/userDto.js.map +1 -0
  308. package/dist/accessi-module/Console/generated/model/userDtoStatoRegistrazione.d.ts +18 -0
  309. package/dist/accessi-module/Console/generated/model/userDtoStatoRegistrazione.js +19 -0
  310. package/dist/accessi-module/Console/generated/model/userDtoStatoRegistrazione.js.map +1 -0
  311. package/dist/accessi-module/Console/generated/model/userGrantsDto.d.ts +16 -0
  312. package/dist/accessi-module/Console/generated/model/userGrantsDto.js +3 -0
  313. package/dist/accessi-module/Console/generated/model/userGrantsDto.js.map +1 -0
  314. package/dist/accessi-module/Console/generated/model/userGrantsResponse.d.ts +14 -0
  315. package/dist/accessi-module/Console/generated/model/userGrantsResponse.js +3 -0
  316. package/dist/accessi-module/Console/generated/model/userGrantsResponse.js.map +1 -0
  317. package/dist/accessi-module/Console/generated/model/verifyTwoFactorRequest.d.ts +18 -0
  318. package/dist/accessi-module/Console/generated/model/verifyTwoFactorRequest.js +9 -0
  319. package/dist/accessi-module/Console/generated/model/verifyTwoFactorRequest.js.map +1 -0
  320. package/dist/accessi-module/Console/help.d.ts +13 -0
  321. package/dist/accessi-module/Console/help.js +355 -0
  322. package/dist/accessi-module/Console/help.js.map +1 -0
  323. package/dist/accessi-module/Console/index.html +153 -0
  324. package/dist/accessi-module/Console/wiki.d.ts +52 -0
  325. package/dist/accessi-module/Console/wiki.js +730 -0
  326. package/dist/accessi-module/Console/wiki.js.map +1 -0
  327. package/dist/accessi-module/Controllers/AccessiConsoleController.d.ts +18 -0
  328. package/dist/accessi-module/Controllers/AccessiConsoleController.js +111 -0
  329. package/dist/accessi-module/Controllers/AccessiConsoleController.js.map +1 -0
  330. package/dist/accessi-module/Controllers/AuthController.d.ts +12 -6
  331. package/dist/accessi-module/Controllers/AuthController.js +167 -82
  332. package/dist/accessi-module/Controllers/AuthController.js.map +1 -1
  333. package/dist/accessi-module/Controllers/ConfiguratorController.d.ts +1 -5
  334. package/dist/accessi-module/Controllers/ConfiguratorController.js +26 -44
  335. package/dist/accessi-module/Controllers/ConfiguratorController.js.map +1 -1
  336. package/dist/accessi-module/Controllers/EmailController.d.ts +4 -6
  337. package/dist/accessi-module/Controllers/EmailController.js +12 -14
  338. package/dist/accessi-module/Controllers/EmailController.js.map +1 -1
  339. package/dist/accessi-module/Controllers/FiltriController.d.ts +5 -4
  340. package/dist/accessi-module/Controllers/FiltriController.js +125 -6
  341. package/dist/accessi-module/Controllers/FiltriController.js.map +1 -1
  342. package/dist/accessi-module/Controllers/PermissionController.d.ts +12 -1
  343. package/dist/accessi-module/Controllers/PermissionController.js +322 -51
  344. package/dist/accessi-module/Controllers/PermissionController.js.map +1 -1
  345. package/dist/accessi-module/Controllers/SchemaController.d.ts +9 -0
  346. package/dist/accessi-module/Controllers/SchemaController.js +79 -0
  347. package/dist/accessi-module/Controllers/SchemaController.js.map +1 -0
  348. package/dist/accessi-module/Controllers/ServiceTokenController.d.ts +23 -0
  349. package/dist/accessi-module/Controllers/ServiceTokenController.js +176 -0
  350. package/dist/accessi-module/Controllers/ServiceTokenController.js.map +1 -0
  351. package/dist/accessi-module/Controllers/UserController.d.ts +8 -4
  352. package/dist/accessi-module/Controllers/UserController.js +161 -28
  353. package/dist/accessi-module/Controllers/UserController.js.map +1 -1
  354. package/dist/accessi-module/Dtos/Abilitazione.js.map +1 -1
  355. package/dist/accessi-module/Dtos/AbilitazioneMenu.js +16 -8
  356. package/dist/accessi-module/Dtos/AbilitazioneMenu.js.map +1 -1
  357. package/dist/accessi-module/Dtos/AdminBootstrapDtos.d.ts +19 -0
  358. package/dist/accessi-module/Dtos/AdminBootstrapDtos.js +83 -0
  359. package/dist/accessi-module/Dtos/AdminBootstrapDtos.js.map +1 -0
  360. package/dist/accessi-module/Dtos/AssignPermissionsToUserRequest.js +0 -1
  361. package/dist/accessi-module/Dtos/AssignPermissionsToUserRequest.js.map +1 -1
  362. package/dist/accessi-module/Dtos/AssignRolesToUserRequest.js +1 -2
  363. package/dist/accessi-module/Dtos/AssignRolesToUserRequest.js.map +1 -1
  364. package/dist/accessi-module/Dtos/AuthenticatedUserPayloadDto.d.ts +13 -0
  365. package/dist/accessi-module/Dtos/AuthenticatedUserPayloadDto.js +70 -0
  366. package/dist/accessi-module/Dtos/AuthenticatedUserPayloadDto.js.map +1 -0
  367. package/dist/accessi-module/Dtos/BaseResponse.d.ts +22 -0
  368. package/dist/accessi-module/Dtos/BaseResponse.js +106 -1
  369. package/dist/accessi-module/Dtos/BaseResponse.js.map +1 -1
  370. package/dist/accessi-module/Dtos/CatalogDtos.d.ts +64 -0
  371. package/dist/accessi-module/Dtos/CatalogDtos.js +322 -0
  372. package/dist/accessi-module/Dtos/CatalogDtos.js.map +1 -0
  373. package/dist/accessi-module/Dtos/ConfirmResetPasswordRequest.d.ts +3 -0
  374. package/dist/accessi-module/Dtos/ConfirmResetPasswordRequest.js +31 -0
  375. package/dist/accessi-module/Dtos/ConfirmResetPasswordRequest.js.map +1 -0
  376. package/dist/accessi-module/Dtos/FederatedIdentityDtos.d.ts +69 -0
  377. package/dist/accessi-module/Dtos/FederatedIdentityDtos.js +236 -0
  378. package/dist/accessi-module/Dtos/FederatedIdentityDtos.js.map +1 -0
  379. package/dist/accessi-module/Dtos/FiltriUtente.js +5 -1
  380. package/dist/accessi-module/Dtos/FiltriUtente.js.map +1 -1
  381. package/dist/accessi-module/Dtos/GetGroupsWithMenusResponse.js +1 -1
  382. package/dist/accessi-module/Dtos/GetGroupsWithMenusResponse.js.map +1 -1
  383. package/dist/accessi-module/Dtos/GetMenusResponse.js +1 -1
  384. package/dist/accessi-module/Dtos/GetMenusResponse.js.map +1 -1
  385. package/dist/accessi-module/Dtos/GetRolesResponse.js.map +1 -1
  386. package/dist/accessi-module/Dtos/GetUserByTokenRequest.d.ts +3 -0
  387. package/dist/accessi-module/Dtos/GetUserByTokenRequest.js +26 -0
  388. package/dist/accessi-module/Dtos/GetUserByTokenRequest.js.map +1 -0
  389. package/dist/accessi-module/Dtos/GetUserByTokenResponse.d.ts +5 -0
  390. package/dist/accessi-module/Dtos/GetUserByTokenResponse.js +27 -0
  391. package/dist/accessi-module/Dtos/GetUserByTokenResponse.js.map +1 -0
  392. package/dist/accessi-module/Dtos/GetUsersResponse.d.ts +1 -1
  393. package/dist/accessi-module/Dtos/GetUsersResponse.js.map +1 -1
  394. package/dist/accessi-module/Dtos/LoginRequest.d.ts +1 -1
  395. package/dist/accessi-module/Dtos/LoginRequest.js +3 -2
  396. package/dist/accessi-module/Dtos/LoginRequest.js.map +1 -1
  397. package/dist/accessi-module/Dtos/LoginResponse.d.ts +6 -2
  398. package/dist/accessi-module/Dtos/LoginResponse.js +20 -7
  399. package/dist/accessi-module/Dtos/LoginResponse.js.map +1 -1
  400. package/dist/accessi-module/Dtos/MenuItem.js +1 -0
  401. package/dist/accessi-module/Dtos/Permission.d.ts +1 -0
  402. package/dist/accessi-module/Dtos/Permission.js +1 -0
  403. package/dist/accessi-module/Dtos/Permission.js.map +1 -1
  404. package/dist/accessi-module/Dtos/PublicRegisterRequest.d.ts +5 -0
  405. package/dist/accessi-module/Dtos/PublicRegisterRequest.js +15 -0
  406. package/dist/accessi-module/Dtos/PublicRegisterRequest.js.map +1 -0
  407. package/dist/accessi-module/Dtos/RegisterRequest.d.ts +2 -4
  408. package/dist/accessi-module/Dtos/RegisterRequest.js +18 -28
  409. package/dist/accessi-module/Dtos/RegisterRequest.js.map +1 -1
  410. package/dist/accessi-module/Dtos/RegisterResponse.d.ts +1 -1
  411. package/dist/accessi-module/Dtos/RegisterResponse.js +3 -3
  412. package/dist/accessi-module/Dtos/RegisterResponse.js.map +1 -1
  413. package/dist/accessi-module/Dtos/Role.d.ts +4 -0
  414. package/dist/accessi-module/Dtos/Role.js +4 -0
  415. package/dist/accessi-module/Dtos/Role.js.map +1 -1
  416. package/dist/accessi-module/Dtos/RuoliMenu.js.map +1 -1
  417. package/dist/accessi-module/Dtos/SchemaDtos.d.ts +19 -0
  418. package/dist/accessi-module/Dtos/SchemaDtos.js +84 -0
  419. package/dist/accessi-module/Dtos/SchemaDtos.js.map +1 -0
  420. package/dist/accessi-module/Dtos/SendResetPasswordEmailRequest.d.ts +4 -0
  421. package/dist/accessi-module/Dtos/SendResetPasswordEmailRequest.js +36 -0
  422. package/dist/accessi-module/Dtos/SendResetPasswordEmailRequest.js.map +1 -0
  423. package/dist/accessi-module/Dtos/ServiceToken.d.ts +34 -0
  424. package/dist/accessi-module/Dtos/ServiceToken.js +128 -0
  425. package/dist/accessi-module/Dtos/ServiceToken.js.map +1 -0
  426. package/dist/accessi-module/Dtos/SetStatoRegistrazione.js.map +1 -1
  427. package/dist/accessi-module/Dtos/StatoRegistrazione.js.map +1 -1
  428. package/dist/accessi-module/Dtos/TipoAbilitazione.d.ts +4 -0
  429. package/dist/accessi-module/Dtos/TipoAbilitazione.js +4 -0
  430. package/dist/accessi-module/Dtos/TipoAbilitazione.js.map +1 -1
  431. package/dist/accessi-module/Dtos/TipoFiltro.js.map +1 -1
  432. package/dist/accessi-module/Dtos/TokenResult.js.map +1 -1
  433. package/dist/accessi-module/Dtos/TwoFactorDtos.d.ts +13 -0
  434. package/dist/accessi-module/Dtos/TwoFactorDtos.js +60 -0
  435. package/dist/accessi-module/Dtos/TwoFactorDtos.js.map +1 -0
  436. package/dist/accessi-module/Dtos/UpdateEnabledStatusRequest.js.map +1 -1
  437. package/dist/accessi-module/Dtos/UserDto.d.ts +9 -4
  438. package/dist/accessi-module/Dtos/UserDto.js +39 -24
  439. package/dist/accessi-module/Dtos/UserDto.js.map +1 -1
  440. package/dist/accessi-module/Dtos/UserGrantsDto.js.map +1 -1
  441. package/dist/accessi-module/Dtos/UserGrantsResponse.d.ts +5 -0
  442. package/dist/accessi-module/Dtos/UserGrantsResponse.js +27 -0
  443. package/dist/accessi-module/Dtos/UserGrantsResponse.js.map +1 -0
  444. package/dist/accessi-module/Dtos/index.d.ts +13 -0
  445. package/dist/accessi-module/Dtos/index.js +13 -0
  446. package/dist/accessi-module/Dtos/index.js.map +1 -1
  447. package/dist/accessi-module/Services/AdminBootstrapService/AdminBootstrapService.d.ts +33 -0
  448. package/dist/accessi-module/Services/AdminBootstrapService/AdminBootstrapService.js +106 -0
  449. package/dist/accessi-module/Services/AdminBootstrapService/AdminBootstrapService.js.map +1 -0
  450. package/dist/accessi-module/Services/AuthService/AuthService.d.ts +40 -5
  451. package/dist/accessi-module/Services/AuthService/AuthService.js +192 -42
  452. package/dist/accessi-module/Services/AuthService/AuthService.js.map +1 -1
  453. package/dist/accessi-module/Services/ConfiguratorService/ConfiguratorService.d.ts +3 -1
  454. package/dist/accessi-module/Services/ConfiguratorService/ConfiguratorService.js +5 -1
  455. package/dist/accessi-module/Services/ConfiguratorService/ConfiguratorService.js.map +1 -1
  456. package/dist/accessi-module/Services/EmailService/EmailService.d.ts +9 -2
  457. package/dist/accessi-module/Services/EmailService/EmailService.js +47 -22
  458. package/dist/accessi-module/Services/EmailService/EmailService.js.map +1 -1
  459. package/dist/accessi-module/Services/FiltriService/FiltriService.d.ts +18 -3
  460. package/dist/accessi-module/Services/FiltriService/FiltriService.js +92 -16
  461. package/dist/accessi-module/Services/FiltriService/FiltriService.js.map +1 -1
  462. package/dist/accessi-module/Services/PermissionService/PermissionService.d.ts +77 -2
  463. package/dist/accessi-module/Services/PermissionService/PermissionService.js +603 -206
  464. package/dist/accessi-module/Services/PermissionService/PermissionService.js.map +1 -1
  465. package/dist/accessi-module/Services/SchemaExportService/SchemaExportService.d.ts +36 -0
  466. package/dist/accessi-module/Services/SchemaExportService/SchemaExportService.js +125 -0
  467. package/dist/accessi-module/Services/SchemaExportService/SchemaExportService.js.map +1 -0
  468. package/dist/accessi-module/Services/ServiceTokenService/ServiceTokenService.d.ts +75 -0
  469. package/dist/accessi-module/Services/ServiceTokenService/ServiceTokenService.js +265 -0
  470. package/dist/accessi-module/Services/ServiceTokenService/ServiceTokenService.js.map +1 -0
  471. package/dist/accessi-module/Services/TwoFactorService/TwoFactorService.d.ts +27 -0
  472. package/dist/accessi-module/Services/TwoFactorService/TwoFactorService.js +175 -0
  473. package/dist/accessi-module/Services/TwoFactorService/TwoFactorService.js.map +1 -0
  474. package/dist/accessi-module/Services/UserService/UserService.d.ts +51 -5
  475. package/dist/accessi-module/Services/UserService/UserService.js +396 -294
  476. package/dist/accessi-module/Services/UserService/UserService.js.map +1 -1
  477. package/dist/accessi-module/Views/reset-password.html +213 -213
  478. package/dist/accessi-module/accessiRuntime.d.ts +45 -0
  479. package/dist/accessi-module/accessiRuntime.js +39 -0
  480. package/dist/accessi-module/accessiRuntime.js.map +1 -0
  481. package/dist/accessi-module/database-updates/AccessiCatalogMigrator.d.ts +83 -0
  482. package/dist/accessi-module/database-updates/AccessiCatalogMigrator.js +360 -0
  483. package/dist/accessi-module/database-updates/AccessiCatalogMigrator.js.map +1 -0
  484. package/dist/accessi-module/database-updates/AccessiDatabaseUpdater.d.ts +57 -10
  485. package/dist/accessi-module/database-updates/AccessiDatabaseUpdater.js +475 -179
  486. package/dist/accessi-module/database-updates/AccessiDatabaseUpdater.js.map +1 -1
  487. package/dist/accessi-module/database-updates/accessiOptionsFromEnv.d.ts +5 -0
  488. package/dist/accessi-module/database-updates/accessiOptionsFromEnv.js +79 -0
  489. package/dist/accessi-module/database-updates/accessiOptionsFromEnv.js.map +1 -0
  490. package/dist/accessi-module/database-updates/accessiSchema.d.ts +67 -0
  491. package/dist/accessi-module/database-updates/accessiSchema.js +124 -0
  492. package/dist/accessi-module/database-updates/accessiSchema.js.map +1 -0
  493. package/dist/accessi-module/database-updates/optionalColumns.d.ts +7 -0
  494. package/dist/accessi-module/database-updates/optionalColumns.js +58 -0
  495. package/dist/accessi-module/database-updates/optionalColumns.js.map +1 -0
  496. package/dist/accessi-module/database-updates/runAccessiCatalogMigrations.d.ts +1 -0
  497. package/dist/accessi-module/database-updates/runAccessiCatalogMigrations.js +69 -0
  498. package/dist/accessi-module/database-updates/runAccessiCatalogMigrations.js.map +1 -0
  499. package/dist/accessi-module/database-updates/runAccessiDbUpdate.js +15 -53
  500. package/dist/accessi-module/database-updates/runAccessiDbUpdate.js.map +1 -1
  501. package/dist/accessi-module/federated-auth/FederatedAuthController.d.ts +24 -0
  502. package/dist/accessi-module/federated-auth/FederatedAuthController.js +333 -0
  503. package/dist/accessi-module/federated-auth/FederatedAuthController.js.map +1 -0
  504. package/dist/accessi-module/federated-auth/FederatedAuthService.d.ts +100 -0
  505. package/dist/accessi-module/federated-auth/FederatedAuthService.js +451 -0
  506. package/dist/accessi-module/federated-auth/FederatedAuthService.js.map +1 -0
  507. package/dist/accessi-module/federated-auth/FederatedAuthTypes.d.ts +53 -0
  508. package/dist/accessi-module/federated-auth/FederatedAuthTypes.js +3 -0
  509. package/dist/accessi-module/federated-auth/FederatedAuthTypes.js.map +1 -0
  510. package/dist/accessi-module/index.d.ts +29 -0
  511. package/dist/accessi-module/index.js +89 -19
  512. package/dist/accessi-module/index.js.map +1 -1
  513. package/dist/accessi-module/jwt/jwt.strategy.d.ts +1 -1
  514. package/dist/accessi-module/jwt/jwt.strategy.js +16 -7
  515. package/dist/accessi-module/jwt/jwt.strategy.js.map +1 -1
  516. package/dist/accessi-module/middleware/accessiRequirements.d.ts +23 -1
  517. package/dist/accessi-module/middleware/accessiRequirements.js +7 -0
  518. package/dist/accessi-module/middleware/accessiRequirements.js.map +1 -1
  519. package/dist/accessi-module/middleware/authenticateGen.d.ts +16 -1
  520. package/dist/accessi-module/middleware/authenticateGen.js +63 -25
  521. package/dist/accessi-module/middleware/authenticateGen.js.map +1 -1
  522. package/dist/accessi-module/security/AccessiHttpExceptionFilter.d.ts +12 -0
  523. package/dist/accessi-module/security/AccessiHttpExceptionFilter.js +74 -0
  524. package/dist/accessi-module/security/AccessiHttpExceptionFilter.js.map +1 -0
  525. package/dist/accessi-module/security/accessControl.d.ts +22 -2
  526. package/dist/accessi-module/security/accessControl.js +47 -8
  527. package/dist/accessi-module/security/accessControl.js.map +1 -1
  528. package/dist/accessi-module/security/accessiValidation.d.ts +9 -0
  529. package/dist/accessi-module/security/accessiValidation.js +41 -0
  530. package/dist/accessi-module/security/accessiValidation.js.map +1 -0
  531. package/dist/accessi-module/security/adminBootstrap.d.ts +8 -0
  532. package/dist/accessi-module/security/adminBootstrap.js +41 -0
  533. package/dist/accessi-module/security/adminBootstrap.js.map +1 -0
  534. package/dist/accessi-module/security/authenticatedToken.d.ts +16 -2
  535. package/dist/accessi-module/security/authenticatedToken.js +31 -4
  536. package/dist/accessi-module/security/authenticatedToken.js.map +1 -1
  537. package/dist/accessi-module/security/emailConfiguration.d.ts +20 -0
  538. package/dist/accessi-module/security/emailConfiguration.js +41 -0
  539. package/dist/accessi-module/security/emailConfiguration.js.map +1 -0
  540. package/dist/accessi-module/security/passwordResetToken.d.ts +13 -3
  541. package/dist/accessi-module/security/passwordResetToken.js +13 -5
  542. package/dist/accessi-module/security/passwordResetToken.js.map +1 -1
  543. package/dist/accessi-module/security/publicAuthRateLimit.d.ts +3 -3
  544. package/dist/accessi-module/security/publicAuthRateLimit.js +31 -8
  545. package/dist/accessi-module/security/publicAuthRateLimit.js.map +1 -1
  546. package/dist/accessi-module/security/serviceTokenGuard.d.ts +25 -0
  547. package/dist/accessi-module/security/serviceTokenGuard.js +85 -0
  548. package/dist/accessi-module/security/serviceTokenGuard.js.map +1 -0
  549. package/dist/accessi-module/security/serviceTokenRateLimit.d.ts +8 -0
  550. package/dist/accessi-module/security/serviceTokenRateLimit.js +49 -0
  551. package/dist/accessi-module/security/serviceTokenRateLimit.js.map +1 -0
  552. package/dist/accessi-module/startupLog.d.ts +6 -0
  553. package/dist/accessi-module/startupLog.js +25 -0
  554. package/dist/accessi-module/startupLog.js.map +1 -0
  555. package/dist/allegati-module/AllegatiModule.d.ts +12 -1
  556. package/dist/allegati-module/AllegatiModule.js +11 -1
  557. package/dist/allegati-module/AllegatiModule.js.map +1 -1
  558. package/dist/allegati-module/Controllers/AllegatiController.d.ts +2 -1
  559. package/dist/allegati-module/Controllers/AllegatiController.js +23 -15
  560. package/dist/allegati-module/Controllers/AllegatiController.js.map +1 -1
  561. package/dist/allegati-module/Dtos/AllegatoDto.js.map +1 -1
  562. package/dist/allegati-module/Dtos/BaseResponse.js.map +1 -1
  563. package/dist/allegati-module/Dtos/UploadSingleFileRequest.js.map +1 -1
  564. package/dist/allegati-module/Dtos/index.js.map +1 -1
  565. package/dist/allegati-module/Dtos/responses/DownloadAllegatoResponseDto.js.map +1 -1
  566. package/dist/allegati-module/Dtos/responses/GetListResponse.js.map +1 -1
  567. package/dist/allegati-module/Dtos/responses/UploadAllegatoResponseDto.js.map +1 -1
  568. package/dist/allegati-module/Services/AllegatiService/AllegatiService.d.ts +10 -3
  569. package/dist/allegati-module/Services/AllegatiService/AllegatiService.js +150 -101
  570. package/dist/allegati-module/Services/AllegatiService/AllegatiService.js.map +1 -1
  571. package/dist/allegati-module/index.js.map +1 -1
  572. package/dist/allegati-module/security/allegatiAuthorizationGuard.d.ts +14 -0
  573. package/dist/allegati-module/security/allegatiAuthorizationGuard.js +70 -0
  574. package/dist/allegati-module/security/allegatiAuthorizationGuard.js.map +1 -0
  575. package/dist/autobind.d.ts +10 -3
  576. package/dist/autobind.js +24 -9
  577. package/dist/autobind.js.map +1 -1
  578. package/dist/emilsoftware-utilities-2.0.0-dev.40.tgz +0 -0
  579. package/dist/firebird-compat.d.ts +27 -6
  580. package/dist/firebird-compat.js +150 -135
  581. package/dist/firebird-compat.js.map +1 -1
  582. package/dist/index.d.ts +2 -2
  583. package/dist/index.js +2 -2
  584. package/dist/index.js.map +1 -1
  585. package/dist/initEmilsoftwareModule.js +13 -3
  586. package/dist/initEmilsoftwareModule.js.map +1 -1
  587. package/dist/scripts/generateAccessiOpenApi.d.ts +1 -0
  588. package/dist/scripts/generateAccessiOpenApi.js +57 -0
  589. package/dist/scripts/generateAccessiOpenApi.js.map +1 -0
  590. package/dist/scripts/generateAccessiWiki.d.ts +1 -0
  591. package/dist/scripts/generateAccessiWiki.js +131 -0
  592. package/dist/scripts/generateAccessiWiki.js.map +1 -0
  593. package/dist/swagger/SwaggerConfig.d.ts +7 -1
  594. package/dist/swagger/SwaggerConfig.js +22 -8
  595. package/dist/swagger/SwaggerConfig.js.map +1 -1
  596. package/package.json +105 -83
@@ -0,0 +1,69 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ const AccessiDatabaseUpdater_1 = require("./AccessiDatabaseUpdater");
13
+ const AccessiCatalogMigrator_1 = require("./AccessiCatalogMigrator");
14
+ const accessiOptionsFromEnv_1 = require("./accessiOptionsFromEnv");
15
+ const Orm_1 = require("../../Orm");
16
+ function main() {
17
+ return __awaiter(this, void 0, void 0, function* () {
18
+ var _a;
19
+ const options = (0, accessiOptionsFromEnv_1.createAccessiOptionsFromEnv)();
20
+ if (!((_a = options.catalogScripts) === null || _a === void 0 ? void 0 : _a.folder)) {
21
+ throw new Error("Variabile ambiente mancante: ACCESSI_CATALOG_FOLDER (cartella delle catalog migrations).");
22
+ }
23
+ const checkOnly = process.argv.includes('--check');
24
+ console.log(`[Accessi Catalog] Target: ${options.databaseOptions.host}:${options.databaseOptions.port} -> ${options.databaseOptions.database}`);
25
+ console.log(`[Accessi Catalog] Cartella: ${options.catalogScripts.folder}`);
26
+ // Prima lo schema si adegua, poi si eseguono gli script di catalogo.
27
+ if (!checkOnly) {
28
+ console.log('[Accessi Catalog] Riconciliazione schema...');
29
+ yield AccessiDatabaseUpdater_1.AccessiDatabaseUpdater.run(options);
30
+ }
31
+ if (checkOnly) {
32
+ const pending = yield (0, AccessiCatalogMigrator_1.listPendingCatalogScripts)(options);
33
+ console.log(`[Accessi Catalog] Gia applicati: ${pending.applied.length}`);
34
+ console.log(`[Accessi Catalog] Da applicare: ${pending.pending.length}${pending.pending.length ? ` -> ${pending.pending.join(', ')}` : ''}`);
35
+ console.log(`[Accessi Catalog] Modificati (checksum diverso): ${pending.changed.length}${pending.changed.length ? ` -> ${pending.changed.join(', ')}` : ''}`);
36
+ console.log(`[Accessi Catalog] Non conformi (solo DML): ${pending.invalid.length}`);
37
+ for (const entry of pending.invalid) {
38
+ for (const violation of entry.violations)
39
+ console.error(`[Accessi Catalog] Non conforme: ${entry.script} -> ${violation}`);
40
+ }
41
+ if (pending.invalid.length)
42
+ process.exitCode = 1;
43
+ return;
44
+ }
45
+ const report = yield (0, AccessiCatalogMigrator_1.applyCatalogScripts)(options);
46
+ console.log(`[Accessi Catalog] Scoperti: ${report.discovered} | Applicati: ${report.applied.length} | Saltati: ${report.skipped.length} | Non conformi: ${report.invalid.length} | Falliti: ${report.failed.length}`);
47
+ if (report.applied.length)
48
+ console.log(`[Accessi Catalog] Applicati: ${report.applied.join(', ')}`);
49
+ for (const entry of report.invalid) {
50
+ for (const violation of entry.violations)
51
+ console.error(`[Accessi Catalog] Non conforme: ${entry.script} -> ${violation}`);
52
+ }
53
+ if (report.failed.length) {
54
+ for (const failure of report.failed)
55
+ console.error(`[Accessi Catalog] Fallito: ${failure.script} -> ${failure.error}`);
56
+ }
57
+ if (report.failed.length || report.invalid.length)
58
+ process.exitCode = 1;
59
+ });
60
+ }
61
+ main()
62
+ .then(() => Orm_1.Orm.closePools())
63
+ .then(() => { var _a; return process.exit((_a = process.exitCode) !== null && _a !== void 0 ? _a : 0); })
64
+ .catch((error) => __awaiter(void 0, void 0, void 0, function* () {
65
+ console.error("[Accessi Catalog] Errore durante l'esecuzione:", error);
66
+ yield Orm_1.Orm.closePools().catch(() => undefined);
67
+ process.exit(1);
68
+ }));
69
+ //# sourceMappingURL=runAccessiCatalogMigrations.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runAccessiCatalogMigrations.js","sourceRoot":"","sources":["../../../src/accessi-module/database-updates/runAccessiCatalogMigrations.ts"],"names":[],"mappings":"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","sourcesContent":["import { AccessiDatabaseUpdater } from \"./AccessiDatabaseUpdater\";\nimport { applyCatalogScripts, listPendingCatalogScripts } from \"./AccessiCatalogMigrator\";\nimport { createAccessiOptionsFromEnv } from \"./accessiOptionsFromEnv\";\nimport { Orm } from \"../../Orm\";\n\nasync function main(): Promise<void> {\n const options = createAccessiOptionsFromEnv();\n if (!options.catalogScripts?.folder) {\n throw new Error(\"Variabile ambiente mancante: ACCESSI_CATALOG_FOLDER (cartella delle catalog migrations).\");\n }\n\n const checkOnly = process.argv.includes('--check');\n console.log(`[Accessi Catalog] Target: ${options.databaseOptions.host}:${options.databaseOptions.port} -> ${options.databaseOptions.database}`);\n console.log(`[Accessi Catalog] Cartella: ${options.catalogScripts.folder}`);\n\n // Prima lo schema si adegua, poi si eseguono gli script di catalogo.\n if (!checkOnly) {\n console.log('[Accessi Catalog] Riconciliazione schema...');\n await AccessiDatabaseUpdater.run(options);\n }\n\n if (checkOnly) {\n const pending = await listPendingCatalogScripts(options);\n console.log(`[Accessi Catalog] Gia applicati: ${pending.applied.length}`);\n console.log(`[Accessi Catalog] Da applicare: ${pending.pending.length}${pending.pending.length ? ` -> ${pending.pending.join(', ')}` : ''}`);\n console.log(`[Accessi Catalog] Modificati (checksum diverso): ${pending.changed.length}${pending.changed.length ? ` -> ${pending.changed.join(', ')}` : ''}`);\n console.log(`[Accessi Catalog] Non conformi (solo DML): ${pending.invalid.length}`);\n for (const entry of pending.invalid) {\n for (const violation of entry.violations) console.error(`[Accessi Catalog] Non conforme: ${entry.script} -> ${violation}`);\n }\n if (pending.invalid.length) process.exitCode = 1;\n return;\n }\n\n const report = await applyCatalogScripts(options);\n console.log(`[Accessi Catalog] Scoperti: ${report.discovered} | Applicati: ${report.applied.length} | Saltati: ${report.skipped.length} | Non conformi: ${report.invalid.length} | Falliti: ${report.failed.length}`);\n if (report.applied.length) console.log(`[Accessi Catalog] Applicati: ${report.applied.join(', ')}`);\n for (const entry of report.invalid) {\n for (const violation of entry.violations) console.error(`[Accessi Catalog] Non conforme: ${entry.script} -> ${violation}`);\n }\n if (report.failed.length) {\n for (const failure of report.failed) console.error(`[Accessi Catalog] Fallito: ${failure.script} -> ${failure.error}`);\n }\n if (report.failed.length || report.invalid.length) process.exitCode = 1;\n}\n\nmain()\n .then(() => Orm.closePools())\n .then(() => process.exit(process.exitCode ?? 0))\n .catch(async (error) => {\n console.error(\"[Accessi Catalog] Errore durante l'esecuzione:\", error);\n await Orm.closePools().catch(() => undefined);\n process.exit(1);\n });\n"]}
@@ -10,66 +10,28 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
10
10
  };
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
12
  const AccessiDatabaseUpdater_1 = require("./AccessiDatabaseUpdater");
13
- const Utilities_1 = require("../../Utilities");
14
- function getEnv(name, fallback) {
15
- var _a;
16
- const value = (_a = process.env[name]) !== null && _a !== void 0 ? _a : fallback;
17
- if (!value) {
18
- throw new Error(`Variabile ambiente mancante: ${name}`);
19
- }
20
- return value;
21
- }
22
- function getOptionalBoolean(name, fallback) {
23
- const value = process.env[name];
24
- if (value === undefined) {
25
- return fallback;
26
- }
27
- return value.toLowerCase() === "true";
28
- }
29
- function createAccessiOptionsFromEnv() {
30
- return {
31
- databaseOptions: Utilities_1.DatabaseUtilities.createOption(getEnv("ACCESSI_DB_HOST"), Number(getEnv("ACCESSI_DB_PORT", "3050")), getEnv("ACCESSI_DB_DATABASE"), getEnv("ACCESSI_DB_USER", "SYSDBA"), getEnv("ACCESSI_DB_PASSWORD", "masterkey")),
32
- confirmationEmailUrl: getEnv("ACCESSI_CONFIRMATION_EMAIL_URL", "http://localhost"),
33
- confirmationEmailReturnUrl: getEnv("ACCESSI_CONFIRMATION_RETURN_EMAIL_URL", "http://localhost"),
34
- confirmationEmailPrefix: process.env.ACCESSI_CONFIRMATION_EMAIL_PREFIX,
35
- customResetPage: process.env.ACCESSI_CUSTOM_RESET_PAGE,
36
- encryptionKey: getEnv("ACCESSI_ENCRYPTION_KEY", "1234567890ABCDEF"),
37
- mockDemoUser: getOptionalBoolean("ACCESSI_MOCK_DEMO_USER", false),
38
- passwordExpiration: getOptionalBoolean("ACCESSI_PASSWORD_EXPIRATION", false),
39
- autoUpdateDatabase: true,
40
- jwtOptions: {
41
- secret: getEnv("ACCESSI_JWT_SECRET", "local-accessi-update"),
42
- expiresIn: getEnv("ACCESSI_JWT_EXPIRES", "24h"),
43
- },
44
- emailOptions: {
45
- host: getEnv("ACCESSI_EMAIL_HOST", "localhost"),
46
- port: Number(getEnv("ACCESSI_EMAIL_PORT", "25")),
47
- secure: getOptionalBoolean("ACCESSI_EMAIL_SECURE", false),
48
- requireTLS: getOptionalBoolean("ACCESSI_EMAIL_REQUIRE_TLS", false),
49
- tls: {
50
- rejectUnauthorized: getOptionalBoolean("ACCESSI_EMAIL_TLS_REJECT_UNAUTHORIZED", false),
51
- },
52
- from: getEnv("ACCESSI_EMAIL_FROM", "noreply@example.local"),
53
- auth: {
54
- user: getEnv("ACCESSI_EMAIL_USER", "local-user"),
55
- pass: getEnv("ACCESSI_EMAIL_PASSWORD", "local-password"),
56
- },
57
- },
58
- extensionFieldsOptions: [],
59
- };
60
- }
13
+ const accessiOptionsFromEnv_1 = require("./accessiOptionsFromEnv");
14
+ const Orm_1 = require("../../Orm");
61
15
  function main() {
62
16
  return __awaiter(this, void 0, void 0, function* () {
63
- const options = createAccessiOptionsFromEnv();
64
- console.log("[Accessi DB Update] Avvio aggiornamento database...");
17
+ const options = (0, accessiOptionsFromEnv_1.createAccessiOptionsFromEnv)();
18
+ const checkOnly = process.argv.includes('--check');
19
+ console.log(checkOnly ? '[Accessi DB Update] Verifica schema in sola lettura...' : '[Accessi DB Update] Avvio aggiornamento database...');
65
20
  console.log(`[Accessi DB Update] Target: ${options.databaseOptions.host}:${options.databaseOptions.port} -> ${options.databaseOptions.database}`);
66
- yield AccessiDatabaseUpdater_1.AccessiDatabaseUpdater.run(options);
21
+ if (checkOnly)
22
+ yield AccessiDatabaseUpdater_1.AccessiDatabaseUpdater.assertCompatible(options);
23
+ else
24
+ yield AccessiDatabaseUpdater_1.AccessiDatabaseUpdater.run(options);
67
25
  const currentVersion = yield AccessiDatabaseUpdater_1.AccessiDatabaseUpdater.getCurrentVersion(options);
68
26
  console.log(`[Accessi DB Update] Completato. Versione corrente: ${currentVersion !== null && currentVersion !== void 0 ? currentVersion : "N/D"} | Ultima disponibile: ${AccessiDatabaseUpdater_1.AccessiDatabaseUpdater.getLatestVersion()}`);
69
27
  });
70
28
  }
71
- main().catch((error) => {
29
+ main()
30
+ .then(() => Orm_1.Orm.closePools())
31
+ .then(() => process.exit(0))
32
+ .catch((error) => __awaiter(void 0, void 0, void 0, function* () {
72
33
  console.error("[Accessi DB Update] Errore durante l'aggiornamento:", error);
34
+ yield Orm_1.Orm.closePools().catch(() => undefined);
73
35
  process.exit(1);
74
- });
36
+ }));
75
37
  //# sourceMappingURL=runAccessiDbUpdate.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"runAccessiDbUpdate.js","sourceRoot":"","sources":["../../../src/accessi-module/database-updates/runAccessiDbUpdate.ts"],"names":[],"mappings":"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","sourcesContent":["import { AccessiOptions } from \"../AccessiModule\";\r\nimport { AccessiDatabaseUpdater } from \"./AccessiDatabaseUpdater\";\r\nimport { DatabaseUtilities } from \"../../Utilities\";\r\n\r\nfunction getEnv(name: string, fallback?: string): string {\r\n const value = process.env[name] ?? fallback;\r\n if (!value) {\r\n throw new Error(`Variabile ambiente mancante: ${name}`);\r\n }\r\n return value;\r\n}\r\n\r\nfunction getOptionalBoolean(name: string, fallback: boolean): boolean {\r\n const value = process.env[name];\r\n if (value === undefined) {\r\n return fallback;\r\n }\r\n\r\n return value.toLowerCase() === \"true\";\r\n}\r\n\r\nfunction createAccessiOptionsFromEnv(): AccessiOptions {\r\n return {\r\n databaseOptions: DatabaseUtilities.createOption(\r\n getEnv(\"ACCESSI_DB_HOST\"),\r\n Number(getEnv(\"ACCESSI_DB_PORT\", \"3050\")),\r\n getEnv(\"ACCESSI_DB_DATABASE\"),\r\n getEnv(\"ACCESSI_DB_USER\", \"SYSDBA\"),\r\n getEnv(\"ACCESSI_DB_PASSWORD\", \"masterkey\")\r\n ),\r\n confirmationEmailUrl: getEnv(\"ACCESSI_CONFIRMATION_EMAIL_URL\", \"http://localhost\"),\r\n confirmationEmailReturnUrl: getEnv(\"ACCESSI_CONFIRMATION_RETURN_EMAIL_URL\", \"http://localhost\"),\r\n confirmationEmailPrefix: process.env.ACCESSI_CONFIRMATION_EMAIL_PREFIX,\r\n customResetPage: process.env.ACCESSI_CUSTOM_RESET_PAGE,\r\n encryptionKey: getEnv(\"ACCESSI_ENCRYPTION_KEY\", \"1234567890ABCDEF\"),\r\n mockDemoUser: getOptionalBoolean(\"ACCESSI_MOCK_DEMO_USER\", false),\r\n passwordExpiration: getOptionalBoolean(\"ACCESSI_PASSWORD_EXPIRATION\", false),\r\n autoUpdateDatabase: true,\r\n jwtOptions: {\r\n secret: getEnv(\"ACCESSI_JWT_SECRET\", \"local-accessi-update\"),\r\n expiresIn: getEnv(\"ACCESSI_JWT_EXPIRES\", \"24h\"),\r\n },\r\n emailOptions: {\r\n host: getEnv(\"ACCESSI_EMAIL_HOST\", \"localhost\"),\r\n port: Number(getEnv(\"ACCESSI_EMAIL_PORT\", \"25\")),\r\n secure: getOptionalBoolean(\"ACCESSI_EMAIL_SECURE\", false),\r\n requireTLS: getOptionalBoolean(\"ACCESSI_EMAIL_REQUIRE_TLS\", false),\r\n tls: {\r\n rejectUnauthorized: getOptionalBoolean(\"ACCESSI_EMAIL_TLS_REJECT_UNAUTHORIZED\", false),\r\n },\r\n from: getEnv(\"ACCESSI_EMAIL_FROM\", \"noreply@example.local\"),\r\n auth: {\r\n user: getEnv(\"ACCESSI_EMAIL_USER\", \"local-user\"),\r\n pass: getEnv(\"ACCESSI_EMAIL_PASSWORD\", \"local-password\"),\r\n },\r\n },\r\n extensionFieldsOptions: [],\r\n };\r\n}\r\n\r\nasync function main(): Promise<void> {\r\n const options = createAccessiOptionsFromEnv();\r\n\r\n console.log(\"[Accessi DB Update] Avvio aggiornamento database...\");\r\n console.log(\r\n `[Accessi DB Update] Target: ${options.databaseOptions.host}:${options.databaseOptions.port} -> ${options.databaseOptions.database}`\r\n );\r\n\r\n await AccessiDatabaseUpdater.run(options);\r\n\r\n const currentVersion = await AccessiDatabaseUpdater.getCurrentVersion(options);\r\n console.log(\r\n `[Accessi DB Update] Completato. Versione corrente: ${currentVersion ?? \"N/D\"} | Ultima disponibile: ${AccessiDatabaseUpdater.getLatestVersion()}`\r\n );\r\n}\r\n\r\nmain().catch((error) => {\r\n console.error(\"[Accessi DB Update] Errore durante l'aggiornamento:\", error);\r\n process.exit(1);\r\n});\r\n"]}
1
+ {"version":3,"file":"runAccessiDbUpdate.js","sourceRoot":"","sources":["../../../src/accessi-module/database-updates/runAccessiDbUpdate.ts"],"names":[],"mappings":";;;;;;;;;;;AAAA,qEAAkE;AAClE,mEAAsE;AACtE,mCAAgC;AAEhC,SAAe,IAAI;;QACjB,MAAM,OAAO,GAAG,IAAA,mDAA2B,GAAE,CAAC;QAE9C,MAAM,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;QACnD,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,wDAAwD,CAAC,CAAC,CAAC,qDAAqD,CAAC,CAAC;QAC1I,OAAO,CAAC,GAAG,CACT,+BAA+B,OAAO,CAAC,eAAe,CAAC,IAAI,IAAI,OAAO,CAAC,eAAe,CAAC,IAAI,OAAO,OAAO,CAAC,eAAe,CAAC,QAAQ,EAAE,CACrI,CAAC;QAEF,IAAI,SAAS;YAAE,MAAM,+CAAsB,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;;YACjE,MAAM,+CAAsB,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAE/C,MAAM,cAAc,GAAG,MAAM,+CAAsB,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC;QAC/E,OAAO,CAAC,GAAG,CACT,sDAAsD,cAAc,aAAd,cAAc,cAAd,cAAc,GAAI,KAAK,0BAA0B,+CAAsB,CAAC,gBAAgB,EAAE,EAAE,CACnJ,CAAC;IACJ,CAAC;CAAA;AAED,IAAI,EAAE;KACH,IAAI,CAAC,GAAG,EAAE,CAAC,SAAG,CAAC,UAAU,EAAE,CAAC;KAC5B,IAAI,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;KAC3B,KAAK,CAAC,CAAO,KAAK,EAAE,EAAE;IACrB,OAAO,CAAC,KAAK,CAAC,qDAAqD,EAAE,KAAK,CAAC,CAAC;IAC5E,MAAM,SAAG,CAAC,UAAU,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;IAC9C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAA,CAAC,CAAC","sourcesContent":["import { AccessiDatabaseUpdater } from \"./AccessiDatabaseUpdater\";\nimport { createAccessiOptionsFromEnv } from \"./accessiOptionsFromEnv\";\nimport { Orm } from \"../../Orm\";\n\nasync function main(): Promise<void> {\n const options = createAccessiOptionsFromEnv();\n\n const checkOnly = process.argv.includes('--check');\n console.log(checkOnly ? '[Accessi DB Update] Verifica schema in sola lettura...' : '[Accessi DB Update] Avvio aggiornamento database...');\n console.log(\n `[Accessi DB Update] Target: ${options.databaseOptions.host}:${options.databaseOptions.port} -> ${options.databaseOptions.database}`\n );\n\n if (checkOnly) await AccessiDatabaseUpdater.assertCompatible(options);\n else await AccessiDatabaseUpdater.run(options);\n\n const currentVersion = await AccessiDatabaseUpdater.getCurrentVersion(options);\n console.log(\n `[Accessi DB Update] Completato. Versione corrente: ${currentVersion ?? \"N/D\"} | Ultima disponibile: ${AccessiDatabaseUpdater.getLatestVersion()}`\n );\n}\n\nmain()\n .then(() => Orm.closePools())\n .then(() => process.exit(0))\n .catch(async (error) => {\n console.error(\"[Accessi DB Update] Errore durante l'aggiornamento:\", error);\n await Orm.closePools().catch(() => undefined);\n process.exit(1);\n });\n"]}
@@ -0,0 +1,24 @@
1
+ import { Request, Response } from 'express';
2
+ import { CreateFederatedIdentityRequest, CreateFederatedProviderRequest, CreateFederatedUserRequest, SetPasswordLoginPolicyRequest, UpdateFederatedIdentityRequest, UpdateFederatedProviderRequest } from '../Dtos/FederatedIdentityDtos';
3
+ import { FederatedAuthService } from './FederatedAuthService';
4
+ /**
5
+ * Master-only administration API. Authentication itself is intentionally not
6
+ * exposed over HTTP: the hosting backend validates its SSO and calls
7
+ * FederatedAuthService.authenticate({ provider, subject }) directly.
8
+ */
9
+ export declare class FederatedAuthController {
10
+ private readonly federatedAuthService;
11
+ constructor(federatedAuthService: FederatedAuthService);
12
+ getProviders(request: Request, res: Response): Promise<Response<any, Record<string, any>>>;
13
+ createProvider(request: Request, body: CreateFederatedProviderRequest, res: Response): Promise<Response<any, Record<string, any>>>;
14
+ updateProvider(request: Request, provider: string, body: UpdateFederatedProviderRequest, res: Response): Promise<Response<any, Record<string, any>>>;
15
+ deleteProvider(request: Request, provider: string, res: Response): Promise<Response<any, Record<string, any>>>;
16
+ getIdentities(request: Request, codiceUtente: number, res: Response): Promise<Response<any, Record<string, any>>>;
17
+ linkIdentity(request: Request, codiceUtente: number, body: CreateFederatedIdentityRequest, res: Response): Promise<Response<any, Record<string, any>>>;
18
+ createUser(request: Request, body: CreateFederatedUserRequest, res: Response): Promise<Response<any, Record<string, any>>>;
19
+ setPasswordPolicy(request: Request, codiceUtente: number, body: SetPasswordLoginPolicyRequest, res: Response): Promise<Response<any, Record<string, any>>>;
20
+ disableIdentity(request: Request, identityKey: string, res: Response): Promise<Response<any, Record<string, any>>>;
21
+ deleteIdentity(request: Request, codiceUtente: number, identityKey: string, res: Response): Promise<Response<any, Record<string, any>>>;
22
+ updateIdentity(request: Request, identityKey: string, body: UpdateFederatedIdentityRequest, res: Response): Promise<Response<any, Record<string, any>>>;
23
+ private sendError;
24
+ }
@@ -0,0 +1,333 @@
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
+ var FederatedAuthController_1;
24
+ Object.defineProperty(exports, "__esModule", { value: true });
25
+ exports.FederatedAuthController = void 0;
26
+ const common_1 = require("@nestjs/common");
27
+ const swagger_1 = require("@nestjs/swagger");
28
+ const Utilities_1 = require("../../Utilities");
29
+ const BaseResponse_1 = require("../Dtos/BaseResponse");
30
+ const FederatedIdentityDtos_1 = require("../Dtos/FederatedIdentityDtos");
31
+ const jwt_strategy_1 = require("../jwt/jwt.strategy");
32
+ const accessControl_1 = require("../security/accessControl");
33
+ const FederatedAuthService_1 = require("./FederatedAuthService");
34
+ /**
35
+ * Master-only administration API. Authentication itself is intentionally not
36
+ * exposed over HTTP: the hosting backend validates its SSO and calls
37
+ * FederatedAuthService.authenticate({ provider, subject }) directly.
38
+ */
39
+ let FederatedAuthController = FederatedAuthController_1 = class FederatedAuthController {
40
+ constructor(federatedAuthService) {
41
+ this.federatedAuthService = federatedAuthService;
42
+ }
43
+ getProviders(request, res) {
44
+ return __awaiter(this, void 0, void 0, function* () {
45
+ try {
46
+ (0, accessControl_1.ensureAdmin)((0, accessControl_1.getAuthenticatedAccessiUser)(request));
47
+ return Utilities_1.RestUtilities.sendBaseResponse(res, yield this.federatedAuthService.getProviders());
48
+ }
49
+ catch (error) {
50
+ return this.sendError(res, error);
51
+ }
52
+ });
53
+ }
54
+ createProvider(request, body, res) {
55
+ return __awaiter(this, void 0, void 0, function* () {
56
+ try {
57
+ (0, accessControl_1.ensureAdmin)((0, accessControl_1.getAuthenticatedAccessiUser)(request));
58
+ return Utilities_1.RestUtilities.sendBaseResponse(res, yield this.federatedAuthService.createProvider(body), common_1.HttpStatus.CREATED);
59
+ }
60
+ catch (error) {
61
+ return this.sendError(res, error);
62
+ }
63
+ });
64
+ }
65
+ updateProvider(request, provider, body, res) {
66
+ return __awaiter(this, void 0, void 0, function* () {
67
+ try {
68
+ (0, accessControl_1.ensureAdmin)((0, accessControl_1.getAuthenticatedAccessiUser)(request));
69
+ return Utilities_1.RestUtilities.sendBaseResponse(res, yield this.federatedAuthService.updateProvider(provider, body));
70
+ }
71
+ catch (error) {
72
+ return this.sendError(res, error);
73
+ }
74
+ });
75
+ }
76
+ deleteProvider(request, provider, res) {
77
+ return __awaiter(this, void 0, void 0, function* () {
78
+ try {
79
+ (0, accessControl_1.ensureAdmin)((0, accessControl_1.getAuthenticatedAccessiUser)(request));
80
+ yield this.federatedAuthService.deleteProvider(provider);
81
+ return Utilities_1.RestUtilities.sendOKMessage(res, `Provider SSO ${provider} eliminato.`);
82
+ }
83
+ catch (error) {
84
+ return this.sendError(res, error);
85
+ }
86
+ });
87
+ }
88
+ getIdentities(request, codiceUtente, res) {
89
+ return __awaiter(this, void 0, void 0, function* () {
90
+ try {
91
+ (0, accessControl_1.ensureAdmin)((0, accessControl_1.getAuthenticatedAccessiUser)(request));
92
+ return Utilities_1.RestUtilities.sendBaseResponse(res, yield this.federatedAuthService.getUserIdentities(codiceUtente));
93
+ }
94
+ catch (error) {
95
+ return this.sendError(res, error);
96
+ }
97
+ });
98
+ }
99
+ linkIdentity(request, codiceUtente, body, res) {
100
+ return __awaiter(this, void 0, void 0, function* () {
101
+ try {
102
+ (0, accessControl_1.ensureAdmin)((0, accessControl_1.getAuthenticatedAccessiUser)(request));
103
+ const identity = yield this.federatedAuthService.linkIdentity(codiceUtente, body, body.note);
104
+ return Utilities_1.RestUtilities.sendBaseResponse(res, identity, common_1.HttpStatus.CREATED);
105
+ }
106
+ catch (error) {
107
+ return this.sendError(res, error);
108
+ }
109
+ });
110
+ }
111
+ createUser(request, body, res) {
112
+ return __awaiter(this, void 0, void 0, function* () {
113
+ try {
114
+ (0, accessControl_1.ensureAdmin)((0, accessControl_1.getAuthenticatedAccessiUser)(request));
115
+ const identity = yield this.federatedAuthService.createManagedFederatedUser(body.user, body, body.passwordLoginEnabled === true, body.note);
116
+ return Utilities_1.RestUtilities.sendBaseResponse(res, identity, common_1.HttpStatus.CREATED);
117
+ }
118
+ catch (error) {
119
+ return this.sendError(res, error);
120
+ }
121
+ });
122
+ }
123
+ setPasswordPolicy(request, codiceUtente, body, res) {
124
+ return __awaiter(this, void 0, void 0, function* () {
125
+ try {
126
+ (0, accessControl_1.ensureAdmin)((0, accessControl_1.getAuthenticatedAccessiUser)(request));
127
+ yield this.federatedAuthService.setPasswordLoginEnabled(codiceUtente, body.passwordLoginEnabled);
128
+ return Utilities_1.RestUtilities.sendOKMessage(res, 'Policy di autenticazione aggiornata.');
129
+ }
130
+ catch (error) {
131
+ return this.sendError(res, error);
132
+ }
133
+ });
134
+ }
135
+ disableIdentity(request, identityKey, res) {
136
+ return __awaiter(this, void 0, void 0, function* () {
137
+ try {
138
+ (0, accessControl_1.ensureAdmin)((0, accessControl_1.getAuthenticatedAccessiUser)(request));
139
+ yield this.federatedAuthService.disableIdentity(identityKey);
140
+ return Utilities_1.RestUtilities.sendOKMessage(res, 'Identita SSO disabilitata.');
141
+ }
142
+ catch (error) {
143
+ return this.sendError(res, error);
144
+ }
145
+ });
146
+ }
147
+ deleteIdentity(request, codiceUtente, identityKey, res) {
148
+ return __awaiter(this, void 0, void 0, function* () {
149
+ try {
150
+ (0, accessControl_1.ensureAdmin)((0, accessControl_1.getAuthenticatedAccessiUser)(request));
151
+ yield this.federatedAuthService.deleteIdentity(codiceUtente, identityKey);
152
+ return Utilities_1.RestUtilities.sendOKMessage(res, 'Collegamento SSO eliminato definitivamente.');
153
+ }
154
+ catch (error) {
155
+ return this.sendError(res, error);
156
+ }
157
+ });
158
+ }
159
+ updateIdentity(request, identityKey, body, res) {
160
+ return __awaiter(this, void 0, void 0, function* () {
161
+ try {
162
+ (0, accessControl_1.ensureAdmin)((0, accessControl_1.getAuthenticatedAccessiUser)(request));
163
+ yield this.federatedAuthService.updateIdentity(identityKey, body);
164
+ return Utilities_1.RestUtilities.sendOKMessage(res, 'Collegamento SSO aggiornato.');
165
+ }
166
+ catch (error) {
167
+ return this.sendError(res, error);
168
+ }
169
+ });
170
+ }
171
+ sendError(res, error) {
172
+ const status = error instanceof common_1.HttpException ? error.getStatus() : common_1.HttpStatus.INTERNAL_SERVER_ERROR;
173
+ return Utilities_1.RestUtilities.sendErrorMessage(res, error, FederatedAuthController_1.name, status);
174
+ }
175
+ };
176
+ exports.FederatedAuthController = FederatedAuthController;
177
+ __decorate([
178
+ (0, swagger_1.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.' }),
179
+ (0, swagger_1.ApiOkResponse)({ type: FederatedIdentityDtos_1.FederatedProviderListResponse }),
180
+ (0, common_1.Get)('providers'),
181
+ __param(0, (0, common_1.Req)()),
182
+ __param(1, (0, common_1.Res)()),
183
+ __metadata("design:type", Function),
184
+ __metadata("design:paramtypes", [Object, Object]),
185
+ __metadata("design:returntype", Promise)
186
+ ], FederatedAuthController.prototype, "getProviders", null);
187
+ __decorate([
188
+ (0, swagger_1.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.' }),
189
+ (0, swagger_1.ApiBody)({ type: FederatedIdentityDtos_1.CreateFederatedProviderRequest }),
190
+ (0, swagger_1.ApiCreatedResponse)({ type: FederatedIdentityDtos_1.FederatedProviderResponse }),
191
+ (0, common_1.Post)('providers'),
192
+ __param(0, (0, common_1.Req)()),
193
+ __param(1, (0, common_1.Body)()),
194
+ __param(2, (0, common_1.Res)()),
195
+ __metadata("design:type", Function),
196
+ __metadata("design:paramtypes", [Object, FederatedIdentityDtos_1.CreateFederatedProviderRequest, Object]),
197
+ __metadata("design:returntype", Promise)
198
+ ], FederatedAuthController.prototype, "createProvider", null);
199
+ __decorate([
200
+ (0, swagger_1.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.' }),
201
+ (0, swagger_1.ApiParam)({ name: 'provider', example: 'azure-ad-acme-produzione', description: 'Chiave stabile del provider censito.' }),
202
+ (0, swagger_1.ApiBody)({ type: FederatedIdentityDtos_1.UpdateFederatedProviderRequest }),
203
+ (0, swagger_1.ApiOkResponse)({ type: FederatedIdentityDtos_1.FederatedProviderResponse }),
204
+ (0, common_1.Patch)('providers/:provider'),
205
+ __param(0, (0, common_1.Req)()),
206
+ __param(1, (0, common_1.Param)('provider')),
207
+ __param(2, (0, common_1.Body)()),
208
+ __param(3, (0, common_1.Res)()),
209
+ __metadata("design:type", Function),
210
+ __metadata("design:paramtypes", [Object, String, FederatedIdentityDtos_1.UpdateFederatedProviderRequest, Object]),
211
+ __metadata("design:returntype", Promise)
212
+ ], FederatedAuthController.prototype, "updateProvider", null);
213
+ __decorate([
214
+ (0, swagger_1.ApiOperation)({ summary: 'Elimina un provider SSO', operationId: 'deleteFederatedProvider', description: 'Riservato a superutente. Consentito solo se nessuna identita e collegata al provider; in alternativa disabilitalo.' }),
215
+ (0, swagger_1.ApiParam)({ name: 'provider', example: 'azure-ad-acme-produzione', description: 'Chiave stabile del provider censito.' }),
216
+ (0, swagger_1.ApiOkResponse)({ type: BaseResponse_1.ActionResponse }),
217
+ (0, swagger_1.ApiResponse)({ status: 404, type: BaseResponse_1.ErrorResponse, description: 'Provider non registrato.' }),
218
+ (0, swagger_1.ApiResponse)({ status: 409, type: BaseResponse_1.ErrorResponse, description: 'Provider ancora utilizzato da identita collegate.' }),
219
+ (0, common_1.Delete)('providers/:provider'),
220
+ __param(0, (0, common_1.Req)()),
221
+ __param(1, (0, common_1.Param)('provider')),
222
+ __param(2, (0, common_1.Res)()),
223
+ __metadata("design:type", Function),
224
+ __metadata("design:paramtypes", [Object, String, Object]),
225
+ __metadata("design:returntype", Promise)
226
+ ], FederatedAuthController.prototype, "deleteProvider", null);
227
+ __decorate([
228
+ (0, swagger_1.ApiOperation)({ summary: 'Elenca le identita SSO di un utente', operationId: 'getFederatedIdentities', description: 'Riservato a superutente. Non restituisce token esterni o claim del provider.' }),
229
+ (0, swagger_1.ApiParam)({ name: 'codiceUtente', example: 123 }),
230
+ (0, swagger_1.ApiOkResponse)({ type: FederatedIdentityDtos_1.FederatedIdentityListResponse }),
231
+ (0, swagger_1.ApiResponse)({ status: 403, type: BaseResponse_1.ErrorResponse }),
232
+ (0, common_1.Get)('users/:codiceUtente/identities'),
233
+ __param(0, (0, common_1.Req)()),
234
+ __param(1, (0, common_1.Param)('codiceUtente', common_1.ParseIntPipe)),
235
+ __param(2, (0, common_1.Res)()),
236
+ __metadata("design:type", Function),
237
+ __metadata("design:paramtypes", [Object, Number, Object]),
238
+ __metadata("design:returntype", Promise)
239
+ ], FederatedAuthController.prototype, "getIdentities", null);
240
+ __decorate([
241
+ (0, swagger_1.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.' }),
242
+ (0, swagger_1.ApiParam)({ name: 'codiceUtente', example: 123 }),
243
+ (0, swagger_1.ApiBody)({ type: FederatedIdentityDtos_1.CreateFederatedIdentityRequest }),
244
+ (0, swagger_1.ApiCreatedResponse)({ type: FederatedIdentityDtos_1.FederatedIdentityResponse }),
245
+ (0, common_1.Post)('users/:codiceUtente/identities'),
246
+ __param(0, (0, common_1.Req)()),
247
+ __param(1, (0, common_1.Param)('codiceUtente', common_1.ParseIntPipe)),
248
+ __param(2, (0, common_1.Body)()),
249
+ __param(3, (0, common_1.Res)()),
250
+ __metadata("design:type", Function),
251
+ __metadata("design:paramtypes", [Object, Number, FederatedIdentityDtos_1.CreateFederatedIdentityRequest, Object]),
252
+ __metadata("design:returntype", Promise)
253
+ ], FederatedAuthController.prototype, "linkIdentity", null);
254
+ __decorate([
255
+ (0, swagger_1.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.' }),
256
+ (0, swagger_1.ApiBody)({ type: FederatedIdentityDtos_1.CreateFederatedUserRequest }),
257
+ (0, swagger_1.ApiCreatedResponse)({ type: FederatedIdentityDtos_1.FederatedIdentityResponse }),
258
+ (0, swagger_1.ApiResponse)({ status: 400, type: BaseResponse_1.ErrorResponse, description: 'Provider o subject non validi.' }),
259
+ (0, swagger_1.ApiResponse)({ status: 404, type: BaseResponse_1.ErrorResponse, description: 'Provider SSO non censito.' }),
260
+ (0, swagger_1.ApiResponse)({ status: 409, type: BaseResponse_1.ErrorResponse, description: 'Email o identità SSO già associate a un utente.' }),
261
+ (0, swagger_1.ApiResponse)({ status: 503, type: BaseResponse_1.ErrorResponse, description: 'Schema Accessi non aggiornato.' }),
262
+ (0, swagger_1.ApiResponse)({ status: 500, type: BaseResponse_1.ErrorResponse, description: 'Errore inatteso durante il provisioning; la risposta contiene FEDERATED_USER_PROVISIONING_FAILED.' }),
263
+ (0, common_1.Post)('users'),
264
+ __param(0, (0, common_1.Req)()),
265
+ __param(1, (0, common_1.Body)()),
266
+ __param(2, (0, common_1.Res)()),
267
+ __metadata("design:type", Function),
268
+ __metadata("design:paramtypes", [Object, FederatedIdentityDtos_1.CreateFederatedUserRequest, Object]),
269
+ __metadata("design:returntype", Promise)
270
+ ], FederatedAuthController.prototype, "createUser", null);
271
+ __decorate([
272
+ (0, swagger_1.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.' }),
273
+ (0, swagger_1.ApiParam)({ name: 'codiceUtente', example: 123 }),
274
+ (0, swagger_1.ApiBody)({ type: FederatedIdentityDtos_1.SetPasswordLoginPolicyRequest }),
275
+ (0, swagger_1.ApiOkResponse)({ type: BaseResponse_1.ActionResponse }),
276
+ (0, common_1.Patch)('users/:codiceUtente/password-login'),
277
+ __param(0, (0, common_1.Req)()),
278
+ __param(1, (0, common_1.Param)('codiceUtente', common_1.ParseIntPipe)),
279
+ __param(2, (0, common_1.Body)()),
280
+ __param(3, (0, common_1.Res)()),
281
+ __metadata("design:type", Function),
282
+ __metadata("design:paramtypes", [Object, Number, FederatedIdentityDtos_1.SetPasswordLoginPolicyRequest, Object]),
283
+ __metadata("design:returntype", Promise)
284
+ ], FederatedAuthController.prototype, "setPasswordPolicy", null);
285
+ __decorate([
286
+ (0, swagger_1.ApiOperation)({ summary: 'Disabilita un identita SSO', operationId: 'disableFederatedIdentity', description: 'Soft delete: l associazione resta tracciata ma non puo piu autenticare.' }),
287
+ (0, swagger_1.ApiParam)({ name: 'identityKey', description: 'SHA-256 restituito dagli endpoint di elenco o creazione.' }),
288
+ (0, swagger_1.ApiOkResponse)({ type: BaseResponse_1.ActionResponse }),
289
+ (0, common_1.Delete)('identities/:identityKey'),
290
+ __param(0, (0, common_1.Req)()),
291
+ __param(1, (0, common_1.Param)('identityKey')),
292
+ __param(2, (0, common_1.Res)()),
293
+ __metadata("design:type", Function),
294
+ __metadata("design:paramtypes", [Object, String, Object]),
295
+ __metadata("design:returntype", Promise)
296
+ ], FederatedAuthController.prototype, "disableIdentity", null);
297
+ __decorate([
298
+ (0, swagger_1.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.' }),
299
+ (0, swagger_1.ApiParam)({ name: 'codiceUtente', example: 123 }),
300
+ (0, swagger_1.ApiParam)({ name: 'identityKey', description: 'SHA-256 del collegamento da eliminare.' }),
301
+ (0, swagger_1.ApiOkResponse)({ type: BaseResponse_1.ActionResponse }),
302
+ (0, swagger_1.ApiResponse)({ status: 404, type: BaseResponse_1.ErrorResponse, description: 'Collegamento assente o non appartenente all’utente.' }),
303
+ (0, common_1.Delete)('users/:codiceUtente/identities/:identityKey'),
304
+ __param(0, (0, common_1.Req)()),
305
+ __param(1, (0, common_1.Param)('codiceUtente', common_1.ParseIntPipe)),
306
+ __param(2, (0, common_1.Param)('identityKey')),
307
+ __param(3, (0, common_1.Res)()),
308
+ __metadata("design:type", Function),
309
+ __metadata("design:paramtypes", [Object, Number, String, Object]),
310
+ __metadata("design:returntype", Promise)
311
+ ], FederatedAuthController.prototype, "deleteIdentity", null);
312
+ __decorate([
313
+ (0, swagger_1.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.' }),
314
+ (0, swagger_1.ApiParam)({ name: 'identityKey', description: 'SHA-256 restituito dagli endpoint di elenco o creazione.' }),
315
+ (0, swagger_1.ApiBody)({ type: FederatedIdentityDtos_1.UpdateFederatedIdentityRequest }),
316
+ (0, swagger_1.ApiOkResponse)({ type: BaseResponse_1.ActionResponse }),
317
+ (0, common_1.Patch)('identities/:identityKey'),
318
+ __param(0, (0, common_1.Req)()),
319
+ __param(1, (0, common_1.Param)('identityKey')),
320
+ __param(2, (0, common_1.Body)()),
321
+ __param(3, (0, common_1.Res)()),
322
+ __metadata("design:type", Function),
323
+ __metadata("design:paramtypes", [Object, String, FederatedIdentityDtos_1.UpdateFederatedIdentityRequest, Object]),
324
+ __metadata("design:returntype", Promise)
325
+ ], FederatedAuthController.prototype, "updateIdentity", null);
326
+ exports.FederatedAuthController = FederatedAuthController = FederatedAuthController_1 = __decorate([
327
+ (0, swagger_1.ApiTags)('Federated authentication'),
328
+ (0, swagger_1.ApiBearerAuth)(),
329
+ (0, common_1.UseGuards)(jwt_strategy_1.JwtSimpleGuard),
330
+ (0, common_1.Controller)('accessi/federated-auth'),
331
+ __metadata("design:paramtypes", [FederatedAuthService_1.FederatedAuthService])
332
+ ], FederatedAuthController);
333
+ //# sourceMappingURL=FederatedAuthController.js.map
@@ -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, 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, getAuthenticatedAccessiUser } from '../security/accessControl';\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(private readonly federatedAuthService: FederatedAuthService) {}\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 ensureAdmin(getAuthenticatedAccessiUser(request));\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 ensureAdmin(getAuthenticatedAccessiUser(request));\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 ensureAdmin(getAuthenticatedAccessiUser(request));\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 ensureAdmin(getAuthenticatedAccessiUser(request));\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 ensureAdmin(getAuthenticatedAccessiUser(request));\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 ensureAdmin(getAuthenticatedAccessiUser(request));\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 ensureAdmin(getAuthenticatedAccessiUser(request));\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 ensureAdmin(getAuthenticatedAccessiUser(request));\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"]}