Changeset View
Changeset View
Standalone View
Standalone View
lib/types/request-types.js
Show All 36 Lines | export const serverRequestTypes = Object.freeze({ | ||||
THREAD_INCONSISTENCY: 2, | THREAD_INCONSISTENCY: 2, | ||||
PLATFORM_DETAILS: 3, | PLATFORM_DETAILS: 3, | ||||
//INITIAL_ACTIVITY_UPDATE: 4, (DEPRECATED) | //INITIAL_ACTIVITY_UPDATE: 4, (DEPRECATED) | ||||
ENTRY_INCONSISTENCY: 5, | ENTRY_INCONSISTENCY: 5, | ||||
CHECK_STATE: 6, | CHECK_STATE: 6, | ||||
INITIAL_ACTIVITY_UPDATES: 7, | INITIAL_ACTIVITY_UPDATES: 7, | ||||
MORE_ONE_TIME_KEYS: 8, | MORE_ONE_TIME_KEYS: 8, | ||||
SIGNED_IDENTITY_KEYS_BLOB: 9, | SIGNED_IDENTITY_KEYS_BLOB: 9, | ||||
INITIAL_NOTIFICATIONS_ENCRYPTED_MESSAGE: 10, | |||||
}); | }); | ||||
type ServerRequestType = $Values<typeof serverRequestTypes>; | type ServerRequestType = $Values<typeof serverRequestTypes>; | ||||
export function assertServerRequestType( | export function assertServerRequestType( | ||||
serverRequestType: number, | serverRequestType: number, | ||||
): ServerRequestType { | ): ServerRequestType { | ||||
invariant( | invariant( | ||||
serverRequestType === 0 || | serverRequestType === 0 || | ||||
serverRequestType === 2 || | serverRequestType === 2 || | ||||
serverRequestType === 3 || | serverRequestType === 3 || | ||||
serverRequestType === 5 || | serverRequestType === 5 || | ||||
serverRequestType === 6 || | serverRequestType === 6 || | ||||
serverRequestType === 7 || | serverRequestType === 7 || | ||||
serverRequestType === 8 || | serverRequestType === 8 || | ||||
serverRequestType === 9, | serverRequestType === 9 || | ||||
serverRequestType === 10, | |||||
'number is not ServerRequestType enum', | 'number is not ServerRequestType enum', | ||||
); | ); | ||||
return serverRequestType; | return serverRequestType; | ||||
} | } | ||||
type PlatformServerRequest = { | type PlatformServerRequest = { | ||||
+type: 0, | +type: 0, | ||||
}; | }; | ||||
▲ Show 20 Lines • Show All 103 Lines • ▼ Show 20 Lines | tShape<SignedIdentityKeysBlobServerRequest>({ | ||||
type: tNumber(serverRequestTypes.SIGNED_IDENTITY_KEYS_BLOB), | type: tNumber(serverRequestTypes.SIGNED_IDENTITY_KEYS_BLOB), | ||||
}); | }); | ||||
type SignedIdentityKeysBlobClientResponse = { | type SignedIdentityKeysBlobClientResponse = { | ||||
+type: 9, | +type: 9, | ||||
+signedIdentityKeysBlob: SignedIdentityKeysBlob, | +signedIdentityKeysBlob: SignedIdentityKeysBlob, | ||||
}; | }; | ||||
type InitialNotificationsEncryptedMessageServerRequest = { | |||||
+type: 10, | |||||
}; | |||||
const initialNotificationsEncryptedMessageServerRequestValidator = | |||||
tShape<InitialNotificationsEncryptedMessageServerRequest>({ | |||||
type: tNumber(serverRequestTypes.INITIAL_NOTIFICATIONS_ENCRYPTED_MESSAGE), | |||||
}); | |||||
type InitialNotificationsEncryptedMessageClientResponse = { | |||||
+type: 10, | |||||
+initialNotificationsEncryptedMessage: string, | |||||
}; | |||||
export type ServerServerRequest = | export type ServerServerRequest = | ||||
| PlatformServerRequest | | PlatformServerRequest | ||||
| PlatformDetailsServerRequest | | PlatformDetailsServerRequest | ||||
| ServerCheckStateServerRequest | | ServerCheckStateServerRequest | ||||
| MoreOneTimeKeysServerRequest | | MoreOneTimeKeysServerRequest | ||||
| SignedIdentityKeysBlobServerRequest; | | SignedIdentityKeysBlobServerRequest | ||||
| InitialNotificationsEncryptedMessageServerRequest; | |||||
export const serverServerRequestValidator: TUnion<ServerServerRequest> = | export const serverServerRequestValidator: TUnion<ServerServerRequest> = | ||||
t.union([ | t.union([ | ||||
platformServerRequestValidator, | platformServerRequestValidator, | ||||
platformDetailsServerRequestValidator, | platformDetailsServerRequestValidator, | ||||
serverCheckStateServerRequestValidator, | serverCheckStateServerRequestValidator, | ||||
moreOneTimeKeysServerRequestValidator, | moreOneTimeKeysServerRequestValidator, | ||||
signedIdentityKeysBlobServerRequestValidator, | signedIdentityKeysBlobServerRequestValidator, | ||||
initialNotificationsEncryptedMessageServerRequestValidator, | |||||
]); | ]); | ||||
export type ClientResponse = | export type ClientResponse = | ||||
| PlatformClientResponse | | PlatformClientResponse | ||||
| ThreadInconsistencyClientResponse | | ThreadInconsistencyClientResponse | ||||
| PlatformDetailsClientResponse | | PlatformDetailsClientResponse | ||||
| EntryInconsistencyClientResponse | | EntryInconsistencyClientResponse | ||||
| CheckStateClientResponse | | CheckStateClientResponse | ||||
| InitialActivityUpdatesClientResponse | | InitialActivityUpdatesClientResponse | ||||
| MoreOneTimeKeysClientResponse | | MoreOneTimeKeysClientResponse | ||||
| SignedIdentityKeysBlobClientResponse; | | SignedIdentityKeysBlobClientResponse | ||||
| InitialNotificationsEncryptedMessageClientResponse; | |||||
export type ClientCheckStateServerRequest = { | export type ClientCheckStateServerRequest = { | ||||
+type: 6, | +type: 6, | ||||
+hashesToCheck: { +[key: string]: number }, | +hashesToCheck: { +[key: string]: number }, | ||||
+failUnmentioned?: Shape<{ | +failUnmentioned?: Shape<{ | ||||
+threadInfos: boolean, | +threadInfos: boolean, | ||||
+entryInfos: boolean, | +entryInfos: boolean, | ||||
+userInfos: boolean, | +userInfos: boolean, | ||||
}>, | }>, | ||||
+stateChanges?: Shape<{ | +stateChanges?: Shape<{ | ||||
+rawThreadInfos: RawThreadInfo[], | +rawThreadInfos: RawThreadInfo[], | ||||
+rawEntryInfos: RawEntryInfo[], | +rawEntryInfos: RawEntryInfo[], | ||||
+currentUserInfo: CurrentUserInfo, | +currentUserInfo: CurrentUserInfo, | ||||
+userInfos: AccountUserInfo[], | +userInfos: AccountUserInfo[], | ||||
+deleteThreadIDs: string[], | +deleteThreadIDs: string[], | ||||
+deleteEntryIDs: string[], | +deleteEntryIDs: string[], | ||||
+deleteUserInfoIDs: string[], | +deleteUserInfoIDs: string[], | ||||
}>, | }>, | ||||
}; | }; | ||||
export type ClientServerRequest = | export type ClientServerRequest = | ||||
| PlatformServerRequest | | PlatformServerRequest | ||||
| PlatformDetailsServerRequest | | PlatformDetailsServerRequest | ||||
| ClientCheckStateServerRequest | | ClientCheckStateServerRequest | ||||
| MoreOneTimeKeysServerRequest | | MoreOneTimeKeysServerRequest | ||||
| SignedIdentityKeysBlobServerRequest; | | SignedIdentityKeysBlobServerRequest | ||||
| InitialNotificationsEncryptedMessageServerRequest; | |||||
// This is just the client variant of ClientResponse. The server needs to handle | // This is just the client variant of ClientResponse. The server needs to handle | ||||
// multiple client versions so the type supports old versions of certain client | // multiple client versions so the type supports old versions of certain client | ||||
// responses, but the client variant only need to support the latest version. | // responses, but the client variant only need to support the latest version. | ||||
type ClientThreadInconsistencyClientResponse = { | type ClientThreadInconsistencyClientResponse = { | ||||
...ClientThreadInconsistencyReportShape, | ...ClientThreadInconsistencyReportShape, | ||||
+type: 2, | +type: 2, | ||||
}; | }; | ||||
type ClientEntryInconsistencyClientResponse = { | type ClientEntryInconsistencyClientResponse = { | ||||
+type: 5, | +type: 5, | ||||
...ClientEntryInconsistencyReportShape, | ...ClientEntryInconsistencyReportShape, | ||||
}; | }; | ||||
export type ClientClientResponse = | export type ClientClientResponse = | ||||
| PlatformClientResponse | | PlatformClientResponse | ||||
| ClientThreadInconsistencyClientResponse | | ClientThreadInconsistencyClientResponse | ||||
| PlatformDetailsClientResponse | | PlatformDetailsClientResponse | ||||
| ClientEntryInconsistencyClientResponse | | ClientEntryInconsistencyClientResponse | ||||
| CheckStateClientResponse | | CheckStateClientResponse | ||||
| InitialActivityUpdatesClientResponse | | InitialActivityUpdatesClientResponse | ||||
| MoreOneTimeKeysClientResponse | | MoreOneTimeKeysClientResponse | ||||
| SignedIdentityKeysBlobClientResponse; | | SignedIdentityKeysBlobClientResponse | ||||
| InitialNotificationsEncryptedMessageClientResponse; | |||||
export type ClientInconsistencyResponse = | export type ClientInconsistencyResponse = | ||||
| ClientThreadInconsistencyClientResponse | | ClientThreadInconsistencyClientResponse | ||||
| ClientEntryInconsistencyClientResponse; | | ClientEntryInconsistencyClientResponse; | ||||
export const processServerRequestsActionType = 'PROCESS_SERVER_REQUESTS'; | export const processServerRequestsActionType = 'PROCESS_SERVER_REQUESTS'; | ||||
export type ProcessServerRequestsPayload = { | export type ProcessServerRequestsPayload = { | ||||
+serverRequests: $ReadOnlyArray<ClientServerRequest>, | +serverRequests: $ReadOnlyArray<ClientServerRequest>, | ||||
Show All 18 Lines |