emilsoftware-utilities 2.0.0-dev.84 → 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 (1230) 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 +5 -5
  53. package/dist/accessi/server/index.js +3 -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.js +1 -1
  59. package/dist/accessi/server/tenantRouter.js.map +1 -1
  60. package/dist/accessi/server/tenantStores.d.ts +6 -6
  61. package/dist/accessi/server/tenantStores.js +5 -5
  62. package/dist/accessi/server/tenantStores.js.map +1 -1
  63. package/dist/accessi/server/tenants.d.ts +8 -8
  64. package/dist/accessi/server/tenants.js +1 -1
  65. package/dist/accessi/server/tenants.js.map +1 -1
  66. package/dist/accessi-service/AccessiModule.js +120 -0
  67. package/dist/accessi-service/AccessiModule.js.map +1 -0
  68. package/dist/accessi-service/accessiRuntime.d.ts +45 -0
  69. package/dist/accessi-service/accessiRuntime.js +39 -0
  70. package/dist/accessi-service/accessiRuntime.js.map +1 -0
  71. package/dist/accessi-service/console/accessiFetch.js.map +1 -0
  72. package/dist/accessi-service/console/console.js +4875 -0
  73. package/dist/accessi-service/console/console.js.map +1 -0
  74. package/dist/accessi-service/console/generated/emilsoftware-utilities.js.map +1 -0
  75. package/dist/accessi-service/console/generated/model/abilitazioneMenu.js.map +1 -0
  76. package/dist/accessi-service/console/generated/model/abilitazioneMenuTipoAbilitazione.js.map +1 -0
  77. package/dist/accessi-service/console/generated/model/accessiIntrospectionResultDto.js.map +1 -0
  78. package/dist/accessi-service/console/generated/model/actionResponse.js.map +1 -0
  79. package/dist/accessi-service/console/generated/model/adminBootstrapStatusResponse.js.map +1 -0
  80. package/dist/accessi-service/console/generated/model/adminBootstrapStatusResult.js.map +1 -0
  81. package/dist/accessi-service/console/generated/model/assignPermissionsToUserRequest.js.map +1 -0
  82. package/dist/accessi-service/console/generated/model/assignRolesToUserRequest.js.map +1 -0
  83. package/dist/accessi-service/console/generated/model/authenticatedTokenPayloadDto.js.map +1 -0
  84. package/dist/accessi-service/console/generated/model/authenticatedUserPayloadDto.js.map +1 -0
  85. package/dist/accessi-service/console/generated/model/bootstrapAdminRequest.js.map +1 -0
  86. package/dist/accessi-service/console/generated/model/bootstrapAdminResponse.js.map +1 -0
  87. package/dist/accessi-service/console/generated/model/bootstrapAdminResultDto.js.map +1 -0
  88. package/dist/accessi-service/console/generated/model/confirmResetPasswordRequest.js.map +1 -0
  89. package/dist/accessi-service/console/generated/model/consoleEntryExchangeRequest.js.map +1 -0
  90. package/dist/accessi-service/console/generated/model/consoleEntrySessionResponse.js.map +1 -0
  91. package/dist/accessi-service/console/generated/model/consoleEntrySessionResult.js.map +1 -0
  92. package/dist/accessi-service/console/generated/model/consoleEntryTicketResponse.js.map +1 -0
  93. package/dist/accessi-service/console/generated/model/consoleEntryTicketResult.js.map +1 -0
  94. package/dist/accessi-service/console/generated/model/consoleEntryTokenResult.js.map +1 -0
  95. package/dist/accessi-service/console/generated/model/createFederatedIdentityRequest.js.map +1 -0
  96. package/dist/accessi-service/console/generated/model/createFederatedProviderRequest.js.map +1 -0
  97. package/dist/accessi-service/console/generated/model/createFederatedUserRequest.js.map +1 -0
  98. package/dist/accessi-service/console/generated/model/createFilterTypeRequest.js.map +1 -0
  99. package/dist/accessi-service/console/generated/model/createFilterTypeRequestFlgEnabled.js.map +1 -0
  100. package/dist/accessi-service/console/generated/model/createMenuGroupRequest.js.map +1 -0
  101. package/dist/accessi-service/console/generated/model/createMenuRequest.js.map +1 -0
  102. package/dist/accessi-service/console/generated/model/createMenuTypeRequest.js.map +1 -0
  103. package/dist/accessi-service/console/generated/model/createScopeRequest.js.map +1 -0
  104. package/dist/accessi-service/console/generated/model/createServiceTokenRequest.js.map +1 -0
  105. package/dist/accessi-service/console/generated/model/createServiceTokenResponse.js.map +1 -0
  106. package/dist/accessi-service/console/generated/model/errorResponse.js.map +1 -0
  107. package/dist/accessi-service/console/generated/model/exchangeFederatedIdentityRequest.js.map +1 -0
  108. package/dist/accessi-service/console/generated/model/exportAuditOrder.js.map +1 -0
  109. package/dist/accessi-service/console/generated/model/exportAuditParams.js.map +1 -0
  110. package/dist/accessi-service/console/generated/model/federatedAuthenticationResultDto.js.map +1 -0
  111. package/dist/accessi-service/console/generated/model/federatedExchangeResponse.js.map +1 -0
  112. package/dist/accessi-service/console/generated/model/federatedIdentityListResponse.js.map +1 -0
  113. package/dist/accessi-service/console/generated/model/federatedIdentityResponse.js.map +1 -0
  114. package/dist/accessi-service/console/generated/model/federatedIdentityResponseDto.js.map +1 -0
  115. package/dist/accessi-service/console/generated/model/federatedProviderListResponse.js.map +1 -0
  116. package/dist/accessi-service/console/generated/model/federatedProviderResponse.js.map +1 -0
  117. package/dist/accessi-service/console/generated/model/federatedProviderResponseDto.js.map +1 -0
  118. package/dist/accessi-service/console/generated/model/filtriUtente.js.map +1 -0
  119. package/dist/accessi-service/console/generated/model/getFiltriResponse.js.map +1 -0
  120. package/dist/accessi-service/console/generated/model/getFiltriUtenteParams.js.map +1 -0
  121. package/dist/accessi-service/console/generated/model/getFiltriUtenteResponse.js.map +1 -0
  122. package/dist/accessi-service/console/generated/model/getGroupsWithMenusParams.js.map +1 -0
  123. package/dist/accessi-service/console/generated/model/getGroupsWithMenusResponse.js.map +1 -0
  124. package/dist/accessi-service/console/generated/model/getMenuScopesResponse.js.map +1 -0
  125. package/dist/accessi-service/console/generated/model/getMenuTypesResponse.js.map +1 -0
  126. package/dist/accessi-service/console/generated/model/getMenusParams.js.map +1 -0
  127. package/dist/accessi-service/console/generated/model/getMenusResponse.js.map +1 -0
  128. package/dist/accessi-service/console/generated/model/getRolesResponse.js.map +1 -0
  129. package/dist/accessi-service/console/generated/model/getSchemaResponse.js.map +1 -0
  130. package/dist/accessi-service/console/generated/model/getScopesResponse.js.map +1 -0
  131. package/dist/accessi-service/console/generated/model/getServiceTokensParams.js.map +1 -0
  132. package/dist/accessi-service/console/generated/model/getServiceTokensResponse.js.map +1 -0
  133. package/dist/accessi-service/console/generated/model/getUserByTokenRequest.js.map +1 -0
  134. package/dist/accessi-service/console/generated/model/getUserByTokenResponse.js.map +1 -0
  135. package/dist/accessi-service/console/generated/model/getUserRolesAndGrantsParams.js.map +1 -0
  136. package/dist/accessi-service/console/generated/model/getUsersParams.js.map +1 -0
  137. package/dist/accessi-service/console/generated/model/getUsersResponse.js.map +1 -0
  138. package/dist/accessi-service/console/generated/model/getUsersResult.js.map +1 -0
  139. package/dist/accessi-service/console/generated/model/getUsersResultExtensionFields.js.map +1 -0
  140. package/dist/accessi-service/console/generated/model/groupWithMenusEntity.js.map +1 -0
  141. package/dist/accessi-service/console/generated/model/index.js.map +1 -0
  142. package/dist/accessi-service/console/generated/model/introspectAccessiTokenRequest.js.map +1 -0
  143. package/dist/accessi-service/console/generated/model/introspectAccessiTokenResponse.js.map +1 -0
  144. package/dist/accessi-service/console/generated/model/issuedServiceTokenDto.js.map +1 -0
  145. package/dist/accessi-service/console/generated/model/loginAsRequest.js.map +1 -0
  146. package/dist/accessi-service/console/generated/model/loginAsResponse.js.map +1 -0
  147. package/dist/accessi-service/console/generated/model/loginAsResult.js.map +1 -0
  148. package/dist/accessi-service/console/generated/model/loginRequest.js.map +1 -0
  149. package/dist/accessi-service/console/generated/model/loginResponse.js.map +1 -0
  150. package/dist/accessi-service/console/generated/model/loginResult.js.map +1 -0
  151. package/dist/accessi-service/console/generated/model/loginResultExtensionFields.js.map +1 -0
  152. package/dist/accessi-service/console/generated/model/loginResultPasswordRequired.js.map +1 -0
  153. package/dist/accessi-service/console/generated/model/menuEntity.js.map +1 -0
  154. package/dist/accessi-service/console/generated/model/menuTypeEntity.js.map +1 -0
  155. package/dist/accessi-service/console/generated/model/passwordExpiredResponse.js.map +1 -0
  156. package/dist/accessi-service/console/generated/model/permission.js.map +1 -0
  157. package/dist/accessi-service/console/generated/model/publicRegisterRequest.js.map +1 -0
  158. package/dist/accessi-service/console/generated/model/queryAuditOrder.js.map +1 -0
  159. package/dist/accessi-service/console/generated/model/queryAuditParams.js.map +1 -0
  160. package/dist/accessi-service/console/generated/model/refreshTokenRequest.js.map +1 -0
  161. package/dist/accessi-service/console/generated/model/refreshTokenResponse.js.map +1 -0
  162. package/dist/accessi-service/console/generated/model/refreshTokenResult.js.map +1 -0
  163. package/dist/accessi-service/console/generated/model/registerRequest.js.map +1 -0
  164. package/dist/accessi-service/console/generated/model/registerResponse.js.map +1 -0
  165. package/dist/accessi-service/console/generated/model/resendTwoFactorRequest.js.map +1 -0
  166. package/dist/accessi-service/console/generated/model/revokeTokenRequest.js.map +1 -0
  167. package/dist/accessi-service/console/generated/model/role.js.map +1 -0
  168. package/dist/accessi-service/console/generated/model/ruoliMenu.js.map +1 -0
  169. package/dist/accessi-service/console/generated/model/ruoliMenuTipoAbilitazione.js.map +1 -0
  170. package/dist/accessi-service/console/generated/model/schemaDdlResult.js.map +1 -0
  171. package/dist/accessi-service/console/generated/model/schemaDdlSection.js.map +1 -0
  172. package/dist/accessi-service/console/generated/model/scopeEntity.js.map +1 -0
  173. package/dist/accessi-service/console/generated/model/sendResetPasswordEmailRequest.js.map +1 -0
  174. package/dist/accessi-service/console/generated/model/serveResetPasswordPageParams.js.map +1 -0
  175. package/dist/accessi-service/console/generated/model/serviceTokenDto.js.map +1 -0
  176. package/dist/accessi-service/console/generated/model/setMenuScopesRequest.js.map +1 -0
  177. package/dist/accessi-service/console/generated/model/setPasswordLoginPolicyRequest.js.map +1 -0
  178. package/dist/accessi-service/console/generated/model/setScopeMenusRequest.js.map +1 -0
  179. package/dist/accessi-service/console/generated/model/setStatoRegistrazioneDto.js.map +1 -0
  180. package/dist/accessi-service/console/generated/model/setStatoRegistrazioneDtoStatoRegistrazione.js.map +1 -0
  181. package/dist/accessi-service/console/generated/model/setUserPasswordRequest.js.map +1 -0
  182. package/dist/accessi-service/console/generated/model/status.js.map +1 -0
  183. package/dist/accessi-service/console/generated/model/tipoFiltro.js.map +1 -0
  184. package/dist/accessi-service/console/generated/model/tipoFiltroFlgEnabled.js.map +1 -0
  185. package/dist/accessi-service/console/generated/model/tokenResult.js.map +1 -0
  186. package/dist/accessi-service/console/generated/model/tokenResultType.js.map +1 -0
  187. package/dist/accessi-service/console/generated/model/twoFactorChallengeDto.js.map +1 -0
  188. package/dist/accessi-service/console/generated/model/twoFactorChallengeDtoMethod.js.map +1 -0
  189. package/dist/accessi-service/console/generated/model/twoFactorChallengeDtoTwoFactorRequired.js.map +1 -0
  190. package/dist/accessi-service/console/generated/model/updateEnabledStatusRequest.js.map +1 -0
  191. package/dist/accessi-service/console/generated/model/updateFederatedIdentityRequest.js.map +1 -0
  192. package/dist/accessi-service/console/generated/model/updateFederatedProviderRequest.js.map +1 -0
  193. package/dist/accessi-service/console/generated/model/updateFilterTypeRequest.js.map +1 -0
  194. package/dist/accessi-service/console/generated/model/updateFilterTypeRequestFlgEnabled.js.map +1 -0
  195. package/dist/accessi-service/console/generated/model/updateMenuGroupRequest.js.map +1 -0
  196. package/dist/accessi-service/console/generated/model/updateMenuRequest.js.map +1 -0
  197. package/dist/accessi-service/console/generated/model/updateMenuTypeRequest.js.map +1 -0
  198. package/dist/accessi-service/console/generated/model/updateScopeRequest.js.map +1 -0
  199. package/dist/accessi-service/console/generated/model/userDto.js.map +1 -0
  200. package/dist/accessi-service/console/generated/model/userDtoStatoRegistrazione.js.map +1 -0
  201. package/dist/accessi-service/console/generated/model/userGrantsDto.js.map +1 -0
  202. package/dist/accessi-service/console/generated/model/userGrantsResponse.js.map +1 -0
  203. package/dist/accessi-service/console/generated/model/verifyTwoFactorRequest.js.map +1 -0
  204. package/dist/accessi-service/console/help.js.map +1 -0
  205. package/dist/accessi-service/console/wiki.js +1533 -0
  206. package/dist/accessi-service/console/wiki.js.map +1 -0
  207. package/dist/accessi-service/controllers/AccessiAuditController.d.ts +16 -0
  208. package/dist/accessi-service/controllers/AccessiAuditController.js +155 -0
  209. package/dist/accessi-service/controllers/AccessiAuditController.js.map +1 -0
  210. package/dist/accessi-service/controllers/AccessiConsoleController.js +169 -0
  211. package/dist/accessi-service/controllers/AccessiConsoleController.js.map +1 -0
  212. package/dist/accessi-service/controllers/AccessiIntrospectionController.d.ts +17 -0
  213. package/dist/accessi-service/controllers/AccessiIntrospectionController.js +102 -0
  214. package/dist/accessi-service/controllers/AccessiIntrospectionController.js.map +1 -0
  215. package/dist/accessi-service/controllers/AuthController.d.ts +24 -0
  216. package/dist/accessi-service/controllers/AuthController.js +564 -0
  217. package/dist/accessi-service/controllers/AuthController.js.map +1 -0
  218. package/dist/accessi-service/controllers/ConfiguratorController.d.ts +9 -0
  219. package/dist/accessi-service/controllers/ConfiguratorController.js +136 -0
  220. package/dist/accessi-service/controllers/ConfiguratorController.js.map +1 -0
  221. package/dist/accessi-service/controllers/ConsoleEntryController.d.ts +16 -0
  222. package/dist/accessi-service/controllers/ConsoleEntryController.js +159 -0
  223. package/dist/accessi-service/controllers/ConsoleEntryController.js.map +1 -0
  224. package/dist/accessi-service/controllers/EmailController.d.ts +11 -0
  225. package/dist/accessi-service/controllers/EmailController.js +112 -0
  226. package/dist/accessi-service/controllers/EmailController.js.map +1 -0
  227. package/dist/accessi-service/controllers/FiltriController.d.ts +20 -0
  228. package/dist/accessi-service/controllers/FiltriController.js +303 -0
  229. package/dist/accessi-service/controllers/FiltriController.js.map +1 -0
  230. package/dist/accessi-service/controllers/PermissionController.d.ts +45 -0
  231. package/dist/accessi-service/controllers/PermissionController.js +862 -0
  232. package/dist/accessi-service/controllers/PermissionController.js.map +1 -0
  233. package/dist/accessi-service/controllers/SchemaController.d.ts +9 -0
  234. package/dist/accessi-service/controllers/SchemaController.js +79 -0
  235. package/dist/accessi-service/controllers/SchemaController.js.map +1 -0
  236. package/dist/accessi-service/controllers/ServiceTokenController.d.ts +23 -0
  237. package/dist/accessi-service/controllers/ServiceTokenController.js +176 -0
  238. package/dist/accessi-service/controllers/ServiceTokenController.js.map +1 -0
  239. package/dist/accessi-service/controllers/UserController.d.ts +39 -0
  240. package/dist/accessi-service/controllers/UserController.js +724 -0
  241. package/dist/accessi-service/controllers/UserController.js.map +1 -0
  242. package/dist/accessi-service/database-updates/AccessiCatalogMigrator.js.map +1 -0
  243. package/dist/accessi-service/database-updates/AccessiDatabaseUpdater.js.map +1 -0
  244. package/dist/accessi-service/database-updates/accessiOptionsFromEnv.js +347 -0
  245. package/dist/accessi-service/database-updates/accessiOptionsFromEnv.js.map +1 -0
  246. package/dist/accessi-service/database-updates/accessiSchema.js.map +1 -0
  247. package/dist/accessi-service/database-updates/menuScopeSeed.js.map +1 -0
  248. package/dist/accessi-service/database-updates/menuScopeSeeder.js.map +1 -0
  249. package/dist/accessi-service/database-updates/optionalColumns.js.map +1 -0
  250. package/dist/accessi-service/database-updates/runAccessiCatalogMigrations.js.map +1 -0
  251. package/dist/accessi-service/database-updates/runAccessiDbUpdate.js.map +1 -0
  252. package/dist/accessi-service/dtos/Abilitazione.js.map +1 -0
  253. package/dist/accessi-service/dtos/AbilitazioneMenu.js.map +1 -0
  254. package/dist/accessi-service/dtos/AdminBootstrapDtos.js.map +1 -0
  255. package/dist/accessi-service/dtos/AssignPermissionsToUserRequest.js.map +1 -0
  256. package/dist/accessi-service/dtos/AssignRolesToUserRequest.js.map +1 -0
  257. package/dist/accessi-service/dtos/AuditDtos.js.map +1 -0
  258. package/dist/accessi-service/dtos/AuthenticatedUserPayloadDto.js.map +1 -0
  259. package/dist/accessi-service/dtos/BaseResponse.js.map +1 -0
  260. package/dist/accessi-service/dtos/CatalogDtos.js.map +1 -0
  261. package/dist/accessi-service/dtos/ConfirmResetPasswordRequest.js.map +1 -0
  262. package/dist/accessi-service/dtos/ConsoleEntryDtos.js.map +1 -0
  263. package/dist/accessi-service/dtos/FederatedExchangeDtos.js.map +1 -0
  264. package/dist/accessi-service/dtos/FederatedIdentityDtos.js.map +1 -0
  265. package/dist/accessi-service/dtos/FiltriUtente.js.map +1 -0
  266. package/dist/accessi-service/dtos/GetGroupsWithMenusResponse.js.map +1 -0
  267. package/dist/accessi-service/dtos/GetMenusResponse.js.map +1 -0
  268. package/dist/accessi-service/dtos/GetRolesResponse.js.map +1 -0
  269. package/dist/accessi-service/dtos/GetUserByTokenRequest.js.map +1 -0
  270. package/dist/accessi-service/dtos/GetUserByTokenResponse.js.map +1 -0
  271. package/dist/accessi-service/dtos/GetUsersResponse.js.map +1 -0
  272. package/dist/accessi-service/dtos/IntrospectionDtos.js.map +1 -0
  273. package/dist/accessi-service/dtos/LoginAsDtos.js.map +1 -0
  274. package/dist/accessi-service/dtos/LoginRequest.js.map +1 -0
  275. package/dist/accessi-service/dtos/LoginResponse.js.map +1 -0
  276. package/dist/accessi-service/dtos/MenuItem.js.map +1 -0
  277. package/dist/accessi-service/dtos/Permission.js.map +1 -0
  278. package/dist/accessi-service/dtos/PublicRegisterRequest.js.map +1 -0
  279. package/dist/accessi-service/dtos/RefreshTokenDtos.js.map +1 -0
  280. package/dist/accessi-service/dtos/RegisterRequest.js.map +1 -0
  281. package/dist/accessi-service/dtos/RegisterResponse.js.map +1 -0
  282. package/dist/accessi-service/dtos/RevokeTokenRequest.js.map +1 -0
  283. package/dist/accessi-service/dtos/Role.js.map +1 -0
  284. package/dist/accessi-service/dtos/RuoliMenu.js.map +1 -0
  285. package/dist/accessi-service/dtos/SchemaDtos.js.map +1 -0
  286. package/dist/accessi-service/dtos/ScopeDtos.js.map +1 -0
  287. package/dist/accessi-service/dtos/SendResetPasswordEmailRequest.js.map +1 -0
  288. package/dist/accessi-service/dtos/ServiceToken.js.map +1 -0
  289. package/dist/accessi-service/dtos/SetStatoRegistrazione.js.map +1 -0
  290. package/dist/accessi-service/dtos/SetUserPasswordRequest.js.map +1 -0
  291. package/dist/accessi-service/dtos/StatoRegistrazione.js.map +1 -0
  292. package/dist/accessi-service/dtos/TipoAbilitazione.js.map +1 -0
  293. package/dist/accessi-service/dtos/TipoFiltro.js.map +1 -0
  294. package/dist/accessi-service/dtos/TokenResult.js.map +1 -0
  295. package/dist/accessi-service/dtos/TwoFactorDtos.js.map +1 -0
  296. package/dist/accessi-service/dtos/UpdateEnabledStatusRequest.js.map +1 -0
  297. package/dist/accessi-service/dtos/UserDto.js.map +1 -0
  298. package/dist/accessi-service/dtos/UserGrantsDto.js.map +1 -0
  299. package/dist/accessi-service/dtos/UserGrantsResponse.js.map +1 -0
  300. package/dist/accessi-service/dtos/index.js.map +1 -0
  301. package/dist/accessi-service/federated-auth/FederatedAuthController.d.ts +33 -0
  302. package/dist/accessi-service/federated-auth/FederatedAuthController.js +373 -0
  303. package/dist/accessi-service/federated-auth/FederatedAuthController.js.map +1 -0
  304. package/dist/accessi-service/federated-auth/FederatedAuthExchangeController.d.ts +15 -0
  305. package/dist/accessi-service/federated-auth/FederatedAuthExchangeController.js +85 -0
  306. package/dist/accessi-service/federated-auth/FederatedAuthExchangeController.js.map +1 -0
  307. package/dist/accessi-service/federated-auth/FederatedAuthService.d.ts +102 -0
  308. package/dist/accessi-service/federated-auth/FederatedAuthService.js +472 -0
  309. package/dist/accessi-service/federated-auth/FederatedAuthService.js.map +1 -0
  310. package/dist/accessi-service/federated-auth/FederatedAuthTypes.d.ts +53 -0
  311. package/dist/accessi-service/federated-auth/FederatedAuthTypes.js.map +1 -0
  312. package/dist/accessi-service/health/nest.js.map +1 -0
  313. package/dist/accessi-service/health/readiness.js.map +1 -0
  314. package/dist/accessi-service/index.d.ts +88 -0
  315. package/dist/accessi-service/index.js +304 -0
  316. package/dist/accessi-service/index.js.map +1 -0
  317. package/dist/accessi-service/jwt/JwtSimpleGuard.d.ts +9 -0
  318. package/dist/accessi-service/jwt/JwtSimpleGuard.js +88 -0
  319. package/dist/accessi-service/jwt/JwtSimpleGuard.js.map +1 -0
  320. package/dist/accessi-service/middleware/accessiRequirements.js.map +1 -0
  321. package/dist/accessi-service/middleware/authenticateGen.d.ts +32 -0
  322. package/dist/accessi-service/middleware/authenticateGen.js +315 -0
  323. package/dist/accessi-service/middleware/authenticateGen.js.map +1 -0
  324. package/dist/accessi-service/observability/metrics.js.map +1 -0
  325. package/dist/accessi-service/observability/redisMetrics.js.map +1 -0
  326. package/dist/accessi-service/security/AccessiHttpExceptionFilter.js.map +1 -0
  327. package/dist/accessi-service/security/accessControl.js.map +1 -0
  328. package/dist/accessi-service/security/accessTokenRevocation.js.map +1 -0
  329. package/dist/accessi-service/security/accessiValidation.js.map +1 -0
  330. package/dist/accessi-service/security/adminBootstrap.js.map +1 -0
  331. package/dist/accessi-service/security/audit.js.map +1 -0
  332. package/dist/accessi-service/security/auditSinks.js.map +1 -0
  333. package/dist/accessi-service/security/authCookies.js.map +1 -0
  334. package/dist/accessi-service/security/authenticatedToken.d.ts +31 -0
  335. package/dist/accessi-service/security/authenticatedToken.js +79 -0
  336. package/dist/accessi-service/security/authenticatedToken.js.map +1 -0
  337. package/dist/accessi-service/security/consoleEntry.js.map +1 -0
  338. package/dist/accessi-service/security/edgeRateLimit.js.map +1 -0
  339. package/dist/accessi-service/security/emailConfiguration.js.map +1 -0
  340. package/dist/accessi-service/security/jwks.js.map +1 -0
  341. package/dist/accessi-service/security/jwksBootstrap.js.map +1 -0
  342. package/dist/accessi-service/security/jwtTokenOptions.js.map +1 -0
  343. package/dist/accessi-service/security/loginAs.js.map +1 -0
  344. package/dist/accessi-service/security/passwordPolicy.js.map +1 -0
  345. package/dist/accessi-service/security/passwordResetToken.js.map +1 -0
  346. package/dist/accessi-service/security/publicAuthRateLimit.js.map +1 -0
  347. package/dist/accessi-service/security/rateLimitStore.js.map +1 -0
  348. package/dist/accessi-service/security/refreshTokenRotation.js.map +1 -0
  349. package/dist/accessi-service/security/securityHeaders.js.map +1 -0
  350. package/dist/accessi-service/security/serviceTokenGuard.d.ts +27 -0
  351. package/dist/accessi-service/security/serviceTokenGuard.js +90 -0
  352. package/dist/accessi-service/security/serviceTokenGuard.js.map +1 -0
  353. package/dist/accessi-service/security/serviceTokenRateLimit.js.map +1 -0
  354. package/dist/accessi-service/security/sessionRevocation.js.map +1 -0
  355. package/dist/accessi-service/security/validateOptions.js.map +1 -0
  356. package/dist/accessi-service/services/admin-bootstrap-service/AdminBootstrapService.d.ts +33 -0
  357. package/dist/accessi-service/services/admin-bootstrap-service/AdminBootstrapService.js +106 -0
  358. package/dist/accessi-service/services/admin-bootstrap-service/AdminBootstrapService.js.map +1 -0
  359. package/dist/accessi-service/services/auth-service/AuthService.d.ts +127 -0
  360. package/dist/accessi-service/services/auth-service/AuthService.js +734 -0
  361. package/dist/accessi-service/services/auth-service/AuthService.js.map +1 -0
  362. package/dist/accessi-service/services/configurator-service/ConfiguratorService.js.map +1 -0
  363. package/dist/accessi-service/services/email-service/EmailService.js +439 -0
  364. package/dist/accessi-service/services/email-service/EmailService.js.map +1 -0
  365. package/dist/accessi-service/services/filtri-service/FiltriService.d.ts +26 -0
  366. package/dist/accessi-service/services/filtri-service/FiltriService.js +203 -0
  367. package/dist/accessi-service/services/filtri-service/FiltriService.js.map +1 -0
  368. package/dist/accessi-service/services/permission-service/PermissionService.d.ts +126 -0
  369. package/dist/accessi-service/services/permission-service/PermissionService.js +944 -0
  370. package/dist/accessi-service/services/permission-service/PermissionService.js.map +1 -0
  371. package/dist/accessi-service/services/schema-export-service/SchemaExportService.js.map +1 -0
  372. package/dist/accessi-service/services/service-token-service/ServiceTokenService.js.map +1 -0
  373. package/dist/accessi-service/services/two-factor-service/TwoFactorService.d.ts +27 -0
  374. package/dist/accessi-service/services/two-factor-service/TwoFactorService.js +175 -0
  375. package/dist/accessi-service/services/two-factor-service/TwoFactorService.js.map +1 -0
  376. package/dist/accessi-service/services/user-service/UserService.d.ts +112 -0
  377. package/dist/accessi-service/services/user-service/UserService.js +837 -0
  378. package/dist/accessi-service/services/user-service/UserService.js.map +1 -0
  379. package/dist/accessi-service/startupLog.js.map +1 -0
  380. package/dist/accessi-service/tenancy/tenantContext.js.map +1 -0
  381. package/dist/allegati-module/AllegatiModule.js +2 -2
  382. package/dist/allegati-module/AllegatiModule.js.map +1 -1
  383. package/dist/allegati-module/controllers/AllegatiController.d.ts +36 -0
  384. package/dist/allegati-module/controllers/AllegatiController.js +230 -0
  385. package/dist/allegati-module/controllers/AllegatiController.js.map +1 -0
  386. package/dist/allegati-module/dtos/AllegatoDto.js.map +1 -0
  387. package/dist/allegati-module/dtos/BaseResponse.js.map +1 -0
  388. package/dist/allegati-module/dtos/UploadSingleFileRequest.js.map +1 -0
  389. package/dist/allegati-module/dtos/index.js.map +1 -0
  390. package/dist/allegati-module/dtos/responses/DownloadAllegatoResponseDto.js.map +1 -0
  391. package/dist/allegati-module/dtos/responses/GetListResponse.js.map +1 -0
  392. package/dist/allegati-module/dtos/responses/UploadAllegatoResponseDto.js.map +1 -0
  393. package/dist/allegati-module/index.d.ts +1 -1
  394. package/dist/allegati-module/index.js +1 -1
  395. package/dist/allegati-module/index.js.map +1 -1
  396. package/dist/allegati-module/services/allegati-service/AllegatiService.d.ts +61 -0
  397. package/dist/allegati-module/services/allegati-service/AllegatiService.js.map +1 -0
  398. package/dist/emilsoftware-utilities-2.0.0-dev.85.tgz +0 -0
  399. package/dist/firebirdCompat.js +269 -0
  400. package/dist/firebirdCompat.js.map +1 -0
  401. package/dist/index.d.ts +3 -3
  402. package/dist/index.js +3 -3
  403. package/dist/index.js.map +1 -1
  404. package/dist/initEmilsoftwareModule.js +9 -9
  405. package/dist/initEmilsoftwareModule.js.map +1 -1
  406. package/dist/scripts/generateAccessiOpenApi.js +2 -2
  407. package/dist/scripts/generateAccessiOpenApi.js.map +1 -1
  408. package/dist/scripts/generateAccessiWiki.js +6 -4
  409. package/dist/scripts/generateAccessiWiki.js.map +1 -1
  410. package/docs/README.md +116 -0
  411. package/docs/audit.md +4 -0
  412. package/docs/auth-cookies.md +4 -0
  413. package/docs/conventions.md +86 -0
  414. package/docs/gateway-rate-limit.md +3 -0
  415. package/docs/import-migration.md +12 -6
  416. package/docs/jwt-key-rotation.md +3 -0
  417. package/docs/metrics.md +3 -0
  418. package/docs/multi-tenancy.md +6 -0
  419. package/docs/proxy-ip.md +8 -0
  420. package/docs/quickstart-frontend.md +217 -0
  421. package/docs/quickstart-resource-server.md +177 -0
  422. package/docs/quickstart-service.md +214 -0
  423. package/docs/redis-load-testing.md +4 -0
  424. package/docs/security-headers.md +3 -0
  425. package/docs/standalone-service.md +180 -54
  426. package/integration-prompt.md +38 -14
  427. package/package.json +24 -19
  428. package/README.MD +0 -323
  429. package/dist/accessi-module/AccessiModule.js +0 -120
  430. package/dist/accessi-module/AccessiModule.js.map +0 -1
  431. package/dist/accessi-module/Console/accessiFetch.js.map +0 -1
  432. package/dist/accessi-module/Console/console.js +0 -4173
  433. package/dist/accessi-module/Console/console.js.map +0 -1
  434. package/dist/accessi-module/Console/generated/emilsoftware-utilities.js.map +0 -1
  435. package/dist/accessi-module/Console/generated/model/abilitazioneMenu.js.map +0 -1
  436. package/dist/accessi-module/Console/generated/model/abilitazioneMenuTipoAbilitazione.js.map +0 -1
  437. package/dist/accessi-module/Console/generated/model/accessiIntrospectionResultDto.js.map +0 -1
  438. package/dist/accessi-module/Console/generated/model/actionResponse.js.map +0 -1
  439. package/dist/accessi-module/Console/generated/model/adminBootstrapStatusResponse.js.map +0 -1
  440. package/dist/accessi-module/Console/generated/model/adminBootstrapStatusResult.js.map +0 -1
  441. package/dist/accessi-module/Console/generated/model/assignPermissionsToUserRequest.js.map +0 -1
  442. package/dist/accessi-module/Console/generated/model/assignRolesToUserRequest.js.map +0 -1
  443. package/dist/accessi-module/Console/generated/model/authenticatedTokenPayloadDto.js.map +0 -1
  444. package/dist/accessi-module/Console/generated/model/authenticatedUserPayloadDto.js.map +0 -1
  445. package/dist/accessi-module/Console/generated/model/bootstrapAdminRequest.js.map +0 -1
  446. package/dist/accessi-module/Console/generated/model/bootstrapAdminResponse.js.map +0 -1
  447. package/dist/accessi-module/Console/generated/model/bootstrapAdminResultDto.js.map +0 -1
  448. package/dist/accessi-module/Console/generated/model/confirmResetPasswordRequest.js.map +0 -1
  449. package/dist/accessi-module/Console/generated/model/consoleEntryExchangeRequest.js.map +0 -1
  450. package/dist/accessi-module/Console/generated/model/consoleEntrySessionResponse.js.map +0 -1
  451. package/dist/accessi-module/Console/generated/model/consoleEntrySessionResult.js.map +0 -1
  452. package/dist/accessi-module/Console/generated/model/consoleEntryTicketResponse.js.map +0 -1
  453. package/dist/accessi-module/Console/generated/model/consoleEntryTicketResult.js.map +0 -1
  454. package/dist/accessi-module/Console/generated/model/consoleEntryTokenResult.js.map +0 -1
  455. package/dist/accessi-module/Console/generated/model/createFederatedIdentityRequest.js.map +0 -1
  456. package/dist/accessi-module/Console/generated/model/createFederatedProviderRequest.js.map +0 -1
  457. package/dist/accessi-module/Console/generated/model/createFederatedUserRequest.js.map +0 -1
  458. package/dist/accessi-module/Console/generated/model/createFilterTypeRequest.js.map +0 -1
  459. package/dist/accessi-module/Console/generated/model/createFilterTypeRequestFlgEnabled.js.map +0 -1
  460. package/dist/accessi-module/Console/generated/model/createMenuGroupRequest.js.map +0 -1
  461. package/dist/accessi-module/Console/generated/model/createMenuRequest.js.map +0 -1
  462. package/dist/accessi-module/Console/generated/model/createMenuTypeRequest.js.map +0 -1
  463. package/dist/accessi-module/Console/generated/model/createScopeRequest.js.map +0 -1
  464. package/dist/accessi-module/Console/generated/model/createServiceTokenRequest.js.map +0 -1
  465. package/dist/accessi-module/Console/generated/model/createServiceTokenResponse.js.map +0 -1
  466. package/dist/accessi-module/Console/generated/model/errorResponse.js.map +0 -1
  467. package/dist/accessi-module/Console/generated/model/exchangeFederatedIdentityRequest.js.map +0 -1
  468. package/dist/accessi-module/Console/generated/model/exportAuditOrder.js.map +0 -1
  469. package/dist/accessi-module/Console/generated/model/exportAuditParams.js.map +0 -1
  470. package/dist/accessi-module/Console/generated/model/federatedAuthenticationResultDto.js.map +0 -1
  471. package/dist/accessi-module/Console/generated/model/federatedExchangeResponse.js.map +0 -1
  472. package/dist/accessi-module/Console/generated/model/federatedIdentityListResponse.js.map +0 -1
  473. package/dist/accessi-module/Console/generated/model/federatedIdentityResponse.js.map +0 -1
  474. package/dist/accessi-module/Console/generated/model/federatedIdentityResponseDto.js.map +0 -1
  475. package/dist/accessi-module/Console/generated/model/federatedProviderListResponse.js.map +0 -1
  476. package/dist/accessi-module/Console/generated/model/federatedProviderResponse.js.map +0 -1
  477. package/dist/accessi-module/Console/generated/model/federatedProviderResponseDto.js.map +0 -1
  478. package/dist/accessi-module/Console/generated/model/filtriUtente.js.map +0 -1
  479. package/dist/accessi-module/Console/generated/model/getFiltriResponse.js.map +0 -1
  480. package/dist/accessi-module/Console/generated/model/getFiltriUtenteParams.js.map +0 -1
  481. package/dist/accessi-module/Console/generated/model/getFiltriUtenteResponse.js.map +0 -1
  482. package/dist/accessi-module/Console/generated/model/getGroupsWithMenusParams.js.map +0 -1
  483. package/dist/accessi-module/Console/generated/model/getGroupsWithMenusResponse.js.map +0 -1
  484. package/dist/accessi-module/Console/generated/model/getMenuScopesResponse.js.map +0 -1
  485. package/dist/accessi-module/Console/generated/model/getMenuTypesResponse.js.map +0 -1
  486. package/dist/accessi-module/Console/generated/model/getMenusParams.js.map +0 -1
  487. package/dist/accessi-module/Console/generated/model/getMenusResponse.js.map +0 -1
  488. package/dist/accessi-module/Console/generated/model/getRolesResponse.js.map +0 -1
  489. package/dist/accessi-module/Console/generated/model/getSchemaResponse.js.map +0 -1
  490. package/dist/accessi-module/Console/generated/model/getScopesResponse.js.map +0 -1
  491. package/dist/accessi-module/Console/generated/model/getServiceTokensParams.js.map +0 -1
  492. package/dist/accessi-module/Console/generated/model/getServiceTokensResponse.js.map +0 -1
  493. package/dist/accessi-module/Console/generated/model/getUserByTokenRequest.js.map +0 -1
  494. package/dist/accessi-module/Console/generated/model/getUserByTokenResponse.js.map +0 -1
  495. package/dist/accessi-module/Console/generated/model/getUserRolesAndGrantsParams.js.map +0 -1
  496. package/dist/accessi-module/Console/generated/model/getUsersParams.js.map +0 -1
  497. package/dist/accessi-module/Console/generated/model/getUsersResponse.js.map +0 -1
  498. package/dist/accessi-module/Console/generated/model/getUsersResult.js.map +0 -1
  499. package/dist/accessi-module/Console/generated/model/getUsersResultExtensionFields.js.map +0 -1
  500. package/dist/accessi-module/Console/generated/model/groupWithMenusEntity.js.map +0 -1
  501. package/dist/accessi-module/Console/generated/model/index.js.map +0 -1
  502. package/dist/accessi-module/Console/generated/model/introspectAccessiTokenRequest.js.map +0 -1
  503. package/dist/accessi-module/Console/generated/model/introspectAccessiTokenResponse.js.map +0 -1
  504. package/dist/accessi-module/Console/generated/model/issuedServiceTokenDto.js.map +0 -1
  505. package/dist/accessi-module/Console/generated/model/loginAsRequest.js.map +0 -1
  506. package/dist/accessi-module/Console/generated/model/loginAsResponse.js.map +0 -1
  507. package/dist/accessi-module/Console/generated/model/loginAsResult.js.map +0 -1
  508. package/dist/accessi-module/Console/generated/model/loginRequest.js.map +0 -1
  509. package/dist/accessi-module/Console/generated/model/loginResponse.js.map +0 -1
  510. package/dist/accessi-module/Console/generated/model/loginResult.js.map +0 -1
  511. package/dist/accessi-module/Console/generated/model/loginResultExtensionFields.js.map +0 -1
  512. package/dist/accessi-module/Console/generated/model/loginResultPasswordRequired.js.map +0 -1
  513. package/dist/accessi-module/Console/generated/model/menuEntity.js.map +0 -1
  514. package/dist/accessi-module/Console/generated/model/menuTypeEntity.js.map +0 -1
  515. package/dist/accessi-module/Console/generated/model/passwordExpiredResponse.js.map +0 -1
  516. package/dist/accessi-module/Console/generated/model/permission.js.map +0 -1
  517. package/dist/accessi-module/Console/generated/model/publicRegisterRequest.js.map +0 -1
  518. package/dist/accessi-module/Console/generated/model/queryAuditOrder.js.map +0 -1
  519. package/dist/accessi-module/Console/generated/model/queryAuditParams.js.map +0 -1
  520. package/dist/accessi-module/Console/generated/model/refreshTokenRequest.js.map +0 -1
  521. package/dist/accessi-module/Console/generated/model/refreshTokenResponse.js.map +0 -1
  522. package/dist/accessi-module/Console/generated/model/refreshTokenResult.js.map +0 -1
  523. package/dist/accessi-module/Console/generated/model/registerRequest.js.map +0 -1
  524. package/dist/accessi-module/Console/generated/model/registerResponse.js.map +0 -1
  525. package/dist/accessi-module/Console/generated/model/resendTwoFactorRequest.js.map +0 -1
  526. package/dist/accessi-module/Console/generated/model/revokeTokenRequest.js.map +0 -1
  527. package/dist/accessi-module/Console/generated/model/role.js.map +0 -1
  528. package/dist/accessi-module/Console/generated/model/ruoliMenu.js.map +0 -1
  529. package/dist/accessi-module/Console/generated/model/ruoliMenuTipoAbilitazione.js.map +0 -1
  530. package/dist/accessi-module/Console/generated/model/schemaDdlResult.js.map +0 -1
  531. package/dist/accessi-module/Console/generated/model/schemaDdlSection.js.map +0 -1
  532. package/dist/accessi-module/Console/generated/model/scopeEntity.js.map +0 -1
  533. package/dist/accessi-module/Console/generated/model/sendResetPasswordEmailRequest.js.map +0 -1
  534. package/dist/accessi-module/Console/generated/model/serveResetPasswordPageParams.js.map +0 -1
  535. package/dist/accessi-module/Console/generated/model/serviceTokenDto.js.map +0 -1
  536. package/dist/accessi-module/Console/generated/model/setMenuScopesRequest.js.map +0 -1
  537. package/dist/accessi-module/Console/generated/model/setPasswordLoginPolicyRequest.js.map +0 -1
  538. package/dist/accessi-module/Console/generated/model/setScopeMenusRequest.js.map +0 -1
  539. package/dist/accessi-module/Console/generated/model/setStatoRegistrazioneDto.js.map +0 -1
  540. package/dist/accessi-module/Console/generated/model/setStatoRegistrazioneDtoStatoRegistrazione.js.map +0 -1
  541. package/dist/accessi-module/Console/generated/model/setUserPasswordRequest.js.map +0 -1
  542. package/dist/accessi-module/Console/generated/model/status.js.map +0 -1
  543. package/dist/accessi-module/Console/generated/model/tipoFiltro.js.map +0 -1
  544. package/dist/accessi-module/Console/generated/model/tipoFiltroFlgEnabled.js.map +0 -1
  545. package/dist/accessi-module/Console/generated/model/tokenResult.js.map +0 -1
  546. package/dist/accessi-module/Console/generated/model/tokenResultType.js.map +0 -1
  547. package/dist/accessi-module/Console/generated/model/twoFactorChallengeDto.js.map +0 -1
  548. package/dist/accessi-module/Console/generated/model/twoFactorChallengeDtoMethod.js.map +0 -1
  549. package/dist/accessi-module/Console/generated/model/twoFactorChallengeDtoTwoFactorRequired.js.map +0 -1
  550. package/dist/accessi-module/Console/generated/model/updateEnabledStatusRequest.js.map +0 -1
  551. package/dist/accessi-module/Console/generated/model/updateFederatedIdentityRequest.js.map +0 -1
  552. package/dist/accessi-module/Console/generated/model/updateFederatedProviderRequest.js.map +0 -1
  553. package/dist/accessi-module/Console/generated/model/updateFilterTypeRequest.js.map +0 -1
  554. package/dist/accessi-module/Console/generated/model/updateFilterTypeRequestFlgEnabled.js.map +0 -1
  555. package/dist/accessi-module/Console/generated/model/updateMenuGroupRequest.js.map +0 -1
  556. package/dist/accessi-module/Console/generated/model/updateMenuRequest.js.map +0 -1
  557. package/dist/accessi-module/Console/generated/model/updateMenuTypeRequest.js.map +0 -1
  558. package/dist/accessi-module/Console/generated/model/updateScopeRequest.js.map +0 -1
  559. package/dist/accessi-module/Console/generated/model/userDto.js.map +0 -1
  560. package/dist/accessi-module/Console/generated/model/userDtoStatoRegistrazione.js.map +0 -1
  561. package/dist/accessi-module/Console/generated/model/userGrantsDto.js.map +0 -1
  562. package/dist/accessi-module/Console/generated/model/userGrantsResponse.js.map +0 -1
  563. package/dist/accessi-module/Console/generated/model/verifyTwoFactorRequest.js.map +0 -1
  564. package/dist/accessi-module/Console/help.js.map +0 -1
  565. package/dist/accessi-module/Console/wiki.js +0 -867
  566. package/dist/accessi-module/Console/wiki.js.map +0 -1
  567. package/dist/accessi-module/Controllers/AccessiAuditController.d.ts +0 -16
  568. package/dist/accessi-module/Controllers/AccessiAuditController.js +0 -155
  569. package/dist/accessi-module/Controllers/AccessiAuditController.js.map +0 -1
  570. package/dist/accessi-module/Controllers/AccessiConsoleController.js +0 -169
  571. package/dist/accessi-module/Controllers/AccessiConsoleController.js.map +0 -1
  572. package/dist/accessi-module/Controllers/AccessiIntrospectionController.d.ts +0 -17
  573. package/dist/accessi-module/Controllers/AccessiIntrospectionController.js +0 -102
  574. package/dist/accessi-module/Controllers/AccessiIntrospectionController.js.map +0 -1
  575. package/dist/accessi-module/Controllers/AuthController.d.ts +0 -24
  576. package/dist/accessi-module/Controllers/AuthController.js +0 -564
  577. package/dist/accessi-module/Controllers/AuthController.js.map +0 -1
  578. package/dist/accessi-module/Controllers/ConfiguratorController.d.ts +0 -9
  579. package/dist/accessi-module/Controllers/ConfiguratorController.js +0 -136
  580. package/dist/accessi-module/Controllers/ConfiguratorController.js.map +0 -1
  581. package/dist/accessi-module/Controllers/ConsoleEntryController.d.ts +0 -16
  582. package/dist/accessi-module/Controllers/ConsoleEntryController.js +0 -159
  583. package/dist/accessi-module/Controllers/ConsoleEntryController.js.map +0 -1
  584. package/dist/accessi-module/Controllers/EmailController.d.ts +0 -11
  585. package/dist/accessi-module/Controllers/EmailController.js +0 -112
  586. package/dist/accessi-module/Controllers/EmailController.js.map +0 -1
  587. package/dist/accessi-module/Controllers/FiltriController.d.ts +0 -20
  588. package/dist/accessi-module/Controllers/FiltriController.js +0 -303
  589. package/dist/accessi-module/Controllers/FiltriController.js.map +0 -1
  590. package/dist/accessi-module/Controllers/PermissionController.d.ts +0 -45
  591. package/dist/accessi-module/Controllers/PermissionController.js +0 -862
  592. package/dist/accessi-module/Controllers/PermissionController.js.map +0 -1
  593. package/dist/accessi-module/Controllers/SchemaController.d.ts +0 -9
  594. package/dist/accessi-module/Controllers/SchemaController.js +0 -79
  595. package/dist/accessi-module/Controllers/SchemaController.js.map +0 -1
  596. package/dist/accessi-module/Controllers/ServiceTokenController.d.ts +0 -23
  597. package/dist/accessi-module/Controllers/ServiceTokenController.js +0 -176
  598. package/dist/accessi-module/Controllers/ServiceTokenController.js.map +0 -1
  599. package/dist/accessi-module/Controllers/UserController.d.ts +0 -39
  600. package/dist/accessi-module/Controllers/UserController.js +0 -724
  601. package/dist/accessi-module/Controllers/UserController.js.map +0 -1
  602. package/dist/accessi-module/Dtos/Abilitazione.js.map +0 -1
  603. package/dist/accessi-module/Dtos/AbilitazioneMenu.js.map +0 -1
  604. package/dist/accessi-module/Dtos/AdminBootstrapDtos.js.map +0 -1
  605. package/dist/accessi-module/Dtos/AssignPermissionsToUserRequest.js.map +0 -1
  606. package/dist/accessi-module/Dtos/AssignRolesToUserRequest.js.map +0 -1
  607. package/dist/accessi-module/Dtos/AuditDtos.js.map +0 -1
  608. package/dist/accessi-module/Dtos/AuthenticatedUserPayloadDto.js.map +0 -1
  609. package/dist/accessi-module/Dtos/BaseResponse.js.map +0 -1
  610. package/dist/accessi-module/Dtos/CatalogDtos.js.map +0 -1
  611. package/dist/accessi-module/Dtos/ConfirmResetPasswordRequest.js.map +0 -1
  612. package/dist/accessi-module/Dtos/ConsoleEntryDtos.js.map +0 -1
  613. package/dist/accessi-module/Dtos/FederatedExchangeDtos.js.map +0 -1
  614. package/dist/accessi-module/Dtos/FederatedIdentityDtos.js.map +0 -1
  615. package/dist/accessi-module/Dtos/FiltriUtente.js.map +0 -1
  616. package/dist/accessi-module/Dtos/GetGroupsWithMenusResponse.js.map +0 -1
  617. package/dist/accessi-module/Dtos/GetMenusResponse.js.map +0 -1
  618. package/dist/accessi-module/Dtos/GetRolesResponse.js.map +0 -1
  619. package/dist/accessi-module/Dtos/GetUserByTokenRequest.js.map +0 -1
  620. package/dist/accessi-module/Dtos/GetUserByTokenResponse.js.map +0 -1
  621. package/dist/accessi-module/Dtos/GetUsersResponse.js.map +0 -1
  622. package/dist/accessi-module/Dtos/IntrospectionDtos.js.map +0 -1
  623. package/dist/accessi-module/Dtos/LoginAsDtos.js.map +0 -1
  624. package/dist/accessi-module/Dtos/LoginRequest.js.map +0 -1
  625. package/dist/accessi-module/Dtos/LoginResponse.js.map +0 -1
  626. package/dist/accessi-module/Dtos/MenuItem.js.map +0 -1
  627. package/dist/accessi-module/Dtos/Permission.js.map +0 -1
  628. package/dist/accessi-module/Dtos/PublicRegisterRequest.js.map +0 -1
  629. package/dist/accessi-module/Dtos/RefreshTokenDtos.js.map +0 -1
  630. package/dist/accessi-module/Dtos/RegisterRequest.js.map +0 -1
  631. package/dist/accessi-module/Dtos/RegisterResponse.js.map +0 -1
  632. package/dist/accessi-module/Dtos/RevokeTokenRequest.js.map +0 -1
  633. package/dist/accessi-module/Dtos/Role.js.map +0 -1
  634. package/dist/accessi-module/Dtos/RuoliMenu.js.map +0 -1
  635. package/dist/accessi-module/Dtos/SchemaDtos.js.map +0 -1
  636. package/dist/accessi-module/Dtos/ScopeDtos.js.map +0 -1
  637. package/dist/accessi-module/Dtos/SendResetPasswordEmailRequest.js.map +0 -1
  638. package/dist/accessi-module/Dtos/ServiceToken.js.map +0 -1
  639. package/dist/accessi-module/Dtos/SetStatoRegistrazione.js.map +0 -1
  640. package/dist/accessi-module/Dtos/SetUserPasswordRequest.js.map +0 -1
  641. package/dist/accessi-module/Dtos/StatoRegistrazione.js.map +0 -1
  642. package/dist/accessi-module/Dtos/TipoAbilitazione.js.map +0 -1
  643. package/dist/accessi-module/Dtos/TipoFiltro.js.map +0 -1
  644. package/dist/accessi-module/Dtos/TokenResult.js.map +0 -1
  645. package/dist/accessi-module/Dtos/TwoFactorDtos.js.map +0 -1
  646. package/dist/accessi-module/Dtos/UpdateEnabledStatusRequest.js.map +0 -1
  647. package/dist/accessi-module/Dtos/UserDto.js.map +0 -1
  648. package/dist/accessi-module/Dtos/UserGrantsDto.js.map +0 -1
  649. package/dist/accessi-module/Dtos/UserGrantsResponse.js.map +0 -1
  650. package/dist/accessi-module/Dtos/index.js.map +0 -1
  651. package/dist/accessi-module/Services/AdminBootstrapService/AdminBootstrapService.d.ts +0 -33
  652. package/dist/accessi-module/Services/AdminBootstrapService/AdminBootstrapService.js +0 -106
  653. package/dist/accessi-module/Services/AdminBootstrapService/AdminBootstrapService.js.map +0 -1
  654. package/dist/accessi-module/Services/AuthService/AuthService.d.ts +0 -127
  655. package/dist/accessi-module/Services/AuthService/AuthService.js +0 -734
  656. package/dist/accessi-module/Services/AuthService/AuthService.js.map +0 -1
  657. package/dist/accessi-module/Services/ConfiguratorService/ConfiguratorService.js.map +0 -1
  658. package/dist/accessi-module/Services/EmailService/EmailService.js +0 -439
  659. package/dist/accessi-module/Services/EmailService/EmailService.js.map +0 -1
  660. package/dist/accessi-module/Services/FiltriService/FiltriService.d.ts +0 -26
  661. package/dist/accessi-module/Services/FiltriService/FiltriService.js +0 -203
  662. package/dist/accessi-module/Services/FiltriService/FiltriService.js.map +0 -1
  663. package/dist/accessi-module/Services/PermissionService/PermissionService.d.ts +0 -126
  664. package/dist/accessi-module/Services/PermissionService/PermissionService.js +0 -944
  665. package/dist/accessi-module/Services/PermissionService/PermissionService.js.map +0 -1
  666. package/dist/accessi-module/Services/SchemaExportService/SchemaExportService.js.map +0 -1
  667. package/dist/accessi-module/Services/ServiceTokenService/ServiceTokenService.js.map +0 -1
  668. package/dist/accessi-module/Services/TwoFactorService/TwoFactorService.d.ts +0 -27
  669. package/dist/accessi-module/Services/TwoFactorService/TwoFactorService.js +0 -175
  670. package/dist/accessi-module/Services/TwoFactorService/TwoFactorService.js.map +0 -1
  671. package/dist/accessi-module/Services/UserService/UserService.d.ts +0 -112
  672. package/dist/accessi-module/Services/UserService/UserService.js +0 -837
  673. package/dist/accessi-module/Services/UserService/UserService.js.map +0 -1
  674. package/dist/accessi-module/accessiRuntime.d.ts +0 -45
  675. package/dist/accessi-module/accessiRuntime.js +0 -39
  676. package/dist/accessi-module/accessiRuntime.js.map +0 -1
  677. package/dist/accessi-module/database-updates/AccessiCatalogMigrator.js.map +0 -1
  678. package/dist/accessi-module/database-updates/AccessiDatabaseUpdater.js.map +0 -1
  679. package/dist/accessi-module/database-updates/accessiOptionsFromEnv.js +0 -134
  680. package/dist/accessi-module/database-updates/accessiOptionsFromEnv.js.map +0 -1
  681. package/dist/accessi-module/database-updates/accessiSchema.js.map +0 -1
  682. package/dist/accessi-module/database-updates/menuScopeSeed.js.map +0 -1
  683. package/dist/accessi-module/database-updates/menuScopeSeeder.js.map +0 -1
  684. package/dist/accessi-module/database-updates/optionalColumns.js.map +0 -1
  685. package/dist/accessi-module/database-updates/runAccessiCatalogMigrations.js.map +0 -1
  686. package/dist/accessi-module/database-updates/runAccessiDbUpdate.js.map +0 -1
  687. package/dist/accessi-module/federated-auth/FederatedAuthController.d.ts +0 -33
  688. package/dist/accessi-module/federated-auth/FederatedAuthController.js +0 -373
  689. package/dist/accessi-module/federated-auth/FederatedAuthController.js.map +0 -1
  690. package/dist/accessi-module/federated-auth/FederatedAuthExchangeController.d.ts +0 -15
  691. package/dist/accessi-module/federated-auth/FederatedAuthExchangeController.js +0 -85
  692. package/dist/accessi-module/federated-auth/FederatedAuthExchangeController.js.map +0 -1
  693. package/dist/accessi-module/federated-auth/FederatedAuthService.d.ts +0 -102
  694. package/dist/accessi-module/federated-auth/FederatedAuthService.js +0 -472
  695. package/dist/accessi-module/federated-auth/FederatedAuthService.js.map +0 -1
  696. package/dist/accessi-module/federated-auth/FederatedAuthTypes.d.ts +0 -53
  697. package/dist/accessi-module/federated-auth/FederatedAuthTypes.js.map +0 -1
  698. package/dist/accessi-module/health/nest.js.map +0 -1
  699. package/dist/accessi-module/health/readiness.js.map +0 -1
  700. package/dist/accessi-module/index.d.ts +0 -88
  701. package/dist/accessi-module/index.js +0 -304
  702. package/dist/accessi-module/index.js.map +0 -1
  703. package/dist/accessi-module/jwt/jwt.strategy.d.ts +0 -9
  704. package/dist/accessi-module/jwt/jwt.strategy.js +0 -88
  705. package/dist/accessi-module/jwt/jwt.strategy.js.map +0 -1
  706. package/dist/accessi-module/middleware/accessiRequirements.js.map +0 -1
  707. package/dist/accessi-module/middleware/authenticateGen.d.ts +0 -32
  708. package/dist/accessi-module/middleware/authenticateGen.js +0 -315
  709. package/dist/accessi-module/middleware/authenticateGen.js.map +0 -1
  710. package/dist/accessi-module/observability/metrics.js.map +0 -1
  711. package/dist/accessi-module/observability/redisMetrics.js.map +0 -1
  712. package/dist/accessi-module/security/AccessiHttpExceptionFilter.js.map +0 -1
  713. package/dist/accessi-module/security/accessControl.js.map +0 -1
  714. package/dist/accessi-module/security/accessTokenRevocation.js.map +0 -1
  715. package/dist/accessi-module/security/accessiValidation.js.map +0 -1
  716. package/dist/accessi-module/security/adminBootstrap.js.map +0 -1
  717. package/dist/accessi-module/security/audit.js.map +0 -1
  718. package/dist/accessi-module/security/auditSinks.js.map +0 -1
  719. package/dist/accessi-module/security/authCookies.js.map +0 -1
  720. package/dist/accessi-module/security/authenticatedToken.d.ts +0 -31
  721. package/dist/accessi-module/security/authenticatedToken.js +0 -79
  722. package/dist/accessi-module/security/authenticatedToken.js.map +0 -1
  723. package/dist/accessi-module/security/consoleEntry.js.map +0 -1
  724. package/dist/accessi-module/security/edgeRateLimit.js.map +0 -1
  725. package/dist/accessi-module/security/emailConfiguration.js.map +0 -1
  726. package/dist/accessi-module/security/jwks.js.map +0 -1
  727. package/dist/accessi-module/security/jwksBootstrap.js.map +0 -1
  728. package/dist/accessi-module/security/jwtTokenOptions.js.map +0 -1
  729. package/dist/accessi-module/security/loginAs.js.map +0 -1
  730. package/dist/accessi-module/security/passwordPolicy.js.map +0 -1
  731. package/dist/accessi-module/security/passwordResetToken.js.map +0 -1
  732. package/dist/accessi-module/security/publicAuthRateLimit.js.map +0 -1
  733. package/dist/accessi-module/security/rateLimitStore.js.map +0 -1
  734. package/dist/accessi-module/security/refreshTokenRotation.js.map +0 -1
  735. package/dist/accessi-module/security/securityHeaders.js.map +0 -1
  736. package/dist/accessi-module/security/serviceTokenGuard.d.ts +0 -27
  737. package/dist/accessi-module/security/serviceTokenGuard.js +0 -90
  738. package/dist/accessi-module/security/serviceTokenGuard.js.map +0 -1
  739. package/dist/accessi-module/security/serviceTokenRateLimit.js.map +0 -1
  740. package/dist/accessi-module/security/sessionRevocation.js.map +0 -1
  741. package/dist/accessi-module/security/validateOptions.js.map +0 -1
  742. package/dist/accessi-module/startupLog.js.map +0 -1
  743. package/dist/accessi-module/tenancy/tenantContext.js.map +0 -1
  744. package/dist/allegati-module/Controllers/AllegatiController.d.ts +0 -36
  745. package/dist/allegati-module/Controllers/AllegatiController.js +0 -230
  746. package/dist/allegati-module/Controllers/AllegatiController.js.map +0 -1
  747. package/dist/allegati-module/Dtos/AllegatoDto.js.map +0 -1
  748. package/dist/allegati-module/Dtos/BaseResponse.js.map +0 -1
  749. package/dist/allegati-module/Dtos/UploadSingleFileRequest.js.map +0 -1
  750. package/dist/allegati-module/Dtos/index.js.map +0 -1
  751. package/dist/allegati-module/Dtos/responses/DownloadAllegatoResponseDto.js.map +0 -1
  752. package/dist/allegati-module/Dtos/responses/GetListResponse.js.map +0 -1
  753. package/dist/allegati-module/Dtos/responses/UploadAllegatoResponseDto.js.map +0 -1
  754. package/dist/allegati-module/Services/AllegatiService/AllegatiService.d.ts +0 -61
  755. package/dist/allegati-module/Services/AllegatiService/AllegatiService.js.map +0 -1
  756. package/dist/emilsoftware-utilities-2.0.0-dev.84.tgz +0 -0
  757. package/dist/firebird-compat.js +0 -269
  758. package/dist/firebird-compat.js.map +0 -1
  759. /package/dist/{accessi-module → accessi-service}/AccessiModule.d.ts +0 -0
  760. /package/dist/{accessi-module/Console → accessi-service/console}/accessiFetch.d.ts +0 -0
  761. /package/dist/{accessi-module/Console → accessi-service/console}/accessiFetch.js +0 -0
  762. /package/dist/{accessi-module/Console → accessi-service/console}/console.css +0 -0
  763. /package/dist/{accessi-module/Console → accessi-service/console}/console.d.ts +0 -0
  764. /package/dist/{accessi-module/Console → accessi-service/console}/generated/emilsoftware-utilities.d.ts +0 -0
  765. /package/dist/{accessi-module/Console → accessi-service/console}/generated/emilsoftware-utilities.js +0 -0
  766. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/abilitazioneMenu.d.ts +0 -0
  767. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/abilitazioneMenu.js +0 -0
  768. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/abilitazioneMenuTipoAbilitazione.d.ts +0 -0
  769. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/abilitazioneMenuTipoAbilitazione.js +0 -0
  770. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/accessiIntrospectionResultDto.d.ts +0 -0
  771. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/accessiIntrospectionResultDto.js +0 -0
  772. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/actionResponse.d.ts +0 -0
  773. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/actionResponse.js +0 -0
  774. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/adminBootstrapStatusResponse.d.ts +0 -0
  775. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/adminBootstrapStatusResponse.js +0 -0
  776. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/adminBootstrapStatusResult.d.ts +0 -0
  777. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/adminBootstrapStatusResult.js +0 -0
  778. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/assignPermissionsToUserRequest.d.ts +0 -0
  779. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/assignPermissionsToUserRequest.js +0 -0
  780. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/assignRolesToUserRequest.d.ts +0 -0
  781. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/assignRolesToUserRequest.js +0 -0
  782. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/authenticatedTokenPayloadDto.d.ts +0 -0
  783. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/authenticatedTokenPayloadDto.js +0 -0
  784. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/authenticatedUserPayloadDto.d.ts +0 -0
  785. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/authenticatedUserPayloadDto.js +0 -0
  786. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/bootstrapAdminRequest.d.ts +0 -0
  787. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/bootstrapAdminRequest.js +0 -0
  788. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/bootstrapAdminResponse.d.ts +0 -0
  789. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/bootstrapAdminResponse.js +0 -0
  790. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/bootstrapAdminResultDto.d.ts +0 -0
  791. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/bootstrapAdminResultDto.js +0 -0
  792. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/confirmResetPasswordRequest.d.ts +0 -0
  793. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/confirmResetPasswordRequest.js +0 -0
  794. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/consoleEntryExchangeRequest.d.ts +0 -0
  795. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/consoleEntryExchangeRequest.js +0 -0
  796. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/consoleEntrySessionResponse.d.ts +0 -0
  797. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/consoleEntrySessionResponse.js +0 -0
  798. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/consoleEntrySessionResult.d.ts +0 -0
  799. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/consoleEntrySessionResult.js +0 -0
  800. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/consoleEntryTicketResponse.d.ts +0 -0
  801. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/consoleEntryTicketResponse.js +0 -0
  802. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/consoleEntryTicketResult.d.ts +0 -0
  803. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/consoleEntryTicketResult.js +0 -0
  804. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/consoleEntryTokenResult.d.ts +0 -0
  805. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/consoleEntryTokenResult.js +0 -0
  806. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/createFederatedIdentityRequest.d.ts +0 -0
  807. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/createFederatedIdentityRequest.js +0 -0
  808. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/createFederatedProviderRequest.d.ts +0 -0
  809. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/createFederatedProviderRequest.js +0 -0
  810. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/createFederatedUserRequest.d.ts +0 -0
  811. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/createFederatedUserRequest.js +0 -0
  812. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/createFilterTypeRequest.d.ts +0 -0
  813. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/createFilterTypeRequest.js +0 -0
  814. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/createFilterTypeRequestFlgEnabled.d.ts +0 -0
  815. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/createFilterTypeRequestFlgEnabled.js +0 -0
  816. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/createMenuGroupRequest.d.ts +0 -0
  817. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/createMenuGroupRequest.js +0 -0
  818. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/createMenuRequest.d.ts +0 -0
  819. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/createMenuRequest.js +0 -0
  820. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/createMenuTypeRequest.d.ts +0 -0
  821. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/createMenuTypeRequest.js +0 -0
  822. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/createScopeRequest.d.ts +0 -0
  823. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/createScopeRequest.js +0 -0
  824. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/createServiceTokenRequest.d.ts +0 -0
  825. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/createServiceTokenRequest.js +0 -0
  826. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/createServiceTokenResponse.d.ts +0 -0
  827. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/createServiceTokenResponse.js +0 -0
  828. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/errorResponse.d.ts +0 -0
  829. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/errorResponse.js +0 -0
  830. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/exchangeFederatedIdentityRequest.d.ts +0 -0
  831. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/exchangeFederatedIdentityRequest.js +0 -0
  832. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/exportAuditOrder.d.ts +0 -0
  833. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/exportAuditOrder.js +0 -0
  834. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/exportAuditParams.d.ts +0 -0
  835. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/exportAuditParams.js +0 -0
  836. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/federatedAuthenticationResultDto.d.ts +0 -0
  837. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/federatedAuthenticationResultDto.js +0 -0
  838. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/federatedExchangeResponse.d.ts +0 -0
  839. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/federatedExchangeResponse.js +0 -0
  840. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/federatedIdentityListResponse.d.ts +0 -0
  841. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/federatedIdentityListResponse.js +0 -0
  842. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/federatedIdentityResponse.d.ts +0 -0
  843. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/federatedIdentityResponse.js +0 -0
  844. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/federatedIdentityResponseDto.d.ts +0 -0
  845. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/federatedIdentityResponseDto.js +0 -0
  846. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/federatedProviderListResponse.d.ts +0 -0
  847. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/federatedProviderListResponse.js +0 -0
  848. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/federatedProviderResponse.d.ts +0 -0
  849. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/federatedProviderResponse.js +0 -0
  850. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/federatedProviderResponseDto.d.ts +0 -0
  851. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/federatedProviderResponseDto.js +0 -0
  852. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/filtriUtente.d.ts +0 -0
  853. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/filtriUtente.js +0 -0
  854. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/getFiltriResponse.d.ts +0 -0
  855. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/getFiltriResponse.js +0 -0
  856. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/getFiltriUtenteParams.d.ts +0 -0
  857. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/getFiltriUtenteParams.js +0 -0
  858. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/getFiltriUtenteResponse.d.ts +0 -0
  859. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/getFiltriUtenteResponse.js +0 -0
  860. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/getGroupsWithMenusParams.d.ts +0 -0
  861. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/getGroupsWithMenusParams.js +0 -0
  862. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/getGroupsWithMenusResponse.d.ts +0 -0
  863. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/getGroupsWithMenusResponse.js +0 -0
  864. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/getMenuScopesResponse.d.ts +0 -0
  865. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/getMenuScopesResponse.js +0 -0
  866. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/getMenuTypesResponse.d.ts +0 -0
  867. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/getMenuTypesResponse.js +0 -0
  868. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/getMenusParams.d.ts +0 -0
  869. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/getMenusParams.js +0 -0
  870. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/getMenusResponse.d.ts +0 -0
  871. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/getMenusResponse.js +0 -0
  872. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/getRolesResponse.d.ts +0 -0
  873. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/getRolesResponse.js +0 -0
  874. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/getSchemaResponse.d.ts +0 -0
  875. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/getSchemaResponse.js +0 -0
  876. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/getScopesResponse.d.ts +0 -0
  877. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/getScopesResponse.js +0 -0
  878. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/getServiceTokensParams.d.ts +0 -0
  879. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/getServiceTokensParams.js +0 -0
  880. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/getServiceTokensResponse.d.ts +0 -0
  881. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/getServiceTokensResponse.js +0 -0
  882. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/getUserByTokenRequest.d.ts +0 -0
  883. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/getUserByTokenRequest.js +0 -0
  884. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/getUserByTokenResponse.d.ts +0 -0
  885. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/getUserByTokenResponse.js +0 -0
  886. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/getUserRolesAndGrantsParams.d.ts +0 -0
  887. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/getUserRolesAndGrantsParams.js +0 -0
  888. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/getUsersParams.d.ts +0 -0
  889. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/getUsersParams.js +0 -0
  890. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/getUsersResponse.d.ts +0 -0
  891. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/getUsersResponse.js +0 -0
  892. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/getUsersResult.d.ts +0 -0
  893. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/getUsersResult.js +0 -0
  894. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/getUsersResultExtensionFields.d.ts +0 -0
  895. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/getUsersResultExtensionFields.js +0 -0
  896. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/groupWithMenusEntity.d.ts +0 -0
  897. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/groupWithMenusEntity.js +0 -0
  898. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/index.d.ts +0 -0
  899. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/index.js +0 -0
  900. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/introspectAccessiTokenRequest.d.ts +0 -0
  901. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/introspectAccessiTokenRequest.js +0 -0
  902. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/introspectAccessiTokenResponse.d.ts +0 -0
  903. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/introspectAccessiTokenResponse.js +0 -0
  904. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/issuedServiceTokenDto.d.ts +0 -0
  905. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/issuedServiceTokenDto.js +0 -0
  906. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/loginAsRequest.d.ts +0 -0
  907. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/loginAsRequest.js +0 -0
  908. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/loginAsResponse.d.ts +0 -0
  909. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/loginAsResponse.js +0 -0
  910. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/loginAsResult.d.ts +0 -0
  911. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/loginAsResult.js +0 -0
  912. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/loginRequest.d.ts +0 -0
  913. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/loginRequest.js +0 -0
  914. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/loginResponse.d.ts +0 -0
  915. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/loginResponse.js +0 -0
  916. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/loginResult.d.ts +0 -0
  917. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/loginResult.js +0 -0
  918. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/loginResultExtensionFields.d.ts +0 -0
  919. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/loginResultExtensionFields.js +0 -0
  920. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/loginResultPasswordRequired.d.ts +0 -0
  921. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/loginResultPasswordRequired.js +0 -0
  922. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/menuEntity.d.ts +0 -0
  923. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/menuEntity.js +0 -0
  924. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/menuTypeEntity.d.ts +0 -0
  925. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/menuTypeEntity.js +0 -0
  926. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/passwordExpiredResponse.d.ts +0 -0
  927. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/passwordExpiredResponse.js +0 -0
  928. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/permission.d.ts +0 -0
  929. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/permission.js +0 -0
  930. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/publicRegisterRequest.d.ts +0 -0
  931. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/publicRegisterRequest.js +0 -0
  932. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/queryAuditOrder.d.ts +0 -0
  933. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/queryAuditOrder.js +0 -0
  934. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/queryAuditParams.d.ts +0 -0
  935. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/queryAuditParams.js +0 -0
  936. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/refreshTokenRequest.d.ts +0 -0
  937. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/refreshTokenRequest.js +0 -0
  938. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/refreshTokenResponse.d.ts +0 -0
  939. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/refreshTokenResponse.js +0 -0
  940. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/refreshTokenResult.d.ts +0 -0
  941. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/refreshTokenResult.js +0 -0
  942. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/registerRequest.d.ts +0 -0
  943. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/registerRequest.js +0 -0
  944. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/registerResponse.d.ts +0 -0
  945. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/registerResponse.js +0 -0
  946. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/resendTwoFactorRequest.d.ts +0 -0
  947. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/resendTwoFactorRequest.js +0 -0
  948. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/revokeTokenRequest.d.ts +0 -0
  949. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/revokeTokenRequest.js +0 -0
  950. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/role.d.ts +0 -0
  951. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/role.js +0 -0
  952. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/ruoliMenu.d.ts +0 -0
  953. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/ruoliMenu.js +0 -0
  954. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/ruoliMenuTipoAbilitazione.d.ts +0 -0
  955. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/ruoliMenuTipoAbilitazione.js +0 -0
  956. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/schemaDdlResult.d.ts +0 -0
  957. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/schemaDdlResult.js +0 -0
  958. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/schemaDdlSection.d.ts +0 -0
  959. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/schemaDdlSection.js +0 -0
  960. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/scopeEntity.d.ts +0 -0
  961. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/scopeEntity.js +0 -0
  962. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/sendResetPasswordEmailRequest.d.ts +0 -0
  963. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/sendResetPasswordEmailRequest.js +0 -0
  964. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/serveResetPasswordPageParams.d.ts +0 -0
  965. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/serveResetPasswordPageParams.js +0 -0
  966. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/serviceTokenDto.d.ts +0 -0
  967. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/serviceTokenDto.js +0 -0
  968. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/setMenuScopesRequest.d.ts +0 -0
  969. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/setMenuScopesRequest.js +0 -0
  970. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/setPasswordLoginPolicyRequest.d.ts +0 -0
  971. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/setPasswordLoginPolicyRequest.js +0 -0
  972. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/setScopeMenusRequest.d.ts +0 -0
  973. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/setScopeMenusRequest.js +0 -0
  974. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/setStatoRegistrazioneDto.d.ts +0 -0
  975. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/setStatoRegistrazioneDto.js +0 -0
  976. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/setStatoRegistrazioneDtoStatoRegistrazione.d.ts +0 -0
  977. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/setStatoRegistrazioneDtoStatoRegistrazione.js +0 -0
  978. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/setUserPasswordRequest.d.ts +0 -0
  979. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/setUserPasswordRequest.js +0 -0
  980. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/status.d.ts +0 -0
  981. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/status.js +0 -0
  982. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/tipoFiltro.d.ts +0 -0
  983. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/tipoFiltro.js +0 -0
  984. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/tipoFiltroFlgEnabled.d.ts +0 -0
  985. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/tipoFiltroFlgEnabled.js +0 -0
  986. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/tokenResult.d.ts +0 -0
  987. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/tokenResult.js +0 -0
  988. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/tokenResultType.d.ts +0 -0
  989. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/tokenResultType.js +0 -0
  990. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/twoFactorChallengeDto.d.ts +0 -0
  991. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/twoFactorChallengeDto.js +0 -0
  992. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/twoFactorChallengeDtoMethod.d.ts +0 -0
  993. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/twoFactorChallengeDtoMethod.js +0 -0
  994. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/twoFactorChallengeDtoTwoFactorRequired.d.ts +0 -0
  995. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/twoFactorChallengeDtoTwoFactorRequired.js +0 -0
  996. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/updateEnabledStatusRequest.d.ts +0 -0
  997. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/updateEnabledStatusRequest.js +0 -0
  998. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/updateFederatedIdentityRequest.d.ts +0 -0
  999. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/updateFederatedIdentityRequest.js +0 -0
  1000. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/updateFederatedProviderRequest.d.ts +0 -0
  1001. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/updateFederatedProviderRequest.js +0 -0
  1002. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/updateFilterTypeRequest.d.ts +0 -0
  1003. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/updateFilterTypeRequest.js +0 -0
  1004. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/updateFilterTypeRequestFlgEnabled.d.ts +0 -0
  1005. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/updateFilterTypeRequestFlgEnabled.js +0 -0
  1006. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/updateMenuGroupRequest.d.ts +0 -0
  1007. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/updateMenuGroupRequest.js +0 -0
  1008. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/updateMenuRequest.d.ts +0 -0
  1009. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/updateMenuRequest.js +0 -0
  1010. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/updateMenuTypeRequest.d.ts +0 -0
  1011. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/updateMenuTypeRequest.js +0 -0
  1012. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/updateScopeRequest.d.ts +0 -0
  1013. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/updateScopeRequest.js +0 -0
  1014. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/userDto.d.ts +0 -0
  1015. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/userDto.js +0 -0
  1016. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/userDtoStatoRegistrazione.d.ts +0 -0
  1017. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/userDtoStatoRegistrazione.js +0 -0
  1018. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/userGrantsDto.d.ts +0 -0
  1019. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/userGrantsDto.js +0 -0
  1020. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/userGrantsResponse.d.ts +0 -0
  1021. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/userGrantsResponse.js +0 -0
  1022. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/verifyTwoFactorRequest.d.ts +0 -0
  1023. /package/dist/{accessi-module/Console → accessi-service/console}/generated/model/verifyTwoFactorRequest.js +0 -0
  1024. /package/dist/{accessi-module/Console → accessi-service/console}/help.d.ts +0 -0
  1025. /package/dist/{accessi-module/Console → accessi-service/console}/help.js +0 -0
  1026. /package/dist/{accessi-module/Console → accessi-service/console}/index.html +0 -0
  1027. /package/dist/{accessi-module/Console → accessi-service/console}/wiki.d.ts +0 -0
  1028. /package/dist/{accessi-module/Controllers → accessi-service/controllers}/AccessiConsoleController.d.ts +0 -0
  1029. /package/dist/{accessi-module → accessi-service}/database-updates/AccessiCatalogMigrator.d.ts +0 -0
  1030. /package/dist/{accessi-module → accessi-service}/database-updates/AccessiCatalogMigrator.js +0 -0
  1031. /package/dist/{accessi-module → accessi-service}/database-updates/AccessiDatabaseUpdater.d.ts +0 -0
  1032. /package/dist/{accessi-module → accessi-service}/database-updates/AccessiDatabaseUpdater.js +0 -0
  1033. /package/dist/{accessi-module → accessi-service}/database-updates/accessiOptionsFromEnv.d.ts +0 -0
  1034. /package/dist/{accessi-module → accessi-service}/database-updates/accessiSchema.d.ts +0 -0
  1035. /package/dist/{accessi-module → accessi-service}/database-updates/accessiSchema.js +0 -0
  1036. /package/dist/{accessi-module → accessi-service}/database-updates/menuScopeSeed.d.ts +0 -0
  1037. /package/dist/{accessi-module → accessi-service}/database-updates/menuScopeSeed.js +0 -0
  1038. /package/dist/{accessi-module → accessi-service}/database-updates/menuScopeSeeder.d.ts +0 -0
  1039. /package/dist/{accessi-module → accessi-service}/database-updates/menuScopeSeeder.js +0 -0
  1040. /package/dist/{accessi-module → accessi-service}/database-updates/optionalColumns.d.ts +0 -0
  1041. /package/dist/{accessi-module → accessi-service}/database-updates/optionalColumns.js +0 -0
  1042. /package/dist/{accessi-module → accessi-service}/database-updates/runAccessiCatalogMigrations.d.ts +0 -0
  1043. /package/dist/{accessi-module → accessi-service}/database-updates/runAccessiCatalogMigrations.js +0 -0
  1044. /package/dist/{accessi-module → accessi-service}/database-updates/runAccessiDbUpdate.d.ts +0 -0
  1045. /package/dist/{accessi-module → accessi-service}/database-updates/runAccessiDbUpdate.js +0 -0
  1046. /package/dist/{accessi-module/Dtos → accessi-service/dtos}/Abilitazione.d.ts +0 -0
  1047. /package/dist/{accessi-module/Dtos → accessi-service/dtos}/Abilitazione.js +0 -0
  1048. /package/dist/{accessi-module/Dtos → accessi-service/dtos}/AbilitazioneMenu.d.ts +0 -0
  1049. /package/dist/{accessi-module/Dtos → accessi-service/dtos}/AbilitazioneMenu.js +0 -0
  1050. /package/dist/{accessi-module/Dtos → accessi-service/dtos}/AdminBootstrapDtos.d.ts +0 -0
  1051. /package/dist/{accessi-module/Dtos → accessi-service/dtos}/AdminBootstrapDtos.js +0 -0
  1052. /package/dist/{accessi-module/Dtos → accessi-service/dtos}/AssignPermissionsToUserRequest.d.ts +0 -0
  1053. /package/dist/{accessi-module/Dtos → accessi-service/dtos}/AssignPermissionsToUserRequest.js +0 -0
  1054. /package/dist/{accessi-module/Dtos → accessi-service/dtos}/AssignRolesToUserRequest.d.ts +0 -0
  1055. /package/dist/{accessi-module/Dtos → accessi-service/dtos}/AssignRolesToUserRequest.js +0 -0
  1056. /package/dist/{accessi-module/Dtos → accessi-service/dtos}/AuditDtos.d.ts +0 -0
  1057. /package/dist/{accessi-module/Dtos → accessi-service/dtos}/AuditDtos.js +0 -0
  1058. /package/dist/{accessi-module/Dtos → accessi-service/dtos}/AuthenticatedUserPayloadDto.d.ts +0 -0
  1059. /package/dist/{accessi-module/Dtos → accessi-service/dtos}/AuthenticatedUserPayloadDto.js +0 -0
  1060. /package/dist/{accessi-module/Dtos → accessi-service/dtos}/BaseResponse.d.ts +0 -0
  1061. /package/dist/{accessi-module/Dtos → accessi-service/dtos}/BaseResponse.js +0 -0
  1062. /package/dist/{accessi-module/Dtos → accessi-service/dtos}/CatalogDtos.d.ts +0 -0
  1063. /package/dist/{accessi-module/Dtos → accessi-service/dtos}/CatalogDtos.js +0 -0
  1064. /package/dist/{accessi-module/Dtos → accessi-service/dtos}/ConfirmResetPasswordRequest.d.ts +0 -0
  1065. /package/dist/{accessi-module/Dtos → accessi-service/dtos}/ConfirmResetPasswordRequest.js +0 -0
  1066. /package/dist/{accessi-module/Dtos → accessi-service/dtos}/ConsoleEntryDtos.d.ts +0 -0
  1067. /package/dist/{accessi-module/Dtos → accessi-service/dtos}/ConsoleEntryDtos.js +0 -0
  1068. /package/dist/{accessi-module/Dtos → accessi-service/dtos}/FederatedExchangeDtos.d.ts +0 -0
  1069. /package/dist/{accessi-module/Dtos → accessi-service/dtos}/FederatedExchangeDtos.js +0 -0
  1070. /package/dist/{accessi-module/Dtos → accessi-service/dtos}/FederatedIdentityDtos.d.ts +0 -0
  1071. /package/dist/{accessi-module/Dtos → accessi-service/dtos}/FederatedIdentityDtos.js +0 -0
  1072. /package/dist/{accessi-module/Dtos → accessi-service/dtos}/FiltriUtente.d.ts +0 -0
  1073. /package/dist/{accessi-module/Dtos → accessi-service/dtos}/FiltriUtente.js +0 -0
  1074. /package/dist/{accessi-module/Dtos → accessi-service/dtos}/GetGroupsWithMenusResponse.d.ts +0 -0
  1075. /package/dist/{accessi-module/Dtos → accessi-service/dtos}/GetGroupsWithMenusResponse.js +0 -0
  1076. /package/dist/{accessi-module/Dtos → accessi-service/dtos}/GetMenusResponse.d.ts +0 -0
  1077. /package/dist/{accessi-module/Dtos → accessi-service/dtos}/GetMenusResponse.js +0 -0
  1078. /package/dist/{accessi-module/Dtos → accessi-service/dtos}/GetRolesResponse.d.ts +0 -0
  1079. /package/dist/{accessi-module/Dtos → accessi-service/dtos}/GetRolesResponse.js +0 -0
  1080. /package/dist/{accessi-module/Dtos → accessi-service/dtos}/GetUserByTokenRequest.d.ts +0 -0
  1081. /package/dist/{accessi-module/Dtos → accessi-service/dtos}/GetUserByTokenRequest.js +0 -0
  1082. /package/dist/{accessi-module/Dtos → accessi-service/dtos}/GetUserByTokenResponse.d.ts +0 -0
  1083. /package/dist/{accessi-module/Dtos → accessi-service/dtos}/GetUserByTokenResponse.js +0 -0
  1084. /package/dist/{accessi-module/Dtos → accessi-service/dtos}/GetUsersResponse.d.ts +0 -0
  1085. /package/dist/{accessi-module/Dtos → accessi-service/dtos}/GetUsersResponse.js +0 -0
  1086. /package/dist/{accessi-module/Dtos → accessi-service/dtos}/IntrospectionDtos.d.ts +0 -0
  1087. /package/dist/{accessi-module/Dtos → accessi-service/dtos}/IntrospectionDtos.js +0 -0
  1088. /package/dist/{accessi-module/Dtos → accessi-service/dtos}/LoginAsDtos.d.ts +0 -0
  1089. /package/dist/{accessi-module/Dtos → accessi-service/dtos}/LoginAsDtos.js +0 -0
  1090. /package/dist/{accessi-module/Dtos → accessi-service/dtos}/LoginRequest.d.ts +0 -0
  1091. /package/dist/{accessi-module/Dtos → accessi-service/dtos}/LoginRequest.js +0 -0
  1092. /package/dist/{accessi-module/Dtos → accessi-service/dtos}/LoginResponse.d.ts +0 -0
  1093. /package/dist/{accessi-module/Dtos → accessi-service/dtos}/LoginResponse.js +0 -0
  1094. /package/dist/{accessi-module/Dtos → accessi-service/dtos}/MenuItem.d.ts +0 -0
  1095. /package/dist/{accessi-module/Dtos → accessi-service/dtos}/MenuItem.js +0 -0
  1096. /package/dist/{accessi-module/Dtos → accessi-service/dtos}/Permission.d.ts +0 -0
  1097. /package/dist/{accessi-module/Dtos → accessi-service/dtos}/Permission.js +0 -0
  1098. /package/dist/{accessi-module/Dtos → accessi-service/dtos}/PublicRegisterRequest.d.ts +0 -0
  1099. /package/dist/{accessi-module/Dtos → accessi-service/dtos}/PublicRegisterRequest.js +0 -0
  1100. /package/dist/{accessi-module/Dtos → accessi-service/dtos}/RefreshTokenDtos.d.ts +0 -0
  1101. /package/dist/{accessi-module/Dtos → accessi-service/dtos}/RefreshTokenDtos.js +0 -0
  1102. /package/dist/{accessi-module/Dtos → accessi-service/dtos}/RegisterRequest.d.ts +0 -0
  1103. /package/dist/{accessi-module/Dtos → accessi-service/dtos}/RegisterRequest.js +0 -0
  1104. /package/dist/{accessi-module/Dtos → accessi-service/dtos}/RegisterResponse.d.ts +0 -0
  1105. /package/dist/{accessi-module/Dtos → accessi-service/dtos}/RegisterResponse.js +0 -0
  1106. /package/dist/{accessi-module/Dtos → accessi-service/dtos}/RevokeTokenRequest.d.ts +0 -0
  1107. /package/dist/{accessi-module/Dtos → accessi-service/dtos}/RevokeTokenRequest.js +0 -0
  1108. /package/dist/{accessi-module/Dtos → accessi-service/dtos}/Role.d.ts +0 -0
  1109. /package/dist/{accessi-module/Dtos → accessi-service/dtos}/Role.js +0 -0
  1110. /package/dist/{accessi-module/Dtos → accessi-service/dtos}/RuoliMenu.d.ts +0 -0
  1111. /package/dist/{accessi-module/Dtos → accessi-service/dtos}/RuoliMenu.js +0 -0
  1112. /package/dist/{accessi-module/Dtos → accessi-service/dtos}/SchemaDtos.d.ts +0 -0
  1113. /package/dist/{accessi-module/Dtos → accessi-service/dtos}/SchemaDtos.js +0 -0
  1114. /package/dist/{accessi-module/Dtos → accessi-service/dtos}/ScopeDtos.d.ts +0 -0
  1115. /package/dist/{accessi-module/Dtos → accessi-service/dtos}/ScopeDtos.js +0 -0
  1116. /package/dist/{accessi-module/Dtos → accessi-service/dtos}/SendResetPasswordEmailRequest.d.ts +0 -0
  1117. /package/dist/{accessi-module/Dtos → accessi-service/dtos}/SendResetPasswordEmailRequest.js +0 -0
  1118. /package/dist/{accessi-module/Dtos → accessi-service/dtos}/ServiceToken.d.ts +0 -0
  1119. /package/dist/{accessi-module/Dtos → accessi-service/dtos}/ServiceToken.js +0 -0
  1120. /package/dist/{accessi-module/Dtos → accessi-service/dtos}/SetStatoRegistrazione.d.ts +0 -0
  1121. /package/dist/{accessi-module/Dtos → accessi-service/dtos}/SetStatoRegistrazione.js +0 -0
  1122. /package/dist/{accessi-module/Dtos → accessi-service/dtos}/SetUserPasswordRequest.d.ts +0 -0
  1123. /package/dist/{accessi-module/Dtos → accessi-service/dtos}/SetUserPasswordRequest.js +0 -0
  1124. /package/dist/{accessi-module/Dtos → accessi-service/dtos}/StatoRegistrazione.d.ts +0 -0
  1125. /package/dist/{accessi-module/Dtos → accessi-service/dtos}/StatoRegistrazione.js +0 -0
  1126. /package/dist/{accessi-module/Dtos → accessi-service/dtos}/TipoAbilitazione.d.ts +0 -0
  1127. /package/dist/{accessi-module/Dtos → accessi-service/dtos}/TipoAbilitazione.js +0 -0
  1128. /package/dist/{accessi-module/Dtos → accessi-service/dtos}/TipoFiltro.d.ts +0 -0
  1129. /package/dist/{accessi-module/Dtos → accessi-service/dtos}/TipoFiltro.js +0 -0
  1130. /package/dist/{accessi-module/Dtos → accessi-service/dtos}/TokenResult.d.ts +0 -0
  1131. /package/dist/{accessi-module/Dtos → accessi-service/dtos}/TokenResult.js +0 -0
  1132. /package/dist/{accessi-module/Dtos → accessi-service/dtos}/TwoFactorDtos.d.ts +0 -0
  1133. /package/dist/{accessi-module/Dtos → accessi-service/dtos}/TwoFactorDtos.js +0 -0
  1134. /package/dist/{accessi-module/Dtos → accessi-service/dtos}/UpdateEnabledStatusRequest.d.ts +0 -0
  1135. /package/dist/{accessi-module/Dtos → accessi-service/dtos}/UpdateEnabledStatusRequest.js +0 -0
  1136. /package/dist/{accessi-module/Dtos → accessi-service/dtos}/UserDto.d.ts +0 -0
  1137. /package/dist/{accessi-module/Dtos → accessi-service/dtos}/UserDto.js +0 -0
  1138. /package/dist/{accessi-module/Dtos → accessi-service/dtos}/UserGrantsDto.d.ts +0 -0
  1139. /package/dist/{accessi-module/Dtos → accessi-service/dtos}/UserGrantsDto.js +0 -0
  1140. /package/dist/{accessi-module/Dtos → accessi-service/dtos}/UserGrantsResponse.d.ts +0 -0
  1141. /package/dist/{accessi-module/Dtos → accessi-service/dtos}/UserGrantsResponse.js +0 -0
  1142. /package/dist/{accessi-module/Dtos → accessi-service/dtos}/index.d.ts +0 -0
  1143. /package/dist/{accessi-module/Dtos → accessi-service/dtos}/index.js +0 -0
  1144. /package/dist/{accessi-module → accessi-service}/federated-auth/FederatedAuthTypes.js +0 -0
  1145. /package/dist/{accessi-module → accessi-service}/health/nest.d.ts +0 -0
  1146. /package/dist/{accessi-module → accessi-service}/health/nest.js +0 -0
  1147. /package/dist/{accessi-module → accessi-service}/health/readiness.d.ts +0 -0
  1148. /package/dist/{accessi-module → accessi-service}/health/readiness.js +0 -0
  1149. /package/dist/{accessi-module → accessi-service}/middleware/accessiRequirements.d.ts +0 -0
  1150. /package/dist/{accessi-module → accessi-service}/middleware/accessiRequirements.js +0 -0
  1151. /package/dist/{accessi-module → accessi-service}/observability/metrics.d.ts +0 -0
  1152. /package/dist/{accessi-module → accessi-service}/observability/metrics.js +0 -0
  1153. /package/dist/{accessi-module → accessi-service}/observability/redisMetrics.d.ts +0 -0
  1154. /package/dist/{accessi-module → accessi-service}/observability/redisMetrics.js +0 -0
  1155. /package/dist/{accessi-module → accessi-service}/security/AccessiHttpExceptionFilter.d.ts +0 -0
  1156. /package/dist/{accessi-module → accessi-service}/security/AccessiHttpExceptionFilter.js +0 -0
  1157. /package/dist/{accessi-module → accessi-service}/security/accessControl.d.ts +0 -0
  1158. /package/dist/{accessi-module → accessi-service}/security/accessControl.js +0 -0
  1159. /package/dist/{accessi-module → accessi-service}/security/accessTokenRevocation.d.ts +0 -0
  1160. /package/dist/{accessi-module → accessi-service}/security/accessTokenRevocation.js +0 -0
  1161. /package/dist/{accessi-module → accessi-service}/security/accessiValidation.d.ts +0 -0
  1162. /package/dist/{accessi-module → accessi-service}/security/accessiValidation.js +0 -0
  1163. /package/dist/{accessi-module → accessi-service}/security/adminBootstrap.d.ts +0 -0
  1164. /package/dist/{accessi-module → accessi-service}/security/adminBootstrap.js +0 -0
  1165. /package/dist/{accessi-module → accessi-service}/security/audit.d.ts +0 -0
  1166. /package/dist/{accessi-module → accessi-service}/security/audit.js +0 -0
  1167. /package/dist/{accessi-module → accessi-service}/security/auditSinks.d.ts +0 -0
  1168. /package/dist/{accessi-module → accessi-service}/security/auditSinks.js +0 -0
  1169. /package/dist/{accessi-module → accessi-service}/security/authCookies.d.ts +0 -0
  1170. /package/dist/{accessi-module → accessi-service}/security/authCookies.js +0 -0
  1171. /package/dist/{accessi-module → accessi-service}/security/consoleEntry.d.ts +0 -0
  1172. /package/dist/{accessi-module → accessi-service}/security/consoleEntry.js +0 -0
  1173. /package/dist/{accessi-module → accessi-service}/security/edgeRateLimit.d.ts +0 -0
  1174. /package/dist/{accessi-module → accessi-service}/security/edgeRateLimit.js +0 -0
  1175. /package/dist/{accessi-module → accessi-service}/security/emailConfiguration.d.ts +0 -0
  1176. /package/dist/{accessi-module → accessi-service}/security/emailConfiguration.js +0 -0
  1177. /package/dist/{accessi-module → accessi-service}/security/jwks.d.ts +0 -0
  1178. /package/dist/{accessi-module → accessi-service}/security/jwks.js +0 -0
  1179. /package/dist/{accessi-module → accessi-service}/security/jwksBootstrap.d.ts +0 -0
  1180. /package/dist/{accessi-module → accessi-service}/security/jwksBootstrap.js +0 -0
  1181. /package/dist/{accessi-module → accessi-service}/security/jwtTokenOptions.d.ts +0 -0
  1182. /package/dist/{accessi-module → accessi-service}/security/jwtTokenOptions.js +0 -0
  1183. /package/dist/{accessi-module → accessi-service}/security/loginAs.d.ts +0 -0
  1184. /package/dist/{accessi-module → accessi-service}/security/loginAs.js +0 -0
  1185. /package/dist/{accessi-module → accessi-service}/security/passwordPolicy.d.ts +0 -0
  1186. /package/dist/{accessi-module → accessi-service}/security/passwordPolicy.js +0 -0
  1187. /package/dist/{accessi-module → accessi-service}/security/passwordResetToken.d.ts +0 -0
  1188. /package/dist/{accessi-module → accessi-service}/security/passwordResetToken.js +0 -0
  1189. /package/dist/{accessi-module → accessi-service}/security/publicAuthRateLimit.d.ts +0 -0
  1190. /package/dist/{accessi-module → accessi-service}/security/publicAuthRateLimit.js +0 -0
  1191. /package/dist/{accessi-module → accessi-service}/security/rateLimitStore.d.ts +0 -0
  1192. /package/dist/{accessi-module → accessi-service}/security/rateLimitStore.js +0 -0
  1193. /package/dist/{accessi-module → accessi-service}/security/refreshTokenRotation.d.ts +0 -0
  1194. /package/dist/{accessi-module → accessi-service}/security/refreshTokenRotation.js +0 -0
  1195. /package/dist/{accessi-module → accessi-service}/security/securityHeaders.d.ts +0 -0
  1196. /package/dist/{accessi-module → accessi-service}/security/securityHeaders.js +0 -0
  1197. /package/dist/{accessi-module → accessi-service}/security/serviceTokenRateLimit.d.ts +0 -0
  1198. /package/dist/{accessi-module → accessi-service}/security/serviceTokenRateLimit.js +0 -0
  1199. /package/dist/{accessi-module → accessi-service}/security/sessionRevocation.d.ts +0 -0
  1200. /package/dist/{accessi-module → accessi-service}/security/sessionRevocation.js +0 -0
  1201. /package/dist/{accessi-module → accessi-service}/security/validateOptions.d.ts +0 -0
  1202. /package/dist/{accessi-module → accessi-service}/security/validateOptions.js +0 -0
  1203. /package/dist/{accessi-module/Services/ConfiguratorService → accessi-service/services/configurator-service}/ConfiguratorService.d.ts +0 -0
  1204. /package/dist/{accessi-module/Services/ConfiguratorService → accessi-service/services/configurator-service}/ConfiguratorService.js +0 -0
  1205. /package/dist/{accessi-module/Services/EmailService → accessi-service/services/email-service}/EmailService.d.ts +0 -0
  1206. /package/dist/{accessi-module/Services/SchemaExportService → accessi-service/services/schema-export-service}/SchemaExportService.d.ts +0 -0
  1207. /package/dist/{accessi-module/Services/SchemaExportService → accessi-service/services/schema-export-service}/SchemaExportService.js +0 -0
  1208. /package/dist/{accessi-module/Services/ServiceTokenService → accessi-service/services/service-token-service}/ServiceTokenService.d.ts +0 -0
  1209. /package/dist/{accessi-module/Services/ServiceTokenService → accessi-service/services/service-token-service}/ServiceTokenService.js +0 -0
  1210. /package/dist/{accessi-module → accessi-service}/startupLog.d.ts +0 -0
  1211. /package/dist/{accessi-module → accessi-service}/startupLog.js +0 -0
  1212. /package/dist/{accessi-module → accessi-service}/tenancy/tenantContext.d.ts +0 -0
  1213. /package/dist/{accessi-module → accessi-service}/tenancy/tenantContext.js +0 -0
  1214. /package/dist/{accessi-module/Views → accessi-service/views}/reset-password.html +0 -0
  1215. /package/dist/allegati-module/{Dtos → dtos}/AllegatoDto.d.ts +0 -0
  1216. /package/dist/allegati-module/{Dtos → dtos}/AllegatoDto.js +0 -0
  1217. /package/dist/allegati-module/{Dtos → dtos}/BaseResponse.d.ts +0 -0
  1218. /package/dist/allegati-module/{Dtos → dtos}/BaseResponse.js +0 -0
  1219. /package/dist/allegati-module/{Dtos → dtos}/UploadSingleFileRequest.d.ts +0 -0
  1220. /package/dist/allegati-module/{Dtos → dtos}/UploadSingleFileRequest.js +0 -0
  1221. /package/dist/allegati-module/{Dtos → dtos}/index.d.ts +0 -0
  1222. /package/dist/allegati-module/{Dtos → dtos}/index.js +0 -0
  1223. /package/dist/allegati-module/{Dtos → dtos}/responses/DownloadAllegatoResponseDto.d.ts +0 -0
  1224. /package/dist/allegati-module/{Dtos → dtos}/responses/DownloadAllegatoResponseDto.js +0 -0
  1225. /package/dist/allegati-module/{Dtos → dtos}/responses/GetListResponse.d.ts +0 -0
  1226. /package/dist/allegati-module/{Dtos → dtos}/responses/GetListResponse.js +0 -0
  1227. /package/dist/allegati-module/{Dtos → dtos}/responses/UploadAllegatoResponseDto.d.ts +0 -0
  1228. /package/dist/allegati-module/{Dtos → dtos}/responses/UploadAllegatoResponseDto.js +0 -0
  1229. /package/dist/allegati-module/{Services/AllegatiService → services/allegati-service}/AllegatiService.js +0 -0
  1230. /package/dist/{firebird-compat.d.ts → firebirdCompat.d.ts} +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"standalone.js","sourceRoot":"","sources":["../../../src/accessi/server/standalone.ts"],"names":[],"mappings":"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","sourcesContent":["import express from 'express';\nimport type { Application, Request, Response } from 'express';\nimport type { Server } from 'http';\nimport { Logger } from '../../Logger';\nimport { Orm } from '../../Orm';\nimport { initializeAccessiModule } from '../../accessi-module';\nimport type {\n AccessiModuleInitializationResult,\n} from '../../accessi-module';\nimport type { AccessiOptions } from '../../accessi-module/AccessiModule';\nimport { createAccessiOptionsFromEnv } from '../../accessi-module/database-updates/accessiOptionsFromEnv';\nimport {\n checkAccessiReadiness,\n createAccessiLiveReport,\n readinessHttpStatus,\n} from '../../accessi-module/health/readiness';\nimport type { AccessiReadinessCheck } from '../../accessi-module/health/readiness';\nimport { assertValidAccessiOptions, validateAccessiOptions } from '../../accessi-module/security/validateOptions';\nimport { renderAccessiMetrics } from '../../accessi-module/observability/metrics';\n\nexport type { AccessiReadinessCheck } from '../../accessi-module/health/readiness';\n\n\nexport interface AccessiServiceOptions {\n /** Applicazione Express gia esistente. Default: nuova app. */\n app?: Application;\n /** Configurazione completa. Default: `createAccessiOptionsFromEnv()`. */\n accessiOptions?: AccessiOptions;\n port?: number;\n host?: string;\n /** Path base degli endpoint health. Default: `/health`. */\n healthPath?: string;\n /** Espone `/health/metrics` in formato Prometheus. Default: true. */\n metrics?: boolean;\n /** Check aggiuntivi per la readiness. */\n readinessChecks?: AccessiReadinessCheck[];\n /** Timeout chiusura server. Default: 10000 ms. */\n shutdownTimeoutMs?: number;\n}\n\nexport interface AccessiService {\n app: Application;\n nestApp: AccessiModuleInitializationResult['nestApp'];\n document: AccessiModuleInitializationResult['document'];\n start(): Promise<Server>;\n stop(): Promise<void>;\n}\n\nfunction normalizePath(value: string): string {\n return `/${value.replace(/^\\/+|\\/+$/g, '')}`;\n}\n\nfunction createMetrics() {\n const startedAt = Date.now();\n let requests = 0;\n let inFlight = 0;\n const statuses = new Map<string, number>();\n\n const middleware = (_req: Request, res: Response, next: () => void): void => {\n requests += 1;\n inFlight += 1;\n res.on('finish', () => {\n inFlight = Math.max(0, inFlight - 1);\n const status = String(res.statusCode);\n statuses.set(status, (statuses.get(status) ?? 0) + 1);\n });\n next();\n };\n\n const render = (): string => {\n const memory = process.memoryUsage();\n const lines = [\n '# HELP accessi_http_requests_total Richieste HTTP totali.',\n '# TYPE accessi_http_requests_total counter',\n ...[...statuses.entries()].map(\n ([status, count]) => `accessi_http_requests_total{status=\"${status}\"} ${count}`,\n ),\n '# HELP accessi_http_in_flight Richieste HTTP in corso.',\n '# TYPE accessi_http_in_flight gauge',\n `accessi_http_in_flight ${inFlight}`,\n '# HELP accessi_process_uptime_seconds Uptime del processo.',\n '# TYPE accessi_process_uptime_seconds gauge',\n `accessi_process_uptime_seconds ${Math.floor((Date.now() - startedAt) / 1000)}`,\n '# HELP accessi_process_memory_bytes Memoria del processo.',\n '# TYPE accessi_process_memory_bytes gauge',\n `accessi_process_memory_bytes{type=\"rss\"} ${memory.rss}`,\n `accessi_process_memory_bytes{type=\"heapUsed\"} ${memory.heapUsed}`,\n `accessi_process_memory_bytes{type=\"heapTotal\"} ${memory.heapTotal}`,\n '# HELP accessi_http_requests_started_total Richieste HTTP avviate.',\n '# TYPE accessi_http_requests_started_total counter',\n `accessi_http_requests_started_total ${requests}`,\n ];\n return `${lines.join('\\n')}\\n`;\n };\n\n return { middleware, render };\n}\n\n/**\n * Crea un servizio Accessi standalone con health, readiness, metriche e shutdown.\n *\n * Non apre la porta finche non viene chiamato `start()`.\n */\nexport async function createAccessiService(\n options: AccessiServiceOptions = {},\n): Promise<AccessiService> {\n const logger = new Logger('AccessiService');\n const accessiOptions = options.accessiOptions ?? createAccessiOptionsFromEnv();\n assertValidAccessiOptions(accessiOptions);\n for (const warning of validateAccessiOptions(accessiOptions).warnings) {\n logger.warning(`Configurazione Accessi: ${warning.code} - ${warning.message}`);\n }\n\n const app = options.app ?? express();\n const healthPath = normalizePath(options.healthPath ?? '/health');\n const metrics = createMetrics();\n const readinessChecks = options.readinessChecks ?? [];\n let initialized = false;\n let nestApp: AccessiModuleInitializationResult['nestApp'] | undefined;\n let document: AccessiModuleInitializationResult['document'] | undefined;\n let server: Server | undefined;\n let stopping = false;\n\n app.use(metrics.middleware);\n\n app.get(`${healthPath}/live`, (_req: Request, res: Response) => {\n res.status(200).json(createAccessiLiveReport());\n });\n\n app.get(`${healthPath}/ready`, async (_req: Request, res: Response) => {\n if (!initialized || !nestApp) {\n res.status(503).json({\n status: 'error',\n checks: { bootstrap: { ok: false, detail: 'bootstrap non completato' } },\n });\n return;\n }\n\n const report = await checkAccessiReadiness(accessiOptions, readinessChecks);\n res.status(readinessHttpStatus(report)).json(report);\n });\n\n if (options.metrics !== false) {\n app.get(`${healthPath}/metrics`, (_req: Request, res: Response) => {\n res.setHeader('Content-Type', 'text/plain; version=0.0.4');\n res.status(200).send(`${metrics.render()}${renderAccessiMetrics()}`);\n });\n }\n\n const result = await initializeAccessiModule(app, accessiOptions);\n nestApp = result.nestApp;\n document = result.document;\n initialized = true;\n\n const stop = async (): Promise<void> => {\n if (stopping) return;\n stopping = true;\n const timeout = Math.max(1_000, options.shutdownTimeoutMs ?? 10_000);\n await Promise.race([\n new Promise<void>((resolve) => {\n if (!server) return resolve();\n server.close(() => resolve());\n }),\n new Promise<void>((resolve) => setTimeout(resolve, timeout)),\n ]);\n try {\n await nestApp?.close();\n } finally {\n await Orm.closePools();\n }\n };\n\n const start = async (): Promise<Server> => {\n if (server) return server;\n const port = options.port ?? Number(process.env.PORT ?? 3000);\n server = await new Promise<Server>((resolve, reject) => {\n const listener = options.host\n ? app.listen(port, options.host, () => resolve(listener))\n : app.listen(port, () => resolve(listener));\n listener.once('error', reject);\n });\n const address = server.address();\n const actualPort = typeof address === 'object' && address ? address.port : port;\n logger.info(`Accessi Service in ascolto su http://${options.host ?? '0.0.0.0'}:${actualPort}`);\n return server;\n };\n\n return {\n app,\n get nestApp() {\n if (!nestApp) throw new Error('Accessi Service non inizializzato.');\n return nestApp;\n },\n get document() {\n if (!document) throw new Error('Documento OpenAPI non disponibile.');\n return document;\n },\n start,\n stop,\n };\n}\n\n/**\n * Avvia Accessi Service e registra SIGTERM/SIGINT per lo shutdown graceful.\n */\nexport async function startAccessiService(options: AccessiServiceOptions = {}): Promise<AccessiService> {\n const service = await createAccessiService(options);\n await service.start();\n\n let shuttingDown = false;\n const shutdown = async (signal: string): Promise<void> => {\n if (shuttingDown) return;\n shuttingDown = true;\n new Logger('AccessiService').info(`Ricevuto ${signal}: arresto in corso.`);\n await service.stop();\n };\n\n process.once('SIGTERM', () => { void shutdown('SIGTERM'); });\n process.once('SIGINT', () => { void shutdown('SIGINT'); });\n return service;\n}\n"]}
1
+ {"version":3,"file":"standalone.js","sourceRoot":"","sources":["../../../src/accessi/server/standalone.ts"],"names":[],"mappings":"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","sourcesContent":["import express from 'express';\nimport type { Application, Request, Response } from 'express';\nimport type { Server } from 'http';\nimport { Logger } from '../../Logger';\nimport { Orm } from '../../Orm';\nimport { initializeAccessiModule } from '../../accessi-service';\nimport type {\n AccessiModuleInitializationResult,\n} from '../../accessi-service';\nimport type { AccessiOptions } from '../../accessi-service/AccessiModule';\nimport { createAccessiOptionsFromEnv } from '../../accessi-service/database-updates/accessiOptionsFromEnv';\nimport {\n checkAccessiReadiness,\n createAccessiLiveReport,\n readinessHttpStatus,\n} from '../../accessi-service/health/readiness';\nimport type { AccessiReadinessCheck } from '../../accessi-service/health/readiness';\nimport { assertValidAccessiOptions, validateAccessiOptions } from '../../accessi-service/security/validateOptions';\nimport { renderAccessiMetrics } from '../../accessi-service/observability/metrics';\n\nexport type { AccessiReadinessCheck } from '../../accessi-service/health/readiness';\n\n\nexport interface AccessiServiceOptions {\n /** Applicazione Express gia esistente. Default: nuova app. */\n app?: Application;\n /** Configurazione completa. Default: `createAccessiOptionsFromEnv()`. */\n accessiOptions?: AccessiOptions;\n port?: number;\n host?: string;\n /** Path base degli endpoint health. Default: `/health`. */\n healthPath?: string;\n /** Espone `/health/metrics` in formato Prometheus. Default: true. */\n metrics?: boolean;\n /** Check aggiuntivi per la readiness. */\n readinessChecks?: AccessiReadinessCheck[];\n /** Timeout chiusura server. Default: 10000 ms. */\n shutdownTimeoutMs?: number;\n}\n\nexport interface AccessiService {\n app: Application;\n nestApp: AccessiModuleInitializationResult['nestApp'];\n document: AccessiModuleInitializationResult['document'];\n start(): Promise<Server>;\n stop(): Promise<void>;\n}\n\nfunction normalizePath(value: string): string {\n return `/${value.replace(/^\\/+|\\/+$/g, '')}`;\n}\n\nfunction createMetrics() {\n const startedAt = Date.now();\n let requests = 0;\n let inFlight = 0;\n const statuses = new Map<string, number>();\n\n const middleware = (_req: Request, res: Response, next: () => void): void => {\n requests += 1;\n inFlight += 1;\n res.on('finish', () => {\n inFlight = Math.max(0, inFlight - 1);\n const status = String(res.statusCode);\n statuses.set(status, (statuses.get(status) ?? 0) + 1);\n });\n next();\n };\n\n const render = (): string => {\n const memory = process.memoryUsage();\n const lines = [\n '# HELP accessi_http_requests_total Richieste HTTP totali.',\n '# TYPE accessi_http_requests_total counter',\n ...[...statuses.entries()].map(\n ([status, count]) => `accessi_http_requests_total{status=\"${status}\"} ${count}`,\n ),\n '# HELP accessi_http_in_flight Richieste HTTP in corso.',\n '# TYPE accessi_http_in_flight gauge',\n `accessi_http_in_flight ${inFlight}`,\n '# HELP accessi_process_uptime_seconds Uptime del processo.',\n '# TYPE accessi_process_uptime_seconds gauge',\n `accessi_process_uptime_seconds ${Math.floor((Date.now() - startedAt) / 1000)}`,\n '# HELP accessi_process_memory_bytes Memoria del processo.',\n '# TYPE accessi_process_memory_bytes gauge',\n `accessi_process_memory_bytes{type=\"rss\"} ${memory.rss}`,\n `accessi_process_memory_bytes{type=\"heapUsed\"} ${memory.heapUsed}`,\n `accessi_process_memory_bytes{type=\"heapTotal\"} ${memory.heapTotal}`,\n '# HELP accessi_http_requests_started_total Richieste HTTP avviate.',\n '# TYPE accessi_http_requests_started_total counter',\n `accessi_http_requests_started_total ${requests}`,\n ];\n return `${lines.join('\\n')}\\n`;\n };\n\n return { middleware, render };\n}\n\n/**\n * Crea un servizio Accessi standalone con health, readiness, metriche e shutdown.\n *\n * Non apre la porta finche non viene chiamato `start()`.\n */\nexport async function createAccessiService(\n options: AccessiServiceOptions = {},\n): Promise<AccessiService> {\n const logger = new Logger('AccessiService');\n const accessiOptions = options.accessiOptions ?? createAccessiOptionsFromEnv();\n assertValidAccessiOptions(accessiOptions);\n for (const warning of validateAccessiOptions(accessiOptions).warnings) {\n logger.warning(`Configurazione Accessi: ${warning.code} - ${warning.message}`);\n }\n\n const app = options.app ?? express();\n const healthPath = normalizePath(options.healthPath ?? '/health');\n const metrics = createMetrics();\n const readinessChecks = options.readinessChecks ?? [];\n let initialized = false;\n let nestApp: AccessiModuleInitializationResult['nestApp'] | undefined;\n let document: AccessiModuleInitializationResult['document'] | undefined;\n let server: Server | undefined;\n let stopping = false;\n\n app.use(metrics.middleware);\n\n app.get(`${healthPath}/live`, (_req: Request, res: Response) => {\n res.status(200).json(createAccessiLiveReport());\n });\n\n app.get(`${healthPath}/ready`, async (_req: Request, res: Response) => {\n if (!initialized || !nestApp) {\n res.status(503).json({\n status: 'error',\n checks: { bootstrap: { ok: false, detail: 'bootstrap non completato' } },\n });\n return;\n }\n\n const report = await checkAccessiReadiness(accessiOptions, readinessChecks);\n res.status(readinessHttpStatus(report)).json(report);\n });\n\n if (options.metrics !== false) {\n app.get(`${healthPath}/metrics`, (_req: Request, res: Response) => {\n res.setHeader('Content-Type', 'text/plain; version=0.0.4');\n res.status(200).send(`${metrics.render()}${renderAccessiMetrics()}`);\n });\n }\n\n const result = await initializeAccessiModule(app, accessiOptions);\n nestApp = result.nestApp;\n document = result.document;\n initialized = true;\n\n const stop = async (): Promise<void> => {\n if (stopping) return;\n stopping = true;\n const timeout = Math.max(1_000, options.shutdownTimeoutMs ?? 10_000);\n await Promise.race([\n new Promise<void>((resolve) => {\n if (!server) return resolve();\n server.close(() => resolve());\n }),\n new Promise<void>((resolve) => setTimeout(resolve, timeout)),\n ]);\n try {\n await nestApp?.close();\n } finally {\n await Orm.closePools();\n }\n };\n\n const start = async (): Promise<Server> => {\n if (server) return server;\n const port = options.port ?? Number(process.env.PORT ?? 3000);\n server = await new Promise<Server>((resolve, reject) => {\n const listener = options.host\n ? app.listen(port, options.host, () => resolve(listener))\n : app.listen(port, () => resolve(listener));\n listener.once('error', reject);\n });\n const address = server.address();\n const actualPort = typeof address === 'object' && address ? address.port : port;\n logger.info(`Accessi Service in ascolto su http://${options.host ?? '0.0.0.0'}:${actualPort}`);\n return server;\n };\n\n return {\n app,\n get nestApp() {\n if (!nestApp) throw new Error('Accessi Service non inizializzato.');\n return nestApp;\n },\n get document() {\n if (!document) throw new Error('Documento OpenAPI non disponibile.');\n return document;\n },\n start,\n stop,\n };\n}\n\n/**\n * Avvia Accessi Service e registra SIGTERM/SIGINT per lo shutdown graceful.\n */\nexport async function startAccessiService(options: AccessiServiceOptions = {}): Promise<AccessiService> {\n const service = await createAccessiService(options);\n await service.start();\n\n let shuttingDown = false;\n const shutdown = async (signal: string): Promise<void> => {\n if (shuttingDown) return;\n shuttingDown = true;\n new Logger('AccessiService').info(`Ricevuto ${signal}: arresto in corso.`);\n await service.stop();\n };\n\n process.once('SIGTERM', () => { void shutdown('SIGTERM'); });\n process.once('SIGINT', () => { void shutdown('SIGINT'); });\n return service;\n}\n"]}
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.createAccessiTenantRouter = createAccessiTenantRouter;
4
- const tenantContext_1 = require("../../accessi-module/tenancy/tenantContext");
4
+ const tenantContext_1 = require("../../accessi-service/tenancy/tenantContext");
5
5
  function defaultHeader(request, name) {
6
6
  const value = request.headers[name];
7
7
  if (Array.isArray(value))
@@ -1 +1 @@
1
- {"version":3,"file":"tenantRouter.js","sourceRoot":"","sources":["../../../src/accessi/server/tenantRouter.ts"],"names":[],"mappings":";;AA6EA,8DA2CC;AAtHD,8EAAkF;AAwBlF,SAAS,aAAa,CAAC,OAAgB,EAAE,IAAY;IACnD,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IACpC,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC;IAC1C,OAAO,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;AACvD,CAAC;AAED,SAAS,WAAW,CAAC,OAAgB;IACnC,IAAI,OAAO,OAAO,CAAC,IAAI,KAAK,QAAQ,IAAI,OAAO,CAAC,IAAI,KAAK,EAAE;QAAE,OAAO,OAAO,CAAC,IAAI,CAAC;IACjF,MAAM,GAAG,GAAG,OAAO,OAAO,CAAC,GAAG,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;IAChE,MAAM,KAAK,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IAC/B,OAAO,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;AAChD,CAAC;AAED,SAAS,UAAU,CACjB,QAAsD,EACtD,QAAgB;IAEhB,IAAI,QAAQ,YAAY,GAAG;QAAE,OAAO,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IAC3D,OAAO,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,QAAQ,EAAE,QAAQ,CAAC;QAC7D,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC;QACpB,CAAC,CAAC,SAAS,CAAC;AAChB,CAAC;AAED,SAAS,eAAe,CACtB,GAAa,EACb,MAAc,EACd,IAAY,EACZ,OAAe;IAEf,OAAO,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC;QAC7B,QAAQ,EAAE,OAAO;QACjB,MAAM;QACN,UAAU,EAAE,CAAC;QACb,IAAI;QACJ,KAAK,EAAE,IAAI;QACX,OAAO;KACR,CAAC,CAAC;AACL,CAAC;AAED;;;;;;;;;;;GAWG;AACH,SAAgB,yBAAyB,CACvC,OAAyC;;IAEzC,IAAI,CAAC,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,QAAQ,CAAA;QAAE,MAAM,IAAI,KAAK,CAAC,mDAAmD,CAAC,CAAC;IAC7F,IAAI,CAAC,OAAO,CAAC,QAAQ;QAAE,MAAM,IAAI,KAAK,CAAC,mDAAmD,CAAC,CAAC;IAE5F,MAAM,UAAU,GAAG,CAAC,MAAA,OAAO,CAAC,UAAU,mCAAI,kBAAkB,CAAC,CAAC,WAAW,EAAE,CAAC;IAC5E,MAAM,QAAQ,GAAG,MAAA,OAAO,CAAC,UAAU,mCAAI,CAAC,CAAC,IAAa,EAAE,GAAa,EAAE,EAAE,CAAC,eAAe,CACvF,GAAG,EACH,GAAG,EACH,0BAA0B,EAC1B,yDAAyD,CAC1D,CAAC,CAAC;IACH,MAAM,cAAc,GAAG,MAAA,OAAO,CAAC,gBAAgB,mCAAI,CAAC,CAAC,IAAa,EAAE,GAAa,EAAE,EAAE,CAAC,eAAe,CACnG,GAAG,EACH,GAAG,EACH,gCAAgC,EAChC,+CAA+C,CAChD,CAAC,CAAC;IAEH,OAAO,CAAC,OAAgB,EAAE,QAAkB,EAAE,IAAkB,EAAwB,EAAE;QACxF,MAAM,UAAU,GAAG,OAAO,CAAC,QAAQ,CAAC,OAAO,+CAEpC,CAAC,OAAO,OAAO,CAAC,OAAO,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,KACnF,IAAI,EAAE,WAAW,CAAC,OAAO,CAAC,KACvB,CAAC,aAAa,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,aAAa,CAAC,OAAO,EAAE,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,GAE/F,OAAO,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,SAAS,CACrF,CAAC;QAEF,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,QAAQ,CAAC,OAAO,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC;YAClC,OAAO;QACT,CAAC;QACD,MAAM,OAAO,GAAG,UAAU,CAAC,OAAO,CAAC,QAAQ,EAAE,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QACnE,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,cAAc,CAAC,OAAO,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC;YACxC,OAAO;QACT,CAAC;QAEA,OAAqC,CAAC,aAAa,GAAG,UAAU,CAAC,MAAM,CAAC;QACzE,OAAO,IAAA,oCAAoB,EAAC,UAAU,CAAC,MAAM,CAAC,EAAE,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,OAAO,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAyB,CAAC;IACpH,CAAC,CAAC;AACJ,CAAC","sourcesContent":["import type { NextFunction, Request, RequestHandler, Response } from 'express';\nimport type { AccessiTenant, AccessiTenantRegistry } from './tenants';\nimport { runWithAccessiTenant } from '../../accessi-module/tenancy/tenantContext';\n\n/** Request arricchita dal router con il tenant risolto. */\nexport interface AccessiTenantAwareRequest extends Request {\n accessiTenant?: AccessiTenant;\n}\n\nexport interface CreateAccessiTenantRouterOptions {\n registry: AccessiTenantRegistry;\n /**\n * Handler per tenant. Ogni handler deve essere indipendente (per esempio\n * l'app Express di un `createAccessiService` gia inizializzato).\n */\n handlers: Record<string, RequestHandler> | Map<string, RequestHandler>;\n /** Abilita l'header `x-accessi-tenant`. Default: false. */\n allowHeader?: boolean;\n /** Nome header tenant. Default `x-accessi-tenant`. */\n headerName?: string;\n /** Risposta quando nessun tenant corrisponde. Default: 404 JSON Accessi. */\n onNotFound?: RequestHandler;\n /** Risposta quando il tenant esiste ma non ha handler. Default: 501 JSON. */\n onMissingHandler?: RequestHandler;\n}\n\nfunction defaultHeader(request: Request, name: string): string | undefined {\n const value = request.headers[name];\n if (Array.isArray(value)) return value[0];\n return typeof value === 'string' ? value : undefined;\n}\n\nfunction requestPath(request: Request): string {\n if (typeof request.path === 'string' && request.path !== '') return request.path;\n const url = typeof request.url === 'string' ? request.url : '/';\n const query = url.indexOf('?');\n return query >= 0 ? url.slice(0, query) : url;\n}\n\nfunction getHandler(\n handlers: CreateAccessiTenantRouterOptions['handlers'],\n tenantId: string,\n): RequestHandler | undefined {\n if (handlers instanceof Map) return handlers.get(tenantId);\n return Object.prototype.hasOwnProperty.call(handlers, tenantId)\n ? handlers[tenantId]\n : undefined;\n}\n\nfunction sendTenantError(\n res: Response,\n status: number,\n code: string,\n message: string,\n): Response {\n return res.status(status).json({\n severity: 'error',\n status,\n statusCode: 2,\n code,\n error: code,\n message,\n });\n}\n\n/**\n * Router multi-tenant in-process (opt-in, fase 4 ADR).\n *\n * Risolve il tenant da host, path e header fidato, poi delega al suo handler\n * dentro `runWithAccessiTenant`: audit e metriche emessi durante la richiesta\n * ricevono il label `tenant`. Nessun fallback implicito: un host/path\n * sconosciuto risponde 404 e non usa il primo tenant disponibile.\n *\n * Non sostituisce il processo-per-tenant come default: gli handler restano\n * applicazioni indipendenti e le API globali (`authorizeAccessi`,\n * `setAccessiAuthService`) non sono tenant-aware.\n */\nexport function createAccessiTenantRouter(\n options: CreateAccessiTenantRouterOptions,\n): RequestHandler {\n if (!options?.registry) throw new Error('createAccessiTenantRouter: registry obbligatorio.');\n if (!options.handlers) throw new Error('createAccessiTenantRouter: handlers obbligatorio.');\n\n const headerName = (options.headerName ?? 'x-accessi-tenant').toLowerCase();\n const notFound = options.onNotFound ?? ((_req: Request, res: Response) => sendTenantError(\n res,\n 404,\n 'ACCESSI_TENANT_NOT_FOUND',\n 'Nessun tenant Accessi configurato per questa richiesta.',\n ));\n const missingHandler = options.onMissingHandler ?? ((_req: Request, res: Response) => sendTenantError(\n res,\n 501,\n 'ACCESSI_TENANT_HANDLER_MISSING',\n 'Tenant risolto ma nessun handler configurato.',\n ));\n\n return (request: Request, response: Response, next: NextFunction): void | Promise<void> => {\n const resolution = options.registry.resolve(\n {\n ...(typeof request.headers.host === 'string' ? { host: request.headers.host } : {}),\n path: requestPath(request),\n ...(defaultHeader(request, headerName) ? { header: defaultHeader(request, headerName) } : {}),\n },\n options.allowHeader !== undefined ? { allowHeader: options.allowHeader } : undefined,\n );\n\n if (!resolution) {\n notFound(request, response, next);\n return;\n }\n const handler = getHandler(options.handlers, resolution.tenant.id);\n if (!handler) {\n missingHandler(request, response, next);\n return;\n }\n\n (request as AccessiTenantAwareRequest).accessiTenant = resolution.tenant;\n return runWithAccessiTenant(resolution.tenant.id, () => handler(request, response, next)) as void | Promise<void>;\n };\n}\n"]}
1
+ {"version":3,"file":"tenantRouter.js","sourceRoot":"","sources":["../../../src/accessi/server/tenantRouter.ts"],"names":[],"mappings":"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","sourcesContent":["import type { NextFunction, Request, RequestHandler, Response } from 'express';\nimport type { AccessiTenant, AccessiTenantRegistry } from './tenants';\nimport { runWithAccessiTenant } from '../../accessi-service/tenancy/tenantContext';\n\n/** Request arricchita dal router con il tenant risolto. */\nexport interface AccessiTenantAwareRequest extends Request {\n accessiTenant?: AccessiTenant;\n}\n\nexport interface CreateAccessiTenantRouterOptions {\n registry: AccessiTenantRegistry;\n /**\n * Handler per tenant. Ogni handler deve essere indipendente (per esempio\n * l'app Express di un `createAccessiService` gia inizializzato).\n */\n handlers: Record<string, RequestHandler> | Map<string, RequestHandler>;\n /** Abilita l'header `x-accessi-tenant`. Default: false. */\n allowHeader?: boolean;\n /** Nome header tenant. Default `x-accessi-tenant`. */\n headerName?: string;\n /** Risposta quando nessun tenant corrisponde. Default: 404 JSON Accessi. */\n onNotFound?: RequestHandler;\n /** Risposta quando il tenant esiste ma non ha handler. Default: 501 JSON. */\n onMissingHandler?: RequestHandler;\n}\n\nfunction defaultHeader(request: Request, name: string): string | undefined {\n const value = request.headers[name];\n if (Array.isArray(value)) return value[0];\n return typeof value === 'string' ? value : undefined;\n}\n\nfunction requestPath(request: Request): string {\n if (typeof request.path === 'string' && request.path !== '') return request.path;\n const url = typeof request.url === 'string' ? request.url : '/';\n const query = url.indexOf('?');\n return query >= 0 ? url.slice(0, query) : url;\n}\n\nfunction getHandler(\n handlers: CreateAccessiTenantRouterOptions['handlers'],\n tenantId: string,\n): RequestHandler | undefined {\n if (handlers instanceof Map) return handlers.get(tenantId);\n return Object.prototype.hasOwnProperty.call(handlers, tenantId)\n ? handlers[tenantId]\n : undefined;\n}\n\nfunction sendTenantError(\n res: Response,\n status: number,\n code: string,\n message: string,\n): Response {\n return res.status(status).json({\n severity: 'error',\n status,\n statusCode: 2,\n code,\n error: code,\n message,\n });\n}\n\n/**\n * Router multi-tenant in-process (opt-in, fase 4 ADR).\n *\n * Risolve il tenant da host, path e header fidato, poi delega al suo handler\n * dentro `runWithAccessiTenant`: audit e metriche emessi durante la richiesta\n * ricevono il label `tenant`. Nessun fallback implicito: un host/path\n * sconosciuto risponde 404 e non usa il primo tenant disponibile.\n *\n * Non sostituisce il processo-per-tenant come default: gli handler restano\n * applicazioni indipendenti e le API globali (`authorizeAccessi`,\n * `setAccessiAuthService`) non sono tenant-aware.\n */\nexport function createAccessiTenantRouter(\n options: CreateAccessiTenantRouterOptions,\n): RequestHandler {\n if (!options?.registry) throw new Error('createAccessiTenantRouter: registry obbligatorio.');\n if (!options.handlers) throw new Error('createAccessiTenantRouter: handlers obbligatorio.');\n\n const headerName = (options.headerName ?? 'x-accessi-tenant').toLowerCase();\n const notFound = options.onNotFound ?? ((_req: Request, res: Response) => sendTenantError(\n res,\n 404,\n 'ACCESSI_TENANT_NOT_FOUND',\n 'Nessun tenant Accessi configurato per questa richiesta.',\n ));\n const missingHandler = options.onMissingHandler ?? ((_req: Request, res: Response) => sendTenantError(\n res,\n 501,\n 'ACCESSI_TENANT_HANDLER_MISSING',\n 'Tenant risolto ma nessun handler configurato.',\n ));\n\n return (request: Request, response: Response, next: NextFunction): void | Promise<void> => {\n const resolution = options.registry.resolve(\n {\n ...(typeof request.headers.host === 'string' ? { host: request.headers.host } : {}),\n path: requestPath(request),\n ...(defaultHeader(request, headerName) ? { header: defaultHeader(request, headerName) } : {}),\n },\n options.allowHeader !== undefined ? { allowHeader: options.allowHeader } : undefined,\n );\n\n if (!resolution) {\n notFound(request, response, next);\n return;\n }\n const handler = getHandler(options.handlers, resolution.tenant.id);\n if (!handler) {\n missingHandler(request, response, next);\n return;\n }\n\n (request as AccessiTenantAwareRequest).accessiTenant = resolution.tenant;\n return runWithAccessiTenant(resolution.tenant.id, () => handler(request, response, next)) as void | Promise<void>;\n };\n}\n"]}
@@ -1,9 +1,9 @@
1
- import type { AccessiOptions } from '../../accessi-module/AccessiModule';
2
- import type { RateLimitStore } from '../../accessi-module/security/rateLimitStore';
3
- import type { ConsoleEntryStore } from '../../accessi-module/security/consoleEntry';
4
- import type { SessionRevocationStore } from '../../accessi-module/security/sessionRevocation';
5
- import type { AccessTokenRevocationStore } from '../../accessi-module/security/accessTokenRevocation';
6
- import type { RefreshTokenRotationStore } from '../../accessi-module/security/refreshTokenRotation';
1
+ import type { AccessiOptions } from '../../accessi-service/AccessiModule';
2
+ import type { RateLimitStore } from '../../accessi-service/security/rateLimitStore';
3
+ import type { ConsoleEntryStore } from '../../accessi-service/security/consoleEntry';
4
+ import type { SessionRevocationStore } from '../../accessi-service/security/sessionRevocation';
5
+ import type { AccessTokenRevocationStore } from '../../accessi-service/security/accessTokenRevocation';
6
+ import type { RefreshTokenRotationStore } from '../../accessi-service/security/refreshTokenRotation';
7
7
  /** Client Redis minimo accettato dagli store Accessi. */
8
8
  export interface AccessiTenantRedisClient {
9
9
  eval(script: string, numKeys: number, ...args: Array<string | number>): Promise<unknown>;
@@ -3,11 +3,11 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.getAccessiTenantStorePrefixes = getAccessiTenantStorePrefixes;
4
4
  exports.createAccessiTenantStores = createAccessiTenantStores;
5
5
  const tenants_1 = require("./tenants");
6
- const rateLimitStore_1 = require("../../accessi-module/security/rateLimitStore");
7
- const consoleEntry_1 = require("../../accessi-module/security/consoleEntry");
8
- const sessionRevocation_1 = require("../../accessi-module/security/sessionRevocation");
9
- const accessTokenRevocation_1 = require("../../accessi-module/security/accessTokenRevocation");
10
- const refreshTokenRotation_1 = require("../../accessi-module/security/refreshTokenRotation");
6
+ const rateLimitStore_1 = require("../../accessi-service/security/rateLimitStore");
7
+ const consoleEntry_1 = require("../../accessi-service/security/consoleEntry");
8
+ const sessionRevocation_1 = require("../../accessi-service/security/sessionRevocation");
9
+ const accessTokenRevocation_1 = require("../../accessi-service/security/accessTokenRevocation");
10
+ const refreshTokenRotation_1 = require("../../accessi-service/security/refreshTokenRotation");
11
11
  /**
12
12
  * Prefissi Redis isolati per tenant.
13
13
  *
@@ -1 +1 @@
1
- {"version":3,"file":"tenantStores.js","sourceRoot":"","sources":["../../../src/accessi/server/tenantStores.ts"],"names":[],"mappings":"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","sourcesContent":["import type { AccessiOptions } from '../../accessi-module/AccessiModule';\nimport { getAccessiTenantRedisPrefix } from './tenants';\nimport { createRedisRateLimitStore } from '../../accessi-module/security/rateLimitStore';\nimport type { RateLimitStore } from '../../accessi-module/security/rateLimitStore';\nimport { createRedisConsoleEntryStore } from '../../accessi-module/security/consoleEntry';\nimport type { ConsoleEntryStore } from '../../accessi-module/security/consoleEntry';\nimport { createRedisSessionRevocationStore } from '../../accessi-module/security/sessionRevocation';\nimport type { SessionRevocationStore } from '../../accessi-module/security/sessionRevocation';\nimport { createRedisAccessTokenRevocationStore } from '../../accessi-module/security/accessTokenRevocation';\nimport type { AccessTokenRevocationStore } from '../../accessi-module/security/accessTokenRevocation';\nimport { createRedisRefreshTokenRotationStore } from '../../accessi-module/security/refreshTokenRotation';\nimport type { RefreshTokenRotationStore } from '../../accessi-module/security/refreshTokenRotation';\n\n/** Client Redis minimo accettato dagli store Accessi. */\nexport interface AccessiTenantRedisClient {\n eval(script: string, numKeys: number, ...args: Array<string | number>): Promise<unknown>;\n}\n\n/** Prefissi Redis per singolo store, tutti relativi al tenant. */\nexport interface AccessiTenantStorePrefixes {\n base?: string;\n rateLimit?: string;\n serviceTokenRateLimit?: string;\n sessionRevocation?: string;\n accessTokenRevocation?: string;\n refreshTokenRotation?: string;\n refreshTokenFamily?: string;\n consoleEntry?: string;\n}\n\nexport interface ResolvedAccessiTenantStorePrefixes {\n base: string;\n rateLimit: string;\n serviceTokenRateLimit: string;\n sessionRevocation: string;\n accessTokenRevocation: string;\n refreshTokenRotation: string;\n refreshTokenFamily: string;\n consoleEntry: string;\n}\n\nexport interface CreateAccessiTenantStoresOptions {\n tenantId: string;\n client: AccessiTenantRedisClient;\n /** Segreto per cifrare i ticket console a riposo. Usare un segreto del tenant. */\n encryptionKey: string | Buffer;\n /** Base prefix. Default: `accessi:<tenantId>:`. */\n prefix?: string;\n prefixes?: AccessiTenantStorePrefixes;\n /** TTL revoca sessioni. Default dello store (365 giorni). */\n sessionRevocationTtlMs?: number;\n /** TTL revoca jti. Default dello store (24 ore). */\n accessTokenRevocationTtlMs?: number;\n consoleEntryMaxIssueAttempts?: number;\n /** Attiva la rotazione refresh token nell'options risultante. Default: true. */\n enableRefreshTokenRotation?: boolean;\n}\n\nexport interface AccessiTenantStores {\n tenantId: string;\n prefixes: ResolvedAccessiTenantStorePrefixes;\n rateLimit: RateLimitStore;\n serviceTokenRateLimit: RateLimitStore;\n sessionRevocation: SessionRevocationStore;\n accessTokenRevocation: AccessTokenRevocationStore;\n refreshTokenRotation: RefreshTokenRotationStore;\n consoleEntry: ConsoleEntryStore;\n /** Collega tutti gli store alle opzioni Accessi del tenant. */\n applyTo(options: AccessiOptions): AccessiOptions;\n}\n\n/**\n * Prefissi Redis isolati per tenant.\n *\n * Ogni store ha un namespace distinto: condividere un prefisso tra tenant\n * significherebbe condividere rate limit, revoche o refresh token.\n */\nexport function getAccessiTenantStorePrefixes(\n tenantId: string,\n overrides: AccessiTenantStorePrefixes = {},\n): ResolvedAccessiTenantStorePrefixes {\n const base = overrides.base ?? getAccessiTenantRedisPrefix(tenantId);\n return {\n base,\n rateLimit: overrides.rateLimit ?? `${base}rate:`,\n serviceTokenRateLimit: overrides.serviceTokenRateLimit ?? `${base}service-token-rate:`,\n sessionRevocation: overrides.sessionRevocation ?? `${base}session:`,\n accessTokenRevocation: overrides.accessTokenRevocation ?? `${base}jti:`,\n refreshTokenRotation: overrides.refreshTokenRotation ?? `${base}refresh:`,\n refreshTokenFamily: overrides.refreshTokenFamily ?? `${base}refresh-family:`,\n consoleEntry: overrides.consoleEntry ?? `${base}console-entry:`,\n };\n}\n\n/**\n * Crea tutti gli store Redis di un tenant con prefissi gia isolati.\n *\n * `applyTo` restituisce una copia delle opzioni con gli store collegati:\n * `publicAuthRateLimit`, `serviceTokens`, `sessionRevocation`,\n * `accessTokenRevocation`, `refreshTokenRotation` e `consoleEntry`.\n */\nexport function createAccessiTenantStores(\n options: CreateAccessiTenantStoresOptions,\n): AccessiTenantStores {\n if (!options?.tenantId || !/^[a-z0-9][a-z0-9_-]{0,62}$/.test(options.tenantId)) {\n throw new Error('createAccessiTenantStores: tenantId non valido.');\n }\n if (!options.client || typeof options.client.eval !== 'function') {\n throw new Error('createAccessiTenantStores: client.eval non configurato.');\n }\n const encryptionKey = options.encryptionKey;\n if (encryptionKey === undefined || encryptionKey === null || encryptionKey.length === 0) {\n throw new Error('createAccessiTenantStores: encryptionKey obbligatoria per i ticket console.');\n }\n\n const prefixes = getAccessiTenantStorePrefixes(options.tenantId, {\n ...(options.prefix ? { base: options.prefix } : {}),\n ...(options.prefixes ?? {}),\n });\n const { client } = options;\n const enableRefreshTokenRotation = options.enableRefreshTokenRotation !== false;\n\n const rateLimit = createRedisRateLimitStore({ client, keyPrefix: prefixes.rateLimit });\n const serviceTokenRateLimit = createRedisRateLimitStore({\n client,\n keyPrefix: prefixes.serviceTokenRateLimit,\n });\n const sessionRevocation = createRedisSessionRevocationStore({\n client,\n keyPrefix: prefixes.sessionRevocation,\n ...(options.sessionRevocationTtlMs !== undefined ? { ttlMs: options.sessionRevocationTtlMs } : {}),\n });\n const accessTokenRevocation = createRedisAccessTokenRevocationStore({\n client,\n keyPrefix: prefixes.accessTokenRevocation,\n ...(options.accessTokenRevocationTtlMs !== undefined ? { ttlMs: options.accessTokenRevocationTtlMs } : {}),\n });\n const refreshTokenRotation = createRedisRefreshTokenRotationStore({\n client,\n keyPrefix: prefixes.refreshTokenRotation,\n familyKeyPrefix: prefixes.refreshTokenFamily,\n });\n const consoleEntry = createRedisConsoleEntryStore({\n client,\n encryptionKey,\n keyPrefix: prefixes.consoleEntry,\n ...(options.consoleEntryMaxIssueAttempts !== undefined\n ? { maxIssueAttempts: options.consoleEntryMaxIssueAttempts }\n : {}),\n });\n\n return {\n tenantId: options.tenantId,\n prefixes,\n rateLimit,\n serviceTokenRateLimit,\n sessionRevocation,\n accessTokenRevocation,\n refreshTokenRotation,\n consoleEntry,\n applyTo(accessiOptions) {\n return {\n ...accessiOptions,\n tenantId: options.tenantId,\n publicAuthRateLimit: {\n ...accessiOptions.publicAuthRateLimit,\n store: rateLimit,\n },\n serviceTokens: {\n ...accessiOptions.serviceTokens,\n rateLimitStore: serviceTokenRateLimit,\n },\n sessionRevocation: {\n ...accessiOptions.sessionRevocation,\n store: sessionRevocation,\n },\n accessTokenRevocation: {\n ...accessiOptions.accessTokenRevocation,\n store: accessTokenRevocation,\n },\n refreshTokenRotation: {\n ...accessiOptions.refreshTokenRotation,\n enabled: accessiOptions.refreshTokenRotation?.enabled ?? enableRefreshTokenRotation,\n store: refreshTokenRotation,\n },\n consoleEntry: {\n ...accessiOptions.consoleEntry,\n store: consoleEntry,\n },\n };\n },\n };\n}\n"]}
1
+ {"version":3,"file":"tenantStores.js","sourceRoot":"","sources":["../../../src/accessi/server/tenantStores.ts"],"names":[],"mappings":"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","sourcesContent":["import type { AccessiOptions } from '../../accessi-service/AccessiModule';\nimport { getAccessiTenantRedisPrefix } from './tenants';\nimport { createRedisRateLimitStore } from '../../accessi-service/security/rateLimitStore';\nimport type { RateLimitStore } from '../../accessi-service/security/rateLimitStore';\nimport { createRedisConsoleEntryStore } from '../../accessi-service/security/consoleEntry';\nimport type { ConsoleEntryStore } from '../../accessi-service/security/consoleEntry';\nimport { createRedisSessionRevocationStore } from '../../accessi-service/security/sessionRevocation';\nimport type { SessionRevocationStore } from '../../accessi-service/security/sessionRevocation';\nimport { createRedisAccessTokenRevocationStore } from '../../accessi-service/security/accessTokenRevocation';\nimport type { AccessTokenRevocationStore } from '../../accessi-service/security/accessTokenRevocation';\nimport { createRedisRefreshTokenRotationStore } from '../../accessi-service/security/refreshTokenRotation';\nimport type { RefreshTokenRotationStore } from '../../accessi-service/security/refreshTokenRotation';\n\n/** Client Redis minimo accettato dagli store Accessi. */\nexport interface AccessiTenantRedisClient {\n eval(script: string, numKeys: number, ...args: Array<string | number>): Promise<unknown>;\n}\n\n/** Prefissi Redis per singolo store, tutti relativi al tenant. */\nexport interface AccessiTenantStorePrefixes {\n base?: string;\n rateLimit?: string;\n serviceTokenRateLimit?: string;\n sessionRevocation?: string;\n accessTokenRevocation?: string;\n refreshTokenRotation?: string;\n refreshTokenFamily?: string;\n consoleEntry?: string;\n}\n\nexport interface ResolvedAccessiTenantStorePrefixes {\n base: string;\n rateLimit: string;\n serviceTokenRateLimit: string;\n sessionRevocation: string;\n accessTokenRevocation: string;\n refreshTokenRotation: string;\n refreshTokenFamily: string;\n consoleEntry: string;\n}\n\nexport interface CreateAccessiTenantStoresOptions {\n tenantId: string;\n client: AccessiTenantRedisClient;\n /** Segreto per cifrare i ticket console a riposo. Usare un segreto del tenant. */\n encryptionKey: string | Buffer;\n /** Base prefix. Default: `accessi:<tenantId>:`. */\n prefix?: string;\n prefixes?: AccessiTenantStorePrefixes;\n /** TTL revoca sessioni. Default dello store (365 giorni). */\n sessionRevocationTtlMs?: number;\n /** TTL revoca jti. Default dello store (24 ore). */\n accessTokenRevocationTtlMs?: number;\n consoleEntryMaxIssueAttempts?: number;\n /** Attiva la rotazione refresh token nell'options risultante. Default: true. */\n enableRefreshTokenRotation?: boolean;\n}\n\nexport interface AccessiTenantStores {\n tenantId: string;\n prefixes: ResolvedAccessiTenantStorePrefixes;\n rateLimit: RateLimitStore;\n serviceTokenRateLimit: RateLimitStore;\n sessionRevocation: SessionRevocationStore;\n accessTokenRevocation: AccessTokenRevocationStore;\n refreshTokenRotation: RefreshTokenRotationStore;\n consoleEntry: ConsoleEntryStore;\n /** Collega tutti gli store alle opzioni Accessi del tenant. */\n applyTo(options: AccessiOptions): AccessiOptions;\n}\n\n/**\n * Prefissi Redis isolati per tenant.\n *\n * Ogni store ha un namespace distinto: condividere un prefisso tra tenant\n * significherebbe condividere rate limit, revoche o refresh token.\n */\nexport function getAccessiTenantStorePrefixes(\n tenantId: string,\n overrides: AccessiTenantStorePrefixes = {},\n): ResolvedAccessiTenantStorePrefixes {\n const base = overrides.base ?? getAccessiTenantRedisPrefix(tenantId);\n return {\n base,\n rateLimit: overrides.rateLimit ?? `${base}rate:`,\n serviceTokenRateLimit: overrides.serviceTokenRateLimit ?? `${base}service-token-rate:`,\n sessionRevocation: overrides.sessionRevocation ?? `${base}session:`,\n accessTokenRevocation: overrides.accessTokenRevocation ?? `${base}jti:`,\n refreshTokenRotation: overrides.refreshTokenRotation ?? `${base}refresh:`,\n refreshTokenFamily: overrides.refreshTokenFamily ?? `${base}refresh-family:`,\n consoleEntry: overrides.consoleEntry ?? `${base}console-entry:`,\n };\n}\n\n/**\n * Crea tutti gli store Redis di un tenant con prefissi gia isolati.\n *\n * `applyTo` restituisce una copia delle opzioni con gli store collegati:\n * `publicAuthRateLimit`, `serviceTokens`, `sessionRevocation`,\n * `accessTokenRevocation`, `refreshTokenRotation` e `consoleEntry`.\n */\nexport function createAccessiTenantStores(\n options: CreateAccessiTenantStoresOptions,\n): AccessiTenantStores {\n if (!options?.tenantId || !/^[a-z0-9][a-z0-9_-]{0,62}$/.test(options.tenantId)) {\n throw new Error('createAccessiTenantStores: tenantId non valido.');\n }\n if (!options.client || typeof options.client.eval !== 'function') {\n throw new Error('createAccessiTenantStores: client.eval non configurato.');\n }\n const encryptionKey = options.encryptionKey;\n if (encryptionKey === undefined || encryptionKey === null || encryptionKey.length === 0) {\n throw new Error('createAccessiTenantStores: encryptionKey obbligatoria per i ticket console.');\n }\n\n const prefixes = getAccessiTenantStorePrefixes(options.tenantId, {\n ...(options.prefix ? { base: options.prefix } : {}),\n ...(options.prefixes ?? {}),\n });\n const { client } = options;\n const enableRefreshTokenRotation = options.enableRefreshTokenRotation !== false;\n\n const rateLimit = createRedisRateLimitStore({ client, keyPrefix: prefixes.rateLimit });\n const serviceTokenRateLimit = createRedisRateLimitStore({\n client,\n keyPrefix: prefixes.serviceTokenRateLimit,\n });\n const sessionRevocation = createRedisSessionRevocationStore({\n client,\n keyPrefix: prefixes.sessionRevocation,\n ...(options.sessionRevocationTtlMs !== undefined ? { ttlMs: options.sessionRevocationTtlMs } : {}),\n });\n const accessTokenRevocation = createRedisAccessTokenRevocationStore({\n client,\n keyPrefix: prefixes.accessTokenRevocation,\n ...(options.accessTokenRevocationTtlMs !== undefined ? { ttlMs: options.accessTokenRevocationTtlMs } : {}),\n });\n const refreshTokenRotation = createRedisRefreshTokenRotationStore({\n client,\n keyPrefix: prefixes.refreshTokenRotation,\n familyKeyPrefix: prefixes.refreshTokenFamily,\n });\n const consoleEntry = createRedisConsoleEntryStore({\n client,\n encryptionKey,\n keyPrefix: prefixes.consoleEntry,\n ...(options.consoleEntryMaxIssueAttempts !== undefined\n ? { maxIssueAttempts: options.consoleEntryMaxIssueAttempts }\n : {}),\n });\n\n return {\n tenantId: options.tenantId,\n prefixes,\n rateLimit,\n serviceTokenRateLimit,\n sessionRevocation,\n accessTokenRevocation,\n refreshTokenRotation,\n consoleEntry,\n applyTo(accessiOptions) {\n return {\n ...accessiOptions,\n tenantId: options.tenantId,\n publicAuthRateLimit: {\n ...accessiOptions.publicAuthRateLimit,\n store: rateLimit,\n },\n serviceTokens: {\n ...accessiOptions.serviceTokens,\n rateLimitStore: serviceTokenRateLimit,\n },\n sessionRevocation: {\n ...accessiOptions.sessionRevocation,\n store: sessionRevocation,\n },\n accessTokenRevocation: {\n ...accessiOptions.accessTokenRevocation,\n store: accessTokenRevocation,\n },\n refreshTokenRotation: {\n ...accessiOptions.refreshTokenRotation,\n enabled: accessiOptions.refreshTokenRotation?.enabled ?? enableRefreshTokenRotation,\n store: refreshTokenRotation,\n },\n consoleEntry: {\n ...accessiOptions.consoleEntry,\n store: consoleEntry,\n },\n };\n },\n };\n}\n"]}
@@ -1,11 +1,11 @@
1
- import type { AccessiOptions, AccessiHttpOptions, AdminBootstrapOptions, CatalogScriptsOptions, ConsoleEntryOptions, EmailOptions, ExtensionFieldsOptions, FederatedAuthenticationOptions, JwtOptions, PublicAuthRateLimitOptions, PublicRegistrationOptions, ServiceTokenOptions, SystemSeedsOptions } from '../../accessi-module/AccessiModule';
2
- import type { AccessiEdgeRateLimitOptions } from '../../accessi-module/security/edgeRateLimit';
3
- import type { AccessiAuthCookieOptions } from '../../accessi-module/security/authCookies';
4
- import type { AccessiMetricsOptions } from '../../accessi-module/observability/metrics';
5
- import type { AccessiAuditOptions } from '../../accessi-module/security/audit';
6
- import type { SessionRevocationOptions } from '../../accessi-module/security/sessionRevocation';
7
- import type { AccessTokenRevocationOptions } from '../../accessi-module/security/accessTokenRevocation';
8
- import type { RefreshTokenRotationOptions } from '../../accessi-module/security/refreshTokenRotation';
1
+ import type { AccessiOptions, AccessiHttpOptions, AdminBootstrapOptions, CatalogScriptsOptions, ConsoleEntryOptions, EmailOptions, ExtensionFieldsOptions, FederatedAuthenticationOptions, JwtOptions, PublicAuthRateLimitOptions, PublicRegistrationOptions, ServiceTokenOptions, SystemSeedsOptions } from '../../accessi-service/AccessiModule';
2
+ import type { AccessiEdgeRateLimitOptions } from '../../accessi-service/security/edgeRateLimit';
3
+ import type { AccessiAuthCookieOptions } from '../../accessi-service/security/authCookies';
4
+ import type { AccessiMetricsOptions } from '../../accessi-service/observability/metrics';
5
+ import type { AccessiAuditOptions } from '../../accessi-service/security/audit';
6
+ import type { SessionRevocationOptions } from '../../accessi-service/security/sessionRevocation';
7
+ import type { AccessTokenRevocationOptions } from '../../accessi-service/security/accessTokenRevocation';
8
+ import type { RefreshTokenRotationOptions } from '../../accessi-service/security/refreshTokenRotation';
9
9
  import type { OpenApiSetupOptions } from '../../openapi/OpenApiConfig';
10
10
  /** Identita e routing del tenant. */
11
11
  export interface AccessiTenantSettings {
@@ -9,7 +9,7 @@ exports.loadAccessiTenants = loadAccessiTenants;
9
9
  const fs_1 = require("fs");
10
10
  const path_1 = require("path");
11
11
  const node_firebird_1 = require("node-firebird");
12
- const validateOptions_1 = require("../../accessi-module/security/validateOptions");
12
+ const validateOptions_1 = require("../../accessi-service/security/validateOptions");
13
13
  /** Errore aggregato di configurazione tenant. */
14
14
  class AccessiTenantConfigurationError extends Error {
15
15
  constructor(issues) {
@@ -1 +1 @@
1
- {"version":3,"file":"tenants.js","sourceRoot":"","sources":["../../../src/accessi/server/tenants.ts"],"names":[],"mappings":"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","sourcesContent":["import { readdirSync } from 'fs';\nimport { basename, join, resolve } from 'path';\nimport { WIRE_CRYPT_DISABLE, WIRE_CRYPT_ENABLE } from 'node-firebird';\nimport type { Options } from 'node-firebird';\nimport type {\n AccessiOptions,\n AccessiHttpOptions,\n AdminBootstrapOptions,\n CatalogScriptsOptions,\n ConsoleEntryOptions,\n EmailOptions,\n ExtensionFieldsOptions,\n FederatedAuthenticationOptions,\n JwtOptions,\n PublicAuthRateLimitOptions,\n PublicRegistrationOptions,\n ServiceTokenOptions,\n SystemSeedsOptions,\n} from '../../accessi-module/AccessiModule';\nimport type { AccessiEdgeRateLimitOptions } from '../../accessi-module/security/edgeRateLimit';\nimport type { AccessiAuthCookieOptions } from '../../accessi-module/security/authCookies';\nimport type { AccessiMetricsOptions } from '../../accessi-module/observability/metrics';\nimport type { AccessiAuditOptions } from '../../accessi-module/security/audit';\nimport type { SessionRevocationOptions } from '../../accessi-module/security/sessionRevocation';\nimport type { AccessTokenRevocationOptions } from '../../accessi-module/security/accessTokenRevocation';\nimport type { RefreshTokenRotationOptions } from '../../accessi-module/security/refreshTokenRotation';\nimport type { OpenApiSetupOptions } from '../../openapi/OpenApiConfig';\nimport { validateAccessiOptions } from '../../accessi-module/security/validateOptions';\n\n/** Identita e routing del tenant. */\nexport interface AccessiTenantSettings {\n /** Minuscole, numeri, `-` e `_`; max 63 caratteri. */\n id: string;\n /** Host esatti o wildcard `*.example.com`. */\n hosts?: string[];\n /** Prefisso path, es. `/acme`. */\n path?: string;\n /** Porta del processo quando si usa il supervisore. */\n port?: number;\n /** Default `true`. */\n enabled?: boolean;\n description?: string;\n}\n\n/** Connessione Firebird del tenant, tipizzata senza callback. */\nexport interface AccessiTenantDatabaseOptions {\n host: string;\n port?: number;\n database: string;\n user?: string;\n password?: string;\n /** `disabled`/`optional`; `required` e il default del driver. */\n wireCrypt?: 'required' | 'optional' | 'disabled';\n pluginName?: string;\n}\n\n/**\n * Configurazione serializzabile di un tenant.\n *\n * I campi che contengono store, callback o logger (`store`, `sink`, `match`,\n * `onDocument`, `logger`, ...) sono esclusi: vanno collegati dal backend\n * ospitante, non da un file di configurazione.\n */\nexport interface AccessiTenantEnvironment {\n tenant: AccessiTenantSettings;\n database: AccessiTenantDatabaseOptions;\n jwt: JwtOptions;\n email: EmailOptions;\n encryptionKey: string;\n confirmationEmailUrl: string;\n confirmationEmailReturnUrl: string;\n confirmationEmailPrefix?: string;\n customResetPage?: string;\n publicBaseUrl?: string;\n consoleApiBaseUrl?: string;\n mockDemoUser?: boolean;\n passwordExpiration?: boolean;\n passwordExpirationDays?: number;\n legacyPasswordMigrationOnStartup?: boolean;\n autoUpdateDatabase?: boolean;\n http?: AccessiHttpOptions;\n authCookie?: AccessiAuthCookieOptions;\n publicAuthRateLimit?: Omit<PublicAuthRateLimitOptions, 'store'>;\n publicRegistration?: PublicRegistrationOptions;\n federatedAuthentication?: FederatedAuthenticationOptions;\n extensionFieldsOptions?: ExtensionFieldsOptions[];\n serviceTokens?: Omit<ServiceTokenOptions, 'rateLimitStore'>;\n catalogScripts?: CatalogScriptsOptions;\n systemSeeds?: SystemSeedsOptions;\n adminBootstrap?: AdminBootstrapOptions;\n openapi?: Omit<OpenApiSetupOptions, 'onDocument'>;\n consoleEntry?: Omit<ConsoleEntryOptions, 'store'>;\n edgeRateLimit?: Omit<AccessiEdgeRateLimitOptions, 'store' | 'match'>;\n sessionRevocation?: Omit<SessionRevocationOptions, 'store'>;\n accessTokenRevocation?: Omit<AccessTokenRevocationOptions, 'store'>;\n refreshTokenRotation?: Omit<RefreshTokenRotationOptions, 'store'>;\n metrics?: Omit<AccessiMetricsOptions, 'sink'>;\n audit?: Omit<AccessiAuditOptions, 'sinks' | 'store' | 'tenantId'>;\n bufferLogs?: boolean;\n}\n\nexport interface AccessiTenant {\n id: string;\n hosts: string[];\n path?: string;\n enabled: boolean;\n description?: string;\n port?: number;\n /** Nome del file `*.environment.ts` di origine (mai il contenuto). */\n file: string;\n environmentFile: string;\n options: AccessiOptions;\n}\n\nexport interface AccessiTenantSummary {\n id: string;\n hosts: string[];\n path?: string;\n enabled: boolean;\n description?: string;\n port?: number;\n file: string;\n database: {\n host?: string;\n port?: number;\n database?: string;\n user?: string;\n };\n issuer?: string;\n audience?: string;\n jwtAlgorithm: string;\n refreshEnabled: boolean;\n}\n\nexport interface AccessiTenantResolution {\n tenant: AccessiTenant;\n matchedBy: 'host' | 'path' | 'header';\n}\n\nexport interface AccessiTenantRegistry {\n directory: string;\n tenants: AccessiTenant[];\n warnings: string[];\n allowHeader: boolean;\n byId: ReadonlyMap<string, AccessiTenant>;\n resolve(input: { host?: string; path?: string; header?: string }, options?: { allowHeader?: boolean }): AccessiTenantResolution | undefined;\n summary(): AccessiTenantSummary[];\n}\n\nexport interface LoadAccessiTenantsOptions {\n /** Cartella con `<id>.environment.ts`. */\n directory: string;\n /** Abilita la risoluzione via header `x-accessi-tenant`. Default: false. */\n allowHeader?: boolean;\n /** Consente issuer/audience uguali tra tenant (sconsigliato). Default: false. */\n allowSharedIssuer?: boolean;\n}\n\n/** Errore aggregato di configurazione tenant. */\nexport class AccessiTenantConfigurationError extends Error {\n readonly issues: string[];\n\n constructor(issues: string[]) {\n super(`Configurazione tenant non valida:\\n${issues.map((issue) => `- ${issue}`).join('\\n')}`);\n this.name = 'AccessiTenantConfigurationError';\n this.issues = issues;\n }\n}\n\n/**\n * Helper di tipizzazione per i file tenant.\n *\n * ```ts\n * import type { AccessiTenantEnvironment } from 'emilsoftware-utilities/accessi/server';\n * import { defineAccessiTenantEnvironment } from 'emilsoftware-utilities/accessi/server';\n *\n * export default defineAccessiTenantEnvironment({\n * tenant: { id: 'acme', hosts: ['accessi.acme.example.com'] },\n * database: { host: 'db-acme', database: '/data/acme.fdb' },\n * jwt: { secret: process.env.ACME_JWT_SECRET!, expiresIn: '1h' },\n * email: { ... },\n * encryptionKey: process.env.ACME_ENCRYPTION_KEY!,\n * confirmationEmailUrl: 'https://accessi.acme.example.com',\n * confirmationEmailReturnUrl: 'https://accessi.acme.example.com',\n * });\n * ```\n */\nexport function defineAccessiTenantEnvironment<const T extends AccessiTenantEnvironment>(\n environment: T,\n): T {\n return environment;\n}\n\nfunction normalizeHost(host: string): string {\n return host.trim().toLowerCase().replace(/\\.$/, '');\n}\n\nfunction normalizeTenantPath(path: string | undefined): string | undefined {\n if (path === undefined || path.trim() === '') return undefined;\n const normalized = `/${path.trim().replace(/^\\/+|\\/+$/g, '')}`;\n return normalized === '/' ? '/' : normalized;\n}\n\nfunction matchesHost(tenant: AccessiTenant, host: string): boolean {\n return tenant.hosts.some((candidate) => {\n if (candidate === host) return true;\n if (candidate.startsWith('*.')) {\n const suffix = candidate.slice(1);\n return host.endsWith(suffix) && host.length > suffix.length;\n }\n return false;\n });\n}\n\nfunction matchesPath(tenant: AccessiTenant, path: string): boolean {\n if (!tenant.path) return false;\n if (tenant.path === '/') return true;\n return path === tenant.path || path.startsWith(`${tenant.path}/`);\n}\n\n/** Prefisso Redis consigliato per isolare gli store del tenant. */\nexport function getAccessiTenantRedisPrefix(tenantId: string): string {\n return `accessi:${tenantId}:`;\n}\n\n/**\n * Converte la configurazione tipizzata in `AccessiOptions`.\n *\n * Applica i default di Firebird e collega `tenantId`; non crea store o sink,\n * che restano responsabilita del backend ospitante.\n */\nexport function accessiOptionsFromTenantEnvironment(\n environment: AccessiTenantEnvironment,\n): AccessiOptions {\n const database = environment.database;\n const databaseOptions: Options = {\n host: database.host,\n port: database.port ?? 3050,\n database: database.database,\n user: database.user ?? 'SYSDBA',\n password: database.password ?? 'masterkey',\n ...(database.pluginName ? { pluginName: database.pluginName } : {}),\n ...(database.wireCrypt === 'disabled'\n ? { wireCrypt: WIRE_CRYPT_DISABLE }\n : database.wireCrypt === 'optional'\n ? { wireCrypt: WIRE_CRYPT_ENABLE }\n : {}),\n };\n\n return {\n databaseOptions,\n confirmationEmailUrl: environment.confirmationEmailUrl,\n confirmationEmailReturnUrl: environment.confirmationEmailReturnUrl,\n ...(environment.confirmationEmailPrefix ? { confirmationEmailPrefix: environment.confirmationEmailPrefix } : {}),\n ...(environment.customResetPage ? { customResetPage: environment.customResetPage } : {}),\n ...(environment.publicBaseUrl ? { publicBaseUrl: environment.publicBaseUrl } : {}),\n ...(environment.consoleApiBaseUrl ? { consoleApiBaseUrl: environment.consoleApiBaseUrl } : {}),\n encryptionKey: environment.encryptionKey,\n mockDemoUser: environment.mockDemoUser ?? false,\n ...(environment.passwordExpiration !== undefined ? { passwordExpiration: environment.passwordExpiration } : {}),\n ...(environment.passwordExpirationDays !== undefined ? { passwordExpirationDays: environment.passwordExpirationDays } : {}),\n ...(environment.legacyPasswordMigrationOnStartup !== undefined\n ? { legacyPasswordMigrationOnStartup: environment.legacyPasswordMigrationOnStartup }\n : {}),\n ...(environment.autoUpdateDatabase !== undefined ? { autoUpdateDatabase: environment.autoUpdateDatabase } : {}),\n jwtOptions: environment.jwt,\n emailOptions: environment.email,\n ...(environment.http ? { http: environment.http } : {}),\n ...(environment.authCookie ? { authCookie: environment.authCookie } : {}),\n ...(environment.publicAuthRateLimit ? { publicAuthRateLimit: environment.publicAuthRateLimit } : {}),\n ...(environment.publicRegistration ? { publicRegistration: environment.publicRegistration } : {}),\n ...(environment.federatedAuthentication ? { federatedAuthentication: environment.federatedAuthentication } : {}),\n ...(environment.extensionFieldsOptions ? { extensionFieldsOptions: environment.extensionFieldsOptions } : {}),\n ...(environment.serviceTokens ? { serviceTokens: environment.serviceTokens } : {}),\n ...(environment.catalogScripts ? { catalogScripts: environment.catalogScripts } : {}),\n ...(environment.systemSeeds ? { systemSeeds: environment.systemSeeds } : {}),\n ...(environment.adminBootstrap ? { adminBootstrap: environment.adminBootstrap } : {}),\n ...(environment.openapi ? { openapi: environment.openapi } : {}),\n ...(environment.consoleEntry ? { consoleEntry: environment.consoleEntry } : {}),\n ...(environment.edgeRateLimit ? { edgeRateLimit: environment.edgeRateLimit } : {}),\n ...(environment.sessionRevocation ? { sessionRevocation: environment.sessionRevocation } : {}),\n ...(environment.accessTokenRevocation ? { accessTokenRevocation: environment.accessTokenRevocation } : {}),\n ...(environment.refreshTokenRotation ? { refreshTokenRotation: environment.refreshTokenRotation } : {}),\n ...(environment.metrics ? { metrics: environment.metrics } : {}),\n ...(environment.audit ? { audit: environment.audit } : {}),\n ...(environment.bufferLogs !== undefined ? { bufferLogs: environment.bufferLogs } : {}),\n tenantId: environment.tenant.id,\n };\n}\n\nfunction isRecord(value: unknown): value is Record<string, unknown> {\n return typeof value === 'object' && value !== null && !Array.isArray(value);\n}\n\nfunction runtimeIssues(environment: unknown, file: string): string[] {\n const issues: string[] = [];\n if (!isRecord(environment)) {\n return [`${file}: il file deve esportare un oggetto (default export o export environment).`];\n }\n const tenant = environment.tenant;\n if (!isRecord(tenant)) {\n issues.push(`${file}: tenant mancante.`);\n } else {\n if (typeof tenant.id !== 'string' || !/^[a-z0-9][a-z0-9_-]{0,62}$/.test(tenant.id)) {\n issues.push(`${file}: tenant.id non valido (minuscole, numeri, - e _, max 63).`);\n }\n if (tenant.hosts !== undefined && (!Array.isArray(tenant.hosts) || tenant.hosts.some((host) => typeof host !== 'string'))) {\n issues.push(`${file}: tenant.hosts deve essere un array di stringhe.`);\n }\n if (tenant.path !== undefined && typeof tenant.path !== 'string') {\n issues.push(`${file}: tenant.path deve essere una stringa.`);\n }\n if (\n tenant.port !== undefined\n && (typeof tenant.port !== 'number' || !Number.isInteger(tenant.port) || tenant.port < 1 || tenant.port > 65535)\n ) {\n issues.push(`${file}: tenant.port non valida.`);\n }\n }\n\n const database = environment.database;\n if (!isRecord(database)) {\n issues.push(`${file}: database mancante.`);\n } else {\n if (typeof database.host !== 'string' || database.host.trim() === '') {\n issues.push(`${file}: database.host obbligatorio.`);\n }\n if (typeof database.database !== 'string' || database.database.trim() === '') {\n issues.push(`${file}: database.database obbligatorio.`);\n }\n if (\n database.port !== undefined\n && (typeof database.port !== 'number' || !Number.isInteger(database.port) || database.port < 1 || database.port > 65535)\n ) {\n issues.push(`${file}: database.port non valida.`);\n }\n }\n\n if (!isRecord(environment.jwt)) issues.push(`${file}: jwt mancante.`);\n else {\n if (typeof environment.jwt.secret !== 'string' || environment.jwt.secret === '') {\n issues.push(`${file}: jwt.secret obbligatorio.`);\n }\n if (typeof environment.jwt.expiresIn !== 'string' || environment.jwt.expiresIn === '') {\n issues.push(`${file}: jwt.expiresIn obbligatorio.`);\n }\n }\n\n if (!isRecord(environment.email)) issues.push(`${file}: email mancante.`);\n if (typeof environment.encryptionKey !== 'string' || environment.encryptionKey === '') {\n issues.push(`${file}: encryptionKey obbligatoria.`);\n }\n if (typeof environment.confirmationEmailUrl !== 'string') {\n issues.push(`${file}: confirmationEmailUrl obbligatoria.`);\n }\n if (typeof environment.confirmationEmailReturnUrl !== 'string') {\n issues.push(`${file}: confirmationEmailReturnUrl obbligatoria.`);\n }\n return issues;\n}\n\nfunction loadEnvironmentModule(file: string): unknown {\n if (/\\.(ts|mts|cts)$/i.test(file)) {\n // Caricamento lazy: jiti serve solo ai file tenant TypeScript.\n const { createJiti } = require('jiti') as {\n createJiti: (\n id: string,\n options?: { interopDefault?: boolean; moduleCache?: boolean; fsCache?: boolean },\n ) => (id: string) => unknown;\n };\n const jiti = createJiti(file, { interopDefault: true, moduleCache: false, fsCache: false });\n return jiti(file);\n }\n return require(file);\n}\n\n/**\n * Carica un singolo file `*.environment.ts`.\n *\n * Usa jiti per eseguire TypeScript anche nel pacchetto compilato, senza\n * richiedere un passo di build separato per i file tenant.\n */\nexport function loadAccessiTenantEnvironmentFile(file: string): { tenant: AccessiTenant; environment: AccessiTenantEnvironment } {\n const absolute = resolve(file);\n let loaded: unknown;\n try {\n loaded = loadEnvironmentModule(absolute);\n } catch (error) {\n throw new AccessiTenantConfigurationError([\n `${basename(file)}: impossibile caricare il file (${error instanceof Error ? error.message : String(error)}).`,\n ]);\n }\n\n const record = isRecord(loaded) ? loaded : {};\n const environment = (record.default ?? record.environment ?? loaded) as unknown;\n const issues = runtimeIssues(environment, basename(file));\n if (issues.length > 0) throw new AccessiTenantConfigurationError(issues);\n\n const typed = environment as AccessiTenantEnvironment;\n const settings = typed.tenant;\n const options = accessiOptionsFromTenantEnvironment(typed);\n const validation = validateAccessiOptions(options);\n const validationIssues = validation.errors.map((issue) => `${basename(file)}: ${issue.code}: ${issue.message}`);\n if (validationIssues.length > 0) throw new AccessiTenantConfigurationError(validationIssues);\n\n const hosts = (settings.hosts ?? []).map(normalizeHost).filter(Boolean);\n const path = normalizeTenantPath(settings.path);\n if (hosts.length === 0 && !path) {\n throw new AccessiTenantConfigurationError([\n `${basename(file)}: configurare tenant.hosts oppure tenant.path.`,\n ]);\n }\n\n const tenant: AccessiTenant = {\n id: settings.id,\n hosts,\n ...(path ? { path } : {}),\n enabled: settings.enabled !== false,\n ...(settings.description ? { description: settings.description } : {}),\n ...(settings.port ? { port: settings.port } : {}),\n file: basename(file),\n environmentFile: absolute,\n options,\n };\n return { tenant, environment: typed };\n}\n\n/**\n * Carica i tenant da una cartella di file `<id>.environment.ts`.\n *\n * La validazione e aggregata: un errore blocca l'intera cartella, cosi non si\n * avvia un tenant con configurazione parziale. Nessun segreto viene stampato.\n */\nexport function loadAccessiTenants(options: LoadAccessiTenantsOptions): AccessiTenantRegistry {\n if (!options?.directory) throw new Error('loadAccessiTenants: directory obbligatoria.');\n const directory = resolve(options.directory);\n const issues: string[] = [];\n const warnings: string[] = [];\n\n let files: string[];\n try {\n files = readdirSync(directory, { withFileTypes: true })\n .filter((entry) => entry.isFile() && /\\.environment\\.(ts|mts|cts|js|mjs|cjs)$/.test(entry.name))\n .map((entry) => entry.name)\n .sort();\n } catch (error) {\n throw new AccessiTenantConfigurationError([\n `Cartella tenant non leggibile (${directory}): ${error instanceof Error ? error.message : String(error)}`,\n ]);\n }\n if (files.length === 0) {\n throw new AccessiTenantConfigurationError([`Nessun file *.environment.ts nella cartella ${directory}.`]);\n }\n\n const tenants: AccessiTenant[] = [];\n for (const file of files) {\n try {\n tenants.push(loadAccessiTenantEnvironmentFile(join(directory, file)).tenant);\n } catch (error) {\n if (error instanceof AccessiTenantConfigurationError) issues.push(...error.issues);\n else issues.push(`${file}: ${error instanceof Error ? error.message : String(error)}`);\n }\n }\n\n const byId = new Map<string, AccessiTenant>();\n const hostsSeen = new Map<string, string>();\n const pathsSeen = new Map<string, string>();\n const jwtSecrets = new Map<string, string>();\n const issuerAudience = new Map<string, string>();\n const portsSeen = new Map<number, string>();\n for (const tenant of tenants) {\n if (byId.has(tenant.id)) {\n issues.push(`Tenant duplicato \"${tenant.id}\" (${tenant.file} e ${byId.get(tenant.id)?.file}).`);\n } else {\n byId.set(tenant.id, tenant);\n }\n for (const host of tenant.hosts) {\n const existing = hostsSeen.get(host);\n if (existing) issues.push(`Host \"${host}\" assegnato a \"${existing}\" e \"${tenant.id}\".`);\n else hostsSeen.set(host, tenant.id);\n }\n if (tenant.path) {\n const existing = pathsSeen.get(tenant.path);\n if (existing) issues.push(`Path \"${tenant.path}\" assegnato a \"${existing}\" e \"${tenant.id}\".`);\n else pathsSeen.set(tenant.path, tenant.id);\n }\n if (tenant.port !== undefined) {\n const existing = portsSeen.get(tenant.port);\n if (existing) issues.push(`Porta ${tenant.port} assegnata a \"${existing}\" e \"${tenant.id}\".`);\n else portsSeen.set(tenant.port, tenant.id);\n }\n\n // Un segreto JWT condiviso rende un token valido su piu tenant.\n const signingKey = tenant.options.jwtOptions.privateKey ?? tenant.options.jwtOptions.secret;\n const fingerprintKey = `${tenant.options.jwtOptions.algorithm ?? 'HS256'}|${signingKey}`;\n const existingKey = jwtSecrets.get(fingerprintKey);\n if (existingKey) {\n issues.push(`Chiave JWT condivisa tra \"${existingKey}\" e \"${tenant.id}\": usare segreti distinti.`);\n } else {\n jwtSecrets.set(fingerprintKey, tenant.id);\n }\n\n const issuer = tenant.options.jwtOptions.issuer ?? '(assente)';\n const audience = Array.isArray(tenant.options.jwtOptions.audience)\n ? tenant.options.jwtOptions.audience.join(',')\n : (tenant.options.jwtOptions.audience ?? '(assente)');\n const issuerKey = `${issuer}|${audience}`;\n const existingIssuer = issuerAudience.get(issuerKey);\n if (existingIssuer && options.allowSharedIssuer !== true) {\n warnings.push(`Issuer/audience \"${issuerKey}\" condivisi tra \"${existingIssuer}\" e \"${tenant.id}\".`);\n } else {\n issuerAudience.set(issuerKey, tenant.id);\n }\n }\n\n const enabled = tenants.filter((tenant) => tenant.enabled);\n if (enabled.length > 1) {\n const defaultTenant = enabled.find((tenant) => tenant.hosts.length === 0 && tenant.path === '/');\n if (defaultTenant) {\n issues.push(`Tenant \"${defaultTenant.id}\" intercetta tutte le richieste (path \"/\") insieme ad altri tenant.`);\n }\n }\n\n if (issues.length > 0) throw new AccessiTenantConfigurationError(issues);\n\n const registry: AccessiTenantRegistry = {\n directory,\n tenants,\n warnings,\n allowHeader: options.allowHeader === true,\n byId,\n resolve(input, resolveOptions) {\n const allowHeader = resolveOptions?.allowHeader ?? registry.allowHeader;\n const host = input.host ? normalizeHost(input.host.split(':')[0] ?? input.host) : undefined;\n if (host) {\n const byHost = enabled.find((tenant) => matchesHost(tenant, host));\n if (byHost) return { tenant: byHost, matchedBy: 'host' };\n }\n\n const requestPath = input.path ?? '/';\n const byPath = enabled\n .filter((tenant) => matchesPath(tenant, requestPath))\n .sort((left, right) => (right.path?.length ?? 0) - (left.path?.length ?? 0))[0];\n if (byPath && byPath.path !== '/') return { tenant: byPath, matchedBy: 'path' };\n\n if (allowHeader && input.header) {\n const headerId = input.header.trim().toLowerCase();\n const tenant = byId.get(headerId);\n if (tenant?.enabled) return { tenant, matchedBy: 'header' };\n }\n\n if (byPath) return { tenant: byPath, matchedBy: 'path' };\n return undefined;\n },\n summary() {\n return tenants.map((tenant) => {\n const database = tenant.options.databaseOptions as {\n host?: string;\n port?: number;\n database?: string;\n user?: string;\n };\n return {\n id: tenant.id,\n hosts: [...tenant.hosts],\n ...(tenant.path ? { path: tenant.path } : {}),\n enabled: tenant.enabled,\n ...(tenant.description ? { description: tenant.description } : {}),\n ...(tenant.port ? { port: tenant.port } : {}),\n file: tenant.file,\n database: {\n host: database.host,\n port: database.port,\n database: database.database,\n user: database.user,\n },\n issuer: tenant.options.jwtOptions.issuer,\n ...(tenant.options.jwtOptions.audience\n ? {\n audience: typeof tenant.options.jwtOptions.audience === 'string'\n ? tenant.options.jwtOptions.audience\n : tenant.options.jwtOptions.audience.join(','),\n }\n : {}),\n jwtAlgorithm: tenant.options.jwtOptions.algorithm ?? 'HS256',\n refreshEnabled: Boolean(tenant.options.jwtOptions.refreshExpiresIn),\n };\n });\n },\n };\n\n return registry;\n}\n"]}
1
+ {"version":3,"file":"tenants.js","sourceRoot":"","sources":["../../../src/accessi/server/tenants.ts"],"names":[],"mappings":"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","sourcesContent":["import { readdirSync } from 'fs';\nimport { basename, join, resolve } from 'path';\nimport { WIRE_CRYPT_DISABLE, WIRE_CRYPT_ENABLE } from 'node-firebird';\nimport type { Options } from 'node-firebird';\nimport type {\n AccessiOptions,\n AccessiHttpOptions,\n AdminBootstrapOptions,\n CatalogScriptsOptions,\n ConsoleEntryOptions,\n EmailOptions,\n ExtensionFieldsOptions,\n FederatedAuthenticationOptions,\n JwtOptions,\n PublicAuthRateLimitOptions,\n PublicRegistrationOptions,\n ServiceTokenOptions,\n SystemSeedsOptions,\n} from '../../accessi-service/AccessiModule';\nimport type { AccessiEdgeRateLimitOptions } from '../../accessi-service/security/edgeRateLimit';\nimport type { AccessiAuthCookieOptions } from '../../accessi-service/security/authCookies';\nimport type { AccessiMetricsOptions } from '../../accessi-service/observability/metrics';\nimport type { AccessiAuditOptions } from '../../accessi-service/security/audit';\nimport type { SessionRevocationOptions } from '../../accessi-service/security/sessionRevocation';\nimport type { AccessTokenRevocationOptions } from '../../accessi-service/security/accessTokenRevocation';\nimport type { RefreshTokenRotationOptions } from '../../accessi-service/security/refreshTokenRotation';\nimport type { OpenApiSetupOptions } from '../../openapi/OpenApiConfig';\nimport { validateAccessiOptions } from '../../accessi-service/security/validateOptions';\n\n/** Identita e routing del tenant. */\nexport interface AccessiTenantSettings {\n /** Minuscole, numeri, `-` e `_`; max 63 caratteri. */\n id: string;\n /** Host esatti o wildcard `*.example.com`. */\n hosts?: string[];\n /** Prefisso path, es. `/acme`. */\n path?: string;\n /** Porta del processo quando si usa il supervisore. */\n port?: number;\n /** Default `true`. */\n enabled?: boolean;\n description?: string;\n}\n\n/** Connessione Firebird del tenant, tipizzata senza callback. */\nexport interface AccessiTenantDatabaseOptions {\n host: string;\n port?: number;\n database: string;\n user?: string;\n password?: string;\n /** `disabled`/`optional`; `required` e il default del driver. */\n wireCrypt?: 'required' | 'optional' | 'disabled';\n pluginName?: string;\n}\n\n/**\n * Configurazione serializzabile di un tenant.\n *\n * I campi che contengono store, callback o logger (`store`, `sink`, `match`,\n * `onDocument`, `logger`, ...) sono esclusi: vanno collegati dal backend\n * ospitante, non da un file di configurazione.\n */\nexport interface AccessiTenantEnvironment {\n tenant: AccessiTenantSettings;\n database: AccessiTenantDatabaseOptions;\n jwt: JwtOptions;\n email: EmailOptions;\n encryptionKey: string;\n confirmationEmailUrl: string;\n confirmationEmailReturnUrl: string;\n confirmationEmailPrefix?: string;\n customResetPage?: string;\n publicBaseUrl?: string;\n consoleApiBaseUrl?: string;\n mockDemoUser?: boolean;\n passwordExpiration?: boolean;\n passwordExpirationDays?: number;\n legacyPasswordMigrationOnStartup?: boolean;\n autoUpdateDatabase?: boolean;\n http?: AccessiHttpOptions;\n authCookie?: AccessiAuthCookieOptions;\n publicAuthRateLimit?: Omit<PublicAuthRateLimitOptions, 'store'>;\n publicRegistration?: PublicRegistrationOptions;\n federatedAuthentication?: FederatedAuthenticationOptions;\n extensionFieldsOptions?: ExtensionFieldsOptions[];\n serviceTokens?: Omit<ServiceTokenOptions, 'rateLimitStore'>;\n catalogScripts?: CatalogScriptsOptions;\n systemSeeds?: SystemSeedsOptions;\n adminBootstrap?: AdminBootstrapOptions;\n openapi?: Omit<OpenApiSetupOptions, 'onDocument'>;\n consoleEntry?: Omit<ConsoleEntryOptions, 'store'>;\n edgeRateLimit?: Omit<AccessiEdgeRateLimitOptions, 'store' | 'match'>;\n sessionRevocation?: Omit<SessionRevocationOptions, 'store'>;\n accessTokenRevocation?: Omit<AccessTokenRevocationOptions, 'store'>;\n refreshTokenRotation?: Omit<RefreshTokenRotationOptions, 'store'>;\n metrics?: Omit<AccessiMetricsOptions, 'sink'>;\n audit?: Omit<AccessiAuditOptions, 'sinks' | 'store' | 'tenantId'>;\n bufferLogs?: boolean;\n}\n\nexport interface AccessiTenant {\n id: string;\n hosts: string[];\n path?: string;\n enabled: boolean;\n description?: string;\n port?: number;\n /** Nome del file `*.environment.ts` di origine (mai il contenuto). */\n file: string;\n environmentFile: string;\n options: AccessiOptions;\n}\n\nexport interface AccessiTenantSummary {\n id: string;\n hosts: string[];\n path?: string;\n enabled: boolean;\n description?: string;\n port?: number;\n file: string;\n database: {\n host?: string;\n port?: number;\n database?: string;\n user?: string;\n };\n issuer?: string;\n audience?: string;\n jwtAlgorithm: string;\n refreshEnabled: boolean;\n}\n\nexport interface AccessiTenantResolution {\n tenant: AccessiTenant;\n matchedBy: 'host' | 'path' | 'header';\n}\n\nexport interface AccessiTenantRegistry {\n directory: string;\n tenants: AccessiTenant[];\n warnings: string[];\n allowHeader: boolean;\n byId: ReadonlyMap<string, AccessiTenant>;\n resolve(input: { host?: string; path?: string; header?: string }, options?: { allowHeader?: boolean }): AccessiTenantResolution | undefined;\n summary(): AccessiTenantSummary[];\n}\n\nexport interface LoadAccessiTenantsOptions {\n /** Cartella con `<id>.environment.ts`. */\n directory: string;\n /** Abilita la risoluzione via header `x-accessi-tenant`. Default: false. */\n allowHeader?: boolean;\n /** Consente issuer/audience uguali tra tenant (sconsigliato). Default: false. */\n allowSharedIssuer?: boolean;\n}\n\n/** Errore aggregato di configurazione tenant. */\nexport class AccessiTenantConfigurationError extends Error {\n readonly issues: string[];\n\n constructor(issues: string[]) {\n super(`Configurazione tenant non valida:\\n${issues.map((issue) => `- ${issue}`).join('\\n')}`);\n this.name = 'AccessiTenantConfigurationError';\n this.issues = issues;\n }\n}\n\n/**\n * Helper di tipizzazione per i file tenant.\n *\n * ```ts\n * import type { AccessiTenantEnvironment } from 'emilsoftware-utilities/accessi/server';\n * import { defineAccessiTenantEnvironment } from 'emilsoftware-utilities/accessi/server';\n *\n * export default defineAccessiTenantEnvironment({\n * tenant: { id: 'acme', hosts: ['accessi.acme.example.com'] },\n * database: { host: 'db-acme', database: '/data/acme.fdb' },\n * jwt: { secret: process.env.ACME_JWT_SECRET!, expiresIn: '1h' },\n * email: { ... },\n * encryptionKey: process.env.ACME_ENCRYPTION_KEY!,\n * confirmationEmailUrl: 'https://accessi.acme.example.com',\n * confirmationEmailReturnUrl: 'https://accessi.acme.example.com',\n * });\n * ```\n */\nexport function defineAccessiTenantEnvironment<const T extends AccessiTenantEnvironment>(\n environment: T,\n): T {\n return environment;\n}\n\nfunction normalizeHost(host: string): string {\n return host.trim().toLowerCase().replace(/\\.$/, '');\n}\n\nfunction normalizeTenantPath(path: string | undefined): string | undefined {\n if (path === undefined || path.trim() === '') return undefined;\n const normalized = `/${path.trim().replace(/^\\/+|\\/+$/g, '')}`;\n return normalized === '/' ? '/' : normalized;\n}\n\nfunction matchesHost(tenant: AccessiTenant, host: string): boolean {\n return tenant.hosts.some((candidate) => {\n if (candidate === host) return true;\n if (candidate.startsWith('*.')) {\n const suffix = candidate.slice(1);\n return host.endsWith(suffix) && host.length > suffix.length;\n }\n return false;\n });\n}\n\nfunction matchesPath(tenant: AccessiTenant, path: string): boolean {\n if (!tenant.path) return false;\n if (tenant.path === '/') return true;\n return path === tenant.path || path.startsWith(`${tenant.path}/`);\n}\n\n/** Prefisso Redis consigliato per isolare gli store del tenant. */\nexport function getAccessiTenantRedisPrefix(tenantId: string): string {\n return `accessi:${tenantId}:`;\n}\n\n/**\n * Converte la configurazione tipizzata in `AccessiOptions`.\n *\n * Applica i default di Firebird e collega `tenantId`; non crea store o sink,\n * che restano responsabilita del backend ospitante.\n */\nexport function accessiOptionsFromTenantEnvironment(\n environment: AccessiTenantEnvironment,\n): AccessiOptions {\n const database = environment.database;\n const databaseOptions: Options = {\n host: database.host,\n port: database.port ?? 3050,\n database: database.database,\n user: database.user ?? 'SYSDBA',\n password: database.password ?? 'masterkey',\n ...(database.pluginName ? { pluginName: database.pluginName } : {}),\n ...(database.wireCrypt === 'disabled'\n ? { wireCrypt: WIRE_CRYPT_DISABLE }\n : database.wireCrypt === 'optional'\n ? { wireCrypt: WIRE_CRYPT_ENABLE }\n : {}),\n };\n\n return {\n databaseOptions,\n confirmationEmailUrl: environment.confirmationEmailUrl,\n confirmationEmailReturnUrl: environment.confirmationEmailReturnUrl,\n ...(environment.confirmationEmailPrefix ? { confirmationEmailPrefix: environment.confirmationEmailPrefix } : {}),\n ...(environment.customResetPage ? { customResetPage: environment.customResetPage } : {}),\n ...(environment.publicBaseUrl ? { publicBaseUrl: environment.publicBaseUrl } : {}),\n ...(environment.consoleApiBaseUrl ? { consoleApiBaseUrl: environment.consoleApiBaseUrl } : {}),\n encryptionKey: environment.encryptionKey,\n mockDemoUser: environment.mockDemoUser ?? false,\n ...(environment.passwordExpiration !== undefined ? { passwordExpiration: environment.passwordExpiration } : {}),\n ...(environment.passwordExpirationDays !== undefined ? { passwordExpirationDays: environment.passwordExpirationDays } : {}),\n ...(environment.legacyPasswordMigrationOnStartup !== undefined\n ? { legacyPasswordMigrationOnStartup: environment.legacyPasswordMigrationOnStartup }\n : {}),\n ...(environment.autoUpdateDatabase !== undefined ? { autoUpdateDatabase: environment.autoUpdateDatabase } : {}),\n jwtOptions: environment.jwt,\n emailOptions: environment.email,\n ...(environment.http ? { http: environment.http } : {}),\n ...(environment.authCookie ? { authCookie: environment.authCookie } : {}),\n ...(environment.publicAuthRateLimit ? { publicAuthRateLimit: environment.publicAuthRateLimit } : {}),\n ...(environment.publicRegistration ? { publicRegistration: environment.publicRegistration } : {}),\n ...(environment.federatedAuthentication ? { federatedAuthentication: environment.federatedAuthentication } : {}),\n ...(environment.extensionFieldsOptions ? { extensionFieldsOptions: environment.extensionFieldsOptions } : {}),\n ...(environment.serviceTokens ? { serviceTokens: environment.serviceTokens } : {}),\n ...(environment.catalogScripts ? { catalogScripts: environment.catalogScripts } : {}),\n ...(environment.systemSeeds ? { systemSeeds: environment.systemSeeds } : {}),\n ...(environment.adminBootstrap ? { adminBootstrap: environment.adminBootstrap } : {}),\n ...(environment.openapi ? { openapi: environment.openapi } : {}),\n ...(environment.consoleEntry ? { consoleEntry: environment.consoleEntry } : {}),\n ...(environment.edgeRateLimit ? { edgeRateLimit: environment.edgeRateLimit } : {}),\n ...(environment.sessionRevocation ? { sessionRevocation: environment.sessionRevocation } : {}),\n ...(environment.accessTokenRevocation ? { accessTokenRevocation: environment.accessTokenRevocation } : {}),\n ...(environment.refreshTokenRotation ? { refreshTokenRotation: environment.refreshTokenRotation } : {}),\n ...(environment.metrics ? { metrics: environment.metrics } : {}),\n ...(environment.audit ? { audit: environment.audit } : {}),\n ...(environment.bufferLogs !== undefined ? { bufferLogs: environment.bufferLogs } : {}),\n tenantId: environment.tenant.id,\n };\n}\n\nfunction isRecord(value: unknown): value is Record<string, unknown> {\n return typeof value === 'object' && value !== null && !Array.isArray(value);\n}\n\nfunction runtimeIssues(environment: unknown, file: string): string[] {\n const issues: string[] = [];\n if (!isRecord(environment)) {\n return [`${file}: il file deve esportare un oggetto (default export o export environment).`];\n }\n const tenant = environment.tenant;\n if (!isRecord(tenant)) {\n issues.push(`${file}: tenant mancante.`);\n } else {\n if (typeof tenant.id !== 'string' || !/^[a-z0-9][a-z0-9_-]{0,62}$/.test(tenant.id)) {\n issues.push(`${file}: tenant.id non valido (minuscole, numeri, - e _, max 63).`);\n }\n if (tenant.hosts !== undefined && (!Array.isArray(tenant.hosts) || tenant.hosts.some((host) => typeof host !== 'string'))) {\n issues.push(`${file}: tenant.hosts deve essere un array di stringhe.`);\n }\n if (tenant.path !== undefined && typeof tenant.path !== 'string') {\n issues.push(`${file}: tenant.path deve essere una stringa.`);\n }\n if (\n tenant.port !== undefined\n && (typeof tenant.port !== 'number' || !Number.isInteger(tenant.port) || tenant.port < 1 || tenant.port > 65535)\n ) {\n issues.push(`${file}: tenant.port non valida.`);\n }\n }\n\n const database = environment.database;\n if (!isRecord(database)) {\n issues.push(`${file}: database mancante.`);\n } else {\n if (typeof database.host !== 'string' || database.host.trim() === '') {\n issues.push(`${file}: database.host obbligatorio.`);\n }\n if (typeof database.database !== 'string' || database.database.trim() === '') {\n issues.push(`${file}: database.database obbligatorio.`);\n }\n if (\n database.port !== undefined\n && (typeof database.port !== 'number' || !Number.isInteger(database.port) || database.port < 1 || database.port > 65535)\n ) {\n issues.push(`${file}: database.port non valida.`);\n }\n }\n\n if (!isRecord(environment.jwt)) issues.push(`${file}: jwt mancante.`);\n else {\n if (typeof environment.jwt.secret !== 'string' || environment.jwt.secret === '') {\n issues.push(`${file}: jwt.secret obbligatorio.`);\n }\n if (typeof environment.jwt.expiresIn !== 'string' || environment.jwt.expiresIn === '') {\n issues.push(`${file}: jwt.expiresIn obbligatorio.`);\n }\n }\n\n if (!isRecord(environment.email)) issues.push(`${file}: email mancante.`);\n if (typeof environment.encryptionKey !== 'string' || environment.encryptionKey === '') {\n issues.push(`${file}: encryptionKey obbligatoria.`);\n }\n if (typeof environment.confirmationEmailUrl !== 'string') {\n issues.push(`${file}: confirmationEmailUrl obbligatoria.`);\n }\n if (typeof environment.confirmationEmailReturnUrl !== 'string') {\n issues.push(`${file}: confirmationEmailReturnUrl obbligatoria.`);\n }\n return issues;\n}\n\nfunction loadEnvironmentModule(file: string): unknown {\n if (/\\.(ts|mts|cts)$/i.test(file)) {\n // Caricamento lazy: jiti serve solo ai file tenant TypeScript.\n const { createJiti } = require('jiti') as {\n createJiti: (\n id: string,\n options?: { interopDefault?: boolean; moduleCache?: boolean; fsCache?: boolean },\n ) => (id: string) => unknown;\n };\n const jiti = createJiti(file, { interopDefault: true, moduleCache: false, fsCache: false });\n return jiti(file);\n }\n return require(file);\n}\n\n/**\n * Carica un singolo file `*.environment.ts`.\n *\n * Usa jiti per eseguire TypeScript anche nel pacchetto compilato, senza\n * richiedere un passo di build separato per i file tenant.\n */\nexport function loadAccessiTenantEnvironmentFile(file: string): { tenant: AccessiTenant; environment: AccessiTenantEnvironment } {\n const absolute = resolve(file);\n let loaded: unknown;\n try {\n loaded = loadEnvironmentModule(absolute);\n } catch (error) {\n throw new AccessiTenantConfigurationError([\n `${basename(file)}: impossibile caricare il file (${error instanceof Error ? error.message : String(error)}).`,\n ]);\n }\n\n const record = isRecord(loaded) ? loaded : {};\n const environment = (record.default ?? record.environment ?? loaded) as unknown;\n const issues = runtimeIssues(environment, basename(file));\n if (issues.length > 0) throw new AccessiTenantConfigurationError(issues);\n\n const typed = environment as AccessiTenantEnvironment;\n const settings = typed.tenant;\n const options = accessiOptionsFromTenantEnvironment(typed);\n const validation = validateAccessiOptions(options);\n const validationIssues = validation.errors.map((issue) => `${basename(file)}: ${issue.code}: ${issue.message}`);\n if (validationIssues.length > 0) throw new AccessiTenantConfigurationError(validationIssues);\n\n const hosts = (settings.hosts ?? []).map(normalizeHost).filter(Boolean);\n const path = normalizeTenantPath(settings.path);\n if (hosts.length === 0 && !path) {\n throw new AccessiTenantConfigurationError([\n `${basename(file)}: configurare tenant.hosts oppure tenant.path.`,\n ]);\n }\n\n const tenant: AccessiTenant = {\n id: settings.id,\n hosts,\n ...(path ? { path } : {}),\n enabled: settings.enabled !== false,\n ...(settings.description ? { description: settings.description } : {}),\n ...(settings.port ? { port: settings.port } : {}),\n file: basename(file),\n environmentFile: absolute,\n options,\n };\n return { tenant, environment: typed };\n}\n\n/**\n * Carica i tenant da una cartella di file `<id>.environment.ts`.\n *\n * La validazione e aggregata: un errore blocca l'intera cartella, cosi non si\n * avvia un tenant con configurazione parziale. Nessun segreto viene stampato.\n */\nexport function loadAccessiTenants(options: LoadAccessiTenantsOptions): AccessiTenantRegistry {\n if (!options?.directory) throw new Error('loadAccessiTenants: directory obbligatoria.');\n const directory = resolve(options.directory);\n const issues: string[] = [];\n const warnings: string[] = [];\n\n let files: string[];\n try {\n files = readdirSync(directory, { withFileTypes: true })\n .filter((entry) => entry.isFile() && /\\.environment\\.(ts|mts|cts|js|mjs|cjs)$/.test(entry.name))\n .map((entry) => entry.name)\n .sort();\n } catch (error) {\n throw new AccessiTenantConfigurationError([\n `Cartella tenant non leggibile (${directory}): ${error instanceof Error ? error.message : String(error)}`,\n ]);\n }\n if (files.length === 0) {\n throw new AccessiTenantConfigurationError([`Nessun file *.environment.ts nella cartella ${directory}.`]);\n }\n\n const tenants: AccessiTenant[] = [];\n for (const file of files) {\n try {\n tenants.push(loadAccessiTenantEnvironmentFile(join(directory, file)).tenant);\n } catch (error) {\n if (error instanceof AccessiTenantConfigurationError) issues.push(...error.issues);\n else issues.push(`${file}: ${error instanceof Error ? error.message : String(error)}`);\n }\n }\n\n const byId = new Map<string, AccessiTenant>();\n const hostsSeen = new Map<string, string>();\n const pathsSeen = new Map<string, string>();\n const jwtSecrets = new Map<string, string>();\n const issuerAudience = new Map<string, string>();\n const portsSeen = new Map<number, string>();\n for (const tenant of tenants) {\n if (byId.has(tenant.id)) {\n issues.push(`Tenant duplicato \"${tenant.id}\" (${tenant.file} e ${byId.get(tenant.id)?.file}).`);\n } else {\n byId.set(tenant.id, tenant);\n }\n for (const host of tenant.hosts) {\n const existing = hostsSeen.get(host);\n if (existing) issues.push(`Host \"${host}\" assegnato a \"${existing}\" e \"${tenant.id}\".`);\n else hostsSeen.set(host, tenant.id);\n }\n if (tenant.path) {\n const existing = pathsSeen.get(tenant.path);\n if (existing) issues.push(`Path \"${tenant.path}\" assegnato a \"${existing}\" e \"${tenant.id}\".`);\n else pathsSeen.set(tenant.path, tenant.id);\n }\n if (tenant.port !== undefined) {\n const existing = portsSeen.get(tenant.port);\n if (existing) issues.push(`Porta ${tenant.port} assegnata a \"${existing}\" e \"${tenant.id}\".`);\n else portsSeen.set(tenant.port, tenant.id);\n }\n\n // Un segreto JWT condiviso rende un token valido su piu tenant.\n const signingKey = tenant.options.jwtOptions.privateKey ?? tenant.options.jwtOptions.secret;\n const fingerprintKey = `${tenant.options.jwtOptions.algorithm ?? 'HS256'}|${signingKey}`;\n const existingKey = jwtSecrets.get(fingerprintKey);\n if (existingKey) {\n issues.push(`Chiave JWT condivisa tra \"${existingKey}\" e \"${tenant.id}\": usare segreti distinti.`);\n } else {\n jwtSecrets.set(fingerprintKey, tenant.id);\n }\n\n const issuer = tenant.options.jwtOptions.issuer ?? '(assente)';\n const audience = Array.isArray(tenant.options.jwtOptions.audience)\n ? tenant.options.jwtOptions.audience.join(',')\n : (tenant.options.jwtOptions.audience ?? '(assente)');\n const issuerKey = `${issuer}|${audience}`;\n const existingIssuer = issuerAudience.get(issuerKey);\n if (existingIssuer && options.allowSharedIssuer !== true) {\n warnings.push(`Issuer/audience \"${issuerKey}\" condivisi tra \"${existingIssuer}\" e \"${tenant.id}\".`);\n } else {\n issuerAudience.set(issuerKey, tenant.id);\n }\n }\n\n const enabled = tenants.filter((tenant) => tenant.enabled);\n if (enabled.length > 1) {\n const defaultTenant = enabled.find((tenant) => tenant.hosts.length === 0 && tenant.path === '/');\n if (defaultTenant) {\n issues.push(`Tenant \"${defaultTenant.id}\" intercetta tutte le richieste (path \"/\") insieme ad altri tenant.`);\n }\n }\n\n if (issues.length > 0) throw new AccessiTenantConfigurationError(issues);\n\n const registry: AccessiTenantRegistry = {\n directory,\n tenants,\n warnings,\n allowHeader: options.allowHeader === true,\n byId,\n resolve(input, resolveOptions) {\n const allowHeader = resolveOptions?.allowHeader ?? registry.allowHeader;\n const host = input.host ? normalizeHost(input.host.split(':')[0] ?? input.host) : undefined;\n if (host) {\n const byHost = enabled.find((tenant) => matchesHost(tenant, host));\n if (byHost) return { tenant: byHost, matchedBy: 'host' };\n }\n\n const requestPath = input.path ?? '/';\n const byPath = enabled\n .filter((tenant) => matchesPath(tenant, requestPath))\n .sort((left, right) => (right.path?.length ?? 0) - (left.path?.length ?? 0))[0];\n if (byPath && byPath.path !== '/') return { tenant: byPath, matchedBy: 'path' };\n\n if (allowHeader && input.header) {\n const headerId = input.header.trim().toLowerCase();\n const tenant = byId.get(headerId);\n if (tenant?.enabled) return { tenant, matchedBy: 'header' };\n }\n\n if (byPath) return { tenant: byPath, matchedBy: 'path' };\n return undefined;\n },\n summary() {\n return tenants.map((tenant) => {\n const database = tenant.options.databaseOptions as {\n host?: string;\n port?: number;\n database?: string;\n user?: string;\n };\n return {\n id: tenant.id,\n hosts: [...tenant.hosts],\n ...(tenant.path ? { path: tenant.path } : {}),\n enabled: tenant.enabled,\n ...(tenant.description ? { description: tenant.description } : {}),\n ...(tenant.port ? { port: tenant.port } : {}),\n file: tenant.file,\n database: {\n host: database.host,\n port: database.port,\n database: database.database,\n user: database.user,\n },\n issuer: tenant.options.jwtOptions.issuer,\n ...(tenant.options.jwtOptions.audience\n ? {\n audience: typeof tenant.options.jwtOptions.audience === 'string'\n ? tenant.options.jwtOptions.audience\n : tenant.options.jwtOptions.audience.join(','),\n }\n : {}),\n jwtAlgorithm: tenant.options.jwtOptions.algorithm ?? 'HS256',\n refreshEnabled: Boolean(tenant.options.jwtOptions.refreshExpiresIn),\n };\n });\n },\n };\n\n return registry;\n}\n"]}
@@ -0,0 +1,120 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var AccessiModule_1;
9
+ Object.defineProperty(exports, "__esModule", { value: true });
10
+ exports.AccessiModule = void 0;
11
+ const TwoFactorService_1 = require("./services/two-factor-service/TwoFactorService");
12
+ const common_1 = require("@nestjs/common");
13
+ const AuthService_1 = require("./services/auth-service/AuthService");
14
+ const EmailService_1 = require("./services/email-service/EmailService");
15
+ const PermissionService_1 = require("./services/permission-service/PermissionService");
16
+ const UserService_1 = require("./services/user-service/UserService");
17
+ const EmailController_1 = require("./controllers/EmailController");
18
+ const AuthController_1 = require("./controllers/AuthController");
19
+ const PermissionController_1 = require("./controllers/PermissionController");
20
+ const UserController_1 = require("./controllers/UserController");
21
+ const FiltriService_1 = require("./services/filtri-service/FiltriService");
22
+ const FiltriController_1 = require("./controllers/FiltriController");
23
+ const ConfiguratorController_1 = require("./controllers/ConfiguratorController");
24
+ const ConfiguratorService_1 = require("./services/configurator-service/ConfiguratorService");
25
+ const JwtSimpleGuard_1 = require("./jwt/JwtSimpleGuard");
26
+ const authenticateGen_1 = require("./middleware/authenticateGen");
27
+ const AccessiDatabaseUpdater_1 = require("./database-updates/AccessiDatabaseUpdater");
28
+ const FederatedAuthService_1 = require("./federated-auth/FederatedAuthService");
29
+ const FederatedAuthController_1 = require("./federated-auth/FederatedAuthController");
30
+ const FederatedAuthExchangeController_1 = require("./federated-auth/FederatedAuthExchangeController");
31
+ const AccessiConsoleController_1 = require("./controllers/AccessiConsoleController");
32
+ const ConsoleEntryController_1 = require("./controllers/ConsoleEntryController");
33
+ const ServiceTokenController_1 = require("./controllers/ServiceTokenController");
34
+ const ServiceTokenService_1 = require("./services/service-token-service/ServiceTokenService");
35
+ const serviceTokenGuard_1 = require("./security/serviceTokenGuard");
36
+ const SchemaController_1 = require("./controllers/SchemaController");
37
+ const AccessiIntrospectionController_1 = require("./controllers/AccessiIntrospectionController");
38
+ const SchemaExportService_1 = require("./services/schema-export-service/SchemaExportService");
39
+ const AdminBootstrapService_1 = require("./services/admin-bootstrap-service/AdminBootstrapService");
40
+ const jwksBootstrap_1 = require("./security/jwksBootstrap");
41
+ const emailConfiguration_1 = require("./security/emailConfiguration");
42
+ const audit_1 = require("./security/audit");
43
+ const AccessiAuditController_1 = require("./controllers/AccessiAuditController");
44
+ let AccessiModule = AccessiModule_1 = class AccessiModule {
45
+ /**
46
+ * Registra Accessi nel contenitore Nest del backend ospitante.
47
+ *
48
+ * Usare questo metodo una sola volta nella composizione dell'applicazione. Per un backend
49
+ * Express esistente usare invece `initializeAccessiModule`, che crea e monta l'host Nest interno.
50
+ * La configurazione viene registrata con il token DI `ACCESSI_OPTIONS` ed e condivisa dai servizi.
51
+ */
52
+ static forRoot(options) {
53
+ var _a, _b, _c;
54
+ // Il servizio email e obbligatorio: reset password, 2FA e creazione utente ne dipendono.
55
+ (0, emailConfiguration_1.assertEmailConfigured)(options);
56
+ (0, audit_1.configureAccessiAudit)(options.tenantId
57
+ ? Object.assign(Object.assign({}, ((_a = options.audit) !== null && _a !== void 0 ? _a : {})), { tenantId: (_c = (_b = options.audit) === null || _b === void 0 ? void 0 : _b.tenantId) !== null && _c !== void 0 ? _c : options.tenantId }) : options.audit);
58
+ return {
59
+ module: AccessiModule_1,
60
+ providers: [
61
+ {
62
+ provide: 'ACCESSI_OPTIONS',
63
+ useValue: options,
64
+ },
65
+ AuthService_1.AuthService,
66
+ TwoFactorService_1.TwoFactorService,
67
+ UserService_1.UserService,
68
+ EmailService_1.EmailService,
69
+ PermissionService_1.PermissionService,
70
+ FiltriService_1.FiltriService,
71
+ ConfiguratorService_1.ConfiguratorService,
72
+ JwtSimpleGuard_1.JwtSimpleGuard,
73
+ authenticateGen_1.AuthenticateGenService,
74
+ AccessiDatabaseUpdater_1.AccessiDatabaseUpdater,
75
+ FederatedAuthService_1.FederatedAuthService,
76
+ ServiceTokenService_1.ServiceTokenService,
77
+ serviceTokenGuard_1.ServiceTokenGuard, SchemaExportService_1.SchemaExportService, AdminBootstrapService_1.AdminBootstrapService, jwksBootstrap_1.AccessiJwksBootstrapService
78
+ ],
79
+ exports: [
80
+ 'ACCESSI_OPTIONS',
81
+ AuthService_1.AuthService,
82
+ UserService_1.UserService,
83
+ EmailService_1.EmailService,
84
+ PermissionService_1.PermissionService,
85
+ FiltriService_1.FiltriService,
86
+ ConfiguratorService_1.ConfiguratorService,
87
+ JwtSimpleGuard_1.JwtSimpleGuard,
88
+ authenticateGen_1.AuthenticateGenService,
89
+ FederatedAuthService_1.FederatedAuthService,
90
+ ServiceTokenService_1.ServiceTokenService,
91
+ serviceTokenGuard_1.ServiceTokenGuard, SchemaExportService_1.SchemaExportService, AdminBootstrapService_1.AdminBootstrapService
92
+ ],
93
+ };
94
+ }
95
+ };
96
+ exports.AccessiModule = AccessiModule;
97
+ exports.AccessiModule = AccessiModule = AccessiModule_1 = __decorate([
98
+ (0, common_1.Global)(),
99
+ (0, common_1.Module)({
100
+ controllers: [
101
+ EmailController_1.EmailController,
102
+ AuthController_1.AuthController,
103
+ PermissionController_1.PermissionController,
104
+ UserController_1.UserController,
105
+ FiltriController_1.FiltriController,
106
+ ConfiguratorController_1.ConfiguratorController,
107
+ FederatedAuthController_1.FederatedAuthController,
108
+ AccessiConsoleController_1.AccessiConsoleController,
109
+ ConsoleEntryController_1.ConsoleEntryController,
110
+ FederatedAuthExchangeController_1.FederatedAuthExchangeController,
111
+ ServiceTokenController_1.ServiceTokenController,
112
+ SchemaController_1.SchemaController,
113
+ AccessiIntrospectionController_1.AccessiIntrospectionController,
114
+ AccessiAuditController_1.AccessiAuditController,
115
+ ],
116
+ providers: [AuthService_1.AuthService, TwoFactorService_1.TwoFactorService, UserService_1.UserService, EmailService_1.EmailService, PermissionService_1.PermissionService, FiltriService_1.FiltriService, ConfiguratorService_1.ConfiguratorService, JwtSimpleGuard_1.JwtSimpleGuard, authenticateGen_1.AuthenticateGenService, AccessiDatabaseUpdater_1.AccessiDatabaseUpdater, FederatedAuthService_1.FederatedAuthService, ServiceTokenService_1.ServiceTokenService, serviceTokenGuard_1.ServiceTokenGuard, SchemaExportService_1.SchemaExportService, AdminBootstrapService_1.AdminBootstrapService, jwksBootstrap_1.AccessiJwksBootstrapService],
117
+ exports: [AuthService_1.AuthService, UserService_1.UserService, EmailService_1.EmailService, PermissionService_1.PermissionService, FiltriService_1.FiltriService, ConfiguratorService_1.ConfiguratorService, JwtSimpleGuard_1.JwtSimpleGuard, authenticateGen_1.AuthenticateGenService, FederatedAuthService_1.FederatedAuthService, ServiceTokenService_1.ServiceTokenService, serviceTokenGuard_1.ServiceTokenGuard, SchemaExportService_1.SchemaExportService, AdminBootstrapService_1.AdminBootstrapService],
118
+ })
119
+ ], AccessiModule);
120
+ //# sourceMappingURL=AccessiModule.js.map