internal: incomplete vault systems behind feature flag (#2340)
This commit is contained in:
@@ -4,4 +4,5 @@ export enum ApiEndpointParam {
|
||||
SyncDlLimit = 'limit',
|
||||
SyncPayloads = 'items',
|
||||
ApiVersion = 'api',
|
||||
SharedVaultUuids = 'shared_vault_uuids',
|
||||
}
|
||||
|
||||
@@ -1,11 +1,98 @@
|
||||
import { ConflictType } from './ConflictType'
|
||||
import { ServerItemResponse } from './ServerItemResponse'
|
||||
|
||||
export type ConflictParams = {
|
||||
type BaseConflictParams<T = ServerItemResponse> = {
|
||||
type: ConflictType
|
||||
server_item?: ServerItemResponse
|
||||
unsaved_item?: ServerItemResponse
|
||||
|
||||
/** @legacay */
|
||||
item?: ServerItemResponse
|
||||
server_item?: T
|
||||
unsaved_item?: T
|
||||
}
|
||||
|
||||
export type ConflictParamsWithServerItem<T = ServerItemResponse> = BaseConflictParams<T> & {
|
||||
server_item: T
|
||||
unsaved_item: never
|
||||
}
|
||||
|
||||
export type ConflictParamsWithUnsavedItem<T = ServerItemResponse> = BaseConflictParams<T> & {
|
||||
unsaved_item: T
|
||||
server_item: never
|
||||
}
|
||||
|
||||
export type ConflictParamsWithServerAndUnsavedItem<T = ServerItemResponse> = BaseConflictParams<T> & {
|
||||
server_item: T
|
||||
unsaved_item: T
|
||||
}
|
||||
|
||||
export type ConflictConflictingDataParams<T = ServerItemResponse> = BaseConflictParams<T> & {
|
||||
type: ConflictType.ConflictingData
|
||||
server_item: T
|
||||
unsaved_item: never
|
||||
}
|
||||
|
||||
export type ConflictUuidConflictParams<T = ServerItemResponse> = BaseConflictParams<T> & {
|
||||
type: ConflictType.UuidConflict
|
||||
server_item: never
|
||||
unsaved_item: T
|
||||
}
|
||||
|
||||
export type ConflictContentTypeErrorParams<T = ServerItemResponse> = BaseConflictParams<T> & {
|
||||
type: ConflictType.ContentTypeError
|
||||
server_item: never
|
||||
unsaved_item: T
|
||||
}
|
||||
|
||||
export type ConflictContentErrorParams<T = ServerItemResponse> = BaseConflictParams<T> & {
|
||||
type: ConflictType.ContentError
|
||||
server_item: never
|
||||
unsaved_item: T
|
||||
}
|
||||
|
||||
export type ConflictReadOnlyErrorParams<T = ServerItemResponse> = BaseConflictParams<T> & {
|
||||
type: ConflictType.ReadOnlyError
|
||||
server_item: T
|
||||
unsaved_item: T
|
||||
}
|
||||
|
||||
export type ConflictUuidErrorParams<T = ServerItemResponse> = BaseConflictParams<T> & {
|
||||
type: ConflictType.UuidError
|
||||
server_item: never
|
||||
unsaved_item: T
|
||||
}
|
||||
|
||||
export type ConflictSharedVaultNotMemberErrorParams<T = ServerItemResponse> = BaseConflictParams<T> & {
|
||||
type: ConflictType.SharedVaultNotMemberError
|
||||
server_item: never
|
||||
unsaved_item: T
|
||||
}
|
||||
|
||||
export type ConflictSharedVaultInsufficientPermissionsErrorParams<T = ServerItemResponse> = BaseConflictParams<T> & {
|
||||
type: ConflictType.SharedVaultInsufficientPermissionsError
|
||||
unsaved_item: T
|
||||
}
|
||||
|
||||
export function conflictParamsHasServerItemAndUnsavedItem<T = ServerItemResponse>(
|
||||
params: BaseConflictParams<T>,
|
||||
): params is ConflictParamsWithServerAndUnsavedItem<T> {
|
||||
return params.server_item !== undefined && params.unsaved_item !== undefined
|
||||
}
|
||||
|
||||
export function conflictParamsHasOnlyServerItem<T = ServerItemResponse>(
|
||||
params: BaseConflictParams<T>,
|
||||
): params is ConflictParamsWithServerItem<T> {
|
||||
return params.server_item !== undefined
|
||||
}
|
||||
|
||||
export function conflictParamsHasOnlyUnsavedItem<T = ServerItemResponse>(
|
||||
params: BaseConflictParams<T>,
|
||||
): params is ConflictParamsWithUnsavedItem<T> {
|
||||
return params.unsaved_item !== undefined
|
||||
}
|
||||
|
||||
export type ConflictParams<T = ServerItemResponse> =
|
||||
| ConflictConflictingDataParams<T>
|
||||
| ConflictUuidConflictParams<T>
|
||||
| ConflictContentTypeErrorParams<T>
|
||||
| ConflictContentErrorParams<T>
|
||||
| ConflictReadOnlyErrorParams<T>
|
||||
| ConflictUuidErrorParams<T>
|
||||
| ConflictSharedVaultNotMemberErrorParams<T>
|
||||
| ConflictSharedVaultInsufficientPermissionsErrorParams<T>
|
||||
|
||||
@@ -5,5 +5,9 @@ export enum ConflictType {
|
||||
ContentError = 'content_error',
|
||||
ReadOnlyError = 'readonly_error',
|
||||
UuidError = 'uuid_error',
|
||||
SyncError = 'sync_error',
|
||||
|
||||
SharedVaultSnjsVersionError = 'shared_vault_snjs_version_error',
|
||||
SharedVaultInsufficientPermissionsError = 'shared_vault_insufficient_permissions_error',
|
||||
SharedVaultNotMemberError = 'shared_vault_not_member_error',
|
||||
SharedVaultInvalidState = 'shared_vault_invalid_state',
|
||||
}
|
||||
|
||||
@@ -1,6 +1,10 @@
|
||||
import { SharedVaultInviteServerHash } from '../SharedVaults/SharedVaultInviteServerHash'
|
||||
import { ApiEndpointParam } from './ApiEndpointParam'
|
||||
import { ConflictParams } from './ConflictParams'
|
||||
import { ServerItemResponse } from './ServerItemResponse'
|
||||
import { SharedVaultServerHash } from '../SharedVaults/SharedVaultServerHash'
|
||||
import { UserEventServerHash } from '../UserEvent/UserEventServerHash'
|
||||
import { AsymmetricMessageServerHash } from '../AsymmetricMessage/AsymmetricMessageServerHash'
|
||||
|
||||
export type RawSyncData = {
|
||||
error?: unknown
|
||||
@@ -10,5 +14,9 @@ export type RawSyncData = {
|
||||
saved_items?: ServerItemResponse[]
|
||||
conflicts?: ConflictParams[]
|
||||
unsaved?: ConflictParams[]
|
||||
shared_vaults?: SharedVaultServerHash[]
|
||||
shared_vault_invites?: SharedVaultInviteServerHash[]
|
||||
user_events?: UserEventServerHash[]
|
||||
asymmetric_messages?: AsymmetricMessageServerHash[]
|
||||
status?: number
|
||||
}
|
||||
|
||||
@@ -12,4 +12,8 @@ export interface ServerItemResponse {
|
||||
updated_at_timestamp: number
|
||||
updated_at: Date
|
||||
uuid: string
|
||||
user_uuid: string
|
||||
shared_vault_uuid: string | undefined
|
||||
key_system_identifier: string | undefined
|
||||
last_edited_by_uuid?: string
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user