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.
- package/README.MD +182 -38
- package/dist/ContractGenerator.d.ts +4 -3
- package/dist/ContractGenerator.js +15 -5
- package/dist/ContractGenerator.js.map +1 -1
- package/dist/DailyFileTransport.d.ts +21 -0
- package/dist/DailyFileTransport.js +74 -0
- package/dist/DailyFileTransport.js.map +1 -0
- package/dist/DatabaseUpdater.js +32 -29
- package/dist/DatabaseUpdater.js.map +1 -1
- package/dist/EmilsoftwareModule.js.map +1 -1
- package/dist/ExecutionTimeLogger.d.ts +2 -2
- package/dist/ExecutionTimeLogger.js +5 -4
- package/dist/ExecutionTimeLogger.js.map +1 -1
- package/dist/Logger.d.ts +22 -11
- package/dist/Logger.js +132 -119
- package/dist/Logger.js.map +1 -1
- package/dist/Orm.d.ts +26 -6
- package/dist/Orm.js +144 -40
- package/dist/Orm.js.map +1 -1
- package/dist/RoutesLoggerMiddleware.js.map +1 -1
- package/dist/Utilities.d.ts +18 -8
- package/dist/Utilities.js +115 -35
- package/dist/Utilities.js.map +1 -1
- package/dist/accessi-module/AccessiModule.d.ts +69 -0
- package/dist/accessi-module/AccessiModule.js +29 -5
- package/dist/accessi-module/AccessiModule.js.map +1 -1
- package/dist/accessi-module/Console/accessiFetch.d.ts +7 -0
- package/dist/accessi-module/Console/accessiFetch.js +59 -0
- package/dist/accessi-module/Console/accessiFetch.js.map +1 -0
- package/dist/accessi-module/Console/console.css +618 -0
- package/dist/accessi-module/Console/console.d.ts +1 -0
- package/dist/accessi-module/Console/console.js +3101 -0
- package/dist/accessi-module/Console/console.js.map +1 -0
- package/dist/accessi-module/Console/generated/accessiApi.d.ts +542 -0
- package/dist/accessi-module/Console/generated/accessiApi.js +517 -0
- package/dist/accessi-module/Console/generated/accessiApi.js.map +1 -0
- package/dist/accessi-module/Console/generated/model/abilitazioneMenu.d.ts +39 -0
- package/dist/accessi-module/Console/generated/model/abilitazioneMenu.js +3 -0
- package/dist/accessi-module/Console/generated/model/abilitazioneMenu.js.map +1 -0
- package/dist/accessi-module/Console/generated/model/abilitazioneMenuIcona.d.ts +12 -0
- package/dist/accessi-module/Console/generated/model/abilitazioneMenuIcona.js +9 -0
- package/dist/accessi-module/Console/generated/model/abilitazioneMenuIcona.js.map +1 -0
- package/dist/accessi-module/Console/generated/model/abilitazioneMenuNote.d.ts +12 -0
- package/dist/accessi-module/Console/generated/model/abilitazioneMenuNote.js +9 -0
- package/dist/accessi-module/Console/generated/model/abilitazioneMenuNote.js.map +1 -0
- package/dist/accessi-module/Console/generated/model/abilitazioneMenuPagina.d.ts +12 -0
- package/dist/accessi-module/Console/generated/model/abilitazioneMenuPagina.js +9 -0
- package/dist/accessi-module/Console/generated/model/abilitazioneMenuPagina.js.map +1 -0
- package/dist/accessi-module/Console/generated/model/abilitazioneMenuTipo.d.ts +12 -0
- package/dist/accessi-module/Console/generated/model/abilitazioneMenuTipo.js +9 -0
- package/dist/accessi-module/Console/generated/model/abilitazioneMenuTipo.js.map +1 -0
- package/dist/accessi-module/Console/generated/model/abilitazioneMenuTipoAbilitazione.d.ts +16 -0
- package/dist/accessi-module/Console/generated/model/abilitazioneMenuTipoAbilitazione.js +17 -0
- package/dist/accessi-module/Console/generated/model/abilitazioneMenuTipoAbilitazione.js.map +1 -0
- package/dist/accessi-module/Console/generated/model/actionResponse.d.ts +12 -0
- package/dist/accessi-module/Console/generated/model/actionResponse.js +9 -0
- package/dist/accessi-module/Console/generated/model/actionResponse.js.map +1 -0
- package/dist/accessi-module/Console/generated/model/assignPermissionsToUserRequest.d.ts +11 -0
- package/dist/accessi-module/Console/generated/model/assignPermissionsToUserRequest.js +3 -0
- package/dist/accessi-module/Console/generated/model/assignPermissionsToUserRequest.js.map +1 -0
- package/dist/accessi-module/Console/generated/model/assignRolesToUserRequest.d.ts +10 -0
- package/dist/accessi-module/Console/generated/model/assignRolesToUserRequest.js +9 -0
- package/dist/accessi-module/Console/generated/model/assignRolesToUserRequest.js.map +1 -0
- package/dist/accessi-module/Console/generated/model/authenticatedTokenPayloadDto.d.ts +10 -0
- package/dist/accessi-module/Console/generated/model/authenticatedTokenPayloadDto.js +3 -0
- package/dist/accessi-module/Console/generated/model/authenticatedTokenPayloadDto.js.map +1 -0
- package/dist/accessi-module/Console/generated/model/authenticatedUserPayloadDto.d.ts +19 -0
- package/dist/accessi-module/Console/generated/model/authenticatedUserPayloadDto.js +9 -0
- package/dist/accessi-module/Console/generated/model/authenticatedUserPayloadDto.js.map +1 -0
- package/dist/accessi-module/Console/generated/model/confirmResetPasswordRequest.d.ts +14 -0
- package/dist/accessi-module/Console/generated/model/confirmResetPasswordRequest.js +9 -0
- package/dist/accessi-module/Console/generated/model/confirmResetPasswordRequest.js.map +1 -0
- package/dist/accessi-module/Console/generated/model/createFederatedIdentityRequest.d.ts +13 -0
- package/dist/accessi-module/Console/generated/model/createFederatedIdentityRequest.js +9 -0
- package/dist/accessi-module/Console/generated/model/createFederatedIdentityRequest.js.map +1 -0
- package/dist/accessi-module/Console/generated/model/createFederatedProviderRequest.d.ts +13 -0
- package/dist/accessi-module/Console/generated/model/createFederatedProviderRequest.js +9 -0
- package/dist/accessi-module/Console/generated/model/createFederatedProviderRequest.js.map +1 -0
- package/dist/accessi-module/Console/generated/model/createFederatedUserRequest.d.ts +18 -0
- package/dist/accessi-module/Console/generated/model/createFederatedUserRequest.js +3 -0
- package/dist/accessi-module/Console/generated/model/createFederatedUserRequest.js.map +1 -0
- package/dist/accessi-module/Console/generated/model/createFilterTypeRequest.d.ts +23 -0
- package/dist/accessi-module/Console/generated/model/createFilterTypeRequest.js +3 -0
- package/dist/accessi-module/Console/generated/model/createFilterTypeRequest.js.map +1 -0
- package/dist/accessi-module/Console/generated/model/createFilterTypeRequestFlgEnabled.d.ts +14 -0
- package/dist/accessi-module/Console/generated/model/createFilterTypeRequestFlgEnabled.js +15 -0
- package/dist/accessi-module/Console/generated/model/createFilterTypeRequestFlgEnabled.js.map +1 -0
- package/dist/accessi-module/Console/generated/model/createMenuGroupRequest.d.ts +27 -0
- package/dist/accessi-module/Console/generated/model/createMenuGroupRequest.js +9 -0
- package/dist/accessi-module/Console/generated/model/createMenuGroupRequest.js.map +1 -0
- package/dist/accessi-module/Console/generated/model/createMenuRequest.d.ts +52 -0
- package/dist/accessi-module/Console/generated/model/createMenuRequest.js +9 -0
- package/dist/accessi-module/Console/generated/model/createMenuRequest.js.map +1 -0
- package/dist/accessi-module/Console/generated/model/createMenuTypeRequest.d.ts +18 -0
- package/dist/accessi-module/Console/generated/model/createMenuTypeRequest.js +9 -0
- package/dist/accessi-module/Console/generated/model/createMenuTypeRequest.js.map +1 -0
- package/dist/accessi-module/Console/generated/model/createServiceTokenRequest.d.ts +16 -0
- package/dist/accessi-module/Console/generated/model/createServiceTokenRequest.js +9 -0
- package/dist/accessi-module/Console/generated/model/createServiceTokenRequest.js.map +1 -0
- package/dist/accessi-module/Console/generated/model/createServiceTokenResponse.d.ts +14 -0
- package/dist/accessi-module/Console/generated/model/createServiceTokenResponse.js +3 -0
- package/dist/accessi-module/Console/generated/model/createServiceTokenResponse.js.map +1 -0
- package/dist/accessi-module/Console/generated/model/errorResponse.d.ts +18 -0
- package/dist/accessi-module/Console/generated/model/errorResponse.js +9 -0
- package/dist/accessi-module/Console/generated/model/errorResponse.js.map +1 -0
- package/dist/accessi-module/Console/generated/model/federatedIdentityListResponse.d.ts +14 -0
- package/dist/accessi-module/Console/generated/model/federatedIdentityListResponse.js +3 -0
- package/dist/accessi-module/Console/generated/model/federatedIdentityListResponse.js.map +1 -0
- package/dist/accessi-module/Console/generated/model/federatedIdentityResponse.d.ts +14 -0
- package/dist/accessi-module/Console/generated/model/federatedIdentityResponse.js +3 -0
- package/dist/accessi-module/Console/generated/model/federatedIdentityResponse.js.map +1 -0
- package/dist/accessi-module/Console/generated/model/federatedIdentityResponseDto.d.ts +23 -0
- package/dist/accessi-module/Console/generated/model/federatedIdentityResponseDto.js +9 -0
- package/dist/accessi-module/Console/generated/model/federatedIdentityResponseDto.js.map +1 -0
- package/dist/accessi-module/Console/generated/model/federatedProviderListResponse.d.ts +14 -0
- package/dist/accessi-module/Console/generated/model/federatedProviderListResponse.js +3 -0
- package/dist/accessi-module/Console/generated/model/federatedProviderListResponse.js.map +1 -0
- package/dist/accessi-module/Console/generated/model/federatedProviderResponse.d.ts +14 -0
- package/dist/accessi-module/Console/generated/model/federatedProviderResponse.js +3 -0
- package/dist/accessi-module/Console/generated/model/federatedProviderResponse.js.map +1 -0
- package/dist/accessi-module/Console/generated/model/federatedProviderResponseDto.d.ts +13 -0
- package/dist/accessi-module/Console/generated/model/federatedProviderResponseDto.js +9 -0
- package/dist/accessi-module/Console/generated/model/federatedProviderResponseDto.js.map +1 -0
- package/dist/accessi-module/Console/generated/model/filtriUtente.d.ts +32 -0
- package/dist/accessi-module/Console/generated/model/filtriUtente.js +9 -0
- package/dist/accessi-module/Console/generated/model/filtriUtente.js.map +1 -0
- package/dist/accessi-module/Console/generated/model/getFiltriResponse.d.ts +14 -0
- package/dist/accessi-module/Console/generated/model/getFiltriResponse.js +3 -0
- package/dist/accessi-module/Console/generated/model/getFiltriResponse.js.map +1 -0
- package/dist/accessi-module/Console/generated/model/getFiltriUtenteParams.d.ts +12 -0
- package/dist/accessi-module/Console/generated/model/getFiltriUtenteParams.js +9 -0
- package/dist/accessi-module/Console/generated/model/getFiltriUtenteParams.js.map +1 -0
- package/dist/accessi-module/Console/generated/model/getFiltriUtenteResponse.d.ts +14 -0
- package/dist/accessi-module/Console/generated/model/getFiltriUtenteResponse.js +3 -0
- package/dist/accessi-module/Console/generated/model/getFiltriUtenteResponse.js.map +1 -0
- package/dist/accessi-module/Console/generated/model/getGroupsWithMenusParams.d.ts +12 -0
- package/dist/accessi-module/Console/generated/model/getGroupsWithMenusParams.js +9 -0
- package/dist/accessi-module/Console/generated/model/getGroupsWithMenusParams.js.map +1 -0
- package/dist/accessi-module/Console/generated/model/getGroupsWithMenusResponse.d.ts +14 -0
- package/dist/accessi-module/Console/generated/model/getGroupsWithMenusResponse.js +3 -0
- package/dist/accessi-module/Console/generated/model/getGroupsWithMenusResponse.js.map +1 -0
- package/dist/accessi-module/Console/generated/model/getMenuTypesResponse.d.ts +14 -0
- package/dist/accessi-module/Console/generated/model/getMenuTypesResponse.js +3 -0
- package/dist/accessi-module/Console/generated/model/getMenuTypesResponse.js.map +1 -0
- package/dist/accessi-module/Console/generated/model/getMenusResponse.d.ts +14 -0
- package/dist/accessi-module/Console/generated/model/getMenusResponse.js +3 -0
- package/dist/accessi-module/Console/generated/model/getMenusResponse.js.map +1 -0
- package/dist/accessi-module/Console/generated/model/getRolesResponse.d.ts +14 -0
- package/dist/accessi-module/Console/generated/model/getRolesResponse.js +3 -0
- package/dist/accessi-module/Console/generated/model/getRolesResponse.js.map +1 -0
- package/dist/accessi-module/Console/generated/model/getServiceTokensParams.d.ts +12 -0
- package/dist/accessi-module/Console/generated/model/getServiceTokensParams.js +9 -0
- package/dist/accessi-module/Console/generated/model/getServiceTokensParams.js.map +1 -0
- package/dist/accessi-module/Console/generated/model/getServiceTokensResponse.d.ts +14 -0
- package/dist/accessi-module/Console/generated/model/getServiceTokensResponse.js +3 -0
- package/dist/accessi-module/Console/generated/model/getServiceTokensResponse.js.map +1 -0
- package/dist/accessi-module/Console/generated/model/getUserByTokenRequest.d.ts +10 -0
- package/dist/accessi-module/Console/generated/model/getUserByTokenRequest.js +9 -0
- package/dist/accessi-module/Console/generated/model/getUserByTokenRequest.js.map +1 -0
- package/dist/accessi-module/Console/generated/model/getUserByTokenResponse.d.ts +14 -0
- package/dist/accessi-module/Console/generated/model/getUserByTokenResponse.js +3 -0
- package/dist/accessi-module/Console/generated/model/getUserByTokenResponse.js.map +1 -0
- package/dist/accessi-module/Console/generated/model/getUsersParams.d.ts +32 -0
- package/dist/accessi-module/Console/generated/model/getUsersParams.js +9 -0
- package/dist/accessi-module/Console/generated/model/getUsersParams.js.map +1 -0
- package/dist/accessi-module/Console/generated/model/getUsersResponse.d.ts +14 -0
- package/dist/accessi-module/Console/generated/model/getUsersResponse.js +3 -0
- package/dist/accessi-module/Console/generated/model/getUsersResponse.js.map +1 -0
- package/dist/accessi-module/Console/generated/model/getUsersResult.d.ts +17 -0
- package/dist/accessi-module/Console/generated/model/getUsersResult.js +3 -0
- package/dist/accessi-module/Console/generated/model/getUsersResult.js.map +1 -0
- package/dist/accessi-module/Console/generated/model/getUsersResultExtensionFields.d.ts +12 -0
- package/dist/accessi-module/Console/generated/model/getUsersResultExtensionFields.js +9 -0
- package/dist/accessi-module/Console/generated/model/getUsersResultExtensionFields.js.map +1 -0
- package/dist/accessi-module/Console/generated/model/groupWithMenusEntity.d.ts +19 -0
- package/dist/accessi-module/Console/generated/model/groupWithMenusEntity.js +3 -0
- package/dist/accessi-module/Console/generated/model/groupWithMenusEntity.js.map +1 -0
- package/dist/accessi-module/Console/generated/model/index.d.ts +93 -0
- package/dist/accessi-module/Console/generated/model/index.js +110 -0
- package/dist/accessi-module/Console/generated/model/index.js.map +1 -0
- package/dist/accessi-module/Console/generated/model/issuedServiceTokenDto.d.ts +30 -0
- package/dist/accessi-module/Console/generated/model/issuedServiceTokenDto.js +9 -0
- package/dist/accessi-module/Console/generated/model/issuedServiceTokenDto.js.map +1 -0
- package/dist/accessi-module/Console/generated/model/loginRequest.d.ts +12 -0
- package/dist/accessi-module/Console/generated/model/loginRequest.js +9 -0
- package/dist/accessi-module/Console/generated/model/loginRequest.js.map +1 -0
- package/dist/accessi-module/Console/generated/model/loginResponse.d.ts +14 -0
- package/dist/accessi-module/Console/generated/model/loginResponse.js +3 -0
- package/dist/accessi-module/Console/generated/model/loginResponse.js.map +1 -0
- package/dist/accessi-module/Console/generated/model/loginResult.d.ts +32 -0
- package/dist/accessi-module/Console/generated/model/loginResult.js +3 -0
- package/dist/accessi-module/Console/generated/model/loginResult.js.map +1 -0
- package/dist/accessi-module/Console/generated/model/loginResultExtensionFields.d.ts +12 -0
- package/dist/accessi-module/Console/generated/model/loginResultExtensionFields.js +9 -0
- package/dist/accessi-module/Console/generated/model/loginResultExtensionFields.js.map +1 -0
- package/dist/accessi-module/Console/generated/model/loginResultPasswordRequired.d.ts +13 -0
- package/dist/accessi-module/Console/generated/model/loginResultPasswordRequired.js +14 -0
- package/dist/accessi-module/Console/generated/model/loginResultPasswordRequired.js.map +1 -0
- package/dist/accessi-module/Console/generated/model/menuEntity.d.ts +32 -0
- package/dist/accessi-module/Console/generated/model/menuEntity.js +9 -0
- package/dist/accessi-module/Console/generated/model/menuEntity.js.map +1 -0
- package/dist/accessi-module/Console/generated/model/menuTypeEntity.d.ts +12 -0
- package/dist/accessi-module/Console/generated/model/menuTypeEntity.js +9 -0
- package/dist/accessi-module/Console/generated/model/menuTypeEntity.js.map +1 -0
- package/dist/accessi-module/Console/generated/model/passwordExpiredResponse.d.ts +12 -0
- package/dist/accessi-module/Console/generated/model/passwordExpiredResponse.js +9 -0
- package/dist/accessi-module/Console/generated/model/passwordExpiredResponse.js.map +1 -0
- package/dist/accessi-module/Console/generated/model/permission.d.ts +12 -0
- package/dist/accessi-module/Console/generated/model/permission.js +9 -0
- package/dist/accessi-module/Console/generated/model/permission.js.map +1 -0
- package/dist/accessi-module/Console/generated/model/publicRegisterRequest.d.ts +51 -0
- package/dist/accessi-module/Console/generated/model/publicRegisterRequest.js +9 -0
- package/dist/accessi-module/Console/generated/model/publicRegisterRequest.js.map +1 -0
- package/dist/accessi-module/Console/generated/model/publicRegisterRequestCellulare.d.ts +13 -0
- package/dist/accessi-module/Console/generated/model/publicRegisterRequestCellulare.js +9 -0
- package/dist/accessi-module/Console/generated/model/publicRegisterRequestCellulare.js.map +1 -0
- package/dist/accessi-module/Console/generated/model/registerRequest.d.ts +62 -0
- package/dist/accessi-module/Console/generated/model/registerRequest.js +3 -0
- package/dist/accessi-module/Console/generated/model/registerRequest.js.map +1 -0
- package/dist/accessi-module/Console/generated/model/registerRequestCellulare.d.ts +13 -0
- package/dist/accessi-module/Console/generated/model/registerRequestCellulare.js +9 -0
- package/dist/accessi-module/Console/generated/model/registerRequestCellulare.js.map +1 -0
- package/dist/accessi-module/Console/generated/model/registerResponse.d.ts +14 -0
- package/dist/accessi-module/Console/generated/model/registerResponse.js +3 -0
- package/dist/accessi-module/Console/generated/model/registerResponse.js.map +1 -0
- package/dist/accessi-module/Console/generated/model/resendTwoFactorRequest.d.ts +13 -0
- package/dist/accessi-module/Console/generated/model/resendTwoFactorRequest.js +9 -0
- package/dist/accessi-module/Console/generated/model/resendTwoFactorRequest.js.map +1 -0
- package/dist/accessi-module/Console/generated/model/role.d.ts +15 -0
- package/dist/accessi-module/Console/generated/model/role.js +3 -0
- package/dist/accessi-module/Console/generated/model/role.js.map +1 -0
- package/dist/accessi-module/Console/generated/model/ruoliMenu.d.ts +15 -0
- package/dist/accessi-module/Console/generated/model/ruoliMenu.js +3 -0
- package/dist/accessi-module/Console/generated/model/ruoliMenu.js.map +1 -0
- package/dist/accessi-module/Console/generated/model/ruoliMenuTipoAbilitazione.d.ts +16 -0
- package/dist/accessi-module/Console/generated/model/ruoliMenuTipoAbilitazione.js +17 -0
- package/dist/accessi-module/Console/generated/model/ruoliMenuTipoAbilitazione.js.map +1 -0
- package/dist/accessi-module/Console/generated/model/sendResetPasswordEmailRequest.d.ts +12 -0
- package/dist/accessi-module/Console/generated/model/sendResetPasswordEmailRequest.js +9 -0
- package/dist/accessi-module/Console/generated/model/sendResetPasswordEmailRequest.js.map +1 -0
- package/dist/accessi-module/Console/generated/model/serveResetPasswordPageParams.d.ts +12 -0
- package/dist/accessi-module/Console/generated/model/serveResetPasswordPageParams.js +9 -0
- package/dist/accessi-module/Console/generated/model/serveResetPasswordPageParams.js.map +1 -0
- package/dist/accessi-module/Console/generated/model/serviceTokenDto.d.ts +28 -0
- package/dist/accessi-module/Console/generated/model/serviceTokenDto.js +9 -0
- package/dist/accessi-module/Console/generated/model/serviceTokenDto.js.map +1 -0
- package/dist/accessi-module/Console/generated/model/setPasswordLoginPolicyRequest.d.ts +10 -0
- package/dist/accessi-module/Console/generated/model/setPasswordLoginPolicyRequest.js +9 -0
- package/dist/accessi-module/Console/generated/model/setPasswordLoginPolicyRequest.js.map +1 -0
- package/dist/accessi-module/Console/generated/model/setStatoRegistrazioneDto.d.ts +13 -0
- package/dist/accessi-module/Console/generated/model/setStatoRegistrazioneDto.js +3 -0
- package/dist/accessi-module/Console/generated/model/setStatoRegistrazioneDto.js.map +1 -0
- package/dist/accessi-module/Console/generated/model/setStatoRegistrazioneDtoStatoRegistrazione.d.ts +18 -0
- package/dist/accessi-module/Console/generated/model/setStatoRegistrazioneDtoStatoRegistrazione.js +19 -0
- package/dist/accessi-module/Console/generated/model/setStatoRegistrazioneDtoStatoRegistrazione.js.map +1 -0
- package/dist/accessi-module/Console/generated/model/status.d.ts +12 -0
- package/dist/accessi-module/Console/generated/model/status.js +9 -0
- package/dist/accessi-module/Console/generated/model/status.js.map +1 -0
- package/dist/accessi-module/Console/generated/model/tipoFiltro.d.ts +23 -0
- package/dist/accessi-module/Console/generated/model/tipoFiltro.js +3 -0
- package/dist/accessi-module/Console/generated/model/tipoFiltro.js.map +1 -0
- package/dist/accessi-module/Console/generated/model/tipoFiltroFlgEnabled.d.ts +14 -0
- package/dist/accessi-module/Console/generated/model/tipoFiltroFlgEnabled.js +15 -0
- package/dist/accessi-module/Console/generated/model/tipoFiltroFlgEnabled.js.map +1 -0
- package/dist/accessi-module/Console/generated/model/tokenResult.d.ts +15 -0
- package/dist/accessi-module/Console/generated/model/tokenResult.js +3 -0
- package/dist/accessi-module/Console/generated/model/tokenResult.js.map +1 -0
- package/dist/accessi-module/Console/generated/model/tokenResultType.d.ts +14 -0
- package/dist/accessi-module/Console/generated/model/tokenResultType.js +15 -0
- package/dist/accessi-module/Console/generated/model/tokenResultType.js.map +1 -0
- package/dist/accessi-module/Console/generated/model/twoFactorChallengeDto.d.ts +18 -0
- package/dist/accessi-module/Console/generated/model/twoFactorChallengeDto.js +3 -0
- package/dist/accessi-module/Console/generated/model/twoFactorChallengeDto.js.map +1 -0
- package/dist/accessi-module/Console/generated/model/twoFactorChallengeDtoMethod.d.ts +10 -0
- package/dist/accessi-module/Console/generated/model/twoFactorChallengeDtoMethod.js +14 -0
- package/dist/accessi-module/Console/generated/model/twoFactorChallengeDtoMethod.js.map +1 -0
- package/dist/accessi-module/Console/generated/model/twoFactorChallengeDtoTwoFactorRequired.d.ts +13 -0
- package/dist/accessi-module/Console/generated/model/twoFactorChallengeDtoTwoFactorRequired.js +14 -0
- package/dist/accessi-module/Console/generated/model/twoFactorChallengeDtoTwoFactorRequired.js.map +1 -0
- package/dist/accessi-module/Console/generated/model/updateEnabledStatusRequest.d.ts +10 -0
- package/dist/accessi-module/Console/generated/model/updateEnabledStatusRequest.js +9 -0
- package/dist/accessi-module/Console/generated/model/updateEnabledStatusRequest.js.map +1 -0
- package/dist/accessi-module/Console/generated/model/updateFederatedIdentityRequest.d.ts +11 -0
- package/dist/accessi-module/Console/generated/model/updateFederatedIdentityRequest.js +9 -0
- package/dist/accessi-module/Console/generated/model/updateFederatedIdentityRequest.js.map +1 -0
- package/dist/accessi-module/Console/generated/model/updateFederatedProviderRequest.d.ts +12 -0
- package/dist/accessi-module/Console/generated/model/updateFederatedProviderRequest.js +9 -0
- package/dist/accessi-module/Console/generated/model/updateFederatedProviderRequest.js.map +1 -0
- package/dist/accessi-module/Console/generated/model/updateFilterTypeRequest.d.ts +21 -0
- package/dist/accessi-module/Console/generated/model/updateFilterTypeRequest.js +3 -0
- package/dist/accessi-module/Console/generated/model/updateFilterTypeRequest.js.map +1 -0
- package/dist/accessi-module/Console/generated/model/updateFilterTypeRequestFlgEnabled.d.ts +14 -0
- package/dist/accessi-module/Console/generated/model/updateFilterTypeRequestFlgEnabled.js +15 -0
- package/dist/accessi-module/Console/generated/model/updateFilterTypeRequestFlgEnabled.js.map +1 -0
- package/dist/accessi-module/Console/generated/model/updateMenuGroupRequest.d.ts +22 -0
- package/dist/accessi-module/Console/generated/model/updateMenuGroupRequest.js +9 -0
- package/dist/accessi-module/Console/generated/model/updateMenuGroupRequest.js.map +1 -0
- package/dist/accessi-module/Console/generated/model/updateMenuRequest.d.ts +47 -0
- package/dist/accessi-module/Console/generated/model/updateMenuRequest.js +9 -0
- package/dist/accessi-module/Console/generated/model/updateMenuRequest.js.map +1 -0
- package/dist/accessi-module/Console/generated/model/updateMenuTypeRequest.d.ts +13 -0
- package/dist/accessi-module/Console/generated/model/updateMenuTypeRequest.js +9 -0
- package/dist/accessi-module/Console/generated/model/updateMenuTypeRequest.js.map +1 -0
- package/dist/accessi-module/Console/generated/model/userDto.d.ts +88 -0
- package/dist/accessi-module/Console/generated/model/userDto.js +3 -0
- package/dist/accessi-module/Console/generated/model/userDto.js.map +1 -0
- package/dist/accessi-module/Console/generated/model/userDtoAvatar.d.ts +13 -0
- package/dist/accessi-module/Console/generated/model/userDtoAvatar.js +9 -0
- package/dist/accessi-module/Console/generated/model/userDtoAvatar.js.map +1 -0
- package/dist/accessi-module/Console/generated/model/userDtoCellulare.d.ts +13 -0
- package/dist/accessi-module/Console/generated/model/userDtoCellulare.js +9 -0
- package/dist/accessi-module/Console/generated/model/userDtoCellulare.js.map +1 -0
- package/dist/accessi-module/Console/generated/model/userDtoStatoRegistrazione.d.ts +18 -0
- package/dist/accessi-module/Console/generated/model/userDtoStatoRegistrazione.js +19 -0
- package/dist/accessi-module/Console/generated/model/userDtoStatoRegistrazione.js.map +1 -0
- package/dist/accessi-module/Console/generated/model/userGrantsDto.d.ts +16 -0
- package/dist/accessi-module/Console/generated/model/userGrantsDto.js +3 -0
- package/dist/accessi-module/Console/generated/model/userGrantsDto.js.map +1 -0
- package/dist/accessi-module/Console/generated/model/userGrantsResponse.d.ts +14 -0
- package/dist/accessi-module/Console/generated/model/userGrantsResponse.js +3 -0
- package/dist/accessi-module/Console/generated/model/userGrantsResponse.js.map +1 -0
- package/dist/accessi-module/Console/generated/model/verifyTwoFactorRequest.d.ts +18 -0
- package/dist/accessi-module/Console/generated/model/verifyTwoFactorRequest.js +9 -0
- package/dist/accessi-module/Console/generated/model/verifyTwoFactorRequest.js.map +1 -0
- package/dist/accessi-module/Console/help.d.ts +13 -0
- package/dist/accessi-module/Console/help.js +348 -0
- package/dist/accessi-module/Console/help.js.map +1 -0
- package/dist/accessi-module/Console/index.html +127 -0
- package/dist/accessi-module/Console/openApiClient.d.ts +34 -0
- package/dist/accessi-module/Console/openApiClient.js +111 -0
- package/dist/accessi-module/Console/openApiClient.js.map +1 -0
- package/dist/accessi-module/Console/wiki.d.ts +52 -0
- package/dist/accessi-module/Console/wiki.js +689 -0
- package/dist/accessi-module/Console/wiki.js.map +1 -0
- package/dist/accessi-module/Controllers/AccessiConsoleController.d.ts +18 -0
- package/dist/accessi-module/Controllers/AccessiConsoleController.js +111 -0
- package/dist/accessi-module/Controllers/AccessiConsoleController.js.map +1 -0
- package/dist/accessi-module/Controllers/AuthController.d.ts +4 -1
- package/dist/accessi-module/Controllers/AuthController.js +86 -47
- package/dist/accessi-module/Controllers/AuthController.js.map +1 -1
- package/dist/accessi-module/Controllers/ConfiguratorController.d.ts +1 -3
- package/dist/accessi-module/Controllers/ConfiguratorController.js +9 -9
- package/dist/accessi-module/Controllers/ConfiguratorController.js.map +1 -1
- package/dist/accessi-module/Controllers/EmailController.d.ts +2 -2
- package/dist/accessi-module/Controllers/EmailController.js +4 -2
- package/dist/accessi-module/Controllers/EmailController.js.map +1 -1
- package/dist/accessi-module/Controllers/FiltriController.d.ts +5 -4
- package/dist/accessi-module/Controllers/FiltriController.js +95 -5
- package/dist/accessi-module/Controllers/FiltriController.js.map +1 -1
- package/dist/accessi-module/Controllers/PermissionController.d.ts +12 -1
- package/dist/accessi-module/Controllers/PermissionController.js +282 -13
- package/dist/accessi-module/Controllers/PermissionController.js.map +1 -1
- package/dist/accessi-module/Controllers/ServiceTokenController.d.ts +23 -0
- package/dist/accessi-module/Controllers/ServiceTokenController.js +176 -0
- package/dist/accessi-module/Controllers/ServiceTokenController.js.map +1 -0
- package/dist/accessi-module/Controllers/UserController.d.ts +5 -3
- package/dist/accessi-module/Controllers/UserController.js +65 -11
- package/dist/accessi-module/Controllers/UserController.js.map +1 -1
- package/dist/accessi-module/Dtos/Abilitazione.js.map +1 -1
- package/dist/accessi-module/Dtos/AbilitazioneMenu.js +16 -8
- package/dist/accessi-module/Dtos/AbilitazioneMenu.js.map +1 -1
- package/dist/accessi-module/Dtos/AssignPermissionsToUserRequest.js.map +1 -1
- package/dist/accessi-module/Dtos/AssignRolesToUserRequest.js +1 -1
- package/dist/accessi-module/Dtos/AssignRolesToUserRequest.js.map +1 -1
- package/dist/accessi-module/Dtos/AuthenticatedUserPayloadDto.d.ts +3 -0
- package/dist/accessi-module/Dtos/AuthenticatedUserPayloadDto.js +18 -0
- package/dist/accessi-module/Dtos/AuthenticatedUserPayloadDto.js.map +1 -1
- package/dist/accessi-module/Dtos/BaseResponse.d.ts +2 -0
- package/dist/accessi-module/Dtos/BaseResponse.js +21 -2
- package/dist/accessi-module/Dtos/BaseResponse.js.map +1 -1
- package/dist/accessi-module/Dtos/CatalogDtos.d.ts +66 -0
- package/dist/accessi-module/Dtos/CatalogDtos.js +336 -0
- package/dist/accessi-module/Dtos/CatalogDtos.js.map +1 -0
- package/dist/accessi-module/Dtos/ConfirmResetPasswordRequest.js.map +1 -1
- package/dist/accessi-module/Dtos/FederatedIdentityDtos.d.ts +69 -0
- package/dist/accessi-module/Dtos/FederatedIdentityDtos.js +236 -0
- package/dist/accessi-module/Dtos/FederatedIdentityDtos.js.map +1 -0
- package/dist/accessi-module/Dtos/FiltriUtente.js +4 -1
- package/dist/accessi-module/Dtos/FiltriUtente.js.map +1 -1
- package/dist/accessi-module/Dtos/GetGroupsWithMenusResponse.js.map +1 -1
- package/dist/accessi-module/Dtos/GetMenusResponse.js +1 -1
- package/dist/accessi-module/Dtos/GetMenusResponse.js.map +1 -1
- package/dist/accessi-module/Dtos/GetRolesResponse.js.map +1 -1
- package/dist/accessi-module/Dtos/GetUserByTokenRequest.js.map +1 -1
- package/dist/accessi-module/Dtos/GetUserByTokenResponse.js.map +1 -1
- package/dist/accessi-module/Dtos/GetUsersResponse.d.ts +1 -1
- package/dist/accessi-module/Dtos/GetUsersResponse.js.map +1 -1
- package/dist/accessi-module/Dtos/LoginRequest.d.ts +1 -1
- package/dist/accessi-module/Dtos/LoginRequest.js +3 -2
- package/dist/accessi-module/Dtos/LoginRequest.js.map +1 -1
- package/dist/accessi-module/Dtos/LoginResponse.d.ts +6 -2
- package/dist/accessi-module/Dtos/LoginResponse.js +20 -7
- package/dist/accessi-module/Dtos/LoginResponse.js.map +1 -1
- package/dist/accessi-module/Dtos/MenuItem.js +1 -0
- package/dist/accessi-module/Dtos/Permission.d.ts +1 -0
- package/dist/accessi-module/Dtos/Permission.js +1 -0
- package/dist/accessi-module/Dtos/Permission.js.map +1 -1
- package/dist/accessi-module/Dtos/PublicRegisterRequest.d.ts +1 -1
- package/dist/accessi-module/Dtos/PublicRegisterRequest.js +1 -0
- package/dist/accessi-module/Dtos/PublicRegisterRequest.js.map +1 -1
- package/dist/accessi-module/Dtos/RegisterRequest.js +3 -1
- package/dist/accessi-module/Dtos/RegisterRequest.js.map +1 -1
- package/dist/accessi-module/Dtos/RegisterResponse.js.map +1 -1
- package/dist/accessi-module/Dtos/Role.d.ts +4 -0
- package/dist/accessi-module/Dtos/Role.js +4 -0
- package/dist/accessi-module/Dtos/Role.js.map +1 -1
- package/dist/accessi-module/Dtos/RuoliMenu.js.map +1 -1
- package/dist/accessi-module/Dtos/SendResetPasswordEmailRequest.js.map +1 -1
- package/dist/accessi-module/Dtos/ServiceToken.d.ts +34 -0
- package/dist/accessi-module/Dtos/ServiceToken.js +128 -0
- package/dist/accessi-module/Dtos/ServiceToken.js.map +1 -0
- package/dist/accessi-module/Dtos/SetStatoRegistrazione.js.map +1 -1
- package/dist/accessi-module/Dtos/StatoRegistrazione.js.map +1 -1
- package/dist/accessi-module/Dtos/TipoAbilitazione.d.ts +4 -0
- package/dist/accessi-module/Dtos/TipoAbilitazione.js +4 -0
- package/dist/accessi-module/Dtos/TipoAbilitazione.js.map +1 -1
- package/dist/accessi-module/Dtos/TipoFiltro.js.map +1 -1
- package/dist/accessi-module/Dtos/TokenResult.js.map +1 -1
- package/dist/accessi-module/Dtos/TwoFactorDtos.d.ts +13 -0
- package/dist/accessi-module/Dtos/TwoFactorDtos.js +60 -0
- package/dist/accessi-module/Dtos/TwoFactorDtos.js.map +1 -0
- package/dist/accessi-module/Dtos/UpdateEnabledStatusRequest.js.map +1 -1
- package/dist/accessi-module/Dtos/UserDto.d.ts +7 -0
- package/dist/accessi-module/Dtos/UserDto.js +26 -2
- package/dist/accessi-module/Dtos/UserDto.js.map +1 -1
- package/dist/accessi-module/Dtos/UserGrantsDto.js.map +1 -1
- package/dist/accessi-module/Dtos/UserGrantsResponse.js.map +1 -1
- package/dist/accessi-module/Dtos/index.d.ts +4 -0
- package/dist/accessi-module/Dtos/index.js +4 -0
- package/dist/accessi-module/Dtos/index.js.map +1 -1
- package/dist/accessi-module/Services/AuthService/AuthService.d.ts +40 -5
- package/dist/accessi-module/Services/AuthService/AuthService.js +192 -40
- package/dist/accessi-module/Services/AuthService/AuthService.js.map +1 -1
- package/dist/accessi-module/Services/ConfiguratorService/ConfiguratorService.d.ts +3 -1
- package/dist/accessi-module/Services/ConfiguratorService/ConfiguratorService.js +5 -1
- package/dist/accessi-module/Services/ConfiguratorService/ConfiguratorService.js.map +1 -1
- package/dist/accessi-module/Services/EmailService/EmailService.d.ts +9 -2
- package/dist/accessi-module/Services/EmailService/EmailService.js +43 -22
- package/dist/accessi-module/Services/EmailService/EmailService.js.map +1 -1
- package/dist/accessi-module/Services/FiltriService/FiltriService.d.ts +18 -3
- package/dist/accessi-module/Services/FiltriService/FiltriService.js +92 -9
- package/dist/accessi-module/Services/FiltriService/FiltriService.js.map +1 -1
- package/dist/accessi-module/Services/PermissionService/PermissionService.d.ts +73 -2
- package/dist/accessi-module/Services/PermissionService/PermissionService.js +537 -198
- package/dist/accessi-module/Services/PermissionService/PermissionService.js.map +1 -1
- package/dist/accessi-module/Services/ServiceTokenService/ServiceTokenService.d.ts +75 -0
- package/dist/accessi-module/Services/ServiceTokenService/ServiceTokenService.js +265 -0
- package/dist/accessi-module/Services/ServiceTokenService/ServiceTokenService.js.map +1 -0
- package/dist/accessi-module/Services/TwoFactorService/TwoFactorService.d.ts +27 -0
- package/dist/accessi-module/Services/TwoFactorService/TwoFactorService.js +175 -0
- package/dist/accessi-module/Services/TwoFactorService/TwoFactorService.js.map +1 -0
- package/dist/accessi-module/Services/UserService/UserService.d.ts +36 -5
- package/dist/accessi-module/Services/UserService/UserService.js +341 -161
- package/dist/accessi-module/Services/UserService/UserService.js.map +1 -1
- package/dist/accessi-module/Views/reset-password.html +213 -213
- package/dist/accessi-module/database-updates/AccessiDatabaseUpdater.d.ts +46 -10
- package/dist/accessi-module/database-updates/AccessiDatabaseUpdater.js +399 -181
- package/dist/accessi-module/database-updates/AccessiDatabaseUpdater.js.map +1 -1
- package/dist/accessi-module/database-updates/accessiSchema.d.ts +45 -0
- package/dist/accessi-module/database-updates/accessiSchema.js +87 -0
- package/dist/accessi-module/database-updates/accessiSchema.js.map +1 -0
- package/dist/accessi-module/database-updates/optionalColumns.d.ts +7 -0
- package/dist/accessi-module/database-updates/optionalColumns.js +58 -0
- package/dist/accessi-module/database-updates/optionalColumns.js.map +1 -0
- package/dist/accessi-module/database-updates/runAccessiDbUpdate.js +18 -8
- package/dist/accessi-module/database-updates/runAccessiDbUpdate.js.map +1 -1
- package/dist/accessi-module/federated-auth/FederatedAuthController.d.ts +24 -0
- package/dist/accessi-module/federated-auth/FederatedAuthController.js +333 -0
- package/dist/accessi-module/federated-auth/FederatedAuthController.js.map +1 -0
- package/dist/accessi-module/federated-auth/FederatedAuthService.d.ts +100 -0
- package/dist/accessi-module/federated-auth/FederatedAuthService.js +451 -0
- package/dist/accessi-module/federated-auth/FederatedAuthService.js.map +1 -0
- package/dist/accessi-module/federated-auth/FederatedAuthTypes.d.ts +53 -0
- package/dist/accessi-module/federated-auth/FederatedAuthTypes.js +3 -0
- package/dist/accessi-module/federated-auth/FederatedAuthTypes.js.map +1 -0
- package/dist/accessi-module/index.d.ts +17 -0
- package/dist/accessi-module/index.js +25 -11
- package/dist/accessi-module/index.js.map +1 -1
- package/dist/accessi-module/jwt/jwt.strategy.d.ts +1 -1
- package/dist/accessi-module/jwt/jwt.strategy.js +16 -7
- package/dist/accessi-module/jwt/jwt.strategy.js.map +1 -1
- package/dist/accessi-module/middleware/accessiRequirements.d.ts +23 -1
- package/dist/accessi-module/middleware/accessiRequirements.js +7 -0
- package/dist/accessi-module/middleware/accessiRequirements.js.map +1 -1
- package/dist/accessi-module/middleware/authenticateGen.d.ts +16 -1
- package/dist/accessi-module/middleware/authenticateGen.js +63 -25
- package/dist/accessi-module/middleware/authenticateGen.js.map +1 -1
- package/dist/accessi-module/security/AccessiHttpExceptionFilter.d.ts +12 -0
- package/dist/accessi-module/security/AccessiHttpExceptionFilter.js +74 -0
- package/dist/accessi-module/security/AccessiHttpExceptionFilter.js.map +1 -0
- package/dist/accessi-module/security/accessControl.d.ts +11 -0
- package/dist/accessi-module/security/accessControl.js +19 -4
- package/dist/accessi-module/security/accessControl.js.map +1 -1
- package/dist/accessi-module/security/accessiValidation.d.ts +9 -0
- package/dist/accessi-module/security/accessiValidation.js +41 -0
- package/dist/accessi-module/security/accessiValidation.js.map +1 -0
- package/dist/accessi-module/security/authenticatedToken.d.ts +15 -1
- package/dist/accessi-module/security/authenticatedToken.js +31 -4
- package/dist/accessi-module/security/authenticatedToken.js.map +1 -1
- package/dist/accessi-module/security/passwordResetToken.d.ts +13 -3
- package/dist/accessi-module/security/passwordResetToken.js +13 -5
- package/dist/accessi-module/security/passwordResetToken.js.map +1 -1
- package/dist/accessi-module/security/publicAuthRateLimit.d.ts +3 -3
- package/dist/accessi-module/security/publicAuthRateLimit.js +30 -8
- package/dist/accessi-module/security/publicAuthRateLimit.js.map +1 -1
- package/dist/accessi-module/security/serviceTokenGuard.d.ts +25 -0
- package/dist/accessi-module/security/serviceTokenGuard.js +85 -0
- package/dist/accessi-module/security/serviceTokenGuard.js.map +1 -0
- package/dist/accessi-module/security/serviceTokenRateLimit.d.ts +8 -0
- package/dist/accessi-module/security/serviceTokenRateLimit.js +49 -0
- package/dist/accessi-module/security/serviceTokenRateLimit.js.map +1 -0
- package/dist/allegati-module/AllegatiModule.d.ts +11 -0
- package/dist/allegati-module/AllegatiModule.js +11 -1
- package/dist/allegati-module/AllegatiModule.js.map +1 -1
- package/dist/allegati-module/Controllers/AllegatiController.d.ts +2 -1
- package/dist/allegati-module/Controllers/AllegatiController.js +23 -15
- package/dist/allegati-module/Controllers/AllegatiController.js.map +1 -1
- package/dist/allegati-module/Dtos/AllegatoDto.js.map +1 -1
- package/dist/allegati-module/Dtos/BaseResponse.js.map +1 -1
- package/dist/allegati-module/Dtos/UploadSingleFileRequest.js.map +1 -1
- package/dist/allegati-module/Dtos/index.js.map +1 -1
- package/dist/allegati-module/Dtos/responses/DownloadAllegatoResponseDto.js.map +1 -1
- package/dist/allegati-module/Dtos/responses/GetListResponse.js.map +1 -1
- package/dist/allegati-module/Dtos/responses/UploadAllegatoResponseDto.js.map +1 -1
- package/dist/allegati-module/Services/AllegatiService/AllegatiService.d.ts +10 -3
- package/dist/allegati-module/Services/AllegatiService/AllegatiService.js +150 -101
- package/dist/allegati-module/Services/AllegatiService/AllegatiService.js.map +1 -1
- package/dist/allegati-module/index.js.map +1 -1
- package/dist/allegati-module/security/allegatiAuthorizationGuard.d.ts +14 -0
- package/dist/allegati-module/security/allegatiAuthorizationGuard.js +70 -0
- package/dist/allegati-module/security/allegatiAuthorizationGuard.js.map +1 -0
- package/dist/autobind.d.ts +10 -3
- package/dist/autobind.js +24 -9
- package/dist/autobind.js.map +1 -1
- package/dist/firebird-compat.d.ts +13 -0
- package/dist/firebird-compat.js +3 -2
- package/dist/firebird-compat.js.map +1 -1
- package/dist/index.js.map +1 -1
- package/dist/initEmilsoftwareModule.js +7 -0
- package/dist/initEmilsoftwareModule.js.map +1 -1
- package/dist/scripts/generateAccessiOpenApi.d.ts +1 -0
- package/dist/scripts/generateAccessiOpenApi.js +57 -0
- package/dist/scripts/generateAccessiOpenApi.js.map +1 -0
- package/dist/scripts/generateAccessiWiki.d.ts +1 -0
- package/dist/scripts/generateAccessiWiki.js +131 -0
- package/dist/scripts/generateAccessiWiki.js.map +1 -0
- package/dist/swagger/SwaggerConfig.js +6 -3
- package/dist/swagger/SwaggerConfig.js.map +1 -1
- package/package.json +103 -83
- package/dist/emilsoftware-utilities-2.0.0-dev.22.tgz +0 -0
|
@@ -27,227 +27,445 @@ const common_1 = require("@nestjs/common");
|
|
|
27
27
|
const DatabaseUpdater_1 = require("../../DatabaseUpdater");
|
|
28
28
|
const Orm_1 = require("../../Orm");
|
|
29
29
|
const Logger_1 = require("../../Logger");
|
|
30
|
+
const accessiSchema_1 = require("./accessiSchema");
|
|
31
|
+
/** Reconciles the actual schema; version labels never bypass verification. */
|
|
30
32
|
let AccessiDatabaseUpdater = AccessiDatabaseUpdater_1 = class AccessiDatabaseUpdater extends DatabaseUpdater_1.DatabaseUpdater {
|
|
31
33
|
constructor(accessiOptions) {
|
|
32
34
|
super();
|
|
33
35
|
this.accessiOptions = accessiOptions;
|
|
34
36
|
}
|
|
35
37
|
onModuleInit() {
|
|
38
|
+
return __awaiter(this, void 0, void 0, function* () { yield AccessiDatabaseUpdater_1.initialize(this.accessiOptions); });
|
|
39
|
+
}
|
|
40
|
+
/** Shared bootstrap barrier for services in the same Nest module. Failed attempts may be retried. */
|
|
41
|
+
static initialize(options) {
|
|
42
|
+
let pending = this.initialization.get(options);
|
|
43
|
+
if (!pending) {
|
|
44
|
+
pending = options.autoUpdateDatabase === false ? this.assertCompatible(options) : this.run(options);
|
|
45
|
+
this.initialization.set(options, pending);
|
|
46
|
+
const cleanup = () => this.initialization.delete(options);
|
|
47
|
+
pending.then(cleanup, cleanup);
|
|
48
|
+
}
|
|
49
|
+
return pending;
|
|
50
|
+
}
|
|
51
|
+
static getLatestVersion() { return accessiSchema_1.ACCESSI_SCHEMA_VERSION; }
|
|
52
|
+
static getCurrentVersion(options) {
|
|
36
53
|
return __awaiter(this, void 0, void 0, function* () {
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
return;
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
AccessiDatabaseUpdater_1.logger.info("Updater database accessi completato.");
|
|
54
|
+
var _a;
|
|
55
|
+
if (!(yield this.tableExists(options.databaseOptions, 'PARAMETRI')))
|
|
56
|
+
return null;
|
|
57
|
+
const rows = yield Orm_1.Orm.query(options.databaseOptions, 'SELECT DESPAR FROM PARAMETRI WHERE CODPAR = ?', [accessiSchema_1.ACCESSI_VERSION_KEY], false);
|
|
58
|
+
const version = (_a = rows[0]) === null || _a === void 0 ? void 0 : _a.DESPAR;
|
|
59
|
+
return typeof version === 'string' ? version.trim() : version == null ? null : String(version).trim();
|
|
44
60
|
});
|
|
45
61
|
}
|
|
62
|
+
/** Serialize callers targeting the same database in this process. Cross-process DDL is a deployment concern. */
|
|
46
63
|
static run(options) {
|
|
64
|
+
var _a, _b, _c;
|
|
65
|
+
const db = options.databaseOptions;
|
|
66
|
+
const key = JSON.stringify([(_a = db.host) !== null && _a !== void 0 ? _a : 'localhost', (_b = db.port) !== null && _b !== void 0 ? _b : 3050, db.database]);
|
|
67
|
+
const previous = (_c = this.running.get(key)) !== null && _c !== void 0 ? _c : Promise.resolve();
|
|
68
|
+
const pending = previous.catch(() => { }).then(() => this.reconcile(options));
|
|
69
|
+
this.running.set(key, pending);
|
|
70
|
+
const cleanup = () => { if (this.running.get(key) === pending)
|
|
71
|
+
this.running.delete(key); };
|
|
72
|
+
pending.then(cleanup, cleanup);
|
|
73
|
+
return pending;
|
|
74
|
+
}
|
|
75
|
+
static query(options_1, sql_1) {
|
|
76
|
+
return __awaiter(this, arguments, void 0, function* (options, sql, params = []) {
|
|
77
|
+
return Orm_1.Orm.query(options.databaseOptions, sql, params, false);
|
|
78
|
+
});
|
|
79
|
+
}
|
|
80
|
+
static execute(options_1, sql_1) {
|
|
81
|
+
return __awaiter(this, arguments, void 0, function* (options, sql, params = []) {
|
|
82
|
+
try {
|
|
83
|
+
yield Orm_1.Orm.execute(options.databaseOptions, sql, params, false);
|
|
84
|
+
}
|
|
85
|
+
catch (error) {
|
|
86
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
87
|
+
throw new Error(`Migrazione Accessi interrotta: ${sql}. ${message}. Correggere lo schema/dati indicati e rilanciare; la versione non e stata avanzata.`);
|
|
88
|
+
}
|
|
89
|
+
});
|
|
90
|
+
}
|
|
91
|
+
static sequenceExists(options, name) {
|
|
92
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
93
|
+
const rows = yield this.query(options, 'SELECT 1 FROM RDB$GENERATORS WHERE RDB$GENERATOR_NAME = ?', [name.toUpperCase()]);
|
|
94
|
+
return rows.length > 0;
|
|
95
|
+
});
|
|
96
|
+
}
|
|
97
|
+
static relationIssues(options) {
|
|
98
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
99
|
+
const rows = yield this.query(options, `SELECT TRIM(RDB$RELATION_NAME) AS NAME, COALESCE(RDB$RELATION_TYPE, 0) AS KIND
|
|
100
|
+
FROM RDB$RELATIONS WHERE COALESCE(RDB$SYSTEM_FLAG, 0) = 0`);
|
|
101
|
+
return rows.filter(row => accessiSchema_1.accessiTables[String(row.NAME)] && Number(row.KIND) !== 0).map(row => `${row.NAME}: richiesta tabella persistente, trovato tipo relazione ${row.KIND}`);
|
|
102
|
+
});
|
|
103
|
+
}
|
|
104
|
+
static engineIssue(options) {
|
|
47
105
|
return __awaiter(this, void 0, void 0, function* () {
|
|
48
|
-
var _a, _b
|
|
49
|
-
const
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
106
|
+
var _a, _b;
|
|
107
|
+
const rows = yield this.query(options, "SELECT RDB$GET_CONTEXT('SYSTEM', 'ENGINE_VERSION') AS ENGINE_VERSION FROM RDB$DATABASE");
|
|
108
|
+
const version = String((_b = (_a = rows[0]) === null || _a === void 0 ? void 0 : _a.ENGINE_VERSION) !== null && _b !== void 0 ? _b : 'sconosciuta');
|
|
109
|
+
if (!(Number.parseInt(version, 10) >= 3))
|
|
110
|
+
return `Firebird ${version}: lo schema Accessi richiede Firebird 3.0 o successivo`;
|
|
111
|
+
});
|
|
112
|
+
}
|
|
113
|
+
static columns(options) {
|
|
114
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
115
|
+
return this.query(options, `SELECT TRIM(RF.RDB$RELATION_NAME) AS TABLE_NAME, TRIM(RF.RDB$FIELD_NAME) AS COLUMN_NAME,
|
|
116
|
+
F.RDB$FIELD_TYPE AS FIELD_TYPE, F.RDB$FIELD_SUB_TYPE AS SUB_TYPE, F.RDB$FIELD_SCALE AS FIELD_SCALE,
|
|
117
|
+
F.RDB$CHARACTER_LENGTH AS TEXT_LENGTH, TRIM(CS.RDB$CHARACTER_SET_NAME) AS CHARSET_NAME,
|
|
118
|
+
COALESCE(RF.RDB$NULL_FLAG, F.RDB$NULL_FLAG, 0) AS NOT_NULL,
|
|
119
|
+
CAST(COALESCE(RF.RDB$DEFAULT_SOURCE, F.RDB$DEFAULT_SOURCE) AS VARCHAR(1024)) AS DEFAULT_SOURCE,
|
|
120
|
+
CASE WHEN F.RDB$COMPUTED_BLR IS NULL THEN 0 ELSE 1 END AS IS_COMPUTED
|
|
121
|
+
FROM RDB$RELATION_FIELDS RF JOIN RDB$FIELDS F ON F.RDB$FIELD_NAME = RF.RDB$FIELD_SOURCE
|
|
122
|
+
LEFT JOIN RDB$CHARACTER_SETS CS ON CS.RDB$CHARACTER_SET_ID = F.RDB$CHARACTER_SET_ID
|
|
123
|
+
WHERE RF.RDB$RELATION_NAME IN (${Object.keys(accessiSchema_1.accessiTables).map(name => `'${name}'`).join(', ')})`);
|
|
124
|
+
});
|
|
125
|
+
}
|
|
126
|
+
static defaultValue(definition) {
|
|
127
|
+
var _a;
|
|
128
|
+
return (_a = /\bDEFAULT\s+('[^']*'|\S+)/i.exec(definition)) === null || _a === void 0 ? void 0 : _a[1];
|
|
129
|
+
}
|
|
130
|
+
static typeIssue(row, definition) {
|
|
131
|
+
var _a;
|
|
132
|
+
if (Number(row.IS_COMPUTED))
|
|
133
|
+
return 'colonna calcolata invece di scrivibile';
|
|
134
|
+
const stringLength = /^(?:VAR)?CHAR\((\d+)\)/.exec(definition);
|
|
135
|
+
if (stringLength) {
|
|
136
|
+
if (![14, 37].includes(Number(row.FIELD_TYPE)))
|
|
137
|
+
return `richiesto testo (${definition})`;
|
|
138
|
+
if (Number(row.TEXT_LENGTH) < Number(stringLength[1]))
|
|
139
|
+
return `lunghezza ${row.TEXT_LENGTH}, richiesta almeno ${stringLength[1]}`;
|
|
140
|
+
const charset = (_a = /CHARACTER SET (\w+)/.exec(definition)) === null || _a === void 0 ? void 0 : _a[1];
|
|
141
|
+
if (charset && typeof row.CHARSET_NAME === 'string' && row.CHARSET_NAME.trim() !== charset)
|
|
142
|
+
return `character set ${row.CHARSET_NAME}, richiesto ${charset}`;
|
|
143
|
+
}
|
|
144
|
+
else if (/^(SMALLINT|INTEGER)/.test(definition)) {
|
|
145
|
+
const acceptable = definition.startsWith('SMALLINT') ? [7, 8, 16] : [8, 16];
|
|
146
|
+
if (!acceptable.includes(Number(row.FIELD_TYPE)) || Number(row.FIELD_SCALE) !== 0)
|
|
147
|
+
return `richiesto intero (${definition})`;
|
|
148
|
+
}
|
|
149
|
+
else if (definition.startsWith('DATE')) {
|
|
150
|
+
if (![12, 35].includes(Number(row.FIELD_TYPE)))
|
|
151
|
+
return 'richiesto DATE o TIMESTAMP';
|
|
152
|
+
}
|
|
153
|
+
else if (definition.startsWith('TIMESTAMP')) {
|
|
154
|
+
if (Number(row.FIELD_TYPE) !== 35)
|
|
155
|
+
return 'richiesto TIMESTAMP';
|
|
156
|
+
}
|
|
157
|
+
else if (definition.startsWith('BLOB')) {
|
|
158
|
+
if (Number(row.FIELD_TYPE) !== 261 || Number(row.SUB_TYPE) !== 1)
|
|
159
|
+
return 'richiesto BLOB testuale';
|
|
160
|
+
}
|
|
161
|
+
return undefined;
|
|
162
|
+
}
|
|
163
|
+
static constraints(options) {
|
|
164
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
165
|
+
return this.query(options, `SELECT TRIM(C.RDB$CONSTRAINT_NAME) AS NAME, TRIM(C.RDB$RELATION_NAME) AS TABLE_NAME,
|
|
166
|
+
TRIM(C.RDB$CONSTRAINT_TYPE) AS KIND, TRIM(S.RDB$FIELD_NAME) AS COLUMN_NAME, S.RDB$FIELD_POSITION AS POS,
|
|
167
|
+
TRIM(T.RDB$RELATION_NAME) AS TARGET_TABLE, TRIM(TS.RDB$FIELD_NAME) AS TARGET_COLUMN,
|
|
168
|
+
TRIM(R.RDB$DELETE_RULE) AS DELETE_RULE
|
|
169
|
+
FROM RDB$RELATION_CONSTRAINTS C
|
|
170
|
+
LEFT JOIN RDB$INDEX_SEGMENTS S ON S.RDB$INDEX_NAME = C.RDB$INDEX_NAME
|
|
171
|
+
LEFT JOIN RDB$REF_CONSTRAINTS R ON R.RDB$CONSTRAINT_NAME = C.RDB$CONSTRAINT_NAME
|
|
172
|
+
LEFT JOIN RDB$RELATION_CONSTRAINTS T ON T.RDB$CONSTRAINT_NAME = R.RDB$CONST_NAME_UQ
|
|
173
|
+
LEFT JOIN RDB$INDEX_SEGMENTS TS ON TS.RDB$INDEX_NAME = T.RDB$INDEX_NAME AND TS.RDB$FIELD_POSITION = S.RDB$FIELD_POSITION
|
|
174
|
+
ORDER BY C.RDB$CONSTRAINT_NAME, S.RDB$FIELD_POSITION`);
|
|
175
|
+
});
|
|
176
|
+
}
|
|
177
|
+
/** Raggruppa per nome; ogni gruppo e non vuoto per costruzione (tupla non vuota). */
|
|
178
|
+
static groups(rows) {
|
|
179
|
+
const groups = new Map();
|
|
180
|
+
for (const row of rows) {
|
|
181
|
+
const key = String(row.NAME);
|
|
182
|
+
const existing = groups.get(key);
|
|
183
|
+
if (existing) {
|
|
184
|
+
existing.push(row);
|
|
64
185
|
}
|
|
65
186
|
else {
|
|
66
|
-
|
|
67
|
-
}
|
|
68
|
-
for (let index = startIndex; index < this.updates.length; index++) {
|
|
69
|
-
const update = this.updates[index];
|
|
70
|
-
const stepStartedAt = performance.now();
|
|
71
|
-
this.logger.info(`Applico aggiornamento accessi ${update.fromVersion} -> ${update.toVersion}: ${update.description}`);
|
|
72
|
-
yield update.apply(options);
|
|
73
|
-
yield this.setDatabaseVersion(options.databaseOptions, update.toVersion);
|
|
74
|
-
this.logger.info(`Aggiornamento accessi ${update.toVersion} completato in ${(performance.now() - stepStartedAt).toFixed(2)} ms`);
|
|
187
|
+
groups.set(key, [row]);
|
|
75
188
|
}
|
|
76
|
-
|
|
189
|
+
}
|
|
190
|
+
return Array.from(groups.values());
|
|
191
|
+
}
|
|
192
|
+
static checks(options) {
|
|
193
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
194
|
+
return this.query(options, `SELECT DISTINCT TRIM(C.RDB$CONSTRAINT_NAME) AS NAME,
|
|
195
|
+
TRIM(C.RDB$RELATION_NAME) AS TABLE_NAME, CAST(T.RDB$TRIGGER_SOURCE AS VARCHAR(2048)) AS CHECK_SOURCE
|
|
196
|
+
FROM RDB$RELATION_CONSTRAINTS C JOIN RDB$CHECK_CONSTRAINTS K ON K.RDB$CONSTRAINT_NAME = C.RDB$CONSTRAINT_NAME
|
|
197
|
+
JOIN RDB$TRIGGERS T ON T.RDB$TRIGGER_NAME = K.RDB$TRIGGER_NAME
|
|
198
|
+
WHERE C.RDB$CONSTRAINT_TYPE = 'CHECK'`);
|
|
77
199
|
});
|
|
78
200
|
}
|
|
79
|
-
static
|
|
201
|
+
static sameCheck(source, expression) {
|
|
202
|
+
const normalize = (s) => s.replace(/^\s*CHECK\s*/i, '').replace(/[\s()]/g, '').toUpperCase();
|
|
203
|
+
return normalize(source !== null && source !== void 0 ? source : '') === normalize(expression);
|
|
204
|
+
}
|
|
205
|
+
static indexes(options) {
|
|
206
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
207
|
+
return this.groups(yield this.query(options, `SELECT TRIM(I.RDB$INDEX_NAME) AS NAME, TRIM(I.RDB$RELATION_NAME) AS TABLE_NAME,
|
|
208
|
+
COALESCE(I.RDB$INDEX_INACTIVE, 0) AS INACTIVE, TRIM(S.RDB$FIELD_NAME) AS COLUMN_NAME
|
|
209
|
+
FROM RDB$INDICES I LEFT JOIN RDB$INDEX_SEGMENTS S ON S.RDB$INDEX_NAME = I.RDB$INDEX_NAME
|
|
210
|
+
ORDER BY I.RDB$INDEX_NAME, S.RDB$FIELD_POSITION`));
|
|
211
|
+
});
|
|
212
|
+
}
|
|
213
|
+
static sameColumns(rows, columns) {
|
|
214
|
+
return rows.map(row => row.COLUMN_NAME).join(',') === columns.join(',');
|
|
215
|
+
}
|
|
216
|
+
static triggers(options) {
|
|
80
217
|
return __awaiter(this, void 0, void 0, function* () {
|
|
81
|
-
return
|
|
218
|
+
return this.query(options, `SELECT TRIM(RDB$TRIGGER_NAME) AS NAME, TRIM(RDB$RELATION_NAME) AS TABLE_NAME,
|
|
219
|
+
RDB$TRIGGER_INACTIVE AS INACTIVE, RDB$TRIGGER_TYPE AS TRIGGER_TYPE,
|
|
220
|
+
CAST(RDB$TRIGGER_SOURCE AS VARCHAR(8191)) AS SOURCE
|
|
221
|
+
FROM RDB$TRIGGERS WHERE COALESCE(RDB$SYSTEM_FLAG, 0) = 0
|
|
222
|
+
AND RDB$RELATION_NAME IN (${Object.keys(accessiSchema_1.accessiTables).map(name => `'${name}'`).join(', ')})`);
|
|
82
223
|
});
|
|
83
224
|
}
|
|
84
|
-
|
|
225
|
+
/** Accept historical formatting and renamed triggers, but require the operations used by Accessi. */
|
|
226
|
+
static compatibleTrigger(row, trigger) {
|
|
85
227
|
var _a, _b;
|
|
86
|
-
|
|
228
|
+
if (row.TABLE_NAME !== trigger.table || Number(row.INACTIVE) || Number(row.TRIGGER_TYPE) !== trigger.type)
|
|
229
|
+
return false;
|
|
230
|
+
const source = String((_a = row.SOURCE) !== null && _a !== void 0 ? _a : '').replace(/\/\*[\s\S]*?\*\//g, '').replace(/--[^\r\n]*/g, '').replace(/[\s()]/g, '').toUpperCase();
|
|
231
|
+
const required = {
|
|
232
|
+
UTENTI_BI: ['IFNEW.CODUTEISNULL', 'NEW.CODUTE=GEN_IDGEN_UTENTI_ID,1', 'NEW.DATINS=CURRENT_TIMESTAMP'],
|
|
233
|
+
RUOLI_BI: ['IFNEW.CODRUOISNULL', 'NEW.CODRUO=GEN_IDGEN_RUOLI_ID,1'],
|
|
234
|
+
FILTRI_BI0: ['IFNEW.PROGISNULL', 'MAXPROG', 'FROMFILTRIWHERECODUTE=NEW.CODUTE', 'NEW.PROG=TOT+1'],
|
|
235
|
+
UTENTI_GDPR_BI0: ['NEW.DATACC=CURRENT_TIMESTAMP', 'UPDATEUTENTISETFLGGDPR=1', 'DATGDPR=CURRENT_TIMESTAMP', 'WHERECODUTE=NEW.CODUTE'],
|
|
236
|
+
};
|
|
237
|
+
return ((_b = required[trigger.name]) !== null && _b !== void 0 ? _b : []).every(fragment => source.includes(fragment));
|
|
87
238
|
}
|
|
88
|
-
static
|
|
239
|
+
static futureVersionIssue(options, columns) {
|
|
89
240
|
return __awaiter(this, void 0, void 0, function* () {
|
|
90
|
-
|
|
91
|
-
if (!
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
if (
|
|
95
|
-
|
|
241
|
+
var _a, _b, _c, _d;
|
|
242
|
+
if (!['CODPAR', 'DESPAR'].every(name => columns.some(row => row.TABLE_NAME === 'PARAMETRI' && row.COLUMN_NAME === name)))
|
|
243
|
+
return;
|
|
244
|
+
const version = yield this.getCurrentVersion(options);
|
|
245
|
+
if (!version)
|
|
246
|
+
return;
|
|
247
|
+
if (!/^\d+\.\d+\.\d+$/.test(version))
|
|
248
|
+
return `Versione Accessi non riconosciuta: ${version}`;
|
|
249
|
+
const actual = version.split('.').map(Number), latest = accessiSchema_1.ACCESSI_SCHEMA_VERSION.split('.').map(Number);
|
|
250
|
+
for (let i = 0; i < 3; i++) {
|
|
251
|
+
if (((_a = actual[i]) !== null && _a !== void 0 ? _a : 0) > ((_b = latest[i]) !== null && _b !== void 0 ? _b : 0))
|
|
252
|
+
return `Schema Accessi ${version} piu recente della libreria (${accessiSchema_1.ACCESSI_SCHEMA_VERSION}); downgrade automatico non consentito`;
|
|
253
|
+
if (((_c = actual[i]) !== null && _c !== void 0 ? _c : 0) < ((_d = latest[i]) !== null && _d !== void 0 ? _d : 0))
|
|
254
|
+
return;
|
|
96
255
|
}
|
|
97
|
-
return !exists;
|
|
98
256
|
});
|
|
99
257
|
}
|
|
100
|
-
|
|
258
|
+
/** Read-only diagnostics, including when automatic updates are disabled. */
|
|
259
|
+
static inspectSchema(options) {
|
|
101
260
|
return __awaiter(this, void 0, void 0, function* () {
|
|
102
|
-
|
|
103
|
-
const
|
|
104
|
-
if (
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
261
|
+
var _a, _b;
|
|
262
|
+
const engine = yield this.engineIssue(options);
|
|
263
|
+
if (engine)
|
|
264
|
+
return { compatible: false, issues: [engine] };
|
|
265
|
+
const issues = yield this.relationIssues(options);
|
|
266
|
+
const columns = yield this.columns(options);
|
|
267
|
+
const future = yield this.futureVersionIssue(options, columns);
|
|
268
|
+
if (future)
|
|
269
|
+
issues.push(future);
|
|
270
|
+
for (const [table, schema] of Object.entries(accessiSchema_1.accessiTables)) {
|
|
271
|
+
const present = columns.filter(row => row.TABLE_NAME === table);
|
|
272
|
+
if (!present.length) {
|
|
273
|
+
issues.push(`Tabella mancante: ${table}`);
|
|
274
|
+
continue;
|
|
275
|
+
}
|
|
276
|
+
for (const [name, definition] of Object.entries(schema.columns)) {
|
|
277
|
+
const row = present.find(row => row.COLUMN_NAME === name);
|
|
278
|
+
if (!row) {
|
|
279
|
+
issues.push(`Colonna mancante: ${table}.${name}`);
|
|
280
|
+
continue;
|
|
281
|
+
}
|
|
282
|
+
const problem = this.typeIssue(row, definition);
|
|
283
|
+
if (problem)
|
|
284
|
+
issues.push(`${table}.${name}: ${problem}`);
|
|
285
|
+
if (definition.includes('NOT NULL') && !Number(row.NOT_NULL))
|
|
286
|
+
issues.push(`${table}.${name}: manca NOT NULL`);
|
|
287
|
+
const expected = this.defaultValue(definition);
|
|
288
|
+
if (expected && this.normalizeDefault(row.DEFAULT_SOURCE) !== this.normalizeDefault(expected))
|
|
289
|
+
issues.push(`${table}.${name}: richiesto DEFAULT ${expected}`);
|
|
108
290
|
}
|
|
109
|
-
yield Orm_1.Orm.execute(options.databaseOptions, "INSERT INTO FILTRI_TIPO (TIPFIL, DESFIL, FLDFIL) VALUES (?, ?, ?)", [tipfil, desfil, fldfil]);
|
|
110
|
-
return;
|
|
111
291
|
}
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
292
|
+
const checks = yield this.checks(options);
|
|
293
|
+
for (const check of accessiSchema_1.accessiChecks) {
|
|
294
|
+
if (!checks.some(row => row.TABLE_NAME === check.table && this.sameCheck(String(row.CHECK_SOURCE), check.expression)))
|
|
295
|
+
issues.push(`${check.table}: manca CHECK (${check.expression})`);
|
|
296
|
+
}
|
|
297
|
+
const constraints = this.groups(yield this.constraints(options));
|
|
298
|
+
for (const [table, schema] of Object.entries(accessiSchema_1.accessiTables)) {
|
|
299
|
+
if (!constraints.some(rows => rows[0].TABLE_NAME === table && rows[0].KIND === 'PRIMARY KEY' && this.sameColumns(rows, schema.primaryKey)))
|
|
300
|
+
issues.push(`${table}: chiave primaria richiesta (${schema.primaryKey.join(', ')})`);
|
|
301
|
+
}
|
|
302
|
+
for (const fk of accessiSchema_1.accessiForeignKeys) {
|
|
303
|
+
if (!constraints.some(rows => rows.length === 1 && rows[0].KIND === 'FOREIGN KEY' && rows[0].TABLE_NAME === fk.table && rows[0].COLUMN_NAME === fk.column && rows[0].TARGET_TABLE === fk.target && rows[0].TARGET_COLUMN === fk.targetColumn && (fk.cascade ? rows[0].DELETE_RULE === 'CASCADE' : ['NO ACTION', 'RESTRICT'].includes(String(rows[0].DELETE_RULE)))))
|
|
304
|
+
issues.push(`${fk.name}: manca FK compatibile ${fk.table}.${fk.column} -> ${fk.target}.${fk.targetColumn}`);
|
|
305
|
+
}
|
|
306
|
+
const indexes = yield this.indexes(options);
|
|
307
|
+
for (const index of accessiSchema_1.accessiIndexes) {
|
|
308
|
+
if (!indexes.some(rows => rows[0].TABLE_NAME === index.table && !Number(rows[0].INACTIVE) && this.sameColumns(rows, index.columns)))
|
|
309
|
+
issues.push(`${index.name}: indice mancante o inattivo`);
|
|
310
|
+
}
|
|
311
|
+
const triggers = yield this.triggers(options);
|
|
312
|
+
for (const trigger of accessiSchema_1.accessiTriggers) {
|
|
313
|
+
if (!triggers.some(row => this.compatibleTrigger(row, trigger)))
|
|
314
|
+
issues.push(`${trigger.name}: trigger richiesto attivo ${trigger.event} su ${trigger.table}, con le operazioni Accessi previste`);
|
|
115
315
|
}
|
|
116
|
-
|
|
316
|
+
for (const generator of accessiSchema_1.accessiGenerators) {
|
|
317
|
+
if (!(yield this.sequenceExists(options, generator.name)))
|
|
318
|
+
issues.push(`${generator.name}: sequence mancante`);
|
|
319
|
+
else if (columns.some(row => row.TABLE_NAME === generator.table && row.COLUMN_NAME === generator.column)) {
|
|
320
|
+
const rows = yield this.query(options, `SELECT GEN_ID(${generator.name}, 0) AS CURRENT_VALUE, (SELECT COALESCE(MAX(${generator.column}), 0) FROM ${generator.table}) AS MAX_VALUE FROM RDB$DATABASE`);
|
|
321
|
+
if (Number((_a = rows[0]) === null || _a === void 0 ? void 0 : _a.CURRENT_VALUE) < Number((_b = rows[0]) === null || _b === void 0 ? void 0 : _b.MAX_VALUE))
|
|
322
|
+
issues.push(`${generator.name}: sequence inferiore agli identificativi esistenti`);
|
|
323
|
+
}
|
|
324
|
+
}
|
|
325
|
+
return { compatible: issues.length === 0, issues };
|
|
117
326
|
});
|
|
118
327
|
}
|
|
119
|
-
static
|
|
328
|
+
static assertCompatible(options) {
|
|
120
329
|
return __awaiter(this, void 0, void 0, function* () {
|
|
121
|
-
const
|
|
122
|
-
if (
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
330
|
+
const report = yield this.inspectSchema(options);
|
|
331
|
+
if (!report.compatible)
|
|
332
|
+
throw new Error(`Schema database Accessi incompatibile:\n- ${report.issues.join('\n- ')}\nEseguire AccessiDatabaseUpdater.run con un utente autorizzato o correggere lo schema prima dell'avvio.`);
|
|
333
|
+
});
|
|
334
|
+
}
|
|
335
|
+
static normalizeDefault(value) {
|
|
336
|
+
return String(value !== null && value !== void 0 ? value : '').replace(/^\s*DEFAULT\s+/i, '').replace(/[()\s]/g, '').toUpperCase();
|
|
337
|
+
}
|
|
338
|
+
/**
|
|
339
|
+
* Riconciliazione idempotente e ripartibile. Firebird non rende utilizzabili gli oggetti
|
|
340
|
+
* creati nella stessa transazione (metadata cache), quindi il DDL resta auto-commit per
|
|
341
|
+
* statement: eventuali errori a meta vengono recuperati rieseguendo la migrazione e la
|
|
342
|
+
* versione viene avanzata solo dopo la verifica finale `assertCompatible`.
|
|
343
|
+
*/
|
|
344
|
+
static reconcile(options) {
|
|
345
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
346
|
+
this.logger.info('Verifica dello schema effettivo Accessi.');
|
|
347
|
+
const engine = yield this.engineIssue(options);
|
|
348
|
+
if (engine)
|
|
349
|
+
throw new Error(engine);
|
|
350
|
+
const columns = yield this.columns(options);
|
|
351
|
+
const future = yield this.futureVersionIssue(options, columns);
|
|
352
|
+
if (future)
|
|
353
|
+
throw new Error(future);
|
|
354
|
+
// Detect incompatible existing definitions before making any changes. Never guess at data conversion.
|
|
355
|
+
const problems = yield this.relationIssues(options);
|
|
356
|
+
for (const [table, schema] of Object.entries(accessiSchema_1.accessiTables)) {
|
|
357
|
+
for (const [name, definition] of Object.entries(schema.columns)) {
|
|
358
|
+
const row = columns.find(row => row.TABLE_NAME === table && row.COLUMN_NAME === name);
|
|
359
|
+
if (row) {
|
|
360
|
+
const problem = this.typeIssue(row, definition);
|
|
361
|
+
if (problem)
|
|
362
|
+
problems.push(`${table}.${name}: ${problem}`);
|
|
363
|
+
}
|
|
364
|
+
}
|
|
365
|
+
}
|
|
366
|
+
if (problems.length)
|
|
367
|
+
throw new Error(`Schema Accessi richiede intervento sui tipi:\n- ${problems.join('\n- ')}`);
|
|
368
|
+
for (const [table, schema] of Object.entries(accessiSchema_1.accessiTables)) {
|
|
369
|
+
const present = columns.filter(row => row.TABLE_NAME === table);
|
|
370
|
+
if (!present.length) {
|
|
371
|
+
yield this.execute(options, `CREATE TABLE ${table} (${Object.entries(schema.columns).map(([name, definition]) => `${name} ${definition}`).join(', ')})`);
|
|
372
|
+
continue;
|
|
373
|
+
}
|
|
374
|
+
for (const [name, definition] of Object.entries(schema.columns)) {
|
|
375
|
+
const row = present.find(row => row.COLUMN_NAME === name);
|
|
376
|
+
if (!row) {
|
|
377
|
+
if (definition.includes('NOT NULL') && !this.defaultValue(definition)) {
|
|
378
|
+
const data = yield this.query(options, `SELECT FIRST 1 1 AS HAS_DATA FROM ${table}`);
|
|
379
|
+
if (data.length)
|
|
380
|
+
throw new Error(`Impossibile aggiungere ${table}.${name} obbligatoria: tabella popolata, serve un backfill esplicito. Nessun valore identificativo viene inventato.`);
|
|
381
|
+
}
|
|
382
|
+
yield this.execute(options, `ALTER TABLE ${table} ADD ${name} ${definition}`);
|
|
383
|
+
}
|
|
384
|
+
else {
|
|
385
|
+
const expected = this.defaultValue(definition);
|
|
386
|
+
if (expected && this.normalizeDefault(row.DEFAULT_SOURCE) !== this.normalizeDefault(expected))
|
|
387
|
+
yield this.execute(options, `ALTER TABLE ${table} ALTER ${name} SET DEFAULT ${expected}`);
|
|
388
|
+
if (definition.includes('NOT NULL') && !Number(row.NOT_NULL)) {
|
|
389
|
+
if (expected)
|
|
390
|
+
yield this.execute(options, `UPDATE ${table} SET ${name} = ${expected} WHERE ${name} IS NULL`);
|
|
391
|
+
yield this.execute(options, `ALTER TABLE ${table} ALTER ${name} SET NOT NULL`);
|
|
392
|
+
}
|
|
393
|
+
}
|
|
394
|
+
}
|
|
395
|
+
}
|
|
396
|
+
const constraints = this.groups(yield this.constraints(options));
|
|
397
|
+
for (const [table, schema] of Object.entries(accessiSchema_1.accessiTables)) {
|
|
398
|
+
const primary = constraints.find(rows => rows[0].TABLE_NAME === table && rows[0].KIND === 'PRIMARY KEY');
|
|
399
|
+
if (primary && !this.sameColumns(primary, schema.primaryKey))
|
|
400
|
+
throw new Error(`${table}: chiave primaria esistente incompatibile; nessun vincolo viene eliminato automaticamente.`);
|
|
401
|
+
if (!primary)
|
|
402
|
+
yield this.execute(options, `ALTER TABLE ${table} ADD CONSTRAINT PK_${table} PRIMARY KEY (${schema.primaryKey.join(', ')})`);
|
|
403
|
+
}
|
|
404
|
+
// Only preserve provider namespaces already referenced by historical SSO identities.
|
|
405
|
+
yield this.execute(options, `INSERT INTO SSO_PROVIDER (PROVIDER, DESCRIZIONE, FLGATTIVO)
|
|
406
|
+
SELECT DISTINCT I.PROVIDER, I.PROVIDER, 1 FROM UTENTI_IDENTITA_EXT I
|
|
407
|
+
WHERE NOT EXISTS (SELECT 1 FROM SSO_PROVIDER P WHERE P.PROVIDER = I.PROVIDER)`);
|
|
408
|
+
for (const fk of accessiSchema_1.accessiForeignKeys) {
|
|
409
|
+
const existing = constraints.find(rows => rows[0].KIND === 'FOREIGN KEY' && rows[0].TABLE_NAME === fk.table && this.sameColumns(rows, [fk.column]));
|
|
410
|
+
if (existing) {
|
|
411
|
+
// Una FK sulla stessa colonna ma verso un target/regola diverso non e compatibile:
|
|
412
|
+
// correggere il target cambiando semantica e va segnalato, non ignorato.
|
|
413
|
+
const deleteRuleOk = fk.cascade
|
|
414
|
+
? existing[0].DELETE_RULE === 'CASCADE'
|
|
415
|
+
: ['NO ACTION', 'RESTRICT'].includes(String(existing[0].DELETE_RULE));
|
|
416
|
+
if (existing[0].TARGET_TABLE !== fk.target || existing[0].TARGET_COLUMN !== fk.targetColumn || !deleteRuleOk) {
|
|
417
|
+
throw new Error(`${fk.name}: FK esistente su ${fk.table}.${fk.column} incompatibile (target ${existing[0].TARGET_TABLE}.${existing[0].TARGET_COLUMN}, delete rule ${existing[0].DELETE_RULE}); correggerla esplicitamente.`);
|
|
418
|
+
}
|
|
419
|
+
continue;
|
|
420
|
+
}
|
|
421
|
+
yield this.execute(options, `ALTER TABLE ${fk.table} ADD CONSTRAINT ${fk.name} FOREIGN KEY (${fk.column}) REFERENCES ${fk.target} (${fk.targetColumn})${fk.cascade ? ' ON DELETE CASCADE' : ''}`);
|
|
422
|
+
}
|
|
423
|
+
const checks = yield this.checks(options);
|
|
424
|
+
for (const check of accessiSchema_1.accessiChecks) {
|
|
425
|
+
if (!checks.some(row => row.TABLE_NAME === check.table && this.sameCheck(String(row.CHECK_SOURCE), check.expression))) {
|
|
426
|
+
yield this.execute(options, `ALTER TABLE ${check.table} ADD CONSTRAINT ${check.name} CHECK (${check.expression})`);
|
|
427
|
+
}
|
|
428
|
+
}
|
|
429
|
+
const indexes = yield this.indexes(options);
|
|
430
|
+
for (const index of accessiSchema_1.accessiIndexes) {
|
|
431
|
+
if (!indexes.some(rows => rows[0].TABLE_NAME === index.table && !Number(rows[0].INACTIVE) && this.sameColumns(rows, index.columns))) {
|
|
432
|
+
if (indexes.some(rows => rows[0].NAME === index.name))
|
|
433
|
+
throw new Error(`${index.name}: indice esistente incompatibile o inattivo; correggerlo esplicitamente.`);
|
|
434
|
+
yield this.execute(options, `CREATE INDEX ${index.name} ON ${index.table} (${index.columns.join(', ')})`);
|
|
435
|
+
}
|
|
436
|
+
}
|
|
437
|
+
for (const generator of accessiSchema_1.accessiGenerators) {
|
|
438
|
+
if (!(yield this.sequenceExists(options, generator.name)))
|
|
439
|
+
yield this.execute(options, `CREATE SEQUENCE ${generator.name}`);
|
|
440
|
+
// Advance by a positive delta only: do not reset an existing sequence or reuse an allocated value.
|
|
441
|
+
yield this.execute(options, `EXECUTE BLOCK AS DECLARE VARIABLE MAX_ID BIGINT; DECLARE VARIABLE CURRENT_ID BIGINT; DECLARE VARIABLE NEXT_ID BIGINT;
|
|
442
|
+
BEGIN SELECT COALESCE(MAX(${generator.column}), 0) FROM ${generator.table} INTO :MAX_ID;
|
|
443
|
+
CURRENT_ID = GEN_ID(${generator.name}, 0);
|
|
444
|
+
IF (MAX_ID > CURRENT_ID) THEN NEXT_ID = GEN_ID(${generator.name}, MAX_ID - CURRENT_ID); END`);
|
|
445
|
+
}
|
|
446
|
+
const triggers = yield this.triggers(options);
|
|
447
|
+
for (const trigger of accessiSchema_1.accessiTriggers) {
|
|
448
|
+
if (!triggers.some(row => this.compatibleTrigger(row, trigger)) && !triggers.some(row => row.NAME === trigger.name)) {
|
|
449
|
+
if (triggers.some(row => row.TABLE_NAME === trigger.table && Number(row.TRIGGER_TYPE) === trigger.type)) {
|
|
450
|
+
throw new Error(`${trigger.table}: trigger ${trigger.event} personalizzato non riconosciuto; verificare le operazioni di ${trigger.name} prima di aggiungere trigger concorrenti.`);
|
|
451
|
+
}
|
|
452
|
+
yield this.execute(options, `CREATE TRIGGER ${trigger.name} FOR ${trigger.table} ACTIVE ${trigger.event} POSITION 0 ${trigger.body}`);
|
|
453
|
+
}
|
|
136
454
|
}
|
|
137
|
-
yield
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
ICON = ?,
|
|
142
|
-
ORDINE = ?,
|
|
143
|
-
CODTIP = ?,
|
|
144
|
-
PAGINA = ?,
|
|
145
|
-
RIFMENU = ?
|
|
146
|
-
WHERE CODMNU = ?`, [
|
|
147
|
-
menu.DESMNU,
|
|
148
|
-
menu.CODGRP,
|
|
149
|
-
menu.FLGENABLED,
|
|
150
|
-
menu.ICON,
|
|
151
|
-
menu.ORDINE,
|
|
152
|
-
menu.CODTIP,
|
|
153
|
-
menu.PAGINA,
|
|
154
|
-
menu.RIFMENU,
|
|
155
|
-
menu.CODMNU,
|
|
156
|
-
]);
|
|
455
|
+
yield this.assertCompatible(options);
|
|
456
|
+
// The host's VersioneDB/DBVERSION values belong to the host and are never overwritten.
|
|
457
|
+
yield this.execute(options, 'UPDATE OR INSERT INTO PARAMETRI (CODPAR, DESPAR) VALUES (?, ?) MATCHING (CODPAR)', [accessiSchema_1.ACCESSI_VERSION_KEY, accessiSchema_1.ACCESSI_SCHEMA_VERSION]);
|
|
458
|
+
this.logger.info(`Schema Accessi verificato: ${accessiSchema_1.ACCESSI_SCHEMA_VERSION}.`);
|
|
157
459
|
});
|
|
158
460
|
}
|
|
159
461
|
};
|
|
160
462
|
exports.AccessiDatabaseUpdater = AccessiDatabaseUpdater;
|
|
161
463
|
AccessiDatabaseUpdater.logger = new Logger_1.Logger(AccessiDatabaseUpdater_1.name);
|
|
162
|
-
AccessiDatabaseUpdater.
|
|
163
|
-
|
|
164
|
-
fromVersion: "1.0.0",
|
|
165
|
-
toVersion: "1.1.0",
|
|
166
|
-
description: "Aggiunge filtro postazione, colonna IDXPOS e menu verifica RFID",
|
|
167
|
-
apply: (options) => __awaiter(void 0, void 0, void 0, function* () {
|
|
168
|
-
yield AccessiDatabaseUpdater_1.upsertFiltroTipo(options, 20, "POSTAZIONE", "IDXPOS", undefined);
|
|
169
|
-
yield AccessiDatabaseUpdater_1.ensureColumn(options, "FILTRI", "IDXPOS SMALLINT", "IDXPOS", "idx della postazione nella tabella ANTENNE_POS di PROLAV");
|
|
170
|
-
yield AccessiDatabaseUpdater_1.upsertMenu(options, {
|
|
171
|
-
CODMNU: "MNUVERRFID",
|
|
172
|
-
DESMNU: "Verifica RFID",
|
|
173
|
-
CODGRP: "F",
|
|
174
|
-
FLGENABLED: 1,
|
|
175
|
-
ICON: "hardware-chip-outline",
|
|
176
|
-
ORDINE: 10,
|
|
177
|
-
CODTIP: "M",
|
|
178
|
-
PAGINA: "/verifica-rfid",
|
|
179
|
-
RIFMENU: null,
|
|
180
|
-
});
|
|
181
|
-
}),
|
|
182
|
-
},
|
|
183
|
-
{
|
|
184
|
-
fromVersion: "1.1.0",
|
|
185
|
-
toVersion: "1.1.1",
|
|
186
|
-
description: "Aggiunge FLGENABLED su FILTRI_TIPO",
|
|
187
|
-
apply: (options) => __awaiter(void 0, void 0, void 0, function* () {
|
|
188
|
-
const columnCreated = yield AccessiDatabaseUpdater_1.ensureColumn(options, "FILTRI_TIPO", "FLGENABLED SMALLINT DEFAULT 1 NOT NULL", "FLGENABLED");
|
|
189
|
-
if (!columnCreated) {
|
|
190
|
-
yield Orm_1.Orm.execute(options.databaseOptions, "UPDATE FILTRI_TIPO SET FLGENABLED = 1 WHERE FLGENABLED IS NULL");
|
|
191
|
-
}
|
|
192
|
-
}),
|
|
193
|
-
},
|
|
194
|
-
{
|
|
195
|
-
fromVersion: "1.1.1",
|
|
196
|
-
toVersion: "1.1.2",
|
|
197
|
-
description: "Aggiunge filtro vettore e colonna CODVET",
|
|
198
|
-
apply: (options) => __awaiter(void 0, void 0, void 0, function* () {
|
|
199
|
-
yield AccessiDatabaseUpdater_1.upsertFiltroTipo(options, 30, "VETTORE", "CODVET", 1);
|
|
200
|
-
yield AccessiDatabaseUpdater_1.ensureColumn(options, "FILTRI", "CODVET INTEGER", "CODVET", "CODICE DEL VETTORE DA INSERIRE SE COME FILTRO HA 30");
|
|
201
|
-
}),
|
|
202
|
-
},
|
|
203
|
-
{
|
|
204
|
-
fromVersion: "1.1.2",
|
|
205
|
-
toVersion: "1.1.3",
|
|
206
|
-
description: "Aggiunge FLGADMINCONFIG e inizializza PARAMETRI",
|
|
207
|
-
apply: (options) => __awaiter(void 0, void 0, void 0, function* () {
|
|
208
|
-
yield AccessiDatabaseUpdater_1.ensureColumn(options, "UTENTI_CONFIG", "FLGADMINCONFIG SMALLINT DEFAULT 0", "FLGADMINCONFIG", "flag utente configuratore dei menu amministratore");
|
|
209
|
-
yield AccessiDatabaseUpdater_1.createParametersTable(options.databaseOptions);
|
|
210
|
-
}),
|
|
211
|
-
},
|
|
212
|
-
{
|
|
213
|
-
fromVersion: "1.1.3",
|
|
214
|
-
toVersion: "1.1.4",
|
|
215
|
-
description: "Aggiunge sequence e trigger per RUOLI",
|
|
216
|
-
apply: (options) => __awaiter(void 0, void 0, void 0, function* () {
|
|
217
|
-
if (!(yield AccessiDatabaseUpdater_1.generatorExists(options.databaseOptions, "GEN_RUOLI_ID"))) {
|
|
218
|
-
yield Orm_1.Orm.execute(options.databaseOptions, "CREATE SEQUENCE GEN_RUOLI_ID");
|
|
219
|
-
}
|
|
220
|
-
if (!(yield AccessiDatabaseUpdater_1.triggerExists(options.databaseOptions, "RUOLI_BI"))) {
|
|
221
|
-
yield Orm_1.Orm.execute(options.databaseOptions, `CREATE TRIGGER RUOLI_BI FOR RUOLI
|
|
222
|
-
ACTIVE BEFORE INSERT POSITION 0
|
|
223
|
-
AS
|
|
224
|
-
BEGIN
|
|
225
|
-
IF (NEW.CODRUO IS NULL) THEN
|
|
226
|
-
NEW.CODRUO = GEN_ID(GEN_RUOLI_ID,1);
|
|
227
|
-
END`);
|
|
228
|
-
}
|
|
229
|
-
}),
|
|
230
|
-
},
|
|
231
|
-
{
|
|
232
|
-
fromVersion: "1.1.4",
|
|
233
|
-
toVersion: "1.1.5",
|
|
234
|
-
description: "Aggiunge NOTE su MENU",
|
|
235
|
-
apply: (options) => __awaiter(void 0, void 0, void 0, function* () {
|
|
236
|
-
yield AccessiDatabaseUpdater_1.ensureColumn(options, "MENU", "NOTE VARCHAR(1000)", "NOTE");
|
|
237
|
-
}),
|
|
238
|
-
},
|
|
239
|
-
{
|
|
240
|
-
fromVersion: "1.1.5",
|
|
241
|
-
toVersion: "1.1.6",
|
|
242
|
-
description: "Aggiunge NUMMAC su UTENTI_CONFIG",
|
|
243
|
-
apply: (options) => __awaiter(void 0, void 0, void 0, function* () {
|
|
244
|
-
yield AccessiDatabaseUpdater_1.ensureColumn(options, "UTENTI_CONFIG", "NUMMAC INTEGER", "NUMMAC", 'Numero macchina DESPOST PROLAV');
|
|
245
|
-
}),
|
|
246
|
-
},
|
|
247
|
-
];
|
|
464
|
+
AccessiDatabaseUpdater.initialization = new WeakMap();
|
|
465
|
+
AccessiDatabaseUpdater.running = new Map();
|
|
248
466
|
exports.AccessiDatabaseUpdater = AccessiDatabaseUpdater = AccessiDatabaseUpdater_1 = __decorate([
|
|
249
467
|
(0, common_1.Injectable)(),
|
|
250
|
-
__param(0, (0, common_1.Inject)(
|
|
468
|
+
__param(0, (0, common_1.Inject)('ACCESSI_OPTIONS')),
|
|
251
469
|
__metadata("design:paramtypes", [Object])
|
|
252
470
|
], AccessiDatabaseUpdater);
|
|
253
471
|
//# sourceMappingURL=AccessiDatabaseUpdater.js.map
|