emilsoftware-utilities 2.0.0-dev.22 → 2.0.0-dev.24

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 (550) hide show
  1. package/README.MD +182 -38
  2. package/dist/ContractGenerator.d.ts +4 -3
  3. package/dist/ContractGenerator.js +15 -5
  4. package/dist/ContractGenerator.js.map +1 -1
  5. package/dist/DailyFileTransport.d.ts +21 -0
  6. package/dist/DailyFileTransport.js +74 -0
  7. package/dist/DailyFileTransport.js.map +1 -0
  8. package/dist/DatabaseUpdater.js +32 -29
  9. package/dist/DatabaseUpdater.js.map +1 -1
  10. package/dist/EmilsoftwareModule.js.map +1 -1
  11. package/dist/ExecutionTimeLogger.d.ts +2 -2
  12. package/dist/ExecutionTimeLogger.js +5 -4
  13. package/dist/ExecutionTimeLogger.js.map +1 -1
  14. package/dist/Logger.d.ts +22 -11
  15. package/dist/Logger.js +132 -119
  16. package/dist/Logger.js.map +1 -1
  17. package/dist/Orm.d.ts +26 -6
  18. package/dist/Orm.js +144 -40
  19. package/dist/Orm.js.map +1 -1
  20. package/dist/RoutesLoggerMiddleware.js.map +1 -1
  21. package/dist/Utilities.d.ts +18 -8
  22. package/dist/Utilities.js +115 -35
  23. package/dist/Utilities.js.map +1 -1
  24. package/dist/accessi-module/AccessiModule.d.ts +69 -0
  25. package/dist/accessi-module/AccessiModule.js +29 -5
  26. package/dist/accessi-module/AccessiModule.js.map +1 -1
  27. package/dist/accessi-module/Console/accessiFetch.d.ts +7 -0
  28. package/dist/accessi-module/Console/accessiFetch.js +59 -0
  29. package/dist/accessi-module/Console/accessiFetch.js.map +1 -0
  30. package/dist/accessi-module/Console/console.css +618 -0
  31. package/dist/accessi-module/Console/console.d.ts +1 -0
  32. package/dist/accessi-module/Console/console.js +3101 -0
  33. package/dist/accessi-module/Console/console.js.map +1 -0
  34. package/dist/accessi-module/Console/generated/accessiApi.d.ts +542 -0
  35. package/dist/accessi-module/Console/generated/accessiApi.js +517 -0
  36. package/dist/accessi-module/Console/generated/accessiApi.js.map +1 -0
  37. package/dist/accessi-module/Console/generated/model/abilitazioneMenu.d.ts +39 -0
  38. package/dist/accessi-module/Console/generated/model/abilitazioneMenu.js +3 -0
  39. package/dist/accessi-module/Console/generated/model/abilitazioneMenu.js.map +1 -0
  40. package/dist/accessi-module/Console/generated/model/abilitazioneMenuIcona.d.ts +12 -0
  41. package/dist/accessi-module/Console/generated/model/abilitazioneMenuIcona.js +9 -0
  42. package/dist/accessi-module/Console/generated/model/abilitazioneMenuIcona.js.map +1 -0
  43. package/dist/accessi-module/Console/generated/model/abilitazioneMenuNote.d.ts +12 -0
  44. package/dist/accessi-module/Console/generated/model/abilitazioneMenuNote.js +9 -0
  45. package/dist/accessi-module/Console/generated/model/abilitazioneMenuNote.js.map +1 -0
  46. package/dist/accessi-module/Console/generated/model/abilitazioneMenuPagina.d.ts +12 -0
  47. package/dist/accessi-module/Console/generated/model/abilitazioneMenuPagina.js +9 -0
  48. package/dist/accessi-module/Console/generated/model/abilitazioneMenuPagina.js.map +1 -0
  49. package/dist/accessi-module/Console/generated/model/abilitazioneMenuTipo.d.ts +12 -0
  50. package/dist/accessi-module/Console/generated/model/abilitazioneMenuTipo.js +9 -0
  51. package/dist/accessi-module/Console/generated/model/abilitazioneMenuTipo.js.map +1 -0
  52. package/dist/accessi-module/Console/generated/model/abilitazioneMenuTipoAbilitazione.d.ts +16 -0
  53. package/dist/accessi-module/Console/generated/model/abilitazioneMenuTipoAbilitazione.js +17 -0
  54. package/dist/accessi-module/Console/generated/model/abilitazioneMenuTipoAbilitazione.js.map +1 -0
  55. package/dist/accessi-module/Console/generated/model/actionResponse.d.ts +12 -0
  56. package/dist/accessi-module/Console/generated/model/actionResponse.js +9 -0
  57. package/dist/accessi-module/Console/generated/model/actionResponse.js.map +1 -0
  58. package/dist/accessi-module/Console/generated/model/assignPermissionsToUserRequest.d.ts +11 -0
  59. package/dist/accessi-module/Console/generated/model/assignPermissionsToUserRequest.js +3 -0
  60. package/dist/accessi-module/Console/generated/model/assignPermissionsToUserRequest.js.map +1 -0
  61. package/dist/accessi-module/Console/generated/model/assignRolesToUserRequest.d.ts +10 -0
  62. package/dist/accessi-module/Console/generated/model/assignRolesToUserRequest.js +9 -0
  63. package/dist/accessi-module/Console/generated/model/assignRolesToUserRequest.js.map +1 -0
  64. package/dist/accessi-module/Console/generated/model/authenticatedTokenPayloadDto.d.ts +10 -0
  65. package/dist/accessi-module/Console/generated/model/authenticatedTokenPayloadDto.js +3 -0
  66. package/dist/accessi-module/Console/generated/model/authenticatedTokenPayloadDto.js.map +1 -0
  67. package/dist/accessi-module/Console/generated/model/authenticatedUserPayloadDto.d.ts +19 -0
  68. package/dist/accessi-module/Console/generated/model/authenticatedUserPayloadDto.js +9 -0
  69. package/dist/accessi-module/Console/generated/model/authenticatedUserPayloadDto.js.map +1 -0
  70. package/dist/accessi-module/Console/generated/model/confirmResetPasswordRequest.d.ts +14 -0
  71. package/dist/accessi-module/Console/generated/model/confirmResetPasswordRequest.js +9 -0
  72. package/dist/accessi-module/Console/generated/model/confirmResetPasswordRequest.js.map +1 -0
  73. package/dist/accessi-module/Console/generated/model/createFederatedIdentityRequest.d.ts +13 -0
  74. package/dist/accessi-module/Console/generated/model/createFederatedIdentityRequest.js +9 -0
  75. package/dist/accessi-module/Console/generated/model/createFederatedIdentityRequest.js.map +1 -0
  76. package/dist/accessi-module/Console/generated/model/createFederatedProviderRequest.d.ts +13 -0
  77. package/dist/accessi-module/Console/generated/model/createFederatedProviderRequest.js +9 -0
  78. package/dist/accessi-module/Console/generated/model/createFederatedProviderRequest.js.map +1 -0
  79. package/dist/accessi-module/Console/generated/model/createFederatedUserRequest.d.ts +18 -0
  80. package/dist/accessi-module/Console/generated/model/createFederatedUserRequest.js +3 -0
  81. package/dist/accessi-module/Console/generated/model/createFederatedUserRequest.js.map +1 -0
  82. package/dist/accessi-module/Console/generated/model/createFilterTypeRequest.d.ts +23 -0
  83. package/dist/accessi-module/Console/generated/model/createFilterTypeRequest.js +3 -0
  84. package/dist/accessi-module/Console/generated/model/createFilterTypeRequest.js.map +1 -0
  85. package/dist/accessi-module/Console/generated/model/createFilterTypeRequestFlgEnabled.d.ts +14 -0
  86. package/dist/accessi-module/Console/generated/model/createFilterTypeRequestFlgEnabled.js +15 -0
  87. package/dist/accessi-module/Console/generated/model/createFilterTypeRequestFlgEnabled.js.map +1 -0
  88. package/dist/accessi-module/Console/generated/model/createMenuGroupRequest.d.ts +27 -0
  89. package/dist/accessi-module/Console/generated/model/createMenuGroupRequest.js +9 -0
  90. package/dist/accessi-module/Console/generated/model/createMenuGroupRequest.js.map +1 -0
  91. package/dist/accessi-module/Console/generated/model/createMenuRequest.d.ts +52 -0
  92. package/dist/accessi-module/Console/generated/model/createMenuRequest.js +9 -0
  93. package/dist/accessi-module/Console/generated/model/createMenuRequest.js.map +1 -0
  94. package/dist/accessi-module/Console/generated/model/createMenuTypeRequest.d.ts +18 -0
  95. package/dist/accessi-module/Console/generated/model/createMenuTypeRequest.js +9 -0
  96. package/dist/accessi-module/Console/generated/model/createMenuTypeRequest.js.map +1 -0
  97. package/dist/accessi-module/Console/generated/model/createServiceTokenRequest.d.ts +16 -0
  98. package/dist/accessi-module/Console/generated/model/createServiceTokenRequest.js +9 -0
  99. package/dist/accessi-module/Console/generated/model/createServiceTokenRequest.js.map +1 -0
  100. package/dist/accessi-module/Console/generated/model/createServiceTokenResponse.d.ts +14 -0
  101. package/dist/accessi-module/Console/generated/model/createServiceTokenResponse.js +3 -0
  102. package/dist/accessi-module/Console/generated/model/createServiceTokenResponse.js.map +1 -0
  103. package/dist/accessi-module/Console/generated/model/errorResponse.d.ts +18 -0
  104. package/dist/accessi-module/Console/generated/model/errorResponse.js +9 -0
  105. package/dist/accessi-module/Console/generated/model/errorResponse.js.map +1 -0
  106. package/dist/accessi-module/Console/generated/model/federatedIdentityListResponse.d.ts +14 -0
  107. package/dist/accessi-module/Console/generated/model/federatedIdentityListResponse.js +3 -0
  108. package/dist/accessi-module/Console/generated/model/federatedIdentityListResponse.js.map +1 -0
  109. package/dist/accessi-module/Console/generated/model/federatedIdentityResponse.d.ts +14 -0
  110. package/dist/accessi-module/Console/generated/model/federatedIdentityResponse.js +3 -0
  111. package/dist/accessi-module/Console/generated/model/federatedIdentityResponse.js.map +1 -0
  112. package/dist/accessi-module/Console/generated/model/federatedIdentityResponseDto.d.ts +23 -0
  113. package/dist/accessi-module/Console/generated/model/federatedIdentityResponseDto.js +9 -0
  114. package/dist/accessi-module/Console/generated/model/federatedIdentityResponseDto.js.map +1 -0
  115. package/dist/accessi-module/Console/generated/model/federatedProviderListResponse.d.ts +14 -0
  116. package/dist/accessi-module/Console/generated/model/federatedProviderListResponse.js +3 -0
  117. package/dist/accessi-module/Console/generated/model/federatedProviderListResponse.js.map +1 -0
  118. package/dist/accessi-module/Console/generated/model/federatedProviderResponse.d.ts +14 -0
  119. package/dist/accessi-module/Console/generated/model/federatedProviderResponse.js +3 -0
  120. package/dist/accessi-module/Console/generated/model/federatedProviderResponse.js.map +1 -0
  121. package/dist/accessi-module/Console/generated/model/federatedProviderResponseDto.d.ts +13 -0
  122. package/dist/accessi-module/Console/generated/model/federatedProviderResponseDto.js +9 -0
  123. package/dist/accessi-module/Console/generated/model/federatedProviderResponseDto.js.map +1 -0
  124. package/dist/accessi-module/Console/generated/model/filtriUtente.d.ts +32 -0
  125. package/dist/accessi-module/Console/generated/model/filtriUtente.js +9 -0
  126. package/dist/accessi-module/Console/generated/model/filtriUtente.js.map +1 -0
  127. package/dist/accessi-module/Console/generated/model/getFiltriResponse.d.ts +14 -0
  128. package/dist/accessi-module/Console/generated/model/getFiltriResponse.js +3 -0
  129. package/dist/accessi-module/Console/generated/model/getFiltriResponse.js.map +1 -0
  130. package/dist/accessi-module/Console/generated/model/getFiltriUtenteParams.d.ts +12 -0
  131. package/dist/accessi-module/Console/generated/model/getFiltriUtenteParams.js +9 -0
  132. package/dist/accessi-module/Console/generated/model/getFiltriUtenteParams.js.map +1 -0
  133. package/dist/accessi-module/Console/generated/model/getFiltriUtenteResponse.d.ts +14 -0
  134. package/dist/accessi-module/Console/generated/model/getFiltriUtenteResponse.js +3 -0
  135. package/dist/accessi-module/Console/generated/model/getFiltriUtenteResponse.js.map +1 -0
  136. package/dist/accessi-module/Console/generated/model/getGroupsWithMenusParams.d.ts +12 -0
  137. package/dist/accessi-module/Console/generated/model/getGroupsWithMenusParams.js +9 -0
  138. package/dist/accessi-module/Console/generated/model/getGroupsWithMenusParams.js.map +1 -0
  139. package/dist/accessi-module/Console/generated/model/getGroupsWithMenusResponse.d.ts +14 -0
  140. package/dist/accessi-module/Console/generated/model/getGroupsWithMenusResponse.js +3 -0
  141. package/dist/accessi-module/Console/generated/model/getGroupsWithMenusResponse.js.map +1 -0
  142. package/dist/accessi-module/Console/generated/model/getMenuTypesResponse.d.ts +14 -0
  143. package/dist/accessi-module/Console/generated/model/getMenuTypesResponse.js +3 -0
  144. package/dist/accessi-module/Console/generated/model/getMenuTypesResponse.js.map +1 -0
  145. package/dist/accessi-module/Console/generated/model/getMenusResponse.d.ts +14 -0
  146. package/dist/accessi-module/Console/generated/model/getMenusResponse.js +3 -0
  147. package/dist/accessi-module/Console/generated/model/getMenusResponse.js.map +1 -0
  148. package/dist/accessi-module/Console/generated/model/getRolesResponse.d.ts +14 -0
  149. package/dist/accessi-module/Console/generated/model/getRolesResponse.js +3 -0
  150. package/dist/accessi-module/Console/generated/model/getRolesResponse.js.map +1 -0
  151. package/dist/accessi-module/Console/generated/model/getServiceTokensParams.d.ts +12 -0
  152. package/dist/accessi-module/Console/generated/model/getServiceTokensParams.js +9 -0
  153. package/dist/accessi-module/Console/generated/model/getServiceTokensParams.js.map +1 -0
  154. package/dist/accessi-module/Console/generated/model/getServiceTokensResponse.d.ts +14 -0
  155. package/dist/accessi-module/Console/generated/model/getServiceTokensResponse.js +3 -0
  156. package/dist/accessi-module/Console/generated/model/getServiceTokensResponse.js.map +1 -0
  157. package/dist/accessi-module/Console/generated/model/getUserByTokenRequest.d.ts +10 -0
  158. package/dist/accessi-module/Console/generated/model/getUserByTokenRequest.js +9 -0
  159. package/dist/accessi-module/Console/generated/model/getUserByTokenRequest.js.map +1 -0
  160. package/dist/accessi-module/Console/generated/model/getUserByTokenResponse.d.ts +14 -0
  161. package/dist/accessi-module/Console/generated/model/getUserByTokenResponse.js +3 -0
  162. package/dist/accessi-module/Console/generated/model/getUserByTokenResponse.js.map +1 -0
  163. package/dist/accessi-module/Console/generated/model/getUsersParams.d.ts +32 -0
  164. package/dist/accessi-module/Console/generated/model/getUsersParams.js +9 -0
  165. package/dist/accessi-module/Console/generated/model/getUsersParams.js.map +1 -0
  166. package/dist/accessi-module/Console/generated/model/getUsersResponse.d.ts +14 -0
  167. package/dist/accessi-module/Console/generated/model/getUsersResponse.js +3 -0
  168. package/dist/accessi-module/Console/generated/model/getUsersResponse.js.map +1 -0
  169. package/dist/accessi-module/Console/generated/model/getUsersResult.d.ts +17 -0
  170. package/dist/accessi-module/Console/generated/model/getUsersResult.js +3 -0
  171. package/dist/accessi-module/Console/generated/model/getUsersResult.js.map +1 -0
  172. package/dist/accessi-module/Console/generated/model/getUsersResultExtensionFields.d.ts +12 -0
  173. package/dist/accessi-module/Console/generated/model/getUsersResultExtensionFields.js +9 -0
  174. package/dist/accessi-module/Console/generated/model/getUsersResultExtensionFields.js.map +1 -0
  175. package/dist/accessi-module/Console/generated/model/groupWithMenusEntity.d.ts +19 -0
  176. package/dist/accessi-module/Console/generated/model/groupWithMenusEntity.js +3 -0
  177. package/dist/accessi-module/Console/generated/model/groupWithMenusEntity.js.map +1 -0
  178. package/dist/accessi-module/Console/generated/model/index.d.ts +93 -0
  179. package/dist/accessi-module/Console/generated/model/index.js +110 -0
  180. package/dist/accessi-module/Console/generated/model/index.js.map +1 -0
  181. package/dist/accessi-module/Console/generated/model/issuedServiceTokenDto.d.ts +30 -0
  182. package/dist/accessi-module/Console/generated/model/issuedServiceTokenDto.js +9 -0
  183. package/dist/accessi-module/Console/generated/model/issuedServiceTokenDto.js.map +1 -0
  184. package/dist/accessi-module/Console/generated/model/loginRequest.d.ts +12 -0
  185. package/dist/accessi-module/Console/generated/model/loginRequest.js +9 -0
  186. package/dist/accessi-module/Console/generated/model/loginRequest.js.map +1 -0
  187. package/dist/accessi-module/Console/generated/model/loginResponse.d.ts +14 -0
  188. package/dist/accessi-module/Console/generated/model/loginResponse.js +3 -0
  189. package/dist/accessi-module/Console/generated/model/loginResponse.js.map +1 -0
  190. package/dist/accessi-module/Console/generated/model/loginResult.d.ts +32 -0
  191. package/dist/accessi-module/Console/generated/model/loginResult.js +3 -0
  192. package/dist/accessi-module/Console/generated/model/loginResult.js.map +1 -0
  193. package/dist/accessi-module/Console/generated/model/loginResultExtensionFields.d.ts +12 -0
  194. package/dist/accessi-module/Console/generated/model/loginResultExtensionFields.js +9 -0
  195. package/dist/accessi-module/Console/generated/model/loginResultExtensionFields.js.map +1 -0
  196. package/dist/accessi-module/Console/generated/model/loginResultPasswordRequired.d.ts +13 -0
  197. package/dist/accessi-module/Console/generated/model/loginResultPasswordRequired.js +14 -0
  198. package/dist/accessi-module/Console/generated/model/loginResultPasswordRequired.js.map +1 -0
  199. package/dist/accessi-module/Console/generated/model/menuEntity.d.ts +32 -0
  200. package/dist/accessi-module/Console/generated/model/menuEntity.js +9 -0
  201. package/dist/accessi-module/Console/generated/model/menuEntity.js.map +1 -0
  202. package/dist/accessi-module/Console/generated/model/menuTypeEntity.d.ts +12 -0
  203. package/dist/accessi-module/Console/generated/model/menuTypeEntity.js +9 -0
  204. package/dist/accessi-module/Console/generated/model/menuTypeEntity.js.map +1 -0
  205. package/dist/accessi-module/Console/generated/model/passwordExpiredResponse.d.ts +12 -0
  206. package/dist/accessi-module/Console/generated/model/passwordExpiredResponse.js +9 -0
  207. package/dist/accessi-module/Console/generated/model/passwordExpiredResponse.js.map +1 -0
  208. package/dist/accessi-module/Console/generated/model/permission.d.ts +12 -0
  209. package/dist/accessi-module/Console/generated/model/permission.js +9 -0
  210. package/dist/accessi-module/Console/generated/model/permission.js.map +1 -0
  211. package/dist/accessi-module/Console/generated/model/publicRegisterRequest.d.ts +51 -0
  212. package/dist/accessi-module/Console/generated/model/publicRegisterRequest.js +9 -0
  213. package/dist/accessi-module/Console/generated/model/publicRegisterRequest.js.map +1 -0
  214. package/dist/accessi-module/Console/generated/model/publicRegisterRequestCellulare.d.ts +13 -0
  215. package/dist/accessi-module/Console/generated/model/publicRegisterRequestCellulare.js +9 -0
  216. package/dist/accessi-module/Console/generated/model/publicRegisterRequestCellulare.js.map +1 -0
  217. package/dist/accessi-module/Console/generated/model/registerRequest.d.ts +62 -0
  218. package/dist/accessi-module/Console/generated/model/registerRequest.js +3 -0
  219. package/dist/accessi-module/Console/generated/model/registerRequest.js.map +1 -0
  220. package/dist/accessi-module/Console/generated/model/registerRequestCellulare.d.ts +13 -0
  221. package/dist/accessi-module/Console/generated/model/registerRequestCellulare.js +9 -0
  222. package/dist/accessi-module/Console/generated/model/registerRequestCellulare.js.map +1 -0
  223. package/dist/accessi-module/Console/generated/model/registerResponse.d.ts +14 -0
  224. package/dist/accessi-module/Console/generated/model/registerResponse.js +3 -0
  225. package/dist/accessi-module/Console/generated/model/registerResponse.js.map +1 -0
  226. package/dist/accessi-module/Console/generated/model/resendTwoFactorRequest.d.ts +13 -0
  227. package/dist/accessi-module/Console/generated/model/resendTwoFactorRequest.js +9 -0
  228. package/dist/accessi-module/Console/generated/model/resendTwoFactorRequest.js.map +1 -0
  229. package/dist/accessi-module/Console/generated/model/role.d.ts +15 -0
  230. package/dist/accessi-module/Console/generated/model/role.js +3 -0
  231. package/dist/accessi-module/Console/generated/model/role.js.map +1 -0
  232. package/dist/accessi-module/Console/generated/model/ruoliMenu.d.ts +15 -0
  233. package/dist/accessi-module/Console/generated/model/ruoliMenu.js +3 -0
  234. package/dist/accessi-module/Console/generated/model/ruoliMenu.js.map +1 -0
  235. package/dist/accessi-module/Console/generated/model/ruoliMenuTipoAbilitazione.d.ts +16 -0
  236. package/dist/accessi-module/Console/generated/model/ruoliMenuTipoAbilitazione.js +17 -0
  237. package/dist/accessi-module/Console/generated/model/ruoliMenuTipoAbilitazione.js.map +1 -0
  238. package/dist/accessi-module/Console/generated/model/sendResetPasswordEmailRequest.d.ts +12 -0
  239. package/dist/accessi-module/Console/generated/model/sendResetPasswordEmailRequest.js +9 -0
  240. package/dist/accessi-module/Console/generated/model/sendResetPasswordEmailRequest.js.map +1 -0
  241. package/dist/accessi-module/Console/generated/model/serveResetPasswordPageParams.d.ts +12 -0
  242. package/dist/accessi-module/Console/generated/model/serveResetPasswordPageParams.js +9 -0
  243. package/dist/accessi-module/Console/generated/model/serveResetPasswordPageParams.js.map +1 -0
  244. package/dist/accessi-module/Console/generated/model/serviceTokenDto.d.ts +28 -0
  245. package/dist/accessi-module/Console/generated/model/serviceTokenDto.js +9 -0
  246. package/dist/accessi-module/Console/generated/model/serviceTokenDto.js.map +1 -0
  247. package/dist/accessi-module/Console/generated/model/setPasswordLoginPolicyRequest.d.ts +10 -0
  248. package/dist/accessi-module/Console/generated/model/setPasswordLoginPolicyRequest.js +9 -0
  249. package/dist/accessi-module/Console/generated/model/setPasswordLoginPolicyRequest.js.map +1 -0
  250. package/dist/accessi-module/Console/generated/model/setStatoRegistrazioneDto.d.ts +13 -0
  251. package/dist/accessi-module/Console/generated/model/setStatoRegistrazioneDto.js +3 -0
  252. package/dist/accessi-module/Console/generated/model/setStatoRegistrazioneDto.js.map +1 -0
  253. package/dist/accessi-module/Console/generated/model/setStatoRegistrazioneDtoStatoRegistrazione.d.ts +18 -0
  254. package/dist/accessi-module/Console/generated/model/setStatoRegistrazioneDtoStatoRegistrazione.js +19 -0
  255. package/dist/accessi-module/Console/generated/model/setStatoRegistrazioneDtoStatoRegistrazione.js.map +1 -0
  256. package/dist/accessi-module/Console/generated/model/status.d.ts +12 -0
  257. package/dist/accessi-module/Console/generated/model/status.js +9 -0
  258. package/dist/accessi-module/Console/generated/model/status.js.map +1 -0
  259. package/dist/accessi-module/Console/generated/model/tipoFiltro.d.ts +23 -0
  260. package/dist/accessi-module/Console/generated/model/tipoFiltro.js +3 -0
  261. package/dist/accessi-module/Console/generated/model/tipoFiltro.js.map +1 -0
  262. package/dist/accessi-module/Console/generated/model/tipoFiltroFlgEnabled.d.ts +14 -0
  263. package/dist/accessi-module/Console/generated/model/tipoFiltroFlgEnabled.js +15 -0
  264. package/dist/accessi-module/Console/generated/model/tipoFiltroFlgEnabled.js.map +1 -0
  265. package/dist/accessi-module/Console/generated/model/tokenResult.d.ts +15 -0
  266. package/dist/accessi-module/Console/generated/model/tokenResult.js +3 -0
  267. package/dist/accessi-module/Console/generated/model/tokenResult.js.map +1 -0
  268. package/dist/accessi-module/Console/generated/model/tokenResultType.d.ts +14 -0
  269. package/dist/accessi-module/Console/generated/model/tokenResultType.js +15 -0
  270. package/dist/accessi-module/Console/generated/model/tokenResultType.js.map +1 -0
  271. package/dist/accessi-module/Console/generated/model/twoFactorChallengeDto.d.ts +18 -0
  272. package/dist/accessi-module/Console/generated/model/twoFactorChallengeDto.js +3 -0
  273. package/dist/accessi-module/Console/generated/model/twoFactorChallengeDto.js.map +1 -0
  274. package/dist/accessi-module/Console/generated/model/twoFactorChallengeDtoMethod.d.ts +10 -0
  275. package/dist/accessi-module/Console/generated/model/twoFactorChallengeDtoMethod.js +14 -0
  276. package/dist/accessi-module/Console/generated/model/twoFactorChallengeDtoMethod.js.map +1 -0
  277. package/dist/accessi-module/Console/generated/model/twoFactorChallengeDtoTwoFactorRequired.d.ts +13 -0
  278. package/dist/accessi-module/Console/generated/model/twoFactorChallengeDtoTwoFactorRequired.js +14 -0
  279. package/dist/accessi-module/Console/generated/model/twoFactorChallengeDtoTwoFactorRequired.js.map +1 -0
  280. package/dist/accessi-module/Console/generated/model/updateEnabledStatusRequest.d.ts +10 -0
  281. package/dist/accessi-module/Console/generated/model/updateEnabledStatusRequest.js +9 -0
  282. package/dist/accessi-module/Console/generated/model/updateEnabledStatusRequest.js.map +1 -0
  283. package/dist/accessi-module/Console/generated/model/updateFederatedIdentityRequest.d.ts +11 -0
  284. package/dist/accessi-module/Console/generated/model/updateFederatedIdentityRequest.js +9 -0
  285. package/dist/accessi-module/Console/generated/model/updateFederatedIdentityRequest.js.map +1 -0
  286. package/dist/accessi-module/Console/generated/model/updateFederatedProviderRequest.d.ts +12 -0
  287. package/dist/accessi-module/Console/generated/model/updateFederatedProviderRequest.js +9 -0
  288. package/dist/accessi-module/Console/generated/model/updateFederatedProviderRequest.js.map +1 -0
  289. package/dist/accessi-module/Console/generated/model/updateFilterTypeRequest.d.ts +21 -0
  290. package/dist/accessi-module/Console/generated/model/updateFilterTypeRequest.js +3 -0
  291. package/dist/accessi-module/Console/generated/model/updateFilterTypeRequest.js.map +1 -0
  292. package/dist/accessi-module/Console/generated/model/updateFilterTypeRequestFlgEnabled.d.ts +14 -0
  293. package/dist/accessi-module/Console/generated/model/updateFilterTypeRequestFlgEnabled.js +15 -0
  294. package/dist/accessi-module/Console/generated/model/updateFilterTypeRequestFlgEnabled.js.map +1 -0
  295. package/dist/accessi-module/Console/generated/model/updateMenuGroupRequest.d.ts +22 -0
  296. package/dist/accessi-module/Console/generated/model/updateMenuGroupRequest.js +9 -0
  297. package/dist/accessi-module/Console/generated/model/updateMenuGroupRequest.js.map +1 -0
  298. package/dist/accessi-module/Console/generated/model/updateMenuRequest.d.ts +47 -0
  299. package/dist/accessi-module/Console/generated/model/updateMenuRequest.js +9 -0
  300. package/dist/accessi-module/Console/generated/model/updateMenuRequest.js.map +1 -0
  301. package/dist/accessi-module/Console/generated/model/updateMenuTypeRequest.d.ts +13 -0
  302. package/dist/accessi-module/Console/generated/model/updateMenuTypeRequest.js +9 -0
  303. package/dist/accessi-module/Console/generated/model/updateMenuTypeRequest.js.map +1 -0
  304. package/dist/accessi-module/Console/generated/model/userDto.d.ts +88 -0
  305. package/dist/accessi-module/Console/generated/model/userDto.js +3 -0
  306. package/dist/accessi-module/Console/generated/model/userDto.js.map +1 -0
  307. package/dist/accessi-module/Console/generated/model/userDtoAvatar.d.ts +13 -0
  308. package/dist/accessi-module/Console/generated/model/userDtoAvatar.js +9 -0
  309. package/dist/accessi-module/Console/generated/model/userDtoAvatar.js.map +1 -0
  310. package/dist/accessi-module/Console/generated/model/userDtoCellulare.d.ts +13 -0
  311. package/dist/accessi-module/Console/generated/model/userDtoCellulare.js +9 -0
  312. package/dist/accessi-module/Console/generated/model/userDtoCellulare.js.map +1 -0
  313. package/dist/accessi-module/Console/generated/model/userDtoStatoRegistrazione.d.ts +18 -0
  314. package/dist/accessi-module/Console/generated/model/userDtoStatoRegistrazione.js +19 -0
  315. package/dist/accessi-module/Console/generated/model/userDtoStatoRegistrazione.js.map +1 -0
  316. package/dist/accessi-module/Console/generated/model/userGrantsDto.d.ts +16 -0
  317. package/dist/accessi-module/Console/generated/model/userGrantsDto.js +3 -0
  318. package/dist/accessi-module/Console/generated/model/userGrantsDto.js.map +1 -0
  319. package/dist/accessi-module/Console/generated/model/userGrantsResponse.d.ts +14 -0
  320. package/dist/accessi-module/Console/generated/model/userGrantsResponse.js +3 -0
  321. package/dist/accessi-module/Console/generated/model/userGrantsResponse.js.map +1 -0
  322. package/dist/accessi-module/Console/generated/model/verifyTwoFactorRequest.d.ts +18 -0
  323. package/dist/accessi-module/Console/generated/model/verifyTwoFactorRequest.js +9 -0
  324. package/dist/accessi-module/Console/generated/model/verifyTwoFactorRequest.js.map +1 -0
  325. package/dist/accessi-module/Console/help.d.ts +13 -0
  326. package/dist/accessi-module/Console/help.js +348 -0
  327. package/dist/accessi-module/Console/help.js.map +1 -0
  328. package/dist/accessi-module/Console/index.html +127 -0
  329. package/dist/accessi-module/Console/openApiClient.d.ts +34 -0
  330. package/dist/accessi-module/Console/openApiClient.js +111 -0
  331. package/dist/accessi-module/Console/openApiClient.js.map +1 -0
  332. package/dist/accessi-module/Console/wiki.d.ts +52 -0
  333. package/dist/accessi-module/Console/wiki.js +689 -0
  334. package/dist/accessi-module/Console/wiki.js.map +1 -0
  335. package/dist/accessi-module/Controllers/AccessiConsoleController.d.ts +18 -0
  336. package/dist/accessi-module/Controllers/AccessiConsoleController.js +111 -0
  337. package/dist/accessi-module/Controllers/AccessiConsoleController.js.map +1 -0
  338. package/dist/accessi-module/Controllers/AuthController.d.ts +4 -1
  339. package/dist/accessi-module/Controllers/AuthController.js +86 -47
  340. package/dist/accessi-module/Controllers/AuthController.js.map +1 -1
  341. package/dist/accessi-module/Controllers/ConfiguratorController.d.ts +1 -3
  342. package/dist/accessi-module/Controllers/ConfiguratorController.js +9 -9
  343. package/dist/accessi-module/Controllers/ConfiguratorController.js.map +1 -1
  344. package/dist/accessi-module/Controllers/EmailController.d.ts +2 -2
  345. package/dist/accessi-module/Controllers/EmailController.js +4 -2
  346. package/dist/accessi-module/Controllers/EmailController.js.map +1 -1
  347. package/dist/accessi-module/Controllers/FiltriController.d.ts +5 -4
  348. package/dist/accessi-module/Controllers/FiltriController.js +95 -5
  349. package/dist/accessi-module/Controllers/FiltriController.js.map +1 -1
  350. package/dist/accessi-module/Controllers/PermissionController.d.ts +12 -1
  351. package/dist/accessi-module/Controllers/PermissionController.js +282 -13
  352. package/dist/accessi-module/Controllers/PermissionController.js.map +1 -1
  353. package/dist/accessi-module/Controllers/ServiceTokenController.d.ts +23 -0
  354. package/dist/accessi-module/Controllers/ServiceTokenController.js +176 -0
  355. package/dist/accessi-module/Controllers/ServiceTokenController.js.map +1 -0
  356. package/dist/accessi-module/Controllers/UserController.d.ts +5 -3
  357. package/dist/accessi-module/Controllers/UserController.js +65 -11
  358. package/dist/accessi-module/Controllers/UserController.js.map +1 -1
  359. package/dist/accessi-module/Dtos/Abilitazione.js.map +1 -1
  360. package/dist/accessi-module/Dtos/AbilitazioneMenu.js +16 -8
  361. package/dist/accessi-module/Dtos/AbilitazioneMenu.js.map +1 -1
  362. package/dist/accessi-module/Dtos/AssignPermissionsToUserRequest.js.map +1 -1
  363. package/dist/accessi-module/Dtos/AssignRolesToUserRequest.js +1 -1
  364. package/dist/accessi-module/Dtos/AssignRolesToUserRequest.js.map +1 -1
  365. package/dist/accessi-module/Dtos/AuthenticatedUserPayloadDto.d.ts +3 -0
  366. package/dist/accessi-module/Dtos/AuthenticatedUserPayloadDto.js +18 -0
  367. package/dist/accessi-module/Dtos/AuthenticatedUserPayloadDto.js.map +1 -1
  368. package/dist/accessi-module/Dtos/BaseResponse.d.ts +2 -0
  369. package/dist/accessi-module/Dtos/BaseResponse.js +21 -2
  370. package/dist/accessi-module/Dtos/BaseResponse.js.map +1 -1
  371. package/dist/accessi-module/Dtos/CatalogDtos.d.ts +66 -0
  372. package/dist/accessi-module/Dtos/CatalogDtos.js +336 -0
  373. package/dist/accessi-module/Dtos/CatalogDtos.js.map +1 -0
  374. package/dist/accessi-module/Dtos/ConfirmResetPasswordRequest.js.map +1 -1
  375. package/dist/accessi-module/Dtos/FederatedIdentityDtos.d.ts +69 -0
  376. package/dist/accessi-module/Dtos/FederatedIdentityDtos.js +236 -0
  377. package/dist/accessi-module/Dtos/FederatedIdentityDtos.js.map +1 -0
  378. package/dist/accessi-module/Dtos/FiltriUtente.js +4 -1
  379. package/dist/accessi-module/Dtos/FiltriUtente.js.map +1 -1
  380. package/dist/accessi-module/Dtos/GetGroupsWithMenusResponse.js.map +1 -1
  381. package/dist/accessi-module/Dtos/GetMenusResponse.js +1 -1
  382. package/dist/accessi-module/Dtos/GetMenusResponse.js.map +1 -1
  383. package/dist/accessi-module/Dtos/GetRolesResponse.js.map +1 -1
  384. package/dist/accessi-module/Dtos/GetUserByTokenRequest.js.map +1 -1
  385. package/dist/accessi-module/Dtos/GetUserByTokenResponse.js.map +1 -1
  386. package/dist/accessi-module/Dtos/GetUsersResponse.d.ts +1 -1
  387. package/dist/accessi-module/Dtos/GetUsersResponse.js.map +1 -1
  388. package/dist/accessi-module/Dtos/LoginRequest.d.ts +1 -1
  389. package/dist/accessi-module/Dtos/LoginRequest.js +3 -2
  390. package/dist/accessi-module/Dtos/LoginRequest.js.map +1 -1
  391. package/dist/accessi-module/Dtos/LoginResponse.d.ts +6 -2
  392. package/dist/accessi-module/Dtos/LoginResponse.js +20 -7
  393. package/dist/accessi-module/Dtos/LoginResponse.js.map +1 -1
  394. package/dist/accessi-module/Dtos/MenuItem.js +1 -0
  395. package/dist/accessi-module/Dtos/Permission.d.ts +1 -0
  396. package/dist/accessi-module/Dtos/Permission.js +1 -0
  397. package/dist/accessi-module/Dtos/Permission.js.map +1 -1
  398. package/dist/accessi-module/Dtos/PublicRegisterRequest.d.ts +1 -1
  399. package/dist/accessi-module/Dtos/PublicRegisterRequest.js +1 -0
  400. package/dist/accessi-module/Dtos/PublicRegisterRequest.js.map +1 -1
  401. package/dist/accessi-module/Dtos/RegisterRequest.js +3 -1
  402. package/dist/accessi-module/Dtos/RegisterRequest.js.map +1 -1
  403. package/dist/accessi-module/Dtos/RegisterResponse.js.map +1 -1
  404. package/dist/accessi-module/Dtos/Role.d.ts +4 -0
  405. package/dist/accessi-module/Dtos/Role.js +4 -0
  406. package/dist/accessi-module/Dtos/Role.js.map +1 -1
  407. package/dist/accessi-module/Dtos/RuoliMenu.js.map +1 -1
  408. package/dist/accessi-module/Dtos/SendResetPasswordEmailRequest.js.map +1 -1
  409. package/dist/accessi-module/Dtos/ServiceToken.d.ts +34 -0
  410. package/dist/accessi-module/Dtos/ServiceToken.js +128 -0
  411. package/dist/accessi-module/Dtos/ServiceToken.js.map +1 -0
  412. package/dist/accessi-module/Dtos/SetStatoRegistrazione.js.map +1 -1
  413. package/dist/accessi-module/Dtos/StatoRegistrazione.js.map +1 -1
  414. package/dist/accessi-module/Dtos/TipoAbilitazione.d.ts +4 -0
  415. package/dist/accessi-module/Dtos/TipoAbilitazione.js +4 -0
  416. package/dist/accessi-module/Dtos/TipoAbilitazione.js.map +1 -1
  417. package/dist/accessi-module/Dtos/TipoFiltro.js.map +1 -1
  418. package/dist/accessi-module/Dtos/TokenResult.js.map +1 -1
  419. package/dist/accessi-module/Dtos/TwoFactorDtos.d.ts +13 -0
  420. package/dist/accessi-module/Dtos/TwoFactorDtos.js +60 -0
  421. package/dist/accessi-module/Dtos/TwoFactorDtos.js.map +1 -0
  422. package/dist/accessi-module/Dtos/UpdateEnabledStatusRequest.js.map +1 -1
  423. package/dist/accessi-module/Dtos/UserDto.d.ts +7 -0
  424. package/dist/accessi-module/Dtos/UserDto.js +26 -2
  425. package/dist/accessi-module/Dtos/UserDto.js.map +1 -1
  426. package/dist/accessi-module/Dtos/UserGrantsDto.js.map +1 -1
  427. package/dist/accessi-module/Dtos/UserGrantsResponse.js.map +1 -1
  428. package/dist/accessi-module/Dtos/index.d.ts +4 -0
  429. package/dist/accessi-module/Dtos/index.js +4 -0
  430. package/dist/accessi-module/Dtos/index.js.map +1 -1
  431. package/dist/accessi-module/Services/AuthService/AuthService.d.ts +40 -5
  432. package/dist/accessi-module/Services/AuthService/AuthService.js +192 -40
  433. package/dist/accessi-module/Services/AuthService/AuthService.js.map +1 -1
  434. package/dist/accessi-module/Services/ConfiguratorService/ConfiguratorService.d.ts +3 -1
  435. package/dist/accessi-module/Services/ConfiguratorService/ConfiguratorService.js +5 -1
  436. package/dist/accessi-module/Services/ConfiguratorService/ConfiguratorService.js.map +1 -1
  437. package/dist/accessi-module/Services/EmailService/EmailService.d.ts +9 -2
  438. package/dist/accessi-module/Services/EmailService/EmailService.js +43 -22
  439. package/dist/accessi-module/Services/EmailService/EmailService.js.map +1 -1
  440. package/dist/accessi-module/Services/FiltriService/FiltriService.d.ts +18 -3
  441. package/dist/accessi-module/Services/FiltriService/FiltriService.js +92 -9
  442. package/dist/accessi-module/Services/FiltriService/FiltriService.js.map +1 -1
  443. package/dist/accessi-module/Services/PermissionService/PermissionService.d.ts +73 -2
  444. package/dist/accessi-module/Services/PermissionService/PermissionService.js +537 -198
  445. package/dist/accessi-module/Services/PermissionService/PermissionService.js.map +1 -1
  446. package/dist/accessi-module/Services/ServiceTokenService/ServiceTokenService.d.ts +75 -0
  447. package/dist/accessi-module/Services/ServiceTokenService/ServiceTokenService.js +265 -0
  448. package/dist/accessi-module/Services/ServiceTokenService/ServiceTokenService.js.map +1 -0
  449. package/dist/accessi-module/Services/TwoFactorService/TwoFactorService.d.ts +27 -0
  450. package/dist/accessi-module/Services/TwoFactorService/TwoFactorService.js +175 -0
  451. package/dist/accessi-module/Services/TwoFactorService/TwoFactorService.js.map +1 -0
  452. package/dist/accessi-module/Services/UserService/UserService.d.ts +36 -5
  453. package/dist/accessi-module/Services/UserService/UserService.js +341 -161
  454. package/dist/accessi-module/Services/UserService/UserService.js.map +1 -1
  455. package/dist/accessi-module/Views/reset-password.html +213 -213
  456. package/dist/accessi-module/database-updates/AccessiDatabaseUpdater.d.ts +46 -10
  457. package/dist/accessi-module/database-updates/AccessiDatabaseUpdater.js +399 -181
  458. package/dist/accessi-module/database-updates/AccessiDatabaseUpdater.js.map +1 -1
  459. package/dist/accessi-module/database-updates/accessiSchema.d.ts +45 -0
  460. package/dist/accessi-module/database-updates/accessiSchema.js +87 -0
  461. package/dist/accessi-module/database-updates/accessiSchema.js.map +1 -0
  462. package/dist/accessi-module/database-updates/optionalColumns.d.ts +7 -0
  463. package/dist/accessi-module/database-updates/optionalColumns.js +58 -0
  464. package/dist/accessi-module/database-updates/optionalColumns.js.map +1 -0
  465. package/dist/accessi-module/database-updates/runAccessiDbUpdate.js +18 -8
  466. package/dist/accessi-module/database-updates/runAccessiDbUpdate.js.map +1 -1
  467. package/dist/accessi-module/federated-auth/FederatedAuthController.d.ts +24 -0
  468. package/dist/accessi-module/federated-auth/FederatedAuthController.js +333 -0
  469. package/dist/accessi-module/federated-auth/FederatedAuthController.js.map +1 -0
  470. package/dist/accessi-module/federated-auth/FederatedAuthService.d.ts +100 -0
  471. package/dist/accessi-module/federated-auth/FederatedAuthService.js +451 -0
  472. package/dist/accessi-module/federated-auth/FederatedAuthService.js.map +1 -0
  473. package/dist/accessi-module/federated-auth/FederatedAuthTypes.d.ts +53 -0
  474. package/dist/accessi-module/federated-auth/FederatedAuthTypes.js +3 -0
  475. package/dist/accessi-module/federated-auth/FederatedAuthTypes.js.map +1 -0
  476. package/dist/accessi-module/index.d.ts +17 -0
  477. package/dist/accessi-module/index.js +25 -11
  478. package/dist/accessi-module/index.js.map +1 -1
  479. package/dist/accessi-module/jwt/jwt.strategy.d.ts +1 -1
  480. package/dist/accessi-module/jwt/jwt.strategy.js +16 -7
  481. package/dist/accessi-module/jwt/jwt.strategy.js.map +1 -1
  482. package/dist/accessi-module/middleware/accessiRequirements.d.ts +23 -1
  483. package/dist/accessi-module/middleware/accessiRequirements.js +7 -0
  484. package/dist/accessi-module/middleware/accessiRequirements.js.map +1 -1
  485. package/dist/accessi-module/middleware/authenticateGen.d.ts +16 -1
  486. package/dist/accessi-module/middleware/authenticateGen.js +63 -25
  487. package/dist/accessi-module/middleware/authenticateGen.js.map +1 -1
  488. package/dist/accessi-module/security/AccessiHttpExceptionFilter.d.ts +12 -0
  489. package/dist/accessi-module/security/AccessiHttpExceptionFilter.js +74 -0
  490. package/dist/accessi-module/security/AccessiHttpExceptionFilter.js.map +1 -0
  491. package/dist/accessi-module/security/accessControl.d.ts +11 -0
  492. package/dist/accessi-module/security/accessControl.js +19 -4
  493. package/dist/accessi-module/security/accessControl.js.map +1 -1
  494. package/dist/accessi-module/security/accessiValidation.d.ts +9 -0
  495. package/dist/accessi-module/security/accessiValidation.js +41 -0
  496. package/dist/accessi-module/security/accessiValidation.js.map +1 -0
  497. package/dist/accessi-module/security/authenticatedToken.d.ts +15 -1
  498. package/dist/accessi-module/security/authenticatedToken.js +31 -4
  499. package/dist/accessi-module/security/authenticatedToken.js.map +1 -1
  500. package/dist/accessi-module/security/passwordResetToken.d.ts +13 -3
  501. package/dist/accessi-module/security/passwordResetToken.js +13 -5
  502. package/dist/accessi-module/security/passwordResetToken.js.map +1 -1
  503. package/dist/accessi-module/security/publicAuthRateLimit.d.ts +3 -3
  504. package/dist/accessi-module/security/publicAuthRateLimit.js +30 -8
  505. package/dist/accessi-module/security/publicAuthRateLimit.js.map +1 -1
  506. package/dist/accessi-module/security/serviceTokenGuard.d.ts +25 -0
  507. package/dist/accessi-module/security/serviceTokenGuard.js +85 -0
  508. package/dist/accessi-module/security/serviceTokenGuard.js.map +1 -0
  509. package/dist/accessi-module/security/serviceTokenRateLimit.d.ts +8 -0
  510. package/dist/accessi-module/security/serviceTokenRateLimit.js +49 -0
  511. package/dist/accessi-module/security/serviceTokenRateLimit.js.map +1 -0
  512. package/dist/allegati-module/AllegatiModule.d.ts +11 -0
  513. package/dist/allegati-module/AllegatiModule.js +11 -1
  514. package/dist/allegati-module/AllegatiModule.js.map +1 -1
  515. package/dist/allegati-module/Controllers/AllegatiController.d.ts +2 -1
  516. package/dist/allegati-module/Controllers/AllegatiController.js +23 -15
  517. package/dist/allegati-module/Controllers/AllegatiController.js.map +1 -1
  518. package/dist/allegati-module/Dtos/AllegatoDto.js.map +1 -1
  519. package/dist/allegati-module/Dtos/BaseResponse.js.map +1 -1
  520. package/dist/allegati-module/Dtos/UploadSingleFileRequest.js.map +1 -1
  521. package/dist/allegati-module/Dtos/index.js.map +1 -1
  522. package/dist/allegati-module/Dtos/responses/DownloadAllegatoResponseDto.js.map +1 -1
  523. package/dist/allegati-module/Dtos/responses/GetListResponse.js.map +1 -1
  524. package/dist/allegati-module/Dtos/responses/UploadAllegatoResponseDto.js.map +1 -1
  525. package/dist/allegati-module/Services/AllegatiService/AllegatiService.d.ts +10 -3
  526. package/dist/allegati-module/Services/AllegatiService/AllegatiService.js +150 -101
  527. package/dist/allegati-module/Services/AllegatiService/AllegatiService.js.map +1 -1
  528. package/dist/allegati-module/index.js.map +1 -1
  529. package/dist/allegati-module/security/allegatiAuthorizationGuard.d.ts +14 -0
  530. package/dist/allegati-module/security/allegatiAuthorizationGuard.js +70 -0
  531. package/dist/allegati-module/security/allegatiAuthorizationGuard.js.map +1 -0
  532. package/dist/autobind.d.ts +10 -3
  533. package/dist/autobind.js +24 -9
  534. package/dist/autobind.js.map +1 -1
  535. package/dist/firebird-compat.d.ts +13 -0
  536. package/dist/firebird-compat.js +3 -2
  537. package/dist/firebird-compat.js.map +1 -1
  538. package/dist/index.js.map +1 -1
  539. package/dist/initEmilsoftwareModule.js +7 -0
  540. package/dist/initEmilsoftwareModule.js.map +1 -1
  541. package/dist/scripts/generateAccessiOpenApi.d.ts +1 -0
  542. package/dist/scripts/generateAccessiOpenApi.js +57 -0
  543. package/dist/scripts/generateAccessiOpenApi.js.map +1 -0
  544. package/dist/scripts/generateAccessiWiki.d.ts +1 -0
  545. package/dist/scripts/generateAccessiWiki.js +131 -0
  546. package/dist/scripts/generateAccessiWiki.js.map +1 -0
  547. package/dist/swagger/SwaggerConfig.js +6 -3
  548. package/dist/swagger/SwaggerConfig.js.map +1 -1
  549. package/package.json +103 -83
  550. package/dist/emilsoftware-utilities-2.0.0-dev.22.tgz +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"AllegatiService.js","sourceRoot":"","sources":["../../../../src/allegati-module/Services/AllegatiService/AllegatiService.ts"],"names":[],"mappings":"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","sourcesContent":["import { Inject, Injectable, NotFoundException, BadRequestException, InternalServerErrorException } from \"@nestjs/common\";\nimport { autobind } from \"../../../autobind\";\nimport { Orm } from \"../../../Orm\";\nimport { AllegatiOptions } from \"../../AllegatiModule\";\nimport { UploadAllegatoResponseDto, DownloadAllegatoResponseDto, AllegatoDto} from \"../../Dtos\";\nimport { UploadSingleFileRequest } from \"../../Dtos/UploadSingleFileRequest\";\n\nexport class AllegatiError extends Error {\n constructor(\n message: string,\n public readonly code: string,\n public readonly statusCode: number = 500\n ) {\n super(message);\n this.name = 'AllegatiError';\n }\n}\n\n@autobind\n@Injectable()\nexport class AllegatiService {\n private readonly MAX_FILE_SIZE = 90 * 1024 * 1024; // 90MB\n private readonly ALLOWED_MIME_TYPES = [\n 'application/pdf',\n 'image/jpeg',\n 'image/png',\n 'application/msword',\n 'application/vnd.openxmlformats-officedocument.wordprocessingml.document',\n 'application/vnd.ms-excel',\n 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'\n ];\n\n constructor(@Inject('ALLEGATI_OPTIONS') private readonly allegatiOptions: AllegatiOptions) {\n this.ensureTableExists().catch(error => {\n console.error('[AllegatiService] Errore creazione tabella ALLEGATI:', error);\n // throw new InternalServerErrorException('Errore durante l\\'inizializzazione del servizio allegati');\n });\n }\n\n private validateFile(file: Express.Multer.File): void {\n if (!file) {\n throw new BadRequestException('Nessun file fornito');\n }\n\n if (file.size > this.MAX_FILE_SIZE) {\n throw new BadRequestException(`File troppo grande. Dimensione massima consentita: ${this.MAX_FILE_SIZE / (1024 * 1024)}MB`);\n }\n\n if (!this.ALLOWED_MIME_TYPES.includes(file.mimetype)) {\n throw new BadRequestException(`Tipo di file non consentito. Tipi consentiti: ${this.ALLOWED_MIME_TYPES.join(', ')}`);\n }\n }\n\n\n async getAttachmentTypes(): Promise<any[]> {\n try {\n const query = `SELECT IDXTIPOALL as id, DESCRIZIONE as description FROM TIPOALL`;\n const results = await Orm.query(this.allegatiOptions.databaseOptions, query);\n \n if (!results) {\n throw new InternalServerErrorException('Errore durante il recupero dei tipi di allegato');\n }\n\n return results;\n } catch (error) {\n console.error('[AllegatiService] getAttachmentTypes - Errore:', error);\n if (error instanceof InternalServerErrorException) {\n throw error;\n }\n throw new InternalServerErrorException('Errore durante il recupero dei tipi di allegato');\n }\n }\n async uploadFile(file: Express.Multer.File, uploadSingleFileRequest: UploadSingleFileRequest): Promise<UploadAllegatoResponseDto> {\n try {\n this.validateFile(file);\n\n // Convert buffer to base64 in chunks to avoid memory issues\n const chunkSize = 1024 * 1024; // 1MB chunks\n let base64Content = '';\n for (let i = 0; i < file.buffer.length; i += chunkSize) {\n const chunk = file.buffer.slice(i, i + chunkSize);\n base64Content += chunk.toString('base64');\n }\n\n const insertQuery = `\n INSERT INTO ALLEGATI (\n CODICE, TIPCOD, ORDINE, DESALL, NOMEFILE,\n DADATAVAL, ADATAVAL, ALLEGATO, IDXTIPOALL, DATMODIF, DOCRIF\n ) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, CURRENT_TIMESTAMP, ?)\n RETURNING IDXALL\n `;\n\n const params = [\n uploadSingleFileRequest.codice,\n uploadSingleFileRequest.tipoCodice,\n uploadSingleFileRequest.ordine,\n uploadSingleFileRequest.descrizioneAllegato,\n file.originalname,\n uploadSingleFileRequest.dataInizioValidita,\n uploadSingleFileRequest.dataFineValidita,\n base64Content,\n uploadSingleFileRequest.idTipoAllegato,\n uploadSingleFileRequest.riferimentoDocumento\n ];\n\n const result = await Orm.query(this.allegatiOptions.databaseOptions, insertQuery, params);\n \n if (!result || !result.IDXALL) {\n throw new InternalServerErrorException('Errore durante il salvataggio del file');\n }\n\n return {\n id: result.IDXALL,\n filename: file.originalname,\n };\n } catch (error) {\n console.error('[AllegatiService] uploadFile - Errore:', error);\n if (error instanceof BadRequestException || error instanceof InternalServerErrorException) {\n throw error;\n }\n throw new InternalServerErrorException('Errore durante il caricamento del file');\n }\n }\n\n async ensureTableExists(): Promise<void> {\n try {\n const query = `\n SELECT RDB$RELATION_NAME \n FROM RDB$RELATIONS \n WHERE RDB$RELATION_NAME = 'ALLEGATI'\n `;\n const result = await Orm.query(this.allegatiOptions.databaseOptions, query);\n \n if (!result || result.length === 0) {\n throw new Error('Tabella ALLEGATI non trovata nel database');\n }\n } catch (error) {\n console.error('[AllegatiService] Errore verifica tabella ALLEGATI:', error);\n throw new InternalServerErrorException('Errore durante la verifica della tabella ALLEGATI');\n }\n }\n\n async downloadFile(id: number): Promise<DownloadAllegatoResponseDto> {\n try {\n if (!id || id <= 0) {\n throw new BadRequestException('ID allegato non valido');\n }\n\n const query = `\n SELECT \n ALLEGATO as content,\n NOMEFILE as filename,\n IDXTIPOALL as idTipoAllegato\n FROM ALLEGATI \n WHERE IDXALL = ?\n `;\n \n const results = await Orm.query(this.allegatiOptions.databaseOptions, query, [id]);\n \n if (!results || results.length === 0) {\n throw new NotFoundException(`Allegato con ID ${id} non trovato`);\n }\n\n const result = results[0];\n if (!result.CONTENT) {\n throw new InternalServerErrorException('Contenuto file non disponibile');\n }\n\n if (!result.FILENAME) {\n throw new InternalServerErrorException('Nome file non disponibile');\n }\n\n const mimetype = this.detectMimeType(result.FILENAME);\n \n return {\n contentBase64: result.CONTENT,\n filename: result.FILENAME,\n mimetype\n };\n } catch (error) {\n console.error('[AllegatiService] downloadFile - Errore:', error);\n if (error instanceof BadRequestException || \n error instanceof NotFoundException || \n error instanceof InternalServerErrorException) {\n throw error;\n }\n throw new InternalServerErrorException('Errore durante il download del file');\n }\n }\n\n private detectMimeType(filename: string): string {\n const extension = filename.split('.').pop()?.toLowerCase();\n const mimeTypes: { [key: string]: string } = {\n 'pdf': 'application/pdf',\n 'jpg': 'image/jpeg',\n 'jpeg': 'image/jpeg',\n 'png': 'image/png',\n 'doc': 'application/msword',\n 'docx': 'application/vnd.openxmlformats-officedocument.wordprocessingml.document',\n 'xls': 'application/vnd.ms-excel',\n 'xlsx': 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'\n };\n return mimeTypes[extension || ''] || 'application/octet-stream';\n }\n\n async deleteFile(id: number): Promise<void> {\n try {\n if (!id || id <= 0) {\n throw new BadRequestException('ID allegato non valido');\n }\n\n const checkQuery = `SELECT IDXALL FROM ALLEGATI WHERE IDXALL = ?`;\n const checkResult = await Orm.query(this.allegatiOptions.databaseOptions, checkQuery, [id]);\n \n if (!checkResult || checkResult.length === 0) {\n throw new NotFoundException(`Allegato con ID ${id} non trovato`);\n }\n\n const query = `DELETE FROM ALLEGATI WHERE IDXALL = ?`;\n await Orm.execute(this.allegatiOptions.databaseOptions, query, [id]);\n \n \n } catch (error) {\n console.error('[AllegatiService] deleteFile - Errore:', error);\n if (error instanceof BadRequestException || \n error instanceof NotFoundException || \n error instanceof InternalServerErrorException) {\n throw error;\n }\n throw new InternalServerErrorException('Errore durante la cancellazione del file');\n }\n }\n\n async listFiles(filters?: { \n tipcod?: string;\n codice?: number;\n docrif?: string;\n idxtipoall?: number;\n }): Promise<AllegatoDto[]> {\n try {\n const whereConditions: string[] = [];\n const params: any[] = [];\n\n if (filters) {\n if (filters.tipcod) {\n whereConditions.push('TIPCOD = ?');\n params.push(filters.tipcod);\n }\n if (filters.codice) {\n whereConditions.push('CODICE = ?');\n params.push(filters.codice);\n }\n if (filters.docrif) {\n whereConditions.push('DOCRIF = ?');\n params.push(filters.docrif);\n }\n if (filters.idxtipoall !== undefined) {\n whereConditions.push('IDXTIPOALL = ?');\n params.push(filters.idxtipoall);\n }\n }\n\n const query = `\n SELECT \n IDXALL as id,\n NOMEFILE as filename,\n 'application/octet-stream' as mimetype,\n DATMODIF as uploadDate,\n CODICE as codice,\n TIPCOD as tipoCodice,\n ORDINE as ordine,\n DESALL as descrizioneAllegato,\n DADATAVAL as dataInizioValidita,\n ADATAVAL as dataFineValidita,\n IDXTIPOALL as idTipoAllegato,\n DOCRIF as riferimentoDocumento\n FROM ALLEGATI\n ${whereConditions.length > 0 ? `WHERE ${whereConditions.join(' AND ')}` : ''}\n `;\n\n const results = await Orm.query(this.allegatiOptions.databaseOptions, query, params);\n \n if (!results) {\n throw new InternalServerErrorException('Errore durante il recupero della lista dei file');\n }\n\n return results.map((r: any) => ({\n id: r.ID,\n filename: r.FILENAME,\n mimetype: r.MIMETYPE,\n uploadDate: r.UPLOADDATE,\n codice: r.CODICE,\n tipoCodice: r.TIPOCODICE,\n ordine: r.ORDINE,\n descrizioneAllegato: r.DESCRIZIONEALLEGATO,\n dataInizioValidita: r.DATAINIZIOVALIDITA,\n dataFineValidita: r.DATAFINEVALIDITA,\n idTipoAllegato: r.IDTIPOALLEGATO,\n riferimentoDocumento: r.RIFERIMENTODOCUMENTO\n }));\n } catch (error) {\n console.error('[AllegatiService] listFiles - Errore:', error);\n if (error instanceof InternalServerErrorException) {\n throw error;\n }\n throw new InternalServerErrorException('Errore durante il recupero della lista dei file');\n }\n }\n\n /**\n * Find allegati by any combination of tipcod, codice, docrif, idxtipoall\n */\n async findByFields(fields: { tipcod?: string; codice?: number; docrif?: string; idxtipoall?: number }): Promise<AllegatoDto[]> {\n try {\n const whereConditions: string[] = [];\n const params: any[] = [];\n if (fields.tipcod) {\n whereConditions.push('TIPCOD = ?');\n params.push(fields.tipcod);\n }\n if (fields.codice) {\n whereConditions.push('CODICE = ?');\n params.push(fields.codice);\n }\n if (fields.docrif) {\n whereConditions.push('DOCRIF = ?');\n params.push(fields.docrif);\n }\n if (fields.idxtipoall !== undefined) {\n whereConditions.push('IDXTIPOALL = ?');\n params.push(fields.idxtipoall);\n }\n const query = `\n SELECT \n IDXALL as id,\n NOMEFILE as filename,\n 'application/octet-stream' as mimetype,\n DATMODIF as uploadDate,\n CODICE as codice,\n TIPCOD as tipoCodice,\n ORDINE as ordine,\n DESALL as descrizioneAllegato,\n DADATAVAL as dataInizioValidita,\n ADATAVAL as dataFineValidita,\n IDXTIPOALL as idTipoAllegato,\n DOCRIF as riferimentoDocumento\n FROM ALLEGATI\n ${whereConditions.length > 0 ? `WHERE ${whereConditions.join(' AND ')}` : ''}\n `;\n const results = await Orm.query(this.allegatiOptions.databaseOptions, query, params);\n if (!results) {\n throw new InternalServerErrorException('Errore durante la ricerca degli allegati');\n }\n return results.map((r: any) => ({\n id: r.ID,\n filename: r.FILENAME,\n mimetype: r.MIMETYPE,\n uploadDate: r.UPLOADDATE,\n codice: r.CODICE,\n tipoCodice: r.TIPOCODICE,\n ordine: r.ORDINE,\n descrizioneAllegato: r.DESCRIZIONEALLEGATO,\n dataInizioValidita: r.DATAINIZIOVALIDITA,\n dataFineValidita: r.DATAFINEVALIDITA,\n idTipoAllegato: r.IDTIPOALLEGATO,\n riferimentoDocumento: r.RIFERIMENTODOCUMENTO\n }));\n } catch (error) {\n console.error('[AllegatiService] findByFields - Errore:', error);\n throw new InternalServerErrorException('Errore durante la ricerca degli allegati');\n }\n }\n\n /**\n * Update tipcod, codice, docrif, idxtipoall for a given allegato by id\n */\n async updateFieldsById(id: number, fields: { tipcod?: string; codice?: number; docrif?: string; idxtipoall?: number }): Promise<void> {\n try {\n if (!id || id <= 0) {\n throw new BadRequestException('ID allegato non valido');\n }\n const updates: string[] = [];\n const params: any[] = [];\n if (fields.tipcod !== undefined) {\n updates.push('TIPCOD = ?');\n params.push(fields.tipcod);\n }\n if (fields.codice !== undefined) {\n updates.push('CODICE = ?');\n params.push(fields.codice);\n }\n if (fields.docrif !== undefined) {\n updates.push('DOCRIF = ?');\n params.push(fields.docrif);\n }\n if (fields.idxtipoall !== undefined) {\n updates.push('IDXTIPOALL = ?');\n params.push(fields.idxtipoall);\n }\n if (updates.length === 0) {\n throw new BadRequestException('Nessun campo da aggiornare');\n }\n const query = `UPDATE ALLEGATI SET ${updates.join(', ')} WHERE IDXALL = ?`;\n params.push(id);\n const result = await Orm.execute(this.allegatiOptions.databaseOptions, query, params);\n if (!result) {\n throw new InternalServerErrorException('Errore durante l\\'aggiornamento del file');\n }\n } catch (error) {\n console.error('[AllegatiService] updateFieldsById - Errore:', error);\n throw error;\n }\n }\n\n /**\n * Get a single allegato by fields (returns the first match)\n */\n async getOneByFields(fields: { tipcod?: string; codice?: number; docrif?: string; idxtipoall?: number }): Promise<AllegatoDto | null> {\n const results = await this.findByFields(fields);\n return results.length > 0 ? results[0] : null;\n }\n\n}"]}
1
+ {"version":3,"file":"AllegatiService.js","sourceRoot":"","sources":["../../../../src/allegati-module/Services/AllegatiService/AllegatiService.ts"],"names":[],"mappings":"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","sourcesContent":["import { Inject, Injectable, NotFoundException, BadRequestException, InternalServerErrorException, OnModuleInit } from \"@nestjs/common\";\r\nimport { autobind } from \"../../../autobind\";\r\nimport { Logger } from \"../../../Logger\";\r\nimport { Orm } from \"../../../Orm\";\r\nimport { AllegatiOptions } from \"../../AllegatiModule\";\r\nimport { UploadAllegatoResponseDto, DownloadAllegatoResponseDto, AllegatoDto} from \"../../Dtos\";\r\nimport { UploadSingleFileRequest } from \"../../Dtos/UploadSingleFileRequest\";\r\n\r\nexport class AllegatiError extends Error {\r\n constructor(\r\n message: string,\r\n public readonly code: string,\r\n public readonly statusCode: number = 500\r\n ) {\r\n super(message);\r\n this.name = 'AllegatiError';\r\n }\r\n}\r\n\r\n@autobind\r\n@Injectable()\r\nexport class AllegatiService implements OnModuleInit {\r\n private readonly logger = new Logger(AllegatiService.name);\r\n private readonly MAX_FILE_SIZE = 90 * 1024 * 1024; // 90MB\r\n private readonly ALLOWED_MIME_TYPES = [\r\n 'application/pdf',\r\n 'image/jpeg',\r\n 'image/png',\r\n 'application/msword',\r\n 'application/vnd.openxmlformats-officedocument.wordprocessingml.document',\r\n 'application/vnd.ms-excel',\r\n 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'\r\n ];\r\n\r\n constructor(@Inject('ALLEGATI_OPTIONS') private readonly allegatiOptions: AllegatiOptions) {}\r\n\r\n /** Verifica la tabella ALLEGATI all'avvio (attesa da Nest, senza promise floating). */\r\n async onModuleInit(): Promise<void> {\r\n try {\r\n await this.ensureTableExists();\r\n } catch (error) {\r\n this.logger.error('[AllegatiService] Errore verifica tabella ALLEGATI:', error);\r\n }\r\n }\r\n\r\n private toAllegatoDto(row: Record<string, unknown>): AllegatoDto {\r\n const optionalString = (value: unknown): string | undefined => value === undefined || value === null ? undefined : String(value);\r\n const optionalNumber = (value: unknown): number | undefined => value === undefined || value === null ? undefined : Number(value);\r\n\r\n return {\r\n id: Number(row.ID ?? row.id),\r\n filename: String(row.FILENAME ?? row.filename ?? ''),\r\n mimetype: String(row.MIMETYPE ?? row.mimetype ?? ''),\r\n uploadDate: String(row.UPLOADDATE ?? row.uploadDate ?? ''),\r\n codice: optionalString(row.CODICE ?? row.codice),\r\n tipoCodice: optionalString(row.TIPOCODICE ?? row.tipoCodice),\r\n ordine: optionalString(row.ORDINE ?? row.ordine),\r\n descrizioneAllegato: optionalString(row.DESCRIZIONEALLEGATO ?? row.descrizioneAllegato),\r\n dataInizioValidita: optionalString(row.DATAINIZIOVALIDITA ?? row.dataInizioValidita),\r\n dataFineValidita: optionalString(row.DATAFINEVALIDITA ?? row.dataFineValidita),\r\n idTipoAllegato: optionalNumber(row.IDTIPOALLEGATO ?? row.idTipoAllegato),\r\n riferimentoDocumento: optionalString(row.RIFERIMENTODOCUMENTO ?? row.riferimentoDocumento),\r\n };\r\n }\r\n\r\n private validateFile(file: Express.Multer.File): void {\r\n if (!file) {\r\n throw new BadRequestException('Nessun file fornito');\r\n }\r\n\r\n if (file.size > this.MAX_FILE_SIZE) {\r\n throw new BadRequestException(`File troppo grande. Dimensione massima consentita: ${this.MAX_FILE_SIZE / (1024 * 1024)}MB`);\r\n }\r\n\r\n if (!this.ALLOWED_MIME_TYPES.includes(file.mimetype)) {\r\n throw new BadRequestException(`Tipo di file non consentito. Tipi consentiti: ${this.ALLOWED_MIME_TYPES.join(', ')}`);\r\n }\r\n\r\n // Il mimetype dichiarato dal client e falsificabile: verifica i magic byte reali.\r\n if (!this.hasValidSignature(file)) {\r\n throw new BadRequestException('Il contenuto del file non corrisponde al tipo dichiarato.');\r\n }\r\n }\r\n\r\n private hasValidSignature(file: Express.Multer.File): boolean {\r\n const buffer = file?.buffer;\r\n if (!buffer || buffer.length < 4) {\r\n return false;\r\n }\r\n\r\n const startsWith = (...bytes: number[]): boolean => bytes.every((byte, index) => buffer[index] === byte);\r\n\r\n switch (file.mimetype) {\r\n case 'application/pdf':\r\n return startsWith(0x25, 0x50, 0x44, 0x46);\r\n case 'image/jpeg':\r\n return startsWith(0xff, 0xd8, 0xff);\r\n case 'image/png':\r\n return startsWith(0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a);\r\n case 'application/msword':\r\n case 'application/vnd.ms-excel':\r\n return startsWith(0xd0, 0xcf, 0x11, 0xe0);\r\n case 'application/vnd.openxmlformats-officedocument.wordprocessingml.document':\r\n case 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet':\r\n // DOCX/XLSX sono archivi ZIP.\r\n return startsWith(0x50, 0x4b, 0x03, 0x04)\r\n || startsWith(0x50, 0x4b, 0x05, 0x06)\r\n || startsWith(0x50, 0x4b, 0x07, 0x08);\r\n default:\r\n return false;\r\n }\r\n }\r\n\r\n private sanitizeFilename(name: unknown): string {\r\n const raw = typeof name === 'string' ? name : '';\r\n const base = raw.replace(/\\\\/g, '/').split('/').pop() ?? '';\r\n const cleaned = base.replace(/[\\u0000-\\u001f\\u007f<>:\"|?*]/g, '_').trim();\r\n return cleaned.slice(0, 255) || 'allegato';\r\n }\r\n\r\n\r\n async getAttachmentTypes(): Promise<Array<Record<string, unknown>>> {\r\n try {\r\n const query = `SELECT IDXTIPOALL as id, DESCRIZIONE as description FROM TIPOALL`;\r\n const results = await Orm.query(this.allegatiOptions.databaseOptions, query);\r\n \r\n if (!results) {\r\n throw new InternalServerErrorException('Errore durante il recupero dei tipi di allegato');\r\n }\r\n\r\n return results;\r\n } catch (error) {\r\n this.logger.error('[AllegatiService] getAttachmentTypes - Errore:', error);\r\n if (error instanceof InternalServerErrorException) {\r\n throw error;\r\n }\r\n throw new InternalServerErrorException('Errore durante il recupero dei tipi di allegato');\r\n }\r\n }\r\n async uploadFile(file: Express.Multer.File, uploadSingleFileRequest: UploadSingleFileRequest): Promise<UploadAllegatoResponseDto> {\r\n try {\r\n this.validateFile(file);\r\n\r\n // Convert buffer to base64 in chunks to avoid memory issues\r\n const chunkSize = 1024 * 1024; // 1MB chunks\r\n let base64Content = '';\r\n for (let i = 0; i < file.buffer.length; i += chunkSize) {\r\n const chunk = file.buffer.slice(i, i + chunkSize);\r\n base64Content += chunk.toString('base64');\r\n }\r\n\r\n const insertQuery = `\r\n INSERT INTO ALLEGATI (\r\n CODICE, TIPCOD, ORDINE, DESALL, NOMEFILE,\r\n DADATAVAL, ADATAVAL, ALLEGATO, IDXTIPOALL, DATMODIF, DOCRIF\r\n ) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, CURRENT_TIMESTAMP, ?)\r\n RETURNING IDXALL\r\n `;\r\n\r\n const params = [\r\n uploadSingleFileRequest.codice,\r\n uploadSingleFileRequest.tipoCodice,\r\n uploadSingleFileRequest.ordine,\r\n uploadSingleFileRequest.descrizioneAllegato,\r\n this.sanitizeFilename(file.originalname),\r\n uploadSingleFileRequest.dataInizioValidita,\r\n uploadSingleFileRequest.dataFineValidita,\r\n base64Content,\r\n uploadSingleFileRequest.idTipoAllegato,\r\n uploadSingleFileRequest.riferimentoDocumento\r\n ];\r\n\r\n const result = await Orm.query(this.allegatiOptions.databaseOptions, insertQuery, params);\r\n // node-firebird restituisce le righe di INSERT ... RETURNING come array; il fallback\r\n // copre le versioni/driver che restituiscono un singolo oggetto.\r\n const inserted = (Array.isArray(result) ? result[0] : result) as Record<string, unknown> | undefined;\r\n const insertedId = inserted?.IDXALL ?? inserted?.idxall;\r\n\r\n if (insertedId === undefined || insertedId === null) {\r\n throw new InternalServerErrorException('Errore durante il salvataggio del file');\r\n }\r\n\r\n return {\r\n id: Number(insertedId),\r\n filename: this.sanitizeFilename(file.originalname),\r\n };\r\n } catch (error) {\r\n this.logger.error('[AllegatiService] uploadFile - Errore:', error);\r\n if (error instanceof BadRequestException || error instanceof InternalServerErrorException) {\r\n throw error;\r\n }\r\n throw new InternalServerErrorException('Errore durante il caricamento del file');\r\n }\r\n }\r\n\r\n async ensureTableExists(): Promise<void> {\r\n try {\r\n const query = `\r\n SELECT RDB$RELATION_NAME \r\n FROM RDB$RELATIONS \r\n WHERE RDB$RELATION_NAME = 'ALLEGATI'\r\n `;\r\n const result = await Orm.query(this.allegatiOptions.databaseOptions, query);\r\n \r\n if (!result || result.length === 0) {\r\n throw new Error('Tabella ALLEGATI non trovata nel database');\r\n }\r\n } catch (error) {\r\n this.logger.error('[AllegatiService] Errore verifica tabella ALLEGATI:', error);\r\n throw new InternalServerErrorException('Errore durante la verifica della tabella ALLEGATI');\r\n }\r\n }\r\n\r\n async downloadFile(id: number): Promise<DownloadAllegatoResponseDto> {\r\n try {\r\n if (!id || id <= 0) {\r\n throw new BadRequestException('ID allegato non valido');\r\n }\r\n\r\n const query = `\r\n SELECT \r\n ALLEGATO as content,\r\n NOMEFILE as filename,\r\n IDXTIPOALL as idTipoAllegato\r\n FROM ALLEGATI \r\n WHERE IDXALL = ?\r\n `;\r\n \r\n const results = await Orm.query(this.allegatiOptions.databaseOptions, query, [id]);\r\n \r\n if (!results || results.length === 0) {\r\n throw new NotFoundException(`Allegato con ID ${id} non trovato`);\r\n }\r\n\r\n const result = results[0];\r\n const content = result?.CONTENT ?? result?.content;\r\n const filename = result?.FILENAME ?? result?.filename;\r\n\r\n if (typeof content !== 'string' || content.length === 0) {\r\n throw new InternalServerErrorException('Contenuto file non disponibile');\r\n }\r\n\r\n if (typeof filename !== 'string' || filename.length === 0) {\r\n throw new InternalServerErrorException('Nome file non disponibile');\r\n }\r\n\r\n const mimetype = this.detectMimeType(filename);\r\n \r\n return {\r\n contentBase64: content,\r\n filename,\r\n mimetype\r\n };\r\n } catch (error) {\r\n this.logger.error('[AllegatiService] downloadFile - Errore:', error);\r\n if (error instanceof BadRequestException || \r\n error instanceof NotFoundException || \r\n error instanceof InternalServerErrorException) {\r\n throw error;\r\n }\r\n throw new InternalServerErrorException('Errore durante il download del file');\r\n }\r\n }\r\n\r\n private detectMimeType(filename: string): string {\r\n const extension = filename.split('.').pop()?.toLowerCase();\r\n const mimeTypes: { [key: string]: string } = {\r\n 'pdf': 'application/pdf',\r\n 'jpg': 'image/jpeg',\r\n 'jpeg': 'image/jpeg',\r\n 'png': 'image/png',\r\n 'doc': 'application/msword',\r\n 'docx': 'application/vnd.openxmlformats-officedocument.wordprocessingml.document',\r\n 'xls': 'application/vnd.ms-excel',\r\n 'xlsx': 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'\r\n };\r\n return mimeTypes[extension || ''] || 'application/octet-stream';\r\n }\r\n\r\n async deleteFile(id: number): Promise<void> {\r\n try {\r\n if (!id || id <= 0) {\r\n throw new BadRequestException('ID allegato non valido');\r\n }\r\n\r\n const checkQuery = `SELECT IDXALL FROM ALLEGATI WHERE IDXALL = ?`;\r\n const checkResult = await Orm.query(this.allegatiOptions.databaseOptions, checkQuery, [id]);\r\n \r\n if (!checkResult || checkResult.length === 0) {\r\n throw new NotFoundException(`Allegato con ID ${id} non trovato`);\r\n }\r\n\r\n const query = `DELETE FROM ALLEGATI WHERE IDXALL = ?`;\r\n await Orm.execute(this.allegatiOptions.databaseOptions, query, [id]);\r\n \r\n \r\n } catch (error) {\r\n this.logger.error('[AllegatiService] deleteFile - Errore:', error);\r\n if (error instanceof BadRequestException || \r\n error instanceof NotFoundException || \r\n error instanceof InternalServerErrorException) {\r\n throw error;\r\n }\r\n throw new InternalServerErrorException('Errore durante la cancellazione del file');\r\n }\r\n }\r\n\r\n async listFiles(filters?: { \r\n tipcod?: string;\r\n codice?: number;\r\n docrif?: string;\r\n idxtipoall?: number;\r\n }): Promise<AllegatoDto[]> {\r\n try {\r\n const whereConditions: string[] = [];\r\n const params: unknown[] = [];\r\n\r\n if (filters) {\r\n if (filters.tipcod) {\r\n whereConditions.push('TIPCOD = ?');\r\n params.push(filters.tipcod);\r\n }\r\n if (filters.codice) {\r\n whereConditions.push('CODICE = ?');\r\n params.push(filters.codice);\r\n }\r\n if (filters.docrif) {\r\n whereConditions.push('DOCRIF = ?');\r\n params.push(filters.docrif);\r\n }\r\n if (filters.idxtipoall !== undefined) {\r\n whereConditions.push('IDXTIPOALL = ?');\r\n params.push(filters.idxtipoall);\r\n }\r\n }\r\n\r\n const query = `\r\n SELECT \r\n IDXALL as id,\r\n NOMEFILE as filename,\r\n 'application/octet-stream' as mimetype,\r\n DATMODIF as uploadDate,\r\n CODICE as codice,\r\n TIPCOD as tipoCodice,\r\n ORDINE as ordine,\r\n DESALL as descrizioneAllegato,\r\n DADATAVAL as dataInizioValidita,\r\n ADATAVAL as dataFineValidita,\r\n IDXTIPOALL as idTipoAllegato,\r\n DOCRIF as riferimentoDocumento\r\n FROM ALLEGATI\r\n ${whereConditions.length > 0 ? `WHERE ${whereConditions.join(' AND ')}` : ''}\r\n `;\r\n\r\n const results = await Orm.query(this.allegatiOptions.databaseOptions, query, params);\r\n \r\n if (!results) {\r\n throw new InternalServerErrorException('Errore durante il recupero della lista dei file');\r\n }\r\n\r\n return results.map((r: Record<string, unknown>) => this.toAllegatoDto(r));\r\n } catch (error) {\r\n this.logger.error('[AllegatiService] listFiles - Errore:', error);\r\n if (error instanceof InternalServerErrorException) {\r\n throw error;\r\n }\r\n throw new InternalServerErrorException('Errore durante il recupero della lista dei file');\r\n }\r\n }\r\n\r\n /**\r\n * Find allegati by a combination of tipcod, codice, docrif, idxtipoall\r\n */\r\n async findByFields(fields: { tipcod?: string; codice?: number; docrif?: string; idxtipoall?: number }): Promise<AllegatoDto[]> {\r\n try {\r\n const whereConditions: string[] = [];\r\n const params: unknown[] = [];\r\n if (fields.tipcod) {\r\n whereConditions.push('TIPCOD = ?');\r\n params.push(fields.tipcod);\r\n }\r\n if (fields.codice) {\r\n whereConditions.push('CODICE = ?');\r\n params.push(fields.codice);\r\n }\r\n if (fields.docrif) {\r\n whereConditions.push('DOCRIF = ?');\r\n params.push(fields.docrif);\r\n }\r\n if (fields.idxtipoall !== undefined) {\r\n whereConditions.push('IDXTIPOALL = ?');\r\n params.push(fields.idxtipoall);\r\n }\r\n const query = `\r\n SELECT \r\n IDXALL as id,\r\n NOMEFILE as filename,\r\n 'application/octet-stream' as mimetype,\r\n DATMODIF as uploadDate,\r\n CODICE as codice,\r\n TIPCOD as tipoCodice,\r\n ORDINE as ordine,\r\n DESALL as descrizioneAllegato,\r\n DADATAVAL as dataInizioValidita,\r\n ADATAVAL as dataFineValidita,\r\n IDXTIPOALL as idTipoAllegato,\r\n DOCRIF as riferimentoDocumento\r\n FROM ALLEGATI\r\n ${whereConditions.length > 0 ? `WHERE ${whereConditions.join(' AND ')}` : ''}\r\n `;\r\n const results = await Orm.query(this.allegatiOptions.databaseOptions, query, params);\r\n if (!results) {\r\n throw new InternalServerErrorException('Errore durante la ricerca degli allegati');\r\n }\r\n return results.map((r: Record<string, unknown>) => this.toAllegatoDto(r));\r\n } catch (error) {\r\n this.logger.error('[AllegatiService] findByFields - Errore:', error);\r\n throw new InternalServerErrorException('Errore durante la ricerca degli allegati');\r\n }\r\n }\r\n\r\n /**\r\n * Update tipcod, codice, docrif, idxtipoall for a given allegato by id\r\n */\r\n async updateFieldsById(id: number, fields: { tipcod?: string; codice?: number; docrif?: string; idxtipoall?: number }): Promise<void> {\r\n try {\r\n if (!id || id <= 0) {\r\n throw new BadRequestException('ID allegato non valido');\r\n }\r\n const updates: string[] = [];\r\n const params: unknown[] = [];\r\n if (fields.tipcod !== undefined) {\r\n updates.push('TIPCOD = ?');\r\n params.push(fields.tipcod);\r\n }\r\n if (fields.codice !== undefined) {\r\n updates.push('CODICE = ?');\r\n params.push(fields.codice);\r\n }\r\n if (fields.docrif !== undefined) {\r\n updates.push('DOCRIF = ?');\r\n params.push(fields.docrif);\r\n }\r\n if (fields.idxtipoall !== undefined) {\r\n updates.push('IDXTIPOALL = ?');\r\n params.push(fields.idxtipoall);\r\n }\r\n if (updates.length === 0) {\r\n throw new BadRequestException('Nessun campo da aggiornare');\r\n }\r\n const query = `UPDATE ALLEGATI SET ${updates.join(', ')} WHERE IDXALL = ?`;\r\n params.push(id);\r\n const result = await Orm.execute(this.allegatiOptions.databaseOptions, query, params);\r\n if (!result) {\r\n throw new InternalServerErrorException('Errore durante l\\'aggiornamento del file');\r\n }\r\n } catch (error) {\r\n this.logger.error('[AllegatiService] updateFieldsById - Errore:', error);\r\n throw error;\r\n }\r\n }\r\n\r\n /**\r\n * Get a single allegato by fields (returns the first match)\r\n */\r\n async getOneByFields(fields: { tipcod?: string; codice?: number; docrif?: string; idxtipoall?: number }): Promise<AllegatoDto | null> {\r\n const results = await this.findByFields(fields);\r\n return results.length > 0 ? (results[0] ?? null) : null;\r\n }\r\n\r\n}\r\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/allegati-module/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAMA,4DAqBC;AA1BD,uCAA2C;AAC3C,+DAA0D;AAC1D,qDAAmE;AACnE,sCAAmC;AAEnC,SAAsB,wBAAwB,CAAC,GAAgB,EAAE,OAAwB;;QACrF,MAAM,MAAM,GAAW,IAAI,eAAM,CAAC,0BAA0B,CAAC,CAAC;QAC9D,IAAI,CAAC;YACD,MAAM,mBAAmB,GAAG,IAAI,iCAAc,CAAC,GAAG,CAAC,CAAC;YACpD,MAAM,OAAO,GAAG,MAAM,kBAAW,CAAC,MAAM,CAAC,+BAAc,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,mBAAmB,EAAE;gBAC3F,UAAU,EAAE,IAAI;aACnB,CAAC,CAAC;YAEH,OAAO,CAAC,UAAU,EAAE,CAAC;YAErB,OAAO,CAAC,eAAe,CAAC,KAAK,EAAE;gBAC3B,OAAO,EAAE,CAAC,UAAU,EAAE,eAAe,CAAC;aACzC,CAAC,CAAC;YAEH,2DAA2D;YAC3D,MAAM,OAAO,CAAC,IAAI,EAAE,CAAC;QAEzB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,MAAM,CAAC,KAAK,CAAC,sCAAsC,EAAE,KAAK,CAAC,CAAC;YAC5D,MAAM,KAAK,CAAC;QAChB,CAAC;IACL,CAAC;CAAA;AAED,mDAAkD;AAAzC,gHAAA,cAAc,OAAA;AACvB,yCAAuB,CAAC,yFAAyF","sourcesContent":["import { Application } from \"express\";\nimport { NestFactory } from \"@nestjs/core\";\nimport { ExpressAdapter } from \"@nestjs/platform-express\";\nimport { AllegatiModule, AllegatiOptions } from \"./AllegatiModule\";\nimport { Logger } from \"../Logger\";\n\nexport async function initializeAllegatiModule(app: Application, options: AllegatiOptions) {\n const logger: Logger = new Logger(\"initializeAllegatiModule\");\n try {\n const nestExpressInstance = new ExpressAdapter(app);\n const nestApp = await NestFactory.create(AllegatiModule.forRoot(options), nestExpressInstance, {\n bufferLogs: true\n });\n\n nestApp.enableCors();\n\n nestApp.setGlobalPrefix('api', {\n exclude: ['/swagger', '/swagger/(.*)']\n });\n\n // Note: Swagger setup is now handled by the unified module\n await nestApp.init();\n\n } catch (error) {\n logger.error(\"Errore in initialize AllegatiModule:\", error);\n throw error;\n }\n}\n\nexport { AllegatiModule } from \"./AllegatiModule\";\nexport * from \"./Dtos\"; // per esportare automaticamente i DTOs tipo AllegatoDto, UploadAllegatoResponseDto, etc."]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/allegati-module/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAMA,4DAqBC;AA1BD,uCAA2C;AAC3C,+DAA0D;AAC1D,qDAAmE;AACnE,sCAAmC;AAEnC,SAAsB,wBAAwB,CAAC,GAAgB,EAAE,OAAwB;;QACrF,MAAM,MAAM,GAAW,IAAI,eAAM,CAAC,0BAA0B,CAAC,CAAC;QAC9D,IAAI,CAAC;YACD,MAAM,mBAAmB,GAAG,IAAI,iCAAc,CAAC,GAAG,CAAC,CAAC;YACpD,MAAM,OAAO,GAAG,MAAM,kBAAW,CAAC,MAAM,CAAC,+BAAc,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,mBAAmB,EAAE;gBAC3F,UAAU,EAAE,IAAI;aACnB,CAAC,CAAC;YAEH,OAAO,CAAC,UAAU,EAAE,CAAC;YAErB,OAAO,CAAC,eAAe,CAAC,KAAK,EAAE;gBAC3B,OAAO,EAAE,CAAC,UAAU,EAAE,eAAe,CAAC;aACzC,CAAC,CAAC;YAEH,2DAA2D;YAC3D,MAAM,OAAO,CAAC,IAAI,EAAE,CAAC;QAEzB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,MAAM,CAAC,KAAK,CAAC,sCAAsC,EAAE,KAAK,CAAC,CAAC;YAC5D,MAAM,KAAK,CAAC;QAChB,CAAC;IACL,CAAC;CAAA;AAED,mDAAkD;AAAzC,gHAAA,cAAc,OAAA;AACvB,yCAAuB,CAAC,yFAAyF","sourcesContent":["import { Application } from \"express\";\r\nimport { NestFactory } from \"@nestjs/core\";\r\nimport { ExpressAdapter } from \"@nestjs/platform-express\";\r\nimport { AllegatiModule, AllegatiOptions } from \"./AllegatiModule\";\r\nimport { Logger } from \"../Logger\";\r\n\r\nexport async function initializeAllegatiModule(app: Application, options: AllegatiOptions) {\r\n const logger: Logger = new Logger(\"initializeAllegatiModule\");\r\n try {\r\n const nestExpressInstance = new ExpressAdapter(app);\r\n const nestApp = await NestFactory.create(AllegatiModule.forRoot(options), nestExpressInstance, {\r\n bufferLogs: true\r\n });\r\n\r\n nestApp.enableCors();\r\n\r\n nestApp.setGlobalPrefix('api', {\r\n exclude: ['/swagger', '/swagger/(.*)']\r\n });\r\n\r\n // Note: Swagger setup is now handled by the unified module\r\n await nestApp.init();\r\n\r\n } catch (error) {\r\n logger.error(\"Errore in initialize AllegatiModule:\", error);\r\n throw error;\r\n }\r\n}\r\n\r\nexport { AllegatiModule } from \"./AllegatiModule\";\r\nexport * from \"./Dtos\"; // per esportare automaticamente i DTOs tipo AllegatoDto, UploadAllegatoResponseDto, etc."]}
@@ -0,0 +1,14 @@
1
+ import { CanActivate, ExecutionContext } from "@nestjs/common";
2
+ import type { AllegatiOptions } from "../AllegatiModule";
3
+ /**
4
+ * Guard opt-in per i controller Allegati.
5
+ *
6
+ * Senza `authorize` configurato nelle `AllegatiOptions` il guard e un no-op, cosi da
7
+ * preservare la retrocompatibilita. Quando configurato, delega la decisione
8
+ * all'applicazione host (tipicamente il controllo di autenticazione/ownership).
9
+ */
10
+ export declare class AllegatiAuthorizationGuard implements CanActivate {
11
+ private readonly options;
12
+ constructor(options: AllegatiOptions);
13
+ canActivate(context: ExecutionContext): Promise<boolean>;
14
+ }
@@ -0,0 +1,70 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ var __param = (this && this.__param) || function (paramIndex, decorator) {
12
+ return function (target, key) { decorator(target, key, paramIndex); }
13
+ };
14
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
15
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
16
+ return new (P || (P = Promise))(function (resolve, reject) {
17
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
18
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
19
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
20
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
21
+ });
22
+ };
23
+ Object.defineProperty(exports, "__esModule", { value: true });
24
+ exports.AllegatiAuthorizationGuard = void 0;
25
+ const common_1 = require("@nestjs/common");
26
+ /**
27
+ * Guard opt-in per i controller Allegati.
28
+ *
29
+ * Senza `authorize` configurato nelle `AllegatiOptions` il guard e un no-op, cosi da
30
+ * preservare la retrocompatibilita. Quando configurato, delega la decisione
31
+ * all'applicazione host (tipicamente il controllo di autenticazione/ownership).
32
+ */
33
+ let AllegatiAuthorizationGuard = class AllegatiAuthorizationGuard {
34
+ constructor(options) {
35
+ this.options = options;
36
+ }
37
+ canActivate(context) {
38
+ return __awaiter(this, void 0, void 0, function* () {
39
+ var _a, _b;
40
+ // Opt-out esplicito: ripristina il comportamento storico (endpoint aperti).
41
+ if (((_a = this.options) === null || _a === void 0 ? void 0 : _a.requireAuthorization) === false) {
42
+ return true;
43
+ }
44
+ const authorize = (_b = this.options) === null || _b === void 0 ? void 0 : _b.authorize;
45
+ if (!authorize) {
46
+ // Secure by default: senza un controllo configurato l'accesso e negato.
47
+ throw new common_1.ForbiddenException({
48
+ code: 'ALLEGATI_AUTHORIZATION_NOT_CONFIGURED',
49
+ message: 'Allegati: nessun controllo di autorizzazione configurato. Definire allegatiOptions.authorize oppure impostare requireAuthorization: false per il comportamento storico.',
50
+ });
51
+ }
52
+ const request = context.switchToHttp().getRequest();
53
+ const allowed = yield authorize(request);
54
+ if (!allowed) {
55
+ throw new common_1.ForbiddenException({
56
+ code: 'ALLEGATI_FORBIDDEN',
57
+ message: 'Operazione non autorizzata.',
58
+ });
59
+ }
60
+ return true;
61
+ });
62
+ }
63
+ };
64
+ exports.AllegatiAuthorizationGuard = AllegatiAuthorizationGuard;
65
+ exports.AllegatiAuthorizationGuard = AllegatiAuthorizationGuard = __decorate([
66
+ (0, common_1.Injectable)(),
67
+ __param(0, (0, common_1.Inject)('ALLEGATI_OPTIONS')),
68
+ __metadata("design:paramtypes", [Object])
69
+ ], AllegatiAuthorizationGuard);
70
+ //# sourceMappingURL=allegatiAuthorizationGuard.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"allegatiAuthorizationGuard.js","sourceRoot":"","sources":["../../../src/allegati-module/security/allegatiAuthorizationGuard.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAAA,2CAAuG;AAIvG;;;;;;GAMG;AAEI,IAAM,0BAA0B,GAAhC,MAAM,0BAA0B;IACnC,YAAyD,OAAwB;QAAxB,YAAO,GAAP,OAAO,CAAiB;IAAG,CAAC;IAE/E,WAAW,CAAC,OAAyB;;;YACvC,4EAA4E;YAC5E,IAAI,CAAA,MAAA,IAAI,CAAC,OAAO,0CAAE,oBAAoB,MAAK,KAAK,EAAE,CAAC;gBAC/C,OAAO,IAAI,CAAC;YAChB,CAAC;YAED,MAAM,SAAS,GAAG,MAAA,IAAI,CAAC,OAAO,0CAAE,SAAS,CAAC;YAC1C,IAAI,CAAC,SAAS,EAAE,CAAC;gBACb,wEAAwE;gBACxE,MAAM,IAAI,2BAAkB,CAAC;oBACzB,IAAI,EAAE,uCAAuC;oBAC7C,OAAO,EAAE,yKAAyK;iBACrL,CAAC,CAAC;YACP,CAAC;YAED,MAAM,OAAO,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC,UAAU,EAAW,CAAC;YAC7D,MAAM,OAAO,GAAG,MAAM,SAAS,CAAC,OAAO,CAAC,CAAC;YACzC,IAAI,CAAC,OAAO,EAAE,CAAC;gBACX,MAAM,IAAI,2BAAkB,CAAC;oBACzB,IAAI,EAAE,oBAAoB;oBAC1B,OAAO,EAAE,6BAA6B;iBACzC,CAAC,CAAC;YACP,CAAC;YAED,OAAO,IAAI,CAAC;QAChB,CAAC;KAAA;CACJ,CAAA;AA7BY,gEAA0B;qCAA1B,0BAA0B;IADtC,IAAA,mBAAU,GAAE;IAEI,WAAA,IAAA,eAAM,EAAC,kBAAkB,CAAC,CAAA;;GAD9B,0BAA0B,CA6BtC","sourcesContent":["import { CanActivate, ExecutionContext, ForbiddenException, Inject, Injectable } from \"@nestjs/common\";\nimport type { Request } from \"express\";\nimport type { AllegatiOptions } from \"../AllegatiModule\";\n\n/**\n * Guard opt-in per i controller Allegati.\n *\n * Senza `authorize` configurato nelle `AllegatiOptions` il guard e un no-op, cosi da\n * preservare la retrocompatibilita. Quando configurato, delega la decisione\n * all'applicazione host (tipicamente il controllo di autenticazione/ownership).\n */\n@Injectable()\nexport class AllegatiAuthorizationGuard implements CanActivate {\n constructor(@Inject('ALLEGATI_OPTIONS') private readonly options: AllegatiOptions) {}\n\n async canActivate(context: ExecutionContext): Promise<boolean> {\n // Opt-out esplicito: ripristina il comportamento storico (endpoint aperti).\n if (this.options?.requireAuthorization === false) {\n return true;\n }\n\n const authorize = this.options?.authorize;\n if (!authorize) {\n // Secure by default: senza un controllo configurato l'accesso e negato.\n throw new ForbiddenException({\n code: 'ALLEGATI_AUTHORIZATION_NOT_CONFIGURED',\n message: 'Allegati: nessun controllo di autorizzazione configurato. Definire allegatiOptions.authorize oppure impostare requireAuthorization: false per il comportamento storico.',\n });\n }\n\n const request = context.switchToHttp().getRequest<Request>();\n const allowed = await authorize(request);\n if (!allowed) {\n throw new ForbiddenException({\n code: 'ALLEGATI_FORBIDDEN',\n message: 'Operazione non autorizzata.',\n });\n }\n\n return true;\n }\n}\n"]}
@@ -1,3 +1,10 @@
1
- export declare function autobind<T extends {
2
- new (...args: any[]): any;
3
- }>(constructor: T): T;
1
+ type AutobindConstructor = new (...args: never[]) => object;
2
+ /**
3
+ * Class decorator that binds every prototype method to the instance.
4
+ *
5
+ * Uses `Reflect.construct` instead of a class-expression mixin because
6
+ * TypeScript requires mixin constructors to use `any[]`, which this codebase
7
+ * avoids.
8
+ */
9
+ export declare function autobind<T extends AutobindConstructor>(constructor: T): T;
10
+ export {};
package/dist/autobind.js CHANGED
@@ -1,17 +1,32 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.autobind = autobind;
4
+ /**
5
+ * Class decorator that binds every prototype method to the instance.
6
+ *
7
+ * Uses `Reflect.construct` instead of a class-expression mixin because
8
+ * TypeScript requires mixin constructors to use `any[]`, which this codebase
9
+ * avoids.
10
+ */
4
11
  function autobind(constructor) {
5
- return class extends constructor {
6
- constructor(...args) {
7
- super(...args);
8
- Object.getOwnPropertyNames(constructor.prototype).forEach(key => {
9
- const descriptor = Object.getOwnPropertyDescriptor(constructor.prototype, key);
10
- if (descriptor && typeof descriptor.value === 'function' && key !== 'constructor') {
11
- this[key] = this[key].bind(this);
12
+ const boundConstructor = function (...args) {
13
+ const instance = Reflect.construct(constructor, args);
14
+ Object.getOwnPropertyNames(constructor.prototype).forEach(key => {
15
+ const descriptor = Object.getOwnPropertyDescriptor(constructor.prototype, key);
16
+ if (descriptor && typeof descriptor.value === 'function' && key !== 'constructor') {
17
+ const method = instance[key];
18
+ if (typeof method === 'function') {
19
+ instance[key] = method.bind(instance);
12
20
  }
13
- });
14
- }
21
+ }
22
+ });
23
+ return instance;
15
24
  };
25
+ // Mirror `class extends`: the constructor's prototype chain must point at the
26
+ // original class so reflect-metadata (design:paramtypes) stays reachable and
27
+ // NestJS dependency injection keeps working.
28
+ Object.setPrototypeOf(boundConstructor, constructor);
29
+ boundConstructor.prototype = constructor.prototype;
30
+ return boundConstructor;
16
31
  }
17
32
  //# sourceMappingURL=autobind.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"autobind.js","sourceRoot":"","sources":["../src/autobind.ts"],"names":[],"mappings":";;AAAA,4BAYC;AAZD,SAAgB,QAAQ,CAA0C,WAAc;IAC5E,OAAO,KAAM,SAAQ,WAAW;QAC5B,YAAY,GAAG,IAAW;YACtB,KAAK,CAAC,GAAG,IAAI,CAAC,CAAC;YACf,MAAM,CAAC,mBAAmB,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;gBAC5D,MAAM,UAAU,GAAG,MAAM,CAAC,wBAAwB,CAAC,WAAW,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;gBAC/E,IAAI,UAAU,IAAI,OAAO,UAAU,CAAC,KAAK,KAAK,UAAU,IAAI,GAAG,KAAK,aAAa,EAAE,CAAC;oBAChF,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACrC,CAAC;YACL,CAAC,CAAC,CAAC;QACP,CAAC;KACJ,CAAC;AACN,CAAC","sourcesContent":["export function autobind<T extends { new (...args: any[]): any }>(constructor: T): T {\n return class extends constructor {\n constructor(...args: any[]) {\n super(...args);\n Object.getOwnPropertyNames(constructor.prototype).forEach(key => {\n const descriptor = Object.getOwnPropertyDescriptor(constructor.prototype, key);\n if (descriptor && typeof descriptor.value === 'function' && key !== 'constructor') {\n this[key] = this[key].bind(this);\n }\n });\n }\n };\n}\n"]}
1
+ {"version":3,"file":"autobind.js","sourceRoot":"","sources":["../src/autobind.ts"],"names":[],"mappings":";;AASA,4BAuBC;AA9BD;;;;;;GAMG;AACH,SAAgB,QAAQ,CAAgC,WAAc;IAClE,MAAM,gBAAgB,GAAG,UAAyB,GAAG,IAAe;QAChE,MAAM,QAAQ,GAAG,OAAO,CAAC,SAAS,CAAC,WAAW,EAAE,IAAI,CAA4B,CAAC;QAEjF,MAAM,CAAC,mBAAmB,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;YAC5D,MAAM,UAAU,GAAG,MAAM,CAAC,wBAAwB,CAAC,WAAW,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;YAC/E,IAAI,UAAU,IAAI,OAAO,UAAU,CAAC,KAAK,KAAK,UAAU,IAAI,GAAG,KAAK,aAAa,EAAE,CAAC;gBAChF,MAAM,MAAM,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC;gBAC7B,IAAI,OAAO,MAAM,KAAK,UAAU,EAAE,CAAC;oBAC/B,QAAQ,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;gBAC1C,CAAC;YACL,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,OAAO,QAAQ,CAAC;IACpB,CAAC,CAAC;IAEF,8EAA8E;IAC9E,6EAA6E;IAC7E,6CAA6C;IAC7C,MAAM,CAAC,cAAc,CAAC,gBAAgB,EAAE,WAAW,CAAC,CAAC;IACrD,gBAAgB,CAAC,SAAS,GAAG,WAAW,CAAC,SAAS,CAAC;IACnD,OAAO,gBAAgC,CAAC;AAC5C,CAAC","sourcesContent":["type AutobindConstructor = new (...args: never[]) => object;\r\n\r\n/**\r\n * Class decorator that binds every prototype method to the instance.\r\n *\r\n * Uses `Reflect.construct` instead of a class-expression mixin because\r\n * TypeScript requires mixin constructors to use `any[]`, which this codebase\r\n * avoids.\r\n */\r\nexport function autobind<T extends AutobindConstructor>(constructor: T): T {\r\n const boundConstructor = function (this: unknown, ...args: unknown[]): object {\r\n const instance = Reflect.construct(constructor, args) as Record<string, unknown>;\r\n\r\n Object.getOwnPropertyNames(constructor.prototype).forEach(key => {\r\n const descriptor = Object.getOwnPropertyDescriptor(constructor.prototype, key);\r\n if (descriptor && typeof descriptor.value === 'function' && key !== 'constructor') {\r\n const method = instance[key];\r\n if (typeof method === 'function') {\r\n instance[key] = method.bind(instance);\r\n }\r\n }\r\n });\r\n\r\n return instance;\r\n };\r\n\r\n // Mirror `class extends`: the constructor's prototype chain must point at the\r\n // original class so reflect-metadata (design:paramtypes) stays reachable and\r\n // NestJS dependency injection keeps working.\r\n Object.setPrototypeOf(boundConstructor, constructor);\r\n boundConstructor.prototype = constructor.prototype;\r\n return boundConstructor as unknown as T;\r\n}\r\n"]}
@@ -11,6 +11,19 @@ export type FirebirdOptions = Options & {
11
11
  compatibilityTotalTimeoutMs?: number;
12
12
  firebirdDriver?: FirebirdDriverStrategy;
13
13
  trimStringResults?: boolean;
14
+ /**
15
+ * When `true`, query parameters are interpolated into the logged SQL. Off by
16
+ * default so that secrets, credentials and personal data are not written to
17
+ * the console or to the daily log files.
18
+ */
19
+ logQueryParameters?: boolean;
20
+ /**
21
+ * When greater than zero, enables an opt-in connection pool of the given
22
+ * maximum size for this connection target instead of attaching/detaching a
23
+ * physical connection for every query. Default `0` keeps the historic
24
+ * one-connection-per-query behaviour.
25
+ */
26
+ poolSize?: number;
14
27
  };
15
28
  type FirebirdErrorContext = {
16
29
  stage: "attach" | "query" | "execute" | "transaction";
@@ -109,10 +109,11 @@ function uniqueDiagnostics(values) {
109
109
  return values.filter((value, index) => values.indexOf(value) === index);
110
110
  }
111
111
  function buildDiagnostics(message, options) {
112
+ var _a;
112
113
  const diagnostics = [];
113
114
  const pluginMismatch = message.match(/Server don't accept plugin\s*:\s*([^,]+),\s*but support\s*:\s*(.+)$/i);
114
115
  if (pluginMismatch) {
115
- const supportedPlugins = pluginMismatch[2]
116
+ const supportedPlugins = ((_a = pluginMismatch[2]) !== null && _a !== void 0 ? _a : "")
116
117
  .split(",")
117
118
  .map((plugin) => plugin.trim())
118
119
  .filter((plugin) => plugin.length > 0);
@@ -172,7 +173,7 @@ function formatFirebirdMetadata(source) {
172
173
  function normalizeFirebirdOptions(options) {
173
174
  var _a, _b;
174
175
  const compatibilityOptions = options;
175
- const { authPlugins: _authPlugins, compatibilityProbeTimeoutMs: _compatibilityProbeTimeoutMs, compatibilityTotalTimeoutMs, connectTimeoutMs, firebirdDriver: _firebirdDriver, trimStringResults } = compatibilityOptions, baseOptions = __rest(compatibilityOptions, ["authPlugins", "compatibilityProbeTimeoutMs", "compatibilityTotalTimeoutMs", "connectTimeoutMs", "firebirdDriver", "trimStringResults"]);
176
+ const { authPlugins: _authPlugins, compatibilityProbeTimeoutMs: _compatibilityProbeTimeoutMs, compatibilityTotalTimeoutMs, connectTimeoutMs, firebirdDriver: _firebirdDriver, logQueryParameters: _logQueryParameters, poolSize: _poolSize, trimStringResults } = compatibilityOptions, baseOptions = __rest(compatibilityOptions, ["authPlugins", "compatibilityProbeTimeoutMs", "compatibilityTotalTimeoutMs", "connectTimeoutMs", "firebirdDriver", "logQueryParameters", "poolSize", "trimStringResults"]);
176
177
  const normalizedOptions = Object.assign(Object.assign({}, baseOptions), { pluginName: normalizeAuthPlugin(compatibilityOptions.pluginName), trimStringResults, wireCrypt: normalizeWireCryptMode(compatibilityOptions.wireCrypt) });
177
178
  const timeoutCandidate = (_b = (_a = compatibilityOptions.connectTimeout) !== null && _a !== void 0 ? _a : connectTimeoutMs) !== null && _b !== void 0 ? _b : compatibilityTotalTimeoutMs;
178
179
  if (Number.isFinite(timeoutCandidate) && Number(timeoutCandidate) > 0) {
@@ -1 +1 @@
1
- {"version":3,"file":"firebird-compat.js","sourceRoot":"","sources":["../src/firebird-compat.ts"],"names":[],"mappings":"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","sourcesContent":["import * as Firebird from \"node-firebird\";\nimport type { Options } from \"node-firebird\";\n\nexport type FirebirdWireCryptMode = \"disabled\" | \"enabled\" | \"required\";\nexport type FirebirdAuthPlugin = \"Legacy_Auth\" | \"Srp\" | \"Srp256\" | \"Srp384\" | \"Srp512\";\nexport type FirebirdDriverStrategy = \"modern\";\n\nexport type FirebirdOptions = Options & {\n wireCrypt?: FirebirdWireCryptMode | number;\n pluginName?: FirebirdAuthPlugin;\n authPlugins?: FirebirdAuthPlugin[];\n connectTimeoutMs?: number;\n compatibilityProbeTimeoutMs?: number;\n compatibilityTotalTimeoutMs?: number;\n firebirdDriver?: FirebirdDriverStrategy;\n trimStringResults?: boolean;\n};\n\ntype FirebirdErrorContext = {\n stage: \"attach\" | \"query\" | \"execute\" | \"transaction\";\n sql?: string;\n};\n\ntype EnhancedFirebirdError = Error & {\n cause?: unknown;\n gdscode?: number;\n gdsparams?: unknown;\n __emilsoftwareFirebirdEnhanced?: boolean;\n};\n\nfunction isBlank(value: unknown): boolean {\n return value === undefined || value === null || (typeof value === \"string\" && value.trim() === \"\");\n}\n\nfunction normalizeWireCryptMode(value: FirebirdOptions[\"wireCrypt\"]): number | undefined {\n if (isBlank(value)) {\n return undefined;\n }\n\n if (typeof value === \"number\") {\n return value;\n }\n\n const normalized = String(value).trim().toLowerCase();\n if (normalized === \"disabled\") {\n return Firebird.WIRE_CRYPT_DISABLE;\n }\n\n return Firebird.WIRE_CRYPT_ENABLE;\n}\n\nfunction normalizeAuthPlugin(value: unknown): FirebirdAuthPlugin | undefined {\n if (isBlank(value)) {\n return undefined;\n }\n\n const normalized = String(value).trim().toLowerCase();\n if (normalized === \"legacy\" || normalized === \"legacy_auth\") {\n return \"Legacy_Auth\";\n }\n\n if (normalized === \"srp256\") {\n return \"Srp256\";\n }\n\n if (normalized === \"srp384\") {\n return \"Srp384\";\n }\n\n if (normalized === \"srp512\") {\n return \"Srp512\";\n }\n\n return \"Srp\";\n}\n\nfunction formatWireCryptValue(value: FirebirdOptions[\"wireCrypt\"]): string {\n if (isBlank(value)) {\n return \"auto\";\n }\n\n if (typeof value === \"number\") {\n if (value === Firebird.WIRE_CRYPT_DISABLE) {\n return \"disabled\";\n }\n\n if (value === Firebird.WIRE_CRYPT_ENABLE) {\n return \"enabled\";\n }\n\n return String(value);\n }\n\n return String(value);\n}\n\nfunction formatTarget(options: Options): string {\n return `${options.host ?? \"?\"}:${options.port ?? \"?\"} -> ${options.database ?? \"?\"}`;\n}\n\nfunction uniqueDiagnostics(values: string[]): string[] {\n return values.filter((value, index) => values.indexOf(value) === index);\n}\n\nfunction buildDiagnostics(message: string, options: FirebirdOptions): string[] {\n const diagnostics: string[] = [];\n const pluginMismatch = message.match(/Server don't accept plugin\\s*:\\s*([^,]+),\\s*but support\\s*:\\s*(.+)$/i);\n\n if (pluginMismatch) {\n const supportedPlugins = pluginMismatch[2]\n .split(\",\")\n .map((plugin) => plugin.trim())\n .filter((plugin) => plugin.length > 0);\n const supportedMessage = supportedPlugins.length === 1\n ? `The server explicitly reported that only the \"${supportedPlugins[0]}\" authentication plugin is supported.`\n : `The server explicitly reported the supported authentication plugins: ${supportedPlugins.join(\", \")}.`;\n diagnostics.push(supportedMessage);\n }\n\n if (/Incompatible wire encryption levels requested on client and server/i.test(message)) {\n diagnostics.push(\"The server rejected the requested wire encryption mode. Keep wire encryption auto-enabled unless the server is known to allow disabled encryption.\");\n }\n\n if (/No matching plugins on server/i.test(message)) {\n diagnostics.push(\"The server did not find a common authentication plugin with the client configuration.\");\n }\n\n if (/Connection timeout after \\d+ms/i.test(message) || /Timeout during Firebird attach after \\d+ ms/i.test(message)) {\n diagnostics.push(\"The TCP connection was accepted but the Firebird wire-protocol attach did not complete in time.\");\n }\n\n if (options.pluginName) {\n diagnostics.push(`Client authentication plugin was forced to \"${options.pluginName}\". Leave pluginName empty to let the driver auto-negotiate when possible.`);\n }\n\n if (!isBlank(options.wireCrypt)) {\n diagnostics.push(`Client wire encryption was forced to \"${formatWireCryptValue(options.wireCrypt)}\".`);\n }\n\n return uniqueDiagnostics(diagnostics);\n}\n\nfunction copyFirebirdMetadata(target: EnhancedFirebirdError, source: unknown): void {\n if (!source || typeof source !== \"object\") {\n return;\n }\n\n const firebirdSource = source as Record<string, unknown>;\n if (\"gdscode\" in firebirdSource) {\n target.gdscode = firebirdSource.gdscode as number;\n }\n\n if (\"gdsparams\" in firebirdSource) {\n target.gdsparams = firebirdSource.gdsparams;\n }\n}\n\nfunction formatFirebirdMetadata(source: unknown): string {\n if (!source || typeof source !== \"object\") {\n return \"\";\n }\n\n const firebirdSource = source as Record<string, unknown>;\n const metadata: string[] = [];\n\n if (typeof firebirdSource.gdscode === \"number\") {\n metadata.push(`gdscode=${firebirdSource.gdscode}`);\n }\n\n if (firebirdSource.gdsparams !== undefined) {\n try {\n metadata.push(`gdsparams=${JSON.stringify(firebirdSource.gdsparams)}`);\n } catch {\n metadata.push(`gdsparams=${String(firebirdSource.gdsparams)}`);\n }\n }\n\n return metadata.length > 0 ? ` Metadata: ${metadata.join(\", \")}.` : \"\";\n}\n\nexport function normalizeFirebirdOptions(options: Options): FirebirdOptions {\n const compatibilityOptions = options as FirebirdOptions;\n const {\n authPlugins: _authPlugins,\n compatibilityProbeTimeoutMs: _compatibilityProbeTimeoutMs,\n compatibilityTotalTimeoutMs,\n connectTimeoutMs,\n firebirdDriver: _firebirdDriver,\n trimStringResults,\n ...baseOptions\n } = compatibilityOptions;\n\n const normalizedOptions: FirebirdOptions = {\n ...baseOptions,\n pluginName: normalizeAuthPlugin(compatibilityOptions.pluginName),\n trimStringResults,\n wireCrypt: normalizeWireCryptMode(compatibilityOptions.wireCrypt),\n };\n\n const timeoutCandidate = compatibilityOptions.connectTimeout\n ?? connectTimeoutMs\n ?? compatibilityTotalTimeoutMs;\n\n if (Number.isFinite(timeoutCandidate) && Number(timeoutCandidate) > 0) {\n normalizedOptions.connectTimeout = Math.trunc(Number(timeoutCandidate));\n }\n\n return normalizedOptions;\n}\n\nexport function describeFirebirdCompatibilityOptions(options: Options): string {\n const normalized = normalizeFirebirdOptions(options);\n return `plugin=${normalized.pluginName ?? \"auto\"}, wireCrypt=${formatWireCryptValue(normalized.wireCrypt)}, connectTimeout=${normalized.connectTimeout ?? \"default\"}`;\n}\n\nexport function enhanceFirebirdError(error: unknown, options: Options, context: FirebirdErrorContext): Error {\n if (error instanceof Error && (error as EnhancedFirebirdError).__emilsoftwareFirebirdEnhanced) {\n return error;\n }\n\n const normalizedOptions = normalizeFirebirdOptions(options);\n const target = formatTarget(normalizedOptions);\n const original = error instanceof Error ? error : new Error(String(error));\n const diagnostics = buildDiagnostics(original.message, normalizedOptions);\n const sqlSuffix = context.sql ? ` SQL: ${context.sql.replace(/\\s+/g, \" \").trim()}` : \"\";\n const diagnosticsSuffix = diagnostics.length > 0 ? ` Diagnostics: ${diagnostics.join(\" \")}` : \"\";\n const metadataSuffix = formatFirebirdMetadata(original);\n const enhanced = new Error(\n `Firebird ${context.stage} failed on ${target}: ${original.message}.${diagnosticsSuffix}${metadataSuffix}${sqlSuffix}`\n ) as EnhancedFirebirdError;\n\n enhanced.cause = original;\n enhanced.__emilsoftwareFirebirdEnhanced = true;\n copyFirebirdMetadata(enhanced, original);\n enhanced.stack = `${enhanced.name}: ${enhanced.message}\\nCaused by: ${original.stack ?? original.message}`;\n return enhanced;\n}\n\nexport function buildFirebirdCompatibilityCandidates(options: Options): FirebirdOptions[] {\n return [normalizeFirebirdOptions(options)];\n}\n\nexport function shouldRetryFirebirdCompatibility(): boolean {\n return false;\n}\n\nexport function ensureEsNodeFirebirdCompatibilityPatch(): void {\n // No-op kept for backward compatibility. The library now relies on the\n // official node-firebird driver, which handles Firebird 2.5+ protocol\n // negotiation natively.\n}\n"]}
1
+ {"version":3,"file":"firebird-compat.js","sourceRoot":"","sources":["../src/firebird-compat.ts"],"names":[],"mappings":"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","sourcesContent":["import * as Firebird from \"node-firebird\";\r\nimport type { Options } from \"node-firebird\";\r\n\r\nexport type FirebirdWireCryptMode = \"disabled\" | \"enabled\" | \"required\";\r\nexport type FirebirdAuthPlugin = \"Legacy_Auth\" | \"Srp\" | \"Srp256\" | \"Srp384\" | \"Srp512\";\r\nexport type FirebirdDriverStrategy = \"modern\";\r\n\r\nexport type FirebirdOptions = Options & {\r\n wireCrypt?: FirebirdWireCryptMode | number;\r\n pluginName?: FirebirdAuthPlugin;\r\n authPlugins?: FirebirdAuthPlugin[];\r\n connectTimeoutMs?: number;\r\n compatibilityProbeTimeoutMs?: number;\r\n compatibilityTotalTimeoutMs?: number;\r\n firebirdDriver?: FirebirdDriverStrategy;\r\n trimStringResults?: boolean;\r\n /**\r\n * When `true`, query parameters are interpolated into the logged SQL. Off by\r\n * default so that secrets, credentials and personal data are not written to\r\n * the console or to the daily log files.\r\n */\r\n logQueryParameters?: boolean;\r\n /**\r\n * When greater than zero, enables an opt-in connection pool of the given\r\n * maximum size for this connection target instead of attaching/detaching a\r\n * physical connection for every query. Default `0` keeps the historic\r\n * one-connection-per-query behaviour.\r\n */\r\n poolSize?: number;\r\n};\r\n\r\ntype FirebirdErrorContext = {\r\n stage: \"attach\" | \"query\" | \"execute\" | \"transaction\";\r\n sql?: string;\r\n};\r\n\r\ntype EnhancedFirebirdError = Error & {\r\n cause?: unknown;\r\n gdscode?: number;\r\n gdsparams?: unknown;\r\n __emilsoftwareFirebirdEnhanced?: boolean;\r\n};\r\n\r\nfunction isBlank(value: unknown): boolean {\r\n return value === undefined || value === null || (typeof value === \"string\" && value.trim() === \"\");\r\n}\r\n\r\nfunction normalizeWireCryptMode(value: FirebirdOptions[\"wireCrypt\"]): number | undefined {\r\n if (isBlank(value)) {\r\n return undefined;\r\n }\r\n\r\n if (typeof value === \"number\") {\r\n return value;\r\n }\r\n\r\n const normalized = String(value).trim().toLowerCase();\r\n if (normalized === \"disabled\") {\r\n return Firebird.WIRE_CRYPT_DISABLE;\r\n }\r\n\r\n return Firebird.WIRE_CRYPT_ENABLE;\r\n}\r\n\r\nfunction normalizeAuthPlugin(value: unknown): FirebirdAuthPlugin | undefined {\r\n if (isBlank(value)) {\r\n return undefined;\r\n }\r\n\r\n const normalized = String(value).trim().toLowerCase();\r\n if (normalized === \"legacy\" || normalized === \"legacy_auth\") {\r\n return \"Legacy_Auth\";\r\n }\r\n\r\n if (normalized === \"srp256\") {\r\n return \"Srp256\";\r\n }\r\n\r\n if (normalized === \"srp384\") {\r\n return \"Srp384\";\r\n }\r\n\r\n if (normalized === \"srp512\") {\r\n return \"Srp512\";\r\n }\r\n\r\n return \"Srp\";\r\n}\r\n\r\nfunction formatWireCryptValue(value: FirebirdOptions[\"wireCrypt\"]): string {\r\n if (isBlank(value)) {\r\n return \"auto\";\r\n }\r\n\r\n if (typeof value === \"number\") {\r\n if (value === Firebird.WIRE_CRYPT_DISABLE) {\r\n return \"disabled\";\r\n }\r\n\r\n if (value === Firebird.WIRE_CRYPT_ENABLE) {\r\n return \"enabled\";\r\n }\r\n\r\n return String(value);\r\n }\r\n\r\n return String(value);\r\n}\r\n\r\nfunction formatTarget(options: Options): string {\r\n return `${options.host ?? \"?\"}:${options.port ?? \"?\"} -> ${options.database ?? \"?\"}`;\r\n}\r\n\r\nfunction uniqueDiagnostics(values: string[]): string[] {\r\n return values.filter((value, index) => values.indexOf(value) === index);\r\n}\r\n\r\nfunction buildDiagnostics(message: string, options: FirebirdOptions): string[] {\r\n const diagnostics: string[] = [];\r\n const pluginMismatch = message.match(/Server don't accept plugin\\s*:\\s*([^,]+),\\s*but support\\s*:\\s*(.+)$/i);\r\n\r\n if (pluginMismatch) {\r\n const supportedPlugins = (pluginMismatch[2] ?? \"\")\r\n .split(\",\")\r\n .map((plugin) => plugin.trim())\r\n .filter((plugin) => plugin.length > 0);\r\n const supportedMessage = supportedPlugins.length === 1\r\n ? `The server explicitly reported that only the \"${supportedPlugins[0]}\" authentication plugin is supported.`\r\n : `The server explicitly reported the supported authentication plugins: ${supportedPlugins.join(\", \")}.`;\r\n diagnostics.push(supportedMessage);\r\n }\r\n\r\n if (/Incompatible wire encryption levels requested on client and server/i.test(message)) {\r\n diagnostics.push(\"The server rejected the requested wire encryption mode. Keep wire encryption auto-enabled unless the server is known to allow disabled encryption.\");\r\n }\r\n\r\n if (/No matching plugins on server/i.test(message)) {\r\n diagnostics.push(\"The server did not find a common authentication plugin with the client configuration.\");\r\n }\r\n\r\n if (/Connection timeout after \\d+ms/i.test(message) || /Timeout during Firebird attach after \\d+ ms/i.test(message)) {\r\n diagnostics.push(\"The TCP connection was accepted but the Firebird wire-protocol attach did not complete in time.\");\r\n }\r\n\r\n if (options.pluginName) {\r\n diagnostics.push(`Client authentication plugin was forced to \"${options.pluginName}\". Leave pluginName empty to let the driver auto-negotiate when possible.`);\r\n }\r\n\r\n if (!isBlank(options.wireCrypt)) {\r\n diagnostics.push(`Client wire encryption was forced to \"${formatWireCryptValue(options.wireCrypt)}\".`);\r\n }\r\n\r\n return uniqueDiagnostics(diagnostics);\r\n}\r\n\r\nfunction copyFirebirdMetadata(target: EnhancedFirebirdError, source: unknown): void {\r\n if (!source || typeof source !== \"object\") {\r\n return;\r\n }\r\n\r\n const firebirdSource = source as Record<string, unknown>;\r\n if (\"gdscode\" in firebirdSource) {\r\n target.gdscode = firebirdSource.gdscode as number;\r\n }\r\n\r\n if (\"gdsparams\" in firebirdSource) {\r\n target.gdsparams = firebirdSource.gdsparams;\r\n }\r\n}\r\n\r\nfunction formatFirebirdMetadata(source: unknown): string {\r\n if (!source || typeof source !== \"object\") {\r\n return \"\";\r\n }\r\n\r\n const firebirdSource = source as Record<string, unknown>;\r\n const metadata: string[] = [];\r\n\r\n if (typeof firebirdSource.gdscode === \"number\") {\r\n metadata.push(`gdscode=${firebirdSource.gdscode}`);\r\n }\r\n\r\n if (firebirdSource.gdsparams !== undefined) {\r\n try {\r\n metadata.push(`gdsparams=${JSON.stringify(firebirdSource.gdsparams)}`);\r\n } catch {\r\n metadata.push(`gdsparams=${String(firebirdSource.gdsparams)}`);\r\n }\r\n }\r\n\r\n return metadata.length > 0 ? ` Metadata: ${metadata.join(\", \")}.` : \"\";\r\n}\r\n\r\nexport function normalizeFirebirdOptions(options: Options): FirebirdOptions {\r\n const compatibilityOptions = options as FirebirdOptions;\r\n const {\r\n authPlugins: _authPlugins,\r\n compatibilityProbeTimeoutMs: _compatibilityProbeTimeoutMs,\r\n compatibilityTotalTimeoutMs,\r\n connectTimeoutMs,\r\n firebirdDriver: _firebirdDriver,\r\n logQueryParameters: _logQueryParameters,\r\n poolSize: _poolSize,\r\n trimStringResults,\r\n ...baseOptions\r\n } = compatibilityOptions;\r\n\r\n const normalizedOptions: FirebirdOptions = {\r\n ...baseOptions,\r\n pluginName: normalizeAuthPlugin(compatibilityOptions.pluginName),\r\n trimStringResults,\r\n wireCrypt: normalizeWireCryptMode(compatibilityOptions.wireCrypt),\r\n };\r\n\r\n const timeoutCandidate = compatibilityOptions.connectTimeout\r\n ?? connectTimeoutMs\r\n ?? compatibilityTotalTimeoutMs;\r\n\r\n if (Number.isFinite(timeoutCandidate) && Number(timeoutCandidate) > 0) {\r\n normalizedOptions.connectTimeout = Math.trunc(Number(timeoutCandidate));\r\n }\r\n\r\n return normalizedOptions;\r\n}\r\n\r\nexport function describeFirebirdCompatibilityOptions(options: Options): string {\r\n const normalized = normalizeFirebirdOptions(options);\r\n return `plugin=${normalized.pluginName ?? \"auto\"}, wireCrypt=${formatWireCryptValue(normalized.wireCrypt)}, connectTimeout=${normalized.connectTimeout ?? \"default\"}`;\r\n}\r\n\r\nexport function enhanceFirebirdError(error: unknown, options: Options, context: FirebirdErrorContext): Error {\r\n if (error instanceof Error && (error as EnhancedFirebirdError).__emilsoftwareFirebirdEnhanced) {\r\n return error;\r\n }\r\n\r\n const normalizedOptions = normalizeFirebirdOptions(options);\r\n const target = formatTarget(normalizedOptions);\r\n const original = error instanceof Error ? error : new Error(String(error));\r\n const diagnostics = buildDiagnostics(original.message, normalizedOptions);\r\n const sqlSuffix = context.sql ? ` SQL: ${context.sql.replace(/\\s+/g, \" \").trim()}` : \"\";\r\n const diagnosticsSuffix = diagnostics.length > 0 ? ` Diagnostics: ${diagnostics.join(\" \")}` : \"\";\r\n const metadataSuffix = formatFirebirdMetadata(original);\r\n const enhanced = new Error(\r\n `Firebird ${context.stage} failed on ${target}: ${original.message}.${diagnosticsSuffix}${metadataSuffix}${sqlSuffix}`\r\n ) as EnhancedFirebirdError;\r\n\r\n enhanced.cause = original;\r\n enhanced.__emilsoftwareFirebirdEnhanced = true;\r\n copyFirebirdMetadata(enhanced, original);\r\n enhanced.stack = `${enhanced.name}: ${enhanced.message}\\nCaused by: ${original.stack ?? original.message}`;\r\n return enhanced;\r\n}\r\n\r\nexport function buildFirebirdCompatibilityCandidates(options: Options): FirebirdOptions[] {\r\n return [normalizeFirebirdOptions(options)];\r\n}\r\n\r\nexport function shouldRetryFirebirdCompatibility(): boolean {\r\n return false;\r\n}\r\n\r\nexport function ensureEsNodeFirebirdCompatibilityPatch(): void {\r\n // No-op kept for backward compatibility. The library now relies on the\r\n // official node-firebird driver, which handles Firebird 2.5+ protocol\r\n // negotiation natively.\r\n}\r\n"]}
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,uDAAoD;AAuB6D,gGAvBxG,iCAAe,OAuBwG;AAtBhI,+DAA2D;AAsBxC,oGAtBV,yCAAmB,OAsBU;AArBtC,wDAA0C;AAqBuH,4BAAQ;AApBzK,qCAA6C;AAoBG,0FApBvC,kBAAS,OAoBuC;AAAjB,uFApBpB,eAAM,OAoBoB;AAnB9C,+BAA4B;AAmB+B,oFAnBlD,SAAG,OAmBkD;AAlB9D,2CAA0F;AAkB1B,8FAlBvD,yBAAa,OAkBuD;AAAE,8FAlBvD,yBAAa,OAkBuD;AAAE,kGAlBvD,6BAAiB,OAkBuD;AAAmB,2FAlBxE,sBAAU,OAkBwE;AAjB5I,yCAAsC;AAiB7B,yFAjBA,mBAAQ,OAiBA;AAhBjB,2DAAwD;AAgBsF,kGAhBrI,qCAAiB,OAgBqI;AAf/J,6BAA2B;AAE3B,wCAAsB;AACtB,8CAA4B;AAC5B,2CAAyB;AACzB,6CAA2B;AAC3B,wDAAsC;AACtC,2DAAyC;AACzC,sDAAoC;AACpC,oDAAkC;AAClC,oDAAkC;AAElC,mDAAiC;AACjC,oDAAkC;AAClC,gDAA8B;AAE9B,yBAAyB;AACzB,0DAAwC;AACxC,2DAAyC","sourcesContent":["import { DatabaseUpdater } from \"./DatabaseUpdater\";\nimport { ExecutionTimeLogger } from \"./ExecutionTimeLogger\"\nimport * as Firebird from \"node-firebird\";\nimport { LogLevels, Logger } from \"./Logger\";\nimport { Orm } from \"./Orm\";\nimport { DateUtilities, RestUtilities, DatabaseUtilities, StatusCode } from \"./Utilities\";\nimport { autobind } from \"./autobind\";\nimport { DocumentGenerator } from \"./ContractGenerator\";\nimport \"./firebird-compat\";\n\nexport * from \"./Orm\";\nexport * from \"./Utilities\";\nexport * from \"./Logger\";\nexport * from \"./autobind\";\nexport * from \"./ExecutionTimeLogger\";\nexport * from \"./RoutesLoggerMiddleware\";\nexport * from \"./ContractGenerator\";\nexport * from \"./DatabaseUpdater\";\nexport * from \"./firebird-compat\";\n\nexport * from \"./accessi-module\";\nexport * from \"./allegati-module\";\nexport * from \"node-firebird\";\nexport { autobind, ExecutionTimeLogger, Logger, LogLevels, Orm, DateUtilities, RestUtilities, DatabaseUtilities, DatabaseUpdater, StatusCode, DocumentGenerator, Firebird };\n// Unified module exports\nexport * from \"./swagger/SwaggerConfig\";\nexport * from \"./initEmilsoftwareModule\";\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,uDAAoD;AAuB6D,gGAvBxG,iCAAe,OAuBwG;AAtBhI,+DAA2D;AAsBxC,oGAtBV,yCAAmB,OAsBU;AArBtC,wDAA0C;AAqBuH,4BAAQ;AApBzK,qCAA6C;AAoBG,0FApBvC,kBAAS,OAoBuC;AAAjB,uFApBpB,eAAM,OAoBoB;AAnB9C,+BAA4B;AAmB+B,oFAnBlD,SAAG,OAmBkD;AAlB9D,2CAA0F;AAkB1B,8FAlBvD,yBAAa,OAkBuD;AAAE,8FAlBvD,yBAAa,OAkBuD;AAAE,kGAlBvD,6BAAiB,OAkBuD;AAAmB,2FAlBxE,sBAAU,OAkBwE;AAjB5I,yCAAsC;AAiB7B,yFAjBA,mBAAQ,OAiBA;AAhBjB,2DAAwD;AAgBsF,kGAhBrI,qCAAiB,OAgBqI;AAf/J,6BAA2B;AAE3B,wCAAsB;AACtB,8CAA4B;AAC5B,2CAAyB;AACzB,6CAA2B;AAC3B,wDAAsC;AACtC,2DAAyC;AACzC,sDAAoC;AACpC,oDAAkC;AAClC,oDAAkC;AAElC,mDAAiC;AACjC,oDAAkC;AAClC,gDAA8B;AAE9B,yBAAyB;AACzB,0DAAwC;AACxC,2DAAyC","sourcesContent":["import { DatabaseUpdater } from \"./DatabaseUpdater\";\nimport { ExecutionTimeLogger } from \"./ExecutionTimeLogger\"\nimport * as Firebird from \"node-firebird\";\nimport { LogLevels, Logger } from \"./Logger\";\nimport { Orm } from \"./Orm\";\nimport { DateUtilities, RestUtilities, DatabaseUtilities, StatusCode } from \"./Utilities\";\nimport { autobind } from \"./autobind\";\nimport { DocumentGenerator } from \"./ContractGenerator\";\nimport \"./firebird-compat\";\n\r\nexport * from \"./Orm\";\r\nexport * from \"./Utilities\";\r\nexport * from \"./Logger\";\r\nexport * from \"./autobind\";\r\nexport * from \"./ExecutionTimeLogger\";\r\nexport * from \"./RoutesLoggerMiddleware\";\r\nexport * from \"./ContractGenerator\";\r\nexport * from \"./DatabaseUpdater\";\nexport * from \"./firebird-compat\";\n\nexport * from \"./accessi-module\";\nexport * from \"./allegati-module\";\nexport * from \"node-firebird\";\nexport { autobind, ExecutionTimeLogger, Logger, LogLevels, Orm, DateUtilities, RestUtilities, DatabaseUtilities, DatabaseUpdater, StatusCode, DocumentGenerator, Firebird };\n// Unified module exports\nexport * from \"./swagger/SwaggerConfig\";\nexport * from \"./initEmilsoftwareModule\";\n"]}
@@ -20,6 +20,8 @@ const SwaggerConfig_1 = require("./swagger/SwaggerConfig");
20
20
  const Logger_1 = require("./Logger");
21
21
  const EmilsoftwareModule_1 = require("./EmilsoftwareModule");
22
22
  const authenticateGen_1 = require("./accessi-module/middleware/authenticateGen");
23
+ const accessiValidation_1 = require("./accessi-module/security/accessiValidation");
24
+ const AccessiHttpExceptionFilter_1 = require("./accessi-module/security/AccessiHttpExceptionFilter");
23
25
  /**
24
26
  * Initializes the unified module that combines Accessi and Allegati functionality
25
27
  * @param app Express application instance
@@ -51,6 +53,11 @@ function initEmilsoftwareModule(app, options) {
51
53
  bufferLogs: true
52
54
  });
53
55
  nestApp.enableCors();
56
+ if (options === null || options === void 0 ? void 0 : options.accessiOptions) {
57
+ // Keep the Accessi API contract identical for standalone and unified bootstraps.
58
+ nestApp.useGlobalPipes((0, accessiValidation_1.createAccessiValidationPipe)());
59
+ nestApp.useGlobalFilters(new AccessiHttpExceptionFilter_1.AccessiHttpExceptionFilter());
60
+ }
54
61
  nestApp.setGlobalPrefix('api', {
55
62
  exclude: ['/swagger', '/swagger/(.*)']
56
63
  });
@@ -1 +1 @@
1
- {"version":3,"file":"initEmilsoftwareModule.js","sourceRoot":"","sources":["../src/initEmilsoftwareModule.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAkBA,wDAsDC;AAxED,sDAAwD;AACxD,uCAA2C;AAC3C,+DAA0D;AAC1D,2DAAuD;AACvD,qCAAkC;AAClC,6DAA+E;AAC/E,iFAKqD;AAErD;;;;GAIG;AACH,SAAsB,sBAAsB,CAAC,GAAgB,EAAE,OAA4B;;QACvF,MAAM,MAAM,GAAW,IAAI,eAAM,CAAC,sBAAsB,CAAC,IAAI,CAAC,CAAC;QAC/D,IAAI,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,cAAc,EAAE,CAAC;YAC1B,IAAA,gDAA8B,GAAE,CAAC;QACrC,CAAC;QAED,IAAI,CAAC;YACD,gFAAgF;YAChF,wEAAwE;YACxE,MAAM,WAAW,GAAG,IAAA,iBAAO,GAAE,CAAC;YAC9B,MAAM,WAAW,GAAG,CAAC,IAAY,EAAE,EAAE,CACjC,IAAI,KAAK,MAAM;gBACf,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC;gBACxB,IAAI,KAAK,UAAU;gBACnB,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC;gBAC5B,IAAI,KAAK,eAAe,CAAC;YAE7B,GAAG,CAAC,GAAG,CAAC,CAAC,GAAY,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE;gBAChC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;oBACzB,OAAO,IAAI,EAAE,CAAC;gBAClB,CAAC;gBACD,OAAO,WAAW,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;YACvC,CAAC,CAAC,CAAC;YAEH,MAAM,mBAAmB,GAAG,IAAI,iCAAc,CAAC,WAAW,CAAC,CAAC;YAC5D,MAAM,OAAO,GAAG,MAAM,kBAAW,CAAC,MAAM,CAAC,uCAAkB,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,mBAAmB,EAAE;gBAC/F,UAAU,EAAE,IAAI;aACnB,CAAC,CAAC;YAEH,OAAO,CAAC,UAAU,EAAE,CAAC;YAErB,OAAO,CAAC,eAAe,CAAC,KAAK,EAAE;gBAC3B,OAAO,EAAE,CAAC,UAAU,EAAE,eAAe,CAAC;aACzC,CAAC,CAAC;YAEH,sDAAsD;YACtD,IAAA,4BAAY,EAAC,OAAO,CAAC,CAAC;YAEtB,MAAM,OAAO,CAAC,IAAI,EAAE,CAAC;YACrB,IAAI,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,cAAc,EAAE,CAAC;gBAC1B,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,CAAC,wCAAsB,CAAC,CAAC;gBACxD,GAAG,CAAC,MAAM,CAAC,kBAAkB,GAAG,WAAW,CAAC;gBAC5C,IAAA,uCAAqB,EAAC,WAAW,CAAC,CAAC;YACvC,CAAC;YAED,MAAM,CAAC,IAAI,CAAC,8CAA8C,CAAC,CAAC;QAEhE,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,IAAI,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,cAAc,EAAE,CAAC;gBAC1B,IAAA,+CAA6B,EAAC,KAAK,CAAC,CAAC;YACzC,CAAC;YACD,MAAM,CAAC,KAAK,CAAC,yCAAyC,EAAE,KAAK,CAAC,CAAC;YAC/D,MAAM,KAAK,CAAC;QAChB,CAAC;IACL,CAAC;CAAA","sourcesContent":["import express, { Application, Request } from \"express\";\nimport { NestFactory } from \"@nestjs/core\";\nimport { ExpressAdapter } from \"@nestjs/platform-express\";\nimport { setupSwagger } from \"./swagger/SwaggerConfig\";\nimport { Logger } from \"./Logger\";\nimport { EmilsoftwareModule, EmilsoftwareOptions } from \"./EmilsoftwareModule\";\nimport {\n beginAccessiAuthInitialization,\n failAccessiAuthInitialization,\n AuthenticateGenService,\n setAccessiAuthService\n} from \"./accessi-module/middleware/authenticateGen\";\n\n/**\n * Initializes the unified module that combines Accessi and Allegati functionality\n * @param app Express application instance\n * @param options Configuration options for both modules\n */\nexport async function initEmilsoftwareModule(app: Application, options: EmilsoftwareOptions) {\n const logger: Logger = new Logger(initEmilsoftwareModule.name);\n if (options?.accessiOptions) {\n beginAccessiAuthInitialization();\n }\n\n try {\n // Isolate Nest on a dedicated Express instance and dispatch only module routes.\n // This keeps pre-existing routes/middlewares on the host app untouched.\n const nestHostApp = express();\n const isNestRoute = (path: string) =>\n path === \"/api\" ||\n path.startsWith(\"/api/\") ||\n path === \"/swagger\" ||\n path.startsWith(\"/swagger/\") ||\n path === \"/swagger-json\";\n\n app.use((req: Request, res, next) => {\n if (!isNestRoute(req.path)) {\n return next();\n }\n return nestHostApp(req, res, next);\n });\n\n const nestExpressInstance = new ExpressAdapter(nestHostApp);\n const nestApp = await NestFactory.create(EmilsoftwareModule.forRoot(options), nestExpressInstance, {\n bufferLogs: true\n });\n\n nestApp.enableCors();\n\n nestApp.setGlobalPrefix('api', {\n exclude: ['/swagger', '/swagger/(.*)']\n });\n\n // Setup unified Swagger documentation for all modules\n setupSwagger(nestApp);\n\n await nestApp.init();\n if (options?.accessiOptions) {\n const authService = nestApp.get(AuthenticateGenService);\n app.locals.accessiAuthService = authService;\n setAccessiAuthService(authService);\n }\n\n logger.info(\"Emilsoftware module initialized successfully\");\n\n } catch (error) {\n if (options?.accessiOptions) {\n failAccessiAuthInitialization(error);\n }\n logger.error(\"Error initializing Emilsoftware Module:\", error);\n throw error;\n }\n}\n"]}
1
+ {"version":3,"file":"initEmilsoftwareModule.js","sourceRoot":"","sources":["../src/initEmilsoftwareModule.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAoBA,wDA2DC;AA/ED,sDAAwD;AACxD,uCAA2C;AAC3C,+DAA0D;AAC1D,2DAAuD;AACvD,qCAAkC;AAClC,6DAA+E;AAC/E,iFAKqD;AACrD,mFAA0F;AAC1F,qGAAkG;AAElG;;;;GAIG;AACH,SAAsB,sBAAsB,CAAC,GAAgB,EAAE,OAA4B;;QACvF,MAAM,MAAM,GAAW,IAAI,eAAM,CAAC,sBAAsB,CAAC,IAAI,CAAC,CAAC;QAC/D,IAAI,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,cAAc,EAAE,CAAC;YAC1B,IAAA,gDAA8B,GAAE,CAAC;QACrC,CAAC;QAED,IAAI,CAAC;YACD,gFAAgF;YAChF,wEAAwE;YACxE,MAAM,WAAW,GAAG,IAAA,iBAAO,GAAE,CAAC;YAC9B,MAAM,WAAW,GAAG,CAAC,IAAY,EAAE,EAAE,CACjC,IAAI,KAAK,MAAM;gBACf,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC;gBACxB,IAAI,KAAK,UAAU;gBACnB,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC;gBAC5B,IAAI,KAAK,eAAe,CAAC;YAE7B,GAAG,CAAC,GAAG,CAAC,CAAC,GAAY,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE;gBAChC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;oBACzB,OAAO,IAAI,EAAE,CAAC;gBAClB,CAAC;gBACD,OAAO,WAAW,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;YACvC,CAAC,CAAC,CAAC;YAEH,MAAM,mBAAmB,GAAG,IAAI,iCAAc,CAAC,WAAW,CAAC,CAAC;YAC5D,MAAM,OAAO,GAAG,MAAM,kBAAW,CAAC,MAAM,CAAC,uCAAkB,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,mBAAmB,EAAE;gBAC/F,UAAU,EAAE,IAAI;aACnB,CAAC,CAAC;YAEH,OAAO,CAAC,UAAU,EAAE,CAAC;YACrB,IAAI,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,cAAc,EAAE,CAAC;gBAC1B,iFAAiF;gBACjF,OAAO,CAAC,cAAc,CAAC,IAAA,+CAA2B,GAAE,CAAC,CAAC;gBACtD,OAAO,CAAC,gBAAgB,CAAC,IAAI,uDAA0B,EAAE,CAAC,CAAC;YAC/D,CAAC;YAED,OAAO,CAAC,eAAe,CAAC,KAAK,EAAE;gBAC3B,OAAO,EAAE,CAAC,UAAU,EAAE,eAAe,CAAC;aACzC,CAAC,CAAC;YAEH,sDAAsD;YACtD,IAAA,4BAAY,EAAC,OAAO,CAAC,CAAC;YAEtB,MAAM,OAAO,CAAC,IAAI,EAAE,CAAC;YACrB,IAAI,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,cAAc,EAAE,CAAC;gBAC1B,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,CAAC,wCAAsB,CAAC,CAAC;gBACxD,GAAG,CAAC,MAAM,CAAC,kBAAkB,GAAG,WAAW,CAAC;gBAC5C,IAAA,uCAAqB,EAAC,WAAW,CAAC,CAAC;YACvC,CAAC;YAED,MAAM,CAAC,IAAI,CAAC,8CAA8C,CAAC,CAAC;QAEhE,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,IAAI,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,cAAc,EAAE,CAAC;gBAC1B,IAAA,+CAA6B,EAAC,KAAK,CAAC,CAAC;YACzC,CAAC;YACD,MAAM,CAAC,KAAK,CAAC,yCAAyC,EAAE,KAAK,CAAC,CAAC;YAC/D,MAAM,KAAK,CAAC;QAChB,CAAC;IACL,CAAC;CAAA","sourcesContent":["import express, { Application, Request } from \"express\";\r\nimport { NestFactory } from \"@nestjs/core\";\r\nimport { ExpressAdapter } from \"@nestjs/platform-express\";\r\nimport { setupSwagger } from \"./swagger/SwaggerConfig\";\r\nimport { Logger } from \"./Logger\";\r\nimport { EmilsoftwareModule, EmilsoftwareOptions } from \"./EmilsoftwareModule\";\r\nimport {\n beginAccessiAuthInitialization,\r\n failAccessiAuthInitialization,\r\n AuthenticateGenService,\r\n setAccessiAuthService\r\n} from \"./accessi-module/middleware/authenticateGen\";\nimport { createAccessiValidationPipe } from './accessi-module/security/accessiValidation';\nimport { AccessiHttpExceptionFilter } from './accessi-module/security/AccessiHttpExceptionFilter';\n\r\n/**\r\n * Initializes the unified module that combines Accessi and Allegati functionality\r\n * @param app Express application instance\r\n * @param options Configuration options for both modules\r\n */\r\nexport async function initEmilsoftwareModule(app: Application, options: EmilsoftwareOptions) {\r\n const logger: Logger = new Logger(initEmilsoftwareModule.name);\r\n if (options?.accessiOptions) {\r\n beginAccessiAuthInitialization();\r\n }\r\n\r\n try {\r\n // Isolate Nest on a dedicated Express instance and dispatch only module routes.\r\n // This keeps pre-existing routes/middlewares on the host app untouched.\r\n const nestHostApp = express();\r\n const isNestRoute = (path: string) =>\r\n path === \"/api\" ||\r\n path.startsWith(\"/api/\") ||\r\n path === \"/swagger\" ||\r\n path.startsWith(\"/swagger/\") ||\r\n path === \"/swagger-json\";\r\n\r\n app.use((req: Request, res, next) => {\r\n if (!isNestRoute(req.path)) {\r\n return next();\r\n }\r\n return nestHostApp(req, res, next);\r\n });\r\n\r\n const nestExpressInstance = new ExpressAdapter(nestHostApp);\r\n const nestApp = await NestFactory.create(EmilsoftwareModule.forRoot(options), nestExpressInstance, {\r\n bufferLogs: true\r\n });\r\n\r\n nestApp.enableCors();\n if (options?.accessiOptions) {\n // Keep the Accessi API contract identical for standalone and unified bootstraps.\n nestApp.useGlobalPipes(createAccessiValidationPipe());\n nestApp.useGlobalFilters(new AccessiHttpExceptionFilter());\n }\n\r\n nestApp.setGlobalPrefix('api', {\r\n exclude: ['/swagger', '/swagger/(.*)']\r\n });\r\n\r\n // Setup unified Swagger documentation for all modules\r\n setupSwagger(nestApp);\r\n\r\n await nestApp.init();\r\n if (options?.accessiOptions) {\r\n const authService = nestApp.get(AuthenticateGenService);\r\n app.locals.accessiAuthService = authService;\r\n setAccessiAuthService(authService);\r\n }\r\n\r\n logger.info(\"Emilsoftware module initialized successfully\");\r\n\r\n } catch (error) {\r\n if (options?.accessiOptions) {\r\n failAccessiAuthInitialization(error);\r\n }\r\n logger.error(\"Error initializing Emilsoftware Module:\", error);\r\n throw error;\r\n }\r\n}\r\n"]}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,57 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ var __importDefault = (this && this.__importDefault) || function (mod) {
12
+ return (mod && mod.__esModule) ? mod : { "default": mod };
13
+ };
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ const swagger_1 = require("@nestjs/swagger");
16
+ const core_1 = require("@nestjs/core");
17
+ const platform_express_1 = require("@nestjs/platform-express");
18
+ const express_1 = __importDefault(require("express"));
19
+ const promises_1 = require("fs/promises");
20
+ const path_1 = require("path");
21
+ const AccessiModule_1 = require("../accessi-module/AccessiModule");
22
+ /**
23
+ * Esporta il contratto OpenAPI dai decorator Nest senza avviare il database.
24
+ * Il file risultante e l'unica sorgente per il client Orval della console.
25
+ */
26
+ function generateAccessiOpenApi() {
27
+ return __awaiter(this, void 0, void 0, function* () {
28
+ const options = {
29
+ databaseOptions: { host: 'openapi-generation', database: 'not-used', user: 'not-used' },
30
+ confirmationEmailUrl: 'https://invalid.local',
31
+ confirmationEmailReturnUrl: 'https://invalid.local',
32
+ encryptionKey: 'openapi-generation-only',
33
+ mockDemoUser: false,
34
+ autoUpdateDatabase: false,
35
+ legacyPasswordMigrationOnStartup: false,
36
+ jwtOptions: { secret: 'openapi-generation-only', expiresIn: '1h' },
37
+ emailOptions: {
38
+ host: 'localhost', port: 25, secure: false, requireTLS: false,
39
+ tls: { rejectUnauthorized: true }, from: 'openapi@invalid.local', auth: { user: '', pass: '' },
40
+ },
41
+ federatedAuthentication: { enabled: false },
42
+ };
43
+ const app = yield core_1.NestFactory.create(AccessiModule_1.AccessiModule.forRoot(options), new platform_express_1.ExpressAdapter((0, express_1.default)()), { logger: false });
44
+ app.setGlobalPrefix('api');
45
+ // Decorator inspection requires no lifecycle hooks or database connection.
46
+ const document = swagger_1.SwaggerModule.createDocument(app, new swagger_1.DocumentBuilder().setTitle('Accessi API').setVersion('1.0').addBearerAuth().build());
47
+ const outputDirectory = (0, path_1.join)(process.cwd(), 'src', 'accessi-module', 'openapi');
48
+ yield (0, promises_1.mkdir)(outputDirectory, { recursive: true });
49
+ yield (0, promises_1.writeFile)((0, path_1.join)(outputDirectory, 'accessi.openapi.json'), `${JSON.stringify(document, null, 2)}\n`);
50
+ yield app.close();
51
+ });
52
+ }
53
+ generateAccessiOpenApi().catch((error) => {
54
+ console.error(error);
55
+ process.exitCode = 1;
56
+ });
57
+ //# sourceMappingURL=generateAccessiOpenApi.js.map