emilsoftware-utilities 2.0.0-dev.8 → 2.0.0-dev.80

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 (914) hide show
  1. package/README.MD +323 -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/admin/index.d.ts +18 -0
  27. package/dist/accessi/client/admin/index.js +58 -0
  28. package/dist/accessi/client/admin/index.js.map +1 -0
  29. package/dist/accessi/client/createAccessiClient.d.ts +21 -0
  30. package/dist/accessi/client/createAccessiClient.js +31 -0
  31. package/dist/accessi/client/createAccessiClient.js.map +1 -0
  32. package/dist/accessi/client/generated/admin.d.ts +621 -0
  33. package/dist/accessi/client/generated/admin.js +591 -0
  34. package/dist/accessi/client/generated/admin.js.map +1 -0
  35. package/dist/accessi/client/generated/public.d.ts +121 -0
  36. package/dist/accessi/client/generated/public.js +119 -0
  37. package/dist/accessi/client/generated/public.js.map +1 -0
  38. package/dist/accessi/client/generated/service.d.ts +53 -0
  39. package/dist/accessi/client/generated/service.js +63 -0
  40. package/dist/accessi/client/generated/service.js.map +1 -0
  41. package/dist/accessi/client/index.d.ts +44 -0
  42. package/dist/accessi/client/index.js +99 -0
  43. package/dist/accessi/client/index.js.map +1 -0
  44. package/dist/accessi/client/public/index.d.ts +18 -0
  45. package/dist/accessi/client/public/index.js +58 -0
  46. package/dist/accessi/client/public/index.js.map +1 -0
  47. package/dist/accessi/client/service/index.d.ts +17 -0
  48. package/dist/accessi/client/service/index.js +57 -0
  49. package/dist/accessi/client/service/index.js.map +1 -0
  50. package/dist/accessi/console/index.d.ts +15 -0
  51. package/dist/accessi/console/index.js +25 -0
  52. package/dist/accessi/console/index.js.map +1 -0
  53. package/dist/accessi/contracts/dtos.d.ts +8 -0
  54. package/dist/accessi/contracts/dtos.js +25 -0
  55. package/dist/accessi/contracts/dtos.js.map +1 -0
  56. package/dist/accessi/contracts/index.d.ts +25 -0
  57. package/dist/accessi/contracts/index.js +28 -0
  58. package/dist/accessi/contracts/index.js.map +1 -0
  59. package/dist/accessi/openapi/index.d.ts +2 -0
  60. package/dist/accessi/openapi/index.js +19 -0
  61. package/dist/accessi/openapi/index.js.map +1 -0
  62. package/dist/accessi/resource-server/core.d.ts +6 -0
  63. package/dist/accessi/resource-server/core.js +23 -0
  64. package/dist/accessi/resource-server/core.js.map +1 -0
  65. package/dist/accessi/resource-server/errors.d.ts +10 -0
  66. package/dist/accessi/resource-server/errors.js +19 -0
  67. package/dist/accessi/resource-server/errors.js.map +1 -0
  68. package/dist/accessi/resource-server/express.d.ts +17 -0
  69. package/dist/accessi/resource-server/express.js +87 -0
  70. package/dist/accessi/resource-server/express.js.map +1 -0
  71. package/dist/accessi/resource-server/index.d.ts +3 -0
  72. package/dist/accessi/resource-server/index.js +20 -0
  73. package/dist/accessi/resource-server/index.js.map +1 -0
  74. package/dist/accessi/resource-server/introspection.d.ts +16 -0
  75. package/dist/accessi/resource-server/introspection.js +115 -0
  76. package/dist/accessi/resource-server/introspection.js.map +1 -0
  77. package/dist/accessi/resource-server/keys.d.ts +11 -0
  78. package/dist/accessi/resource-server/keys.js +22 -0
  79. package/dist/accessi/resource-server/keys.js.map +1 -0
  80. package/dist/accessi/resource-server/nest.d.ts +9 -0
  81. package/dist/accessi/resource-server/nest.js +75 -0
  82. package/dist/accessi/resource-server/nest.js.map +1 -0
  83. package/dist/accessi/resource-server/runtime.d.ts +27 -0
  84. package/dist/accessi/resource-server/runtime.js +179 -0
  85. package/dist/accessi/resource-server/runtime.js.map +1 -0
  86. package/dist/accessi/resource-server/token.d.ts +23 -0
  87. package/dist/accessi/resource-server/token.js +276 -0
  88. package/dist/accessi/resource-server/token.js.map +1 -0
  89. package/dist/accessi/resource-server/types.d.ts +114 -0
  90. package/dist/accessi/resource-server/types.js +3 -0
  91. package/dist/accessi/resource-server/types.js.map +1 -0
  92. package/dist/accessi/server/index.d.ts +12 -0
  93. package/dist/accessi/server/index.js +32 -0
  94. package/dist/accessi/server/index.js.map +1 -0
  95. package/dist/accessi/server/standalone.d.ts +39 -0
  96. package/dist/accessi/server/standalone.js +191 -0
  97. package/dist/accessi/server/standalone.js.map +1 -0
  98. package/dist/accessi/server/tenants.d.ts +97 -0
  99. package/dist/accessi/server/tenants.js +275 -0
  100. package/dist/accessi/server/tenants.js.map +1 -0
  101. package/dist/accessi/ui/index.d.ts +13 -0
  102. package/dist/accessi/ui/index.js +19 -0
  103. package/dist/accessi/ui/index.js.map +1 -0
  104. package/dist/accessi-module/AccessiModule.d.ts +225 -0
  105. package/dist/accessi-module/AccessiModule.js +49 -5
  106. package/dist/accessi-module/AccessiModule.js.map +1 -1
  107. package/dist/accessi-module/Console/accessiFetch.d.ts +59 -0
  108. package/dist/accessi-module/Console/accessiFetch.js +178 -0
  109. package/dist/accessi-module/Console/accessiFetch.js.map +1 -0
  110. package/dist/accessi-module/Console/console.css +774 -0
  111. package/dist/accessi-module/Console/console.d.ts +1 -0
  112. package/dist/accessi-module/Console/console.js +4173 -0
  113. package/dist/accessi-module/Console/console.js.map +1 -0
  114. package/dist/accessi-module/Console/generated/emilsoftware-utilities.d.ts +781 -0
  115. package/dist/accessi-module/Console/generated/emilsoftware-utilities.js +746 -0
  116. package/dist/accessi-module/Console/generated/emilsoftware-utilities.js.map +1 -0
  117. package/dist/accessi-module/Console/generated/model/abilitazioneMenu.d.ts +39 -0
  118. package/dist/accessi-module/Console/generated/model/abilitazioneMenu.js +3 -0
  119. package/dist/accessi-module/Console/generated/model/abilitazioneMenu.js.map +1 -0
  120. package/dist/accessi-module/Console/generated/model/abilitazioneMenuTipoAbilitazione.d.ts +16 -0
  121. package/dist/accessi-module/Console/generated/model/abilitazioneMenuTipoAbilitazione.js +17 -0
  122. package/dist/accessi-module/Console/generated/model/abilitazioneMenuTipoAbilitazione.js.map +1 -0
  123. package/dist/accessi-module/Console/generated/model/accessiIntrospectionResultDto.d.ts +16 -0
  124. package/dist/accessi-module/Console/generated/model/accessiIntrospectionResultDto.js +3 -0
  125. package/dist/accessi-module/Console/generated/model/accessiIntrospectionResultDto.js.map +1 -0
  126. package/dist/accessi-module/Console/generated/model/actionResponse.d.ts +12 -0
  127. package/dist/accessi-module/Console/generated/model/actionResponse.js +9 -0
  128. package/dist/accessi-module/Console/generated/model/actionResponse.js.map +1 -0
  129. package/dist/accessi-module/Console/generated/model/adminBootstrapStatusResponse.d.ts +14 -0
  130. package/dist/accessi-module/Console/generated/model/adminBootstrapStatusResponse.js +3 -0
  131. package/dist/accessi-module/Console/generated/model/adminBootstrapStatusResponse.js.map +1 -0
  132. package/dist/accessi-module/Console/generated/model/adminBootstrapStatusResult.d.ts +10 -0
  133. package/dist/accessi-module/Console/generated/model/adminBootstrapStatusResult.js +9 -0
  134. package/dist/accessi-module/Console/generated/model/adminBootstrapStatusResult.js.map +1 -0
  135. package/dist/accessi-module/Console/generated/model/assignPermissionsToUserRequest.d.ts +11 -0
  136. package/dist/accessi-module/Console/generated/model/assignPermissionsToUserRequest.js +3 -0
  137. package/dist/accessi-module/Console/generated/model/assignPermissionsToUserRequest.js.map +1 -0
  138. package/dist/accessi-module/Console/generated/model/assignRolesToUserRequest.d.ts +10 -0
  139. package/dist/accessi-module/Console/generated/model/assignRolesToUserRequest.js +9 -0
  140. package/dist/accessi-module/Console/generated/model/assignRolesToUserRequest.js.map +1 -0
  141. package/dist/accessi-module/Console/generated/model/authenticatedTokenPayloadDto.d.ts +10 -0
  142. package/dist/accessi-module/Console/generated/model/authenticatedTokenPayloadDto.js +3 -0
  143. package/dist/accessi-module/Console/generated/model/authenticatedTokenPayloadDto.js.map +1 -0
  144. package/dist/accessi-module/Console/generated/model/authenticatedUserPayloadDto.d.ts +19 -0
  145. package/dist/accessi-module/Console/generated/model/authenticatedUserPayloadDto.js +9 -0
  146. package/dist/accessi-module/Console/generated/model/authenticatedUserPayloadDto.js.map +1 -0
  147. package/dist/accessi-module/Console/generated/model/bootstrapAdminRequest.d.ts +17 -0
  148. package/dist/accessi-module/Console/generated/model/bootstrapAdminRequest.js +9 -0
  149. package/dist/accessi-module/Console/generated/model/bootstrapAdminRequest.js.map +1 -0
  150. package/dist/accessi-module/Console/generated/model/bootstrapAdminResponse.d.ts +14 -0
  151. package/dist/accessi-module/Console/generated/model/bootstrapAdminResponse.js +3 -0
  152. package/dist/accessi-module/Console/generated/model/bootstrapAdminResponse.js.map +1 -0
  153. package/dist/accessi-module/Console/generated/model/bootstrapAdminResultDto.d.ts +13 -0
  154. package/dist/accessi-module/Console/generated/model/bootstrapAdminResultDto.js +9 -0
  155. package/dist/accessi-module/Console/generated/model/bootstrapAdminResultDto.js.map +1 -0
  156. package/dist/accessi-module/Console/generated/model/confirmResetPasswordRequest.d.ts +14 -0
  157. package/dist/accessi-module/Console/generated/model/confirmResetPasswordRequest.js +9 -0
  158. package/dist/accessi-module/Console/generated/model/confirmResetPasswordRequest.js.map +1 -0
  159. package/dist/accessi-module/Console/generated/model/consoleEntryExchangeRequest.d.ts +10 -0
  160. package/dist/accessi-module/Console/generated/model/consoleEntryExchangeRequest.js +9 -0
  161. package/dist/accessi-module/Console/generated/model/consoleEntryExchangeRequest.js.map +1 -0
  162. package/dist/accessi-module/Console/generated/model/consoleEntrySessionResponse.d.ts +14 -0
  163. package/dist/accessi-module/Console/generated/model/consoleEntrySessionResponse.js +3 -0
  164. package/dist/accessi-module/Console/generated/model/consoleEntrySessionResponse.js.map +1 -0
  165. package/dist/accessi-module/Console/generated/model/consoleEntrySessionResult.d.ts +10 -0
  166. package/dist/accessi-module/Console/generated/model/consoleEntrySessionResult.js +3 -0
  167. package/dist/accessi-module/Console/generated/model/consoleEntrySessionResult.js.map +1 -0
  168. package/dist/accessi-module/Console/generated/model/consoleEntryTicketResponse.d.ts +14 -0
  169. package/dist/accessi-module/Console/generated/model/consoleEntryTicketResponse.js +3 -0
  170. package/dist/accessi-module/Console/generated/model/consoleEntryTicketResponse.js.map +1 -0
  171. package/dist/accessi-module/Console/generated/model/consoleEntryTicketResult.d.ts +12 -0
  172. package/dist/accessi-module/Console/generated/model/consoleEntryTicketResult.js +9 -0
  173. package/dist/accessi-module/Console/generated/model/consoleEntryTicketResult.js.map +1 -0
  174. package/dist/accessi-module/Console/generated/model/consoleEntryTokenResult.d.ts +12 -0
  175. package/dist/accessi-module/Console/generated/model/consoleEntryTokenResult.js +9 -0
  176. package/dist/accessi-module/Console/generated/model/consoleEntryTokenResult.js.map +1 -0
  177. package/dist/accessi-module/Console/generated/model/createFederatedIdentityRequest.d.ts +13 -0
  178. package/dist/accessi-module/Console/generated/model/createFederatedIdentityRequest.js +9 -0
  179. package/dist/accessi-module/Console/generated/model/createFederatedIdentityRequest.js.map +1 -0
  180. package/dist/accessi-module/Console/generated/model/createFederatedProviderRequest.d.ts +13 -0
  181. package/dist/accessi-module/Console/generated/model/createFederatedProviderRequest.js +9 -0
  182. package/dist/accessi-module/Console/generated/model/createFederatedProviderRequest.js.map +1 -0
  183. package/dist/accessi-module/Console/generated/model/createFederatedUserRequest.d.ts +18 -0
  184. package/dist/accessi-module/Console/generated/model/createFederatedUserRequest.js +3 -0
  185. package/dist/accessi-module/Console/generated/model/createFederatedUserRequest.js.map +1 -0
  186. package/dist/accessi-module/Console/generated/model/createFilterTypeRequest.d.ts +23 -0
  187. package/dist/accessi-module/Console/generated/model/createFilterTypeRequest.js +3 -0
  188. package/dist/accessi-module/Console/generated/model/createFilterTypeRequest.js.map +1 -0
  189. package/dist/accessi-module/Console/generated/model/createFilterTypeRequestFlgEnabled.d.ts +14 -0
  190. package/dist/accessi-module/Console/generated/model/createFilterTypeRequestFlgEnabled.js +15 -0
  191. package/dist/accessi-module/Console/generated/model/createFilterTypeRequestFlgEnabled.js.map +1 -0
  192. package/dist/accessi-module/Console/generated/model/createMenuGroupRequest.d.ts +22 -0
  193. package/dist/accessi-module/Console/generated/model/createMenuGroupRequest.js +9 -0
  194. package/dist/accessi-module/Console/generated/model/createMenuGroupRequest.js.map +1 -0
  195. package/dist/accessi-module/Console/generated/model/createMenuRequest.d.ts +52 -0
  196. package/dist/accessi-module/Console/generated/model/createMenuRequest.js +9 -0
  197. package/dist/accessi-module/Console/generated/model/createMenuRequest.js.map +1 -0
  198. package/dist/accessi-module/Console/generated/model/createMenuTypeRequest.d.ts +18 -0
  199. package/dist/accessi-module/Console/generated/model/createMenuTypeRequest.js +9 -0
  200. package/dist/accessi-module/Console/generated/model/createMenuTypeRequest.js.map +1 -0
  201. package/dist/accessi-module/Console/generated/model/createScopeRequest.d.ts +18 -0
  202. package/dist/accessi-module/Console/generated/model/createScopeRequest.js +9 -0
  203. package/dist/accessi-module/Console/generated/model/createScopeRequest.js.map +1 -0
  204. package/dist/accessi-module/Console/generated/model/createServiceTokenRequest.d.ts +16 -0
  205. package/dist/accessi-module/Console/generated/model/createServiceTokenRequest.js +9 -0
  206. package/dist/accessi-module/Console/generated/model/createServiceTokenRequest.js.map +1 -0
  207. package/dist/accessi-module/Console/generated/model/createServiceTokenResponse.d.ts +14 -0
  208. package/dist/accessi-module/Console/generated/model/createServiceTokenResponse.js +3 -0
  209. package/dist/accessi-module/Console/generated/model/createServiceTokenResponse.js.map +1 -0
  210. package/dist/accessi-module/Console/generated/model/errorResponse.d.ts +18 -0
  211. package/dist/accessi-module/Console/generated/model/errorResponse.js +9 -0
  212. package/dist/accessi-module/Console/generated/model/errorResponse.js.map +1 -0
  213. package/dist/accessi-module/Console/generated/model/exchangeFederatedIdentityRequest.d.ts +12 -0
  214. package/dist/accessi-module/Console/generated/model/exchangeFederatedIdentityRequest.js +9 -0
  215. package/dist/accessi-module/Console/generated/model/exchangeFederatedIdentityRequest.js.map +1 -0
  216. package/dist/accessi-module/Console/generated/model/exportAuditOrder.d.ts +11 -0
  217. package/dist/accessi-module/Console/generated/model/exportAuditOrder.js +15 -0
  218. package/dist/accessi-module/Console/generated/model/exportAuditOrder.js.map +1 -0
  219. package/dist/accessi-module/Console/generated/model/exportAuditParams.d.ts +37 -0
  220. package/dist/accessi-module/Console/generated/model/exportAuditParams.js +3 -0
  221. package/dist/accessi-module/Console/generated/model/exportAuditParams.js.map +1 -0
  222. package/dist/accessi-module/Console/generated/model/federatedAuthenticationResultDto.d.ts +15 -0
  223. package/dist/accessi-module/Console/generated/model/federatedAuthenticationResultDto.js +3 -0
  224. package/dist/accessi-module/Console/generated/model/federatedAuthenticationResultDto.js.map +1 -0
  225. package/dist/accessi-module/Console/generated/model/federatedExchangeResponse.d.ts +14 -0
  226. package/dist/accessi-module/Console/generated/model/federatedExchangeResponse.js +3 -0
  227. package/dist/accessi-module/Console/generated/model/federatedExchangeResponse.js.map +1 -0
  228. package/dist/accessi-module/Console/generated/model/federatedIdentityListResponse.d.ts +14 -0
  229. package/dist/accessi-module/Console/generated/model/federatedIdentityListResponse.js +3 -0
  230. package/dist/accessi-module/Console/generated/model/federatedIdentityListResponse.js.map +1 -0
  231. package/dist/accessi-module/Console/generated/model/federatedIdentityResponse.d.ts +14 -0
  232. package/dist/accessi-module/Console/generated/model/federatedIdentityResponse.js +3 -0
  233. package/dist/accessi-module/Console/generated/model/federatedIdentityResponse.js.map +1 -0
  234. package/dist/accessi-module/Console/generated/model/federatedIdentityResponseDto.d.ts +23 -0
  235. package/dist/accessi-module/Console/generated/model/federatedIdentityResponseDto.js +9 -0
  236. package/dist/accessi-module/Console/generated/model/federatedIdentityResponseDto.js.map +1 -0
  237. package/dist/accessi-module/Console/generated/model/federatedProviderListResponse.d.ts +14 -0
  238. package/dist/accessi-module/Console/generated/model/federatedProviderListResponse.js +3 -0
  239. package/dist/accessi-module/Console/generated/model/federatedProviderListResponse.js.map +1 -0
  240. package/dist/accessi-module/Console/generated/model/federatedProviderResponse.d.ts +14 -0
  241. package/dist/accessi-module/Console/generated/model/federatedProviderResponse.js +3 -0
  242. package/dist/accessi-module/Console/generated/model/federatedProviderResponse.js.map +1 -0
  243. package/dist/accessi-module/Console/generated/model/federatedProviderResponseDto.d.ts +13 -0
  244. package/dist/accessi-module/Console/generated/model/federatedProviderResponseDto.js +9 -0
  245. package/dist/accessi-module/Console/generated/model/federatedProviderResponseDto.js.map +1 -0
  246. package/dist/accessi-module/Console/generated/model/filtriUtente.d.ts +32 -0
  247. package/dist/accessi-module/Console/generated/model/filtriUtente.js +9 -0
  248. package/dist/accessi-module/Console/generated/model/filtriUtente.js.map +1 -0
  249. package/dist/accessi-module/Console/generated/model/getFiltriResponse.d.ts +14 -0
  250. package/dist/accessi-module/Console/generated/model/getFiltriResponse.js +3 -0
  251. package/dist/accessi-module/Console/generated/model/getFiltriResponse.js.map +1 -0
  252. package/dist/accessi-module/Console/generated/model/getFiltriUtenteParams.d.ts +12 -0
  253. package/dist/accessi-module/Console/generated/model/getFiltriUtenteParams.js +9 -0
  254. package/dist/accessi-module/Console/generated/model/getFiltriUtenteParams.js.map +1 -0
  255. package/dist/accessi-module/Console/generated/model/getFiltriUtenteResponse.d.ts +14 -0
  256. package/dist/accessi-module/Console/generated/model/getFiltriUtenteResponse.js +3 -0
  257. package/dist/accessi-module/Console/generated/model/getFiltriUtenteResponse.js.map +1 -0
  258. package/dist/accessi-module/Console/generated/model/getGroupsWithMenusParams.d.ts +16 -0
  259. package/dist/accessi-module/Console/generated/model/getGroupsWithMenusParams.js +9 -0
  260. package/dist/accessi-module/Console/generated/model/getGroupsWithMenusParams.js.map +1 -0
  261. package/dist/accessi-module/Console/generated/model/getGroupsWithMenusResponse.d.ts +14 -0
  262. package/dist/accessi-module/Console/generated/model/getGroupsWithMenusResponse.js +3 -0
  263. package/dist/accessi-module/Console/generated/model/getGroupsWithMenusResponse.js.map +1 -0
  264. package/dist/accessi-module/Console/generated/model/getMenuScopesResponse.d.ts +14 -0
  265. package/dist/accessi-module/Console/generated/model/getMenuScopesResponse.js +3 -0
  266. package/dist/accessi-module/Console/generated/model/getMenuScopesResponse.js.map +1 -0
  267. package/dist/accessi-module/Console/generated/model/getMenuTypesResponse.d.ts +14 -0
  268. package/dist/accessi-module/Console/generated/model/getMenuTypesResponse.js +3 -0
  269. package/dist/accessi-module/Console/generated/model/getMenuTypesResponse.js.map +1 -0
  270. package/dist/accessi-module/Console/generated/model/getMenusParams.d.ts +12 -0
  271. package/dist/accessi-module/Console/generated/model/getMenusParams.js +9 -0
  272. package/dist/accessi-module/Console/generated/model/getMenusParams.js.map +1 -0
  273. package/dist/accessi-module/Console/generated/model/getMenusResponse.d.ts +14 -0
  274. package/dist/accessi-module/Console/generated/model/getMenusResponse.js +3 -0
  275. package/dist/accessi-module/Console/generated/model/getMenusResponse.js.map +1 -0
  276. package/dist/accessi-module/Console/generated/model/getRolesResponse.d.ts +14 -0
  277. package/dist/accessi-module/Console/generated/model/getRolesResponse.js +3 -0
  278. package/dist/accessi-module/Console/generated/model/getRolesResponse.js.map +1 -0
  279. package/dist/accessi-module/Console/generated/model/getSchemaResponse.d.ts +14 -0
  280. package/dist/accessi-module/Console/generated/model/getSchemaResponse.js +3 -0
  281. package/dist/accessi-module/Console/generated/model/getSchemaResponse.js.map +1 -0
  282. package/dist/accessi-module/Console/generated/model/getScopesResponse.d.ts +14 -0
  283. package/dist/accessi-module/Console/generated/model/getScopesResponse.js +3 -0
  284. package/dist/accessi-module/Console/generated/model/getScopesResponse.js.map +1 -0
  285. package/dist/accessi-module/Console/generated/model/getServiceTokensParams.d.ts +12 -0
  286. package/dist/accessi-module/Console/generated/model/getServiceTokensParams.js +9 -0
  287. package/dist/accessi-module/Console/generated/model/getServiceTokensParams.js.map +1 -0
  288. package/dist/accessi-module/Console/generated/model/getServiceTokensResponse.d.ts +14 -0
  289. package/dist/accessi-module/Console/generated/model/getServiceTokensResponse.js +3 -0
  290. package/dist/accessi-module/Console/generated/model/getServiceTokensResponse.js.map +1 -0
  291. package/dist/accessi-module/Console/generated/model/getUserByTokenRequest.d.ts +10 -0
  292. package/dist/accessi-module/Console/generated/model/getUserByTokenRequest.js +9 -0
  293. package/dist/accessi-module/Console/generated/model/getUserByTokenRequest.js.map +1 -0
  294. package/dist/accessi-module/Console/generated/model/getUserByTokenResponse.d.ts +14 -0
  295. package/dist/accessi-module/Console/generated/model/getUserByTokenResponse.js +3 -0
  296. package/dist/accessi-module/Console/generated/model/getUserByTokenResponse.js.map +1 -0
  297. package/dist/accessi-module/Console/generated/model/getUserRolesAndGrantsParams.d.ts +12 -0
  298. package/dist/accessi-module/Console/generated/model/getUserRolesAndGrantsParams.js +9 -0
  299. package/dist/accessi-module/Console/generated/model/getUserRolesAndGrantsParams.js.map +1 -0
  300. package/dist/accessi-module/Console/generated/model/getUsersParams.d.ts +32 -0
  301. package/dist/accessi-module/Console/generated/model/getUsersParams.js +9 -0
  302. package/dist/accessi-module/Console/generated/model/getUsersParams.js.map +1 -0
  303. package/dist/accessi-module/Console/generated/model/getUsersResponse.d.ts +14 -0
  304. package/dist/accessi-module/Console/generated/model/getUsersResponse.js +3 -0
  305. package/dist/accessi-module/Console/generated/model/getUsersResponse.js.map +1 -0
  306. package/dist/accessi-module/Console/generated/model/getUsersResult.d.ts +17 -0
  307. package/dist/accessi-module/Console/generated/model/getUsersResult.js +3 -0
  308. package/dist/accessi-module/Console/generated/model/getUsersResult.js.map +1 -0
  309. package/dist/accessi-module/Console/generated/model/getUsersResultExtensionFields.d.ts +12 -0
  310. package/dist/accessi-module/Console/generated/model/getUsersResultExtensionFields.js +9 -0
  311. package/dist/accessi-module/Console/generated/model/getUsersResultExtensionFields.js.map +1 -0
  312. package/dist/accessi-module/Console/generated/model/groupWithMenusEntity.d.ts +19 -0
  313. package/dist/accessi-module/Console/generated/model/groupWithMenusEntity.js +3 -0
  314. package/dist/accessi-module/Console/generated/model/groupWithMenusEntity.js.map +1 -0
  315. package/dist/accessi-module/Console/generated/model/index.d.ts +134 -0
  316. package/dist/accessi-module/Console/generated/model/index.js +151 -0
  317. package/dist/accessi-module/Console/generated/model/index.js.map +1 -0
  318. package/dist/accessi-module/Console/generated/model/introspectAccessiTokenRequest.d.ts +10 -0
  319. package/dist/accessi-module/Console/generated/model/introspectAccessiTokenRequest.js +9 -0
  320. package/dist/accessi-module/Console/generated/model/introspectAccessiTokenRequest.js.map +1 -0
  321. package/dist/accessi-module/Console/generated/model/introspectAccessiTokenResponse.d.ts +14 -0
  322. package/dist/accessi-module/Console/generated/model/introspectAccessiTokenResponse.js +3 -0
  323. package/dist/accessi-module/Console/generated/model/introspectAccessiTokenResponse.js.map +1 -0
  324. package/dist/accessi-module/Console/generated/model/issuedServiceTokenDto.d.ts +30 -0
  325. package/dist/accessi-module/Console/generated/model/issuedServiceTokenDto.js +9 -0
  326. package/dist/accessi-module/Console/generated/model/issuedServiceTokenDto.js.map +1 -0
  327. package/dist/accessi-module/Console/generated/model/loginAsRequest.d.ts +10 -0
  328. package/dist/accessi-module/Console/generated/model/loginAsRequest.js +9 -0
  329. package/dist/accessi-module/Console/generated/model/loginAsRequest.js.map +1 -0
  330. package/dist/accessi-module/Console/generated/model/loginAsResponse.d.ts +14 -0
  331. package/dist/accessi-module/Console/generated/model/loginAsResponse.js +3 -0
  332. package/dist/accessi-module/Console/generated/model/loginAsResponse.js.map +1 -0
  333. package/dist/accessi-module/Console/generated/model/loginAsResult.d.ts +16 -0
  334. package/dist/accessi-module/Console/generated/model/loginAsResult.js +9 -0
  335. package/dist/accessi-module/Console/generated/model/loginAsResult.js.map +1 -0
  336. package/dist/accessi-module/Console/generated/model/loginRequest.d.ts +14 -0
  337. package/dist/accessi-module/Console/generated/model/loginRequest.js +9 -0
  338. package/dist/accessi-module/Console/generated/model/loginRequest.js.map +1 -0
  339. package/dist/accessi-module/Console/generated/model/loginResponse.d.ts +14 -0
  340. package/dist/accessi-module/Console/generated/model/loginResponse.js +3 -0
  341. package/dist/accessi-module/Console/generated/model/loginResponse.js.map +1 -0
  342. package/dist/accessi-module/Console/generated/model/loginResult.d.ts +34 -0
  343. package/dist/accessi-module/Console/generated/model/loginResult.js +3 -0
  344. package/dist/accessi-module/Console/generated/model/loginResult.js.map +1 -0
  345. package/dist/accessi-module/Console/generated/model/loginResultExtensionFields.d.ts +12 -0
  346. package/dist/accessi-module/Console/generated/model/loginResultExtensionFields.js +9 -0
  347. package/dist/accessi-module/Console/generated/model/loginResultExtensionFields.js.map +1 -0
  348. package/dist/accessi-module/Console/generated/model/loginResultPasswordRequired.d.ts +13 -0
  349. package/dist/accessi-module/Console/generated/model/loginResultPasswordRequired.js +14 -0
  350. package/dist/accessi-module/Console/generated/model/loginResultPasswordRequired.js.map +1 -0
  351. package/dist/accessi-module/Console/generated/model/menuEntity.d.ts +32 -0
  352. package/dist/accessi-module/Console/generated/model/menuEntity.js +9 -0
  353. package/dist/accessi-module/Console/generated/model/menuEntity.js.map +1 -0
  354. package/dist/accessi-module/Console/generated/model/menuTypeEntity.d.ts +12 -0
  355. package/dist/accessi-module/Console/generated/model/menuTypeEntity.js +9 -0
  356. package/dist/accessi-module/Console/generated/model/menuTypeEntity.js.map +1 -0
  357. package/dist/accessi-module/Console/generated/model/passwordExpiredResponse.d.ts +12 -0
  358. package/dist/accessi-module/Console/generated/model/passwordExpiredResponse.js +9 -0
  359. package/dist/accessi-module/Console/generated/model/passwordExpiredResponse.js.map +1 -0
  360. package/dist/accessi-module/Console/generated/model/permission.d.ts +12 -0
  361. package/dist/accessi-module/Console/generated/model/permission.js +9 -0
  362. package/dist/accessi-module/Console/generated/model/permission.js.map +1 -0
  363. package/dist/accessi-module/Console/generated/model/publicRegisterRequest.d.ts +51 -0
  364. package/dist/accessi-module/Console/generated/model/publicRegisterRequest.js +9 -0
  365. package/dist/accessi-module/Console/generated/model/publicRegisterRequest.js.map +1 -0
  366. package/dist/accessi-module/Console/generated/model/queryAuditOrder.d.ts +11 -0
  367. package/dist/accessi-module/Console/generated/model/queryAuditOrder.js +15 -0
  368. package/dist/accessi-module/Console/generated/model/queryAuditOrder.js.map +1 -0
  369. package/dist/accessi-module/Console/generated/model/queryAuditParams.d.ts +37 -0
  370. package/dist/accessi-module/Console/generated/model/queryAuditParams.js +3 -0
  371. package/dist/accessi-module/Console/generated/model/queryAuditParams.js.map +1 -0
  372. package/dist/accessi-module/Console/generated/model/refreshTokenRequest.d.ts +10 -0
  373. package/dist/accessi-module/Console/generated/model/refreshTokenRequest.js +9 -0
  374. package/dist/accessi-module/Console/generated/model/refreshTokenRequest.js.map +1 -0
  375. package/dist/accessi-module/Console/generated/model/refreshTokenResponse.d.ts +14 -0
  376. package/dist/accessi-module/Console/generated/model/refreshTokenResponse.js +3 -0
  377. package/dist/accessi-module/Console/generated/model/refreshTokenResponse.js.map +1 -0
  378. package/dist/accessi-module/Console/generated/model/refreshTokenResult.d.ts +13 -0
  379. package/dist/accessi-module/Console/generated/model/refreshTokenResult.js +3 -0
  380. package/dist/accessi-module/Console/generated/model/refreshTokenResult.js.map +1 -0
  381. package/dist/accessi-module/Console/generated/model/registerRequest.d.ts +62 -0
  382. package/dist/accessi-module/Console/generated/model/registerRequest.js +3 -0
  383. package/dist/accessi-module/Console/generated/model/registerRequest.js.map +1 -0
  384. package/dist/accessi-module/Console/generated/model/registerResponse.d.ts +14 -0
  385. package/dist/accessi-module/Console/generated/model/registerResponse.js +3 -0
  386. package/dist/accessi-module/Console/generated/model/registerResponse.js.map +1 -0
  387. package/dist/accessi-module/Console/generated/model/resendTwoFactorRequest.d.ts +13 -0
  388. package/dist/accessi-module/Console/generated/model/resendTwoFactorRequest.js +9 -0
  389. package/dist/accessi-module/Console/generated/model/resendTwoFactorRequest.js.map +1 -0
  390. package/dist/accessi-module/Console/generated/model/revokeTokenRequest.d.ts +10 -0
  391. package/dist/accessi-module/Console/generated/model/revokeTokenRequest.js +9 -0
  392. package/dist/accessi-module/Console/generated/model/revokeTokenRequest.js.map +1 -0
  393. package/dist/accessi-module/Console/generated/model/role.d.ts +15 -0
  394. package/dist/accessi-module/Console/generated/model/role.js +3 -0
  395. package/dist/accessi-module/Console/generated/model/role.js.map +1 -0
  396. package/dist/accessi-module/Console/generated/model/ruoliMenu.d.ts +15 -0
  397. package/dist/accessi-module/Console/generated/model/ruoliMenu.js +3 -0
  398. package/dist/accessi-module/Console/generated/model/ruoliMenu.js.map +1 -0
  399. package/dist/accessi-module/Console/generated/model/ruoliMenuTipoAbilitazione.d.ts +16 -0
  400. package/dist/accessi-module/Console/generated/model/ruoliMenuTipoAbilitazione.js +17 -0
  401. package/dist/accessi-module/Console/generated/model/ruoliMenuTipoAbilitazione.js.map +1 -0
  402. package/dist/accessi-module/Console/generated/model/schemaDdlResult.d.ts +20 -0
  403. package/dist/accessi-module/Console/generated/model/schemaDdlResult.js +3 -0
  404. package/dist/accessi-module/Console/generated/model/schemaDdlResult.js.map +1 -0
  405. package/dist/accessi-module/Console/generated/model/schemaDdlSection.d.ts +12 -0
  406. package/dist/accessi-module/Console/generated/model/schemaDdlSection.js +9 -0
  407. package/dist/accessi-module/Console/generated/model/schemaDdlSection.js.map +1 -0
  408. package/dist/accessi-module/Console/generated/model/scopeEntity.d.ts +12 -0
  409. package/dist/accessi-module/Console/generated/model/scopeEntity.js +9 -0
  410. package/dist/accessi-module/Console/generated/model/scopeEntity.js.map +1 -0
  411. package/dist/accessi-module/Console/generated/model/sendResetPasswordEmailRequest.d.ts +12 -0
  412. package/dist/accessi-module/Console/generated/model/sendResetPasswordEmailRequest.js +9 -0
  413. package/dist/accessi-module/Console/generated/model/sendResetPasswordEmailRequest.js.map +1 -0
  414. package/dist/accessi-module/Console/generated/model/serveResetPasswordPageParams.d.ts +12 -0
  415. package/dist/accessi-module/Console/generated/model/serveResetPasswordPageParams.js +9 -0
  416. package/dist/accessi-module/Console/generated/model/serveResetPasswordPageParams.js.map +1 -0
  417. package/dist/accessi-module/Console/generated/model/serviceTokenDto.d.ts +28 -0
  418. package/dist/accessi-module/Console/generated/model/serviceTokenDto.js +9 -0
  419. package/dist/accessi-module/Console/generated/model/serviceTokenDto.js.map +1 -0
  420. package/dist/accessi-module/Console/generated/model/setMenuScopesRequest.d.ts +10 -0
  421. package/dist/accessi-module/Console/generated/model/setMenuScopesRequest.js +9 -0
  422. package/dist/accessi-module/Console/generated/model/setMenuScopesRequest.js.map +1 -0
  423. package/dist/accessi-module/Console/generated/model/setPasswordLoginPolicyRequest.d.ts +10 -0
  424. package/dist/accessi-module/Console/generated/model/setPasswordLoginPolicyRequest.js +9 -0
  425. package/dist/accessi-module/Console/generated/model/setPasswordLoginPolicyRequest.js.map +1 -0
  426. package/dist/accessi-module/Console/generated/model/setScopeMenusRequest.d.ts +10 -0
  427. package/dist/accessi-module/Console/generated/model/setScopeMenusRequest.js +9 -0
  428. package/dist/accessi-module/Console/generated/model/setScopeMenusRequest.js.map +1 -0
  429. package/dist/accessi-module/Console/generated/model/setStatoRegistrazioneDto.d.ts +13 -0
  430. package/dist/accessi-module/Console/generated/model/setStatoRegistrazioneDto.js +3 -0
  431. package/dist/accessi-module/Console/generated/model/setStatoRegistrazioneDto.js.map +1 -0
  432. package/dist/accessi-module/Console/generated/model/setStatoRegistrazioneDtoStatoRegistrazione.d.ts +18 -0
  433. package/dist/accessi-module/Console/generated/model/setStatoRegistrazioneDtoStatoRegistrazione.js +19 -0
  434. package/dist/accessi-module/Console/generated/model/setStatoRegistrazioneDtoStatoRegistrazione.js.map +1 -0
  435. package/dist/accessi-module/Console/generated/model/setUserPasswordRequest.d.ts +14 -0
  436. package/dist/accessi-module/Console/generated/model/setUserPasswordRequest.js +9 -0
  437. package/dist/accessi-module/Console/generated/model/setUserPasswordRequest.js.map +1 -0
  438. package/dist/accessi-module/Console/generated/model/status.d.ts +12 -0
  439. package/dist/accessi-module/Console/generated/model/status.js +9 -0
  440. package/dist/accessi-module/Console/generated/model/status.js.map +1 -0
  441. package/dist/accessi-module/Console/generated/model/tipoFiltro.d.ts +23 -0
  442. package/dist/accessi-module/Console/generated/model/tipoFiltro.js +3 -0
  443. package/dist/accessi-module/Console/generated/model/tipoFiltro.js.map +1 -0
  444. package/dist/accessi-module/Console/generated/model/tipoFiltroFlgEnabled.d.ts +14 -0
  445. package/dist/accessi-module/Console/generated/model/tipoFiltroFlgEnabled.js +15 -0
  446. package/dist/accessi-module/Console/generated/model/tipoFiltroFlgEnabled.js.map +1 -0
  447. package/dist/accessi-module/Console/generated/model/tokenResult.d.ts +15 -0
  448. package/dist/accessi-module/Console/generated/model/tokenResult.js +3 -0
  449. package/dist/accessi-module/Console/generated/model/tokenResult.js.map +1 -0
  450. package/dist/accessi-module/Console/generated/model/tokenResultType.d.ts +14 -0
  451. package/dist/accessi-module/Console/generated/model/tokenResultType.js +15 -0
  452. package/dist/accessi-module/Console/generated/model/tokenResultType.js.map +1 -0
  453. package/dist/accessi-module/Console/generated/model/twoFactorChallengeDto.d.ts +18 -0
  454. package/dist/accessi-module/Console/generated/model/twoFactorChallengeDto.js +3 -0
  455. package/dist/accessi-module/Console/generated/model/twoFactorChallengeDto.js.map +1 -0
  456. package/dist/accessi-module/Console/generated/model/twoFactorChallengeDtoMethod.d.ts +10 -0
  457. package/dist/accessi-module/Console/generated/model/twoFactorChallengeDtoMethod.js +14 -0
  458. package/dist/accessi-module/Console/generated/model/twoFactorChallengeDtoMethod.js.map +1 -0
  459. package/dist/accessi-module/Console/generated/model/twoFactorChallengeDtoTwoFactorRequired.d.ts +13 -0
  460. package/dist/accessi-module/Console/generated/model/twoFactorChallengeDtoTwoFactorRequired.js +14 -0
  461. package/dist/accessi-module/Console/generated/model/twoFactorChallengeDtoTwoFactorRequired.js.map +1 -0
  462. package/dist/accessi-module/Console/generated/model/updateEnabledStatusRequest.d.ts +10 -0
  463. package/dist/accessi-module/Console/generated/model/updateEnabledStatusRequest.js +9 -0
  464. package/dist/accessi-module/Console/generated/model/updateEnabledStatusRequest.js.map +1 -0
  465. package/dist/accessi-module/Console/generated/model/updateFederatedIdentityRequest.d.ts +11 -0
  466. package/dist/accessi-module/Console/generated/model/updateFederatedIdentityRequest.js +9 -0
  467. package/dist/accessi-module/Console/generated/model/updateFederatedIdentityRequest.js.map +1 -0
  468. package/dist/accessi-module/Console/generated/model/updateFederatedProviderRequest.d.ts +12 -0
  469. package/dist/accessi-module/Console/generated/model/updateFederatedProviderRequest.js +9 -0
  470. package/dist/accessi-module/Console/generated/model/updateFederatedProviderRequest.js.map +1 -0
  471. package/dist/accessi-module/Console/generated/model/updateFilterTypeRequest.d.ts +21 -0
  472. package/dist/accessi-module/Console/generated/model/updateFilterTypeRequest.js +3 -0
  473. package/dist/accessi-module/Console/generated/model/updateFilterTypeRequest.js.map +1 -0
  474. package/dist/accessi-module/Console/generated/model/updateFilterTypeRequestFlgEnabled.d.ts +14 -0
  475. package/dist/accessi-module/Console/generated/model/updateFilterTypeRequestFlgEnabled.js +15 -0
  476. package/dist/accessi-module/Console/generated/model/updateFilterTypeRequestFlgEnabled.js.map +1 -0
  477. package/dist/accessi-module/Console/generated/model/updateMenuGroupRequest.d.ts +17 -0
  478. package/dist/accessi-module/Console/generated/model/updateMenuGroupRequest.js +9 -0
  479. package/dist/accessi-module/Console/generated/model/updateMenuGroupRequest.js.map +1 -0
  480. package/dist/accessi-module/Console/generated/model/updateMenuRequest.d.ts +47 -0
  481. package/dist/accessi-module/Console/generated/model/updateMenuRequest.js +9 -0
  482. package/dist/accessi-module/Console/generated/model/updateMenuRequest.js.map +1 -0
  483. package/dist/accessi-module/Console/generated/model/updateMenuTypeRequest.d.ts +13 -0
  484. package/dist/accessi-module/Console/generated/model/updateMenuTypeRequest.js +9 -0
  485. package/dist/accessi-module/Console/generated/model/updateMenuTypeRequest.js.map +1 -0
  486. package/dist/accessi-module/Console/generated/model/updateScopeRequest.d.ts +13 -0
  487. package/dist/accessi-module/Console/generated/model/updateScopeRequest.js +9 -0
  488. package/dist/accessi-module/Console/generated/model/updateScopeRequest.js.map +1 -0
  489. package/dist/accessi-module/Console/generated/model/userDto.d.ts +88 -0
  490. package/dist/accessi-module/Console/generated/model/userDto.js +3 -0
  491. package/dist/accessi-module/Console/generated/model/userDto.js.map +1 -0
  492. package/dist/accessi-module/Console/generated/model/userDtoStatoRegistrazione.d.ts +18 -0
  493. package/dist/accessi-module/Console/generated/model/userDtoStatoRegistrazione.js +19 -0
  494. package/dist/accessi-module/Console/generated/model/userDtoStatoRegistrazione.js.map +1 -0
  495. package/dist/accessi-module/Console/generated/model/userGrantsDto.d.ts +16 -0
  496. package/dist/accessi-module/Console/generated/model/userGrantsDto.js +3 -0
  497. package/dist/accessi-module/Console/generated/model/userGrantsDto.js.map +1 -0
  498. package/dist/accessi-module/Console/generated/model/userGrantsResponse.d.ts +14 -0
  499. package/dist/accessi-module/Console/generated/model/userGrantsResponse.js +3 -0
  500. package/dist/accessi-module/Console/generated/model/userGrantsResponse.js.map +1 -0
  501. package/dist/accessi-module/Console/generated/model/verifyTwoFactorRequest.d.ts +20 -0
  502. package/dist/accessi-module/Console/generated/model/verifyTwoFactorRequest.js +9 -0
  503. package/dist/accessi-module/Console/generated/model/verifyTwoFactorRequest.js.map +1 -0
  504. package/dist/accessi-module/Console/help.d.ts +13 -0
  505. package/dist/accessi-module/Console/help.js +417 -0
  506. package/dist/accessi-module/Console/help.js.map +1 -0
  507. package/dist/accessi-module/Console/index.html +141 -0
  508. package/dist/accessi-module/Console/wiki.d.ts +52 -0
  509. package/dist/accessi-module/Console/wiki.js +867 -0
  510. package/dist/accessi-module/Console/wiki.js.map +1 -0
  511. package/dist/accessi-module/Controllers/AccessiAuditController.d.ts +16 -0
  512. package/dist/accessi-module/Controllers/AccessiAuditController.js +155 -0
  513. package/dist/accessi-module/Controllers/AccessiAuditController.js.map +1 -0
  514. package/dist/accessi-module/Controllers/AccessiConsoleController.d.ts +25 -0
  515. package/dist/accessi-module/Controllers/AccessiConsoleController.js +169 -0
  516. package/dist/accessi-module/Controllers/AccessiConsoleController.js.map +1 -0
  517. package/dist/accessi-module/Controllers/AccessiIntrospectionController.d.ts +17 -0
  518. package/dist/accessi-module/Controllers/AccessiIntrospectionController.js +102 -0
  519. package/dist/accessi-module/Controllers/AccessiIntrospectionController.js.map +1 -0
  520. package/dist/accessi-module/Controllers/AuthController.d.ts +16 -6
  521. package/dist/accessi-module/Controllers/AuthController.js +435 -85
  522. package/dist/accessi-module/Controllers/AuthController.js.map +1 -1
  523. package/dist/accessi-module/Controllers/ConfiguratorController.d.ts +1 -5
  524. package/dist/accessi-module/Controllers/ConfiguratorController.js +26 -44
  525. package/dist/accessi-module/Controllers/ConfiguratorController.js.map +1 -1
  526. package/dist/accessi-module/Controllers/ConsoleEntryController.d.ts +16 -0
  527. package/dist/accessi-module/Controllers/ConsoleEntryController.js +159 -0
  528. package/dist/accessi-module/Controllers/ConsoleEntryController.js.map +1 -0
  529. package/dist/accessi-module/Controllers/EmailController.d.ts +4 -6
  530. package/dist/accessi-module/Controllers/EmailController.js +13 -15
  531. package/dist/accessi-module/Controllers/EmailController.js.map +1 -1
  532. package/dist/accessi-module/Controllers/FiltriController.d.ts +12 -4
  533. package/dist/accessi-module/Controllers/FiltriController.js +153 -6
  534. package/dist/accessi-module/Controllers/FiltriController.js.map +1 -1
  535. package/dist/accessi-module/Controllers/PermissionController.d.ts +31 -5
  536. package/dist/accessi-module/Controllers/PermissionController.js +559 -66
  537. package/dist/accessi-module/Controllers/PermissionController.js.map +1 -1
  538. package/dist/accessi-module/Controllers/SchemaController.d.ts +9 -0
  539. package/dist/accessi-module/Controllers/SchemaController.js +79 -0
  540. package/dist/accessi-module/Controllers/SchemaController.js.map +1 -0
  541. package/dist/accessi-module/Controllers/ServiceTokenController.d.ts +23 -0
  542. package/dist/accessi-module/Controllers/ServiceTokenController.js +176 -0
  543. package/dist/accessi-module/Controllers/ServiceTokenController.js.map +1 -0
  544. package/dist/accessi-module/Controllers/UserController.d.ts +22 -5
  545. package/dist/accessi-module/Controllers/UserController.js +385 -33
  546. package/dist/accessi-module/Controllers/UserController.js.map +1 -1
  547. package/dist/accessi-module/Dtos/Abilitazione.js.map +1 -1
  548. package/dist/accessi-module/Dtos/AbilitazioneMenu.js +16 -8
  549. package/dist/accessi-module/Dtos/AbilitazioneMenu.js.map +1 -1
  550. package/dist/accessi-module/Dtos/AdminBootstrapDtos.d.ts +26 -0
  551. package/dist/accessi-module/Dtos/AdminBootstrapDtos.js +100 -0
  552. package/dist/accessi-module/Dtos/AdminBootstrapDtos.js.map +1 -0
  553. package/dist/accessi-module/Dtos/AssignPermissionsToUserRequest.js +0 -1
  554. package/dist/accessi-module/Dtos/AssignPermissionsToUserRequest.js.map +1 -1
  555. package/dist/accessi-module/Dtos/AssignRolesToUserRequest.js +1 -2
  556. package/dist/accessi-module/Dtos/AssignRolesToUserRequest.js.map +1 -1
  557. package/dist/accessi-module/Dtos/AuditDtos.d.ts +10 -0
  558. package/dist/accessi-module/Dtos/AuditDtos.js +68 -0
  559. package/dist/accessi-module/Dtos/AuditDtos.js.map +1 -0
  560. package/dist/accessi-module/Dtos/AuthenticatedUserPayloadDto.d.ts +13 -0
  561. package/dist/accessi-module/Dtos/AuthenticatedUserPayloadDto.js +70 -0
  562. package/dist/accessi-module/Dtos/AuthenticatedUserPayloadDto.js.map +1 -0
  563. package/dist/accessi-module/Dtos/BaseResponse.d.ts +22 -0
  564. package/dist/accessi-module/Dtos/BaseResponse.js +106 -1
  565. package/dist/accessi-module/Dtos/BaseResponse.js.map +1 -1
  566. package/dist/accessi-module/Dtos/CatalogDtos.d.ts +64 -0
  567. package/dist/accessi-module/Dtos/CatalogDtos.js +322 -0
  568. package/dist/accessi-module/Dtos/CatalogDtos.js.map +1 -0
  569. package/dist/accessi-module/Dtos/ConfirmResetPasswordRequest.d.ts +3 -0
  570. package/dist/accessi-module/Dtos/ConfirmResetPasswordRequest.js +31 -0
  571. package/dist/accessi-module/Dtos/ConfirmResetPasswordRequest.js.map +1 -0
  572. package/dist/accessi-module/Dtos/ConsoleEntryDtos.d.ts +24 -0
  573. package/dist/accessi-module/Dtos/ConsoleEntryDtos.js +77 -0
  574. package/dist/accessi-module/Dtos/ConsoleEntryDtos.js.map +1 -0
  575. package/dist/accessi-module/Dtos/FederatedExchangeDtos.d.ts +21 -0
  576. package/dist/accessi-module/Dtos/FederatedExchangeDtos.js +74 -0
  577. package/dist/accessi-module/Dtos/FederatedExchangeDtos.js.map +1 -0
  578. package/dist/accessi-module/Dtos/FederatedIdentityDtos.d.ts +69 -0
  579. package/dist/accessi-module/Dtos/FederatedIdentityDtos.js +236 -0
  580. package/dist/accessi-module/Dtos/FederatedIdentityDtos.js.map +1 -0
  581. package/dist/accessi-module/Dtos/FiltriUtente.js +5 -1
  582. package/dist/accessi-module/Dtos/FiltriUtente.js.map +1 -1
  583. package/dist/accessi-module/Dtos/GetGroupsWithMenusResponse.js.map +1 -1
  584. package/dist/accessi-module/Dtos/GetMenusResponse.js +1 -1
  585. package/dist/accessi-module/Dtos/GetMenusResponse.js.map +1 -1
  586. package/dist/accessi-module/Dtos/GetRolesResponse.js.map +1 -1
  587. package/dist/accessi-module/Dtos/GetUserByTokenRequest.d.ts +3 -0
  588. package/dist/accessi-module/Dtos/GetUserByTokenRequest.js +27 -0
  589. package/dist/accessi-module/Dtos/GetUserByTokenRequest.js.map +1 -0
  590. package/dist/accessi-module/Dtos/GetUserByTokenResponse.d.ts +5 -0
  591. package/dist/accessi-module/Dtos/GetUserByTokenResponse.js +27 -0
  592. package/dist/accessi-module/Dtos/GetUserByTokenResponse.js.map +1 -0
  593. package/dist/accessi-module/Dtos/GetUsersResponse.d.ts +1 -1
  594. package/dist/accessi-module/Dtos/GetUsersResponse.js.map +1 -1
  595. package/dist/accessi-module/Dtos/IntrospectionDtos.d.ts +16 -0
  596. package/dist/accessi-module/Dtos/IntrospectionDtos.js +59 -0
  597. package/dist/accessi-module/Dtos/IntrospectionDtos.js.map +1 -0
  598. package/dist/accessi-module/Dtos/LoginAsDtos.d.ts +15 -0
  599. package/dist/accessi-module/Dtos/LoginAsDtos.js +68 -0
  600. package/dist/accessi-module/Dtos/LoginAsDtos.js.map +1 -0
  601. package/dist/accessi-module/Dtos/LoginRequest.d.ts +3 -1
  602. package/dist/accessi-module/Dtos/LoginRequest.js +13 -2
  603. package/dist/accessi-module/Dtos/LoginRequest.js.map +1 -1
  604. package/dist/accessi-module/Dtos/LoginResponse.d.ts +7 -2
  605. package/dist/accessi-module/Dtos/LoginResponse.js +26 -7
  606. package/dist/accessi-module/Dtos/LoginResponse.js.map +1 -1
  607. package/dist/accessi-module/Dtos/MenuItem.js +1 -0
  608. package/dist/accessi-module/Dtos/Permission.d.ts +1 -0
  609. package/dist/accessi-module/Dtos/Permission.js +1 -0
  610. package/dist/accessi-module/Dtos/Permission.js.map +1 -1
  611. package/dist/accessi-module/Dtos/PublicRegisterRequest.d.ts +5 -0
  612. package/dist/accessi-module/Dtos/PublicRegisterRequest.js +15 -0
  613. package/dist/accessi-module/Dtos/PublicRegisterRequest.js.map +1 -0
  614. package/dist/accessi-module/Dtos/RefreshTokenDtos.d.ts +12 -0
  615. package/dist/accessi-module/Dtos/RefreshTokenDtos.js +53 -0
  616. package/dist/accessi-module/Dtos/RefreshTokenDtos.js.map +1 -0
  617. package/dist/accessi-module/Dtos/RegisterRequest.d.ts +2 -4
  618. package/dist/accessi-module/Dtos/RegisterRequest.js +17 -27
  619. package/dist/accessi-module/Dtos/RegisterRequest.js.map +1 -1
  620. package/dist/accessi-module/Dtos/RegisterResponse.d.ts +1 -1
  621. package/dist/accessi-module/Dtos/RegisterResponse.js +3 -3
  622. package/dist/accessi-module/Dtos/RegisterResponse.js.map +1 -1
  623. package/dist/accessi-module/Dtos/RevokeTokenRequest.d.ts +3 -0
  624. package/dist/accessi-module/Dtos/RevokeTokenRequest.js +27 -0
  625. package/dist/accessi-module/Dtos/RevokeTokenRequest.js.map +1 -0
  626. package/dist/accessi-module/Dtos/Role.d.ts +4 -0
  627. package/dist/accessi-module/Dtos/Role.js +4 -0
  628. package/dist/accessi-module/Dtos/Role.js.map +1 -1
  629. package/dist/accessi-module/Dtos/RuoliMenu.js.map +1 -1
  630. package/dist/accessi-module/Dtos/SchemaDtos.d.ts +19 -0
  631. package/dist/accessi-module/Dtos/SchemaDtos.js +84 -0
  632. package/dist/accessi-module/Dtos/SchemaDtos.js.map +1 -0
  633. package/dist/accessi-module/Dtos/ScopeDtos.d.ts +28 -0
  634. package/dist/accessi-module/Dtos/ScopeDtos.js +103 -0
  635. package/dist/accessi-module/Dtos/ScopeDtos.js.map +1 -0
  636. package/dist/accessi-module/Dtos/SendResetPasswordEmailRequest.d.ts +4 -0
  637. package/dist/accessi-module/Dtos/SendResetPasswordEmailRequest.js +36 -0
  638. package/dist/accessi-module/Dtos/SendResetPasswordEmailRequest.js.map +1 -0
  639. package/dist/accessi-module/Dtos/ServiceToken.d.ts +34 -0
  640. package/dist/accessi-module/Dtos/ServiceToken.js +128 -0
  641. package/dist/accessi-module/Dtos/ServiceToken.js.map +1 -0
  642. package/dist/accessi-module/Dtos/SetStatoRegistrazione.js.map +1 -1
  643. package/dist/accessi-module/Dtos/SetUserPasswordRequest.d.ts +4 -0
  644. package/dist/accessi-module/Dtos/SetUserPasswordRequest.js +32 -0
  645. package/dist/accessi-module/Dtos/SetUserPasswordRequest.js.map +1 -0
  646. package/dist/accessi-module/Dtos/StatoRegistrazione.js.map +1 -1
  647. package/dist/accessi-module/Dtos/TipoAbilitazione.d.ts +4 -0
  648. package/dist/accessi-module/Dtos/TipoAbilitazione.js +4 -0
  649. package/dist/accessi-module/Dtos/TipoAbilitazione.js.map +1 -1
  650. package/dist/accessi-module/Dtos/TipoFiltro.js.map +1 -1
  651. package/dist/accessi-module/Dtos/TokenResult.js.map +1 -1
  652. package/dist/accessi-module/Dtos/TwoFactorDtos.d.ts +14 -0
  653. package/dist/accessi-module/Dtos/TwoFactorDtos.js +71 -0
  654. package/dist/accessi-module/Dtos/TwoFactorDtos.js.map +1 -0
  655. package/dist/accessi-module/Dtos/UpdateEnabledStatusRequest.js.map +1 -1
  656. package/dist/accessi-module/Dtos/UserDto.d.ts +9 -4
  657. package/dist/accessi-module/Dtos/UserDto.js +37 -22
  658. package/dist/accessi-module/Dtos/UserDto.js.map +1 -1
  659. package/dist/accessi-module/Dtos/UserGrantsDto.js.map +1 -1
  660. package/dist/accessi-module/Dtos/UserGrantsResponse.d.ts +5 -0
  661. package/dist/accessi-module/Dtos/UserGrantsResponse.js +27 -0
  662. package/dist/accessi-module/Dtos/UserGrantsResponse.js.map +1 -0
  663. package/dist/accessi-module/Dtos/index.d.ts +20 -0
  664. package/dist/accessi-module/Dtos/index.js +20 -0
  665. package/dist/accessi-module/Dtos/index.js.map +1 -1
  666. package/dist/accessi-module/Services/AdminBootstrapService/AdminBootstrapService.d.ts +33 -0
  667. package/dist/accessi-module/Services/AdminBootstrapService/AdminBootstrapService.js +106 -0
  668. package/dist/accessi-module/Services/AdminBootstrapService/AdminBootstrapService.js.map +1 -0
  669. package/dist/accessi-module/Services/AuthService/AuthService.d.ts +108 -5
  670. package/dist/accessi-module/Services/AuthService/AuthService.js +458 -54
  671. package/dist/accessi-module/Services/AuthService/AuthService.js.map +1 -1
  672. package/dist/accessi-module/Services/ConfiguratorService/ConfiguratorService.d.ts +3 -1
  673. package/dist/accessi-module/Services/ConfiguratorService/ConfiguratorService.js +5 -1
  674. package/dist/accessi-module/Services/ConfiguratorService/ConfiguratorService.js.map +1 -1
  675. package/dist/accessi-module/Services/EmailService/EmailService.d.ts +9 -2
  676. package/dist/accessi-module/Services/EmailService/EmailService.js +47 -22
  677. package/dist/accessi-module/Services/EmailService/EmailService.js.map +1 -1
  678. package/dist/accessi-module/Services/FiltriService/FiltriService.d.ts +18 -3
  679. package/dist/accessi-module/Services/FiltriService/FiltriService.js +92 -16
  680. package/dist/accessi-module/Services/FiltriService/FiltriService.js.map +1 -1
  681. package/dist/accessi-module/Services/PermissionService/PermissionService.d.ts +107 -5
  682. package/dist/accessi-module/Services/PermissionService/PermissionService.js +788 -215
  683. package/dist/accessi-module/Services/PermissionService/PermissionService.js.map +1 -1
  684. package/dist/accessi-module/Services/SchemaExportService/SchemaExportService.d.ts +36 -0
  685. package/dist/accessi-module/Services/SchemaExportService/SchemaExportService.js +125 -0
  686. package/dist/accessi-module/Services/SchemaExportService/SchemaExportService.js.map +1 -0
  687. package/dist/accessi-module/Services/ServiceTokenService/ServiceTokenService.d.ts +75 -0
  688. package/dist/accessi-module/Services/ServiceTokenService/ServiceTokenService.js +265 -0
  689. package/dist/accessi-module/Services/ServiceTokenService/ServiceTokenService.js.map +1 -0
  690. package/dist/accessi-module/Services/TwoFactorService/TwoFactorService.d.ts +27 -0
  691. package/dist/accessi-module/Services/TwoFactorService/TwoFactorService.js +175 -0
  692. package/dist/accessi-module/Services/TwoFactorService/TwoFactorService.js.map +1 -0
  693. package/dist/accessi-module/Services/UserService/UserService.d.ts +73 -5
  694. package/dist/accessi-module/Services/UserService/UserService.js +578 -337
  695. package/dist/accessi-module/Services/UserService/UserService.js.map +1 -1
  696. package/dist/accessi-module/Views/reset-password.html +229 -213
  697. package/dist/accessi-module/accessiRuntime.d.ts +45 -0
  698. package/dist/accessi-module/accessiRuntime.js +39 -0
  699. package/dist/accessi-module/accessiRuntime.js.map +1 -0
  700. package/dist/accessi-module/database-updates/AccessiCatalogMigrator.d.ts +83 -0
  701. package/dist/accessi-module/database-updates/AccessiCatalogMigrator.js +360 -0
  702. package/dist/accessi-module/database-updates/AccessiCatalogMigrator.js.map +1 -0
  703. package/dist/accessi-module/database-updates/AccessiDatabaseUpdater.d.ts +58 -11
  704. package/dist/accessi-module/database-updates/AccessiDatabaseUpdater.js +504 -210
  705. package/dist/accessi-module/database-updates/AccessiDatabaseUpdater.js.map +1 -1
  706. package/dist/accessi-module/database-updates/accessiOptionsFromEnv.d.ts +17 -0
  707. package/dist/accessi-module/database-updates/accessiOptionsFromEnv.js +134 -0
  708. package/dist/accessi-module/database-updates/accessiOptionsFromEnv.js.map +1 -0
  709. package/dist/accessi-module/database-updates/accessiSchema.d.ts +67 -0
  710. package/dist/accessi-module/database-updates/accessiSchema.js +135 -0
  711. package/dist/accessi-module/database-updates/accessiSchema.js.map +1 -0
  712. package/dist/accessi-module/database-updates/menuScopeSeed.d.ts +15 -0
  713. package/dist/accessi-module/database-updates/menuScopeSeed.js +386 -0
  714. package/dist/accessi-module/database-updates/menuScopeSeed.js.map +1 -0
  715. package/dist/accessi-module/database-updates/menuScopeSeeder.d.ts +8 -0
  716. package/dist/accessi-module/database-updates/menuScopeSeeder.js +131 -0
  717. package/dist/accessi-module/database-updates/menuScopeSeeder.js.map +1 -0
  718. package/dist/accessi-module/database-updates/optionalColumns.d.ts +7 -0
  719. package/dist/accessi-module/database-updates/optionalColumns.js +58 -0
  720. package/dist/accessi-module/database-updates/optionalColumns.js.map +1 -0
  721. package/dist/accessi-module/database-updates/runAccessiCatalogMigrations.d.ts +1 -0
  722. package/dist/accessi-module/database-updates/runAccessiCatalogMigrations.js +69 -0
  723. package/dist/accessi-module/database-updates/runAccessiCatalogMigrations.js.map +1 -0
  724. package/dist/accessi-module/database-updates/runAccessiDbUpdate.js +18 -53
  725. package/dist/accessi-module/database-updates/runAccessiDbUpdate.js.map +1 -1
  726. package/dist/accessi-module/federated-auth/FederatedAuthController.d.ts +33 -0
  727. package/dist/accessi-module/federated-auth/FederatedAuthController.js +373 -0
  728. package/dist/accessi-module/federated-auth/FederatedAuthController.js.map +1 -0
  729. package/dist/accessi-module/federated-auth/FederatedAuthExchangeController.d.ts +15 -0
  730. package/dist/accessi-module/federated-auth/FederatedAuthExchangeController.js +85 -0
  731. package/dist/accessi-module/federated-auth/FederatedAuthExchangeController.js.map +1 -0
  732. package/dist/accessi-module/federated-auth/FederatedAuthService.d.ts +102 -0
  733. package/dist/accessi-module/federated-auth/FederatedAuthService.js +472 -0
  734. package/dist/accessi-module/federated-auth/FederatedAuthService.js.map +1 -0
  735. package/dist/accessi-module/federated-auth/FederatedAuthTypes.d.ts +53 -0
  736. package/dist/accessi-module/federated-auth/FederatedAuthTypes.js +3 -0
  737. package/dist/accessi-module/federated-auth/FederatedAuthTypes.js.map +1 -0
  738. package/dist/accessi-module/health/nest.d.ts +31 -0
  739. package/dist/accessi-module/health/nest.js +89 -0
  740. package/dist/accessi-module/health/nest.js.map +1 -0
  741. package/dist/accessi-module/health/readiness.d.ts +53 -0
  742. package/dist/accessi-module/health/readiness.js +110 -0
  743. package/dist/accessi-module/health/readiness.js.map +1 -0
  744. package/dist/accessi-module/index.d.ts +79 -1
  745. package/dist/accessi-module/index.js +224 -22
  746. package/dist/accessi-module/index.js.map +1 -1
  747. package/dist/accessi-module/jwt/jwt.strategy.d.ts +1 -1
  748. package/dist/accessi-module/jwt/jwt.strategy.js +21 -42
  749. package/dist/accessi-module/jwt/jwt.strategy.js.map +1 -1
  750. package/dist/accessi-module/middleware/accessiRequirements.d.ts +23 -1
  751. package/dist/accessi-module/middleware/accessiRequirements.js +7 -0
  752. package/dist/accessi-module/middleware/accessiRequirements.js.map +1 -1
  753. package/dist/accessi-module/middleware/authenticateGen.d.ts +16 -1
  754. package/dist/accessi-module/middleware/authenticateGen.js +68 -60
  755. package/dist/accessi-module/middleware/authenticateGen.js.map +1 -1
  756. package/dist/accessi-module/observability/metrics.d.ts +79 -0
  757. package/dist/accessi-module/observability/metrics.js +220 -0
  758. package/dist/accessi-module/observability/metrics.js.map +1 -0
  759. package/dist/accessi-module/observability/redisMetrics.d.ts +12 -0
  760. package/dist/accessi-module/observability/redisMetrics.js +44 -0
  761. package/dist/accessi-module/observability/redisMetrics.js.map +1 -0
  762. package/dist/accessi-module/security/AccessiHttpExceptionFilter.d.ts +12 -0
  763. package/dist/accessi-module/security/AccessiHttpExceptionFilter.js +77 -0
  764. package/dist/accessi-module/security/AccessiHttpExceptionFilter.js.map +1 -0
  765. package/dist/accessi-module/security/accessControl.d.ts +48 -2
  766. package/dist/accessi-module/security/accessControl.js +84 -8
  767. package/dist/accessi-module/security/accessControl.js.map +1 -1
  768. package/dist/accessi-module/security/accessTokenRevocation.d.ts +47 -0
  769. package/dist/accessi-module/security/accessTokenRevocation.js +148 -0
  770. package/dist/accessi-module/security/accessTokenRevocation.js.map +1 -0
  771. package/dist/accessi-module/security/accessiValidation.d.ts +9 -0
  772. package/dist/accessi-module/security/accessiValidation.js +41 -0
  773. package/dist/accessi-module/security/accessiValidation.js.map +1 -0
  774. package/dist/accessi-module/security/adminBootstrap.d.ts +8 -0
  775. package/dist/accessi-module/security/adminBootstrap.js +41 -0
  776. package/dist/accessi-module/security/adminBootstrap.js.map +1 -0
  777. package/dist/accessi-module/security/audit.d.ts +74 -0
  778. package/dist/accessi-module/security/audit.js +189 -0
  779. package/dist/accessi-module/security/audit.js.map +1 -0
  780. package/dist/accessi-module/security/auditSinks.d.ts +55 -0
  781. package/dist/accessi-module/security/auditSinks.js +228 -0
  782. package/dist/accessi-module/security/auditSinks.js.map +1 -0
  783. package/dist/accessi-module/security/authCookies.d.ts +104 -0
  784. package/dist/accessi-module/security/authCookies.js +240 -0
  785. package/dist/accessi-module/security/authCookies.js.map +1 -0
  786. package/dist/accessi-module/security/authenticatedToken.d.ts +23 -3
  787. package/dist/accessi-module/security/authenticatedToken.js +45 -5
  788. package/dist/accessi-module/security/authenticatedToken.js.map +1 -1
  789. package/dist/accessi-module/security/consoleEntry.d.ts +63 -0
  790. package/dist/accessi-module/security/consoleEntry.js +202 -0
  791. package/dist/accessi-module/security/consoleEntry.js.map +1 -0
  792. package/dist/accessi-module/security/edgeRateLimit.d.ts +33 -0
  793. package/dist/accessi-module/security/edgeRateLimit.js +84 -0
  794. package/dist/accessi-module/security/edgeRateLimit.js.map +1 -0
  795. package/dist/accessi-module/security/emailConfiguration.d.ts +20 -0
  796. package/dist/accessi-module/security/emailConfiguration.js +41 -0
  797. package/dist/accessi-module/security/emailConfiguration.js.map +1 -0
  798. package/dist/accessi-module/security/jwks.d.ts +33 -0
  799. package/dist/accessi-module/security/jwks.js +86 -0
  800. package/dist/accessi-module/security/jwks.js.map +1 -0
  801. package/dist/accessi-module/security/jwksBootstrap.d.ts +15 -0
  802. package/dist/accessi-module/security/jwksBootstrap.js +44 -0
  803. package/dist/accessi-module/security/jwksBootstrap.js.map +1 -0
  804. package/dist/accessi-module/security/jwtTokenOptions.d.ts +57 -0
  805. package/dist/accessi-module/security/jwtTokenOptions.js +173 -0
  806. package/dist/accessi-module/security/jwtTokenOptions.js.map +1 -0
  807. package/dist/accessi-module/security/loginAs.d.ts +8 -0
  808. package/dist/accessi-module/security/loginAs.js +45 -0
  809. package/dist/accessi-module/security/loginAs.js.map +1 -0
  810. package/dist/accessi-module/security/passwordPolicy.d.ts +21 -0
  811. package/dist/accessi-module/security/passwordPolicy.js +71 -0
  812. package/dist/accessi-module/security/passwordPolicy.js.map +1 -0
  813. package/dist/accessi-module/security/passwordResetToken.d.ts +13 -3
  814. package/dist/accessi-module/security/passwordResetToken.js +13 -5
  815. package/dist/accessi-module/security/passwordResetToken.js.map +1 -1
  816. package/dist/accessi-module/security/publicAuthRateLimit.d.ts +10 -8
  817. package/dist/accessi-module/security/publicAuthRateLimit.js +71 -60
  818. package/dist/accessi-module/security/publicAuthRateLimit.js.map +1 -1
  819. package/dist/accessi-module/security/rateLimitStore.d.ts +34 -0
  820. package/dist/accessi-module/security/rateLimitStore.js +147 -0
  821. package/dist/accessi-module/security/rateLimitStore.js.map +1 -0
  822. package/dist/accessi-module/security/refreshTokenRotation.d.ts +80 -0
  823. package/dist/accessi-module/security/refreshTokenRotation.js +206 -0
  824. package/dist/accessi-module/security/refreshTokenRotation.js.map +1 -0
  825. package/dist/accessi-module/security/securityHeaders.d.ts +89 -0
  826. package/dist/accessi-module/security/securityHeaders.js +155 -0
  827. package/dist/accessi-module/security/securityHeaders.js.map +1 -0
  828. package/dist/accessi-module/security/serviceTokenGuard.d.ts +27 -0
  829. package/dist/accessi-module/security/serviceTokenGuard.js +90 -0
  830. package/dist/accessi-module/security/serviceTokenGuard.js.map +1 -0
  831. package/dist/accessi-module/security/serviceTokenRateLimit.d.ts +9 -0
  832. package/dist/accessi-module/security/serviceTokenRateLimit.js +56 -0
  833. package/dist/accessi-module/security/serviceTokenRateLimit.js.map +1 -0
  834. package/dist/accessi-module/security/sessionRevocation.d.ts +67 -0
  835. package/dist/accessi-module/security/sessionRevocation.js +174 -0
  836. package/dist/accessi-module/security/sessionRevocation.js.map +1 -0
  837. package/dist/accessi-module/security/validateOptions.d.ts +19 -0
  838. package/dist/accessi-module/security/validateOptions.js +176 -0
  839. package/dist/accessi-module/security/validateOptions.js.map +1 -0
  840. package/dist/accessi-module/startupLog.d.ts +7 -0
  841. package/dist/accessi-module/startupLog.js +29 -0
  842. package/dist/accessi-module/startupLog.js.map +1 -0
  843. package/dist/allegati-module/AllegatiModule.d.ts +11 -0
  844. package/dist/allegati-module/AllegatiModule.js +11 -1
  845. package/dist/allegati-module/AllegatiModule.js.map +1 -1
  846. package/dist/allegati-module/Controllers/AllegatiController.d.ts +2 -1
  847. package/dist/allegati-module/Controllers/AllegatiController.js +23 -15
  848. package/dist/allegati-module/Controllers/AllegatiController.js.map +1 -1
  849. package/dist/allegati-module/Dtos/AllegatoDto.js.map +1 -1
  850. package/dist/allegati-module/Dtos/BaseResponse.js.map +1 -1
  851. package/dist/allegati-module/Dtos/UploadSingleFileRequest.js.map +1 -1
  852. package/dist/allegati-module/Dtos/index.js.map +1 -1
  853. package/dist/allegati-module/Dtos/responses/DownloadAllegatoResponseDto.js.map +1 -1
  854. package/dist/allegati-module/Dtos/responses/GetListResponse.js.map +1 -1
  855. package/dist/allegati-module/Dtos/responses/UploadAllegatoResponseDto.js.map +1 -1
  856. package/dist/allegati-module/Services/AllegatiService/AllegatiService.d.ts +10 -3
  857. package/dist/allegati-module/Services/AllegatiService/AllegatiService.js +150 -101
  858. package/dist/allegati-module/Services/AllegatiService/AllegatiService.js.map +1 -1
  859. package/dist/allegati-module/index.js +2 -2
  860. package/dist/allegati-module/index.js.map +1 -1
  861. package/dist/allegati-module/security/allegatiAuthorizationGuard.d.ts +14 -0
  862. package/dist/allegati-module/security/allegatiAuthorizationGuard.js +70 -0
  863. package/dist/allegati-module/security/allegatiAuthorizationGuard.js.map +1 -0
  864. package/dist/angular-components/aree-disponibili/aree-disponibili.js +1336 -0
  865. package/dist/angular-components/aree-disponibili/demo.html +232 -0
  866. package/dist/autobind.d.ts +10 -3
  867. package/dist/autobind.js +24 -9
  868. package/dist/autobind.js.map +1 -1
  869. package/dist/emilsoftware-utilities-2.0.0-dev.80.tgz +0 -0
  870. package/dist/firebird-compat.d.ts +41 -0
  871. package/dist/firebird-compat.js +54 -3
  872. package/dist/firebird-compat.js.map +1 -1
  873. package/dist/index.d.ts +11 -1
  874. package/dist/index.js +11 -1
  875. package/dist/index.js.map +1 -1
  876. package/dist/initEmilsoftwareModule.d.ts +11 -1
  877. package/dist/initEmilsoftwareModule.js +66 -14
  878. package/dist/initEmilsoftwareModule.js.map +1 -1
  879. package/dist/openapi/OpenApiConfig.d.ts +68 -0
  880. package/dist/openapi/OpenApiConfig.js +157 -0
  881. package/dist/openapi/OpenApiConfig.js.map +1 -0
  882. package/dist/openapi/OpenApiMerge.d.ts +15 -0
  883. package/dist/openapi/OpenApiMerge.js +119 -0
  884. package/dist/openapi/OpenApiMerge.js.map +1 -0
  885. package/dist/scripts/generateAccessiOpenApi.d.ts +1 -0
  886. package/dist/scripts/generateAccessiOpenApi.js +57 -0
  887. package/dist/scripts/generateAccessiOpenApi.js.map +1 -0
  888. package/dist/scripts/generateAccessiWiki.d.ts +1 -0
  889. package/dist/scripts/generateAccessiWiki.js +131 -0
  890. package/dist/scripts/generateAccessiWiki.js.map +1 -0
  891. package/dist/scripts/startAccessiService.d.ts +1 -0
  892. package/dist/scripts/startAccessiService.js +11 -0
  893. package/dist/scripts/startAccessiService.js.map +1 -0
  894. package/docs/accessi-openapi-baseline.json +4500 -0
  895. package/docs/accessi-openapi-breaking-allowlist.json +1 -0
  896. package/docs/accessi-openapi-fingerprint.json +192 -0
  897. package/docs/adr/0001-split-package.md +79 -0
  898. package/docs/adr/0002-multi-tenancy.md +154 -0
  899. package/docs/audit.md +136 -0
  900. package/docs/auth-cookies.md +123 -0
  901. package/docs/gateway-rate-limit.md +98 -0
  902. package/docs/import-migration.md +65 -0
  903. package/docs/jwt-key-rotation.md +143 -0
  904. package/docs/metrics.md +153 -0
  905. package/docs/multi-tenancy.md +305 -0
  906. package/docs/proxy-ip.md +99 -0
  907. package/docs/redis-load-testing.md +88 -0
  908. package/docs/security-headers.md +151 -0
  909. package/docs/standalone-service.md +201 -0
  910. package/integration-prompt.md +776 -0
  911. package/package.json +237 -83
  912. package/dist/swagger/SwaggerConfig.d.ts +0 -2
  913. package/dist/swagger/SwaggerConfig.js +0 -26
  914. package/dist/swagger/SwaggerConfig.js.map +0 -1
@@ -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,148 @@
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 redisMetrics_1 = require("../observability/redisMetrics");
20
+ 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";
21
+ const IS_REVOKED_SCRIPT = "return redis.call('EXISTS', KEYS[1])";
22
+ function createMemoryAccessTokenRevocationStore() {
23
+ const revoked = new Map();
24
+ const prune = (now) => {
25
+ for (const [jti, expiresAt] of revoked) {
26
+ if (expiresAt <= now)
27
+ revoked.delete(jti);
28
+ }
29
+ };
30
+ return {
31
+ revoke(jti, expiresAtMs) {
32
+ return __awaiter(this, void 0, void 0, function* () {
33
+ const now = Date.now();
34
+ prune(now);
35
+ revoked.set(jti, Math.max(expiresAtMs, now + 1));
36
+ });
37
+ },
38
+ isRevoked(jti) {
39
+ return __awaiter(this, void 0, void 0, function* () {
40
+ const expiresAt = revoked.get(jti);
41
+ if (expiresAt === undefined)
42
+ return false;
43
+ if (expiresAt <= Date.now()) {
44
+ revoked.delete(jti);
45
+ return false;
46
+ }
47
+ return true;
48
+ });
49
+ },
50
+ healthCheck() {
51
+ return __awaiter(this, void 0, void 0, function* () {
52
+ return true;
53
+ });
54
+ },
55
+ clear() {
56
+ revoked.clear();
57
+ },
58
+ };
59
+ }
60
+ /** Store Redis per la revoca dei singoli access token. */
61
+ function createRedisAccessTokenRevocationStore(options) {
62
+ var _a, _b;
63
+ if (!(options === null || options === void 0 ? void 0 : options.client) || typeof options.client.eval !== 'function') {
64
+ throw new Error('Redis access token revocation store: client.eval non configurato.');
65
+ }
66
+ const keyPrefix = ((_a = options.keyPrefix) !== null && _a !== void 0 ? _a : 'accessi:revoked-token:').replace(/:+$/, ':');
67
+ const ttlMs = Math.max(0, Math.trunc((_b = options.ttlMs) !== null && _b !== void 0 ? _b : 24 * 60 * 60 * 1000));
68
+ const client = (0, redisMetrics_1.instrumentAccessiRedisClient)('access_token_revocation', options.client);
69
+ return {
70
+ revoke(jti, expiresAtMs) {
71
+ return __awaiter(this, void 0, void 0, function* () {
72
+ // Se il token e gia scaduto non serve conservare la revoca a lungo: una
73
+ // chiave senza TTL resterebbe per sempre. Il minimo di 1 ms la fa sparire
74
+ // subito, come nello store in memoria.
75
+ const ttl = Number.isFinite(expiresAtMs)
76
+ ? Math.max(1, Math.trunc(expiresAtMs - Date.now()))
77
+ : ttlMs;
78
+ yield client.eval(REVOKE_SCRIPT, 1, `${keyPrefix}${jti}`, ttl);
79
+ });
80
+ },
81
+ isRevoked(jti) {
82
+ return __awaiter(this, void 0, void 0, function* () {
83
+ const result = yield client.eval(IS_REVOKED_SCRIPT, 1, `${keyPrefix}${jti}`);
84
+ return Number(result) > 0;
85
+ });
86
+ },
87
+ healthCheck() {
88
+ return __awaiter(this, void 0, void 0, function* () {
89
+ try {
90
+ const result = yield client.eval("return redis.call('PING')", 0);
91
+ return String(result).toUpperCase() === 'PONG';
92
+ }
93
+ catch (_a) {
94
+ return false;
95
+ }
96
+ });
97
+ },
98
+ };
99
+ }
100
+ const defaultMemoryStore = createMemoryAccessTokenRevocationStore();
101
+ function getAccessTokenRevocationStore(options) {
102
+ var _a, _b, _c;
103
+ if (((_a = options.accessTokenRevocation) === null || _a === void 0 ? void 0 : _a.enabled) === false)
104
+ return undefined;
105
+ if ((_b = options.accessTokenRevocation) === null || _b === void 0 ? void 0 : _b.store)
106
+ return options.accessTokenRevocation.store;
107
+ return ((_c = options.accessTokenRevocation) === null || _c === void 0 ? void 0 : _c.enabled) === true ? defaultMemoryStore : undefined;
108
+ }
109
+ /** True se il `jti` del token risulta revocato. */
110
+ function isAccessiAccessTokenRevoked(options, payload) {
111
+ return __awaiter(this, void 0, void 0, function* () {
112
+ const store = getAccessTokenRevocationStore(options);
113
+ if (!store)
114
+ return false;
115
+ const jti = typeof payload.jti === 'string' ? payload.jti : undefined;
116
+ if (!jti)
117
+ return false;
118
+ return store.isRevoked(jti);
119
+ });
120
+ }
121
+ /** Revoca un singolo access token. Richiede uno store configurato. */
122
+ function revokeAccessiAccessToken(options, jti, expiresAtMs) {
123
+ return __awaiter(this, void 0, void 0, function* () {
124
+ var _a, _b;
125
+ const store = getAccessTokenRevocationStore(options);
126
+ if (!store)
127
+ throw new Error('Access token revocation store non configurato.');
128
+ if (typeof jti !== 'string' || jti.trim() === '') {
129
+ throw new Error('jti non valido.');
130
+ }
131
+ 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));
132
+ yield store.revoke(jti, expiresAtMs !== null && expiresAtMs !== void 0 ? expiresAtMs : Date.now() + ttlMs);
133
+ });
134
+ }
135
+ /** Variante per i flussi applicativi: no-op se la revoca non e configurata. */
136
+ function revokeAccessiAccessTokenIfConfigured(options, jti, expiresAtMs) {
137
+ return __awaiter(this, void 0, void 0, function* () {
138
+ if (!getAccessTokenRevocationStore(options))
139
+ return false;
140
+ yield revokeAccessiAccessToken(options, jti, expiresAtMs);
141
+ return true;
142
+ });
143
+ }
144
+ /** Solo per test: azzera lo store in memoria di default. */
145
+ function clearDefaultAccessTokenRevocations() {
146
+ defaultMemoryStore.clear();
147
+ }
148
+ //# 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';\nimport { instrumentAccessiRedisClient } from '../observability/redisMetrics';\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 const client = instrumentAccessiRedisClient('access_token_revocation', options.client);\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 client.eval(REVOKE_SCRIPT, 1, `${keyPrefix}${jti}`, ttl);\n },\n\n async isRevoked(jti) {\n const result = await client.eval(IS_REVOKED_SCRIPT, 1, `${keyPrefix}${jti}`);\n return Number(result) > 0;\n },\n\n async healthCheck() {\n try {\n const result = await 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;
@@ -0,0 +1,41 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getOrCreateAdminBootstrapToken = getOrCreateAdminBootstrapToken;
4
+ exports.getAdminBootstrapToken = getAdminBootstrapToken;
5
+ exports.clearAdminBootstrapToken = clearAdminBootstrapToken;
6
+ exports.isValidAdminBootstrapToken = isValidAdminBootstrapToken;
7
+ const crypto_1 = require("crypto");
8
+ /**
9
+ * Token di bootstrap admin, valido per il singolo processo Accessi.
10
+ * Viene generato al primo accesso (avvio del modulo) e rigenerato a ogni riavvio: non e mai
11
+ * persistito ne restituito via API, e viene stampato solo nel log del backend.
12
+ */
13
+ let processToken = null;
14
+ /** Genera (una sola volta per processo) il token di bootstrap admin. */
15
+ function getOrCreateAdminBootstrapToken() {
16
+ if (!processToken) {
17
+ processToken = (0, crypto_1.randomBytes)(32).toString('hex');
18
+ }
19
+ return processToken;
20
+ }
21
+ /** Token corrente, oppure null se non ancora generato. */
22
+ function getAdminBootstrapToken() {
23
+ return processToken;
24
+ }
25
+ /** Invalida il token (usato dopo un bootstrap riuscito per renderlo monouso). */
26
+ function clearAdminBootstrapToken() {
27
+ processToken = null;
28
+ }
29
+ /** Confronto a tempo costante del token candidato con quello generato. */
30
+ function isValidAdminBootstrapToken(candidate) {
31
+ if (!processToken || typeof candidate !== 'string' || candidate.length === 0) {
32
+ return false;
33
+ }
34
+ const expected = Buffer.from(processToken, 'utf8');
35
+ const provided = Buffer.from(candidate, 'utf8');
36
+ if (expected.length !== provided.length) {
37
+ return false;
38
+ }
39
+ return (0, crypto_1.timingSafeEqual)(expected, provided);
40
+ }
41
+ //# sourceMappingURL=adminBootstrap.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"adminBootstrap.js","sourceRoot":"","sources":["../../../src/accessi-module/security/adminBootstrap.ts"],"names":[],"mappings":";;AAUA,wEAKC;AAGD,wDAEC;AAGD,4DAEC;AAGD,gEAYC;AAxCD,mCAAsD;AAEtD;;;;GAIG;AACH,IAAI,YAAY,GAAkB,IAAI,CAAC;AAEvC,wEAAwE;AACxE,SAAgB,8BAA8B;IAC5C,IAAI,CAAC,YAAY,EAAE,CAAC;QAClB,YAAY,GAAG,IAAA,oBAAW,EAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IACjD,CAAC;IACD,OAAO,YAAY,CAAC;AACtB,CAAC;AAED,0DAA0D;AAC1D,SAAgB,sBAAsB;IACpC,OAAO,YAAY,CAAC;AACtB,CAAC;AAED,iFAAiF;AACjF,SAAgB,wBAAwB;IACtC,YAAY,GAAG,IAAI,CAAC;AACtB,CAAC;AAED,0EAA0E;AAC1E,SAAgB,0BAA0B,CAAC,SAAkB;IAC3D,IAAI,CAAC,YAAY,IAAI,OAAO,SAAS,KAAK,QAAQ,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC7E,OAAO,KAAK,CAAC;IACf,CAAC;IAED,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;IACnD,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;IAChD,IAAI,QAAQ,CAAC,MAAM,KAAK,QAAQ,CAAC,MAAM,EAAE,CAAC;QACxC,OAAO,KAAK,CAAC;IACf,CAAC;IAED,OAAO,IAAA,wBAAe,EAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;AAC7C,CAAC","sourcesContent":["import { randomBytes, timingSafeEqual } from 'crypto';\n\n/**\n * Token di bootstrap admin, valido per il singolo processo Accessi.\n * Viene generato al primo accesso (avvio del modulo) e rigenerato a ogni riavvio: non e mai\n * persistito ne restituito via API, e viene stampato solo nel log del backend.\n */\nlet processToken: string | null = null;\n\n/** Genera (una sola volta per processo) il token di bootstrap admin. */\nexport function getOrCreateAdminBootstrapToken(): string {\n if (!processToken) {\n processToken = randomBytes(32).toString('hex');\n }\n return processToken;\n}\n\n/** Token corrente, oppure null se non ancora generato. */\nexport function getAdminBootstrapToken(): string | null {\n return processToken;\n}\n\n/** Invalida il token (usato dopo un bootstrap riuscito per renderlo monouso). */\nexport function clearAdminBootstrapToken(): void {\n processToken = null;\n}\n\n/** Confronto a tempo costante del token candidato con quello generato. */\nexport function isValidAdminBootstrapToken(candidate: unknown): boolean {\n if (!processToken || typeof candidate !== 'string' || candidate.length === 0) {\n return false;\n }\n\n const expected = Buffer.from(processToken, 'utf8');\n const provided = Buffer.from(candidate, 'utf8');\n if (expected.length !== provided.length) {\n return false;\n }\n\n return timingSafeEqual(expected, provided);\n}\n"]}
@@ -0,0 +1,74 @@
1
+ /** Record di audit normalizzato e gia redatto. */
2
+ export interface AccessiAuditRecord {
3
+ event: string;
4
+ timestamp: string;
5
+ [key: string]: unknown;
6
+ }
7
+ /** Destinazione di un record di audit. */
8
+ export interface AccessiAuditSink {
9
+ /** Nome usato nelle metriche di errore del sink. */
10
+ name?: string;
11
+ write(record: AccessiAuditRecord): void | Promise<void>;
12
+ }
13
+ export interface AccessiAuditQuery {
14
+ event?: string;
15
+ from?: string;
16
+ to?: string;
17
+ codiceUtente?: number;
18
+ limit?: number;
19
+ offset?: number;
20
+ order?: 'asc' | 'desc';
21
+ }
22
+ export interface AccessiAuditPage {
23
+ records: AccessiAuditRecord[];
24
+ total: number;
25
+ limit: number;
26
+ offset: number;
27
+ }
28
+ /** Sink interrogabile dagli endpoint amministrativi e dalla retention. */
29
+ export interface AccessiAuditQueryableSink extends AccessiAuditSink {
30
+ query(filter?: AccessiAuditQuery): Promise<AccessiAuditPage>;
31
+ purge(before: Date): Promise<number>;
32
+ }
33
+ /** Opzioni di audit del modulo. */
34
+ export interface AccessiAuditOptions {
35
+ /** `false` disattiva i sink ma lascia il log strutturato. Default: abilitati. */
36
+ enabled?: boolean;
37
+ /** Sink aggiuntivi (HTTP, DB, OpenTelemetry). */
38
+ sinks?: AccessiAuditSink[];
39
+ /** Sink interrogabile usato da `/api/accessi/audit`. Default: primo sink queryable. */
40
+ store?: AccessiAuditQueryableSink;
41
+ /** Giorni di retention applicati ai sink queryable. Default: nessuna scadenza automatica. */
42
+ retentionDays?: number;
43
+ /** Chiavi aggiuntive da redigere, oltre a quelle predefinite. */
44
+ redact?: string[];
45
+ /** Etichetta tenant aggiunta a ogni record (multi-tenancy). */
46
+ tenantId?: string;
47
+ /** Scrivi anche sul Logger strutturato. Default: true. */
48
+ logger?: boolean;
49
+ }
50
+ /**
51
+ * Redige ricorsivamente token, segreti, cookie e header sensibili.
52
+ *
53
+ * Limita profondita, lunghezza delle stringhe e numero di elementi per evitare
54
+ * che un payload applicativo finisca per intero nell'audit.
55
+ */
56
+ export declare function redactAccessiAuditValue(value: unknown, depth?: number): unknown;
57
+ /**
58
+ * Configura i sink di audit del processo.
59
+ *
60
+ * Chiamato da `AccessiModule.forRoot`. Le opzioni sono globali: un solo modulo
61
+ * Accessi per processo e la configurazione consigliata.
62
+ */
63
+ export declare function configureAccessiAudit(options: AccessiAuditOptions | undefined): void;
64
+ /** Ripristina la configurazione iniziale (logger attivo, nessun sink). */
65
+ export declare function resetAccessiAudit(): void;
66
+ /** Sink interrogabile configurato, usato dagli endpoint amministrativi. */
67
+ export declare function getAccessiAuditStore(): AccessiAuditQueryableSink | undefined;
68
+ /**
69
+ * Registra un evento di sicurezza.
70
+ *
71
+ * Il record viene redatto prima di raggiungere logger e sink. Un sink guasto
72
+ * non interrompe mai il flusso applicativo.
73
+ */
74
+ export declare function auditAccessi(event: string, details?: Record<string, unknown>): void;
@@ -0,0 +1,189 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.redactAccessiAuditValue = redactAccessiAuditValue;
4
+ exports.configureAccessiAudit = configureAccessiAudit;
5
+ exports.resetAccessiAudit = resetAccessiAudit;
6
+ exports.getAccessiAuditStore = getAccessiAuditStore;
7
+ exports.auditAccessi = auditAccessi;
8
+ const Logger_1 = require("../../Logger");
9
+ const metrics_1 = require("../observability/metrics");
10
+ const REDACTED = '[REDACTED]';
11
+ const TRUNCATED = '[TRUNCATED]';
12
+ const DEFAULT_REDACTED_KEYS = new Set([
13
+ 'token',
14
+ 'accesstoken',
15
+ 'refreshtoken',
16
+ 'idtoken',
17
+ 'bearer',
18
+ 'jwt',
19
+ 'authorization',
20
+ 'cookie',
21
+ 'setcookie',
22
+ 'password',
23
+ 'passwordhash',
24
+ 'hashedpassword',
25
+ 'resettoken',
26
+ 'secret',
27
+ 'clientsecret',
28
+ 'privatekey',
29
+ 'apikey',
30
+ 'csrf',
31
+ 'csrftoken',
32
+ ]);
33
+ const MAX_STRING_LENGTH = 512;
34
+ const MAX_ARRAY_LENGTH = 50;
35
+ const MAX_OBJECT_KEYS = 100;
36
+ const MAX_DEPTH = 4;
37
+ const PURGE_INTERVAL_MS = 60 * 60 * 1000;
38
+ let sinks = [];
39
+ let redactedKeys = new Set(DEFAULT_REDACTED_KEYS);
40
+ let retentionDays;
41
+ let loggerEnabled = true;
42
+ let auditTenantId;
43
+ let lastPurgeAt = 0;
44
+ function normalizedKey(key) {
45
+ return key.toLowerCase().replace(/[-_\s]/g, '');
46
+ }
47
+ /**
48
+ * Redige ricorsivamente token, segreti, cookie e header sensibili.
49
+ *
50
+ * Limita profondita, lunghezza delle stringhe e numero di elementi per evitare
51
+ * che un payload applicativo finisca per intero nell'audit.
52
+ */
53
+ function redactAccessiAuditValue(value, depth = 0) {
54
+ if (depth > MAX_DEPTH)
55
+ return TRUNCATED;
56
+ if (value === null || value === undefined)
57
+ return value;
58
+ if (typeof value === 'string') {
59
+ return value.length > MAX_STRING_LENGTH ? `${value.slice(0, MAX_STRING_LENGTH - 3)}...` : value;
60
+ }
61
+ if (typeof value === 'number' || typeof value === 'boolean')
62
+ return value;
63
+ if (typeof value === 'bigint')
64
+ return value.toString();
65
+ if (value instanceof Date)
66
+ return value.toISOString();
67
+ if (value instanceof Error) {
68
+ return { name: value.name, message: redactAccessiAuditValue(value.message, depth + 1) };
69
+ }
70
+ if (Array.isArray(value)) {
71
+ return value.slice(0, MAX_ARRAY_LENGTH).map((item) => redactAccessiAuditValue(item, depth + 1));
72
+ }
73
+ if (typeof value === 'object') {
74
+ const result = {};
75
+ for (const [key, entry] of Object.entries(value).slice(0, MAX_OBJECT_KEYS)) {
76
+ result[key] = redactedKeys.has(normalizedKey(key))
77
+ ? REDACTED
78
+ : redactAccessiAuditValue(entry, depth + 1);
79
+ }
80
+ return result;
81
+ }
82
+ return String(value);
83
+ }
84
+ function redactDetails(details) {
85
+ return redactAccessiAuditValue(details);
86
+ }
87
+ function reportSinkError(sink, error) {
88
+ var _a;
89
+ (0, metrics_1.recordAccessiMetric)('accessi_audit_sink_errors_total', 1, { sink: (_a = sink.name) !== null && _a !== void 0 ? _a : 'unknown' });
90
+ try {
91
+ new Logger_1.Logger('AccessiAudit').error(`Audit sink non disponibile${sink.name ? ` (${sink.name})` : ''}: ${error instanceof Error ? error.message : String(error)}`);
92
+ }
93
+ catch (_b) {
94
+ // Il logging non deve mai interrompere l'operazione applicativa.
95
+ }
96
+ }
97
+ function writeToSink(sink, record) {
98
+ try {
99
+ const result = sink.write(record);
100
+ if (result && typeof result.catch === 'function') {
101
+ result.catch((error) => reportSinkError(sink, error));
102
+ }
103
+ }
104
+ catch (error) {
105
+ reportSinkError(sink, error);
106
+ }
107
+ }
108
+ function maybePurge() {
109
+ if (!retentionDays || retentionDays <= 0)
110
+ return;
111
+ const now = Date.now();
112
+ if (now - lastPurgeAt < PURGE_INTERVAL_MS)
113
+ return;
114
+ lastPurgeAt = now;
115
+ const before = new Date(now - retentionDays * 24 * 60 * 60 * 1000);
116
+ for (const sink of sinks) {
117
+ if (typeof sink.purge !== 'function')
118
+ continue;
119
+ try {
120
+ const result = sink.purge(before);
121
+ if (result && typeof result.catch === 'function') {
122
+ result.catch((error) => reportSinkError(sink, error));
123
+ }
124
+ }
125
+ catch (error) {
126
+ reportSinkError(sink, error);
127
+ }
128
+ }
129
+ }
130
+ /**
131
+ * Configura i sink di audit del processo.
132
+ *
133
+ * Chiamato da `AccessiModule.forRoot`. Le opzioni sono globali: un solo modulo
134
+ * Accessi per processo e la configurazione consigliata.
135
+ */
136
+ function configureAccessiAudit(options) {
137
+ var _a, _b;
138
+ sinks = [];
139
+ redactedKeys = new Set(DEFAULT_REDACTED_KEYS);
140
+ retentionDays = undefined;
141
+ loggerEnabled = true;
142
+ auditTenantId = options === null || options === void 0 ? void 0 : options.tenantId;
143
+ lastPurgeAt = 0;
144
+ for (const key of (_a = options === null || options === void 0 ? void 0 : options.redact) !== null && _a !== void 0 ? _a : [])
145
+ redactedKeys.add(normalizedKey(key));
146
+ loggerEnabled = (options === null || options === void 0 ? void 0 : options.logger) !== false;
147
+ if ((options === null || options === void 0 ? void 0 : options.enabled) === false)
148
+ return;
149
+ if (options === null || options === void 0 ? void 0 : options.store)
150
+ sinks.push(options.store);
151
+ for (const sink of (_b = options === null || options === void 0 ? void 0 : options.sinks) !== null && _b !== void 0 ? _b : []) {
152
+ if (!sinks.includes(sink))
153
+ sinks.push(sink);
154
+ }
155
+ const days = Number(options === null || options === void 0 ? void 0 : options.retentionDays);
156
+ if (Number.isFinite(days) && days > 0)
157
+ retentionDays = days;
158
+ }
159
+ /** Ripristina la configurazione iniziale (logger attivo, nessun sink). */
160
+ function resetAccessiAudit() {
161
+ configureAccessiAudit(undefined);
162
+ }
163
+ /** Sink interrogabile configurato, usato dagli endpoint amministrativi. */
164
+ function getAccessiAuditStore() {
165
+ const configured = sinks.find((sink) => typeof sink.query === 'function'
166
+ && typeof sink.purge === 'function');
167
+ return configured;
168
+ }
169
+ /**
170
+ * Registra un evento di sicurezza.
171
+ *
172
+ * Il record viene redatto prima di raggiungere logger e sink. Un sink guasto
173
+ * non interrompe mai il flusso applicativo.
174
+ */
175
+ function auditAccessi(event, details = {}) {
176
+ const record = Object.assign(Object.assign({ event, timestamp: new Date().toISOString() }, (auditTenantId ? { tenant: auditTenantId } : {})), redactDetails(details !== null && details !== void 0 ? details : {}));
177
+ if (loggerEnabled) {
178
+ try {
179
+ new Logger_1.Logger('AccessiAudit').warning(JSON.stringify(record));
180
+ }
181
+ catch (_a) {
182
+ // Il logging non deve mai interrompere l'operazione applicativa.
183
+ }
184
+ }
185
+ for (const sink of sinks)
186
+ writeToSink(sink, record);
187
+ maybePurge();
188
+ }
189
+ //# sourceMappingURL=audit.js.map