emilsoftware-utilities 2.0.0-dev.83 → 2.0.0-dev.85

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 (1234) hide show
  1. package/LICENSE +15 -0
  2. package/README.md +373 -0
  3. package/SECURITY.md +66 -0
  4. package/dist/EmilsoftwareModule.d.ts +1 -1
  5. package/dist/EmilsoftwareModule.js +1 -1
  6. package/dist/EmilsoftwareModule.js.map +1 -1
  7. package/dist/Orm.js +19 -19
  8. package/dist/Orm.js.map +1 -1
  9. package/dist/Utilities.d.ts +1 -1
  10. package/dist/Utilities.js.map +1 -1
  11. package/dist/accessi/client/admin/index.d.ts +4 -4
  12. package/dist/accessi/client/admin/index.js +2 -2
  13. package/dist/accessi/client/admin/index.js.map +1 -1
  14. package/dist/accessi/client/createAccessiClient.d.ts +1 -1
  15. package/dist/accessi/client/createAccessiClient.js +1 -1
  16. package/dist/accessi/client/createAccessiClient.js.map +1 -1
  17. package/dist/accessi/client/generated/admin.d.ts +1 -1
  18. package/dist/accessi/client/generated/admin.js +1 -1
  19. package/dist/accessi/client/generated/admin.js.map +1 -1
  20. package/dist/accessi/client/generated/public.d.ts +1 -1
  21. package/dist/accessi/client/generated/public.js +1 -1
  22. package/dist/accessi/client/generated/public.js.map +1 -1
  23. package/dist/accessi/client/generated/service.d.ts +1 -1
  24. package/dist/accessi/client/generated/service.js +1 -1
  25. package/dist/accessi/client/generated/service.js.map +1 -1
  26. package/dist/accessi/client/index.d.ts +7 -7
  27. package/dist/accessi/client/index.js +6 -6
  28. package/dist/accessi/client/index.js.map +1 -1
  29. package/dist/accessi/client/public/index.d.ts +4 -4
  30. package/dist/accessi/client/public/index.js +2 -2
  31. package/dist/accessi/client/public/index.js.map +1 -1
  32. package/dist/accessi/client/service/index.d.ts +4 -4
  33. package/dist/accessi/client/service/index.js +2 -2
  34. package/dist/accessi/client/service/index.js.map +1 -1
  35. package/dist/accessi/contracts/dtos.d.ts +1 -1
  36. package/dist/accessi/contracts/dtos.js +1 -1
  37. package/dist/accessi/contracts/dtos.js.map +1 -1
  38. package/dist/accessi/contracts/index.d.ts +6 -6
  39. package/dist/accessi/contracts/index.js +4 -4
  40. package/dist/accessi/contracts/index.js.map +1 -1
  41. package/dist/accessi/resource-server/core.d.ts +13 -0
  42. package/dist/accessi/resource-server/core.js +17 -0
  43. package/dist/accessi/resource-server/core.js.map +1 -1
  44. package/dist/accessi/resource-server/express.js +1 -1
  45. package/dist/accessi/resource-server/express.js.map +1 -1
  46. package/dist/accessi/resource-server/nest.js +1 -1
  47. package/dist/accessi/resource-server/nest.js.map +1 -1
  48. package/dist/accessi/resource-server/token.js +1 -1
  49. package/dist/accessi/resource-server/token.js.map +1 -1
  50. package/dist/accessi/resource-server/types.d.ts +3 -3
  51. package/dist/accessi/resource-server/types.js.map +1 -1
  52. package/dist/accessi/server/index.d.ts +6 -3
  53. package/dist/accessi/server/index.js +8 -3
  54. package/dist/accessi/server/index.js.map +1 -1
  55. package/dist/accessi/server/standalone.d.ts +4 -4
  56. package/dist/accessi/server/standalone.js +6 -6
  57. package/dist/accessi/server/standalone.js.map +1 -1
  58. package/dist/accessi/server/tenantRouter.d.ts +35 -0
  59. package/dist/accessi/server/tenantRouter.js +71 -0
  60. package/dist/accessi/server/tenantRouter.js.map +1 -0
  61. package/dist/accessi/server/tenantStores.d.ts +6 -6
  62. package/dist/accessi/server/tenantStores.js +5 -5
  63. package/dist/accessi/server/tenantStores.js.map +1 -1
  64. package/dist/accessi/server/tenants.d.ts +8 -8
  65. package/dist/accessi/server/tenants.js +1 -1
  66. package/dist/accessi/server/tenants.js.map +1 -1
  67. package/dist/accessi-service/AccessiModule.js +120 -0
  68. package/dist/accessi-service/AccessiModule.js.map +1 -0
  69. package/dist/accessi-service/accessiRuntime.d.ts +45 -0
  70. package/dist/accessi-service/accessiRuntime.js +39 -0
  71. package/dist/accessi-service/accessiRuntime.js.map +1 -0
  72. package/dist/accessi-service/console/accessiFetch.js.map +1 -0
  73. package/dist/accessi-service/console/console.js +4875 -0
  74. package/dist/accessi-service/console/console.js.map +1 -0
  75. package/dist/accessi-service/console/generated/emilsoftware-utilities.js.map +1 -0
  76. package/dist/accessi-service/console/generated/model/abilitazioneMenu.js.map +1 -0
  77. package/dist/accessi-service/console/generated/model/abilitazioneMenuTipoAbilitazione.js.map +1 -0
  78. package/dist/accessi-service/console/generated/model/accessiIntrospectionResultDto.js.map +1 -0
  79. package/dist/accessi-service/console/generated/model/actionResponse.js.map +1 -0
  80. package/dist/accessi-service/console/generated/model/adminBootstrapStatusResponse.js.map +1 -0
  81. package/dist/accessi-service/console/generated/model/adminBootstrapStatusResult.js.map +1 -0
  82. package/dist/accessi-service/console/generated/model/assignPermissionsToUserRequest.js.map +1 -0
  83. package/dist/accessi-service/console/generated/model/assignRolesToUserRequest.js.map +1 -0
  84. package/dist/accessi-service/console/generated/model/authenticatedTokenPayloadDto.js.map +1 -0
  85. package/dist/accessi-service/console/generated/model/authenticatedUserPayloadDto.js.map +1 -0
  86. package/dist/accessi-service/console/generated/model/bootstrapAdminRequest.js.map +1 -0
  87. package/dist/accessi-service/console/generated/model/bootstrapAdminResponse.js.map +1 -0
  88. package/dist/accessi-service/console/generated/model/bootstrapAdminResultDto.js.map +1 -0
  89. package/dist/accessi-service/console/generated/model/confirmResetPasswordRequest.js.map +1 -0
  90. package/dist/accessi-service/console/generated/model/consoleEntryExchangeRequest.js.map +1 -0
  91. package/dist/accessi-service/console/generated/model/consoleEntrySessionResponse.js.map +1 -0
  92. package/dist/accessi-service/console/generated/model/consoleEntrySessionResult.js.map +1 -0
  93. package/dist/accessi-service/console/generated/model/consoleEntryTicketResponse.js.map +1 -0
  94. package/dist/accessi-service/console/generated/model/consoleEntryTicketResult.js.map +1 -0
  95. package/dist/accessi-service/console/generated/model/consoleEntryTokenResult.js.map +1 -0
  96. package/dist/accessi-service/console/generated/model/createFederatedIdentityRequest.js.map +1 -0
  97. package/dist/accessi-service/console/generated/model/createFederatedProviderRequest.js.map +1 -0
  98. package/dist/accessi-service/console/generated/model/createFederatedUserRequest.js.map +1 -0
  99. package/dist/accessi-service/console/generated/model/createFilterTypeRequest.js.map +1 -0
  100. package/dist/accessi-service/console/generated/model/createFilterTypeRequestFlgEnabled.js.map +1 -0
  101. package/dist/accessi-service/console/generated/model/createMenuGroupRequest.js.map +1 -0
  102. package/dist/accessi-service/console/generated/model/createMenuRequest.js.map +1 -0
  103. package/dist/accessi-service/console/generated/model/createMenuTypeRequest.js.map +1 -0
  104. package/dist/accessi-service/console/generated/model/createScopeRequest.js.map +1 -0
  105. package/dist/accessi-service/console/generated/model/createServiceTokenRequest.js.map +1 -0
  106. package/dist/accessi-service/console/generated/model/createServiceTokenResponse.js.map +1 -0
  107. package/dist/accessi-service/console/generated/model/errorResponse.js.map +1 -0
  108. package/dist/accessi-service/console/generated/model/exchangeFederatedIdentityRequest.js.map +1 -0
  109. package/dist/accessi-service/console/generated/model/exportAuditOrder.js.map +1 -0
  110. package/dist/accessi-service/console/generated/model/exportAuditParams.js.map +1 -0
  111. package/dist/accessi-service/console/generated/model/federatedAuthenticationResultDto.js.map +1 -0
  112. package/dist/accessi-service/console/generated/model/federatedExchangeResponse.js.map +1 -0
  113. package/dist/accessi-service/console/generated/model/federatedIdentityListResponse.js.map +1 -0
  114. package/dist/accessi-service/console/generated/model/federatedIdentityResponse.js.map +1 -0
  115. package/dist/accessi-service/console/generated/model/federatedIdentityResponseDto.js.map +1 -0
  116. package/dist/accessi-service/console/generated/model/federatedProviderListResponse.js.map +1 -0
  117. package/dist/accessi-service/console/generated/model/federatedProviderResponse.js.map +1 -0
  118. package/dist/accessi-service/console/generated/model/federatedProviderResponseDto.js.map +1 -0
  119. package/dist/accessi-service/console/generated/model/filtriUtente.js.map +1 -0
  120. package/dist/accessi-service/console/generated/model/getFiltriResponse.js.map +1 -0
  121. package/dist/accessi-service/console/generated/model/getFiltriUtenteParams.js.map +1 -0
  122. package/dist/accessi-service/console/generated/model/getFiltriUtenteResponse.js.map +1 -0
  123. package/dist/accessi-service/console/generated/model/getGroupsWithMenusParams.js.map +1 -0
  124. package/dist/accessi-service/console/generated/model/getGroupsWithMenusResponse.js.map +1 -0
  125. package/dist/accessi-service/console/generated/model/getMenuScopesResponse.js.map +1 -0
  126. package/dist/accessi-service/console/generated/model/getMenuTypesResponse.js.map +1 -0
  127. package/dist/accessi-service/console/generated/model/getMenusParams.js.map +1 -0
  128. package/dist/accessi-service/console/generated/model/getMenusResponse.js.map +1 -0
  129. package/dist/accessi-service/console/generated/model/getRolesResponse.js.map +1 -0
  130. package/dist/accessi-service/console/generated/model/getSchemaResponse.js.map +1 -0
  131. package/dist/accessi-service/console/generated/model/getScopesResponse.js.map +1 -0
  132. package/dist/accessi-service/console/generated/model/getServiceTokensParams.js.map +1 -0
  133. package/dist/accessi-service/console/generated/model/getServiceTokensResponse.js.map +1 -0
  134. package/dist/accessi-service/console/generated/model/getUserByTokenRequest.js.map +1 -0
  135. package/dist/accessi-service/console/generated/model/getUserByTokenResponse.js.map +1 -0
  136. package/dist/accessi-service/console/generated/model/getUserRolesAndGrantsParams.js.map +1 -0
  137. package/dist/accessi-service/console/generated/model/getUsersParams.js.map +1 -0
  138. package/dist/accessi-service/console/generated/model/getUsersResponse.js.map +1 -0
  139. package/dist/accessi-service/console/generated/model/getUsersResult.js.map +1 -0
  140. package/dist/accessi-service/console/generated/model/getUsersResultExtensionFields.js.map +1 -0
  141. package/dist/accessi-service/console/generated/model/groupWithMenusEntity.js.map +1 -0
  142. package/dist/accessi-service/console/generated/model/index.js.map +1 -0
  143. package/dist/accessi-service/console/generated/model/introspectAccessiTokenRequest.js.map +1 -0
  144. package/dist/accessi-service/console/generated/model/introspectAccessiTokenResponse.js.map +1 -0
  145. package/dist/accessi-service/console/generated/model/issuedServiceTokenDto.js.map +1 -0
  146. package/dist/accessi-service/console/generated/model/loginAsRequest.js.map +1 -0
  147. package/dist/accessi-service/console/generated/model/loginAsResponse.js.map +1 -0
  148. package/dist/accessi-service/console/generated/model/loginAsResult.js.map +1 -0
  149. package/dist/accessi-service/console/generated/model/loginRequest.js.map +1 -0
  150. package/dist/accessi-service/console/generated/model/loginResponse.js.map +1 -0
  151. package/dist/accessi-service/console/generated/model/loginResult.js.map +1 -0
  152. package/dist/accessi-service/console/generated/model/loginResultExtensionFields.js.map +1 -0
  153. package/dist/accessi-service/console/generated/model/loginResultPasswordRequired.js.map +1 -0
  154. package/dist/accessi-service/console/generated/model/menuEntity.js.map +1 -0
  155. package/dist/accessi-service/console/generated/model/menuTypeEntity.js.map +1 -0
  156. package/dist/accessi-service/console/generated/model/passwordExpiredResponse.js.map +1 -0
  157. package/dist/accessi-service/console/generated/model/permission.js.map +1 -0
  158. package/dist/accessi-service/console/generated/model/publicRegisterRequest.js.map +1 -0
  159. package/dist/accessi-service/console/generated/model/queryAuditOrder.js.map +1 -0
  160. package/dist/accessi-service/console/generated/model/queryAuditParams.js.map +1 -0
  161. package/dist/accessi-service/console/generated/model/refreshTokenRequest.js.map +1 -0
  162. package/dist/accessi-service/console/generated/model/refreshTokenResponse.js.map +1 -0
  163. package/dist/accessi-service/console/generated/model/refreshTokenResult.js.map +1 -0
  164. package/dist/accessi-service/console/generated/model/registerRequest.js.map +1 -0
  165. package/dist/accessi-service/console/generated/model/registerResponse.js.map +1 -0
  166. package/dist/accessi-service/console/generated/model/resendTwoFactorRequest.js.map +1 -0
  167. package/dist/accessi-service/console/generated/model/revokeTokenRequest.js.map +1 -0
  168. package/dist/accessi-service/console/generated/model/role.js.map +1 -0
  169. package/dist/accessi-service/console/generated/model/ruoliMenu.js.map +1 -0
  170. package/dist/accessi-service/console/generated/model/ruoliMenuTipoAbilitazione.js.map +1 -0
  171. package/dist/accessi-service/console/generated/model/schemaDdlResult.js.map +1 -0
  172. package/dist/accessi-service/console/generated/model/schemaDdlSection.js.map +1 -0
  173. package/dist/accessi-service/console/generated/model/scopeEntity.js.map +1 -0
  174. package/dist/accessi-service/console/generated/model/sendResetPasswordEmailRequest.js.map +1 -0
  175. package/dist/accessi-service/console/generated/model/serveResetPasswordPageParams.js.map +1 -0
  176. package/dist/accessi-service/console/generated/model/serviceTokenDto.js.map +1 -0
  177. package/dist/accessi-service/console/generated/model/setMenuScopesRequest.js.map +1 -0
  178. package/dist/accessi-service/console/generated/model/setPasswordLoginPolicyRequest.js.map +1 -0
  179. package/dist/accessi-service/console/generated/model/setScopeMenusRequest.js.map +1 -0
  180. package/dist/accessi-service/console/generated/model/setStatoRegistrazioneDto.js.map +1 -0
  181. package/dist/accessi-service/console/generated/model/setStatoRegistrazioneDtoStatoRegistrazione.js.map +1 -0
  182. package/dist/accessi-service/console/generated/model/setUserPasswordRequest.js.map +1 -0
  183. package/dist/accessi-service/console/generated/model/status.js.map +1 -0
  184. package/dist/accessi-service/console/generated/model/tipoFiltro.js.map +1 -0
  185. package/dist/accessi-service/console/generated/model/tipoFiltroFlgEnabled.js.map +1 -0
  186. package/dist/accessi-service/console/generated/model/tokenResult.js.map +1 -0
  187. package/dist/accessi-service/console/generated/model/tokenResultType.js.map +1 -0
  188. package/dist/accessi-service/console/generated/model/twoFactorChallengeDto.js.map +1 -0
  189. package/dist/accessi-service/console/generated/model/twoFactorChallengeDtoMethod.js.map +1 -0
  190. package/dist/accessi-service/console/generated/model/twoFactorChallengeDtoTwoFactorRequired.js.map +1 -0
  191. package/dist/accessi-service/console/generated/model/updateEnabledStatusRequest.js.map +1 -0
  192. package/dist/accessi-service/console/generated/model/updateFederatedIdentityRequest.js.map +1 -0
  193. package/dist/accessi-service/console/generated/model/updateFederatedProviderRequest.js.map +1 -0
  194. package/dist/accessi-service/console/generated/model/updateFilterTypeRequest.js.map +1 -0
  195. package/dist/accessi-service/console/generated/model/updateFilterTypeRequestFlgEnabled.js.map +1 -0
  196. package/dist/accessi-service/console/generated/model/updateMenuGroupRequest.js.map +1 -0
  197. package/dist/accessi-service/console/generated/model/updateMenuRequest.js.map +1 -0
  198. package/dist/accessi-service/console/generated/model/updateMenuTypeRequest.js.map +1 -0
  199. package/dist/accessi-service/console/generated/model/updateScopeRequest.js.map +1 -0
  200. package/dist/accessi-service/console/generated/model/userDto.js.map +1 -0
  201. package/dist/accessi-service/console/generated/model/userDtoStatoRegistrazione.js.map +1 -0
  202. package/dist/accessi-service/console/generated/model/userGrantsDto.js.map +1 -0
  203. package/dist/accessi-service/console/generated/model/userGrantsResponse.js.map +1 -0
  204. package/dist/accessi-service/console/generated/model/verifyTwoFactorRequest.js.map +1 -0
  205. package/dist/accessi-service/console/help.js.map +1 -0
  206. package/dist/accessi-service/console/wiki.js +1533 -0
  207. package/dist/accessi-service/console/wiki.js.map +1 -0
  208. package/dist/accessi-service/controllers/AccessiAuditController.d.ts +16 -0
  209. package/dist/accessi-service/controllers/AccessiAuditController.js +155 -0
  210. package/dist/accessi-service/controllers/AccessiAuditController.js.map +1 -0
  211. package/dist/accessi-service/controllers/AccessiConsoleController.js +169 -0
  212. package/dist/accessi-service/controllers/AccessiConsoleController.js.map +1 -0
  213. package/dist/accessi-service/controllers/AccessiIntrospectionController.d.ts +17 -0
  214. package/dist/accessi-service/controllers/AccessiIntrospectionController.js +102 -0
  215. package/dist/accessi-service/controllers/AccessiIntrospectionController.js.map +1 -0
  216. package/dist/accessi-service/controllers/AuthController.d.ts +24 -0
  217. package/dist/accessi-service/controllers/AuthController.js +564 -0
  218. package/dist/accessi-service/controllers/AuthController.js.map +1 -0
  219. package/dist/accessi-service/controllers/ConfiguratorController.d.ts +9 -0
  220. package/dist/accessi-service/controllers/ConfiguratorController.js +136 -0
  221. package/dist/accessi-service/controllers/ConfiguratorController.js.map +1 -0
  222. package/dist/accessi-service/controllers/ConsoleEntryController.d.ts +16 -0
  223. package/dist/accessi-service/controllers/ConsoleEntryController.js +159 -0
  224. package/dist/accessi-service/controllers/ConsoleEntryController.js.map +1 -0
  225. package/dist/accessi-service/controllers/EmailController.d.ts +11 -0
  226. package/dist/accessi-service/controllers/EmailController.js +112 -0
  227. package/dist/accessi-service/controllers/EmailController.js.map +1 -0
  228. package/dist/accessi-service/controllers/FiltriController.d.ts +20 -0
  229. package/dist/accessi-service/controllers/FiltriController.js +303 -0
  230. package/dist/accessi-service/controllers/FiltriController.js.map +1 -0
  231. package/dist/accessi-service/controllers/PermissionController.d.ts +45 -0
  232. package/dist/accessi-service/controllers/PermissionController.js +862 -0
  233. package/dist/accessi-service/controllers/PermissionController.js.map +1 -0
  234. package/dist/accessi-service/controllers/SchemaController.d.ts +9 -0
  235. package/dist/accessi-service/controllers/SchemaController.js +79 -0
  236. package/dist/accessi-service/controllers/SchemaController.js.map +1 -0
  237. package/dist/accessi-service/controllers/ServiceTokenController.d.ts +23 -0
  238. package/dist/accessi-service/controllers/ServiceTokenController.js +176 -0
  239. package/dist/accessi-service/controllers/ServiceTokenController.js.map +1 -0
  240. package/dist/accessi-service/controllers/UserController.d.ts +39 -0
  241. package/dist/accessi-service/controllers/UserController.js +724 -0
  242. package/dist/accessi-service/controllers/UserController.js.map +1 -0
  243. package/dist/accessi-service/database-updates/AccessiCatalogMigrator.js.map +1 -0
  244. package/dist/accessi-service/database-updates/AccessiDatabaseUpdater.js.map +1 -0
  245. package/dist/accessi-service/database-updates/accessiOptionsFromEnv.js +347 -0
  246. package/dist/accessi-service/database-updates/accessiOptionsFromEnv.js.map +1 -0
  247. package/dist/accessi-service/database-updates/accessiSchema.js.map +1 -0
  248. package/dist/accessi-service/database-updates/menuScopeSeed.js.map +1 -0
  249. package/dist/accessi-service/database-updates/menuScopeSeeder.js.map +1 -0
  250. package/dist/accessi-service/database-updates/optionalColumns.js.map +1 -0
  251. package/dist/accessi-service/database-updates/runAccessiCatalogMigrations.js.map +1 -0
  252. package/dist/accessi-service/database-updates/runAccessiDbUpdate.js.map +1 -0
  253. package/dist/accessi-service/dtos/Abilitazione.js.map +1 -0
  254. package/dist/accessi-service/dtos/AbilitazioneMenu.js.map +1 -0
  255. package/dist/accessi-service/dtos/AdminBootstrapDtos.js.map +1 -0
  256. package/dist/accessi-service/dtos/AssignPermissionsToUserRequest.js.map +1 -0
  257. package/dist/accessi-service/dtos/AssignRolesToUserRequest.js.map +1 -0
  258. package/dist/accessi-service/dtos/AuditDtos.js.map +1 -0
  259. package/dist/accessi-service/dtos/AuthenticatedUserPayloadDto.js.map +1 -0
  260. package/dist/accessi-service/dtos/BaseResponse.js.map +1 -0
  261. package/dist/accessi-service/dtos/CatalogDtos.js.map +1 -0
  262. package/dist/accessi-service/dtos/ConfirmResetPasswordRequest.js.map +1 -0
  263. package/dist/accessi-service/dtos/ConsoleEntryDtos.js.map +1 -0
  264. package/dist/accessi-service/dtos/FederatedExchangeDtos.js.map +1 -0
  265. package/dist/accessi-service/dtos/FederatedIdentityDtos.js.map +1 -0
  266. package/dist/accessi-service/dtos/FiltriUtente.js.map +1 -0
  267. package/dist/accessi-service/dtos/GetGroupsWithMenusResponse.js.map +1 -0
  268. package/dist/accessi-service/dtos/GetMenusResponse.js.map +1 -0
  269. package/dist/accessi-service/dtos/GetRolesResponse.js.map +1 -0
  270. package/dist/accessi-service/dtos/GetUserByTokenRequest.js.map +1 -0
  271. package/dist/accessi-service/dtos/GetUserByTokenResponse.js.map +1 -0
  272. package/dist/accessi-service/dtos/GetUsersResponse.js.map +1 -0
  273. package/dist/accessi-service/dtos/IntrospectionDtos.js.map +1 -0
  274. package/dist/accessi-service/dtos/LoginAsDtos.js.map +1 -0
  275. package/dist/accessi-service/dtos/LoginRequest.js.map +1 -0
  276. package/dist/accessi-service/dtos/LoginResponse.js.map +1 -0
  277. package/dist/accessi-service/dtos/MenuItem.js.map +1 -0
  278. package/dist/accessi-service/dtos/Permission.js.map +1 -0
  279. package/dist/accessi-service/dtos/PublicRegisterRequest.js.map +1 -0
  280. package/dist/accessi-service/dtos/RefreshTokenDtos.js.map +1 -0
  281. package/dist/accessi-service/dtos/RegisterRequest.js.map +1 -0
  282. package/dist/accessi-service/dtos/RegisterResponse.js.map +1 -0
  283. package/dist/accessi-service/dtos/RevokeTokenRequest.js.map +1 -0
  284. package/dist/accessi-service/dtos/Role.js.map +1 -0
  285. package/dist/accessi-service/dtos/RuoliMenu.js.map +1 -0
  286. package/dist/accessi-service/dtos/SchemaDtos.js.map +1 -0
  287. package/dist/accessi-service/dtos/ScopeDtos.js.map +1 -0
  288. package/dist/accessi-service/dtos/SendResetPasswordEmailRequest.js.map +1 -0
  289. package/dist/accessi-service/dtos/ServiceToken.js.map +1 -0
  290. package/dist/accessi-service/dtos/SetStatoRegistrazione.js.map +1 -0
  291. package/dist/accessi-service/dtos/SetUserPasswordRequest.js.map +1 -0
  292. package/dist/accessi-service/dtos/StatoRegistrazione.js.map +1 -0
  293. package/dist/accessi-service/dtos/TipoAbilitazione.js.map +1 -0
  294. package/dist/accessi-service/dtos/TipoFiltro.js.map +1 -0
  295. package/dist/accessi-service/dtos/TokenResult.js.map +1 -0
  296. package/dist/accessi-service/dtos/TwoFactorDtos.js.map +1 -0
  297. package/dist/accessi-service/dtos/UpdateEnabledStatusRequest.js.map +1 -0
  298. package/dist/accessi-service/dtos/UserDto.js.map +1 -0
  299. package/dist/accessi-service/dtos/UserGrantsDto.js.map +1 -0
  300. package/dist/accessi-service/dtos/UserGrantsResponse.js.map +1 -0
  301. package/dist/accessi-service/dtos/index.js.map +1 -0
  302. package/dist/accessi-service/federated-auth/FederatedAuthController.d.ts +33 -0
  303. package/dist/accessi-service/federated-auth/FederatedAuthController.js +373 -0
  304. package/dist/accessi-service/federated-auth/FederatedAuthController.js.map +1 -0
  305. package/dist/accessi-service/federated-auth/FederatedAuthExchangeController.d.ts +15 -0
  306. package/dist/accessi-service/federated-auth/FederatedAuthExchangeController.js +85 -0
  307. package/dist/accessi-service/federated-auth/FederatedAuthExchangeController.js.map +1 -0
  308. package/dist/accessi-service/federated-auth/FederatedAuthService.d.ts +102 -0
  309. package/dist/accessi-service/federated-auth/FederatedAuthService.js +472 -0
  310. package/dist/accessi-service/federated-auth/FederatedAuthService.js.map +1 -0
  311. package/dist/accessi-service/federated-auth/FederatedAuthTypes.d.ts +53 -0
  312. package/dist/accessi-service/federated-auth/FederatedAuthTypes.js.map +1 -0
  313. package/dist/accessi-service/health/nest.js.map +1 -0
  314. package/dist/accessi-service/health/readiness.js.map +1 -0
  315. package/dist/accessi-service/index.d.ts +88 -0
  316. package/dist/accessi-service/index.js +304 -0
  317. package/dist/accessi-service/index.js.map +1 -0
  318. package/dist/accessi-service/jwt/JwtSimpleGuard.d.ts +9 -0
  319. package/dist/accessi-service/jwt/JwtSimpleGuard.js +88 -0
  320. package/dist/accessi-service/jwt/JwtSimpleGuard.js.map +1 -0
  321. package/dist/accessi-service/middleware/accessiRequirements.js.map +1 -0
  322. package/dist/accessi-service/middleware/authenticateGen.d.ts +32 -0
  323. package/dist/accessi-service/middleware/authenticateGen.js +315 -0
  324. package/dist/accessi-service/middleware/authenticateGen.js.map +1 -0
  325. package/dist/accessi-service/observability/metrics.js +229 -0
  326. package/dist/accessi-service/observability/metrics.js.map +1 -0
  327. package/dist/accessi-service/observability/redisMetrics.js.map +1 -0
  328. package/dist/accessi-service/security/AccessiHttpExceptionFilter.js.map +1 -0
  329. package/dist/accessi-service/security/accessControl.js.map +1 -0
  330. package/dist/accessi-service/security/accessTokenRevocation.js.map +1 -0
  331. package/dist/accessi-service/security/accessiValidation.js.map +1 -0
  332. package/dist/accessi-service/security/adminBootstrap.js.map +1 -0
  333. package/dist/accessi-service/security/audit.d.ts +84 -0
  334. package/dist/accessi-service/security/audit.js +214 -0
  335. package/dist/accessi-service/security/audit.js.map +1 -0
  336. package/dist/accessi-service/security/auditSinks.js.map +1 -0
  337. package/dist/accessi-service/security/authCookies.js.map +1 -0
  338. package/dist/accessi-service/security/authenticatedToken.d.ts +31 -0
  339. package/dist/accessi-service/security/authenticatedToken.js +79 -0
  340. package/dist/accessi-service/security/authenticatedToken.js.map +1 -0
  341. package/dist/accessi-service/security/consoleEntry.js.map +1 -0
  342. package/dist/accessi-service/security/edgeRateLimit.js.map +1 -0
  343. package/dist/accessi-service/security/emailConfiguration.js.map +1 -0
  344. package/dist/accessi-service/security/jwks.js.map +1 -0
  345. package/dist/accessi-service/security/jwksBootstrap.js.map +1 -0
  346. package/dist/accessi-service/security/jwtTokenOptions.js.map +1 -0
  347. package/dist/accessi-service/security/loginAs.js.map +1 -0
  348. package/dist/accessi-service/security/passwordPolicy.js.map +1 -0
  349. package/dist/accessi-service/security/passwordResetToken.js.map +1 -0
  350. package/dist/accessi-service/security/publicAuthRateLimit.js.map +1 -0
  351. package/dist/accessi-service/security/rateLimitStore.js.map +1 -0
  352. package/dist/accessi-service/security/refreshTokenRotation.js.map +1 -0
  353. package/dist/accessi-service/security/securityHeaders.js.map +1 -0
  354. package/dist/accessi-service/security/serviceTokenGuard.d.ts +27 -0
  355. package/dist/accessi-service/security/serviceTokenGuard.js +90 -0
  356. package/dist/accessi-service/security/serviceTokenGuard.js.map +1 -0
  357. package/dist/accessi-service/security/serviceTokenRateLimit.js.map +1 -0
  358. package/dist/accessi-service/security/sessionRevocation.js.map +1 -0
  359. package/dist/accessi-service/security/validateOptions.js.map +1 -0
  360. package/dist/accessi-service/services/admin-bootstrap-service/AdminBootstrapService.d.ts +33 -0
  361. package/dist/accessi-service/services/admin-bootstrap-service/AdminBootstrapService.js +106 -0
  362. package/dist/accessi-service/services/admin-bootstrap-service/AdminBootstrapService.js.map +1 -0
  363. package/dist/accessi-service/services/auth-service/AuthService.d.ts +127 -0
  364. package/dist/accessi-service/services/auth-service/AuthService.js +734 -0
  365. package/dist/accessi-service/services/auth-service/AuthService.js.map +1 -0
  366. package/dist/accessi-service/services/configurator-service/ConfiguratorService.js.map +1 -0
  367. package/dist/accessi-service/services/email-service/EmailService.js +439 -0
  368. package/dist/accessi-service/services/email-service/EmailService.js.map +1 -0
  369. package/dist/accessi-service/services/filtri-service/FiltriService.d.ts +26 -0
  370. package/dist/accessi-service/services/filtri-service/FiltriService.js +203 -0
  371. package/dist/accessi-service/services/filtri-service/FiltriService.js.map +1 -0
  372. package/dist/accessi-service/services/permission-service/PermissionService.d.ts +126 -0
  373. package/dist/accessi-service/services/permission-service/PermissionService.js +944 -0
  374. package/dist/accessi-service/services/permission-service/PermissionService.js.map +1 -0
  375. package/dist/accessi-service/services/schema-export-service/SchemaExportService.js.map +1 -0
  376. package/dist/accessi-service/services/service-token-service/ServiceTokenService.js.map +1 -0
  377. package/dist/accessi-service/services/two-factor-service/TwoFactorService.d.ts +27 -0
  378. package/dist/accessi-service/services/two-factor-service/TwoFactorService.js +175 -0
  379. package/dist/accessi-service/services/two-factor-service/TwoFactorService.js.map +1 -0
  380. package/dist/accessi-service/services/user-service/UserService.d.ts +112 -0
  381. package/dist/accessi-service/services/user-service/UserService.js +837 -0
  382. package/dist/accessi-service/services/user-service/UserService.js.map +1 -0
  383. package/dist/accessi-service/startupLog.js.map +1 -0
  384. package/dist/accessi-service/tenancy/tenantContext.d.ts +15 -0
  385. package/dist/accessi-service/tenancy/tenantContext.js +26 -0
  386. package/dist/accessi-service/tenancy/tenantContext.js.map +1 -0
  387. package/dist/allegati-module/AllegatiModule.js +2 -2
  388. package/dist/allegati-module/AllegatiModule.js.map +1 -1
  389. package/dist/allegati-module/controllers/AllegatiController.d.ts +36 -0
  390. package/dist/allegati-module/controllers/AllegatiController.js +230 -0
  391. package/dist/allegati-module/controllers/AllegatiController.js.map +1 -0
  392. package/dist/allegati-module/dtos/AllegatoDto.js.map +1 -0
  393. package/dist/allegati-module/dtos/BaseResponse.js.map +1 -0
  394. package/dist/allegati-module/dtos/UploadSingleFileRequest.js.map +1 -0
  395. package/dist/allegati-module/dtos/index.js.map +1 -0
  396. package/dist/allegati-module/dtos/responses/DownloadAllegatoResponseDto.js.map +1 -0
  397. package/dist/allegati-module/dtos/responses/GetListResponse.js.map +1 -0
  398. package/dist/allegati-module/dtos/responses/UploadAllegatoResponseDto.js.map +1 -0
  399. package/dist/allegati-module/index.d.ts +1 -1
  400. package/dist/allegati-module/index.js +1 -1
  401. package/dist/allegati-module/index.js.map +1 -1
  402. package/dist/allegati-module/services/allegati-service/AllegatiService.d.ts +61 -0
  403. package/dist/allegati-module/services/allegati-service/AllegatiService.js.map +1 -0
  404. package/dist/emilsoftware-utilities-2.0.0-dev.85.tgz +0 -0
  405. package/dist/firebirdCompat.js +269 -0
  406. package/dist/firebirdCompat.js.map +1 -0
  407. package/dist/index.d.ts +3 -3
  408. package/dist/index.js +3 -3
  409. package/dist/index.js.map +1 -1
  410. package/dist/initEmilsoftwareModule.js +9 -9
  411. package/dist/initEmilsoftwareModule.js.map +1 -1
  412. package/dist/scripts/generateAccessiOpenApi.js +2 -2
  413. package/dist/scripts/generateAccessiOpenApi.js.map +1 -1
  414. package/dist/scripts/generateAccessiWiki.js +6 -4
  415. package/dist/scripts/generateAccessiWiki.js.map +1 -1
  416. package/docs/README.md +116 -0
  417. package/docs/adr/0002-multi-tenancy.md +5 -3
  418. package/docs/audit.md +4 -0
  419. package/docs/auth-cookies.md +4 -0
  420. package/docs/conventions.md +86 -0
  421. package/docs/gateway-rate-limit.md +3 -0
  422. package/docs/import-migration.md +12 -6
  423. package/docs/jwt-key-rotation.md +3 -0
  424. package/docs/metrics.md +3 -0
  425. package/docs/multi-tenancy.md +54 -0
  426. package/docs/proxy-ip.md +8 -0
  427. package/docs/quickstart-frontend.md +217 -0
  428. package/docs/quickstart-resource-server.md +177 -0
  429. package/docs/quickstart-service.md +214 -0
  430. package/docs/redis-load-testing.md +4 -0
  431. package/docs/security-headers.md +3 -0
  432. package/docs/standalone-service.md +180 -54
  433. package/integration-prompt.md +38 -14
  434. package/package.json +24 -19
  435. package/README.MD +0 -323
  436. package/dist/accessi-module/AccessiModule.js +0 -120
  437. package/dist/accessi-module/AccessiModule.js.map +0 -1
  438. package/dist/accessi-module/Console/accessiFetch.js.map +0 -1
  439. package/dist/accessi-module/Console/console.js +0 -4173
  440. package/dist/accessi-module/Console/console.js.map +0 -1
  441. package/dist/accessi-module/Console/generated/emilsoftware-utilities.js.map +0 -1
  442. package/dist/accessi-module/Console/generated/model/abilitazioneMenu.js.map +0 -1
  443. package/dist/accessi-module/Console/generated/model/abilitazioneMenuTipoAbilitazione.js.map +0 -1
  444. package/dist/accessi-module/Console/generated/model/accessiIntrospectionResultDto.js.map +0 -1
  445. package/dist/accessi-module/Console/generated/model/actionResponse.js.map +0 -1
  446. package/dist/accessi-module/Console/generated/model/adminBootstrapStatusResponse.js.map +0 -1
  447. package/dist/accessi-module/Console/generated/model/adminBootstrapStatusResult.js.map +0 -1
  448. package/dist/accessi-module/Console/generated/model/assignPermissionsToUserRequest.js.map +0 -1
  449. package/dist/accessi-module/Console/generated/model/assignRolesToUserRequest.js.map +0 -1
  450. package/dist/accessi-module/Console/generated/model/authenticatedTokenPayloadDto.js.map +0 -1
  451. package/dist/accessi-module/Console/generated/model/authenticatedUserPayloadDto.js.map +0 -1
  452. package/dist/accessi-module/Console/generated/model/bootstrapAdminRequest.js.map +0 -1
  453. package/dist/accessi-module/Console/generated/model/bootstrapAdminResponse.js.map +0 -1
  454. package/dist/accessi-module/Console/generated/model/bootstrapAdminResultDto.js.map +0 -1
  455. package/dist/accessi-module/Console/generated/model/confirmResetPasswordRequest.js.map +0 -1
  456. package/dist/accessi-module/Console/generated/model/consoleEntryExchangeRequest.js.map +0 -1
  457. package/dist/accessi-module/Console/generated/model/consoleEntrySessionResponse.js.map +0 -1
  458. package/dist/accessi-module/Console/generated/model/consoleEntrySessionResult.js.map +0 -1
  459. package/dist/accessi-module/Console/generated/model/consoleEntryTicketResponse.js.map +0 -1
  460. package/dist/accessi-module/Console/generated/model/consoleEntryTicketResult.js.map +0 -1
  461. package/dist/accessi-module/Console/generated/model/consoleEntryTokenResult.js.map +0 -1
  462. package/dist/accessi-module/Console/generated/model/createFederatedIdentityRequest.js.map +0 -1
  463. package/dist/accessi-module/Console/generated/model/createFederatedProviderRequest.js.map +0 -1
  464. package/dist/accessi-module/Console/generated/model/createFederatedUserRequest.js.map +0 -1
  465. package/dist/accessi-module/Console/generated/model/createFilterTypeRequest.js.map +0 -1
  466. package/dist/accessi-module/Console/generated/model/createFilterTypeRequestFlgEnabled.js.map +0 -1
  467. package/dist/accessi-module/Console/generated/model/createMenuGroupRequest.js.map +0 -1
  468. package/dist/accessi-module/Console/generated/model/createMenuRequest.js.map +0 -1
  469. package/dist/accessi-module/Console/generated/model/createMenuTypeRequest.js.map +0 -1
  470. package/dist/accessi-module/Console/generated/model/createScopeRequest.js.map +0 -1
  471. package/dist/accessi-module/Console/generated/model/createServiceTokenRequest.js.map +0 -1
  472. package/dist/accessi-module/Console/generated/model/createServiceTokenResponse.js.map +0 -1
  473. package/dist/accessi-module/Console/generated/model/errorResponse.js.map +0 -1
  474. package/dist/accessi-module/Console/generated/model/exchangeFederatedIdentityRequest.js.map +0 -1
  475. package/dist/accessi-module/Console/generated/model/exportAuditOrder.js.map +0 -1
  476. package/dist/accessi-module/Console/generated/model/exportAuditParams.js.map +0 -1
  477. package/dist/accessi-module/Console/generated/model/federatedAuthenticationResultDto.js.map +0 -1
  478. package/dist/accessi-module/Console/generated/model/federatedExchangeResponse.js.map +0 -1
  479. package/dist/accessi-module/Console/generated/model/federatedIdentityListResponse.js.map +0 -1
  480. package/dist/accessi-module/Console/generated/model/federatedIdentityResponse.js.map +0 -1
  481. package/dist/accessi-module/Console/generated/model/federatedIdentityResponseDto.js.map +0 -1
  482. package/dist/accessi-module/Console/generated/model/federatedProviderListResponse.js.map +0 -1
  483. package/dist/accessi-module/Console/generated/model/federatedProviderResponse.js.map +0 -1
  484. package/dist/accessi-module/Console/generated/model/federatedProviderResponseDto.js.map +0 -1
  485. package/dist/accessi-module/Console/generated/model/filtriUtente.js.map +0 -1
  486. package/dist/accessi-module/Console/generated/model/getFiltriResponse.js.map +0 -1
  487. package/dist/accessi-module/Console/generated/model/getFiltriUtenteParams.js.map +0 -1
  488. package/dist/accessi-module/Console/generated/model/getFiltriUtenteResponse.js.map +0 -1
  489. package/dist/accessi-module/Console/generated/model/getGroupsWithMenusParams.js.map +0 -1
  490. package/dist/accessi-module/Console/generated/model/getGroupsWithMenusResponse.js.map +0 -1
  491. package/dist/accessi-module/Console/generated/model/getMenuScopesResponse.js.map +0 -1
  492. package/dist/accessi-module/Console/generated/model/getMenuTypesResponse.js.map +0 -1
  493. package/dist/accessi-module/Console/generated/model/getMenusParams.js.map +0 -1
  494. package/dist/accessi-module/Console/generated/model/getMenusResponse.js.map +0 -1
  495. package/dist/accessi-module/Console/generated/model/getRolesResponse.js.map +0 -1
  496. package/dist/accessi-module/Console/generated/model/getSchemaResponse.js.map +0 -1
  497. package/dist/accessi-module/Console/generated/model/getScopesResponse.js.map +0 -1
  498. package/dist/accessi-module/Console/generated/model/getServiceTokensParams.js.map +0 -1
  499. package/dist/accessi-module/Console/generated/model/getServiceTokensResponse.js.map +0 -1
  500. package/dist/accessi-module/Console/generated/model/getUserByTokenRequest.js.map +0 -1
  501. package/dist/accessi-module/Console/generated/model/getUserByTokenResponse.js.map +0 -1
  502. package/dist/accessi-module/Console/generated/model/getUserRolesAndGrantsParams.js.map +0 -1
  503. package/dist/accessi-module/Console/generated/model/getUsersParams.js.map +0 -1
  504. package/dist/accessi-module/Console/generated/model/getUsersResponse.js.map +0 -1
  505. package/dist/accessi-module/Console/generated/model/getUsersResult.js.map +0 -1
  506. package/dist/accessi-module/Console/generated/model/getUsersResultExtensionFields.js.map +0 -1
  507. package/dist/accessi-module/Console/generated/model/groupWithMenusEntity.js.map +0 -1
  508. package/dist/accessi-module/Console/generated/model/index.js.map +0 -1
  509. package/dist/accessi-module/Console/generated/model/introspectAccessiTokenRequest.js.map +0 -1
  510. package/dist/accessi-module/Console/generated/model/introspectAccessiTokenResponse.js.map +0 -1
  511. package/dist/accessi-module/Console/generated/model/issuedServiceTokenDto.js.map +0 -1
  512. package/dist/accessi-module/Console/generated/model/loginAsRequest.js.map +0 -1
  513. package/dist/accessi-module/Console/generated/model/loginAsResponse.js.map +0 -1
  514. package/dist/accessi-module/Console/generated/model/loginAsResult.js.map +0 -1
  515. package/dist/accessi-module/Console/generated/model/loginRequest.js.map +0 -1
  516. package/dist/accessi-module/Console/generated/model/loginResponse.js.map +0 -1
  517. package/dist/accessi-module/Console/generated/model/loginResult.js.map +0 -1
  518. package/dist/accessi-module/Console/generated/model/loginResultExtensionFields.js.map +0 -1
  519. package/dist/accessi-module/Console/generated/model/loginResultPasswordRequired.js.map +0 -1
  520. package/dist/accessi-module/Console/generated/model/menuEntity.js.map +0 -1
  521. package/dist/accessi-module/Console/generated/model/menuTypeEntity.js.map +0 -1
  522. package/dist/accessi-module/Console/generated/model/passwordExpiredResponse.js.map +0 -1
  523. package/dist/accessi-module/Console/generated/model/permission.js.map +0 -1
  524. package/dist/accessi-module/Console/generated/model/publicRegisterRequest.js.map +0 -1
  525. package/dist/accessi-module/Console/generated/model/queryAuditOrder.js.map +0 -1
  526. package/dist/accessi-module/Console/generated/model/queryAuditParams.js.map +0 -1
  527. package/dist/accessi-module/Console/generated/model/refreshTokenRequest.js.map +0 -1
  528. package/dist/accessi-module/Console/generated/model/refreshTokenResponse.js.map +0 -1
  529. package/dist/accessi-module/Console/generated/model/refreshTokenResult.js.map +0 -1
  530. package/dist/accessi-module/Console/generated/model/registerRequest.js.map +0 -1
  531. package/dist/accessi-module/Console/generated/model/registerResponse.js.map +0 -1
  532. package/dist/accessi-module/Console/generated/model/resendTwoFactorRequest.js.map +0 -1
  533. package/dist/accessi-module/Console/generated/model/revokeTokenRequest.js.map +0 -1
  534. package/dist/accessi-module/Console/generated/model/role.js.map +0 -1
  535. package/dist/accessi-module/Console/generated/model/ruoliMenu.js.map +0 -1
  536. package/dist/accessi-module/Console/generated/model/ruoliMenuTipoAbilitazione.js.map +0 -1
  537. package/dist/accessi-module/Console/generated/model/schemaDdlResult.js.map +0 -1
  538. package/dist/accessi-module/Console/generated/model/schemaDdlSection.js.map +0 -1
  539. package/dist/accessi-module/Console/generated/model/scopeEntity.js.map +0 -1
  540. package/dist/accessi-module/Console/generated/model/sendResetPasswordEmailRequest.js.map +0 -1
  541. package/dist/accessi-module/Console/generated/model/serveResetPasswordPageParams.js.map +0 -1
  542. package/dist/accessi-module/Console/generated/model/serviceTokenDto.js.map +0 -1
  543. package/dist/accessi-module/Console/generated/model/setMenuScopesRequest.js.map +0 -1
  544. package/dist/accessi-module/Console/generated/model/setPasswordLoginPolicyRequest.js.map +0 -1
  545. package/dist/accessi-module/Console/generated/model/setScopeMenusRequest.js.map +0 -1
  546. package/dist/accessi-module/Console/generated/model/setStatoRegistrazioneDto.js.map +0 -1
  547. package/dist/accessi-module/Console/generated/model/setStatoRegistrazioneDtoStatoRegistrazione.js.map +0 -1
  548. package/dist/accessi-module/Console/generated/model/setUserPasswordRequest.js.map +0 -1
  549. package/dist/accessi-module/Console/generated/model/status.js.map +0 -1
  550. package/dist/accessi-module/Console/generated/model/tipoFiltro.js.map +0 -1
  551. package/dist/accessi-module/Console/generated/model/tipoFiltroFlgEnabled.js.map +0 -1
  552. package/dist/accessi-module/Console/generated/model/tokenResult.js.map +0 -1
  553. package/dist/accessi-module/Console/generated/model/tokenResultType.js.map +0 -1
  554. package/dist/accessi-module/Console/generated/model/twoFactorChallengeDto.js.map +0 -1
  555. package/dist/accessi-module/Console/generated/model/twoFactorChallengeDtoMethod.js.map +0 -1
  556. package/dist/accessi-module/Console/generated/model/twoFactorChallengeDtoTwoFactorRequired.js.map +0 -1
  557. package/dist/accessi-module/Console/generated/model/updateEnabledStatusRequest.js.map +0 -1
  558. package/dist/accessi-module/Console/generated/model/updateFederatedIdentityRequest.js.map +0 -1
  559. package/dist/accessi-module/Console/generated/model/updateFederatedProviderRequest.js.map +0 -1
  560. package/dist/accessi-module/Console/generated/model/updateFilterTypeRequest.js.map +0 -1
  561. package/dist/accessi-module/Console/generated/model/updateFilterTypeRequestFlgEnabled.js.map +0 -1
  562. package/dist/accessi-module/Console/generated/model/updateMenuGroupRequest.js.map +0 -1
  563. package/dist/accessi-module/Console/generated/model/updateMenuRequest.js.map +0 -1
  564. package/dist/accessi-module/Console/generated/model/updateMenuTypeRequest.js.map +0 -1
  565. package/dist/accessi-module/Console/generated/model/updateScopeRequest.js.map +0 -1
  566. package/dist/accessi-module/Console/generated/model/userDto.js.map +0 -1
  567. package/dist/accessi-module/Console/generated/model/userDtoStatoRegistrazione.js.map +0 -1
  568. package/dist/accessi-module/Console/generated/model/userGrantsDto.js.map +0 -1
  569. package/dist/accessi-module/Console/generated/model/userGrantsResponse.js.map +0 -1
  570. package/dist/accessi-module/Console/generated/model/verifyTwoFactorRequest.js.map +0 -1
  571. package/dist/accessi-module/Console/help.js.map +0 -1
  572. package/dist/accessi-module/Console/wiki.js +0 -867
  573. package/dist/accessi-module/Console/wiki.js.map +0 -1
  574. package/dist/accessi-module/Controllers/AccessiAuditController.d.ts +0 -16
  575. package/dist/accessi-module/Controllers/AccessiAuditController.js +0 -155
  576. package/dist/accessi-module/Controllers/AccessiAuditController.js.map +0 -1
  577. package/dist/accessi-module/Controllers/AccessiConsoleController.js +0 -169
  578. package/dist/accessi-module/Controllers/AccessiConsoleController.js.map +0 -1
  579. package/dist/accessi-module/Controllers/AccessiIntrospectionController.d.ts +0 -17
  580. package/dist/accessi-module/Controllers/AccessiIntrospectionController.js +0 -102
  581. package/dist/accessi-module/Controllers/AccessiIntrospectionController.js.map +0 -1
  582. package/dist/accessi-module/Controllers/AuthController.d.ts +0 -24
  583. package/dist/accessi-module/Controllers/AuthController.js +0 -564
  584. package/dist/accessi-module/Controllers/AuthController.js.map +0 -1
  585. package/dist/accessi-module/Controllers/ConfiguratorController.d.ts +0 -9
  586. package/dist/accessi-module/Controllers/ConfiguratorController.js +0 -136
  587. package/dist/accessi-module/Controllers/ConfiguratorController.js.map +0 -1
  588. package/dist/accessi-module/Controllers/ConsoleEntryController.d.ts +0 -16
  589. package/dist/accessi-module/Controllers/ConsoleEntryController.js +0 -159
  590. package/dist/accessi-module/Controllers/ConsoleEntryController.js.map +0 -1
  591. package/dist/accessi-module/Controllers/EmailController.d.ts +0 -11
  592. package/dist/accessi-module/Controllers/EmailController.js +0 -112
  593. package/dist/accessi-module/Controllers/EmailController.js.map +0 -1
  594. package/dist/accessi-module/Controllers/FiltriController.d.ts +0 -20
  595. package/dist/accessi-module/Controllers/FiltriController.js +0 -303
  596. package/dist/accessi-module/Controllers/FiltriController.js.map +0 -1
  597. package/dist/accessi-module/Controllers/PermissionController.d.ts +0 -45
  598. package/dist/accessi-module/Controllers/PermissionController.js +0 -862
  599. package/dist/accessi-module/Controllers/PermissionController.js.map +0 -1
  600. package/dist/accessi-module/Controllers/SchemaController.d.ts +0 -9
  601. package/dist/accessi-module/Controllers/SchemaController.js +0 -79
  602. package/dist/accessi-module/Controllers/SchemaController.js.map +0 -1
  603. package/dist/accessi-module/Controllers/ServiceTokenController.d.ts +0 -23
  604. package/dist/accessi-module/Controllers/ServiceTokenController.js +0 -176
  605. package/dist/accessi-module/Controllers/ServiceTokenController.js.map +0 -1
  606. package/dist/accessi-module/Controllers/UserController.d.ts +0 -39
  607. package/dist/accessi-module/Controllers/UserController.js +0 -724
  608. package/dist/accessi-module/Controllers/UserController.js.map +0 -1
  609. package/dist/accessi-module/Dtos/Abilitazione.js.map +0 -1
  610. package/dist/accessi-module/Dtos/AbilitazioneMenu.js.map +0 -1
  611. package/dist/accessi-module/Dtos/AdminBootstrapDtos.js.map +0 -1
  612. package/dist/accessi-module/Dtos/AssignPermissionsToUserRequest.js.map +0 -1
  613. package/dist/accessi-module/Dtos/AssignRolesToUserRequest.js.map +0 -1
  614. package/dist/accessi-module/Dtos/AuditDtos.js.map +0 -1
  615. package/dist/accessi-module/Dtos/AuthenticatedUserPayloadDto.js.map +0 -1
  616. package/dist/accessi-module/Dtos/BaseResponse.js.map +0 -1
  617. package/dist/accessi-module/Dtos/CatalogDtos.js.map +0 -1
  618. package/dist/accessi-module/Dtos/ConfirmResetPasswordRequest.js.map +0 -1
  619. package/dist/accessi-module/Dtos/ConsoleEntryDtos.js.map +0 -1
  620. package/dist/accessi-module/Dtos/FederatedExchangeDtos.js.map +0 -1
  621. package/dist/accessi-module/Dtos/FederatedIdentityDtos.js.map +0 -1
  622. package/dist/accessi-module/Dtos/FiltriUtente.js.map +0 -1
  623. package/dist/accessi-module/Dtos/GetGroupsWithMenusResponse.js.map +0 -1
  624. package/dist/accessi-module/Dtos/GetMenusResponse.js.map +0 -1
  625. package/dist/accessi-module/Dtos/GetRolesResponse.js.map +0 -1
  626. package/dist/accessi-module/Dtos/GetUserByTokenRequest.js.map +0 -1
  627. package/dist/accessi-module/Dtos/GetUserByTokenResponse.js.map +0 -1
  628. package/dist/accessi-module/Dtos/GetUsersResponse.js.map +0 -1
  629. package/dist/accessi-module/Dtos/IntrospectionDtos.js.map +0 -1
  630. package/dist/accessi-module/Dtos/LoginAsDtos.js.map +0 -1
  631. package/dist/accessi-module/Dtos/LoginRequest.js.map +0 -1
  632. package/dist/accessi-module/Dtos/LoginResponse.js.map +0 -1
  633. package/dist/accessi-module/Dtos/MenuItem.js.map +0 -1
  634. package/dist/accessi-module/Dtos/Permission.js.map +0 -1
  635. package/dist/accessi-module/Dtos/PublicRegisterRequest.js.map +0 -1
  636. package/dist/accessi-module/Dtos/RefreshTokenDtos.js.map +0 -1
  637. package/dist/accessi-module/Dtos/RegisterRequest.js.map +0 -1
  638. package/dist/accessi-module/Dtos/RegisterResponse.js.map +0 -1
  639. package/dist/accessi-module/Dtos/RevokeTokenRequest.js.map +0 -1
  640. package/dist/accessi-module/Dtos/Role.js.map +0 -1
  641. package/dist/accessi-module/Dtos/RuoliMenu.js.map +0 -1
  642. package/dist/accessi-module/Dtos/SchemaDtos.js.map +0 -1
  643. package/dist/accessi-module/Dtos/ScopeDtos.js.map +0 -1
  644. package/dist/accessi-module/Dtos/SendResetPasswordEmailRequest.js.map +0 -1
  645. package/dist/accessi-module/Dtos/ServiceToken.js.map +0 -1
  646. package/dist/accessi-module/Dtos/SetStatoRegistrazione.js.map +0 -1
  647. package/dist/accessi-module/Dtos/SetUserPasswordRequest.js.map +0 -1
  648. package/dist/accessi-module/Dtos/StatoRegistrazione.js.map +0 -1
  649. package/dist/accessi-module/Dtos/TipoAbilitazione.js.map +0 -1
  650. package/dist/accessi-module/Dtos/TipoFiltro.js.map +0 -1
  651. package/dist/accessi-module/Dtos/TokenResult.js.map +0 -1
  652. package/dist/accessi-module/Dtos/TwoFactorDtos.js.map +0 -1
  653. package/dist/accessi-module/Dtos/UpdateEnabledStatusRequest.js.map +0 -1
  654. package/dist/accessi-module/Dtos/UserDto.js.map +0 -1
  655. package/dist/accessi-module/Dtos/UserGrantsDto.js.map +0 -1
  656. package/dist/accessi-module/Dtos/UserGrantsResponse.js.map +0 -1
  657. package/dist/accessi-module/Dtos/index.js.map +0 -1
  658. package/dist/accessi-module/Services/AdminBootstrapService/AdminBootstrapService.d.ts +0 -33
  659. package/dist/accessi-module/Services/AdminBootstrapService/AdminBootstrapService.js +0 -106
  660. package/dist/accessi-module/Services/AdminBootstrapService/AdminBootstrapService.js.map +0 -1
  661. package/dist/accessi-module/Services/AuthService/AuthService.d.ts +0 -127
  662. package/dist/accessi-module/Services/AuthService/AuthService.js +0 -734
  663. package/dist/accessi-module/Services/AuthService/AuthService.js.map +0 -1
  664. package/dist/accessi-module/Services/ConfiguratorService/ConfiguratorService.js.map +0 -1
  665. package/dist/accessi-module/Services/EmailService/EmailService.js +0 -439
  666. package/dist/accessi-module/Services/EmailService/EmailService.js.map +0 -1
  667. package/dist/accessi-module/Services/FiltriService/FiltriService.d.ts +0 -26
  668. package/dist/accessi-module/Services/FiltriService/FiltriService.js +0 -203
  669. package/dist/accessi-module/Services/FiltriService/FiltriService.js.map +0 -1
  670. package/dist/accessi-module/Services/PermissionService/PermissionService.d.ts +0 -126
  671. package/dist/accessi-module/Services/PermissionService/PermissionService.js +0 -944
  672. package/dist/accessi-module/Services/PermissionService/PermissionService.js.map +0 -1
  673. package/dist/accessi-module/Services/SchemaExportService/SchemaExportService.js.map +0 -1
  674. package/dist/accessi-module/Services/ServiceTokenService/ServiceTokenService.js.map +0 -1
  675. package/dist/accessi-module/Services/TwoFactorService/TwoFactorService.d.ts +0 -27
  676. package/dist/accessi-module/Services/TwoFactorService/TwoFactorService.js +0 -175
  677. package/dist/accessi-module/Services/TwoFactorService/TwoFactorService.js.map +0 -1
  678. package/dist/accessi-module/Services/UserService/UserService.d.ts +0 -112
  679. package/dist/accessi-module/Services/UserService/UserService.js +0 -837
  680. package/dist/accessi-module/Services/UserService/UserService.js.map +0 -1
  681. package/dist/accessi-module/accessiRuntime.d.ts +0 -45
  682. package/dist/accessi-module/accessiRuntime.js +0 -39
  683. package/dist/accessi-module/accessiRuntime.js.map +0 -1
  684. package/dist/accessi-module/database-updates/AccessiCatalogMigrator.js.map +0 -1
  685. package/dist/accessi-module/database-updates/AccessiDatabaseUpdater.js.map +0 -1
  686. package/dist/accessi-module/database-updates/accessiOptionsFromEnv.js +0 -134
  687. package/dist/accessi-module/database-updates/accessiOptionsFromEnv.js.map +0 -1
  688. package/dist/accessi-module/database-updates/accessiSchema.js.map +0 -1
  689. package/dist/accessi-module/database-updates/menuScopeSeed.js.map +0 -1
  690. package/dist/accessi-module/database-updates/menuScopeSeeder.js.map +0 -1
  691. package/dist/accessi-module/database-updates/optionalColumns.js.map +0 -1
  692. package/dist/accessi-module/database-updates/runAccessiCatalogMigrations.js.map +0 -1
  693. package/dist/accessi-module/database-updates/runAccessiDbUpdate.js.map +0 -1
  694. package/dist/accessi-module/federated-auth/FederatedAuthController.d.ts +0 -33
  695. package/dist/accessi-module/federated-auth/FederatedAuthController.js +0 -373
  696. package/dist/accessi-module/federated-auth/FederatedAuthController.js.map +0 -1
  697. package/dist/accessi-module/federated-auth/FederatedAuthExchangeController.d.ts +0 -15
  698. package/dist/accessi-module/federated-auth/FederatedAuthExchangeController.js +0 -85
  699. package/dist/accessi-module/federated-auth/FederatedAuthExchangeController.js.map +0 -1
  700. package/dist/accessi-module/federated-auth/FederatedAuthService.d.ts +0 -102
  701. package/dist/accessi-module/federated-auth/FederatedAuthService.js +0 -472
  702. package/dist/accessi-module/federated-auth/FederatedAuthService.js.map +0 -1
  703. package/dist/accessi-module/federated-auth/FederatedAuthTypes.d.ts +0 -53
  704. package/dist/accessi-module/federated-auth/FederatedAuthTypes.js.map +0 -1
  705. package/dist/accessi-module/health/nest.js.map +0 -1
  706. package/dist/accessi-module/health/readiness.js.map +0 -1
  707. package/dist/accessi-module/index.d.ts +0 -88
  708. package/dist/accessi-module/index.js +0 -303
  709. package/dist/accessi-module/index.js.map +0 -1
  710. package/dist/accessi-module/jwt/jwt.strategy.d.ts +0 -9
  711. package/dist/accessi-module/jwt/jwt.strategy.js +0 -88
  712. package/dist/accessi-module/jwt/jwt.strategy.js.map +0 -1
  713. package/dist/accessi-module/middleware/accessiRequirements.js.map +0 -1
  714. package/dist/accessi-module/middleware/authenticateGen.d.ts +0 -32
  715. package/dist/accessi-module/middleware/authenticateGen.js +0 -315
  716. package/dist/accessi-module/middleware/authenticateGen.js.map +0 -1
  717. package/dist/accessi-module/observability/metrics.js +0 -220
  718. package/dist/accessi-module/observability/metrics.js.map +0 -1
  719. package/dist/accessi-module/observability/redisMetrics.js.map +0 -1
  720. package/dist/accessi-module/security/AccessiHttpExceptionFilter.js.map +0 -1
  721. package/dist/accessi-module/security/accessControl.js.map +0 -1
  722. package/dist/accessi-module/security/accessTokenRevocation.js.map +0 -1
  723. package/dist/accessi-module/security/accessiValidation.js.map +0 -1
  724. package/dist/accessi-module/security/adminBootstrap.js.map +0 -1
  725. package/dist/accessi-module/security/audit.d.ts +0 -74
  726. package/dist/accessi-module/security/audit.js +0 -189
  727. package/dist/accessi-module/security/audit.js.map +0 -1
  728. package/dist/accessi-module/security/auditSinks.js.map +0 -1
  729. package/dist/accessi-module/security/authCookies.js.map +0 -1
  730. package/dist/accessi-module/security/authenticatedToken.d.ts +0 -31
  731. package/dist/accessi-module/security/authenticatedToken.js +0 -79
  732. package/dist/accessi-module/security/authenticatedToken.js.map +0 -1
  733. package/dist/accessi-module/security/consoleEntry.js.map +0 -1
  734. package/dist/accessi-module/security/edgeRateLimit.js.map +0 -1
  735. package/dist/accessi-module/security/emailConfiguration.js.map +0 -1
  736. package/dist/accessi-module/security/jwks.js.map +0 -1
  737. package/dist/accessi-module/security/jwksBootstrap.js.map +0 -1
  738. package/dist/accessi-module/security/jwtTokenOptions.js.map +0 -1
  739. package/dist/accessi-module/security/loginAs.js.map +0 -1
  740. package/dist/accessi-module/security/passwordPolicy.js.map +0 -1
  741. package/dist/accessi-module/security/passwordResetToken.js.map +0 -1
  742. package/dist/accessi-module/security/publicAuthRateLimit.js.map +0 -1
  743. package/dist/accessi-module/security/rateLimitStore.js.map +0 -1
  744. package/dist/accessi-module/security/refreshTokenRotation.js.map +0 -1
  745. package/dist/accessi-module/security/securityHeaders.js.map +0 -1
  746. package/dist/accessi-module/security/serviceTokenGuard.d.ts +0 -27
  747. package/dist/accessi-module/security/serviceTokenGuard.js +0 -90
  748. package/dist/accessi-module/security/serviceTokenGuard.js.map +0 -1
  749. package/dist/accessi-module/security/serviceTokenRateLimit.js.map +0 -1
  750. package/dist/accessi-module/security/sessionRevocation.js.map +0 -1
  751. package/dist/accessi-module/security/validateOptions.js.map +0 -1
  752. package/dist/accessi-module/startupLog.js.map +0 -1
  753. package/dist/allegati-module/Controllers/AllegatiController.d.ts +0 -36
  754. package/dist/allegati-module/Controllers/AllegatiController.js +0 -230
  755. package/dist/allegati-module/Controllers/AllegatiController.js.map +0 -1
  756. package/dist/allegati-module/Dtos/AllegatoDto.js.map +0 -1
  757. package/dist/allegati-module/Dtos/BaseResponse.js.map +0 -1
  758. package/dist/allegati-module/Dtos/UploadSingleFileRequest.js.map +0 -1
  759. package/dist/allegati-module/Dtos/index.js.map +0 -1
  760. package/dist/allegati-module/Dtos/responses/DownloadAllegatoResponseDto.js.map +0 -1
  761. package/dist/allegati-module/Dtos/responses/GetListResponse.js.map +0 -1
  762. package/dist/allegati-module/Dtos/responses/UploadAllegatoResponseDto.js.map +0 -1
  763. package/dist/allegati-module/Services/AllegatiService/AllegatiService.d.ts +0 -61
  764. package/dist/allegati-module/Services/AllegatiService/AllegatiService.js.map +0 -1
  765. package/dist/emilsoftware-utilities-2.0.0-dev.83.tgz +0 -0
  766. package/dist/firebird-compat.js +0 -269
  767. package/dist/firebird-compat.js.map +0 -1
  768. /package/dist/{accessi-module → accessi-service}/AccessiModule.d.ts +0 -0
  769. /package/dist/{accessi-module/Console → accessi-service/console}/accessiFetch.d.ts +0 -0
  770. /package/dist/{accessi-module/Console → accessi-service/console}/accessiFetch.js +0 -0
  771. /package/dist/{accessi-module/Console → accessi-service/console}/console.css +0 -0
  772. /package/dist/{accessi-module/Console → accessi-service/console}/console.d.ts +0 -0
  773. /package/dist/{accessi-module/Console → accessi-service/console}/generated/emilsoftware-utilities.d.ts +0 -0
  774. /package/dist/{accessi-module/Console → accessi-service/console}/generated/emilsoftware-utilities.js +0 -0
  775. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/abilitazioneMenu.d.ts +0 -0
  776. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/abilitazioneMenu.js +0 -0
  777. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/abilitazioneMenuTipoAbilitazione.d.ts +0 -0
  778. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/abilitazioneMenuTipoAbilitazione.js +0 -0
  779. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/accessiIntrospectionResultDto.d.ts +0 -0
  780. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/accessiIntrospectionResultDto.js +0 -0
  781. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/actionResponse.d.ts +0 -0
  782. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/actionResponse.js +0 -0
  783. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/adminBootstrapStatusResponse.d.ts +0 -0
  784. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/adminBootstrapStatusResponse.js +0 -0
  785. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/adminBootstrapStatusResult.d.ts +0 -0
  786. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/adminBootstrapStatusResult.js +0 -0
  787. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/assignPermissionsToUserRequest.d.ts +0 -0
  788. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/assignPermissionsToUserRequest.js +0 -0
  789. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/assignRolesToUserRequest.d.ts +0 -0
  790. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/assignRolesToUserRequest.js +0 -0
  791. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/authenticatedTokenPayloadDto.d.ts +0 -0
  792. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/authenticatedTokenPayloadDto.js +0 -0
  793. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/authenticatedUserPayloadDto.d.ts +0 -0
  794. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/authenticatedUserPayloadDto.js +0 -0
  795. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/bootstrapAdminRequest.d.ts +0 -0
  796. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/bootstrapAdminRequest.js +0 -0
  797. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/bootstrapAdminResponse.d.ts +0 -0
  798. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/bootstrapAdminResponse.js +0 -0
  799. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/bootstrapAdminResultDto.d.ts +0 -0
  800. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/bootstrapAdminResultDto.js +0 -0
  801. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/confirmResetPasswordRequest.d.ts +0 -0
  802. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/confirmResetPasswordRequest.js +0 -0
  803. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/consoleEntryExchangeRequest.d.ts +0 -0
  804. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/consoleEntryExchangeRequest.js +0 -0
  805. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/consoleEntrySessionResponse.d.ts +0 -0
  806. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/consoleEntrySessionResponse.js +0 -0
  807. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/consoleEntrySessionResult.d.ts +0 -0
  808. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/consoleEntrySessionResult.js +0 -0
  809. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/consoleEntryTicketResponse.d.ts +0 -0
  810. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/consoleEntryTicketResponse.js +0 -0
  811. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/consoleEntryTicketResult.d.ts +0 -0
  812. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/consoleEntryTicketResult.js +0 -0
  813. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/consoleEntryTokenResult.d.ts +0 -0
  814. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/consoleEntryTokenResult.js +0 -0
  815. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/createFederatedIdentityRequest.d.ts +0 -0
  816. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/createFederatedIdentityRequest.js +0 -0
  817. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/createFederatedProviderRequest.d.ts +0 -0
  818. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/createFederatedProviderRequest.js +0 -0
  819. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/createFederatedUserRequest.d.ts +0 -0
  820. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/createFederatedUserRequest.js +0 -0
  821. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/createFilterTypeRequest.d.ts +0 -0
  822. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/createFilterTypeRequest.js +0 -0
  823. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/createFilterTypeRequestFlgEnabled.d.ts +0 -0
  824. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/createFilterTypeRequestFlgEnabled.js +0 -0
  825. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/createMenuGroupRequest.d.ts +0 -0
  826. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/createMenuGroupRequest.js +0 -0
  827. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/createMenuRequest.d.ts +0 -0
  828. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/createMenuRequest.js +0 -0
  829. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/createMenuTypeRequest.d.ts +0 -0
  830. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/createMenuTypeRequest.js +0 -0
  831. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/createScopeRequest.d.ts +0 -0
  832. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/createScopeRequest.js +0 -0
  833. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/createServiceTokenRequest.d.ts +0 -0
  834. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/createServiceTokenRequest.js +0 -0
  835. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/createServiceTokenResponse.d.ts +0 -0
  836. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/createServiceTokenResponse.js +0 -0
  837. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/errorResponse.d.ts +0 -0
  838. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/errorResponse.js +0 -0
  839. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/exchangeFederatedIdentityRequest.d.ts +0 -0
  840. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/exchangeFederatedIdentityRequest.js +0 -0
  841. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/exportAuditOrder.d.ts +0 -0
  842. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/exportAuditOrder.js +0 -0
  843. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/exportAuditParams.d.ts +0 -0
  844. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/exportAuditParams.js +0 -0
  845. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/federatedAuthenticationResultDto.d.ts +0 -0
  846. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/federatedAuthenticationResultDto.js +0 -0
  847. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/federatedExchangeResponse.d.ts +0 -0
  848. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/federatedExchangeResponse.js +0 -0
  849. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/federatedIdentityListResponse.d.ts +0 -0
  850. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/federatedIdentityListResponse.js +0 -0
  851. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/federatedIdentityResponse.d.ts +0 -0
  852. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/federatedIdentityResponse.js +0 -0
  853. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/federatedIdentityResponseDto.d.ts +0 -0
  854. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/federatedIdentityResponseDto.js +0 -0
  855. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/federatedProviderListResponse.d.ts +0 -0
  856. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/federatedProviderListResponse.js +0 -0
  857. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/federatedProviderResponse.d.ts +0 -0
  858. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/federatedProviderResponse.js +0 -0
  859. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/federatedProviderResponseDto.d.ts +0 -0
  860. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/federatedProviderResponseDto.js +0 -0
  861. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/filtriUtente.d.ts +0 -0
  862. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/filtriUtente.js +0 -0
  863. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/getFiltriResponse.d.ts +0 -0
  864. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/getFiltriResponse.js +0 -0
  865. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/getFiltriUtenteParams.d.ts +0 -0
  866. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/getFiltriUtenteParams.js +0 -0
  867. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/getFiltriUtenteResponse.d.ts +0 -0
  868. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/getFiltriUtenteResponse.js +0 -0
  869. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/getGroupsWithMenusParams.d.ts +0 -0
  870. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/getGroupsWithMenusParams.js +0 -0
  871. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/getGroupsWithMenusResponse.d.ts +0 -0
  872. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/getGroupsWithMenusResponse.js +0 -0
  873. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/getMenuScopesResponse.d.ts +0 -0
  874. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/getMenuScopesResponse.js +0 -0
  875. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/getMenuTypesResponse.d.ts +0 -0
  876. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/getMenuTypesResponse.js +0 -0
  877. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/getMenusParams.d.ts +0 -0
  878. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/getMenusParams.js +0 -0
  879. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/getMenusResponse.d.ts +0 -0
  880. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/getMenusResponse.js +0 -0
  881. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/getRolesResponse.d.ts +0 -0
  882. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/getRolesResponse.js +0 -0
  883. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/getSchemaResponse.d.ts +0 -0
  884. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/getSchemaResponse.js +0 -0
  885. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/getScopesResponse.d.ts +0 -0
  886. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/getScopesResponse.js +0 -0
  887. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/getServiceTokensParams.d.ts +0 -0
  888. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/getServiceTokensParams.js +0 -0
  889. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/getServiceTokensResponse.d.ts +0 -0
  890. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/getServiceTokensResponse.js +0 -0
  891. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/getUserByTokenRequest.d.ts +0 -0
  892. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/getUserByTokenRequest.js +0 -0
  893. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/getUserByTokenResponse.d.ts +0 -0
  894. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/getUserByTokenResponse.js +0 -0
  895. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/getUserRolesAndGrantsParams.d.ts +0 -0
  896. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/getUserRolesAndGrantsParams.js +0 -0
  897. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/getUsersParams.d.ts +0 -0
  898. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/getUsersParams.js +0 -0
  899. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/getUsersResponse.d.ts +0 -0
  900. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/getUsersResponse.js +0 -0
  901. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/getUsersResult.d.ts +0 -0
  902. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/getUsersResult.js +0 -0
  903. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/getUsersResultExtensionFields.d.ts +0 -0
  904. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/getUsersResultExtensionFields.js +0 -0
  905. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/groupWithMenusEntity.d.ts +0 -0
  906. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/groupWithMenusEntity.js +0 -0
  907. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/index.d.ts +0 -0
  908. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/index.js +0 -0
  909. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/introspectAccessiTokenRequest.d.ts +0 -0
  910. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/introspectAccessiTokenRequest.js +0 -0
  911. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/introspectAccessiTokenResponse.d.ts +0 -0
  912. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/introspectAccessiTokenResponse.js +0 -0
  913. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/issuedServiceTokenDto.d.ts +0 -0
  914. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/issuedServiceTokenDto.js +0 -0
  915. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/loginAsRequest.d.ts +0 -0
  916. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/loginAsRequest.js +0 -0
  917. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/loginAsResponse.d.ts +0 -0
  918. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/loginAsResponse.js +0 -0
  919. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/loginAsResult.d.ts +0 -0
  920. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/loginAsResult.js +0 -0
  921. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/loginRequest.d.ts +0 -0
  922. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/loginRequest.js +0 -0
  923. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/loginResponse.d.ts +0 -0
  924. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/loginResponse.js +0 -0
  925. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/loginResult.d.ts +0 -0
  926. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/loginResult.js +0 -0
  927. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/loginResultExtensionFields.d.ts +0 -0
  928. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/loginResultExtensionFields.js +0 -0
  929. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/loginResultPasswordRequired.d.ts +0 -0
  930. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/loginResultPasswordRequired.js +0 -0
  931. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/menuEntity.d.ts +0 -0
  932. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/menuEntity.js +0 -0
  933. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/menuTypeEntity.d.ts +0 -0
  934. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/menuTypeEntity.js +0 -0
  935. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/passwordExpiredResponse.d.ts +0 -0
  936. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/passwordExpiredResponse.js +0 -0
  937. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/permission.d.ts +0 -0
  938. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/permission.js +0 -0
  939. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/publicRegisterRequest.d.ts +0 -0
  940. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/publicRegisterRequest.js +0 -0
  941. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/queryAuditOrder.d.ts +0 -0
  942. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/queryAuditOrder.js +0 -0
  943. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/queryAuditParams.d.ts +0 -0
  944. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/queryAuditParams.js +0 -0
  945. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/refreshTokenRequest.d.ts +0 -0
  946. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/refreshTokenRequest.js +0 -0
  947. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/refreshTokenResponse.d.ts +0 -0
  948. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/refreshTokenResponse.js +0 -0
  949. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/refreshTokenResult.d.ts +0 -0
  950. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/refreshTokenResult.js +0 -0
  951. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/registerRequest.d.ts +0 -0
  952. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/registerRequest.js +0 -0
  953. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/registerResponse.d.ts +0 -0
  954. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/registerResponse.js +0 -0
  955. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/resendTwoFactorRequest.d.ts +0 -0
  956. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/resendTwoFactorRequest.js +0 -0
  957. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/revokeTokenRequest.d.ts +0 -0
  958. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/revokeTokenRequest.js +0 -0
  959. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/role.d.ts +0 -0
  960. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/role.js +0 -0
  961. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/ruoliMenu.d.ts +0 -0
  962. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/ruoliMenu.js +0 -0
  963. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/ruoliMenuTipoAbilitazione.d.ts +0 -0
  964. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/ruoliMenuTipoAbilitazione.js +0 -0
  965. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/schemaDdlResult.d.ts +0 -0
  966. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/schemaDdlResult.js +0 -0
  967. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/schemaDdlSection.d.ts +0 -0
  968. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/schemaDdlSection.js +0 -0
  969. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/scopeEntity.d.ts +0 -0
  970. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/scopeEntity.js +0 -0
  971. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/sendResetPasswordEmailRequest.d.ts +0 -0
  972. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/sendResetPasswordEmailRequest.js +0 -0
  973. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/serveResetPasswordPageParams.d.ts +0 -0
  974. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/serveResetPasswordPageParams.js +0 -0
  975. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/serviceTokenDto.d.ts +0 -0
  976. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/serviceTokenDto.js +0 -0
  977. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/setMenuScopesRequest.d.ts +0 -0
  978. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/setMenuScopesRequest.js +0 -0
  979. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/setPasswordLoginPolicyRequest.d.ts +0 -0
  980. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/setPasswordLoginPolicyRequest.js +0 -0
  981. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/setScopeMenusRequest.d.ts +0 -0
  982. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/setScopeMenusRequest.js +0 -0
  983. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/setStatoRegistrazioneDto.d.ts +0 -0
  984. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/setStatoRegistrazioneDto.js +0 -0
  985. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/setStatoRegistrazioneDtoStatoRegistrazione.d.ts +0 -0
  986. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/setStatoRegistrazioneDtoStatoRegistrazione.js +0 -0
  987. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/setUserPasswordRequest.d.ts +0 -0
  988. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/setUserPasswordRequest.js +0 -0
  989. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/status.d.ts +0 -0
  990. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/status.js +0 -0
  991. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/tipoFiltro.d.ts +0 -0
  992. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/tipoFiltro.js +0 -0
  993. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/tipoFiltroFlgEnabled.d.ts +0 -0
  994. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/tipoFiltroFlgEnabled.js +0 -0
  995. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/tokenResult.d.ts +0 -0
  996. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/tokenResult.js +0 -0
  997. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/tokenResultType.d.ts +0 -0
  998. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/tokenResultType.js +0 -0
  999. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/twoFactorChallengeDto.d.ts +0 -0
  1000. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/twoFactorChallengeDto.js +0 -0
  1001. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/twoFactorChallengeDtoMethod.d.ts +0 -0
  1002. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/twoFactorChallengeDtoMethod.js +0 -0
  1003. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/twoFactorChallengeDtoTwoFactorRequired.d.ts +0 -0
  1004. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/twoFactorChallengeDtoTwoFactorRequired.js +0 -0
  1005. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/updateEnabledStatusRequest.d.ts +0 -0
  1006. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/updateEnabledStatusRequest.js +0 -0
  1007. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/updateFederatedIdentityRequest.d.ts +0 -0
  1008. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/updateFederatedIdentityRequest.js +0 -0
  1009. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/updateFederatedProviderRequest.d.ts +0 -0
  1010. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/updateFederatedProviderRequest.js +0 -0
  1011. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/updateFilterTypeRequest.d.ts +0 -0
  1012. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/updateFilterTypeRequest.js +0 -0
  1013. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/updateFilterTypeRequestFlgEnabled.d.ts +0 -0
  1014. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/updateFilterTypeRequestFlgEnabled.js +0 -0
  1015. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/updateMenuGroupRequest.d.ts +0 -0
  1016. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/updateMenuGroupRequest.js +0 -0
  1017. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/updateMenuRequest.d.ts +0 -0
  1018. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/updateMenuRequest.js +0 -0
  1019. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/updateMenuTypeRequest.d.ts +0 -0
  1020. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/updateMenuTypeRequest.js +0 -0
  1021. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/updateScopeRequest.d.ts +0 -0
  1022. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/updateScopeRequest.js +0 -0
  1023. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/userDto.d.ts +0 -0
  1024. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/userDto.js +0 -0
  1025. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/userDtoStatoRegistrazione.d.ts +0 -0
  1026. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/userDtoStatoRegistrazione.js +0 -0
  1027. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/userGrantsDto.d.ts +0 -0
  1028. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/userGrantsDto.js +0 -0
  1029. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/userGrantsResponse.d.ts +0 -0
  1030. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/userGrantsResponse.js +0 -0
  1031. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/verifyTwoFactorRequest.d.ts +0 -0
  1032. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/verifyTwoFactorRequest.js +0 -0
  1033. /package/dist/{accessi-module/Console → accessi-service/console}/help.d.ts +0 -0
  1034. /package/dist/{accessi-module/Console → accessi-service/console}/help.js +0 -0
  1035. /package/dist/{accessi-module/Console → accessi-service/console}/index.html +0 -0
  1036. /package/dist/{accessi-module/Console → accessi-service/console}/wiki.d.ts +0 -0
  1037. /package/dist/{accessi-module/Controllers → accessi-service/controllers}/AccessiConsoleController.d.ts +0 -0
  1038. /package/dist/{accessi-module → accessi-service}/database-updates/AccessiCatalogMigrator.d.ts +0 -0
  1039. /package/dist/{accessi-module → accessi-service}/database-updates/AccessiCatalogMigrator.js +0 -0
  1040. /package/dist/{accessi-module → accessi-service}/database-updates/AccessiDatabaseUpdater.d.ts +0 -0
  1041. /package/dist/{accessi-module → accessi-service}/database-updates/AccessiDatabaseUpdater.js +0 -0
  1042. /package/dist/{accessi-module → accessi-service}/database-updates/accessiOptionsFromEnv.d.ts +0 -0
  1043. /package/dist/{accessi-module → accessi-service}/database-updates/accessiSchema.d.ts +0 -0
  1044. /package/dist/{accessi-module → accessi-service}/database-updates/accessiSchema.js +0 -0
  1045. /package/dist/{accessi-module → accessi-service}/database-updates/menuScopeSeed.d.ts +0 -0
  1046. /package/dist/{accessi-module → accessi-service}/database-updates/menuScopeSeed.js +0 -0
  1047. /package/dist/{accessi-module → accessi-service}/database-updates/menuScopeSeeder.d.ts +0 -0
  1048. /package/dist/{accessi-module → accessi-service}/database-updates/menuScopeSeeder.js +0 -0
  1049. /package/dist/{accessi-module → accessi-service}/database-updates/optionalColumns.d.ts +0 -0
  1050. /package/dist/{accessi-module → accessi-service}/database-updates/optionalColumns.js +0 -0
  1051. /package/dist/{accessi-module → accessi-service}/database-updates/runAccessiCatalogMigrations.d.ts +0 -0
  1052. /package/dist/{accessi-module → accessi-service}/database-updates/runAccessiCatalogMigrations.js +0 -0
  1053. /package/dist/{accessi-module → accessi-service}/database-updates/runAccessiDbUpdate.d.ts +0 -0
  1054. /package/dist/{accessi-module → accessi-service}/database-updates/runAccessiDbUpdate.js +0 -0
  1055. /package/dist/{accessi-module/Dtos → accessi-service/dtos}/Abilitazione.d.ts +0 -0
  1056. /package/dist/{accessi-module/Dtos → accessi-service/dtos}/Abilitazione.js +0 -0
  1057. /package/dist/{accessi-module/Dtos → accessi-service/dtos}/AbilitazioneMenu.d.ts +0 -0
  1058. /package/dist/{accessi-module/Dtos → accessi-service/dtos}/AbilitazioneMenu.js +0 -0
  1059. /package/dist/{accessi-module/Dtos → accessi-service/dtos}/AdminBootstrapDtos.d.ts +0 -0
  1060. /package/dist/{accessi-module/Dtos → accessi-service/dtos}/AdminBootstrapDtos.js +0 -0
  1061. /package/dist/{accessi-module/Dtos → accessi-service/dtos}/AssignPermissionsToUserRequest.d.ts +0 -0
  1062. /package/dist/{accessi-module/Dtos → accessi-service/dtos}/AssignPermissionsToUserRequest.js +0 -0
  1063. /package/dist/{accessi-module/Dtos → accessi-service/dtos}/AssignRolesToUserRequest.d.ts +0 -0
  1064. /package/dist/{accessi-module/Dtos → accessi-service/dtos}/AssignRolesToUserRequest.js +0 -0
  1065. /package/dist/{accessi-module/Dtos → accessi-service/dtos}/AuditDtos.d.ts +0 -0
  1066. /package/dist/{accessi-module/Dtos → accessi-service/dtos}/AuditDtos.js +0 -0
  1067. /package/dist/{accessi-module/Dtos → accessi-service/dtos}/AuthenticatedUserPayloadDto.d.ts +0 -0
  1068. /package/dist/{accessi-module/Dtos → accessi-service/dtos}/AuthenticatedUserPayloadDto.js +0 -0
  1069. /package/dist/{accessi-module/Dtos → accessi-service/dtos}/BaseResponse.d.ts +0 -0
  1070. /package/dist/{accessi-module/Dtos → accessi-service/dtos}/BaseResponse.js +0 -0
  1071. /package/dist/{accessi-module/Dtos → accessi-service/dtos}/CatalogDtos.d.ts +0 -0
  1072. /package/dist/{accessi-module/Dtos → accessi-service/dtos}/CatalogDtos.js +0 -0
  1073. /package/dist/{accessi-module/Dtos → accessi-service/dtos}/ConfirmResetPasswordRequest.d.ts +0 -0
  1074. /package/dist/{accessi-module/Dtos → accessi-service/dtos}/ConfirmResetPasswordRequest.js +0 -0
  1075. /package/dist/{accessi-module/Dtos → accessi-service/dtos}/ConsoleEntryDtos.d.ts +0 -0
  1076. /package/dist/{accessi-module/Dtos → accessi-service/dtos}/ConsoleEntryDtos.js +0 -0
  1077. /package/dist/{accessi-module/Dtos → accessi-service/dtos}/FederatedExchangeDtos.d.ts +0 -0
  1078. /package/dist/{accessi-module/Dtos → accessi-service/dtos}/FederatedExchangeDtos.js +0 -0
  1079. /package/dist/{accessi-module/Dtos → accessi-service/dtos}/FederatedIdentityDtos.d.ts +0 -0
  1080. /package/dist/{accessi-module/Dtos → accessi-service/dtos}/FederatedIdentityDtos.js +0 -0
  1081. /package/dist/{accessi-module/Dtos → accessi-service/dtos}/FiltriUtente.d.ts +0 -0
  1082. /package/dist/{accessi-module/Dtos → accessi-service/dtos}/FiltriUtente.js +0 -0
  1083. /package/dist/{accessi-module/Dtos → accessi-service/dtos}/GetGroupsWithMenusResponse.d.ts +0 -0
  1084. /package/dist/{accessi-module/Dtos → accessi-service/dtos}/GetGroupsWithMenusResponse.js +0 -0
  1085. /package/dist/{accessi-module/Dtos → accessi-service/dtos}/GetMenusResponse.d.ts +0 -0
  1086. /package/dist/{accessi-module/Dtos → accessi-service/dtos}/GetMenusResponse.js +0 -0
  1087. /package/dist/{accessi-module/Dtos → accessi-service/dtos}/GetRolesResponse.d.ts +0 -0
  1088. /package/dist/{accessi-module/Dtos → accessi-service/dtos}/GetRolesResponse.js +0 -0
  1089. /package/dist/{accessi-module/Dtos → accessi-service/dtos}/GetUserByTokenRequest.d.ts +0 -0
  1090. /package/dist/{accessi-module/Dtos → accessi-service/dtos}/GetUserByTokenRequest.js +0 -0
  1091. /package/dist/{accessi-module/Dtos → accessi-service/dtos}/GetUserByTokenResponse.d.ts +0 -0
  1092. /package/dist/{accessi-module/Dtos → accessi-service/dtos}/GetUserByTokenResponse.js +0 -0
  1093. /package/dist/{accessi-module/Dtos → accessi-service/dtos}/GetUsersResponse.d.ts +0 -0
  1094. /package/dist/{accessi-module/Dtos → accessi-service/dtos}/GetUsersResponse.js +0 -0
  1095. /package/dist/{accessi-module/Dtos → accessi-service/dtos}/IntrospectionDtos.d.ts +0 -0
  1096. /package/dist/{accessi-module/Dtos → accessi-service/dtos}/IntrospectionDtos.js +0 -0
  1097. /package/dist/{accessi-module/Dtos → accessi-service/dtos}/LoginAsDtos.d.ts +0 -0
  1098. /package/dist/{accessi-module/Dtos → accessi-service/dtos}/LoginAsDtos.js +0 -0
  1099. /package/dist/{accessi-module/Dtos → accessi-service/dtos}/LoginRequest.d.ts +0 -0
  1100. /package/dist/{accessi-module/Dtos → accessi-service/dtos}/LoginRequest.js +0 -0
  1101. /package/dist/{accessi-module/Dtos → accessi-service/dtos}/LoginResponse.d.ts +0 -0
  1102. /package/dist/{accessi-module/Dtos → accessi-service/dtos}/LoginResponse.js +0 -0
  1103. /package/dist/{accessi-module/Dtos → accessi-service/dtos}/MenuItem.d.ts +0 -0
  1104. /package/dist/{accessi-module/Dtos → accessi-service/dtos}/MenuItem.js +0 -0
  1105. /package/dist/{accessi-module/Dtos → accessi-service/dtos}/Permission.d.ts +0 -0
  1106. /package/dist/{accessi-module/Dtos → accessi-service/dtos}/Permission.js +0 -0
  1107. /package/dist/{accessi-module/Dtos → accessi-service/dtos}/PublicRegisterRequest.d.ts +0 -0
  1108. /package/dist/{accessi-module/Dtos → accessi-service/dtos}/PublicRegisterRequest.js +0 -0
  1109. /package/dist/{accessi-module/Dtos → accessi-service/dtos}/RefreshTokenDtos.d.ts +0 -0
  1110. /package/dist/{accessi-module/Dtos → accessi-service/dtos}/RefreshTokenDtos.js +0 -0
  1111. /package/dist/{accessi-module/Dtos → accessi-service/dtos}/RegisterRequest.d.ts +0 -0
  1112. /package/dist/{accessi-module/Dtos → accessi-service/dtos}/RegisterRequest.js +0 -0
  1113. /package/dist/{accessi-module/Dtos → accessi-service/dtos}/RegisterResponse.d.ts +0 -0
  1114. /package/dist/{accessi-module/Dtos → accessi-service/dtos}/RegisterResponse.js +0 -0
  1115. /package/dist/{accessi-module/Dtos → accessi-service/dtos}/RevokeTokenRequest.d.ts +0 -0
  1116. /package/dist/{accessi-module/Dtos → accessi-service/dtos}/RevokeTokenRequest.js +0 -0
  1117. /package/dist/{accessi-module/Dtos → accessi-service/dtos}/Role.d.ts +0 -0
  1118. /package/dist/{accessi-module/Dtos → accessi-service/dtos}/Role.js +0 -0
  1119. /package/dist/{accessi-module/Dtos → accessi-service/dtos}/RuoliMenu.d.ts +0 -0
  1120. /package/dist/{accessi-module/Dtos → accessi-service/dtos}/RuoliMenu.js +0 -0
  1121. /package/dist/{accessi-module/Dtos → accessi-service/dtos}/SchemaDtos.d.ts +0 -0
  1122. /package/dist/{accessi-module/Dtos → accessi-service/dtos}/SchemaDtos.js +0 -0
  1123. /package/dist/{accessi-module/Dtos → accessi-service/dtos}/ScopeDtos.d.ts +0 -0
  1124. /package/dist/{accessi-module/Dtos → accessi-service/dtos}/ScopeDtos.js +0 -0
  1125. /package/dist/{accessi-module/Dtos → accessi-service/dtos}/SendResetPasswordEmailRequest.d.ts +0 -0
  1126. /package/dist/{accessi-module/Dtos → accessi-service/dtos}/SendResetPasswordEmailRequest.js +0 -0
  1127. /package/dist/{accessi-module/Dtos → accessi-service/dtos}/ServiceToken.d.ts +0 -0
  1128. /package/dist/{accessi-module/Dtos → accessi-service/dtos}/ServiceToken.js +0 -0
  1129. /package/dist/{accessi-module/Dtos → accessi-service/dtos}/SetStatoRegistrazione.d.ts +0 -0
  1130. /package/dist/{accessi-module/Dtos → accessi-service/dtos}/SetStatoRegistrazione.js +0 -0
  1131. /package/dist/{accessi-module/Dtos → accessi-service/dtos}/SetUserPasswordRequest.d.ts +0 -0
  1132. /package/dist/{accessi-module/Dtos → accessi-service/dtos}/SetUserPasswordRequest.js +0 -0
  1133. /package/dist/{accessi-module/Dtos → accessi-service/dtos}/StatoRegistrazione.d.ts +0 -0
  1134. /package/dist/{accessi-module/Dtos → accessi-service/dtos}/StatoRegistrazione.js +0 -0
  1135. /package/dist/{accessi-module/Dtos → accessi-service/dtos}/TipoAbilitazione.d.ts +0 -0
  1136. /package/dist/{accessi-module/Dtos → accessi-service/dtos}/TipoAbilitazione.js +0 -0
  1137. /package/dist/{accessi-module/Dtos → accessi-service/dtos}/TipoFiltro.d.ts +0 -0
  1138. /package/dist/{accessi-module/Dtos → accessi-service/dtos}/TipoFiltro.js +0 -0
  1139. /package/dist/{accessi-module/Dtos → accessi-service/dtos}/TokenResult.d.ts +0 -0
  1140. /package/dist/{accessi-module/Dtos → accessi-service/dtos}/TokenResult.js +0 -0
  1141. /package/dist/{accessi-module/Dtos → accessi-service/dtos}/TwoFactorDtos.d.ts +0 -0
  1142. /package/dist/{accessi-module/Dtos → accessi-service/dtos}/TwoFactorDtos.js +0 -0
  1143. /package/dist/{accessi-module/Dtos → accessi-service/dtos}/UpdateEnabledStatusRequest.d.ts +0 -0
  1144. /package/dist/{accessi-module/Dtos → accessi-service/dtos}/UpdateEnabledStatusRequest.js +0 -0
  1145. /package/dist/{accessi-module/Dtos → accessi-service/dtos}/UserDto.d.ts +0 -0
  1146. /package/dist/{accessi-module/Dtos → accessi-service/dtos}/UserDto.js +0 -0
  1147. /package/dist/{accessi-module/Dtos → accessi-service/dtos}/UserGrantsDto.d.ts +0 -0
  1148. /package/dist/{accessi-module/Dtos → accessi-service/dtos}/UserGrantsDto.js +0 -0
  1149. /package/dist/{accessi-module/Dtos → accessi-service/dtos}/UserGrantsResponse.d.ts +0 -0
  1150. /package/dist/{accessi-module/Dtos → accessi-service/dtos}/UserGrantsResponse.js +0 -0
  1151. /package/dist/{accessi-module/Dtos → accessi-service/dtos}/index.d.ts +0 -0
  1152. /package/dist/{accessi-module/Dtos → accessi-service/dtos}/index.js +0 -0
  1153. /package/dist/{accessi-module → accessi-service}/federated-auth/FederatedAuthTypes.js +0 -0
  1154. /package/dist/{accessi-module → accessi-service}/health/nest.d.ts +0 -0
  1155. /package/dist/{accessi-module → accessi-service}/health/nest.js +0 -0
  1156. /package/dist/{accessi-module → accessi-service}/health/readiness.d.ts +0 -0
  1157. /package/dist/{accessi-module → accessi-service}/health/readiness.js +0 -0
  1158. /package/dist/{accessi-module → accessi-service}/middleware/accessiRequirements.d.ts +0 -0
  1159. /package/dist/{accessi-module → accessi-service}/middleware/accessiRequirements.js +0 -0
  1160. /package/dist/{accessi-module → accessi-service}/observability/metrics.d.ts +0 -0
  1161. /package/dist/{accessi-module → accessi-service}/observability/redisMetrics.d.ts +0 -0
  1162. /package/dist/{accessi-module → accessi-service}/observability/redisMetrics.js +0 -0
  1163. /package/dist/{accessi-module → accessi-service}/security/AccessiHttpExceptionFilter.d.ts +0 -0
  1164. /package/dist/{accessi-module → accessi-service}/security/AccessiHttpExceptionFilter.js +0 -0
  1165. /package/dist/{accessi-module → accessi-service}/security/accessControl.d.ts +0 -0
  1166. /package/dist/{accessi-module → accessi-service}/security/accessControl.js +0 -0
  1167. /package/dist/{accessi-module → accessi-service}/security/accessTokenRevocation.d.ts +0 -0
  1168. /package/dist/{accessi-module → accessi-service}/security/accessTokenRevocation.js +0 -0
  1169. /package/dist/{accessi-module → accessi-service}/security/accessiValidation.d.ts +0 -0
  1170. /package/dist/{accessi-module → accessi-service}/security/accessiValidation.js +0 -0
  1171. /package/dist/{accessi-module → accessi-service}/security/adminBootstrap.d.ts +0 -0
  1172. /package/dist/{accessi-module → accessi-service}/security/adminBootstrap.js +0 -0
  1173. /package/dist/{accessi-module → accessi-service}/security/auditSinks.d.ts +0 -0
  1174. /package/dist/{accessi-module → accessi-service}/security/auditSinks.js +0 -0
  1175. /package/dist/{accessi-module → accessi-service}/security/authCookies.d.ts +0 -0
  1176. /package/dist/{accessi-module → accessi-service}/security/authCookies.js +0 -0
  1177. /package/dist/{accessi-module → accessi-service}/security/consoleEntry.d.ts +0 -0
  1178. /package/dist/{accessi-module → accessi-service}/security/consoleEntry.js +0 -0
  1179. /package/dist/{accessi-module → accessi-service}/security/edgeRateLimit.d.ts +0 -0
  1180. /package/dist/{accessi-module → accessi-service}/security/edgeRateLimit.js +0 -0
  1181. /package/dist/{accessi-module → accessi-service}/security/emailConfiguration.d.ts +0 -0
  1182. /package/dist/{accessi-module → accessi-service}/security/emailConfiguration.js +0 -0
  1183. /package/dist/{accessi-module → accessi-service}/security/jwks.d.ts +0 -0
  1184. /package/dist/{accessi-module → accessi-service}/security/jwks.js +0 -0
  1185. /package/dist/{accessi-module → accessi-service}/security/jwksBootstrap.d.ts +0 -0
  1186. /package/dist/{accessi-module → accessi-service}/security/jwksBootstrap.js +0 -0
  1187. /package/dist/{accessi-module → accessi-service}/security/jwtTokenOptions.d.ts +0 -0
  1188. /package/dist/{accessi-module → accessi-service}/security/jwtTokenOptions.js +0 -0
  1189. /package/dist/{accessi-module → accessi-service}/security/loginAs.d.ts +0 -0
  1190. /package/dist/{accessi-module → accessi-service}/security/loginAs.js +0 -0
  1191. /package/dist/{accessi-module → accessi-service}/security/passwordPolicy.d.ts +0 -0
  1192. /package/dist/{accessi-module → accessi-service}/security/passwordPolicy.js +0 -0
  1193. /package/dist/{accessi-module → accessi-service}/security/passwordResetToken.d.ts +0 -0
  1194. /package/dist/{accessi-module → accessi-service}/security/passwordResetToken.js +0 -0
  1195. /package/dist/{accessi-module → accessi-service}/security/publicAuthRateLimit.d.ts +0 -0
  1196. /package/dist/{accessi-module → accessi-service}/security/publicAuthRateLimit.js +0 -0
  1197. /package/dist/{accessi-module → accessi-service}/security/rateLimitStore.d.ts +0 -0
  1198. /package/dist/{accessi-module → accessi-service}/security/rateLimitStore.js +0 -0
  1199. /package/dist/{accessi-module → accessi-service}/security/refreshTokenRotation.d.ts +0 -0
  1200. /package/dist/{accessi-module → accessi-service}/security/refreshTokenRotation.js +0 -0
  1201. /package/dist/{accessi-module → accessi-service}/security/securityHeaders.d.ts +0 -0
  1202. /package/dist/{accessi-module → accessi-service}/security/securityHeaders.js +0 -0
  1203. /package/dist/{accessi-module → accessi-service}/security/serviceTokenRateLimit.d.ts +0 -0
  1204. /package/dist/{accessi-module → accessi-service}/security/serviceTokenRateLimit.js +0 -0
  1205. /package/dist/{accessi-module → accessi-service}/security/sessionRevocation.d.ts +0 -0
  1206. /package/dist/{accessi-module → accessi-service}/security/sessionRevocation.js +0 -0
  1207. /package/dist/{accessi-module → accessi-service}/security/validateOptions.d.ts +0 -0
  1208. /package/dist/{accessi-module → accessi-service}/security/validateOptions.js +0 -0
  1209. /package/dist/{accessi-module/Services/ConfiguratorService → accessi-service/services/configurator-service}/ConfiguratorService.d.ts +0 -0
  1210. /package/dist/{accessi-module/Services/ConfiguratorService → accessi-service/services/configurator-service}/ConfiguratorService.js +0 -0
  1211. /package/dist/{accessi-module/Services/EmailService → accessi-service/services/email-service}/EmailService.d.ts +0 -0
  1212. /package/dist/{accessi-module/Services/SchemaExportService → accessi-service/services/schema-export-service}/SchemaExportService.d.ts +0 -0
  1213. /package/dist/{accessi-module/Services/SchemaExportService → accessi-service/services/schema-export-service}/SchemaExportService.js +0 -0
  1214. /package/dist/{accessi-module/Services/ServiceTokenService → accessi-service/services/service-token-service}/ServiceTokenService.d.ts +0 -0
  1215. /package/dist/{accessi-module/Services/ServiceTokenService → accessi-service/services/service-token-service}/ServiceTokenService.js +0 -0
  1216. /package/dist/{accessi-module → accessi-service}/startupLog.d.ts +0 -0
  1217. /package/dist/{accessi-module → accessi-service}/startupLog.js +0 -0
  1218. /package/dist/{accessi-module/Views → accessi-service/views}/reset-password.html +0 -0
  1219. /package/dist/allegati-module/{Dtos → dtos}/AllegatoDto.d.ts +0 -0
  1220. /package/dist/allegati-module/{Dtos → dtos}/AllegatoDto.js +0 -0
  1221. /package/dist/allegati-module/{Dtos → dtos}/BaseResponse.d.ts +0 -0
  1222. /package/dist/allegati-module/{Dtos → dtos}/BaseResponse.js +0 -0
  1223. /package/dist/allegati-module/{Dtos → dtos}/UploadSingleFileRequest.d.ts +0 -0
  1224. /package/dist/allegati-module/{Dtos → dtos}/UploadSingleFileRequest.js +0 -0
  1225. /package/dist/allegati-module/{Dtos → dtos}/index.d.ts +0 -0
  1226. /package/dist/allegati-module/{Dtos → dtos}/index.js +0 -0
  1227. /package/dist/allegati-module/{Dtos → dtos}/responses/DownloadAllegatoResponseDto.d.ts +0 -0
  1228. /package/dist/allegati-module/{Dtos → dtos}/responses/DownloadAllegatoResponseDto.js +0 -0
  1229. /package/dist/allegati-module/{Dtos → dtos}/responses/GetListResponse.d.ts +0 -0
  1230. /package/dist/allegati-module/{Dtos → dtos}/responses/GetListResponse.js +0 -0
  1231. /package/dist/allegati-module/{Dtos → dtos}/responses/UploadAllegatoResponseDto.d.ts +0 -0
  1232. /package/dist/allegati-module/{Dtos → dtos}/responses/UploadAllegatoResponseDto.js +0 -0
  1233. /package/dist/allegati-module/{Services/AllegatiService → services/allegati-service}/AllegatiService.js +0 -0
  1234. /package/dist/{firebird-compat.d.ts → firebirdCompat.d.ts} +0 -0
@@ -1 +0,0 @@
1
- {"version":3,"file":"UserService.js","sourceRoot":"","sources":["../../../../src/accessi-module/Services/UserService/UserService.ts"],"names":[],"mappings":"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","sourcesContent":["import { BadRequestException, ConflictException, Inject, Injectable, NotFoundException } from '@nestjs/common';\nimport { getTableColumns, optionalColumn } from '../../database-updates/optionalColumns';\nimport { autobind } from '../../../autobind';\nimport { Orm } from '../../../Orm';\nimport { RestUtilities } from '../../../Utilities';\nimport { Logger } from '../../../Logger';\nimport type { AccessiOptions } from '../../AccessiModule';\nimport { FILTRI_UTENTE_DB_MAPPING, FiltriUtente } from '../../Dtos/FiltriUtente';\nimport { GetUsersResult } from '../../Dtos/GetUsersResponse';\nimport { RegisterRequest } from '../../Dtos/RegisterRequest';\nimport { StatoRegistrazione } from '../../Dtos/StatoRegistrazione';\nimport { UserDto } from '../../Dtos/UserDto';\nimport { UserGrantsDto } from '../../Dtos/UserGrantsDto';\nimport { AccessiAuthenticatedUserSnapshot } from '../../security/authenticatedToken';\nimport { assertEmailConfigured } from '../../security/emailConfiguration';\nimport { revokeAccessiUserSessionsIfConfigured } from '../../security/sessionRevocation';\nimport { EmailService } from '../EmailService/EmailService';\nimport { FiltriService } from '../FiltriService/FiltriService';\nimport { PermissionService } from '../PermissionService/PermissionService';\n\ninterface OptionalField<T> {\n key: string;\n dbField: string;\n transform?: (value: unknown) => T;\n}\n\n/**\n * I filtri sono deprecati: tocca la tabella FILTRI solo quando il chiamante invia\n * esplicitamente almeno uno dei campi legacy. La console non li invia più.\n */\nfunction hasFilterPayload(dto: Partial<FiltriUtente>): boolean {\n const values = dto as Record<string, unknown>;\n return Object.keys(FILTRI_UTENTE_DB_MAPPING).some((key) => values[key] !== undefined);\n}\n\n@autobind\n@Injectable()\nexport class UserService {\n constructor(\n @Inject('ACCESSI_OPTIONS') private readonly accessiOptions: AccessiOptions,\n private readonly emailService: EmailService,\n private readonly permissionService: PermissionService,\n private readonly filtriService: FiltriService,\n ) {}\n\n private normalizeDatabaseBoolean(value: unknown): boolean {\n return value === true || value === 1 || value === '1';\n }\n\n /**\n * Revoca best effort delle sessioni dopo un evento che deve invalidare i\n * token gia emessi. Lo store e opzionale: se non configurato (o non\n * raggiungibile) l'operazione principale non deve fallire.\n */\n private async revokeSessionsBestEffort(codiceUtente: number, reason: string): Promise<void> {\n try {\n await revokeAccessiUserSessionsIfConfigured(this.accessiOptions, codiceUtente, reason);\n } catch (error) {\n new Logger(UserService.name).error(\n `Revoca sessioni fallita per l'utente ${codiceUtente} (${reason}): ${error instanceof Error ? error.message : String(error)}`,\n );\n }\n }\n\n private normalizeUserFlags(user: UserDto): UserDto {\n const normalized: UserDto = { ...user,\n flagSuper: this.normalizeDatabaseBoolean(user.flagSuper),\n flagAdmin: this.normalizeDatabaseBoolean(user.flagAdmin),\n flagDueFattori: this.normalizeDatabaseBoolean(user.flagDueFattori),\n passwordlessLoginEnabled: this.normalizeDatabaseBoolean(user.passwordlessLoginEnabled),\n passwordLoginEnabled: user.passwordLoginEnabled == null || this.normalizeDatabaseBoolean(user.passwordLoginEnabled),\n };\n\n return normalized;\n }\n\n private normalizeEmail(email: string): string {\n if (typeof email !== 'string' || email.trim() === '') {\n throw new BadRequestException({ code: 'ACCESSI_EMAIL_REQUIRED', message: \"L'email è obbligatoria.\" });\n }\n\n return email.trim().toLowerCase();\n }\n\n private async ensureEmailIsAvailable(email: string, currentUserCode?: number): Promise<void> {\n const result = await Orm.query(\n this.accessiOptions.databaseOptions,\n 'SELECT FIRST 1 CODUTE as codice_utente FROM UTENTI WHERE LOWER(USRNAME) = ?',\n [email],\n );\n\n const existingUser = result.map(RestUtilities.convertKeysToCamelCase)[0] as\n | { codiceUtente?: number }\n | undefined;\n\n if (\n existingUser?.codiceUtente &&\n (!currentUserCode || existingUser.codiceUtente !== currentUserCode)\n ) {\n throw new ConflictException({ code: 'ACCESSI_EMAIL_ALREADY_EXISTS', message: \"L'email è già associata a un utente Accessi.\" });\n }\n }\n\n /**\n * Legge il minimo profilo autorevole usato da JWT e middleware. Restituisce `null` per utenti inesistenti.\n * Non usare `UserDto` dal token per decisioni di sicurezza: i flag vengono sempre riletti qui.\n */\n async getAuthenticatedUserSnapshot(\n codiceUtente: number,\n ): Promise<AccessiAuthenticatedUserSnapshot | null> {\n if (!codiceUtente || codiceUtente <= 0) {\n return null;\n }\n\n const result = await Orm.query(\n this.accessiOptions.databaseOptions,\n `\n SELECT\n U.CODUTE AS codice_utente,\n U.USRNAME AS email,\n U.STAREG AS stato_registrazione,\n C.FLGSUPER AS flag_super,\n C.FLGADMIN AS flag_admin\n , C.FLG2FATT AS flag_due_fattori\n , C.FLGPWDLESS AS passwordless_login_enabled\n , COALESCE(C.FLGPASSWORD, 1) AS password_login_enabled\n FROM UTENTI U\n LEFT JOIN UTENTI_CONFIG C ON C.CODUTE = U.CODUTE\n WHERE U.CODUTE = ?\n `,\n [codiceUtente],\n );\n\n const user = result.map(RestUtilities.convertKeysToCamelCase)[0] as\n | {\n codiceUtente?: number;\n email?: string;\n statoRegistrazione?: StatoRegistrazione | number;\n flagSuper?: unknown;\n flagAdmin?: unknown;\n flagDueFattori?: unknown;\n passwordlessLoginEnabled?: unknown;\n passwordLoginEnabled?: unknown;\n }\n | undefined;\n\n if (!user?.codiceUtente) {\n return null;\n }\n\n return {\n codiceUtente: Number(user.codiceUtente),\n email: typeof user.email === 'string' ? user.email : undefined,\n statoRegistrazione: Number(user.statoRegistrazione) as StatoRegistrazione,\n flagSuper: this.normalizeDatabaseBoolean(user.flagSuper),\n flagAdmin: this.normalizeDatabaseBoolean(user.flagAdmin),\n flagDueFattori: this.normalizeDatabaseBoolean(user.flagDueFattori),\n passwordlessLoginEnabled: this.normalizeDatabaseBoolean(user.passwordlessLoginEnabled),\n passwordLoginEnabled: this.normalizeDatabaseBoolean(user.passwordLoginEnabled),\n };\n }\n\n /**\n * True se l'utente indicato e' un admin attivo e nessun altro admin attivo\n * esiste: rimuovergli il flag admin, bloccarlo o eliminarlo lascerebbe la\n * console senza amministratori.\n */\n async isLastActiveAdmin(codiceUtente: number): Promise<boolean> {\n const snapshot = await this.getAuthenticatedUserSnapshot(codiceUtente);\n if (!snapshot?.flagAdmin) return false;\n\n const rows = (await Orm.query(\n this.accessiOptions.databaseOptions,\n `SELECT COUNT(*) AS TOTAL\n FROM UTENTI U\n JOIN UTENTI_CONFIG C ON C.CODUTE = U.CODUTE\n WHERE COALESCE(C.FLGADMIN, 0) = 1\n AND COALESCE(U.STAREG, 0) NOT IN (?, ?)`,\n [StatoRegistrazione.DELETE, StatoRegistrazione.BLOCC],\n false,\n )) as Array<Record<string, unknown>>;\n const total = Number(rows[0]?.TOTAL ?? rows[0]?.total ?? 0) || 0;\n return total <= 1;\n }\n\n /** Impedisce di disattivare/eliminare l'ultimo admin attivo (lockout della console). */\n async assertNotLastActiveAdmin(codiceUtente: number): Promise<void> {\n if (await this.isLastActiveAdmin(codiceUtente)) {\n throw new BadRequestException(\n 'Operazione bloccata: questo e l ultimo admin attivo. Promuovi un altro admin prima di disattivarlo o eliminarlo.',\n );\n }\n }\n\n /**\n * Elenca gli utenti con filtri opzionali. Grant e campi estesi sono costosi e vengono caricati soltanto\n * quando richiesti esplicitamente nelle opzioni; usare filtri puntuali nei flussi di autenticazione.\n */\n async getUsers(\n filters?: {\n email?: string;\n codiceUtente?: number | number[];\n numRep?: number | number[];\n codDipendente?: number;\n cellulare?: string;\n tipFil?: number;\n flagSuper?: boolean;\n limit?: number;\n offset?: number;\n },\n options?: { includeExtensionFields: boolean; includeGrants: boolean; scope?: string },\n ): Promise<GetUsersResult[]> {\n try {\n const filterColumns = await getTableColumns(this.accessiOptions, 'FILTRI');\n\n // Paginazione opzionale con limiti sani: il default resta \"tutti gli utenti\".\n const limit = Number.isInteger(filters?.limit) && (filters?.limit ?? 0) > 0\n ? Math.min(filters?.limit as number, 1000)\n : undefined;\n const offset = Number.isInteger(filters?.offset) && (filters?.offset ?? 0) > 0\n ? Math.trunc(filters?.offset as number)\n : 0;\n const pagination = `${limit !== undefined ? ` FIRST ${limit}` : ''}${offset > 0 ? ` SKIP ${offset}` : ''}`;\n\n let query = ` \n SELECT${pagination} \n U.CODUTE as codice_utente, \n U.USRNAME as email, \n U.FLGGDPR as flag_gdpr, \n U.DATGDPR as data_gdpr, \n U.DATINS as data_inserimento, \n U.DATSCAPWD as data_scadenza_password, \n U.DATLASTLOGIN as data_last_login, \n U.STAREG as stato_registrazione, \n G.COGNOME as cognome, \n G.NOME as nome, \n G.AVATAR as avatar, \n G.FLG2FATT as flag_due_fattori,\n G.FLGPWDLESS as passwordless_login_enabled,\n G.CODLINGUA as codice_lingua,\n G.CELLULARE as cellulare,\n G.PAGDEF as pagina_default,\n G.FLGSUPER as flag_super, \n G.FLGADMIN as flag_admin,\n COALESCE(G.FLGPASSWORD, 1) as password_login_enabled,\n G.JSON_METADATA as json_metadata,\n ${optionalColumn(filterColumns, 'CODDIP', 'F', 'cod_dipendente')},\n ${optionalColumn(filterColumns, 'NUMREP', 'F', 'num_rep', true)},\n ${optionalColumn(filterColumns, 'IDXPERS', 'F', 'idx_pers', true)},\n ${optionalColumn(filterColumns, 'CODCLISUPER', 'F', 'cod_cli_super', true)},\n ${optionalColumn(filterColumns, 'CODAGE', 'F', 'cod_age', true)},\n ${optionalColumn(filterColumns, 'CODCLICOL', 'F', 'cod_cli_col', true)},\n ${optionalColumn(filterColumns, 'CODCLIENTI', 'F', 'cod_clienti', false)},\n F.TIPFIL AS tip_fil,\n ${optionalColumn(filterColumns, 'IDXPOS', 'F', 'idx_postazione', true)}\n FROM UTENTI U \n INNER JOIN UTENTI_CONFIG G ON U.CODUTE = G.CODUTE\n LEFT JOIN FILTRI F ON F.CODUTE = U.CODUTE\n WHERE 1=1\n `;\n\n const queryParams: unknown[] = [];\n\n if (filters?.email) {\n query += ` AND LOWER(U.USRNAME) = ? `;\n queryParams.push(filters.email.trim().toLowerCase());\n }\n\n if (filters?.codiceUtente !== undefined) {\n const codes = (Array.isArray(filters.codiceUtente) ? filters.codiceUtente : [filters.codiceUtente])\n .map((value) => Number(value))\n .filter((value) => Number.isFinite(value) && value > 0);\n if (codes.length === 0) {\n return [];\n }\n query += ` AND U.CODUTE IN (${codes.map(() => '?').join(', ')}) `;\n queryParams.push(...codes);\n }\n\n if (filters?.numRep !== undefined) {\n const reparti = (Array.isArray(filters.numRep) ? filters.numRep : [filters.numRep])\n .map((value) => Number(value))\n .filter((value) => Number.isFinite(value));\n if (reparti.length === 0) {\n return [];\n }\n query += ` AND F.NUMREP IN (${reparti.map(() => '?').join(', ')}) `;\n queryParams.push(...reparti);\n }\n\n if (filters?.codDipendente !== undefined) {\n query += ` AND F.CODDIP = ? `;\n queryParams.push(Number(filters.codDipendente));\n }\n\n if (filters?.tipFil !== undefined) {\n query += ` AND F.TIPFIL = ? `;\n queryParams.push(Number(filters.tipFil));\n }\n\n if (filters?.cellulare) {\n query += ` AND TRIM(G.CELLULARE) = ? `;\n queryParams.push(String(filters.cellulare).trim());\n }\n\n if (filters?.flagSuper !== undefined) {\n query += filters.flagSuper ? ` AND COALESCE(G.FLGSUPER, 0) <> 0 ` : ` AND COALESCE(G.FLGSUPER, 0) = 0 `;\n }\n\n query += ` ORDER BY U.CODUTE DESC `;\n\n let users = (await Orm.query(\n this.accessiOptions.databaseOptions,\n query,\n queryParams,\n )) as UserDto[];\n users = users.map(RestUtilities.convertKeysToCamelCase).map(user => this.normalizeUserFlags(user as unknown as UserDto));\n\n const usersResponse: GetUsersResult[] = [];\n\n // I campi estensione sono caricati una volta per tabella (non una per utente) in query IN\n // suddivise in blocchi per non superare i limiti di parametri del driver.\n const extensionFieldsByUser = options?.includeExtensionFields\n ? await this.loadExtensionFieldsForUsers(users.map((user) => user.codiceUtente))\n : undefined;\n\n // I grant sono caricati in batch (query IN) invece che utente per utente.\n const grantsByUser = options?.includeGrants\n ? await this.permissionService.getUsersRolesAndGrants(users.map((user) => user.codiceUtente), options?.scope)\n : undefined;\n\n for (const user of users) {\n let userGrants: UserGrantsDto | undefined;\n\n if (options?.includeGrants) {\n userGrants = grantsByUser?.get(user.codiceUtente);\n }\n\n let extensionFields: Record<string, unknown[]> | undefined;\n\n if (options?.includeExtensionFields) {\n extensionFields = {};\n for (const ext of this.accessiOptions.extensionFieldsOptions ?? []) {\n extensionFields[ext.objectKey] = extensionFieldsByUser?.get(ext.objectKey)?.get(user.codiceUtente) ?? [];\n }\n }\n\n usersResponse.push({\n utente: user,\n userGrants,\n extensionFields,\n });\n }\n\n return usersResponse;\n } catch (error) {\n throw error;\n }\n }\n\n /** Conteggio utenti con gli stessi filtri di `getUsers`, per la paginazione (header X-Total-Count). */\n async countUsers(filters?: { email?: string; codiceUtente?: number }): Promise<number> {\n const conditions: string[] = [];\n const params: unknown[] = [];\n if (filters?.email) {\n conditions.push('LOWER(U.USRNAME) = ?');\n params.push(filters.email.trim().toLowerCase());\n }\n if (filters?.codiceUtente) {\n conditions.push('U.CODUTE = ?');\n params.push(filters.codiceUtente);\n }\n\n const query = `SELECT COUNT(*) AS TOTAL FROM UTENTI U INNER JOIN UTENTI_CONFIG G ON U.CODUTE = G.CODUTE WHERE 1=1 ${conditions.map((condition) => `AND ${condition}`).join(' ')}`;\n const rows = (await Orm.query(this.accessiOptions.databaseOptions, query, params, false)) as Array<Record<string, unknown>>;\n const row = rows[0];\n return Number(row?.TOTAL ?? row?.total ?? 0) || 0;\n }\n\n private async loadExtensionFieldsForUsers(\n codiceUtenti: number[],\n ): Promise<Map<string, Map<number, Record<string, unknown>[]>>> {\n const byObjectKey = new Map<string, Map<number, Record<string, unknown>[]>>();\n const extensions = this.accessiOptions.extensionFieldsOptions ?? [];\n const uniqueCodes = Array.from(new Set(codiceUtenti));\n\n for (const ext of extensions) {\n const grouped = new Map<number, Record<string, unknown>[]>();\n\n for (const chunk of this.chunkArray(uniqueCodes, 500)) {\n if (chunk.length === 0) {\n continue;\n }\n\n const placeholders = chunk.map(() => '?').join(', ');\n const rows = (await Orm.query(\n ext.databaseOptions,\n `SELECT ${ext.tableJoinFieldName} AS __joinkey, ${ext.tableFields.join(', ')} FROM ${ext.tableName} WHERE ${ext.tableJoinFieldName} IN (${placeholders})`,\n chunk,\n )).map(RestUtilities.convertKeysToCamelCase) as Array<Record<string, unknown>>;\n\n for (const row of rows) {\n const { __joinkey, ...rest } = row;\n const key = Number(__joinkey);\n if (!Number.isFinite(key)) {\n continue;\n }\n\n const bucket = grouped.get(key);\n if (bucket) {\n bucket.push(rest);\n } else {\n grouped.set(key, [rest]);\n }\n }\n }\n\n byObjectKey.set(ext.objectKey, grouped);\n }\n\n return byObjectKey;\n }\n\n private chunkArray<T>(items: T[], size: number): T[][] {\n const chunks: T[][] = [];\n for (let index = 0; index < items.length; index += size) {\n chunks.push(items.slice(index, index + size));\n }\n return chunks;\n }\n\n /** Cerca il codice interno per email normalizzata. Il chiamante deve gestire il caso senza righe. */\n async getCodiceUtenteByEmail(email: string): Promise<{ codiceUtente: number }> {\n try {\n const query = `SELECT CODUTE as codice_utente FROM UTENTI WHERE LOWER(USRNAME) = ?`;\n const result = await Orm.query(this.accessiOptions.databaseOptions, query, [\n email.trim().toLowerCase(),\n ]);\n return result.map(RestUtilities.convertKeysToCamelCase)[0] as { codiceUtente: number };\n } catch (error) {\n throw error;\n }\n }\n\n /** Recupera il profilo locale usato dal login, compresi filtri Accessi eventualmente presenti. */\n async getUserByEmail(email: string): Promise<UserDto | null> {\n const query = `\n SELECT \n U.CODUTE AS codice_utente, \n U.USRNAME AS email, \n U.FLGGDPR AS flag_gdpr,\n U.DATSCAPWD as data_scadenza_password,\n U.STAREG AS stato_registrazione, \n C.COGNOME AS cognome, \n C.NOME AS nome, \n C.AVATAR AS avatar, \n C.FLG2FATT AS flag_due_fattori,\n C.FLGPWDLESS AS passwordless_login_enabled,\n C.CODLINGUA AS codice_lingua, \n C.CELLULARE AS cellulare, \n C.PAGDEF AS pagina_default,\n C.FLGSUPER AS flag_super,\n C.FLGADMIN AS flag_admin,\n COALESCE(C.FLGPASSWORD, 1) AS password_login_enabled\n FROM UTENTI U\n INNER JOIN UTENTI_CONFIG C ON C.CODUTE = U.CODUTE\n WHERE LOWER(U.USRNAME) = ?\n `;\n\n const utenti = (await Orm.query(this.accessiOptions.databaseOptions, query, [email]).then(\n (results) => results.map(RestUtilities.convertKeysToCamelCase),\n )) as UserDto[];\n\n const user = utenti[0];\n if (!user) return null;\n\n const filtro = (await this.filtriService.getFiltriUser(user.codiceUtente))[0];\n if (filtro) {\n const filterValues: Record<string, unknown> = {};\n\n Object.entries(FILTRI_UTENTE_DB_MAPPING).forEach(([key]) => {\n if (key in filtro) {\n filterValues[key] = filtro[key as keyof FiltriUtente];\n }\n });\n\n Object.assign(user, filterValues);\n }\n\n return this.normalizeUserFlags(user);\n }\n\n async insertUserFilters(codiceUtente: number, filterData: RegisterRequest): Promise<void> {\n await this.filtriService.upsertFiltriUtente(codiceUtente, filterData);\n }\n\n /**\n * Crea utente, configurazione e filtri. La registrazione pubblica resta in stato `INVIO` e non puo\n * impostare privilegi, ruoli o grant; soltanto flussi backend fidati possono usare `allowPrivilegedFields`.\n */\n async register(\n registrationData: RegisterRequest,\n options?: { allowPrivilegedFields?: boolean; initialState?: StatoRegistrazione },\n ): Promise<number> {\n try {\n const allowPrivilegedFields = options?.allowPrivilegedFields === true;\n const normalizedEmail = this.normalizeEmail(registrationData.email);\n\n if (registrationData.flagDueFattori !== undefined && typeof registrationData.flagDueFattori !== 'boolean') {\n throw new BadRequestException('Il flag due fattori deve essere booleano.');\n }\n if (registrationData.flagDueFattori && !/^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$/.test(normalizedEmail)) {\n throw new BadRequestException('Per attivare i codici di accesso serve un indirizzo email valido.');\n }\n\n if (\n !allowPrivilegedFields &&\n (registrationData.flagSuper !== undefined ||\n registrationData.flagAdmin !== undefined ||\n registrationData.flagDueFattori !== undefined ||\n registrationData.roles !== undefined ||\n registrationData.permissions !== undefined)\n ) {\n throw new Error('I campi privilegiati non sono consentiti nella registrazione pubblica.');\n }\n\n await this.ensureEmailIsAvailable(normalizedEmail);\n\n const queryUtenti = `INSERT INTO UTENTI (USRNAME, STAREG) VALUES (?,?) RETURNING CODUTE`;\n // Public/local registrations keep the historic INVIO state; trusted master or SSO flows may opt into CONF.\n const paramsUtenti = [normalizedEmail, options?.initialState ?? StatoRegistrazione.INVIO];\n\n // Utente e configurazione sono creati in un'unica transazione; filtri e assegnazioni restano\n // fuori perché delegati a servizi dedicati.\n const codiceUtente = await Orm.withTransaction(\n this.accessiOptions.databaseOptions,\n async (transaction) => {\n const insertedUsers = await Orm.transactionQuery<unknown>(\n transaction,\n queryUtenti,\n paramsUtenti,\n );\n\n const insertedUser = (Array.isArray(insertedUsers) ? insertedUsers[0] : insertedUsers) as Record<string, unknown> | undefined;\n const newCodiceUtente = Number(\n insertedUser?.CODUTE ?? insertedUser?.codute,\n );\n if (!newCodiceUtente) {\n throw new Error('Creazione utente non riuscita: impossibile recuperare CODUTE.');\n }\n\n const utentiConfigFields = ['CODUTE', 'COGNOME', 'NOME'];\n const utentiConfigPlaceholders = ['?', '?', '?'];\n const utentiConfigParams: unknown[] = [newCodiceUtente, registrationData.cognome, registrationData.nome];\n\n const optionalFields: OptionalField<unknown>[] = [\n {\n key: 'cellulare',\n dbField: 'CELLULARE',\n transform: (v) => String(v),\n },\n {\n key: 'avatar',\n dbField: 'AVATAR',\n transform: (v) => String(v),\n },\n {\n key: 'paginaDefault',\n dbField: 'PAGDEF',\n transform: (v) => String(v),\n },\n {\n key: 'flagDueFattori',\n dbField: 'FLG2FATT',\n transform: (v) => (v ? 1 : 0),\n },\n ];\n\n if (allowPrivilegedFields) {\n optionalFields.push(\n {\n key: 'flagSuper',\n dbField: 'FLGSUPER',\n transform: (v) => (v ? 1 : 0),\n },\n {\n key: 'flagAdmin',\n dbField: 'FLGADMIN',\n transform: (v) => (v ? 1 : 0),\n },\n );\n }\n\n for (const field of optionalFields) {\n const value = (registrationData as unknown as Record<string, unknown>)[field.key];\n if (value !== undefined && value !== null) {\n utentiConfigFields.push(field.dbField);\n utentiConfigPlaceholders.push('?');\n utentiConfigParams.push(field.transform ? field.transform(value) : value);\n }\n }\n\n const queryUtentiConfig = `INSERT INTO UTENTI_CONFIG (${utentiConfigFields.join(\n ', ',\n )}) VALUES (${utentiConfigPlaceholders.join(', ')})`;\n await Orm.transactionQuery(transaction, queryUtentiConfig, utentiConfigParams);\n\n return newCodiceUtente;\n },\n );\n\n if (hasFilterPayload(registrationData)) {\n await this.filtriService.upsertFiltriUtente(codiceUtente, registrationData);\n }\n\n if (allowPrivilegedFields && !!registrationData.roles && registrationData.roles.length > 0) {\n await this.permissionService.assignRolesToUser(codiceUtente, registrationData.roles);\n }\n\n if (\n allowPrivilegedFields &&\n !!registrationData.permissions &&\n registrationData.permissions.length > 0\n ) {\n await this.permissionService.assignPermissionsToUser(\n codiceUtente,\n registrationData.permissions,\n );\n }\n\n return codiceUtente;\n } catch (error) {\n throw error;\n }\n }\n\n /**\n * Aggiorna il profilo utente e i filtri. Le modifiche a stato, ruoli, grant e flag amministrativi richiedono\n * `allowPrivilegedChanges`; gli array ruolo/grant passati in un flusso fidato sostituiscono le assegnazioni.\n */\n async updateUser(\n codiceUtente: number,\n user: UserDto,\n options?: { allowPrivilegedChanges?: boolean },\n ): Promise<void> {\n try {\n if (!codiceUtente) throw new Error('Impossibile aggiornare senza codice utente.');\n const allowPrivilegedChanges = options?.allowPrivilegedChanges === true;\n\n for (const value of [user.flagDueFattori, user.passwordlessLoginEnabled]) {\n if (value !== undefined && typeof value !== 'boolean') throw new BadRequestException('Le policy di autenticazione devono essere booleane.');\n }\n\n if (\n !allowPrivilegedChanges &&\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 throw new Error('Non e consentito modificare campi privilegiati.');\n }\n\n let currentSnapshot: AccessiAuthenticatedUserSnapshot | null | undefined;\n const getCurrentSnapshot = async (): Promise<AccessiAuthenticatedUserSnapshot> => {\n if (currentSnapshot === undefined) {\n currentSnapshot = await this.getAuthenticatedUserSnapshot(codiceUtente);\n }\n if (!currentSnapshot) throw new BadRequestException('Utente non trovato.');\n return currentSnapshot;\n };\n\n if (user.flagDueFattori !== undefined || user.passwordlessLoginEnabled !== undefined || user.email !== undefined) {\n const current = await getCurrentSnapshot();\n const twoFactor = user.flagDueFattori ?? current.flagDueFattori;\n const passwordless = user.passwordlessLoginEnabled ?? current.passwordlessLoginEnabled;\n if (passwordless && !twoFactor) throw new BadRequestException('Il login senza password richiede il codice di accesso attivo.');\n if (twoFactor && !/^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$/.test((user.email ?? current.email ?? '').trim())) {\n throw new BadRequestException('Per attivare i codici di accesso serve un indirizzo email valido.');\n }\n }\n\n // Ogni modifica a stato o policy di autenticazione deve invalidare i token emessi.\n let revocationReason: string | undefined;\n if (\n user.statoRegistrazione !== undefined\n || user.flagDueFattori !== undefined\n || user.passwordlessLoginEnabled !== undefined\n || user.passwordLoginEnabled !== undefined\n ) {\n const before = await getCurrentSnapshot();\n if (user.statoRegistrazione !== undefined && Number(before.statoRegistrazione) !== Number(user.statoRegistrazione)) {\n revocationReason = 'user_state_change';\n } else if (user.flagDueFattori !== undefined && Boolean(before.flagDueFattori) !== user.flagDueFattori) {\n revocationReason = 'two_factor_policy_change';\n } else if (\n user.passwordlessLoginEnabled !== undefined\n && Boolean(before.passwordlessLoginEnabled) !== user.passwordlessLoginEnabled\n ) {\n revocationReason = 'login_policy_change';\n } else if (\n user.passwordLoginEnabled !== undefined\n && Boolean(before.passwordLoginEnabled) !== user.passwordLoginEnabled\n ) {\n revocationReason = 'login_policy_change';\n }\n }\n\n const utentiUpdates = [];\n const utentiParams = [];\n\n if (user.email !== undefined) {\n const normalizedEmail = this.normalizeEmail(user.email);\n await this.ensureEmailIsAvailable(normalizedEmail, codiceUtente);\n utentiUpdates.push('usrname = ?');\n utentiParams.push(normalizedEmail);\n }\n if (user.flagGdpr !== undefined) {\n utentiUpdates.push('flggdpr = ?');\n utentiParams.push(user.flagGdpr ? 1 : 0);\n // Coerenza con set-gdpr: flag e data di accettazione restano allineati.\n utentiUpdates.push(user.flagGdpr ? 'datgdpr = CURRENT_DATE' : 'datgdpr = NULL');\n }\n if (allowPrivilegedChanges && user.statoRegistrazione !== undefined) {\n utentiUpdates.push('stareg = ?');\n utentiParams.push(user.statoRegistrazione);\n }\n if (allowPrivilegedChanges && user.keyRegistrazione !== undefined) {\n utentiUpdates.push('keyreg = ?');\n utentiParams.push(user.keyRegistrazione);\n }\n if (allowPrivilegedChanges && user.dataScadenzaPassword !== undefined) {\n utentiUpdates.push('DATSCAPWD = CAST(? AS DATE)');\n utentiParams.push(user.dataScadenzaPassword);\n }\n\n if (utentiUpdates.length > 0) {\n const queryUtenti = `UPDATE UTENTI SET ${utentiUpdates.join(', ')} WHERE CODUTE = ?`;\n utentiParams.push(codiceUtente);\n await Orm.execute(this.accessiOptions.databaseOptions, queryUtenti, utentiParams);\n }\n\n // Completa il processo GDPR: oltre ai flag, registra la riga storica di accettazione\n // (stessa semantica di set-gdpr). Il trigger UTENTI_GDPR_BI0 riallinea i flag.\n if (user.flagGdpr === true) {\n await Orm.execute(\n this.accessiOptions.databaseOptions,\n 'UPDATE OR INSERT INTO UTENTI_GDPR (CODUTE, DATACC, GDPR) VALUES (?, CURRENT_DATE, ?) MATCHING (CODUTE, DATACC)',\n [codiceUtente, 'true'],\n );\n }\n\n // UPDATE OR INSERT mantiene la scrittura idempotente anche se la riga UTENTI_CONFIG\n // non esiste ancora: aggiorna solo le colonne fornite, altrimenti la crea.\n const utentiConfigAssignments: Array<{ column: string; value: unknown }> = [];\n const assignConfig = (column: string, value: unknown) => {\n utentiConfigAssignments.push({ column, value });\n };\n\n if (user.cognome !== undefined) assignConfig('cognome', user.cognome);\n if (user.nome !== undefined) assignConfig('nome', user.nome);\n if (user.avatar !== undefined) assignConfig('avatar', user.avatar);\n if (user.flagDueFattori !== undefined) assignConfig('flg2fatt', user.flagDueFattori ? 1 : 0);\n if (user.passwordlessLoginEnabled !== undefined) assignConfig('flgpwdless', user.passwordlessLoginEnabled ? 1 : 0);\n if (user.codiceLingua !== undefined) assignConfig('codlingua', user.codiceLingua);\n if (user.cellulare !== undefined) assignConfig('cellulare', user.cellulare);\n if (user.paginaDefault !== undefined) assignConfig('PAGDEF', user.paginaDefault);\n if (allowPrivilegedChanges && user.flagSuper !== undefined) assignConfig('flgsuper', user.flagSuper ? 1 : 0);\n if (allowPrivilegedChanges && user.flagAdmin !== undefined) assignConfig('FLGADMIN', user.flagAdmin ? 1 : 0);\n if (allowPrivilegedChanges && user.passwordLoginEnabled !== undefined) assignConfig('flgpassword', user.passwordLoginEnabled ? 1 : 0);\n if (user.jsonMetadata !== undefined) assignConfig('json_metadata', user.jsonMetadata);\n\n if (utentiConfigAssignments.length > 0) {\n const columns = ['CODUTE', ...utentiConfigAssignments.map((assignment) => assignment.column)];\n const values = [codiceUtente, ...utentiConfigAssignments.map((assignment) => assignment.value)];\n const queryUtentiConfig = `UPDATE OR INSERT INTO UTENTI_CONFIG (${columns.join(', ')}) VALUES (${columns.map(() => '?').join(', ')}) MATCHING (CODUTE)`;\n await Orm.execute(this.accessiOptions.databaseOptions, queryUtentiConfig, values);\n }\n\n if (allowPrivilegedChanges && Array.isArray(user.roles)) {\n await this.permissionService.assignRolesToUser(codiceUtente, user.roles);\n }\n\n if (allowPrivilegedChanges && Array.isArray(user.permissions)) {\n await this.permissionService.assignPermissionsToUser(codiceUtente, user.permissions);\n }\n\n if (hasFilterPayload(user)) {\n await this.filtriService.upsertFiltriUtente(codiceUtente, user);\n }\n\n if (revocationReason) {\n await this.revokeSessionsBestEffort(codiceUtente, revocationReason);\n }\n } catch (error) {\n throw error;\n }\n }\n\n async updateUserFilters(codiceUtente: number, user: UserDto): Promise<void> {\n await this.filtriService.upsertFiltriUtente(codiceUtente, user);\n }\n\n /** Eliminazione logica: imposta lo stato `DELETE` senza cancellare lo storico o i collegamenti SSO. */\n async deleteUser(codiceCliente: number): Promise<void> {\n try {\n const query = `UPDATE UTENTI SET STAREG = ? WHERE CODUTE = ?`;\n await Orm.execute(this.accessiOptions.databaseOptions, query, [\n StatoRegistrazione.DELETE,\n codiceCliente,\n ]);\n await this.revokeSessionsBestEffort(codiceCliente, 'user_soft_delete');\n } catch (error) {\n throw error;\n }\n }\n\n /**\n * Eliminazione definitiva: rimuove l'utente e tutti i record collegati in un'unica\n * transazione. Operazione distruttiva riservata agli admin (il superutente usa il soft delete).\n */\n async deleteUserPermanently(codiceUtente: number): Promise<void> {\n if (!codiceUtente) throw new BadRequestException('Impossibile eliminare senza codice utente.');\n\n const rows = await this.getUsers(\n { codiceUtente },\n { includeExtensionFields: false, includeGrants: false },\n );\n if (rows.length === 0) {\n throw new NotFoundException(`Nessun utente con codice ${codiceUtente}.`);\n }\n\n const params = [codiceUtente];\n try {\n await Orm.executeMultiple(this.accessiOptions.databaseOptions, [\n { query: 'DELETE FROM ABILITAZIONI WHERE CODUTE = ?', params },\n { query: 'DELETE FROM UTENTI_RUOLI WHERE CODUTE = ?', params },\n { query: 'DELETE FROM UTENTI_IDENTITA_EXT WHERE CODUTE = ?', params },\n { query: 'DELETE FROM ACCESSI_2FA WHERE CODUTE = ?', params },\n { query: 'DELETE FROM FILTRI WHERE CODUTE = ?', params },\n { query: 'DELETE FROM UTENTI_CONFIG WHERE CODUTE = ?', params },\n { query: 'DELETE FROM UTENTI_PWD WHERE CODUTE = ?', params },\n { query: 'DELETE FROM UTENTI_OLDPWD WHERE CODUTE = ?', params },\n { query: 'DELETE FROM UTENTI_GDPR WHERE CODUTE = ?', params },\n { query: 'DELETE FROM UTENTI WHERE CODUTE = ?', params },\n ]);\n await this.revokeSessionsBestEffort(codiceUtente, 'user_delete');\n } catch (error) {\n if (this.isForeignKeyViolation(error)) {\n throw new BadRequestException({\n code: 'ACCESSI_USER_DELETE_HAS_REFERENCES',\n message: 'L utente ha dati collegati in altre tabelle (per esempio campi estesi del backend): non e possibile eliminarlo definitivamente. Usa \"Imposta stato eliminato\" (soft delete).',\n });\n }\n throw error;\n }\n }\n\n /** Riconosce una violazione di chiave esterna Firebird (SQLCODE -530/-531 o messaggio) senza esporre SQL. */\n private isForeignKeyViolation(error: unknown): boolean {\n const record = error as { sqlcode?: unknown; gdscode?: unknown; message?: unknown; code?: unknown } | null;\n const sqlcode = Number(record?.sqlcode);\n if (Number.isFinite(sqlcode) && (sqlcode === -530 || sqlcode === -531)) return true;\n const text = `${typeof record?.message === 'string' ? record.message : ''} ${typeof record?.code === 'string' ? record.code : ''}`;\n return /foreign key|isc_foreign_key|violation of .*constraint|-530/i.test(text);\n }\n\n /** Cambia esplicitamente lo stato di registrazione; usare questa API per blocco, conferma o eliminazione logica. */\n async setStato(codiceCliente: number, statoRegistrazione: StatoRegistrazione) {\n try {\n const query = `UPDATE UTENTI SET STAREG = ? WHERE CODUTE = ?`;\n await Orm.execute(this.accessiOptions.databaseOptions, query, [\n statoRegistrazione,\n codiceCliente,\n ]);\n if (\n statoRegistrazione === StatoRegistrazione.BLOCC\n || statoRegistrazione === StatoRegistrazione.DELETE\n ) {\n await this.revokeSessionsBestEffort(codiceCliente, 'user_disabled');\n }\n } catch (error) {\n throw error;\n }\n }\n\n public async setGdpr(codiceUtente: number) {\n try {\n return await Orm.executeMultiple(this.accessiOptions.databaseOptions, [\n { query: 'UPDATE OR INSERT INTO UTENTI_GDPR (CODUTE, DATACC, GDPR) VALUES (?, CURRENT_DATE, ?) MATCHING (CODUTE, DATACC)', params: [codiceUtente, 'true'] },\n { query: 'UPDATE UTENTI SET FLGGDPR = 1, DATGDPR = CURRENT_DATE WHERE CODUTE = ?', params: [codiceUtente] },\n ]);\n } catch (error) {\n throw error;\n }\n }\n\n /**\n * Forza l'invio dell'email di reset password per un utente. Operazione amministrativa.\n * Richiede un servizio email configurato: altrimenti solleva ACCESSI_EMAIL_NOT_CONFIGURED.\n */\n public async forcePasswordReset(codiceUtente: number): Promise<void> {\n assertEmailConfigured(this.accessiOptions);\n const rows = await this.getUsers({ codiceUtente });\n const email = rows[0]?.utente?.email;\n if (typeof email !== 'string' || email.trim() === '') {\n throw new NotFoundException(`Nessun utente con email per il codice ${codiceUtente}.`);\n }\n await this.emailService.sendPasswordResetEmail(email);\n }\n\n /**\n * Forza l'invio dell'email di reset a tutti gli utenti la cui password non e ancora nel formato\n * moderno (`scrypt$...`), cioe' legacy grezza o `scrypt-legacy` non piu verificabile. Utile quando\n * la `encryptionKey` storica e perduta. Richiede email configurata. Ritorna quanti utenti hanno\n * ricevuto l'email.\n */\n public async forcePasswordResetForLegacyPasswords(): Promise<number> {\n assertEmailConfigured(this.accessiOptions);\n const rows = await Orm.query(\n this.accessiOptions.databaseOptions,\n `SELECT U.CODUTE AS codice_utente, U.USRNAME AS email\n FROM UTENTI U\n JOIN UTENTI_PWD P ON P.CODUTE = U.CODUTE\n WHERE P.PWD IS NOT NULL AND P.PWD NOT STARTING WITH 'scrypt$'`,\n [],\n false,\n );\n\n let sent = 0;\n for (const row of rows as Array<Record<string, unknown>>) {\n const raw = RestUtilities.convertKeysToCamelCase(row) as Record<string, unknown>;\n const email = typeof raw.email === 'string' ? raw.email.trim() : '';\n if (email === '') continue;\n await this.emailService.sendPasswordResetEmail(email);\n sent += 1;\n }\n return sent;\n }\n}\n"]}
@@ -1,45 +0,0 @@
1
- import type { Application } from "express";
2
- import type { INestApplication } from "@nestjs/common";
3
- import { AuthService } from "./Services/AuthService/AuthService";
4
- import { UserService } from "./Services/UserService/UserService";
5
- import { EmailService } from "./Services/EmailService/EmailService";
6
- import { PermissionService } from "./Services/PermissionService/PermissionService";
7
- import { ServiceTokenService } from "./Services/ServiceTokenService/ServiceTokenService";
8
- import { TwoFactorService } from "./Services/TwoFactorService/TwoFactorService";
9
- import { FederatedAuthService } from "./federated-auth/FederatedAuthService";
10
- import { AuthenticateGenService } from "./middleware/authenticateGen";
11
- /**
12
- * Servizi Nest del modulo Accessi resi disponibili all'applicazione Express ospitante.
13
- *
14
- * Serve ai backend che, pur montando Accessi come modulo, devono delegare il proprio
15
- * flusso di login/SSO ai servizi ufficiali (invece di reimplementare firma JWT e
16
- * verifica password). Estrarre i servizi dal contenitore Nest evita di duplicare la
17
- * logica di derivazione delle chiavi e il contratto dei token.
18
- */
19
- export interface AccessiModuleServices {
20
- /** Autenticazione locale, verifica token, 2FA e reset password. */
21
- authService: AuthService;
22
- /** Profilo utente, snapshot autorevole e gestione utenti. */
23
- userService: UserService;
24
- /** SSO provider-agnostico: scambio identità esterna verificata -> sessione Accessi. */
25
- federatedAuthService: FederatedAuthService;
26
- /** Challenge 2FA / passwordless. */
27
- twoFactorService: TwoFactorService;
28
- /** Ruoli, menu e grant effettivi. */
29
- permissionService: PermissionService;
30
- /** Invio email di reset/attivazione. */
31
- emailService: EmailService;
32
- /** Token macchina-a-macchina. */
33
- serviceTokenService: ServiceTokenService;
34
- /** Middleware Express di autorizzazione (bridge usato da authorizeAccessi). */
35
- authenticateGenService: AuthenticateGenService;
36
- }
37
- /** Chiave usata su `app.locals` per esporre i servizi Accessi all'host Express. */
38
- export declare const ACCESSI_MODULE_SERVICES_LOCALS_KEY = "accessiServices";
39
- /** Estrae i servizi Accessi dal contenitore Nest e li aggancia a `app.locals`. */
40
- export declare function registerAccessiModuleServices(app: Application, nestApp: INestApplication): AccessiModuleServices;
41
- /**
42
- * Recupera i servizi Accessi dall'app Express ospitante.
43
- * Restituisce `undefined` se il modulo non è ancora stato inizializzato.
44
- */
45
- export declare function getAccessiModuleServices(app: Application | undefined): AccessiModuleServices | undefined;
@@ -1,39 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ACCESSI_MODULE_SERVICES_LOCALS_KEY = void 0;
4
- exports.registerAccessiModuleServices = registerAccessiModuleServices;
5
- exports.getAccessiModuleServices = getAccessiModuleServices;
6
- const AuthService_1 = require("./Services/AuthService/AuthService");
7
- const UserService_1 = require("./Services/UserService/UserService");
8
- const EmailService_1 = require("./Services/EmailService/EmailService");
9
- const PermissionService_1 = require("./Services/PermissionService/PermissionService");
10
- const ServiceTokenService_1 = require("./Services/ServiceTokenService/ServiceTokenService");
11
- const TwoFactorService_1 = require("./Services/TwoFactorService/TwoFactorService");
12
- const FederatedAuthService_1 = require("./federated-auth/FederatedAuthService");
13
- const authenticateGen_1 = require("./middleware/authenticateGen");
14
- /** Chiave usata su `app.locals` per esporre i servizi Accessi all'host Express. */
15
- exports.ACCESSI_MODULE_SERVICES_LOCALS_KEY = "accessiServices";
16
- /** Estrae i servizi Accessi dal contenitore Nest e li aggancia a `app.locals`. */
17
- function registerAccessiModuleServices(app, nestApp) {
18
- const services = {
19
- authService: nestApp.get(AuthService_1.AuthService),
20
- userService: nestApp.get(UserService_1.UserService),
21
- federatedAuthService: nestApp.get(FederatedAuthService_1.FederatedAuthService),
22
- twoFactorService: nestApp.get(TwoFactorService_1.TwoFactorService),
23
- permissionService: nestApp.get(PermissionService_1.PermissionService),
24
- emailService: nestApp.get(EmailService_1.EmailService),
25
- serviceTokenService: nestApp.get(ServiceTokenService_1.ServiceTokenService),
26
- authenticateGenService: nestApp.get(authenticateGen_1.AuthenticateGenService),
27
- };
28
- app.locals[exports.ACCESSI_MODULE_SERVICES_LOCALS_KEY] = services;
29
- return services;
30
- }
31
- /**
32
- * Recupera i servizi Accessi dall'app Express ospitante.
33
- * Restituisce `undefined` se il modulo non è ancora stato inizializzato.
34
- */
35
- function getAccessiModuleServices(app) {
36
- var _a;
37
- return (_a = app === null || app === void 0 ? void 0 : app.locals) === null || _a === void 0 ? void 0 : _a[exports.ACCESSI_MODULE_SERVICES_LOCALS_KEY];
38
- }
39
- //# sourceMappingURL=accessiRuntime.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"accessiRuntime.js","sourceRoot":"","sources":["../../src/accessi-module/accessiRuntime.ts"],"names":[],"mappings":";;;AA0CA,sEAiBC;AAMD,4DAIC;AAnED,oEAAiE;AACjE,oEAAiE;AACjE,uEAAoE;AACpE,sFAAmF;AACnF,4FAAyF;AACzF,mFAAgF;AAChF,gFAA6E;AAC7E,kEAAsE;AA6BtE,mFAAmF;AACtE,QAAA,kCAAkC,GAAG,iBAAiB,CAAC;AAEpE,kFAAkF;AAClF,SAAgB,6BAA6B,CAC3C,GAAgB,EAChB,OAAyB;IAEzB,MAAM,QAAQ,GAA0B;QACtC,WAAW,EAAE,OAAO,CAAC,GAAG,CAAC,yBAAW,CAAC;QACrC,WAAW,EAAE,OAAO,CAAC,GAAG,CAAC,yBAAW,CAAC;QACrC,oBAAoB,EAAE,OAAO,CAAC,GAAG,CAAC,2CAAoB,CAAC;QACvD,gBAAgB,EAAE,OAAO,CAAC,GAAG,CAAC,mCAAgB,CAAC;QAC/C,iBAAiB,EAAE,OAAO,CAAC,GAAG,CAAC,qCAAiB,CAAC;QACjD,YAAY,EAAE,OAAO,CAAC,GAAG,CAAC,2BAAY,CAAC;QACvC,mBAAmB,EAAE,OAAO,CAAC,GAAG,CAAC,yCAAmB,CAAC;QACrD,sBAAsB,EAAE,OAAO,CAAC,GAAG,CAAC,wCAAsB,CAAC;KAC5D,CAAC;IAEF,GAAG,CAAC,MAAM,CAAC,0CAAkC,CAAC,GAAG,QAAQ,CAAC;IAC1D,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED;;;GAGG;AACH,SAAgB,wBAAwB,CACtC,GAA4B;;IAE5B,OAAO,MAAA,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,MAAM,0CAAG,0CAAkC,CAAC,CAAC;AAC3D,CAAC","sourcesContent":["import type { Application } from \"express\";\nimport type { INestApplication } from \"@nestjs/common\";\nimport { AuthService } from \"./Services/AuthService/AuthService\";\nimport { UserService } from \"./Services/UserService/UserService\";\nimport { EmailService } from \"./Services/EmailService/EmailService\";\nimport { PermissionService } from \"./Services/PermissionService/PermissionService\";\nimport { ServiceTokenService } from \"./Services/ServiceTokenService/ServiceTokenService\";\nimport { TwoFactorService } from \"./Services/TwoFactorService/TwoFactorService\";\nimport { FederatedAuthService } from \"./federated-auth/FederatedAuthService\";\nimport { AuthenticateGenService } from \"./middleware/authenticateGen\";\n\n/**\n * Servizi Nest del modulo Accessi resi disponibili all'applicazione Express ospitante.\n *\n * Serve ai backend che, pur montando Accessi come modulo, devono delegare il proprio\n * flusso di login/SSO ai servizi ufficiali (invece di reimplementare firma JWT e\n * verifica password). Estrarre i servizi dal contenitore Nest evita di duplicare la\n * logica di derivazione delle chiavi e il contratto dei token.\n */\nexport interface AccessiModuleServices {\n /** Autenticazione locale, verifica token, 2FA e reset password. */\n authService: AuthService;\n /** Profilo utente, snapshot autorevole e gestione utenti. */\n userService: UserService;\n /** SSO provider-agnostico: scambio identità esterna verificata -> sessione Accessi. */\n federatedAuthService: FederatedAuthService;\n /** Challenge 2FA / passwordless. */\n twoFactorService: TwoFactorService;\n /** Ruoli, menu e grant effettivi. */\n permissionService: PermissionService;\n /** Invio email di reset/attivazione. */\n emailService: EmailService;\n /** Token macchina-a-macchina. */\n serviceTokenService: ServiceTokenService;\n /** Middleware Express di autorizzazione (bridge usato da authorizeAccessi). */\n authenticateGenService: AuthenticateGenService;\n}\n\n/** Chiave usata su `app.locals` per esporre i servizi Accessi all'host Express. */\nexport const ACCESSI_MODULE_SERVICES_LOCALS_KEY = \"accessiServices\";\n\n/** Estrae i servizi Accessi dal contenitore Nest e li aggancia a `app.locals`. */\nexport function registerAccessiModuleServices(\n app: Application,\n nestApp: INestApplication\n): AccessiModuleServices {\n const services: AccessiModuleServices = {\n authService: nestApp.get(AuthService),\n userService: nestApp.get(UserService),\n federatedAuthService: nestApp.get(FederatedAuthService),\n twoFactorService: nestApp.get(TwoFactorService),\n permissionService: nestApp.get(PermissionService),\n emailService: nestApp.get(EmailService),\n serviceTokenService: nestApp.get(ServiceTokenService),\n authenticateGenService: nestApp.get(AuthenticateGenService),\n };\n\n app.locals[ACCESSI_MODULE_SERVICES_LOCALS_KEY] = services;\n return services;\n}\n\n/**\n * Recupera i servizi Accessi dall'app Express ospitante.\n * Restituisce `undefined` se il modulo non è ancora stato inizializzato.\n */\nexport function getAccessiModuleServices(\n app: Application | undefined\n): AccessiModuleServices | undefined {\n return app?.locals?.[ACCESSI_MODULE_SERVICES_LOCALS_KEY];\n}\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"AccessiCatalogMigrator.js","sourceRoot":"","sources":["../../../src/accessi-module/database-updates/AccessiCatalogMigrator.ts"],"names":[],"mappings":"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","sourcesContent":["import { createHash } from 'crypto';\nimport { existsSync, readFileSync, readdirSync } from 'fs';\nimport { extname, join, relative, resolve, sep } from 'path';\nimport { Orm } from '../../Orm';\nimport { Logger } from '../../Logger';\nimport type { AccessiOptions, CatalogScriptChecksumPolicy, CatalogScriptsOptions } from '../AccessiModule';\n\nexport interface CatalogScriptMigration {\n name: string;\n applied: boolean;\n skipped: boolean;\n reapplied: boolean;\n error?: string;\n}\n\nexport interface CatalogMigrationReport {\n folder: string;\n discovered: number;\n applied: string[];\n skipped: string[];\n invalid: { script: string; violations: string[] }[];\n failed: { script: string; error: string }[];\n}\n\n/**\n * Le catalog migrations possono modificare SOLO righe (DML). Questa whitelist rende tassativo il\n * vincolo: qualunque altro statement (DDL, trigger, transazioni, GRANT, ...) viene rifiutato.\n */\nconst ALLOWED_STATEMENT_KEYWORDS: ReadonlySet<string> = new Set([\n 'INSERT', 'UPDATE', 'DELETE', 'MERGE', 'SELECT', 'EXECUTE',\n]);\n\n/** Estrae la prima parola chiave di uno statement, saltando spazi e commenti iniziali. */\nexport function leadingStatementKeyword(statement: string): string {\n let index = 0;\n while (index < statement.length) {\n const char = statement[index] as string;\n if (/\\s/.test(char)) { index += 1; continue; }\n if (char === '-' && statement[index + 1] === '-') {\n const newline = statement.indexOf('\\n', index);\n if (newline === -1) return '';\n index = newline + 1;\n continue;\n }\n if (char === '/' && statement[index + 1] === '*') {\n const end = statement.indexOf('*/', index + 2);\n if (end === -1) return '';\n index = end + 2;\n continue;\n }\n break;\n }\n const match = /^([A-Za-z]+)/.exec(statement.slice(index));\n return match ? (match[1] as string).toUpperCase() : '';\n}\n\n/**\n * Valida gli statement di una catalog migration: ritorna la lista delle violazioni (vuota se conforme).\n * Regola tassativa: solo DML. Nessuna modifica a colonne/schema/trigger/permessi.\n */\nexport function analyzeCatalogScript(statements: string[]): string[] {\n const violations: string[] = [];\n for (const statement of statements) {\n const keyword = leadingStatementKeyword(statement);\n if (!keyword) continue;\n if (!ALLOWED_STATEMENT_KEYWORDS.has(keyword)) {\n const preview = statement.replace(/\\s+/g, ' ').trim().slice(0, 120);\n violations.push(\n `Statement non consentito (${keyword}): le catalog migrations possono modificare solo righe (INSERT/UPDATE/DELETE/MERGE). Estratto: \"${preview}\"`,\n );\n }\n }\n return violations;\n}\n\n/** Ritorna la policy di checksum effettiva (default `error`). */\nfunction checksumPolicy(options: CatalogScriptsOptions): CatalogScriptChecksumPolicy {\n return options.onChecksumMismatch ?? 'error';\n}\n\n/** Hash SHA-256 del contenuto dello script, usato per rilevare modifiche non versionate. */\nexport function computeCatalogScriptChecksum(content: string): string {\n return createHash('sha256').update(content, 'utf8').digest('hex');\n}\n\n/**\n * Divide un file SQL in statement eseguibili separatamente.\n *\n * Supporta:\n * - terminator personalizzati con `SET TERM <char>` / `SET TERM <char> ;`\n * - stringhe `'...'` con escape `''`\n * - commenti di riga `--` e di blocco `/* ... * /`\n *\n * Non interpreta la semantica SQL: e volutamente un tokenizer prudente che non spezza\n * mai all'interno di stringhe o commenti.\n */\nexport function splitSqlStatements(sql: string, defaultTerminator = ';'): string[] {\n const statements: string[] = [];\n const lines = sql.replace(/\\r\\n?/g, '\\n').split('\\n');\n let buffer = '';\n let terminator = defaultTerminator;\n let inString = false;\n let inLineComment = false;\n let inBlockComment = false;\n\n for (const line of lines) {\n const setTerm = /^\\s*SET\\s+TERM\\s+(\\S+)/i.exec(line);\n if (setTerm && !inString && !inLineComment && !inBlockComment) {\n const raw = setTerm[1] ?? '';\n terminator = raw.length > 1 && raw.endsWith(';') ? raw.slice(0, -1) : raw || defaultTerminator;\n continue;\n }\n\n buffer += `${line}\\n`;\n\n let start = 0;\n let index = 0;\n while (index < buffer.length) {\n const char = buffer[index] as string;\n const next = buffer[index + 1];\n\n if (inLineComment) {\n if (char === '\\n') inLineComment = false;\n index += 1;\n continue;\n }\n if (inBlockComment) {\n if (char === '*' && next === '/') {\n inBlockComment = false;\n index += 2;\n continue;\n }\n index += 1;\n continue;\n }\n if (inString) {\n if (char === \"'\") {\n if (next === \"'\") {\n index += 2;\n continue;\n }\n inString = false;\n }\n index += 1;\n continue;\n }\n\n if (char === \"'\") {\n inString = true;\n index += 1;\n continue;\n }\n if (char === '-' && next === '-') {\n inLineComment = true;\n index += 2;\n continue;\n }\n if (char === '/' && next === '*') {\n inBlockComment = true;\n index += 2;\n continue;\n }\n if (buffer.startsWith(terminator, index)) {\n const statement = buffer.slice(start, index).trim();\n if (statement) statements.push(statement);\n index += terminator.length;\n start = index;\n continue;\n }\n index += 1;\n }\n\n buffer = buffer.slice(start);\n }\n\n const trailing = buffer.trim();\n if (trailing) statements.push(trailing);\n return statements;\n}\n\n/** Elenca gli script `.sql` della cartella, ordinati per percorso (prefissi numerici consigliati). */\nexport function discoverCatalogScripts(options: CatalogScriptsOptions): { name: string; path: string }[] {\n const folder = resolve(options.folder);\n if (!existsSync(folder)) {\n throw new Error(`AccessiCatalogMigrator: cartella non trovata: ${folder}`);\n }\n\n const include = options.include && options.include.length > 0 ? options.include : ['.sql'];\n const found: { name: string; path: string }[] = [];\n\n const walk = (directory: string): void => {\n for (const entry of readdirSync(directory, { withFileTypes: true })) {\n const absolute = join(directory, entry.name);\n if (entry.isDirectory()) {\n walk(absolute);\n continue;\n }\n if (!entry.isFile()) continue;\n const matches = include.some((pattern) =>\n pattern.startsWith('.') ? extname(entry.name).toLowerCase() === pattern.toLowerCase() : entry.name.includes(pattern),\n );\n if (!matches) continue;\n const name = relative(folder, absolute).split(sep).join('/');\n found.push({ name, path: absolute });\n }\n };\n\n walk(folder);\n return found.sort((a, b) => a.name.localeCompare(b.name));\n}\n\nfunction isLedgerPresent(options: AccessiOptions): Promise<boolean> {\n return Orm.query(\n options.databaseOptions,\n \"SELECT 1 FROM RDB$RELATIONS WHERE TRIM(RDB$RELATION_NAME) = 'ACCESSI_CATALOG_SCRIPT'\",\n [],\n false,\n ).then((rows) => rows.length > 0);\n}\n\n/** Legge il ledger come mappa `script -> checksum`. */\nasync function readLedger(options: AccessiOptions): Promise<Map<string, string>> {\n const rows = (await Orm.query(\n options.databaseOptions,\n 'SELECT SCRIPT_NAME AS NAME, CHECKSUM FROM ACCESSI_CATALOG_SCRIPT',\n [],\n false,\n )) as Array<Record<string, unknown>>;\n const ledger = new Map<string, string>();\n for (const row of rows) {\n const name = String(row.NAME ?? row.name ?? '').trim();\n const checksum = String(row.CHECKSUM ?? row.checksum ?? '').trim();\n if (name) ledger.set(name, checksum);\n }\n return ledger;\n}\n\nasync function upsertLedger(options: AccessiOptions, name: string, checksum: string, reapplied: boolean): Promise<void> {\n if (reapplied) {\n await Orm.execute(\n options.databaseOptions,\n 'UPDATE ACCESSI_CATALOG_SCRIPT SET CHECKSUM = ?, APPLIED_AT = CURRENT_TIMESTAMP, APPLIED_COUNT = APPLIED_COUNT + 1 WHERE SCRIPT_NAME = ?',\n [checksum, name],\n false,\n );\n return;\n }\n await Orm.execute(\n options.databaseOptions,\n 'UPDATE OR INSERT INTO ACCESSI_CATALOG_SCRIPT (SCRIPT_NAME, CHECKSUM, APPLIED_AT, APPLIED_COUNT) VALUES (?, ?, CURRENT_TIMESTAMP, 1) MATCHING (SCRIPT_NAME)',\n [name, checksum],\n false,\n );\n}\n\n/** Elenca gli script non ancora applicati (o con checksum diverso) senza eseguirli. */\nexport async function listPendingCatalogScripts(options: AccessiOptions): Promise<{ applied: string[]; pending: string[]; changed: string[]; invalid: { script: string; violations: string[] }[] }> {\n const config = options.catalogScripts;\n if (!config?.folder) throw new Error('AccessiCatalogMigrator: catalogScripts.folder non configurato.');\n if (!(await isLedgerPresent(options))) {\n throw new Error('AccessiCatalogMigrator: tabella ACCESSI_CATALOG_SCRIPT assente. Eseguire prima AccessiDatabaseUpdater.run (db:update:accessi).');\n }\n\n const allowDdl = config.allowDdl === true;\n const ledger = await readLedger(options);\n const discovered = discoverCatalogScripts(config);\n const pending: string[] = [];\n const changed: string[] = [];\n const invalid: { script: string; violations: string[] }[] = [];\n\n for (const script of discovered) {\n const content = readFileSync(script.path, 'utf8');\n const checksum = computeCatalogScriptChecksum(content);\n const violations = allowDdl ? [] : analyzeCatalogScript(splitSqlStatements(content));\n if (violations.length > 0) {\n invalid.push({ script: script.name, violations });\n continue;\n }\n const appliedChecksum = ledger.get(script.name);\n if (appliedChecksum === undefined) pending.push(script.name);\n else if (appliedChecksum !== checksum) changed.push(script.name);\n }\n\n return { applied: [...ledger.keys()].sort(), pending, changed, invalid };\n}\n\n/**\n * Applica le catalog migrations presenti nella cartella configurata.\n *\n * Idempotenza:\n * - uno script gia presente nel ledger con lo stesso checksum viene saltato;\n * - uno script gia applicato ma modificato segue `onChecksumMismatch` (`error` default, `warn`, `reapply`);\n * - un errore interrompe il run (default) senza avanzare, lasciando il ledger all'ultimo script completato.\n *\n * Il chiamante deve avere gia riconciliato lo schema (`AccessiDatabaseUpdater.run`): la tabella\n * ledger `ACCESSI_CATALOG_SCRIPT` e creata dall'updater.\n */\nexport async function applyCatalogScripts(options: AccessiOptions): Promise<CatalogMigrationReport> {\n const logger = new Logger(AccessiCatalogMigrator.name);\n const config = options.catalogScripts;\n if (!config?.folder) throw new Error('AccessiCatalogMigrator: catalogScripts.folder non configurato.');\n if (!(await isLedgerPresent(options))) {\n throw new Error('AccessiCatalogMigrator: tabella ACCESSI_CATALOG_SCRIPT assente. Eseguire prima AccessiDatabaseUpdater.run (db:update:accessi).');\n }\n\n const folder = resolve(config.folder);\n const discovered = discoverCatalogScripts(config);\n const ledger = await readLedger(options);\n const stopOnError = config.stopOnError !== false;\n const allowDdl = config.allowDdl === true;\n const maxScripts = Number.isInteger(config.maxScriptsPerRun) && (config.maxScriptsPerRun ?? 0) > 0 ? config.maxScriptsPerRun : undefined;\n const report: CatalogMigrationReport = { folder, discovered: discovered.length, applied: [], skipped: [], invalid: [], failed: [] };\n\n logger.info(`Catalog migrations: ${discovered.length} script trovati in ${folder}.`);\n\n for (const script of discovered) {\n if (maxScripts !== undefined && report.applied.length >= maxScripts) {\n logger.warning(`Catalog migrations: limite maxScriptsPerRun=${maxScripts} raggiunto, resto rimandato.`);\n break;\n }\n\n const content = readFileSync(script.path, 'utf8');\n const checksum = computeCatalogScriptChecksum(content);\n const appliedChecksum = ledger.get(script.name);\n\n if (appliedChecksum === checksum) {\n report.skipped.push(script.name);\n continue;\n }\n\n let reapplied = false;\n if (appliedChecksum !== undefined && appliedChecksum !== checksum) {\n const policy = checksumPolicy(config);\n if (policy === 'error') {\n throw new Error(\n `AccessiCatalogMigrator: lo script \"${script.name}\" e gia applicato con un checksum diverso (migrazioni immutabili). ` +\n `Ripristina il file o configura onChecksumMismatch='reapply'/'warn' consapevolmente.`,\n );\n }\n if (policy === 'warn') {\n logger.warning(`Catalog migrations: \"${script.name}\" applicato con checksum diverso, ignorato (policy warn).`);\n report.skipped.push(script.name);\n continue;\n }\n reapplied = true;\n logger.warning(`Catalog migrations: \"${script.name}\" riapplicato (policy reapply).`);\n }\n\n try {\n const statements = splitSqlStatements(content);\n const violations = allowDdl ? [] : analyzeCatalogScript(statements);\n if (violations.length > 0) {\n report.invalid.push({ script: script.name, violations });\n for (const violation of violations) {\n logger.error(`Catalog migration non conforme: ${script.name}. ${violation}`);\n }\n // Il file non viene applicato ne registrato nel ledger; il run prosegue con gli altri.\n continue;\n }\n for (const statement of statements) {\n await Orm.execute(options.databaseOptions, statement, [], false);\n }\n await upsertLedger(options, script.name, checksum, reapplied);\n ledger.set(script.name, checksum);\n report.applied.push(script.name);\n logger.info(`Catalog migration applicata: ${script.name} (${statements.length} statement).`);\n } catch (error) {\n const message = error instanceof Error ? error.message : String(error);\n report.failed.push({ script: script.name, error: message });\n logger.error(`Catalog migration fallita: ${script.name}. ${message}`);\n if (stopOnError) {\n throw new Error(`AccessiCatalogMigrator: script \"${script.name}\" fallito. ${message}`);\n }\n }\n }\n\n return report;\n}\n\n/** Esegue la riconciliazione dello schema non e responsabilita di questa classe: usare l'updater prima. */\nexport class AccessiCatalogMigrator {\n static apply(options: AccessiOptions): Promise<CatalogMigrationReport> {\n return applyCatalogScripts(options);\n }\n\n static listPending(options: AccessiOptions): Promise<{ applied: string[]; pending: string[]; changed: string[]; invalid: { script: string; violations: string[] }[] }> {\n return listPendingCatalogScripts(options);\n }\n}\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"AccessiDatabaseUpdater.js","sourceRoot":"","sources":["../../../src/accessi-module/database-updates/AccessiDatabaseUpdater.ts"],"names":[],"mappings":"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","sourcesContent":["import { Injectable, Inject, OnModuleInit } from '@nestjs/common';\nimport type { AccessiOptions } from '../AccessiModule';\nimport { DatabaseUpdater } from '../../DatabaseUpdater';\nimport { Orm } from '../../Orm';\nimport { Logger } from '../../Logger';\nimport { ACCESSI_SCHEMA_VERSION, ACCESSI_VERSION_KEY, accessiTables, accessiForeignKeys, accessiIndexes, accessiTriggers, accessiGenerators, accessiChecks, accessiRenamedColumns, accessiObsoleteColumns, accessiColumnCopies } from './accessiSchema';\nimport { applyCatalogScripts } from './AccessiCatalogMigrator';\nimport { applyMenuScopeSeeds } from './menuScopeSeeder';\n\ntype Row = Record<string, unknown>;\nexport interface AccessiSchemaReport { compatible: boolean; issues: string[]; warnings: string[]; }\n\n/** Reconciles the actual schema; version labels never bypass verification. */\n@Injectable()\nexport class AccessiDatabaseUpdater extends DatabaseUpdater implements OnModuleInit {\n protected static override logger = new Logger(AccessiDatabaseUpdater.name);\n private static readonly initialization = new WeakMap<AccessiOptions, Promise<void>>();\n private static readonly running = new Map<string, Promise<void>>();\n\n constructor(@Inject('ACCESSI_OPTIONS') private readonly accessiOptions: AccessiOptions) { super(); }\n\n async onModuleInit(): Promise<void> { await AccessiDatabaseUpdater.initialize(this.accessiOptions); }\n\n /** Shared bootstrap barrier for services in the same Nest module. Failed attempts may be retried. */\n static initialize(options: AccessiOptions): Promise<void> {\n let pending = this.initialization.get(options);\n if (!pending) {\n pending = this.bootstrap(options);\n this.initialization.set(options, pending);\n const cleanup = () => this.initialization.delete(options);\n pending.then(cleanup, cleanup);\n }\n return pending;\n }\n\n /**\n * Prima riconcilia lo schema, poi applica le catalog migrations applicative (menu, ruoli, ...).\n * Con `autoUpdateDatabase: false` la verifica resta in sola lettura e le catalog migrations\n * non vengono eseguite automaticamente.\n */\n private static async bootstrap(options: AccessiOptions): Promise<void> {\n if (options.autoUpdateDatabase === false) {\n await this.assertCompatible(options);\n return;\n }\n\n await this.run(options);\n await applyMenuScopeSeeds(options);\n if (options.catalogScripts?.enabled) {\n await applyCatalogScripts(options);\n }\n }\n\n static getLatestVersion(): string { return ACCESSI_SCHEMA_VERSION; }\n\n static async getCurrentVersion(options: AccessiOptions): Promise<string | null> {\n if (!(await this.tableExists(options.databaseOptions, 'PARAMETRI'))) return null;\n const rows = await Orm.query(options.databaseOptions,\n 'SELECT DESPAR FROM PARAMETRI WHERE CODPAR = ?', [ACCESSI_VERSION_KEY], false);\n const version = rows[0]?.DESPAR;\n return typeof version === 'string' ? version.trim() : version == null ? null : String(version).trim();\n }\n\n /** Serialize callers targeting the same database in this process. Cross-process DDL is a deployment concern. */\n static run(options: AccessiOptions): Promise<void> {\n const db = options.databaseOptions;\n const key = JSON.stringify([db.host ?? 'localhost', db.port ?? 3050, db.database]);\n const previous = this.running.get(key) ?? Promise.resolve();\n const pending = previous.catch(() => {}).then(() => this.reconcile(options));\n this.running.set(key, pending);\n const cleanup = () => { if (this.running.get(key) === pending) this.running.delete(key); };\n pending.then(cleanup, cleanup);\n return pending;\n }\n\n private static async query(options: AccessiOptions, sql: string, params: unknown[] = []): Promise<Row[]> {\n return Orm.query(options.databaseOptions, sql, params, false);\n }\n\n private static async execute(options: AccessiOptions, sql: string, params: unknown[] = []): Promise<void> {\n try { await Orm.execute(options.databaseOptions, sql, params, false); }\n catch (error) {\n const message = error instanceof Error ? error.message : String(error);\n throw new Error(`Migrazione Accessi interrotta: ${sql}. ${message}. Correggere lo schema/dati indicati e rilanciare; la versione non e stata avanzata.`);\n }\n }\n\n private static async sequenceExists(options: AccessiOptions, name: string): Promise<boolean> {\n const rows = await this.query(options, 'SELECT 1 FROM RDB$GENERATORS WHERE RDB$GENERATOR_NAME = ?', [name.toUpperCase()]);\n return rows.length > 0;\n }\n\n /** Nome deterministico del CHECK che replica NOT NULL su Firebird 2.5 (limite identificatore: 31 caratteri). */\n private static notNullConstraint(table: string, column: string): string {\n return `CK_NN_${table}_${column}`.toUpperCase().slice(0, 31);\n }\n\n /** Su Firebird 2.5 NOT NULL sulle colonne esistenti e' replicato da un CHECK: la verifica lo accetta. */\n private static notNullEnforcedByCheck(checks: Row[], engineMajor: number, table: string, column: string): boolean {\n if (engineMajor >= 3) return false;\n const name = this.notNullConstraint(table, column);\n return checks.some(row => row.NAME === name && this.sameCheck(String(row.CHECK_SOURCE), `${column} IS NOT NULL`));\n }\n\n private static async relationIssues(options: AccessiOptions): Promise<string[]> {\n // RDB$VIEW_BLR esiste in tutte le versioni; RDB$RELATION_TYPE solo da Firebird 3.0.\n // Una vista ha RDB$VIEW_BLR non nullo: se una tabella Accessi esiste come vista, va segnalato.\n const rows = await this.query(options, `SELECT TRIM(RDB$RELATION_NAME) AS NAME\n FROM RDB$RELATIONS WHERE COALESCE(RDB$SYSTEM_FLAG, 0) = 0 AND RDB$VIEW_BLR IS NOT NULL`);\n return rows.filter(row => accessiTables[String(row.NAME)]).map(row => `${row.NAME}: richiesta tabella persistente, trovata vista`);\n }\n\n private static async engineInfo(options: AccessiOptions): Promise<{ version: string; major: number; minor: number }> {\n const rows = await this.query(options, \"SELECT RDB$GET_CONTEXT('SYSTEM', 'ENGINE_VERSION') AS ENGINE_VERSION FROM RDB$DATABASE\");\n const version = String(rows[0]?.ENGINE_VERSION ?? 'sconosciuta');\n const match = /^(\\d+)(?:\\.(\\d+))?/.exec(version);\n return { version, major: match ? Number(match[1]) : Number.NaN, minor: match?.[2] ? Number(match[2]) : 0 };\n }\n\n private static async engineIssue(options: AccessiOptions): Promise<string | undefined> {\n const { version, major, minor } = await this.engineInfo(options);\n // Firebird 2.5 e successivi: la 2.5 usa CREATE GENERATOR, dalla 3.0 lo schema usa CREATE SEQUENCE.\n const supported = major > 2 || (major === 2 && minor >= 5);\n if (!supported) return `Firebird ${version}: lo schema Accessi richiede Firebird 2.5 o successivo`;\n }\n\n private static async columns(options: AccessiOptions): Promise<Row[]> {\n return this.query(options, `SELECT TRIM(RF.RDB$RELATION_NAME) AS TABLE_NAME, TRIM(RF.RDB$FIELD_NAME) AS COLUMN_NAME,\n F.RDB$FIELD_TYPE AS FIELD_TYPE, F.RDB$FIELD_SUB_TYPE AS SUB_TYPE, F.RDB$FIELD_SCALE AS FIELD_SCALE,\n F.RDB$CHARACTER_LENGTH AS TEXT_LENGTH, TRIM(CS.RDB$CHARACTER_SET_NAME) AS CHARSET_NAME,\n COALESCE(RF.RDB$NULL_FLAG, F.RDB$NULL_FLAG, 0) AS NOT_NULL,\n CAST(COALESCE(RF.RDB$DEFAULT_SOURCE, F.RDB$DEFAULT_SOURCE) AS VARCHAR(1024)) AS DEFAULT_SOURCE,\n CASE WHEN F.RDB$COMPUTED_BLR IS NULL THEN 0 ELSE 1 END AS IS_COMPUTED\n FROM RDB$RELATION_FIELDS RF JOIN RDB$FIELDS F ON F.RDB$FIELD_NAME = RF.RDB$FIELD_SOURCE\n LEFT JOIN RDB$CHARACTER_SETS CS ON CS.RDB$CHARACTER_SET_ID = F.RDB$CHARACTER_SET_ID\n WHERE RF.RDB$RELATION_NAME IN (${Object.keys(accessiTables).map(name => `'${name}'`).join(', ')})`);\n }\n\n private static defaultValue(definition: string): string | undefined {\n return /\\bDEFAULT\\s+('[^']*'|\\S+)/i.exec(definition)?.[1];\n }\n\n private static typeIssue(row: Row, definition: string): string | undefined {\n if (Number(row.IS_COMPUTED)) return 'colonna calcolata invece di scrivibile';\n const stringLength = /^(?:VAR)?CHAR\\((\\d+)\\)/.exec(definition);\n if (stringLength) {\n if (![14, 37].includes(Number(row.FIELD_TYPE))) return `richiesto testo (${definition})`;\n if (Number(row.TEXT_LENGTH) < Number(stringLength[1])) return `lunghezza ${row.TEXT_LENGTH}, richiesta almeno ${stringLength[1]}`;\n const charset = /CHARACTER SET (\\w+)/.exec(definition)?.[1];\n if (charset && typeof row.CHARSET_NAME === 'string' && row.CHARSET_NAME.trim() !== charset) return `character set ${row.CHARSET_NAME}, richiesto ${charset}`;\n } else if (/^(SMALLINT|INTEGER)/.test(definition)) {\n const acceptable = definition.startsWith('SMALLINT') ? [7, 8, 16] : [8, 16];\n if (!acceptable.includes(Number(row.FIELD_TYPE)) || Number(row.FIELD_SCALE) !== 0) return `richiesto intero (${definition})`;\n } else if (definition.startsWith('DATE')) {\n if (![12, 35].includes(Number(row.FIELD_TYPE))) return 'richiesto DATE o TIMESTAMP';\n } else if (definition.startsWith('TIMESTAMP')) {\n if (Number(row.FIELD_TYPE) !== 35) return 'richiesto TIMESTAMP';\n } else if (definition.startsWith('BLOB')) {\n if (Number(row.FIELD_TYPE) !== 261 || Number(row.SUB_TYPE) !== 1) return 'richiesto BLOB testuale';\n }\n return undefined;\n }\n\n private static async constraints(options: AccessiOptions): Promise<Row[]> {\n return this.query(options, `SELECT TRIM(C.RDB$CONSTRAINT_NAME) AS NAME, TRIM(C.RDB$RELATION_NAME) AS TABLE_NAME,\n TRIM(C.RDB$CONSTRAINT_TYPE) AS KIND, TRIM(C.RDB$INDEX_NAME) AS INDEX_NAME, TRIM(S.RDB$FIELD_NAME) AS COLUMN_NAME, S.RDB$FIELD_POSITION AS POS,\n TRIM(T.RDB$RELATION_NAME) AS TARGET_TABLE, TRIM(TS.RDB$FIELD_NAME) AS TARGET_COLUMN,\n TRIM(R.RDB$DELETE_RULE) AS DELETE_RULE\n FROM RDB$RELATION_CONSTRAINTS C\n LEFT JOIN RDB$INDEX_SEGMENTS S ON S.RDB$INDEX_NAME = C.RDB$INDEX_NAME\n LEFT JOIN RDB$REF_CONSTRAINTS R ON R.RDB$CONSTRAINT_NAME = C.RDB$CONSTRAINT_NAME\n LEFT JOIN RDB$RELATION_CONSTRAINTS T ON T.RDB$CONSTRAINT_NAME = R.RDB$CONST_NAME_UQ\n LEFT JOIN RDB$INDEX_SEGMENTS TS ON TS.RDB$INDEX_NAME = T.RDB$INDEX_NAME AND TS.RDB$FIELD_POSITION = S.RDB$FIELD_POSITION\n ORDER BY C.RDB$CONSTRAINT_NAME, S.RDB$FIELD_POSITION`);\n }\n\n /** Raggruppa per nome; ogni gruppo e non vuoto per costruzione (tupla non vuota). */\n private static groups(rows: Row[]): Array<[Row, ...Row[]]> {\n const groups = new Map<string, [Row, ...Row[]]>();\n for (const row of rows) {\n const key = String(row.NAME);\n const existing = groups.get(key);\n if (existing) {\n existing.push(row);\n } else {\n groups.set(key, [row]);\n }\n }\n return Array.from(groups.values());\n }\n\n private static async checks(options: AccessiOptions): Promise<Row[]> {\n return this.query(options, `SELECT DISTINCT TRIM(C.RDB$CONSTRAINT_NAME) AS NAME,\n TRIM(C.RDB$RELATION_NAME) AS TABLE_NAME, CAST(T.RDB$TRIGGER_SOURCE AS VARCHAR(2048)) AS CHECK_SOURCE\n FROM RDB$RELATION_CONSTRAINTS C JOIN RDB$CHECK_CONSTRAINTS K ON K.RDB$CONSTRAINT_NAME = C.RDB$CONSTRAINT_NAME\n JOIN RDB$TRIGGERS T ON T.RDB$TRIGGER_NAME = K.RDB$TRIGGER_NAME\n WHERE C.RDB$CONSTRAINT_TYPE = 'CHECK'`);\n }\n\n private static sameCheck(source: string, expression: string): boolean {\n const normalize = (s: string) => s.replace(/^\\s*CHECK\\s*/i, '').replace(/[\\s()]/g, '').toUpperCase();\n return normalize(source ?? '') === normalize(expression);\n }\n\n private static async indexes(options: AccessiOptions): Promise<Array<[Row, ...Row[]]>> {\n return this.groups(await this.query(options, `SELECT TRIM(I.RDB$INDEX_NAME) AS NAME, TRIM(I.RDB$RELATION_NAME) AS TABLE_NAME,\n COALESCE(I.RDB$INDEX_INACTIVE, 0) AS INACTIVE, TRIM(S.RDB$FIELD_NAME) AS COLUMN_NAME\n FROM RDB$INDICES I LEFT JOIN RDB$INDEX_SEGMENTS S ON S.RDB$INDEX_NAME = I.RDB$INDEX_NAME\n ORDER BY I.RDB$INDEX_NAME, S.RDB$FIELD_POSITION`));\n }\n\n private static sameColumns(rows: Row[], columns: string[]): boolean {\n return rows.map(row => row.COLUMN_NAME).join(',') === columns.join(',');\n }\n\n private static async triggers(options: AccessiOptions): Promise<Row[]> {\n return this.query(options, `SELECT TRIM(RDB$TRIGGER_NAME) AS NAME, TRIM(RDB$RELATION_NAME) AS TABLE_NAME,\n RDB$TRIGGER_INACTIVE AS INACTIVE, RDB$TRIGGER_TYPE AS TRIGGER_TYPE,\n CAST(RDB$TRIGGER_SOURCE AS VARCHAR(8191)) AS SOURCE\n FROM RDB$TRIGGERS WHERE COALESCE(RDB$SYSTEM_FLAG, 0) = 0\n AND RDB$RELATION_NAME IN (${Object.keys(accessiTables).map(name => `'${name}'`).join(', ')})`);\n }\n\n /** Accept historical formatting and renamed triggers, but require the operations used by Accessi. */\n private static compatibleTrigger(row: Row, trigger: typeof accessiTriggers[number]): boolean {\n if (row.TABLE_NAME !== trigger.table || Number(row.INACTIVE) || Number(row.TRIGGER_TYPE) !== trigger.type) return false;\n const source = String(row.SOURCE ?? '').replace(/\\/\\*[\\s\\S]*?\\*\\//g, '').replace(/--[^\\r\\n]*/g, '').replace(/[\\s()]/g, '').toUpperCase();\n const required: Record<string, string[]> = {\n UTENTI_BI: ['IFNEW.CODUTEISNULL', 'NEW.CODUTE=GEN_IDGEN_UTENTI_ID,1', 'NEW.DATINS=CURRENT_TIMESTAMP'],\n RUOLI_BI: ['IFNEW.CODRUOISNULL', 'NEW.CODRUO=GEN_IDGEN_RUOLI_ID,1'],\n FILTRI_BI0: ['IFNEW.PROGISNULL', 'MAXPROG', 'FROMFILTRIWHERECODUTE=NEW.CODUTE', 'NEW.PROG=TOT+1'],\n UTENTI_GDPR_BI0: ['NEW.DATACC=CURRENT_TIMESTAMP', 'UPDATEUTENTISETFLGGDPR=1', 'DATGDPR=CURRENT_TIMESTAMP', 'WHERECODUTE=NEW.CODUTE'],\n };\n return (required[trigger.name] ?? []).every(fragment => source.includes(fragment));\n }\n\n private static async futureVersionIssue(options: AccessiOptions, columns: Row[]): Promise<string | undefined> {\n if (!['CODPAR', 'DESPAR'].every(name => columns.some(row => row.TABLE_NAME === 'PARAMETRI' && row.COLUMN_NAME === name))) return;\n const version = await this.getCurrentVersion(options);\n if (!version) return;\n if (!/^\\d+\\.\\d+\\.\\d+$/.test(version)) return `Versione Accessi non riconosciuta: ${version}`;\n const actual = version.split('.').map(Number), latest = ACCESSI_SCHEMA_VERSION.split('.').map(Number);\n for (let i = 0; i < 3; i++) {\n if ((actual[i] ?? 0) > (latest[i] ?? 0)) return `Schema Accessi ${version} piu recente della libreria (${ACCESSI_SCHEMA_VERSION}); downgrade automatico non consentito`;\n if ((actual[i] ?? 0) < (latest[i] ?? 0)) return;\n }\n }\n\n /** Read-only diagnostics, including when automatic updates are disabled. */\n static async inspectSchema(options: AccessiOptions): Promise<AccessiSchemaReport> {\n const engine = await this.engineIssue(options);\n if (engine) return { compatible: false, issues: [engine], warnings: [] };\n const { major: engineMajor } = await this.engineInfo(options);\n const issues: string[] = await this.relationIssues(options);\n const warnings: string[] = [];\n const columns = await this.columns(options);\n const checks = await this.checks(options);\n const future = await this.futureVersionIssue(options, columns);\n if (future) issues.push(future);\n for (const [table, schema] of Object.entries(accessiTables)) {\n const present = columns.filter(row => row.TABLE_NAME === table);\n if (!present.length) { issues.push(`Tabella mancante: ${table}`); continue; }\n // Schema esatto: nessuna colonna estranea nelle tabelle di proprieta Accessi.\n for (const row of present) {\n if (!(String(row.COLUMN_NAME) in schema.columns)) issues.push(`Colonna inattesa: ${table}.${row.COLUMN_NAME}`);\n }\n for (const [name, definition] of Object.entries(schema.columns)) {\n const row = present.find(row => row.COLUMN_NAME === name);\n if (!row) { issues.push(`Colonna mancante: ${table}.${name}`); continue; }\n const problem = this.typeIssue(row, definition);\n if (problem) issues.push(`${table}.${name}: ${problem}`);\n if (definition.includes('NOT NULL') && !Number(row.NOT_NULL) && !this.notNullEnforcedByCheck(checks, engineMajor, table, name)) {\n issues.push(`${table}.${name}: manca NOT NULL`);\n }\n const expected = this.defaultValue(definition);\n if (expected && this.normalizeDefault(row.DEFAULT_SOURCE) !== this.normalizeDefault(expected)) issues.push(`${table}.${name}: richiesto DEFAULT ${expected}`);\n }\n }\n for (const check of accessiChecks) {\n if (!checks.some(row => row.TABLE_NAME === check.table && this.sameCheck(String(row.CHECK_SOURCE), check.expression))) issues.push(`${check.table}: manca CHECK (${check.expression})`);\n }\n const constraints = this.groups(await this.constraints(options));\n const constraintIndexes = new Set(constraints.flatMap(rows => rows.map(row => String(row.INDEX_NAME ?? ''))).filter(Boolean));\n for (const [table, schema] of Object.entries(accessiTables)) {\n if (!constraints.some(rows => rows[0].TABLE_NAME === table && rows[0].KIND === 'PRIMARY KEY' && this.sameColumns(rows, schema.primaryKey))) issues.push(`${table}: chiave primaria richiesta (${schema.primaryKey.join(', ')})`);\n }\n for (const fk of accessiForeignKeys) {\n if (!constraints.some(rows => rows.length === 1 && rows[0].KIND === 'FOREIGN KEY' && rows[0].TABLE_NAME === fk.table && rows[0].COLUMN_NAME === fk.column && rows[0].TARGET_TABLE === fk.target && rows[0].TARGET_COLUMN === fk.targetColumn && (fk.cascade ? rows[0].DELETE_RULE === 'CASCADE' : ['NO ACTION', 'RESTRICT'].includes(String(rows[0].DELETE_RULE))))) issues.push(`${fk.name}: manca FK compatibile ${fk.table}.${fk.column} -> ${fk.target}.${fk.targetColumn}`);\n }\n const indexes = await this.indexes(options);\n for (const index of accessiIndexes) {\n if (!indexes.some(rows => rows[0].TABLE_NAME === index.table && !Number(rows[0].INACTIVE) && this.sameColumns(rows, index.columns))) issues.push(`${index.name}: indice mancante o inattivo`);\n }\n // Indici extra sulle tabelle Accessi: segnalati come avvisi, mai rimossi automaticamente (potrebbero servire).\n const declaredIndexShapes = new Set(accessiIndexes.map(index => `${index.table}:${index.columns.join(',')}`));\n for (const rows of indexes) {\n const table = String(rows[0].TABLE_NAME);\n if (!accessiTables[table] || Number(rows[0].INACTIVE) || constraintIndexes.has(String(rows[0].NAME))) continue;\n const shape = `${table}:${rows.map(row => String(row.COLUMN_NAME)).join(',')}`;\n if (!declaredIndexShapes.has(shape)) warnings.push(`Indice extra su ${table}: ${rows[0].NAME} (${rows.map(row => row.COLUMN_NAME).join(', ')})`);\n }\n const triggers = await this.triggers(options);\n for (const trigger of accessiTriggers) {\n if (!triggers.some(row => this.compatibleTrigger(row, trigger))) issues.push(`${trigger.name}: trigger richiesto attivo ${trigger.event} su ${trigger.table}, con le operazioni Accessi previste`);\n }\n for (const generator of accessiGenerators) {\n if (!(await this.sequenceExists(options, generator.name))) issues.push(`${generator.name}: sequence/generatore mancante`);\n else if (columns.some(row => row.TABLE_NAME === generator.table && row.COLUMN_NAME === generator.column)) {\n const rows = await this.query(options, `SELECT GEN_ID(${generator.name}, 0) AS CURRENT_VALUE, (SELECT COALESCE(MAX(${generator.column}), 0) FROM ${generator.table}) AS MAX_VALUE FROM RDB$DATABASE`);\n if (Number(rows[0]?.CURRENT_VALUE) < Number(rows[0]?.MAX_VALUE)) issues.push(`${generator.name}: sequence inferiore agli identificativi esistenti`);\n }\n }\n return { compatible: issues.length === 0, issues, warnings };\n }\n\n static async assertCompatible(options: AccessiOptions): Promise<AccessiSchemaReport> {\n const report = await this.inspectSchema(options);\n if (!report.compatible) throw new Error(`Schema database Accessi incompatibile:\\n- ${report.issues.join('\\n- ')}\\nEseguire AccessiDatabaseUpdater.run con un utente autorizzato o correggere lo schema prima dell'avvio.`);\n return report;\n }\n\n private static normalizeDefault(value: unknown): string {\n return String(value ?? '').replace(/^\\s*DEFAULT\\s+/i, '').replace(/[()\\s]/g, '').toUpperCase();\n }\n\n /**\n * Riconciliazione idempotente e ripartibile. Firebird non rende utilizzabili gli oggetti\n * creati nella stessa transazione (metadata cache), quindi il DDL resta auto-commit per\n * statement: eventuali errori a meta vengono recuperati rieseguendo la migrazione e la\n * versione viene avanzata solo dopo la verifica finale `assertCompatible`.\n */\n private static async reconcile(options: AccessiOptions): Promise<void> {\n this.logger.info('Verifica dello schema effettivo Accessi.');\n const engine = await this.engineIssue(options);\n if (engine) throw new Error(engine);\n const { major: engineMajor } = await this.engineInfo(options);\n const columns = await this.columns(options);\n const checks = await this.checks(options);\n const future = await this.futureVersionIssue(options, columns);\n if (future) throw new Error(future);\n // Detect incompatible existing definitions before making any changes. Never guess at data conversion.\n const problems: string[] = await this.relationIssues(options);\n for (const [table, schema] of Object.entries(accessiTables)) {\n for (const [name, definition] of Object.entries(schema.columns)) {\n const row = columns.find(row => row.TABLE_NAME === table && row.COLUMN_NAME === name);\n if (row) {\n const problem = this.typeIssue(row, definition);\n if (problem) problems.push(`${table}.${name}: ${problem}`);\n }\n }\n }\n if (problems.length) throw new Error(`Schema Accessi richiede intervento sui tipi:\\n- ${problems.join('\\n- ')}`);\n for (const [table, schema] of Object.entries(accessiTables)) {\n const present = columns.filter(row => row.TABLE_NAME === table);\n if (!present.length) {\n await this.execute(options, `CREATE TABLE ${table} (${Object.entries(schema.columns).map(([name, definition]) => `${name} ${definition}`).join(', ')})`);\n continue;\n }\n for (const [name, definition] of Object.entries(schema.columns)) {\n const row = present.find(row => row.COLUMN_NAME === name);\n if (!row) {\n if (definition.includes('NOT NULL') && !this.defaultValue(definition)) {\n const data = await this.query(options, `SELECT FIRST 1 1 AS HAS_DATA FROM ${table}`);\n if (data.length) throw new Error(`Impossibile aggiungere ${table}.${name} obbligatoria: tabella popolata, serve un backfill esplicito. Nessun valore identificativo viene inventato.`);\n }\n await this.execute(options, `ALTER TABLE ${table} ADD ${name} ${definition}`);\n } else {\n const expected = this.defaultValue(definition);\n if (expected && this.normalizeDefault(row.DEFAULT_SOURCE) !== this.normalizeDefault(expected)) await this.execute(options, `ALTER TABLE ${table} ALTER ${name} SET DEFAULT ${expected}`);\n if (definition.includes('NOT NULL') && !Number(row.NOT_NULL)) {\n if (expected) await this.execute(options, `UPDATE ${table} SET ${name} = ${expected} WHERE ${name} IS NULL`);\n if (engineMajor >= 3) {\n await this.execute(options, `ALTER TABLE ${table} ALTER ${name} SET NOT NULL`);\n } else {\n // Firebird 2.5 non supporta ALTER ... SET NOT NULL: replica la regola con un CHECK equivalente.\n const nnName = this.notNullConstraint(table, name);\n if (!checks.some(entry => entry.NAME === nnName)) {\n await this.execute(options, `ALTER TABLE ${table} ADD CONSTRAINT ${nnName} CHECK (${name} IS NOT NULL)`);\n }\n }\n }\n }\n }\n }\n // Pulizia delle colonne ibride: rinomina con copia dati e rimozione dei campi applicativi.\n // Gira dopo l'aggiunta delle colonne canoniche, cosi il target del rename esiste sempre.\n for (const rename of accessiRenamedColumns) {\n const hasLegacy = columns.some(row => row.TABLE_NAME === rename.table && row.COLUMN_NAME === rename.from);\n if (!hasLegacy) continue;\n await this.execute(options, `UPDATE ${rename.table} SET ${rename.to} = ${rename.from} WHERE ${rename.to} IS NULL AND ${rename.from} IS NOT NULL`);\n await this.execute(options, `ALTER TABLE ${rename.table} DROP ${rename.from}`);\n }\n // Copie tra tabelle diverse (es. telefono legacy UTENTI.CELLUTE -> UTENTI_CONFIG.CELLULARE).\n for (const copy of accessiColumnCopies) {\n const hasSource = columns.some(row => row.TABLE_NAME === copy.sourceTable && row.COLUMN_NAME === copy.sourceColumn);\n if (!hasSource) continue;\n await this.execute(\n options,\n `UPDATE ${copy.targetTable} SET ${copy.targetColumn} = (SELECT S.${copy.sourceColumn} FROM ${copy.sourceTable} S WHERE S.${copy.joinColumn} = ${copy.targetTable}.${copy.joinColumn}) WHERE ${copy.targetColumn} IS NULL AND EXISTS (SELECT 1 FROM ${copy.sourceTable} S WHERE S.${copy.joinColumn} = ${copy.targetTable}.${copy.joinColumn} AND S.${copy.sourceColumn} IS NOT NULL)`,\n );\n }\n for (const [table, obsoleteColumns] of Object.entries(accessiObsoleteColumns)) {\n for (const column of obsoleteColumns) {\n if (columns.some(row => row.TABLE_NAME === table && row.COLUMN_NAME === column)) {\n await this.execute(options, `ALTER TABLE ${table} DROP ${column}`);\n }\n }\n }\n // Schema esatto: elimina ogni colonna estranea rimasta nelle tabelle di proprieta Accessi, cosi\n // il database converge a \"niente in piu, niente in meno\". Ricalcola le colonne dopo rename/copie/obsolete.\n const columnsAfterCleanup = await this.columns(options);\n for (const [table, schema] of Object.entries(accessiTables)) {\n for (const row of columnsAfterCleanup.filter(row => row.TABLE_NAME === table)) {\n const name = String(row.COLUMN_NAME);\n if (!(name in schema.columns)) {\n await this.execute(options, `ALTER TABLE ${table} DROP ${name}`);\n }\n }\n }\n const constraints = this.groups(await this.constraints(options));\n for (const [table, schema] of Object.entries(accessiTables)) {\n const primary = constraints.find(rows => rows[0].TABLE_NAME === table && rows[0].KIND === 'PRIMARY KEY');\n if (primary && !this.sameColumns(primary, schema.primaryKey)) throw new Error(`${table}: chiave primaria esistente incompatibile; nessun vincolo viene eliminato automaticamente.`);\n if (!primary) await this.execute(options, `ALTER TABLE ${table} ADD CONSTRAINT PK_${table} PRIMARY KEY (${schema.primaryKey.join(', ')})`);\n }\n // Only preserve provider namespaces already referenced by historical SSO identities.\n await this.execute(options, `INSERT INTO SSO_PROVIDER (PROVIDER, DESCRIZIONE, FLGATTIVO)\n SELECT DISTINCT I.PROVIDER, I.PROVIDER, 1 FROM UTENTI_IDENTITA_EXT I\n WHERE NOT EXISTS (SELECT 1 FROM SSO_PROVIDER P WHERE P.PROVIDER = I.PROVIDER)`);\n for (const fk of accessiForeignKeys) {\n const existing = constraints.find(rows => rows[0].KIND === 'FOREIGN KEY' && rows[0].TABLE_NAME === fk.table && this.sameColumns(rows, [fk.column]));\n if (existing) {\n // Una FK sulla stessa colonna ma verso un target/regola diverso non e compatibile:\n // correggere il target cambiando semantica e va segnalato, non ignorato.\n const deleteRuleOk = fk.cascade\n ? existing[0].DELETE_RULE === 'CASCADE'\n : ['NO ACTION', 'RESTRICT'].includes(String(existing[0].DELETE_RULE));\n if (existing[0].TARGET_TABLE !== fk.target || existing[0].TARGET_COLUMN !== fk.targetColumn || !deleteRuleOk) {\n throw new Error(`${fk.name}: FK esistente su ${fk.table}.${fk.column} incompatibile (target ${existing[0].TARGET_TABLE}.${existing[0].TARGET_COLUMN}, delete rule ${existing[0].DELETE_RULE}); correggerla esplicitamente.`);\n }\n continue;\n }\n await this.execute(options, `ALTER TABLE ${fk.table} ADD CONSTRAINT ${fk.name} FOREIGN KEY (${fk.column}) REFERENCES ${fk.target} (${fk.targetColumn})${fk.cascade ? ' ON DELETE CASCADE' : ''}`);\n }\n for (const check of accessiChecks) {\n if (!checks.some(row => row.TABLE_NAME === check.table && this.sameCheck(String(row.CHECK_SOURCE), check.expression))) {\n await this.execute(options, `ALTER TABLE ${check.table} ADD CONSTRAINT ${check.name} CHECK (${check.expression})`);\n }\n }\n const indexes = await this.indexes(options);\n for (const index of accessiIndexes) {\n if (!indexes.some(rows => rows[0].TABLE_NAME === index.table && !Number(rows[0].INACTIVE) && this.sameColumns(rows, index.columns))) {\n if (indexes.some(rows => rows[0].NAME === index.name)) throw new Error(`${index.name}: indice esistente incompatibile o inattivo; correggerlo esplicitamente.`);\n await this.execute(options, `CREATE INDEX ${index.name} ON ${index.table} (${index.columns.join(', ')})`);\n }\n }\n for (const generator of accessiGenerators) {\n if (!(await this.sequenceExists(options, generator.name))) {\n // Firebird 2.5 non conosce CREATE SEQUENCE: usa CREATE GENERATOR. Da 3.0 si usa la sintassi standard.\n await this.execute(options, engineMajor >= 3 ? `CREATE SEQUENCE ${generator.name}` : `CREATE GENERATOR ${generator.name}`);\n }\n // Advance by a positive delta only: do not reset an existing sequence or reuse an allocated value.\n await this.execute(options, `EXECUTE BLOCK AS DECLARE VARIABLE MAX_ID BIGINT; DECLARE VARIABLE CURRENT_ID BIGINT; DECLARE VARIABLE NEXT_ID BIGINT;\n BEGIN SELECT COALESCE(MAX(${generator.column}), 0) FROM ${generator.table} INTO :MAX_ID;\n CURRENT_ID = GEN_ID(${generator.name}, 0);\n IF (MAX_ID > CURRENT_ID) THEN NEXT_ID = GEN_ID(${generator.name}, MAX_ID - CURRENT_ID); END`);\n }\n const triggers = await this.triggers(options);\n for (const trigger of accessiTriggers) {\n if (!triggers.some(row => this.compatibleTrigger(row, trigger)) && !triggers.some(row => row.NAME === trigger.name)) {\n if (triggers.some(row => row.TABLE_NAME === trigger.table && Number(row.TRIGGER_TYPE) === trigger.type)) {\n throw new Error(`${trigger.table}: trigger ${trigger.event} personalizzato non riconosciuto; verificare le operazioni di ${trigger.name} prima di aggiungere trigger concorrenti.`);\n }\n await this.execute(options, `CREATE TRIGGER ${trigger.name} FOR ${trigger.table} ACTIVE ${trigger.event} POSITION 0 ${trigger.body}`);\n }\n }\n const report = await this.assertCompatible(options);\n if (report.warnings.length) this.logger.warning(`Schema Accessi: ${report.warnings.join('; ')}`);\n // The host's VersioneDB/DBVERSION values belong to the host and are never overwritten.\n await this.execute(options, 'UPDATE OR INSERT INTO PARAMETRI (CODPAR, DESPAR) VALUES (?, ?) MATCHING (CODPAR)', [ACCESSI_VERSION_KEY, ACCESSI_SCHEMA_VERSION]);\n this.logger.info(`Schema Accessi verificato: ${ACCESSI_SCHEMA_VERSION}.`);\n }\n}\n"]}
@@ -1,134 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.parseAccessiPreviousPublicKeys = parseAccessiPreviousPublicKeys;
4
- exports.createCatalogScriptsOptionsFromEnv = createCatalogScriptsOptionsFromEnv;
5
- exports.createAccessiOptionsFromEnv = createAccessiOptionsFromEnv;
6
- const Utilities_1 = require("../../Utilities");
7
- function getEnv(env, names, fallback) {
8
- var _a;
9
- const candidates = Array.isArray(names) ? names : [names];
10
- const value = (_a = candidates.map((name) => env[name]).find((candidate) => candidate !== undefined && candidate !== "")) !== null && _a !== void 0 ? _a : fallback;
11
- if (!value) {
12
- throw new Error(`Variabile ambiente mancante: ${candidates.join(" oppure ")}`);
13
- }
14
- return value;
15
- }
16
- function getOptionalBoolean(env, name, fallback) {
17
- const value = env[name];
18
- if (value === undefined) {
19
- return fallback;
20
- }
21
- return value.toLowerCase() === "true";
22
- }
23
- const JWT_ALGORITHMS = [
24
- "HS256", "HS384", "HS512",
25
- "RS256", "RS384", "RS512",
26
- "ES256", "ES384", "ES512",
27
- ];
28
- function getJwtAlgorithm(env) {
29
- var _a;
30
- const value = (_a = env.ACCESSI_JWT_ALGORITHM) === null || _a === void 0 ? void 0 : _a.trim().toUpperCase();
31
- return JWT_ALGORITHMS.find((algorithm) => algorithm === value);
32
- }
33
- /** Normalizza una chiave PEM incollata in una variabile a riga singola. */
34
- function normalizePem(value) {
35
- return value.includes('\\n') ? value.replace(/\\n/g, '\n') : value;
36
- }
37
- /**
38
- * Legge `ACCESSI_JWT_PREVIOUS_PUBLIC_KEYS`: array JSON di chiavi pubbliche.
39
- *
40
- * Sono accettate sia stringhe PEM sia oggetti `{ publicKey, keyId, algorithm }`.
41
- * Gli errori indicano l'indice e il nome della variabile, perché una rotazione
42
- * malformata deve fermare il boot invece di lasciare token non verificabili.
43
- */
44
- function parseAccessiPreviousPublicKeys(value, variableName = 'ACCESSI_JWT_PREVIOUS_PUBLIC_KEYS') {
45
- if (value === undefined || value.trim() === '')
46
- return undefined;
47
- let parsed;
48
- try {
49
- parsed = JSON.parse(value);
50
- }
51
- catch (error) {
52
- const detail = error instanceof Error ? error.message : String(error);
53
- throw new Error(`${variableName}: JSON non valido (${detail}).`);
54
- }
55
- if (!Array.isArray(parsed)) {
56
- throw new Error(`${variableName}: atteso un array JSON di chiavi pubbliche.`);
57
- }
58
- return parsed.map((entry, index) => {
59
- const position = `${variableName}[${index}]`;
60
- if (typeof entry === 'string') {
61
- if (entry.trim() === '') {
62
- throw new Error(`${position}: chiave pubblica PEM vuota.`);
63
- }
64
- return { publicKey: normalizePem(entry) };
65
- }
66
- if (typeof entry !== 'object' || entry === null || Array.isArray(entry)) {
67
- throw new Error(`${position}: atteso un PEM oppure un oggetto { publicKey, keyId, algorithm }.`);
68
- }
69
- const record = entry;
70
- if (typeof record.publicKey !== 'string' || record.publicKey.trim() === '') {
71
- throw new Error(`${position}: publicKey deve essere una stringa PEM non vuota.`);
72
- }
73
- if (record.keyId !== undefined && (typeof record.keyId !== 'string' || record.keyId.trim() === '')) {
74
- throw new Error(`${position}: keyId, se presente, deve essere una stringa non vuota.`);
75
- }
76
- const algorithm = typeof record.algorithm === 'string' ? record.algorithm.trim().toUpperCase() : undefined;
77
- if (algorithm !== undefined && !JWT_ALGORITHMS.some((supported) => supported === algorithm)) {
78
- throw new Error(`${position}: algoritmo ${algorithm} non supportato.`);
79
- }
80
- return Object.assign(Object.assign({ publicKey: normalizePem(record.publicKey) }, (typeof record.keyId === 'string' ? { keyId: record.keyId.trim() } : {})), (algorithm ? { algorithm: algorithm } : {}));
81
- });
82
- }
83
- /** Catalog migrations lette dall'ambiente: cartella in ACCESSI_CATALOG_FOLDER. */
84
- function createCatalogScriptsOptionsFromEnv(env = process.env) {
85
- const folder = env.ACCESSI_CATALOG_FOLDER;
86
- if (!folder) {
87
- return undefined;
88
- }
89
- const policy = env.ACCESSI_CATALOG_CHECKSUM_POLICY;
90
- const checksumPolicy = policy === 'warn' || policy === 'reapply' || policy === 'error' ? policy : undefined;
91
- return {
92
- enabled: true,
93
- folder,
94
- onChecksumMismatch: checksumPolicy,
95
- stopOnError: getOptionalBoolean(env, 'ACCESSI_CATALOG_STOP_ON_ERROR', true),
96
- };
97
- }
98
- /**
99
- * Costruisce `AccessiOptions` dalle variabili ambiente (stesse di runAccessiDbUpdate).
100
- *
101
- * `env` permette di leggere un file tenant senza mutare `process.env`.
102
- */
103
- function createAccessiOptionsFromEnv(env = process.env) {
104
- const databaseOptions = Utilities_1.DatabaseUtilities.createOption(getEnv(env, ["ACCESSI_DB_HOST", "ACCESSI_FIREBIRD_HOST"]), Number(getEnv(env, ["ACCESSI_DB_PORT", "ACCESSI_FIREBIRD_PORT"], "3050")), getEnv(env, ["ACCESSI_DB_DATABASE", "ACCESSI_FIREBIRD_DATABASE"]), getEnv(env, ["ACCESSI_DB_USER", "ACCESSI_FIREBIRD_USER"], "SYSDBA"), getEnv(env, ["ACCESSI_DB_PASSWORD", "ACCESSI_FIREBIRD_PASSWORD"], "masterkey"));
105
- // Firebird 2.5 richiede Legacy_Auth e non supporta la cifratura del wire: override opzionale via env.
106
- const wireCrypt = env.ACCESSI_DB_WIRE_CRYPT;
107
- const authPlugin = env.ACCESSI_DB_AUTH_PLUGIN;
108
- if (wireCrypt)
109
- databaseOptions.wireCrypt = wireCrypt;
110
- if (authPlugin)
111
- databaseOptions.pluginName = authPlugin;
112
- const previousPublicKeys = parseAccessiPreviousPublicKeys(env.ACCESSI_JWT_PREVIOUS_PUBLIC_KEYS);
113
- return Object.assign(Object.assign({ databaseOptions, confirmationEmailUrl: getEnv(env, "ACCESSI_CONFIRMATION_EMAIL_URL", "http://localhost"), confirmationEmailReturnUrl: getEnv(env, "ACCESSI_CONFIRMATION_RETURN_EMAIL_URL", "http://localhost"), confirmationEmailPrefix: env.ACCESSI_CONFIRMATION_EMAIL_PREFIX, customResetPage: env.ACCESSI_CUSTOM_RESET_PAGE, consoleApiBaseUrl: env.ACCESSI_CONSOLE_API_BASE_URL, publicBaseUrl: env.ACCESSI_PUBLIC_BASE_URL, encryptionKey: getEnv(env, "ACCESSI_ENCRYPTION_KEY", "1234567890ABCDEF"), mockDemoUser: getOptionalBoolean(env, "ACCESSI_MOCK_DEMO_USER", false), passwordExpiration: getOptionalBoolean(env, "ACCESSI_PASSWORD_EXPIRATION", false), autoUpdateDatabase: true, jwtOptions: Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({ secret: getEnv(env, "ACCESSI_JWT_SECRET", "local-accessi-update"), expiresIn: getEnv(env, "ACCESSI_JWT_EXPIRES", "24h") }, (env.ACCESSI_JWT_REFRESH_EXPIRES ? { refreshExpiresIn: env.ACCESSI_JWT_REFRESH_EXPIRES } : {})), (env.ACCESSI_JWT_ISSUER ? { issuer: env.ACCESSI_JWT_ISSUER } : {})), (env.ACCESSI_JWT_AUDIENCE ? { audience: env.ACCESSI_JWT_AUDIENCE } : {})), (getJwtAlgorithm(env) ? { algorithm: getJwtAlgorithm(env) } : {})), (env.ACCESSI_JWT_PRIVATE_KEY ? { privateKey: env.ACCESSI_JWT_PRIVATE_KEY } : {})), (env.ACCESSI_JWT_PUBLIC_KEY ? { publicKey: env.ACCESSI_JWT_PUBLIC_KEY } : {})), (env.ACCESSI_JWT_KEY_ID ? { keyId: env.ACCESSI_JWT_KEY_ID } : {})), (env.ACCESSI_JWKS_PATH ? { jwksPath: env.ACCESSI_JWKS_PATH } : {})), (previousPublicKeys ? { previousPublicKeys } : {})), emailOptions: {
114
- host: getEnv(env, "ACCESSI_EMAIL_HOST", "localhost"),
115
- port: Number(getEnv(env, "ACCESSI_EMAIL_PORT", "25")),
116
- secure: getOptionalBoolean(env, "ACCESSI_EMAIL_SECURE", false),
117
- requireTLS: getOptionalBoolean(env, "ACCESSI_EMAIL_REQUIRE_TLS", false),
118
- tls: {
119
- rejectUnauthorized: getOptionalBoolean(env, "ACCESSI_EMAIL_TLS_REJECT_UNAUTHORIZED", false),
120
- },
121
- from: getEnv(env, "ACCESSI_EMAIL_FROM", "noreply@example.local"),
122
- auth: {
123
- user: getEnv(env, "ACCESSI_EMAIL_USER", "local-user"),
124
- pass: getEnv(env, "ACCESSI_EMAIL_PASSWORD", "local-password"),
125
- },
126
- } }, (env.ACCESSI_CONSOLE_ENTRY_TTL_MS
127
- ? {
128
- consoleEntry: {
129
- ttlMs: Number(env.ACCESSI_CONSOLE_ENTRY_TTL_MS),
130
- },
131
- }
132
- : {})), { extensionFieldsOptions: [], catalogScripts: createCatalogScriptsOptionsFromEnv(env) });
133
- }
134
- //# sourceMappingURL=accessiOptionsFromEnv.js.map