refactor: application dependency management (#2363)

This commit is contained in:
Mo
2023-07-23 15:54:31 -05:00
committed by GitHub
parent e698b1c990
commit a77535456c
299 changed files with 7415 additions and 4890 deletions

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,147 @@
export const TYPES = {
// System
DeviceInterface: Symbol.for('DeviceInterface'),
AlertService: Symbol.for('AlertService'),
Crypto: Symbol.for('Crypto'),
// Services
InternalEventBus: Symbol.for('InternalEventBus'),
PayloadManager: Symbol.for('PayloadManager'),
ItemManager: Symbol.for('ItemManager'),
MutatorService: Symbol.for('MutatorService'),
DiskStorageService: Symbol.for('DiskStorageService'),
UserEventService: Symbol.for('UserEventService'),
InMemoryStore: Symbol.for('InMemoryStore'),
KeySystemKeyManager: Symbol.for('KeySystemKeyManager'),
EncryptionService: Symbol.for('EncryptionService'),
ChallengeService: Symbol.for('ChallengeService'),
DeprecatedHttpService: Symbol.for('DeprecatedHttpService'),
HttpService: Symbol.for('HttpService'),
LegacyApiService: Symbol.for('LegacyApiService'),
UserServer: Symbol.for('UserServer'),
UserRequestServer: Symbol.for('UserRequestServer'),
UserApiService: Symbol.for('UserApiService'),
SubscriptionServer: Symbol.for('SubscriptionServer'),
SubscriptionApiService: Symbol.for('SubscriptionApiService'),
WebSocketServer: Symbol.for('WebSocketServer'),
WebSocketApiService: Symbol.for('WebSocketApiService'),
WebSocketsService: Symbol.for('WebSocketsService'),
SessionManager: Symbol.for('SessionManager'),
SubscriptionManager: Symbol.for('SubscriptionManager'),
HistoryManager: Symbol.for('HistoryManager'),
SyncService: Symbol.for('SyncService'),
ProtectionService: Symbol.for('ProtectionService'),
UserService: Symbol.for('UserService'),
KeyRecoveryService: Symbol.for('KeyRecoveryService'),
SingletonManager: Symbol.for('SingletonManager'),
PreferencesService: Symbol.for('PreferencesService'),
SettingsService: Symbol.for('SettingsService'),
FeaturesService: Symbol.for('FeaturesService'),
ComponentManager: Symbol.for('ComponentManager'),
MfaService: Symbol.for('MfaService'),
StatusService: Symbol.for('StatusService'),
MigrationService: Symbol.for('MigrationService'),
FileService: Symbol.for('FileService'),
IntegrityService: Symbol.for('IntegrityService'),
ListedService: Symbol.for('ListedService'),
ActionsService: Symbol.for('ActionsService'),
AuthenticatorApiService: Symbol.for('AuthenticatorApiService'),
AuthenticatorManager: Symbol.for('AuthenticatorManager'),
AuthApiService: Symbol.for('AuthApiService'),
AuthManager: Symbol.for('AuthManager'),
RevisionApiService: Symbol.for('RevisionApiService'),
RevisionManager: Symbol.for('RevisionManager'),
ContactService: Symbol.for('ContactService'),
VaultService: Symbol.for('VaultService'),
SharedVaultService: Symbol.for('SharedVaultService'),
AsymmetricMessageService: Symbol.for('AsymmetricMessageService'),
SelfContactManager: Symbol.for('SelfContactManager'),
EncryptionOperators: Symbol.for('EncryptionOperators'),
RootKeyManager: Symbol.for('RootKeyManager'),
ItemsEncryptionService: Symbol.for('ItemsEncryptionService'),
// Servers
RevisionServer: Symbol.for('RevisionServer'),
AuthenticatorServer: Symbol.for('AuthenticatorServer'),
AuthServer: Symbol.for('AuthServer'),
SharedVaultInvitesServer: Symbol.for('SharedVaultInvitesServer'),
SharedVaultServer: Symbol.for('SharedVaultServer'),
SharedVaultUsersServer: Symbol.for('SharedVaultUsersServer'),
AsymmetricMessageServer: Symbol.for('AsymmetricMessageServer'),
// Desktop Services
FilesBackupService: Symbol.for('FilesBackupService'),
HomeServerService: Symbol.for('HomeServerService'),
// Usecases
SignInWithRecoveryCodes: Symbol.for('SignInWithRecoveryCodes'),
GetRecoveryCodes: Symbol.for('GetRecoveryCodes'),
AddAuthenticator: Symbol.for('AddAuthenticator'),
ListAuthenticators: Symbol.for('ListAuthenticators'),
DeleteAuthenticator: Symbol.for('DeleteAuthenticator'),
GetAuthenticatorAuthenticationOptions: Symbol.for('GetAuthenticatorAuthenticationOptions'),
GetAuthenticatorAuthenticationResponse: Symbol.for('GetAuthenticatorAuthenticationResponse'),
ListRevisions: Symbol.for('ListRevisions'),
GetRevision: Symbol.for('GetRevision'),
DeleteRevision: Symbol.for('DeleteRevision'),
ImportDataUseCase: Symbol.for('ImportDataUseCase'),
RemoveItemsLocally: Symbol.for('RemoveItemsLocally'),
FindContact: Symbol.for('FindContact'),
GetAllContacts: Symbol.for('GetAllContacts'),
CreateOrEditContact: Symbol.for('CreateOrEditContact'),
EditContact: Symbol.for('EditContact'),
ValidateItemSigner: Symbol.for('ValidateItemSigner'),
GetVault: Symbol.for('GetVault'),
ChangeVaultKeyOptions: Symbol.for('ChangeVaultKeyOptions'),
MoveItemsToVault: Symbol.for('MoveItemsToVault'),
CreateVault: Symbol.for('CreateVault'),
RemoveItemFromVault: Symbol.for('RemoveItemFromVault'),
DeleteVault: Symbol.for('DeleteVault'),
RotateVaultKey: Symbol.for('RotateVaultKey'),
CreateSharedVault: Symbol.for('CreateSharedVault'),
HandleKeyPairChange: Symbol.for('HandleKeyPairChange'),
NotifyVaultUsersOfKeyRotation: Symbol.for('NotifyVaultUsersOfKeyRotation'),
SendVaultDataChangedMessage: Symbol.for('SendVaultDataChangedMessage'),
SendVaultKeyChangedMessage: Symbol.for('SendVaultKeyChangedMessage'),
GetTrustedPayload: Symbol.for('GetTrustedPayload'),
GetUntrustedPayload: Symbol.for('GetUntrustedPayload'),
GetVaultContacts: Symbol.for('GetVaultContacts'),
AcceptVaultInvite: Symbol.for('AcceptVaultInvite'),
InviteToVault: Symbol.for('InviteToVault'),
LeaveVault: Symbol.for('LeaveVault'),
DeleteThirdPartyVault: Symbol.for('DeleteThirdPartyVault'),
ShareContactWithVault: Symbol.for('ShareContactWithVault'),
ConvertToSharedVault: Symbol.for('ConvertToSharedVault'),
DeleteSharedVault: Symbol.for('DeleteSharedVault'),
RemoveVaultMember: Symbol.for('RemoveVaultMember'),
GetVaultUsers: Symbol.for('GetSharedVaultUsers'),
ResendAllMessages: Symbol.for('ResendAllMessages'),
ReuploadAllInvites: Symbol.for('ReuploadAllInvites'),
ReuploadInvite: Symbol.for('ReuploadInvite'),
GetInboundMessages: Symbol.for('GetInboundMessages'),
GetOutboundMessages: Symbol.for('GetOutboundMessages'),
HandleRootKeyChangedMessage: Symbol.for('HandleRootKeyChangedMessage'),
ProcessAcceptedVaultInvite: Symbol.for('ProcessAcceptedVaultInvite'),
ResendMessage: Symbol.for('ResendMessage'),
SendMessage: Symbol.for('SendMessage'),
SendOwnContactChangeMessage: Symbol.for('SendOwnContactChangeMessage'),
DecryptMessage: Symbol.for('DecryptMessage'),
DecryptOwnMessage: Symbol.for('DecryptOwnMessage'),
EncryptMessage: Symbol.for('EncryptMessage'),
GetMessageAdditionalData: Symbol.for('GetMessageAdditionalData'),
SendVaultInvite: Symbol.for('SendVaultInvite'),
ReplaceContactData: Symbol.for('ReplaceContactData'),
CreateNewDefaultItemsKey: Symbol.for('CreateNewDefaultItemsKey'),
CreateNewItemsKeyWithRollback: Symbol.for('CreateNewItemsKeyWithRollback'),
FindDefaultItemsKey: Symbol.for('FindDefaultItemsKey'),
DecryptErroredTypeAPayloads: Symbol.for('DecryptErroredTypeAPayloads'),
DecryptTypeAPayload: Symbol.for('DecryptTypeAPayload'),
DecryptTypeAPayloadWithKeyLookup: Symbol.for('DecryptTypeAPayloadWithKeyLookup'),
EncryptTypeAPayload: Symbol.for('EncryptTypeAPayload'),
EncryptTypeAPayloadWithKeyLookup: Symbol.for('EncryptTypeAPayloadWithKeyLookup'),
DecryptBackupFile: Symbol.for('DecryptBackupFile'),
// Mappers
SessionStorageMapper: Symbol.for('SessionStorageMapper'),
LegacySessionStorageMapper: Symbol.for('LegacySessionStorageMapper'),
}

View File

@@ -0,0 +1,14 @@
export function isDeinitable(service: unknown): service is { deinit(): void } {
if (!service) {
throw new Error('Service is undefined')
}
return typeof (service as { deinit(): void }).deinit === 'function'
}
export function canBlockDeinit(service: unknown): service is { blockDeinit(): Promise<void> } {
if (!service) {
throw new Error('Service is undefined')
}
return typeof (service as { blockDeinit(): Promise<void> }).blockDeinit === 'function'
}