emilsoftware-utilities 2.0.0-dev.7 → 2.0.0-dev.71

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 (838) hide show
  1. package/README.MD +278 -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.js +32 -29
  9. package/dist/DatabaseUpdater.js.map +1 -1
  10. package/dist/EmilsoftwareModule.d.ts +15 -1
  11. package/dist/EmilsoftwareModule.js +1 -1
  12. package/dist/EmilsoftwareModule.js.map +1 -1
  13. package/dist/ExecutionTimeLogger.d.ts +2 -2
  14. package/dist/ExecutionTimeLogger.js +5 -4
  15. package/dist/ExecutionTimeLogger.js.map +1 -1
  16. package/dist/Logger.d.ts +22 -11
  17. package/dist/Logger.js +132 -119
  18. package/dist/Logger.js.map +1 -1
  19. package/dist/Orm.d.ts +32 -6
  20. package/dist/Orm.js +148 -38
  21. package/dist/Orm.js.map +1 -1
  22. package/dist/RoutesLoggerMiddleware.js.map +1 -1
  23. package/dist/Utilities.d.ts +18 -8
  24. package/dist/Utilities.js +143 -37
  25. package/dist/Utilities.js.map +1 -1
  26. package/dist/accessi/client/index.d.ts +50 -0
  27. package/dist/accessi/client/index.js +112 -0
  28. package/dist/accessi/client/index.js.map +1 -0
  29. package/dist/accessi/console/index.d.ts +15 -0
  30. package/dist/accessi/console/index.js +25 -0
  31. package/dist/accessi/console/index.js.map +1 -0
  32. package/dist/accessi/contracts/dtos.d.ts +8 -0
  33. package/dist/accessi/contracts/dtos.js +25 -0
  34. package/dist/accessi/contracts/dtos.js.map +1 -0
  35. package/dist/accessi/contracts/index.d.ts +25 -0
  36. package/dist/accessi/contracts/index.js +28 -0
  37. package/dist/accessi/contracts/index.js.map +1 -0
  38. package/dist/accessi/openapi/index.d.ts +2 -0
  39. package/dist/accessi/openapi/index.js +19 -0
  40. package/dist/accessi/openapi/index.js.map +1 -0
  41. package/dist/accessi/resource-server/core.d.ts +6 -0
  42. package/dist/accessi/resource-server/core.js +23 -0
  43. package/dist/accessi/resource-server/core.js.map +1 -0
  44. package/dist/accessi/resource-server/errors.d.ts +10 -0
  45. package/dist/accessi/resource-server/errors.js +19 -0
  46. package/dist/accessi/resource-server/errors.js.map +1 -0
  47. package/dist/accessi/resource-server/express.d.ts +17 -0
  48. package/dist/accessi/resource-server/express.js +87 -0
  49. package/dist/accessi/resource-server/express.js.map +1 -0
  50. package/dist/accessi/resource-server/index.d.ts +3 -0
  51. package/dist/accessi/resource-server/index.js +20 -0
  52. package/dist/accessi/resource-server/index.js.map +1 -0
  53. package/dist/accessi/resource-server/introspection.d.ts +16 -0
  54. package/dist/accessi/resource-server/introspection.js +115 -0
  55. package/dist/accessi/resource-server/introspection.js.map +1 -0
  56. package/dist/accessi/resource-server/keys.d.ts +11 -0
  57. package/dist/accessi/resource-server/keys.js +22 -0
  58. package/dist/accessi/resource-server/keys.js.map +1 -0
  59. package/dist/accessi/resource-server/nest.d.ts +9 -0
  60. package/dist/accessi/resource-server/nest.js +75 -0
  61. package/dist/accessi/resource-server/nest.js.map +1 -0
  62. package/dist/accessi/resource-server/runtime.d.ts +27 -0
  63. package/dist/accessi/resource-server/runtime.js +179 -0
  64. package/dist/accessi/resource-server/runtime.js.map +1 -0
  65. package/dist/accessi/resource-server/token.d.ts +23 -0
  66. package/dist/accessi/resource-server/token.js +230 -0
  67. package/dist/accessi/resource-server/token.js.map +1 -0
  68. package/dist/accessi/resource-server/types.d.ts +92 -0
  69. package/dist/accessi/resource-server/types.js +3 -0
  70. package/dist/accessi/resource-server/types.js.map +1 -0
  71. package/dist/accessi/server/index.d.ts +11 -0
  72. package/dist/accessi/server/index.js +30 -0
  73. package/dist/accessi/server/index.js.map +1 -0
  74. package/dist/accessi/server/standalone.d.ts +41 -0
  75. package/dist/accessi/server/standalone.js +265 -0
  76. package/dist/accessi/server/standalone.js.map +1 -0
  77. package/dist/accessi/ui/index.d.ts +13 -0
  78. package/dist/accessi/ui/index.js +19 -0
  79. package/dist/accessi/ui/index.js.map +1 -0
  80. package/dist/accessi-module/AccessiModule.d.ts +199 -0
  81. package/dist/accessi-module/AccessiModule.js +43 -5
  82. package/dist/accessi-module/AccessiModule.js.map +1 -1
  83. package/dist/accessi-module/Console/accessiFetch.d.ts +52 -0
  84. package/dist/accessi-module/Console/accessiFetch.js +140 -0
  85. package/dist/accessi-module/Console/accessiFetch.js.map +1 -0
  86. package/dist/accessi-module/Console/console.css +774 -0
  87. package/dist/accessi-module/Console/console.d.ts +1 -0
  88. package/dist/accessi-module/Console/console.js +4102 -0
  89. package/dist/accessi-module/Console/console.js.map +1 -0
  90. package/dist/accessi-module/Console/generated/emilsoftware-utilities.d.ts +761 -0
  91. package/dist/accessi-module/Console/generated/emilsoftware-utilities.js +712 -0
  92. package/dist/accessi-module/Console/generated/emilsoftware-utilities.js.map +1 -0
  93. package/dist/accessi-module/Console/generated/model/abilitazioneMenu.d.ts +39 -0
  94. package/dist/accessi-module/Console/generated/model/abilitazioneMenu.js +3 -0
  95. package/dist/accessi-module/Console/generated/model/abilitazioneMenu.js.map +1 -0
  96. package/dist/accessi-module/Console/generated/model/abilitazioneMenuTipoAbilitazione.d.ts +16 -0
  97. package/dist/accessi-module/Console/generated/model/abilitazioneMenuTipoAbilitazione.js +17 -0
  98. package/dist/accessi-module/Console/generated/model/abilitazioneMenuTipoAbilitazione.js.map +1 -0
  99. package/dist/accessi-module/Console/generated/model/accessiIntrospectionResultDto.d.ts +16 -0
  100. package/dist/accessi-module/Console/generated/model/accessiIntrospectionResultDto.js +3 -0
  101. package/dist/accessi-module/Console/generated/model/accessiIntrospectionResultDto.js.map +1 -0
  102. package/dist/accessi-module/Console/generated/model/actionResponse.d.ts +12 -0
  103. package/dist/accessi-module/Console/generated/model/actionResponse.js +9 -0
  104. package/dist/accessi-module/Console/generated/model/actionResponse.js.map +1 -0
  105. package/dist/accessi-module/Console/generated/model/adminBootstrapStatusResponse.d.ts +14 -0
  106. package/dist/accessi-module/Console/generated/model/adminBootstrapStatusResponse.js +3 -0
  107. package/dist/accessi-module/Console/generated/model/adminBootstrapStatusResponse.js.map +1 -0
  108. package/dist/accessi-module/Console/generated/model/adminBootstrapStatusResult.d.ts +10 -0
  109. package/dist/accessi-module/Console/generated/model/adminBootstrapStatusResult.js +9 -0
  110. package/dist/accessi-module/Console/generated/model/adminBootstrapStatusResult.js.map +1 -0
  111. package/dist/accessi-module/Console/generated/model/assignPermissionsToUserRequest.d.ts +11 -0
  112. package/dist/accessi-module/Console/generated/model/assignPermissionsToUserRequest.js +3 -0
  113. package/dist/accessi-module/Console/generated/model/assignPermissionsToUserRequest.js.map +1 -0
  114. package/dist/accessi-module/Console/generated/model/assignRolesToUserRequest.d.ts +10 -0
  115. package/dist/accessi-module/Console/generated/model/assignRolesToUserRequest.js +9 -0
  116. package/dist/accessi-module/Console/generated/model/assignRolesToUserRequest.js.map +1 -0
  117. package/dist/accessi-module/Console/generated/model/authenticatedTokenPayloadDto.d.ts +10 -0
  118. package/dist/accessi-module/Console/generated/model/authenticatedTokenPayloadDto.js +3 -0
  119. package/dist/accessi-module/Console/generated/model/authenticatedTokenPayloadDto.js.map +1 -0
  120. package/dist/accessi-module/Console/generated/model/authenticatedUserPayloadDto.d.ts +19 -0
  121. package/dist/accessi-module/Console/generated/model/authenticatedUserPayloadDto.js +9 -0
  122. package/dist/accessi-module/Console/generated/model/authenticatedUserPayloadDto.js.map +1 -0
  123. package/dist/accessi-module/Console/generated/model/bootstrapAdminRequest.d.ts +17 -0
  124. package/dist/accessi-module/Console/generated/model/bootstrapAdminRequest.js +9 -0
  125. package/dist/accessi-module/Console/generated/model/bootstrapAdminRequest.js.map +1 -0
  126. package/dist/accessi-module/Console/generated/model/bootstrapAdminResponse.d.ts +14 -0
  127. package/dist/accessi-module/Console/generated/model/bootstrapAdminResponse.js +3 -0
  128. package/dist/accessi-module/Console/generated/model/bootstrapAdminResponse.js.map +1 -0
  129. package/dist/accessi-module/Console/generated/model/bootstrapAdminResultDto.d.ts +13 -0
  130. package/dist/accessi-module/Console/generated/model/bootstrapAdminResultDto.js +9 -0
  131. package/dist/accessi-module/Console/generated/model/bootstrapAdminResultDto.js.map +1 -0
  132. package/dist/accessi-module/Console/generated/model/confirmResetPasswordRequest.d.ts +14 -0
  133. package/dist/accessi-module/Console/generated/model/confirmResetPasswordRequest.js +9 -0
  134. package/dist/accessi-module/Console/generated/model/confirmResetPasswordRequest.js.map +1 -0
  135. package/dist/accessi-module/Console/generated/model/consoleEntryExchangeRequest.d.ts +10 -0
  136. package/dist/accessi-module/Console/generated/model/consoleEntryExchangeRequest.js +9 -0
  137. package/dist/accessi-module/Console/generated/model/consoleEntryExchangeRequest.js.map +1 -0
  138. package/dist/accessi-module/Console/generated/model/consoleEntrySessionResponse.d.ts +14 -0
  139. package/dist/accessi-module/Console/generated/model/consoleEntrySessionResponse.js +3 -0
  140. package/dist/accessi-module/Console/generated/model/consoleEntrySessionResponse.js.map +1 -0
  141. package/dist/accessi-module/Console/generated/model/consoleEntrySessionResult.d.ts +10 -0
  142. package/dist/accessi-module/Console/generated/model/consoleEntrySessionResult.js +3 -0
  143. package/dist/accessi-module/Console/generated/model/consoleEntrySessionResult.js.map +1 -0
  144. package/dist/accessi-module/Console/generated/model/consoleEntryTicketResponse.d.ts +14 -0
  145. package/dist/accessi-module/Console/generated/model/consoleEntryTicketResponse.js +3 -0
  146. package/dist/accessi-module/Console/generated/model/consoleEntryTicketResponse.js.map +1 -0
  147. package/dist/accessi-module/Console/generated/model/consoleEntryTicketResult.d.ts +12 -0
  148. package/dist/accessi-module/Console/generated/model/consoleEntryTicketResult.js +9 -0
  149. package/dist/accessi-module/Console/generated/model/consoleEntryTicketResult.js.map +1 -0
  150. package/dist/accessi-module/Console/generated/model/consoleEntryTokenResult.d.ts +12 -0
  151. package/dist/accessi-module/Console/generated/model/consoleEntryTokenResult.js +9 -0
  152. package/dist/accessi-module/Console/generated/model/consoleEntryTokenResult.js.map +1 -0
  153. package/dist/accessi-module/Console/generated/model/createFederatedIdentityRequest.d.ts +13 -0
  154. package/dist/accessi-module/Console/generated/model/createFederatedIdentityRequest.js +9 -0
  155. package/dist/accessi-module/Console/generated/model/createFederatedIdentityRequest.js.map +1 -0
  156. package/dist/accessi-module/Console/generated/model/createFederatedProviderRequest.d.ts +13 -0
  157. package/dist/accessi-module/Console/generated/model/createFederatedProviderRequest.js +9 -0
  158. package/dist/accessi-module/Console/generated/model/createFederatedProviderRequest.js.map +1 -0
  159. package/dist/accessi-module/Console/generated/model/createFederatedUserRequest.d.ts +18 -0
  160. package/dist/accessi-module/Console/generated/model/createFederatedUserRequest.js +3 -0
  161. package/dist/accessi-module/Console/generated/model/createFederatedUserRequest.js.map +1 -0
  162. package/dist/accessi-module/Console/generated/model/createFilterTypeRequest.d.ts +23 -0
  163. package/dist/accessi-module/Console/generated/model/createFilterTypeRequest.js +3 -0
  164. package/dist/accessi-module/Console/generated/model/createFilterTypeRequest.js.map +1 -0
  165. package/dist/accessi-module/Console/generated/model/createFilterTypeRequestFlgEnabled.d.ts +14 -0
  166. package/dist/accessi-module/Console/generated/model/createFilterTypeRequestFlgEnabled.js +15 -0
  167. package/dist/accessi-module/Console/generated/model/createFilterTypeRequestFlgEnabled.js.map +1 -0
  168. package/dist/accessi-module/Console/generated/model/createMenuGroupRequest.d.ts +22 -0
  169. package/dist/accessi-module/Console/generated/model/createMenuGroupRequest.js +9 -0
  170. package/dist/accessi-module/Console/generated/model/createMenuGroupRequest.js.map +1 -0
  171. package/dist/accessi-module/Console/generated/model/createMenuRequest.d.ts +52 -0
  172. package/dist/accessi-module/Console/generated/model/createMenuRequest.js +9 -0
  173. package/dist/accessi-module/Console/generated/model/createMenuRequest.js.map +1 -0
  174. package/dist/accessi-module/Console/generated/model/createMenuTypeRequest.d.ts +18 -0
  175. package/dist/accessi-module/Console/generated/model/createMenuTypeRequest.js +9 -0
  176. package/dist/accessi-module/Console/generated/model/createMenuTypeRequest.js.map +1 -0
  177. package/dist/accessi-module/Console/generated/model/createScopeRequest.d.ts +18 -0
  178. package/dist/accessi-module/Console/generated/model/createScopeRequest.js +9 -0
  179. package/dist/accessi-module/Console/generated/model/createScopeRequest.js.map +1 -0
  180. package/dist/accessi-module/Console/generated/model/createServiceTokenRequest.d.ts +16 -0
  181. package/dist/accessi-module/Console/generated/model/createServiceTokenRequest.js +9 -0
  182. package/dist/accessi-module/Console/generated/model/createServiceTokenRequest.js.map +1 -0
  183. package/dist/accessi-module/Console/generated/model/createServiceTokenResponse.d.ts +14 -0
  184. package/dist/accessi-module/Console/generated/model/createServiceTokenResponse.js +3 -0
  185. package/dist/accessi-module/Console/generated/model/createServiceTokenResponse.js.map +1 -0
  186. package/dist/accessi-module/Console/generated/model/errorResponse.d.ts +18 -0
  187. package/dist/accessi-module/Console/generated/model/errorResponse.js +9 -0
  188. package/dist/accessi-module/Console/generated/model/errorResponse.js.map +1 -0
  189. package/dist/accessi-module/Console/generated/model/exchangeFederatedIdentityRequest.d.ts +12 -0
  190. package/dist/accessi-module/Console/generated/model/exchangeFederatedIdentityRequest.js +9 -0
  191. package/dist/accessi-module/Console/generated/model/exchangeFederatedIdentityRequest.js.map +1 -0
  192. package/dist/accessi-module/Console/generated/model/federatedAuthenticationResultDto.d.ts +15 -0
  193. package/dist/accessi-module/Console/generated/model/federatedAuthenticationResultDto.js +3 -0
  194. package/dist/accessi-module/Console/generated/model/federatedAuthenticationResultDto.js.map +1 -0
  195. package/dist/accessi-module/Console/generated/model/federatedExchangeResponse.d.ts +14 -0
  196. package/dist/accessi-module/Console/generated/model/federatedExchangeResponse.js +3 -0
  197. package/dist/accessi-module/Console/generated/model/federatedExchangeResponse.js.map +1 -0
  198. package/dist/accessi-module/Console/generated/model/federatedIdentityListResponse.d.ts +14 -0
  199. package/dist/accessi-module/Console/generated/model/federatedIdentityListResponse.js +3 -0
  200. package/dist/accessi-module/Console/generated/model/federatedIdentityListResponse.js.map +1 -0
  201. package/dist/accessi-module/Console/generated/model/federatedIdentityResponse.d.ts +14 -0
  202. package/dist/accessi-module/Console/generated/model/federatedIdentityResponse.js +3 -0
  203. package/dist/accessi-module/Console/generated/model/federatedIdentityResponse.js.map +1 -0
  204. package/dist/accessi-module/Console/generated/model/federatedIdentityResponseDto.d.ts +23 -0
  205. package/dist/accessi-module/Console/generated/model/federatedIdentityResponseDto.js +9 -0
  206. package/dist/accessi-module/Console/generated/model/federatedIdentityResponseDto.js.map +1 -0
  207. package/dist/accessi-module/Console/generated/model/federatedProviderListResponse.d.ts +14 -0
  208. package/dist/accessi-module/Console/generated/model/federatedProviderListResponse.js +3 -0
  209. package/dist/accessi-module/Console/generated/model/federatedProviderListResponse.js.map +1 -0
  210. package/dist/accessi-module/Console/generated/model/federatedProviderResponse.d.ts +14 -0
  211. package/dist/accessi-module/Console/generated/model/federatedProviderResponse.js +3 -0
  212. package/dist/accessi-module/Console/generated/model/federatedProviderResponse.js.map +1 -0
  213. package/dist/accessi-module/Console/generated/model/federatedProviderResponseDto.d.ts +13 -0
  214. package/dist/accessi-module/Console/generated/model/federatedProviderResponseDto.js +9 -0
  215. package/dist/accessi-module/Console/generated/model/federatedProviderResponseDto.js.map +1 -0
  216. package/dist/accessi-module/Console/generated/model/filtriUtente.d.ts +32 -0
  217. package/dist/accessi-module/Console/generated/model/filtriUtente.js +9 -0
  218. package/dist/accessi-module/Console/generated/model/filtriUtente.js.map +1 -0
  219. package/dist/accessi-module/Console/generated/model/getFiltriResponse.d.ts +14 -0
  220. package/dist/accessi-module/Console/generated/model/getFiltriResponse.js +3 -0
  221. package/dist/accessi-module/Console/generated/model/getFiltriResponse.js.map +1 -0
  222. package/dist/accessi-module/Console/generated/model/getFiltriUtenteParams.d.ts +12 -0
  223. package/dist/accessi-module/Console/generated/model/getFiltriUtenteParams.js +9 -0
  224. package/dist/accessi-module/Console/generated/model/getFiltriUtenteParams.js.map +1 -0
  225. package/dist/accessi-module/Console/generated/model/getFiltriUtenteResponse.d.ts +14 -0
  226. package/dist/accessi-module/Console/generated/model/getFiltriUtenteResponse.js +3 -0
  227. package/dist/accessi-module/Console/generated/model/getFiltriUtenteResponse.js.map +1 -0
  228. package/dist/accessi-module/Console/generated/model/getGroupsWithMenusParams.d.ts +16 -0
  229. package/dist/accessi-module/Console/generated/model/getGroupsWithMenusParams.js +9 -0
  230. package/dist/accessi-module/Console/generated/model/getGroupsWithMenusParams.js.map +1 -0
  231. package/dist/accessi-module/Console/generated/model/getGroupsWithMenusResponse.d.ts +14 -0
  232. package/dist/accessi-module/Console/generated/model/getGroupsWithMenusResponse.js +3 -0
  233. package/dist/accessi-module/Console/generated/model/getGroupsWithMenusResponse.js.map +1 -0
  234. package/dist/accessi-module/Console/generated/model/getMenuScopesResponse.d.ts +14 -0
  235. package/dist/accessi-module/Console/generated/model/getMenuScopesResponse.js +3 -0
  236. package/dist/accessi-module/Console/generated/model/getMenuScopesResponse.js.map +1 -0
  237. package/dist/accessi-module/Console/generated/model/getMenuTypesResponse.d.ts +14 -0
  238. package/dist/accessi-module/Console/generated/model/getMenuTypesResponse.js +3 -0
  239. package/dist/accessi-module/Console/generated/model/getMenuTypesResponse.js.map +1 -0
  240. package/dist/accessi-module/Console/generated/model/getMenusParams.d.ts +12 -0
  241. package/dist/accessi-module/Console/generated/model/getMenusParams.js +9 -0
  242. package/dist/accessi-module/Console/generated/model/getMenusParams.js.map +1 -0
  243. package/dist/accessi-module/Console/generated/model/getMenusResponse.d.ts +14 -0
  244. package/dist/accessi-module/Console/generated/model/getMenusResponse.js +3 -0
  245. package/dist/accessi-module/Console/generated/model/getMenusResponse.js.map +1 -0
  246. package/dist/accessi-module/Console/generated/model/getRolesResponse.d.ts +14 -0
  247. package/dist/accessi-module/Console/generated/model/getRolesResponse.js +3 -0
  248. package/dist/accessi-module/Console/generated/model/getRolesResponse.js.map +1 -0
  249. package/dist/accessi-module/Console/generated/model/getSchemaResponse.d.ts +14 -0
  250. package/dist/accessi-module/Console/generated/model/getSchemaResponse.js +3 -0
  251. package/dist/accessi-module/Console/generated/model/getSchemaResponse.js.map +1 -0
  252. package/dist/accessi-module/Console/generated/model/getScopesResponse.d.ts +14 -0
  253. package/dist/accessi-module/Console/generated/model/getScopesResponse.js +3 -0
  254. package/dist/accessi-module/Console/generated/model/getScopesResponse.js.map +1 -0
  255. package/dist/accessi-module/Console/generated/model/getServiceTokensParams.d.ts +12 -0
  256. package/dist/accessi-module/Console/generated/model/getServiceTokensParams.js +9 -0
  257. package/dist/accessi-module/Console/generated/model/getServiceTokensParams.js.map +1 -0
  258. package/dist/accessi-module/Console/generated/model/getServiceTokensResponse.d.ts +14 -0
  259. package/dist/accessi-module/Console/generated/model/getServiceTokensResponse.js +3 -0
  260. package/dist/accessi-module/Console/generated/model/getServiceTokensResponse.js.map +1 -0
  261. package/dist/accessi-module/Console/generated/model/getUserByTokenRequest.d.ts +10 -0
  262. package/dist/accessi-module/Console/generated/model/getUserByTokenRequest.js +9 -0
  263. package/dist/accessi-module/Console/generated/model/getUserByTokenRequest.js.map +1 -0
  264. package/dist/accessi-module/Console/generated/model/getUserByTokenResponse.d.ts +14 -0
  265. package/dist/accessi-module/Console/generated/model/getUserByTokenResponse.js +3 -0
  266. package/dist/accessi-module/Console/generated/model/getUserByTokenResponse.js.map +1 -0
  267. package/dist/accessi-module/Console/generated/model/getUserRolesAndGrantsParams.d.ts +12 -0
  268. package/dist/accessi-module/Console/generated/model/getUserRolesAndGrantsParams.js +9 -0
  269. package/dist/accessi-module/Console/generated/model/getUserRolesAndGrantsParams.js.map +1 -0
  270. package/dist/accessi-module/Console/generated/model/getUsersParams.d.ts +32 -0
  271. package/dist/accessi-module/Console/generated/model/getUsersParams.js +9 -0
  272. package/dist/accessi-module/Console/generated/model/getUsersParams.js.map +1 -0
  273. package/dist/accessi-module/Console/generated/model/getUsersResponse.d.ts +14 -0
  274. package/dist/accessi-module/Console/generated/model/getUsersResponse.js +3 -0
  275. package/dist/accessi-module/Console/generated/model/getUsersResponse.js.map +1 -0
  276. package/dist/accessi-module/Console/generated/model/getUsersResult.d.ts +17 -0
  277. package/dist/accessi-module/Console/generated/model/getUsersResult.js +3 -0
  278. package/dist/accessi-module/Console/generated/model/getUsersResult.js.map +1 -0
  279. package/dist/accessi-module/Console/generated/model/getUsersResultExtensionFields.d.ts +12 -0
  280. package/dist/accessi-module/Console/generated/model/getUsersResultExtensionFields.js +9 -0
  281. package/dist/accessi-module/Console/generated/model/getUsersResultExtensionFields.js.map +1 -0
  282. package/dist/accessi-module/Console/generated/model/groupWithMenusEntity.d.ts +19 -0
  283. package/dist/accessi-module/Console/generated/model/groupWithMenusEntity.js +3 -0
  284. package/dist/accessi-module/Console/generated/model/groupWithMenusEntity.js.map +1 -0
  285. package/dist/accessi-module/Console/generated/model/index.d.ts +130 -0
  286. package/dist/accessi-module/Console/generated/model/index.js +147 -0
  287. package/dist/accessi-module/Console/generated/model/index.js.map +1 -0
  288. package/dist/accessi-module/Console/generated/model/introspectAccessiTokenRequest.d.ts +10 -0
  289. package/dist/accessi-module/Console/generated/model/introspectAccessiTokenRequest.js +9 -0
  290. package/dist/accessi-module/Console/generated/model/introspectAccessiTokenRequest.js.map +1 -0
  291. package/dist/accessi-module/Console/generated/model/introspectAccessiTokenResponse.d.ts +14 -0
  292. package/dist/accessi-module/Console/generated/model/introspectAccessiTokenResponse.js +3 -0
  293. package/dist/accessi-module/Console/generated/model/introspectAccessiTokenResponse.js.map +1 -0
  294. package/dist/accessi-module/Console/generated/model/issuedServiceTokenDto.d.ts +30 -0
  295. package/dist/accessi-module/Console/generated/model/issuedServiceTokenDto.js +9 -0
  296. package/dist/accessi-module/Console/generated/model/issuedServiceTokenDto.js.map +1 -0
  297. package/dist/accessi-module/Console/generated/model/loginAsRequest.d.ts +10 -0
  298. package/dist/accessi-module/Console/generated/model/loginAsRequest.js +9 -0
  299. package/dist/accessi-module/Console/generated/model/loginAsRequest.js.map +1 -0
  300. package/dist/accessi-module/Console/generated/model/loginAsResponse.d.ts +14 -0
  301. package/dist/accessi-module/Console/generated/model/loginAsResponse.js +3 -0
  302. package/dist/accessi-module/Console/generated/model/loginAsResponse.js.map +1 -0
  303. package/dist/accessi-module/Console/generated/model/loginAsResult.d.ts +16 -0
  304. package/dist/accessi-module/Console/generated/model/loginAsResult.js +9 -0
  305. package/dist/accessi-module/Console/generated/model/loginAsResult.js.map +1 -0
  306. package/dist/accessi-module/Console/generated/model/loginRequest.d.ts +14 -0
  307. package/dist/accessi-module/Console/generated/model/loginRequest.js +9 -0
  308. package/dist/accessi-module/Console/generated/model/loginRequest.js.map +1 -0
  309. package/dist/accessi-module/Console/generated/model/loginResponse.d.ts +14 -0
  310. package/dist/accessi-module/Console/generated/model/loginResponse.js +3 -0
  311. package/dist/accessi-module/Console/generated/model/loginResponse.js.map +1 -0
  312. package/dist/accessi-module/Console/generated/model/loginResult.d.ts +34 -0
  313. package/dist/accessi-module/Console/generated/model/loginResult.js +3 -0
  314. package/dist/accessi-module/Console/generated/model/loginResult.js.map +1 -0
  315. package/dist/accessi-module/Console/generated/model/loginResultExtensionFields.d.ts +12 -0
  316. package/dist/accessi-module/Console/generated/model/loginResultExtensionFields.js +9 -0
  317. package/dist/accessi-module/Console/generated/model/loginResultExtensionFields.js.map +1 -0
  318. package/dist/accessi-module/Console/generated/model/loginResultPasswordRequired.d.ts +13 -0
  319. package/dist/accessi-module/Console/generated/model/loginResultPasswordRequired.js +14 -0
  320. package/dist/accessi-module/Console/generated/model/loginResultPasswordRequired.js.map +1 -0
  321. package/dist/accessi-module/Console/generated/model/menuEntity.d.ts +32 -0
  322. package/dist/accessi-module/Console/generated/model/menuEntity.js +9 -0
  323. package/dist/accessi-module/Console/generated/model/menuEntity.js.map +1 -0
  324. package/dist/accessi-module/Console/generated/model/menuTypeEntity.d.ts +12 -0
  325. package/dist/accessi-module/Console/generated/model/menuTypeEntity.js +9 -0
  326. package/dist/accessi-module/Console/generated/model/menuTypeEntity.js.map +1 -0
  327. package/dist/accessi-module/Console/generated/model/passwordExpiredResponse.d.ts +12 -0
  328. package/dist/accessi-module/Console/generated/model/passwordExpiredResponse.js +9 -0
  329. package/dist/accessi-module/Console/generated/model/passwordExpiredResponse.js.map +1 -0
  330. package/dist/accessi-module/Console/generated/model/permission.d.ts +12 -0
  331. package/dist/accessi-module/Console/generated/model/permission.js +9 -0
  332. package/dist/accessi-module/Console/generated/model/permission.js.map +1 -0
  333. package/dist/accessi-module/Console/generated/model/publicRegisterRequest.d.ts +51 -0
  334. package/dist/accessi-module/Console/generated/model/publicRegisterRequest.js +9 -0
  335. package/dist/accessi-module/Console/generated/model/publicRegisterRequest.js.map +1 -0
  336. package/dist/accessi-module/Console/generated/model/refreshTokenRequest.d.ts +10 -0
  337. package/dist/accessi-module/Console/generated/model/refreshTokenRequest.js +9 -0
  338. package/dist/accessi-module/Console/generated/model/refreshTokenRequest.js.map +1 -0
  339. package/dist/accessi-module/Console/generated/model/refreshTokenResponse.d.ts +14 -0
  340. package/dist/accessi-module/Console/generated/model/refreshTokenResponse.js +3 -0
  341. package/dist/accessi-module/Console/generated/model/refreshTokenResponse.js.map +1 -0
  342. package/dist/accessi-module/Console/generated/model/refreshTokenResult.d.ts +13 -0
  343. package/dist/accessi-module/Console/generated/model/refreshTokenResult.js +3 -0
  344. package/dist/accessi-module/Console/generated/model/refreshTokenResult.js.map +1 -0
  345. package/dist/accessi-module/Console/generated/model/registerRequest.d.ts +62 -0
  346. package/dist/accessi-module/Console/generated/model/registerRequest.js +3 -0
  347. package/dist/accessi-module/Console/generated/model/registerRequest.js.map +1 -0
  348. package/dist/accessi-module/Console/generated/model/registerResponse.d.ts +14 -0
  349. package/dist/accessi-module/Console/generated/model/registerResponse.js +3 -0
  350. package/dist/accessi-module/Console/generated/model/registerResponse.js.map +1 -0
  351. package/dist/accessi-module/Console/generated/model/resendTwoFactorRequest.d.ts +13 -0
  352. package/dist/accessi-module/Console/generated/model/resendTwoFactorRequest.js +9 -0
  353. package/dist/accessi-module/Console/generated/model/resendTwoFactorRequest.js.map +1 -0
  354. package/dist/accessi-module/Console/generated/model/revokeTokenRequest.d.ts +10 -0
  355. package/dist/accessi-module/Console/generated/model/revokeTokenRequest.js +9 -0
  356. package/dist/accessi-module/Console/generated/model/revokeTokenRequest.js.map +1 -0
  357. package/dist/accessi-module/Console/generated/model/role.d.ts +15 -0
  358. package/dist/accessi-module/Console/generated/model/role.js +3 -0
  359. package/dist/accessi-module/Console/generated/model/role.js.map +1 -0
  360. package/dist/accessi-module/Console/generated/model/ruoliMenu.d.ts +15 -0
  361. package/dist/accessi-module/Console/generated/model/ruoliMenu.js +3 -0
  362. package/dist/accessi-module/Console/generated/model/ruoliMenu.js.map +1 -0
  363. package/dist/accessi-module/Console/generated/model/ruoliMenuTipoAbilitazione.d.ts +16 -0
  364. package/dist/accessi-module/Console/generated/model/ruoliMenuTipoAbilitazione.js +17 -0
  365. package/dist/accessi-module/Console/generated/model/ruoliMenuTipoAbilitazione.js.map +1 -0
  366. package/dist/accessi-module/Console/generated/model/schemaDdlResult.d.ts +20 -0
  367. package/dist/accessi-module/Console/generated/model/schemaDdlResult.js +3 -0
  368. package/dist/accessi-module/Console/generated/model/schemaDdlResult.js.map +1 -0
  369. package/dist/accessi-module/Console/generated/model/schemaDdlSection.d.ts +12 -0
  370. package/dist/accessi-module/Console/generated/model/schemaDdlSection.js +9 -0
  371. package/dist/accessi-module/Console/generated/model/schemaDdlSection.js.map +1 -0
  372. package/dist/accessi-module/Console/generated/model/scopeEntity.d.ts +12 -0
  373. package/dist/accessi-module/Console/generated/model/scopeEntity.js +9 -0
  374. package/dist/accessi-module/Console/generated/model/scopeEntity.js.map +1 -0
  375. package/dist/accessi-module/Console/generated/model/sendResetPasswordEmailRequest.d.ts +12 -0
  376. package/dist/accessi-module/Console/generated/model/sendResetPasswordEmailRequest.js +9 -0
  377. package/dist/accessi-module/Console/generated/model/sendResetPasswordEmailRequest.js.map +1 -0
  378. package/dist/accessi-module/Console/generated/model/serveResetPasswordPageParams.d.ts +12 -0
  379. package/dist/accessi-module/Console/generated/model/serveResetPasswordPageParams.js +9 -0
  380. package/dist/accessi-module/Console/generated/model/serveResetPasswordPageParams.js.map +1 -0
  381. package/dist/accessi-module/Console/generated/model/serviceTokenDto.d.ts +28 -0
  382. package/dist/accessi-module/Console/generated/model/serviceTokenDto.js +9 -0
  383. package/dist/accessi-module/Console/generated/model/serviceTokenDto.js.map +1 -0
  384. package/dist/accessi-module/Console/generated/model/setMenuScopesRequest.d.ts +10 -0
  385. package/dist/accessi-module/Console/generated/model/setMenuScopesRequest.js +9 -0
  386. package/dist/accessi-module/Console/generated/model/setMenuScopesRequest.js.map +1 -0
  387. package/dist/accessi-module/Console/generated/model/setPasswordLoginPolicyRequest.d.ts +10 -0
  388. package/dist/accessi-module/Console/generated/model/setPasswordLoginPolicyRequest.js +9 -0
  389. package/dist/accessi-module/Console/generated/model/setPasswordLoginPolicyRequest.js.map +1 -0
  390. package/dist/accessi-module/Console/generated/model/setScopeMenusRequest.d.ts +10 -0
  391. package/dist/accessi-module/Console/generated/model/setScopeMenusRequest.js +9 -0
  392. package/dist/accessi-module/Console/generated/model/setScopeMenusRequest.js.map +1 -0
  393. package/dist/accessi-module/Console/generated/model/setStatoRegistrazioneDto.d.ts +13 -0
  394. package/dist/accessi-module/Console/generated/model/setStatoRegistrazioneDto.js +3 -0
  395. package/dist/accessi-module/Console/generated/model/setStatoRegistrazioneDto.js.map +1 -0
  396. package/dist/accessi-module/Console/generated/model/setStatoRegistrazioneDtoStatoRegistrazione.d.ts +18 -0
  397. package/dist/accessi-module/Console/generated/model/setStatoRegistrazioneDtoStatoRegistrazione.js +19 -0
  398. package/dist/accessi-module/Console/generated/model/setStatoRegistrazioneDtoStatoRegistrazione.js.map +1 -0
  399. package/dist/accessi-module/Console/generated/model/setUserPasswordRequest.d.ts +14 -0
  400. package/dist/accessi-module/Console/generated/model/setUserPasswordRequest.js +9 -0
  401. package/dist/accessi-module/Console/generated/model/setUserPasswordRequest.js.map +1 -0
  402. package/dist/accessi-module/Console/generated/model/status.d.ts +12 -0
  403. package/dist/accessi-module/Console/generated/model/status.js +9 -0
  404. package/dist/accessi-module/Console/generated/model/status.js.map +1 -0
  405. package/dist/accessi-module/Console/generated/model/tipoFiltro.d.ts +23 -0
  406. package/dist/accessi-module/Console/generated/model/tipoFiltro.js +3 -0
  407. package/dist/accessi-module/Console/generated/model/tipoFiltro.js.map +1 -0
  408. package/dist/accessi-module/Console/generated/model/tipoFiltroFlgEnabled.d.ts +14 -0
  409. package/dist/accessi-module/Console/generated/model/tipoFiltroFlgEnabled.js +15 -0
  410. package/dist/accessi-module/Console/generated/model/tipoFiltroFlgEnabled.js.map +1 -0
  411. package/dist/accessi-module/Console/generated/model/tokenResult.d.ts +15 -0
  412. package/dist/accessi-module/Console/generated/model/tokenResult.js +3 -0
  413. package/dist/accessi-module/Console/generated/model/tokenResult.js.map +1 -0
  414. package/dist/accessi-module/Console/generated/model/tokenResultType.d.ts +14 -0
  415. package/dist/accessi-module/Console/generated/model/tokenResultType.js +15 -0
  416. package/dist/accessi-module/Console/generated/model/tokenResultType.js.map +1 -0
  417. package/dist/accessi-module/Console/generated/model/twoFactorChallengeDto.d.ts +18 -0
  418. package/dist/accessi-module/Console/generated/model/twoFactorChallengeDto.js +3 -0
  419. package/dist/accessi-module/Console/generated/model/twoFactorChallengeDto.js.map +1 -0
  420. package/dist/accessi-module/Console/generated/model/twoFactorChallengeDtoMethod.d.ts +10 -0
  421. package/dist/accessi-module/Console/generated/model/twoFactorChallengeDtoMethod.js +14 -0
  422. package/dist/accessi-module/Console/generated/model/twoFactorChallengeDtoMethod.js.map +1 -0
  423. package/dist/accessi-module/Console/generated/model/twoFactorChallengeDtoTwoFactorRequired.d.ts +13 -0
  424. package/dist/accessi-module/Console/generated/model/twoFactorChallengeDtoTwoFactorRequired.js +14 -0
  425. package/dist/accessi-module/Console/generated/model/twoFactorChallengeDtoTwoFactorRequired.js.map +1 -0
  426. package/dist/accessi-module/Console/generated/model/updateEnabledStatusRequest.d.ts +10 -0
  427. package/dist/accessi-module/Console/generated/model/updateEnabledStatusRequest.js +9 -0
  428. package/dist/accessi-module/Console/generated/model/updateEnabledStatusRequest.js.map +1 -0
  429. package/dist/accessi-module/Console/generated/model/updateFederatedIdentityRequest.d.ts +11 -0
  430. package/dist/accessi-module/Console/generated/model/updateFederatedIdentityRequest.js +9 -0
  431. package/dist/accessi-module/Console/generated/model/updateFederatedIdentityRequest.js.map +1 -0
  432. package/dist/accessi-module/Console/generated/model/updateFederatedProviderRequest.d.ts +12 -0
  433. package/dist/accessi-module/Console/generated/model/updateFederatedProviderRequest.js +9 -0
  434. package/dist/accessi-module/Console/generated/model/updateFederatedProviderRequest.js.map +1 -0
  435. package/dist/accessi-module/Console/generated/model/updateFilterTypeRequest.d.ts +21 -0
  436. package/dist/accessi-module/Console/generated/model/updateFilterTypeRequest.js +3 -0
  437. package/dist/accessi-module/Console/generated/model/updateFilterTypeRequest.js.map +1 -0
  438. package/dist/accessi-module/Console/generated/model/updateFilterTypeRequestFlgEnabled.d.ts +14 -0
  439. package/dist/accessi-module/Console/generated/model/updateFilterTypeRequestFlgEnabled.js +15 -0
  440. package/dist/accessi-module/Console/generated/model/updateFilterTypeRequestFlgEnabled.js.map +1 -0
  441. package/dist/accessi-module/Console/generated/model/updateMenuGroupRequest.d.ts +17 -0
  442. package/dist/accessi-module/Console/generated/model/updateMenuGroupRequest.js +9 -0
  443. package/dist/accessi-module/Console/generated/model/updateMenuGroupRequest.js.map +1 -0
  444. package/dist/accessi-module/Console/generated/model/updateMenuRequest.d.ts +47 -0
  445. package/dist/accessi-module/Console/generated/model/updateMenuRequest.js +9 -0
  446. package/dist/accessi-module/Console/generated/model/updateMenuRequest.js.map +1 -0
  447. package/dist/accessi-module/Console/generated/model/updateMenuTypeRequest.d.ts +13 -0
  448. package/dist/accessi-module/Console/generated/model/updateMenuTypeRequest.js +9 -0
  449. package/dist/accessi-module/Console/generated/model/updateMenuTypeRequest.js.map +1 -0
  450. package/dist/accessi-module/Console/generated/model/updateScopeRequest.d.ts +13 -0
  451. package/dist/accessi-module/Console/generated/model/updateScopeRequest.js +9 -0
  452. package/dist/accessi-module/Console/generated/model/updateScopeRequest.js.map +1 -0
  453. package/dist/accessi-module/Console/generated/model/userDto.d.ts +88 -0
  454. package/dist/accessi-module/Console/generated/model/userDto.js +3 -0
  455. package/dist/accessi-module/Console/generated/model/userDto.js.map +1 -0
  456. package/dist/accessi-module/Console/generated/model/userDtoStatoRegistrazione.d.ts +18 -0
  457. package/dist/accessi-module/Console/generated/model/userDtoStatoRegistrazione.js +19 -0
  458. package/dist/accessi-module/Console/generated/model/userDtoStatoRegistrazione.js.map +1 -0
  459. package/dist/accessi-module/Console/generated/model/userGrantsDto.d.ts +16 -0
  460. package/dist/accessi-module/Console/generated/model/userGrantsDto.js +3 -0
  461. package/dist/accessi-module/Console/generated/model/userGrantsDto.js.map +1 -0
  462. package/dist/accessi-module/Console/generated/model/userGrantsResponse.d.ts +14 -0
  463. package/dist/accessi-module/Console/generated/model/userGrantsResponse.js +3 -0
  464. package/dist/accessi-module/Console/generated/model/userGrantsResponse.js.map +1 -0
  465. package/dist/accessi-module/Console/generated/model/verifyTwoFactorRequest.d.ts +20 -0
  466. package/dist/accessi-module/Console/generated/model/verifyTwoFactorRequest.js +9 -0
  467. package/dist/accessi-module/Console/generated/model/verifyTwoFactorRequest.js.map +1 -0
  468. package/dist/accessi-module/Console/help.d.ts +13 -0
  469. package/dist/accessi-module/Console/help.js +417 -0
  470. package/dist/accessi-module/Console/help.js.map +1 -0
  471. package/dist/accessi-module/Console/index.html +141 -0
  472. package/dist/accessi-module/Console/wiki.d.ts +52 -0
  473. package/dist/accessi-module/Console/wiki.js +855 -0
  474. package/dist/accessi-module/Console/wiki.js.map +1 -0
  475. package/dist/accessi-module/Controllers/AccessiConsoleController.d.ts +23 -0
  476. package/dist/accessi-module/Controllers/AccessiConsoleController.js +134 -0
  477. package/dist/accessi-module/Controllers/AccessiConsoleController.js.map +1 -0
  478. package/dist/accessi-module/Controllers/AccessiIntrospectionController.d.ts +17 -0
  479. package/dist/accessi-module/Controllers/AccessiIntrospectionController.js +93 -0
  480. package/dist/accessi-module/Controllers/AccessiIntrospectionController.js.map +1 -0
  481. package/dist/accessi-module/Controllers/AuthController.d.ts +16 -6
  482. package/dist/accessi-module/Controllers/AuthController.js +333 -85
  483. package/dist/accessi-module/Controllers/AuthController.js.map +1 -1
  484. package/dist/accessi-module/Controllers/ConfiguratorController.d.ts +1 -5
  485. package/dist/accessi-module/Controllers/ConfiguratorController.js +26 -44
  486. package/dist/accessi-module/Controllers/ConfiguratorController.js.map +1 -1
  487. package/dist/accessi-module/Controllers/ConsoleEntryController.d.ts +16 -0
  488. package/dist/accessi-module/Controllers/ConsoleEntryController.js +136 -0
  489. package/dist/accessi-module/Controllers/ConsoleEntryController.js.map +1 -0
  490. package/dist/accessi-module/Controllers/EmailController.d.ts +4 -6
  491. package/dist/accessi-module/Controllers/EmailController.js +13 -15
  492. package/dist/accessi-module/Controllers/EmailController.js.map +1 -1
  493. package/dist/accessi-module/Controllers/FiltriController.d.ts +12 -4
  494. package/dist/accessi-module/Controllers/FiltriController.js +153 -6
  495. package/dist/accessi-module/Controllers/FiltriController.js.map +1 -1
  496. package/dist/accessi-module/Controllers/PermissionController.d.ts +31 -5
  497. package/dist/accessi-module/Controllers/PermissionController.js +559 -66
  498. package/dist/accessi-module/Controllers/PermissionController.js.map +1 -1
  499. package/dist/accessi-module/Controllers/SchemaController.d.ts +9 -0
  500. package/dist/accessi-module/Controllers/SchemaController.js +79 -0
  501. package/dist/accessi-module/Controllers/SchemaController.js.map +1 -0
  502. package/dist/accessi-module/Controllers/ServiceTokenController.d.ts +23 -0
  503. package/dist/accessi-module/Controllers/ServiceTokenController.js +176 -0
  504. package/dist/accessi-module/Controllers/ServiceTokenController.js.map +1 -0
  505. package/dist/accessi-module/Controllers/UserController.d.ts +22 -5
  506. package/dist/accessi-module/Controllers/UserController.js +385 -33
  507. package/dist/accessi-module/Controllers/UserController.js.map +1 -1
  508. package/dist/accessi-module/Dtos/Abilitazione.js.map +1 -1
  509. package/dist/accessi-module/Dtos/AbilitazioneMenu.js +16 -8
  510. package/dist/accessi-module/Dtos/AbilitazioneMenu.js.map +1 -1
  511. package/dist/accessi-module/Dtos/AdminBootstrapDtos.d.ts +26 -0
  512. package/dist/accessi-module/Dtos/AdminBootstrapDtos.js +100 -0
  513. package/dist/accessi-module/Dtos/AdminBootstrapDtos.js.map +1 -0
  514. package/dist/accessi-module/Dtos/AssignPermissionsToUserRequest.js +0 -1
  515. package/dist/accessi-module/Dtos/AssignPermissionsToUserRequest.js.map +1 -1
  516. package/dist/accessi-module/Dtos/AssignRolesToUserRequest.js +1 -2
  517. package/dist/accessi-module/Dtos/AssignRolesToUserRequest.js.map +1 -1
  518. package/dist/accessi-module/Dtos/AuthenticatedUserPayloadDto.d.ts +13 -0
  519. package/dist/accessi-module/Dtos/AuthenticatedUserPayloadDto.js +70 -0
  520. package/dist/accessi-module/Dtos/AuthenticatedUserPayloadDto.js.map +1 -0
  521. package/dist/accessi-module/Dtos/BaseResponse.d.ts +22 -0
  522. package/dist/accessi-module/Dtos/BaseResponse.js +106 -1
  523. package/dist/accessi-module/Dtos/BaseResponse.js.map +1 -1
  524. package/dist/accessi-module/Dtos/CatalogDtos.d.ts +64 -0
  525. package/dist/accessi-module/Dtos/CatalogDtos.js +322 -0
  526. package/dist/accessi-module/Dtos/CatalogDtos.js.map +1 -0
  527. package/dist/accessi-module/Dtos/ConfirmResetPasswordRequest.d.ts +3 -0
  528. package/dist/accessi-module/Dtos/ConfirmResetPasswordRequest.js +31 -0
  529. package/dist/accessi-module/Dtos/ConfirmResetPasswordRequest.js.map +1 -0
  530. package/dist/accessi-module/Dtos/ConsoleEntryDtos.d.ts +24 -0
  531. package/dist/accessi-module/Dtos/ConsoleEntryDtos.js +77 -0
  532. package/dist/accessi-module/Dtos/ConsoleEntryDtos.js.map +1 -0
  533. package/dist/accessi-module/Dtos/FederatedExchangeDtos.d.ts +21 -0
  534. package/dist/accessi-module/Dtos/FederatedExchangeDtos.js +74 -0
  535. package/dist/accessi-module/Dtos/FederatedExchangeDtos.js.map +1 -0
  536. package/dist/accessi-module/Dtos/FederatedIdentityDtos.d.ts +69 -0
  537. package/dist/accessi-module/Dtos/FederatedIdentityDtos.js +236 -0
  538. package/dist/accessi-module/Dtos/FederatedIdentityDtos.js.map +1 -0
  539. package/dist/accessi-module/Dtos/FiltriUtente.js +5 -1
  540. package/dist/accessi-module/Dtos/FiltriUtente.js.map +1 -1
  541. package/dist/accessi-module/Dtos/GetGroupsWithMenusResponse.js.map +1 -1
  542. package/dist/accessi-module/Dtos/GetMenusResponse.js +1 -1
  543. package/dist/accessi-module/Dtos/GetMenusResponse.js.map +1 -1
  544. package/dist/accessi-module/Dtos/GetRolesResponse.js.map +1 -1
  545. package/dist/accessi-module/Dtos/GetUserByTokenRequest.d.ts +3 -0
  546. package/dist/accessi-module/Dtos/GetUserByTokenRequest.js +26 -0
  547. package/dist/accessi-module/Dtos/GetUserByTokenRequest.js.map +1 -0
  548. package/dist/accessi-module/Dtos/GetUserByTokenResponse.d.ts +5 -0
  549. package/dist/accessi-module/Dtos/GetUserByTokenResponse.js +27 -0
  550. package/dist/accessi-module/Dtos/GetUserByTokenResponse.js.map +1 -0
  551. package/dist/accessi-module/Dtos/GetUsersResponse.d.ts +1 -1
  552. package/dist/accessi-module/Dtos/GetUsersResponse.js.map +1 -1
  553. package/dist/accessi-module/Dtos/IntrospectionDtos.d.ts +16 -0
  554. package/dist/accessi-module/Dtos/IntrospectionDtos.js +59 -0
  555. package/dist/accessi-module/Dtos/IntrospectionDtos.js.map +1 -0
  556. package/dist/accessi-module/Dtos/LoginAsDtos.d.ts +15 -0
  557. package/dist/accessi-module/Dtos/LoginAsDtos.js +68 -0
  558. package/dist/accessi-module/Dtos/LoginAsDtos.js.map +1 -0
  559. package/dist/accessi-module/Dtos/LoginRequest.d.ts +3 -1
  560. package/dist/accessi-module/Dtos/LoginRequest.js +13 -2
  561. package/dist/accessi-module/Dtos/LoginRequest.js.map +1 -1
  562. package/dist/accessi-module/Dtos/LoginResponse.d.ts +7 -2
  563. package/dist/accessi-module/Dtos/LoginResponse.js +26 -7
  564. package/dist/accessi-module/Dtos/LoginResponse.js.map +1 -1
  565. package/dist/accessi-module/Dtos/MenuItem.js +1 -0
  566. package/dist/accessi-module/Dtos/Permission.d.ts +1 -0
  567. package/dist/accessi-module/Dtos/Permission.js +1 -0
  568. package/dist/accessi-module/Dtos/Permission.js.map +1 -1
  569. package/dist/accessi-module/Dtos/PublicRegisterRequest.d.ts +5 -0
  570. package/dist/accessi-module/Dtos/PublicRegisterRequest.js +15 -0
  571. package/dist/accessi-module/Dtos/PublicRegisterRequest.js.map +1 -0
  572. package/dist/accessi-module/Dtos/RefreshTokenDtos.d.ts +12 -0
  573. package/dist/accessi-module/Dtos/RefreshTokenDtos.js +50 -0
  574. package/dist/accessi-module/Dtos/RefreshTokenDtos.js.map +1 -0
  575. package/dist/accessi-module/Dtos/RegisterRequest.d.ts +2 -4
  576. package/dist/accessi-module/Dtos/RegisterRequest.js +17 -27
  577. package/dist/accessi-module/Dtos/RegisterRequest.js.map +1 -1
  578. package/dist/accessi-module/Dtos/RegisterResponse.d.ts +1 -1
  579. package/dist/accessi-module/Dtos/RegisterResponse.js +3 -3
  580. package/dist/accessi-module/Dtos/RegisterResponse.js.map +1 -1
  581. package/dist/accessi-module/Dtos/RevokeTokenRequest.d.ts +3 -0
  582. package/dist/accessi-module/Dtos/RevokeTokenRequest.js +27 -0
  583. package/dist/accessi-module/Dtos/RevokeTokenRequest.js.map +1 -0
  584. package/dist/accessi-module/Dtos/Role.d.ts +4 -0
  585. package/dist/accessi-module/Dtos/Role.js +4 -0
  586. package/dist/accessi-module/Dtos/Role.js.map +1 -1
  587. package/dist/accessi-module/Dtos/RuoliMenu.js.map +1 -1
  588. package/dist/accessi-module/Dtos/SchemaDtos.d.ts +19 -0
  589. package/dist/accessi-module/Dtos/SchemaDtos.js +84 -0
  590. package/dist/accessi-module/Dtos/SchemaDtos.js.map +1 -0
  591. package/dist/accessi-module/Dtos/ScopeDtos.d.ts +28 -0
  592. package/dist/accessi-module/Dtos/ScopeDtos.js +103 -0
  593. package/dist/accessi-module/Dtos/ScopeDtos.js.map +1 -0
  594. package/dist/accessi-module/Dtos/SendResetPasswordEmailRequest.d.ts +4 -0
  595. package/dist/accessi-module/Dtos/SendResetPasswordEmailRequest.js +36 -0
  596. package/dist/accessi-module/Dtos/SendResetPasswordEmailRequest.js.map +1 -0
  597. package/dist/accessi-module/Dtos/ServiceToken.d.ts +34 -0
  598. package/dist/accessi-module/Dtos/ServiceToken.js +128 -0
  599. package/dist/accessi-module/Dtos/ServiceToken.js.map +1 -0
  600. package/dist/accessi-module/Dtos/SetStatoRegistrazione.js.map +1 -1
  601. package/dist/accessi-module/Dtos/SetUserPasswordRequest.d.ts +4 -0
  602. package/dist/accessi-module/Dtos/SetUserPasswordRequest.js +32 -0
  603. package/dist/accessi-module/Dtos/SetUserPasswordRequest.js.map +1 -0
  604. package/dist/accessi-module/Dtos/StatoRegistrazione.js.map +1 -1
  605. package/dist/accessi-module/Dtos/TipoAbilitazione.d.ts +4 -0
  606. package/dist/accessi-module/Dtos/TipoAbilitazione.js +4 -0
  607. package/dist/accessi-module/Dtos/TipoAbilitazione.js.map +1 -1
  608. package/dist/accessi-module/Dtos/TipoFiltro.js.map +1 -1
  609. package/dist/accessi-module/Dtos/TokenResult.js.map +1 -1
  610. package/dist/accessi-module/Dtos/TwoFactorDtos.d.ts +14 -0
  611. package/dist/accessi-module/Dtos/TwoFactorDtos.js +71 -0
  612. package/dist/accessi-module/Dtos/TwoFactorDtos.js.map +1 -0
  613. package/dist/accessi-module/Dtos/UpdateEnabledStatusRequest.js.map +1 -1
  614. package/dist/accessi-module/Dtos/UserDto.d.ts +9 -4
  615. package/dist/accessi-module/Dtos/UserDto.js +37 -22
  616. package/dist/accessi-module/Dtos/UserDto.js.map +1 -1
  617. package/dist/accessi-module/Dtos/UserGrantsDto.js.map +1 -1
  618. package/dist/accessi-module/Dtos/UserGrantsResponse.d.ts +5 -0
  619. package/dist/accessi-module/Dtos/UserGrantsResponse.js +27 -0
  620. package/dist/accessi-module/Dtos/UserGrantsResponse.js.map +1 -0
  621. package/dist/accessi-module/Dtos/index.d.ts +19 -0
  622. package/dist/accessi-module/Dtos/index.js +19 -0
  623. package/dist/accessi-module/Dtos/index.js.map +1 -1
  624. package/dist/accessi-module/Services/AdminBootstrapService/AdminBootstrapService.d.ts +33 -0
  625. package/dist/accessi-module/Services/AdminBootstrapService/AdminBootstrapService.js +106 -0
  626. package/dist/accessi-module/Services/AdminBootstrapService/AdminBootstrapService.js.map +1 -0
  627. package/dist/accessi-module/Services/AuthService/AuthService.d.ts +108 -5
  628. package/dist/accessi-module/Services/AuthService/AuthService.js +452 -54
  629. package/dist/accessi-module/Services/AuthService/AuthService.js.map +1 -1
  630. package/dist/accessi-module/Services/ConfiguratorService/ConfiguratorService.d.ts +3 -1
  631. package/dist/accessi-module/Services/ConfiguratorService/ConfiguratorService.js +5 -1
  632. package/dist/accessi-module/Services/ConfiguratorService/ConfiguratorService.js.map +1 -1
  633. package/dist/accessi-module/Services/EmailService/EmailService.d.ts +9 -2
  634. package/dist/accessi-module/Services/EmailService/EmailService.js +47 -22
  635. package/dist/accessi-module/Services/EmailService/EmailService.js.map +1 -1
  636. package/dist/accessi-module/Services/FiltriService/FiltriService.d.ts +18 -3
  637. package/dist/accessi-module/Services/FiltriService/FiltriService.js +92 -16
  638. package/dist/accessi-module/Services/FiltriService/FiltriService.js.map +1 -1
  639. package/dist/accessi-module/Services/PermissionService/PermissionService.d.ts +107 -5
  640. package/dist/accessi-module/Services/PermissionService/PermissionService.js +788 -215
  641. package/dist/accessi-module/Services/PermissionService/PermissionService.js.map +1 -1
  642. package/dist/accessi-module/Services/SchemaExportService/SchemaExportService.d.ts +36 -0
  643. package/dist/accessi-module/Services/SchemaExportService/SchemaExportService.js +125 -0
  644. package/dist/accessi-module/Services/SchemaExportService/SchemaExportService.js.map +1 -0
  645. package/dist/accessi-module/Services/ServiceTokenService/ServiceTokenService.d.ts +75 -0
  646. package/dist/accessi-module/Services/ServiceTokenService/ServiceTokenService.js +265 -0
  647. package/dist/accessi-module/Services/ServiceTokenService/ServiceTokenService.js.map +1 -0
  648. package/dist/accessi-module/Services/TwoFactorService/TwoFactorService.d.ts +27 -0
  649. package/dist/accessi-module/Services/TwoFactorService/TwoFactorService.js +175 -0
  650. package/dist/accessi-module/Services/TwoFactorService/TwoFactorService.js.map +1 -0
  651. package/dist/accessi-module/Services/UserService/UserService.d.ts +73 -5
  652. package/dist/accessi-module/Services/UserService/UserService.js +578 -337
  653. package/dist/accessi-module/Services/UserService/UserService.js.map +1 -1
  654. package/dist/accessi-module/Views/reset-password.html +229 -213
  655. package/dist/accessi-module/accessiRuntime.d.ts +45 -0
  656. package/dist/accessi-module/accessiRuntime.js +39 -0
  657. package/dist/accessi-module/accessiRuntime.js.map +1 -0
  658. package/dist/accessi-module/database-updates/AccessiCatalogMigrator.d.ts +83 -0
  659. package/dist/accessi-module/database-updates/AccessiCatalogMigrator.js +360 -0
  660. package/dist/accessi-module/database-updates/AccessiCatalogMigrator.js.map +1 -0
  661. package/dist/accessi-module/database-updates/AccessiDatabaseUpdater.d.ts +58 -10
  662. package/dist/accessi-module/database-updates/AccessiDatabaseUpdater.js +508 -179
  663. package/dist/accessi-module/database-updates/AccessiDatabaseUpdater.js.map +1 -1
  664. package/dist/accessi-module/database-updates/accessiOptionsFromEnv.d.ts +5 -0
  665. package/dist/accessi-module/database-updates/accessiOptionsFromEnv.js +78 -0
  666. package/dist/accessi-module/database-updates/accessiOptionsFromEnv.js.map +1 -0
  667. package/dist/accessi-module/database-updates/accessiSchema.d.ts +67 -0
  668. package/dist/accessi-module/database-updates/accessiSchema.js +135 -0
  669. package/dist/accessi-module/database-updates/accessiSchema.js.map +1 -0
  670. package/dist/accessi-module/database-updates/menuScopeSeed.d.ts +15 -0
  671. package/dist/accessi-module/database-updates/menuScopeSeed.js +386 -0
  672. package/dist/accessi-module/database-updates/menuScopeSeed.js.map +1 -0
  673. package/dist/accessi-module/database-updates/menuScopeSeeder.d.ts +8 -0
  674. package/dist/accessi-module/database-updates/menuScopeSeeder.js +131 -0
  675. package/dist/accessi-module/database-updates/menuScopeSeeder.js.map +1 -0
  676. package/dist/accessi-module/database-updates/optionalColumns.d.ts +7 -0
  677. package/dist/accessi-module/database-updates/optionalColumns.js +58 -0
  678. package/dist/accessi-module/database-updates/optionalColumns.js.map +1 -0
  679. package/dist/accessi-module/database-updates/runAccessiCatalogMigrations.d.ts +1 -0
  680. package/dist/accessi-module/database-updates/runAccessiCatalogMigrations.js +69 -0
  681. package/dist/accessi-module/database-updates/runAccessiCatalogMigrations.js.map +1 -0
  682. package/dist/accessi-module/database-updates/runAccessiDbUpdate.js +18 -53
  683. package/dist/accessi-module/database-updates/runAccessiDbUpdate.js.map +1 -1
  684. package/dist/accessi-module/federated-auth/FederatedAuthController.d.ts +33 -0
  685. package/dist/accessi-module/federated-auth/FederatedAuthController.js +373 -0
  686. package/dist/accessi-module/federated-auth/FederatedAuthController.js.map +1 -0
  687. package/dist/accessi-module/federated-auth/FederatedAuthExchangeController.d.ts +15 -0
  688. package/dist/accessi-module/federated-auth/FederatedAuthExchangeController.js +85 -0
  689. package/dist/accessi-module/federated-auth/FederatedAuthExchangeController.js.map +1 -0
  690. package/dist/accessi-module/federated-auth/FederatedAuthService.d.ts +102 -0
  691. package/dist/accessi-module/federated-auth/FederatedAuthService.js +472 -0
  692. package/dist/accessi-module/federated-auth/FederatedAuthService.js.map +1 -0
  693. package/dist/accessi-module/federated-auth/FederatedAuthTypes.d.ts +53 -0
  694. package/dist/accessi-module/federated-auth/FederatedAuthTypes.js +3 -0
  695. package/dist/accessi-module/federated-auth/FederatedAuthTypes.js.map +1 -0
  696. package/dist/accessi-module/index.d.ts +61 -1
  697. package/dist/accessi-module/index.js +168 -22
  698. package/dist/accessi-module/index.js.map +1 -1
  699. package/dist/accessi-module/jwt/jwt.strategy.d.ts +1 -1
  700. package/dist/accessi-module/jwt/jwt.strategy.js +21 -8
  701. package/dist/accessi-module/jwt/jwt.strategy.js.map +1 -1
  702. package/dist/accessi-module/middleware/accessiRequirements.d.ts +23 -1
  703. package/dist/accessi-module/middleware/accessiRequirements.js +7 -0
  704. package/dist/accessi-module/middleware/accessiRequirements.js.map +1 -1
  705. package/dist/accessi-module/middleware/authenticateGen.d.ts +16 -1
  706. package/dist/accessi-module/middleware/authenticateGen.js +68 -26
  707. package/dist/accessi-module/middleware/authenticateGen.js.map +1 -1
  708. package/dist/accessi-module/security/AccessiHttpExceptionFilter.d.ts +12 -0
  709. package/dist/accessi-module/security/AccessiHttpExceptionFilter.js +77 -0
  710. package/dist/accessi-module/security/AccessiHttpExceptionFilter.js.map +1 -0
  711. package/dist/accessi-module/security/accessControl.d.ts +48 -2
  712. package/dist/accessi-module/security/accessControl.js +84 -8
  713. package/dist/accessi-module/security/accessControl.js.map +1 -1
  714. package/dist/accessi-module/security/accessTokenRevocation.d.ts +47 -0
  715. package/dist/accessi-module/security/accessTokenRevocation.js +146 -0
  716. package/dist/accessi-module/security/accessTokenRevocation.js.map +1 -0
  717. package/dist/accessi-module/security/accessiValidation.d.ts +9 -0
  718. package/dist/accessi-module/security/accessiValidation.js +41 -0
  719. package/dist/accessi-module/security/accessiValidation.js.map +1 -0
  720. package/dist/accessi-module/security/adminBootstrap.d.ts +8 -0
  721. package/dist/accessi-module/security/adminBootstrap.js +41 -0
  722. package/dist/accessi-module/security/adminBootstrap.js.map +1 -0
  723. package/dist/accessi-module/security/audit.d.ts +7 -0
  724. package/dist/accessi-module/security/audit.js +14 -0
  725. package/dist/accessi-module/security/audit.js.map +1 -0
  726. package/dist/accessi-module/security/authenticatedToken.d.ts +23 -3
  727. package/dist/accessi-module/security/authenticatedToken.js +45 -5
  728. package/dist/accessi-module/security/authenticatedToken.js.map +1 -1
  729. package/dist/accessi-module/security/consoleEntry.d.ts +63 -0
  730. package/dist/accessi-module/security/consoleEntry.js +200 -0
  731. package/dist/accessi-module/security/consoleEntry.js.map +1 -0
  732. package/dist/accessi-module/security/edgeRateLimit.d.ts +33 -0
  733. package/dist/accessi-module/security/edgeRateLimit.js +81 -0
  734. package/dist/accessi-module/security/edgeRateLimit.js.map +1 -0
  735. package/dist/accessi-module/security/emailConfiguration.d.ts +20 -0
  736. package/dist/accessi-module/security/emailConfiguration.js +41 -0
  737. package/dist/accessi-module/security/emailConfiguration.js.map +1 -0
  738. package/dist/accessi-module/security/jwks.d.ts +33 -0
  739. package/dist/accessi-module/security/jwks.js +83 -0
  740. package/dist/accessi-module/security/jwks.js.map +1 -0
  741. package/dist/accessi-module/security/jwksBootstrap.d.ts +15 -0
  742. package/dist/accessi-module/security/jwksBootstrap.js +44 -0
  743. package/dist/accessi-module/security/jwksBootstrap.js.map +1 -0
  744. package/dist/accessi-module/security/jwtTokenOptions.d.ts +22 -0
  745. package/dist/accessi-module/security/jwtTokenOptions.js +58 -0
  746. package/dist/accessi-module/security/jwtTokenOptions.js.map +1 -0
  747. package/dist/accessi-module/security/loginAs.d.ts +8 -0
  748. package/dist/accessi-module/security/loginAs.js +45 -0
  749. package/dist/accessi-module/security/loginAs.js.map +1 -0
  750. package/dist/accessi-module/security/passwordPolicy.d.ts +21 -0
  751. package/dist/accessi-module/security/passwordPolicy.js +71 -0
  752. package/dist/accessi-module/security/passwordPolicy.js.map +1 -0
  753. package/dist/accessi-module/security/passwordResetToken.d.ts +13 -3
  754. package/dist/accessi-module/security/passwordResetToken.js +13 -5
  755. package/dist/accessi-module/security/passwordResetToken.js.map +1 -1
  756. package/dist/accessi-module/security/publicAuthRateLimit.d.ts +10 -8
  757. package/dist/accessi-module/security/publicAuthRateLimit.js +61 -60
  758. package/dist/accessi-module/security/publicAuthRateLimit.js.map +1 -1
  759. package/dist/accessi-module/security/rateLimitStore.d.ts +34 -0
  760. package/dist/accessi-module/security/rateLimitStore.js +145 -0
  761. package/dist/accessi-module/security/rateLimitStore.js.map +1 -0
  762. package/dist/accessi-module/security/refreshTokenRotation.d.ts +80 -0
  763. package/dist/accessi-module/security/refreshTokenRotation.js +204 -0
  764. package/dist/accessi-module/security/refreshTokenRotation.js.map +1 -0
  765. package/dist/accessi-module/security/serviceTokenGuard.d.ts +27 -0
  766. package/dist/accessi-module/security/serviceTokenGuard.js +90 -0
  767. package/dist/accessi-module/security/serviceTokenGuard.js.map +1 -0
  768. package/dist/accessi-module/security/serviceTokenRateLimit.d.ts +9 -0
  769. package/dist/accessi-module/security/serviceTokenRateLimit.js +53 -0
  770. package/dist/accessi-module/security/serviceTokenRateLimit.js.map +1 -0
  771. package/dist/accessi-module/security/sessionRevocation.d.ts +67 -0
  772. package/dist/accessi-module/security/sessionRevocation.js +170 -0
  773. package/dist/accessi-module/security/sessionRevocation.js.map +1 -0
  774. package/dist/accessi-module/security/validateOptions.d.ts +19 -0
  775. package/dist/accessi-module/security/validateOptions.js +115 -0
  776. package/dist/accessi-module/security/validateOptions.js.map +1 -0
  777. package/dist/accessi-module/startupLog.d.ts +7 -0
  778. package/dist/accessi-module/startupLog.js +29 -0
  779. package/dist/accessi-module/startupLog.js.map +1 -0
  780. package/dist/allegati-module/AllegatiModule.d.ts +11 -0
  781. package/dist/allegati-module/AllegatiModule.js +11 -1
  782. package/dist/allegati-module/AllegatiModule.js.map +1 -1
  783. package/dist/allegati-module/Controllers/AllegatiController.d.ts +2 -1
  784. package/dist/allegati-module/Controllers/AllegatiController.js +23 -15
  785. package/dist/allegati-module/Controllers/AllegatiController.js.map +1 -1
  786. package/dist/allegati-module/Dtos/AllegatoDto.js.map +1 -1
  787. package/dist/allegati-module/Dtos/BaseResponse.js.map +1 -1
  788. package/dist/allegati-module/Dtos/UploadSingleFileRequest.js.map +1 -1
  789. package/dist/allegati-module/Dtos/index.js.map +1 -1
  790. package/dist/allegati-module/Dtos/responses/DownloadAllegatoResponseDto.js.map +1 -1
  791. package/dist/allegati-module/Dtos/responses/GetListResponse.js.map +1 -1
  792. package/dist/allegati-module/Dtos/responses/UploadAllegatoResponseDto.js.map +1 -1
  793. package/dist/allegati-module/Services/AllegatiService/AllegatiService.d.ts +10 -3
  794. package/dist/allegati-module/Services/AllegatiService/AllegatiService.js +150 -101
  795. package/dist/allegati-module/Services/AllegatiService/AllegatiService.js.map +1 -1
  796. package/dist/allegati-module/index.js +2 -2
  797. package/dist/allegati-module/index.js.map +1 -1
  798. package/dist/allegati-module/security/allegatiAuthorizationGuard.d.ts +14 -0
  799. package/dist/allegati-module/security/allegatiAuthorizationGuard.js +70 -0
  800. package/dist/allegati-module/security/allegatiAuthorizationGuard.js.map +1 -0
  801. package/dist/angular-components/aree-disponibili/aree-disponibili.js +1336 -0
  802. package/dist/angular-components/aree-disponibili/demo.html +232 -0
  803. package/dist/autobind.d.ts +10 -3
  804. package/dist/autobind.js +24 -9
  805. package/dist/autobind.js.map +1 -1
  806. package/dist/emilsoftware-utilities-2.0.0-dev.71.tgz +0 -0
  807. package/dist/firebird-compat.d.ts +41 -0
  808. package/dist/firebird-compat.js +54 -3
  809. package/dist/firebird-compat.js.map +1 -1
  810. package/dist/index.d.ts +2 -1
  811. package/dist/index.js +2 -1
  812. package/dist/index.js.map +1 -1
  813. package/dist/initEmilsoftwareModule.d.ts +11 -1
  814. package/dist/initEmilsoftwareModule.js +64 -14
  815. package/dist/initEmilsoftwareModule.js.map +1 -1
  816. package/dist/openapi/OpenApiConfig.d.ts +68 -0
  817. package/dist/openapi/OpenApiConfig.js +157 -0
  818. package/dist/openapi/OpenApiConfig.js.map +1 -0
  819. package/dist/openapi/OpenApiMerge.d.ts +15 -0
  820. package/dist/openapi/OpenApiMerge.js +119 -0
  821. package/dist/openapi/OpenApiMerge.js.map +1 -0
  822. package/dist/scripts/generateAccessiOpenApi.d.ts +1 -0
  823. package/dist/scripts/generateAccessiOpenApi.js +57 -0
  824. package/dist/scripts/generateAccessiOpenApi.js.map +1 -0
  825. package/dist/scripts/generateAccessiWiki.d.ts +1 -0
  826. package/dist/scripts/generateAccessiWiki.js +131 -0
  827. package/dist/scripts/generateAccessiWiki.js.map +1 -0
  828. package/dist/scripts/startAccessiService.d.ts +1 -0
  829. package/dist/scripts/startAccessiService.js +11 -0
  830. package/dist/scripts/startAccessiService.js.map +1 -0
  831. package/docs/accessi-openapi-fingerprint.json +192 -0
  832. package/docs/gateway-rate-limit.md +98 -0
  833. package/docs/standalone-service.md +176 -0
  834. package/integration-prompt.md +772 -0
  835. package/package.json +199 -82
  836. package/dist/swagger/SwaggerConfig.d.ts +0 -2
  837. package/dist/swagger/SwaggerConfig.js +0 -26
  838. package/dist/swagger/SwaggerConfig.js.map +0 -1
@@ -0,0 +1,77 @@
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
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.AccessiHttpExceptionFilter = void 0;
10
+ const common_1 = require("@nestjs/common");
11
+ const Utilities_1 = require("../../Utilities");
12
+ const Logger_1 = require("../../Logger");
13
+ /**
14
+ * Finalizes every exception raised before an Accessi controller can reply.
15
+ *
16
+ * This includes invalid JSON, validation-pipe errors and guard failures. The
17
+ * filter deliberately never return SQL, stack traces or provider diagnostics.
18
+ */
19
+ let AccessiHttpExceptionFilter = class AccessiHttpExceptionFilter {
20
+ catch(exception, host) {
21
+ var _a, _b;
22
+ const response = host.switchToHttp().getResponse();
23
+ if (response.headersSent)
24
+ return;
25
+ const status = exception instanceof common_1.HttpException
26
+ ? exception.getStatus()
27
+ : Utilities_1.RestUtilities.isDatabaseSchemaError(exception)
28
+ ? common_1.HttpStatus.SERVICE_UNAVAILABLE
29
+ : common_1.HttpStatus.INTERNAL_SERVER_ERROR;
30
+ const payload = this.getPayload(exception);
31
+ const invalidJson = status === common_1.HttpStatus.BAD_REQUEST && this.isInvalidJson(exception, payload);
32
+ const explicitMessage = typeof payload.message === 'string' ? payload.message : undefined;
33
+ const code = (_a = payload.code) !== null && _a !== void 0 ? _a : (Utilities_1.RestUtilities.isDatabaseSchemaError(exception)
34
+ ? 'ACCESSI_DATABASE_SCHEMA_OUTDATED'
35
+ : invalidJson
36
+ ? 'ACCESSI_INVALID_JSON'
37
+ : status === common_1.HttpStatus.BAD_REQUEST
38
+ ? 'ACCESSI_REQUEST_ERROR'
39
+ : status === common_1.HttpStatus.UNAUTHORIZED
40
+ ? 'ACCESSI_UNAUTHORIZED'
41
+ : status === common_1.HttpStatus.FORBIDDEN
42
+ ? 'ACCESSI_FORBIDDEN'
43
+ : 'ACCESSI_INTERNAL_ERROR');
44
+ const message = code === 'ACCESSI_VALIDATION_ERROR'
45
+ ? 'La richiesta contiene dati non validi.'
46
+ : code === 'ACCESSI_DATABASE_SCHEMA_OUTDATED'
47
+ ? 'Lo schema del database Accessi non e aggiornato. Eseguire la migrazione database e riprovare.'
48
+ : invalidJson
49
+ ? 'Il corpo della richiesta non contiene JSON valido.'
50
+ : explicitMessage !== null && explicitMessage !== void 0 ? explicitMessage : (status === common_1.HttpStatus.UNAUTHORIZED
51
+ ? 'Autenticazione non valida o scaduta.'
52
+ : status === common_1.HttpStatus.FORBIDDEN
53
+ ? 'Operazione non autorizzata.'
54
+ : status >= common_1.HttpStatus.INTERNAL_SERVER_ERROR
55
+ ? 'Errore interno del modulo Accessi.'
56
+ : 'Richiesta non valida.');
57
+ const stack = exception instanceof Error ? exception.stack : undefined;
58
+ new Logger_1.Logger('[ACCESSI-EXCEPTION]').error(`HTTP ${status} ${code}: ${exception instanceof Error ? exception.message : String(exception)}`, ...(stack ? [stack] : []));
59
+ response.status(status).json(Object.assign({ severity: 'error', status, statusCode: Utilities_1.StatusCode.Error, code, error: code, message }, (((_b = payload.details) === null || _b === void 0 ? void 0 : _b.length) ? { details: payload.details } : {})));
60
+ }
61
+ getPayload(exception) {
62
+ if (!(exception instanceof common_1.HttpException))
63
+ return {};
64
+ const response = exception.getResponse();
65
+ return typeof response === 'string' ? { message: response } : response;
66
+ }
67
+ isInvalidJson(exception, payload) {
68
+ const message = exception instanceof Error ? exception.message : payload.message;
69
+ const text = Array.isArray(message) ? message.join(' ') : String(message !== null && message !== void 0 ? message : '');
70
+ return /json|unexpected token|expected property name|unterminated string/i.test(text);
71
+ }
72
+ };
73
+ exports.AccessiHttpExceptionFilter = AccessiHttpExceptionFilter;
74
+ exports.AccessiHttpExceptionFilter = AccessiHttpExceptionFilter = __decorate([
75
+ (0, common_1.Catch)()
76
+ ], AccessiHttpExceptionFilter);
77
+ //# sourceMappingURL=AccessiHttpExceptionFilter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AccessiHttpExceptionFilter.js","sourceRoot":"","sources":["../../../src/accessi-module/security/AccessiHttpExceptionFilter.ts"],"names":[],"mappings":"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","sourcesContent":["import { ArgumentsHost, Catch, ExceptionFilter, HttpException, HttpStatus } from '@nestjs/common';\nimport { Response } from 'express';\nimport { RestUtilities, StatusCode } from '../../Utilities';\nimport { Logger } from '../../Logger';\n\ntype ExceptionPayload = {\n code?: string;\n error?: string;\n message?: string | string[];\n details?: string[];\n};\n\n/**\n * Finalizes every exception raised before an Accessi controller can reply.\n *\n * This includes invalid JSON, validation-pipe errors and guard failures. The\n * filter deliberately never return SQL, stack traces or provider diagnostics.\n */\n@Catch()\nexport class AccessiHttpExceptionFilter implements ExceptionFilter {\n catch(exception: unknown, host: ArgumentsHost): void {\n const response = host.switchToHttp().getResponse<Response>();\n if (response.headersSent) return;\n\n const status = exception instanceof HttpException\n ? exception.getStatus()\n : RestUtilities.isDatabaseSchemaError(exception)\n ? HttpStatus.SERVICE_UNAVAILABLE\n : HttpStatus.INTERNAL_SERVER_ERROR;\n const payload = this.getPayload(exception);\n const invalidJson = status === HttpStatus.BAD_REQUEST && this.isInvalidJson(exception, payload);\n const explicitMessage = typeof payload.message === 'string' ? payload.message : undefined;\n const code = payload.code\n ?? (RestUtilities.isDatabaseSchemaError(exception)\n ? 'ACCESSI_DATABASE_SCHEMA_OUTDATED'\n : invalidJson\n ? 'ACCESSI_INVALID_JSON'\n : status === HttpStatus.BAD_REQUEST\n ? 'ACCESSI_REQUEST_ERROR'\n : status === HttpStatus.UNAUTHORIZED\n ? 'ACCESSI_UNAUTHORIZED'\n : status === HttpStatus.FORBIDDEN\n ? 'ACCESSI_FORBIDDEN'\n : 'ACCESSI_INTERNAL_ERROR');\n\n const message = code === 'ACCESSI_VALIDATION_ERROR'\n ? 'La richiesta contiene dati non validi.'\n : code === 'ACCESSI_DATABASE_SCHEMA_OUTDATED'\n ? 'Lo schema del database Accessi non e aggiornato. Eseguire la migrazione database e riprovare.'\n : invalidJson\n ? 'Il corpo della richiesta non contiene JSON valido.'\n : explicitMessage ?? (status === HttpStatus.UNAUTHORIZED\n ? 'Autenticazione non valida o scaduta.'\n : status === HttpStatus.FORBIDDEN\n ? 'Operazione non autorizzata.'\n : status >= HttpStatus.INTERNAL_SERVER_ERROR\n ? 'Errore interno del modulo Accessi.'\n : 'Richiesta non valida.');\n\n const stack = exception instanceof Error ? exception.stack : undefined;\n new Logger('[ACCESSI-EXCEPTION]').error(\n `HTTP ${status} ${code}: ${exception instanceof Error ? exception.message : String(exception)}`,\n ...(stack ? [stack] : [])\n );\n\n response.status(status).json({\n severity: 'error',\n status,\n statusCode: StatusCode.Error,\n code,\n error: code,\n message,\n ...(payload.details?.length ? { details: payload.details } : {}),\n });\n }\n\n private getPayload(exception: unknown): ExceptionPayload {\n if (!(exception instanceof HttpException)) return {};\n const response = exception.getResponse();\n return typeof response === 'string' ? { message: response } : response as ExceptionPayload;\n }\n\n private isInvalidJson(exception: unknown, payload: ExceptionPayload): boolean {\n const message = exception instanceof Error ? exception.message : payload.message;\n const text = Array.isArray(message) ? message.join(' ') : String(message ?? '');\n return /json|unexpected token|expected property name|unterminated string/i.test(text);\n }\n}\n"]}
@@ -1,17 +1,63 @@
1
1
  import { Request } from 'express';
2
+ /** Profilo autorizzativo normalizzato estratto dal middleware Accessi. */
2
3
  export interface AuthenticatedAccessiUser {
3
4
  codiceUtente: number;
4
5
  email?: string;
5
6
  flagSuper: boolean;
6
- flagAdminConfigurator: boolean;
7
+ flagAdmin: boolean;
7
8
  }
9
+ /**
10
+ * Estrae l'utente gia verificato da `authorizeAccessi` o `JwtSimpleGuard`.
11
+ * Non usare questa funzione come autenticazione: se il middleware non e stato applicato genera 401.
12
+ */
8
13
  export declare function getAuthenticatedAccessiUser(req: Request): AuthenticatedAccessiUser;
14
+ /** Impone il flag superutente: gestione utenti e dei loro grant. */
9
15
  export declare function ensureSuperUser(user: AuthenticatedAccessiUser, message?: string): void;
16
+ /** Impone il flag admin: catalogo (menu, gruppi, tipi), token di servizio e provider SSO. */
17
+ export declare function ensureAdmin(user: AuthenticatedAccessiUser, message?: string): void;
18
+ /**
19
+ * Gestione utenti e assegnazioni: consentita a superutenti e admin.
20
+ * `flagAdmin` non conferisce abilitazioni, ma abilita la console completa.
21
+ */
22
+ export declare function ensureUserManagement(user: AuthenticatedAccessiUser, message?: string): void;
23
+ /**
24
+ * Rango di un utente Accessi: 0 utente comune, 1 superutente, 2 admin.
25
+ * La gerarchia e' ADMIN > SUPER: un attore puo' gestire solo utenti di rango
26
+ * pari o inferiore, quindi un superutente non puo' toccare un admin.
27
+ */
28
+ export declare function accessiUserRank(user: {
29
+ flagSuper?: boolean;
30
+ flagAdmin?: boolean;
31
+ }): number;
32
+ /**
33
+ * Impone che l'attore possa gestire il target: rango attore >= rango target.
34
+ * Un superutente (1) gestisce utenti comuni e altri superutenti, ma non admin (2).
35
+ */
36
+ export declare function ensureCanManageTargetUser(actor: AuthenticatedAccessiUser, target: {
37
+ flagSuper?: boolean;
38
+ flagAdmin?: boolean;
39
+ }, message?: string): void;
40
+ /**
41
+ * Limita la modifica dei flag di privilegio in base al ruolo dell'attore:
42
+ * un admin gestisce sia `flagAdmin` sia `flagSuper`; un superutente senza
43
+ * `flagAdmin` gestisce solo `flagSuper`.
44
+ */
45
+ export declare function ensurePrivilegeFlagChanges(user: AuthenticatedAccessiUser, changes: {
46
+ flagSuper?: unknown;
47
+ flagAdmin?: unknown;
48
+ }): void;
49
+ /** Accesso alla console: superutenti e admin. */
50
+ export declare function ensureConsoleAccess(user: AuthenticatedAccessiUser, message?: string): void;
51
+ /** Permette l'operazione al proprietario della risorsa o a superutenti/admin. */
10
52
  export declare function ensureSelfOrSuperUser(user: AuthenticatedAccessiUser, targetUserCode: number, message?: string): void;
53
+ /** Riconosce i campi che non possono essere aggiornati da un utente sul proprio profilo. */
11
54
  export declare function hasPrivilegedUserChanges(user: {
12
55
  statoRegistrazione?: unknown;
13
56
  flagSuper?: unknown;
14
- flagAdminConfigurator?: unknown;
57
+ flagAdmin?: unknown;
58
+ passwordLoginEnabled?: unknown;
59
+ passwordlessLoginEnabled?: unknown;
60
+ flagDueFattori?: unknown;
15
61
  roles?: unknown;
16
62
  permissions?: unknown;
17
63
  }): boolean;
@@ -2,42 +2,118 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.getAuthenticatedAccessiUser = getAuthenticatedAccessiUser;
4
4
  exports.ensureSuperUser = ensureSuperUser;
5
+ exports.ensureAdmin = ensureAdmin;
6
+ exports.ensureUserManagement = ensureUserManagement;
7
+ exports.accessiUserRank = accessiUserRank;
8
+ exports.ensureCanManageTargetUser = ensureCanManageTargetUser;
9
+ exports.ensurePrivilegeFlagChanges = ensurePrivilegeFlagChanges;
10
+ exports.ensureConsoleAccess = ensureConsoleAccess;
5
11
  exports.ensureSelfOrSuperUser = ensureSelfOrSuperUser;
6
12
  exports.hasPrivilegedUserChanges = hasPrivilegedUserChanges;
7
13
  const common_1 = require("@nestjs/common");
8
14
  function normalizeBooleanFlag(value) {
9
15
  return value === true || value === 1 || value === '1';
10
16
  }
17
+ /**
18
+ * Estrae l'utente gia verificato da `authorizeAccessi` o `JwtSimpleGuard`.
19
+ * Non usare questa funzione come autenticazione: se il middleware non e stato applicato genera 401.
20
+ */
11
21
  function getAuthenticatedAccessiUser(req) {
12
- var _a, _b, _c;
13
- const payload = req === null || req === void 0 ? void 0 : req.user;
14
- const utente = (_c = (_a = payload === null || payload === void 0 ? void 0 : payload.utente) !== null && _a !== void 0 ? _a : (_b = payload === null || payload === void 0 ? void 0 : payload.userData) === null || _b === void 0 ? void 0 : _b.utente) !== null && _c !== void 0 ? _c : payload;
22
+ var _a, _b;
23
+ const payload = req.user;
24
+ const payloadRecord = payload && typeof payload === 'object' ? payload : undefined;
25
+ const userData = (payloadRecord === null || payloadRecord === void 0 ? void 0 : payloadRecord.userData) && typeof payloadRecord.userData === 'object'
26
+ ? payloadRecord.userData
27
+ : undefined;
28
+ const rawUser = (_b = (_a = payloadRecord === null || payloadRecord === void 0 ? void 0 : payloadRecord.utente) !== null && _a !== void 0 ? _a : userData === null || userData === void 0 ? void 0 : userData.utente) !== null && _b !== void 0 ? _b : payloadRecord;
29
+ const utente = rawUser && typeof rawUser === 'object' ? rawUser : undefined;
15
30
  const codiceUtente = Number(utente === null || utente === void 0 ? void 0 : utente.codiceUtente);
16
- if (!codiceUtente) {
31
+ if (!Number.isSafeInteger(codiceUtente) || codiceUtente <= 0) {
17
32
  throw new common_1.UnauthorizedException('Utente non autenticato.');
18
33
  }
19
34
  return {
20
35
  codiceUtente,
21
36
  email: typeof (utente === null || utente === void 0 ? void 0 : utente.email) === 'string' ? utente.email : undefined,
22
37
  flagSuper: normalizeBooleanFlag(utente === null || utente === void 0 ? void 0 : utente.flagSuper),
23
- flagAdminConfigurator: normalizeBooleanFlag(utente === null || utente === void 0 ? void 0 : utente.flagAdminConfigurator),
38
+ flagAdmin: normalizeBooleanFlag(utente === null || utente === void 0 ? void 0 : utente.flagAdmin),
24
39
  };
25
40
  }
26
- function ensureSuperUser(user, message = 'Operazione riservata agli amministratori.') {
41
+ /** Impone il flag superutente: gestione utenti e dei loro grant. */
42
+ function ensureSuperUser(user, message = 'Operazione riservata ai superutenti.') {
27
43
  if (!user.flagSuper) {
28
44
  throw new common_1.ForbiddenException(message);
29
45
  }
30
46
  }
47
+ /** Impone il flag admin: catalogo (menu, gruppi, tipi), token di servizio e provider SSO. */
48
+ function ensureAdmin(user, message = 'Operazione riservata agli amministratori.') {
49
+ if (!user.flagAdmin) {
50
+ throw new common_1.ForbiddenException(message);
51
+ }
52
+ }
53
+ /**
54
+ * Gestione utenti e assegnazioni: consentita a superutenti e admin.
55
+ * `flagAdmin` non conferisce abilitazioni, ma abilita la console completa.
56
+ */
57
+ function ensureUserManagement(user, message = 'Operazione riservata agli amministratori degli utenti.') {
58
+ if (!user.flagSuper && !user.flagAdmin) {
59
+ throw new common_1.ForbiddenException(message);
60
+ }
61
+ }
62
+ /**
63
+ * Rango di un utente Accessi: 0 utente comune, 1 superutente, 2 admin.
64
+ * La gerarchia e' ADMIN > SUPER: un attore puo' gestire solo utenti di rango
65
+ * pari o inferiore, quindi un superutente non puo' toccare un admin.
66
+ */
67
+ function accessiUserRank(user) {
68
+ if (user.flagAdmin)
69
+ return 2;
70
+ if (user.flagSuper)
71
+ return 1;
72
+ return 0;
73
+ }
74
+ /**
75
+ * Impone che l'attore possa gestire il target: rango attore >= rango target.
76
+ * Un superutente (1) gestisce utenti comuni e altri superutenti, ma non admin (2).
77
+ */
78
+ function ensureCanManageTargetUser(actor, target, message = 'Non puoi gestire un utente di rango superiore al tuo.') {
79
+ if (accessiUserRank(actor) < accessiUserRank(target)) {
80
+ throw new common_1.ForbiddenException(message);
81
+ }
82
+ }
83
+ /**
84
+ * Limita la modifica dei flag di privilegio in base al ruolo dell'attore:
85
+ * un admin gestisce sia `flagAdmin` sia `flagSuper`; un superutente senza
86
+ * `flagAdmin` gestisce solo `flagSuper`.
87
+ */
88
+ function ensurePrivilegeFlagChanges(user, changes) {
89
+ if (changes.flagAdmin !== undefined && !user.flagAdmin) {
90
+ throw new common_1.ForbiddenException('Solo un admin puo modificare il flag admin.');
91
+ }
92
+ if (changes.flagSuper !== undefined && !user.flagSuper && !user.flagAdmin) {
93
+ throw new common_1.ForbiddenException('Solo un superutente o un admin puo modificare il flag superutente.');
94
+ }
95
+ }
96
+ /** Accesso alla console: superutenti e admin. */
97
+ function ensureConsoleAccess(user, message = 'La console richiede un superutente o un admin Accessi.') {
98
+ if (!user.flagSuper && !user.flagAdmin) {
99
+ throw new common_1.ForbiddenException(message);
100
+ }
101
+ }
102
+ /** Permette l'operazione al proprietario della risorsa o a superutenti/admin. */
31
103
  function ensureSelfOrSuperUser(user, targetUserCode, message = 'Operazione non autorizzata su questo utente.') {
32
- if (user.flagSuper || user.codiceUtente === targetUserCode) {
104
+ if (user.flagSuper || user.flagAdmin || user.codiceUtente === targetUserCode) {
33
105
  return;
34
106
  }
35
107
  throw new common_1.ForbiddenException(message);
36
108
  }
109
+ /** Riconosce i campi che non possono essere aggiornati da un utente sul proprio profilo. */
37
110
  function hasPrivilegedUserChanges(user) {
38
111
  return (user.statoRegistrazione !== undefined ||
39
112
  user.flagSuper !== undefined ||
40
- user.flagAdminConfigurator !== undefined ||
113
+ user.flagAdmin !== undefined ||
114
+ user.passwordLoginEnabled !== undefined ||
115
+ user.passwordlessLoginEnabled !== undefined ||
116
+ user.flagDueFattori !== undefined ||
41
117
  user.roles !== undefined ||
42
118
  user.permissions !== undefined);
43
119
  }
@@ -1 +1 @@
1
- {"version":3,"file":"accessControl.js","sourceRoot":"","sources":["../../../src/accessi-module/security/accessControl.ts"],"names":[],"mappings":";;AAcA,kEAeC;AAED,0CAOC;AAED,sDAUC;AAED,4DAcC;AAlED,2CAA2E;AAU3E,SAAS,oBAAoB,CAAC,KAAc;IAC1C,OAAO,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,CAAC,IAAI,KAAK,KAAK,GAAG,CAAC;AACxD,CAAC;AAED,SAAgB,2BAA2B,CAAC,GAAY;;IACtD,MAAM,OAAO,GAAI,GAAW,aAAX,GAAG,uBAAH,GAAG,CAAU,IAAI,CAAC;IACnC,MAAM,MAAM,GAAG,MAAA,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,MAAM,mCAAI,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,QAAQ,0CAAE,MAAM,mCAAI,OAAO,CAAC;IACvE,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,YAAY,CAAC,CAAC;IAElD,IAAI,CAAC,YAAY,EAAE,CAAC;QAClB,MAAM,IAAI,8BAAqB,CAAC,yBAAyB,CAAC,CAAC;IAC7D,CAAC;IAED,OAAO;QACL,YAAY;QACZ,KAAK,EAAE,OAAO,CAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,KAAK,CAAA,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS;QACnE,SAAS,EAAE,oBAAoB,CAAC,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,SAAS,CAAC;QAClD,qBAAqB,EAAE,oBAAoB,CAAC,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,qBAAqB,CAAC;KAC3E,CAAC;AACJ,CAAC;AAED,SAAgB,eAAe,CAC7B,IAA8B,EAC9B,OAAO,GAAG,2CAA2C;IAErD,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;QACpB,MAAM,IAAI,2BAAkB,CAAC,OAAO,CAAC,CAAC;IACxC,CAAC;AACH,CAAC;AAED,SAAgB,qBAAqB,CACnC,IAA8B,EAC9B,cAAsB,EACtB,OAAO,GAAG,8CAA8C;IAExD,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,YAAY,KAAK,cAAc,EAAE,CAAC;QAC3D,OAAO;IACT,CAAC;IAED,MAAM,IAAI,2BAAkB,CAAC,OAAO,CAAC,CAAC;AACxC,CAAC;AAED,SAAgB,wBAAwB,CAAC,IAMxC;IACC,OAAO,CACL,IAAI,CAAC,kBAAkB,KAAK,SAAS;QACrC,IAAI,CAAC,SAAS,KAAK,SAAS;QAC5B,IAAI,CAAC,qBAAqB,KAAK,SAAS;QACxC,IAAI,CAAC,KAAK,KAAK,SAAS;QACxB,IAAI,CAAC,WAAW,KAAK,SAAS,CAC/B,CAAC;AACJ,CAAC","sourcesContent":["import { ForbiddenException, UnauthorizedException } from '@nestjs/common';\r\nimport { Request } from 'express';\r\n\r\nexport interface AuthenticatedAccessiUser {\r\n codiceUtente: number;\r\n email?: string;\r\n flagSuper: boolean;\r\n flagAdminConfigurator: boolean;\r\n}\r\n\r\nfunction normalizeBooleanFlag(value: unknown): boolean {\r\n return value === true || value === 1 || value === '1';\r\n}\r\n\r\nexport function getAuthenticatedAccessiUser(req: Request): AuthenticatedAccessiUser {\r\n const payload = (req as any)?.user;\r\n const utente = payload?.utente ?? payload?.userData?.utente ?? payload;\r\n const codiceUtente = Number(utente?.codiceUtente);\r\n\r\n if (!codiceUtente) {\r\n throw new UnauthorizedException('Utente non autenticato.');\r\n }\r\n\r\n return {\r\n codiceUtente,\r\n email: typeof utente?.email === 'string' ? utente.email : undefined,\r\n flagSuper: normalizeBooleanFlag(utente?.flagSuper),\r\n flagAdminConfigurator: normalizeBooleanFlag(utente?.flagAdminConfigurator),\r\n };\r\n}\r\n\r\nexport function ensureSuperUser(\r\n user: AuthenticatedAccessiUser,\r\n message = 'Operazione riservata agli amministratori.',\r\n): void {\r\n if (!user.flagSuper) {\r\n throw new ForbiddenException(message);\r\n }\r\n}\r\n\r\nexport function ensureSelfOrSuperUser(\r\n user: AuthenticatedAccessiUser,\r\n targetUserCode: number,\r\n message = 'Operazione non autorizzata su questo utente.',\r\n): void {\r\n if (user.flagSuper || user.codiceUtente === targetUserCode) {\r\n return;\r\n }\r\n\r\n throw new ForbiddenException(message);\r\n}\r\n\r\nexport function hasPrivilegedUserChanges(user: {\r\n statoRegistrazione?: unknown;\r\n flagSuper?: unknown;\r\n flagAdminConfigurator?: unknown;\r\n roles?: unknown;\r\n permissions?: unknown;\r\n}): boolean {\r\n return (\r\n user.statoRegistrazione !== undefined ||\r\n user.flagSuper !== undefined ||\r\n user.flagAdminConfigurator !== undefined ||\r\n user.roles !== undefined ||\r\n user.permissions !== undefined\r\n );\r\n}\r\n"]}
1
+ {"version":3,"file":"accessControl.js","sourceRoot":"","sources":["../../../src/accessi-module/security/accessControl.ts"],"names":[],"mappings":"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","sourcesContent":["import { ForbiddenException, UnauthorizedException } from '@nestjs/common';\nimport { Request } from 'express';\n\n/** Profilo autorizzativo normalizzato estratto dal middleware Accessi. */\nexport interface AuthenticatedAccessiUser {\n codiceUtente: number;\n email?: string;\n flagSuper: boolean;\n flagAdmin: boolean;\n}\n\nfunction normalizeBooleanFlag(value: unknown): boolean {\n return value === true || value === 1 || value === '1';\n}\n\n/**\n * Estrae l'utente gia verificato da `authorizeAccessi` o `JwtSimpleGuard`.\n * Non usare questa funzione come autenticazione: se il middleware non e stato applicato genera 401.\n */\nexport function getAuthenticatedAccessiUser(req: Request): AuthenticatedAccessiUser {\n const payload = (req as Request & { user?: unknown }).user;\n const payloadRecord = payload && typeof payload === 'object' ? payload as Record<string, unknown> : undefined;\n const userData = payloadRecord?.userData && typeof payloadRecord.userData === 'object'\n ? payloadRecord.userData as Record<string, unknown>\n : undefined;\n const rawUser = payloadRecord?.utente ?? userData?.utente ?? payloadRecord;\n const utente = rawUser && typeof rawUser === 'object' ? rawUser as Record<string, unknown> : undefined;\n const codiceUtente = Number(utente?.codiceUtente);\n\n if (!Number.isSafeInteger(codiceUtente) || codiceUtente <= 0) {\n throw new UnauthorizedException('Utente non autenticato.');\n }\n\n return {\n codiceUtente,\n email: typeof utente?.email === 'string' ? utente.email : undefined,\n flagSuper: normalizeBooleanFlag(utente?.flagSuper),\n flagAdmin: normalizeBooleanFlag(utente?.flagAdmin),\n };\n}\n\n/** Impone il flag superutente: gestione utenti e dei loro grant. */\nexport function ensureSuperUser(\n user: AuthenticatedAccessiUser,\n message = 'Operazione riservata ai superutenti.',\n): void {\n if (!user.flagSuper) {\n throw new ForbiddenException(message);\n }\n}\n\n/** Impone il flag admin: catalogo (menu, gruppi, tipi), token di servizio e provider SSO. */\nexport function ensureAdmin(\n user: AuthenticatedAccessiUser,\n message = 'Operazione riservata agli amministratori.',\n): void {\n if (!user.flagAdmin) {\n throw new ForbiddenException(message);\n }\n}\n\n/**\n * Gestione utenti e assegnazioni: consentita a superutenti e admin.\n * `flagAdmin` non conferisce abilitazioni, ma abilita la console completa.\n */\nexport function ensureUserManagement(\n user: AuthenticatedAccessiUser,\n message = 'Operazione riservata agli amministratori degli utenti.',\n): void {\n if (!user.flagSuper && !user.flagAdmin) {\n throw new ForbiddenException(message);\n }\n}\n\n/**\n * Rango di un utente Accessi: 0 utente comune, 1 superutente, 2 admin.\n * La gerarchia e' ADMIN > SUPER: un attore puo' gestire solo utenti di rango\n * pari o inferiore, quindi un superutente non puo' toccare un admin.\n */\nexport function accessiUserRank(user: { flagSuper?: boolean; flagAdmin?: boolean }): number {\n if (user.flagAdmin) return 2;\n if (user.flagSuper) return 1;\n return 0;\n}\n\n/**\n * Impone che l'attore possa gestire il target: rango attore >= rango target.\n * Un superutente (1) gestisce utenti comuni e altri superutenti, ma non admin (2).\n */\nexport function ensureCanManageTargetUser(\n actor: AuthenticatedAccessiUser,\n target: { flagSuper?: boolean; flagAdmin?: boolean },\n message = 'Non puoi gestire un utente di rango superiore al tuo.',\n): void {\n if (accessiUserRank(actor) < accessiUserRank(target)) {\n throw new ForbiddenException(message);\n }\n}\n\n/**\n * Limita la modifica dei flag di privilegio in base al ruolo dell'attore:\n * un admin gestisce sia `flagAdmin` sia `flagSuper`; un superutente senza\n * `flagAdmin` gestisce solo `flagSuper`.\n */\nexport function ensurePrivilegeFlagChanges(\n user: AuthenticatedAccessiUser,\n changes: { flagSuper?: unknown; flagAdmin?: unknown },\n): void {\n if (changes.flagAdmin !== undefined && !user.flagAdmin) {\n throw new ForbiddenException('Solo un admin puo modificare il flag admin.');\n }\n if (changes.flagSuper !== undefined && !user.flagSuper && !user.flagAdmin) {\n throw new ForbiddenException('Solo un superutente o un admin puo modificare il flag superutente.');\n }\n}\n\n/** Accesso alla console: superutenti e admin. */\nexport function ensureConsoleAccess(\n user: AuthenticatedAccessiUser,\n message = 'La console richiede un superutente o un admin Accessi.',\n): void {\n if (!user.flagSuper && !user.flagAdmin) {\n throw new ForbiddenException(message);\n }\n}\n\n/** Permette l'operazione al proprietario della risorsa o a superutenti/admin. */\nexport function ensureSelfOrSuperUser(\n user: AuthenticatedAccessiUser,\n targetUserCode: number,\n message = 'Operazione non autorizzata su questo utente.',\n): void {\n if (user.flagSuper || user.flagAdmin || user.codiceUtente === targetUserCode) {\n return;\n }\n\n throw new ForbiddenException(message);\n}\n\n/** Riconosce i campi che non possono essere aggiornati da un utente sul proprio profilo. */\nexport function hasPrivilegedUserChanges(user: {\n statoRegistrazione?: unknown;\n flagSuper?: unknown;\n flagAdmin?: unknown;\n passwordLoginEnabled?: unknown;\n passwordlessLoginEnabled?: unknown;\n flagDueFattori?: unknown;\n roles?: unknown;\n permissions?: unknown;\n}): boolean {\n return (\n user.statoRegistrazione !== undefined ||\n user.flagSuper !== undefined ||\n user.flagAdmin !== undefined ||\n user.passwordLoginEnabled !== undefined ||\n user.passwordlessLoginEnabled !== undefined ||\n user.flagDueFattori !== undefined ||\n user.roles !== undefined ||\n user.permissions !== undefined\n );\n}\n"]}
@@ -0,0 +1,47 @@
1
+ import type { AccessiOptions } from '../AccessiModule';
2
+ /**
3
+ * Revoca dei singoli access token tramite `jti`.
4
+ *
5
+ * A differenza della revoca per utente, questa annulla un solo token senza
6
+ * toccare le altre sessioni. La chiave scade al massimo a `exp` del token, cosi
7
+ * la memoria usata resta limitata alla durata dei token emessi.
8
+ */
9
+ export interface AccessTokenRevocationStore {
10
+ revoke(jti: string, expiresAtMs: number): Promise<void>;
11
+ isRevoked(jti: string): Promise<boolean>;
12
+ /** Health check opzionale per readiness del servizio. */
13
+ healthCheck?(): Promise<boolean>;
14
+ }
15
+ export interface AccessTokenRevocationOptions {
16
+ /** Default: disabilitata se non viene fornito uno store. */
17
+ enabled?: boolean;
18
+ /** Store condiviso (es. Redis) per revocare i token tra istanze. */
19
+ store?: AccessTokenRevocationStore;
20
+ /** TTL di default quando `exp` non e noto. Default: 24 ore. */
21
+ ttlMs?: number;
22
+ }
23
+ export interface MemoryAccessTokenRevocationStore extends AccessTokenRevocationStore {
24
+ clear(): void;
25
+ }
26
+ export declare function createMemoryAccessTokenRevocationStore(): MemoryAccessTokenRevocationStore;
27
+ export interface AccessTokenRevocationRedisClient {
28
+ eval(script: string, numKeys: number, ...args: Array<string | number>): Promise<unknown>;
29
+ }
30
+ export interface RedisAccessTokenRevocationStoreOptions {
31
+ client: AccessTokenRevocationRedisClient;
32
+ /** Default: `accessi:revoked-token:`. */
33
+ keyPrefix?: string;
34
+ /** Default: 24 ore. */
35
+ ttlMs?: number;
36
+ }
37
+ /** Store Redis per la revoca dei singoli access token. */
38
+ export declare function createRedisAccessTokenRevocationStore(options: RedisAccessTokenRevocationStoreOptions): AccessTokenRevocationStore;
39
+ export declare function getAccessTokenRevocationStore(options: AccessiOptions): AccessTokenRevocationStore | undefined;
40
+ /** True se il `jti` del token risulta revocato. */
41
+ export declare function isAccessiAccessTokenRevoked(options: AccessiOptions, payload: Record<string, unknown>): Promise<boolean>;
42
+ /** Revoca un singolo access token. Richiede uno store configurato. */
43
+ export declare function revokeAccessiAccessToken(options: AccessiOptions, jti: string, expiresAtMs?: number): Promise<void>;
44
+ /** Variante per i flussi applicativi: no-op se la revoca non e configurata. */
45
+ export declare function revokeAccessiAccessTokenIfConfigured(options: AccessiOptions, jti: string, expiresAtMs?: number): Promise<boolean>;
46
+ /** Solo per test: azzera lo store in memoria di default. */
47
+ export declare function clearDefaultAccessTokenRevocations(): void;
@@ -0,0 +1,146 @@
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
+ exports.createMemoryAccessTokenRevocationStore = createMemoryAccessTokenRevocationStore;
13
+ exports.createRedisAccessTokenRevocationStore = createRedisAccessTokenRevocationStore;
14
+ exports.getAccessTokenRevocationStore = getAccessTokenRevocationStore;
15
+ exports.isAccessiAccessTokenRevoked = isAccessiAccessTokenRevoked;
16
+ exports.revokeAccessiAccessToken = revokeAccessiAccessToken;
17
+ exports.revokeAccessiAccessTokenIfConfigured = revokeAccessiAccessTokenIfConfigured;
18
+ exports.clearDefaultAccessTokenRevocations = clearDefaultAccessTokenRevocations;
19
+ const REVOKE_SCRIPT = "if tonumber(ARGV[1]) > 0 then return redis.call('SET', KEYS[1], '1', 'PX', ARGV[1]) else return redis.call('SET', KEYS[1], '1') end";
20
+ const IS_REVOKED_SCRIPT = "return redis.call('EXISTS', KEYS[1])";
21
+ function createMemoryAccessTokenRevocationStore() {
22
+ const revoked = new Map();
23
+ const prune = (now) => {
24
+ for (const [jti, expiresAt] of revoked) {
25
+ if (expiresAt <= now)
26
+ revoked.delete(jti);
27
+ }
28
+ };
29
+ return {
30
+ revoke(jti, expiresAtMs) {
31
+ return __awaiter(this, void 0, void 0, function* () {
32
+ const now = Date.now();
33
+ prune(now);
34
+ revoked.set(jti, Math.max(expiresAtMs, now + 1));
35
+ });
36
+ },
37
+ isRevoked(jti) {
38
+ return __awaiter(this, void 0, void 0, function* () {
39
+ const expiresAt = revoked.get(jti);
40
+ if (expiresAt === undefined)
41
+ return false;
42
+ if (expiresAt <= Date.now()) {
43
+ revoked.delete(jti);
44
+ return false;
45
+ }
46
+ return true;
47
+ });
48
+ },
49
+ healthCheck() {
50
+ return __awaiter(this, void 0, void 0, function* () {
51
+ return true;
52
+ });
53
+ },
54
+ clear() {
55
+ revoked.clear();
56
+ },
57
+ };
58
+ }
59
+ /** Store Redis per la revoca dei singoli access token. */
60
+ function createRedisAccessTokenRevocationStore(options) {
61
+ var _a, _b;
62
+ if (!(options === null || options === void 0 ? void 0 : options.client) || typeof options.client.eval !== 'function') {
63
+ throw new Error('Redis access token revocation store: client.eval non configurato.');
64
+ }
65
+ const keyPrefix = ((_a = options.keyPrefix) !== null && _a !== void 0 ? _a : 'accessi:revoked-token:').replace(/:+$/, ':');
66
+ const ttlMs = Math.max(0, Math.trunc((_b = options.ttlMs) !== null && _b !== void 0 ? _b : 24 * 60 * 60 * 1000));
67
+ return {
68
+ revoke(jti, expiresAtMs) {
69
+ return __awaiter(this, void 0, void 0, function* () {
70
+ // Se il token e gia scaduto non serve conservare la revoca a lungo: una
71
+ // chiave senza TTL resterebbe per sempre. Il minimo di 1 ms la fa sparire
72
+ // subito, come nello store in memoria.
73
+ const ttl = Number.isFinite(expiresAtMs)
74
+ ? Math.max(1, Math.trunc(expiresAtMs - Date.now()))
75
+ : ttlMs;
76
+ yield options.client.eval(REVOKE_SCRIPT, 1, `${keyPrefix}${jti}`, ttl);
77
+ });
78
+ },
79
+ isRevoked(jti) {
80
+ return __awaiter(this, void 0, void 0, function* () {
81
+ const result = yield options.client.eval(IS_REVOKED_SCRIPT, 1, `${keyPrefix}${jti}`);
82
+ return Number(result) > 0;
83
+ });
84
+ },
85
+ healthCheck() {
86
+ return __awaiter(this, void 0, void 0, function* () {
87
+ try {
88
+ const result = yield options.client.eval("return redis.call('PING')", 0);
89
+ return String(result).toUpperCase() === 'PONG';
90
+ }
91
+ catch (_a) {
92
+ return false;
93
+ }
94
+ });
95
+ },
96
+ };
97
+ }
98
+ const defaultMemoryStore = createMemoryAccessTokenRevocationStore();
99
+ function getAccessTokenRevocationStore(options) {
100
+ var _a, _b, _c;
101
+ if (((_a = options.accessTokenRevocation) === null || _a === void 0 ? void 0 : _a.enabled) === false)
102
+ return undefined;
103
+ if ((_b = options.accessTokenRevocation) === null || _b === void 0 ? void 0 : _b.store)
104
+ return options.accessTokenRevocation.store;
105
+ return ((_c = options.accessTokenRevocation) === null || _c === void 0 ? void 0 : _c.enabled) === true ? defaultMemoryStore : undefined;
106
+ }
107
+ /** True se il `jti` del token risulta revocato. */
108
+ function isAccessiAccessTokenRevoked(options, payload) {
109
+ return __awaiter(this, void 0, void 0, function* () {
110
+ const store = getAccessTokenRevocationStore(options);
111
+ if (!store)
112
+ return false;
113
+ const jti = typeof payload.jti === 'string' ? payload.jti : undefined;
114
+ if (!jti)
115
+ return false;
116
+ return store.isRevoked(jti);
117
+ });
118
+ }
119
+ /** Revoca un singolo access token. Richiede uno store configurato. */
120
+ function revokeAccessiAccessToken(options, jti, expiresAtMs) {
121
+ return __awaiter(this, void 0, void 0, function* () {
122
+ var _a, _b;
123
+ const store = getAccessTokenRevocationStore(options);
124
+ if (!store)
125
+ throw new Error('Access token revocation store non configurato.');
126
+ if (typeof jti !== 'string' || jti.trim() === '') {
127
+ throw new Error('jti non valido.');
128
+ }
129
+ const ttlMs = Math.max(0, Math.trunc((_b = (_a = options.accessTokenRevocation) === null || _a === void 0 ? void 0 : _a.ttlMs) !== null && _b !== void 0 ? _b : 24 * 60 * 60 * 1000));
130
+ yield store.revoke(jti, expiresAtMs !== null && expiresAtMs !== void 0 ? expiresAtMs : Date.now() + ttlMs);
131
+ });
132
+ }
133
+ /** Variante per i flussi applicativi: no-op se la revoca non e configurata. */
134
+ function revokeAccessiAccessTokenIfConfigured(options, jti, expiresAtMs) {
135
+ return __awaiter(this, void 0, void 0, function* () {
136
+ if (!getAccessTokenRevocationStore(options))
137
+ return false;
138
+ yield revokeAccessiAccessToken(options, jti, expiresAtMs);
139
+ return true;
140
+ });
141
+ }
142
+ /** Solo per test: azzera lo store in memoria di default. */
143
+ function clearDefaultAccessTokenRevocations() {
144
+ defaultMemoryStore.clear();
145
+ }
146
+ //# sourceMappingURL=accessTokenRevocation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"accessTokenRevocation.js","sourceRoot":"","sources":["../../../src/accessi-module/security/accessTokenRevocation.ts"],"names":[],"mappings":"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","sourcesContent":["import type { AccessiOptions } from '../AccessiModule';\n\n/**\n * Revoca dei singoli access token tramite `jti`.\n *\n * A differenza della revoca per utente, questa annulla un solo token senza\n * toccare le altre sessioni. La chiave scade al massimo a `exp` del token, cosi\n * la memoria usata resta limitata alla durata dei token emessi.\n */\nexport interface AccessTokenRevocationStore {\n revoke(jti: string, expiresAtMs: number): Promise<void>;\n isRevoked(jti: string): Promise<boolean>;\n /** Health check opzionale per readiness del servizio. */\n healthCheck?(): Promise<boolean>;\n}\n\nexport interface AccessTokenRevocationOptions {\n /** Default: disabilitata se non viene fornito uno store. */\n enabled?: boolean;\n /** Store condiviso (es. Redis) per revocare i token tra istanze. */\n store?: AccessTokenRevocationStore;\n /** TTL di default quando `exp` non e noto. Default: 24 ore. */\n ttlMs?: number;\n}\n\nexport interface MemoryAccessTokenRevocationStore extends AccessTokenRevocationStore {\n clear(): void;\n}\n\nconst REVOKE_SCRIPT =\n \"if tonumber(ARGV[1]) > 0 then return redis.call('SET', KEYS[1], '1', 'PX', ARGV[1]) else return redis.call('SET', KEYS[1], '1') end\";\nconst IS_REVOKED_SCRIPT = \"return redis.call('EXISTS', KEYS[1])\";\n\nexport function createMemoryAccessTokenRevocationStore(): MemoryAccessTokenRevocationStore {\n const revoked = new Map<string, number>();\n const prune = (now: number) => {\n for (const [jti, expiresAt] of revoked) {\n if (expiresAt <= now) revoked.delete(jti);\n }\n };\n return {\n async revoke(jti, expiresAtMs) {\n const now = Date.now();\n prune(now);\n revoked.set(jti, Math.max(expiresAtMs, now + 1));\n },\n async isRevoked(jti) {\n const expiresAt = revoked.get(jti);\n if (expiresAt === undefined) return false;\n if (expiresAt <= Date.now()) {\n revoked.delete(jti);\n return false;\n }\n return true;\n },\n async healthCheck() {\n return true;\n },\n clear() {\n revoked.clear();\n },\n };\n}\n\nexport interface AccessTokenRevocationRedisClient {\n eval(script: string, numKeys: number, ...args: Array<string | number>): Promise<unknown>;\n}\n\nexport interface RedisAccessTokenRevocationStoreOptions {\n client: AccessTokenRevocationRedisClient;\n /** Default: `accessi:revoked-token:`. */\n keyPrefix?: string;\n /** Default: 24 ore. */\n ttlMs?: number;\n}\n\n/** Store Redis per la revoca dei singoli access token. */\nexport function createRedisAccessTokenRevocationStore(\n options: RedisAccessTokenRevocationStoreOptions,\n): AccessTokenRevocationStore {\n if (!options?.client || typeof options.client.eval !== 'function') {\n throw new Error('Redis access token revocation store: client.eval non configurato.');\n }\n\n const keyPrefix = (options.keyPrefix ?? 'accessi:revoked-token:').replace(/:+$/, ':');\n const ttlMs = Math.max(0, Math.trunc(options.ttlMs ?? 24 * 60 * 60 * 1000));\n\n return {\n async revoke(jti, expiresAtMs) {\n // Se il token e gia scaduto non serve conservare la revoca a lungo: una\n // chiave senza TTL resterebbe per sempre. Il minimo di 1 ms la fa sparire\n // subito, come nello store in memoria.\n const ttl = Number.isFinite(expiresAtMs)\n ? Math.max(1, Math.trunc(expiresAtMs - Date.now()))\n : ttlMs;\n await options.client.eval(REVOKE_SCRIPT, 1, `${keyPrefix}${jti}`, ttl);\n },\n\n async isRevoked(jti) {\n const result = await options.client.eval(IS_REVOKED_SCRIPT, 1, `${keyPrefix}${jti}`);\n return Number(result) > 0;\n },\n\n async healthCheck() {\n try {\n const result = await options.client.eval(\"return redis.call('PING')\", 0);\n return String(result).toUpperCase() === 'PONG';\n } catch {\n return false;\n }\n },\n };\n}\n\nconst defaultMemoryStore = createMemoryAccessTokenRevocationStore();\n\nexport function getAccessTokenRevocationStore(\n options: AccessiOptions,\n): AccessTokenRevocationStore | undefined {\n if (options.accessTokenRevocation?.enabled === false) return undefined;\n if (options.accessTokenRevocation?.store) return options.accessTokenRevocation.store;\n return options.accessTokenRevocation?.enabled === true ? defaultMemoryStore : undefined;\n}\n\n/** True se il `jti` del token risulta revocato. */\nexport async function isAccessiAccessTokenRevoked(\n options: AccessiOptions,\n payload: Record<string, unknown>,\n): Promise<boolean> {\n const store = getAccessTokenRevocationStore(options);\n if (!store) return false;\n const jti = typeof payload.jti === 'string' ? payload.jti : undefined;\n if (!jti) return false;\n return store.isRevoked(jti);\n}\n\n/** Revoca un singolo access token. Richiede uno store configurato. */\nexport async function revokeAccessiAccessToken(\n options: AccessiOptions,\n jti: string,\n expiresAtMs?: number,\n): Promise<void> {\n const store = getAccessTokenRevocationStore(options);\n if (!store) throw new Error('Access token revocation store non configurato.');\n if (typeof jti !== 'string' || jti.trim() === '') {\n throw new Error('jti non valido.');\n }\n const ttlMs = Math.max(0, Math.trunc(options.accessTokenRevocation?.ttlMs ?? 24 * 60 * 60 * 1000));\n await store.revoke(jti, expiresAtMs ?? Date.now() + ttlMs);\n}\n\n/** Variante per i flussi applicativi: no-op se la revoca non e configurata. */\nexport async function revokeAccessiAccessTokenIfConfigured(\n options: AccessiOptions,\n jti: string,\n expiresAtMs?: number,\n): Promise<boolean> {\n if (!getAccessTokenRevocationStore(options)) return false;\n await revokeAccessiAccessToken(options, jti, expiresAtMs);\n return true;\n}\n\n/** Solo per test: azzera lo store in memoria di default. */\nexport function clearDefaultAccessTokenRevocations(): void {\n defaultMemoryStore.clear();\n}\n"]}
@@ -0,0 +1,9 @@
1
+ import { ValidationPipe } from '@nestjs/common';
2
+ /**
3
+ * Creates the validation pipe used by every Accessi bootstrap path.
4
+ *
5
+ * It deliberately returns one stable, documented error contract instead of
6
+ * Nest's default array. Consumers can branch on `code`; `details` is safe to
7
+ * display or log because it contains only DTO field names and validation text.
8
+ */
9
+ export declare function createAccessiValidationPipe(): ValidationPipe;
@@ -0,0 +1,41 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createAccessiValidationPipe = createAccessiValidationPipe;
4
+ const common_1 = require("@nestjs/common");
5
+ const Utilities_1 = require("../../Utilities");
6
+ /**
7
+ * Creates the validation pipe used by every Accessi bootstrap path.
8
+ *
9
+ * It deliberately returns one stable, documented error contract instead of
10
+ * Nest's default array. Consumers can branch on `code`; `details` is safe to
11
+ * display or log because it contains only DTO field names and validation text.
12
+ */
13
+ function createAccessiValidationPipe() {
14
+ return new common_1.ValidationPipe({
15
+ whitelist: true,
16
+ forbidNonWhitelisted: true,
17
+ transform: true,
18
+ transformOptions: {
19
+ enableImplicitConversion: true,
20
+ },
21
+ exceptionFactory: (errors) => new common_1.BadRequestException({
22
+ severity: 'error',
23
+ status: 400,
24
+ statusCode: Utilities_1.StatusCode.Error,
25
+ code: 'ACCESSI_VALIDATION_ERROR',
26
+ error: 'ACCESSI_VALIDATION_ERROR',
27
+ message: 'La richiesta contiene dati non validi.',
28
+ details: flattenValidationErrors(errors),
29
+ }),
30
+ });
31
+ }
32
+ /** Converts nested class-validator failures into deterministic client details. */
33
+ function flattenValidationErrors(errors, parentPath = '') {
34
+ return errors.flatMap((error) => {
35
+ var _a, _b;
36
+ const path = parentPath ? `${parentPath}.${error.property}` : error.property;
37
+ const ownMessages = Object.values((_a = error.constraints) !== null && _a !== void 0 ? _a : {}).map((message) => `${path}: ${message}`);
38
+ return [...ownMessages, ...flattenValidationErrors((_b = error.children) !== null && _b !== void 0 ? _b : [], path)];
39
+ });
40
+ }
41
+ //# sourceMappingURL=accessiValidation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"accessiValidation.js","sourceRoot":"","sources":["../../../src/accessi-module/security/accessiValidation.ts"],"names":[],"mappings":";;AAUA,kEAmBC;AA7BD,2CAAsF;AACtF,+CAA6C;AAE7C;;;;;;GAMG;AACH,SAAgB,2BAA2B;IACzC,OAAO,IAAI,uBAAc,CAAC;QACxB,SAAS,EAAE,IAAI;QACf,oBAAoB,EAAE,IAAI;QAC1B,SAAS,EAAE,IAAI;QACf,gBAAgB,EAAE;YAChB,wBAAwB,EAAE,IAAI;SAC/B;QACD,gBAAgB,EAAE,CAAC,MAAyB,EAAE,EAAE,CAC9C,IAAI,4BAAmB,CAAC;YACtB,QAAQ,EAAE,OAAO;YACjB,MAAM,EAAE,GAAG;YACX,UAAU,EAAE,sBAAU,CAAC,KAAK;YAC5B,IAAI,EAAE,0BAA0B;YAChC,KAAK,EAAE,0BAA0B;YACjC,OAAO,EAAE,wCAAwC;YACjD,OAAO,EAAE,uBAAuB,CAAC,MAAM,CAAC;SACzC,CAAC;KACL,CAAC,CAAC;AACL,CAAC;AAED,kFAAkF;AAClF,SAAS,uBAAuB,CAAC,MAAyB,EAAE,UAAU,GAAG,EAAE;IACzE,OAAO,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;;QAC9B,MAAM,IAAI,GAAG,UAAU,CAAC,CAAC,CAAC,GAAG,UAAU,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC;QAC7E,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,CAAC,MAAA,KAAK,CAAC,WAAW,mCAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,GAAG,IAAI,KAAK,OAAO,EAAE,CAAC,CAAC;QACnG,OAAO,CAAC,GAAG,WAAW,EAAE,GAAG,uBAAuB,CAAC,MAAA,KAAK,CAAC,QAAQ,mCAAI,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC;IAClF,CAAC,CAAC,CAAC;AACL,CAAC","sourcesContent":["import { BadRequestException, ValidationError, ValidationPipe } from '@nestjs/common';\nimport { StatusCode } from '../../Utilities';\n\n/**\n * Creates the validation pipe used by every Accessi bootstrap path.\n *\n * It deliberately returns one stable, documented error contract instead of\n * Nest's default array. Consumers can branch on `code`; `details` is safe to\n * display or log because it contains only DTO field names and validation text.\n */\nexport function createAccessiValidationPipe(): ValidationPipe {\n return new ValidationPipe({\n whitelist: true,\n forbidNonWhitelisted: true,\n transform: true,\n transformOptions: {\n enableImplicitConversion: true,\n },\n exceptionFactory: (errors: ValidationError[]) =>\n new BadRequestException({\n severity: 'error',\n status: 400,\n statusCode: StatusCode.Error,\n code: 'ACCESSI_VALIDATION_ERROR',\n error: 'ACCESSI_VALIDATION_ERROR',\n message: 'La richiesta contiene dati non validi.',\n details: flattenValidationErrors(errors),\n }),\n });\n}\n\n/** Converts nested class-validator failures into deterministic client details. */\nfunction flattenValidationErrors(errors: ValidationError[], parentPath = ''): string[] {\n return errors.flatMap((error) => {\n const path = parentPath ? `${parentPath}.${error.property}` : error.property;\n const ownMessages = Object.values(error.constraints ?? {}).map((message) => `${path}: ${message}`);\n return [...ownMessages, ...flattenValidationErrors(error.children ?? [], path)];\n });\n}\n"]}
@@ -0,0 +1,8 @@
1
+ /** Genera (una sola volta per processo) il token di bootstrap admin. */
2
+ export declare function getOrCreateAdminBootstrapToken(): string;
3
+ /** Token corrente, oppure null se non ancora generato. */
4
+ export declare function getAdminBootstrapToken(): string | null;
5
+ /** Invalida il token (usato dopo un bootstrap riuscito per renderlo monouso). */
6
+ export declare function clearAdminBootstrapToken(): void;
7
+ /** Confronto a tempo costante del token candidato con quello generato. */
8
+ export declare function isValidAdminBootstrapToken(candidate: unknown): boolean;