From cc6d300dc7636f34f144422fe246ab2f80132195 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Karol=20S=C3=B3jko?= Date: Thu, 31 Aug 2023 15:32:05 +0200 Subject: [PATCH] chore: handle notifications from websockets (#2472) --- ...nts-npm-2.120.0-f3a9eaf351-bcd6caf10b.zip} | Bin 98402 -> 104915 bytes ...urity-npm-1.12.0-b20ed17598-96d42255e7.zip | Bin 0 -> 29780 bytes .../src/Domain/Api/WebSocketsEventData.ts | 7 ++++ .../src/Domain}/Api/WebSocketsServiceEvent.ts | 1 + .../src/Domain}/Api/WebsocketsService.spec.ts | 13 ++++--- .../src/Domain}/Api/WebsocketsService.ts | 35 +++++++++++++----- .../Domain/UserEvent/NotificationService.ts | 11 +++++- packages/services/src/Domain/index.ts | 3 ++ packages/snjs/lib/Application/Application.ts | 2 +- .../Application/Dependencies/Dependencies.ts | 2 +- packages/snjs/lib/Services/Api/index.ts | 1 - .../Services/Features/FeaturesService.spec.ts | 2 +- .../lib/Services/Features/FeaturesService.ts | 4 +- .../lib/Services/Session/SessionManager.ts | 2 +- packages/snjs/package.json | 2 +- yarn.lock | 24 ++++++++---- 16 files changed, 76 insertions(+), 33 deletions(-) rename .yarn/cache/{@standardnotes-domain-events-npm-2.113.1-f94d16fda0-de7a64b588.zip => @standardnotes-domain-events-npm-2.120.0-f3a9eaf351-bcd6caf10b.zip} (71%) create mode 100644 .yarn/cache/@standardnotes-security-npm-1.12.0-b20ed17598-96d42255e7.zip create mode 100644 packages/services/src/Domain/Api/WebSocketsEventData.ts rename packages/{snjs/lib/Services => services/src/Domain}/Api/WebSocketsServiceEvent.ts (62%) rename packages/{snjs/lib/Services => services/src/Domain}/Api/WebsocketsService.spec.ts (70%) rename packages/{snjs/lib/Services => services/src/Domain}/Api/WebsocketsService.ts (69%) diff --git a/.yarn/cache/@standardnotes-domain-events-npm-2.113.1-f94d16fda0-de7a64b588.zip b/.yarn/cache/@standardnotes-domain-events-npm-2.120.0-f3a9eaf351-bcd6caf10b.zip similarity index 71% rename from .yarn/cache/@standardnotes-domain-events-npm-2.113.1-f94d16fda0-de7a64b588.zip rename to .yarn/cache/@standardnotes-domain-events-npm-2.120.0-f3a9eaf351-bcd6caf10b.zip index 36e5d32edaad72bcce473998f67e44fd3ce0d3f2..3c9d306f2307e4630b9a04b765d7fd0da99a8e7a 100644 GIT binary patch delta 9792 zcmaiZc_39?_rG%unO!qQh9vWp44LQ1m@)G_L}rrd8cQnEDZ4@_gfexhkfc&kgw%sF zC5fo?h(i4Ky|>#_@ArA%-~H#D^I2={y@tK_`J8p%B+)#_)6{QTGHrgEY>uR±4z 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 delta 6990 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 diff --git a/.yarn/cache/@standardnotes-security-npm-1.12.0-b20ed17598-96d42255e7.zip b/.yarn/cache/@standardnotes-security-npm-1.12.0-b20ed17598-96d42255e7.zip new file mode 100644 index 0000000000000000000000000000000000000000..2c8912e3d204a9b11ea06867df5eb28cee538746 GIT binary patch literal 29780 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 +} diff --git a/packages/snjs/lib/Services/Api/WebSocketsServiceEvent.ts b/packages/services/src/Domain/Api/WebSocketsServiceEvent.ts similarity index 62% rename from packages/snjs/lib/Services/Api/WebSocketsServiceEvent.ts rename to packages/services/src/Domain/Api/WebSocketsServiceEvent.ts index eab48edbb..c0e27c147 100644 --- a/packages/snjs/lib/Services/Api/WebSocketsServiceEvent.ts +++ b/packages/services/src/Domain/Api/WebSocketsServiceEvent.ts @@ -1,3 +1,4 @@ export enum WebSocketsServiceEvent { UserRoleMessageReceived = 'WebSocketMessageReceived', + NotificationAddedForUser = 'NotificationAddedForUser', } diff --git a/packages/snjs/lib/Services/Api/WebsocketsService.spec.ts b/packages/services/src/Domain/Api/WebsocketsService.spec.ts similarity index 70% rename from packages/snjs/lib/Services/Api/WebsocketsService.spec.ts rename to packages/services/src/Domain/Api/WebsocketsService.spec.ts index 82cf0458b..9a319f6e3 100644 --- a/packages/snjs/lib/Services/Api/WebsocketsService.spec.ts +++ b/packages/services/src/Domain/Api/WebsocketsService.spec.ts @@ -1,13 +1,14 @@ -import { InternalEventBusInterface } from '@standardnotes/services' import { WebSocketApiServiceInterface } from '@standardnotes/api' -import { StorageKey, DiskStorageService } from '@Lib/index' import { WebSocketsService } from './WebsocketsService' +import { StorageServiceInterface } from '../Storage/StorageServiceInterface' +import { InternalEventBusInterface } from '../Internal/InternalEventBusInterface' +import { StorageKey } from '../Storage/StorageKeys' describe('webSocketsService', () => { const webSocketUrl = '' - let storageService: DiskStorageService + let storageService: StorageServiceInterface let webSocketApiService: WebSocketApiServiceInterface let internalEventBus: InternalEventBusInterface @@ -16,7 +17,7 @@ describe('webSocketsService', () => { } beforeEach(() => { - storageService = {} as jest.Mocked + storageService = {} as jest.Mocked storageService.setValue = jest.fn() internalEventBus = {} as jest.Mocked @@ -27,9 +28,9 @@ describe('webSocketsService', () => { }) describe('setWebSocketUrl()', () => { - it('saves url in local storage', async () => { + it('saves url in local storage', () => { const webSocketUrl = 'wss://test-websocket' - await createService().setWebSocketUrl(webSocketUrl) + createService().setWebSocketUrl(webSocketUrl) expect(storageService.setValue).toHaveBeenCalledWith(StorageKey.WebSocketUrl, webSocketUrl) }) }) diff --git a/packages/snjs/lib/Services/Api/WebsocketsService.ts b/packages/services/src/Domain/Api/WebsocketsService.ts similarity index 69% rename from packages/snjs/lib/Services/Api/WebsocketsService.ts rename to packages/services/src/Domain/Api/WebsocketsService.ts index 625b2909c..32e764bc2 100644 --- a/packages/snjs/lib/Services/Api/WebsocketsService.ts +++ b/packages/services/src/Domain/Api/WebsocketsService.ts @@ -1,15 +1,18 @@ import { isErrorResponse } from '@standardnotes/responses' -import { UserRolesChangedEvent } from '@standardnotes/domain-events' import { - AbstractService, - InternalEventBusInterface, - StorageKey, - StorageServiceInterface, -} from '@standardnotes/services' + DomainEventInterface, + UserRolesChangedEvent, + NotificationAddedForUserEvent, +} from '@standardnotes/domain-events' import { WebSocketApiServiceInterface } from '@standardnotes/api' import { WebSocketsServiceEvent } from './WebSocketsServiceEvent' +import { StorageServiceInterface } from '../Storage/StorageServiceInterface' +import { InternalEventBusInterface } from '../Internal/InternalEventBusInterface' +import { AbstractService } from '../Service/AbstractService' +import { StorageKey } from '../Storage/StorageKeys' +import { WebSocketsEventData } from './WebSocketsEventData' -export class WebSocketsService extends AbstractService { +export class WebSocketsService extends AbstractService { private webSocket?: WebSocket constructor( @@ -61,9 +64,21 @@ export class WebSocketsService extends AbstractService @@ -18,8 +20,13 @@ export class NotificationService } async handleEvent(event: InternalEventInterface): Promise { - if (event.type === SyncEvent.ReceivedNotifications) { - return this.handleReceivedNotifications(event.payload as SyncEventReceivedNotificationsData) + switch (event.type) { + case SyncEvent.ReceivedNotifications: + return this.handleReceivedNotifications(event.payload as SyncEventReceivedNotificationsData) + case WebSocketsServiceEvent.NotificationAddedForUser: + return this.handleReceivedNotifications([(event as NotificationAddedForUserEvent).payload.notification]) + default: + break } } diff --git a/packages/services/src/Domain/index.ts b/packages/services/src/Domain/index.ts index 931d615cf..ad5c76674 100644 --- a/packages/services/src/Domain/index.ts +++ b/packages/services/src/Domain/index.ts @@ -4,6 +4,9 @@ export * from './Api/ApiServiceEventData' export * from './Api/LegacyApiServiceInterface' export * from './Api/MetaReceivedData' export * from './Api/SessionRefreshedData' +export * from './Api/WebSocketsEventData' +export * from './Api/WebsocketsService' +export * from './Api/WebSocketsServiceEvent' export * from './Application/AppGroupManagedApplication' export * from './Application/ApplicationInterface' export * from './Application/ApplicationStage' diff --git a/packages/snjs/lib/Application/Application.ts b/packages/snjs/lib/Application/Application.ts index 17ae2beea..d6062cf2a 100644 --- a/packages/snjs/lib/Application/Application.ts +++ b/packages/snjs/lib/Application/Application.ts @@ -1,6 +1,5 @@ import { MfaService } from './../Services/Mfa/MfaService' import { KeyRecoveryService } from './../Services/KeyRecovery/KeyRecoveryService' -import { WebSocketsService } from './../Services/Api/WebsocketsService' import { MigrationService } from './../Services/Migration/MigrationService' import { LegacyApiService } from './../Services/Api/ApiService' import { FeaturesService } from '@Lib/Services/Features/FeaturesService' @@ -83,6 +82,7 @@ import { CreateEncryptedBackupFile, GetTransitionStatus, StartTransition, + WebSocketsService, } from '@standardnotes/services' import { SNNote, diff --git a/packages/snjs/lib/Application/Dependencies/Dependencies.ts b/packages/snjs/lib/Application/Dependencies/Dependencies.ts index 084f82e73..aa48b40c5 100644 --- a/packages/snjs/lib/Application/Dependencies/Dependencies.ts +++ b/packages/snjs/lib/Application/Dependencies/Dependencies.ts @@ -22,7 +22,6 @@ import { ProtectionService } from '../../Services/Protection/ProtectionService' import { SyncService } from '../../Services/Sync/SyncService' import { HistoryManager } from '../../Services/History/HistoryManager' import { SessionManager } from '../../Services/Session/SessionManager' -import { WebSocketsService } from '../../Services/Api/WebsocketsService' import { LegacyApiService } from '../../Services/Api/ApiService' import { SnjsVersion } from '../../Version' import { DeprecatedHttpService } from '../../Services/Api/DeprecatedHttpService' @@ -143,6 +142,7 @@ import { SyncLocalVaultsWithRemoteSharedVaults, GetTransitionStatus, StartTransition, + WebSocketsService, } from '@standardnotes/services' import { ItemManager } from '../../Services/Items/ItemManager' import { PayloadManager } from '../../Services/Payloads/PayloadManager' diff --git a/packages/snjs/lib/Services/Api/index.ts b/packages/snjs/lib/Services/Api/index.ts index da29683d0..f8b0df329 100644 --- a/packages/snjs/lib/Services/Api/index.ts +++ b/packages/snjs/lib/Services/Api/index.ts @@ -2,4 +2,3 @@ export * from './ApiService' export * from './DeprecatedHttpService' export * from './Paths' export * from '../Session/SessionManager' -export * from './WebsocketsService' diff --git a/packages/snjs/lib/Services/Features/FeaturesService.spec.ts b/packages/snjs/lib/Services/Features/FeaturesService.spec.ts index 26129b745..6e465d754 100644 --- a/packages/snjs/lib/Services/Features/FeaturesService.spec.ts +++ b/packages/snjs/lib/Services/Features/FeaturesService.spec.ts @@ -4,7 +4,6 @@ import { SettingName } from '@standardnotes/settings' import { FeaturesService } from '@Lib/Services/Features' import { RoleName, ContentType, Uuid, Result } from '@standardnotes/domain-core' import { NativeFeatureIdentifier, GetFeatures } from '@standardnotes/features' -import { WebSocketsService } from '../Api/WebsocketsService' import { SettingsService } from '../Settings' import { PureCryptoInterface } from '@standardnotes/sncrypto-common' import { @@ -23,6 +22,7 @@ import { UserServiceInterface, UserService, IsApplicationUsingThirdPartyHost, + WebSocketsService, } from '@standardnotes/services' import { LegacyApiService, SessionManager } from '../Api' import { ItemManager } from '../Items' diff --git a/packages/snjs/lib/Services/Features/FeaturesService.ts b/packages/snjs/lib/Services/Features/FeaturesService.ts index 7ae10aa56..aadba4d29 100644 --- a/packages/snjs/lib/Services/Features/FeaturesService.ts +++ b/packages/snjs/lib/Services/Features/FeaturesService.ts @@ -3,8 +3,6 @@ import { arraysEqual, removeFromArray, lastElement, LoggerInterface } from '@sta import { ClientDisplayableError } from '@standardnotes/responses' import { RoleName, ContentType, Uuid } from '@standardnotes/domain-core' import { PureCryptoInterface } from '@standardnotes/sncrypto-common' -import { WebSocketsService } from '../Api/WebsocketsService' -import { WebSocketsServiceEvent } from '../Api/WebSocketsServiceEvent' import { UserRolesChangedEvent } from '@standardnotes/domain-events' import { ExperimentalFeatures, FindNativeFeature, NativeFeatureIdentifier } from '@standardnotes/features' import { @@ -47,6 +45,8 @@ import { ApplicationEvent, ApplicationStageChangedEventPayload, IsApplicationUsingThirdPartyHost, + WebSocketsServiceEvent, + WebSocketsService, } from '@standardnotes/services' import { DownloadRemoteThirdPartyFeatureUseCase } from './UseCase/DownloadRemoteThirdPartyFeature' diff --git a/packages/snjs/lib/Services/Session/SessionManager.ts b/packages/snjs/lib/Services/Session/SessionManager.ts index 086b6c9ae..74282dad3 100644 --- a/packages/snjs/lib/Services/Session/SessionManager.ts +++ b/packages/snjs/lib/Services/Session/SessionManager.ts @@ -34,6 +34,7 @@ import { ApplicationStage, GetKeyPairs, IsApplicationUsingThirdPartyHost, + WebSocketsService, } from '@standardnotes/services' import { Base64String, PureCryptoInterface } from '@standardnotes/sncrypto-common' import { @@ -59,7 +60,6 @@ import { RawStorageValue } from './Sessions/Types' import { ShareToken } from './ShareToken' import { LegacyApiService } from '../Api/ApiService' import { DiskStorageService } from '../Storage/DiskStorageService' -import { WebSocketsService } from '../Api/WebsocketsService' import { Strings } from '@Lib/Strings' import { UuidString } from '@Lib/Types/UuidString' import { ChallengeResponse, ChallengeService } from '../Challenge' diff --git a/packages/snjs/package.json b/packages/snjs/package.json index 04dd9f24c..14600a998 100644 --- a/packages/snjs/package.json +++ b/packages/snjs/package.json @@ -38,7 +38,7 @@ "@standardnotes/api": "workspace:*", "@standardnotes/common": "^1.50.0", "@standardnotes/domain-core": "^1.25.0", - "@standardnotes/domain-events": "^2.108.1", + "@standardnotes/domain-events": "^2.120.0", "@standardnotes/encryption": "workspace:*", "@standardnotes/features": "workspace:*", "@standardnotes/files": "workspace:*", diff --git a/yarn.lock b/yarn.lock index 9619cad05..3708368fb 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4349,13 +4349,13 @@ __metadata: languageName: node linkType: hard -"@standardnotes/domain-events@npm:^2.108.1": - version: 2.113.1 - resolution: "@standardnotes/domain-events@npm:2.113.1" +"@standardnotes/domain-events@npm:^2.120.0": + version: 2.120.0 + resolution: "@standardnotes/domain-events@npm:2.120.0" dependencies: "@standardnotes/predicates": 1.6.9 - "@standardnotes/security": 1.8.1 - checksum: de7a64b5882c2126fb6c7c7485c330e7065f38cfad83d6bfe3b4025bd42b28e6de6b7fb137086661b8ab16e8ff63b9b9a91e1b52b23ba413f108605d02f8e61a + "@standardnotes/security": 1.12.0 + checksum: bcd6caf10bc050199db4d0fb13605d43773418c1420efea583381ae6cd33a1a365451a61f3d8d6e08d19a52005e5d67ad2b4c8f3b8f951269b1a2a4bc0ac33cf languageName: node linkType: hard @@ -4703,7 +4703,17 @@ __metadata: languageName: node linkType: hard -"@standardnotes/security@npm:1.8.1, @standardnotes/security@npm:^1.2.0": +"@standardnotes/security@npm:1.12.0": + version: 1.12.0 + resolution: "@standardnotes/security@npm:1.12.0" + dependencies: + jsonwebtoken: ^9.0.0 + reflect-metadata: ^0.1.13 + checksum: 96d42255e79fc2cf4c52f3d370c04ae00296673993e1c0cea2356ca4a6c934d22d6100ba95f9ad602ffb72ee686367ef4a263dc6a6c51795d9b61dc835e635cd + languageName: node + linkType: hard + +"@standardnotes/security@npm:^1.2.0": version: 1.8.1 resolution: "@standardnotes/security@npm:1.8.1" dependencies: @@ -4819,7 +4829,7 @@ __metadata: "@standardnotes/api": "workspace:*" "@standardnotes/common": ^1.50.0 "@standardnotes/domain-core": ^1.25.0 - "@standardnotes/domain-events": ^2.108.1 + "@standardnotes/domain-events": ^2.120.0 "@standardnotes/encryption": "workspace:*" "@standardnotes/features": "workspace:*" "@standardnotes/files": "workspace:*"